summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--debian/README.Debian65
-rw-r--r--debian/README.source284
-rwxr-xr-xdebian/bin/abiupdate.py232
-rwxr-xr-xdebian/bin/buildcheck.py285
-rwxr-xr-xdebian/bin/check-patches.sh28
l---------debian/bin/debian_linux1
-rwxr-xr-xdebian/bin/fix-shebang12
-rwxr-xr-xdebian/bin/gencontrol.py691
-rwxr-xr-xdebian/bin/gencontrol_signed.py322
-rwxr-xr-xdebian/bin/genorig.py203
-rwxr-xr-xdebian/bin/genpatch-aufs31
-rwxr-xr-xdebian/bin/genpatch-lockdown109
-rwxr-xr-xdebian/bin/genpatch-rt152
-rwxr-xr-xdebian/bin/getconfig.py25
-rwxr-xr-xdebian/bin/git-tag-gpg-wrapper33
-rwxr-xr-xdebian/bin/kconfig.py39
-rwxr-xr-xdebian/bin/no-depmod18
-rwxr-xr-xdebian/bin/stable-update135
-rwxr-xr-xdebian/bin/stable-update.sh2
-rwxr-xr-xdebian/bin/test-patches105
-rw-r--r--debian/certs/debian-uefi-certs.pem41
-rw-r--r--debian/certs/wireless-regdb-benh@debian.org.pem22
-rw-r--r--debian/changelog29625
-rw-r--r--debian/changelog.old26914
-rw-r--r--debian/compat1
-rw-r--r--debian/config.defines.dump2966
-rw-r--r--debian/config/alpha/config1031
-rw-r--r--debian/config/alpha/config.alpha-generic10
-rw-r--r--debian/config/alpha/config.alpha-smp16
-rw-r--r--debian/config/alpha/defines18
-rw-r--r--debian/config/amd64/config249
-rw-r--r--debian/config/amd64/config.cloud-amd641630
-rw-r--r--debian/config/amd64/defines28
-rw-r--r--debian/config/amd64/none/defines4
-rw-r--r--debian/config/amd64/rt/defines3
-rw-r--r--debian/config/arm64/config1324
-rw-r--r--debian/config/arm64/defines20
-rw-r--r--debian/config/arm64/none/defines3
-rw-r--r--debian/config/arm64/rt/defines3
-rw-r--r--debian/config/arm64ilp32/defines5
-rw-r--r--debian/config/armel/config10
-rw-r--r--debian/config/armel/config.marvell883
-rw-r--r--debian/config/armel/config.rpi190
-rw-r--r--debian/config/armel/defines40
-rw-r--r--debian/config/armhf/config1441
-rw-r--r--debian/config/armhf/config.armmp-lpae21
-rw-r--r--debian/config/armhf/defines27
-rw-r--r--debian/config/armhf/none/defines4
-rw-r--r--debian/config/armhf/rt/defines3
-rw-r--r--debian/config/config8075
-rw-r--r--debian/config/defines159
-rw-r--r--debian/config/featureset-rt/config32
-rw-r--r--debian/config/featureset-rt/defines7
-rw-r--r--debian/config/hppa/config668
-rw-r--r--debian/config/hppa/config.parisc26
-rw-r--r--debian/config/hppa/config.parisc-smp27
-rw-r--r--debian/config/hppa/config.parisc6417
-rw-r--r--debian/config/hppa/config.parisc64-smp58
-rw-r--r--debian/config/hppa/defines32
-rw-r--r--debian/config/i386/config535
-rw-r--r--debian/config/i386/config.68684
-rw-r--r--debian/config/i386/config.686-pae54
-rw-r--r--debian/config/i386/defines37
-rw-r--r--debian/config/i386/none/defines4
-rw-r--r--debian/config/i386/rt/defines3
-rw-r--r--debian/config/ia64/config844
-rw-r--r--debian/config/ia64/config.itanium11
-rw-r--r--debian/config/ia64/config.mckinley11
-rw-r--r--debian/config/ia64/defines20
-rw-r--r--debian/config/kernelarch-arm/config126
-rw-r--r--debian/config/kernelarch-mips/config70
-rw-r--r--debian/config/kernelarch-mips/config.boston72
-rw-r--r--debian/config/kernelarch-mips/config.loongson-3126
-rw-r--r--debian/config/kernelarch-mips/config.malta498
-rw-r--r--debian/config/kernelarch-mips/config.mips32r210
-rw-r--r--debian/config/kernelarch-mips/config.mips32r610
-rw-r--r--debian/config/kernelarch-mips/config.mips64r210
-rw-r--r--debian/config/kernelarch-mips/config.mips64r610
-rw-r--r--debian/config/kernelarch-mips/config.octeon189
-rw-r--r--debian/config/kernelarch-powerpc/config947
-rw-r--r--debian/config/kernelarch-powerpc/config-arch-64201
-rw-r--r--debian/config/kernelarch-powerpc/config-arch-64-be111
-rw-r--r--debian/config/kernelarch-powerpc/config-arch-64-le41
-rw-r--r--debian/config/kernelarch-sparc/config607
-rw-r--r--debian/config/kernelarch-sparc/config-smp7
-rw-r--r--debian/config/kernelarch-sparc/config-up5
-rw-r--r--debian/config/kernelarch-x86/config2136
-rw-r--r--debian/config/m68k/README.build26
-rw-r--r--debian/config/m68k/config872
-rw-r--r--debian/config/m68k/defines15
-rw-r--r--debian/config/mips/config13
-rw-r--r--debian/config/mips/defines37
-rw-r--r--debian/config/mips64/config8
-rw-r--r--debian/config/mips64/defines27
-rw-r--r--debian/config/mips64el/config12
-rw-r--r--debian/config/mips64el/defines35
-rw-r--r--debian/config/mips64r6/config8
-rw-r--r--debian/config/mips64r6/defines20
-rw-r--r--debian/config/mips64r6el/config8
-rw-r--r--debian/config/mips64r6el/defines20
-rw-r--r--debian/config/mipsel/config13
-rw-r--r--debian/config/mipsel/defines45
-rw-r--r--debian/config/mipsn32/defines4
-rw-r--r--debian/config/mipsn32el/defines4
-rw-r--r--debian/config/mipsn32r6/defines4
-rw-r--r--debian/config/mipsn32r6el/defines4
-rw-r--r--debian/config/mipsr6/config8
-rw-r--r--debian/config/mipsr6/defines30
-rw-r--r--debian/config/mipsr6el/config8
-rw-r--r--debian/config/mipsr6el/defines30
-rw-r--r--debian/config/powerpc/config.powerpc113
-rw-r--r--debian/config/powerpc/config.powerpc-smp6
-rw-r--r--debian/config/powerpc/defines31
-rw-r--r--debian/config/powerpcspe/config33
-rw-r--r--debian/config/powerpcspe/defines15
-rw-r--r--debian/config/ppc64/defines20
-rw-r--r--debian/config/ppc64el/defines20
-rw-r--r--debian/config/riscv64/config58
-rw-r--r--debian/config/riscv64/defines15
-rw-r--r--debian/config/riscv64/none/defines3
-rw-r--r--debian/config/s390/defines4
-rw-r--r--debian/config/s390x/config222
-rw-r--r--debian/config/s390x/defines21
-rw-r--r--debian/config/sh3/defines4
-rw-r--r--debian/config/sh4/config55
-rw-r--r--debian/config/sh4/config.sh7751r168
-rw-r--r--debian/config/sh4/config.sh7785lcr222
-rw-r--r--debian/config/sh4/defines25
-rw-r--r--debian/config/sparc/defines4
-rw-r--r--debian/config/sparc64/defines26
-rw-r--r--debian/config/x32/defines4
-rw-r--r--debian/control14212
-rw-r--r--debian/control.md5sum74
-rw-r--r--debian/copyright265
-rw-r--r--debian/hyperv-daemons.README.Debian14
-rwxr-xr-xdebian/hyperv-daemons.hv-fcopy-daemon.init109
-rw-r--r--debian/hyperv-daemons.hv-fcopy-daemon.service9
-rwxr-xr-xdebian/hyperv-daemons.hv-kvp-daemon.init109
-rw-r--r--debian/hyperv-daemons.hv-kvp-daemon.service9
-rwxr-xr-xdebian/hyperv-daemons.hv-vss-daemon.init109
-rw-r--r--debian/hyperv-daemons.hv-vss-daemon.service9
-rw-r--r--debian/hyperv-daemons.install1
-rw-r--r--debian/installer/kernel-versions35
-rw-r--r--debian/installer/modules/acpi-modules2
-rw-r--r--debian/installer/modules/affs-modules1
-rw-r--r--debian/installer/modules/alpha-generic/ata-modules1
-rw-r--r--debian/installer/modules/alpha-generic/btrfs-modules1
-rw-r--r--debian/installer/modules/alpha-generic/cdrom-core-modules1
-rw-r--r--debian/installer/modules/alpha-generic/compress-modules1
-rw-r--r--debian/installer/modules/alpha-generic/crc-modules1
-rw-r--r--debian/installer/modules/alpha-generic/crypto-dm-modules1
-rw-r--r--debian/installer/modules/alpha-generic/crypto-modules1
-rw-r--r--debian/installer/modules/alpha-generic/event-modules1
-rw-r--r--debian/installer/modules/alpha-generic/ext4-modules1
-rw-r--r--debian/installer/modules/alpha-generic/fat-modules1
-rw-r--r--debian/installer/modules/alpha-generic/fb-modules1
-rw-r--r--debian/installer/modules/alpha-generic/fuse-modules1
-rw-r--r--debian/installer/modules/alpha-generic/i2c-modules1
-rw-r--r--debian/installer/modules/alpha-generic/input-modules1
-rw-r--r--debian/installer/modules/alpha-generic/isofs-modules1
-rw-r--r--debian/installer/modules/alpha-generic/jfs-modules1
-rw-r--r--debian/installer/modules/alpha-generic/kernel-image1
-rw-r--r--debian/installer/modules/alpha-generic/loop-modules1
-rw-r--r--debian/installer/modules/alpha-generic/md-modules1
-rw-r--r--debian/installer/modules/alpha-generic/mouse-modules1
-rw-r--r--debian/installer/modules/alpha-generic/multipath-modules1
-rw-r--r--debian/installer/modules/alpha-generic/nbd-modules1
-rw-r--r--debian/installer/modules/alpha-generic/nic-modules1
-rw-r--r--debian/installer/modules/alpha-generic/nic-pcmcia-modules1
-rw-r--r--debian/installer/modules/alpha-generic/nic-shared-modules1
-rw-r--r--debian/installer/modules/alpha-generic/nic-usb-modules1
-rw-r--r--debian/installer/modules/alpha-generic/nic-wireless-modules1
-rw-r--r--debian/installer/modules/alpha-generic/pata-modules1
-rw-r--r--debian/installer/modules/alpha-generic/pcmcia-modules1
-rw-r--r--debian/installer/modules/alpha-generic/ppp-modules1
-rw-r--r--debian/installer/modules/alpha-generic/sata-modules1
-rw-r--r--debian/installer/modules/alpha-generic/scsi-core-modules1
-rw-r--r--debian/installer/modules/alpha-generic/scsi-modules1
-rw-r--r--debian/installer/modules/alpha-generic/scsi-nic-modules1
-rw-r--r--debian/installer/modules/alpha-generic/serial-modules1
-rw-r--r--debian/installer/modules/alpha-generic/squashfs-modules1
-rw-r--r--debian/installer/modules/alpha-generic/srm-modules1
-rw-r--r--debian/installer/modules/alpha-generic/usb-modules1
-rw-r--r--debian/installer/modules/alpha-generic/usb-serial-modules1
-rw-r--r--debian/installer/modules/alpha-generic/usb-storage-modules1
-rw-r--r--debian/installer/modules/alpha-generic/xfs-modules1
-rw-r--r--debian/installer/modules/alpha-generic/zlib-modules1
-rw-r--r--debian/installer/modules/amd64/acpi-modules2
-rw-r--r--debian/installer/modules/amd64/ata-modules2
-rw-r--r--debian/installer/modules/amd64/btrfs-modules1
-rw-r--r--debian/installer/modules/amd64/cdrom-core-modules2
-rw-r--r--debian/installer/modules/amd64/compress-modules1
-rw-r--r--debian/installer/modules/amd64/crc-modules1
-rw-r--r--debian/installer/modules/amd64/crypto-dm-modules1
-rw-r--r--debian/installer/modules/amd64/crypto-modules1
-rw-r--r--debian/installer/modules/amd64/efi-modules1
-rw-r--r--debian/installer/modules/amd64/event-modules1
-rw-r--r--debian/installer/modules/amd64/ext4-modules1
-rw-r--r--debian/installer/modules/amd64/fat-modules2
-rw-r--r--debian/installer/modules/amd64/fb-modules4
-rw-r--r--debian/installer/modules/amd64/firewire-core-modules1
-rw-r--r--debian/installer/modules/amd64/fuse-modules1
-rw-r--r--debian/installer/modules/amd64/i2c-modules1
-rw-r--r--debian/installer/modules/amd64/input-modules1
-rw-r--r--debian/installer/modules/amd64/isofs-modules1
-rw-r--r--debian/installer/modules/amd64/jfs-modules1
-rw-r--r--debian/installer/modules/amd64/kernel-image1
-rw-r--r--debian/installer/modules/amd64/loop-modules2
-rw-r--r--debian/installer/modules/amd64/md-modules2
-rw-r--r--debian/installer/modules/amd64/mmc-core-modules1
-rw-r--r--debian/installer/modules/amd64/mmc-modules1
-rw-r--r--debian/installer/modules/amd64/mouse-modules1
-rw-r--r--debian/installer/modules/amd64/mtd-core-modules1
-rw-r--r--debian/installer/modules/amd64/multipath-modules1
-rw-r--r--debian/installer/modules/amd64/nbd-modules1
-rw-r--r--debian/installer/modules/amd64/nic-modules1
-rw-r--r--debian/installer/modules/amd64/nic-pcmcia-modules1
-rw-r--r--debian/installer/modules/amd64/nic-shared-modules1
-rw-r--r--debian/installer/modules/amd64/nic-usb-modules1
-rw-r--r--debian/installer/modules/amd64/nic-wireless-modules1
-rw-r--r--debian/installer/modules/amd64/pata-modules2
-rw-r--r--debian/installer/modules/amd64/pcmcia-modules1
-rw-r--r--debian/installer/modules/amd64/pcmcia-storage-modules1
-rw-r--r--debian/installer/modules/amd64/ppp-modules2
-rw-r--r--debian/installer/modules/amd64/sata-modules1
-rw-r--r--debian/installer/modules/amd64/scsi-core-modules4
-rw-r--r--debian/installer/modules/amd64/scsi-modules3
-rw-r--r--debian/installer/modules/amd64/scsi-nic-modules1
-rw-r--r--debian/installer/modules/amd64/serial-modules1
-rw-r--r--debian/installer/modules/amd64/sound-modules1
-rw-r--r--debian/installer/modules/amd64/speakup-modules1
-rw-r--r--debian/installer/modules/amd64/squashfs-modules1
-rw-r--r--debian/installer/modules/amd64/udf-modules1
-rw-r--r--debian/installer/modules/amd64/uinput-modules1
-rw-r--r--debian/installer/modules/amd64/usb-modules1
-rw-r--r--debian/installer/modules/amd64/usb-serial-modules1
-rw-r--r--debian/installer/modules/amd64/usb-storage-modules2
-rw-r--r--debian/installer/modules/amd64/xfs-modules2
-rw-r--r--debian/installer/modules/arm64/ata-modules2
-rw-r--r--debian/installer/modules/arm64/btrfs-modules1
-rw-r--r--debian/installer/modules/arm64/cdrom-core-modules2
-rw-r--r--debian/installer/modules/arm64/compress-modules1
-rw-r--r--debian/installer/modules/arm64/crc-modules1
-rw-r--r--debian/installer/modules/arm64/crypto-dm-modules1
-rw-r--r--debian/installer/modules/arm64/crypto-modules1
-rw-r--r--debian/installer/modules/arm64/efi-modules1
-rw-r--r--debian/installer/modules/arm64/event-modules1
-rw-r--r--debian/installer/modules/arm64/ext4-modules1
-rw-r--r--debian/installer/modules/arm64/fat-modules1
-rw-r--r--debian/installer/modules/arm64/fb-modules11
-rw-r--r--debian/installer/modules/arm64/fuse-modules1
-rw-r--r--debian/installer/modules/arm64/i2c-modules2
-rw-r--r--debian/installer/modules/arm64/input-modules1
-rw-r--r--debian/installer/modules/arm64/isofs-modules1
-rw-r--r--debian/installer/modules/arm64/jfs-modules1
-rw-r--r--debian/installer/modules/arm64/kernel-image25
-rw-r--r--debian/installer/modules/arm64/leds-modules1
-rw-r--r--debian/installer/modules/arm64/loop-modules1
-rw-r--r--debian/installer/modules/arm64/md-modules1
-rw-r--r--debian/installer/modules/arm64/mmc-modules3
-rw-r--r--debian/installer/modules/arm64/mtd-core-modules1
-rw-r--r--debian/installer/modules/arm64/multipath-modules1
-rw-r--r--debian/installer/modules/arm64/nbd-modules1
-rw-r--r--debian/installer/modules/arm64/nic-modules1
-rw-r--r--debian/installer/modules/arm64/nic-shared-modules1
-rw-r--r--debian/installer/modules/arm64/nic-usb-modules1
-rw-r--r--debian/installer/modules/arm64/nic-wireless-modules1
-rw-r--r--debian/installer/modules/arm64/ppp-modules1
-rw-r--r--debian/installer/modules/arm64/sata-modules4
-rw-r--r--debian/installer/modules/arm64/scsi-core-modules1
-rw-r--r--debian/installer/modules/arm64/scsi-modules1
-rw-r--r--debian/installer/modules/arm64/scsi-nic-modules1
-rw-r--r--debian/installer/modules/arm64/squashfs-modules1
-rw-r--r--debian/installer/modules/arm64/udf-modules1
-rw-r--r--debian/installer/modules/arm64/uinput-modules1
-rw-r--r--debian/installer/modules/arm64/usb-modules6
-rw-r--r--debian/installer/modules/arm64/usb-serial-modules1
-rw-r--r--debian/installer/modules/arm64/usb-storage-modules1
-rw-r--r--debian/installer/modules/arm64/xfs-modules1
-rw-r--r--debian/installer/modules/armel-marvell/btrfs-modules1
-rw-r--r--debian/installer/modules/armel-marvell/cdrom-core-modules2
-rw-r--r--debian/installer/modules/armel-marvell/compress-modules1
-rw-r--r--debian/installer/modules/armel-marvell/crc-modules1
-rw-r--r--debian/installer/modules/armel-marvell/crypto-dm-modules1
-rw-r--r--debian/installer/modules/armel-marvell/crypto-modules1
-rw-r--r--debian/installer/modules/armel-marvell/event-modules2
-rw-r--r--debian/installer/modules/armel-marvell/ext4-modules1
-rw-r--r--debian/installer/modules/armel-marvell/fat-modules1
-rw-r--r--debian/installer/modules/armel-marvell/fb-modules2
-rw-r--r--debian/installer/modules/armel-marvell/fuse-modules1
-rw-r--r--debian/installer/modules/armel-marvell/input-modules3
-rw-r--r--debian/installer/modules/armel-marvell/ipv6-modules1
-rw-r--r--debian/installer/modules/armel-marvell/isofs-modules1
-rw-r--r--debian/installer/modules/armel-marvell/jffs2-modules1
-rw-r--r--debian/installer/modules/armel-marvell/jfs-modules1
-rw-r--r--debian/installer/modules/armel-marvell/kernel-image1
-rw-r--r--debian/installer/modules/armel-marvell/leds-modules2
-rw-r--r--debian/installer/modules/armel-marvell/loop-modules1
-rw-r--r--debian/installer/modules/armel-marvell/md-modules1
-rw-r--r--debian/installer/modules/armel-marvell/minix-modules1
-rw-r--r--debian/installer/modules/armel-marvell/mmc-core-modules1
-rw-r--r--debian/installer/modules/armel-marvell/mmc-modules2
-rw-r--r--debian/installer/modules/armel-marvell/mouse-modules1
-rw-r--r--debian/installer/modules/armel-marvell/mtd-core-modules1
-rw-r--r--debian/installer/modules/armel-marvell/mtd-modules12
-rw-r--r--debian/installer/modules/armel-marvell/multipath-modules1
-rw-r--r--debian/installer/modules/armel-marvell/nbd-modules1
-rw-r--r--debian/installer/modules/armel-marvell/nic-modules2
-rw-r--r--debian/installer/modules/armel-marvell/nic-shared-modules1
-rw-r--r--debian/installer/modules/armel-marvell/nic-usb-modules1
-rw-r--r--debian/installer/modules/armel-marvell/ppp-modules2
-rw-r--r--debian/installer/modules/armel-marvell/sata-modules2
-rw-r--r--debian/installer/modules/armel-marvell/scsi-core-modules1
-rw-r--r--debian/installer/modules/armel-marvell/squashfs-modules1
-rw-r--r--debian/installer/modules/armel-marvell/udf-modules1
-rw-r--r--debian/installer/modules/armel-marvell/uinput-modules1
-rw-r--r--debian/installer/modules/armel-marvell/usb-modules2
-rw-r--r--debian/installer/modules/armel-marvell/usb-serial-modules1
-rw-r--r--debian/installer/modules/armel-marvell/usb-storage-modules1
-rw-r--r--debian/installer/modules/armel-marvell/zlib-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/ata-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/btrfs-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/cdrom-core-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/compress-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/crc-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/crypto-dm-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/crypto-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/efi-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/event-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/ext4-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/fat-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/fb-modules5
-rw-r--r--debian/installer/modules/armhf-armmp/fuse-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/i2c-modules5
-rw-r--r--debian/installer/modules/armhf-armmp/input-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/isofs-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/jfs-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/kernel-image23
-rw-r--r--debian/installer/modules/armhf-armmp/leds-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/loop-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/md-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/mmc-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/mtd-modules3
-rw-r--r--debian/installer/modules/armhf-armmp/multipath-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/nbd-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/nic-modules14
-rw-r--r--debian/installer/modules/armhf-armmp/nic-shared-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/nic-usb-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/nic-wireless-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/pata-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/ppp-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/sata-modules5
-rw-r--r--debian/installer/modules/armhf-armmp/scsi-core-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/scsi-modules2
-rw-r--r--debian/installer/modules/armhf-armmp/scsi-nic-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/squashfs-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/udf-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/uinput-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/usb-modules4
-rw-r--r--debian/installer/modules/armhf-armmp/usb-serial-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/usb-storage-modules1
-rw-r--r--debian/installer/modules/armhf-armmp/zlib-modules1
-rw-r--r--debian/installer/modules/ata-modules2
-rw-r--r--debian/installer/modules/btrfs-modules1
-rw-r--r--debian/installer/modules/cdrom-core-modules2
-rw-r--r--debian/installer/modules/compress-modules3
-rw-r--r--debian/installer/modules/crc-modules6
-rw-r--r--debian/installer/modules/crypto-dm-modules1
-rw-r--r--debian/installer/modules/crypto-modules14
-rw-r--r--debian/installer/modules/efi-modules2
-rw-r--r--debian/installer/modules/event-modules1
-rw-r--r--debian/installer/modules/ext4-modules2
-rw-r--r--debian/installer/modules/fat-modules6
-rw-r--r--debian/installer/modules/fb-modules6
-rw-r--r--debian/installer/modules/firewire-core-modules3
-rw-r--r--debian/installer/modules/fuse-modules1
-rw-r--r--debian/installer/modules/hfs-modules2
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/ata-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/btrfs-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/cdrom-core-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/compress-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/crc-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/crypto-dm-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/crypto-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/event-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/ext4-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/fat-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/fb-modules4
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/fuse-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/input-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/isofs-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/jfs-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/kernel-image1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/loop-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/md-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/mouse-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/multipath-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/nbd-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/nic-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/nic-shared-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/nic-usb-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/pata-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/ppp-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/sata-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/scsi-core-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/scsi-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/serial-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/squashfs-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/usb-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/usb-serial-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/usb-storage-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/xfs-modules1
-rw-r--r--debian/installer/modules/hppa-parisc64-smp/zlib-modules1
-rw-r--r--debian/installer/modules/hppa/ata-modules1
-rw-r--r--debian/installer/modules/hppa/btrfs-modules1
-rw-r--r--debian/installer/modules/hppa/cdrom-core-modules2
-rw-r--r--debian/installer/modules/hppa/compress-modules1
-rw-r--r--debian/installer/modules/hppa/crc-modules1
-rw-r--r--debian/installer/modules/hppa/crypto-dm-modules1
-rw-r--r--debian/installer/modules/hppa/crypto-modules1
-rw-r--r--debian/installer/modules/hppa/event-modules1
-rw-r--r--debian/installer/modules/hppa/ext4-modules1
-rw-r--r--debian/installer/modules/hppa/fat-modules2
-rw-r--r--debian/installer/modules/hppa/fuse-modules1
-rw-r--r--debian/installer/modules/hppa/input-modules6
-rw-r--r--debian/installer/modules/hppa/isofs-modules1
-rw-r--r--debian/installer/modules/hppa/jfs-modules1
-rw-r--r--debian/installer/modules/hppa/kernel-image1
-rw-r--r--debian/installer/modules/hppa/loop-modules2
-rw-r--r--debian/installer/modules/hppa/md-modules2
-rw-r--r--debian/installer/modules/hppa/mouse-modules1
-rw-r--r--debian/installer/modules/hppa/multipath-modules1
-rw-r--r--debian/installer/modules/hppa/nbd-modules1
-rw-r--r--debian/installer/modules/hppa/nic-modules4
-rw-r--r--debian/installer/modules/hppa/nic-shared-modules1
-rw-r--r--debian/installer/modules/hppa/nic-usb-modules1
-rw-r--r--debian/installer/modules/hppa/pata-modules2
-rw-r--r--debian/installer/modules/hppa/ppp-modules2
-rw-r--r--debian/installer/modules/hppa/sata-modules2
-rw-r--r--debian/installer/modules/hppa/scsi-core-modules1
-rw-r--r--debian/installer/modules/hppa/scsi-modules19
-rw-r--r--debian/installer/modules/hppa/serial-modules1
-rw-r--r--debian/installer/modules/hppa/squashfs-modules1
-rw-r--r--debian/installer/modules/hppa/usb-modules1
-rw-r--r--debian/installer/modules/hppa/usb-serial-modules1
-rw-r--r--debian/installer/modules/hppa/usb-storage-modules2
-rw-r--r--debian/installer/modules/hppa/xfs-modules1
-rw-r--r--debian/installer/modules/hppa/zlib-modules1
-rw-r--r--debian/installer/modules/i2c-modules3
-rw-r--r--debian/installer/modules/i386/acpi-modules2
-rw-r--r--debian/installer/modules/i386/ata-modules2
-rw-r--r--debian/installer/modules/i386/btrfs-modules1
-rw-r--r--debian/installer/modules/i386/cdrom-core-modules2
-rw-r--r--debian/installer/modules/i386/compress-modules1
-rw-r--r--debian/installer/modules/i386/crc-modules1
-rw-r--r--debian/installer/modules/i386/crypto-dm-modules1
-rw-r--r--debian/installer/modules/i386/crypto-modules1
-rw-r--r--debian/installer/modules/i386/efi-modules1
-rw-r--r--debian/installer/modules/i386/event-modules1
-rw-r--r--debian/installer/modules/i386/ext4-modules1
-rw-r--r--debian/installer/modules/i386/fat-modules2
-rw-r--r--debian/installer/modules/i386/fb-modules6
-rw-r--r--debian/installer/modules/i386/firewire-core-modules1
-rw-r--r--debian/installer/modules/i386/fuse-modules1
-rw-r--r--debian/installer/modules/i386/i2c-modules1
-rw-r--r--debian/installer/modules/i386/input-modules5
-rw-r--r--debian/installer/modules/i386/isofs-modules1
-rw-r--r--debian/installer/modules/i386/jfs-modules1
-rw-r--r--debian/installer/modules/i386/kernel-image1
-rw-r--r--debian/installer/modules/i386/loop-modules2
-rw-r--r--debian/installer/modules/i386/md-modules2
-rw-r--r--debian/installer/modules/i386/mmc-core-modules1
-rw-r--r--debian/installer/modules/i386/mmc-modules1
-rw-r--r--debian/installer/modules/i386/mouse-modules1
-rw-r--r--debian/installer/modules/i386/mtd-core-modules1
-rw-r--r--debian/installer/modules/i386/multipath-modules1
-rw-r--r--debian/installer/modules/i386/nbd-modules1
-rw-r--r--debian/installer/modules/i386/nic-modules1
-rw-r--r--debian/installer/modules/i386/nic-pcmcia-modules1
-rw-r--r--debian/installer/modules/i386/nic-shared-modules1
-rw-r--r--debian/installer/modules/i386/nic-usb-modules1
-rw-r--r--debian/installer/modules/i386/nic-wireless-modules1
-rw-r--r--debian/installer/modules/i386/pata-modules2
-rw-r--r--debian/installer/modules/i386/pcmcia-modules1
-rw-r--r--debian/installer/modules/i386/pcmcia-storage-modules1
-rw-r--r--debian/installer/modules/i386/ppp-modules2
-rw-r--r--debian/installer/modules/i386/sata-modules2
-rw-r--r--debian/installer/modules/i386/scsi-core-modules4
-rw-r--r--debian/installer/modules/i386/scsi-modules1
-rw-r--r--debian/installer/modules/i386/scsi-nic-modules1
-rw-r--r--debian/installer/modules/i386/serial-modules1
-rw-r--r--debian/installer/modules/i386/sound-modules1
-rw-r--r--debian/installer/modules/i386/speakup-modules1
-rw-r--r--debian/installer/modules/i386/squashfs-modules1
-rw-r--r--debian/installer/modules/i386/udf-modules1
-rw-r--r--debian/installer/modules/i386/uinput-modules1
-rw-r--r--debian/installer/modules/i386/usb-modules1
-rw-r--r--debian/installer/modules/i386/usb-serial-modules1
-rw-r--r--debian/installer/modules/i386/usb-storage-modules2
-rw-r--r--debian/installer/modules/i386/xfs-modules2
-rw-r--r--debian/installer/modules/ia64/ata-modules1
-rw-r--r--debian/installer/modules/ia64/btrfs-modules1
-rw-r--r--debian/installer/modules/ia64/cdrom-core-modules2
-rw-r--r--debian/installer/modules/ia64/compress-modules1
-rw-r--r--debian/installer/modules/ia64/crc-modules2
-rw-r--r--debian/installer/modules/ia64/crypto-dm-modules1
-rw-r--r--debian/installer/modules/ia64/crypto-modules1
-rw-r--r--debian/installer/modules/ia64/event-modules1
-rw-r--r--debian/installer/modules/ia64/ext4-modules1
-rw-r--r--debian/installer/modules/ia64/fat-modules1
-rw-r--r--debian/installer/modules/ia64/fb-modules2
-rw-r--r--debian/installer/modules/ia64/firewire-core-modules2
-rw-r--r--debian/installer/modules/ia64/fuse-modules1
-rw-r--r--debian/installer/modules/ia64/i2c-modules1
-rw-r--r--debian/installer/modules/ia64/ide-core-modules1
-rw-r--r--debian/installer/modules/ia64/ide-modules3
-rw-r--r--debian/installer/modules/ia64/input-modules1
-rw-r--r--debian/installer/modules/ia64/isofs-modules1
-rw-r--r--debian/installer/modules/ia64/jfs-modules1
-rw-r--r--debian/installer/modules/ia64/kernel-image1
-rw-r--r--debian/installer/modules/ia64/loop-modules2
-rw-r--r--debian/installer/modules/ia64/md-modules2
-rw-r--r--debian/installer/modules/ia64/mouse-modules1
-rw-r--r--debian/installer/modules/ia64/mtd-core-modules1
-rw-r--r--debian/installer/modules/ia64/multipath-modules1
-rw-r--r--debian/installer/modules/ia64/nbd-modules1
-rw-r--r--debian/installer/modules/ia64/nic-modules1
-rw-r--r--debian/installer/modules/ia64/nic-shared-modules1
-rw-r--r--debian/installer/modules/ia64/nic-usb-modules1
-rw-r--r--debian/installer/modules/ia64/pata-modules1
-rw-r--r--debian/installer/modules/ia64/pcmcia-modules4
-rw-r--r--debian/installer/modules/ia64/ppp-modules2
-rw-r--r--debian/installer/modules/ia64/sata-modules2
-rw-r--r--debian/installer/modules/ia64/scsi-core-modules1
-rw-r--r--debian/installer/modules/ia64/scsi-modules1
-rw-r--r--debian/installer/modules/ia64/scsi-nic-modules1
-rw-r--r--debian/installer/modules/ia64/serial-modules3
-rw-r--r--debian/installer/modules/ia64/sn-modules2
-rw-r--r--debian/installer/modules/ia64/squashfs-modules1
-rw-r--r--debian/installer/modules/ia64/udf-modules1
-rw-r--r--debian/installer/modules/ia64/uinput-modules1
-rw-r--r--debian/installer/modules/ia64/usb-modules1
-rw-r--r--debian/installer/modules/ia64/usb-serial-modules1
-rw-r--r--debian/installer/modules/ia64/usb-storage-modules2
-rw-r--r--debian/installer/modules/ia64/xfs-modules2
-rw-r--r--debian/installer/modules/input-modules42
-rw-r--r--debian/installer/modules/ipv6-modules1
-rw-r--r--debian/installer/modules/isofs-modules1
-rw-r--r--debian/installer/modules/jffs2-modules1
-rw-r--r--debian/installer/modules/jfs-modules1
-rw-r--r--debian/installer/modules/kernel-image22
-rw-r--r--debian/installer/modules/leds-modules1
-rw-r--r--debian/installer/modules/loop-modules1
-rw-r--r--debian/installer/modules/m68k/affs-modules1
-rw-r--r--debian/installer/modules/m68k/ata-modules1
-rw-r--r--debian/installer/modules/m68k/btrfs-modules1
-rw-r--r--debian/installer/modules/m68k/cdrom-core-modules3
-rw-r--r--debian/installer/modules/m68k/compress-modules1
-rw-r--r--debian/installer/modules/m68k/crc-modules1
-rw-r--r--debian/installer/modules/m68k/crypto-modules1
-rw-r--r--debian/installer/modules/m68k/ext4-modules1
-rw-r--r--debian/installer/modules/m68k/fat-modules1
-rw-r--r--debian/installer/modules/m68k/fuse-modules1
-rw-r--r--debian/installer/modules/m68k/hfs-modules1
-rw-r--r--debian/installer/modules/m68k/ide-core-modules1
-rw-r--r--debian/installer/modules/m68k/ide-modules6
-rw-r--r--debian/installer/modules/m68k/isofs-modules1
-rw-r--r--debian/installer/modules/m68k/kernel-image1
-rw-r--r--debian/installer/modules/m68k/loop-modules1
-rw-r--r--debian/installer/modules/m68k/md-modules1
-rw-r--r--debian/installer/modules/m68k/nbd-modules1
-rw-r--r--debian/installer/modules/m68k/nic-modules1
-rw-r--r--debian/installer/modules/m68k/nic-shared-modules1
-rw-r--r--debian/installer/modules/m68k/pata-modules1
-rw-r--r--debian/installer/modules/m68k/ppp-modules1
-rw-r--r--debian/installer/modules/m68k/scsi-core-modules1
-rw-r--r--debian/installer/modules/m68k/scsi-modules13
-rw-r--r--debian/installer/modules/m68k/squashfs-modules1
-rw-r--r--debian/installer/modules/m68k/udf-modules1
-rw-r--r--debian/installer/modules/m68k/zlib-modules1
-rw-r--r--debian/installer/modules/md-modules16
-rw-r--r--debian/installer/modules/minix-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/affs-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/ata-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/btrfs-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/cdrom-core-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/compress-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/crc-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/crypto-dm-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/crypto-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/event-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/ext4-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/fat-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/fb-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/fuse-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/hfs-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/i2c-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/input-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/isofs-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/jfs-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/kernel-image1
-rw-r--r--debian/installer/modules/mips-4kc-malta/loop-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/md-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/minix-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/mmc-core-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/mmc-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/mouse-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/mtd-core-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/multipath-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/nbd-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/nic-modules4
-rw-r--r--debian/installer/modules/mips-4kc-malta/nic-shared-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/nic-usb-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/nic-wireless-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/pata-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/ppp-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/qnx4-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/sata-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/scsi-core-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/scsi-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/scsi-nic-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/sound-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/squashfs-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/udf-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/usb-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/usb-serial-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/usb-storage-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/xfs-modules1
-rw-r--r--debian/installer/modules/mips-4kc-malta/zlib-modules1
-rw-r--r--debian/installer/modules/mips-octeon/affs-modules1
-rw-r--r--debian/installer/modules/mips-octeon/btrfs-modules1
-rw-r--r--debian/installer/modules/mips-octeon/cdrom-core-modules1
-rw-r--r--debian/installer/modules/mips-octeon/compress-modules1
-rw-r--r--debian/installer/modules/mips-octeon/crc-modules1
-rw-r--r--debian/installer/modules/mips-octeon/crypto-dm-modules1
-rw-r--r--debian/installer/modules/mips-octeon/crypto-modules1
-rw-r--r--debian/installer/modules/mips-octeon/event-modules1
-rw-r--r--debian/installer/modules/mips-octeon/ext4-modules1
-rw-r--r--debian/installer/modules/mips-octeon/fat-modules1
-rw-r--r--debian/installer/modules/mips-octeon/fuse-modules1
-rw-r--r--debian/installer/modules/mips-octeon/hfs-modules1
-rw-r--r--debian/installer/modules/mips-octeon/input-modules1
-rw-r--r--debian/installer/modules/mips-octeon/isofs-modules1
-rw-r--r--debian/installer/modules/mips-octeon/jfs-modules1
-rw-r--r--debian/installer/modules/mips-octeon/kernel-image1
-rw-r--r--debian/installer/modules/mips-octeon/loop-modules1
-rw-r--r--debian/installer/modules/mips-octeon/md-modules1
-rw-r--r--debian/installer/modules/mips-octeon/minix-modules1
-rw-r--r--debian/installer/modules/mips-octeon/multipath-modules1
-rw-r--r--debian/installer/modules/mips-octeon/nbd-modules1
-rw-r--r--debian/installer/modules/mips-octeon/nic-modules15
-rw-r--r--debian/installer/modules/mips-octeon/nic-shared-modules1
-rw-r--r--debian/installer/modules/mips-octeon/nic-usb-modules1
-rw-r--r--debian/installer/modules/mips-octeon/nic-wireless-modules1
-rw-r--r--debian/installer/modules/mips-octeon/pata-modules1
-rw-r--r--debian/installer/modules/mips-octeon/ppp-modules1
-rw-r--r--debian/installer/modules/mips-octeon/qnx4-modules1
-rw-r--r--debian/installer/modules/mips-octeon/rtc-modules1
-rw-r--r--debian/installer/modules/mips-octeon/sata-modules1
-rw-r--r--debian/installer/modules/mips-octeon/scsi-core-modules1
-rw-r--r--debian/installer/modules/mips-octeon/scsi-modules5
-rw-r--r--debian/installer/modules/mips-octeon/scsi-nic-modules1
-rw-r--r--debian/installer/modules/mips-octeon/sound-modules1
-rw-r--r--debian/installer/modules/mips-octeon/squashfs-modules1
-rw-r--r--debian/installer/modules/mips-octeon/udf-modules1
-rw-r--r--debian/installer/modules/mips-octeon/usb-modules2
-rw-r--r--debian/installer/modules/mips-octeon/usb-serial-modules1
-rw-r--r--debian/installer/modules/mips-octeon/usb-storage-modules1
-rw-r--r--debian/installer/modules/mips-octeon/xfs-modules1
-rw-r--r--debian/installer/modules/mips-octeon/zlib-modules1
-rw-r--r--debian/installer/modules/mips/btrfs-modules1
-rw-r--r--debian/installer/modules/mips/compress-modules1
-rw-r--r--debian/installer/modules/mips/crc-modules1
-rw-r--r--debian/installer/modules/mips/crypto-dm-modules1
-rw-r--r--debian/installer/modules/mips/crypto-modules1
-rw-r--r--debian/installer/modules/mips/ext4-modules1
-rw-r--r--debian/installer/modules/mips/fuse-modules1
-rw-r--r--debian/installer/modules/mips/isofs-modules1
-rw-r--r--debian/installer/modules/mips/jfs-modules2
-rw-r--r--debian/installer/modules/mips/kernel-image1
-rw-r--r--debian/installer/modules/mips/loop-modules2
-rw-r--r--debian/installer/modules/mips/md-modules2
-rw-r--r--debian/installer/modules/mips/multipath-modules1
-rw-r--r--debian/installer/modules/mips/nbd-modules1
-rw-r--r--debian/installer/modules/mips/nic-shared-modules1
-rw-r--r--debian/installer/modules/mips/squashfs-modules1
-rw-r--r--debian/installer/modules/mips/udf-modules1
-rw-r--r--debian/installer/modules/mips/xfs-modules2
-rw-r--r--debian/installer/modules/mips/zlib-modules1
l---------debian/installer/modules/mips32r61
l---------debian/installer/modules/mips32r6el1
l---------debian/installer/modules/mips641
l---------debian/installer/modules/mips64-5kc-malta1
l---------debian/installer/modules/mips64-octeon1
l---------debian/installer/modules/mips64el-5kc-malta1
l---------debian/installer/modules/mips64el-loongson-31
l---------debian/installer/modules/mips64el-octeon1
l---------debian/installer/modules/mips64r61
l---------debian/installer/modules/mips64r6el1
l---------debian/installer/modules/mipsel-4kc-malta1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/affs-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/ata-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/btrfs-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/cdrom-core-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/compress-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/crc-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/crypto-dm-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/crypto-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/event-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/ext4-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/fat-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/fb-modules5
-rw-r--r--debian/installer/modules/mipsel-loongson-3/firewire-core-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/fuse-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/hfs-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/input-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/isofs-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/jfs-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/kernel-image1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/loop-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/md-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/minix-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/mtd-core-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/multipath-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/nbd-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/nfs-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/nic-modules11
-rw-r--r--debian/installer/modules/mipsel-loongson-3/nic-shared-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/nic-usb-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/nic-wireless-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/pata-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/ppp-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/qnx4-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/sata-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/scsi-core-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/scsi-modules5
-rw-r--r--debian/installer/modules/mipsel-loongson-3/scsi-nic-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/sound-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/speakup-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/squashfs-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/udf-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/usb-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/usb-serial-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/usb-storage-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/xfs-modules1
-rw-r--r--debian/installer/modules/mipsel-loongson-3/zlib-modules1
l---------debian/installer/modules/mipsel-octeon1
-rw-r--r--debian/installer/modules/mmc-core-modules1
-rw-r--r--debian/installer/modules/mmc-modules8
-rw-r--r--debian/installer/modules/mouse-modules1
-rw-r--r--debian/installer/modules/mtd-core-modules1
-rw-r--r--debian/installer/modules/mtd-modules1
-rw-r--r--debian/installer/modules/multipath-modules3
-rw-r--r--debian/installer/modules/nbd-modules1
-rw-r--r--debian/installer/modules/nfs-modules3
-rw-r--r--debian/installer/modules/nic-modules26
-rw-r--r--debian/installer/modules/nic-pcmcia-modules10
-rw-r--r--debian/installer/modules/nic-shared-modules7
-rw-r--r--debian/installer/modules/nic-usb-modules15
-rw-r--r--debian/installer/modules/nic-wireless-modules27
-rw-r--r--debian/installer/modules/pata-modules9
-rw-r--r--debian/installer/modules/pcmcia-modules8
-rw-r--r--debian/installer/modules/pcmcia-storage-modules2
-rw-r--r--debian/installer/modules/powerpc-powerpc64/affs-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/ata-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/btrfs-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/cdrom-core-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/compress-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/crc-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/crypto-dm-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/crypto-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/event-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/ext4-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/fancontrol-modules19
-rw-r--r--debian/installer/modules/powerpc-powerpc64/fat-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/fb-modules2
-rw-r--r--debian/installer/modules/powerpc-powerpc64/firewire-core-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/fuse-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/hfs-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/hypervisor-modules2
-rw-r--r--debian/installer/modules/powerpc-powerpc64/i2c-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/input-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/isofs-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/jfs-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/kernel-image1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/loop-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/md-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/mmc-core-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/mouse-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/mtd-core-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/multipath-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/nbd-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/nic-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/nic-pcmcia-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/nic-shared-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/nic-usb-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/nic-wireless-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/pata-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/pcmcia-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/pcmcia-storage-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/ppp-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/sata-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/scsi-core-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/scsi-modules7
-rw-r--r--debian/installer/modules/powerpc-powerpc64/scsi-nic-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/serial-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/squashfs-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/udf-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/uinput-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/usb-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/usb-serial-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/usb-storage-modules1
-rw-r--r--debian/installer/modules/powerpc-powerpc64/xfs-modules1
-rw-r--r--debian/installer/modules/powerpc/affs-modules2
-rw-r--r--debian/installer/modules/powerpc/ata-modules1
-rw-r--r--debian/installer/modules/powerpc/btrfs-modules1
-rw-r--r--debian/installer/modules/powerpc/cdrom-core-modules2
-rw-r--r--debian/installer/modules/powerpc/compress-modules1
-rw-r--r--debian/installer/modules/powerpc/crc-modules1
-rw-r--r--debian/installer/modules/powerpc/crypto-dm-modules1
-rw-r--r--debian/installer/modules/powerpc/crypto-modules1
-rw-r--r--debian/installer/modules/powerpc/event-modules1
-rw-r--r--debian/installer/modules/powerpc/ext4-modules1
-rw-r--r--debian/installer/modules/powerpc/fat-modules2
-rw-r--r--debian/installer/modules/powerpc/fb-modules7
-rw-r--r--debian/installer/modules/powerpc/firewire-core-modules1
-rw-r--r--debian/installer/modules/powerpc/fuse-modules1
-rw-r--r--debian/installer/modules/powerpc/hfs-modules1
-rw-r--r--debian/installer/modules/powerpc/input-modules3
-rw-r--r--debian/installer/modules/powerpc/isofs-modules1
-rw-r--r--debian/installer/modules/powerpc/jfs-modules2
-rw-r--r--debian/installer/modules/powerpc/kernel-image2
-rw-r--r--debian/installer/modules/powerpc/loop-modules2
-rw-r--r--debian/installer/modules/powerpc/md-modules2
-rw-r--r--debian/installer/modules/powerpc/mmc-core-modules1
-rw-r--r--debian/installer/modules/powerpc/mouse-modules1
-rw-r--r--debian/installer/modules/powerpc/multipath-modules1
-rw-r--r--debian/installer/modules/powerpc/nbd-modules1
-rw-r--r--debian/installer/modules/powerpc/nic-modules4
-rw-r--r--debian/installer/modules/powerpc/nic-pcmcia-modules1
-rw-r--r--debian/installer/modules/powerpc/nic-shared-modules2
-rw-r--r--debian/installer/modules/powerpc/nic-usb-modules1
-rw-r--r--debian/installer/modules/powerpc/nic-wireless-modules1
-rw-r--r--debian/installer/modules/powerpc/pata-modules1
-rw-r--r--debian/installer/modules/powerpc/pcmcia-modules1
-rw-r--r--debian/installer/modules/powerpc/pcmcia-storage-modules2
-rw-r--r--debian/installer/modules/powerpc/ppp-modules2
-rw-r--r--debian/installer/modules/powerpc/sata-modules2
-rw-r--r--debian/installer/modules/powerpc/scsi-core-modules1
-rw-r--r--debian/installer/modules/powerpc/scsi-modules1
-rw-r--r--debian/installer/modules/powerpc/scsi-nic-modules1
-rw-r--r--debian/installer/modules/powerpc/serial-modules1
-rw-r--r--debian/installer/modules/powerpc/squashfs-modules1
-rw-r--r--debian/installer/modules/powerpc/udf-modules1
-rw-r--r--debian/installer/modules/powerpc/uinput-modules1
-rw-r--r--debian/installer/modules/powerpc/usb-modules1
-rw-r--r--debian/installer/modules/powerpc/usb-serial-modules1
-rw-r--r--debian/installer/modules/powerpc/usb-storage-modules2
-rw-r--r--debian/installer/modules/powerpc/xfs-modules2
-rw-r--r--debian/installer/modules/powerpc/zlib-modules1
l---------debian/installer/modules/ppc641
-rw-r--r--debian/installer/modules/ppc64el/ata-modules1
-rw-r--r--debian/installer/modules/ppc64el/btrfs-modules1
-rw-r--r--debian/installer/modules/ppc64el/cdrom-core-modules1
-rw-r--r--debian/installer/modules/ppc64el/compress-modules1
-rw-r--r--debian/installer/modules/ppc64el/crc-modules1
-rw-r--r--debian/installer/modules/ppc64el/crypto-dm-modules1
-rw-r--r--debian/installer/modules/ppc64el/crypto-modules1
-rw-r--r--debian/installer/modules/ppc64el/event-modules1
-rw-r--r--debian/installer/modules/ppc64el/ext4-modules1
-rw-r--r--debian/installer/modules/ppc64el/fancontrol-modules1
-rw-r--r--debian/installer/modules/ppc64el/fat-modules1
-rw-r--r--debian/installer/modules/ppc64el/fb-modules1
-rw-r--r--debian/installer/modules/ppc64el/firewire-core-modules1
-rw-r--r--debian/installer/modules/ppc64el/fuse-modules1
-rw-r--r--debian/installer/modules/ppc64el/hypervisor-modules1
-rw-r--r--debian/installer/modules/ppc64el/i2c-modules1
-rw-r--r--debian/installer/modules/ppc64el/input-modules1
-rw-r--r--debian/installer/modules/ppc64el/isofs-modules1
-rw-r--r--debian/installer/modules/ppc64el/jfs-modules1
-rw-r--r--debian/installer/modules/ppc64el/kernel-image1
-rw-r--r--debian/installer/modules/ppc64el/loop-modules1
-rw-r--r--debian/installer/modules/ppc64el/md-modules1
-rw-r--r--debian/installer/modules/ppc64el/mouse-modules1
-rw-r--r--debian/installer/modules/ppc64el/mtd-core-modules1
-rw-r--r--debian/installer/modules/ppc64el/multipath-modules1
-rw-r--r--debian/installer/modules/ppc64el/nbd-modules1
-rw-r--r--debian/installer/modules/ppc64el/nic-modules1
-rw-r--r--debian/installer/modules/ppc64el/nic-shared-modules1
-rw-r--r--debian/installer/modules/ppc64el/nic-usb-modules1
-rw-r--r--debian/installer/modules/ppc64el/nic-wireless-modules1
-rw-r--r--debian/installer/modules/ppc64el/ppp-modules1
-rw-r--r--debian/installer/modules/ppc64el/sata-modules1
-rw-r--r--debian/installer/modules/ppc64el/scsi-core-modules1
-rw-r--r--debian/installer/modules/ppc64el/scsi-modules1
-rw-r--r--debian/installer/modules/ppc64el/scsi-nic-modules1
-rw-r--r--debian/installer/modules/ppc64el/serial-modules1
-rw-r--r--debian/installer/modules/ppc64el/squashfs-modules1
-rw-r--r--debian/installer/modules/ppc64el/udf-modules1
-rw-r--r--debian/installer/modules/ppc64el/uinput-modules1
-rw-r--r--debian/installer/modules/ppc64el/usb-modules1
-rw-r--r--debian/installer/modules/ppc64el/usb-serial-modules1
-rw-r--r--debian/installer/modules/ppc64el/usb-storage-modules1
-rw-r--r--debian/installer/modules/ppc64el/xfs-modules1
-rw-r--r--debian/installer/modules/ppp-modules5
-rw-r--r--debian/installer/modules/qnx4-modules1
-rw-r--r--debian/installer/modules/riscv64/ata-modules1
-rw-r--r--debian/installer/modules/riscv64/btrfs-modules1
-rw-r--r--debian/installer/modules/riscv64/cdrom-core-modules1
-rw-r--r--debian/installer/modules/riscv64/compress-modules1
-rw-r--r--debian/installer/modules/riscv64/crc-modules1
-rw-r--r--debian/installer/modules/riscv64/crypto-dm-modules1
-rw-r--r--debian/installer/modules/riscv64/crypto-modules1
-rw-r--r--debian/installer/modules/riscv64/event-modules1
-rw-r--r--debian/installer/modules/riscv64/ext4-modules1
-rw-r--r--debian/installer/modules/riscv64/fat-modules1
-rw-r--r--debian/installer/modules/riscv64/fb-modules1
-rw-r--r--debian/installer/modules/riscv64/fuse-modules1
-rw-r--r--debian/installer/modules/riscv64/i2c-modules1
-rw-r--r--debian/installer/modules/riscv64/input-modules1
-rw-r--r--debian/installer/modules/riscv64/isofs-modules1
-rw-r--r--debian/installer/modules/riscv64/jfs-modules1
-rw-r--r--debian/installer/modules/riscv64/kernel-image1
-rw-r--r--debian/installer/modules/riscv64/loop-modules1
-rw-r--r--debian/installer/modules/riscv64/md-modules1
-rw-r--r--debian/installer/modules/riscv64/mtd-core-modules1
-rw-r--r--debian/installer/modules/riscv64/mtd-modules1
-rw-r--r--debian/installer/modules/riscv64/multipath-modules1
-rw-r--r--debian/installer/modules/riscv64/nbd-modules1
-rw-r--r--debian/installer/modules/riscv64/nic-modules1
-rw-r--r--debian/installer/modules/riscv64/nic-shared-modules1
-rw-r--r--debian/installer/modules/riscv64/nic-usb-modules1
-rw-r--r--debian/installer/modules/riscv64/nic-wireless-modules1
-rw-r--r--debian/installer/modules/riscv64/pata-modules1
-rw-r--r--debian/installer/modules/riscv64/ppp-modules1
-rw-r--r--debian/installer/modules/riscv64/sata-modules1
-rw-r--r--debian/installer/modules/riscv64/scsi-core-modules1
-rw-r--r--debian/installer/modules/riscv64/scsi-modules2
-rw-r--r--debian/installer/modules/riscv64/scsi-nic-modules1
-rw-r--r--debian/installer/modules/riscv64/squashfs-modules1
-rw-r--r--debian/installer/modules/riscv64/udf-modules1
-rw-r--r--debian/installer/modules/riscv64/usb-modules1
-rw-r--r--debian/installer/modules/riscv64/usb-serial-modules1
-rw-r--r--debian/installer/modules/riscv64/usb-storage-modules1
-rw-r--r--debian/installer/modules/riscv64/zlib-modules1
-rw-r--r--debian/installer/modules/rtc-modules2
-rw-r--r--debian/installer/modules/s390x/btrfs-modules1
-rw-r--r--debian/installer/modules/s390x/cdrom-core-modules1
-rw-r--r--debian/installer/modules/s390x/compress-modules1
-rw-r--r--debian/installer/modules/s390x/crc-modules1
-rw-r--r--debian/installer/modules/s390x/crypto-dm-modules1
-rw-r--r--debian/installer/modules/s390x/crypto-modules1
-rw-r--r--debian/installer/modules/s390x/dasd-extra-modules1
-rw-r--r--debian/installer/modules/s390x/dasd-modules2
-rw-r--r--debian/installer/modules/s390x/ext4-modules1
-rw-r--r--debian/installer/modules/s390x/fat-modules2
-rw-r--r--debian/installer/modules/s390x/fuse-modules1
-rw-r--r--debian/installer/modules/s390x/isofs-modules1
-rw-r--r--debian/installer/modules/s390x/kernel-image2
-rw-r--r--debian/installer/modules/s390x/loop-modules1
-rw-r--r--debian/installer/modules/s390x/md-modules2
-rw-r--r--debian/installer/modules/s390x/mtd-core-modules1
-rw-r--r--debian/installer/modules/s390x/multipath-modules1
-rw-r--r--debian/installer/modules/s390x/nbd-modules1
-rw-r--r--debian/installer/modules/s390x/nic-modules6
-rw-r--r--debian/installer/modules/s390x/scsi-core-modules2
-rw-r--r--debian/installer/modules/s390x/scsi-modules1
-rw-r--r--debian/installer/modules/s390x/udf-modules1
-rw-r--r--debian/installer/modules/s390x/xfs-modules2
-rw-r--r--debian/installer/modules/s390x/zlib-modules1
-rw-r--r--debian/installer/modules/sata-modules13
-rw-r--r--debian/installer/modules/scsi-core-modules4
-rw-r--r--debian/installer/modules/scsi-modules48
-rw-r--r--debian/installer/modules/scsi-nic-modules4
-rw-r--r--debian/installer/modules/serial-modules3
-rw-r--r--debian/installer/modules/sh4-sh7751r/btrfs-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/cdrom-core-modules2
-rw-r--r--debian/installer/modules/sh4-sh7751r/compress-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/crc-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/crypto-dm-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/crypto-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/ext4-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/fat-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/firewire-core-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/fuse-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/i2c-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/isofs-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/jfs-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/kernel-image1
-rw-r--r--debian/installer/modules/sh4-sh7751r/loop-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/md-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/minix-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/multipath-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/nbd-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/nic-modules6
-rw-r--r--debian/installer/modules/sh4-sh7751r/nic-shared-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/nic-usb-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/pata-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/ppp-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/sata-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/sound-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/speakup-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/squashfs-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/udf-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/usb-serial-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/usb-storage-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/xfs-modules1
-rw-r--r--debian/installer/modules/sh4-sh7751r/zlib-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/btrfs-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/cdrom-core-modules2
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/compress-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/crc-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/crypto-dm-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/crypto-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/ext4-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/fat-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/firewire-core-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/fuse-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/isofs-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/jfs-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/kernel-image1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/loop-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/md-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/minix-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/multipath-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/nbd-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/nic-modules6
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/nic-shared-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/nic-usb-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/pata-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/ppp-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/sata-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/sound-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/speakup-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/squashfs-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/udf-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/usb-serial-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/xfs-modules1
-rw-r--r--debian/installer/modules/sh4-sh7785lcr/zlib-modules1
-rw-r--r--debian/installer/modules/sound-modules15
-rw-r--r--debian/installer/modules/sparc64/ata-modules1
-rw-r--r--debian/installer/modules/sparc64/btrfs-modules1
-rw-r--r--debian/installer/modules/sparc64/cdrom-core-modules2
-rw-r--r--debian/installer/modules/sparc64/compress-modules1
-rw-r--r--debian/installer/modules/sparc64/crc-modules1
-rw-r--r--debian/installer/modules/sparc64/crypto-dm-modules1
-rw-r--r--debian/installer/modules/sparc64/crypto-modules1
-rw-r--r--debian/installer/modules/sparc64/ext4-modules1
-rw-r--r--debian/installer/modules/sparc64/fat-modules2
-rw-r--r--debian/installer/modules/sparc64/fb-modules1
-rw-r--r--debian/installer/modules/sparc64/fuse-modules1
-rw-r--r--debian/installer/modules/sparc64/i2c-modules1
-rw-r--r--debian/installer/modules/sparc64/input-modules1
-rw-r--r--debian/installer/modules/sparc64/isofs-modules1
-rw-r--r--debian/installer/modules/sparc64/jfs-modules1
-rw-r--r--debian/installer/modules/sparc64/kernel-image1
-rw-r--r--debian/installer/modules/sparc64/md-modules2
-rw-r--r--debian/installer/modules/sparc64/multipath-modules1
-rw-r--r--debian/installer/modules/sparc64/nbd-modules1
-rw-r--r--debian/installer/modules/sparc64/nic-modules4
-rw-r--r--debian/installer/modules/sparc64/nic-shared-modules1
-rw-r--r--debian/installer/modules/sparc64/nic-usb-modules1
-rw-r--r--debian/installer/modules/sparc64/pata-modules1
-rw-r--r--debian/installer/modules/sparc64/ppp-modules2
-rw-r--r--debian/installer/modules/sparc64/sata-modules1
-rw-r--r--debian/installer/modules/sparc64/scsi-core-modules6
-rw-r--r--debian/installer/modules/sparc64/scsi-modules27
-rw-r--r--debian/installer/modules/sparc64/squashfs-modules1
-rw-r--r--debian/installer/modules/sparc64/udf-modules1
-rw-r--r--debian/installer/modules/sparc64/ufs-modules1
-rw-r--r--debian/installer/modules/sparc64/usb-modules1
-rw-r--r--debian/installer/modules/sparc64/usb-serial-modules1
-rw-r--r--debian/installer/modules/sparc64/usb-storage-modules2
-rw-r--r--debian/installer/modules/sparc64/xfs-modules2
-rw-r--r--debian/installer/modules/sparc64/zlib-modules1
-rw-r--r--debian/installer/modules/speakup-modules15
-rw-r--r--debian/installer/modules/squashfs-modules1
-rw-r--r--debian/installer/modules/udf-modules1
-rw-r--r--debian/installer/modules/ufs-modules1
-rw-r--r--debian/installer/modules/uinput-modules1
-rw-r--r--debian/installer/modules/usb-modules21
-rw-r--r--debian/installer/modules/usb-serial-modules28
-rw-r--r--debian/installer/modules/usb-storage-modules2
-rw-r--r--debian/installer/modules/xfs-modules2
-rw-r--r--debian/installer/modules/zlib-modules1
-rw-r--r--debian/installer/package-list466
-rw-r--r--debian/lib/python/debian_linux/__init__.py1
-rw-r--r--debian/lib/python/debian_linux/abi.py42
-rw-r--r--debian/lib/python/debian_linux/config.py256
-rw-r--r--debian/lib/python/debian_linux/debian.py700
-rw-r--r--debian/lib/python/debian_linux/firmware.py90
-rw-r--r--debian/lib/python/debian_linux/gencontrol.py418
-rw-r--r--debian/lib/python/debian_linux/kconfig.py93
-rw-r--r--debian/lib/python/debian_linux/utils.py97
-rw-r--r--debian/libbpf-dev.install4
-rw-r--r--debian/libcpupower-dev.install2
-rw-r--r--debian/libcpupower1.install1
-rw-r--r--debian/libcpupower1.symbols38
-rwxr-xr-xdebian/linux-cpupower.install4
-rwxr-xr-xdebian/linux-cpupower.manpages3
-rw-r--r--debian/linux-headers-4.19.0-21-4kc-malta.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-5kc-malta.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-686-pae.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-686.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-alpha-generic.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-alpha-smp.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-amd64.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-arm64.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-armmp-lpae.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-armmp.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-cloud-amd64.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-itanium.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-loongson-3.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-m68k.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-marvell.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-mckinley.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-mips32r6.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-mips32r6el.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-mips64r6.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-mips64r6el.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-octeon.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-parisc-smp.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-parisc.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-parisc64-smp.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-powerpc-smp.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-powerpc.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-powerpc64.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-powerpc64le.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-powerpcspe.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-riscv64.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-rpi.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-rt-686-pae.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-rt-amd64.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-rt-arm64.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-rt-armmp.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-s390x.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-sh7751r.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-sh7785lcr.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-sparc64-smp.postinst18
-rw-r--r--debian/linux-headers-4.19.0-21-sparc64.postinst18
-rwxr-xr-xdebian/linux-image-4.19.0-21-4kc-malta-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-4kc-malta.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-4kc-malta.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-4kc-malta.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-4kc-malta.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-5kc-malta-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-5kc-malta.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-5kc-malta.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-5kc-malta.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-5kc-malta.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-686-dbg.lintian-overrides15
-rwxr-xr-xdebian/linux-image-4.19.0-21-686-pae-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-686-pae-unsigned.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-686-pae-unsigned.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-686-pae-unsigned.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-686-pae-unsigned.prerm17
-rw-r--r--debian/linux-image-4.19.0-21-686-unsigned.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-686-unsigned.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-686-unsigned.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-686-unsigned.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-alpha-generic-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-alpha-generic.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-alpha-generic.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-alpha-generic.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-alpha-generic.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-alpha-smp-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-alpha-smp.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-alpha-smp.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-alpha-smp.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-alpha-smp.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-amd64-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-amd64-unsigned.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-amd64-unsigned.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-amd64-unsigned.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-amd64-unsigned.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-arm64-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-arm64-unsigned.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-arm64-unsigned.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-arm64-unsigned.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-arm64-unsigned.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-armmp-dbg.lintian-overrides15
-rwxr-xr-xdebian/linux-image-4.19.0-21-armmp-lpae-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-armmp-lpae.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-armmp-lpae.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-armmp-lpae.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-armmp-lpae.prerm17
-rw-r--r--debian/linux-image-4.19.0-21-armmp.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-armmp.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-armmp.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-armmp.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-cloud-amd64-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-cloud-amd64-unsigned.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-cloud-amd64-unsigned.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-cloud-amd64-unsigned.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-cloud-amd64-unsigned.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-itanium-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-itanium.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-itanium.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-itanium.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-itanium.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-loongson-3-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-loongson-3.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-loongson-3.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-loongson-3.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-loongson-3.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-m68k-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-m68k.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-m68k.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-m68k.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-m68k.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-marvell-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-marvell.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-marvell.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-marvell.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-marvell.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-mckinley-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-mckinley.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-mckinley.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-mckinley.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-mckinley.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-mips32r6-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-mips32r6.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-mips32r6.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-mips32r6.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-mips32r6.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-mips32r6el-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-mips32r6el.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-mips32r6el.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-mips32r6el.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-mips32r6el.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-mips64r6-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-mips64r6.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-mips64r6.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-mips64r6.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-mips64r6.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-mips64r6el-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-mips64r6el.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-mips64r6el.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-mips64r6el.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-mips64r6el.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-octeon-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-octeon.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-octeon.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-octeon.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-octeon.prerm17
-rw-r--r--debian/linux-image-4.19.0-21-parisc-smp.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-parisc-smp.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-parisc-smp.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-parisc-smp.prerm17
-rw-r--r--debian/linux-image-4.19.0-21-parisc.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-parisc.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-parisc.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-parisc.prerm17
-rw-r--r--debian/linux-image-4.19.0-21-parisc64-smp.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-parisc64-smp.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-parisc64-smp.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-parisc64-smp.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-powerpc-dbg.lintian-overrides15
-rwxr-xr-xdebian/linux-image-4.19.0-21-powerpc-smp-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-powerpc-smp.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-powerpc-smp.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-powerpc-smp.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-powerpc-smp.prerm17
-rw-r--r--debian/linux-image-4.19.0-21-powerpc.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-powerpc.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-powerpc.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-powerpc.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-powerpc64-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-powerpc64.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-powerpc64.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-powerpc64.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-powerpc64.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-powerpc64le-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-powerpc64le.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-powerpc64le.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-powerpc64le.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-powerpc64le.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-powerpcspe-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-powerpcspe.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-powerpcspe.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-powerpcspe.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-powerpcspe.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-riscv64-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-riscv64.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-riscv64.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-riscv64.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-riscv64.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-rpi-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-rpi.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-rpi.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-rpi.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-rpi.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-rt-686-pae-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-rt-686-pae-unsigned.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-rt-686-pae-unsigned.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-rt-686-pae-unsigned.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-rt-686-pae-unsigned.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-rt-amd64-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-rt-amd64-unsigned.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-rt-amd64-unsigned.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-rt-amd64-unsigned.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-rt-amd64-unsigned.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-rt-arm64-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-rt-arm64-unsigned.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-rt-arm64-unsigned.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-rt-arm64-unsigned.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-rt-arm64-unsigned.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-rt-armmp-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-rt-armmp.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-rt-armmp.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-rt-armmp.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-rt-armmp.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-s390x-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-s390x.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-s390x.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-s390x.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-s390x.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-sh7751r-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-sh7751r.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-sh7751r.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-sh7751r.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-sh7751r.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-sh7785lcr-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-sh7785lcr.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-sh7785lcr.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-sh7785lcr.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-sh7785lcr.prerm17
-rwxr-xr-xdebian/linux-image-4.19.0-21-sparc64-dbg.lintian-overrides15
-rwxr-xr-xdebian/linux-image-4.19.0-21-sparc64-smp-dbg.lintian-overrides15
-rw-r--r--debian/linux-image-4.19.0-21-sparc64-smp.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-sparc64-smp.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-sparc64-smp.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-sparc64-smp.prerm17
-rw-r--r--debian/linux-image-4.19.0-21-sparc64.postinst25
-rw-r--r--debian/linux-image-4.19.0-21-sparc64.postrm31
-rw-r--r--debian/linux-image-4.19.0-21-sparc64.preinst21
-rw-r--r--debian/linux-image-4.19.0-21-sparc64.prerm17
-rw-r--r--debian/linux-perf-4.19.lintian-overrides3
-rw-r--r--debian/patches-rt/0001-ARM-at91-add-TCB-registers-definitions.patch210
-rw-r--r--debian/patches-rt/0002-clocksource-drivers-Add-a-new-driver-for-the-Atmel-A.patch485
-rw-r--r--debian/patches-rt/0003-clocksource-drivers-timer-atmel-tcb-add-clockevent-d.patch271
-rw-r--r--debian/patches-rt/0004-clocksource-drivers-atmel-pit-make-option-silent.patch36
-rw-r--r--debian/patches-rt/0005-ARM-at91-Implement-clocksource-selection.patch55
-rw-r--r--debian/patches-rt/0006-ARM-configs-at91-use-new-TCB-timer-driver.patch43
-rw-r--r--debian/patches-rt/0007-ARM-configs-at91-unselect-PIT.patch44
-rw-r--r--debian/patches-rt/0008-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch171
-rw-r--r--debian/patches-rt/0009-kthread-convert-worker-lock-to-raw-spinlock.patch203
-rw-r--r--debian/patches-rt/0010-crypto-caam-qi-simplify-CGR-allocation-freeing.patch140
-rw-r--r--debian/patches-rt/0011-sched-fair-Robustify-CFS-bandwidth-timer-locking.patch148
-rw-r--r--debian/patches-rt/0012-arm-Convert-arm-boot_lock-to-raw.patch432
-rw-r--r--debian/patches-rt/0013-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch101
-rw-r--r--debian/patches-rt/0014-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch50
-rw-r--r--debian/patches-rt/0015-fscache-initialize-cookie-hash-table-raw-spinlocks.patch64
-rw-r--r--debian/patches-rt/0016-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch40
-rw-r--r--debian/patches-rt/0017-percpu-include-irqflags.h-for-raw_local_irq_save.patch33
-rw-r--r--debian/patches-rt/0018-efi-Allow-efi-runtime.patch32
-rw-r--r--debian/patches-rt/0019-x86-efi-drop-task_lock-from-efi_switch_mm.patch55
-rw-r--r--debian/patches-rt/0020-arm64-KVM-compute_layout-before-altenates-are-applie.patch83
-rw-r--r--debian/patches-rt/0021-of-allocate-free-phandle-cache-outside-of-the-devtre.patch103
-rw-r--r--debian/patches-rt/0022-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch98
-rw-r--r--debian/patches-rt/0023-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch51
-rw-r--r--debian/patches-rt/0024-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch169
-rw-r--r--debian/patches-rt/0025-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch136
-rw-r--r--debian/patches-rt/0026-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch785
-rw-r--r--debian/patches-rt/0027-kernel-sched-core-add-migrate_disable.patch266
-rw-r--r--debian/patches-rt/0028-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch38
-rw-r--r--debian/patches-rt/0029-arm-at91-do-not-disable-enable-clocks-in-a-row.patch98
-rw-r--r--debian/patches-rt/0030-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch170
-rw-r--r--debian/patches-rt/0031-timekeeping-Split-jiffies-seqlock.patch171
-rw-r--r--debian/patches-rt/0032-signal-Revert-ptrace-preempt-magic.patch38
-rw-r--r--debian/patches-rt/0033-net-sched-Use-msleep-instead-of-yield.patch64
-rw-r--r--debian/patches-rt/0034-dm-rq-remove-BUG_ON-irqs_disabled-check.patch37
-rw-r--r--debian/patches-rt/0035-usb-do-no-disable-interrupts-in-giveback.patch46
-rw-r--r--debian/patches-rt/0036-rt-Provide-PREEMPT_RT_BASE-config-switch.patch64
-rw-r--r--debian/patches-rt/0037-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch76
-rw-r--r--debian/patches-rt/0038-jump-label-disable-if-stop_machine-is-used.patch42
-rw-r--r--debian/patches-rt/0039-kconfig-Disable-config-options-which-are-not-RT-comp.patch43
-rw-r--r--debian/patches-rt/0040-lockdep-disable-self-test.patch35
-rw-r--r--debian/patches-rt/0041-mm-Allow-only-slub-on-RT.patch37
-rw-r--r--debian/patches-rt/0042-locking-Disable-spin-on-owner-for-RT.patch38
-rw-r--r--debian/patches-rt/0043-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch30
-rw-r--r--debian/patches-rt/0044-rcu-make-RCU_BOOST-default-on-RT.patch34
-rw-r--r--debian/patches-rt/0045-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch35
-rw-r--r--debian/patches-rt/0046-net-core-disable-NET_RX_BUSY_POLL.patch38
-rw-r--r--debian/patches-rt/0047-arm-disable-NEON-in-kernel-mode.patch166
-rw-r--r--debian/patches-rt/0048-powerpc-Use-generic-rwsem-on-RT.patch33
-rw-r--r--debian/patches-rt/0049-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch45
-rw-r--r--debian/patches-rt/0050-powerpc-Disable-highmem-on-RT.patch29
-rw-r--r--debian/patches-rt/0051-mips-Disable-highmem-on-RT.patch29
-rw-r--r--debian/patches-rt/0052-x86-Use-generic-rwsem_spinlocks-on-rt.patch34
-rw-r--r--debian/patches-rt/0053-leds-trigger-disable-CPU-trigger-on-RT.patch41
-rw-r--r--debian/patches-rt/0054-cpufreq-drop-K8-s-driver-from-beeing-selected.patch39
-rw-r--r--debian/patches-rt/0055-md-disable-bcache.patch41
-rw-r--r--debian/patches-rt/0056-efi-Disable-runtime-services-on-RT.patch46
-rw-r--r--debian/patches-rt/0057-printk-Add-a-printk-kill-switch.patch174
-rw-r--r--debian/patches-rt/0058-printk-Add-force_early_printk-boot-param-to-help-wit.patch39
-rw-r--r--debian/patches-rt/0059-preempt-Provide-preempt_-_-no-rt-variants.patch53
-rw-r--r--debian/patches-rt/0060-futex-workaround-migrate_disable-enable-in-different.patch70
-rw-r--r--debian/patches-rt/0061-rt-Add-local-irq-locks.patch341
-rw-r--r--debian/patches-rt/0062-locallock-provide-get-put-_locked_ptr-variants.patch49
-rw-r--r--debian/patches-rt/0063-mm-scatterlist-Do-not-disable-irqs-on-RT.patch30
-rw-r--r--debian/patches-rt/0064-signal-x86-Delay-calling-signals-in-atomic.patch154
-rw-r--r--debian/patches-rt/0065-x86-signal-delay-calling-signals-on-32bit.patch49
-rw-r--r--debian/patches-rt/0066-buffer_head-Replace-bh_uptodate_lock-for-rt.patch197
-rw-r--r--debian/patches-rt/0067-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch110
-rw-r--r--debian/patches-rt/0068-list_bl-Make-list-head-locking-RT-safe.patch121
-rw-r--r--debian/patches-rt/0069-list_bl-fixup-bogus-lockdep-warning.patch104
-rw-r--r--debian/patches-rt/0070-genirq-Disable-irqpoll-on-rt.patch43
-rw-r--r--debian/patches-rt/0071-genirq-Force-interrupt-thread-on-RT.patch54
-rw-r--r--debian/patches-rt/0072-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch173
-rw-r--r--debian/patches-rt/0073-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch172
-rw-r--r--debian/patches-rt/0074-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch619
-rw-r--r--debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch223
-rw-r--r--debian/patches-rt/0076-mm-page_alloc-rt-friendly-per-cpu-pages.patch239
-rw-r--r--debian/patches-rt/0077-mm-swap-Convert-to-percpu-locked.patch211
-rw-r--r--debian/patches-rt/0078-mm-perform-lru_add_drain_all-remotely.patch109
-rw-r--r--debian/patches-rt/0079-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch145
-rw-r--r--debian/patches-rt/0080-ARM-Initialize-split-page-table-locks-for-vector-pag.patch76
-rw-r--r--debian/patches-rt/0081-mm-Enable-SLUB-for-RT.patch42
-rw-r--r--debian/patches-rt/0082-slub-Enable-irqs-for-__GFP_WAIT.patch48
-rw-r--r--debian/patches-rt/0083-slub-Disable-SLUB_CPU_PARTIAL.patch54
-rw-r--r--debian/patches-rt/0084-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch75
-rw-r--r--debian/patches-rt/0085-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch124
-rw-r--r--debian/patches-rt/0086-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch203
-rw-r--r--debian/patches-rt/0087-x86-mm-pat-disable-preemption-__split_large_page-aft.patch62
-rw-r--r--debian/patches-rt/0088-radix-tree-use-local-locks.patch176
-rw-r--r--debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch176
-rw-r--r--debian/patches-rt/0090-x86-kvm-Require-const-tsc-for-RT.patch37
-rw-r--r--debian/patches-rt/0091-pci-switchtec-Don-t-use-completion-s-wait-queue.patch115
-rw-r--r--debian/patches-rt/0092-wait.h-include-atomic.h.patch42
-rw-r--r--debian/patches-rt/0093-work-simple-Simple-work-queue-implemenation.patch246
-rw-r--r--debian/patches-rt/0094-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch37
-rw-r--r--debian/patches-rt/0095-completion-Use-simple-wait-queues.patch391
-rw-r--r--debian/patches-rt/0096-fs-aio-simple-simple-work.patch89
-rw-r--r--debian/patches-rt/0097-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch60
-rw-r--r--debian/patches-rt/0098-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch290
-rw-r--r--debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch290
-rw-r--r--debian/patches-rt/0100-hrtimer-by-timers-by-default-into-the-softirq-contex.patch237
-rw-r--r--debian/patches-rt/0101-sched-fair-Make-the-hrtimers-non-hard-again.patch34
-rw-r--r--debian/patches-rt/0102-hrtimer-Move-schedule_work-call-to-helper-thread.patch98
-rw-r--r--debian/patches-rt/0103-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch51
-rw-r--r--debian/patches-rt/0104-posix-timers-Thread-posix-cpu-timers-on-rt.patch269
-rw-r--r--debian/patches-rt/0105-sched-Move-task_struct-cleanup-to-RCU.patch96
-rw-r--r--debian/patches-rt/0106-sched-Limit-the-number-of-task-migrations-per-batch.patch33
-rw-r--r--debian/patches-rt/0107-sched-Move-mmdrop-to-RCU-on-RT.patch115
-rw-r--r--debian/patches-rt/0108-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch70
-rw-r--r--debian/patches-rt/0109-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch108
-rw-r--r--debian/patches-rt/0110-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch57
-rw-r--r--debian/patches-rt/0111-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch33
-rw-r--r--debian/patches-rt/0112-sched-Disable-TTWU_QUEUE-on-RT.patch38
-rw-r--r--debian/patches-rt/0113-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch45
-rw-r--r--debian/patches-rt/0114-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch162
-rw-r--r--debian/patches-rt/0115-hotplug-Lightweight-get-online-cpus.patch101
-rw-r--r--debian/patches-rt/0116-trace-Add-migrate-disabled-counter-to-tracing-output.patch86
-rw-r--r--debian/patches-rt/0117-lockdep-Make-it-RT-aware.patch78
-rw-r--r--debian/patches-rt/0118-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch303
-rw-r--r--debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch180
-rw-r--r--debian/patches-rt/0120-softirq-Disable-softirq-stacks-for-RT.patch177
-rw-r--r--debian/patches-rt/0121-softirq-Split-softirq-locks.patch832
-rw-r--r--debian/patches-rt/0122-net-core-use-local_bh_disable-in-netif_rx_ni.patch41
-rw-r--r--debian/patches-rt/0123-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch144
-rw-r--r--debian/patches-rt/0124-softirq-split-timer-softirqs-out-of-ksoftirqd.patch215
-rw-r--r--debian/patches-rt/0125-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch112
-rw-r--r--debian/patches-rt/0126-softirq-Avoid-local_softirq_pending-messages-if-task.patch41
-rw-r--r--debian/patches-rt/0127-rtmutex-trylock-is-okay-on-RT.patch34
-rw-r--r--debian/patches-rt/0128-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch151
-rw-r--r--debian/patches-rt/0129-rtmutex-Handle-the-various-new-futex-race-conditions.patch254
-rw-r--r--debian/patches-rt/0130-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch121
-rw-r--r--debian/patches-rt/0131-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch50
-rw-r--r--debian/patches-rt/0132-pid.h-include-atomic.h.patch43
-rw-r--r--debian/patches-rt/0133-arm-include-definition-for-cpumask_t.patch31
-rw-r--r--debian/patches-rt/0134-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch34
-rw-r--r--debian/patches-rt/0135-rtmutex-Add-rtmutex_lock_killable.patch60
-rw-r--r--debian/patches-rt/0136-rtmutex-Make-lock_killable-work.patch51
-rw-r--r--debian/patches-rt/0137-spinlock-Split-the-lock-types-header.patch221
-rw-r--r--debian/patches-rt/0138-rtmutex-Avoid-include-hell.patch30
-rw-r--r--debian/patches-rt/0139-rbtree-don-t-include-the-rcu-header.patch175
-rw-r--r--debian/patches-rt/0140-rtmutex-Provide-rt_mutex_slowlock_locked.patch145
-rw-r--r--debian/patches-rt/0141-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch153
-rw-r--r--debian/patches-rt/0142-rtmutex-add-sleeping-lock-implementation.patch1209
-rw-r--r--debian/patches-rt/0143-rtmutex-add-mutex-implementation-based-on-rtmutex.patch383
-rw-r--r--debian/patches-rt/0144-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch427
-rw-r--r--debian/patches-rt/0145-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch582
-rw-r--r--debian/patches-rt/0146-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch33
-rw-r--r--debian/patches-rt/0147-rtmutex-wire-up-RT-s-locking.patch271
-rw-r--r--debian/patches-rt/0148-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch445
-rw-r--r--debian/patches-rt/0149-kconfig-Add-PREEMPT_RT_FULL.patch69
-rw-r--r--debian/patches-rt/0150-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch81
-rw-r--r--debian/patches-rt/0151-locking-rt-mutex-Flush-block-plug-on-__down_read.patch46
-rw-r--r--debian/patches-rt/0152-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch39
-rw-r--r--debian/patches-rt/0153-ptrace-fix-ptrace-vs-tasklist_lock-race.patch166
-rw-r--r--debian/patches-rt/0154-rtmutex-annotate-sleeping-lock-context.patch308
-rw-r--r--debian/patches-rt/0155-sched-migrate_disable-fallback-to-preempt_disable-in.patch204
-rw-r--r--debian/patches-rt/0156-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch182
-rw-r--r--debian/patches-rt/0157-rcu-Frob-softirq-test.patch173
-rw-r--r--debian/patches-rt/0158-rcu-Merge-RCU-bh-into-RCU-preempt.patch351
-rw-r--r--debian/patches-rt/0159-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch117
-rw-r--r--debian/patches-rt/0160-rcu-Eliminate-softirq-processing-from-rcutree.patch423
-rw-r--r--debian/patches-rt/0161-srcu-use-cpu_online-instead-custom-check.patch96
-rw-r--r--debian/patches-rt/0162-srcu-replace-local_irqsave-with-a-locallock.patch77
-rw-r--r--debian/patches-rt/0163-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch37
-rw-r--r--debian/patches-rt/0164-tty-serial-omap-Make-the-locking-RT-aware.patch49
-rw-r--r--debian/patches-rt/0165-tty-serial-pl011-Make-the-locking-work-on-RT.patch54
-rw-r--r--debian/patches-rt/0166-tty-serial-pl011-explicitly-initialize-the-flags-var.patch45
-rw-r--r--debian/patches-rt/0167-rt-Improve-the-serial-console-PASS_LIMIT.patch47
-rw-r--r--debian/patches-rt/0168-tty-serial-8250-don-t-take-the-trylock-during-oops.patch35
-rw-r--r--debian/patches-rt/0169-locking-percpu-rwsem-Remove-preempt_disable-variants.patch226
-rw-r--r--debian/patches-rt/0170-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch82
-rw-r--r--debian/patches-rt/0171-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch61
-rw-r--r--debian/patches-rt/0172-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch99
-rw-r--r--debian/patches-rt/0173-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch72
-rw-r--r--debian/patches-rt/0174-thermal-Defer-thermal-wakups-to-threads.patch137
-rw-r--r--debian/patches-rt/0175-x86-fpu-Disable-preemption-around-local_bh_disable.patch38
-rw-r--r--debian/patches-rt/0176-fs-epoll-Do-not-disable-preemption-on-RT.patch37
-rw-r--r--debian/patches-rt/0177-mm-vmalloc-Another-preempt-disable-region-which-suck.patch73
-rw-r--r--debian/patches-rt/0178-block-mq-use-cpu_light.patch36
-rw-r--r--debian/patches-rt/0179-block-mq-do-not-invoke-preempt_disable.patch58
-rw-r--r--debian/patches-rt/0180-block-mq-don-t-complete-requests-via-IPI.patch119
-rw-r--r--debian/patches-rt/0181-md-raid5-Make-raid5_percpu-handling-RT-aware.patch77
-rw-r--r--debian/patches-rt/0182-rt-Introduce-cpu_chill.patch113
-rw-r--r--debian/patches-rt/0183-hrtimer-Don-t-lose-state-in-cpu_chill.patch48
-rw-r--r--debian/patches-rt/0184-hrtimer-cpu_chill-save-task-state-in-saved_state.patch63
-rw-r--r--debian/patches-rt/0185-block-blk-mq-move-blk_queue_usage_counter_release-in.patch120
-rw-r--r--debian/patches-rt/0186-block-Use-cpu_chill-for-retry-loops.patch51
-rw-r--r--debian/patches-rt/0187-fs-dcache-Use-cpu_chill-in-trylock-loops.patch66
-rw-r--r--debian/patches-rt/0188-net-Use-cpu_chill-instead-of-cpu_relax.patch70
-rw-r--r--debian/patches-rt/0189-fs-dcache-use-swait_queue-instead-of-waitqueue.patch241
-rw-r--r--debian/patches-rt/0190-workqueue-Use-normal-rcu.patch360
-rw-r--r--debian/patches-rt/0191-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch186
-rw-r--r--debian/patches-rt/0192-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch139
-rw-r--r--debian/patches-rt/0193-sched-Distangle-worker-accounting-from-rqlock.patch291
-rw-r--r--debian/patches-rt/0194-debugobjects-Make-RT-aware.patch32
-rw-r--r--debian/patches-rt/0195-seqlock-Prevent-rt-starvation.patch195
-rw-r--r--debian/patches-rt/0196-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch61
-rw-r--r--debian/patches-rt/0197-net-Use-skbufhead-with-raw-lock.patch148
-rw-r--r--debian/patches-rt/0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch189
-rw-r--r--debian/patches-rt/0199-net-provide-a-way-to-delegate-processing-a-softirq-t.patch89
-rw-r--r--debian/patches-rt/0200-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch42
-rw-r--r--debian/patches-rt/0201-net-Qdisc-use-a-seqlock-instead-seqcount.patch293
-rw-r--r--debian/patches-rt/0202-net-add-back-the-missing-serialization-in-ip_send_un.patch99
-rw-r--r--debian/patches-rt/0203-net-add-a-lock-around-icmp_sk.patch65
-rw-r--r--debian/patches-rt/0204-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch77
-rw-r--r--debian/patches-rt/0205-irqwork-push-most-work-into-softirq-context.patch264
-rw-r--r--debian/patches-rt/0206-printk-Make-rt-aware.patch114
-rw-r--r--debian/patches-rt/0207-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch48
-rw-r--r--debian/patches-rt/0208-printk-Drop-the-logbuf_lock-more-often.patch83
-rw-r--r--debian/patches-rt/0209-ARM-enable-irq-in-translation-section-permission-fau.patch96
-rw-r--r--debian/patches-rt/0210-genirq-update-irq_set_irqchip_state-documentation.patch32
-rw-r--r--debian/patches-rt/0211-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch59
-rw-r--r--debian/patches-rt/0212-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch171
-rw-r--r--debian/patches-rt/0213-kgdb-serial-Short-term-workaround.patch86
-rw-r--r--debian/patches-rt/0214-sysfs-Add-sys-kernel-realtime-entry.patch54
-rw-r--r--debian/patches-rt/0215-mm-rt-kmap_atomic-scheduling.patch325
-rw-r--r--debian/patches-rt/0216-x86-highmem-Add-a-already-used-pte-check.patch29
-rw-r--r--debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch34
-rw-r--r--debian/patches-rt/0218-arm-Enable-highmem-for-rt.patch184
-rw-r--r--debian/patches-rt/0219-scsi-fcoe-Make-RT-aware.patch116
-rw-r--r--debian/patches-rt/0220-x86-crypto-Reduce-preempt-disabled-regions.patch118
-rw-r--r--debian/patches-rt/0221-crypto-Reduce-preempt-disabled-regions-more-algos.patch263
-rw-r--r--debian/patches-rt/0222-crypto-limit-more-FPU-enabled-sections.patch108
-rw-r--r--debian/patches-rt/0223-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch83
-rw-r--r--debian/patches-rt/0224-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch85
-rw-r--r--debian/patches-rt/0225-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch34
-rw-r--r--debian/patches-rt/0226-x86-stackprotector-Avoid-random-pool-on-rt.patch51
-rw-r--r--debian/patches-rt/0228-cpu-hotplug-Implement-CPU-pinning.patch117
-rw-r--r--debian/patches-rt/0229-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch39
-rw-r--r--debian/patches-rt/0230-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch102
-rw-r--r--debian/patches-rt/0231-net-Remove-preemption-disabling-in-netif_rx.patch71
-rw-r--r--debian/patches-rt/0232-net-Another-local_irq_disable-kmalloc-headache.patch65
-rw-r--r--debian/patches-rt/0233-net-core-protect-users-of-napi_alloc_cache-against-r.patch115
-rw-r--r--debian/patches-rt/0234-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch84
-rw-r--r--debian/patches-rt/0235-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch62
-rw-r--r--debian/patches-rt/0236-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch149
-rw-r--r--debian/patches-rt/0237-sched-Add-support-for-lazy-preemption.patch671
-rw-r--r--debian/patches-rt/0238-ftrace-Fix-trace-header-alignment.patch52
-rw-r--r--debian/patches-rt/0239-x86-Support-for-lazy-preemption.patch240
-rw-r--r--debian/patches-rt/0240-x86-lazy-preempt-properly-check-against-preempt-mask.patch33
-rw-r--r--debian/patches-rt/0241-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch45
-rw-r--r--debian/patches-rt/0242-arm-Add-support-for-lazy-preemption.patch168
-rw-r--r--debian/patches-rt/0243-powerpc-Add-support-for-lazy-preemption.patch196
-rw-r--r--debian/patches-rt/0244-arch-arm64-Add-lazy-preempt-support.patch133
-rw-r--r--debian/patches-rt/0245-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch74
-rw-r--r--debian/patches-rt/0246-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch104
-rw-r--r--debian/patches-rt/0247-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch107
-rw-r--r--debian/patches-rt/0248-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch44
-rw-r--r--debian/patches-rt/0249-tpm_tis-fix-stall-after-iowrite-s.patch84
-rw-r--r--debian/patches-rt/0250-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch81
-rw-r--r--debian/patches-rt/0251-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch61
-rw-r--r--debian/patches-rt/0252-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch128
-rw-r--r--debian/patches-rt/0253-drm-i915-disable-tracing-on-RT.patch47
-rw-r--r--debian/patches-rt/0254-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch33
-rw-r--r--debian/patches-rt/0255-cgroups-use-simple-wait-in-css_release.patch95
-rw-r--r--debian/patches-rt/0256-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch293
-rw-r--r--debian/patches-rt/0257-apparmor-use-a-locallock-instead-preempt_disable.patch85
-rw-r--r--debian/patches-rt/0258-workqueue-Prevent-deadlock-stall-on-RT.patch207
-rw-r--r--debian/patches-rt/0259-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch213
-rw-r--r--debian/patches-rt/0260-Add-localversion-for-RT-release.patch22
-rw-r--r--debian/patches-rt/0261-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch97
-rw-r--r--debian/patches-rt/0262-powerpc-reshuffle-TIF-bits.patch152
-rw-r--r--debian/patches-rt/0263-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch63
-rw-r--r--debian/patches-rt/0264-drm-i915-Don-t-disable-interrupts-independently-of-t.patch51
-rw-r--r--debian/patches-rt/0265-sched-completion-Fix-a-lockup-in-wait_for_completion.patch69
-rw-r--r--debian/patches-rt/0266-kthread-add-a-global-worker-thread.patch180
-rw-r--r--debian/patches-rt/0267-arm-imx6-cpuidle-Use-raw_spinlock_t.patch52
-rw-r--r--debian/patches-rt/0268-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch36
-rw-r--r--debian/patches-rt/0269-pci-switchtec-fix-stream_open.cocci-warnings.patch40
-rw-r--r--debian/patches-rt/0270-sched-core-Drop-a-preempt_disable_rt-statement.patch50
-rw-r--r--debian/patches-rt/0271-timers-Redo-the-notification-of-canceling-timers-on-.patch650
-rw-r--r--debian/patches-rt/0272-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch35
-rw-r--r--debian/patches-rt/0273-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch83
-rw-r--r--debian/patches-rt/0274-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch249
-rw-r--r--debian/patches-rt/0275-Revert-futex-workaround-migrate_disable-enable-in-di.patch70
-rw-r--r--debian/patches-rt/0276-futex-Make-the-futex_hash_bucket-lock-raw.patch340
-rw-r--r--debian/patches-rt/0277-futex-Delay-deallocation-of-pi_state.patch182
-rw-r--r--debian/patches-rt/0278-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch127
-rw-r--r--debian/patches-rt/0279-revert-aio.patch71
-rw-r--r--debian/patches-rt/0280-fs-aio-simple-simple-work.patch76
-rw-r--r--debian/patches-rt/0281-revert-thermal.patch120
-rw-r--r--debian/patches-rt/0282-thermal-Defer-thermal-wakups-to-threads.patch98
-rw-r--r--debian/patches-rt/0283-revert-block.patch83
-rw-r--r--debian/patches-rt/0284-block-blk-mq-move-blk_queue_usage_counter_release-in.patch114
-rw-r--r--debian/patches-rt/0285-workqueue-rework.patch1464
-rw-r--r--debian/patches-rt/0286-i2c-exynos5-Remove-IRQF_ONESHOT.patch48
-rw-r--r--debian/patches-rt/0287-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch42
-rw-r--r--debian/patches-rt/0288-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch50
-rw-r--r--debian/patches-rt/0289-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch120
-rw-r--r--debian/patches-rt/0290-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch296
-rw-r--r--debian/patches-rt/0291-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch54
-rw-r--r--debian/patches-rt/0292-x86-preempt-Check-preemption-level-before-looking-at.patch34
-rw-r--r--debian/patches-rt/0293-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch42
-rw-r--r--debian/patches-rt/0294-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch41
-rw-r--r--debian/patches-rt/0295-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch43
-rw-r--r--debian/patches-rt/0296-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch75
-rw-r--r--debian/patches-rt/0297-posix-timers-Unlock-expiry-lock-in-the-early-return.patch41
-rw-r--r--debian/patches-rt/0298-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch58
-rw-r--r--debian/patches-rt/0299-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch39
-rw-r--r--debian/patches-rt/0300-sched-Remove-dead-__migrate_disabled-check.patch39
-rw-r--r--debian/patches-rt/0301-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch47
-rw-r--r--debian/patches-rt/0302-lib-smp_processor_id-Don-t-use-cpumask_equal.patch45
-rw-r--r--debian/patches-rt/0303-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch735
-rw-r--r--debian/patches-rt/0304-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch102
-rw-r--r--debian/patches-rt/0305-lib-ubsan-Don-t-seralize-UBSAN-report.patch308
-rw-r--r--debian/patches-rt/0306-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch293
-rw-r--r--debian/patches-rt/0307-sched-migrate_enable-Use-select_fallback_rq.patch66
-rw-r--r--debian/patches-rt/0308-sched-Lazy-migrate_disable-processing.patch616
-rw-r--r--debian/patches-rt/0309-sched-migrate_enable-Use-stop_one_cpu_nowait.patch121
-rw-r--r--debian/patches-rt/0310-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch87
-rw-r--r--debian/patches-rt/0311-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch129
-rw-r--r--debian/patches-rt/0312-sched-core-migrate_enable-must-access-takedown_cpu_t.patch55
-rw-r--r--debian/patches-rt/0313-lib-smp_processor_id-Adjust-check_preemption_disable.patch41
-rw-r--r--debian/patches-rt/0314-sched-migrate_enable-Busy-loop-until-the-migration-r.patch57
-rw-r--r--debian/patches-rt/0315-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch80
-rw-r--r--debian/patches-rt/0316-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch83
-rw-r--r--debian/patches-rt/0317-sched-migrate_enable-Remove-__schedule-call.patch41
-rw-r--r--debian/patches-rt/0318-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch42
-rw-r--r--debian/patches-rt/0319-locallock-Include-header-for-the-current-macro.patch32
-rw-r--r--debian/patches-rt/0320-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch45
-rw-r--r--debian/patches-rt/0321-tracing-make-preempt_lazy-and-migrate_disable-counte.patch56
-rw-r--r--debian/patches-rt/0322-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch57
-rw-r--r--debian/patches-rt/0323-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch72
-rw-r--r--debian/patches-rt/0324-tasklet-Address-a-race-resulting-in-double-enqueue.patch120
-rw-r--r--debian/patches-rt/0325-hrtimer-fix-logic-for-when-grabbing-softirq_expiry_l.patch50
-rw-r--r--debian/patches-rt/0326-fs-dcache-Include-swait.h-header.patch36
-rw-r--r--debian/patches-rt/0327-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch64
-rw-r--r--debian/patches-rt/0328-tasklet-Fix-UP-case-for-tasklet-CHAINED-state.patch56
-rw-r--r--debian/patches-rt/0329-signal-Prevent-double-free-of-user-struct.patch55
-rw-r--r--debian/patches-rt/0330-Bluetooth-Acquire-sk_lock.slock-without-disabling-in.patch65
-rw-r--r--debian/patches-rt/0331-net-phy-fixed_phy-Remove-unused-seqcount.patch89
-rw-r--r--debian/patches-rt/0332-net-xfrm-fix-compress-vs-decompress-serialization.patch102
-rw-r--r--debian/patches-rt/0333-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch50
-rw-r--r--debian/patches-rt/0334-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch68
-rw-r--r--debian/patches-rt/0335-Linux-4.19.185-rt76-REBASE.patch21
-rw-r--r--debian/patches-rt/0336-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch38
-rw-r--r--debian/patches-rt/0337-locking-rwsem_rt-Add-__down_read_interruptible.patch54
-rw-r--r--debian/patches-rt/0338-Linux-4.19.206-rt87-REBASE.patch21
-rw-r--r--debian/patches-rt/0339-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch33
-rw-r--r--debian/patches-rt/0340-Linux-4.19.214-rt93-REBASE.patch21
-rw-r--r--debian/patches-rt/0341-fscache-fix-initialisation-of-cookie-hash-table-raw-.patch37
-rw-r--r--debian/patches-rt/0342-Linux-4.19.225-rt101-REBASE.patch21
-rw-r--r--debian/patches-rt/0343-rt-PREEMPT_RT-safety-net-for-backported-patches.patch52
-rw-r--r--debian/patches-rt/0344-net-Add-missing-xmit_lock_owner-hunks.patch117
-rw-r--r--debian/patches-rt/0345-Linux-4.19.237-rt107-REBASE.patch21
-rw-r--r--debian/patches-rt/0346-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch41
-rw-r--r--debian/patches-rt/0347-Linux-4.19.246-rt110-REBASE.patch21
-rw-r--r--debian/patches-rt/series346
-rw-r--r--debian/patches/bugfix/all/PCI-ACPI-Evaluate-PCI-Boot-Configuration-_DSM.patch80
-rw-r--r--debian/patches/bugfix/all/PCI-Don-t-auto-realloc-if-we-re-preserving-firmware-.patch35
-rw-r--r--debian/patches/bugfix/all/USB-drop-HDC_LOCAL_MEM-flag.patch191
-rw-r--r--debian/patches/bugfix/all/USB-ohci-sm501-fix-error-return-code-in-ohci_hcd_sm5.patch33
-rw-r--r--debian/patches/bugfix/all/USB-use-genalloc-for-USB-HCs-with-local-memory.patch280
-rw-r--r--debian/patches/bugfix/all/cpupower-bump-soname-version.patch29
-rw-r--r--debian/patches/bugfix/all/cpupower-fix-checks-for-cpu-existence.patch51
-rw-r--r--debian/patches/bugfix/all/disable-some-marvell-phys.patch93
-rw-r--r--debian/patches/bugfix/all/documentation-media-uapi-explicitly-say-there-are-no-invariant-sections.patch52
-rw-r--r--debian/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch2895
-rw-r--r--debian/patches/bugfix/all/firmware_class-log-every-success-and-failure.patch70
-rw-r--r--debian/patches/bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch66
-rw-r--r--debian/patches/bugfix/all/kbuild-fix-recordmcount-dependency.patch25
-rw-r--r--debian/patches/bugfix/all/kbuild-include-addtree-remove-quotes-before-matching-path.patch42
-rw-r--r--debian/patches/bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch91
-rw-r--r--debian/patches/bugfix/all/lib-genalloc-add-gen_pool_dma_zalloc-for-zeroed-DMA.patch77
-rw-r--r--debian/patches/bugfix/all/libbpf-add-soname-to-shared-object.patch56
-rw-r--r--debian/patches/bugfix/all/libbpf-generate-pkg-config.patch90
-rw-r--r--debian/patches/bugfix/all/libbpf-link-shared-object-with-libelf.patch22
-rw-r--r--debian/patches/bugfix/all/libcpupower-hide-private-function.patch22
-rw-r--r--debian/patches/bugfix/all/module-disable-matching-missing-version-crc.patch25
-rw-r--r--debian/patches/bugfix/all/mt76-use-the-correct-hweight8-function.patch30
-rw-r--r--debian/patches/bugfix/all/net_sched-let-qdisc_put-accept-null-pointer.patch50
-rw-r--r--debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-event_anal.patch153
-rw-r--r--debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-export-to-.patch214
-rw-r--r--debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-export-to-ebf6c5c181ab.patch85
-rw-r--r--debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-failed-sys.patch76
-rw-r--r--debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-futex-cont.patch57
-rw-r--r--debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-intel-pt-e.patch133
-rw-r--r--debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-mem-phys-a.patch76
-rw-r--r--debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-net_dropmo.patch59
-rw-r--r--debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-netdev-tim.patch180
-rw-r--r--debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-powerpc-hc.patch87
-rw-r--r--debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-sctop.py.patch69
-rw-r--r--debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-stackcolla.patch45
-rw-r--r--debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-stat-cpi.p.patch61
-rw-r--r--debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-syscall-co-de667cce7f4f.patch74
-rw-r--r--debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-syscall-co.patch65
-rw-r--r--debian/patches/bugfix/all/perf-script-python-Remove-mixed-indentation.patch511
-rw-r--r--debian/patches/bugfix/all/perf-script-python-add-Python3-support-to-check-perf.patch104
-rw-r--r--debian/patches/bugfix/all/radeon-amdgpu-firmware-is-required-for-drm-and-kms-on-r600-onward.patch135
-rw-r--r--debian/patches/bugfix/all/rtc-s35390a-set-uie_unsupported.patch40
-rw-r--r--debian/patches/bugfix/all/swiotlb-skip-swiotlb_bounce-when-orig_addr-is-zero.patch47
-rw-r--r--debian/patches/bugfix/all/tools-build-remove-bpf-run-time-check-at-build-time.patch29
-rw-r--r--debian/patches/bugfix/all/tools-lib-traceevent-use-ldflags.patch29
-rw-r--r--debian/patches/bugfix/all/tools-perf-man-date.patch37
-rw-r--r--debian/patches/bugfix/all/tools-perf-remove-shebangs.patch47
-rw-r--r--debian/patches/bugfix/all/usb-add-a-hcd_uses_dma-helper.patch110
-rw-r--r--debian/patches/bugfix/all/usb-dont-create-dma-pools-for-HCD.patch31
-rw-r--r--debian/patches/bugfix/all/usb-hcd-Fix-a-NULL-vs-IS_ERR-bug-in-usb_hcd_setup_lo.patch35
-rw-r--r--debian/patches/bugfix/all/usb-host-ohci-sm501-init-genalloc-for-local-memory.patch105
-rw-r--r--debian/patches/bugfix/all/usbip-document-tcp-wrappers.patch31
-rw-r--r--debian/patches/bugfix/all/usbip-fix-misuse-of-strncpy.patch61
-rw-r--r--debian/patches/bugfix/arm/ARM-dts-sun8i-h3-add-sy8106a-to-orange-pi-plus.patch77
-rw-r--r--debian/patches/bugfix/arm/arm-dts-kirkwood-fix-sata-pinmux-ing-for-ts419.patch37
-rw-r--r--debian/patches/bugfix/arm/arm-mm-export-__sync_icache_dcache-for-xen-privcmd.patch31
-rw-r--r--debian/patches/bugfix/arm64/arm64-PCI-Allow-resource-reallocation-if-necessary.patch47
-rw-r--r--debian/patches/bugfix/arm64/arm64-PCI-Preserve-firmware-configuration-when-desir.patch46
-rw-r--r--debian/patches/bugfix/arm64/arm64-acpi-Add-fixup-for-HPE-m400-quirks.patch92
-rw-r--r--debian/patches/bugfix/arm64/arm64-dts-allwinner-a64-Enable-A64-timer-workaround.patch28
-rw-r--r--debian/patches/bugfix/arm64/dts-rockchip-correct-voltage-selector-firefly-RK3399.patch42
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0002-scsi-hisi_sas-Move-evaluation-of-hisi_hba-in-hisi_sa.patch47
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0005-scsi-hisi_sas-unmask-interrupts-ent72-and-ent74.patch29
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0006-scsi-hisi_sas-Use-block-layer-tag-instead-for-IPTT.patch308
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0007-scsi-hisi_sas-Update-v3-hw-AIP_LIMIT-and-CFG_AGING_T.patch54
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0008-scsi-hisi_sas-Fix-spin-lock-management-in-slot_index.patch33
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0009-scsi-hisi_sas-use-dma_set_mask_and_coherent.patch40
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0010-scsi-hisi_sas-Create-separate-host-attributes-per-HB.patch116
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0011-scsi-hisi_sas-Add-support-for-interrupt-converge-for.patch113
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0012-scsi-hisi_sas-Add-support-for-interrupt-coalescing-f.patch150
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0013-scsi-hisi_sas-Relocate-some-codes-to-avoid-an-unused.patch92
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0014-scsi-hisi_sas-Fix-warnings-detected-by-sparse.patch429
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0015-scsi-hisi_sas-Relocate-some-code-to-reduce-complexit.patch187
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0016-scsi-hisi_sas-Make-sg_tablesize-consistent-value.patch82
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0017-net-hns3-remove-unnecessary-configuration-recapture-.patch43
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0018-net-hns3-remove-1000M-half-support-of-phy.patch29
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0019-net-hns3-synchronize-speed-and-duplex-from-phy-when-.patch32
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0020-net-hns3-getting-tx-and-dv-buffer-size-through-firmw.patch157
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0021-net-hns3-aligning-buffer-size-in-SSU-to-256-bytes.patch144
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0022-net-hns3-fix-a-SSU-buffer-checking-bug.patch45
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0023-net-hns3-change-default-tc-state-to-close.patch30
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0024-net-hns3-fix-a-bug-caused-by-udelay.patch39
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0025-net-hns3-remove-redundant-variable-initialization.patch28
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0026-net-hns3-call-hns3_nic_net_open-while-doing-HNAE3_UP.patch46
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0029-RDMA-hns-Add-constraint-on-the-setting-of-local-ACK-.patch43
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0030-RDMA-hns-Modify-the-pbl-ba-page-size-for-hip08.patch28
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0031-RDMA-hns-RDMA-hns-Assign-rq-head-pointer-when-enable.patch63
-rw-r--r--debian/patches/bugfix/arm64/huawei-taishan/0033-scsi-hisi_sas-fix-calls-to-dma_set_mask_and_coherent.patch70
-rw-r--r--debian/patches/bugfix/mips/MIPS-Loongson-Introduce-and-use-loongson_llsc_mb.patch387
-rw-r--r--debian/patches/bugfix/powerpc/powerpc-boot-fix-missing-crc32poly.h-when-building-with-kernel_xz.patch39
-rw-r--r--debian/patches/bugfix/powerpc/powerpc-fix-mcpu-options-for-spe-only-compiler.patch42
-rw-r--r--debian/patches/bugfix/powerpc/powerpc-lib-makefile-don-t-pull-in-quad.o-for-32-bit.patch30
-rw-r--r--debian/patches/bugfix/sh/sh-boot-do-not-use-hyphen-in-exported-variable-name.patch132
-rw-r--r--debian/patches/bugfix/x86/perf-tools-fix-unwind-build-on-i386.patch37
-rw-r--r--debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-310-15ikb-to.patch37
-rw-r--r--debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-v310-15isk-t.patch35
-rw-r--r--debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-v510-15ikb-t.patch37
-rw-r--r--debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-several-models-to-no.patch112
-rw-r--r--debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-y520-15ikbn-to-no_hw.patch35
-rw-r--r--debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-y720-15ikbn-to-no_hw.patch35
-rw-r--r--debian/patches/bugfix/x86/revert-perf-build-fix-libunwind-feature-detection-on.patch24
-rw-r--r--debian/patches/bugfix/x86/tools-turbostat-Add-checks-for-failure-of-fgets-and-.patch114
-rw-r--r--debian/patches/bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch36
-rw-r--r--debian/patches/bugfix/x86/x86-32-disable-3dnow-in-generic-config.patch31
-rw-r--r--debian/patches/debian/add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch99
-rw-r--r--debian/patches/debian/af_802154-Disable-auto-loading-as-mitigation-against.patch31
-rw-r--r--debian/patches/debian/android-enable-building-ashmem-and-binder-as-modules.patch97
-rw-r--r--debian/patches/debian/arch-sh4-fix-uimage-build.patch20
-rw-r--r--debian/patches/debian/btrfs-warn-about-raid5-6-being-experimental-at-mount.patch37
-rw-r--r--debian/patches/debian/cdc_ncm-cdc_mbim-use-ncm-by-default.patch29
-rw-r--r--debian/patches/debian/dccp-disable-auto-loading-as-mitigation-against-local-exploits.patch45
-rw-r--r--debian/patches/debian/decnet-Disable-auto-loading-as-mitigation-against-lo.patch34
-rw-r--r--debian/patches/debian/dfsg/arch-powerpc-platforms-8xx-ucode-disable.patch29
-rw-r--r--debian/patches/debian/dfsg/drivers-media-dvb-dvb-usb-af9005-disable.patch17
-rw-r--r--debian/patches/debian/dfsg/drivers-net-appletalk-cops.patch52
-rw-r--r--debian/patches/debian/dfsg/video-remove-nvidiafb-and-rivafb.patch134
-rw-r--r--debian/patches/debian/dfsg/vs6624-disable.patch17
-rw-r--r--debian/patches/debian/export-symbols-needed-by-android-drivers.patch156
-rw-r--r--debian/patches/debian/fanotify-taint-on-use-of-fanotify_access_permissions.patch31
-rw-r--r--debian/patches/debian/firmware_class-refer-to-debian-wiki-firmware-page.patch58
-rw-r--r--debian/patches/debian/fjes-disable-autoload.patch26
-rw-r--r--debian/patches/debian/fs-enable-link-security-restrictions-by-default.patch24
-rw-r--r--debian/patches/debian/gitignore.patch49
-rw-r--r--debian/patches/debian/i386-686-pae-pci-set-pci-nobios-by-default.patch29
-rw-r--r--debian/patches/debian/ia64-hardcode-arch-script-output.patch72
-rw-r--r--debian/patches/debian/iwlwifi-do-not-request-unreleased-firmware.patch28
-rw-r--r--debian/patches/debian/kernelvariables.patch81
-rw-r--r--debian/patches/debian/mips-boston-disable-its.patch22
-rw-r--r--debian/patches/debian/mips-disable-werror.patch25
-rw-r--r--debian/patches/debian/ntfs-mark-it-as-broken.patch21
-rw-r--r--debian/patches/debian/overlayfs-permit-mounts-in-userns.patch59
-rw-r--r--debian/patches/debian/powerpcspe-omit-uimage.patch45
-rw-r--r--debian/patches/debian/rds-Disable-auto-loading-as-mitigation-against-local.patch31
-rw-r--r--debian/patches/debian/revert-objtool-fix-config_stack_validation-y-warning.patch50
-rw-r--r--debian/patches/debian/sched-autogroup-disabled.patch21
-rw-r--r--debian/patches/debian/snd-pcsp-disable-autoload.patch32
-rw-r--r--debian/patches/debian/tools-perf-install.patch58
-rw-r--r--debian/patches/debian/tools-perf-version.patch119
-rw-r--r--debian/patches/debian/uname-version-timestamp.patch35
-rw-r--r--debian/patches/debian/version.patch177
-rw-r--r--debian/patches/debian/wireless-add-debian-wireless-regdb-certificates.patch963
-rw-r--r--debian/patches/debian/wireless-disable-regulatory.db-direct-loading.patch75
-rw-r--r--debian/patches/debian/yama-disable-by-default.patch28
-rw-r--r--debian/patches/features/all/aufs4/aufs4-base.patch328
-rw-r--r--debian/patches/features/all/aufs4/aufs4-mmap.patch406
-rw-r--r--debian/patches/features/all/aufs4/aufs4-standalone.patch385
-rw-r--r--debian/patches/features/all/db-mok-keyring/0001-KEYS-Allow-unrestricted-boot-time-addition-of-keys-t.patch91
-rw-r--r--debian/patches/features/all/db-mok-keyring/0001-MODSIGN-do-not-load-mok-when-secure-boot-disabled.patch64
-rw-r--r--debian/patches/features/all/db-mok-keyring/0002-MODSIGN-load-blacklist-from-MOKx.patch60
-rw-r--r--debian/patches/features/all/db-mok-keyring/0002-efi-Add-EFI-signature-data-types.patch57
-rw-r--r--debian/patches/features/all/db-mok-keyring/0003-MODSIGN-checking-the-blacklisted-hash-before-loading-a-kernel-module.patch129
-rw-r--r--debian/patches/features/all/db-mok-keyring/0003-efi-Add-an-EFI-signature-blob-parser.patch193
-rw-r--r--debian/patches/features/all/db-mok-keyring/0004-MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch242
-rw-r--r--debian/patches/features/all/db-mok-keyring/0004-MODSIGN-check-the-attributes-of-db-and-mok.patch108
-rw-r--r--debian/patches/features/all/db-mok-keyring/0005-MODSIGN-Allow-the-db-UEFI-variable-to-be-suppressed.patch85
-rw-r--r--debian/patches/features/all/db-mok-keyring/0006-Make-get_cert_list-not-complain-about-cert-lists-tha.patch106
-rw-r--r--debian/patches/features/all/db-mok-keyring/0007-modsign-Use-secondary-trust-keyring-for-module-signi.patch28
-rw-r--r--debian/patches/features/all/db-mok-keyring/modsign-make-shash-allocation-failure-fatal.patch30
-rw-r--r--debian/patches/features/all/drivers-media-dvb-usb-af9005-request_firmware.patch149
-rw-r--r--debian/patches/features/all/e1000e-Add-support-for-Comet-Lake.patch54
-rw-r--r--debian/patches/features/all/ena/0001-net-ethernet-remove-redundant-include.patch34
-rw-r--r--debian/patches/features/all/ena/0002-net-ena-minor-performance-improvement.patch139
-rw-r--r--debian/patches/features/all/ena/0003-net-ena-complete-host-info-to-match-latest-ENA-spec.patch178
-rw-r--r--debian/patches/features/all/ena/0004-net-ena-introduce-Low-Latency-Queues-data-structures.patch271
-rw-r--r--debian/patches/features/all/ena/0005-net-ena-add-functions-for-handling-Low-Latency-Queue.patch832
-rw-r--r--debian/patches/features/all/ena/0006-net-ena-add-functions-for-handling-Low-Latency-Queue.patch655
-rw-r--r--debian/patches/features/all/ena/0007-net-ena-use-CSUM_CHECKED-device-indication-to-report.patch125
-rw-r--r--debian/patches/features/all/ena/0008-net-ena-explicit-casting-and-initialization-and-clea.patch223
-rw-r--r--debian/patches/features/all/ena/0009-net-ena-limit-refill-Rx-threshold-to-256-to-avoid-la.patch54
-rw-r--r--debian/patches/features/all/ena/0010-net-ena-change-rx-copybreak-default-to-reduce-kernel.patch28
-rw-r--r--debian/patches/features/all/ena/0011-net-ena-remove-redundant-parameter-in-ena_com_admin_.patch76
-rw-r--r--debian/patches/features/all/ena/0012-net-ena-update-driver-version-to-2.0.1.patch28
-rw-r--r--debian/patches/features/all/ena/0013-net-ena-fix-indentations-in-ena_defs-for-better-read.patch1000
-rw-r--r--debian/patches/features/all/ena/0015-net-ena-enable-Low-Latency-Queues.patch50
-rw-r--r--debian/patches/features/all/ena/0016-net-ena-fix-compilation-error-in-xtensa-architecture.patch31
-rw-r--r--debian/patches/features/all/ena/0017-net-ena-fix-crash-during-ena_remove.patch97
-rw-r--r--debian/patches/features/all/ena/0018-net-ena-update-driver-version-from-2.0.1-to-2.0.2.patch26
-rw-r--r--debian/patches/features/all/ena/net-ena-Fix-bug-where-ring-allocation-backoff-stoppe.patch39
-rw-r--r--debian/patches/features/all/ena/net-ena-add-MAX_QUEUES_EXT-get-feature-admin-command.patch345
-rw-r--r--debian/patches/features/all/ena/net-ena-add-ethtool-function-for-changing-io-queue-s.patch106
-rw-r--r--debian/patches/features/all/ena/net-ena-add-good-checksum-counter.patch72
-rw-r--r--debian/patches/features/all/ena/net-ena-add-handling-of-llq-max-tx-burst-size.patch232
-rw-r--r--debian/patches/features/all/ena/net-ena-add-intr_moder_rx_interval-to-struct-ena_com.patch118
-rw-r--r--debian/patches/features/all/ena/net-ena-add-newline-at-the-end-of-pr_err-prints.patch91
-rw-r--r--debian/patches/features/all/ena/net-ena-add-support-for-changing-max_header_size-in-.patch54
-rw-r--r--debian/patches/features/all/ena/net-ena-allow-automatic-fallback-to-polling-mode.patch103
-rw-r--r--debian/patches/features/all/ena/net-ena-allow-queue-allocation-backoff-when-low-on-m.patch323
-rw-r--r--debian/patches/features/all/ena/net-ena-arrange-ena_probe-function-variables-in-reve.patch49
-rw-r--r--debian/patches/features/all/ena/net-ena-don-t-wake-up-tx-queue-when-down.patch52
-rw-r--r--debian/patches/features/all/ena/net-ena-enable-negotiating-larger-Rx-ring-size.patch270
-rw-r--r--debian/patches/features/all/ena/net-ena-enable-the-interrupt_moderation-in-driver_su.patch63
-rw-r--r--debian/patches/features/all/ena/net-ena-fix-incorrect-update-of-intr_delay_resolutio.patch89
-rw-r--r--debian/patches/features/all/ena/net-ena-fix-retrieval-of-nonadaptive-interrupt-moder.patch45
-rw-r--r--debian/patches/features/all/ena/net-ena-fix-return-value-of-ena_com_config_llq_info.patch34
-rw-r--r--debian/patches/features/all/ena/net-ena-fix-set-freed-objects-to-NULL-to-avoid-faili.patch91
-rw-r--r--debian/patches/features/all/ena/net-ena-fix-update-of-interrupt-moderation-register.patch39
-rw-r--r--debian/patches/features/all/ena/net-ena-improve-latency-by-disabling-adaptive-interr.patch41
-rw-r--r--debian/patches/features/all/ena/net-ena-make-ethtool-show-correct-current-and-max-qu.patch53
-rw-r--r--debian/patches/features/all/ena/net-ena-optimise-calculations-for-CQ-doorbell.patch50
-rw-r--r--debian/patches/features/all/ena/net-ena-reimplement-set-get_coalesce.patch158
-rw-r--r--debian/patches/features/all/ena/net-ena-remove-all-old-adaptive-rx-interrupt-moderat.patch361
-rw-r--r--debian/patches/features/all/ena/net-ena-remove-code-duplication-in-ena_com_update_no.patch71
-rw-r--r--debian/patches/features/all/ena/net-ena-remove-ena_restore_ethtool_params-and-releva.patch59
-rw-r--r--debian/patches/features/all/ena/net-ena-remove-inline-keyword-from-functions-in-.c.patch244
-rw-r--r--debian/patches/features/all/ena/net-ena-remove-old-adaptive-interrupt-moderation-cod.patch83
-rw-r--r--debian/patches/features/all/ena/net-ena-replace-free_tx-rx_ids-union-with-single-fre.patch198
-rw-r--r--debian/patches/features/all/ena/net-ena-switch-to-dim-algorithm-for-rx-adaptive-inte.patch163
-rw-r--r--debian/patches/features/all/ena/net-ena-update-driver-version-from-2.0.2-to-2.0.3.patch27
-rw-r--r--debian/patches/features/all/ena/net-ena-update-driver-version-from-2.0.3-to-2.1.0.patch32
-rw-r--r--debian/patches/features/all/ena/net-ena-use-dev_info_once-instead-of-static-variable.patch34
-rw-r--r--debian/patches/features/all/lockdown/0001-Add-the-ability-to-lock-down-access-to-the-running-k.patch164
-rw-r--r--debian/patches/features/all/lockdown/0003-ima-require-secure_boot-rules-in-lockdown-mode.patch75
-rw-r--r--debian/patches/features/all/lockdown/0004-Enforce-module-signatures-if-the-kernel-is-locked-do.patch95
-rw-r--r--debian/patches/features/all/lockdown/0005-Restrict-dev-mem-kmem-port-when-the-kernel-is-locked.patch35
-rw-r--r--debian/patches/features/all/lockdown/0006-kexec-Disable-at-runtime-if-the-kernel-is-locked-dow.patch42
-rw-r--r--debian/patches/features/all/lockdown/0007-Copy-secure_boot-flag-in-boot-params-across-kexec-re.patch36
-rw-r--r--debian/patches/features/all/lockdown/0008-kexec_file-Restrict-at-runtime-if-the-kernel-is-lock.patch40
-rw-r--r--debian/patches/features/all/lockdown/0009-hibernate-Disable-when-the-kernel-is-locked-down.patch31
-rw-r--r--debian/patches/features/all/lockdown/0010-uswsusp-Disable-when-the-kernel-is-locked-down.patch32
-rw-r--r--debian/patches/features/all/lockdown/0011-PCI-Lock-down-BAR-access-when-the-kernel-is-locked-d.patch104
-rw-r--r--debian/patches/features/all/lockdown/0012-x86-Lock-down-IO-port-access-when-the-kernel-is-lock.patch46
-rw-r--r--debian/patches/features/all/lockdown/0013-x86-msr-Restrict-MSR-access-when-the-kernel-is-locke.patch50
-rw-r--r--debian/patches/features/all/lockdown/0014-asus-wmi-Restrict-debugfs-interface-when-the-kernel-.patch55
-rw-r--r--debian/patches/features/all/lockdown/0015-ACPI-Limit-access-to-custom_method-when-the-kernel-i.patch32
-rw-r--r--debian/patches/features/all/lockdown/0016-acpi-Ignore-acpi_rsdp-kernel-param-when-the-kernel-h.patch32
-rw-r--r--debian/patches/features/all/lockdown/0017-acpi-Disable-ACPI-table-override-if-the-kernel-is-lo.patch40
-rw-r--r--debian/patches/features/all/lockdown/0018-acpi-Disable-APEI-error-injection-if-the-kernel-is-l.patch43
-rw-r--r--debian/patches/features/all/lockdown/0020-Prohibit-PCMCIA-CIS-storage-when-the-kernel-is-locke.patch29
-rw-r--r--debian/patches/features/all/lockdown/0021-Lock-down-TIOCSSERIAL.patch34
-rw-r--r--debian/patches/features/all/lockdown/0022-Lock-down-module-params-that-specify-hardware-parame.patch80
-rw-r--r--debian/patches/features/all/lockdown/0023-x86-mmiotrace-Lock-down-the-testmmiotrace-module.patch33
-rw-r--r--debian/patches/features/all/lockdown/0024-debugfs-Disallow-use-of-debugfs-files-when-the-kerne.patch53
-rw-r--r--debian/patches/features/all/lockdown/0025-Lock-down-proc-kcore.patch27
-rw-r--r--debian/patches/features/all/lockdown/0026-Lock-down-kprobes.patch29
-rw-r--r--debian/patches/features/all/lockdown/0027-bpf-Restrict-kernel-image-access-functions-when-the-.patch39
-rw-r--r--debian/patches/features/all/lockdown/0028-efi-Add-an-EFI_SECURE_BOOT-flag-to-indicate-secure-b.patch152
-rw-r--r--debian/patches/features/all/lockdown/0029-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch83
-rw-r--r--debian/patches/features/all/lockdown/0032-efi-Restrict-efivar_ssdt_load-when-the-kernel-is-loc.patch36
-rw-r--r--debian/patches/features/all/lockdown/ACPI-configfs-Disallow-loading-ACPI-tables-when-lock.patch44
-rw-r--r--debian/patches/features/all/lockdown/arm64-add-kernel-config-option-to-lock-down-when.patch97
-rw-r--r--debian/patches/features/all/lockdown/enable-cold-boot-attack-mitigation.patch50
-rw-r--r--debian/patches/features/all/lockdown/lockdown-refer-to-debian-wiki-until-manual-page-exists.patch34
-rw-r--r--debian/patches/features/all/lockdown/mtd-disable-slram-and-phram-when-locked-down.patch41
-rw-r--r--debian/patches/features/all/security-perf-allow-further-restriction-of-perf_event_open.patch81
-rw-r--r--debian/patches/features/arm/ARM-dts-add-Raspberry-Pi-3-A-Plus.patch211
-rw-r--r--debian/patches/features/arm/ARM-dts-add-Raspberry-Pi-Compute-Module-3-and-IO-boa.patch183
-rw-r--r--debian/patches/features/arm/ARM-dts-bcm283x-Correct-vchiq-compatible-string.patch35
-rw-r--r--debian/patches/features/arm/staging-vc04_services-Use-correct-cache-line-size.patch133
-rw-r--r--debian/patches/features/arm64/arm64-dts-allwinner-a64-Add-Pine64-LTS-device-tree-f.patch55
-rw-r--r--debian/patches/features/arm64/arm64-dts-broadcom-Add-reference-to-Compute-Module-I.patch35
-rw-r--r--debian/patches/features/arm64/arm64-dts-broadcom-Add-reference-to-RPi-3-A-Plus.patch35
-rw-r--r--debian/patches/features/arm64/arm64-dts-broadcom-Use-the-.dtb-name-in-the-rule-rat.patch32
-rw-r--r--debian/patches/features/mips/MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch65
-rw-r--r--debian/patches/features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch29
-rw-r--r--debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-for-boot-params-.patch101
-rw-r--r--debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-from-boot-params.patch51
-rw-r--r--debian/patches/features/x86/x86-boot-Add-ACPI-RSDP-address-to-setup_header.patch232
-rw-r--r--debian/patches/features/x86/x86-boot-Mostly-revert-commit-ae7e1238e68f2a-Add-ACP.patch236
-rw-r--r--debian/patches/features/x86/x86-make-x32-syscall-support-conditional.patch227
-rw-r--r--debian/patches/features/x86/x86-memtest-WARN-if-bad-RAM-found.patch30
-rw-r--r--debian/patches/series315
-rwxr-xr-xdebian/rules108
-rw-r--r--debian/rules.d/Makefile.inc59
-rw-r--r--debian/rules.d/arch/powerpc/boot/Makefile18
-rw-r--r--debian/rules.d/scripts/Makefile47
-rw-r--r--debian/rules.d/scripts/basic/Makefile4
-rw-r--r--debian/rules.d/scripts/genksyms/Makefile16
-rw-r--r--debian/rules.d/scripts/kconfig/Makefile13
-rw-r--r--debian/rules.d/scripts/mod/Makefile22
-rw-r--r--debian/rules.d/scripts/mod/Makefile.real23
-rw-r--r--debian/rules.d/scripts/mod/elfconfig.h7
-rwxr-xr-xdebian/rules.d/scripts/mod/gendef.py20
-rw-r--r--debian/rules.d/scripts/mod/modpost.c136
-rw-r--r--debian/rules.d/scripts/mod/real-lsb-32/elfconfig.h4
-rw-r--r--debian/rules.d/scripts/mod/real-lsb-32/types.h3
-rw-r--r--debian/rules.d/scripts/mod/real-lsb-64/elfconfig.h4
-rw-r--r--debian/rules.d/scripts/mod/real-lsb-64/types.h3
-rw-r--r--debian/rules.d/scripts/mod/real-msb-32/elfconfig.h4
-rw-r--r--debian/rules.d/scripts/mod/real-msb-32/types.h3
-rw-r--r--debian/rules.d/scripts/mod/real-msb-64/elfconfig.h4
-rw-r--r--debian/rules.d/scripts/mod/real-msb-64/types.h3
-rw-r--r--debian/rules.d/scripts/mod/types.h9
-rw-r--r--debian/rules.d/tools/hv/Makefile17
-rw-r--r--debian/rules.d/tools/lib/bpf/Makefile17
-rw-r--r--debian/rules.d/tools/objtool/Makefile11
-rw-r--r--debian/rules.d/tools/perf/Makefile62
-rw-r--r--debian/rules.d/tools/power/cpupower/Makefile26
-rw-r--r--debian/rules.d/tools/power/x86/Makefile5
-rw-r--r--debian/rules.d/tools/power/x86/turbostat/Makefile7
-rw-r--r--debian/rules.d/tools/power/x86/x86_energy_perf_policy/Makefile7
-rw-r--r--debian/rules.d/tools/usb/usbip/Makefile31
-rw-r--r--debian/rules.defs5
-rw-r--r--debian/rules.gen1140
-rw-r--r--debian/rules.real814
-rw-r--r--debian/signing_templates/README.source4
-rw-r--r--debian/signing_templates/control.image.in11
-rw-r--r--debian/signing_templates/control.source.in11
-rwxr-xr-xdebian/signing_templates/rules20
-rw-r--r--debian/signing_templates/rules.real71
-rw-r--r--debian/signing_templates/source/format1
-rw-r--r--debian/source/format2
-rw-r--r--debian/source/include-binaries2
-rw-r--r--debian/source/lintian-overrides6
-rw-r--r--debian/templates/control.config.in11
-rw-r--r--debian/templates/control.docs.in15
-rw-r--r--debian/templates/control.extra.in26
-rw-r--r--debian/templates/control.headers.arch.in16
-rw-r--r--debian/templates/control.headers.featureset.in11
-rw-r--r--debian/templates/control.headers.in10
-rw-r--r--debian/templates/control.image-dbg.in8
-rw-r--r--debian/templates/control.image-unsigned.in9
-rw-r--r--debian/templates/control.image.in7
-rw-r--r--debian/templates/control.libc-dev.in9
-rw-r--r--debian/templates/control.main.in11
-rw-r--r--debian/templates/control.signed-template.in6
-rw-r--r--debian/templates/control.source.in38
-rw-r--r--debian/templates/control.sourcebin.in15
-rw-r--r--debian/templates/control.tools-unversioned.in102
-rw-r--r--debian/templates/control.tools-versioned.in48
-rw-r--r--debian/templates/headers.postinst.in18
-rw-r--r--debian/templates/image-dbg.lintian-overrides.in15
-rw-r--r--debian/templates/image.bug/control2
-rw-r--r--debian/templates/image.bug/include-0version9
-rw-r--r--debian/templates/image.bug/include-1cmdline9
-rw-r--r--debian/templates/image.bug/include-1tainted55
-rw-r--r--debian/templates/image.bug/include-dmesg21
-rw-r--r--debian/templates/image.bug/include-model60
-rw-r--r--debian/templates/image.bug/include-modules13
-rw-r--r--debian/templates/image.bug/include-network39
-rw-r--r--debian/templates/image.bug/include-pci12
-rw-r--r--debian/templates/image.bug/include-pstore77
-rw-r--r--debian/templates/image.bug/include-usb11
-rw-r--r--debian/templates/image.bug/presubj8
-rw-r--r--debian/templates/image.bug/script46
-rwxr-xr-xdebian/templates/image.postinst.in25
-rwxr-xr-xdebian/templates/image.postrm.in31
-rwxr-xr-xdebian/templates/image.preinst.in21
-rwxr-xr-xdebian/templates/image.prerm.in17
-rw-r--r--debian/templates/perf.lintian-overrides.in3
-rw-r--r--debian/templates/tests-control.image.in4
-rw-r--r--debian/templates/tests-control.main.in2
-rw-r--r--debian/tests/control8
-rwxr-xr-xdebian/tests/python40
-rw-r--r--debian/tests/selftests88
-rw-r--r--debian/upstream/rt-signing-key.pgpbin0 -> 95605 bytes
-rw-r--r--debian/upstream/signing-key.pgpbin0 -> 11043 bytes
-rw-r--r--debian/usbip.install2
-rw-r--r--debian/usbip.manpages2
-rw-r--r--debian/watch4
2034 files changed, 187727 insertions, 0 deletions
diff --git a/debian/README.Debian b/debian/README.Debian
new file mode 100644
index 000000000..fa3f0a315
--- /dev/null
+++ b/debian/README.Debian
@@ -0,0 +1,65 @@
+Linux kernel for Debian
+-----------------------
+
+Patches
+-------
+Debian applies small changes to the kernel source. These are split up into
+separated patches addressing individual problems. Each of the patch files
+contains a description and mentions the author. The patches can be found
+in the source package or at
+https://sources.debian.org/src/linux/<version>/debian/patches/
+(with the package version substituted).
+
+Config Files
+------------
+The .config files used to build the various linux-image files are dynamically
+generated during the linux package build. See the source package for
+details. Each linux-image-* package provides the complete .config file that
+was used to generate it. This file is installed in /boot.
+
+Scope of security support
+-------------------------
+Security support is provided not only for the binary builds, but also
+for the full source package, allowing for locally customized kernels.
+However, kernel options that are not enabled in official Debian builds are
+given a lower priority for security support. Options marked as BROKEN
+or EXPERIMENTAL are of very low priority, and should not be enabled in
+customized builds for a security-sensitive environment.
+
+Building custom kernel binary packages
+--------------------------------------
+We recommend using the 'make deb-pkg' target provided by the upstream
+kernel source.
+
+Rebuilding official binary packages
+-----------------------------------
+You can build specific kernel binary packages using the targets in
+debian/rules.gen, which have names of the form:
+ binary-arch_<architecture>_<featureset>_<flavour>
+
+Example:
+ fakeroot make -f debian/rules.gen binary-arch_i386_none_686
+
+Rebuilding Adaptec AIC7xxx/79xx firmware
+----------------------------------------
+You can rebuild the firmware for the Adaptec AIC7xxx/79xx SCSI Adapters. To
+do so you need to set AIC7XXX_BUILD_FIRMWARE/AIC79XX_BUILD_FIRMWARE config
+options. Note that this requires to have the development packages for
+Berkeley Database (libdb-dev) installed.
+
+Non-free bits removed
+---------------------
+See the Files-Excluded field in debian/copyright.
+
+Changelog
+---------
+Older Debian changelog entries are no longer included in binary
+packages, but can be found in debian/changelog.old in the source
+package.
+
+Further information
+-------------------
+Debian Linux Kernel Handbook:
+ https://kernel-team.pages.debian.net/kernel-handbook/
+ or debian-kernel-handbook package
+Debian Wiki: https://wiki.debian.org/DebianKernel
diff --git a/debian/README.source b/debian/README.source
new file mode 100644
index 000000000..96f274f8d
--- /dev/null
+++ b/debian/README.source
@@ -0,0 +1,284 @@
+Checklist for uploaders
+=======================
+
+There is a checklist in the kernel-team.git repository; see
+<https://salsa.debian.org/kernel-team/kernel-team/-/blob/master/docs/kernel-upload-checklist.md>.
+
+Updating the upstream source
+============================
+
+In addition to the build-dependencies, you will need the rsync package
+installed.
+
+1) It is recommended to fetch the release tag from the relevant upstream git
+ repository, one of:
+
+ * https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
+ * https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
+ * git://kernel.ubuntu.com/ubuntu/linux.git
+
+ However, it is also possible to use upstream tarball and patch releases.
+ Both tags and files should be signed by the relevant maintainer, which
+ you *must* verify using commands such as:
+
+ $ git tag -v v4.5
+ $ xzcat linux-4.5.tar.xz | gpg --verify linux-4.5.tar.sign -
+ $ xzcat patch-4.5.1.xz | gpg --verify patch-4.5.1.sign -
+
+ The upstream maintainers' key fingerprints are:
+
+ pub 2048R/00411886 2011-09-20
+ Key fingerprint = ABAF 11C6 5A29 70B1 30AB E3C4 79BE 3E43 0041 1886
+ uid Linus Torvalds <torvalds@linux-foundation.org>
+ sub 2048R/012F54CA 2011-09-20
+
+ pub 4096R/6092693E 2011-09-23
+ Key fingerprint = 647F 2865 4894 E3BD 4571 99BE 38DB BDC8 6092 693E
+ uid Greg Kroah-Hartman (Linux kernel stable release signing key) <greg@kroah.com>
+ sub 4096R/76D54749 2011-09-23
+
+ pub 4096R/FDCE24FC 2011-12-10
+ Key fingerprint = D4E1 E317 4470 9144 B0F8 101A DB74 AEB8 FDCE 24FC
+ uid Luis Henriques <luis.henriques@canonical.com>
+ uid Luis Henriques <henrix@camandro.org>
+ sub 4096R/EFBC394A 2011-12-10
+
+2) Run: ./debian/bin/genorig.py <repository>
+ or: ./debian/bin/genorig.py <tarball> [patch]
+
+ This will produce ../orig/linux_<version>.orig.tar.xz
+ (e.g. linux_3.5~rc1.orig.tar.xz).
+
+ It involves deleting files for DFSG compliance, as listed in the
+ Files-Excluded field in debian/copyright.
+
+3) Run: make -f debian/rules orig
+
+ This will apply the main quilt series to the upstream source, which
+ will usually fail due to conflicts with upstream changes. You need
+ to resolve those by dropping or refreshing patches.
+
+Recording updates in the changelog
+----------------------------------
+
+Upstream commits that we already cherry-picked and included in a
+previous package upload should not be mentioned, since they don't make
+any difference to the package. Any other commits that fix a Debian
+bug report and/or a security issue with a CVE ID should always be
+listed, along with the (Closes: #nnnnnn) and/or (CVE-yyyy-nnnn)
+reference.
+
+Aside from those general rules:
+
+* For an upstream release candidate, don't attempt to list the changes
+
+* For a stable release by Linus, refer to the summary at
+ kernelnewbies.org, e.g. https://kernelnewbies.org/Linux_4.5
+
+* For a stable update, refer to the changelog on kernel.org, e.g.
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.5.1, and
+ list all changes that are relevant to our package and that fix bugs
+ that we would consider 'important' or higher severity
+
+ - The script debian/bin/stable-update updates the changelog
+ version and inserts the list of changes. It doesn't attempt to
+ filter out irrelevant or unimportant changes.
+
+ - If you have time, please delete irrelevant changes such as:
+ + Fixes for architectures not supported by the package
+ + Fixes for drivers that aren't enabled in any of our configurations
+ + Build fixes for configurations that we don't use
+ + Fixes for lockdep false positives
+
+If you have time, please add bracketted prefixes to the upstream
+change list as described below under "Changelog conventions".
+
+Applying patches to the Debian kernel tree
+==========================================
+
+The Debian kernel packaging uses the quilt patch system, but with
+multiple series to allow for featuresets.
+
+Patches are stored below debian/patches, loosely sorted in bugfix/,
+features/ and debian/. Patches are in the standard kernel patch
+format (unified diff to be applied with patch -p1) and generally have
+DEP-3 headers.
+
+For each optional featureset there is an additional patch directory
+debian/patches-<featureset>.
+
+If you want to generate a source tree with all patches applied, run
+make -f debian/rules source
+
+The resulting source can be found below debian/build.
+
+Changelog conventions
+=====================
+
+If a change only affects some architectures, flavours or featuresets,
+this should be noted with a bracketted prefix on the changelog line:
+
+* [<fset>] Change to featureset <fset>
+* [<arch>] Change that affects Debian architecture <arch>
+* [<arch1>,<arch2>...] Change that affects Debian architectures
+ <arch1>, <arch2>, ...
+* [<arch>/<flavour>] Change that affects kernel flavour <flavour>
+ on Debian architecture <arch>
+* [<arch>/{<flavour1>,<flavour2>...}] Change that affects kernel
+ flavours <flavour1>, <flavour2>, ... on Debian architecture <arch>
+
+You can use wildcards to cover multiple values, e.g. 'arm*' for armel,
+armhf and arm64 architectures. Also 'x86' is used to cover the Debian
+architectures amd64, i386 and x32.
+
+Kernel config files
+===================
+
+Each kernel configuration file is constructed dynamically from a
+number of files under debian/config. They are read in the following
+order, such that files later on the list can override settings from
+earlier files. Most of the files are optional and the filenames can
+generally be overridden by explicit lists (possibly empty) specified
+in the 'defines' files.
+
+1. Common:
+ - Default filename: config
+ - Filename list: [image]configs in defines
+2. Per kernel architecture:
+ - Filename: kernelarch-<karch>/config (optional)
+3. Per architecture:
+ - Default filename: <arch>/config
+ - Filename list: [image]configs in <arch>/defines
+4. Per architecture and flavour:
+ - Default filename: <arch>/config.<flavour> (optional)
+ - Filename list: [<flavour>_image]configs in <arch>/defines
+5. Per featureset:
+ - Default filename: featureset-<fset>/config (optional)
+ - Filename list: [image]configs in featureset-<fset>/defines
+6. Per architecture and featureset:
+ - Default filename: <arch>/<fset>/config (optional)
+ - Filename list: [image]configs in <arch>/<fset>/defines
+7. Per architecture, featureset, and flavour:
+ - Default filename: <arch>/<fset>/config.<flavour> (optional)
+ - Filename list: [<flavour>_image]configs in <arch>/<fset>/defines
+
+You can check the final list of configuration files by reading
+debian/rules.gen. Each binary-arch_<arch>_<fset>_<flavour>_real
+rule passes the list to debian/rules.real as the KCONFIG variable.
+
+These files should be kept in order using the kconfigeditor2
+utility from <https://salsa.debian.org/kernel-team/kernel-team>.
+With this source package as your working directory, run:
+
+ debian/rules source
+ .../kernel-team/utils/kconfigeditor2/process.py .
+
+This will also warn about any symbols that no longer exist, or
+cannot be explicitly configured.
+
+Control file
+============
+The master control file debian/control must be generated before
+the package is uploaded. debian/rules contains the debian/control
+target, which generates the control file by invoking the
+debian/bin/gencontrol.py script, which combines the templates from
+the templates directory and architecture-specific defines file to
+produce the debian/control file. Note that this target is intentionally
+made to fail with a non-zero exit code to make sure that it is never
+run during an automatic build. The following variables are substituted
+into the templates:
+
+@version@ Upstream kernel version, for example 2.6.11.
+@arch@ The Debian arch name, such as powerpc or i386.
+@flavour@ The build flavour, such as 686 or k7-smp.
+@class@ The CPU/architecture class; displayed in synopsis. It should
+ be fairly short, as the synopsis is supposed to be <80 chars.
+ It should be in the form "foo class", and will show up in the
+ description as "foo class machines".
+@longclass@ The CPU/architecture class; displayed in the extended
+ description. The same rules apply as in @class@. If
+ this is unset, it will default to @class@.
+@desc@ (Potentially) multi-line verbiage that's appended to
+ -image descriptions.
+@abiname@ Current abiname, a single digit.
+
+Normally, the arch-specific contents should be controlled by
+adjusting the corresponding defines file.
+
+Build-dependencies that relate to specific binary packages can be
+specified in a Build-Depends field in the template for that binary
+package. gencontrol.py will append the value to the source package's
+Build-Depends-Arch or Build-Depends-Indep field, as appropriate. It
+will also use the binary package's Architecture and Build-Profile as
+the architecture-qualification and/or restriction for each build-
+dependency that doesn't already have them.
+
+TODO:
+- Patches applied to the upstream source
+- How to define a flavour
+- More detail on generation of debian/control and configs
+
+Running tests
+=============
+
+linux supports autopkgtest and should be able to run most of the
+kernel's self-tests on any architecture where kexec is supported,
+but it has higher resource requirements than most packages:
+
+- A VM with plenty of disk space (10GB is enough), RAM (1GB is
+ probably enough) and at least 2 CPUs
+- The temporary directory for adt-virt-qemu (-o option) will need
+ several GB of space, so a tmpfs may not be suitable
+
+Note that if you tell adt-run to use an 'unbuilt tree' (i.e. an
+unpacked source package) it does not exclude VCS directories such as
+.git. Either use a packed source package or copy the working tree
+elsewhere excluding .git.
+
+Example invocation:
+
+ adt-run -B ../linux-image-4.2.0-rc6-amd64_4.2~rc6-1~exp2_amd64.deb \
+ ../linux_4.2~rc6-1~exp2.dsc \
+ --timeout-test=1200 \
+ --- adt-virt-qemu /var/cache/autopkgtest/adt-sid.img -o /var/tmp -c 2
+
+Build profiles
+==============
+
+Several build profiles are understood and supported:
+
+- stage1: Needed when bootstrapping an architecture. A stage1 build
+ produces only the linux-libc-dev package and has no host
+ build-dependencies.
+- nodoc: Exclude most documentation
+- pkg.linux.notools: Exclude userland tool packages (linux-kbuild-<version>,
+ linux-perf-<version>, etc.)
+- pkg.linux.nokernel: Exclude kernel image and header packages
+- pkg.linux.nosource: Exclude source binary package (linux-source-<version>)
+- cross: Needed when cross-building. Currently this must be used together
+ with nopython as the build-dependencies will be unsatisfiable otherwise.
+- nopython: Disable Python bindings. This currently disables building the
+ linux-perf-<version> package, as the perf program embeds Python.
+
+Build rules
+===========
+
+The Debian build rules are split across multiple makefiles:
+
+- debian/rules: Standard top-level makefile for Debian package build.
+- debian/rules.gen: Intermediate makefile between debian/rules and
+ debian/rules.real. This is generated by gencontrol.py based on
+ the configuration under debian/config.
+- debian/rules.real: Makefile for building a single kernel flavour
+ or other group of binary packages.
+- debian/rules.d: Makefiles for building userland code from specific
+ source directories. The directory structure mirrors the kernel
+ source directories. debian/rules.real uses the "make-tools" to
+ invoke these makefiles.
+
+All builds *must* be done out-of-tree in a subdirectory of
+debian/build, so that the output files do not end up in the
+linux-source-<version> binary package. Currently kernel builds use
+debian/build/build_<arch>_<featureset>_<flavour>, userland code uses
+debian/build/build-tools/<source-dir> and documentation uses
+debian/build/build-doc.
diff --git a/debian/bin/abiupdate.py b/debian/bin/abiupdate.py
new file mode 100755
index 000000000..dbb6f77ba
--- /dev/null
+++ b/debian/bin/abiupdate.py
@@ -0,0 +1,232 @@
+#!/usr/bin/python3
+
+import sys
+import optparse
+import os
+import shutil
+import tempfile
+
+from urllib.request import urlopen
+from urllib.error import HTTPError
+
+from debian_linux.abi import Symbols
+from debian_linux.config import ConfigCoreDump
+from debian_linux.debian import Changelog, VersionLinux
+
+default_url_base = "https://deb.debian.org/debian/"
+default_url_base_incoming = "https://incoming.debian.org/debian-buildd/"
+default_url_base_ports = "https://deb.debian.org/debian-ports/"
+default_url_base_ports_incoming = "https://incoming.ports.debian.org/"
+default_url_base_security = "https://deb.debian.org/debian-security/"
+
+
+class url_debian_flat(object):
+ def __init__(self, base):
+ self.base = base
+
+ def __call__(self, source, filename, arch):
+ return self.base + filename
+
+
+class url_debian_pool(object):
+ def __init__(self, base):
+ self.base = base
+
+ def __call__(self, source, filename, arch):
+ return (self.base + "pool/main/" + source[0] + "/" + source + "/"
+ + filename)
+
+
+class url_debian_ports_pool(url_debian_pool):
+ def __call__(self, source, filename, arch):
+ if arch == 'all':
+ return url_debian_pool.__call__(self, source, filename, arch)
+ return (self.base + "pool-" + arch + "/main/" + source[0] + "/"
+ + source + "/" + filename)
+
+
+class url_debian_security_pool(url_debian_pool):
+ def __call__(self, source, filename, arch):
+ return (self.base + "pool/updates/main/" + source[0] + "/" + source
+ + "/" + filename)
+
+
+class Main(object):
+ dir = None
+
+ def __init__(self, arch=None, featureset=None, flavour=None):
+ self.log = sys.stdout.write
+
+ self.override_arch = arch
+ self.override_featureset = featureset
+ self.override_flavour = flavour
+
+ changelog = Changelog(version=VersionLinux)
+ while changelog[0].distribution == 'UNRELEASED':
+ changelog.pop(0)
+ changelog = changelog[0]
+
+ self.source = changelog.source
+ self.version = changelog.version.linux_version
+ self.version_source = changelog.version.complete
+
+ if changelog.distribution.endswith('-security'):
+ self.urls = [url_base_security]
+ else:
+ self.urls = [url_base, url_base_ports,
+ url_base_incoming, url_base_ports_incoming]
+
+ self.config = ConfigCoreDump(fp=open("debian/config.defines.dump",
+ "rb"))
+
+ self.version_abi = self.config['version', ]['abiname']
+
+ def __call__(self):
+ self.dir = tempfile.mkdtemp(prefix='abiupdate')
+ try:
+ self.log("Retrieve config\n")
+
+ try:
+ config = self.get_config()
+ except HTTPError as e:
+ self.log("Failed to retrieve %s: %s\n" % (e.filename, e))
+ sys.exit(1)
+
+ if self.override_arch:
+ arches = [self.override_arch]
+ else:
+ arches = config[('base',)]['arches']
+ for arch in arches:
+ self.update_arch(config, arch)
+ finally:
+ shutil.rmtree(self.dir)
+
+ def extract_package(self, filename, base):
+ base_out = self.dir + "/" + base
+ os.mkdir(base_out)
+ os.system("dpkg-deb --extract %s %s" % (filename, base_out))
+ return base_out
+
+ def get_abi(self, arch, prefix):
+ try:
+ version_abi = (self.config[('version',)]['abiname_base'] + '-'
+ + self.config['abi', arch]['abiname'])
+ except KeyError:
+ version_abi = self.version_abi
+ filename = ("linux-headers-%s-%s_%s_%s.deb" %
+ (version_abi, prefix, self.version_source, arch))
+ f = self.retrieve_package(filename, arch)
+ d = self.extract_package(f, "linux-headers-%s_%s" % (prefix, arch))
+ f1 = d + ("/usr/src/linux-headers-%s-%s/Module.symvers" %
+ (version_abi, prefix))
+ s = Symbols(open(f1))
+ shutil.rmtree(d)
+ return version_abi, s
+
+ def get_config(self):
+ # XXX We used to fetch the previous version of linux-support here,
+ # but until we authenticate downloads we should not do that as
+ # pickle.load allows running arbitrary code.
+ return self.config
+
+ def retrieve_package(self, filename, arch):
+ for i, url in enumerate(self.urls):
+ u = url(self.source, filename, arch)
+ filename_out = self.dir + "/" + filename
+
+ try:
+ f_in = urlopen(u)
+ except HTTPError:
+ if i == len(self.urls) - 1:
+ # No more URLs to try
+ raise
+ else:
+ continue
+
+ f_out = open(filename_out, 'wb')
+ while 1:
+ r = f_in.read()
+ if not r:
+ break
+ f_out.write(r)
+ return filename_out
+
+ def save_abi(self, version_abi, symbols, arch, featureset, flavour):
+ dir = "debian/abi/%s" % version_abi
+ if not os.path.exists(dir):
+ os.makedirs(dir)
+ out = "%s/%s_%s_%s" % (dir, arch, featureset, flavour)
+ symbols.write(open(out, 'w'))
+
+ def update_arch(self, config, arch):
+ if self.override_featureset:
+ featuresets = [self.override_featureset]
+ else:
+ featuresets = config[('base', arch)]['featuresets']
+ for featureset in featuresets:
+ self.update_featureset(config, arch, featureset)
+
+ def update_featureset(self, config, arch, featureset):
+ config_base = config.merge('base', arch, featureset)
+
+ if not config_base.get('enabled', True):
+ return
+
+ if self.override_flavour:
+ flavours = [self.override_flavour]
+ else:
+ flavours = config_base['flavours']
+ for flavour in flavours:
+ self.update_flavour(config, arch, featureset, flavour)
+
+ def update_flavour(self, config, arch, featureset, flavour):
+ self.log("Updating ABI for arch %s, featureset %s, flavour %s: " %
+ (arch, featureset, flavour))
+ try:
+ if featureset == 'none':
+ localversion = flavour
+ else:
+ localversion = featureset + '-' + flavour
+
+ version_abi, abi = self.get_abi(arch, localversion)
+ self.save_abi(version_abi, abi, arch, featureset, flavour)
+ self.log("Ok.\n")
+ except HTTPError as e:
+ self.log("Failed to retrieve %s: %s\n" % (e.filename, e))
+ except Exception:
+ self.log("FAILED!\n")
+ import traceback
+ traceback.print_exc(None, sys.stdout)
+
+
+if __name__ == '__main__':
+ options = optparse.OptionParser()
+ options.add_option("-u", "--url-base", dest="url_base",
+ default=default_url_base)
+ options.add_option("--url-base-incoming", dest="url_base_incoming",
+ default=default_url_base_incoming)
+ options.add_option("--url-base-ports", dest="url_base_ports",
+ default=default_url_base_ports)
+ options.add_option("--url-base-ports-incoming",
+ dest="url_base_ports_incoming",
+ default=default_url_base_ports_incoming)
+ options.add_option("--url-base-security", dest="url_base_security",
+ default=default_url_base_security)
+
+ opts, args = options.parse_args()
+
+ kw = {}
+ if len(args) >= 1:
+ kw['arch'] = args[0]
+ if len(args) >= 2:
+ kw['featureset'] = args[1]
+ if len(args) >= 3:
+ kw['flavour'] = args[2]
+
+ url_base = url_debian_pool(opts.url_base)
+ url_base_incoming = url_debian_pool(opts.url_base_incoming)
+ url_base_ports = url_debian_ports_pool(opts.url_base_ports)
+ url_base_ports_incoming = url_debian_flat(opts.url_base_ports_incoming)
+ url_base_security = url_debian_security_pool(opts.url_base_security)
+
+ Main(**kw)()
diff --git a/debian/bin/buildcheck.py b/debian/bin/buildcheck.py
new file mode 100755
index 000000000..3f7ce25a9
--- /dev/null
+++ b/debian/bin/buildcheck.py
@@ -0,0 +1,285 @@
+#!/usr/bin/python3
+
+import sys
+import glob
+import os
+import re
+
+from debian_linux.abi import Symbols
+from debian_linux.config import ConfigCoreDump
+from debian_linux.debian import Changelog, VersionLinux
+
+
+class CheckAbi(object):
+ class SymbolInfo(object):
+ def __init__(self, symbol, symbol_ref=None):
+ self.symbol = symbol
+ self.symbol_ref = symbol_ref or symbol
+
+ @property
+ def module(self):
+ return self.symbol.module
+
+ @property
+ def name(self):
+ return self.symbol.name
+
+ def write(self, out, ignored):
+ info = []
+ if ignored:
+ info.append("ignored")
+ for name in ('module', 'version', 'export'):
+ data = getattr(self.symbol, name)
+ data_ref = getattr(self.symbol_ref, name)
+ if data != data_ref:
+ info.append("%s: %s -> %s" % (name, data_ref, data))
+ else:
+ info.append("%s: %s" % (name, data))
+ out.write("%-48s %s\n" % (self.symbol.name, ", ".join(info)))
+
+ def __init__(self, config, dir, arch, featureset, flavour):
+ self.config = config
+ self.arch, self.featureset, self.flavour = arch, featureset, flavour
+
+ self.filename_new = "%s/Module.symvers" % dir
+
+ try:
+ version_abi = (self.config[('version',)]['abiname_base'] + '-'
+ + self.config['abi', arch]['abiname'])
+ except KeyError:
+ version_abi = self.config[('version',)]['abiname']
+ self.filename_ref = ("debian/abi/%s/%s_%s_%s" %
+ (version_abi, arch, featureset, flavour))
+
+ def __call__(self, out):
+ ret = 0
+
+ new = Symbols(open(self.filename_new))
+ unversioned = [name for name in new
+ if new[name].version == '0x00000000']
+ if unversioned:
+ out.write("ABI is not completely versioned! "
+ "Refusing to continue.\n")
+ out.write("\nUnversioned symbols:\n")
+ for name in sorted(unversioned):
+ self.SymbolInfo(new[name]).write(out, False)
+ ret = 1
+
+ try:
+ ref = Symbols(open(self.filename_ref))
+ except IOError:
+ out.write("Can't read ABI reference. ABI not checked!\n")
+ return ret
+
+ symbols, add, change, remove = self._cmp(ref, new)
+
+ ignore = self._ignore(symbols)
+
+ add_effective = add - ignore
+ change_effective = change - ignore
+ remove_effective = remove - ignore
+
+ if change_effective or remove_effective:
+ out.write("ABI has changed! Refusing to continue.\n")
+ ret = 1
+ elif change or remove:
+ out.write("ABI has changed but all changes have been ignored. "
+ "Continuing.\n")
+ elif add_effective:
+ out.write("New symbols have been added. Continuing.\n")
+ elif add:
+ out.write("New symbols have been added but have been ignored. "
+ "Continuing.\n")
+ else:
+ out.write("No ABI changes.\n")
+
+ if add:
+ out.write("\nAdded symbols:\n")
+ for name in sorted(add):
+ symbols[name].write(out, name in ignore)
+
+ if change:
+ out.write("\nChanged symbols:\n")
+ for name in sorted(change):
+ symbols[name].write(out, name in ignore)
+
+ if remove:
+ out.write("\nRemoved symbols:\n")
+ for name in sorted(remove):
+ symbols[name].write(out, name in ignore)
+
+ return ret
+
+ def _cmp(self, ref, new):
+ ref_names = set(ref.keys())
+ new_names = set(new.keys())
+
+ add = set()
+ change = set()
+ remove = set()
+
+ symbols = {}
+
+ for name in new_names - ref_names:
+ add.add(name)
+ symbols[name] = self.SymbolInfo(new[name])
+
+ for name in ref_names.intersection(new_names):
+ s_ref = ref[name]
+ s_new = new[name]
+
+ if s_ref != s_new:
+ change.add(name)
+ symbols[name] = self.SymbolInfo(s_new, s_ref)
+
+ for name in ref_names - new_names:
+ remove.add(name)
+ symbols[name] = self.SymbolInfo(ref[name])
+
+ return symbols, add, change, remove
+
+ def _ignore_pattern(self, pattern):
+ ret = []
+ for i in re.split(r'(\*\*?)', pattern):
+ if i == '*':
+ ret.append(r'[^/]*')
+ elif i == '**':
+ ret.append(r'.*')
+ elif i:
+ ret.append(re.escape(i))
+ return re.compile('^' + ''.join(ret) + '$')
+
+ def _ignore(self, symbols):
+ # TODO: let config merge this lists
+ configs = []
+ configs.append(self.config.get(('abi', self.arch, self.featureset,
+ self.flavour), {}))
+ configs.append(self.config.get(('abi', self.arch, None, self.flavour),
+ {}))
+ configs.append(self.config.get(('abi', self.arch, self.featureset),
+ {}))
+ configs.append(self.config.get(('abi', self.arch), {}))
+ configs.append(self.config.get(('abi', None, self.featureset), {}))
+ configs.append(self.config.get(('abi',), {}))
+
+ ignores = set()
+ for config in configs:
+ ignores.update(config.get('ignore-changes', []))
+
+ filtered = set()
+ for ignore in ignores:
+ type = 'name'
+ if ':' in ignore:
+ type, ignore = ignore.split(':')
+ if type in ('name', 'module'):
+ p = self._ignore_pattern(ignore)
+ for symbol in symbols.values():
+ if p.match(getattr(symbol, type)):
+ filtered.add(symbol.name)
+ else:
+ raise NotImplementedError
+
+ return filtered
+
+
+class CheckImage(object):
+ def __init__(self, config, dir, arch, featureset, flavour):
+ self.dir = dir
+ self.arch, self.featureset, self.flavour = arch, featureset, flavour
+
+ self.changelog = Changelog(version=VersionLinux)[0]
+
+ self.config_entry_base = config.merge('base', arch, featureset,
+ flavour)
+ self.config_entry_build = config.merge('build', arch, featureset,
+ flavour)
+ self.config_entry_image = config.merge('image', arch, featureset,
+ flavour)
+
+ def __call__(self, out):
+ image = self.config_entry_build.get('image-file')
+ uncompressed_image = self.config_entry_build \
+ .get('uncompressed-image-file')
+
+ if not image:
+ # TODO: Bail out
+ return 0
+
+ image = os.path.join(self.dir, image)
+ if uncompressed_image:
+ uncompressed_image = os.path.join(self.dir, uncompressed_image)
+
+ fail = 0
+
+ fail |= self.check_size(out, image, uncompressed_image)
+
+ return fail
+
+ def check_size(self, out, image, uncompressed_image):
+ value = self.config_entry_image.get('check-size')
+
+ if not value:
+ return 0
+
+ dtb_size = 0
+ if self.config_entry_image.get('check-size-with-dtb'):
+ for dtb in glob.glob(
+ os.path.join(self.dir, 'arch',
+ self.config_entry_base['kernel-arch'],
+ 'boot/dts/*.dtb')):
+ dtb_size = max(dtb_size, os.stat(dtb).st_size)
+
+ size = os.stat(image).st_size + dtb_size
+
+ # 1% overhead is desirable in order to cope with growth
+ # through the lifetime of a stable release. Warn if this is
+ # not the case.
+ usage = (float(size)/value) * 100.0
+ out.write('Image size %d/%d, using %.2f%%. ' % (size, value, usage))
+ if size > value:
+ out.write('Too large. Refusing to continue.\n')
+ return 1
+ elif usage >= 99.0:
+ out.write('Under 1%% space in %s. ' % self.changelog.distribution)
+ else:
+ out.write('Image fits. ')
+ out.write('Continuing.\n')
+
+ # Also check the uncompressed image
+ if uncompressed_image and \
+ self.config_entry_image.get('check-uncompressed-size'):
+ value = self.config_entry_image.get('check-uncompressed-size')
+ size = os.stat(uncompressed_image).st_size
+ usage = (float(size)/value) * 100.0
+ out.write('Uncompressed Image size %d/%d, using %.2f%%. ' %
+ (size, value, usage))
+ if size > value:
+ out.write('Too large. Refusing to continue.\n')
+ return 1
+ elif usage >= 99.0:
+ out.write('Uncompressed Image Under 1%% space in %s. ' %
+ self.changelog.distribution)
+ else:
+ out.write('Uncompressed Image fits. ')
+ out.write('Continuing.\n')
+
+ return 0
+
+
+class Main(object):
+ def __init__(self, dir, arch, featureset, flavour):
+ self.args = dir, arch, featureset, flavour
+
+ self.config = ConfigCoreDump(open("debian/config.defines.dump", "rb"))
+
+ def __call__(self):
+ fail = 0
+
+ for c in CheckAbi, CheckImage:
+ fail |= c(self.config, *self.args)(sys.stdout)
+
+ return fail
+
+
+if __name__ == '__main__':
+ sys.exit(Main(*sys.argv[1:])())
diff --git a/debian/bin/check-patches.sh b/debian/bin/check-patches.sh
new file mode 100755
index 000000000..093649bd1
--- /dev/null
+++ b/debian/bin/check-patches.sh
@@ -0,0 +1,28 @@
+#!/bin/sh -e
+
+TMPDIR=$(mktemp -d)
+trap "rm -rf $TMPDIR" EXIT
+for patchdir in debian/patches*; do
+ sed '/^#/d; /^[[:space:]]*$/d; /^X /d; s/^+ //; s,^,'"$patchdir"'/,' "$patchdir"/series
+done | sort -u > $TMPDIR/used
+find debian/patches* ! -path '*/series' -type f -name "*.diff" -o -name "*.patch" -printf "%p\n" | sort > $TMPDIR/avail
+echo "Used patches"
+echo "=============="
+cat $TMPDIR/used
+echo
+echo "Unused patches"
+echo "=============="
+fgrep -v -f $TMPDIR/used $TMPDIR/avail || test $? = 1
+echo
+echo "Patches without required headers"
+echo "================================"
+xargs egrep -l '^(Subject|Description):' < $TMPDIR/used | xargs egrep -l '^(From|Author|Origin):' > $TMPDIR/goodheaders || test $? = 1
+fgrep -v -f $TMPDIR/goodheaders $TMPDIR/used || test $? = 1
+echo
+echo "Patches without Origin or Forwarded header"
+echo "=========================================="
+xargs egrep -L '^(Origin:|Forwarded: (no\b|not-needed|http))' < $TMPDIR/used || test $? = 1
+echo
+echo "Patches to be forwarded"
+echo "======================="
+xargs egrep -l '^Forwarded: no\b' < $TMPDIR/used || test $? = 1
diff --git a/debian/bin/debian_linux b/debian/bin/debian_linux
new file mode 120000
index 000000000..01f3e04dc
--- /dev/null
+++ b/debian/bin/debian_linux
@@ -0,0 +1 @@
+../lib/python/debian_linux/ \ No newline at end of file
diff --git a/debian/bin/fix-shebang b/debian/bin/fix-shebang
new file mode 100755
index 000000000..edf551fa3
--- /dev/null
+++ b/debian/bin/fix-shebang
@@ -0,0 +1,12 @@
+#!/usr/bin/perl -pi
+
+# Change "#!/usr/bin/env perl" to "#!/usr/bin/perl" (policy §10.4).
+# Other uses of /usr/bin/env should probably be converted as well, but
+# policy doesn't specify what to do.
+if ($. == 1 && m|^\#!\s*/usr/bin/env\s+(.+)|) {
+ if ($1 eq "perl") {
+ $_ = "#!/usr/bin/perl\n";
+ } else {
+ print STDERR "W: Found #!/usr/bin/env $1 and don't know what to substitute\n";
+ }
+}
diff --git a/debian/bin/gencontrol.py b/debian/bin/gencontrol.py
new file mode 100755
index 000000000..3df5549cc
--- /dev/null
+++ b/debian/bin/gencontrol.py
@@ -0,0 +1,691 @@
+#!/usr/bin/python3
+
+import sys
+import locale
+import io
+import os
+import os.path
+import subprocess
+import re
+
+from debian_linux import config
+from debian_linux.debian import PackageDescription, PackageRelation, \
+ PackageRelationEntry, PackageRelationGroup, VersionLinux
+from debian_linux.gencontrol import Gencontrol as Base, merge_packages, \
+ iter_featuresets
+from debian_linux.utils import Templates, read_control
+
+locale.setlocale(locale.LC_CTYPE, "C.UTF-8")
+
+
+class Gencontrol(Base):
+ config_schema = {
+ 'abi': {
+ 'ignore-changes': config.SchemaItemList(),
+ },
+ 'build': {
+ 'debug-info': config.SchemaItemBoolean(),
+ 'signed-code': config.SchemaItemBoolean(),
+ 'vdso': config.SchemaItemBoolean(),
+ },
+ 'description': {
+ 'parts': config.SchemaItemList(),
+ },
+ 'image': {
+ 'bootloaders': config.SchemaItemList(),
+ 'configs': config.SchemaItemList(),
+ 'initramfs-generators': config.SchemaItemList(),
+ 'check-size': config.SchemaItemInteger(),
+ 'check-size-with-dtb': config.SchemaItemBoolean(),
+ 'check-uncompressed-size': config.SchemaItemInteger(),
+ 'depends': config.SchemaItemList(','),
+ 'provides': config.SchemaItemList(','),
+ 'suggests': config.SchemaItemList(','),
+ 'recommends': config.SchemaItemList(','),
+ 'conflicts': config.SchemaItemList(','),
+ 'breaks': config.SchemaItemList(','),
+ },
+ 'relations': {
+ },
+ 'packages': {
+ 'docs': config.SchemaItemBoolean(),
+ 'headers-all': config.SchemaItemBoolean(),
+ 'installer': config.SchemaItemBoolean(),
+ 'libc-dev': config.SchemaItemBoolean(),
+ 'tools-unversioned': config.SchemaItemBoolean(),
+ 'tools-versioned': config.SchemaItemBoolean(),
+ 'source': config.SchemaItemBoolean(),
+ }
+ }
+
+ env_flags = [
+ ('DEBIAN_KERNEL_DISABLE_DEBUG', 'disable_debug', 'debug infos'),
+ ('DEBIAN_KERNEL_DISABLE_INSTALLER', 'disable_installer', 'installer modules'),
+ ('DEBIAN_KERNEL_DISABLE_SIGNED', 'disable_signed', 'signed code'),
+ ]
+
+ def __init__(self, config_dirs=["debian/config"],
+ template_dirs=["debian/templates"]):
+ super(Gencontrol, self).__init__(
+ config.ConfigCoreHierarchy(self.config_schema, config_dirs),
+ Templates(template_dirs),
+ VersionLinux)
+ self.process_changelog()
+ self.config_dirs = config_dirs
+
+ for env, attr, desc in self.env_flags:
+ setattr(self, attr, False)
+ if os.getenv(env):
+ if self.changelog[0].distribution == 'UNRELEASED':
+ import warnings
+ warnings.warn(f'Disable {desc} on request ({env} set)')
+ setattr(self, attr, True)
+ else:
+ raise RuntimeError(
+ f'Unable to disable {desc} in release build ({env} set)')
+
+ def _setup_makeflags(self, names, makeflags, data):
+ for src, dst, optional in names:
+ if src in data or not optional:
+ makeflags[dst] = data[src]
+
+ def _substitute_file(self, template, vars, target, append=False):
+ with open(target, 'a' if append else 'w') as f:
+ f.write(self.substitute(self.templates[template], vars))
+
+ def do_main_setup(self, vars, makeflags, extra):
+ super(Gencontrol, self).do_main_setup(vars, makeflags, extra)
+ makeflags.update({
+ 'VERSION': self.version.linux_version,
+ 'UPSTREAMVERSION': self.version.linux_upstream,
+ 'ABINAME': self.abiname_version + self.abiname_part,
+ 'SOURCEVERSION': self.version.complete,
+ })
+ makeflags['SOURCE_BASENAME'] = self.vars['source_basename']
+
+ # Prepare to generate debian/tests/control
+ self.tests_control = self.process_packages(
+ self.templates['tests-control.main'], vars)
+ self.tests_control_image = None
+
+ self.installer_packages = {}
+
+ if not self.disable_installer and self.config.merge('packages').get('installer', True):
+ # Add udebs using kernel-wedge
+ kw_env = os.environ.copy()
+ kw_env['KW_DEFCONFIG_DIR'] = 'debian/installer'
+ kw_env['KW_CONFIG_DIR'] = 'debian/installer'
+ kw_proc = subprocess.Popen(
+ ['kernel-wedge', 'gen-control', vars['abiname']],
+ stdout=subprocess.PIPE,
+ env=kw_env)
+ if not isinstance(kw_proc.stdout, io.IOBase):
+ udeb_packages = read_control(io.open(kw_proc.stdout.fileno(),
+ closefd=False))
+ else:
+ udeb_packages = read_control(io.TextIOWrapper(kw_proc.stdout))
+ kw_proc.wait()
+ if kw_proc.returncode != 0:
+ raise RuntimeError('kernel-wedge exited with code %d' %
+ kw_proc.returncode)
+
+ # All architectures that have some installer udebs
+ arches = set()
+ for package in udeb_packages:
+ arches.update(package['Architecture'])
+
+ # Code-signing status for those architectures
+ # If we're going to build signed udebs later, don't actually
+ # generate udebs. Just test that we *can* build, so we find
+ # configuration errors before building linux-signed.
+ build_signed = {}
+ for arch in arches:
+ if not self.disable_signed:
+ build_signed[arch] = self.config.merge('build', arch) \
+ .get('signed-code', False)
+ else:
+ build_signed[arch] = False
+
+ for package in udeb_packages:
+ # kernel-wedge currently chokes on Build-Profiles so add it now
+ if any(build_signed[arch] for arch in package['Architecture']):
+ assert all(build_signed[arch]
+ for arch in package['Architecture'])
+ # XXX This is a hack to exclude the udebs from
+ # the package list while still being able to
+ # convince debhelper and kernel-wedge to go
+ # part way to building them.
+ package['Build-Profiles'] = (
+ '<pkg.linux.udeb-unsigned-test-build>')
+ else:
+ package['Build-Profiles'] = '<!stage1 !pkg.linux.nokernel>'
+
+ for arch in package['Architecture']:
+ self.installer_packages.setdefault(arch, []) \
+ .append(package)
+
+ def do_main_makefile(self, makefile, makeflags, extra):
+ for featureset in iter_featuresets(self.config):
+ makeflags_featureset = makeflags.copy()
+ makeflags_featureset['FEATURESET'] = featureset
+ cmds_source = ["$(MAKE) -f debian/rules.real source-featureset %s"
+ % makeflags_featureset]
+ makefile.add('source_%s_real' % featureset, cmds=cmds_source)
+ makefile.add('source_%s' % featureset,
+ ['source_%s_real' % featureset])
+ makefile.add('source', ['source_%s' % featureset])
+
+ makeflags = makeflags.copy()
+ makeflags['ALL_FEATURESETS'] = ' '.join(iter_featuresets(self.config))
+ super(Gencontrol, self).do_main_makefile(makefile, makeflags, extra)
+
+ def do_main_packages(self, packages, vars, makeflags, extra):
+ packages.extend(self.process_packages(
+ self.templates["control.main"], self.vars))
+ if self.config.merge('packages').get('docs', True):
+ packages.extend(self.process_packages(
+ self.templates["control.docs"], self.vars))
+ if self.config.merge('packages').get('tools-unversioned', True):
+ packages.extend(self.process_packages(
+ self.templates["control.tools-unversioned"], self.vars))
+ if self.config.merge('packages').get('tools-versioned', True):
+ packages.extend(self.process_packages(
+ self.templates["control.tools-versioned"], self.vars))
+ if self.config.merge('packages').get('source', True):
+ packages.extend(self.process_packages(
+ self.templates["control.sourcebin"], self.vars))
+
+ self._substitute_file('perf.lintian-overrides', self.vars,
+ 'debian/linux-perf-%s.lintian-overrides' %
+ self.vars['version'])
+
+ def do_indep_featureset_setup(self, vars, makeflags, featureset, extra):
+ makeflags['LOCALVERSION'] = vars['localversion']
+ kernel_arches = set()
+ for arch in iter(self.config['base', ]['arches']):
+ if self.config.get_merge('base', arch, featureset, None,
+ 'flavours'):
+ kernel_arches.add(self.config['base', arch]['kernel-arch'])
+ makeflags['ALL_KERNEL_ARCHES'] = ' '.join(sorted(list(kernel_arches)))
+
+ vars['featureset_desc'] = ''
+ if featureset != 'none':
+ desc = self.config[('description', None, featureset)]
+ desc_parts = desc['parts']
+ vars['featureset_desc'] = (' with the %s featureset' %
+ desc['part-short-%s' % desc_parts[0]])
+
+ def do_indep_featureset_packages(self, packages, makefile, featureset,
+ vars, makeflags, extra):
+ headers_featureset = self.templates["control.headers.featureset"]
+ packages.extend(self.process_packages(headers_featureset, vars))
+
+ cmds_binary_arch = ["$(MAKE) -f debian/rules.real "
+ "binary-indep-featureset %s" %
+ makeflags]
+ makefile.add('binary-indep_%s_real' % featureset,
+ cmds=cmds_binary_arch)
+
+ arch_makeflags = (
+ ('kernel-arch', 'KERNEL_ARCH', False),
+ )
+
+ def do_arch_setup(self, vars, makeflags, arch, extra):
+ config_base = self.config.merge('base', arch)
+
+ self._setup_makeflags(self.arch_makeflags, makeflags, config_base)
+
+ try:
+ gnu_type_bytes = subprocess.check_output(
+ ['dpkg-architecture', '-f', '-a', arch,
+ '-q', 'DEB_HOST_GNU_TYPE'],
+ stderr=subprocess.DEVNULL)
+ except subprocess.CalledProcessError:
+ # This sometimes happens for the newest ports :-/
+ print('W: Unable to get GNU type for %s' % arch, file=sys.stderr)
+ else:
+ vars['gnu-type-package'] = (
+ gnu_type_bytes.decode('utf-8').strip().replace('_', '-'))
+
+ def do_arch_packages(self, packages, makefile, arch, vars, makeflags,
+ extra):
+ if self.version.linux_modifier is None:
+ try:
+ abiname_part = '-%s' % self.config['abi', arch]['abiname']
+ except KeyError:
+ abiname_part = self.abiname_part
+ makeflags['ABINAME'] = vars['abiname'] = \
+ self.abiname_version + abiname_part
+
+ if not self.disable_signed:
+ build_signed = self.config.merge('build', arch) \
+ .get('signed-code', False)
+ else:
+ build_signed = False
+
+ # Some userland architectures require kernels from another
+ # (Debian) architecture, e.g. x32/amd64.
+ # And some derivatives don't need the headers-all packages
+ # for other reasons.
+ if self.config['base', arch].get('featuresets') and \
+ self.config.merge('packages').get('headers-all', True):
+ headers_arch = self.templates["control.headers.arch"]
+ packages_headers_arch = self.process_packages(headers_arch, vars)
+ packages_headers_arch[-1]['Depends'].extend(PackageRelation())
+ extra['headers_arch_depends'] = (
+ packages_headers_arch[-1]['Depends'])
+ else:
+ packages_headers_arch = []
+
+ if self.config.merge('packages').get('libc-dev', True):
+ libc_dev = self.templates["control.libc-dev"]
+ packages_headers_arch[0:0] = self.process_packages(libc_dev, {})
+
+ merge_packages(packages, packages_headers_arch, arch)
+
+ if self.config['base', arch].get('featuresets') and \
+ self.config.merge('packages').get('source', True):
+ merge_packages(packages,
+ self.process_packages(
+ self.templates["control.config"], vars),
+ arch)
+
+ cmds_build_arch = ["$(MAKE) -f debian/rules.real build-arch-arch %s" %
+ makeflags]
+ makefile.add('build-arch_%s_real' % arch, cmds=cmds_build_arch)
+
+ cmds_binary_arch = ["$(MAKE) -f debian/rules.real binary-arch-arch %s"
+ % makeflags]
+ makefile.add('binary-arch_%s_real' % arch, cmds=cmds_binary_arch,
+ deps=['setup_%s' % arch])
+
+ udeb_packages = self.installer_packages.get(arch, [])
+ if udeb_packages:
+ merge_packages(packages, udeb_packages, arch)
+
+ # These packages must be built after the per-flavour/
+ # per-featureset packages. Also, this won't work
+ # correctly with an empty package list.
+ makefile.add(
+ 'binary-arch_%s' % arch,
+ cmds=["$(MAKE) -f debian/rules.real install-udeb_%s %s "
+ "PACKAGE_NAMES='%s' UDEB_UNSIGNED_TEST_BUILD=%s" %
+ (arch, makeflags,
+ ' '.join(p['Package'] for p in udeb_packages),
+ build_signed)])
+
+ # This also needs to be built after the per-flavour/per-featureset
+ # packages.
+ if build_signed:
+ merge_packages(packages,
+ self.process_packages(
+ self.templates['control.signed-template'],
+ vars),
+ arch)
+ makefile.add(
+ 'binary-arch_%s' % arch,
+ cmds=["$(MAKE) -f debian/rules.real "
+ "install-signed-template_%s %s" %
+ (arch, makeflags)])
+
+ def do_featureset_setup(self, vars, makeflags, arch, featureset, extra):
+ vars['localversion_headers'] = vars['localversion']
+ makeflags['LOCALVERSION_HEADERS'] = vars['localversion_headers']
+
+ flavour_makeflags_base = (
+ ('compiler', 'COMPILER', False),
+ ('compiler-filename', 'COMPILER', True),
+ ('kernel-arch', 'KERNEL_ARCH', False),
+ ('cflags', 'CFLAGS_KERNEL', True),
+ ('override-host-type', 'OVERRIDE_HOST_TYPE', True),
+ )
+
+ flavour_makeflags_build = (
+ ('image-file', 'IMAGE_FILE', True),
+ )
+
+ flavour_makeflags_image = (
+ ('install-stem', 'IMAGE_INSTALL_STEM', True),
+ )
+
+ flavour_makeflags_other = (
+ ('localversion', 'LOCALVERSION', False),
+ ('localversion-image', 'LOCALVERSION_IMAGE', True),
+ )
+
+ def do_flavour_setup(self, vars, makeflags, arch, featureset, flavour,
+ extra):
+ config_base = self.config.merge('base', arch, featureset, flavour)
+ config_build = self.config.merge('build', arch, featureset, flavour)
+ config_description = self.config.merge('description', arch, featureset,
+ flavour)
+ config_image = self.config.merge('image', arch, featureset, flavour)
+
+ vars['class'] = config_description['hardware']
+ vars['longclass'] = (config_description.get('hardware-long')
+ or vars['class'])
+
+ vars['localversion-image'] = vars['localversion']
+ override_localversion = config_image.get('override-localversion', None)
+ if override_localversion is not None:
+ vars['localversion-image'] = (vars['localversion_headers'] + '-'
+ + override_localversion)
+ vars['image-stem'] = config_image.get('install-stem')
+
+ self._setup_makeflags(self.flavour_makeflags_base, makeflags,
+ config_base)
+ self._setup_makeflags(self.flavour_makeflags_build, makeflags,
+ config_build)
+ self._setup_makeflags(self.flavour_makeflags_image, makeflags,
+ config_image)
+ self._setup_makeflags(self.flavour_makeflags_other, makeflags, vars)
+
+ def do_flavour_packages(self, packages, makefile, arch, featureset,
+ flavour, vars, makeflags, extra):
+ headers = self.templates["control.headers"]
+ assert len(headers) == 1
+
+ config_entry_base = self.config.merge('base', arch, featureset,
+ flavour)
+ config_entry_build = self.config.merge('build', arch, featureset,
+ flavour)
+ config_entry_description = self.config.merge('description', arch,
+ featureset, flavour)
+ config_entry_relations = self.config.merge('relations', arch,
+ featureset, flavour)
+
+ def config_entry_image(key, *args, **kwargs):
+ return self.config.get_merge(
+ 'image', arch, featureset, flavour, key, *args, **kwargs)
+
+ compiler = config_entry_base.get('compiler', 'gcc')
+
+ # Work out dependency from linux-headers to compiler. Drop
+ # dependencies for cross-builds. Strip any remaining
+ # restrictions, as they don't apply to binary Depends.
+ relations_compiler_headers = PackageRelation(
+ self.substitute(config_entry_relations.get('headers%' + compiler)
+ or config_entry_relations.get(compiler), vars))
+ relations_compiler_headers = PackageRelation(
+ PackageRelationGroup(entry for entry in group
+ if 'cross' not in entry.restrictions)
+ for group in relations_compiler_headers)
+ for group in relations_compiler_headers:
+ for entry in group:
+ entry.restrictions = []
+
+ relations_compiler_build_dep = PackageRelation(
+ self.substitute(config_entry_relations[compiler], vars))
+ for group in relations_compiler_build_dep:
+ for item in group:
+ item.arches = [arch]
+ packages['source']['Build-Depends-Arch'].extend(
+ relations_compiler_build_dep)
+
+ image_fields = {'Description': PackageDescription()}
+ for field in ('Depends', 'Provides', 'Suggests', 'Recommends',
+ 'Conflicts', 'Breaks'):
+ image_fields[field] = PackageRelation(
+ config_entry_image(field.lower(), None),
+ override_arches=(arch,))
+
+ generators = config_entry_image('initramfs-generators')
+ group = PackageRelationGroup()
+ for i in generators:
+ i = config_entry_relations.get(i, i)
+ group.append(i)
+ a = PackageRelationEntry(i)
+ if a.operator is not None:
+ a.operator = -a.operator
+ image_fields['Breaks'].append(PackageRelationGroup([a]))
+ for item in group:
+ item.arches = [arch]
+ image_fields['Depends'].append(group)
+
+ bootloaders = config_entry_image('bootloaders', None)
+ if bootloaders:
+ group = PackageRelationGroup()
+ for i in bootloaders:
+ i = config_entry_relations.get(i, i)
+ group.append(i)
+ a = PackageRelationEntry(i)
+ if a.operator is not None:
+ a.operator = -a.operator
+ image_fields['Breaks'].append(PackageRelationGroup([a]))
+ for item in group:
+ item.arches = [arch]
+ image_fields['Suggests'].append(group)
+
+ desc_parts = self.config.get_merge('description', arch, featureset,
+ flavour, 'parts')
+ if desc_parts:
+ # XXX: Workaround, we need to support multiple entries of the same
+ # name
+ parts = list(set(desc_parts))
+ parts.sort()
+ desc = image_fields['Description']
+ for part in parts:
+ desc.append(config_entry_description['part-long-' + part])
+ desc.append_short(config_entry_description
+ .get('part-short-' + part, ''))
+
+ packages_own = []
+
+ if not self.disable_signed:
+ build_signed = config_entry_build.get('signed-code')
+ else:
+ build_signed = False
+
+ image = self.templates[build_signed and "control.image-unsigned"
+ or "control.image"]
+ assert len(image) == 1
+
+ vars.setdefault('desc', None)
+
+ image_main = self.process_real_image(image[0], image_fields, vars)
+ packages_own.append(image_main)
+ makeflags['IMAGE_PACKAGE_NAME'] = image_main['Package']
+
+ package_headers = self.process_package(headers[0], vars)
+ package_headers['Depends'].extend(relations_compiler_headers)
+ packages_own.append(package_headers)
+ if extra.get('headers_arch_depends'):
+ extra['headers_arch_depends'].append('%s (= ${binary:Version})' %
+ packages_own[-1]['Package'])
+
+ if config_entry_build.get('vdso', False):
+ makeflags['VDSO'] = True
+
+ if not self.disable_debug:
+ build_debug = config_entry_build.get('debug-info')
+ else:
+ build_debug = False
+
+ if build_debug:
+ makeflags['DEBUG'] = True
+ packages_own.extend(self.process_packages(
+ self.templates['control.image-dbg'], vars))
+
+ merge_packages(packages, packages_own, arch)
+
+ tests_control = self.process_package(
+ self.templates['tests-control.image'][0], vars)
+ tests_control['Depends'].append(
+ PackageRelationGroup(image_main['Package'],
+ override_arches=(arch,)))
+ if self.tests_control_image:
+ self.tests_control_image['Depends'].extend(
+ tests_control['Depends'])
+ else:
+ self.tests_control_image = tests_control
+ self.tests_control.append(tests_control)
+
+ def get_config(*entry_name):
+ entry_real = ('image',) + entry_name
+ entry = self.config.get(entry_real, None)
+ if entry is None:
+ return None
+ return entry.get('configs', None)
+
+ def check_config_default(fail, f):
+ for d in self.config_dirs[::-1]:
+ f1 = d + '/' + f
+ if os.path.exists(f1):
+ return [f1]
+ if fail:
+ raise RuntimeError("%s unavailable" % f)
+ return []
+
+ def check_config_files(files):
+ ret = []
+ for f in files:
+ for d in self.config_dirs[::-1]:
+ f1 = d + '/' + f
+ if os.path.exists(f1):
+ ret.append(f1)
+ break
+ else:
+ raise RuntimeError("%s unavailable" % f)
+ return ret
+
+ def check_config(default, fail, *entry_name):
+ configs = get_config(*entry_name)
+ if configs is None:
+ return check_config_default(fail, default)
+ return check_config_files(configs)
+
+ kconfig = check_config('config', True)
+ kconfig.extend(check_config("kernelarch-%s/config" %
+ config_entry_base['kernel-arch'],
+ False))
+ kconfig.extend(check_config("%s/config" % arch, True, arch))
+ kconfig.extend(check_config("%s/config.%s" % (arch, flavour), False,
+ arch, None, flavour))
+ kconfig.extend(check_config("featureset-%s/config" % featureset, False,
+ None, featureset))
+ kconfig.extend(check_config("%s/%s/config" % (arch, featureset), False,
+ arch, featureset))
+ kconfig.extend(check_config("%s/%s/config.%s" %
+ (arch, featureset, flavour), False,
+ arch, featureset, flavour))
+ makeflags['KCONFIG'] = ' '.join(kconfig)
+ makeflags['KCONFIG_OPTIONS'] = ''
+ if build_debug:
+ makeflags['KCONFIG_OPTIONS'] += ' -o DEBUG_INFO=y'
+ if build_signed:
+ makeflags['KCONFIG_OPTIONS'] += ' -o MODULE_SIG=y'
+ # Add "salt" to fix #872263
+ makeflags['KCONFIG_OPTIONS'] += (' -o "BUILD_SALT=\\"%s%s\\""' %
+ (vars['abiname'],
+ vars['localversion']))
+
+ cmds_binary_arch = ["$(MAKE) -f debian/rules.real binary-arch-flavour "
+ "%s" %
+ makeflags]
+ cmds_build = ["$(MAKE) -f debian/rules.real build-arch-flavour %s" %
+ makeflags]
+ cmds_setup = ["$(MAKE) -f debian/rules.real setup-arch-flavour %s" %
+ makeflags]
+ makefile.add('binary-arch_%s_%s_%s_real' % (arch, featureset, flavour),
+ cmds=cmds_binary_arch)
+ makefile.add('build-arch_%s_%s_%s_real' % (arch, featureset, flavour),
+ cmds=cmds_build)
+ makefile.add('setup_%s_%s_%s_real' % (arch, featureset, flavour),
+ cmds=cmds_setup)
+
+ merged_config = ('debian/build/config.%s_%s_%s' %
+ (arch, featureset, flavour))
+ makefile.add(merged_config,
+ cmds=["$(MAKE) -f debian/rules.real %s %s" %
+ (merged_config, makeflags)])
+
+ # Substitute kernel version etc. into maintainer scripts,
+ # translations and lintian overrides
+ self._substitute_file('headers.postinst', vars,
+ 'debian/linux-headers-%s%s.postinst' %
+ (vars['abiname'], vars['localversion']))
+ for name in ['postinst', 'postrm', 'preinst', 'prerm']:
+ self._substitute_file('image.%s' % name, vars,
+ 'debian/%s.%s' %
+ (image_main['Package'], name))
+ if build_debug:
+ debug_lintian_over = (
+ 'debian/linux-image-%s%s-dbg.lintian-overrides' %
+ (vars['abiname'], vars['localversion']))
+ self._substitute_file('image-dbg.lintian-overrides', vars,
+ debug_lintian_over)
+ os.chmod(debug_lintian_over, 0o755)
+
+ def process_changelog(self):
+ version = self.version = self.changelog[0].version
+ if self.version.linux_modifier is not None:
+ self.abiname_part = ''
+ else:
+ self.abiname_part = '-%s' % self.config['abi', ]['abiname']
+ # We need to keep at least three version components to avoid
+ # userland breakage (e.g. #742226, #745984).
+ self.abiname_version = re.sub(r'^(\d+\.\d+)(?=-|$)', r'\1.0',
+ self.version.linux_upstream)
+ self.vars = {
+ 'upstreamversion': self.version.linux_upstream,
+ 'version': self.version.linux_version,
+ 'source_basename': re.sub(r'-[\d.]+$', '',
+ self.changelog[0].source),
+ 'source_upstream': self.version.upstream,
+ 'source_package': self.changelog[0].source,
+ 'abiname': self.abiname_version + self.abiname_part,
+ }
+ self.config['version', ] = {'source': self.version.complete,
+ 'upstream': self.version.linux_upstream,
+ 'abiname_base': self.abiname_version,
+ 'abiname': (self.abiname_version
+ + self.abiname_part)}
+
+ distribution = self.changelog[0].distribution
+ if distribution in ('unstable', ):
+ if version.linux_revision_experimental or \
+ version.linux_revision_backports or \
+ version.linux_revision_other:
+ raise RuntimeError("Can't upload to %s with a version of %s" %
+ (distribution, version))
+ if distribution in ('experimental', ):
+ if not version.linux_revision_experimental:
+ raise RuntimeError("Can't upload to %s with a version of %s" %
+ (distribution, version))
+ if distribution.endswith('-security') or distribution.endswith('-lts'):
+ if version.linux_revision_backports or \
+ version.linux_revision_other:
+ raise RuntimeError("Can't upload to %s with a version of %s" %
+ (distribution, version))
+ if distribution.endswith('-backports'):
+ if not version.linux_revision_backports:
+ raise RuntimeError("Can't upload to %s with a version of %s" %
+ (distribution, version))
+
+ def process_real_image(self, entry, fields, vars):
+ entry = self.process_package(entry, vars)
+ for key, value in fields.items():
+ if key in entry:
+ real = entry[key]
+ real.extend(value)
+ elif value:
+ entry[key] = value
+ return entry
+
+ def write(self, packages, makefile):
+ self.write_config()
+ super(Gencontrol, self).write(packages, makefile)
+ self.write_tests_control()
+
+ def write_config(self):
+ f = open("debian/config.defines.dump", 'wb')
+ self.config.dump(f)
+ f.close()
+
+ def write_tests_control(self):
+ self.write_rfc822(open("debian/tests/control", 'w'),
+ self.tests_control)
+
+
+if __name__ == '__main__':
+ Gencontrol()()
diff --git a/debian/bin/gencontrol_signed.py b/debian/bin/gencontrol_signed.py
new file mode 100755
index 000000000..d8b0c531a
--- /dev/null
+++ b/debian/bin/gencontrol_signed.py
@@ -0,0 +1,322 @@
+#!/usr/bin/python3
+
+import codecs
+import hashlib
+import io
+import json
+import os.path
+import re
+import ssl
+import subprocess
+import sys
+
+from debian_linux.config import ConfigCoreDump
+from debian_linux.debian import VersionLinux
+from debian_linux.gencontrol import Gencontrol as Base, merge_packages
+from debian_linux.utils import Templates, read_control
+
+
+class Gencontrol(Base):
+ def __init__(self, arch):
+ super(Gencontrol, self).__init__(
+ ConfigCoreDump(fp=open('debian/config.defines.dump', 'rb')),
+ Templates(['debian/signing_templates', 'debian/templates']))
+
+ image_binary_version = self.changelog[0].version.complete
+
+ config_entry = self.config[('version',)]
+ self.version = VersionLinux(config_entry['source'])
+
+ # Check config version matches changelog version
+ assert self.version.complete == re.sub(r'\+b\d+$', r'',
+ image_binary_version)
+
+ self.abiname = config_entry['abiname']
+ self.vars = {
+ 'template': 'linux-image-%s-signed-template' % arch,
+ 'upstreamversion': self.version.linux_upstream,
+ 'version': self.version.linux_version,
+ 'source_upstream': self.version.upstream,
+ 'abiname': self.abiname,
+ 'imagebinaryversion': image_binary_version,
+ 'imagesourceversion': self.version.complete,
+ 'arch': arch,
+ }
+
+ self.package_dir = 'debian/%(template)s' % self.vars
+ self.template_top_dir = (self.package_dir
+ + '/usr/share/code-signing/%(template)s'
+ % self.vars)
+ self.template_debian_dir = (self.template_top_dir
+ + '/source-template/debian')
+ os.makedirs(self.template_debian_dir, exist_ok=True)
+
+ self.image_packages = []
+
+ def _substitute_file(self, template, vars, target, append=False):
+ with codecs.open(target, 'a' if append else 'w', 'utf-8') as f:
+ f.write(self.substitute(self.templates[template], vars))
+
+ def do_main_setup(self, vars, makeflags, extra):
+ makeflags['VERSION'] = self.version.linux_version
+ makeflags['GENCONTROL_ARGS'] = (
+ '-v%(imagebinaryversion)s '
+ '-DBuilt-Using="linux (= %(imagesourceversion)s)"' %
+ vars)
+ makeflags['PACKAGE_VERSION'] = vars['imagebinaryversion']
+
+ self.installer_packages = {}
+
+ if os.getenv('DEBIAN_KERNEL_DISABLE_INSTALLER'):
+ if self.changelog[0].distribution == 'UNRELEASED':
+ import warnings
+ warnings.warn('Disable installer modules on request '
+ '(DEBIAN_KERNEL_DISABLE_INSTALLER set)')
+ else:
+ raise RuntimeError(
+ 'Unable to disable installer modules in release build '
+ '(DEBIAN_KERNEL_DISABLE_INSTALLER set)')
+ elif self.config.merge('packages').get('installer', True):
+ # Add udebs using kernel-wedge
+ kw_env = os.environ.copy()
+ kw_env['KW_DEFCONFIG_DIR'] = 'debian/installer'
+ kw_env['KW_CONFIG_DIR'] = 'debian/installer'
+ kw_proc = subprocess.Popen(
+ ['kernel-wedge', 'gen-control', vars['abiname']],
+ stdout=subprocess.PIPE,
+ env=kw_env)
+ if not isinstance(kw_proc.stdout, io.IOBase):
+ udeb_packages = read_control(io.open(kw_proc.stdout.fileno(),
+ closefd=False))
+ else:
+ udeb_packages = read_control(io.TextIOWrapper(kw_proc.stdout))
+ kw_proc.wait()
+ if kw_proc.returncode != 0:
+ raise RuntimeError('kernel-wedge exited with code %d' %
+ kw_proc.returncode)
+
+ for package in udeb_packages:
+ for arch in package['Architecture']:
+ if self.config.merge('build', arch) \
+ .get('signed-code', False):
+ self.installer_packages.setdefault(arch, []) \
+ .append(package)
+
+ def do_main_packages(self, packages, vars, makeflags, extra):
+ # Assume that arch:all packages do not get binNMU'd
+ packages['source']['Build-Depends'].append(
+ 'linux-support-%(abiname)s (= %(imagesourceversion)s)' % vars)
+
+ def do_main_recurse(self, packages, makefile, vars, makeflags, extra):
+ # Each signed source package only covers a single architecture
+ self.do_arch(packages, makefile, self.vars['arch'], vars.copy(),
+ makeflags.copy(), extra)
+
+ def do_extra(self, packages, makefile):
+ pass
+
+ def do_arch_setup(self, vars, makeflags, arch, extra):
+ super(Gencontrol, self).do_main_setup(vars, makeflags, extra)
+
+ if self.version.linux_modifier is None:
+ abiname_part = '-%s' % self.config.merge('abi', arch)['abiname']
+ else:
+ abiname_part = ''
+ makeflags['ABINAME'] = vars['abiname'] = \
+ self.config['version', ]['abiname_base'] + abiname_part
+
+ def do_arch_packages(self, packages, makefile, arch, vars, makeflags,
+ extra):
+ udeb_packages = self.installer_packages.get(arch, [])
+ if udeb_packages:
+ merge_packages(packages, udeb_packages, arch)
+
+ # These packages must be built after the per-flavour/
+ # per-featureset packages. Also, this won't work
+ # correctly with an empty package list.
+ if udeb_packages:
+ makefile.add(
+ 'binary-arch_%s' % arch,
+ cmds=["$(MAKE) -f debian/rules.real install-udeb_%s %s "
+ "PACKAGE_NAMES='%s'" %
+ (arch, makeflags,
+ ' '.join(p['Package'] for p in udeb_packages))])
+
+ def do_flavour_setup(self, vars, makeflags, arch, featureset, flavour,
+ extra):
+ super(Gencontrol, self).do_flavour_setup(vars, makeflags, arch,
+ featureset, flavour, extra)
+
+ config_image = self.config.merge('image', arch, featureset, flavour)
+ vars['image-stem'] = config_image.get('install-stem')
+ makeflags['IMAGE_INSTALL_STEM'] = vars['image-stem']
+
+ def do_flavour_packages(self, packages, makefile, arch, featureset,
+ flavour, vars, makeflags, extra):
+ if not (self.config.merge('build', arch, featureset, flavour)
+ .get('signed-code', False)):
+ return
+
+ image_suffix = '%(abiname)s%(localversion)s' % vars
+ image_package_name = 'linux-image-%s-unsigned' % image_suffix
+
+ # Verify that this flavour is configured to support Secure Boot,
+ # and get the trusted certificates filename.
+ with open('debian/%s/boot/config-%s' %
+ (image_package_name, image_suffix)) as f:
+ kconfig = f.readlines()
+ assert 'CONFIG_EFI_STUB=y\n' in kconfig
+ assert 'CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT=y\n' in kconfig
+ cert_re = re.compile(r'CONFIG_SYSTEM_TRUSTED_KEYS="(.*)"$')
+ cert_file_name = None
+ for line in kconfig:
+ match = cert_re.match(line)
+ if match:
+ cert_file_name = match.group(1)
+ break
+ assert cert_file_name
+ if featureset != "none":
+ cert_file_name = os.path.join('debian/build/source_%s' %
+ featureset,
+ cert_file_name)
+
+ self.image_packages.append((image_suffix, image_package_name,
+ cert_file_name))
+
+ packages['source']['Build-Depends'].append(
+ image_package_name
+ + ' (= %(imagebinaryversion)s) [%(arch)s]' % vars)
+
+ packages_signed = self.process_packages(
+ self.templates['control.image'], vars)
+ merge_packages(packages, packages_signed, arch)
+
+ cmds_binary_arch = []
+ for i in packages_signed:
+ cmds_binary_arch += ["$(MAKE) -f debian/rules.real install-signed "
+ "PACKAGE_NAME='%s' %s" %
+ (i['Package'], makeflags)]
+ makefile.add('binary-arch_%s_%s_%s_real' % (arch, featureset, flavour),
+ cmds=cmds_binary_arch)
+
+ os.makedirs(self.package_dir + '/usr/share/lintian/overrides', 0o755,
+ exist_ok=True)
+ with open(self.package_dir
+ + '/usr/share/lintian/overrides/%(template)s' % self.vars,
+ 'a') as lintian_overrides:
+ for script_base in ['postinst', 'postrm', 'preinst', 'prerm']:
+ script_name = (self.template_debian_dir
+ + '/linux-image-%s%s.%s'
+ % (vars['abiname'], vars['localversion'],
+ script_base))
+ self._substitute_file('image.%s' % script_base, vars,
+ script_name)
+ lintian_overrides.write('%s: script-not-executable %s\n' %
+ (self.vars['template'],
+ os.path.relpath(script_name,
+ self.package_dir)))
+
+ def write(self, packages, makefile):
+ self.write_changelog()
+ self.write_control(packages.values(),
+ name=(self.template_debian_dir + '/control'))
+ self.write_makefile(makefile,
+ name=(self.template_debian_dir + '/rules.gen'))
+ self.write_files_json()
+
+ def write_changelog(self):
+ # We need to insert a new version entry.
+ # Take the distribution and urgency from the linux changelog, and
+ # the base version from the changelog template.
+ vars = self.vars.copy()
+ vars['source'] = self.changelog[0].source
+ vars['distribution'] = self.changelog[0].distribution
+ vars['urgency'] = self.changelog[0].urgency
+ vars['signedsourceversion'] = (re.sub(r'-', r'+',
+ vars['imagebinaryversion']))
+
+ with codecs.open(self.template_debian_dir + '/changelog', 'w',
+ 'utf-8') as f:
+ f.write(self.substitute('''\
+linux-signed-@arch@ (@signedsourceversion@) @distribution@; urgency=@urgency@
+
+ * Sign kernel from @source@ @imagebinaryversion@
+
+''',
+ vars))
+
+ with codecs.open('debian/changelog', 'r', 'utf-8') as changelog_in:
+ # Ignore first two header lines
+ changelog_in.readline()
+ changelog_in.readline()
+
+ for d in changelog_in.read():
+ f.write(d)
+
+ def write_files_json(self):
+ # Can't raise from a lambda function :-(
+ def raise_func(e):
+ raise e
+
+ # Some functions in openssl work with multiple concatenated
+ # PEM-format certificates, but others do not.
+ def get_certs(file_name):
+ certs = []
+ BEGIN, MIDDLE = 0, 1
+ state = BEGIN
+ with open(file_name) as f:
+ for line in f:
+ if line == '-----BEGIN CERTIFICATE-----\n':
+ assert state == BEGIN
+ certs.append([])
+ state = MIDDLE
+ elif line == '-----END CERTIFICATE-----\n':
+ assert state == MIDDLE
+ state = BEGIN
+ else:
+ assert line[0] != '-'
+ assert state == MIDDLE
+ certs[-1].append(line)
+ assert state == BEGIN
+ return [''.join(cert_lines) for cert_lines in certs]
+
+ def get_cert_fingerprint(cert, algo):
+ hasher = hashlib.new(algo)
+ hasher.update(ssl.PEM_cert_to_DER_cert(cert))
+ return hasher.hexdigest()
+
+ all_files = {'packages': {}}
+
+ for image_suffix, image_package_name, cert_file_name in \
+ self.image_packages:
+ package_dir = 'debian/%s' % image_package_name
+ package_files = []
+ package_modules = []
+ package_files.append({'sig_type': 'efi',
+ 'file': 'boot/vmlinuz-%s' % image_suffix})
+ for root, dirs, files in os.walk('%s/lib/modules' % package_dir,
+ onerror=raise_func):
+ for name in files:
+ if name.endswith('.ko'):
+ package_modules.append(
+ '%s/%s' %
+ (root[(len(package_dir) + 1):], name))
+ package_modules.sort()
+ for module in package_modules:
+ package_files.append(
+ {'sig_type': 'linux-module',
+ 'file': module})
+ package_certs = [get_cert_fingerprint(cert, 'sha256')
+ for cert in get_certs(cert_file_name)]
+ assert len(package_certs) >= 1
+ all_files['packages'][image_package_name] = {
+ 'trusted_certs': package_certs,
+ 'files': package_files
+ }
+
+ with codecs.open(self.template_top_dir + '/files.json', 'w') as f:
+ json.dump(all_files, f)
+
+
+if __name__ == '__main__':
+ Gencontrol(sys.argv[1])()
diff --git a/debian/bin/genorig.py b/debian/bin/genorig.py
new file mode 100755
index 000000000..980503eb4
--- /dev/null
+++ b/debian/bin/genorig.py
@@ -0,0 +1,203 @@
+#!/usr/bin/python3
+
+import sys
+import deb822
+import glob
+import os
+import os.path
+import re
+import shutil
+import subprocess
+import time
+import warnings
+
+from debian_linux.debian import Changelog, VersionLinux
+
+
+class Main(object):
+ def __init__(self, input_files, override_version):
+ self.log = sys.stdout.write
+
+ self.input_files = input_files
+
+ changelog = Changelog(version=VersionLinux)[0]
+ source = changelog.source
+ version = changelog.version
+
+ if override_version:
+ version = VersionLinux('%s-0' % override_version)
+
+ self.version_dfsg = version.linux_dfsg
+ if self.version_dfsg is None:
+ self.version_dfsg = '0'
+
+ self.log('Using source name %s, version %s, dfsg %s\n' %
+ (source, version.upstream, self.version_dfsg))
+
+ self.orig = '%s-%s' % (source, version.upstream)
+ self.orig_tar = '%s_%s.orig.tar.xz' % (source, version.upstream)
+ self.tag = 'v' + version.linux_upstream_full
+
+ def __call__(self):
+ import tempfile
+ self.dir = tempfile.mkdtemp(prefix='genorig', dir='debian')
+ old_umask = os.umask(0o022)
+ try:
+ if os.path.isdir(self.input_files[0]):
+ self.upstream_export(self.input_files[0])
+ else:
+ self.upstream_extract(self.input_files[0])
+ if len(self.input_files) > 1:
+ self.upstream_patch(self.input_files[1])
+
+ # exclude_files() will change dir mtimes. Capture the
+ # original release time so we can apply it to the final
+ # tarball. Note this doesn't work in case we apply an
+ # upstream patch, as that doesn't carry a release time.
+ orig_date = time.strftime(
+ "%a, %d %b %Y %H:%M:%S +0000",
+ time.gmtime(
+ os.stat(os.path.join(self.dir, self.orig, 'Makefile'))
+ .st_mtime))
+
+ self.exclude_files()
+ os.umask(old_umask)
+ self.tar(orig_date)
+ finally:
+ os.umask(old_umask)
+ shutil.rmtree(self.dir)
+
+ def upstream_export(self, input_repo):
+ self.log("Exporting %s from %s\n" % (self.tag, input_repo))
+
+ gpg_wrapper = os.path.join(os.getcwd(),
+ "debian/bin/git-tag-gpg-wrapper")
+ verify_proc = subprocess.Popen(['git',
+ '-c', 'gpg.program=%s' % gpg_wrapper,
+ 'tag', '-v', self.tag],
+ cwd=input_repo)
+ if verify_proc.wait():
+ raise RuntimeError("GPG tag verification failed")
+
+ archive_proc = subprocess.Popen(['git', 'archive', '--format=tar',
+ '--prefix=%s/' % self.orig, self.tag],
+ cwd=input_repo,
+ stdout=subprocess.PIPE)
+ extract_proc = subprocess.Popen(['tar', '-xaf', '-'], cwd=self.dir,
+ stdin=archive_proc.stdout)
+
+ ret1 = archive_proc.wait()
+ ret2 = extract_proc.wait()
+ if ret1 or ret2:
+ raise RuntimeError("Can't create archive")
+
+ def upstream_extract(self, input_tar):
+ self.log("Extracting tarball %s\n" % input_tar)
+ match = re.match(r'(^|.*/)(?P<dir>linux-\d+\.\d+(\.\d+)?(-\S+)?)\.tar'
+ r'(\.(?P<extension>(bz2|gz|xz)))?$',
+ input_tar)
+ if not match:
+ raise RuntimeError("Can't identify name of tarball")
+
+ cmdline = ['tar', '-xaf', input_tar, '-C', self.dir]
+
+ if subprocess.Popen(cmdline).wait():
+ raise RuntimeError("Can't extract tarball")
+
+ os.rename(os.path.join(self.dir, match.group('dir')),
+ os.path.join(self.dir, self.orig))
+
+ def upstream_patch(self, input_patch):
+ self.log("Patching source with %s\n" % input_patch)
+ match = re.match(r'(^|.*/)patch-\d+\.\d+(\.\d+)?(-\S+?)?'
+ r'(\.(?P<extension>(bz2|gz|xz)))?$',
+ input_patch)
+ if not match:
+ raise RuntimeError("Can't identify name of patch")
+ cmdline = []
+ if match.group('extension') == 'bz2':
+ cmdline.append('bzcat')
+ elif match.group('extension') == 'gz':
+ cmdline.append('zcat')
+ elif match.group('extension') == 'xz':
+ cmdline.append('xzcat')
+ else:
+ cmdline.append('cat')
+ cmdline.append(input_patch)
+ cmdline.append('| (cd %s; patch -p1 -f -s -t --no-backup-if-mismatch)'
+ % os.path.join(self.dir, self.orig))
+ if os.spawnv(os.P_WAIT, '/bin/sh', ['sh', '-c', ' '.join(cmdline)]):
+ raise RuntimeError("Can't patch source")
+
+ def exclude_files(self):
+ self.log("Excluding file patterns specified in debian/copyright\n")
+ with open("debian/copyright") as f:
+ header = deb822.Deb822(f)
+ patterns = header.get("Files-Excluded", '').strip().split()
+ for pattern in patterns:
+ matched = False
+ for name in glob.glob(os.path.join(self.dir, self.orig, pattern)):
+ try:
+ shutil.rmtree(name)
+ except NotADirectoryError:
+ os.unlink(name)
+ matched = True
+ if not matched:
+ warnings.warn("Exclusion pattern '%s' did not match anything"
+ % pattern,
+ RuntimeWarning)
+
+ def tar(self, orig_date):
+ out = os.path.join("../orig", self.orig_tar)
+ try:
+ os.mkdir("../orig")
+ except OSError:
+ pass
+ try:
+ os.stat(out)
+ raise RuntimeError("Destination already exists")
+ except OSError:
+ pass
+ self.log("Generate tarball %s\n" % out)
+
+ env = os.environ.copy()
+ env.update({
+ 'LC_ALL': 'C',
+ })
+ cmd = [
+ 'tar',
+ '-C', self.dir,
+ '--sort=name',
+ '--mtime={}'.format(orig_date),
+ '--owner=root',
+ '--group=root',
+ '--use-compress-program=xz -T0',
+ '-cf',
+ out, self.orig,
+ ]
+
+ try:
+ subprocess.run(cmd, env=env, check=True)
+ os.chmod(out, 0o644)
+ except BaseException:
+ try:
+ os.unlink(out)
+ except OSError:
+ pass
+ raise
+ try:
+ os.symlink(os.path.join('orig', self.orig_tar),
+ os.path.join('..', self.orig_tar))
+ except OSError:
+ pass
+
+
+if __name__ == '__main__':
+ from optparse import OptionParser
+ parser = OptionParser(usage="%prog [OPTION]... {TAR [PATCH] | REPO}")
+ parser.add_option("-V", "--override-version", dest="override_version",
+ help="Override version", metavar="VERSION")
+ options, args = parser.parse_args()
+
+ assert 1 <= len(args) <= 2
+ Main(args, options.override_version)()
diff --git a/debian/bin/genpatch-aufs b/debian/bin/genpatch-aufs
new file mode 100755
index 000000000..603c85420
--- /dev/null
+++ b/debian/bin/genpatch-aufs
@@ -0,0 +1,31 @@
+#!/bin/bash -e
+
+aufs_dir="$1"
+
+export GIT_DIR="$aufs_dir/.git"
+
+from_line='From: J. R. Okajima <hooanon05@yahoo.co.jp>'
+if [ -d "$GIT_DIR" ]; then
+ origin_line="Origin: https://github.com/sfjro/aufs4-standalone/tree/$(git rev-list HEAD -1)"
+else
+ echo >&2 "W: Cannot include a specific origin URL without an aufs git repo"
+ origin_line='Origin: https://github.com/sfjro/aufs4-standalone/branches'
+fi
+bug_line='Bug-Debian: https://bugs.debian.org/541828'
+
+for patch in aufs4-{base,mmap,standalone}.patch; do
+ {
+ echo "$from_line"
+ if [ -d "$GIT_DIR" ]; then
+ git log --pretty='Date: %ad' HEAD -1 -- "$patch"
+ fi
+ echo -n 'Subject: '
+ grep -v '^SPDX-License-Identifier:' "$aufs_dir/$patch" | head -1
+ echo "$origin_line"
+ echo "$bug_line"
+ echo
+ echo 'Patch headers added by debian/bin/genpatch-aufs'
+ echo
+ sed 's/^+.*EXPORT_SYMBOL\b/&_GPL/' < "$aufs_dir"/"$patch"
+ } > debian/patches/features/all/aufs4/"$patch"
+done
diff --git a/debian/bin/genpatch-lockdown b/debian/bin/genpatch-lockdown
new file mode 100755
index 000000000..1aed0c735
--- /dev/null
+++ b/debian/bin/genpatch-lockdown
@@ -0,0 +1,109 @@
+#!/usr/bin/python3
+
+import io
+import os
+import os.path
+import re
+import subprocess
+import sys
+
+
+def main(repo, range='torvalds/master..dhowells/efi-lock-down'):
+ patch_dir = 'debian/patches'
+ lockdown_patch_dir = 'features/all/lockdown'
+ series_name = 'series'
+
+ # Only replace patches in this subdirectory and starting with a digit
+ # - the others are presumably Debian-specific for now
+ lockdown_patch_name_re = re.compile(
+ r'^' + re.escape(lockdown_patch_dir) + r'/\d')
+ series_before = []
+ series_after = []
+
+ old_series = set()
+ new_series = set()
+
+ try:
+ with open(os.path.join(patch_dir, series_name), 'r') as series_fh:
+ for line in series_fh:
+ name = line.strip()
+ if lockdown_patch_name_re.match(name):
+ old_series.add(name)
+ elif len(old_series) == 0:
+ series_before.append(line)
+ else:
+ series_after.append(line)
+ except FileNotFoundError:
+ pass
+
+ with open(os.path.join(patch_dir, series_name), 'w') as series_fh:
+ for line in series_before:
+ series_fh.write(line)
+
+ # Add directory prefix to all filenames.
+ # Add Origin to all patch headers.
+ def add_patch(name, source_patch, origin):
+ name = os.path.join(lockdown_patch_dir, name)
+ path = os.path.join(patch_dir, name)
+ try:
+ os.unlink(path)
+ except FileNotFoundError:
+ pass
+ with open(path, 'w') as patch:
+ in_header = True
+ for line in source_patch:
+ if in_header and re.match(r'^(\n|[^\w\s]|Index:)', line):
+ patch.write('Origin: %s\n' % origin)
+ if line != '\n':
+ patch.write('\n')
+ in_header = False
+ patch.write(line)
+ series_fh.write(name)
+ series_fh.write('\n')
+ new_series.add(name)
+
+ # XXX No signature to verify
+
+ env = os.environ.copy()
+ env['GIT_DIR'] = os.path.join(repo, '.git')
+ args = ['git', 'format-patch', '--subject-prefix=', range]
+ format_proc = subprocess.Popen(args,
+ cwd=os.path.join(patch_dir,
+ lockdown_patch_dir),
+ env=env, stdout=subprocess.PIPE)
+ with io.open(format_proc.stdout.fileno(), encoding='utf-8') as pipe:
+ for line in pipe:
+ name = line.strip('\n')
+ with open(os.path.join(patch_dir, lockdown_patch_dir, name)) \
+ as source_patch:
+ patch_from = source_patch.readline()
+ match = re.match(r'From ([0-9a-f]{40}) ', patch_from)
+ assert match
+ origin = ('https://git.kernel.org/pub/scm/linux/kernel/'
+ 'git/dhowells/linux-fs.git/commit?id=%s' %
+ match.group(1))
+ add_patch(name, source_patch, origin)
+
+ for line in series_after:
+ series_fh.write(line)
+
+ for name in new_series:
+ if name in old_series:
+ old_series.remove(name)
+ else:
+ print('Added patch', os.path.join(patch_dir, name))
+
+ for name in old_series:
+ print('Obsoleted patch', os.path.join(patch_dir, name))
+
+
+if __name__ == '__main__':
+ if not (2 <= len(sys.argv) <= 3):
+ sys.stderr.write('''\
+Usage: %s REPO [REVISION-RANGE]
+REPO is a git repo containing the REVISION-RANGE. The default range is
+torvalds/master..dhowells/efi-lock-down.
+''' % sys.argv[0])
+ print('BASE is the base branch (default: torvalds/master).')
+ sys.exit(2)
+ main(*sys.argv[1:])
diff --git a/debian/bin/genpatch-rt b/debian/bin/genpatch-rt
new file mode 100755
index 000000000..e61b5f242
--- /dev/null
+++ b/debian/bin/genpatch-rt
@@ -0,0 +1,152 @@
+#!/usr/bin/python3
+
+import codecs
+import io
+import os
+import os.path
+import re
+import shutil
+import subprocess
+import sys
+import tempfile
+
+
+def main(source, version=None):
+ patch_dir = 'debian/patches-rt'
+ series_name = 'series'
+ old_series = set()
+ new_series = set()
+
+ try:
+ with open(os.path.join(patch_dir, series_name), 'r') as series_fh:
+ for line in series_fh:
+ name = line.strip()
+ if name != '' and name[0] != '#':
+ old_series.add(name)
+ except FileNotFoundError:
+ pass
+
+ with open(os.path.join(patch_dir, series_name), 'w') as series_fh:
+ # Add Origin to all patch headers.
+ def add_patch(name, source_patch, origin):
+ path = os.path.join(patch_dir, name)
+ try:
+ os.unlink(path)
+ except FileNotFoundError:
+ pass
+ with open(path, 'w') as patch:
+ in_header = True
+ for line in source_patch:
+ if in_header and re.match(r'^(\n|[^\w\s]|Index:)', line):
+ patch.write('Origin: %s\n' % origin)
+ if line != '\n':
+ patch.write('\n')
+ in_header = False
+ patch.write(line)
+ new_series.add(name)
+
+ if os.path.isdir(os.path.join(source, '.git')):
+ # Export rebased branch from stable-rt git as patch series
+ up_ver = re.sub(r'-rt\d+$', '', version)
+ env = os.environ.copy()
+ env['GIT_DIR'] = os.path.join(source, '.git')
+ env['DEBIAN_KERNEL_KEYRING'] = 'rt-signing-key.pgp'
+
+ # Validate tag signature
+ gpg_wrapper = os.path.join(os.getcwd(),
+ "debian/bin/git-tag-gpg-wrapper")
+ verify_proc = subprocess.Popen(
+ ['git', '-c', 'gpg.program=%s' % gpg_wrapper,
+ 'tag', '-v', 'v%s-rebase' % version],
+ env=env)
+ if verify_proc.wait():
+ raise RuntimeError("GPG tag verification failed")
+
+ args = ['git', 'format-patch',
+ 'v%s..v%s-rebase' % (up_ver, version)]
+ format_proc = subprocess.Popen(args,
+ cwd=patch_dir,
+ env=env, stdout=subprocess.PIPE)
+ with io.open(format_proc.stdout.fileno(), encoding='utf-8') \
+ as pipe:
+ for line in pipe:
+ name = line.strip('\n')
+ with open(os.path.join(patch_dir, name)) as source_patch:
+ patch_from = source_patch.readline()
+ match = re.match(r'From ([0-9a-f]{40}) ', patch_from)
+ assert match
+ origin = ('https://git.kernel.org/cgit/linux/kernel/'
+ 'git/rt/linux-stable-rt.git/commit?id=%s' %
+ match.group(1))
+ add_patch(name, source_patch, origin)
+ series_fh.write(line)
+
+ else:
+ # Get version and upstream version
+ if version is None:
+ match = re.search(r'(?:^|/)patches-(.+)\.tar\.[gx]z$', source)
+ assert match, 'no version specified or found in filename'
+ version = match.group(1)
+ match = re.match(r'^(\d+\.\d+)(?:\.\d+|-rc\d+)?-rt\d+$', version)
+ assert match, 'could not parse version string'
+ up_ver = match.group(1)
+
+ # Expect an accompanying signature, and validate it
+ source_sig = re.sub(r'.[gx]z$', '.sign', source)
+ unxz_proc = subprocess.Popen(['xzcat', source],
+ stdout=subprocess.PIPE)
+ verify_output = subprocess.check_output(
+ ['gpgv', '--status-fd', '1',
+ '--keyring', 'debian/upstream/rt-signing-key.pgp',
+ '--ignore-time-conflict', source_sig, '-'],
+ stdin=unxz_proc.stdout)
+ if unxz_proc.wait() or \
+ not re.search(r'^\[GNUPG:\]\s+VALIDSIG\s',
+ codecs.decode(verify_output),
+ re.MULTILINE):
+ os.write(2, verify_output) # bytes not str!
+ raise RuntimeError("GPG signature verification failed")
+
+ temp_dir = tempfile.mkdtemp(prefix='rt-genpatch', dir='debian')
+ try:
+ # Unpack tarball
+ subprocess.check_call(['tar', '-C', temp_dir, '-xaf', source])
+ source_dir = os.path.join(temp_dir, 'patches')
+ assert os.path.isdir(source_dir), \
+ 'tarball does not contain patches directory'
+
+ # Copy patch series
+ origin = ('https://www.kernel.org/pub/linux/kernel/projects/'
+ 'rt/%s/older/patches-%s.tar.xz' %
+ (up_ver, version))
+ with open(os.path.join(source_dir, 'series'), 'r') \
+ as source_series_fh:
+ for line in source_series_fh:
+ name = line.strip()
+ if name != '' and name[0] != '#':
+ with open(os.path.join(source_dir, name)) \
+ as source_patch:
+ add_patch(name, source_patch, origin)
+ series_fh.write(line)
+ finally:
+ shutil.rmtree(temp_dir)
+
+ for name in new_series:
+ if name in old_series:
+ old_series.remove(name)
+ else:
+ print('Added patch', os.path.join(patch_dir, name))
+
+ for name in old_series:
+ print('Obsoleted patch', os.path.join(patch_dir, name))
+
+
+if __name__ == '__main__':
+ if not (1 <= len(sys.argv) <= 3):
+ print('Usage: %s {TAR [RT-VERSION] | REPO RT-VERSION}' % sys.argv[0],
+ file=sys.stderr)
+ print('TAR is a tarball of patches.', file=sys.stderr)
+ print('REPO is a git repo containing the given RT-VERSION.',
+ file=sys.stderr)
+ sys.exit(2)
+ main(*sys.argv[1:])
diff --git a/debian/bin/getconfig.py b/debian/bin/getconfig.py
new file mode 100755
index 000000000..b719a17a1
--- /dev/null
+++ b/debian/bin/getconfig.py
@@ -0,0 +1,25 @@
+#!/usr/bin/python3
+
+import sys
+
+from debian_linux.config import ConfigCoreDump
+
+section = tuple(s or None for s in sys.argv[1:-1])
+key = sys.argv[-1]
+config = ConfigCoreDump(fp=open("debian/config.defines.dump", "rb"))
+try:
+ value = config[section][key]
+except KeyError:
+ sys.exit(1)
+
+if isinstance(value, str):
+ # Don't iterate over it
+ print(value)
+else:
+ # In case it's a sequence, try printing each item
+ try:
+ for item in value:
+ print(item)
+ except TypeError:
+ # Otherwise use the default format
+ print(value)
diff --git a/debian/bin/git-tag-gpg-wrapper b/debian/bin/git-tag-gpg-wrapper
new file mode 100755
index 000000000..9982b0140
--- /dev/null
+++ b/debian/bin/git-tag-gpg-wrapper
@@ -0,0 +1,33 @@
+#!/bin/bash -e
+
+# Instead of calling gpg, call gpgv and provide a local keyring
+
+debian_dir="$(readlink -f "$(dirname "$0")/..")"
+
+# Parse the expected options. If the next two lines are combined, a
+# failure of getopt won't cause the script to exit.
+ordered_args="$(getopt -n "$0" -o "" -l "status-fd:" -l "keyid-format:" -l "verify" -- "$@")"
+eval "set -- $ordered_args"
+gpgv_opts=()
+while true; do
+ case "$1" in
+ --status-fd)
+ gpgv_opts+=(--status-fd $2)
+ shift 2
+ ;;
+ --keyid-format)
+ # ignore
+ shift 2
+ ;;
+ --verify)
+ # ignore
+ shift 1
+ ;;
+ --)
+ shift 1
+ break
+ ;;
+ esac
+done
+
+exec gpgv "${gpgv_opts[@]}" --keyring "$debian_dir/upstream/${DEBIAN_KERNEL_KEYRING:-signing-key.pgp}" -- "$@"
diff --git a/debian/bin/kconfig.py b/debian/bin/kconfig.py
new file mode 100755
index 000000000..6115355f4
--- /dev/null
+++ b/debian/bin/kconfig.py
@@ -0,0 +1,39 @@
+#!/usr/bin/python3
+
+import optparse
+import re
+
+from debian_linux.kconfig import KconfigFile
+
+
+def merge(output, configs, overrides):
+ kconfig = KconfigFile()
+ for c in configs:
+ kconfig.read(open(c))
+ for key, value in overrides.items():
+ kconfig.set(key, value)
+ open(output, "w").write(str(kconfig))
+
+
+def opt_callback_dict(option, opt, value, parser):
+ match = re.match(r'^\s*(\S+)=(\S+)\s*$', value)
+ if not match:
+ raise optparse.OptionValueError('not key=value')
+ dest = option.dest
+ data = getattr(parser.values, dest)
+ data[match.group(1)] = match.group(2)
+
+
+if __name__ == '__main__':
+ parser = optparse.OptionParser(usage="%prog [OPTION]... FILE...")
+ parser.add_option(
+ '-o', '--override',
+ action='callback',
+ callback=opt_callback_dict,
+ default={},
+ dest='overrides',
+ help="Override option",
+ type='string')
+ options, args = parser.parse_args()
+
+ merge(args[0], args[1:], options.overrides)
diff --git a/debian/bin/no-depmod b/debian/bin/no-depmod
new file mode 100755
index 000000000..ed5a8463f
--- /dev/null
+++ b/debian/bin/no-depmod
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+set -e
+
+# This is a dummy substitute for depmod. Since we run depmod during
+# postinst, we do not need or want to package the files that it
+# generates.
+
+if [ "x$1" = x-V ]; then
+ # Satisfy version test
+ echo 'not really module-init-tools'
+elif [ "x$1" = x-b -a "${2%/depmod.??????}" != "$2" ]; then
+ # Satisfy test of short kernel versions
+ mkdir -p "$2/lib/modules/$3"
+ touch "$2/lib/modules/$3/modules.dep"
+else
+ echo 'skipping depmod'
+fi
diff --git a/debian/bin/stable-update b/debian/bin/stable-update
new file mode 100755
index 000000000..049c13264
--- /dev/null
+++ b/debian/bin/stable-update
@@ -0,0 +1,135 @@
+#!/usr/bin/python3
+
+import sys
+import os
+import re
+import subprocess
+
+from debian_linux.debian import Changelog, VersionLinux
+
+
+def base_version(ver):
+ # Assume base version is at least 3.0, thus only 2 components wanted
+ match = re.match(r'^(\d+\.\d+)', ver)
+ assert match
+ return match.group(1)
+
+
+def add_update(ver, inc):
+ base = base_version(ver)
+ if base == ver:
+ update = 0
+ else:
+ update = int(ver[len(base)+1:])
+ update += inc
+ if update == 0:
+ return base
+ else:
+ return '{}.{}'.format(base, update)
+
+
+def next_update(ver):
+ return add_update(ver, 1)
+
+
+def print_stable_log(log, cur_ver, new_ver):
+ major_ver = re.sub(r'^(\d+)\..*', r'\1', cur_ver)
+ while cur_ver != new_ver:
+ next_ver = next_update(cur_ver)
+ print(' https://www.kernel.org/pub/linux/kernel/v{}.x/ChangeLog-{}'
+ .format(major_ver, next_ver),
+ file=log)
+ log.flush() # serialise our output with git's
+ subprocess.check_call(['git', 'log', '--reverse',
+ '--pretty= - %s',
+ 'v{}..v{}^'.format(cur_ver, next_ver)],
+ stdout=log)
+ cur_ver = next_ver
+
+
+def main(repo, new_ver):
+ if os.path.exists(os.path.join(repo, '.git')):
+ os.environ['GIT_DIR'] = os.path.join(repo, '.git')
+ else:
+ os.environ['GIT_DIR'] = repo
+
+ changelog = Changelog(version=VersionLinux)
+ cur_pkg_ver = changelog[0].version
+ cur_ver = cur_pkg_ver.linux_upstream_full
+
+ if base_version(new_ver) != base_version(cur_ver):
+ print('{} is not on the same stable series as {}'
+ .format(new_ver, cur_ver),
+ file=sys.stderr)
+ sys.exit(2)
+
+ new_pkg_ver = new_ver + '-1'
+ if cur_pkg_ver.linux_revision_experimental:
+ new_pkg_ver += '~exp1'
+
+ # Three possible cases:
+ # 1. The current version has been released so we need to add a new
+ # version to the changelog.
+ # 2. The current version has not been released so we're changing its
+ # version string.
+ # (a) There are no stable updates included in the current version,
+ # so we need to insert an introductory line, the URL(s) and
+ # git log(s) and a blank line at the top.
+ # (b) One or more stable updates are already included in the current
+ # version, so we need to insert the URL(s) and git log(s) after
+ # them.
+
+ changelog_intro = 'New upstream stable update:'
+
+ # Case 1
+ if changelog[0].distribution != 'UNRELEASED':
+ subprocess.check_call(['dch', '-v', new_pkg_ver, '-D', 'UNRELEASED',
+ changelog_intro])
+
+ with open('debian/changelog', 'r') as old_log:
+ with open('debian/changelog.new', 'w') as new_log:
+ line_no = 0
+ inserted = False
+ intro_line = ' * {}\n'.format(changelog_intro)
+
+ for line in old_log:
+ line_no += 1
+
+ # Case 2
+ if changelog[0].distribution == 'UNRELEASED' and line_no == 1:
+ print('{} ({}) UNRELEASED; urgency={}'
+ .format(changelog[0].source, new_pkg_ver,
+ changelog[0].urgency),
+ file=new_log)
+ continue
+
+ if not inserted:
+ # Case 2(a)
+ if line_no == 3 and line != intro_line:
+ new_log.write(intro_line)
+ print_stable_log(new_log, cur_ver, new_ver)
+ new_log.write('\n')
+ inserted = True
+ # Case 1 or 2(b)
+ elif line_no > 3 and line == '\n':
+ print_stable_log(new_log, cur_ver, new_ver)
+ inserted = True
+
+ # Check that we inserted before hitting the end of the
+ # first version entry
+ assert not (line.startswith(' -- ') and not inserted)
+
+ new_log.write(line)
+
+ os.rename('debian/changelog.new', 'debian/changelog')
+
+
+if __name__ == '__main__':
+ if len(sys.argv) != 3:
+ print('''\
+Usage: {} REPO VERSION"
+REPO is the git repository to generate a changelog from
+VERSION is the stable version (without leading v)'''.format(sys.argv[0]),
+ file=sys.stderr)
+ sys.exit(2)
+ main(*sys.argv[1:])
diff --git a/debian/bin/stable-update.sh b/debian/bin/stable-update.sh
new file mode 100755
index 000000000..bd86860c6
--- /dev/null
+++ b/debian/bin/stable-update.sh
@@ -0,0 +1,2 @@
+#!/bin/sh -e
+exec "$(dirname "$0")/stable-update" "$@"
diff --git a/debian/bin/test-patches b/debian/bin/test-patches
new file mode 100755
index 000000000..7ddd3b495
--- /dev/null
+++ b/debian/bin/test-patches
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+set -e
+shopt -s extglob
+
+# Set defaults from the running kernel
+arch="$(dpkg --print-architecture)"
+kernelabi="$(uname -r)"
+ff="${kernelabi#+([^-])-@(trunk|?(rc)+([0-9])|+([0-9]).bpo.+([0-9]))-}"
+if [ "x$ff" != "x$kernelabi" ]; then
+ flavour="${ff#@(openvz|rt|vserver|xen)-}"
+ if [ "x$flavour" != "x$ff" ]; then
+ featureset="${ff%-$flavour}"
+ else
+ featureset=none
+ fi
+else
+ flavour=
+ featureset=none
+fi
+
+fuzz=0
+jobs=$(nproc)
+
+eval "set -- $(getopt -n "$0" -o "f:j:s:" -l "fuzz:" -- "$@")"
+while true; do
+ case "$1" in
+ -f) flavour="$2"; shift 2 ;;
+ -j) jobs="$2"; shift 2 ;;
+ -s) featureset="$2"; shift 2 ;;
+ --fuzz) fuzz="$2"; shift 2;;
+ --) shift 1; break ;;
+ esac
+done
+
+if [ $# -lt 1 ]; then
+ echo >&2 "Usage: $0 [<options>] <patch>..."
+ cat >&2 <<EOF
+Options:
+ -f <flavour> specify the 'flavour' of kernel to build, e.g. 686-pae
+ -j <jobs> specify number of compiler jobs to run in parallel
+ (default: number of available processors)
+ -s <featureset> specify an optional featureset to apply, e.g. rt
+ --fuzz <num> set the maximum patch fuzz factor (default: 0)
+EOF
+ exit 2
+fi
+
+if [ -z "$flavour" ]; then
+ echo >&2 "You must specify a flavour to build with the -f option"
+ exit 2
+fi
+
+export DEB_BUILD_PROFILES=pkg.linux.notools
+export MAKEFLAGS="$MAKEFLAGS -j$jobs"
+
+dpkg-checkbuilddeps -B
+
+# Append 'a~test' to Debian version; this should be less than any official
+# successor and easily recognisable
+version="$(dpkg-parsechangelog | sed 's/^Version: //; t; d')"
+if [ "${version%a~test}" = "$version" ]; then
+ version="$version"a~test
+ dch -v "$version" --distribution UNRELEASED "Testing patches $*"
+fi
+
+# Ignore user's .quiltrc
+alias quilt='quilt --quiltrc -'
+
+# Try to clean up any previous test patches
+if [ "$featureset" = none ]; then
+ patchdir=debian/patches
+ while patch="$(quilt next 2>/dev/null || quilt top 2>/dev/null)" && \
+ [ "${patch#test/}" != "$patch" ]; do
+ quilt delete -r "$patch"
+ done
+else
+ patchdir=debian/patches-${featureset}
+ sed -i '/^test\//d' $patchdir/series
+fi
+
+# Prepare a new directory for the patches
+rm -rf $patchdir/test/
+mkdir $patchdir/test
+
+# Regenerate control and included rules
+rm debian/control debian/rules.gen
+debian/rules debian/control-real && exit 1 || true
+test -f debian/control
+test -f debian/rules.gen
+
+# Clean up old build; apply existing patches for featureset
+debian/rules clean
+debian/rules source
+
+# Apply the additional patches
+for patch in "$@"; do
+ patch_abs="$(readlink -f "$patch")"
+ (cd "debian/build/source_${featureset}" && \
+ quilt import -P "test/$(basename "$patch")" "$patch_abs" && \
+ quilt push --fuzz="$fuzz")
+done
+
+# Build selected binaries
+fakeroot make -f debian/rules.gen binary-arch_"$arch"_"$featureset"_"$flavour"
diff --git a/debian/certs/debian-uefi-certs.pem b/debian/certs/debian-uefi-certs.pem
new file mode 100644
index 000000000..26c5facc0
--- /dev/null
+++ b/debian/certs/debian-uefi-certs.pem
@@ -0,0 +1,41 @@
+-----BEGIN CERTIFICATE-----
+MIIDnjCCAoagAwIBAgIRAO1UodWvh0iUjZ+JMu6cfDQwDQYJKoZIhvcNAQELBQAw
+IDEeMBwGA1UEAxMVRGViaWFuIFNlY3VyZSBCb290IENBMB4XDTE2MDgxNjE4MDkx
+OFoXDTQ2MDgwOTE4MDkxOFowIDEeMBwGA1UEAxMVRGViaWFuIFNlY3VyZSBCb290
+IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnZXUi5vaEKwuyoI3
+waTLSsMbQpPCeinTbt1kr4Cv6maiG2GcgwzFa7k1Jf/F++gpQ97OSz3GEk2x7yZD
+lWjNBBH+wiSb3hTYhlHoOEO9sZoV5Qhr+FRQi7NLX/wU5DVQfAux4gOEqDZI5IDo
+6p/6v8UYe17OHL4sgHhJNRXAIc/vZtWKlggrZi9IF7Hn7IKPB+bK4F9xJDlQCo7R
+cihQpZ0h9ONhugkDZsjfTiY2CxUPYx8rr6vEKKJWZIWNplVBrjyIld3Qbdkp29jE
+aLX89FeJaxTb4O/uQA1iH+pY1KPYugOmly7FaxOkkXemta0jp+sKSRRGfHbpnjK0
+ia9XeQIDAQABo4HSMIHPMEEGCCsGAQUFBwEBBDUwMzAxBggrBgEFBQcwAoYlaHR0
+cHM6Ly9kc2EuZGViaWFuLm9yZy9zZWN1cmUtYm9vdC1jYTAfBgNVHSMEGDAWgBRs
+zs5+TGwNH2FJ890n38xcu0GeoTAUBglghkgBhvhCAQEBAf8EBAMCAPcwEwYDVR0l
+BAwwCgYIKwYBBQUHAwMwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w
+HQYDVR0OBBYEFGzOzn5MbA0fYUnz3SffzFy7QZ6hMA0GCSqGSIb3DQEBCwUAA4IB
+AQB3lj5Hyc4Jz4uJzlntJg4mC7mtqSu9oeuIeQL/Md7+9WoH72ETEXAev5xOZmzh
+YhKXAVdlR91Kxvf03qjxE2LMg1esPKaRFa9VJnJpLhTN3U2z0WAkLTJPGWwRXvKj
+8qFfYg8wrq3xSGZkfTZEDQY0PS6vjp3DrcKR2Dfg7npfgjtnjgCKxKTfNRbCcitM
+UdeTk566CA1Zl/LiKaBETeru+D4CYMoVz06aJZGEP7dax+68a4Cj2f2ybXoeYxTr
+7/GwQCXV6A6B62v3y//lIQAiLC6aNWASS1tfOEaEDAacz3KTYhjuXJjWs30GJTmV
+305gdrAGewiwbuNknyFWrTkP
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDAzCCAeugAwIBAgIUS271q8pmmCUXjgUshGZ8y8BTH4wwDQYJKoZIhvcNAQEL
+BQAwIDEeMBwGA1UEAxMVRGViaWFuIFNlY3VyZSBCb290IENBMB4XDTIxMDMwMjE1
+MzIxN1oXDTMxMDIyODE1MzIxN1owMTEvMC0GA1UEAwwmRGViaWFuIFNlY3VyZSBC
+b290IFNpZ25lciAyMDIxIC0gbGludXgwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQC26Yp0B148m+/gXPppGbN3+4JKyJhxjW3y8n5UMkjaKySbA6vys4Pa
+5EP0bWWbMZpncdGpsfPPesO+Od4aTFx/j08mZzVf7DNQDx0WgI/x+W/qGJ0jXISH
+u+FgvJCOg0RPfmSZxfx+b41DOPDM/BqZ4f9EAu3ONDSnB6AqftDa5qW1xn2qzAsO
+PTO5/2k84D8jk9hborkxuTQQsOLBWU8zWD5QHJQ3KiHPcgn5bC72w5+6pg7ndAtv
+Qjo/tVsVWtkEqs3TqrODIThKzSpQBiHSjPMPK6V3MUUnRvB2ZMI31aNpTIRW7IOs
+wymFQ+Nw0ZmwBosbQ/ymiJShLPk+HaPxAgMBAAGjJDAiMAsGA1UdDwQEAwIHgDAT
+BgNVHSUEDDAKBggrBgEFBQcDAzANBgkqhkiG9w0BAQsFAAOCAQEATYOPVqF49+EJ
+qufeuvONHRNodiqkmhx2e0ySzVfy2nhODeb+KLKBQO7rb03vuc19Xx53TVgVoPwx
+HN/JKV6Fk4sHiUOeeSjYc+Vr+m6/2cf8zs9QoRjZSGPhW7P2VPPl+6tutZ26z05o
+ptm+iUaEBpzJ4vSqfN65GJAOntAHa0LPy8z1/FoUkEQgyPaMpKziYTINIR2wRxLh
+dxQG9AD99V1/p7tTLbkUEHc/4qZU5bQcDkNEOnSb6/ydhGU43BgsCQc9lq6NCY08
++Re67AY8uKi6efKHfV1Qwy/XQXakiYwyMJn7ZLSW+V8z2t2dKR4Q+FtsrGKs287n
+KaCU4UEMNg==
+-----END CERTIFICATE-----
diff --git a/debian/certs/wireless-regdb-benh@debian.org.pem b/debian/certs/wireless-regdb-benh@debian.org.pem
new file mode 100644
index 000000000..ea475c5cd
--- /dev/null
+++ b/debian/certs/wireless-regdb-benh@debian.org.pem
@@ -0,0 +1,22 @@
+-----BEGIN CERTIFICATE-----
+MIIDrDCCApSgAwIBAgIJANmx5G8o89SXMA0GCSqGSIb3DQEBCwUAMGsxCzAJBgNV
+BAYTAkdCMRMwEQYDVQQHDApNYW5jaGVzdGVyMQ8wDQYDVQQKDAZEZWJpYW4xFjAU
+BgNVBAMMDUJlbiBIdXRjaGluZ3MxHjAcBgkqhkiG9w0BCQEWD2JlbmhAZGViaWFu
+Lm9yZzAeFw0xODA0MTMxODIxNDZaFw0xODA1MTMxODIxNDZaMGsxCzAJBgNVBAYT
+AkdCMRMwEQYDVQQHDApNYW5jaGVzdGVyMQ8wDQYDVQQKDAZEZWJpYW4xFjAUBgNV
+BAMMDUJlbiBIdXRjaGluZ3MxHjAcBgkqhkiG9w0BCQEWD2JlbmhAZGViaWFuLm9y
+ZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ3hd6AkoNV5ZToHkMn2
+paYfhBwjB0tPpQPGD/dU1Yt+eYEA0uk99Jf+hM1VvcmPIVeIBjmQZkEmeSzKP5WH
+AREvL7DhC0P8Xy9PZwTbTbdyTdHFdnNNkWmwcRc26qsKOs2Vm3YbjiEXj8UCvyTH
+wECxO8SAfHGlUdz3Olh/sQeBihDR9pMXceD6UXkV1NePrb1vOOEmfbzwPoCJtOyO
+aZDbl4rwIyODgjtqsazr55l0KjWOqWT9Rp7o5UhhMW7m/BkYVMMbT9YARIccN0Xq
+9cnLDwxV7M9qwkUmI6IxUk3uIX39WHLCKMWOqdDuAXcIpfAiK0d5K8+aRrWP/WSi
+te0CAwEAAaNTMFEwHQYDVR0OBBYEFNP7LdvwjvpnbS8hmUzrQVnmndjVMB8GA1Ud
+IwQYMBaAFNP7LdvwjvpnbS8hmUzrQVnmndjVMA8GA1UdEwEB/wQFMAMBAf8wDQYJ
+KoZIhvcNAQELBQADggEBAHFx5M1AhPNgNGp43OeBII8ef1QxjkrlaZEcTHcARwmY
+kfQnUpotMIdMUVEfrtiM2zxzBkPGHzq6r57S6z6f0bKKohYIJqE5DGPnLXicrCxO
+adWg/b3qlf7iaQbhsieQaNg6rNagTuKK+v+cmGtgg+rnRiQJIRKo/qpGDSSlz1I3
+SLnisdaw5L9vWXsXnt0kAO7GiXbpNUAf630jjO0TbGa8xIi1VZrsvVINC8VA4f63
+ILEiFjLtKD4fv/IAEnWS15kuJfvy5v0qENF1iTFS5LLC7s1BowhIGF5mQmfPCyom
+a2WHTfoEUeztA4s4UpNtxDBBmmwoNfCHFc54TzLKUu0=
+-----END CERTIFICATE-----
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 000000000..4f4ec7ead
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,29625 @@
+linux (4.19.249-2) buster-security; urgency=medium
+
+ * swiotlb: skip swiotlb_bounce when orig_addr is zero (regression in
+ 4.19.249)
+
+ -- Ben Hutchings <benh@debian.org> Thu, 30 Jun 2022 14:52:02 +0200
+
+linux (4.19.249-1) buster-security; urgency=high
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.236
+ - Revert "xfrm: state and policy should fail if XFRMA_IF_ID 0"
+ - xfrm: Check if_id in xfrm_migrate
+ - xfrm: Fix xfrm migrate issues when address family changes
+ - [x86] atm: firestream: check the return value of ioremap() in fs_init()
+ - nl80211: Update bss channel on channel switch for P2P_CLIENT
+ - tcp: make tcp_read_sock() more robust
+ - sfc: extend the locking on mcdi->seqno
+ - sched/topology: Make sched_init_numa() use a set for the deduplicating
+ sort
+ - sched/topology: Fix sched_domain_topology_level alloc in sched_init_numa()
+ - cpuset: Fix unsafe lock order between cpuset lock and cpuslock
+ - mm: fix dereference a null pointer in migrate[_huge]_page_move_mapping()
+ - fs: sysfs_emit: Remove PAGE_SIZE alignment check
+ - [arm64] Preparation for mitigating Spectre-BHB:
+ + Add part number for Arm Cortex-A77
+ + Add Neoverse-N2, Cortex-A710 CPU part definition
+ + Add Cortex-X2 CPU part definition
+ + entry.S: Add ventry overflow sanity checks
+ - [arm64] Mitigate Spectre v2-type Branch History Buffer attacks
+ (CVE-2022-23960):
+ + entry: Make the trampoline cleanup optional
+ + entry: Free up another register on kpti's tramp_exit path
+ + entry: Move the trampoline data page before the text page
+ + entry: Allow tramp_alias to access symbols after the 4K boundary
+ + entry: Don't assume tramp_vectors is the start of the vectors
+ + entry: Move trampoline macros out of ifdef'd section
+ + entry: Make the kpti trampoline's kpti sequence optional
+ + entry: Allow the trampoline text to occupy multiple pages
+ + entry: Add non-kpti __bp_harden_el1_vectors for mitigations
+ + entry: Add vectors that have the bhb mitigation sequences
+ + entry: Add macro for reading symbol addresses from the trampoline
+ + Add percpu vectors for EL1
+ + proton-pack: Report Spectre-BHB vulnerabilities as part of Spectre-v2
+ + KVM: arm64: Add templates for BHB mitigation sequences
+ + Mitigate spectre style branch history side channels
+ + KVM: arm64: Allow SMCCC_ARCH_WORKAROUND_3 to be discovered and migrated
+ + add ID_AA64ISAR2_EL1 sys register
+ + Use the clearbhb instruction in mitigations
+ - [arm64] crypto: qcom-rng - ensure buffer for generate is completely filled
+ - ocfs2: fix crash when initialize filecheck kobj fails
+ - efi: fix return value of __setup handlers
+ - net/packet: fix slab-out-of-bounds access in packet_recvmsg()
+ - atm: eni: Add check for dma_map_single
+ - [x86] hv_netvsc: Add check for kvmalloc_array
+ - [arm64,armhf] drm/panel: simple: Fix Innolux G070Y2-L01 BPP settings
+ - net: handle ARPHRD_PIMREG in dev_is_mac_header_xmit()
+ - [arm64,armhf] net: dsa: Add missing of_node_put() in dsa_port_parse_of
+ - usb: gadget: rndis: prevent integer overflow in rndis_set_response()
+ - usb: gadget: Fix use-after-free bug by not setting udc->dev.driver
+ - Input: aiptek - properly check endpoint type
+ - perf symbols: Fix symbol size calculation condition
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.237
+ - nfc: st21nfca: Fix potential buffer overflows in EVT_TRANSACTION
+ (CVE-2022-26490)
+ - net: ipv6: fix skb_over_panic in __ip6_append_data
+ - esp: Fix possible buffer overflow in ESP transformation (CVE-2022-27666)
+ - [x86] thermal: int340x: fix memory leak in int3400_notify()
+ - llc: fix netdevice reference leaks in llc_ui_bind() (CVE-2022-28356)
+ - ALSA: oss: Fix PCM OSS buffer allocation overflow
+ - ALSA: pcm: Add stream lock during PCM reset ioctl operations
+ - ALSA: usb-audio: Add mute TLV for playback volumes on RODE NT-USB
+ - ALSA: cmipci: Restore aux vol on suspend/resume
+ - ALSA: pci: fix reading of swapped values from pcmreg in AC97 codec
+ - [arm64] drivers: net: xgene: Fix regression in CRC stripping
+ - netfilter: nf_tables: initialize registers in nft_do_chain()
+ (CVE-2022-1016)
+ - [x86] ACPI / x86: Work around broken XSDT on Advantech DAC-BJ01 board
+ - [x86] ACPI: battery: Add device HID and quirk for Microsoft Surface Go 3
+ - [x86] ACPI: video: Force backlight native for Clevo NL5xRU and NL5xNU
+ - [x86] crypto: qat - disable registration of algorithms
+ - mac80211: fix potential double free on mesh join
+ - llc: only change llc->dev when bind() succeeds
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.238
+ - USB: serial: pl2303: add IBM device IDs
+ - USB: serial: simple: add Nokia phone driver
+ - netdevice: add the case if dev is NULL
+ - xfrm: fix tunnel model fragmentation behavior
+ - virtio_console: break out of buf poll on remove
+ - ethernet: sun: Free the coherent when failing in probing
+ - spi: Fix invalid sgs value
+ - spi: Fix erroneous sgs value with min_t()
+ - af_key: add __GFP_ZERO flag for compose_sadb_supported in function
+ pfkey_register (CVE-2022-1353)
+ - fuse: fix pipe buffer lifetime for direct_io (CVE-2022-1011)
+ - tpm: fix reference counting for struct tpm_chip
+ - block: Add a helper to validate the block size
+ - virtio-blk: Use blk_validate_block_size() to validate block size
+ - USB: usb-storage: Fix use of bitfields for hardware data in ene_ub6250.c
+ - xhci: make xhci_handshake timeout for xhci_reset() adjustable
+ - iio: inkern: apply consumer scale on IIO_VAL_INT cases
+ - iio: inkern: apply consumer scale when no channel scale is available
+ - iio: inkern: make a best effort on offset calculation
+ - ptrace: Check PTRACE_O_SUSPEND_SECCOMP permission on PTRACE_SEIZE
+ (CVE-2022-30594)
+ - Documentation: add link to stable release candidate tree
+ - Documentation: update stable tree link
+ - SUNRPC: avoid race between mod_timer() and del_timer_sync()
+ - NFSD: prevent underflow in nfssvc_decode_writeargs()
+ - NFSD: prevent integer overflow on 32 bit systems
+ - f2fs: fix to unlock page correctly in error path of is_alive()
+ - [armhf] pinctrl: samsung: drop pin banks references on error paths
+ - can: ems_usb: ems_usb_start_xmit(): fix double dev_kfree_skb() in error
+ path (CVE-2022-28390)
+ - jffs2: fix use-after-free in jffs2_clear_xattr_subsystem
+ - jffs2: fix memory leak in jffs2_do_mount_fs
+ - jffs2: fix memory leak in jffs2_scan_medium
+ - mm/pages_alloc.c: don't create ZONE_MOVABLE beyond the end of a node
+ - mm: invalidate hwpoison page cache page in fault path
+ - mempolicy: mbind_range() set_policy() after vma_merge()
+ - scsi: libsas: Fix sas_ata_qc_issue() handling of NCQ NON DATA commands
+ - qed: display VF trust config
+ - qed: validate and restrict untrusted VFs vlan promisc mode
+ - Revert "Input: clear BTN_RIGHT/MIDDLE on buttonpads"
+ - [i386] ALSA: cs4236: fix an incorrect NULL check on list iterator
+ - ALSA: hda/realtek: Fix audio regression on Mi Notebook Pro 2020
+ - mm,hwpoison: unmap poisoned page before invalidation
+ - drbd: fix potential silent data corruption
+ - [powerpc*] kvm: Fix kvm_use_magic_page
+ - ACPI: properties: Consistently return -ENOENT if there are no more
+ references
+ - drivers: hamradio: 6pack: fix UAF bug caused by mod_timer()
+ (CVE-2022-1198)
+ - block: don't merge across cgroup boundaries if blkcg is enabled
+ - drm/edid: check basic audio support on CEA extension block
+ - [armhf] dts: exynos: add missing HDMI supplies on SMDK5250
+ - [armhf] dts: exynos: add missing HDMI supplies on SMDK5420
+ - carl9170: fix missing bit-wise or operator for tx_params
+ - [x86] thermal: int340x: Increase bitmap size
+ - brcmfmac: firmware: Allocate space for default boardrev in nvram
+ - brcmfmac: pcie: Replace brcmf_pcie_copy_mem_todev with memcpy_toio
+ - PCI: pciehp: Clear cmd_busy bit in polling mode
+ - [arm64] regulator: qcom_smd: fix for_each_child.cocci warnings
+ - crypto: authenc - Fix sleep in atomic context in decrypt_tail
+ - [arm64,armhf] spi: tegra114: Add missing IRQ check in tegra_spi_probe
+ - [arm64] spi: pxa2xx-pci: Balance reference count for PCI DMA device
+ - hwmon: (sch56xx-common) Replace WDOG_ACTIVE with WDOG_HW_RUNNING
+ - block: don't delete queue kobject before its children
+ - PM: hibernate: fix __setup handler error handling
+ - PM: suspend: fix return value of __setup handler
+ - clocksource/drivers/timer-of: Check return value of of_iomap in
+ timer_of_base_init()
+ - ACPI: APEI: fix return value of __setup handlers
+ - [x86] crypto: ccp - ccp_dmaengine_unregister release dma channels
+ - [x86] clocksource: acpi_pm: fix return value of __setup handler
+ - sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa
+ - perf/core: Fix address filter parser for multiple filters
+ - [x86] perf/x86/intel/pt: Fix address filter config for 32-bit kernel
+ - video: fbdev: smscufx: Fix null-ptr-deref in ufx_usb_probe()
+ - video: fbdev: fbcvt.c: fix printing in fb_cvt_print_name()
+ - media: em28xx: initialize refcount before kref_get
+ - media: usb: go7007: s2250-board: fix leak in probe()
+ - [x86] ASoC: rt5663: check the return value of devm_kzalloc() in
+ rt5663_parse_dp()
+ - printk: fix return value of printk.devkmsg __setup handler
+ - [armhf] memory: emif: Add check for setup_interrupts
+ - [armhf] memory: emif: check the pointer temp in get_device_details()
+ - ALSA: firewire-lib: fix uninitialized flag for AV/C deferred transaction
+ - media: stk1160: If start stream fails, return buffers with
+ VB2_BUF_STATE_QUEUED
+ - [arm*] ASoC: dmaengine: do not use a NULL prepare_slave_config() callback
+ - [armhf] ASoC: imx-es8328: Fix error return code in imx_es8328_probe()
+ - ath10k: fix memory overwrite of the WoWLAN wakeup packet pattern
+ - Bluetooth: hci_serdev: call init_rwsem() before p->open()
+ - drm/edid: Don't clear formats if using deep color
+ - drm/amd/display: Fix a NULL pointer dereference in
+ amdgpu_dm_connector_add_common_modes()
+ - ath9k_htc: fix uninit value bugs
+ - [powerpc*] KVM: PPC: Fix vmx/vsx mixup in mmio emulation
+ - [x86] ray_cs: Check ioremap return value
+ - HID: i2c-hid: fix GET/SET_REPORT for unnumbered reports
+ - iwlwifi: Fix -EIO error code that is never returned
+ - scsi: pm8001: Fix command initialization in pm80XX_send_read_log()
+ - scsi: pm8001: Fix command initialization in pm8001_chip_ssp_tm_req()
+ - scsi: pm8001: Fix payload initialization in pm80xx_set_thermal_config()
+ - scsi: pm8001: Fix abort all task initialization
+ - TOMOYO: fix __setup handlers return values
+ - [arm64,armhf] drm/tegra: Fix reference leak in tegra_dsi_ganged_probe
+ - [x86] power: supply: bq24190_charger: Fix bq24190_vbus_is_enabled() wrong
+ false return
+ - [powerpc*] Makefile: Don't pass -mcpu=powerpc64 when building 32-bit
+ - [x86] KVM: x86: Fix emulation in writing cr8
+ - [x86] KVM: x86/emulator: Defer not-present segment check in
+ __load_segment_descriptor()
+ - [x86] hv_balloon: rate-limit "Unhandled message" warning
+ - PCI: Reduce warnings on possible RW1C corruption
+ - [armhf] mfd: mc13xxx: Add check for mc13xxx_irq_request
+ - vxcan: enable local echo for sent CAN frames
+ - USB: storage: ums-realtek: fix error code in rts51x_read_mem()
+ - af_netlink: Fix shift out of bounds in group mask calculation
+ - tcp: ensure PMTU updates are processed during fastopen
+ - [x86] mxser: fix xmit_buf leak in activate when LSR == 0xff
+ - [x86] serial: 8250_mid: Balance reference count for PCI DMA device
+ - serial: 8250: Fix race condition in RTS-after-send handling
+ - [arm64] clk: qcom: clk-rcg2: Update the frac table for pixel clock
+ - [armhf] clk: tegra: tegra124-emc: Fix missing put_device() call in
+ emc_ensure_emc_driver
+ - NFS: remove unneeded check in decode_devicenotify_args()
+ - [arm64,armhf] pinctrl/rockchip: Add missing of_node_put() in
+ rockchip_pinctrl_probe
+ - [s390x] tty: hvc: fix return value of __setup handler
+ - jfs: fix divide error in dbNextAG
+ - netfilter: nf_conntrack_tcp: preserve liberal flag in tcp options
+ - xen: fix is_xen_pmu()
+ - net: phy: broadcom: Fix brcm_fet_config_init()
+ - NFSv4/pNFS: Fix another issue with a list iterator pointing to the head
+ - selinux: use correct type for context length
+ - loop: use sysfs_emit() in the sysfs xxx show()
+ - Fix incorrect type in assignment of ipv6 port for audit
+ - bfq: fix use-after-free in bfq_dispatch_request
+ - ACPICA: Avoid walking the ACPI Namespace if it is not there
+ - Revert "Revert "block, bfq: honor already-setup queue merges""
+ - ACPI/APEI: Limit printable size of BERT table data
+ - PM: core: keep irq flags in device_pm_check_callbacks()
+ - [arm64] spi: tegra20: Use of_device_get_match_data()
+ - ext4: don't BUG if someone dirty pages without asking ext4 first
+ - video: fbdev: cirrusfb: check pixclock to avoid divide by zero
+ - video: fbdev: udlfb: replace snprintf in show functions with sysfs_emit
+ - ASoC: soc-core: skip zero num_dai component in searching dai name
+ - media: cx88-mpeg: clear interrupt status register before streaming video
+ - media: Revert "media: em28xx: add missing em28xx_close_extension"
+ - media: hdpvr: initialize dev->worker at hdpvr_register_videodev
+ - mmc: host: Return an error when ->enable_sdio_irq() ops is missing
+ - [powerpc*] lib/sstep: Fix 'sthcx' instruction
+ - scsi: qla2xxx: Fix stuck session in gpdb
+ - scsi: qla2xxx: Fix warning for missing error code
+ - scsi: qla2xxx: Check for firmware dump already collected
+ - scsi: qla2xxx: Suppress a kernel complaint in qla_create_qpair()
+ - scsi: qla2xxx: Fix incorrect reporting of task management failure
+ - scsi: qla2xxx: Fix hang due to session stuck
+ - scsi: qla2xxx: Reduce false trigger to login
+ - scsi: qla2xxx: Use correct feature type field during RFF_ID processing
+ - KVM: Prevent module exit until all VMs are freed
+ - [x86] KVM: x86: fix sending PV IPI
+ - ubifs: rename_whiteout: Fix double free for whiteout_ui->data
+ - ubifs: Fix deadlock in concurrent rename whiteout and inode writeback
+ - ubifs: Add missing iput if do_tmpfile() failed in rename whiteout
+ - ubifs: setflags: Make dirtied_ino_d 8 bytes aligned
+ - ubifs: Fix read out-of-bounds in ubifs_wbuf_write_nolock()
+ - ubifs: rename_whiteout: correct old_dir size computing
+ - can: mcba_usb: mcba_usb_start_xmit(): fix double dev_kfree_skb in error
+ path (CVE-2022-28389)
+ - can: mcba_usb: properly check endpoint type
+ - gfs2: Make sure FITRIM minlen is rounded up to fs block size
+ - pinctrl: pinconf-generic: Print arguments for bias-pull-*
+ - ubi: Fix race condition between ctrl_cdev_ioctl and ubi_cdev_ioctl
+ - [amd64,arm64] ACPI: CPPC: Avoid out of bounds access when parsing _CPC
+ data
+ - mm/mmap: return 1 from stack_guard_gap __setup() handler
+ - mm/memcontrol: return 1 from cgroup.memory __setup() handler
+ - mm/usercopy: return 1 from hardened_usercopy __setup() handler
+ - bpf: Fix comment for helper bpf_current_task_under_cgroup()
+ - [x86] ASoC: topology: Allow TLV control to be either read or write
+ - openvswitch: Fixed nd target mask field in the flow dump.
+ - [x86] KVM: x86: Forbid VMM to set SYNIC/STIMER MSRs when SynIC wasn't
+ activated (CVE-2022-2153)
+ - ubifs: Rectify space amount budget for mkdir/tmpfile operations
+ - [x86] KVM: x86/svm: Clear reserved bits written to PerfEvtSeln MSRs
+ - drm: Add orientation quirk for GPD Win Max
+ - ath5k: fix OOB in ath5k_eeprom_read_pcal_info_5111
+ - drm/amd/amdgpu/amdgpu_cs: fix refcount leak of a dma_fence obj
+ - ptp: replace snprintf with sysfs_emit
+ - scsi: mvsas: Replace snprintf() with sysfs_emit()
+ - scsi: bfa: Replace snprintf() with sysfs_emit()
+ - [arm64,armhf] power: supply: axp20x_battery: properly report current when
+ discharging
+ - [powerpc*] Set crashkernel offset to mid of RMA region
+ - [arm64] PCI: aardvark: Fix support for MSI interrupts
+ - [arm64] iommu/arm-smmu-v3: fix event handling soft lockup
+ - usb: ehci: add pci device support for Aspeed platforms
+ - PCI: pciehp: Add Qualcomm quirk for Command Completed erratum
+ - ipv4: Invalidate neighbour for broadcast address upon address addition
+ - dm ioctl: prevent potential spectre v1 gadget
+ - scsi: pm8001: Fix pm8001_mpi_task_abort_resp()
+ - scsi: aha152x: Fix aha152x_setup() __setup handler return value
+ - net/smc: correct settings of RMB window update limit
+ - macvtap: advertise link netns via netlink
+ - bnxt_en: Eliminate unintended link toggle during FW reset
+ - [mips*] fix fortify panic when copying asm exception handlers
+ - scsi: libfc: Fix use after free in fc_exch_abts_resp()
+ - [armhf] usb: dwc3: omap: fix "unbalanced disables for smps10_out1" on
+ omap5evm
+ - Bluetooth: Fix use after free in hci_send_acl
+ - init/main.c: return 1 from handled __setup() functions
+ - minix: fix bug when opening a file with O_DIRECT
+ - w1: w1_therm: fixes w1_seq for ds28ea00 sensors
+ - NFSv4: Protect the state recovery thread against direct reclaim
+ - xen: delay xen_hvm_init_time_ops() if kdump is boot on vcpu>=32
+ - clk: Enforce that disjoints limits are invalid
+ - SUNRPC/call_alloc: async tasks mustn't block waiting for memory
+ - NFS: swap IO handling is slightly different for O_DIRECT IO
+ - NFS: swap-out must always use STABLE writes.
+ - [armhf] serial: samsung_tty: do not unlock port->lock for
+ uart_write_wakeup()
+ - virtio_console: eliminate anonymous module_init & module_exit
+ - jfs: prevent NULL deref in diFree
+ - net: add missing SOF_TIMESTAMPING_OPT_ID support
+ - mm: fix race between MADV_FREE reclaim and blkdev direct IO read
+ - [arm64] KVM: arm64: Check arm64_get_bp_hardening_data() didn't return NULL
+ - drm/amdgpu: fix off by one in amdgpu_gfx_kiq_acquire()
+ - [x86] Drivers: hv: vmbus: Fix potential crash on module unload
+ - [arm64,armhf] net: stmmac: Fix unset max_speed difference between DT and
+ non-DT platforms
+ - [armhf] drm/imx: Fix memory leak in imx_pd_connector_get_modes
+ - net: openvswitch: don't send internal clone attribute to the userspace.
+ - rxrpc: fix a race in rxrpc_exit_net()
+ - qede: confirm skb is allocated before using
+ - drbd: Fix five use after free bugs in get_initial_state
+ - [arm64] Revert "mmc: sdhci-xenon: fix annoying 1.8V regulator warning"
+ - mmmremap.c: avoid pointless invalidate_range_start/end on
+ mremap(old_size=0)
+ - mm/mempolicy: fix mpol_new leak in shared_policy_replace
+ - [x86] pm: Save the MSR validity status at context setup
+ - [x86] speculation: Restore speculation related MSRs during S3 resume
+ - btrfs: fix qgroup reserve overflow the qgroup limit
+ - [arm64] patch_text: Fixup last cpu should be master
+ - [arm64] perf: qcom_l2_pmu: fix an incorrect NULL check on list iterator
+ - [arm64,armhf] irqchip/gic-v3: Fix GICR_CTLR.RWP polling
+ - mm: don't skip swap entry even if zap_details specified
+ - [arm64] module: remove (NOLOAD) from linker script
+ - mm/sparsemem: fix 'mem_section' will never be NULL gcc 12 warning
+ - cgroup: Use open-time credentials for process migraton perm checks
+ (CVE-2021-4197)
+ - cgroup: Allocate cgroup_file_ctx for kernfs_open_file->priv
+ (CVE-2021-4197)
+ - cgroup: Use open-time cgroup namespace for process migration perm checks
+ (CVE-2021-4197)
+ - xfrm: policy: match with both mark and mask on user interfaces
+ - drm/amdgpu: Check if fd really is an amdgpu fd.
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.239
+ - net/sched: flower: fix parsing of ethertype following VLAN header
+ - veth: Ensure eth header is in skb's linear part
+ - gpiolib: acpi: use correct format characters
+ - [armhf] net: ethernet: stmmac: fix altr_tse_pcs function when using a
+ fixed-link
+ - sctp: Initialize daddr on peeled off socket
+ - cifs: potential buffer overflow in handling symlinks
+ - drm/amd: Add USBC connector ID
+ - [amd64] drm/amdkfd: Check for potential null return of kmalloc_array()
+ - [x86] Drivers: hv: vmbus: Prevent load re-ordering when reading ring
+ buffer
+ - scsi: target: tcmu: Fix possible page UAF
+ - [powerpc*] scsi: ibmvscsis: Increase INITIAL_SRP_LIMIT to 1024
+ - ata: libata-core: Disable READ LOG DMA EXT for Samsung 840 EVOs
+ - [armhf] gpu: ipu-v3: Fix dev_dbg frequency output
+ - [arm64] alternatives: mark patch_alternative() as `noinstr`
+ - drm/amd/display: Fix allocate_mst_payload assert on resume
+ - scsi: mvsas: Add PCI ID of RocketRaid 2640
+ - drivers: net: slip: fix NPD bug in sl_tx_timeout()
+ - mm, page_alloc: fix build_zonerefs_node()
+ - ALSA: hda/realtek: Add quirk for Clevo PD50PNT
+ - ALSA: pcm: Test for "silence" field in struct "pcm_format_data"
+ - ipv6: fix panic when forwarding a pkt with no in6 dev
+ - smp: Fix offline cpu check in flush_smp_call_function_queue()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.240
+ - etherdevice: Adjust ether_addr* prototypes to silence -Wstringop-overead
+ - mm: page_alloc: fix building error on -Werror=array-compare
+ - tracing: Dump stacktrace trigger to the corresponding instance
+ - can: usb_8dev: usb_8dev_start_xmit(): fix double dev_kfree_skb() in error
+ path (CVE-2022-28388)
+ - dm integrity: fix memory corruption when tag_size is less than digest size
+ - gfs2: assign rgrp glock before compute_bitstructs
+ - ALSA: usb-audio: Clear MIDI port active flag after draining
+ - tcp: fix race condition when creating child sockets from syncookies
+ - tcp: Fix potential use-after-free due to double kfree()
+ - [armhf] dmaengine: imx-sdma: Fix error checking in sdma_event_remap
+ - rxrpc: Restore removed timer deletion
+ - net/packet: fix packet_sock xmit return value checking
+ - net/sched: cls_u32: fix possible leak in u32_init_knode()
+ - netlink: reset network and mac headers in netlink_dump()
+ - [x86] platform/x86: samsung-laptop: Fix an unsigned comparison which can
+ never be negative
+ - ALSA: usb-audio: Fix undefined behavior due to shift overflowing the
+ constant
+ - vxlan: fix error return code in vxlan_fdb_append
+ - cifs: Check the IOCB_DIRECT flag, not O_DIRECT
+ - mt76: Fix undefined behavior due to shift overflowing the constant
+ - brcmfmac: sdio: Fix undefined behavior due to shift overflowing the
+ constant
+ - [arm64] drm/msm/mdp5: check the return of kzalloc()
+ - [arm64] net: macb: Restart tx only if queue pointer is lagging
+ - stat: fix inconsistency between struct stat and struct compat_stat
+ - ata: pata_marvell: Check the 'bmdma_addr' beforing reading
+ - [arm64,armhf] drm/panel/raspberrypi-touchscreen: Avoid NULL deref if not
+ initialised
+ - [arm64,armhf] drm/panel/raspberrypi-touchscreen: Initialise the bridge in
+ prepare
+ - [powerpc*] perf: Fix power9 event alternatives
+ - openvswitch: fix OOB access in reserve_sfa_size()
+ - ASoC: soc-dapm: fix two incorrect uses of list iterator
+ - e1000e: Fix possible overflow in LTR decoding
+ - [arm*] arm_pmu: Validate single/group leader events
+ - ext4: fix symlink file size not match to file content
+ - ext4: limit length to bitmap_maxbytes - blocksize in punch_hole
+ - ext4: fix overhead calculation to account for the reserved gdt blocks
+ - ext4: force overhead calculation if the s_overhead_cluster makes no sense
+ - block/compat_ioctl: fix range check in BLKGETSIZE
+ - ax25: add refcount in ax25_dev to avoid UAF bugs (CVE-2022-1204)
+ - ax25: fix reference count leaks of ax25_dev (CVE-2022-1204)
+ - ax25: fix UAF bugs of net_device caused by rebinding operation
+ (CVE-2022-1204)
+ - ax25: Fix refcount leaks caused by ax25_cb_del()
+ - ax25: fix UAF bug in ax25_send_control() (CVE-2022-1204)
+ - ax25: fix NPD bug in ax25_disconnect (CVE-2022-1199)
+ - ax25: Fix NULL pointer dereferences in ax25 timers (CVE-2022-1205)
+ - ax25: Fix UAF bugs in ax25 timers (CVE-2022-1205)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.241
+ - floppy: disable FDRAWCMD by default (CVE-2022-33981)
+ - hamradio: defer 6pack kfree after unregister_netdev (CVE-2022-1195)
+ - hamradio: remove needs_free_netdev to avoid UAF (CVE-2022-1195)
+ - net/sched: cls_u32: fix netns refcount changes in u32_change()
+ (CVE-2022-29581)
+ - [powerpc*] 64/interrupt: Temporarily save PPR on stack to fix register
+ corruption due to SLB miss
+ - [powerpc*] 64s: Unmerge EX_LR and EX_DAR
+ - [armhf] Revert "net: ethernet: stmmac: fix altr_tse_pcs function when
+ using a fixed-link"
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.242
+ - USB: quirks: add a Realtek card reader
+ - USB: quirks: add STRING quirk for VCOM device
+ - USB: serial: whiteheat: fix heap overflow in WHITEHEAT_GET_DTR_RTS
+ - USB: serial: cp210x: add PIDs for Kamstrup USB Meter Reader
+ - USB: serial: option: add support for Cinterion MV32-WA/MV32-WB
+ - USB: serial: option: add Telit 0x1057, 0x1058, 0x1075 compositions
+ - xhci: stop polling roothubs after shutdown
+ - iio: dac: ad5446: Fix read_raw not returning set value
+ - [x86] iio: magnetometer: ak8975: Fix the error handling in
+ ak8975_power_on()
+ - usb: misc: fix improper handling of refcount in uss720_probe()
+ - usb: gadget: uvc: Fix crash when encoding data for usb request
+ - usb: gadget: configfs: clear deactivation flag in
+ configfs_composite_unbind()
+ - [arm64,armhf] usb: dwc3: core: Fix tx/rx threshold settings
+ - [arm64,armhf] usb: dwc3: gadget: Return proper request status
+ - [armhf] serial: imx: fix overrun interrupts in DMA mode
+ - serial: 8250: Also set sticky MCR bits in console restoration
+ - serial: 8250: Correct the clock for EndRun PTP/1588 PCIe device
+ - hex2bin: make the function hex_to_bin constant-time
+ - hex2bin: fix access beyond string end
+ - USB: Fix xhci event ring dequeue pointer ERDP update issue
+ - [armhf] phy: samsung: Fix missing of_node_put() in exynos_sata_phy_probe
+ - [armhf] phy: samsung: exynos5250-sata: fix missing device put in probe
+ error paths
+ - [armhf] ARM: OMAP2+: Fix refcount leak in omap_gic_of_init
+ - [armhf] dts: logicpd-som-lv: Fix wrong pinmuxing on OMAP35
+ - ipvs: correctly print the memory size of ip_vs_conn_tab
+ - tcp: md5: incorrect tcp_header_len for incoming connections
+ - sctp: check asoc strreset_chunk in sctp_generate_reconf_event
+ - [arm64] net: hns3: add validity check for message data length
+ - ip_gre: Make o_seqno start from 0 in native mode
+ - tcp: fix potential xmit stalls caused by TCP_NOTSENT_LOWAT
+ - [arm64,armhf] bus: sunxi-rsb: Fix the return value of
+ sunxi_rsb_device_create()
+ - [arm64,armhf] clk: sunxi: sun9i-mmc: check return value after calling
+ platform_get_resource()
+ - bnx2x: fix napi API usage sequence
+ - ip6_gre: Avoid updating tunnel->tun_hlen in __gre6_xmit()
+ - [amd64] x86: __memcpy_flushcache: fix wrong alignment if size > 2^32
+ - cifs: destage any unwritten data to the server before calling
+ copychunk_write
+ - [x86] drivers: net: hippi: Fix deadlock in rr_close()
+ - [x86] cpu: Load microcode during restore_processor_state()
+ - tty: n_gsm: fix wrong signal octet encoding in convergence layer type 2
+ - tty: n_gsm: fix malformed counter for out of frame data
+ - netfilter: nft_socket: only do sk lookups when indev is available
+ - tty: n_gsm: fix insufficient txframe size
+ - tty: n_gsm: fix missing explicit ldisc flush
+ - tty: n_gsm: fix wrong command retry handling
+ - tty: n_gsm: fix wrong command frame length field encoding
+ - tty: n_gsm: fix incorrect UA handling
+ - drm/vgem: Close use-after-free race in vgem_gem_create (CVE-2022-1419)
+ - [mips*] Fix CP0 counter erratum detection for R4k CPUs
+ - ALSA: fireworks: fix wrong return count shorter than expected by 4 bytes
+ - gpiolib: of: fix bounds check for 'gpio-reserved-ranges'
+ - Revert "SUNRPC: attempt AF_LOCAL connect on setup"
+ - firewire: fix potential uaf in outbound_phy_packet_callback()
+ - firewire: remove check of list iterator against head past the loop body
+ - firewire: core: extend card->lock in fw_core_handle_bus_reset
+ - genirq: Synchronize interrupt thread startup
+ - nfc: replace improper check device_is_registered() in netlink related
+ functions (CVE-2022-1974)
+ - NFC: netlink: fix sleep in atomic bug when firmware download timeout
+ (CVE-2022-1975)
+ - hwmon: (adt7470) Fix warning on module removal
+ - [arm*] ASoC: dmaengine: Restore NULL prepare_slave_config() callback
+ - [arm64,armhf] net: stmmac: dwmac-sun8i: add missing of_node_put() in
+ sun8i_dwmac_register_mdio_mux()
+ - [arm64,armhf] smsc911x: allow using IRQ0
+ - btrfs: always log symlinks in full mode
+ - net: igmp: respect RCU rules in ip_mc_source() and ip_mc_msfilter()
+ - [x86] kvm: x86/cpuid: Only provide CPUID leaf 0xA if host has
+ architectural PMU
+ - mm: fix unexpected zeroed page mapping with zram swap
+ - tcp: make sure treq->af_specific is initialized
+ - dm: fix mempool NULL pointer race when completing IO
+ - dm: interlock pending dm_io and dm_wait_for_bios_completion
+ - [arm64] PCI: aardvark: Clear all MSIs at setup
+ - [arm64] PCI: aardvark: Fix reading MSI interrupt number
+ - mmc: rtsx: add 74 Clocks in power on flow
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.243
+ - block: drbd: drbd_nl: Make conversion to 'enum drbd_ret_code' explicit
+ - nfp: bpf: silence bitwise vs. logical OR warning
+ - Bluetooth: Fix the creation of hdev->name
+ - ALSA: pcm: Fix races among concurrent hw_params and hw_free calls
+ (CVE-2022-1048)
+ - ALSA: pcm: Fix races among concurrent read/write and buffer changes
+ (CVE-2022-1048)
+ - ALSA: pcm: Fix races among concurrent prepare and hw_params/hw_free calls
+ (CVE-2022-1048)
+ - ALSA: pcm: Fix races among concurrent prealloc proc writes (CVE-2022-1048)
+ - ALSA: pcm: Fix potential AB/BA lock with buffer_mutex and mmap_lock
+ - mm: hugetlb: fix missing cache flush in copy_huge_page_from_user()
+ - mm: userfaultfd: fix missing cache flush in mcopy_atomic_pte() and
+ __mcopy_atomic()
+ - VFS: Fix memory leak caused by concurrently mounting fs with subtype
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.244
+ - batman-adv: Don't skb_split skbuffs with frag_list
+ - hwmon: (tmp401) Add OF device ID table
+ - net: Fix features skip in for_each_netdev_feature()
+ - ipv4: drop dst in multicast routing path
+ - netlink: do not reset transport header in netlink_recvmsg()
+ - mac80211_hwsim: call ieee80211_tx_prepare_skb under RCU protection
+ - [s390x] ctcm: fix variable dereferenced before check
+ - [s390x] ctcm: fix potential memory leak
+ - [s390x] lcs: fix variable dereferenced before check
+ - net/sched: act_pedit: really ensure the skb is writable
+ - net/smc: non blocking recvmsg() return -EAGAIN when no data and
+ signal_pending
+ - net: sfc: ef10: fix memory leak in efx_ef10_mtd_probe()
+ - gfs2: Fix filesystem block deallocation for short writes
+ - hwmon: (f71882fg) Fix negative temperature
+ - ASoC: max98090: Reject invalid values in custom control put()
+ - ASoC: max98090: Generate notifications on changes for custom control
+ - ASoC: ops: Validate input values in snd_soc_put_volsw_range()
+ - tcp: resalt the secret every 10 seconds (CVE-2022-1012)
+ - usb: cdc-wdm: fix reading stuck on device close
+ - USB: serial: pl2303: add device id for HP LM930 Display
+ - USB: serial: qcserial: add support for Sierra Wireless EM7590
+ - USB: serial: option: add Fibocom L610 modem
+ - USB: serial: option: add Fibocom MA510 modem
+ - cgroup/cpuset: Remove cpus_allowed/mems_allowed setup in cpuset_init_smp()
+ - [x86] drm/vmwgfx: Initialize drm_mode_fb_cmd2
+ - ping: fix address binding wrt vrf
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.245
+ - floppy: use a statically allocated error counter (CVE-2022-1652)
+ - Input: add bounds checking to input_set_capability()
+ - drbd: remove usage of list iterator variable after loop
+ - nilfs2: fix lockdep warnings in page operations for btree nodes
+ - nilfs2: fix lockdep warnings during disk space reclamation
+ - [i386] ALSA: wavefront: Proper check of get_user() error
+ - perf: Fix sys_perf_event_open() race against self (CVE-2022-1729)
+ - Fix double fget() in vhost_net_set_backend()
+ - PCI/PM: Avoid putting Elo i2 PCIe Ports in D3cold
+ - [arm64] crypto: qcom-rng - fix infinite loop on requests not multiple of
+ WORD_SZ
+ - drm/dp/mst: fix a possible memory leak in fetch_monitor_name()
+ - mmc: core: Cleanup BKOPS support
+ - mmc: core: Specify timeouts for BKOPS and CACHE_FLUSH for eMMC
+ - mmc: block: Use generic_cmd6_time when modifying INAND_CMD38_ARG_EXT_CSD
+ - mmc: core: Default to generic_cmd6_time as timeout in __mmc_switch()
+ - [arm64] net: macb: Increment rx bd head after allocating skb and buffer
+ - net/sched: act_pedit: sanitize shift argument before usage
+ - [x86] net: vmxnet3: fix possible use-after-free bugs in
+ vmxnet3_rq_alloc_rx_buf()
+ - [x86] net: vmxnet3: fix possible NULL pointer dereference in
+ vmxnet3_rq_cleanup()
+ - net/qla3xxx: Fix a test in ql_reset_work()
+ - net/mlx5e: Properly block LRO when XDP is enabled
+ - [armhf] 9196/1: spectre-bhb: enable for Cortex-A15
+ - [armel,armhf] 9197/1: spectre-bhb: fix loop8 sequence for Thumb2
+ - igb: skip phy status check where unavailable
+ - net: bridge: Clear offload_fwd_mark when passing frame up bridge
+ interface.
+ - [arm*] gpio: mvebu/pwm: Refuse requests with inverted polarity
+ - scsi: qla2xxx: Fix missed DMA unmap for aborted commands
+ - mac80211: fix rx reordering with non explicit / psmp ack policy
+ - ethernet: tulip: fix missing pci_disable_device() on error in
+ tulip_init_one()
+ - [amd64] net: atlantic: verify hw_head_ lies within TX buffer ring
+ - swiotlb: fix info leak with DMA_FROM_DEVICE (CVE-2022-0854)
+ - Reinstate some of "swiotlb: rework "fix info leak with DMA_FROM_DEVICE""
+ (CVE-2022-0854)
+ - afs: Fix afs_getattr() to refetch file status if callback break occurred
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.246
+ - [x86] pci/xen: Disable PCI/MSI[-X] masking for XEN_HVM guests
+ (Closes: #1006346)
+ - staging: rtl8723bs: prevent ->Ssid overflow in rtw_wx_set_scan()
+ - tcp: change source port randomizarion at connect() time
+ - secure_seq: use the 64 bits of the siphash for port offset calculation
+ (CVE-2022-1012)
+ - ACPI: sysfs: Make sparse happy about address space in use
+ - ACPI: sysfs: Fix BERT error region memory mapping
+ - net: af_key: check encryption module availability consistency
+ - [x86] i2c: ismt: Provide a DMA buffer for Interrupt Cause Logging
+ - [arm64] drivers: i2c: thunderx: Allow driver to work with ACPI defined
+ TWSI controllers
+ - assoc_array: Fix BUG_ON during garbage collect
+ - cfg80211: set custom regdomain after wiphy registration
+ - [x86] drm/i915: Fix -Wstringop-overflow warning in call to
+ intel_read_wm_latency()
+ - block-map: add __GFP_ZERO flag for alloc_page in function bio_copy_kern
+ (CVE-2022-0494)
+ - exec: Force single empty string when argv is empty
+ - netfilter: conntrack: re-fetch conntrack after insertion
+ - zsmalloc: fix races between asynchronous zspage free and page migration
+ - dm integrity: fix error code in dm_integrity_ctr()
+ - dm crypt: make printing of the key constant-time
+ - dm stats: add cond_resched when looping over entries
+ - dm verity: set DM_TARGET_IMMUTABLE feature flag
+ - HID: multitouch: Add support for Google Whiskers Touchpad
+ - tpm: Fix buffer access in tpm2_get_tpm_pt()
+ - NFSD: Fix possible sleep during nfsd4_release_lockowner()
+ - bpf: Enlarge offset check value to INT_MAX in bpf_skb_{load,store}_bytes
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.247
+ - ALSA: hda/realtek - Fix microphone noise on ASUS TUF B550M-PLUS
+ - USB: serial: option: add Quectel BG95 modem
+ - USB: new quirk for Dell Gen 2 devices
+ - ptrace: Reimplement PTRACE_KILL by always sending SIGKILL
+ - btrfs: add "0x" prefix for unsupported optional features
+ - btrfs: repair super block num_devices automatically
+ - drm/virtio: fix NULL pointer dereference in virtio_gpu_conn_get_modes
+ - mwifiex: add mutex lock for call in mwifiex_dfs_chan_sw_work_queue
+ - b43legacy: Fix assigning negative value to unsigned variable
+ - b43: Fix assigning negative value to unsigned variable
+ - ipw2x00: Fix potential NULL dereference in libipw_xmit()
+ - ipv6: fix locking issues with loops over idev->addr_list
+ - fbcon: Consistently protect deferred_takeover with console_lock()
+ - ACPICA: Avoid cache flush inside virtual machines
+ - ALSA: jack: Access input_dev under mutex
+ - drm/amd/pm: fix double free in si_parse_power_table()
+ - ath9k: fix QCA9561 PA bias level
+ - [arm64] media: venus: hfi: avoid null dereference in deinit
+ - media: pci: cx23885: Fix the error handling in cx23885_initdev()
+ - md/bitmap: don't set sb values if can't pass sanity check
+ - scsi: megaraid: Fix error check return value of register_chrdev()
+ - drm/plane: Move range check for format_count earlier
+ - drm/amd/pm: fix the compile warning
+ - ipv6: Don't send rs packets to the interface of ARPHRD_TUNNEL
+ - ASoC: dapm: Don't fold register value changes into notifications
+ - ipmi:ssif: Check for NULL msg when handling events and messages
+ - rtlwifi: Use pr_warn instead of WARN_ONCE
+ - media: cec-adap.c: fix is_configuring state
+ - nvme-pci: fix a NULL pointer dereference in nvme_alloc_admin_tags
+ - ASoC: rt5645: Fix errorenous cleanup order
+ - net: phy: micrel: Allow probing without .driver_data
+ - rxrpc: Return an error to sendmsg if call failed
+ - [arm64] PM / devfreq: rk3399_dmc: Disable edev on remove()
+ - fs: jfs: fix possible NULL pointer dereference in dbFree()
+ - fat: add ratelimit to fat*_ent_bread()
+ - [armhf] dts: exynos: add atmel,24c128 fallback to Samsung EEPROM
+ - PCI: Avoid pci_dev_lock() AB/BA deadlock with sriov_numvfs_store()
+ - tracing: incorrect isolate_mote_t cast in mm_vmscan_lru_isolate
+ - [powerpc*] xics: fix refcount leak in icp_opal_init()
+ - [amd64] RDMA/hfi1: Prevent panic when SDMA is disabled
+ - drm: fix EDID struct for old ARM OABI format
+ - ath9k: fix ar9003_get_eepmisc
+ - drm/edid: fix invalid EDID extension block filtering
+ - [arm64] drm/bridge: adv7511: clean up CEC adapter when probe fails
+ - [x86] delay: Fix the wrong asm constraint in delay_loop()
+ - [arm*] drm/vc4: txp: Don't set TXP_VSTART_AT_EOF
+ - [arm*] drm/vc4: txp: Force alpha to be 0xff if it's disabled
+ - nl80211: show SSID for P2P_GO interfaces
+ - [armhf] spi: spi-ti-qspi: Fix return value handling of
+ wait_for_completion_timeout
+ - NFC: NULL out the dev->rfkill to prevent UAF
+ - efi: Add missing prototype for efi_capsule_setup_info
+ - HID: hid-led: fix maximum brightness for Dream Cheeky
+ - HID: elan: Fix potential double free in elan_input_configured
+ - ath9k_htc: fix potential out of bounds access with invalid
+ rxstatus->rs_keyix
+ - inotify: show inotify mask flags in proc fdinfo
+ - fsnotify: fix wrong lockdep annotations
+ - scsi: ufs: core: Exclude UECxx from SFR dump list
+ - [x86] pm: Fix false positive kmemleak report in msr_build_context()
+ - [x86] speculation: Add missing prototype for unpriv_ebpf_notify()
+ - [arm64] drm/msm/disp/dpu1: set vbif hw config to NULL to avoid use after
+ memory free during pm runtime resume
+ - [arm64] drm/msm/dsi: fix error checks and return values for DSI xmit
+ functions
+ - [arm64] drm/msm/hdmi: check return value after calling
+ platform_get_resource_byname()
+ - [arm64,armhf] drm/rockchip: vop: fix possible null-ptr-deref in vop_bind()
+ - [x86] Fix return value of __setup handlers
+ - [x86] mm: Cleanup the control_va_addr_alignment() __setup handler
+ - [arm64] drm/msm/mdp5: Return error code in mdp5_pipe_release when deadlock
+ is detected
+ - [arm64] drm/msm/mdp5: Return error code in mdp5_mixer_release when
+ deadlock is detected
+ - [arm64] drm/msm: return an error pointer in msm_gem_prime_get_sg_table()
+ - media: uvcvideo: Fix missing check to determine if element is found in
+ list
+ - [x86] perf/amd/ibs: Use interrupt regs ip for stack unwinding
+ - [armhf] regulator: pfuze100: Fix refcount leak in
+ pfuze_parse_regulators_dt
+ - scripts/faddr2line: Fix overlapping text section failures
+ - media: pvrusb2: fix array-index-out-of-bounds in pvr2_i2c_core_init
+ - Bluetooth: fix dangling sco_conn and use-after-free in sco_sock_timeout
+ - sctp: read sk->sk_bound_dev_if once in sctp_rcv()
+ - ext4: reject the 'commit' option on ext2 filesystems
+ - [arm64] drm: msm: fix possible memory leak in mdp5_crtc_cursor_set()
+ - rxrpc: Fix listen() setting the bar too high for the prealloc rings
+ - rxrpc: Don't try to resend the request if we're receiving the reply
+ - [armel,armhf] dts: bcm2835-rpi-zero-w: Fix GPIO line name for Wifi/BT
+ - [armel,armhf] dts: bcm2835-rpi-b: Fix GPIO line names
+ - [arm*] crypto: marvell/cesa - ECB does not IV
+ - [arm64] pinctrl: mvebu: Fix irq_of_parse_and_map() return value
+ - drivers/base/node.c: fix compaction sysfs file leak
+ - dax: fix cache flush on PMD-mapped pages
+ - [powerpc*] idle: Fix return value of __setup() handler
+ - proc: fix dentry/inode overinstantiating under /proc/${pid}/net
+ - tty: fix deadlock caused by calling printk() under tty_port->lock
+ - [amd64] RDMA/hfi1: Prevent use of lock before it is initialized
+ - f2fs: fix dereference of stale list iterator after loop body
+ - NFSv4/pNFS: Do not fail I/O when we fail to allocate the pNFS layout
+ - [arm64,armhf] video: fbdev: clcdfb: Fix refcount leak in
+ clcdfb_of_vram_setup
+ - [amd64] iommu/amd: Increase timeout waiting for GA log enablement
+ - f2fs: fix deadloop in foreground GC
+ - wifi: mac80211: fix use-after-free in chanctx code
+ - iwlwifi: mvm: fix assert 1F04 upon reconfig
+ - fs-writeback: writeback_sb_inodes:Recalculate 'wrote' according skipped
+ pages
+ - netfilter: nf_tables: disallow non-stateful expression in sets earlier
+ (CVE-2022-32250)
+ - ext4: fix use-after-free in ext4_rename_dir_prepare
+ - ext4: fix bug_on in ext4_writepages
+ - ext4: verify dir block before splitting it (CVE-2022-1184)
+ - ext4: avoid cycles in directory h-tree (CVE-2022-1184)
+ - tracing: Fix potential double free in create_var_ref()
+ - PCI/PM: Fix bridge_d3_blacklist[] Elo i2 overwrite of Gigabyte X299
+ - [arm64] PCI: qcom: Fix runtime PM imbalance on probe errors
+ - [arm64] PCI: qcom: Fix unbalanced PHY init on probe errors
+ - dlm: fix plock invalid read
+ - dlm: fix missing lkb refcount handling
+ - ocfs2: dlmfs: fix error handling of user_dlm_destroy_lock
+ - scsi: dc395x: Fix a missing check on list iterator
+ - drm/amdgpu/cs: make commands with 0 chunks illegal behaviour.
+ - drm/nouveau/clk: Fix an incorrect NULL check on list iterator
+ - [arm64,armhf] drm/bridge: analogix_dp: Grab runtime PM reference for
+ DP-AUX
+ - md: fix an incorrect NULL check in does_sb_need_changing
+ - md: fix an incorrect NULL check in md_reload_sb
+ - [amd64] RDMA/hfi1: Fix potential integer multiplication overflow errors
+ - [armhf] irqchip/armada-370-xp: Do not touch Performance Counter Overflow
+ on A375, A38x, A39x
+ - mac80211: upgrade passive scan to active scan on DFS channels after beacon
+ rx
+ - hugetlb: fix huge_pmd_unshare address update
+ - rtl818x: Prevent using not initialized queues
+ - ASoC: rt5514: Fix event generation for "DSP Voice Wake Up" control
+ - carl9170: tx: fix an incorrect use of list iterator
+ - [x86] gma500: fix an incorrect NULL check on list iterator
+ - [arm64] phy: qcom-qmp: fix struct clk leak on probe errors
+ - blk-iolatency: Fix inflight count imbalances and IO hangs on offline
+ - [arm64] phy: qcom-qmp: fix reset-controller leak on probe errors
+ - RDMA/rxe: Generate a completion for unsupported/invalid opcode
+ - md: bcache: check the return value of kzalloc() in
+ detached_dev_do_request()
+ - usb: usbip: fix a refcount leak in stub_probe()
+ - usb: usbip: add missing device lock on tweak configuration cmd
+ - USB: storage: karma: fix rio_karma_init return
+ - [armhf] usb: musb: Fix missing of_node_put() in omap2430_probe
+ - [arm64] usb: dwc3: pci: Fix pm_runtime_get_sync() error checking
+ - [arm64,armhf] soc: rockchip: Fix refcount leak in rockchip_grf_init
+ - [arm64,armhf] serial: meson: acquire port->lock in startup()
+ - [x86] serial: 8250_fintek: Check SER_RS485_RTS_* only with RS485
+ - firmware: dmi-sysfs: Fix memory leak in dmi_sysfs_register_handle
+ - [armhf] bus: ti-sysc: Fix warnings for unbind for serial
+ - [s390x] crypto: fix scatterwalk_unmap() callers in AES-GCM
+ - [arm64,armhf] net: dsa: mv88e6xxx: Fix refcount leak in
+ mv88e6xxx_mdios_register
+ - jffs2: fix memory leak in jffs2_do_fill_super
+ - ubi: ubi_create_volume: Fix use-after-free when volume creation failed
+ - nfp: only report pause frame configuration for physical device
+ - net/mlx5e: Update netdev features after changing XDP state
+ - tcp: tcp_rtx_synack() can be called from process context
+ - afs: Fix infinite loop found by xfstest generic/676
+ - tipc: check attribute length for bearer name
+ - [mips*] cpc: Fix refcount leak in mips_cpc_default_phys_base
+ - tracing: Fix sleeping function called from invalid context on RT kernel
+ - tracing: Avoid adding tracer option before update_tracer_options
+ - NFSv4: Don't hold the layoutget locks across multiple RPC calls
+ - xprtrdma: treat all calls not a bcall when bc_serv is NULL
+ - [mips*/octeon] ata: pata_octeon_cf: Fix refcount leak in octeon_cf_probe
+ - af_unix: Fix a data-race in unix_dgram_peer_wake_me().
+ - [arm64] bpf, arm64: Clear prog->jited_len along prog->jited
+ - net/mlx4_en: Fix wrong return value on ioctl EEPROM query failure
+ - SUNRPC: Fix the calculation of xdr->end in xdr_get_next_encode_buffer()
+ - net: mdio: unexport __init-annotated mdio_bus_init()
+ - net: xfrm: unexport __init-annotated xfrm4_protocol_init()
+ - net: ipv6: unexport __init-annotated seg6_hmac_init()
+ - net/mlx5: Rearm the FW tracer after each tracer event
+ - ip_gre: test csum_start instead of transport header
+ - [x86] tty: synclink_gt: Fix null-pointer-dereference in slgt_clean()
+ - [x86] drivers: staging: rtl8192u: Fix deadlock in ieee80211_beacons_stop()
+ - [x86] drivers: staging: rtl8192e: Fix deadlock in rtllib_beacons_stop()
+ - [mips*] USB: host: isp116x: check return value after calling
+ platform_get_resource()
+ - USB: hcd-pci: Fully suspend across freeze/thaw cycle
+ - [arm*] usb: dwc2: gadget: don't reset gadget's driver->bus
+ - misc: rtsx: set NULL intfdata when probe fails
+ - extcon: Modify extcon device to be created after driver data is set
+ - [arm*] clocksource/drivers/sp804: Avoid error on multiple instances
+ - staging: rtl8712: fix uninit-value in r871xu_drv_init()
+ - [arm64] serial: msm_serial: disable interrupts in __msm_console_write()
+ - kernfs: Separate kernfs_pr_cont_buf and rename_lock.
+ - md: protect md_unregister_thread from reentrancy
+ - ceph: allow ceph.dir.rctime xattr to be updatable
+ - drm/radeon: fix a possible null pointer dereference
+ - nbd: call genl_unregister_family() first in nbd_cleanup()
+ - nbd: fix race between nbd_alloc_config() and module removal
+ - nbd: fix io hung while disconnecting device
+ - nodemask: Fix return values to be unsigned
+ - [amd64] vringh: Fix loop descriptors check in the indirect cases
+ - ALSA: hda/conexant - Fix loopback issue with CX20632
+ - cifs: return errors during session setup during reconnects
+ - ata: libata-transport: fix {dma|pio|xfer}_mode sysfs files
+ - mmc: block: Fix CQE recovery reset success
+ - ixgbe: fix bcast packets Rx on VF after promisc removal
+ - ixgbe: fix unexpected VLAN Rx in promisc mode on VF
+ - Input: bcm5974 - set missing URB_NO_TRANSFER_DMA_MAP urb flag
+ - [powerpc*] 32: Fix overread/overwrite of thread_struct via ptrace
+ (CVE-2022-32981)
+ - md/raid0: Ignore RAID0 layout if the second zone has only one device
+ - mtd: cfi_cmdset_0002: Move and rename
+ chip_check/chip_ready/chip_good_for_write
+ - mtd: cfi_cmdset_0002: Use chip_ready() for write on S29GL064N
+ - tcp: fix tcp_mtup_probe_success vs wrong snd_cwnd
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.248
+ - [x86] cpu: Add Elkhart Lake to Intel family
+ - cpu/speculation: Add prototype for cpu_show_srbds()
+ - [x86] cpu: Add Jasper Lake to Intel family
+ - [x86] cpu: Add Lakefield, Alder Lake and Rocket Lake models to the to
+ Intel CPU family
+ - [x86] cpu: Add another Alder Lake CPU to the Intel family
+ - [x86] Mitigate Processor MMIO Stale Data vulnerabilities
+ (CVE-2022-21123, CVE-2022-21125, CVE-2022-21166):
+ + Documentation: Add documentation for Processor MMIO Stale Data
+ + x86/speculation/mmio: Enumerate Processor MMIO Stale Data bug
+ + x86/speculation: Add a common function for MD_CLEAR mitigation update
+ + x86/speculation/mmio: Add mitigation for Processor MMIO Stale Data
+ + x86/bugs: Group MDS, TAA & Processor MMIO Stale Data mitigations
+ + x86/speculation/mmio: Enable CPU Fill buffer clearing on idle
+ + x86/speculation/mmio: Add sysfs reporting for Processor MMIO Stale Data
+ + x86/speculation/srbds: Update SRBDS mitigation selection
+ + x86/speculation/mmio: Reuse SRBDS mitigation for SBDS
+ + KVM: x86/speculation: Disable Fill buffer clear within guests
+ + x86/speculation/mmio: Print SMT warning
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.249
+ - 9p: missing chunk of "fs/9p: Don't update file type when updating file
+ attributes"
+ - crypto: blake2s - generic C library implementation and selftest
+ - lib/crypto: blake2s: move hmac construction into wireguard
+ - lib/crypto: sha1: re-roll loops to reduce code size
+ - random: Backport from 5.19, fixing several weaknesses and
+ peformance issues, including:
+ + fdt: add support for rng-seed
+ + random: add GRND_INSECURE to return best-effort non-cryptographic bytes
+ + random: ignore GRND_RANDOM in getentropy(2)
+ + random: make /dev/random be almost like /dev/urandom
+ + random: use BLAKE2s instead of SHA1 in extraction
+ + random: avoid superfluous call to RDRAND in CRNG extraction
+ + random: continually use hwgenerator randomness
+ + random: use computational hash for entropy extraction
+ + random: use RDSEED instead of RDRAND in entropy extraction
+ + random: do not xor RDRAND when writing into /dev/random
+ + random: absorb fast pool into input pool after fast load
+ + random: use hash function for crng_slow_load()
+ + random: zero buffer after reading entropy from userspace
+ + random: defer fast pool mixing to worker
+ + random: do crng pre-init loading in worker rather than irq
+ + random: don't let 644 read-only sysctls be written to
+ + random: use SipHash as interrupt entropy accumulator
+ + random: reseed more often immediately after booting
+ + random: check for signal and try earlier when generating entropy
+ + random: treat bootloader trust toggle the same way as cpu trust toggle
+ + random: do not allow user to keep crng key around on stack
+ + random: check for signal_pending() outside of need_resched() check
+ + random: check for signals every PAGE_SIZE chunk of /dev/[u]random
+ + init: call time_init() before rand_initialize()
+ + [ppc64el,s390x] define get_cycles macro for arch-override
+ + timekeeping: Add raw clock fallback for random_get_entropy()
+ + [armel,armhf,mips*] use fallback for random_get_entropy() instead of
+ just c0 random
+ + [x86] tsc: Use fallback for random_get_entropy() instead of zero
+ + random: do not use batches when !crng_ready()
+ + random: do not pretend to handle premature next security model
+ + random: do not use input pool from hard IRQs
+ + random: avoid initializing twice in credit race
+ + random: wire up fops->splice_{read,write}_iter()
+ + random: credit cpu and bootloader seeds by default
+ - crypto: drbg - add FIPS 140-2 CTRNG for noise source
+ - crypto: drbg - always seeded with SP800-90B compliant noise source
+ - crypto: drbg - prepare for more fine-grained tracking of seeding state
+ - crypto: drbg - track whether DRBG was seeded with !rng_is_initialized()
+ - crypto: drbg - move dynamic ->reseed_threshold adjustments to
+ __drbg_seed()
+ - crypto: drbg - always try to free Jitter RNG instance
+ - crypto: drbg - make reseeding from get_random_bytes() synchronous
+ - ata: libata-core: fix NULL pointer deref in ata_host_alloc_pinfo()
+ - [armhf] ASoC: es8328: Fix event generation for deemphasis control
+ - [x86] scsi: vmw_pvscsi: Expand vcpuHint to 16 bits
+ - scsi: lpfc: Fix port stuck in bypassed state after LIP in PT2PT topology
+ - scsi: ipr: Fix missing/incorrect resource cleanup in error case
+ - scsi: pmcraid: Fix missing resource cleanup in error case
+ - virtio-mmio: fix missing put_device() when vm_cmdline_parent registration
+ failed
+ - ipv6: Fix signed integer overflow in l2tp_ip6_sendmsg
+ - pNFS: Don't keep retrying if the server replied NFS4ERR_LAYOUTUNAVAILABLE
+ - i40e: Fix adding ADQ filter to TC0
+ - i40e: Fix call trace in setup_tx_descriptors
+ - [arm64] ftrace: fix branch range checks
+ - [arm64,armhf] irqchip/gic-v3: Fix refcount leak in
+ gic_populate_ppi_partitions
+ - [x86] comedi: vmk80xx: fix expression for tx buffer size
+ - USB: serial: option: add support for Cinterion MV31 with new baseline
+ - USB: serial: io_ti: add Agilent E5805A support
+ - [arm*] usb: dwc2: Fix memory leak in dwc2_hcd_init
+ - serial: 8250: Store to lsr_save_flags after lsr read
+ - ext4: fix bug_on ext4_mb_use_inode_pa
+ - ext4: make variable "count" signed
+ - ext4: add reserved GDT blocks check
+ - virtio-pci: Remove wrong address verification in vp_del_vqs()
+ - net: openvswitch: fix misuse of the cached connection on tuple changes
+ - net: openvswitch: fix leak of nested actions
+ - [s390x] mm: use non-quiescing sske for KVM switch to keyed guest
+ - usb: gadget: u_ether: fix regression in setting fixed MAC address
+ (regression in 4.19.223)
+ - xprtrdma: fix incorrect header size calculations
+ - tcp: Improve source port randomisation (CVE-2022-1012, CVE-2022-32296):
+ + tcp: add some entropy in __inet_hash_connect()
+ + tcp: use different parts of the port_offset for index and offset
+ + tcp: add small random increments to the source port
+ + tcp: dynamically allocate the perturb table used by source ports
+ + tcp: increase source port perturb table to 2^16
+ + tcp: drop the hash_32() part from the index calculation
+
+ [ Salvatore Bonaccorso ]
+ * Bump ABI to 21
+ * [rt] Update to 4.19.237-rt107
+ * Refresh "powerpc: Fix -mcpu= options for SPE-only compiler"
+ * [rt] Refresh "buffer_head: Replace bh_uptodate_lock for -rt"
+ * [rt] Update to 4.19.240-rt108
+ * [rt] Update to 4.19.245-rt109
+ * [rt] Update to 4.19.246-rt110:
+ - genirq: Add lost hunk to irq_forced_thread_fn(). (regression in
+ 4.19.184-rt75)
+
+ [ Ben Hutchings ]
+ * [rt] Drop "random: Make it work on rt", since the upstream version is now
+ RT-aware
+ * random: Enable RANDOM_TRUST_BOOTLOADER. This can be reverted using the
+ kernel parameter: random.trust_bootloader=off
+ * [armhf] Enable KERNEL_MODE_NEON (Closes: #922204)
+ * [armel,armhf] crypto: Enable optimised implementations (see #922204):
+ - Enable ARM_CRYPTO
+ - Enable CRYPTO_SHA1_ARM, CRYPTO_SHA256_ARM, CRYPTO_SHA512_ARM,
+ CRYPTO_AES_ARM as modules
+ - [armhf] Enable SHA1_ARM_NEON, CRYPTO_SHA1_ARM_CE, CRYPTO_SHA2_ARM_CE,
+ CRYPTO_AES_ARM_BS, CRYPTO_AES_ARM_CE, CRYPTO_GHASH_ARM_CE,
+ CRYPTO_CRCT10DIF_ARM_CE, CRYPTO_CRC32_ARM_CE, CRYPTO_CHACHA20_NEON
+ as modules
+
+ [ Diederik de Haas ]
+ * net_sched: let qdisc_put() accept NULL pointer (Closes: #1013299)
+
+ -- Ben Hutchings <benh@debian.org> Wed, 29 Jun 2022 21:24:38 +0200
+
+linux (4.19.235-1) buster; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.233
+ - mac80211_hwsim: report NOACK frames in tx_status
+ - mac80211_hwsim: initialize ieee80211_tx_info at hw_scan_work
+ - [arm*] i2c: bcm2835: Avoid clock stretching timeouts
+ - [x86] ASoC: rt5682: do not block workqueue if card is unbound
+ - Input: clear BTN_RIGHT/MIDDLE on buttonpads
+ - cifs: fix double free race when mount fails in cifs_get_root()
+ - net: usb: cdc_mbim: avoid altsetting toggling for Telit FN990
+ - usb: gadget: don't release an existing dev->buf (CVE-2022-24958)
+ - usb: gadget: clear related members when goto fail (CVE-2022-24958)
+ - ata: pata_hpt37x: fix PCI clock detection
+ - [x86] ALSA: intel_hdmi: Fix reference to PCM buffer address
+ - ASoC: ops: Shift tested values in snd_soc_put_volsw() by +min
+ - xfrm: fix MTU regression
+ - netfilter: fix use-after-free in __nf_register_net_hook()
+ - xfrm: fix the if_id check in changelink
+ - xfrm: enforce validity of offload input flags
+ - netfilter: nf_queue: don't assume sk is full socket
+ - netfilter: nf_queue: fix possible use-after-free
+ - batman-adv: Request iflink once in batadv-on-batadv check
+ - batman-adv: Request iflink once in batadv_get_real_netdevice
+ - batman-adv: Don't expect inter-netns unique iflink indices
+ - net: dcb: flush lingering app table entries for unregistered devices
+ - net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error generated by client
+ - net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error cause by server
+ - block: Fix fsync always failed if once failed
+ - PCI: pciehp: Fix infinite loop in IRQ handler upon power fault
+ - xen/netfront: destroy queues before real_num_tx_queues is zeroed
+ - mac80211: fix forwarded mesh frames AC & queue selection
+ - [arm64,armhf] net: stmmac: fix return value of __setup handler
+ - net: arcnet: com20020: Fix null-ptr-deref in com20020pci_probe()
+ - efivars: Respect "block" flag in efivar_entry_set_safe()
+ - can: gs_usb: change active_channels's type from atomic_t to u8
+ - [armel,armhf] 9182/1: mmu: fix returns from early_param() and __setup()
+ functions
+ - net: chelsio: cxgb3: check the return value of pci_find_capability()
+ - nl80211: Handle nla_memdup failures in handle_nan_filter
+ - Input: elan_i2c - move regulator_[en|dis]able() out of
+ elan_[en|dis]able_power()
+ - Input: elan_i2c - fix regulator enable count imbalance after
+ suspend/resume
+ - HID: add mapping for KEY_ALL_APPLICATIONS
+ - memfd: fix F_SEAL_WRITE after shmem huge page allocated
+ - tracing/histogram: Fix sorting on old "cpu" value
+ - btrfs: add missing run of delayed items after unlink during log replay
+ - net: dcb: disable softirqs in dcbnl_flush_dev()
+ - hamradio: fix macro redefine warning
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.234
+ - [arm*] Provide a wrapper for SMCCC 1.1 calls
+ - [arm64,armhf] smccc/psci: add arm_smccc_1_1_get_conduit()
+ - [armhf] report Spectre v2 status through sysfs
+ - [armel,armhf] early traps initialisation
+ - [armel,armhf] use LOADADDR() to get load address of sections
+ - [armel,armhf] Spectre-BHB workaround
+ - [armel,armhf] include unprivileged BPF status in Spectre V2 reporting
+ - [armel,armhf] fix build error when BPF_SYSCALL is disabled
+ - [armel,armhf] fix co-processor register typo
+ - [armel,armhf] Do not use NOCROSSREFS directive with ld.lld
+ - [armhf] fix build warning in proc-v7-bugs.c
+ - xen/xenbus: don't let xenbus_grant_ring() remove grants in error case
+ (CVE-2022-23040, XSA-396)
+ - xen/grant-table: add gnttab_try_end_foreign_access() (CVE-2022-23036,
+ CVE-2022-23038, XSA-396)
+ - xen/blkfront: don't use gnttab_query_foreign_access() for mapped status
+ (CVE-2022-23036, XSA-396)
+ - xen/netfront: don't use gnttab_query_foreign_access() for mapped status
+ (CVE-2022-23037, XSA-396)
+ - xen/scsifront: don't use gnttab_query_foreign_access() for mapped status
+ (CVE-2022-23038, XSA-396)
+ - xen/gntalloc: don't use gnttab_query_foreign_access() (CVE-2022-23039,
+ XSA-396)
+ - xen: remove gnttab_query_foreign_access()
+ - xen/9p: use alloc/free_pages_exact() (CVE-2022-23041, XSA-396)
+ - xen/pvcalls: use alloc/free_pages_exact() (CVE-2022-23041, XSA-396)
+ - xen/gnttab: fix gnttab_end_foreign_access() without page specified
+ (CVE-2022-23041, XSA-396)
+ - xen/netfront: react properly to failing gnttab_end_foreign_access_ref()
+ (CVE-2022-23042, XSA-396)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.235
+ - net: qlogic: check the return value of dma_alloc_coherent() in
+ qed_vf_hw_prepare()
+ - qed: return status of qed_iov_get_link
+ - ax25: Fix NULL pointer dereference in ax25_kill_by_device
+ - net/mlx5: Fix size field in bufferx_reg struct
+ - NFC: port100: fix use-after-free in port100_send_complete
+ - net: phy: DP83822: clear MISR2 register to disable interrupts
+ - sctp: fix kernel-infoleak for SCTP sockets
+ - net-sysfs: add check for netdevice being present to speed_show
+ - Revert "xen-netback: remove 'hotplug-status' once it has served its
+ purpose"
+ - Revert "xen-netback: Check for hotplug-status existence before watching"
+ - tracing: Ensure trace buffer is at least 4096 bytes large
+ - [arm64] net: macb: Fix lost RX packet wakeup race in NAPI receive
+ - virtio: unexport virtio_finalize_features
+ - virtio: acknowledge all features before access
+ - [armel,armhf] fix Thumb2 regression with Spectre BHB
+ - ext4: add check to prevent attempting to resize an fs with sparse_super2
+ - btrfs: unlock newly allocated extent buffer after error (CVE-2021-4149)
+
+ [ Salvatore Bonaccorso ]
+ * [rt] Add new signing key for Daniel Wagner
+ * [rt] Update to 4.19.233-rt105
+ * Bump ABI to 20
+ * sctp: fix the processing for INIT chunk (CVE-2021-3772)
+ * sctp: fix the processing for INIT_ACK chunk (CVE-2021-3772)
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Thu, 17 Mar 2022 20:48:39 +0100
+
+linux (4.19.232-1) buster-security; urgency=high
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.209
+ - ocfs2: drop acl cache for directories too
+ - [arm*] usb: dwc2: gadget: Fix ISOC transfer complete handling for DDMA
+ - [armhf] usb: musb: tusb6010: uninitialized data in
+ tusb_fifo_write_unaligned()
+ - cifs: fix incorrect check for null pointer in header_assemble
+ - [x86] xen/x86: fix PV trap handling on secondary processors
+ - USB: serial: cp210x: add ID for GW Instek GDM-834x Digital Multimeter
+ - USB: cdc-acm: fix minor-number release
+ - Re-enable UAS for LaCie Rugged USB3-FW with fk quirk
+ - USB: serial: mos7840: remove duplicated 0xac24 device ID
+ - USB: serial: option: add Telit LN920 compositions
+ - USB: serial: option: remove duplicate USB device ID
+ - USB: serial: option: add device id for Foxconn T99W265
+ - [arm64] serial: mvebu-uart: fix driver's tx_empty callback
+ - net: hso: fix muxed tty registration
+ - bnxt_en: Fix TX timeout when TX ring size is set to the smallest
+ - net/smc: add missing error check in smc_clc_prfx_set()
+ - net/mlx4_en: Don't allow aRFS for encapsulated packets
+ - scsi: iscsi: Adjust iface sysfs attr detection
+ - [x86] tty: synclink_gt, drop unneeded forward declarations
+ - [x86] tty: synclink_gt: rename a conflicting function name
+ - thermal/core: Potential buffer overflow in
+ thermal_build_list_of_policies()
+ - [arm64,armhf] irqchip/gic-v3-its: Fix potential VPE leak on error
+ - md: fix a lock order reversal in md_alloc
+ - blktrace: Fix uaf in blk_trace access after removing by sysfs
+ - [arm64,armhf] net: stmmac: allow CSR clock of 300MHz
+ - xen/balloon: use a kernel thread instead a workqueue
+ - nvme-multipath: fix ANA state updates when a namespace is not present
+ - qnx4: avoid stringop-overread errors
+ - [arm64] Mark __stack_chk_guard as __ro_after_init
+ - net: 6pack: Fix tx timeout and slot time
+ - [arm64] PCI: aardvark: Fix checking for PIO status
+ - tcp: address problems caused by EDT misshaps
+ - tcp: always set retrans_stamp on recovery
+ - tcp: create a helper to model exponential backoff
+ - tcp: adjust rto_base in retransmits_timed_out()
+ - xen/balloon: fix balloon kthread freezing
+ - tty: Fix out-of-bound vmalloc access in imageblit
+ - cpufreq: schedutil: Use kobject release() method to free sugov_tunables
+ - cpufreq: schedutil: Destroy mutex before kobject_put() frees the memory
+ - mac80211: fix use-after-free in CCMP/GCMP RX
+ - [x86] kvmclock: Move this_cpu_pvti into kvmclock.h
+ - ipvs: check that ip_vs_conn_tab_bits is between 8 and 20
+ - mac80211: Fix ieee80211_amsdu_aggregate frag_tail bug
+ - mac80211: limit injected vht mcs/nss in ieee80211_parse_tx_radiotap
+ - sctp: break out if skb_header_pointer returns NULL in sctp_rcv_ootb
+ - hwmon: (tmp421) Replace S_<PERMS> with octal values
+ - hwmon: (tmp421) report /PVLD condition as fault
+ - hwmon: (tmp421) fix rounding for negative values
+ - e100: fix length calculation in e100_get_regs_len
+ - e100: fix buffer overrun in e100_get_regs
+ - Revert "block, bfq: honor already-setup queue merges"
+ - scsi: csiostor: Add module softdep on cxgb4
+ - af_unix: fix races in sk_peer_pid and sk_peer_cred accesses
+ (CVE-2021-4203)
+ - elf: don't use MAP_FIXED_NOREPLACE for elf interpreter mappings
+ - ext4: fix potential infinite loop in ext4_dx_readdir()
+ - net: udp: annotate data race around udp_sk(sk)->corkflag
+ - [armel,armhf] 9077/1: PLT: Move struct plt_entries definition to header
+ - [armel,armhf] 9078/1: Add warn suppress parameter to arm_gen_branch_link()
+ - [armel,armhf] 9079/1: ftrace: Add MODULE_PLTS support
+ - [armel,armhf] 9098/1: ftrace: MODULE_PLT: Fix build problem without
+ DYNAMIC_FTRACE
+ - [x86] crypto: ccp - fix resource leaks in ccp_run_aes_gcm_cmd()
+ (CVE-2021-3744, CVE-2021-3764)
+ - HID: betop: fix slab-out-of-bounds Write in betop_probe
+ - netfilter: ipset: Fix oversized kvmalloc() calls
+ - HID: usbhid: free raw_report buffers in usbhid_stop
+ - cred: allow get_cred() and put_cred() to be given NULL.
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.210
+ - net: mdio: introduce a shutdown method to mdio device drivers
+ - xen-netback: correct success/error reporting for the SKB-with-fraglist
+ case
+ - scsi: sd: Free scsi_disk device via put_device()
+ - [arm*] usb: dwc2: check return value after calling platform_get_resource()
+ - scsi: ses: Retry failed Send/Receive Diagnostic commands
+ - libata: Add ATA_HORKAGE_NO_NCQ_ON_ATI for Samsung 860 and 870 SSD.
+ - lib/timerqueue: Rely on rbtree semantics for next timer (CVE-2021-20317)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.211
+ - USB: cdc-acm: fix racy tty buffer accesses
+ - USB: cdc-acm: fix break reporting
+ - xen/privcmd: fix error handling in mmap-resource processing
+ - ovl: fix missing negative dentry check in ovl_rename() (CVE-2021-20321)
+ - nfsd4: Handle the NFSv4 READDIR 'dircount' hint being zero
+ - xen/balloon: fix cancelled balloon action
+ - [armhf] dts: omap3430-sdp: Fix NAND device node
+ - [mips,mipsel] bpf, mips: Validate conditional branch offsets
+ (CVE-2021-38300)
+ - [armel,armhf] bpf, arm: Fix register clobbering in div/mod implementation
+ - bpf: Fix integer overflow in prealloc_elems_and_freelist()
+ (CVE-2021-41864)
+ - phy: mdio: fix memory leak
+ - net_sched: fix NULL deref in fifo_set_limit()
+ - [i386] ptp_pch: Load module automatically if ID matches
+ - [armhf] imx6: disable the GIC CPU interface before calling stby-poweroff
+ sequence
+ - net: bridge: use nla_total_size_64bit() in br_get_linkxstats_size()
+ - [arm64,armhf] net: sfp: Fix typo in state machine debug string
+ - netlink: annotate data races around nlk->bound
+ - drm/nouveau/debugfs: fix file release memory leak
+ - rtnetlink: fix if_nlmsg_stats_size() under estimation
+ - i40e: fix endless loop under rtnl
+ - i40e: Fix freeing of uninitialized misc IRQ vector
+ - i2c: acpi: fix resource leak in reconfiguration device addition
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.212
+ - [armhf] net: phy: bcm7xxx: Fixed indirect MMD operations
+ - HID: apple: Fix logical maximum and usage maximum of Magic Keyboard JIS
+ - netfilter: ip6_tables: zero-initialize fragment offset
+ - mac80211: Drop frames from invalid MAC address in ad-hoc mode
+ - net: prevent user from passing illegal stab size
+ - mac80211: check return value of rhashtable_init
+ - scsi: ses: Fix unsigned comparison with less than zero
+ - scsi: virtio_scsi: Fix spelling mistake "Unsupport" -> "Unsupported"
+ - [x86] perf/x86: Reset destroy callback on event init failure
+ - sched: Always inline is_percpu_thread()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.213
+ - ALSA: seq: Fix a potential UAF by wrong private_free call order
+ - ALSA: hda/realtek: Complete partial device name to avoid ambiguity
+ - ALSA: hda/realtek: Add quirk for Clevo X170KM-G
+ - ALSA: hda/realtek - ALC236 headset MIC recording issue
+ - [s390x] fix strrchr() implementation
+ - btrfs: deal with errors when replaying dir entry during log replay
+ - btrfs: deal with errors when adding inode reference during log replay
+ - btrfs: check for error when looking up inode during dir entry replay
+ - [x86] mei: me: add Ice Lake-N device id.
+ - xhci: guard accesses to ep_state in xhci_endpoint_reset()
+ - xhci: Fix command ring pointer corruption while aborting a command
+ - xhci: Enable trust tx length quirk for Fresco FL11 USB controller
+ - cb710: avoid NULL pointer subtraction
+ - [arm64,x86] efi/cper: use stack buffer for error record decoding
+ - efi: Change down_interruptible() in virt_efi_reset_system() to
+ down_trylock()
+ - [armhf] usb: musb: dsps: Fix the probe error path
+ - Input: xpad - add support for another USB ID of Nacon GC-100
+ - USB: serial: qcserial: add EM9191 QDL support
+ - USB: serial: option: add Quectel EC200S-CN module support
+ - USB: serial: option: add Telit LE910Cx composition 0x1204
+ - USB: serial: option: add prod. id for Quectel EG91
+ - virtio: write back F_VERSION_1 before validate
+ - nvmem: Fix shift-out-of-bound (UBSAN) with byte size cells
+ - sctp: account stream padding length for reconf chunk (CVE-2022-0322)
+ - ethernet: s2io: fix setting mac address during resume
+ - nfc: fix error handling of nfc_proto_register()
+ - NFC: digital: fix possible memory leak in digital_tg_listen_mdaa()
+ - NFC: digital: fix possible memory leak in digital_in_send_sdd_req()
+ - [i386] pata_legacy: fix a couple uninitialized variable bugs
+ - [arm64] drm/msm: Fix null pointer dereference on pointer edp
+ - [arm64] drm/msm/dsi: Fix an error code in msm_dsi_modeset_init()
+ - [arm64] drm/msm/dsi: fix off by one in dsi_bus_clk_enable error handling
+ - [arm64] acpi/arm64: fix next_platform_timer() section mismatch error
+ - mqprio: Correct stats in mqprio_dump_class_stats().
+ - qed: Fix missing error code in qed_slowpath_start()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.214
+ - NFSD: Keep existing listeners on portlist error
+ - netfilter: ipvs: make global sysctl readonly in non-init netns
+ - [arm64] net: hns3: add limit ets dwrr bandwidth cannot be 0
+ - [arm64] net: hns3: disable sriov before unload hclge layer
+ - can: peak_usb: pcan_usb_fd_decode_status(): fix back to ERROR_ACTIVE state
+ notification
+ - can: peak_pci: peak_pci_remove(): fix UAF
+ - ocfs2: fix data corruption after conversion from inline format
+ - ocfs2: mount fails with buffer overflow in strlen
+ - vfs: check fd has read access in kernel_read_file_from_fd()
+ (CVE-2022-0644)
+ - ALSA: usb-audio: Provide quirk for Sennheiser GSP670 Headset
+ - ALSA: hda/realtek: Add quirk for Clevo PC50HS
+ - ASoC: DAPM: Fix missing kctl change notifications
+ - mm, slub: fix mismatch between reconstructed freelist depth and cnt
+ - nfc: nci: fix the UAF of rf_conn_info object (CVE-2021-3760)
+ - isdn: cpai: check ctr->cnr to avoid array index out of bound
+ (CVE-2021-43389)
+ - btrfs: deal with errors when checking if a dir entry exists during log
+ replay
+ - [arm64,armhf] net: stmmac: add support for dwmac 3.40a
+ - isdn: mISDN: Fix sleeping function called from invalid context
+ - ALSA: hda: avoid write to STATESTS if controller is in reset
+ - scsi: core: Fix shost->cmd_per_lun calculation in scsi_add_host_with_dma()
+ - net: mdiobus: Fix memory leak in __mdiobus_register
+ - tracing: Have all levels of checks prevent recursion
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.215
+ - [armel,armhf] 9139/1: kprobes: fix arch_init_kprobes() prototype
+ - [powerpc*] bpf: Fix BPF_MOD when imm == 1
+ - [arm64] Avoid premature usercopy failure
+ - usbnet: sanity check for maxpacket
+ - usbnet: fix error return code in usbnet_probe()
+ - ata: sata_mv: Fix the error handling of mv_chip_id()
+ - nfc: port100: fix using -ERRNO as command type mask
+ - Revert "net: mdiobus: Fix memory leak in __mdiobus_register"
+ - ipv4: use siphash instead of Jenkins in fnhe_hashfun() (CVE-2021-20322)
+ - ipv6: use siphash in rt6_exception_hash() (CVE-2021-20322)
+ - ipv6: make exception cache less predictible (CVE-2021-20322)
+ - mmc: vub300: fix control-message timeouts
+ - mmc: cqhci: clear HALT state after CQE enable
+ - [armhf] mmc: dw_mmc: exynos: fix the finding clock sample value
+ - mmc: sdhci: Map more voltage level to SDHCI_POWER_330
+ - [armhf] mmc: sdhci-esdhc-imx: clear the buffer_read_ready to reset
+ standard tuning circuit
+ - net: lan78xx: fix division by zero in send path
+ - RDMA/mlx5: Set user priority for DCT
+ - [arm64] dts: allwinner: h5: NanoPI Neo 2: Fix ethernet node
+ - regmap: Fix possible double-free in regcache_rbtree_exit()
+ - net: batman-adv: fix error handling
+ - net: Prevent infinite while loop in skb_tx_hash()
+ - net: ethernet: microchip: lan743x: Fix driver crash when lan743x_pm_resume
+ fails
+ - net: ethernet: microchip: lan743x: Fix dma allocation failure by using
+ dma_set_mask_and_coherent
+ - sctp: use init_tag from inithdr for ABORT chunk (CVE-2021-3772)
+ - sctp: fix the processing for COOKIE_ECHO chunk (CVE-2021-3772)
+ - sctp: add vtag check in sctp_sf_violation (CVE-2021-3772)
+ - sctp: add vtag check in sctp_sf_do_8_5_1_E_sa (CVE-2021-3772)
+ - sctp: add vtag check in sctp_sf_ootb (CVE-2021-3772)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.216
+ - scsi: core: Put LLD module refcnt after SCSI device is released
+ - media: firewire: firedtv-avc: fix a buffer overflow in avc_ca_pmt()
+ (CVE-2021-42739)
+ - IB/qib: Use struct_size() helper
+ - IB/qib: Protect from buffer overflow in struct qib_user_sdma_pkt fields
+ - sfc: Fix reading non-legacy supported link modes
+ - arch: pgtable: define MAX_POSSIBLE_PHYSMEM_BITS where needed
+ - [armel,armhf] 9120/1: Revert "amba: make use of -1 IRQs warn"
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.217
+ - [x86] Revert "x86/kvm: fix vcpu-id indexed array sizes"
+ - usb: ehci: handshake CMD_RUN instead of STS_HALT
+ - [arm64,armhf] usb: musb: Balance list entry in musb_gadget_queue
+ - usb-storage: Add compatibility quirk flags for iODD 2531/2541
+ - printk/console: Allow to disable console output by using console="" or
+ console=null
+ - isofs: Fix out of bound access for corrupted isofs image
+ - [x86] comedi: dt9812: fix DMA buffers on stack
+ - [x86] comedi: ni_usb6501: fix NULL-deref in command paths
+ - [x86] comedi: vmk80xx: fix transfer-buffer overflows
+ - [x86] comedi: vmk80xx: fix bulk-buffer overflow
+ - [x86] comedi: vmk80xx: fix bulk and interrupt message timeouts
+ - staging: r8712u: fix control-message timeout
+ - [x86] staging: rtl8192u: fix control-message timeouts
+ - rsi: fix control-message timeout
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.218
+ - xhci: Fix USB 3.1 enumeration issues by increasing roothub power-on-good
+ delay
+ - binder: use euid from cred instead of using task
+ - binder: use cred instead of task for selinux checks
+ - Input: elantench - fix misreporting trackpoint coordinates
+ (Closes: #989285)
+ - libata: fix read log timeout value
+ - ocfs2: fix data corruption on truncate
+ - [arm64,armhf] mmc: dw_mmc: Dont wait for DRTO on Write RSP error
+ - tpm: Check for integer overflow in tpm2_map_response_body()
+ - [x86] media: ite-cir: IR receiver stop working after receive overflow
+ - media: ir-kbd-i2c: improve responsiveness of hauppauge zilog receivers
+ (Closes: #994050)
+ - ALSA: hda/realtek: Add quirk for Clevo PC70HS
+ - ALSA: ua101: fix division by zero at probe
+ - ALSA: 6fire: fix control and bulk message timeouts
+ - ALSA: line6: fix control and interrupt message timeouts
+ - ALSA: usb-audio: Add registration quirk for JBL Quantum 400
+ - ALSA: synth: missing check for possible NULL after the call to kstrdup
+ - ALSA: timer: Fix use-after-free problem
+ - ALSA: timer: Unconditionally unlink slave instances, too
+ - [x86] irq: Ensure PI wakeup handler is unregistered before module unload
+ - [arm64] cavium: Return negative value when pci_alloc_irq_vectors() fails
+ - scsi: qla2xxx: Fix unmap of already freed sgl
+ - [arm64] cavium: Fix return values of the probe function
+ - sfc: Don't use netif_info before net_device setup
+ - [x86] hyperv/vmbus: include linux/bitops.h
+ - drm: panel-orientation-quirks: Add quirk for Aya Neo 2021
+ - bpf: Prevent increasing bpf_jit_limit above max
+ - xen/netfront: stop tx queues during live migration
+ - [armhf] spi: spl022: fix Microwire full duplex mode
+ - [armhf] watchdog: Fix OMAP watchdog early handling
+ - [x86] vmxnet3: do not stop tx queues after netif_device_detach()
+ - btrfs: clear MISSING device status bit in btrfs_close_one_device
+ - btrfs: fix lost error handling when replaying directory deletes
+ - btrfs: call btrfs_check_rw_degradable only if there is a missing device
+ - [armhf] regulator: s5m8767: do not use reset value as DVS voltage if GPIO
+ DVS is disabled
+ - [armhf] regulator: dt-bindings: samsung,s5m8767: correct
+ s5m8767,pmic-buck-default-dvs-idx property
+ - EDAC/sb_edac: Fix top-of-high-memory value for Broadwell/Haswell
+ - [x86] mwifiex: fix division by zero in fw download path
+ - ath6kl: fix division by zero in send path
+ - ath6kl: fix control-message timeout
+ - ath10k: fix control-message timeout
+ - ath10k: fix division by zero in send path
+ - PCI: Mark Atheros QCA6174 to avoid bus reset
+ - rtl8187: fix control-message timeouts
+ - [arm64] wcn36xx: Fix HT40 capability for 2Ghz band
+ - mwifiex: Read a PCI register after writing the TX ring write pointer
+ - libata: fix checking of DMA state
+ - [arm64] wcn36xx: handle connection loss indication
+ - rsi: fix occasional initialisation failure with BT coex
+ - rsi: fix key enabled check causing unwanted encryption for vap_id > 0
+ - rsi: fix rate mask set leading to P2P failure
+ - rsi: Fix module dev_oper_mode parameter description
+ - RDMA/qedr: Fix NULL deref for query_qp on the GSI QP
+ - signal: Remove the bogus sigkill_pending in ptrace_stop
+ - [mips*] signal/mips: Update (_save|_restore)_fp_context to fail with
+ -EFAULT
+ - [x86] power: supply: max17042_battery: Prevent int underflow in
+ set_soc_threshold
+ - [x86] power: supply: max17042_battery: use VFSOC for capacity when no rsns
+ - serial: core: Fix initializing and restoring termios speed
+ - ALSA: mixer: oss: Fix racy access to slots
+ - ALSA: mixer: fix deadlock in snd_mixer_oss_set_volume
+ - xen/balloon: add late_initcall_sync() for initial ballooning done
+ - [arm64] PCI: aardvark: Do not clear status bits of masked interrupts
+ - [arm64] PCI: aardvark: Do not unmask unused interrupts
+ - [arm64] PCI: aardvark: Fix return value of MSI domain .alloc() method
+ - [arm64] PCI: aardvark: Read all 16-bits from PCIE_MSI_PAYLOAD_REG
+ - quota: check block number when reading the block in quota file
+ - quota: correct error number in free_dqentry()
+ - pinctrl: core: fix possible memory leak in pinctrl_enable()
+ - iio: dac: ad5446: Fix ad5622_write() return value
+ - USB: serial: keyspan: fix memleak on probe errors
+ - USB: iowarrior: fix control-message timeouts
+ - drm: panel-orientation-quirks: Add quirk for KD Kurio Smart C15200 2-in-1
+ - Bluetooth: sco: Fix lock_sock() blockage by memcpy_from_msg()
+ (CVE-2021-3640)
+ - Bluetooth: fix use-after-free error in lock_sock_nested() (CVE-2021-3752)
+ - [x86] platform/x86: wmi: do not fail if disabling fails
+ - locking/lockdep: Avoid RCU-induced noinstr fail
+ - net: sched: update default qdisc visibility after Tx queue cnt changes
+ - [x86] Increase exception stack sizes
+ - mwifiex: Run SET_BSS_MODE when changing from P2P to STATION vif-type
+ - mwifiex: Properly initialize private structure on interface type changes
+ - media: netup_unidvb: handle interrupt properly according to the firmware
+ - media: uvcvideo: Set capability in s_param
+ - media: uvcvideo: Return -EIO for control errors
+ - media: mceusb: return without resubmitting URB in case of -EPROTO error.
+ - ACPICA: Avoid evaluating methods too early during system resume
+ - media: usb: dvd-usb: fix uninit-value bug in dibusb_read_eeprom_byte()
+ - tracefs: Have tracefs directories not set OTH permission bits by default
+ - ath: dfs_pattern_detector: Fix possible null-pointer dereference in
+ channel_detector_create()
+ - [x86] ACPI: battery: Accept charges over the design capacity as full
+ - memstick: r592: Fix a UAF bug when removing the driver
+ - lib/xz: Avoid overlapping memcpy() with invalid input with in-place
+ decompression
+ - lib/xz: Validate the value before assigning it to an enum variable
+ - workqueue: make sysfs of unbound kworker cpumask more clever
+ - mwl8k: Fix use-after-free in mwl8k_fw_state_machine()
+ - PM: hibernate: Get block device exclusively in swsusp_check()
+ - iwlwifi: mvm: disable RX-diversity in powersave
+ - gre/sit: Don't generate link-local addr if addr_gen_mode is
+ IN6_ADDR_GEN_MODE_NONE
+ - [x86] hyperv: Protect set_hv_tscchange_cb() against getting preempted
+ - task_stack: Fix end_of_stack() for architectures with upwards-growing
+ stack
+ - Bluetooth: fix init and cleanup of sco_conn.timeout_work
+ - cgroup: Make rebind_subsystems() disable v2 controllers all at once
+ - drm/amdgpu: fix warning for overflow check
+ - media: em28xx: add missing em28xx_close_extension
+ - media: dvb-usb: fix ununit-value in az6027_rc_query
+ - media: si470x: Avoid card name truncation
+ - media: cx23885: Fix snd_card_free call on null card pointer
+ - cpuidle: Fix kobject memory leaks in error paths
+ - media: em28xx: Don't use ops->suspend if it is NULL
+ - ath9k: Fix potential interrupt storm on queue reset
+ - [x86] crypto: qat - detect PFVF collision after ACK
+ - [x86] crypto: qat - disregard spurious PFVF interrupts
+ - b43legacy: fix a lower bounds test
+ - b43: fix a lower bounds test
+ - [armhf] mmc: sdhci-omap: Fix NULL pointer exception if regulator is not
+ configured
+ - memstick: jmb38x_ms: use appropriate free function in
+ jmb38x_ms_alloc_host()
+ - hwmon: Fix possible memleak in __hwmon_device_register()
+ - ath10k: fix max antenna gain unit
+ - [arm64] drm/msm: uninitialized variable in msm_gem_import()
+ - net: stream: don't purge sk_error_queue in sk_stream_kill_queues()
+ - [x86] platform/x86: thinkpad_acpi: Fix bitwise vs. logical warning
+ - rsi: stop thread firstly in rsi_91x_init() error handling
+ - mwifiex: Send DELBA requests according to spec
+ - phy: micrel: ksz8041nl: do not use power down mode
+ - nvme-rdma: fix error code in nvme_rdma_setup_ctrl
+ - PM: hibernate: fix sparse warnings
+ - [arm64] drm/msm: Fix potential NULL dereference in DPU SSPP
+ - [s390x] gmap: don't unconditionally call pte_unmap_unlock() in
+ __gmap_zap()
+ - tcp: don't free a FIN sk_buff in tcp_remove_empty_skb()
+ - [s390x] KVM: s390: Fix handle_sske page fault handling
+ - libertas_tf: Fix possible memory leak in probe and disconnect
+ - libertas: Fix possible memory leak in probe and disconnect
+ - [arm64] wcn36xx: add proper DMA memory barriers in rx path
+ - [amd64,arm64] net: amd-xgbe: Toggle PLL settings during rate change
+ - [arm64,armhf] net: phylink: avoid mvneta warning when setting pause
+ parameters
+ - crypto: pcrypt - Delay write to padata->info
+ - RDMA/rxe: Fix wrong port_cap_flags
+ - scsi: dc395: Fix error case unwinding
+ - JFS: fix memleak in jfs_mount
+ - ALSA: hda: Reduce udelay() at SKL+ position reporting
+ - [arm64,armhf] soc/tegra: Fix an error handling path in
+ tegra_powergate_power_up()
+ - serial: 8250_dw: Drop wrong use of ACPI_PTR()
+ - scsi: csiostor: Uninitialized data in csio_ln_vnp_read_cbfn()
+ - RDMA/mlx4: Return missed an error if device doesn't support steering
+ - [arm64] phy: qcom-qusb2: Fix a memory leak on probe
+ - [arm64] serial: xilinx_uartps: Fix race condition causing stuck TX
+ - [mips*] cm: Convert to bitfield API to fix out-of-bounds access
+ - apparmor: fix error check
+ - rpmsg: Fix rpmsg_create_ept return when RPMSG config is not defined
+ - pnfs/flexfiles: Fix misplaced barrier in nfs4_ff_layout_prepare_ds
+ - drm/plane-helper: fix uninitialized variable reference
+ - [arm64] PCI: aardvark: Don't spam about PIO Response Status
+ - NFS: Fix deadlocks in nfs_scan_commit_list()
+ - fs: orangefs: fix error return code of orangefs_revalidate_lookup()
+ - [arm64] mtd: spi-nor: hisi-sfc: Remove excessive clk_disable_unprepare()
+ - netfilter: nfnetlink_queue: fix OOB when mac header was cleared
+ - dmaengine: dmaengine_desc_callback_valid(): Check for `callback_result`
+ - [x86] watchdog: f71808e_wdt: fix inaccurate report in WDIOC_GETTIMEOUT
+ - scsi: qla2xxx: Fix gnl list corruption
+ - scsi: qla2xxx: Turn off target reset during issue_lip
+ - xen-pciback: Fix return in pm_ctrl_init()
+ - [armhf] net: davinci_emac: Fix interrupt pacing disable
+ - bonding: Fix a use-after-free problem when bond_sysfs_slave_add() failed
+ - mm/zsmalloc.c: close race window between zs_pool_dec_isolated() and
+ zs_unregister_migration()
+ - zram: off by one in read_block_state()
+ - llc: fix out-of-bound array index in llc_sk_dev_hash()
+ - nfc: pn533: Fix double free when pn533_fill_fragment_skbs() fails
+ - [arm64] pgtable: make __pte_to_phys/__phys_to_pte_val inline functions
+ - vsock: prevent unnecessary refcnt inc for nonblocking connect
+ - cxgb4: fix eeprom len when diagnostics not implemented
+ - [arm64,armhf] USB: chipidea: fix interrupt deadlock
+ - [armel,armhf] 9155/1: fix early early_iounmap()
+ - f2fs: should use GFP_NOFS for directory inodes
+ - 9p/net: fix missing error check in p9_check_errors
+ - [powerpc*] lib: Add helper to check if offset is within conditional branch
+ range
+ - [powerpc*] bpf: Validate branch ranges
+ - [powerpc*] bpf: Fix BPF_SUB when imm == 0x80000000
+ - [powerpc*] security: Add a helper to query stf_barrier type
+ - [powerpc*] bpf: Emit stf barrier instruction sequences for BPF_NOSPEC
+ - mm, oom: pagefault_out_of_memory: don't force global OOM for dying tasks
+ - mm, oom: do not trigger out_of_memory from the #PF
+ - [armhf] backlight: gpio-backlight: Correct initial power state handling
+ - video: backlight: Drop maximum brightness override for brightness zero
+ - [s390x] cio: check the subchannel validity for dev_busid
+ - [s390x] tape: fix timer initialization in tape_std_assign()
+ - PCI: Add PCI_EXP_DEVCTL_PAYLOAD_* macros
+ - fuse: truncate pagecache on atomic_o_trunc
+ - [x86] cpu: Fix migration safety with X86_BUG_NULL_SEL
+ - ext4: fix lazy initialization next schedule time computation in more
+ granular unit
+ - PCI/MSI: Destroy sysfs before freeing entries
+ - PCI/MSI: Deal with devices lying about their MSI mask capability
+ - PCI: Add MSI masking quirk for Nvidia ION AHCI
+ - [arm64] zynqmp: Do not duplicate flash partition label property
+ - [arm64] zynqmp: Fix serial compatible string
+ - scsi: lpfc: Fix list_add() corruption in lpfc_drain_txq()
+ - [armhf] usb: musb: tusb6010: check return value after calling
+ platform_get_resource()
+ - [x86] usb: typec: tipd: Remove WARN_ON in tps6598x_block_read
+ - [x86] ASoC: nau8824: Add DMI quirk mechanism for active-high jack-detect
+ - scsi: advansys: Fix kernel pointer leak
+ - firmware_loader: fix pre-allocated buf built-in firmware use
+ - tty: tty_buffer: Fix the softlockup issue in flush_to_ldisc
+ - scsi: target: Fix ordered tag handling
+ - scsi: target: Fix alua_tg_pt_gps_count tracking
+ - [i386] ALSA: gus: fix null pointer dereference on pointer block
+ - f2fs: fix up f2fs_lookup tracepoints
+ - sched/core: Mitigate race cpus_share_cache()/update_top_cache_domain()
+ - drm/nouveau: hdmigv100.c: fix corrupted HDMI Vendor InfoFrame
+ - iavf: check for null in iavf_fix_features
+ - iavf: Fix for the false positive ASQ/ARQ errors while issuing VF reset
+ - [x86] platform/x86: hp_accel: Fix an error handling path in
+ 'lis3lv02d_probe()'
+ - net: virtio_net_hdr_to_skb: count transport header in UFO
+ - i40e: Fix correct max_pkt_size on VF RX queue
+ - i40e: Fix NULL ptr dereference on VSI filter sync
+ - i40e: Fix changing previously set num_queue_pairs for PFs
+ - i40e: Fix display error code in dmesg
+ - NFC: reorganize the functions in nci_request
+ - [x86] perf/x86/intel/uncore: Fix filter_tid mask for CHA events on Skylake
+ Server
+ - [x86] perf/x86/intel/uncore: Fix IIO event constraints for Skylake Server
+ - tun: fix bonding active backup with arp monitoring
+ - ipc: WARN if trying to remove ipc object which is absent
+ - [x86] hyperv: Fix NULL deref in set_hv_tscchange_cb() if Hyper-V setup
+ fails
+ - udf: Fix crash after seekdir
+ - btrfs: fix memory ordering between normal and ordered work functions
+ - cfg80211: call cfg80211_stop_ap when switch from P2P_GO type
+ - drm/udl: fix control-message timeout
+ - drm/amdgpu: fix set scaling mode Full/Full aspect/Center not works on vga
+ and dvi connectors
+ - perf/core: Avoid put_page() when GUP fails
+ - batman-adv: mcast: fix duplicate mcast packets in BLA backbone from LAN
+ - batman-adv: Consider fragmentation for needed_headroom
+ - batman-adv: Reserve needed_*room for fragments
+ - batman-adv: Don't always reallocate the fragmentation skb head
+ - RDMA/netlink: Add __maybe_unused to static inline in C file
+ - ASoC: DAPM: Cover regression by kctl change notification fix
+ - [arm64,armhf] soc/tegra: pmc: Fix imbalanced clock disabling in error code
+ path
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.219
+ - USB: serial: option: add Telit LE910S1 0x9200 composition
+ - USB: serial: option: add Fibocom FM101-GL variants
+ - [arm*] usb: dwc2: hcd_queue: Fix use of floating point literal
+ - usb: hub: Fix usb enumeration issue due to address0 race
+ - usb: hub: Fix locking issues with address0_mutex
+ - [arm*] binder: fix test regression due to sender_euid change
+ - ALSA: ctxfi: Fix out-of-range access
+ - media: cec: copy sequence field for the reply
+ - HID: wacom: Use "Confidence" flag to prevent reporting invalid contacts
+ - [x86] staging: rtl8192e: Fix use after free in _rtl92e_pci_disconnect()
+ - fuse: fix page stealing
+ - xen: don't continue xenstore initialization in case of errors
+ - xen: detect uninitialized xenbus in xenbus_init
+ - tracing: Fix pid filtering when triggers are attached
+ - proc/vmcore: fix clearing user buffer by properly using clear_user()
+ - [arm64] PCI: aardvark: Fix a leaked reference by adding missing
+ of_node_put()
+ - [arm64] PCI: aardvark: Wait for endpoint to be ready before training link
+ - [arm64] PCI: aardvark: Train link immediately after enabling training
+ - [arm64] PCI: aardvark: Improve link training
+ - [arm64] PCI: aardvark: Issue PERST via GPIO
+ - [arm64] PCI: aardvark: Replace custom macros by standard linux/pci_regs.h
+ macros
+ - [arm64] PCI: aardvark: Indicate error in 'val' when config read fails
+ - [arm64] PCI: aardvark: Don't touch PCIe registers if no card connected
+ - [arm64] PCI: aardvark: Fix compilation on s390
+ - [arm64] PCI: aardvark: Move PCIe reset card code to advk_pcie_train_link()
+ - [arm64] PCI: aardvark: Update comment about disabling link training
+ - [arm64] PCI: aardvark: Configure PCIe resources from 'ranges' DT property
+ - [arm64] PCI: aardvark: Fix PCIe Max Payload Size setting
+ - [arm64] PCI: aardvark: Fix link training
+ - [arm64] PCI: aardvark: Fix checking for link up via LTSSM state
+ - [arm64] pinctrl: armada-37xx: Correct mpp definitions
+ - [arm64] pinctrl: armada-37xx: add missing pin: PCIe1 Wakeup
+ - [arm64] pinctrl: armada-37xx: Correct PWM pins definitions
+ - [arm64] dts: marvell: armada-37xx: Set pcie_reset_pin to gpio function
+ - netfilter: ipvs: Fix reuse connection if RS weight is 0
+ - [x86] ASoC: topology: Add missing rwsem around snd_ctl_remove() calls
+ - net: ieee802154: handle iftypes as u32
+ - NFSv42: Don't fail clone() unless the OP_CLONE operation failed
+ - [armhf] socfpga: Fix crash with CONFIG_FORTIRY_SOURCE
+ - scsi: mpt3sas: Fix kernel panic during drive powercycle test
+ - [arm*] drm/vc4: fix error code in vc4_create_object()
+ - ipv6: fix typos in __ip6_finish_output()
+ - net/smc: Ensure the active closing peer first closes clcsock
+ - PM: hibernate: use correct mode for swsusp_close()
+ - tcp_cubic: fix spurious Hystart ACK train detections for not-cwnd-limited
+ flows
+ - net/smc: Don't call clcsock shutdown twice when smc shutdown
+ - [arm64] net: hns3: fix VF RSS failed problem after PF enable multi-TCs
+ - vhost/vsock: fix incorrect used length reported to the guest
+ - tracing: Check pid filtering when creating events
+ - [s390x] mm: validate VMA in PGSTE manipulation functions
+ - hugetlbfs: flush TLBs correctly after huge_pmd_unshare (CVE-2021-4002)
+ - NFC: add NCI_UNREG flag to eliminate the race
+ - fuse: release pipe buf after last use
+ - xen: sync include/xen/interface/io/ring.h with Xen's newest version
+ - xen/blkfront: read response from backend only once
+ - xen/blkfront: don't take local copy of a request from the ring page
+ - xen/blkfront: don't trust the backend response data blindly
+ - xen/netfront: read response from backend only once
+ - xen/netfront: don't read data from request on the ring page
+ - xen/netfront: disentangle tx_skb_freelist
+ - xen/netfront: don't trust the backend response data blindly
+ - tty: hvc: replace BUG_ON() with negative return value
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.220
+ - shm: extend forced shm destroy to support objects from several IPC nses
+ - NFSv42: Fix pagecache invalidation after COPY/CLONE
+ - gfs2: Fix length of holes reported at end-of-file
+ - [amd64] atlantic: Fix OOB read and write in hw_atl_utils_fw_rpc_wait
+ (CVE-2021-43975)
+ - net: return correct error code
+ - [x86] platform/x86: thinkpad_acpi: Fix WWAN device disabled issue after S3
+ deep
+ - [s390x] setup: avoid using memblock_enforce_memory_limit
+ - btrfs: check-integrity: fix a warning on write caching disabled disk
+ - thermal: core: Reset previous low and high trip during thermal zone init
+ - scsi: iscsi: Unblock session then wake up error handler
+ - ata: ahci: Add Green Sardine vendor ID as board_ahci_mobile
+ - [arm64] ethernet: hisilicon: hns: hns_dsaf_misc: fix a possible array
+ overflow in hns_dsaf_ge_srst_by_port()
+ - vrf: Reset IPCB/IP6CB when processing outbound pkts in vrf dev xmit
+ - kprobes: Limit max data_size of the kretprobe instances
+ - ipmi: Move remove_work to dedicated workqueue
+ - fs: add fget_many() and fput_many()
+ - fget: check that the fd still exists after getting a ref to it
+ (CVE-2021-4083)
+ - net: qlogic: qlcnic: Fix a NULL pointer dereference in
+ qlcnic_83xx_add_rings()
+ - net: mpls: Fix notifications when deleting a device
+ - siphash: use _unaligned version by default
+ - net/mlx4_en: Fix an use-after-free bug in mlx4_en_try_alloc_resources()
+ - rxrpc: Fix rxrpc_local leak in rxrpc_lookup_peer()
+ - net: usb: lan78xx: lan78xx_phy_init(): use PHY_POLL instead of "0" if no
+ IRQ is available
+ - net: annotate data-races on txq->xmit_lock_owner
+ - net/rds: correct socket tunable error in rds_tcp_tune()
+ - net/smc: Keep smc_close_final rc during active close
+ - [arm64] drm/msm: Do hw_init() before capturing GPU state
+ - vgacon: Propagate console boot parameters before calling `vc_resize'
+ - xhci: Fix commad ring abort, write all 64 bits to CRCR register.
+ - USB: NO_LPM quirk Lenovo Powered USB-C Travel Hub
+ - [x86] usb: typec: tcpm: Wait in SNK_DEBOUNCED until disconnect
+ - [amd64] mm: Map all kernel memory into trampoline_pgd
+ - [arm64] tty: serial: msm_serial: Deactivate RX DMA for polling support
+ - [arm64] serial: pl011: Add ACPI SBSA UART match id
+ - serial: core: fix transmit-buffer reset and memleak
+ - ipmi: msghandler: Make symbol 'remove_work_wq' static
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.221
+ - HID: add hid_is_usb() function to make it simpler for USB detection
+ - HID: wacom: fix problems when device is not a valid USB device
+ - HID: check for valid USB device for many HID drivers
+ - can: kvaser_usb: get CAN clock frequency from device
+ - [x86] can: sja1000: fix use after free in ems_pcmcia_add_card()
+ - net: core: netlink: add helper refcount dec and lock function
+ - net: sched: rename qdisc_destroy() to qdisc_put()
+ - net: sched: extend Qdisc with rcu
+ - net: sched: add helper function to take reference to Qdisc
+ - net: sched: use Qdisc rcu API instead of relying on rtnl lock
+ - nfc: fix potential NULL pointer deref in nfc_genl_dump_ses_done
+ - bpf: Fix the off-by-two error in range markings
+ - ice: ignore dropped packets during init
+ - bonding: make tx_rebalance_counter an atomic
+ - nfp: Fix memory leak in nfp_cpp_area_cache_add()
+ - seg6: fix the iif in the IPv6 socket control block
+ - udp: using datalen to cap max gso segments
+ - [amd64] IB/hfi1: Correct guard on eager buffer deallocation
+ - mm: bdi: initialize bdi_min_ratio when bdi is unregistered
+ - ALSA: ctl: Fix copy of updated id with element read/write
+ - ALSA: pcm: oss: Fix negative period/buffer sizes
+ - ALSA: pcm: oss: Limit the period size to 16MB
+ - ALSA: pcm: oss: Handle missing errors in snd_pcm_oss_change_params*()
+ - tracefs: Have new files inherit the ownership of their parent
+ - [arm64] clk: qcom: regmap-mux: fix parent clock lookup
+ - [i386] can: pch_can: pch_can_rx_normal: fix use after free
+ - libata: add horkage for ASMedia 1092
+ - wait: add wake_up_pollfree()
+ - binder: use wake_up_pollfree()
+ - signalfd: use wake_up_pollfree()
+ - aio: keep poll requests on waitqueue until completed
+ - aio: fix use-after-free due to missing POLLFREE handling
+ - tracefs: Set all files to the same group ownership as the mount option
+ - block: fix ioprio_get(IOPRIO_WHO_PGRP) vs setuid(2)
+ - qede: validate non LSO skb length
+ - i40e: Fix pre-set max number of queues for VF
+ - net: cdc_ncm: Allow for dwNtbOutMaxSize to be unset or zero
+ - [armhf] net: fec: only clear interrupt of handling queue in
+ fec_enet_rx_queue()
+ - net, neigh: clear whole pneigh_entry at alloc time
+ - net/qla3xxx: fix an error code in ql_adapter_up()
+ - USB: gadget: detect too-big endpoint 0 requests (CVE-2021-39685)
+ - USB: gadget: zero allocate endpoint 0 buffers (CVE-2021-39685)
+ - usb: core: config: fix validation of wMaxPacketValue entries
+ - xhci: Remove CONFIG_USB_DEFAULT_PERSIST to prevent xHCI from runtime
+ suspending
+ - usb: core: config: using bit mask instead of individual bits
+ - xhci: avoid race between disable slot command and host runtime suspend
+ - iio: trigger: Fix reference counting
+ - [armhf] iio: mma8452: Fix trigger reference couting
+ - [arm64,armhf] iio: adc: axp20x_adc: fix charging current reporting on
+ AXP22x
+ - [x86] iio: accel: kxcjk-1013: Fix possible memory leak in probe and remove
+ - [armhf] irqchip/armada-370-xp: Fix return value of
+ armada_370_xp_msi_alloc()
+ - [armhf] irqchip/armada-370-xp: Fix support for Multi-MSI interrupts
+ - [arm64,armhf] irqchip/irq-gic-v3-its.c: Force synchronisation when issuing
+ INVALL
+ - net_sched: fix a crash in tc_new_tfilter()
+ - net: sched: make function qdisc_free_cb() static
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.222
+ - stable: clamp SUBLEVEL in 4.19
+ - nfc: fix segfault in nfc_genl_dump_devices_done
+ - [arm64] drm/msm/dsi: set default num_data_lanes
+ - net/mlx4_en: Update reported link modes for 1/10G
+ - [arm64,armhf] i2c: rk3x: Handle a spurious start completion interrupt flag
+ - net: netlink: af_netlink: Prevent empty skb by adding a check on len.
+ - tracing: Fix a kmemleak false positive in tracing_map
+ - [x86] hwmon: (dell-smm) Fix warning on /proc/i8k creation error
+ - mac80211: send ADDBA requests using the tid/queue of the aggregation
+ session
+ - dm btree remove: fix use after free in rebalance_children()
+ - audit: improve robustness of the audit queue handling
+ - nfsd: fix use-after-free due to delegation race (Closes: #988044)
+ - [x86] sme: Explicitly map new EFI memmap table as encrypted
+ - mac80211: track only QoS data frames for admission control
+ - [armhf] socfpga: dts: fix qspi node compatible
+ - sch_cake: do not call cake_destroy() from cake_init()
+ - rds: memory leak in __rds_conn_create() (CVE-2021-45480)
+ - [arm64,armhf] soc/tegra: fuse: Fix bitwise vs. logical OR warning
+ - igb: Fix removal of unicast MAC filters of VFs
+ - igbvf: fix double free in `igbvf_probe`
+ - ixgbe: set X550 MDIO speed before talking to PHY
+ - netdevsim: Zero-initialize memory for new map's value in function
+ nsim_bpf_map_alloc (CVE-2021-4135)
+ - net/packet: rx_owner_map depends on pg_vec (CVE-2021-22600)
+ - sit: do not call ipip6_dev_free() from sit_init_net()
+ - USB: gadget: bRequestType is a bitfield, not a enum
+ - USB: NO_LPM quirk Lenovo USB-C to Ethernet Adapher(RTL8153-04)
+ - PCI/MSI: Clear PCI_MSIX_FLAGS_MASKALL on error
+ - PCI/MSI: Mask MSI-X vectors only on success
+ - USB: serial: cp210x: fix CP2105 GPIO registration
+ - USB: serial: option: add Telit FN990 compositions
+ - timekeeping: Really make sure wall_to_monotonic isn't positive
+ - libata: if T_LENGTH is zero, dma direction should be DMA_NONE
+ - drm/amdgpu: correct register access for RLC_JUMP_TABLE_RESTORE
+ - mac80211: validate extended element ID is present
+ - [armel] 8805/2: remove unneeded naked function usage
+ - mwifiex: Remove unnecessary braces from HostCmd_SET_SEQ_NO_BSS_INFO
+ - Input: touchscreen - avoid bitwise vs logical OR warning
+ - media: mxl111sf: change mutex_init() location
+ - fuse: annotate lock in fuse_reverse_inval_entry()
+ - ovl: fix warning in ovl_create_real()
+ - scsi: scsi_debug: Sanity check block descriptor length in
+ resp_mode_select()
+ - xen/blkfront: harden blkfront against event channel storms
+ (CVE-2021-28711)
+ - xen/netfront: harden netfront against event channel storms
+ (CVE-2021-28712)
+ - xen/console: harden hvc_xen against event channel storms (CVE-2021-28713)
+ - xen/netback: fix rx queue stall detection (CVE-2021-28714)
+ - xen/netback: don't queue unlimited number of packages (CVE-2021-28715)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.223
+ - net: usb: lan78xx: add Allied Telesis AT29M2-AF
+ - block, bfq: improve asymmetric scenarios detection
+ - block, bfq: fix asymmetric scenarios detection
+ - block, bfq: fix decrement of num_active_groups
+ - block, bfq: fix queue removal from weights tree
+ - block, bfq: fix use after free in bfq_bfqq_expire
+ - HID: holtek: fix mouse probing
+ - [arm64] dts: allwinner: orangepi-zero-plus: fix PHY mode
+ - [arm64] spi: change clk_disable_unprepare to clk_unprepare
+ - IB/qib: Fix memory leak in qib_user_sdma_queue_pkts()
+ - netfilter: fix regression in looped (broad|multi)cast's MAC handling
+ - qlcnic: potential dereference null pointer of rx_queue->page_ring
+ - net: accept UFOv6 packages in virtio_net_hdr_to_skb
+ - net: skip virtio_net_hdr_set_proto if protocol already set
+ - ipmi: Fix UAF when uninstall ipmi_si and ipmi_msghandler module
+ - bonding: fix ad_actor_system option setting to default
+ - [amd64] fjes: Check for error irq
+ - [armhf] drivers: net: smc911x: Check for error irq
+ - sfc: falcon: Check null pointer of rx_queue->page_ring
+ - hwmon: (lm90) Fix usage of CONFIG2 register in detect function
+ - ALSA: jack: Check the return value of kstrdup()
+ - ALSA: drivers: opl3: Fix incorrect use of vp->state
+ - Input: atmel_mxt_ts - fix double free in mxt_read_info_block
+ - ipmi: bail out if init_srcu_struct fails
+ - ipmi: fix initialization when workqueue allocation fails
+ - [x86] pkey: Fix undefined behaviour with PKRU_WD_BIT
+ - [armel,armhf] 9169/1: entry: fix Thumb2 bug in iWMMXt exception handling
+ - f2fs: fix to do sanity check on last xattr entry in __f2fs_setxattr()
+ (CVE-2021-45469)
+ - usb: gadget: u_ether: fix race in setting MAC address in setup phase
+ - [x86] KVM: VMX: Fix stale docs for kvm-intel.emulate_invalid_guest_state
+ - hwmon: (lm90) Do not report 'busy' status bit as alarm
+ - ax25: NPD bug when detaching AX25 device
+ - hamradio: defer ax25 kfree after unregister_netdev
+ - hamradio: improve the incomplete fix to avoid NPD
+ - phonet/pep: refuse to enable an unbound pipe
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.224
+ - [arm64] tee: handle lookup of shm with reference count 0 (CVE-2021-44733)
+ - Input: i8042 - add deferred probe support
+ - [x86] Input: i8042 - enable deferred probe quirk for ASUS UM325UA
+ - [x86] platform/x86: apple-gmux: use resource_size() with res
+ - selinux: initialize proto variable in selinux_ip_postroute_compat()
+ - scsi: lpfc: Terminate string in lpfc_debugfs_nvmeio_trc_write()
+ - udp: using datalen to cap ipv6 udp max gso segments
+ - sctp: use call_rcu to free endpoint
+ - net: usb: pegasus: Do not drop long Ethernet frames
+ - net/mlx5e: Fix wrong features assignment in case of error
+ - i2c: validate user data in compat ioctl
+ - nfc: uapi: use kernel size_t to fix user-space builds
+ - uapi: fix linux/nfc.h userspace compilation errors
+ - xhci: Fresco FL1100 controller should not have BROKEN_MSI quirk set.
+ - usb: gadget: f_fs: Clear ffs_eventfd in ffs_data_clear.
+ - [arm*] binder: fix async_free_space accounting for empty parcels
+ - [x86] scsi: vmw_pvscsi: Set residual data length conditionally
+ - Input: appletouch - initialize work before device registration
+ - Input: spaceball - fix parsing of movement data packets
+ - net: fix use-after-free in tw_timer_handler
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.225
+ - tracing: Fix check for trace_percpu_buffer validity in get_trace_buf()
+ - tracing: Tag trace_percpu_buffer as a percpu pointer
+ - ieee802154: atusb: fix uninit value in atusb_set_extended_addr
+ - RDMA/core: Don't infoleak GRH fields
+ - mac80211: initialize variable have_higher_than_11mbit
+ - i40e: fix use-after-free in i40e_sync_filters_subtask()
+ - i40e: Fix incorrect netdev's real number of RX/TX queues
+ - ipv6: Check attribute length for RTA_GATEWAY in multipath route
+ - ipv6: Check attribute length for RTA_GATEWAY when deleting multipath route
+ - sch_qfq: prevent shift-out-of-bounds in qfq_init_qdisc
+ - xfs: map unwritten blocks in XFS_IOC_{ALLOC,FREE}SP just like fallocate
+ (CVE-2021-4155)
+ - rndis_host: support Hytera digital radios
+ - phonet: refcount leak in pep_sock_accep (CVE-2021-45095)
+ - ipv6: Continue processing multipath route even if gateway attribute is
+ invalid
+ - ipv6: Do cleanup if attribute validation fails in multipath route
+ - scsi: libiscsi: Fix UAF in iscsi_conn_get_param()/iscsi_conn_teardown()
+ - ip6_vti: initialize __ip6_tnl_parm struct in vti6_siocdevprivate
+ - net: udp: fix alignment problem in udp4_seq_show()
+ - mISDN: change function names to avoid conflicts
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.226
+ - Bluetooth: bfusb: fix division by zero in send path
+ - USB: core: Fix bug in resuming hub's handling of wakeup requests
+ - USB: Fix "slab-out-of-bounds Write" bug in usb_hcd_poll_rh_status
+ - can: bcm: switch timer to HRTIMER_MODE_SOFT and remove hrtimer_tasklet
+ - veth: Do not record rx queue hint in veth_xmit
+ - [x86] mfd: intel-lpss: Fix too early PM enablement in the ACPI ->probe()
+ - can: gs_usb: fix use of uninitialized variable, detach device on reception
+ of invalid USB data
+ - can: gs_usb: gs_can_start_xmit(): zero-initialize hf->{flags,reserved}
+ - random: fix data race on crng_node_pool
+ - random: fix data race on crng init time
+ - [x86] drm/i915: Avoid bitwise vs logical OR warning in
+ snb_wm_latency_quirk()
+ - kbuild: Add $(KBUILD_HOSTLDFLAGS) to 'has_libelf' test
+ - orangefs: Fix the size of a memory allocation in orangefs_bufmap_alloc()
+ - [s390x] KVM: s390: Clarify SIGP orders versus STOP/RESTART
+ - media: uvcvideo: fix division by zero at stream start
+ - rtlwifi: rtl8192cu: Fix WARNING when calling local_irq_restore() with
+ interrupts enabled
+ - firmware: qemu_fw_cfg: fix sysfs information leak
+ - firmware: qemu_fw_cfg: fix NULL-pointer deref on duplicate entries
+ - firmware: qemu_fw_cfg: fix kobject leak in probe error path
+ - ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Master after
+ reboot from Windows
+ - HID: uhid: Fix worker destroying device without any protection
+ - HID: wacom: Reset expected and received contact counts at the same time
+ - HID: wacom: Ignore the confidence flag when a touch is removed
+ - HID: wacom: Avoid using stale array indicies to read contact count
+ - f2fs: fix to do sanity check in is_alive()
+ - nfc: llcp: fix NULL error pointer dereference on sendmsg() after failed
+ bind()
+ - [armhf] mtd: rawnand: gpmi: Remove explicit default gpmi clock setting for
+ i.MX6
+ - [x86] gpu: Reserve stolen memory for first integrated Intel GPU
+ - rtc: cmos: take rtc_lock while reading from CMOS
+ - media: flexcop-usb: fix control-message timeouts
+ - media: mceusb: fix control-message timeouts
+ - media: em28xx: fix control-message timeouts
+ - media: cpia2: fix control-message timeouts
+ - media: s2255: fix control-message timeouts
+ - media: dib0700: fix undefined behavior in tuner shutdown
+ - media: redrat3: fix control-message timeouts
+ - media: pvrusb2: fix control-message timeouts
+ - media: stk1160: fix control-message timeouts
+ - [x86] can: softing_cs: softingcs_probe(): fix memleak on registration
+ failure
+ - PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
+ - shmem: fix a race between shmem_unused_huge_shrink and shmem_evict_inode
+ - Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails
+ - [arm*] clk: bcm-2835: Pick the closest clock rate
+ - [arm*] clk: bcm-2835: Remove rounding up the dividers
+ - [arm64] wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND
+ - [arm64] wcn36xx: Release DMA channel descriptor allocations
+ - media: videobuf2: Fix the size printk format
+ - media: em28xx: fix memory leak in em28xx_init_dev
+ - Bluetooth: stop proccessing malicious adv data
+ - [arm64] tee: fix put order in teedev_close_context()
+ - media: dmxdev: fix UAF when dvb_register_device() fails
+ - [arm64] crypto: qce - fix uaf on qce_ahash_register_one
+ - netfilter: bridge: add support for pppoe filtering
+ - drm/amdgpu: Fix a NULL pointer dereference in
+ amdgpu_connector_lcd_native_mode()
+ - drm/radeon/radeon_kms: Fix a NULL pointer dereference in
+ radeon_driver_open_kms()
+ - [arm*] serial: amba-pl011: do not request memory region twice
+ - floppy: Fix hang in watchdog when disk is ejected
+ - media: dib8000: Fix a memleak in dib8000_init()
+ - media: saa7146: mxb: Fix a NULL pointer dereference in mxb_attach()
+ - media: si2157: Fix "warm" tuner state detection
+ - sched/rt: Try to restart rt period timer when rt runtime exceeded
+ - xfrm: fix a small bug in xfrm_sa_len()
+ - media: dw2102: Fix use after free
+ - media: msi001: fix possible null-ptr-deref in msi001_probe()
+ - [arm64] drm/msm/dpu: fix safe status debugfs file
+ - xfrm: interface with if_id 0 should return error
+ - xfrm: state and policy should fail if XFRMA_IF_ID 0
+ - usb: ftdi-elan: fix memory leak on device disconnect
+ - [armhf] mmc: meson-mx-sdio: add IRQ check
+ - [x86] mce/inject: Avoid out-of-bounds write when setting flags
+ - [x86] pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in
+ __nonstatic_find_io_region()
+ - [x86] pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in
+ nonstatic_find_mem_region()
+ - netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check()
+ - ppp: ensure minimum packet size in ppp_write()
+ - Bluetooth: hci_bcm: Check for error irq
+ - [arm64,armhf] spi: spi-meson-spifc: Add missing pm_runtime_disable() in
+ meson_spifc_probe
+ - tpm: add request_locality before write TPM_INT_ENABLE
+ - can: softing: softing_startstop(): fix set but not used variable warning
+ - pcmcia: fix setting of kthread task states
+ - net: mcs7830: handle usb read errors properly
+ - ext4: avoid trim error on fs with small groups
+ - ALSA: jack: Add missing rwsem around snd_ctl_remove() calls
+ - ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls
+ - ALSA: hda: Add missing rwsem around snd_ctl_remove() calls
+ - [arm64] RDMA/hns: Validate the pkey index
+ - [powerpc*] prom_init: Fix improper check of prom_getprop()
+ - ALSA: oss: fix compile error when OSS_DEBUG is enabled
+ - [arm64,armhf] iommu/io-pgtable-arm: Fix table descriptor paddr formatting
+ - scsi: ufs: Fix race conditions related to driver data
+ - RDMA/core: Let ib_find_gid() continue search even after empty entry
+ - [x86] ASoC: rt5663: Handle device_property_read_u32_array error codes
+ - [arm*] iommu/iova: Fix race between FQ timeout and teardown
+ - RDMA/cxgb4: Set queue pair state when being queried
+ - Bluetooth: Fix debugfs entry leak in hci_register_dev()
+ - fs: dlm: filter user dlm messages for kernel locks
+ - ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply
+ - drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR
+ - usb: gadget: f_fs: Use stream_open() for endpoint files
+ - HID: apple: Do not reset quirks when the Fn key is not found
+ - media: b2c2: Add missing check in flexcop_pci_isr:
+ - gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use
+ - [armhf] HSI: core: Fix return freed object in hsi_new_client
+ - [x86] mwifiex: Fix skb_over_panic in mwifiex_usb_recv() (CVE-2021-43976)
+ - rsi: Fix out-of-bounds read in rsi_read_pkt()
+ - floppy: Add max size check for user space request
+ - media: saa7146: hexium_orion: Fix a NULL pointer dereference in
+ hexium_attach()
+ - media: m920x: don't use stack on USB reads
+ - iwlwifi: mvm: synchronize with FW after multicast commands
+ - ath10k: Fix tx hanging
+ - net-sysfs: update the queue counts in the unregistration path
+ - [x86] mce: Mark mce_panic() noinstr
+ - [x86] mce: Mark mce_end() noinstr
+ - [x86] mce: Mark mce_read_aux() noinstr
+ - net: bonding: debug: avoid printing debug logs when bond is not notifying
+ peers
+ - bpf: Do not WARN in bpf_warn_invalid_xdp_action()
+ - HID: quirks: Allow inverting the absolute X/Y values
+ - media: igorplugusb: receiver overflow should be reported
+ - media: saa7146: hexium_gemini: Fix a NULL pointer dereference in
+ hexium_attach()
+ - mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO
+ - audit: ensure userspace is penalized the same as the kernel when under
+ pressure
+ - usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0
+ - ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream
+ - iwlwifi: fix leaks/bad data after failed firmware load
+ - iwlwifi: remove module loading failure message
+ - iwlwifi: mvm: Fix calculation of frame length
+ - jffs2: GC deadlock reading a page that is used in jffs2_write_begin()
+ - ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions
+ - ACPICA: Utilities: Avoid deleting the same object twice in a row
+ - ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R()
+ - ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5
+ - drm/amdgpu: fixup bad vram size on gmc v8
+ - [x86] ACPI: battery: Add the ThinkPad "Not Charging" quirk
+ - btrfs: remove BUG_ON() in find_parent_nodes()
+ - btrfs: remove BUG_ON(!eie) in find_parent_nodes
+ - net: mdio: Demote probed message to debug print
+ - mac80211: allow non-standard VHT MCS-10/11
+ - dm btree: add a defensive bounds check to insert_at()
+ - dm space map common: add bounds check to sm_ll_lookup_bitmap()
+ - net: phy: marvell: configure RGMII delays for 88E1118
+ - [arm64] regulator: qcom_smd: Align probe function with rpmh-regulator
+ - [arm64,armhf] serial: pl010: Drop CR register reset on set_termios
+ - serial: core: Keep mctrl register state and cached copy in sync
+ - [powerpc*] powernv: add missing of_node_put
+ - [powerpc*] btext: add missing of_node_put
+ - [powerpc*] watchdog: Fix missed watchdog reset due to memory ordering race
+ - [x86] i2c: i801: Don't silently correct invalid transfer size
+ - [powerpc*] smp: Move setup_profiling_timer() under CONFIG_PROFILING
+ - [powerpc*] i2c: mpc: Correct I2C reset procedure
+ - w1: Misuse of get_user()/put_user() reported by sparse
+ - ALSA: seq: Set upper limit of processed events
+ - [powerpc*] handle kdump appropriately with crash_kexec_post_notifiers
+ option
+ - [mips*] OCTEON: add put_device() after of_find_device_by_node()
+ - [x86] i2c: designware-pci: Fix to change data types of hcnt and lcnt
+ parameters
+ - scsi: sr: Don't use GFP_DMA
+ - [arm64] rpmsg: core: Clean up resources on announce_create failure.
+ - ubifs: Error path in ubifs_remount_rw() seems to wrongly free write
+ buffers
+ - serial: Fix incorrect rs485 polarity on uart open
+ - cputime, cpuacct: Include guest time in user time in cpuacct.stat
+ - iwlwifi: mvm: Increase the scan timeout guard to 30 seconds
+ - [s390x] mm: fix 2KB pgtable release race
+ - [armhf] drm/etnaviv: limit submit sizes
+ - ext4: make sure to reset inode lockdep class when quota enabling fails
+ - ext4: make sure quota gets properly shutdown on error
+ - ext4: set csum seed in tmp inode while migrating to extents
+ - ext4: Fix BUG_ON in ext4_bread when write quota data
+ - ext4: don't use the orphan list when migrating an inode
+ - ASoC: dpcm: prevent snd_soc_dpcm use after free
+ - regulator: core: Let boot-on regulators be powered off
+ - drm/radeon: fix error handling in radeon_driver_open_kms
+ - [arm64] RDMA/hns: Modify the mapping attribute of doorbell to device
+ - RDMA/rxe: Fix a typo in opcode name
+ - af_unix: annote lockless accesses to unix_tot_inflight & gc_in_progress
+ - netns: add schedule point in ops_exit_list()
+ - libcxgb: Don't accidentally set RTO_ONLINK in cxgb_find_route()
+ - net_sched: restore "mpu xxx" handling
+ - [mips*,s390x] gup: Work around the "COW can break either way" issue
+ (CVE-2020-29374)
+ - fuse: fix bad inode (CVE-2020-36322)
+ - fuse: fix live lock in fuse_iget() (CVE-2021-28950)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.227
+ - [x86] drm/i915: Flush TLBs before releasing backing store (CVE-2022-0330)
+ - net: bridge: clear bridge's private skb space on xmit
+ - select: Fix indefinitely sleeping task in poll_schedule_timeout()
+ - [x86] drm/vmwgfx: Fix stale file descriptors on failed usercopy
+ (CVE-2022-22942)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.228
+ - Bluetooth: refactor malicious adv data check
+ - [s390x] hypfs: include z/VM guests with access control group set
+ - [s390x] scsi: zfcp: Fix failed recovery on gone remote port with non-NPIV
+ FCP devices
+ - udf: Restore i_lenAlloc when inode expansion fails (CVE-2022-0617)
+ - udf: Fix NULL ptr deref when converting from inline format (CVE-2022-0617)
+ - [armhf] drm/etnaviv: relax submit size limits
+ - netfilter: nft_payload: do not update layer 4 checksum when mangling
+ fragments
+ - serial: 8250: of: Fix mapped region size when using reg-offset property
+ - tty: n_gsm: fix SW flow control encoding/handling
+ - tty: Add support for Brainboxes UC cards.
+ - usb-storage: Add unusual-devs entry for VL817 USB-SATA bridge
+ - [arm64,armhf] usb: common: ulpi: Fix crash in ulpi_match()
+ - usb: gadget: f_sourcesink: Fix isoc transfer for USB_SPEED_SUPER_PLUS
+ - USB: core: Fix hang in usb_kill_urb by adding memory barriers
+ - [x86] usb: typec: tcpm: Do not disconnect while receiving VBUS off
+ - [arm64,armhf] net: sfp: ignore disabled SFP node
+ - i40e: Increase delay to 1 s after global EMP reset
+ - i40e: Fix issue when maximum queues is exceeded
+ - i40e: Fix queues reservation for XDP
+ - i40e: fix unsigned stat widths
+ - scsi: bnx2fc: Flush destroy_work queue before calling
+ bnx2fc_interface_put()
+ - ipv6_tunnel: Rate limit warning messages
+ - net: fix information leakage in /proc/net/ptype
+ - ping: fix the sk_bound_dev_if match in ping_lookup
+ - ipv4: avoid using shared IP generator for connected sockets
+ - hwmon: (lm90) Reduce maximum conversion rate for G781
+ - NFSv4: Handle case where the lookup of a directory fails (CVE-2022-24448)
+ - NFSv4: nfs_atomic_open() can race when looking up a non-regular file
+ - net-procfs: show net devices bound packet types
+ - [arm64] drm/msm: Fix wrong size calculation
+ - [arm64] drm/msm/dsi: invalid parameter check in msm_dsi_phy_enable
+ - ipv6: annotate accesses to fn->fn_sernum
+ - NFS: Ensure the server has an up to date ctime before hardlinking
+ - NFS: Ensure the server has an up to date ctime before renaming
+ - phylib: fix potential use-after-free
+ - yam: fix a memory leak in yam_siocdevprivate() (CVE-2022-24959)
+ - ipv4: raw: lock the socket in raw_bind()
+ - ipv4: tcp: send zero IPID in SYNACK messages
+ - netfilter: nat: remove l4 protocol port rovers
+ - netfilter: nat: limit port clash resolution attempts
+ - tcp: fix possible socket leaks in internal pacing mode
+ - ipheth: fix EOVERFLOW in ipheth_rcvbulk_callback
+ - [amd64,arm64] net: amd-xgbe: ensure to reset the tx_timer_active flag
+ - [amd64,arm64] net: amd-xgbe: Fix skb data length underflow
+ - rtnetlink: make sure to refresh master_dev/m_ops in __rtnl_newlink()
+ - af_packet: fix data-race in packet_setsockopt / packet_setsockopt
+ - audit: improve audit queue handling when "audit=1" on cmdline
+ - ASoC: ops: Reject out of bounds values in snd_soc_put_volsw()
+ - ASoC: ops: Reject out of bounds values in snd_soc_put_volsw_sx()
+ - ASoC: ops: Reject out of bounds values in snd_soc_put_xr_sx()
+ - ALSA: hda/realtek: Add missing fixup-model entry for Gigabyte X570 ALC1220
+ quirks
+ - ALSA: hda/realtek: Fix silent output on Gigabyte X570S Aorus Master (newer
+ chipset)
+ - ALSA: hda/realtek: Fix silent output on Gigabyte X570 Aorus Xtreme after
+ reboot from Windows
+ - drm/nouveau: fix off by one in BIOS boundary checking
+ - block: bio-integrity: Advance seed correctly for larger interval sizes
+ - RDMA/mlx4: Don't continue event handler after memory allocation failure
+ - [amd64] iommu/vt-d: Fix potential memory leak in
+ intel_setup_irq_remapping()
+ - [amd64] iommu/amd: Fix loop timeout issue in iommu_ga_log_enable()
+ - [armhf] spi: meson-spicc: add IRQ check in meson_spicc_probe
+ - net: ieee802154: hwsim: Ensure proper channel selection at probe time
+ - net: ieee802154: Return meaningful error codes from the netlink helpers
+ - net: macsec: Verify that send_sci is on when setting Tx sci explicitly
+ - [arm64,armhf] net: stmmac: ensure PTP time register reads are consistent
+ - [x86] drm/i915/overlay: Prevent divide by zero bugs in scaling
+ - scsi: bnx2fc: Make bnx2fc_recv_frame() mp safe
+ - nfsd: nfsd4_setclientid_confirm mistakenly expires confirmed client.
+ - rtc: cmos: Evaluate century appropriate
+ - [arm64] EDAC/xgene: Fix deferred probing
+ - ext4: fix error handling in ext4_restore_inline_data()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.229
+ - cgroup-v1: Require capabilities to set release_agent (CVE-2022-0492)
+ - moxart: fix potential use-after-free on remove path (CVE-2022-0487)
+ - tipc: improve size validations for received domain records (CVE-2022-0435)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.230
+ - integrity: check the return value of audit_log_start()
+ - net: phy: marvell: Fix MDI-x polarity setting in 88e1118-compatible PHYs
+ - NFS: Fix initialisation of nfs_client cl_flags field
+ - NFSD: Clamp WRITE offsets
+ - NFSD: Fix offset type in I/O trace points
+ - NFSv4 only print the label when its queried
+ - nfs: nfs4clinet: check the return value of kstrdup()
+ - NFSv4.1: Fix uninitialised variable in devicenotify
+ - NFSv4 remove zero number of fs_locations entries error check
+ - NFSv4 expose nfs_parse_server_name function
+ - net: sched: Clarify error message when qdisc kind is unknown
+ - scsi: target: iscsi: Make sure the np under each tpg is unique
+ - [arm*] usb: dwc2: gadget: don't try to disable ep0 in dwc2_hsotg_suspend
+ - [arm64,armhf] net: stmmac: dwmac-sun8i: use return val of
+ readl_poll_timeout()
+ - bpf: Add kconfig knob for disabling unpriv bpf by default
+ - net: bridge: fix stale eth hdr pointer in br_dev_xmit
+ - usb: f_fs: Fix use-after-free for epfile
+ - ixgbevf: Require large buffers for build_skb on 82599VF
+ - bonding: pair enable_port with slave_arr_updates
+ - ipmr,ip6mr: acquire RTNL before calling ip[6]mr_free_table() on failure
+ path
+ - net: do not keep the dst cache when uncloning an skb dst and its metadata
+ - net: fix a memleak when uncloning an skb dst and its metadata
+ - veth: fix races around rq->rx_notify_masked
+ - tipc: rate limit warning for received illegal binding update
+ - [amd64,arm64] net: amd-xgbe: disable interrupts during pci removal
+ - vt_ioctl: fix array_index_nospec in vt_setactivate
+ - vt_ioctl: add array_index_nospec to VT_ACTIVATE
+ - n_tty: wake up poll(POLLRDNORM) on receiving data
+ - [arm64,armhf] usb: ulpi: Move of_node_put to ulpi_dev_release
+ - [arm64,armhf] usb: ulpi: Call of_node_put correctly
+ - [arm64,armhf] usb: dwc3: gadget: Prevent core from processing stale TRBs
+ - USB: gadget: validate interface OS descriptor requests (CVE-2022-25258)
+ - usb: gadget: rndis: check size of RNDIS_MSG_SET command (CVE-2022-25375)
+ - USB: serial: ftdi_sio: add support for Brainboxes US-159/235/320
+ - USB: serial: option: add ZTE MF286D modem
+ - USB: serial: ch341: add support for GW Instek USB2.0-Serial devices
+ - USB: serial: cp210x: add NCR Retail IO box id
+ - USB: serial: cp210x: add CPI Bulk Coin Recycler id
+ - seccomp: Invalidate seccomp mode to catch death failures
+ - [x86] hwmon: (dell-smm) Speed up setting of fan speed
+ - perf: Fix list corruption in perf_cgroup_switch()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.231
+ - Makefile.extrawarn: Move -Wunaligned-access to W=1
+ - net: usb: ax88179_178a: Fix out-of-bounds accesses in RX fixup
+ - btrfs: send: in case of IO error log it
+ - net: ieee802154: at86rf230: Stop leaking skb's
+ - ax25: improve the incomplete fix to avoid UAF and NPD bugs
+ - vfs: make freeze_super abort when sync_filesystem returns error
+ - quota: make dquot_quota_sync return errors from ->sync_fs
+ - nvme: fix a possible use-after-free in controller reset during load
+ - nvme-rdma: fix possible use-after-free in transport error_recovery work
+ - Revert "module, async: async_synchronize_full() on module init iff async
+ is used"
+ - iwlwifi: fix use-after-free
+ - drm/radeon: Fix backlight control on iMac 12,1
+ - xfrm: Don't accidentally set RTO_ONLINK in decode_session4()
+ - taskstats: Cleanup the use of task->exit_code
+ - mmc: block: fix read single on recovery logic
+ - vsock: remove vsock from connected table when connect is interrupted by a
+ signal
+ - iwlwifi: pcie: fix locking when "HW not ready"
+ - iwlwifi: pcie: gen2: fix locking when "HW not ready"
+ - ping: fix the dif and sdif check in ping_lookup
+ - drop_monitor: fix data-race in dropmon_net_event / trace_napi_poll_hit
+ - bonding: fix data-races around agg_select_timer
+ - libsubcmd: Fix use-after-free for realloc(..., 0)
+ - ALSA: hda: Fix regression on forced probe mask option
+ - ALSA: hda: Fix missing codec probe on Shenker Dock 15
+ - ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw()
+ - ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw_range()
+ - [powerpc*] lib/sstep: fix 'ptesync' build error
+ - ext4: check for out-of-order index extents in ext4_valid_extent_entries()
+ - block/wbt: fix negative inflight counter when remove scsi device
+ - NFS: LOOKUP_DIRECTORY is also ok with symlinks
+ - NFS: Do not report writeback errors in nfs_getattr()
+ - EDAC: Fix calculation of returned address and next offset in
+ edac_align_ptr()
+ - net: sched: limit TC_ACT_REPEAT loops
+ - lib/iov_iter: initialize "flags" in new pipe_buffer
+ - [x86] Drivers: hv: vmbus: Expose monitor data only when monitor pages are
+ used
+ - [x86] Drivers: hv: vmbus: Fix memory leak in vmbus_add_channel_kobj
+ - [x86] KVM: x86/pmu: Use AMD64_RAW_EVENT_MASK for PERF_TYPE_RAW
+ - [armhf] OMAP2+: hwmod: Add of_node_put() before break
+ - netfilter: conntrack: don't refresh sctp entries in closed state
+ - kconfig: let 'shell' return enough output for deep path names
+ - ata: libata-core: Disable TRIM on M88V29
+ - tracing: Fix tp_printk option related with tp_printk_stop_on_boot
+ - net: usb: qmi_wwan: Add support for Dell DW5829e
+ - [arm64] net: macb: Align the dma and coherent dma masks
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.232
+ - cgroup/cpuset: Fix a race between cpuset_attach() and cpu hotplug
+ - vhost/vsock: don't check owner in vhost_vsock_stop() while releasing
+ - sr9700: sanity check for packet length
+ - USB: zaurus: support another broken Zaurus
+ - ping: remove pr_err from ping_lookup
+ - net: __pskb_pull_tail() & pskb_carve_frag_list() drop_monitor friends
+ - tipc: Fix end of loop tests for list_for_each_entry()
+ - gso: do not skip outer ip header in case of ipip and net_failover
+ - openvswitch: Fix setting ipv6 fields causing hw csum failure
+ - drm/edid: Always set RGB444
+ - net/mlx5e: Fix wrong return value on ioctl EEPROM query failure
+ - configfs: fix a race in configfs_{,un}register_subsystem()
+ - RDMA/ib_srp: Fix a deadlock
+ - tty: n_gsm: fix proper link termination after failed open
+ - Revert "drm/nouveau/pmu/gm200-: avoid touching PMU outside of
+ DEVINIT/PREOS/ACR"
+ - memblock: use kfree() to release kmalloced memblock regions
+ - fget: clarify and improve __fget_files() implementation
+ - tracing: Have traceon and traceoff trigger honor the instance
+ - ata: pata_hpt37x: disable primary channel on HPT371
+ - Revert "USB: serial: ch341: add new Product ID for CH341A"
+ - usb: gadget: rndis: add spinlock for rndis response list
+ - tracefs: Set the group ownership in apply_options() not parse_options()
+ - USB: serial: option: add support for DW5829e
+ - USB: serial: option: add Telit LE910R1 compositions
+ - [arm64] usb: dwc3: pci: Fix Bay Trail phy GPIO mappings
+ - [arm64,armhf] usb: dwc3: gadget: Let the interrupt handler disable bottom
+ halves.
+ - xhci: re-initialize the HC during resume if HCE was set
+ - xhci: Prevent futile URB re-submissions due to incorrect return value.
+ - tty: n_gsm: fix encoding of control signal octet bit DV
+
+ [ Salvatore Bonaccorso ]
+ * Bump ABI to 19
+ * [rt] Update to 4.19.210-rt90
+ * [rt] Update to 4.19.211-rt91
+ * [rt] Update to 4.19.212-rt92
+ * [rt] Update to 4.19.214-rt93
+ * [rt] Update to 4.19.215-rt94
+ - fscache: fix initialisation of cookie hash table raw spinlocks
+ * [rt] Update to 4.19.217-rt95
+ * Refresh "Export symbols needed by Android drivers"
+ * liblockdep: Stop build liblockdep packages
+ * [rt] Update to 4.19.218-rt96
+ * [rt] Update to 4.19.219-rt97
+ * [rt] Refresh "net: move xmit_recursion to per-task variable on -RT"
+ * Refresh "Export symbols needed by Android drivers"
+ * [rt] Update to 4.19.225-rt101
+ * Refresh "Revert "objtool: Fix CONFIG_STACK_VALIDATION=y warning for
+ out-of-tree modules""
+ * [rt] Update to 4.19.227-rt102
+ * [rt] Update to 4.19.230-rt103
+ * init: Enable BPF_UNPRIV_DEFAULT_OFF (Closes: #990411)
+ * Mitigate Spectre v2-type Branch History Buffer attacks (CVE-2022-0001,
+ CVE-2022-0002)
+ - [x86] speculation: Merge one test in spectre_v2_user_select_mitigation()
+ - [x86] bugs: Unconditionally allow spectre_v2=retpoline,amd
+ - [x86] speculation: Rename RETPOLINE_AMD to RETPOLINE_LFENCE
+ - [x86] speculation: Add eIBRS + Retpoline options
+ - Documentation/hw-vuln: Update spectre doc
+ - [x86] speculation: Include unprivileged eBPF status in Spectre v2
+ mitigation reporting
+ - [x86] speculation: Use generic retpoline by default on AMD
+ - [x86] speculation: Update link to AMD speculation whitepaper
+ - [x86] speculation: Warn about Spectre v2 LFENCE mitigation
+ - [x86] speculation: Warn about eIBRS + LFENCE + Unprivileged eBPF + SMT
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Mon, 07 Mar 2022 22:13:16 +0100
+
+linux (4.19.208-1) buster; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.195
+ - perf/core: Fix endless multiplex timer
+ - net/nfc/rawsock.c: fix a permission check bug
+ - [x86] ASoC: Intel: bytcr_rt5640: Add quirk for the Glavey TM800A550L
+ tablet
+ - [x86] ASoC: Intel: bytcr_rt5640: Add quirk for the Lenovo Miix 3-830
+ tablet
+ - bonding: init notify_work earlier to avoid uninitialized use
+ - netlink: disable IRQs for netlink_lock_table()
+ - net: mdiobus: get rid of a BUG_ON()
+ - cgroup: disable controllers at parse time
+ - wq: handle VM suspension in stall detection
+ - net/qla3xxx: fix schedule while atomic in ql_sem_spinlock
+ - RDS tcp loopback connection can hang
+ - scsi: bnx2fc: Return failure if io_req is already in ABTS processing
+ - [x86] scsi: vmw_pvscsi: Set correct residual data length
+ - scsi: target: qla2xxx: Wait for stop_phase1 at WWN removal
+ - [arm64] net: macb: ensure the device is available before accessing GEMGXL
+ control registers
+ - nvme-fabrics: decode host pathing error for connect
+ - [mips*] Fix kernel hang under FUNCTION_GRAPH_TRACER and PREEMPT_TRACER
+ - bnx2x: Fix missing error code in bnx2x_iov_init_one()
+ - [powerpc*] i2c: mpc: Make use of i2c_recover_bus()
+ - [powerpc*] i2c: mpc: implement erratum A-004447 workaround
+ - drm: Fix use-after-free read in drm_getunique()
+ - drm: Lock pointer access in drm_master_release()
+ - kvm: avoid speculation-based attacks from out-of-range memslot accesses
+ - [arm64,x86] staging: rtl8723bs: Fix uninitialized variables
+ - btrfs: return value from btrfs_mark_extent_written() in case of error
+ - cgroup1: don't allow '\n' in renaming
+ - USB: f_ncm: ncm_bitrate (speed) is unsigned
+ - usb: f_ncm: only first packet of aggregate needs to start timer
+ - usb: pd: Set PD_T_SINK_WAIT_CAP to 310ms
+ - [arm64,armhf] usb: dwc3: ep0: fix NULL pointer exception
+ - [x86] usb: typec: ucsi: Clear PPM capability data in ucsi_init() error
+ path
+ - usb: gadget: f_fs: Ensure io_completion_wq is idle during unbind
+ - USB: serial: ftdi_sio: add NovaTech OrionMX product ID
+ - USB: serial: omninet: add device id for Zyxel Omni 56K Plus
+ - USB: serial: quatech2: fix control-request directions
+ - USB: serial: cp210x: fix alternate function for CP2102N QFN20
+ - usb: gadget: eem: fix wrong eem header operation
+ - usb: fix various gadgets null ptr deref on 10gbps cabling.
+ - usb: fix various gadget panics on 10gbps cabling
+ - regulator: core: resolve supply for boot-on/always-on regulators
+ - [arm64] regulator: max77620: Use device_set_of_node_from_dev()
+ - RDMA/mlx4: Do not map the core_clock page to user space unless enabled
+ - perf: Fix data race between pin_count increment/decrement
+ - sched/fair: Make sure to update tg contrib for blocked load
+ - IB/mlx5: Fix initializing CQ fragments buffer
+ - NFS: Fix a potential NULL dereference in nfs_get_client()
+ - NFSv4: Fix deadlock between nfs4_evict_inode() and
+ nfs4_opendata_get_inode()
+ - perf session: Correct buffer copying when peeking events
+ - kvm: fix previous commit for 32-bit builds
+ - NFS: Fix use-after-free in nfs4_init_client()
+ - NFSv4: Fix second deadlock in nfs4_evict_inode()
+ - NFSv4: nfs4_proc_set_acl needs to restore NFS_CAP_UIDGID_NOMAP on error.
+ - scsi: core: Fix error handling of scsi_host_alloc()
+ - scsi: core: Put .shost_dev in failure path if host state changes to
+ RUNNING
+ - scsi: core: Only put parent device if host state differs from
+ SHOST_CREATED
+ - ftrace: Do not blindly read the ip address in ftrace_bug()
+ - tracing: Correct the length check which causes memory corruption
+ - proc: only require mm_struct for writing
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.196
+ - net: ieee802154: fix null deref in parse dev addr
+ - HID: quirks: Set INCREMENT_USAGE_ON_DUPLICATE for Saitek X65
+ - HID: hid-sensor-hub: Return error for hid_set_field() failure
+ - HID: Add BUS_VIRTUAL to hid_connect logging
+ - HID: usbhid: fix info leak in hid_submit_ctrl
+ - gfs2: Prevent direct-I/O write fallback errors from getting lost
+ - gfs2: Fix use-after-free in gfs2_glock_shrink_scan
+ - scsi: target: core: Fix warning on realtime kernels
+ - ethernet: myri10ge: Fix missing error code in myri10ge_probe()
+ - scsi: scsi_devinfo: Add blacklist entry for HPE OPEN-V
+ - net: ipconfig: Don't override command-line hostnames or domains
+ - rtnetlink: Fix missing error code in rtnl_bridge_notify()
+ - net: Return the correct errno code
+ - fib: Return the correct errno code
+ - afs: Fix an IS_ERR() vs NULL check
+ - mm/memory-failure: make sure wait for page writeback in memory_failure
+ - batman-adv: Avoid WARN_ON timing related checks
+ - net: ipv4: fix memory leak in netlbl_cipsov4_add_std
+ - net: rds: fix memory leak in rds_recvmsg
+ - udp: fix race between close() and udp_abort()
+ - rtnetlink: Fix regression in bridge VLAN configuration
+ - net/mlx5e: Block offload of outer header csum for UDP tunnels
+ - netfilter: synproxy: Fix out of bounds when parsing TCP options
+ - sch_cake: Fix out of bounds when parsing TCP options and header
+ - alx: Fix an error handling path in 'alx_probe()'
+ - net: stmmac: dwmac1000: Fix extended MAC address registers definition
+ - net: add documentation to socket.c
+ - net: make get_net_ns return error if NET_NS is disabled
+ - qlcnic: Fix an error handling path in 'qlcnic_probe()'
+ - netxen_nic: Fix an error handling path in 'netxen_nic_probe()'
+ - ptp: ptp_clock: Publish scaled_ppm_to_ppb
+ - ptp: improve max_adj check against unreasonable values
+ - net: cdc_ncm: switch to eth%d interface naming
+ - net: usb: fix possible use-after-free in smsc75xx_bind
+ - [armhf] net: fec_ptp: fix issue caused by refactor the fec_devtype
+ - net: ipv4: fix memory leak in ip_mc_add1_src
+ - net/af_unix: fix a data-race in unix_dgram_sendmsg / unix_release_sock
+ - be2net: Fix an error handling path in 'be_probe()'
+ - net: hamradio: fix memory leak in mkiss_close
+ - net: cdc_eem: fix tx fixup skb leak
+ - icmp: don't send out ICMP messages with a source address of 0.0.0.0
+ - radeon: use memcpy_to/fromio for UVD fw upload
+ - hwmon: (scpi-hwmon) shows the negative temperature properly
+ - can: mcba_usb: fix memory leak in mcba_usb
+ - usb: core: hub: Disable autosuspend for Cypress CY7C65632
+ - tracing: Do not stop recording cmdlines when tracing is off
+ - tracing: Do not stop recording comms if the trace file is being read
+ - tracing: Do no increment trace_clock_global() by one
+ - PCI: Mark TI C667X to avoid bus reset
+ - PCI: Mark some NVIDIA GPUs to avoid bus reset
+ - PCI: Add ACS quirk for Broadcom BCM57414 NIC
+ - PCI: Work around Huawei Intelligent NIC VF FLR erratum
+ - [arm64,armhf] dmaengine: pl330: fix wrong usage of spinlock flags in
+ dma_cyclc
+ - net: bridge: fix vlan tunnel dst null pointer dereference
+ - net: bridge: fix vlan tunnel dst refcnt when egressing
+ - mm/slub: clarify verification reporting
+ - mm/slub.c: include swab.h
+ - [armhf] net: fec_ptp: add clock rate zero check
+ - [arm64,armhf] KVM: arm/arm64: Fix KVM_VGIC_V3_ADDR_TYPE_REDIST read
+ - can: bcm/raw/isotp: use per module netdevice notifier
+ - inet: use bigger hash table for IP ID generation
+ - [arm64,armhf] usb: dwc3: debugfs: Add and remove endpoint dirs dynamically
+ - [arm64,armhf] usb: dwc3: core: fix kernel panic when do reboot
+ - [x86] fpu: Reset state for all signal restore failures
+ - module: limit enabling module.sig_enforce (CVE-2021-35039)
+ - drm/nouveau: wait for moving fence after pinning v2
+ - drm/radeon: wait for moving fence after pinning
+ - Revert "PCI: PM: Do not read power state in pci_enable_device_flags()"
+ - mac80211: remove warning in ieee80211_get_sband()
+ - cfg80211: call cfg80211_leave_ocb when switching away from OCB
+ - mac80211: drop multicast fragments
+ - net: ethtool: clear heap allocations for ethtool function
+ - ping: Check return value of function 'ping_queue_rcv_skb'
+ - inet: annotate date races around sk->sk_txhash
+ - net/packet: annotate accesses to po->bind
+ - net/packet: annotate accesses to po->ifindex
+ - r8152: Avoid memcpy() over-reading of ETH_SS_STATS
+ - r8169: Avoid memcpy() over-reading of ETH_SS_STATS
+ - net: qed: Fix memcpy() overflow of qed_dcbx_params()
+ - [x86] PCI: Add AMD RS690 quirk to enable 64-bit DMA
+ - nilfs2: fix memory leak in nilfs_sysfs_delete_device_group
+ - i2c: robotfuzz-osif: fix control-request directions
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.197
+ - mm: add VM_WARN_ON_ONCE_PAGE() macro
+ - mm/rmap: remove unneeded semicolon in page_not_mapped()
+ - mm/rmap: use page_not_mapped in try_to_unmap()
+ - mm/thp: fix __split_huge_pmd_locked() on shmem migration entry
+ - mm/thp: make is_huge_zero_pmd() safe and quicker
+ - mm/thp: try_to_unmap() use TTU_SYNC for safe splitting
+ - mm/thp: fix vma_address() if virtual address below file offset
+ - mm/thp: fix page_address_in_vma() on file THP tails
+ - mm/thp: unmap_mapping_page() to fix THP truncate_cleanup_page()
+ - mm: thp: replace DEBUG_VM BUG with VM_WARN when unmap fails for split
+ - mm: page_vma_mapped_walk(): use page for pvmw->page
+ - mm: page_vma_mapped_walk(): settle PageHuge on entry
+ - mm: page_vma_mapped_walk(): use pmde for *pvmw->pmd
+ - mm: page_vma_mapped_walk(): prettify PVMW_MIGRATION block
+ - mm: page_vma_mapped_walk(): crossing page table boundary
+ - mm: page_vma_mapped_walk(): add a level of indentation
+ - mm: page_vma_mapped_walk(): use goto instead of while (1)
+ - mm: page_vma_mapped_walk(): get vma_address_end() earlier
+ - mm/thp: fix page_vma_mapped_walk() if THP mapped by ptes
+ - mm/thp: another PVMW_SYNC fix in page_vma_mapped_walk()
+ - mm, futex: fix shared futex pgoff on shmem huge page
+ - scsi: sr: Return appropriate error code when disk is ejected
+ - drm/nouveau: fix dma_address check for CPU/GPU sync
+ - ext4: eliminate bogus error in ext4_data_block_valid_rcu()
+ - kthread_worker: split code for canceling the delayed work timer
+ - kthread: prevent deadlock when kthread_mod_delayed_work() races with
+ kthread_cancel_delayed_work_sync()
+ - xen/events: reset active flag for lateeoi events later
+ - [x86] KVM: SVM: Call SEV Guest Decommission if ASID binding fails
+ - [armhf] OMAP: replace setup_irq() by request_irq()
+ - [armhf] clocksource/drivers/timer-ti-dm: Add clockevent and clocksource
+ support
+ - [armhf] clocksource/drivers/timer-ti-dm: Prepare to handle dra7 timer wrap
+ issue
+ - [armhf] clocksource/drivers/timer-ti-dm: Handle dra7 timer wrap errata
+ i940
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.198
+ - scsi: core: Retry I/O for Notify (Enable Spinup) Required error
+ - ALSA: usb-audio: fix rate on Ozone Z90 USB headset
+ - ALSA: usb-audio: Fix OOB access at proc output
+ - media: dvb-usb: fix wrong definition
+ - Input: usbtouchscreen - fix control-request directions
+ - net: can: ems_usb: fix use-after-free in ems_usb_disconnect()
+ - usb: gadget: eem: fix echo command packet response issue
+ - USB: cdc-acm: blacklist Heimann USB Appset device
+ - [arm64,armhf] usb: dwc3: Fix debugfs creation flow
+ - [x86] usb: typec: Add the missed altmode_id_remove() in
+ typec_register_altmode()
+ - xhci: solve a double free problem while doing s4
+ - iov_iter_fault_in_readable() should do nothing in xarray case
+ - Input: joydev - prevent use of not validated data in JSIOCSBTNMAP ioctl
+ (CVE-2021-3612)
+ - [armel,armhf] arm_pmu: Fix write counter incorrect in ARMv7 big-endian
+ mode
+ - btrfs: send: fix invalid path for unlink operations after parent
+ orphanization
+ - btrfs: clear defrag status of a root if starting transaction fails
+ - ext4: cleanup in-core orphan list if ext4_truncate() failed to get a
+ transaction handle
+ - ext4: fix kernel infoleak via ext4_extent_header
+ - ext4: return error code when ext4_fill_flex_info() fails
+ - ext4: correct the cache_nr in tracepoint ext4_es_shrink_exit
+ - ext4: remove check for zero nr_to_scan in ext4_es_scan()
+ - ext4: fix avefreec in find_group_orlov
+ - ext4: use ext4_grp_locked_error in mb_find_extent
+ - can: gw: synchronize rcu operations before removing gw job entry
+ - can: peak_pciefd: pucan_handle_status(): fix a potential starvation issue
+ in TX path
+ - SUNRPC: Fix the batch tasks count wraparound.
+ - SUNRPC: Should wake up the privileged task firstly.
+ - [s390x] cio: dont call css_wait_for_slow_path() inside a lock
+ - [x86] serial_cs: Add Option International GSM-Ready 56K/ISDN modem
+ - [x86] serial_cs: remove wrong GLOBETROTTER.cis entry
+ - ath9k: Fix kernel NULL pointer dereference during ath_reset_internal()
+ - ssb: sdio: Don't overwrite const buffer if block_write fails
+ - rsi: Assign beacon rate settings to the correct rate_info descriptor field
+ - rsi: fix AP mode with WPA failure due to encrypted EAPOL
+ - tracing/histograms: Fix parsing of "sym-offset" modifier
+ - tracepoint: Add tracepoint_probe_register_may_exist() for BPF tracing
+ - seq_buf: Make trace_seq_putmem_hex() support data longer than 8
+ - [powerpc*] stacktrace: Fix spurious "stale" traces in
+ raise_backtrace_ipi()
+ - fuse: check connected before queueing on fpq->io
+ - spi: Make of_register_spi_device also set the fwnode
+ - [i386] spi: spi-topcliff-pch: Fix potential double free in
+ pch_spi_process_messages()
+ - media: cpia2: fix memory leak in cpia2_usb_probe
+ - media: pvrusb2: fix warning in pvr2_i2c_core_done
+ - [x86] crypto: qat - check return code of qat_hal_rd_rel_reg()
+ - [x86] crypto: qat - remove unused macro in FW loader
+ - sched/fair: Fix ascii art by relpacing tabs
+ - media: em28xx: Fix possible memory leak of em28xx struct
+ - media: v4l2-core: Avoid the dangling pointer in v4l2_fh_release
+ - media: bt8xx: Fix a missing check bug in bt878_probe
+ - media: dvd_usb: memory leak in cinergyt2_fe_attach
+ - mmc: via-sdmmc: add a check against NULL pointer dereference
+ - crypto: shash - avoid comparing pointers to exported functions under CFI
+ - media: dvb_net: avoid speculation from net slot
+ - media: siano: fix device register error path
+ - btrfs: fix error handling in __btrfs_update_delayed_inode
+ - btrfs: abort transaction if we fail to update the delayed inode
+ - btrfs: disable build on platforms having page size 256K
+ - [armhf] regulator: da9052: Ensure enough delay time for
+ .set_voltage_time_sel
+ - HID: do not use down_interruptible() when unbinding devices
+ - ACPI: processor idle: Fix up C-state latency if not ordered
+ - [x86] hv_utils: Fix passing zero to 'PTR_ERR' warning
+ - lib: vsprintf: Fix handling of number field widths in vsscanf
+ - ACPI: EC: Make more Asus laptops use ECDT _GPE
+ - block_dump: remove block_dump feature in mark_inode_dirty()
+ - fs: dlm: cancel work sync othercon
+ - random32: Fix implicit truncation warning in prandom_seed_state()
+ - fs: dlm: fix memory leak when fenced
+ - ACPICA: Fix memory leak caused by _CID repair function
+ - ACPI: bus: Call kobject_put() in acpi_init() error path
+ - [x86] platform/x86: toshiba_acpi: Fix missing error code in
+ toshiba_acpi_setup_keyboard()
+ - clocksource: Retry clock read if long delays detected
+ - HID: wacom: Correct base usage for capacitive ExpressKey status bits
+ - [armhf] sata_highbank: fix deferred probing
+ - [mips*] pata_octeon_cf: avoid WARN_ON() in ata_host_activate()
+ - [x86] crypto: ccp - Fix a resource leak in an error handling path
+ - media: rc: i2c: Fix an error message
+ - media: gspca/gl860: fix zero-length control requests
+ - media: siano: Fix out-of-bounds warnings in
+ smscore_load_firmware_family2()
+ - btrfs: clear log tree recovering status if starting transaction fails
+ - [armhf] spi: spi-sun6i: Fix chipselect/clock bug
+ - ACPI: sysfs: Fix a buffer overrun problem with description_show()
+ - blk-wbt: introduce a new disable state to prevent false positive by
+ rwb_enabled()
+ - blk-wbt: make sure throttle is enabled properly
+ - ocfs2: fix snprintf() checking
+ - [arm64,armhf] net: mvpp2: Put fwnode in error case during ->probe()
+ - [i386] net: pch_gbe: Propagate error from devm_gpio_request_one()
+ - [arm64] drm/rockchip: cdn-dp-core: add missing clk_disable_unprepare() on
+ error in cdn_dp_grf_write()
+ - RDMA/rxe: Fix failure during driver load
+ - drm: qxl: ensure surf.data is ininitialized
+ - ieee802154: hwsim: Fix possible memory leak in hwsim_subscribe_all_others
+ - [arm64] wcn36xx: Move hal_buf allocation to devm_kmalloc in probe
+ - ssb: Fix error return code in ssb_bus_scan()
+ - brcmfmac: fix setting of station info chains bitmask
+ - brcmfmac: correctly report average RSSI in station info
+ - brcmsmac: mac80211_if: Fix a resource leak in an error handling path
+ - ath10k: Fix an error code in ath10k_add_interface()
+ - RDMA/mlx5: Don't add slave port to unaffiliated list
+ - netfilter: nft_exthdr: check for IPv6 packet before further processing
+ - netfilter: nft_osf: check for TCP packet before further processing
+ - netfilter: nft_tproxy: restrict support to TCP and UDP transport protocols
+ - RDMA/rxe: Fix qp reference counting for atomic ops
+ - pkt_sched: sch_qfq: fix qfq_change_class() error path
+ - vxlan: add missing rcu_read_lock() in neigh_reduce()
+ - net/ipv4: swap flow ports when validating source
+ - ieee802154: hwsim: Fix memory leak in hwsim_add_one
+ - ieee802154: hwsim: avoid possible crash in hwsim_del_edge_nl()
+ - mac80211: remove iwlwifi specific workaround NDPs of null_response
+ - ipv6: exthdrs: do not blindly use init_net
+ - bpf: Do not change gso_size during bpf_skb_change_proto()
+ - i40e: Fix error handling in i40e_vsi_open
+ - i40e: Fix autoneg disabling for non-10GBaseT links
+ - ipv6: fix out-of-bound access in ip6_parse_tlv()
+ - Bluetooth: mgmt: Fix slab-out-of-bounds in tlv_data_is_valid
+ - Bluetooth: Fix handling of HCI_LE_Advertising_Set_Terminated event
+ - writeback: fix obtain a reference to a freeing memcg css
+ - net: lwtunnel: handle MTU calculation in forwading
+ - net: sched: fix warning in tcindex_alloc_perfect_hash
+ - RDMA/mlx5: Don't access NULL-cleared mpi pointer
+ - tty: nozomi: Fix a resource leak in an error handling function
+ - mwifiex: re-fix for unaligned accesses
+ - [arm64] ASoC: hisilicon: fix missing clk_disable_unprepare() on error in
+ hi6210_i2s_startup()
+ - [x86] char: pcmcia: error out if 'num_bytes_read' is greater than 4 in
+ set_protocol()
+ - tty: nozomi: Fix the error handling path of 'nozomi_card_init()'
+ - scsi: FlashPoint: Rename si_flags field
+ - serial: 8250: Actually allow UPF_MAGIC_MULTIPLIER baud rates
+ - of: Fix truncation of memory sizes on 32-bit platforms
+ - [armhf] mtd: rawnand: marvell: add missing clk_disable_unprepare() on
+ error in marvell_nfc_resume()
+ - scsi: mpt3sas: Fix error return value in _scsih_expander_add()
+ - configfs: fix memleak in configfs_release_bin_file
+ - [powerpc*] Offline CPU in stop_this_cpu()
+ - [arm64] serial: mvebu-uart: correctly calculate minimal possible baudrate
+ - vfio/pci: Handle concurrent vma faults
+ - mm/huge_memory.c: don't discard hugepage if other processes are mapping it
+ - mmc: block: Disable CMDQ on the ioctl path
+ - mmc: vub3000: fix control-request direction
+ - drm/amd/amdgpu/sriov disable all ip hw status by default
+ - [i386] net: pch_gbe: Use proper accessors to BE data in pch_ptp_match()
+ - hugetlb: clear huge pte during flush function on mips platform
+ - atm: iphase: fix possible use-after-free in ia_module_exit()
+ - mISDN: fix possible use-after-free in HFC_cleanup()
+ - atm: nicstar: Fix possible use-after-free in nicstar_cleanup()
+ - net: Treat __napi_schedule_irqoff() as __napi_schedule() on PREEMPT_RT
+ - reiserfs: add check for invalid 1st journal block
+ - drm/virtio: Fix double free on probe failure
+ - udf: Fix NULL pointer dereference in udf_symlink function
+ - e100: handle eeprom as little endian
+ - [arm64,armhf] clk: tegra: Ensure that PLLU configuration is applied
+ properly
+ - ipv6: use prandom_u32() for ID generation
+ - RDMA/cxgb4: Fix missing error code in create_qp()
+ - dm space maps: don't reset space map allocation cursor when committing
+ - [armhf] pinctrl: mcp23s08: fix race condition in irq handler
+ - ice: set the value of global config lock timeout longer
+ - virtio_net: Remove BUG() to avoid machine dead
+ - [arm64,armhf] net: mvpp2: check return value after calling
+ platform_get_resource()
+ - [amd64] fjes: check return value after calling platform_get_resource()
+ - selinux: use __GFP_NOWARN with GFP_NOWAIT in the AVC
+ - xfrm: Fix error reporting in xfrm_state_construct.
+ - [arm64,armhf] wlcore/wl12xx: Fix wl12xx get_mac error if device is in ELP
+ - [arm64,armhf] wl1251: Fix possible buffer overflow in wl1251_cmd_scan
+ - net: fix mistake path for netdev_features_strings
+ - rtl8xxxu: Fix device info for RTL8192EU devices
+ - atm: nicstar: use 'dma_free_coherent' instead of 'kfree'
+ - atm: nicstar: register the interrupt handler in the right place
+ - vsock: notify server to shutdown when client has pending signal
+ - RDMA/rxe: Don't overwrite errno from ib_umem_get()
+ - iwlwifi: mvm: don't change band on bound PHY contexts
+ - iwlwifi: pcie: free IML DMA memory allocation
+ - sfc: avoid double pci_remove of VFs
+ - sfc: error code if SRIOV cannot be disabled
+ - wireless: wext-spy: Fix out-of-bounds warning
+ - net: ip: avoid OOM kills with large UDP sends over loopback
+ - RDMA/cma: Fix rdma_resolve_route() memory leak
+ - Bluetooth: Fix the HCI to MGMT status conversion table
+ - Bluetooth: Shutdown controller after workqueues are flushed or cancelled
+ - Bluetooth: btusb: fix bt fiwmare downloading failure issue for qca btsoc.
+ - sctp: validate from_addr_param return (CVE-2021-3655)
+ - sctp: add size validation when walking chunks (CVE-2021-3655)
+ - fscrypt: don't ignore minor_hash when hash is 0
+ - bdi: Do not use freezable workqueue
+ - [arm64] serial: mvebu-uart: clarify the baud rate derivation
+ - [arm64] serial: mvebu-uart: fix calculation of clock divisor
+ - fuse: reject internal errno
+ - [powerpc*] barrier: Avoid collision with clang's __lwsync macro
+ - usb: gadget: f_fs: Fix setting of device and driver data cross-references
+ - drm/radeon: Add the missed drm_gem_object_put() in
+ radeon_user_framebuffer_create()
+ - pinctrl/amd: Add device HID for new AMD GPIO controller
+ - [arm64] drm/msm/mdp4: Fix modifier support enabling
+ - mmc: sdhci: Fix warning message when accessing RPMB in HS400 mode
+ - mmc: core: clear flags before allowing to retune
+ - mmc: core: Allow UHS-I voltage switch for SDSC cards if supported
+ - [armhf] ata: ahci_sunxi: Disable DIPM
+ - cpu/hotplug: Cure the cpusets trainwreck
+ - [arm64,armhf] clocksource/arm_arch_timer: Improve Allwinner A64 timer
+ workaround
+ - [arm64,armhf] ASoC: tegra: Set driver_name=tegra for all machine drivers
+ - qemu_fw_cfg: Make fw_cfg_rev_attr a proper kobj_attribute
+ - ipmi/watchdog: Stop watchdog timer when the current action is 'none'
+ - seq_buf: Fix overflow in seq_buf_putmem_hex()
+ - tracing: Simplify & fix saved_tgids logic
+ - tracing: Resize tgid_map to pid_max, not PID_MAX_DEFAULT
+ - dm btree remove: assign new_root only when removal succeeds
+ - PCI: Leave Apple Thunderbolt controllers on for s2idle or standby
+ - [arm64] PCI: aardvark: Fix checking for PIO Non-posted Request
+ - media: subdev: disallow ioctl for saa6588/davinci
+ - media: dtv5100: fix control-request directions
+ - media: zr364xx: fix memory leak in zr364xx_start_readpipe
+ - media: gspca/sq905: fix control-request direction
+ - media: gspca/sunplus: fix zero-length control requests
+ - media: uvcvideo: Fix pixel format change for Elgato Cam Link 4K
+ - [armhf] pinctrl: mcp23s08: Fix missing unlock on error in mcp23s08_irq()
+ - jfs: fix GPF in diFree
+ - [x86] KVM: x86: Use guest MAXPHYADDR from CPUID.0x8000_0008 iff TDP is
+ enabled
+ - [x86] KVM: X86: Disable hardware breakpoints unconditionally before
+ kvm_x86->run()
+ - scsi: core: Fix bad pointer dereference when ehandler kthread is invalid
+ - tracing: Do not reference char * as a string in histograms
+ - [arm64] PCI: aardvark: Don't rely on jiffies while holding spinlock
+ - [arm64] PCI: aardvark: Fix kernel panic during PIO transfer
+ - [x86] misc/libmasm/module: Fix two use after free in ibmasm_init_one
+ - Revert "ALSA: bebob/oxfw: fix Kconfig entry for Mackie d.2 Pro"
+ - w1: ds2438: fixing bug that would always get page0
+ - scsi: lpfc: Fix "Unexpected timeout" error in direct attach topology
+ - scsi: lpfc: Fix crash when lpfc_sli4_hba_setup() fails to initialize the
+ SGLs
+ - scsi: core: Cap scsi_host cmd_per_lun at can_queue
+ - [x86] tty: serial: 8250: serial_cs: Fix a memory leak in error handling
+ path
+ - scsi: scsi_dh_alua: Check for negative result value
+ - fs/jfs: Fix missing error code in lmLogInit()
+ - scsi: iscsi: Add iscsi_cls_conn refcount helpers
+ - scsi: iscsi: Fix conn use after free during resets
+ - scsi: iscsi: Fix shost->max_id use
+ - scsi: qedi: Fix null ref during abort handling
+ - [armhf] mfd: da9052/stmpe: Add and modify MODULE_DEVICE_TABLE
+ - [s390x] sclp_vt220: fix console name to match device (Closes: #961056)
+ - [i386] ALSA: sb: Fix potential double-free of CSP mixer elements
+ - [powerpc*] ps3: Add dma_mask to ps3_dma_region
+ - [arm64] gpio: zynq: Check return value of pm_runtime_get_sync
+ - [arm64,armhf] gpio: pca953x: Add support for the On Semi pca9655
+ - ASoC: soc-core: Fix the error return code in
+ snd_soc_of_parse_audio_routing()
+ - ALSA: bebob: add support for ToneWeal FW66
+ - usb: gadget: f_hid: fix endianness issue with descriptors
+ - [powerpc*] boot: Fixup device-tree on little endian
+ - [arm64,armhf] ALSA: hda: Add IRQ check for platform_get_irq()
+ - [x86] intel_th: Wait until port is in reset before programming it
+ - i2c: core: Disable client irq on reboot/shutdown
+ - lib/decompress_unlz4.c: correctly handle zero-padding around initrds.
+ - [x86] power: supply: max17042: Do not enforce (incorrect) interrupt
+ trigger type
+ - [armel,armhf] power: reset: gpio-poweroff: add missing MODULE_DEVICE_TABLE
+ - [x86] watchdog: Fix possible use-after-free in wdt_startup()
+ - [x86] watchdog: Fix possible use-after-free by calling del_timer_sync()
+ - [x86] watchdog: iTCO_wdt: Account for rebooting on second timeout
+ - [x86] fpu: Return proper error codes from user access functions
+ - [arm64,armhf] PCI: tegra: Add missing MODULE_DEVICE_TABLE
+ - orangefs: fix orangefs df output.
+ - ceph: remove bogus checks and WARN_ONs from ceph_set_page_dirty
+ - NFS: nfs_find_open_context() may only select open files
+ - [arm64,armhf] pwm: tegra: Don't modify HW state in .remove callback
+ - [arm64] ACPI: AMBA: Fix resource name in /proc/iomem
+ - [x86] ACPI: video: Add quirk for the Dell Vostro 3350
+ - virtio-blk: Fix memory leak among suspend/resume procedure
+ - virtio_net: Fix error handling in virtnet_restore()
+ - virtio_console: Assure used length from device is limited (CVE-2021-38160)
+ - f2fs: add MODULE_SOFTDEP to ensure crc32 is included in the initramfs
+ - PCI/sysfs: Fix dsm_label_utf16s_to_utf8s() buffer overrun
+ - NFSv4: Initialise connection to the server in nfs4_alloc_client()
+ (CVE-2021-38199)
+ - nfs: fix acl memory leak of posix_acl_create()
+ - ubifs: Set/Clear I_LINKABLE under i_lock for whiteout inode
+ - [x86] fpu: Limit xstate copy size in xstateregs_set()
+ - virtio_net: move tx vq operation under tx queue lock
+ - [i386] ALSA: isa: Fix error return code in snd_cmi8330_probe()
+ - NFSv4/pNFS: Don't call _nfs4_pnfs_v3_ds_connect multiple times
+ - rtc: fix snprintf() checking in is_rtc_hctosys()
+ - [arm64,armhf] reset: bail if try_module_get() fails
+ - [armhf] dts: am335x: align ti,pindir-d0-out-d1-in property with dt-shema
+ - scsi: be2iscsi: Fix an error handling path in beiscsi_dev_probe()
+ - net: bridge: multicast: fix PIM hello router port marking race
+ - scsi: scsi_dh_alua: Fix signedness bug in alua_rtpg()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.199
+ - [armhf] dts: rockchip: fix pinctrl sleep nodename for rk3036-kylin and
+ rk3288
+ - [armhf] imx: pm-imx5: Fix references to imx5_cpu_suspend_info
+ - [armhf] dts: rockchip: fix supply properties in io-domains nodes
+ - [arm64,armhf] soc/tegra: fuse: Fix Tegra234-only builds
+ - thermal/core: Correct function name thermal_zone_device_unregister()
+ - [arm64,armhf] rtc: max77686: Do not enforce (incorrect) interrupt trigger
+ type
+ - scsi: aic7xxx: Fix unintentional sign extension issue on left shift of u8
+ - scsi: libsas: Add LUN number check in .slave_alloc callback
+ - scsi: libfc: Fix array index out of bound exception
+ - sched/fair: Fix CFS bandwidth hrtimer expiry type
+ - mm: slab: fix kmem_cache_create failed when sysfs node not destroyed
+ - dm writecache: return the exact table values that were set
+ - dm writecache: fix writing beyond end of underlying device when shrinking
+ - [arm64,armhf] net: dsa: mv88e6xxx: enable .rmu_disable() on Topaz
+ - net: ipv6: fix return value of ip6_skb_dst_mtu
+ - netfilter: ctnetlink: suspicious RCU usage in ctnetlink_dump_helpinfo
+ - net: bridge: sync fdb to new unicast-filtering ports
+ - [arm64] net: qcom/emac: fix UAF in emac_remove
+ - net: ti: fix UAF in tlan_remove_one
+ - net: send SYNACK packet with accepted fwmark
+ - net: validate lwtstate->data before returning from skb_tunnel_info()
+ - dma-buf/sync_file: Don't leak fences on merge failure
+ - tcp: annotate data races around tp->mtu_info
+ - ipv6: tcp: drop silly ICMPv6 packet too big messages
+ - udp: annotate data races around unix_sk(sk)->gso_size
+ - net: ip_tunnel: fix mtu calculation for ETHER tunnel devices
+ - igb: Fix use-after-free error during reset
+ - ixgbe: Fix an error handling path in 'ixgbe_probe()'
+ - igb: Fix an error handling path in 'igb_probe()'
+ - e1000e: Fix an error handling path in 'e1000_probe()'
+ - iavf: Fix an error handling path in 'iavf_probe()'
+ - igb: Check if num of q_vectors is smaller than max before array access
+ - igb: Fix position of assignment to *ring
+ - ipv6: fix 'disable_policy' for fwd packets
+ - nvme-pci: do not call nvme_dev_remove_admin from nvme_remove
+ - liquidio: Fix unintentional sign extension issue on left shift of u16
+ - net: fix uninit-value in caif_seqpkt_sendmsg
+ - net: decnet: Fix sleeping inside in af_decnet
+ - [powerpc*] KVM: PPC: Fix kvm_arch_vcpu_ioctl vcpu_load leak
+ - netrom: Decrease sock refcount when sock timers expire
+ - scsi: iscsi: Fix iface sysfs attr detection
+ - scsi: target: Fix protect handling in WRITE SAME(32)
+ - net/tcp_fastopen: fix data races around tfo_active_disable_stamp
+ - net/sched: act_skbmod: Skip non-Ethernet packets
+ - nvme-pci: don't WARN_ON in nvme_reset_work if ctrl.state is not RESETTING
+ - Revert "USB: quirks: ignore remote wake-up on Fibocom L850-GL LTE modem"
+ - sctp: update active_key for asoc when old key is being replaced
+ - net: sched: cls_api: Fix the the wrong parameter
+ - [arm64,armhf] drm/panel: raspberrypi-touchscreen: Prevent double-free
+ - proc: Avoid mixing integer types in mem_rw()
+ - [s390x] ftrace: fix ftrace_update_ftrace_func implementation
+ - ALSA: usb-audio: Add registration quirk for JBL Quantum headsets
+ - [i386] ALSA: sb: Fix potential ABBA deadlock in CSP driver
+ - xhci: Fix lost USB 2 remote wake
+ - [powerpc*] KVM: PPC: Book3S: Fix H_RTAS rets buffer overflow
+ (CVE-2021-37576)
+ - usb: hub: Disable USB 3 device initiated lpm if exit latency is too high
+ - usb: hub: Fix link power management max exit latency (MEL) calculations
+ - USB: usb-storage: Add LaCie Rugged USB3-FW to IGNORE_UAS
+ - USB: serial: option: add support for u-blox LARA-R6 family
+ - USB: serial: cp210x: fix comments for GE CS1000
+ - USB: serial: cp210x: add ID for CEL EM3588 USB ZigBee stick
+ - [arm*] usb: dwc2: gadget: Fix sending zero length packet in DDMA mode.
+ - tracing: Fix bug in rb_per_cpu_empty() that might cause deadloop.
+ (CVE-2021-3679)
+ - media: ngene: Fix out-of-bounds bug in ngene_command_config_free_buf()
+ - ixgbe: Fix packet corruption due to missing DMA sync
+ - drm: Return -ENOTTY for non-drm ioctls
+ - KVM: do not assume PTE is writable after follow_pfn
+ - KVM: do not allow mapping valid but non-reference-counted pages
+ (CVE-2021-22543)
+ - KVM: Use kvm_pfn_t for local PFN variable in hva_to_pfn_remapped()
+ - [arm64,armhf] net: dsa: mv88e6xxx: use correct .stats_set_histogram() on
+ Topaz
+ - btrfs: compression: don't try to compress if we don't have enough pages
+ - PCI: Mark AMD Navi14 GPU ATS as broken
+ - xhci: add xhci_get_virt_ep() helper
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.200
+ - [x86] KVM: determine if an exception has an error code only when injecting
+ it.
+ - net: split out functions related to registering inflight socket files
+ - af_unix: fix garbage collect vs MSG_PEEK
+ - workqueue: fix UAF in pwq_unbound_release_workfn()
+ - net/802/mrp: fix memleak in mrp_request_join()
+ - net/802/garp: fix memleak in garp_request_join()
+ - net: annotate data race around sk_ll_usec
+ - sctp: move 198 addresses from unusable to private scope
+ - hfs: add missing clean-up in hfs_fill_super
+ - hfs: fix high memory mapping in hfs_bnode_read
+ - hfs: add lock nesting notation to hfs_find_init
+ - cifs: fix the out of range assignment to bit fields in
+ parse_server_interfaces
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.201
+ - virtio_net: Do not pull payload in skb->head
+ - gro: ensure frag0 meets IP header alignment
+ - [x86] asm: Ensure asm/proto.h can be included stand-alone
+ - btrfs: fix rw device counting in __btrfs_free_extra_devids
+ - [x86] kvm: fix vcpu-id indexed array sizes
+ - ocfs2: fix zero out valid data
+ - ocfs2: issue zeroout to EOF blocks
+ - can: raw: raw_setsockopt(): fix raw_rcv panic for sock UAF
+ - can: mcba_usb_start(): add missing urb->transfer_dma initialization
+ - can: usb_8dev: fix memory leak
+ - can: ems_usb: fix memory leak
+ - can: esd_usb2: fix memory leak
+ - NIU: fix incorrect error return, missed in previous revert
+ - nfc: nfcsim: fix use after free during module unload
+ - cfg80211: Fix possible memory leak in function cfg80211_bss_update
+ - netfilter: conntrack: adjust stop timestamp to real expiry value
+ - netfilter: nft_nat: allow to specify layer 4 protocol NAT only
+ - i40e: Fix logic of disabling queues
+ - i40e: Fix log TC creation failure when max num of queues is exceeded
+ - tipc: fix sleeping in tipc accept routine
+ - mlx4: Fix missing error code in mlx4_load_one()
+ - net: llc: fix skb_over_panic
+ - net/mlx5: Fix flow table chaining
+ - sctp: fix return value check in __sctp_rcv_asconf_lookup
+ - tulip: windbond-840: Fix missing pci_disable_device() in probe and remove
+ - sis900: Fix missing pci_disable_device() in probe and remove
+ - [powerpc*] pseries: Fix regression while building external modules
+ - i40e: Add additional info to PHY type error
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.202
+ - btrfs: mark compressed range uptodate only if all bio succeed
+ - r8152: Fix potential PM refcount imbalance
+ - qed: fix possible unpaired spin_{un}lock_bh in _qed_mcp_cmd_and_union()
+ - net: Fix zero-copy head len calculation.
+ - bdi: move bdi_dev_name out of line
+ - bdi: use bdi_dev_name() to get device name
+ - bdi: add a ->dev_name field to struct backing_dev_info
+ - Revert "Bluetooth: Shutdown controller after workqueues are flushed or
+ cancelled"
+ - [x86] Revert "watchdog: iTCO_wdt: Account for rebooting on second timeout"
+ - padata: validate cpumask without removed CPU during offline
+ - padata: add separate cpuhp node for CPUHP_PADATA_DEAD
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.203
+ - Revert "ACPICA: Fix memory leak caused by _CID repair function"
+ - ALSA: seq: Fix racy deletion of subscriber
+ - [armhf] imx: add missing iounmap()
+ - ALSA: usb-audio: fix incorrect clock source setting
+ - scsi: sr: Return correct event when media event code is 3
+ - media: videobuf2-core: dequeue if start_streaming fails
+ - net: natsemi: Fix missing pci_disable_device() in probe and remove
+ - sctp: move the active_key update after sh_keys is added
+ - nfp: update ethtool reporting of pauseframe control
+ - net: ipv6: fix returned variable type in ip6_skb_dst_mtu
+ - bnx2x: fix an error code in bnx2x_nic_load()
+ - net: pegasus: fix uninit-value in get_interrupt_interval
+ - [armhf] net: fec: fix use-after-free in fec_drv_remove
+ - net: vxge: fix use-after-free in vxge_device_unregister
+ - Bluetooth: defer cleanup of resources in hci_unregister_dev()
+ - USB: usbtmc: Fix RCU stall warning
+ - USB: serial: option: add Telit FD980 composition 0x1056
+ - USB: serial: ch341: fix character loss at high transfer rates
+ - USB: serial: ftdi_sio: add device ID for Auto-M3 OP-COM v2
+ - firmware_loader: use -ETIMEDOUT instead of -EAGAIN in
+ fw_load_sysfs_fallback
+ - firmware_loader: fix use-after-free in firmware_fallback_sysfs
+ - ALSA: usb-audio: Add registration quirk for JBL Quantum 600
+ - usb: gadget: f_hid: added GET_IDLE and SET_IDLE handlers
+ - usb: gadget: f_hid: fixed NULL pointer dereference
+ - usb: gadget: f_hid: idle uses the highest byte for duration
+ - tracing/histogram: Rename "cpu" to "common_cpu"
+ - [arm64] optee: Clear stale cache entries during initialization
+ - staging: rtl8723bs: Fix a resource leak in sd_int_dpc
+ - media: rtl28xxu: fix zero-length control request
+ - pipe: increase minimum default pipe size to 2 pages
+ - ext4: fix potential htree corruption when growing large_dir directories
+ - serial: 8250: Mask out floating 16/32-bit bus bits
+ - [mips*] Malta: Do not byte-swap accesses to the CBUS UART
+ - [x86] pcmcia: i82092: fix a null pointer dereference bug
+ - [x86] KVM: accept userspace interrupt only if no event is injected
+ - [x86] KVM: x86/mmu: Fix per-cpu counter corruption on 32-bit builds
+ - [armhf] spi: meson-spicc: fix memory leak in meson_spicc_remove
+ - qmi_wwan: add network device usage statistics for qmimux devices
+ - libata: fix ata_pio_sector for CONFIG_HIGHMEM
+ - reiserfs: add check for root_inode in reiserfs_fill_super
+ - reiserfs: check directory items on read from disk
+ - net/qla3xxx: fix schedule while atomic in ql_wait_for_drvr_lock and
+ ql_adapter_reset
+ - [armhf] imx: add mmdc ipg clock operation for mmdc
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.204
+ - [x86] KVM: SVM: Fix off-by-one indexing when nullifying last used SEV VMCB
+ - bpf: Inherit expanded/patched seen count from old aux data
+ (CVE-2021-33624)
+ - bpf: Do not mark insn as seen under speculative path verification
+ (CVE-2021-33624)
+ - bpf: Fix leakage under speculation on mispredicted branches
+ (CVE-2021-33624)
+ - [x86] KVM: MMU: Use the correct inherited permissions to get shadow page
+ (CVE-2021-38198)
+ - USB:ehci:fix Kunpeng920 ehci hardware problem
+ - ppp: Fix generating ppp unit id when ifname is not specified
+ - ovl: prevent private clone if bind mount is not allowed CVE-2021-3732)
+ - net: xilinx_emaclite: Do not print real IOMEM pointer (CVE-2021-38205)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.205
+ - [x86] ASoC: intel: atom: Fix reference to PCM buffer address
+ - i2c: dev: zero out array used for i2c reads from userspace
+ - [amd64,arm64] ACPI: NFIT: Fix support for virtual SPA ranges
+ - ieee802154: hwsim: fix GPF in hwsim_set_edge_lqi
+ - ieee802154: hwsim: fix GPF in hwsim_new_edge_nl
+ - ppp: Fix generating ifname when empty IFLA_IFNAME is specified
+ - net: Fix memory leak in ieee802154_raw_deliver
+ - net: igmp: fix data-race in igmp_ifc_timer_expire()
+ - net: bridge: fix memleak in br_add_if()
+ - tcp_bbr: fix u32 wrap bug in round logic if bbr_init() called after 2B
+ packets
+ - net: igmp: increase size of mr_ifc_count
+ - xen/events: Fix race in set_evtchn_to_irq
+ - vsock/virtio: avoid potential deadlock when vsock device remove
+ - [powerpc*] kprobes: Fix kprobe Oops happens in booke
+ - genirq: Provide IRQCHIP_AFFINITY_PRE_STARTUP
+ - [x86] msi: Force affinity setup before startup
+ - [x86] ioapic: Force affinity setup before startup
+ - genirq/msi: Ensure deactivation on teardown
+ - PCI/MSI: Enable and mask MSI-X early
+ - PCI/MSI: Do not set invalid bits in MSI mask
+ - PCI/MSI: Correct misleading comments
+ - PCI/MSI: Use msi_mask_irq() in pci_msi_shutdown()
+ - PCI/MSI: Protect msi_desc::masked for multi-MSI
+ - PCI/MSI: Mask all unused MSI-X entries
+ - PCI/MSI: Enforce that MSI-X table entry is masked for update
+ - PCI/MSI: Enforce MSI[X] entry updates to be visible
+ - [amd64] iommu/vt-d: Fix agaw for a supported 48 bit guest address width
+ - mac80211: drop data frames without key on encrypted links
+ - [x86] KVM: nSVM: always intercept VMLOAD/VMSAVE when nested
+ (CVE-2021-3656)
+ - [x86] KVM: nSVM: avoid picking up unsupported bits from L2 in int_ctl
+ (CVE-2021-3653)
+ - [x86] fpu: Make init_fpstate correct with optimized XSAVE
+ - ath: Use safer key clearing with key cache entries (CVE-2020-3702)
+ - ath9k: Clear key cache explicitly on disabling hardware (CVE-2020-3702)
+ - ath: Export ath_hw_keysetmac() (CVE-2020-3702)
+ - ath: Modify ath_key_delete() to not need full key entry (CVE-2020-3702)
+ - ath9k: Postpone key cache entry deletion for TXQ frames reference it
+ (CVE-2020-3702)
+ - dmaengine: of-dma: router_xlate to return -EPROBE_DEFER if controller is
+ not yet available
+ - scsi: megaraid_mm: Fix end of loop tests for list_for_each_entry()
+ - scsi: scsi_dh_rdac: Avoid crash during rdac_bus_attach()
+ - scsi: core: Avoid printing an error if target_alloc() returns -ENXIO
+ - net: usb: lan78xx: don't modify phy_device state concurrently
+ - Bluetooth: hidp: use correct wait queue when removing ctrl_wait
+ - [arm64] cpufreq: armada-37xx: forbid cpufreq for 1.2 GHz variant
+ - vhost: Fix the calculation in vhost_overflow()
+ - bnxt: don't lock the tx queue from napi poll
+ - bnxt: disable napi before canceling DIM
+ - net: 6pack: fix slab-out-of-bounds in decode_data
+ - net: qlcnic: add missed unlock in qlcnic_83xx_flash_read32
+ - [arm64,armhf] net: mdio-mux: Don't ignore memory allocation errors
+ - [arm64,armhf] net: mdio-mux: Handle -EPROBE_DEFER correctly
+ - [arm64,armhf] mmc: dw_mmc: Fix hang on data CRC error
+ - ALSA: hda - fix the 'Capture Switch' value change notifications
+ - btrfs: prevent rename2 from exchanging a subvol with a directory from
+ different parents
+ - PCI: Increase D3 delay for AMD Renoir/Cezanne XHCI
+ - [x86] ASoC: intel: atom: Fix breakage for PCM buffer address setup
+ - locks: print a warning when mount fails due to lack of "mand" support
+ - fs: warn about impending deprecation of mandatory locks
+ - netfilter: nft_exthdr: fix endianness of tcp option cast
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.206
+ - net: qrtr: fix another OOB Read in qrtr_endpoint_post (CVE-2021-3743)
+ - bpf: Do not use ax register in interpreter on div/mod
+ - bpf: Fix 32 bit src register truncation on div/mod (CVE-2021-3600)
+ - bpf: Fix truncation handling for mod32 dst reg wrt zero (CVE-2021-3444)
+ - netfilter: conntrack: collect all entries in one cycle
+ - once: Fix panic when module unload
+ - can: usb: esd_usb2: esd_usb2_rx_event(): fix the interchange of the CAN RX
+ and TX error counters
+ - Revert "USB: serial: ch341: fix character loss at high transfer rates"
+ - USB: serial: option: add new VID/PID to support Fibocom FG150
+ - [arm64,armhf] usb: dwc3: gadget: Fix dwc3_calc_trbs_left()
+ - [arm64,armhf] usb: dwc3: gadget: Stop EP0 transfers during pullup disable
+ - [amd64] IB/hfi1: Fix possible null-pointer dereference in
+ _extend_sdma_tx_descs()
+ - e1000e: Fix the max snoop/no-snoop latency for 10M
+ - ip_gre: add validation for csum_start
+ - [arm64] xgene-v2: Fix a resource leak in the error handling path of
+ 'xge_probe()'
+ - [arm64,armhf] net: marvell: fix MVNETA_TX_IN_PRGRS bit number
+ - [arm64] net: hns3: fix get wrong pfc_en when query PFC configuration
+ - usb: gadget: u_audio: fix race condition on endpoint stop
+ - opp: remove WARN when no valid OPPs remain
+ - virtio: Improve vq->broken access to avoid any compiler optimization
+ - virtio_pci: Support surprise removal of virtio pci device
+ - [amd64] vringh: Use wiov->used to check for read/write desc order
+ - qed: qed ll2 race condition fixes
+ - qed: Fix null-pointer dereference in qed_rdma_create_qp()
+ - drm: Copy drm_wait_vblank to user before returning
+ - drm/nouveau/disp: power down unused DP links during init
+ - net/rds: dma_map_sg is entitled to merge entries
+ - vt_kdsetmode: extend console locking (CVE-2021-3753)
+ - fbmem: add margin check to fb_check_caps()
+ - [x86] KVM: x86/mmu: Treat NX as used (not reserved) for all !TDP shadow
+ MMUs
+ - Revert "floppy: reintroduce O_NDELAY fix"
+ - net: don't unconditionally copy_from_user a struct ifreq for socket ioctls
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.207
+ - ext4: fix race writing to an inline_data file while its xattrs are
+ changing (CVE-2021-40490)
+ - [armhf] gpu: ipu-v3: Fix i.MX IPU-v3 offset calculations for (semi)planar
+ U/V formats
+ - qed: Fix the VF msix vectors flow
+ - [arm64] net: macb: Add a NULL check on desc_ptp
+ - qede: Fix memset corruption
+ - [x86] perf/x86/intel/pt: Fix mask of num_address_ranges
+ - [x86] perf/x86/amd/ibs: Work around erratum #1197
+ - [armel,armhf] 8918/2: only build return_address() if needed
+ - ALSA: pcm: fix divide error in snd_pcm_lib_ioctl
+ - clk: fix build warning for orphan_list
+ - media: stkwebcam: fix memory leak in stk_camera_probe
+ - [armhf] imx: add missing clk_disable_unprepare()
+ - [armhf] imx: fix missing 3rd argument in macro imx_mmdc_perf_init
+ - igmp: Add ip_mc_list lock in ip_check_mc_rcu
+ - ipv4/icmp: l3mdev: Perform icmp error route lookup on source device
+ routing table (v2)
+ - SUNRPC/nfs: Fix return value for nfs4_callback_compound()
+ - [powerpc*] module64: Fix comment in R_PPC64_ENTRY handling
+ - [powerpc*] boot: Delete unneeded .globl _zimage_start
+ - mm/page_alloc: speed up the iteration of max_order
+ - Revert "btrfs: compression: don't try to compress if we don't have enough
+ pages"
+ - ALSA: usb-audio: Add registration quirk for JBL Quantum 800
+ - [x86] reboot: Limit Dell Optiplex 990 quirk to early BIOS versions
+ - PCI: Call Max Payload Size-related fixup quirks early
+ - locking/mutex: Fix HANDOFF condition
+ - regmap: fix the offset of register error log
+ - sched/deadline: Fix reset_on_fork reporting of DL tasks
+ - power: supply: axp288_fuel_gauge: Report register-address on readb /
+ writeb errors
+ - sched/deadline: Fix missing clock update in migrate_task_rq_dl()
+ - hrtimer: Avoid double reprogramming in __hrtimer_start_range_ns()
+ - udf: Check LVID earlier
+ - isofs: joliet: Fix iocharset=utf8 mount option
+ - bcache: add proper error unwinding in bcache_device_init
+ - nvme-rdma: don't update queue count when failing to set io queues
+ - [x86] power: supply: max17042_battery: fix typo in MAx17042_TOFF
+ - [s390x] cio: add dev_busid sysfs entry for each subchannel
+ - libata: fix ata_host_start()
+ - [x86] crypto: qat - do not ignore errors from enable_vf2pf_comms()
+ - [x86] crypto: qat - handle both source of interrupt in VF ISR
+ - [x86] crypto: qat - fix reuse of completion variable
+ - [x86] crypto: qat - fix naming for init/shutdown VF to PF notifications
+ - [x86] crypto: qat - do not export adf_iov_putmsg()
+ - fcntl: fix potential deadlock for &fasync_struct.fa_lock
+ - udf_get_extendedattr() had no boundary checks.
+ - lib/mpi: use kcalloc in mpi_resize
+ - [x86] crypto: qat - use proper type for vf_mask
+ - media: dvb-usb: fix uninit-value in dvb_usb_adapter_dvb_init
+ - media: dvb-usb: fix uninit-value in vp702x_read_mac_addr
+ - media: go7007: remove redundant initialization
+ - Bluetooth: sco: prevent information leak in sco_conn_defer_accept()
+ - tcp: seq_file: Avoid skipping sk during tcp_seek_last_pos
+ - media: em28xx-input: fix refcount bug in em28xx_usb_disconnect
+ - [arm64] media: venus: venc: Fix potential null pointer dereference on
+ pointer fmt
+ - PCI: PM: Avoid forcing PCI_D0 for wakeup reasons inconsistently
+ - PCI: PM: Enable PME if it can be signaled from D3cold
+ - Bluetooth: increase BTNAMSIZ to 21 chars to fix potential buffer overflow
+ - [arm64] drm/msm/dpu: make dpu_hw_ctl_clear_all_blendstages clear necessary
+ LMs
+ - Bluetooth: fix repeated calls to sco_sock_kill
+ - [arm64] drm/msm/dsi: Fix some reference counted resource leaks
+ - [armhf] usb: phy: twl6030: add IRQ checks
+ - Bluetooth: Move shutdown callback before flushing tx and rx queue
+ - mac80211: Fix insufficient headroom issue for AMSDU
+ - Bluetooth: add timeout sanity check to hci_inquiry
+ - [armhf] i2c: s3c2410: fix IRQ check
+ - [arm64,armhf] mmc: dw_mmc: Fix issue with uninitialized dma_slave_config
+ - CIFS: Fix a potencially linear read overflow
+ - [arm*] usb: ehci-orion: Handle errors of clk_prepare_enable() in probe
+ - ath6kl: wmi: fix an error code in ath6kl_wmi_sync_point()
+ - bcma: Fix memory leak for internally-handled cores
+ - ipv4: make exception cache less predictible
+ - net: sched: Fix qdisc_rate_table refcount leak when get tcf_block failed
+ - ipv4: fix endianness issue in inet_rtm_getroute_build_skb()
+ - netns: protect netns ID lookups with RCU
+ - fscrypt: add fscrypt_symlink_getattr() for computing st_size
+ - ext4: report correct st_size for encrypted symlinks
+ - f2fs: report correct st_size for encrypted symlinks
+ - ubifs: report correct st_size for encrypted symlinks
+ - tty: Fix data race between tiocsti() and flush_to_ldisc()
+ - [x86] KVM: Update vCPU's hv_clock before back to guest when tsc_offset is
+ adjusted
+ - fbmem: don't allow too huge resolutions
+ - [arm64,armhf] backlight: pwm_bl: Improve bootloader/kernel device handover
+ - [armel] clk: kirkwood: Fix a clocking boot regression
+ - btrfs: reset replace target device to allocation state on close
+ - blk-zoned: allow zone management send operations without CAP_SYS_ADMIN
+ - blk-zoned: allow BLKREPORTZONE without CAP_SYS_ADMIN
+ - PCI/MSI: Skip masking MSI-X on Xen PV
+ - [powerpc*] perf/hv-gpci: Fix counter value parsing
+ - xen: fix setting of max_pfn in shared_info
+ - 9p/xen: Fix end of loop tests for list_for_each_entry
+ - bpf/verifier: per-register parent pointers
+ - bpf: correct slot_type marking logic to allow more stack slot sharing
+ - bpf: Support variable offset stack access from helpers
+ - bpf: Reject indirect var_off stack access in raw mode
+ - bpf: Reject indirect var_off stack access in unpriv mode
+ - bpf: Sanity check max value for var_off stack access
+ - bpf: track spill/fill of constants
+ - bpf: Introduce BPF nospec instruction for mitigating Spectre v4
+ (CVE-2021-34556, CVE-2021-35477)
+ - bpf: Fix leakage due to insufficient speculative store bypass mitigation
+ (CVE-2021-34556, CVE-2021-35477)
+ - bpf: verifier: Allocate idmap scratch in verifier env
+ - bpf: Fix pointer arithmetic mask tightening under state pruning
+ - [arm64] head: avoid over-mapping in map_memory
+ - block: bfq: fix bfq_set_next_ioprio_data()
+ - [x86] power: supply: max17042: handle fails of reading status register
+ - dm crypt: Avoid percpu_counter spinlock contention in crypt_page_alloc()
+ - [x86] VMCI: fix NULL pointer dereference when unmapping queue pair
+ - media: uvc: don't do DMA on stack
+ - media: rc-loopback: return number of emitters rather than error
+ - libata: add ATA_HORKAGE_NO_NCQ_TRIM for Samsung 860 and 870 SSDs
+ - PCI: Restrict ASMedia ASM1062 SATA Max Payload Size Supported
+ - PCI: Return ~0 data on pciconfig_read() CAP_SYS_ADMIN failure
+ - [arm64] PCI: xilinx-nwl: Enable the clock through CCF
+ - [arm64] PCI: aardvark: Increase polling delay to 1.5s while waiting for
+ PIO response
+ - [arm64] PCI: aardvark: Fix masking and unmasking legacy INTx interrupts
+ - HID: input: do not report stylus battery state as "full"
+ - RDMA/iwcm: Release resources if iw_cm module initialization fails
+ - docs: Fix infiniband uverbs minor number
+ - [armhf] pinctrl: samsung: Fix pinctrl bank pin count
+ - [powerpc*] stacktrace: Include linux/delay.h
+ - [arm64,armhf] pinctrl: single: Fix error return code in
+ pcs_parse_bits_in_pinctrl_entry()
+ - scsi: qedi: Fix error codes in qedi_alloc_global_queues()
+ - [x86] platform/x86: dell-smbios-wmi: Add missing kfree in error-exit from
+ run_smbios_call
+ - fscache: Fix cookie key hashing
+ - f2fs: fix to account missing .skipped_gc_rwsem
+ - f2fs: fix to unmap pages from userspace process in punch_hole()
+ - [mips*] Malta: fix alignment of the devicetree buffer
+ - userfaultfd: prevent concurrent API initialization
+ - media: dib8000: rewrite the init prbs logic
+ - PCI: Use pci_update_current_state() in pci_enable_device_flags()
+ - tipc: keep the skb in rcv queue until the whole data is read
+ - video: fbdev: kyro: fix a DoS bug by restricting user input
+ - netlink: Deal with ESRCH error in nlmsg_notify()
+ - usb: gadget: u_ether: fix a potential null pointer dereference
+ - usb: gadget: composite: Allow bMaxPower=0 if self-powered
+ - tty: serial: jsm: hold port lock when reporting modem line changes
+ - video: fbdev: kyro: Error out if 'pixclock' equals zero
+ - ipv4: ip_output.c: Fix out-of-bounds warning in ip_copy_addrs()
+ - flow_dissector: Fix out-of-bounds warnings
+ - [s390x] jump_label: print real address in a case of a jump label bug
+ - serial: 8250: Define RX trigger levels for OxSemi 950 devices
+ - serial: 8250_pci: make setup_port() parameters explicitly unsigned
+ - Bluetooth: skip invalid hci_sync_conn_complete_evt
+ - bonding: 3ad: fix the concurrency between __bond_release_one() and
+ bond_3ad_state_machine_handler()
+ - [x86] ASoC: Intel: bytcr_rt5640: Move "Platform Clock" routes to the maps
+ for the matching in-/output
+ - media: v4l2-dv-timings.c: fix wrong condition in two for-loops
+ - [armhf] dts: imx53-ppd: Fix ACHC entry
+ - [arm64] dts: qcom: sdm660: use reg value for memory node
+ - [arm64] net: ethernet: stmmac: Do not use unreachable() in
+ ipq806x_gmac_probe()
+ - Bluetooth: schedule SCO timeouts with delayed_work
+ - Bluetooth: avoid circular locks in sco_sock_connect
+ - gpu: drm: amd: amdgpu: amdgpu_i2c: fix possible uninitialized-variable
+ access in amdgpu_i2c_router_select_ddc_port()
+ - Bluetooth: Fix handling of LE Enhanced Connection Complete
+ - tcp: enable data-less, empty-cookie SYN with TFO_SERVER_COOKIE_NOT_REQD
+ - rpc: fix gss_svc_init cleanup on failure
+ - [x86] staging: rts5208: Fix get_ms_information() heap buffer size
+ - gfs2: Don't call dlm after protocol is unmounted
+ - of: Don't allow __of_attached_node_sysfs() without CONFIG_SYSFS
+ - [arm64] mmc: sdhci-of-arasan: Check return value of non-void funtions
+ - mmc: rtsx_pci: Fix long reads when clock is prescaled
+ - mmc: core: Return correct emmc response in case of ioctl error
+ - cifs: fix wrong release in sess_alloc_buffer() failed path
+ - Revert "USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST
+ quirk set"
+ - [armhf] usb: musb: musb_dsps: request_irq() after initializing musb
+ - usbip: give back URBs for unsent unlink requests during cleanup
+ - usbip:vhci_hcd USB port can get stuck in the disabled state
+ - [arm64,armhf] ASoC: rockchip: i2s: Fix regmap_ops hang
+ - [arm64,armhf] ASoC: rockchip: i2s: Fixup config for DAIFMT_DSP_A/B
+ - parport: remove non-zero check on count
+ - ath9k: fix OOB read ar9300_eeprom_restore_internal
+ - ath9k: fix sleeping in atomic context
+ - ovl: fix BUG_ON() in may_delete() when called from ovl_cleanup()
+ - [x86] scsi: BusLogic: Fix missing pr_cont() use
+ - scsi: qla2xxx: Sync queue idx with queue_pair_map idx
+ - [powerpc*] cpufreq: powernv: Fix init_chip_info initialization in numa=off
+ - mm/hugetlb: initialize hugetlb_usage in mm_init
+ - memcg: enable accounting for pids in nested pid namespaces
+ - [arm64,armhf] platform/chrome: cros_ec_proto: Send command again when
+ timeout occurs
+ - drm/amdgpu: Fix BUG_ON assert
+ - dm thin metadata: Fix use-after-free in dm_bm_set_read_only
+ - [x86] xen: reset legacy rtc flag for PV domU
+ - bnx2x: Fix enabling network interfaces without VFs
+ - [arm64] sve: Use correct size when reinitialising SVE state
+ - PM: base: power: don't try to use non-existing RTC for storing data
+ - PCI: Add AMD GPU multi-function power dependencies
+ - [x86] mm: Fix kern_addr_valid() to cope with existing but not present
+ entries
+ - tipc: fix an use-after-free issue in tipc_recvmsg
+ - dccp: don't duplicate ccid when cloning dccp sock (CVE-2020-16119)
+ - net/l2tp: Fix reference count leak in l2tp_udp_recv_core
+ - r6040: Restore MDIO clock frequency after MAC reset
+ - tipc: increase timeout in tipc_sk_enqueue()
+ - net/mlx5: Fix potential sleeping in atomic context
+ - events: Reuse value read using READ_ONCE instead of re-reading it
+ - net/af_unix: fix a data-race in unix_dgram_poll
+ - [arm64,armhf] net: dsa: destroy the phylink instance on any error in
+ dsa_slave_phy_setup
+ - tcp: fix tp->undo_retrans accounting in tcp_sacktag_one()
+ - qed: Handle management FW error
+ - [arm64] net: hns3: pad the short tunnel frame before sending to hardware
+ - mm/memory_hotplug: use "unsigned long" for PFN in zone_for_pfn_range()
+ - [s390x] KVM: index kvm->arch.idle_mask by vcpu_idx
+ - dt-bindings: mtd: gpmc: Fix the ECC bytes vs. OOB bytes equation
+ - [armhf] mfd: Don't use irq_create_mapping() to resolve a mapping
+ - PCI: Add ACS quirks for Cavium multi-function devices
+ - net: usb: cdc_mbim: avoid altsetting toggling for Telit LN920
+ - block, bfq: honor already-setup queue merges
+ - ethtool: Fix an error code in cxgb2.c
+ - mfd: axp20x: Update AXP288 volatile ranges
+ - PCI: Fix pci_dev_str_match_path() alloc while atomic bug
+ - [arm64] KVM: Handle PSCI resets before userspace touches vCPU state
+ - mtd: rawnand: cafe: Fix a resource leak in the error handling path of
+ 'cafe_nand_probe()'
+ - [armhf] net: dsa: b53: Fix calculating number of switch ports
+ - netfilter: socket: icmp6: fix use-after-scope
+ - fq_codel: reject silly quantum parameters
+ - qlcnic: Remove redundant unlock in qlcnic_pinit_from_rom
+ - ip_gre: validate csum_start only on pull
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.208
+ - [s390x] bpf: Fix optimizing out zero-extensions
+ - KVM: remember position in kvm->vcpus array
+ - rcu: Fix missed wakeup of exp_wq waiters
+ - apparmor: remove duplicate macro list_entry_is_head()
+ - tracing/kprobe: Fix kprobe_on_func_entry() modification
+ - sctp: validate chunk size in __rcv_asconf_lookup (CVE-2021-3655)
+ - sctp: add param size validation for SCTP_PARAM_SET_PRIMARY (CVE-2021-3655)
+ - dmaengine: acpi: Avoid comparison GSI with Linux vIRQ
+ - [armhf] thermal/drivers/exynos: Fix an error code in exynos_tmu_probe()
+ - 9p/trans_virtio: Remove sysfs file on probe failure
+ - prctl: allow to setup brk for et_dyn executables
+ - nilfs2: use refcount_dec_and_lock() to fix potential UAF
+ - profiling: fix shift-out-of-bounds bugs
+ - drivers: base: cacheinfo: Get rid of DEFINE_SMP_CALL_CACHE_FUNCTION()
+ - ceph: lockdep annotations for try_nonblocking_invalidate
+ - nilfs2: fix memory leak in nilfs_sysfs_create_device_group
+ - nilfs2: fix NULL pointer in nilfs_##name##_attr_release
+ - nilfs2: fix memory leak in nilfs_sysfs_create_##name##_group
+ - nilfs2: fix memory leak in nilfs_sysfs_delete_##name##_group
+ - nilfs2: fix memory leak in nilfs_sysfs_create_snapshot_group
+ - nilfs2: fix memory leak in nilfs_sysfs_delete_snapshot_group
+ - [arm64,armhf] pwm: rockchip: Don't modify HW state in .remove() callback
+ - blk-throttle: fix UAF by deleteing timer in blk_throtl_exit()
+ - drm/nouveau/nvkm: Replace -ENOSYS with -ENODEV
+
+ [ Salvatore Bonaccorso ]
+ * [rt] Update to 4.19.195-rt82
+ * [rt] Update to 4.19.196-rt83
+ * Bump ABI to 18
+ * [rt] Update to 4.19.197-rt84
+ * Refresh "fs: Add MODULE_SOFTDEP declarations for hard-coded crypto drivers"
+ * [rt] Update to 4.19.198-rt85
+ * Refresh "scsi: hisi_sas: Create separate host attributes per HBA"
+ * [rt] Update to 4.19.199-rt86
+ * [rt] Update to 4.19.206-rt87
+ * [rt] Update to 4.19.207-rt88
+ * hso: fix bailout in error case of probe
+ * usb: hso: fix error handling code of hso_create_net_device (CVE-2021-37159)
+ * usb: hso: remove the bailout parameter
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Wed, 29 Sep 2021 20:53:57 +0200
+
+linux (4.19.194-3) buster-security; urgency=high
+
+ * [x86] KVM: SVM: Periodically schedule when unregistering regions on destroy
+ (CVE-2020-36311)
+ * can: bcm: fix infoleak in struct bcm_msg_head (CVE-2021-34693)
+ * can: bcm: delay release of struct bcm_op after synchronize_rcu()
+ (CVE-2021-3609)
+ * seq_file: Disallow extremely large seq buffer allocations (CVE-2021-33909)
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Sun, 18 Jul 2021 08:52:00 +0200
+
+linux (4.19.194-2) buster; urgency=medium
+
+ * proc: Track /proc/$pid/attr/ opener mm_struct (Closes: #990072)
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Mon, 21 Jun 2021 10:46:20 +0200
+
+linux (4.19.194-1) buster; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.182
+ - [arm64] KVM: nvhe: Save the SPE context early
+ - [armhf] net: dsa: b53: Support setting learning on port
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.183
+ - ALSA: hda: generic: Fix the micmute led init state
+ - Revert "PM: runtime: Update device status before letting suppliers
+ suspend"
+ - vmlinux.lds.h: Create section for protection against instrumentation
+ - btrfs: fix race when cloning extent buffer during rewind of an old root
+ (CVE-2021-28964)
+ - btrfs: fix slab cache flags for free space tree bitmap
+ - [armhf] ASoC: fsl_ssi: Fix TDM slot setup for I2S mode
+ - nvmet: don't check iosqes,iocqes for discovery controllers
+ - NFSD: Repair misuse of sv_lock in 5.10.16-rt30.
+ - svcrdma: disable timeouts on rdma backchannel
+ - sunrpc: fix refcount leak for rpc auth modules
+ - scsi: lpfc: Fix some error codes in debugfs
+ - nvme-rdma: fix possible hang when failing to set io queues
+ - [powerpc*] Force inlining of cpu_has_feature() to avoid build failure
+ - usb-storage: Add quirk to defeat Kindle's automatic unload
+ - usbip: Fix incorrect double assignment to udc->ud.tcp_rx
+ - USB: replace hardcode maximum usb string length by definition
+ - usb: gadget: configfs: Fix KASAN use-after-free
+ - [arm64] iio:adc:qcom-spmi-vadc: add default scale to LR_MUX2_BAT_ID
+ channel
+ - iio: hid-sensor-prox: Fix scale not correct issue
+ - [powerpc*] PCI: rpadlpar: Fix potential drc_name corruption in store
+ functions (CVE-2021-28972)
+ - [x86] perf/x86/intel: Fix a crash caused by zero PEBS status
+ (CVE-2021-28971)
+ - [x86] ioapic: Ignore IRQ2 again
+ - kernel, fs: Introduce and use set_restart_fn() and arch_set_restart_data()
+ - [x86] Move TS_COMPAT back to asm/thread_info.h
+ - [x86] Introduce TS_COMPAT_RESTART to fix get_nr_restart_syscall()
+ - ext4: find old entry again if failed to rename whiteout
+ - ext4: do not try to set xattr into ea_inode if value is empty
+ - ext4: fix potential error in ext4_do_update_inode
+ - genirq: Disable interrupts for force threaded handlers
+ - [x86] apic/of: Fix CPU devicetree-node lookups
+ - cifs: Fix preauth hash corruption
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.184
+ - [armhf] net: fec: ptp: avoid register access when ipg clock is disabled
+ - [powerpc*] 4xx: Fix build errors from mfdcr()
+ - atm: eni: dont release is never initialized
+ - atm: lanai: dont run lanai_dev_close if not open
+ - Revert "r8152: adjust the settings about MAC clock speed down for RTL8153"
+ - ixgbe: Fix memleak in ixgbe_configure_clsu32
+ - net: tehuti: fix error return code in bdx_probe()
+ - sun/niu: fix wrong RXMAC_BC_FRM_CNT_COUNT count
+ - gianfar: fix jumbo packets+napi+rx overrun crash (CVE-2021-29264)
+ - gpiolib: acpi: Add missing IRQF_ONESHOT
+ - nfs: fix PNFS_FLEXFILE_LAYOUT Kconfig default
+ - NFS: Correct size calculation for create reply length
+ - [arm64] net: hisilicon: hns: fix error return code of
+ hns_nic_clear_all_rx_fetch()
+ - [x86] atm: uPD98402: fix incorrect allocation
+ - atm: idt77252: fix null-ptr-dereference
+ - u64_stats,lockdep: Fix u64_stats_init() vs lockdep
+ - nfs: we don't support removing system.nfs4_acl
+ - block: Suppress uevent for hidden device when removed
+ - [arm64] netsec: restore phy power state after controller reset
+ - [x86] platform/x86: intel-vbtn: Stop reporting SW_DOCK events
+ - squashfs: fix inode lookup sanity checks
+ - squashfs: fix xattr id and id lookup sanity checks
+ - dm ioctl: fix out of bounds array access when no devices
+ (CVE-2021-31916)
+ - [armhf] bus: omap_l3_noc: mark l3 irqs as IRQF_NO_THREAD
+ - veth: Store queue_mapping independently of XDP prog presence
+ - libbpf: Fix INSTALL flag order
+ - macvlan: macvlan_count_rx() needs to be aware of preemption
+ - [armhf] net: dsa: bcm_sf2: Qualify phydev->dev_flags based on port
+ - e1000e: add rtnl_lock() to e1000_reset_task
+ - e1000e: Fix error handling in e1000_set_d0_lplu_state_82571
+ - net/qlcnic: Fix a use after free in qlcnic_83xx_get_minidump_template
+ - netfilter: ctnetlink: fix dump of the expect mask attribute
+ - can: peak_usb: add forgotten supported devices
+ - [armhf] can: flexcan: flexcan_chip_freeze(): fix chip freeze for missing
+ bitrate
+ - mac80211: fix rate mask reset
+ - net: cdc-phonet: fix data-interface release on probe failure
+ - [arm64,armhf] net: stmmac: dwmac-sun8i: Provide TX and RX fifo sizes
+ - [arm64] drm/msm: fix shutdown hook in case GPU components failed to bind
+ - net/mlx5e: Fix error path for ethtool set-priv-flag
+ - RDMA/cxgb4: Fix adapter LE hash errors while destroying ipv6 listening
+ server
+ - bpf: Don't do bpf_cgroup_storage_set() for kuprobe/tp programs
+ - Revert "netfilter: x_tables: Switch synchronization to RCU"
+ - netfilter: x_tables: Use correct memory barriers. (CVE-2021-29650)
+ - Revert "netfilter: x_tables: Update remaining dereference to RCU"
+ - ACPI: scan: Rearrange memory allocation in acpi_device_add()
+ - ACPI: scan: Use unique number for instance_no
+ - dm verity: add root hash pkcs#7 signature verification
+ - scsi: qedi: Fix error return code of qedi_alloc_global_queues()
+ - scsi: mpt3sas: Fix error return code of mpt3sas_base_attach()
+ - locking/mutex: Fix non debug version of mutex_lock_io_nested()
+ - can: dev: Move device back to init netns on owning netns delete
+ - net: sched: validate stab values
+ - net: qrtr: fix a kernel-infoleak in qrtr_recvmsg() (CVE-2021-29647)
+ - mac80211: fix double free in ibss_leave
+ - ext4: add reclaim checks to xattr code
+ - can: peak_usb: Revert "can: peak_usb: add forgotten supported devices"
+ - xen-blkback: don't leak persistent grants from xen_blkbk_map()
+ (CVE-2021-28688)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.185
+ - selinux: vsock: Set SID for socket returned by accept()
+ - tcp: relookup sock for RST+ACK packets handled by obsolete req sock
+ - ipv6: weaken the v4mapped source check
+ - ext4: fix bh ref count on error paths
+ - rpc: fix NULL dereference on kmalloc failure
+ - ASoC: rt5640: Fix dac- and adc- vol-tlv values being off by a factor of 10
+ - [x86] ASoC: rt5651: Fix dac- and adc- vol-tlv values being off by a factor
+ of 10
+ - [armhf] ASoC: sgtl5000: set DAP_AVC_CTRL register to correct default value
+ on probe
+ - [x86] ASoC: es8316: Simplify adc_pga_gain_tlv table
+ - vhost: Fix vhost_vq_reset()
+ - scsi: st: Fix a use after free in st_open()
+ - scsi: qla2xxx: Fix broken #endif placement
+ - [x86] staging: comedi: cb_pcidas: fix request_irq() warn
+ - [x86] staging: comedi: cb_pcidas64: fix request_irq() warn
+ - thermal/core: Add NULL pointer check before using cooling device stats
+ - locking/ww_mutex: Simplify use_ww_ctx & ww_ctx handling
+ - ext4: do not iput inode under running transaction in ext4_rename()
+ - brcmfmac: clear EAP/association status bits on linkdown events
+ - ath10k: hold RCU lock when calling ieee80211_find_sta_by_ifaddr()
+ - [amd64] net: ethernet: aquantia: Handle error cleanup of start on open
+ - appletalk: Fix skb allocation size in loopback case
+ - [x86] net: wan/lmc: unregister device when no matching device is found
+ - bpf: Remove MTU check in __bpf_skb_max_len
+ - ALSA: usb-audio: Apply sample rate quirk to Logitech Connect
+ - ALSA: hda/realtek: fix a determine_headset_type issue for a Dell AIO
+ - ALSA: hda/realtek: call alc_update_headset_mode() in hp_automute_hook
+ - PM: runtime: Fix race getting/putting suppliers at probe
+ - PM: runtime: Fix ordering in pm_runtime_get_suppliers()
+ - tracing: Fix stack trace event size
+ - mm: fix race by making init_zero_pfn() early_initcall
+ - drm/amdgpu: fix offset calculation in amdgpu_vm_bo_clear_mappings()
+ - drm/amdgpu: check alignment on CPU page for bo map
+ - reiserfs: update reiserfs_xattrs_initialized() condition
+ - [arm64,armhf] pinctrl: rockchip: fix restore error in resume
+ - extcon: Add stubs for extcon_register_notifier_all() functions
+ - extcon: Fix error handling in extcon_dev_register
+ - firewire: nosy: Fix a use-after-free bug in nosy_ioctl() (CVE-2021-3483)
+ - usbip: vhci_hcd fix shift out-of-bounds in vhci_hub_control()
+ - USB: quirks: ignore remote wake-up on Fibocom L850-GL LTE modem
+ - [arm64,armhf] usb: musb: Fix suspend with devices connected for a64
+ - cdc-acm: fix BREAK rx code path adding necessary calls
+ - USB: cdc-acm: untangle a circular dependency between callback and softint
+ - USB: cdc-acm: downgrade message to debug
+ - USB: cdc-acm: fix double free on probe failure
+ - USB: cdc-acm: fix use-after-free after probe failure
+ - [i386] usb: gadget: udc: amd5536udc_pci fix null-ptr-dereference
+ - [arm*] usb: dwc2: Fix HPRT0.PrtSusp bit setting for HiKey 960 board.
+ - [x86] staging: rtl8192e: Fix incorrect source in memcpy()
+ - staging: rtl8192e: Change state information from u16 to u8
+ - drivers: video: fbcon: fix NULL dereference in fbcon_cursor()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.186
+ - [armhf] bus: ti-sysc: Fix warning on unbind if reset is not deasserted
+ - [x86] platform/x86: intel-hid: Support Lenovo ThinkPad X1 Tablet Gen 2
+ - mISDN: fix crash in fritzpci
+ - mac80211: choose first enabled channel for monitor
+ - [arm64] drm/msm: Ratelimit invalid-fence message
+ - [x86] platform/x86: thinkpad_acpi: Allow the FnLock LED to change state
+ - scsi: target: pscsi: Clean up after failure in pscsi_map_sg()
+ - cifs: revalidate mapping when we open files for SMB1 POSIX
+ - cifs: Silently ignore unknown oplock break handle
+ - [amd64] bpf, x86: Validate computation of branch displacements for x86-64
+ (CVE-2021-29154)
+ - [i386] bpf, x86: Validate computation of branch displacements for x86-32
+ (CVE-2021-29154)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.187
+ - ALSA: aloop: Fix initialization of controls
+ - [x86] ASoC: intel: atom: Stop advertising non working S24LE support
+ - nfc: fix refcount leak in llcp_sock_bind() (CVE-2020-25670)
+ - nfc: fix refcount leak in llcp_sock_connect() (CVE-2020-25671)
+ - nfc: fix memory leak in llcp_sock_connect() (CVE-2020-25672)
+ - nfc: Avoid endless loops caused by repeated llcp_sock_connect()
+ - xen/evtchn: Change irq_info lock to raw_spinlock_t
+ - net: ipv6: check for validity before dereferencing cfg->fc_nlinfo.nlh
+ - ocfs2: fix deadlock between setattr and dio_end_io_write
+ - fs: direct-io: fix missing sdio->boundary
+ - [armhf] dts: turris-omnia: configure LED[2]/INTn pin as interrupt pin
+ - batman-adv: initialize "struct batadv_tvlv_tt_vlan_data"->reserved field
+ - ice: Increase control queue timeout
+ - net: hso: fix null-ptr-deref during tty device unregistration
+ - net: ensure mac header is set in virtio_net_hdr_to_skb()
+ - net: sched: sch_teql: fix null-pointer dereference
+ - net-ipv6: bugfix - raw & sctp - switch to ipv6_can_nonlocal_bind()
+ - usbip: add sysfs_lock to synchronize sysfs code paths
+ - usbip: stub-dev synchronize sysfs code paths
+ - usbip: vudc synchronize sysfs code paths
+ - usbip: synchronize event handler with sysfs code paths
+ - i2c: turn recovery error on init to debug
+ - virtio_net: Add XDP meta data support
+ - xfrm: interface: fix ipv4 pmtu check to honor ip header df
+ - net: xfrm: Localize sequence counter per network namespace
+ - i40e: Added Asym_Pause to supported link modes
+ - i40e: Fix kernel oops when i40e driver removes VF's
+ - sch_red: fix off-by-one checks in red_check_params()
+ - cxgb4: avoid collecting SGE_QBASE regs during traffic
+ - net:tipc: Fix a double free in tipc_sk_mcast_rcv
+ - [armhf] ASoC: sunxi: sun4i-codec: fill ASoC card owner
+ - clk: fix invalid usage of list cursor in register
+ - clk: fix invalid usage of list cursor in unregister
+ - workqueue: Move the position of debug_work_activate() in __queue_work()
+ - [s390x] cpcmd: fix inline assembly register clobbering
+ - net/mlx5: Fix placement of log_max_flow_counter
+ - net/mlx5: Fix PBMC register mapping
+ - RDMA/cxgb4: check for ipv6 address properly while destroying listener
+ - [armhf] clk: socfpga: fix iomem pointer cast on 64-bit
+ - net: sched: bump refcount for new action in ACT replace mode
+ - cfg80211: remove WARN_ON() in cfg80211_sme_connect
+ - net: tun: set tun->dev->addr_len during TUNSETLINK processing
+ - drivers: net: fix memory leak in atusb_probe
+ - drivers: net: fix memory leak in peak_usb_create_dev
+ - net: mac802154: Fix general protection fault
+ - net: ieee802154: nl-mac: fix check on panid
+ - net: ieee802154: fix nl802154 del llsec key
+ - net: ieee802154: fix nl802154 del llsec dev
+ - net: ieee802154: fix nl802154 add llsec key
+ - net: ieee802154: fix nl802154 del llsec devkey
+ - net: ieee802154: forbid monitor for set llsec params
+ - net: ieee802154: forbid monitor for del llsec seclevel
+ - net: ieee802154: stop dump llsec params for monitors
+ - Revert "cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting
+ cifs_sb->prepath." (Closes: #988352)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.188
+ - [arm64] KVM: Hide system instruction access to Trace registers
+ - [arm64] KVM: Disable guest access to trace filter controls
+ - [armhf] drm/imx: imx-ldb: fix out of bounds array access warning
+ - gfs2: report "already frozen/thawed" errors
+ - [arm64,armhf] drm/tegra: dc: Don't set PLL clock to 0Hz
+ - block: only update parent bi_status when bio fail
+ - net: phy: broadcom: Only advertise EEE for supported modes
+ - staging: m57621-mmc: delete driver from the tree. (Closes: #986949)
+ - netfilter: x_tables: fix compat match/target pad out-of-bound write
+ - driver core: Fix locking bug in deferred_probe_timeout_work_func()
+ - xen/events: fix setting irq affinity
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.189
+ - net/sctp: fix race condition in sctp_destroy_sock
+ - gpio: sysfs: Obey valid_mask
+ - neighbour: Disregard DEAD dst in neigh_update
+ - [arm64] drm/msm: Fix a5xx/a6xx timestamps
+ - scsi: scsi_transport_srp: Don't block target in SRP_PORT_LOST state
+ - net: ieee802154: stop dump llsec keys for monitors
+ - net: ieee802154: stop dump llsec devs for monitors
+ - net: ieee802154: forbid monitor for add llsec dev
+ - net: ieee802154: stop dump llsec devkeys for monitors
+ - net: ieee802154: forbid monitor for add llsec devkey
+ - net: ieee802154: stop dump llsec seclevels for monitors
+ - net: ieee802154: forbid monitor for add llsec seclevel
+ - pcnet32: Use pci_resource_len to validate PCI resource
+ - mac80211: clear sta->fast_rx when STA removed from 4-addr VLAN
+ - HID: wacom: set EV_KEY and EV_ABS only for non-HID_GENERIC type of devices
+ - readdir: make sure to verify directory entry for legacy interfaces too
+ - [arm64] fix inline asm in load_unaligned_zeropad()
+ - [arm64] alternatives: Move length validation in alternative_{insn, endif}
+ - scsi: libsas: Reset num_scatter if libata marks qc as NODATA
+ - netfilter: conntrack: do not print icmpv6 as unknown via /proc
+ - netfilter: nft_limit: avoid possible divide error in nft_limit_init
+ - net: sit: Unregister catch-all devices
+ - net: ip6_tunnel: Unregister catch-all devices
+ - i40e: fix the panic when running bpf in xdpdrv mode
+ - [armel,armhf] 9071/1: uprobes: Don't hook on thumb instructions
+ - net: phy: marvell: fix detection of PHY on Topaz switches
+ - gup: document and work around "COW can break either way" issue
+ (CVE-2020-29374)
+ - [x86] pinctrl: lewisburg: Update number of pins in community
+ - locking/qrwlock: Fix ordering in queued_write_lock_slowpath()
+ - [x86] perf/x86/intel/uncore: Remove uncore extra PCI dev HSWEP_PCI_PCU_3
+ - HID: alps: fix error return code in alps_input_configured()
+ - HID: wacom: Assign boolean values to a bool variable
+ - net: geneve: check skb is large enough for IPv4/IPv6 header
+ - [s390x] entry: save the caller of psw_idle
+ - xen-netback: Check for hotplug-status existence before watching
+ - [x86] crash: Fix crash_setup_memmap_entries() out-of-bounds access
+ - net: hso: fix NULL-deref on disconnect regression
+ - USB: CDC-ACM: fix poison/unpoison imbalance
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.190
+ - [x86] ACPI: tables: x86: Reserve memory occupied by ACPI tables
+ - [x86] ACPI: x86: Call acpi_boot_table_init() after acpi_table_upgrade()
+ - net: usb: ax88179_178a: initialize local variables before use
+ - iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_enqueue_hcmd()
+ - [mips*] Do not include hi and lo in clobber list for R6
+ - bpf: Fix masking negation logic upon negative dst register
+ (CVE-2021-31829)
+ - iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_gen2_enqueue_hcmd()
+ - ALSA: usb-audio: Add MIDI quirk for Vox ToneLab EX
+ - USB: Add LPM quirk for Lenovo ThinkPad USB-C Dock Gen2 Ethernet
+ - USB: Add reset-resume quirk for WD19's Realtek Hub
+ - [x86] platform/x86: thinkpad_acpi: Correct thermal sensor allocation
+ - ovl: allow upperdir inside lowerdir
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.191
+ - [s390x] disassembler: increase ebpf disasm buffer size
+ - ftrace: Handle commands when closing set_ftrace_filter file
+ - ecryptfs: fix kernel panic with null dev_name
+ - [armhf] spi: spi-ti-qspi: Free DMA resources
+ - scsi: qla2xxx: Fix crash in qla2xxx_mqueuecommand()
+ - mmc: sdhci-pci: Fix initialization of some SD cards for Intel BYT-based
+ controllers
+ - mmc: block: Update ext_csd.cache_ctrl if it was written
+ - mmc: block: Issue a cache flush only when it's enabled
+ - mmc: core: Do a power cycle when the CMD11 fails
+ - mmc: core: Set read only for SD cards with permanent write protect bit
+ - cifs: Return correct error code from smb2_get_enc_key
+ - btrfs: fix metadata extent leak after failure to create subvolume
+ - [x86] intel_th: pci: Add Rocket Lake CPU support
+ - fbdev: zero-fill colormap in fbcmap.c
+ - staging: wimax/i2400m: fix byte-order issue
+ - crypto: api - check for ERR pointers in crypto_destroy_tfm()
+ - usb: gadget: uvc: add bInterval checking for HS mode
+ - [x86] genirq/matrix: Prevent allocation counter corruption
+ - usb: gadget: f_uac1: validate input parameters
+ - [arm64,armhf] usb: dwc3: gadget: Ignore EP queue requests during bus reset
+ - usb: xhci: Fix port minor revision
+ - PCI: PM: Do not read power state in pci_enable_device_flags()
+ - [arm64] tee: optee: do not check memref size on return from Secure World
+ - [arm*] perf/arm_pmu_platform: Fix error handling
+ - xhci: check control context is valid before dereferencing it.
+ - xhci: fix potential array out of bounds with several interrupters
+ - [x86] intel_th: Consistency and off-by-one fix
+ - [armhf] phy: phy-twl4030-usb: Fix possible use-after-free in
+ twl4030_usb_remove()
+ - btrfs: convert logic BUG_ON()'s in replace_path to ASSERT()'s
+ - scsi: lpfc: Fix incorrect dbde assignment when building target abts wqe
+ - scsi: lpfc: Fix pt2pt connection does not recover after LOGO
+ - scsi: target: pscsi: Fix warning in pscsi_complete_cmd()
+ - [x86] media: ite-cir: check for receive overflow
+ - power: supply: bq27xxx: fix power_avg for newer ICs
+ - media: media/saa7164: fix saa7164_encoder_register() memory leak bugs
+ - media: gspca/sq905.c: fix uninitialized variable
+ - drm/amdgpu : Fix asic reset regression issue introduce by 8f211fe8ac7c4f
+ - scsi: qla2xxx: Always check the return value of qla24xx_get_isp_stats()
+ - scsi: qla2xxx: Fix use after free in bsg
+ - scsi: scsi_dh_alua: Remove check for ASC 24h in alua_rtpg()
+ - media: em28xx: fix memory leak
+ - media: vivid: update EDID
+ - [armhf] clk: socfpga: arria10: Fix memory leak of socfpga_clk on error
+ return
+ - media: dvb-usb: fix memory leak in dvb_usb_adapter_init
+ - media: gscpa/stv06xx: fix memory leak
+ - [arm64] drm/msm/mdp5: Configure PP_SYNC_HEIGHT to double the vtotal
+ - drm/amdgpu: fix NULL pointer dereference
+ - scsi: lpfc: Fix crash when a REG_RPI mailbox fails triggering a LOGO
+ response
+ - scsi: lpfc: Remove unsupported mbox PORT_CAPABILITIES logic
+ - scsi: libfc: Fix a format specifier
+ - [s390x] archrandom: add parameter check for s390_arch_random_generate
+ - [i386] ALSA: emu8000: Fix a use after free in snd_emu8000_create_mixer
+ - ALSA: hda/conexant: Re-order CX5066 quirk table entries
+ - [i386] ALSA: sb: Fix two use after free in snd_sb_qsound_build
+ - ALSA: usb-audio: Explicitly set up the clock selector
+ - ALSA: usb-audio: More constifications
+ - ALSA: usb-audio: Add dB range mapping for Sennheiser Communications
+ Headset PC 8
+ - ALSA: hda/realtek: Add quirk for Intel Clevo PCx0Dx
+ - btrfs: fix race when picking most recent mod log operation for an old root
+ - [arm64] vdso: Discard .note.gnu.property sections in vDSO
+ - ubifs: Only check replay with inode type to judge if inode linked
+ - f2fs: fix to avoid out-of-bounds memory access (CVE-2021-3506)
+ - openvswitch: fix stack OOB read while fragmenting IPv4 packets
+ - [arm64] ACPI: GTDT: Don't corrupt interrupt mappings on watchdow probe
+ failure
+ - NFS: Don't discard pNFS layout segments that are marked for return
+ - NFSv4: Don't discard segments marked for return in _pnfs_return_layout()
+ - jffs2: Fix kasan slab-out-of-bounds problem
+ - [powerpc*] eeh: Fix EEH handling for hugepages in ioremap space.
+ - [x86] intel_th: pci: Add Alder Lake-M support
+ - [arm64,x86] tpm: vtpm_proxy: Avoid reading host log when using a virtual
+ device
+ - md/raid1: properly indicate failure when ending a failed write request
+ - dm raid: fix inconclusive reshape layout on fast raid4/5/6 table reload
+ sequences
+ - security: commoncap: fix -Wstringop-overread warning
+ - jffs2: check the validity of dstlen in jffs2_zlib_compress()
+ - Revert 337f13046ff0 ("futex: Allow FUTEX_CLOCK_REALTIME with FUTEX_WAIT
+ op")
+ - posix-timers: Preserve return value in clock_adjtime32()
+ - [arm64] vdso: remove commas between macro name and arguments
+ - ext4: fix check to prevent false positive report of incorrect used inodes
+ - ext4: do not set SB_ACTIVE in ext4_orphan_cleanup()
+ - ext4: fix error code in ext4_commit_super
+ - media: dvbdev: Fix memory leak in dvb_media_device_free()
+ - usb: gadget: Fix double free of device descriptor pointers
+ - usb: gadget/function/f_fs string table fix for multiple languages
+ - [arm64,armhf] usb: dwc3: gadget: Fix START_TRANSFER link state check
+ - [arm*] usb: dwc2: Fix session request interrupt handler
+ - tty: fix memory leak in vc_deallocate
+ - tracing: Map all PIDs to command lines
+ - tracing: Restructure trace_clock_global() to never block
+ - dm space map common: fix division bug in sm_ll_find_free_block()
+ - dm rq: fix double free of blk_mq_tag_set in dev remove after table load
+ fails
+ - modules: mark ref_module static
+ - modules: mark find_symbol static
+ - modules: mark each_symbol_section static
+ - modules: unexport __module_text_address
+ - modules: unexport __module_address
+ - modules: rename the licence field in struct symsearch to license
+ - modules: return licensing information from find_symbol
+ - modules: inherit TAINT_PROPRIETARY_MODULE
+ - Bluetooth: verify AMP hci_chan before amp_destroy (CVE-2021-33034)
+ - bluetooth: eliminate the potential race condition when removing the HCI
+ controller (CVE-2021-32399)
+ - net/nfc: fix use-after-free llcp_sock_bind/connect (CVE-2021-23134)
+ - FDDI: defxx: Bail out gracefully with unassigned PCI resource for CSR
+ - misc: lis3lv02d: Fix false-positive WARN on various HP models
+ - [x86] misc: vmw_vmci: explicitly initialize vmci_notify_bm_set_msg struct
+ - [x86] misc: vmw_vmci: explicitly initialize vmci_datagram payload
+ - md/bitmap: wait for external bitmap writes to complete during tear down
+ - md-cluster: fix use-after-free issue when removing rdev
+ - md: split mddev_find
+ - md: factor out a mddev_find_locked helper from mddev_find
+ - md: md_open returns -EBUSY when entering racing area
+ - md: Fix missing unused status line of /proc/mdstat
+ - ipw2x00: potential buffer overflow in libipw_wx_set_encodeext()
+ - cfg80211: scan: drop entry from hidden_list on overflow
+ - drm/radeon: fix copy of uninitialized variable back to userspace
+ - ALSA: hda/realtek: Re-order ALC882 Acer quirk table entries
+ - ALSA: hda/realtek: Re-order ALC882 Sony quirk table entries
+ - ALSA: hda/realtek: Re-order ALC882 Clevo quirk table entries
+ - ALSA: hda/realtek: Re-order ALC269 HP quirk table entries
+ - ALSA: hda/realtek: Re-order ALC269 Dell quirk table entries
+ - ALSA: hda/realtek: Re-order ALC269 Sony quirk table entries
+ - ALSA: hda/realtek: Re-order ALC269 Lenovo quirk table entries
+ - ALSA: hda/realtek: Remove redundant entry for ALC861 Haier/Uniwill devices
+ - [x86] cpu: Initialize MSR_TSC_AUX if RDTSCP *or* RDPID is supported
+ - [s390x] KVM: split kvm_s390_logical_to_effective
+ - [s390x] KVM: fix guarded storage control register handling
+ - [s390x] KVM: split kvm_s390_real_to_abs
+ - ovl: fix missing revert_creds() on error path
+ - [x86] usb: gadget: pch_udc: Revert d3cb25a12138 completely
+ - [armhf] memory: gpmc: fix out of bounds read and dereference on gpmc_cs[]
+ - [armhf] dts: exynos: correct PMIC interrupt trigger level on SMDK5250
+ - regmap: set debugfs_name to NULL after it is freed
+ - mtd: Handle possible -EPROBE_DEFER from parse_mtd_partitions()
+ - [x86] microcode: Check for offline CPUs before requesting new microcode
+ - [x86] usb: gadget: pch_udc: Replace cpu_to_le32() by lower_32_bits()
+ - [x86] usb: gadget: pch_udc: Check if driver is present before calling
+ ->setup()
+ - [x86] usb: gadget: pch_udc: Check for DMA mapping error
+ - [x86] crypto: qat - don't release uninitialized resources
+ - [x86] crypto: qat - ADF_STATUS_PF_RUNNING should be set after adf_dev_init
+ - mtd: require write permissions for locking and badblock ioctls
+ - [arm64] bus: qcom: Put child node before return
+ - [x86] crypto: qat - fix error path in adf_isr_resource_alloc()
+ - [armhf] mtd: rawnand: gpmi: Fix a double free in gpmi_nand_init
+ - [arm64,armhf] irqchip/gic-v3: Fix OF_BAD_ADDR error handling
+ - [x86] staging: rtl8192u: Fix potential infinite loop
+ - spi: Fix use-after-free with devm_spi_alloc_*
+ - [arm64] soc: qcom: mdt_loader: Validate that p_filesz < p_memsz
+ - [arm64] soc: qcom: mdt_loader: Detect truncated read of segments
+ - [amd64,arm64] ACPI: CPPC: Replace cppc_attr with kobj_attribute
+ - [x86] crypto: qat - Fix a double free in adf_create_ring
+ - [arm64] cpufreq: armada-37xx: Fix setting TBG parent for load levels
+ - [arm64] clk: mvebu: armada-37xx-periph: remove .set_parent method for CPU
+ PM clock
+ - [arm64] cpufreq: armada-37xx: Fix the AVS value for load L1
+ - [arm64] clk: mvebu: armada-37xx-periph: Fix switching CPU freq from 250
+ Mhz to 1 GHz
+ - [arm64] clk: mvebu: armada-37xx-periph: Fix workaround for switching from
+ L1 to L0
+ - [arm64] cpufreq: armada-37xx: Fix driver cleanup when registration failed
+ - [arm64] cpufreq: armada-37xx: Fix determining base CPU frequency
+ - USB: cdc-acm: fix unprivileged TIOCCSERIAL
+ - tty: actually undefine superseded ASYNC flags
+ - tty: fix return value for unsupported ioctls
+ - usbip: vudc: fix missing unlock on error in usbip_sockfd_store()
+ - [x86] platform/x86: pmc_atom: Match all Beckhoff Automation baytrail
+ boards with critclk_systems DMI table
+ - [x86] Drivers: hv: vmbus: Increase wait time for VMbus unload
+ - [arm*] usb: dwc2: Fix host mode hibernation exit with remote wakeup flow.
+ - [arm*] usb: dwc2: Fix hibernation between host and device modes.
+ - ttyprintk: Add TTY hangup callback.
+ - media: vivid: fix assignment of dev->fbuf_out_flags
+ - media: m88rs6000t: avoid potential out-of-bounds reads on arrays
+ - [x86] kprobes: Fix to check non boostable prefixes correctly
+ - sata_mv: add IRQ checks
+ - ata: libahci_platform: fix IRQ check
+ - nvme: retrigger ANA log update if group descriptor isn't found
+ - [arm64] clk: qcom: a53-pll: Add missing MODULE_DEVICE_TABLE
+ - [powerpc*] scsi: ibmvfc: Fix invalid state machine BUG_ON()
+ - [armhf] HSI: core: fix resource leaks in hsi_add_client_from_dt()
+ - [amd64] x86/events/amd/iommu: Fix sysfs type mismatch
+ - sched/debug: Fix cgroup_path[] serialization
+ - drivers/block/null_blk/main: Fix a double free in null_init.
+ - HID: plantronics: Workaround for double volume key presses
+ - [powerpc*] prom: Mark identical_pvr_fixup as __init
+ - ALSA: core: remove redundant spin_lock pair in snd_card_disconnect
+ - bug: Remove redundant condition check in report_bug
+ - nfc: pn533: prevent potential memory corruption
+ - [arm64] net: hns3: Limiting the scope of vector_ring_chain variable
+ - ALSA: usb-audio: Add error checks for usb_driver_claim_interface() calls
+ - [powerpc*] 64s: Fix pte update for kernel memory on radix
+ - [powerpc*] perf: Fix PMU constraint check for EBB events
+ - mac80211: bail out if cipher schemes are invalid
+ - mt7601u: fix always true expression
+ - [amd64] IB/hfi1: Fix error return code in parse_platform_config()
+ - [arm64] net: thunderx: Fix unintentional sign extension issue
+ - RDMA/srpt: Fix error return code in srpt_cm_req_recv()
+ - [mips*] pci-legacy: stop using of_pci_range_to_resource
+ - [powerpc*] pseries: extract host bridge from pci_bus prior to bus removal
+ - rtlwifi: 8821ae: upgrade PHY and RF parameters
+ - mwl8k: Fix a double Free in mwl8k_probe_hw
+ - [x86] vsock/vmci: log once the failed queue pair allocation
+ - RDMA/i40iw: Fix error unwinding when i40iw_hmc_sd_one fails
+ - ALSA: usb: midi: don't return -ENOMEM when usb_urb_ep_type_check fails
+ - [armhf] net: davinci_emac: Fix incorrect masking of tx and rx error
+ channel
+ - ath9k: Fix error check in ath9k_hw_read_revisions() for PCI devices
+ - ath10k: Fix ath10k_wmi_tlv_op_pull_peer_stats_info() unlock without lock
+ - bnxt_en: fix ternary sign extension bug in bnxt_show_temp()
+ - net: geneve: modify IP header check in geneve6_xmit_skb and
+ geneve_xmit_skb
+ - [arm64] net:emac/emac-mac: Fix a use after free in emac_mac_tx_buf_send
+ - net:nfc:digital: Fix a double free in digital_tg_recv_dep_req
+ - mm/sparse: add the missing sparse_buffer_fini() in error branch
+ - mm/memory-failure: unnecessary amount of unmapping
+ - net: Only allow init netns to set default tcp cong to a restricted algo
+ - smp: Fix smp_call_function_single_async prototype
+ - Revert "net/sctp: fix race condition in sctp_destroy_sock"
+ - sctp: delay auto_asconf init until binding the first addr (CVE-2021-23133)
+ - Revert "of/fdt: Make sure no-map does not remove already reserved regions"
+ - Revert "fdt: Properly handle "no-map" field in the memory region"
+ - [arm64,x86] tpm: fix error return code in tpm2_get_cc_attrs_tbl()
+ - fs: dlm: fix debugfs dump
+ - tipc: convert dest node's address to network order
+ - [x86] ASoC: Intel: bytcr_rt5640: Enable jack-detect support on Asus
+ T100TAF
+ - [arm64] net: stmmac: Set FIFO sizes for ipq806x
+ - i2c: bail out early when RDWR parameters are wrong
+ - ALSA: hdsp: don't disable if not enabled
+ - ALSA: hdspm: don't disable if not enabled
+ - ALSA: rme9652: don't disable if not enabled
+ - Bluetooth: Set CONF_NOT_COMPLETE as l2cap_chan default
+ - Bluetooth: initialize skb_queue_head at l2cap_chan_create()
+ - net: bridge: when suppression is enabled exclude RARP packets
+ - Bluetooth: check for zapped sk before connecting
+ - ip6_vti: proper dev_{hold|put} in ndo_[un]init methods
+ - [x86] ASoC: Intel: bytcr_rt5640: Add quirk for the Chuwi Hi8 tablet
+ - i2c: Add I2C_AQ_NO_REP_START adapter quirk
+ - mac80211: clear the beacon's CRC after channel switch
+ - [armhf] pinctrl: samsung: use 'int' for register masks in Exynos
+ - cuse: prevent clone
+ - sctp: Fix out-of-bounds warning in sctp_process_asconf_param()
+ - [powerpc*] smp: Set numa node before updating mask
+ - [x86] ASoC: rt286: Generalize support for ALC3263 codec
+ - ethtool: ioctl: Fix out-of-bounds warning in
+ store_link_ksettings_for_user()
+ - [powerpc*] pseries: Stop calling printk in rtas_stop_self()
+ - [x86] wl3501_cs: Fix out-of-bounds warnings in wl3501_send_pkt
+ - [x86] wl3501_cs: Fix out-of-bounds warnings in wl3501_mgmt_join
+ - [powerpc*] iommu: Annotate nested lock for lockdep
+ - [x86] ASoC: rt286: Make RT286_SET_GPIO_* readable and writable
+ - f2fs: fix a redundant call to f2fs_balance_fs if an error occurs
+ - PCI: Release OF node in pci_scan_device()'s error path
+ - [armel,armhf] 9064/1: hw_breakpoint: Do not directly check the event's
+ overflow_handler hook
+ - [arm64] rpmsg: qcom_glink_native: fix error return code of
+ qcom_glink_rx_data()
+ - NFSv4.2: Always flush out writes in nfs42_proc_fallocate()
+ - NFS: Deal correctly with attribute generation counter overflow
+ - pNFS/flexfiles: fix incorrect size check in decode_nfs_fh()
+ - NFSv4.2 fix handling of sr_eof in SEEK's reply
+ - rtc: ds1307: Fix wday settings for rx8130
+ - [arm64] net: hns3: disable phy loopback setting in hclge_mac_start_phy
+ - sctp: do asoc update earlier in sctp_sf_do_dupcook_a
+ - ethernet:enic: Fix a use after free bug in enic_hard_start_xmit
+ - sctp: fix a SCTP_MIB_CURRESTAB leak in sctp_sf_do_dupcook_b
+ - netfilter: xt_SECMARK: add new revision to fix structure layout
+ - drm/radeon: Fix off-by-one power_state index heap overwrite
+ - drm/radeon: Avoid power table parsing memory leaks
+ - khugepaged: fix wrong result value for
+ trace_mm_collapse_huge_page_isolate()
+ - mm/hugeltb: handle the error case in hugetlb_fix_reserve_counts()
+ - ksm: fix potential missing rmap_item for stable_node
+ - net: fix nla_strcmp to handle more then one trailing null character
+ - smc: disallow TCP_ULP in smc_setsockopt()
+ - netfilter: nfnetlink_osf: Fix a missing skb_header_pointer() NULL check
+ - sched/fair: Fix unfairness caused by missing load decay
+ - [amd64] kernel: kexec_file: fix error return code of
+ kexec_calculate_store_digests()
+ - netfilter: nftables: avoid overflows in nft_hash_buckets()
+ - i40e: Fix use-after-free in i40e_client_subtask()
+ - [powerpc*] 64s: Fix crashes when toggling stf barrier
+ - [powerpc*] 64s: Fix crashes when toggling entry flush barrier
+ - hfsplus: prevent corruption in shrinking truncate
+ - squashfs: fix divide error in calculate_skip()
+ - userfaultfd: release page in error path to avoid BUG_ON
+ - drm/radeon/dpm: Disable sclk switching on Oland when two 4K 60Hz monitors
+ are connected
+ - [arm64,x86] ACPI: scan: Fix a memory leak in an error handling path
+ - blk-mq: Swap two calls in blk_mq_exit_queue()
+ - [armhf] usb: dwc3: omap: improve extcon initialization
+ - [arm64] usb: dwc3: pci: Enable usb2-gadget-lpm-disable for Intel
+ Merrifield
+ - [arm*] usb: dwc2: Fix gadget DMA unmap direction
+ - usb: core: hub: fix race condition about TRSMRCY of resume
+ - [arm64,armhf] usb: dwc3: gadget: Return success always for kick transfer
+ in ep queue
+ - xhci: Do not use GFP_KERNEL in (potentially) atomic context
+ - xhci: Add reset resume quirk for AMD xhci controller.
+ - [x86] iio: tsl2583: Fix division by a zero lux_val
+ - cdc-wdm: untangle a circular dependency between callback and softint
+ - [x86] KVM: Cancel pvclock_gtod_work on module removal
+ - thermal/core/fair share: Lock the thermal zone while looping over
+ instances
+ - kobject_uevent: remove warning in init_uevent_argv()
+ - netfilter: conntrack: Make global sysctls readonly in non-init netns
+ - nvme: do not try to reconfigure APST when the controller is not live
+ - [x86] msr: Fix wr/rdmsr_safe_regs_on_cpu() prototypes
+ - usb: sl811-hcd: improve misleading indentation
+ - cxgb4: Fix the -Wmisleading-indentation warning
+ - isdn: capi: fix mismatched prototypes
+ - [arm64] PCI: thunder: Fix compile testing
+ - [armel,armhf] 9066/1: ftrace: pause/unpause function graph tracer in
+ cpu_suspend()
+ - [arm64,x86] ACPI / hotplug / PCI: Fix reference count leak in
+ enable_slot()
+ - [arm64] Input: elants_i2c - do not bind to i2c-hid compatible ACPI
+ instantiated devices
+ - [armel,armhf] 9075/1: kernel: Fix interrupted SMC calls
+ - ceph: fix fscache invalidation
+ - scsi: target: tcmu: Return from tcmu_handle_completions() if cmd_id not
+ found
+ - [arm64,x86] gpiolib: acpi: Add quirk to ignore EC wakeups on Dell Venue 10
+ Pro 5055
+ - ALSA: hda: generic: change the DAC ctl name for LO+SPK or LO+HP
+ - block: reexpand iov_iter after read/write
+ - [arm64,armhf] net: stmmac: Do not enable RX FIFO overflow interrupts
+ - ip6_gre: proper dev_{hold|put} in ndo_[un]init methods
+ - sit: proper dev_{hold|put} in ndo_[un]init methods
+ - ip6_tunnel: sit: proper dev_{hold|put} in ndo_[un]init methods
+ - ipv6: remove extra dev_hold() for fallback tunnels
+ - iomap: fix sub-page uptodate handling
+ - [arm64] KVM: Initialize VCPU mdcr_el2 before loading it
+ - tweewide: Fix most Shebang lines
+ - scripts: switch explicitly to Python 3
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.192
+ - RDMA/rxe: Clear all QP fields if creation failed
+ - scsi: qla2xxx: Fix error return code in qla82xx_write_flash_dword()
+ - RDMA/mlx5: Recover from fatal event in dual port mode
+ - [x86] platform/x86: dell-smbios-wmi: Fix oops on rmmod dell_smbios
+ - ptrace: make ptrace() fail if the tracee changed its pid unexpectedly
+ - nvmet: seset ns->file when open fails
+ - locking/mutex: clear MUTEX_FLAGS if wait_list is empty due to signal
+ - cifs: fix memory leak in smb2_copychunk_range
+ - ALSA: dice: fix stream format for TC Electronic Konnekt Live at high
+ sampling transfer frequency
+ - ALSA: line6: Fix racy initialization of LINE6 MIDI
+ - ALSA: dice: fix stream format at middle sampling rate for Alesis iO 26
+ - ALSA: usb-audio: Validate MS endpoint descriptors
+ - ALSA: bebob/oxfw: fix Kconfig entry for Mackie d.2 Pro
+ - [i386] Revert "ALSA: sb8: add a check for request_region"
+ - ALSA: hda/realtek: reset eapd coeff to default value for alc287
+ - ALSA: hda/realtek: Add some CLOVE SSIDs of ALC293
+ - [arm64] Revert "serial: mvebu-uart: Fix to avoid a potential NULL pointer
+ dereference"
+ - [x86] xen-pciback: reconfigure also from backend watch handler
+ - dm snapshot: fix crash with transient storage and zero chunk size
+ - [x86] Revert "video: hgafb: fix potential NULL pointer dereference"
+ - [arm64,armhf] Revert "net: stmicro: fix a missing check of clk_prepare"
+ - [armhf] Revert "leds: lp5523: fix a missing check of return value of
+ lp55xx_read"
+ - Revert "hwmon: (lm80) fix a missing check of bus read in lm80 probe"
+ - Revert "ecryptfs: replace BUG_ON with error handling code"
+ - Revert "rtlwifi: fix a potential NULL pointer dereference"
+ - Revert "qlcnic: Avoid potential NULL pointer dereference"
+ - Revert "niu: fix missing checks of niu_pci_eeprom_read"
+ - ethernet: sun: niu: fix missing checks of niu_pci_eeprom_read()
+ - [arm64,armhf] net: stmicro: handle clk_prepare() failure during init
+ - net: rtlwifi: properly check for alloc_workqueue() failure
+ - [armhf] leds: lp5523: check return value of lp5xx_read and jump to cleanup
+ code
+ - qlcnic: Add null check after calling netdev_alloc_skb
+ - [x86] video: hgafb: fix potential NULL pointer dereference
+ - vgacon: Record video mode changes with VT_RESIZEX
+ - vt: Fix character height handling with VT_RESIZEX
+ - tty: vt: always invoke vc->vc_sw->con_resize callback
+ - [x86] video: hgafb: correctly handle card detect failure during probe
+ - Bluetooth: SMP: Fail if remote and local public keys are identical
+ (CVE-2020-26558, CVE-2021-0129)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.193
+ - mm, vmstat: drop zone->lock in /proc/pagetypeinfo
+ - [arm64,armhf] usb: dwc3: gadget: Enable suspend events
+ - NFC: nci: fix memory leak in nci_allocate_device
+ - cifs: set server->cipher_type to AES-128-CCM for SMB3.0
+ - NFSv4: Fix a NULL pointer dereference in pnfs_mark_matching_lsegs_return()
+ - [amd64] iommu/vt-d: Fix sysfs leak in alloc_iommu()
+ - proc: Check /proc/$pid/attr/ writes against file opener
+ - net: hso: fix control-request directions
+ - mac80211: assure all fragments are encrypted (CVE-2020-26147)
+ - mac80211: prevent mixed key and fragment cache attacks (CVE-2020-24586,
+ CVE-2020-24587)
+ - mac80211: properly handle A-MSDUs that start with an RFC 1042 header
+ - cfg80211: mitigate A-MSDU aggregation attacks (CVE-2020-24588)
+ - mac80211: drop A-MSDUs on old ciphers (CVE-2020-24588)
+ - mac80211: add fragment cache to sta_info
+ - mac80211: check defrag PN against current frame
+ - mac80211: prevent attacks on TKIP/WEP as well
+ - mac80211: do not accept/forward invalid EAPOL frames (CVE-2020-26139)
+ - mac80211: extend protection against mixed key and fragment cache attacks
+ (CVE-2020-24586, CVE-2020-24587)
+ - ath10k: Validate first subframe of A-MSDU before processing the list
+ - dm snapshot: properly fix a crash when an origin has no snapshots
+ - misc/uss720: fix memory leak in uss720_probe
+ - [x86] thunderbolt: dma_port: Fix NVM read buffer bounds and offset issue
+ - [x86] mei: request autosuspend after sending rx flow control
+ - USB: trancevibrator: fix control-request direction
+ - USB: usbfs: Don't WARN about excessively large memory allocations
+ - serial: rp2: use 'request_firmware' instead of 'request_firmware_nowait'
+ - USB: serial: ti_usb_3410_5052: add startech.com device id
+ - USB: serial: option: add Telit LE910-S1 compositions 0x7010, 0x7011
+ - USB: serial: ftdi_sio: add IDs for IDS GmbH Products
+ - USB: serial: pl2303: add device id for ADLINK ND-6530 GC
+ - [arm64,armhf] usb: dwc3: gadget: Properly track pending and queued SG
+ - net: usb: fix memory leak in smsc75xx_bind
+ - bpf: extend is_branch_taken to registers
+ - bpf: Test_verifier, bpf_get_stack return value add <0
+ - bpf, test_verifier: switch bpf_get_stack's 0 s> r8 test
+ - bpf: Move off_reg into sanitize_ptr_alu (CVE-2021-29155)
+ - bpf: Ensure off_reg has no mixed signed bounds for all types
+ (CVE-2021-29155)
+ - bpf: Rework ptr_limit into alu_limit and add common error path
+ (CVE-2021-29155)
+ - bpf: Improve verifier error messages for users (CVE-2021-29155)
+ - bpf: Refactor and streamline bounds check into helper (CVE-2021-29155)
+ - bpf: Move sanitize_val_alu out of op switch (CVE-2021-29155)
+ - bpf: Tighten speculative pointer arithmetic mask (CVE-2021-29155)
+ - bpf: Update selftests to reflect new error states
+ - bpf: Fix leakage of uninitialized bpf stack under speculation
+ (CVE-2021-31829)
+ - bpf: Wrap aux data inside bpf_sanitize_info container
+ - bpf: Fix mask direction swap upon off reg sign change
+ - bpf: No need to simulate speculative domain for immediates
+ - [armhf] spi: gpio: Don't leak SPI master in probe error path
+ - Bluetooth: cmtp: fix file refcount when cmtp_attach_device fails
+ - NFS: fix an incorrect limit in filelayout_decode_layout()
+ - NFS: Don't corrupt the value of pg_bytes_written in nfs_do_recoalesce()
+ - NFSv4: Fix v4.0/v4.1 SEEK_DATA return -ENOTSUPP when set NFS_V4_2 config
+ - [arm64] drm/meson: fix shutdown crash when component not probed
+ - net/mlx4: Fix EEPROM dump support
+ - Revert "net:tipc: Fix a double free in tipc_sk_mcast_rcv"
+ - tipc: skb_linearize the head skb when reassembling msgs
+ - [arm64,armhf] net: dsa: fix a crash if ->get_sset_count() fails
+ - [armhf] i2c: s3c2410: fix possible NULL pointer deref on read message
+ after write
+ - [x86] i2c: i801: Don't generate an interrupt on bus reset
+ - [x86] platform/x86: hp_accel: Avoid invoking _INI to speed up resume
+ - [x86] net: fujitsu: fix potential null-ptr-deref
+ - [x86] char: hpet: add checks after calling ioremap
+ - isdn: mISDNinfineon: check/cleanup ioremap failure correctly in setup_io
+ - [arm64] dmaengine: qcom_hidma: comment platform_driver_register call
+ - libertas: register sysfs groups properly
+ - media: dvb: Add check on sp8870_readreg return
+ - media: gspca: properly check for errors in po1030_probe()
+ - [x86] scsi: BusLogic: Fix 64-bit system enumeration error for Buslogic
+ - btrfs: do not BUG_ON in link_to_fixup_dir
+ - [x86] platform/x86: hp-wireless: add AMD's hardware id to the supported
+ list
+ - SMB3: incorrect file id in requests compounded with open
+ - drm/amd/amdgpu: fix refcount leak
+ - drm/amdgpu: Fix a use-after-free
+ - [arm64,armhf] net: dsa: fix error code getting shifted with 4 in
+ dsa_slave_get_sset_count
+ - [armhf] net: fec: fix the potential memory leak in fec_enet_init()
+ - [arm64] net: mdio: thunder: Fix a double free issue in the .remove
+ function
+ - [mips*] net: mdio: octeon: Fix some double free issues
+ - openvswitch: meter: fix race when getting now_ms.
+ - net: bnx2: Fix error return code in bnx2_init_board()
+ - mld: fix panic in mld_newpack()
+ - bpf: Set mac_len in bpf_skb_change_head
+ - ixgbe: fix large MTU request from VF
+ - scsi: libsas: Use _safe() loop in sas_resume_port()
+ - ipv6: record frag_max_size in atomic fragments in input path
+ - sch_dsmark: fix a NULL deref in qdisc_reset()
+ - hugetlbfs: hugetlb_fault_mutex_hash() cleanup
+ - drivers/net/ethernet: clean up unused assignments
+ - [arm64] net: hns3: check the return of skb_checksum_help()
+ - usb: core: reduce power-on-good delay time of root hub
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.194
+ - net: usb: cdc_ncm: don't spew notifications (Closes: #989451)
+ - ALSA: usb: update old-style static const declaration
+ - nl80211: validate key indexes for cfg80211_registered_device
+ - efi: Allow EFI_MEMORY_XP and EFI_MEMORY_RO both to be cleared
+ - [arm64,x86] efi: cper: fix snprintf() use in cper_dimm_err_location()
+ - vfio/pci: Fix error return code in vfio_ecap_init()
+ - ipvs: ignore IP_VS_SVC_F_HASHED flag when adding service
+ - HID: pidff: fix error return code in hid_pidff_init()
+ - [arm64,x86] HID: i2c-hid: fix format string mismatch
+ - netfilter: nfnetlink_cthelper: hit EBUSY on updates if size mismatches
+ - ieee802154: fix error return code in ieee802154_add_iface()
+ - ieee802154: fix error return code in ieee802154_llsec_getparams()
+ - ixgbevf: add correct exception tracing for XDP
+ - tipc: add extack messages for bearer/media failure
+ - tipc: fix unique bearer names sanity check
+ - Bluetooth: fix the erroneous flush_work() order (CVE-2021-3564)
+ - Bluetooth: use correct lock to prevent UAF of hdev object (CVE-2021-3573)
+ - HID: multitouch: require Finger field to mark Win8 reports as MT
+ - ALSA: timer: Fix master timer notification
+ - ALSA: hda: Fix for mute key LED for HP Pavilion 15-CK0xx
+ - ext4: fix bug on in ext4_es_cache_extent as ext4_split_extent_at failed
+ - [arm*] usb: dwc2: Fix build in periphal-only mode
+ - pid: take a reference when initializing `cad_pid`
+ - ocfs2: fix data corruption by fallocate
+ - nfc: fix NULL ptr dereference in llcp_sock_getname() after failed connect
+ (CVE-2021-3587)
+ - [x86] apic: Mark _all_ legacy interrupts when IO/APIC is missing
+ - btrfs: mark ordered extent and inode with error if we fail to finish
+ - btrfs: fix error handling in btrfs_del_csums
+ - btrfs: return errors from btrfs_del_csums in cleanup_ref_head
+ - btrfs: fixup error handling in fixup_inode_link_counts
+ - mm, hugetlb: fix simple resv_huge_pages underflow on UFFDIO_COPY
+ - bpf: Add BPF_F_ANY_ALIGNMENT.
+ - bnxt_en: Remove the setting of dev_port.
+ - perf/cgroups: Don't rotate events for cgroups unnecessarily
+ - perf/core: Fix corner case in perf_rotate_context()
+ - btrfs: fix unmountable seed device after fstrim
+ - [x86] KVM: SVM: Truncate GPR value for DR and CR accesses in !64-bit mode
+ - [arm64] KVM: Fix debug register indexing
+ - [arm64,x86] ACPI: probe ECDT before loading AML tables regardless of
+ module-level code flag
+ - [arm64,x86] ACPI: EC: Look for ECDT EC after calling acpi_load_tables()
+ - sched/fair: Optimize select_idle_cpu
+ - [x86] xen-pciback: redo VF placement in the virtual topology
+
+ [ Salvatore Bonaccorso ]
+ * [rt] Update to 4.19.182-rt74
+ * [rt] Add new signing key for Clark Williams
+ * [rt] Update to 4.19.184-rt75
+ * Bump ABI to 17
+ * [rt] Refresh "workqueue: Use normal rcu"
+ * [rt] Refresh "workqueue: Use local irq lock instead of irq disable"
+ * [rt] Refresh "workqueue: rework"
+ * [rt] Update to 4.19.188-rt77
+ * [rt] Update to 4.19.190-rt79
+ * [rt] Refresh "ptrace: fix ptrace vs tasklist_lock race"
+ * [rt] Update to 4.19.193-rt81
+ * [rt] Refresh "kernel: sched: Provide a pointer to the valid CPU mask"
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Thu, 10 Jun 2021 20:49:34 +0200
+
+linux (4.19.181-1) buster; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.178
+ - HID: make arrays usage and value to be the same
+ - USB: quirks: sort quirk entries
+ - usb: quirks: add quirk to start video capture on ELMO L-12F document
+ camera reliable
+ - block: add helper for checking if queue is registered
+ - block: split .sysfs_lock into two locks
+ - block: fix race between switching elevator and removing queues
+ - block: don't release queue's sysfs lock during switching elevator
+ - NET: usb: qmi_wwan: Adding support for Cinterion MV31
+ - cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting cifs_sb->prepath.
+ - jump_label/lockdep: Assert we hold the hotplug lock for _cpuslocked()
+ operations
+ - locking/static_key: Fix false positive warnings on concurrent dec/inc
+ - vmlinux.lds.h: add DWARF v5 sections
+ - [arm64] PCI: qcom: Use PHY_REFCLK_USE_PAD only for ipq8064
+ - bfq: Avoid false bfq queue merging
+ - ALSA: usb-audio: Fix PCM buffer allocation in non-vmalloc mode
+ - [mips*] vmlinux.lds.S: add missing PAGE_ALIGNED_DATA() section
+ - random: fix the RNDRESEEDCRNG ioctl
+ - [arm64] Bluetooth: btqcomsmd: Fix a resource leak in error handling
+ paths in the probe function
+ - Bluetooth: Fix initializing response id after clearing struct
+ - [armhf] dts: exynos: correct PMIC interrupt trigger level on Spring
+ - [armhf] dts: exynos: correct PMIC interrupt trigger level on Arndale Octa
+ - bpf: Avoid warning when re-casting __bpf_call_base into
+ __bpf_call_base_args
+ - [arm64] dts: allwinner: A64: properly connect USB PHY to port 0
+ - [arm64] dts: allwinner: A64: Limit MMC2 bus frequency to 150 MHz
+ - ACPICA: Fix exception code class checks
+ - usb: gadget: u_audio: Free requests only after callback
+ - Bluetooth: drop HCI device reference before return
+ - Bluetooth: Put HCI device if inquiry procedure interrupts
+ - [arm*] usb: dwc2: Do not update data length if it is 0 on inbound
+ transfers
+ - [arm*] usb: dwc2: Abort transaction after errors with unknown reason
+ - [arm*] usb: dwc2: Make "trimming xfer length" a debug message
+ - staging: rtl8723bs: wifi_regd.c: Fix incorrect number of regulatory
+ rules
+ - [armhf] dts: armada388-helios4: assign pinctrl to LEDs
+ - [armhf] dts: armada388-helios4: assign pinctrl to each fan
+ - bpf_lru_list: Read double-checked variable once without lock
+ - bnxt_en: reverse order of TX disable and carrier off
+ - xen/netback: fix spurious event detection for common event case
+ - mac80211: fix potential overflow when multiplying to u32 integers
+ - bpf: Fix bpf_fib_lookup helper MTU check for SKB ctx
+ - tcp: fix SO_RCVLOWAT related hangs under mem pressure
+ - cxgb4/chtls/cxgbit: Keeping the max ofld immediate data size same in
+ cxgb4 and ulds
+ - b43: N-PHY: Fix the update of coef for the PHY revision >= 3case
+ - [amd64,arm64] net: amd-xgbe: Reset the PHY rx data path when mailbox
+ command timeout
+ - [amd64,arm64] net: amd-xgbe: Fix NETDEV WATCHDOG transmit queue timeout
+ warning
+ - [amd64,arm64] net: amd-xgbe: Reset link when the link never comes back
+ - [amd64,arm64] net: amd-xgbe: Fix network fluctuations when using 1G
+ BELFUSE SFP
+ - [arm64,armhf] net: mvneta: Remove per-cpu queue mapping for Armada 3700
+ - [x86] drm/gma500: Fix error return code in psb_driver_load()
+ - [x86] gma500: clean up error handling in init
+ - [armhf] crypto: sun4i-ss - fix kmap usage
+ - [mips*] c-r4k: Fix section mismatch for loongson2_sc_init
+ - media: em28xx: Fix use-after-free in em28xx_alloc_urbs
+ - media: media/pci: Fix memleak in empress_init
+ - [x86] media: tm6000: Fix memleak in tm6000_start_stream
+ - media: lmedm04: Fix misuse of comma
+ - media: qm1d1c0042: fix error return code in qm1d1c0042_init()
+ - media: uvcvideo: Accept invalid bFormatIndex and bFrameIndex values
+ - f2fs: fix to avoid inconsistent quota data
+ - drm/amdgpu: Prevent shift wrapping in amdgpu_read_mask()
+ - [x86] Drivers: hv: vmbus: Avoid use-after-free in
+ vmbus_onoffer_rescind()
+ - btrfs: clarify error returns values in __load_free_space_cache
+ - crypto: ecdh_helper - Ensure 'len >= secret.len' in decode_key()
+ - fs/jfs: fix potential integer overflow on shift of a int
+ - jffs2: fix use after free in jffs2_sum_write_data()
+ - capabilities: Don't allow writing ambiguous v3 file capabilities
+ - [arm64,armhf] clk: meson: clk-pll: fix initializing the old rate
+ (fallback) for a PLL
+ - quota: Fix memory leak when handling corrupted quota file
+ - [arm64] clk: sunxi-ng: h6: Fix CEC clock
+ - HID: core: detect and skip invalid inputs to snto32()
+ - fdt: Properly handle "no-map" field in the memory region
+ - of/fdt: Make sure no-map does not remove already reserved regions
+ - RDMA/mlx5: Use the correct obj_id upon DEVX TIR creation
+ - [arm64] clk: sunxi-ng: h6: Fix clock divider range on some clocks
+ - [arm64,armhf] regulator: axp20x: Fix reference cout leak
+ - certs: Fix blacklist flag type confusion
+ - [armhf] regulator: s5m8767: Drop regulators OF node reference
+ - isofs: release buffer head before return
+ - IB/umad: Return EIO in case of when device disassociated
+ - IB/umad: Return EPOLLERR in case of when device disassociated
+ - [ppc64el] KVM: Make the VMX instruction emulation routines static
+ - [armel,armhf] 9046/1: decompressor: Do not clear SCTLR.nTLSMD for ARMv7+
+ cores
+ - [arm*] amba: Fix resource leak for drivers without .remove
+ - tracepoint: Do not fail unregistering a probe due to memory failure
+ - perf tools: Fix DSO filtering when not finding a map for a sampled
+ address
+ - RDMA/rxe: Fix coding error in rxe_recv.c
+ - RDMA/rxe: Correct skb on loopback path
+ - [powerpc*] pseries/dlpar: handle ibm, configure-connector delay status
+ - [amd64] spi: pxa2xx: Fix the controller numbering for Wildcat Point
+ - Input: sur40 - fix an error code in sur40_probe()
+ - perf intel-pt: Fix missing CYC processing in PSB
+ - Input: elo - fix an error code in elo_connect()
+ - [arm64,armhf] pwm: rockchip: rockchip_pwm_probe(): Remove superfluous
+ clk_unprepare()
+ - [x86] VMCI: Use set_page_dirty_lock() when unregistering guest memory
+ - PCI: Align checking of syscall user config accessors
+ - [arm64] drm/msm/dsi: Correct io_start for MSM8994 (20nm PHY)
+ - ext4: fix potential htree index checksum corruption
+ - i40e: Fix flow for IPv6 next header (extension header)
+ - i40e: Add zero-initialization of AQ command structures
+ - i40e: Fix overwriting flow control settings during driver loading
+ - i40e: Fix VFs not created
+ - i40e: Fix add TC filter for IPv6
+ - net/mlx4_core: Add missed mlx4_free_cmd_mailbox()
+ - vxlan: move debug check after netdev unregister
+ - ocfs2: fix a use after free on error
+ - mm/memory.c: fix potential pte_unmap_unlock pte error
+ - mm/hugetlb: fix potential double free in hugetlb_register_node() error
+ path
+ - r8169: fix jumbo packet handling on RTL8168e
+ - [arm64] Add missing ISB after invalidating TLB in __primary_switch
+ - mm/rmap: fix potential pte_unmap on an not mapped pte
+ - blk-settings: align max_sectors on "logical_block_size" boundary
+ - ACPI: property: Fix fwnode string properties matching
+ - HID: wacom: Ignore attempts to overwrite the touch_max value from HID
+ - Input: xpad - add support for PowerA Enhanced Wired Controller for Xbox
+ Series X|S
+ - Input: joydev - prevent potential read overflow in ioctl
+ - USB: serial: option: update interface mapping for ZTE P685M
+ - [arm64,armhf] usb: musb: Fix runtime PM race in musb_queue_resume_work
+ - [arm64,armhf] usb: dwc3: gadget: Fix setting of DEPCFG.bInterval_m1
+ - [arm64,armhf] usb: dwc3: gadget: Fix dep->interval for fullspeed
+ interrupt
+ - USB: serial: ftdi_sio: fix FTX sub-integer prescaler
+ - USB: serial: mos7840: fix error code in mos7840_write()
+ - USB: serial: mos7720: fix error code in mos7720_write()
+ - ALSA: hda/realtek: modify EAPD in the ALC886
+ - tpm_tis: Fix check_locality for correct locality acquisition
+ - tpm_tis: Clean up locality release
+ - KEYS: trusted: Fix migratable=1 failing
+ - btrfs: abort the transaction if we fail to inc ref in btrfs_copy_root
+ - btrfs: fix reloc root leak with 0 ref reloc roots on recovery
+ - btrfs: fix extent buffer leak on failure to copy root
+ - [arm64] crypto: arm64/sha - add missing module aliases
+ - [armhf] crypto: sun4i-ss - checking sg length is not sufficient
+ - [armhf] crypto: sun4i-ss - handle BigEndian for cipher
+ - seccomp: Add missing return in non-void function
+ - misc: rtsx: init of rts522a add OCP power off when no card is present
+ - [x86] drivers/misc/vmw_vmci: restrict too big queue size in
+ qp_host_alloc_queue
+ - staging: rtl8188eu: Add Edimax EW-7811UN V2 to device table
+ - [x86] reboot: Force all cpus to exit VMX root if VMX is supported
+ - floppy: reintroduce O_NDELAY fix
+ - [arm64] uprobe: Return EOPNOTSUPP for AARCH32 instruction probing
+ - [x86] watchdog: mei_wdt: request stop on unregister
+ - [arm64] mtd: spi-nor: hisi-sfc: Put child node np on error path
+ - fs/affs: release old buffer head on error path
+ - seq_file: document how per-entry resources are managed.
+ - [x86] fix seq_file iteration for pat/memtype.c
+ - hugetlb: fix copy_huge_page_from_user contig page struct assumption
+ - libnvdimm/dimm: Avoid race between probe and available_slots_show()
+ - [arm64] Extend workaround for erratum 1024718 to all versions of
+ Cortex-A55
+ - module: Ignore _GLOBAL_OFFSET_TABLE_ when warning for undefined symbols
+ - [armhf] mmc: sdhci-esdhc-imx: fix kernel panic when remove module
+ - [armhf] gpio: pcf857x: Fix missing first interrupt
+ - printk: fix deadlock when kernel panic
+ - [x86] cpufreq: intel_pstate: Get per-CPU max freq via
+ MSR_HWP_CAPABILITIES if available
+ - f2fs: fix out-of-repair __setattr_copy()
+ - gfs2: Don't skip dlm unlock if glock has an lvb
+ - dm: fix deadlock when swapping to encrypted device
+ - dm era: Recover committed writeset after crash
+ - dm era: Verify the data block size hasn't changed
+ - dm era: Fix bitset memory leaks
+ - dm era: Use correct value size in equality function of writeset tree
+ - dm era: Reinitialize bitset cache before digesting a new writeset
+ - dm era: only resize metadata in preresume
+ - icmp: introduce helper for nat'd source address in network device
+ context
+ - icmp: allow icmpv6_ndo_send to work with CONFIG_IPV6=n
+ - gtp: use icmp_ndo_send helper
+ - xfrm: interface: use icmp_ndo_send helper
+ - ipv6: icmp6: avoid indirect call for icmpv6_send()
+ - ipv6: silence compilation warning for non-IPV6 builds
+ - net: icmp: pass zeroed opts from icmp{,v6}_ndo_send before sending
+ - dm era: Update in-core bitset after committing the metadata
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.179
+ - net: usb: qmi_wwan: support ZTE P685M modem
+ - hugetlb: fix update_and_free_page contig page struct assumption
+ - drm/virtio: use kvmalloc for large allocations
+ - [s390x] virtio/s390: implement virtio-ccw revision 2 correctly
+ - [arm64] module: set plt* section addresses to 0x0
+ - [arm64] Avoid redundant type conversions in xchg() and cmpxchg()
+ - [arm64] cmpxchg: Use "K" instead of "L" for ll/sc immediate constraint
+ - [arm64] Use correct ll/sc atomic constraints
+ - JFS: more checks for invalid superblock
+ - udlfb: Fix memory leak in dlfb_usb_probe
+ - media: mceusb: sanity check for prescaler value
+ - xfs: Fix assert failure in xfs_setattr_size()
+ - net: fix up truesize of cloned skb in skb_prepare_for_shift()
+ - mm/hugetlb.c: fix unnecessary address expansion of pmd sharing
+ - net: bridge: use switchdev for port flags set through sysfs too
+ - dt-bindings: net: btusb: DT fix s/interrupt-name/interrupt-names/
+ - rsi: Fix TX EAPOL packet handling against iwlwifi AP
+ - rsi: Move card interrupt handling to RX thread
+ - [x86] reboot: Add Zotac ZBOX CI327 nano PCI reboot quirk
+ - vt/consolemap: do font sum unsigned
+ - [arm64,armhf] wlcore: Fix command execute failure 19 for wl12xx
+ - Bluetooth: hci_h5: Set HCI_QUIRK_SIMULTANEOUS_DISCOVERY for btrtl
+ - pktgen: fix misuse of BUG_ON() in pktgen_thread_worker()
+ - ath10k: fix wmi mgmt tx queue full due to race condition
+ - [x86] build: Treat R_386_PLT32 relocation as R_386_PC32
+ - Bluetooth: Fix null pointer dereference in amp_read_loc_assoc_final_data
+ - crypto: tcrypt - avoid signed overflow in byte count
+ - PCI: Add a REBAR size quirk for Sapphire RX 5600 XT Pulse
+ - media: uvcvideo: Allow entities with no pads
+ - f2fs: handle unallocated section and zone on pinned/atgc
+ - f2fs: fix to set/clear I_LINKABLE under i_lock
+ - btrfs: fix error handling in commit_fs_roots
+ - [x86] ASoC: Intel: bytcr_rt5640: Add quirk for the Estar Beauty HD MID
+ 7316R tablet
+ - [x86] ASoC: Intel: bytcr_rt5640: Add quirk for the Voyo Winpad A15
+ tablet
+ - [x86] ASoC: Intel: bytcr_rt5640: Add quirk for the Acer One S1002 tablet
+ - scsi: iscsi: Restrict sessions and handles to admin capabilities
+ (CVE-2021-27363, CVE-2021-27364)
+ - sysfs: Add sysfs_emit and sysfs_emit_at to format sysfs output
+ - scsi: iscsi: Ensure sysfs attributes are limited to PAGE_SIZE
+ (CVE-2021-27365)
+ - scsi: iscsi: Verify lengths on passthrough PDUs (CVE-2021-27365)
+ - Xen/gnttab: handle p2m update errors on a per-slot basis
+ (CVE-2021-28038)
+ - xen-netback: respect gnttab_map_refs()'s return value (CVE-2021-28038)
+ - zsmalloc: account the number of compacted pages correctly
+ - swap: fix swapfile read/write offset
+ - media: v4l: ioctl: Fix memory leak in video_usercopy
+ - ALSA: hda/realtek: Add quirk for Clevo NH55RZQ
+ - ALSA: hda/realtek: Apply dual codec quirks for MSI Godlike X570 board
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.180
+ - btrfs: raid56: simplify tracking of Q stripe presence
+ - btrfs: fix raid6 qstripe kmap
+ - btrfs: validate qgroup inherit for SNAP_CREATE_V2 ioctl
+ - btrfs: free correct amount of space in
+ btrfs_delayed_inode_reserve_metadata
+ - btrfs: unlock extents in btrfs_zero_range in case of quota reservation
+ errors
+ - PM: runtime: Update device status before letting suppliers suspend
+ - dm bufio: subtract the number of initial sectors in
+ dm_bufio_get_device_size
+ - drm/amdgpu: fix parameter error of RREG32_PCIE() in amdgpu_regs_pcie
+ - usbip: tools: fix build error for multiple definition
+ - Revert "zram: close udev startup race condition as default groups"
+ - block: genhd: add 'groups' argument to device_add_disk
+ - nvme: register ns_id attributes as default sysfs groups
+ - aoe: register default groups with device_add_disk()
+ - zram: register default groups with device_add_disk()
+ - virtio-blk: modernize sysfs attribute creation
+ - ALSA: ctxfi: cthw20k2: fix mask on conf to allow 4 bits
+ - rsxx: Return -EFAULT if copy_to_user() fails
+ - r8169: fix resuming from suspend on RTL8105e if machine runs on battery
+ - [arm64,armhf] net: dsa: add GRO support via gro_cells
+ - dm table: fix iterate_devices based device capability checks
+ - dm table: fix DAX iterate_devices based device capability checks
+ - dm table: fix zoned iterate_devices based device capability checks
+ - [amd64] iommu/amd: Fix sleeping in atomic in increase_address_space()
+ - mwifiex: pcie: skip cancel_work_sync() on reset failure path
+ - [x86] platform/x86: acer-wmi: Cleanup ACER_CAP_FOO defines
+ - [x86] platform/x86: acer-wmi: Cleanup accelerometer device handling
+ - [x86] platform/x86: acer-wmi: Add new force_caps module parameter
+ - [x86] platform/x86: acer-wmi: Add ACER_CAP_SET_FUNCTION_MODE capability
+ flag
+ - [x86] platform/x86: acer-wmi: Add support for SW_TABLET_MODE on Switch
+ devices
+ - [x86] platform/x86: acer-wmi: Add ACER_CAP_KBD_DOCK quirk for the Aspire
+ Switch 10E SW3-016
+ - HID: mf: add support for 0079:1846 Mayflash/Dragonrise USB Gamecube
+ Adapter
+ - media: cx23885: add more quirks for reset DMA on some AMD IOMMU
+ - [x86] ASoC: Intel: bytcr_rt5640: Add quirk for ARCHOS Cesium 140
+ - PCI: Add function 1 DMA alias quirk for Marvell 9215 SATA controller
+ - misc: eeprom_93xx46: Add quirk to support Microchip 93LC46B eeprom
+ - [arm64] drm/msm/a5xx: Remove overwriting A5XX_PC_DBG_ECO_CNTL register
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.181
+ - uapi: nfnetlink_cthelper.h: fix userspace compilation error
+ - ethernet: alx: fix order of calls on resume (Closes: #983595)
+ - ath9k: fix transmitting to stations in dynamic SMPS mode
+ - net: Fix gro aggregation for udp encaps with zero csum
+ - net: Introduce parse_protocol header_ops callback
+ - can: skb: can_skb_set_owner(): fix ref counting if socket was closed
+ before setting skb ownership
+ - [armhf] can: flexcan: assert FRZ bit in flexcan_chip_freeze()
+ - [armhf] can: flexcan: enable RX FIFO after FRZ/HALT valid
+ - netfilter: x_tables: gpf inside xt_find_revision()
+ - mt76: dma: do not report truncated frames to mac80211
+ - tcp: annotate tp->copied_seq lockless reads
+ - tcp: annotate tp->write_seq lockless reads
+ - tcp: add sanity tests to TCP_QUEUE_SEQ
+ - cifs: return proper error code in statfs(2)
+ - scripts/recordmcount.{c,pl}: support -ffunction-sections .text.* section
+ names
+ - Revert "mm, slub: consider rest of partial list if acquire_slab() fails"
+ - net: check if protocol extracted by virtio_net_hdr_set_proto is correct
+ - net: avoid infinite loop in mpls_gso_segment when mpls_hlen == 0
+ - net/mlx4_en: update moderation when config reset
+ - [arm64,armhf] net: stmmac: fix incorrect DMA channel intr enable setting
+ of EQoS v4.10
+ - net: sched: avoid duplicates in classes dump
+ - net: usb: qmi_wwan: allow qmimux add/del with master up
+ - [arm64,armhf] net: stmmac: stop each tx channel independently
+ - [arm64,armhf] net: stmmac: fix watchdog timeout during suspend/resume
+ stress test
+ - drm/compat: Clear bounce structures
+ - [arm64] drm: meson_drv add shutdown function
+ - media: usbtv: Fix deadlock on suspend
+ - net: phy: fix save wrong speed and duplex problem if autoneg is on
+ - udf: fix silent AED tagLocation corruption
+ - [powerpc*] pci: Add ppc_md.discover_phbs()
+ - [powerpc*] improve handling of unrecoverable system reset
+ - [powerpc*] perf: Record counter overflow always if SAMPLE_IP is unset
+ - [arm64] PCI: xgene-msi: Fix race in installing chained irq handler
+ - PCI: Fix pci_register_io_range() memory leak
+ - i40e: Fix memory leak in i40e_probe
+ - [s390x] smp: __smp_rescan_cpus() - move cpumask away from stack
+ - scsi: libiscsi: Fix iscsi_prep_scsi_cmd_pdu() error handling
+ - scsi: target: core: Add cmd length set before cmd complete
+ - scsi: target: core: Prevent underflow for service actions
+ - ALSA: usb: Add Plantronics C320-M USB ctrl msg delay quirk
+ - ALSA: hda/hdmi: Cancel pending works before suspend
+ - ALSA: hda: Drop the BATCH workaround for AMD controllers
+ - ALSA: hda: Avoid spurious unsol event handling during S3/S4
+ - ALSA: usb-audio: Fix "cannot get freq eq" errors on Dell AE515 sound bar
+ - ALSA: usb-audio: Apply the control quirk to Plantronics headsets
+ - Revert 95ebabde382c ("capabilities: Don't allow writing ambiguous v3 file
+ capabilities")
+ - [s390x] dasd: fix hanging DASD driver unbind
+ - [s390x] dasd: fix hanging IO request during DASD driver unbind
+ - mmc: core: Fix partition switch time for eMMC
+ - mmc: cqhci: Fix random crash when remove mmc module/card
+ - Goodix Fingerprint device is not a modem
+ - USB: gadget: u_ether: Fix a configfs return code
+ - usb: gadget: f_uac2: always increase endpoint max_packet_size by one audio
+ slot
+ - usb: gadget: f_uac1: stop playback on function disable
+ - [arm64] usb: dwc3: qcom: Honor wakeup enabled/disabled state
+ - USB: usblp: fix a hang in poll() if disconnected
+ - xhci: Improve detection of device initiated wake signal.
+ - usb: xhci: Fix ASMedia ASM1042A and ASM3242 DMA addressing
+ - USB: serial: io_edgeport: fix memory leak in edge_startup
+ - USB: serial: ch341: add new Product ID
+ - USB: serial: cp210x: add ID for Acuity Brands nLight Air Adapter
+ - USB: serial: cp210x: add some more GE USB IDs
+ - usbip: fix stub_dev to check for stream socket
+ - usbip: fix vhci_hcd to check for stream socket
+ - usbip: fix vudc to check for stream socket
+ - usbip: fix stub_dev usbip_sockfd_store() races leading to gpf
+ - usbip: fix vhci_hcd attach_store() races leading to gpf
+ - usbip: fix vudc usbip_sockfd_store races leading to gpf
+ - [x86] staging: rtl8192u: fix ->ssid overflow in r8192_wx_set_scan()
+ - staging: rtl8188eu: prevent ->ssid overflow in rtw_wx_set_scan()
+ (CVE-2021-28660)
+ - staging: rtl8712: unterminated string leads to read overflow
+ - staging: rtl8188eu: fix potential memory corruption in
+ rtw_check_beacon_data()
+ - staging: rtl8712: Fix possible buffer overflow in r8712_sitesurvey_cmd
+ - [x86] staging: rtl8192e: Fix possible buffer overflow in
+ _rtl92e_wx_set_scan
+ - [x86] staging: comedi: addi_apci_1032: Fix endian problem for COS sample
+ - [x86] staging: comedi: addi_apci_1500: Fix endian problem for command
+ sample
+ - [x86] staging: comedi: adv_pci1710: Fix endian problem for AI command data
+ - [i386] staging: comedi: das6402: Fix endian problem for AI command data
+ - [i386] staging: comedi: das800: Fix endian problem for AI command data
+ - [i386] staging: comedi: dmm32at: Fix endian problem for AI command data
+ - [x86] staging: comedi: me4000: Fix endian problem for AI command data
+ - [i386] staging: comedi: pcl711: Fix endian problem for AI command data
+ - [i386] staging: comedi: pcl818: Fix endian problem for AI command data
+ - NFSv4.2: fix return value of _nfs4_get_security_label()
+ - block: rsxx: fix error return code of rsxx_pci_probe()
+ - configfs: fix a use-after-free in __configfs_open_file
+ - hrtimer: Update softirq_expires_next correctly after
+ __hrtimer_get_next_event()
+ - stop_machine: mark helpers __always_inline
+ - include/linux/sched/mm.h: use rcu_dereference in in_vfork()
+ - [powerpc*] 64s: Fix instruction encoding for lis in ppc_function_entry()
+ - binfmt_misc: fix possible deadlock in bm_register_write
+ - [amd64] x86/unwind/orc: Disable KASAN checking in the ORC unwinder, part 2
+ - hwmon: (lm90) Fix max6658 sporadic wrong temperature reading
+ - [arm64] KVM: Fix exclusive limit for IPA size
+ - xen/events: reset affinity of 2-level event when tearing it down
+ - xen/events: don't unmask an event channel when an eoi is pending
+ - xen/events: avoid handling the same event on two cpus at the same time
+
+ [ Salvatore Bonaccorso ]
+ * Bump ABI to 16
+ * ext4: check journal inode extents more carefully (CVE-2021-3428)
+ * bpf: Prohibit alu ops for pointer types not defining ptr_limit
+ (CVE-2020-27170)
+ * bpf: Fix off-by-one for area size in creating mask to left
+ (CVE-2020-27171)
+ * bpf: Simplify alu_limit masking for pointer arithmetic
+ * bpf: Add sanity check for upper ptr_limit
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Fri, 19 Mar 2021 15:29:57 +0100
+
+linux (4.19.177-1) buster; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.172
+ - tools: Factor HOSTCC, HOSTLD, HOSTAR definitions
+ - dm integrity: conditionally disable "recalculate" feature
+ - writeback: Drop I_DIRTY_TIME_EXPIRE
+ - fs: fix lazytime expiration handling in __writeback_single_inode()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.173
+ - nbd: freeze the queue while we're adding connections (CVE-2021-3348)
+ - ACPI: sysfs: Prefer "compatible" modalias
+ - kernel: kexec: remove the lock operation of system_transition_mutex
+ - xen/privcmd: allow fetching resource sizes
+ - ALSA: hda/via: Apply the workaround generically for Clevo machines
+ - media: rc: ensure that uevent can be read directly after rc device
+ register
+ - wext: fix NULL-ptr-dereference with cfg80211's lack of commit()
+ - net: usb: qmi_wwan: added support for Thales Cinterion PLSx3 modem
+ family
+ - PM: hibernate: flush swap writer after marking
+ - [x86] KVM: x86/pmu: Fix HW_REF_CPU_CYCLES event pseudo-encoding in
+ intel_arch_events[]
+ - [x86] KVM: get smi pending status correctly
+ - leds: trigger: fix potential deadlock with libata
+ - mt7601u: fix kernel crash unplugging the device
+ - mt7601u: fix rx buffer refcounting
+ - xen-blkfront: allow discard-* nodes to be optional
+ - [armhf] imx: build suspend-imx6.S with arm instruction set
+ - netfilter: nft_dynset: add timeout extension to template
+ - xfrm: Fix oops in xfrm_replay_advance_bmp
+ - xfrm: fix disable_xfrm sysctl when used on xfrm interfaces
+ - RDMA/cxgb4: Fix the reported max_recv_sge value
+ - pNFS/NFSv4: Fix a layout segment leak in pnfs_layout_process()
+ - iwlwifi: pcie: use jiffies for memory read spin time limit
+ - iwlwifi: pcie: reschedule in long-running memory reads
+ - mac80211: pause TX while changing interface type
+ - net/mlx5: Fix memory leak on flow table creation error flow
+ - can: dev: prevent potential information leak in can_fill_info()
+ - [amd64] iommu/vt-d: Gracefully handle DMAR units with no supported
+ address widths
+ - [amd64] iommu/vt-d: Don't dereference iommu_device if IOMMU_API is not
+ built
+ - rxrpc: Fix memory leak in rxrpc_lookup_local
+ - NFC: fix resource leak when target index is invalid
+ - NFC: fix possible resource leak
+ - team: protect features update by RCU to avoid deadlock
+ - tcp: fix TLP timer not set when CA_STATE changes from DISORDER to OPEN
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.174
+ - [armhf] net: dsa: bcm_sf2: put device node before return
+ - ACPI: thermal: Do not call acpi_thermal_check() directly
+ - sysctl: handle overflow in proc_get_long
+ - net_sched: gen_estimator: support large ewma log
+ - [x86] platform/x86: intel-vbtn: Support for tablet mode on Dell Inspiron
+ 7352
+ - [x86] __always_inline __{rd,wr}msr()
+ - scsi: scsi_transport_srp: Don't block target in failfast state
+ - scsi: libfc: Avoid invoking response handler twice if ep is already
+ completed
+ - mac80211: fix fast-rx encryption check
+ - [ppc64el] scsi: ibmvfc: Set default timeout to avoid crash during
+ migration
+ - objtool: Don't fail on missing symbol table
+ - kthread: Extract KTHREAD_IS_PER_CPU
+ - workqueue: Restrict affinity change to rescuer
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.175
+ - USB: serial: cp210x: add pid/vid for WSDA-200-USB
+ - USB: serial: cp210x: add new VID/PID for supporting Teraoka AD2000
+ - USB: serial: option: Adding support for Cinterion MV31
+ - Input: i8042 - unbreak Pegatron C15B
+ - rxrpc: Fix deadlock around release of dst cached on udp tunnel
+ - net: lapb: Copy the skb before sending a packet
+ - [arm64,armhf] net: mvpp2: TCAM entry enable should be written after SRAM
+ data
+ - memblock: do not start bottom-up allocations with kernel_end
+ - USB: gadget: legacy: fix an error code in eth_bind()
+ - USB: usblp: don't call usb_set_interface if there's a single alt
+ - [arm*] usb: dwc2: Fix endpoint direction check in ep_from_windex
+ - [arm64,armhf] usb: dwc3: fix clock issue during resume in OTG mode
+ - ovl: fix dentry leak in ovl_get_redirect
+ - mac80211: fix station rate table updates on assoc
+ - kretprobe: Avoid re-registration of the same kretprobe earlier
+ - genirq/msi: Activate Multi-MSI early when MSI_FLAG_ACTIVATE_EARLY is set
+ - xhci: fix bounce buffer usage for non-sg list case
+ - cifs: report error instead of invalid when revalidating a dentry fails
+ - smb3: Fix out-of-bounds bug in SMB2_negotiate()
+ - mmc: core: Limit retries when analyse of SDIO tuples fails
+ - nvme-pci: avoid the deepest sleep state on Kingston A2000 SSDs
+ - [x86] KVM: SVM: Treat SVM as unsupported when running as an SEV guest
+ - mm: hugetlbfs: fix cannot migrate the fallocated HugeTLB page
+ - mm: hugetlb: fix a race between freeing and dissolving the page
+ - mm: hugetlb: fix a race between isolating and freeing page
+ - mm: hugetlb: remove VM_BUG_ON_PAGE from page_huge_active
+ - mm: thp: fix MADV_REMOVE deadlock on shmem THP
+ - [x86] build: Disable CET instrumentation in the kernel
+ - [x86] apic: Add extra serialization for non-serializing MSRs
+ - Input: xpad - sync supported devices with fork on GitHub
+ - [amd64] iommu/vt-d: Do not use flush-queue when caching-mode is on
+ - md: Set prev_flush_start and flush_bio in an atomic way
+ - net: ip_tunnel: fix mtu calculation
+ - [arm64,armhf] net: dsa: mv88e6xxx: override existent unicast portvec in
+ port_fdb_add
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.176
+ - tracing/kprobe: Fix to support kretprobe events on unloaded modules
+ - block: fix NULL pointer dereference in register_disk
+ - fgraph: Initialize tracing_graph_pause at task creation
+ - af_key: relax availability checks for skb size calculation
+ - regulator: core: avoid regulator_resolve_supply() race condition
+ - pNFS/NFSv4: Try to return invalid layout in pnfs_layout_process()
+ - iwlwifi: pcie: add a NULL check in iwl_pcie_txq_unmap
+ - iwlwifi: pcie: fix context info memory leak
+ - iwlwifi: mvm: guard against device removal in reprobe
+ - SUNRPC: Move simple_get_bytes and simple_get_netobj into private header
+ - SUNRPC: Handle 0 length opaque XDR object data properly
+ - lib/string: Add strscpy_pad() function
+ - include/trace/events/writeback.h: fix -Wstringop-truncation warnings
+ - memcg: fix a crash in wb_workfn when a device disappears
+ - [x86] Fix unsynchronized access to sev members through
+ svm_register_enc_region
+ - block: don't hold q->sysfs_lock in elevator_init_mq
+ - blk-mq: don't hold q->sysfs_lock in blk_mq_map_swqueue
+ - squashfs: add more sanity checks in id lookup
+ - squashfs: add more sanity checks in inode lookup
+ - squashfs: add more sanity checks in xattr id lookup
+ - regulator: core: enable power when setting up constraints
+ - regulator: core: Clean enabling always-on regulators + their supplies
+ - regulator: Fix lockdep warning resolving supplies
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.177
+ - tracing: Do not count ftrace events in top level enable output
+ - tracing: Check length before giving out the filter buffer
+ - [armhf] xen: Don't probe xenbus as part of an early initcall
+ - [x86] platform/x86: hp-wmi: Disable tablet-mode reporting by default
+ - ovl: perform vfs_getxattr() with mounter creds
+ - cap: fix conversions on getxattr
+ - ovl: skip getxattr of security labels
+ - bfq-iosched: Revert "bfq: Fix computation of shallow depth"
+ - [armel,armhf] ensure the signal page contains defined contents
+ - [armel,armhf] kexec: fix oops after TLB are invalidated
+ - mt76: dma: fix a possible memory leak in mt76_add_fragment()
+ - bpf: Check for integer overflow when using roundup_pow_of_two()
+ - netfilter: xt_recent: Fix attempt to update deleted entry
+ - netfilter: flowtable: fix tcp and udp header checksum update
+ - xen/netback: avoid race in xenvif_rx_ring_slots_available()
+ - [arm64,armhf] net: stmmac: set TxQ mode back to DCB after disabling CBS
+ - netfilter: conntrack: skip identical origin tuple in same zone only
+ - [arm64] net: hns3: add a check for queue_id in hclge_reset_vf_queue()
+ - [arm64] usb: dwc3: ulpi: fix checkpatch warning
+ - [arm64] usb: dwc3: ulpi: Replace CPU-based busyloop with Protocol-based
+ one
+ - net: fix iteration for sctp transport seq_files
+ - net/vmw_vsock: improve locking in vsock_connect_timeout()
+ - net: watchdog: hold device global xmit lock during tx disable
+ - vsock/virtio: update credit only if socket is not closed
+ - vsock: fix locking in vsock_shutdown()
+ - net/rds: restrict iovecs length for RDS_CMSG_RDMA_ARGS
+ - ovl: expand warning in ovl_d_real()
+ - [x86] KVM: SEV: fix double locking due to incorrect backport
+ - [x86] Xen/x86: don't bail early from clear_foreign_p2m_mapping()
+ (CVE-2021-26932)
+ - [x86] Xen/x86: also check kernel mapping in set_foreign_p2m_mapping()
+ (CVE-2021-26932)
+ - Xen/gntdev: correct dev_bus_addr handling in gntdev_map_grant_pages()
+ (CVE-2021-26932)
+ - Xen/gntdev: correct error checking in gntdev_map_grant_pages()
+ (CVE-2021-26932)
+ - [armhf] xen/arm: don't ignore return errors from set_phys_to_machine
+ (CVE-2021-26932)
+ - xen-blkback: don't "handle" error by BUG() (CVE-2021-26931)
+ - xen-netback: don't "handle" error by BUG() (CVE-2021-26931)
+ - xen-scsiback: don't "handle" error by BUG() (CVE-2021-26931)
+ - xen-blkback: fix error handling in xen_blkbk_map() (CVE-2021-26930)
+ - scsi: qla2xxx: Fix crash during driver load on big endian machines
+ - kvm: check tlbs_dirty directly
+
+ [ Salvatore Bonaccorso ]
+ * [rt] Update to 4.19.173-rt72
+ * certs: Rotate to use the "Debian Secure Boot Signer 2021 - linux"
+ certificate
+ * Bump ABI to 15
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Wed, 03 Mar 2021 13:48:46 +0100
+
+linux (4.19.171-2) buster-security; urgency=high
+
+ * xen: Fix XenStore initialisation for XS_LOCAL
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Sat, 30 Jan 2021 10:35:46 +0100
+
+linux (4.19.171-1) buster-security; urgency=high
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.161
+ - perf event: Check ref_reloc_sym before using it
+ - netfilter: clear skb->next in NF_HOOK_LIST() (CVE-2021-20177)
+ - btrfs: don't access possibly stale fs_info data for printing duplicate
+ device
+ - btrfs: fix lockdep splat when reading qgroup config on mount
+ - wireless: Use linux/stddef.h instead of stddef.h
+ - [arm64] KVM: vgic-v3: Drop the reporting of GICR_TYPER.Last for
+ userspace
+ - [x86] KVM: handle !lapic_in_kernel case in kvm_cpu_*_extint
+ - [x86] KVM: Fix split-irqchip vs interrupt injection window request
+ - [arm64] pgtable: Fix pte_accessible()
+ - [arm64] pgtable: Ensure dirty bit is preserved across pte_wrprotect()
+ (Closes: #977615)
+ - drm/atomic_helper: Stop modesets on unregistered connectors harder
+ - ALSA: hda/hdmi: fix incorrect locking in hdmi_pcm_close
+ - HID: cypress: Support Varmilo Keyboards' media hotkeys
+ - HID: add support for Sega Saturn
+ - Input: i8042 - allow insmod to succeed on devices without an i8042
+ controller
+ - HID: hid-sensor-hub: Fix issue with devices with no report ID
+ - HID: add HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE for Gamevice devices
+ - [x86] xen: don't unbind uninitialized lock_kicker_irq
+ - HID: Add Logitech Dinovo Edge battery quirk
+ - proc: don't allow async path resolution of /proc/self components
+ - nvme: free sq/cq dbbuf pointers when dbbuf set fails
+ - [arm64,armhf] dmaengine: pl330: _prep_dma_memcpy: Fix wrong burst size
+ - scsi: libiscsi: Fix NOP race condition
+ - scsi: target: iscsi: Fix cmd abort fabric stop race
+ - [x86] perf/x86: fix sysfs type mismatches
+ - [arm64,armhf] phy: tegra: xusb: Fix dangling pointer on probe failure
+ - scsi: ufs: Fix race between shutdown and runtime resume flow
+ - bnxt_en: fix error return code in bnxt_init_one()
+ - bnxt_en: fix error return code in bnxt_init_board()
+ - [x86] video: hyperv_fb: Fix the cache type when mapping the VRAM
+ - bnxt_en: Release PCI regions when DMA mask setup fails during probe.
+ - cxgb4: fix the panic caused by non smac rewrite
+ - [s390x] qeth: fix tear down of async TX buffers
+ - IB/mthca: fix return value of error branch in mthca_init_cq()
+ - net: ena: set initial DMA width to avoid intel iommu issue
+ - [arm64] optee: add writeback to valid memory type
+ - [arm64,armhf,x86] efivarfs: revert "fix memory leak in
+ efivarfs_create()" (Closes: #977048)
+ - can: gs_usb: fix endianess problem with candleLight firmware
+ - [x86] platform/x86: thinkpad_acpi: Send tablet mode switch at wakeup
+ time
+ - [x86] platform/x86: toshiba_acpi: Fix the wrong variable assignment
+ - USB: core: Change %pK for __user pointers to %px
+ - usb: gadget: f_midi: Fix memleak in f_midi_alloc
+ - USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO
+ built-in usb-audio card
+ - usb: gadget: Fix memleak in gadgetfs_fill_super
+ - [x86] speculation: Fix prctl() when spectre_v2_user={seccomp,prctl},ibpb
+ - USB: core: Fix regression in Hercules audio card
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.162
+ - ipv6: addrlabel: fix possible memory leak in ip6addrlbl_net_init
+ - [s390x] net/af_iucv: set correct sk_protocol for child sockets
+ - rose: Fix Null pointer dereference in rose_send_frame()
+ - sock: set sk_err to ee_errno on dequeue from errq
+ - tcp: Set INET_ECN_xmit configuration in tcp_reinit_congestion_control
+ - tun: honor IOCB_NOWAIT flag
+ - i40e: Fix removing driver while bare-metal VFs pass traffic
+ - bonding: wait for sysfs kobject destruction before freeing struct slave
+ - netfilter: bridge: reset skb->pkt_type after NF_INET_POST_ROUTING
+ traversal
+ - ipv4: Fix tos mask in inet_rtm_getroute()
+ - geneve: pull IP header before ECN decapsulation
+ - net: ip6_gre: set dev->hard_header_len when using header_ops
+ - cxgb3: fix error return code in t3_sge_alloc_qset()
+ - [arm64,armhf] net: mvpp2: Fix error return code in mvpp2_open()
+ - net/mlx5: Fix wrong address reclaim when command interface is down
+ - dt-bindings: net: correct interrupt flags in examples
+ - ALSA: usb-audio: US16x08: fix value count for level meters
+ - Input: xpad - support Ardwiino Controllers
+ - Input: i8042 - add ByteSpeed touchpad to noloop table
+ - tracing: Remove WARN_ON in start_thread()
+ - RDMA/i40iw: Address an mmap handler exploit in i40iw
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.163
+ - [x86] pinctrl: baytrail: Replace WARN with dev_info_once when setting
+ direct-irq pin to output
+ - [x86] pinctrl: baytrail: Fix pin being driven low for a while on
+ gpiod_get(..., GPIOD_OUT_HIGH)
+ - usb: gadget: f_fs: Use local copy of descriptors for userspace copy
+ - USB: serial: kl5kusb105: fix memleak on open
+ - USB: serial: ch341: add new Product ID for CH341A
+ - USB: serial: ch341: sort device-id entries
+ - USB: serial: option: add Fibocom NL668 variants
+ - USB: serial: option: add support for Thales Cinterion EXS82
+ - USB: serial: option: fix Quectel BG96 matching
+ - tty: Fix ->pgrp locking in tiocspgrp() (CVE-2020-29661)
+ - tty: Fix ->session locking (CVE-2020-29660)
+ - ALSA: hda/realtek: Add mute LED quirk to yet another HP x360 model
+ - ALSA: hda/realtek: Enable headset of ASUS UX482EG & B9400CEA with ALC294
+ - ALSA: hda/realtek - Add new codec supported for ALC897
+ - ALSA: hda/generic: Add option to enforce preferred_dacs pairs
+ - ftrace: Fix updating FTRACE_FL_TRAMP
+ - cifs: fix potential use-after-free in cifs_echo_request()
+ - [armhf] i2c: imx: Don't generate STOP condition if arbitration has been
+ lost
+ - scsi: mpt3sas: Fix ioctl timeout
+ - dm writecache: fix the maximum number of arguments
+ - dm: remove invalid sparse __acquires and __releases annotations
+ - mm: list_lru: set shrinker map bit when child nr_items is not zero
+ - mm/swapfile: do not sleep with a spin lock held
+ - [x86] uprobes: Do not use prefixes.nbytes when looping over
+ prefixes.bytes
+ - [armhf] i2c: imx: Fix reset of I2SR_IAL flag
+ - [armhf] i2c: imx: Check for I2SR_IAL after every byte
+ - speakup: Reject setting the speakup line discipline outside of speakup
+ (CVE-2020-27830)
+ - [amd64] iommu/amd: Set DTE[IntTabLen] to represent 512 IRTEs
+ - spi: Introduce device-managed SPI controller allocation
+ - [arm*] spi: bcm2835: Fix use-after-free on unbind
+ - [arm*] spi: bcm2835: Release the DMA channel if probe fails after
+ dma_init
+ - tracing: Fix userstacktrace option for instances
+ - gfs2: check for empty rgrp tree in gfs2_ri_update
+ - [arm64] i2c: qup: Fix error return code in qup_i2c_bam_schedule_desc()
+ - dm writecache: remove BUG() and fail gracefully instead
+ - Input: i8042 - fix error return code in i8042_setup_aux()
+ - netfilter: nf_tables: avoid false-postive lockdep splat
+ - [x86] insn-eval: Use new for_each_insn_prefix() macro to loop over
+ prefixes bytes
+ - Revert "geneve: pull IP header before ECN decapsulation"
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.164
+ - [x86] lib: Change .weak to SYM_FUNC_START_WEAK for
+ arch/x86/lib/mem*_64.S
+ - [arm*] spi: bcm2835aux: Fix use-after-free on unbind
+ - [arm*] spi: bcm2835aux: Restore err assignment in bcm2835aux_spi_probe
+ - iwlwifi: pcie: limit memory read spin time
+ - iwlwifi: mvm: fix kernel panic in case of assert during CSA
+ - scsi: ufs: Make sure clk scaling happens only when HBA is runtime ACTIVE
+ - [arm64,armhf] irqchip/gic-v3-its: Unconditionally save/restore the ITS
+ state on suspend
+ - [x86] platform/x86: thinkpad_acpi: Do not report SW_TABLET_MODE on Yoga
+ 11e
+ - [x86] platform/x86: thinkpad_acpi: Add BAT1 is primary battery quirk for
+ Thinkpad Yoga 11e 4th gen
+ - [x86] platform/x86: acer-wmi: add automatic keyboard background light
+ toggle key as KEY_LIGHTS_TOGGLE
+ - [x86] platform/x86: intel-vbtn: Support for tablet mode on HP Pavilion
+ 13 x360 PC
+ - Input: cm109 - do not stomp on control URB
+ - Input: i8042 - add Acer laptops to the i8042 reset list
+ - pinctrl: amd: remove debounce filter setting in IRQ type setting
+ - mmc: block: Fixup condition for CMD13 polling for RPMB requests
+ - kbuild: avoid static_assert for genksyms
+ - scsi: be2iscsi: Revert "Fix a theoretical leak in beiscsi_create_eqs()"
+ - [x86] membarrier: Get rid of a dubious optimization
+ - [x86] apic/vector: Fix ordering in vector assignment
+ - [arm64] PCI: qcom: Add missing reset for ipq806x
+ - mac80211: mesh: fix mesh_pathtbl_init() error path
+ - [arm64,armhf] net: stmmac: free tx skb buffer in stmmac_resume()
+ - tcp: select sane initial rcvq_space.space for big MSS
+ - tcp: fix cwnd-limited bug for TSO deferral where we send nothing
+ - net/mlx4_en: Avoid scheduling restart task if it is already running
+ - lan743x: fix for potential NULL pointer dereference with bare card
+ - net/mlx4_en: Handle TX error CQE
+ - [arm64,armhf] net: stmmac: delete the eee_ctrl_timer after napi disabled
+ - [arm64,armhf] net: stmmac: dwmac-meson8b: fix mask definition of the
+ m250_sel mux
+ - net: bridge: vlan: fix error return code in __vlan_add()
+ - USB: add RESET_RESUME quirk for Snapscan 1212
+ - ALSA: usb-audio: Fix potential out-of-bounds shift
+ - ALSA: usb-audio: Fix control 'access overflow' errors from chmap
+ - xhci: Give USB2 ports time to enter U3 in bus suspend
+ - USB: UAS: introduce a quirk to set no_write_same
+ - ALSA: pcm: oss: Fix potential out-of-bounds shift
+ - [x86] drm/xen-front: Fix misused IS_ERR_OR_NULL checks
+ - drm: fix drm_dp_mst_port refcount leaks in drm_dp_mst_allocate_vcpi
+ - [x86] pinctrl: baytrail: Avoid clearing debounce value when turning it
+ off
+ - [arm*] gpio: mvebu: fix potential user-after-free on probe
+ - scsi: bnx2i: Requires MMU
+ - xsk: Fix xsk_poll()'s return type
+ - can: softing: softing_netdev_open(): fix error handling
+ - block: factor out requeue handling from dispatch code
+ - netfilter: x_tables: Switch synchronization to RCU
+ - RDMA/cm: Fix an attempt to use non-valid pointer when cleaning timewait
+ - ixgbe: avoid premature Rx buffer reuse
+ - [arm64,armhf] drm/tegra: replace idr_init() by idr_init_base()
+ - kernel/cpu: add arch override for clear_tasks_mm_cpumask() mm handling
+ - [arm64,armhf] drm/tegra: sor: Disable clocks on error in
+ tegra_sor_init()
+ - [arm64] syscall: exit userspace before unmasking exceptions
+ - vxlan: Add needed_headroom for lower device
+ - vxlan: Copy needed_tailroom from lowerdev
+ - scsi: mpt3sas: Increase IOCInit request timeout to 30s
+ - dm table: Remove BUG_ON(in_interrupt())
+ - [arm64] soc/tegra: fuse: Fix index bug in get_process_id
+ - USB: serial: option: add interface-number sanity check to flag handling
+ - USB: gadget: f_acm: add support for SuperSpeed Plus
+ - USB: gadget: f_midi: setup SuperSpeed Plus descriptors
+ - usb: gadget: f_fs: Re-use SS descriptors for SuperSpeedPlus
+ - USB: gadget: f_rndis: fix bitrate for SuperSpeed and above
+ - [arm64,armhf] usb: chipidea: ci_hdrc_imx: Pass DISABLE_DEVICE_STREAMING
+ flag to imx6ul
+ - [armhf] dts: exynos: fix roles of USB 3.0 ports on Odroid XU
+ - [armhf] dts: exynos: fix USB 3.0 pins supply being turned off on Odroid
+ XU
+ - scsi: megaraid_sas: Check user-provided offsets
+ - HID: i2c-hid: add Vero K147 to descriptor override
+ - serial_core: Check for port state when tty is in error state
+ - Bluetooth: Fix slab-out-of-bounds read in hci_le_direct_adv_report_evt()
+ - quota: Sanity-check quota file headers on load
+ - media: msi2500: assign SPI bus number dynamically
+ - crypto: af_alg - avoid undefined behavior accessing salg_name
+ - md: fix a warning caused by a race between concurrent md_ioctl()s
+ - perf cs-etm: Change tuple from traceID-CPU# to traceID-metadata
+ - perf cs-etm: Move definition of 'traceid_list' global variable from
+ header file
+ - [x86] drm/gma500: fix double free of gma_connector
+ - selinux: fix error initialization in inode_doinit_with_dentry()
+ - RDMA/rxe: Compute PSN windows correctly
+ - [x86] mm/ident_map: Check for errors from ident_pud_init()
+ - [armel,armhf] p2v: fix handling of LPAE translation in BE mode
+ - [x86] apic: Fix x2apic enablement without interrupt remapping
+ - sched/deadline: Fix sched_dl_global_validate()
+ - sched: Reenable interrupts in do_sched_yield()
+ - [arm64] crypto: inside-secure - Fix sizeof() mismatch
+ - [powerpc*] 64: Set up a kernel stack for secondaries before
+ cpu_restore()
+ - [arm64] drm/msm/dsi_pll_10nm: restore VCO rate during restore_state
+ - ASoC: pcm: DRAIN support reactivation
+ - selinux: fix inode_doinit_with_dentry() LABEL_INVALID error handling
+ - Bluetooth: Fix null pointer dereference in hci_event_packet()
+ - Bluetooth: hci_h5: fix memory leak in h5_close
+ - [armhf] spi: spi-ti-qspi: fix reference leak in ti_qspi_setup
+ - [arm64] spi: tegra20-slink: fix reference leak in slink ops of tegra20
+ - [arm64,armhf] spi: tegra20-sflash: fix reference leak in
+ tegra_sflash_resume
+ - [arm64,armhf] spi: tegra114: fix reference leak in tegra spi ops
+ - mwifiex: fix mwifiex_shutdown_sw() causing sw reset failure
+ - RDMa/mthca: Work around -Wenum-conversion warning
+ - [x86] crypto: qat - fix status check in qat_hal_put_rel_rd_xfer()
+ - [x86] media: tm6000: Fix sizeof() mismatches
+ - scsi: core: Fix VPD LUN ID designator priorities
+ - media: solo6x10: fix missing snd_card_free in error handling case
+ - [armhf] drm/omap: dmm_tiler: fix return error code in omap_dmm_probe()
+ - Input: ads7846 - fix race that causes missing releases
+ - Input: ads7846 - fix integer overflow on Rt calculation
+ - Input: ads7846 - fix unaligned access on 7845
+ - spi: fix resource leak for drivers without .remove callback
+ - [armhf] Input: omap4-keypad - fix runtime PM error handling
+ - RDMA/cxgb4: Validate the number of CQEs
+ - memstick: fix a double-free bug in memstick_check
+ - orinoco: Move context allocation after processing the skb
+ - [arm64] dmaengine: mv_xor_v2: Fix error return code in mv_xor_v2_probe()
+ - media: siano: fix memory leak of debugfs members in smsdvb_hotplug
+ - [armhf] HSI: omap_ssi: Don't jump to free ID in ssi_add_controller()
+ - [arm64] dts: rockchip: Set dr_mode to "host" for OTG on rk3328-roc-cc
+ - [x86] power: supply: bq24190_charger: fix reference leak
+ - genirq/irqdomain: Don't try to free an interrupt that has no mapping
+ - PCI: Bounds-check command-line resource alignment requests
+ - PCI: Fix overflow in command-line resource alignment requests
+ - [arm64] dts: meson: fix spi-max-frequency on Khadas VIM2
+ - [x86] platform/x86: dell-smbios-base: Fix error return code in
+ dell_smbios_init
+ - ath10k: Fix the parsing error in service available event
+ - ath10k: Fix an error handling path
+ - ath10k: Release some resources in an error handling path
+ - NFSv4.2: condition READDIR's mask for security label based on LSM state
+ - SUNRPC: xprt_load_transport() needs to support the netid "rdma6"
+ - lockd: don't use interval-based rebinding over TCP
+ - NFS: switch nfsiod to be an UNBOUND workqueue.
+ - vfio-pci: Use io_remap_pfn_range() for PCI IO memory
+ - media: saa7146: fix array overflow in vidioc_s_audio()
+ - memstick: r592: Fix error return in r592_probe()
+ - net/mlx5: Properly convey driver version to firmware
+ - dm ioctl: fix error return code in target_message
+ - [arm64,armhf] clocksource/drivers/arm_arch_timer: Correct fault
+ programming of CNTKCTL_EL1.EVNTI
+ - [armhf] cpufreq: highbank: Add missing MODULE_DEVICE_TABLE
+ - scsi: qedi: Fix missing destroy_workqueue() on error in __qedi_probe
+ - scsi: pm80xx: Fix error return in pm8001_pci_probe()
+ - seq_buf: Avoid type mismatch for seq_buf_init
+ - [x86] scsi: fnic: Fix error return code in fnic_probe()
+ - [powerpc*] pseries/hibernation: drop pseries_suspend_begin() from
+ suspend ops
+ - [powerpc*] pseries/hibernation: remove redundant cacheinfo update
+ - [armhf] usb: ehci-omap: Fix PM disable depth umbalance in
+ ehci_hcd_omap_probe
+ - speakup: fix uninitialized flush_lock
+ - nfsd: Fix message level for normal termination
+ - nfs_common: need lock during iterate through the list
+ - [x86] kprobes: Restore BTF if the single-stepping is cancelled
+ - [arm64,armhf] clk: tegra: Fix duplicated SE clock entry
+ - mac80211: don't set set TDLS STA bandwidth wider than possible
+ - watchdog: Fix potential dereferencing of null pointer
+ - [armhf] net: allwinner: Fix some resources leak in the error handling
+ path of the probe and in the remove function
+ - [arm64,x86] libnvdimm/label: Return -ENXIO for no slot in
+ __blk_label_update
+ - [arm64] watchdog: qcom: Avoid context switch in restart handler
+ - [armhf] clk: ti: Fix memleak in ti_fapll_synth_setup
+ - qlcnic: Fix error code in probe
+ - [armhf] clk: s2mps11: Fix a resource leak in error handling paths in the
+ probe function
+ - [arm64,armhf] clk: sunxi-ng: Make sure divider tables have sentinel
+ - [armhf] sunxi: Add machine match for the Allwinner V3 SoC
+ - cfg80211: initialize rekey_data
+ - lwt: Disable BH too in run_lwt_bpf()
+ - [arm64,armhf] Input: cros_ec_keyb - send 'scancodes' in addition to key
+ events
+ - Input: goodix - add upside-down quirk for Teclast X98 Pro tablet
+ - media: gspca: Fix memory leak in probe
+ - [armhf] media: sunxi-cir: ensure IR is handled when it is continuous
+ - media: netup_unidvb: Don't leak SPI master in probe error path
+ - [x86] Input: cyapa_gen6 - fix out-of-bounds stack access
+ - ALSA: hda/ca0132 - Change Input Source enum strings.
+ - PM: ACPI: PCI: Drop acpi_pm_set_bridge_wakeup()
+ - Revert "ACPI / resources: Use AE_CTRL_TERMINATE to terminate resources
+ walks"
+ - ACPI: PNP: compare the string length in the matching_id()
+ - ALSA: hda: Fix regressions on clear and reconfig sysfs
+ - ALSA: hda/realtek - Enable headset mic of ASUS X430UN with ALC256
+ - ALSA: hda/realtek - Enable headset mic of ASUS Q524UQK with ALC255
+ - ALSA: pcm: oss: Fix a few more UBSAN fixes
+ - ALSA: hda/realtek: Add quirk for MSI-GP73
+ - ALSA: hda/realtek: Apply jack fixup for Quanta NL3
+ - ALSA: usb-audio: Add VID to support native DSD reproduction on FiiO
+ devices
+ - ALSA: usb-audio: Disable sample read check if firmware doesn't give back
+ - [s390x] smp: perform initial CPU reset also for SMT siblings
+ - [s390x] dasd: fix hanging device offline processing
+ - [s390x] dasd: prevent inconsistent LCU device data
+ - [s390x] dasd: fix list corruption of pavgroup group list
+ - [s390x] dasd: fix list corruption of lcu list
+ - [x86] staging: comedi: mf6x4: Fix AI end-of-conversion detection
+ - [powerpc*] perf: Exclude kernel samples while counting events in user
+ space.
+ - crypto: ecdh - avoid unaligned accesses in ecdh_set_secret()
+ - [x86] EDAC/amd64: Fix PCI component registration
+ - USB: serial: mos7720: fix parallel-port state restore
+ - USB: serial: digi_acceleport: fix write-wakeup deadlocks
+ - USB: serial: keyspan_pda: fix dropped unthrottle interrupts
+ - USB: serial: keyspan_pda: fix write deadlock
+ - USB: serial: keyspan_pda: fix stalled writes
+ - USB: serial: keyspan_pda: fix write-wakeup use-after-free
+ - USB: serial: keyspan_pda: fix tx-unthrottle use-after-free
+ - USB: serial: keyspan_pda: fix write unthrottling
+ - ext4: fix a memory leak of ext4_free_data
+ - ext4: fix deadlock with fs freezing and EA inodes
+ - [arm64] KVM: Introduce handling of AArch32 TTBCR2 traps
+ - [armhf] dts: pandaboard: fix pinmux for gpio user button of Pandaboard
+ ES
+ - [powerpc*] Fix incorrect stw{, ux, u, x} instructions in __set_pte_at
+ - [powerpc*] rtas: Fix typo of ibm,open-errinjct in RTAS filter
+ - [powerpc*] xmon: Change printk() to pr_cont()
+ - ceph: fix race in concurrent __ceph_remove_cap invocations
+ - SMB3: avoid confusing warning message on mount to Azure
+ - SMB3.1.1: do not log warning message if server doesn't populate salt
+ - ubifs: wbuf: Don't leak kernel memory to flash
+ - jffs2: Fix GC exit abnormally
+ - jfs: Fix array index bounds check in dbAdjTree (CVE-2020-27815)
+ - drm/dp_aux_dev: check aux_dev before use in
+ drm_dp_aux_dev_get_by_minor()
+ - [armel] mtd: parser: cmdline: Fix parsing of part-names with colons
+ - scsi: lpfc: Fix invalid sleeping context in lpfc_sli4_nvmet_alloc()
+ - scsi: lpfc: Re-fix use after free in lpfc_rq_buf_free()
+ - iio: buffer: Fix demux update
+ - [arm64,armhf] iio: adc: rockchip_saradc: fix missing
+ clk_disable_unprepare() on error in rockchip_saradc_resume
+ - md/cluster: block reshape with remote resync job
+ - md/cluster: fix deadlock when node is doing resync job
+ - [arm64,armhf] pinctrl: sunxi: Always call chained_irq_{enter, exit} in
+ sunxi_pinctrl_irq_handler
+ - [arm64] clk: mvebu: a3700: fix the XTAL MODE pin to MPP1_9
+ - xen-blkback: set ring->xenblkd to NULL after kthread_stop()
+ (CVE-2020-29569)
+ - xen/xenbus: Allow watches discard events before queueing
+ (CVE-2020-29568)
+ - xen/xenbus: Add 'will_handle' callback support in xenbus_watch_path()
+ (CVE-2020-29568)
+ - xen/xenbus/xen_bus_type: Support will_handle watch callback
+ (CVE-2020-29568)
+ - xen/xenbus: Count pending messages for each watch (CVE-2020-29568)
+ - xenbus/xenbus_backend: Disallow pending watch messages (CVE-2020-29568)
+ - libnvdimm/namespace: Fix reaping of invalidated block-window-namespace
+ labels
+ - [x86] platform/x86: intel-vbtn: Allow switch events on Acer Switch Alpha
+ 12
+ - PCI: Fix pci_slot_release() NULL pointer dereference
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.165
+ - md/raid10: initialize r10_bio->read_slot before use.
+ - fscrypt: add fscrypt_is_nokey_name()
+ - ext4: prevent creating duplicate encrypted filenames
+ - f2fs: prevent creating duplicate encrypted filenames
+ - ubifs: prevent creating duplicate encrypted filenames
+ - vfio/pci: Move dummy_resources_list init in vfio_pci_probe()
+ - ext4: don't remount read-only with errors=continue on reboot
+ - uapi: move constants from <linux/kernel.h> to <linux/const.h>
+ - [x86] KVM: SVM: relax conditions for allowing MSR_IA32_SPEC_CTRL
+ accesses
+ - [x86] KVM: reinstate vendor-agnostic check on SPEC_CTRL cpuid bits
+ - [powerpc*] bitops: Fix possible undefined behaviour with fls() and
+ fls64()
+ - xen/gntdev.c: Mark pages as dirty
+ - null_blk: Fix zone size initialization
+ - of: fix linker-section match-table corruption
+ - Bluetooth: hci_h5: close serdev device and free hu in h5_close
+ - reiserfs: add check for an invalid ih_entry_count
+ - [x86] misc: vmw_vmci: fix kernel info-leak by initializing dbells in
+ vmci_ctx_get_chkpt_doorbells()
+ - media: gp8psk: initialize stats at power control logic
+ - ALSA: seq: Use bool for snd_seq_queue internal flags
+ - ALSA: rawmidi: Access runtime->avail always in spinlock
+ - fcntl: Fix potential deadlock in send_sig{io, urg}()
+ - [arm64,armhf] rtc: sun6i: Fix memleak in sun6i_rtc_clk_init
+ - module: set MODULE_STATE_GOING state when a module fails to load
+ - quota: Don't overflow quota file offsets
+ - NFSv4: Fix a pNFS layout related use-after-free race when freeing the
+ inode
+ - module: delay kobject uevent until after module init call
+ - ALSA: pcm: Clear the full allocated memory at hw_params
+ - dm verity: skip verity work if I/O error when system is shutting down
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.166
+ - kdev_t: always inline major/minor helper functions
+ - mwifiex: Fix possible buffer overflows in
+ mwifiex_cmd_802_11_ad_hoc_start (CVE-2020-36158)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.167
+ - workqueue: Kick a worker based on the actual activation of delayed works
+ - scsi: ufs: Fix wrong print message in dev_err()
+ - scsi: ufs-pci: Ensure UFS device is in PowerDown mode for
+ suspend-to-disk ->poweroff()
+ - scsi: scsi_transport_spi: Set RQF_PM for domain validation commands
+ - lib/genalloc: fix the overflow when size is too big
+ - proc: change ->nlink under proc_subdir_lock
+ - proc: fix lookup in /proc/net subdirectories after setns(2)
+ - i40e: Fix Error I40E_AQ_RC_EINVAL when removing VFs
+ - [arm64,armhf] net: mvpp2: Add TCAM entry to drop flow control pause
+ frames
+ - [arm64,armhf] net: mvpp2: prs: fix PPPoE with ipv6 packet parse
+ - atm: idt77252: call pci_disable_device() on error path
+ - [arm64,armhf] net: mvpp2: Fix GoP port 3 Networking Complex Control
+ configurations
+ - qede: fix offload for IPIP tunnel packets
+ - virtio_net: Fix recursive call to cpus_read_lock()
+ - net-sysfs: take the rtnl lock when storing xps_cpus
+ - net-sysfs: take the rtnl lock when accessing xps_cpus_map and num_tc
+ - tun: fix return value when the number of iovs exceeds MAX_SKB_FRAGS
+ - ipv4: Ignore ECN bits for fib lookups in fib_compute_spec_dst()
+ - [arm64] net: hns: fix return value check in __lb_other_process()
+ - erspan: fix version 1 check in gre_parse_header()
+ - net: hdlc_ppp: Fix issues when mod_timer is called while timer is
+ running
+ - CDC-NCM: remove "connected" log message
+ - net: usb: qmi_wwan: add Quectel EM160R-GL
+ - r8169: work around power-saving bug on some chip versions
+ - vhost_net: fix ubuf refcount incorrectly when sendmsg fails
+ - net: sched: prevent invalid Scell_log shift count
+ - net-sysfs: take the rtnl lock when storing xps_rxqs
+ - net-sysfs: take the rtnl lock when accessing xps_rxqs_map and num_tc
+ - Bluetooth: revert: hci_h5: close serdev device and free hu in h5_close
+ - [x86] video: hyperv_fb: Fix the mmap() regression for v5.4.y and older
+ - crypto: ecdh - avoid buffer overflow in ecdh_set_secret()
+ - usb: gadget: enable super speed plus
+ - USB: cdc-acm: blacklist another IR Droid device
+ - USB: cdc-wdm: Fix use after free in service_outstanding_interrupt().
+ - [arm64] usb: dwc3: ulpi: Use VStsDone to detect PHY regs access
+ completion
+ - [arm64,armhf] usb: chipidea: ci_hdrc_imx: add missing put_device() call
+ in usbmisc_get_init_data()
+ - USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST quirk
+ set
+ - usb: usbip: vhci_hcd: protect shift size
+ - USB: serial: iuu_phoenix: fix DMA from stack
+ - USB: serial: option: add LongSung M5710 module support
+ - USB: serial: option: add Quectel EM160R-GL
+ - USB: yurex: fix control-URB timeout handling
+ - USB: usblp: fix DMA to stack
+ - ALSA: usb-audio: Fix UBSAN warnings for MIDI jacks
+ - usb: gadget: f_uac2: reset wMaxPacketSize
+ - usb: gadget: function: printer: Fix a memory leak for interface
+ descriptor
+ - usb: gadget: u_ether: Fix MTU size mismatch with RX packet size
+ - usb: gadget: Fix spinlock lockup on usb_function_deactivate
+ - usb: gadget: configfs: Preserve function ordering after bind failure
+ - usb: gadget: configfs: Fix use-after-free issue with udc_name
+ - USB: serial: keyspan_pda: remove unused variable
+ - [x86] mm: Fix leak of pmd ptlock
+ - ALSA: hda/via: Fix runtime PM for Clevo W35xSS
+ - ALSA: hda/conexant: add a new hda codec CX11970
+ - ALSA: hda/realtek - Fix speaker volume control on Lenovo C940
+ - btrfs: send: fix wrong file path when there is an inode with a pending
+ rmdir
+ - Revert "device property: Keep secondary firmware node secondary by type"
+ - [x86] xen/pvh: correctly setup the PV EFI interface for dom0
+ - netfilter: x_tables: Update remaining dereference to RCU
+ - netfilter: ipset: fix shift-out-of-bounds in htable_bits()
+ - netfilter: xt_RATEEST: reject non-null terminated string from userspace
+ - [x86] mtrr: Correct the range check before performing MTRR type lookups
+ - scsi: target: Fix XCOPY NAA identifier lookup (CVE-2020-28374)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.168
+ - net: cdc_ncm: correct overhead in delayed_ndp_size (Closes: #970736)
+ - [arm64] net: hns3: fix the number of queues actually used by ARQ
+ - [arm64,armhf] net: stmmac: dwmac-sun8i: Balance internal PHY resource
+ references
+ - [arm64,armhf] net: stmmac: dwmac-sun8i: Balance internal PHY power
+ - net: vlan: avoid leaks on register_vlan_dev() failures
+ - net: ip: always refragment ip defragmented packets
+ - net: fix pmtu check in nopmtudisc mode
+ - net: ipv6: fib: flush exceptions when purging route
+ - vmlinux.lds.h: Add PGO and AutoFDO input sections
+ - [x86] drm/i915: Fix mismatch between misplaced vma check and vma insert
+ - [amd64] spi: pxa2xx: Fix use-after-free on unbind
+ - HID: wacom: Fix memory leakage caused by kfifo_alloc
+ - [armhf] OMAP2+: omap_device: fix idling of devices during probe
+ - [x86] cpufreq: powernow-k8: pass policy rather than use
+ cpufreq_cpu_get()
+ - [amd64] iommu/intel: Fix memleak in intel_irq_remapping_alloc
+ - net/mlx5e: Fix memleak in mlx5e_create_l2_table_groups
+ - net/mlx5e: Fix two double free cases
+ - regmap: debugfs: Fix a memory leak when calling regmap_attach_dev
+ - [arm64] KVM: Don't access PMCR_EL0 when no PMU is available
+ - block: fix use-after-free in disk_part_iter_next
+ - net: drop bogus skb with CHECKSUM_PARTIAL and offset beyond end of
+ trimmed packet
+ - regmap: debugfs: Fix a reversed if statement in regmap_debugfs_init()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.169
+ - ASoC: dapm: remove widget from dirty list on free
+ - [x86] hyperv: check cpu mask after interrupt has been disabled
+ - [mips*] boot: Fix unaligned access with CONFIG_MIPS_RAW_APPENDED_DTB
+ - ACPI: scan: Harden acpi_device_add() against device ID overflows
+ - mm/hugetlb: fix potential missing huge page size info
+ - dm snapshot: flush merged data before committing metadata
+ - dm integrity: fix the maximum number of arguments
+ - r8152: Add Lenovo Powered USB-C Travel Hub
+ - ext4: fix bug for rename with RENAME_WHITEOUT
+ - btrfs: fix transaction leak and crash after RO remount caused by qgroup
+ rescan
+ - bfq: Fix computation of shallow depth
+ - [arm64] drm/msm: Call msm_init_vram before binding the gpu
+ - dump_common_audit_data(): fix racy accesses to ->d_name
+ - [x86] ASoC: Intel: fix error code cnl_set_dsp_D0()
+ - NFS4: Fix use-after-free in trace_event_raw_event_nfs4_set_lock
+ - pNFS: Mark layout for return if return-on-close was not sent
+ - NFS/pNFS: Fix a leak of the layout 'plh_outstanding' counter
+ - NFS: nfs_igrab_and_active must first reference the superblock
+ - ext4: fix superblock checksum failure when setting password salt
+ - [amd64] RDMA/usnic: Fix memleak in find_free_vf_and_create_qp_grp
+ - RDMA/mlx5: Fix wrong free of blue flame register on error
+ - mm, slub: consider rest of partial list if acquire_slab() fails
+ - net: sunrpc: interpret the return value of kstrtou32 correctly
+ - dm: eliminate potential source of excessive kernel log noise
+ - ALSA: firewire-tascam: Fix integer overflow in midi_port_work()
+ - ALSA: fireface: Fix integer overflow in transmit_midi_msg()
+ - netfilter: conntrack: fix reading nf_conntrack_buckets
+ - netfilter: nf_nat: Fix memleak in nf_nat_init
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.170
+ - usb: ohci: Make distrust_firmware param default to false
+ - dm integrity: fix flush with external metadata device
+ - nfsd4: readdirplus shouldn't return parent of export (CVE-2021-3178)
+ - udp: Prevent reuseport_select_sock from reading uninitialized socks
+ - netxen_nic: fix MSI/MSI-x interrupts
+ - [arm64,armhf] net: mvpp2: Remove Pause and Asym_Pause support
+ - rndis_host: set proper input size for OID_GEN_PHYSICAL_MEDIUM request
+ - esp: avoid unneeded kmap_atomic call
+ - net: dcb: Validate netlink message in DCB handler
+ - net: dcb: Accept RTM_GETDCB messages carrying set-like DCB commands
+ - rxrpc: Call state should be read with READ_ONCE() under some
+ circumstances
+ - [arm64,armhf] net: stmmac: Fixed mtu channged by cache aligned
+ - net: sit: unregister_netdevice on newlink's error path
+ - net: avoid 32 x truesize under-estimation for tiny skbs
+ - rxrpc: Fix handling of an unsupported token type in rxrpc_read()
+ - tipc: fix NULL deref in tipc_link_xmit()
+ - net: introduce skb_list_walk_safe for skb segment walking
+ - net: skbuff: disambiguate argument and member for skb_list_walk_safe
+ helper
+ - net: ipv6: Validate GSO SKB before finish IPv6 processing
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.171
+ - ALSA: hda/via: Add minimum mute flag
+ - ACPI: scan: Make acpi_bus_get_device() clear return pointer on error
+ - btrfs: fix lockdep splat in btrfs_recover_relocation
+ - mmc: core: don't initialize block size from ext_csd if not present
+ - [arm64] mmc: sdhci-xenon: fix 1.8v regulator stabilization
+ - dm: avoid filesystem lookup in dm_get_dev_t()
+ - dm integrity: fix a crash if "recalculate" used without "internal_hash"
+ - drm/atomic: put state on error path
+ - [x86] ASoC: Intel: haswell: Add missing pm_ops
+ - scsi: ufs: Correct the LUN used in eh_device_reset_handler() callback
+ - scsi: qedi: Correct max length of CHAP secret
+ - HID: Ignore battery for Elan touchscreen on ASUS UX550
+ - xen: Fix event channel callback via INTX/GSI
+ - drm/nouveau/bios: fix issue shadowing expansion ROMs
+ - drm/nouveau/privring: ack interrupts the same way as RM
+ - drm/nouveau/i2c/gm200: increase width of aux semaphore owner fields
+ - drm/nouveau/mmu: fix vram heap sizing
+ - drm/nouveau/kms/nv50-: fix case where notifier buffer is at offset 0
+ - scsi: megaraid_sas: Fix MEGASAS_IOC_FIRMWARE regression
+ - i2c: octeon: check correct size of maximum RECV_LEN packet
+ - [x86] platform/x86: intel-vbtn: Drop HP Stream x360 Convertible PC 11
+ from allow-list
+ - can: dev: can_restart: fix use after free bug
+ - can: vxcan: vxcan_xmit: fix use after free bug
+ - can: peak_usb: fix use after free bugs
+ - [mips*] irqchip/mips-cpu: Set IPI domain parent chip
+ - [x86] intel_th: pci: Add Alder Lake-P support
+ - [arm64] serial: mvebu-uart: fix tx lost characters at power off
+ - ehci: fix EHCI host controller initialization sequence
+ - usb: udc: core: Use lock when write to soft_connect
+ - xhci: make sure TRB is fully written before giving it to the controller
+ - [arm64,armhf] xhci: tegra: Delay for disabling LFPS detector
+ - driver core: Extend device_is_dependent()
+ - netfilter: rpfilter: mask ecn bits before fib lookup
+ - skbuff: back tiny skbs with kmalloc() in __netdev_alloc_skb() too
+ - udp: mask TOS bits in udp_v4_early_demux()
+ - ipv6: create multicast route with RTPROT_KERNEL
+ - net_sched: avoid shift-out-of-bounds in tcindex_set_parms()
+ - net_sched: reject silly cell_log in qdisc_get_rtab()
+ - ipv6: set multicast flag on the multicast route
+ - net: Disable NETIF_F_HW_TLS_RX when RXCSUM is disabled
+ - [armhf] net: dsa: b53: fix an off by one in checking "vlan->vid"
+
+ [ Salvatore Bonaccorso ]
+ * [rt] Update to 4.19.165-rt70
+ * Bump ABI to 14
+ * [rt] Refresh "net/core: protect users of napi_alloc_cache against
+ reentrance"
+ * futex: Move futex exit handling into futex code
+ * futex: Replace PF_EXITPIDONE with a state
+ * exit/exec: Seperate mm_release()
+ * futex: Split futex_mm_release() for exit/exec
+ * futex: Set task::futex_state to DEAD right after handling futex exit
+ * futex: Mark the begin of futex exit explicitly
+ * futex: Sanitize exit state handling
+ * futex: Provide state handling for exec() as well
+ * futex: Add mutex around futex exit
+ * futex: Provide distinct return value when owner is exiting
+ * futex: Prevent exit livelock
+ * [rt] Refresh "softirq: Split softirq locks"
+ * [arm*] gpio: mvebu: fix pwm .get_state period calculation
+ * Revert "mm/slub: fix a memory leak in sysfs_slab_add()"
+ * futex: Ensure the correct return value from futex_lock_pi()
+ * futex: Replace pointless printk in fixup_owner()
+ * futex: Provide and use pi_state_update_owner()
+ * rtmutex: Remove unused argument from rt_mutex_proxy_unlock()
+ * futex: Use pi_state_update_owner() in put_pi_state()
+ * futex: Simplify fixup_pi_state_owner()
+ * futex: Handle faults correctly for PI futexes
+ * [rt] Refresh "rtmutex: Handle the various new futex race conditions"
+ * [rt] Refresh "rtmutex: add sleeping lock implementation"
+ * [rt] Refresh "Revert "rtmutex: Handle the various new futex race
+ conditions""
+ * [rt] Refresh "futex: Make the futex_hash_bucket lock raw"
+ * [rt] Refresh "futex: Delay deallocation of pi_state"
+ * [rt] Refresh "futex: Make the futex_hash_bucket spinlock_t again and bring
+ back its old state"
+ * HID: wacom: Correct NULL dereference on AES pen proximity
+ * tracing: Fix race in trace_open and buffer resize call (CVE-2020-27825)
+
+ [ Uwe Kleine-König ]
+ * [arm64] Enable support for NXP's PCF85063 RTC (Closes: #972345)
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Fri, 29 Jan 2021 23:03:16 +0100
+
+linux (4.19.160-2) buster; urgency=medium
+
+ * net: Disable MLX5_ESWITCH on mips and mipsel (Fixes FTBFS)
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Sat, 28 Nov 2020 08:47:24 +0100
+
+linux (4.19.160-1) buster; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.153
+ - [ppc64el] ibmveth: Switch order of ibmveth_helper calls.
+ - [ppc64el] ibmveth: Identify ingress large send packets.
+ - ipv4: Restore flowi4_oif update before call to xfrm_lookup_route
+ - mlx4: handle non-napi callers to napi_poll
+ - [armhf] net: fec: Fix phy_device lookup for phy_reset_after_clk_enable()
+ - [armhf] net: fec: Fix PHY init after phy_reset_after_clk_enable()
+ - net: fix pos incrementment in ipv6_route_seq_next
+ - net/smc: fix valid DMBE buffer sizes
+ - net: usb: qmi_wwan: add Cellient MPL200 card
+ - tipc: fix the skb_unshare() in tipc_buf_append()
+ - net/ipv4: always honour route mtu during forwarding
+ - r8169: fix data corruption issue on RTL8402
+ - [arm*] binder: fix UAF when releasing todo list (CVE-2020-0423)
+ - ALSA: bebob: potential info leak in hwdep_read()
+ - net: hdlc: In hdlc_rcv, check to make sure dev is an HDLC device
+ - [x86,ppc64el] net: hdlc_raw_eth: Clear the IFF_TX_SKB_SHARING flag after
+ calling ether_setup
+ - net/sched: act_tunnel_key: fix OOB write in case of IPv6 ERSPAN tunnels
+ - nfc: Ensure presence of NFC_ATTR_FIRMWARE_NAME attribute in
+ nfc_genl_fw_download()
+ - tcp: fix to update snd_wl1 in bulk receiver fast path
+ - r8169: fix operation under forced interrupt threading
+ - icmp: randomize the global rate limiter (CVE-2020-25705)
+ - ALSA: hda/realtek: Enable audio jacks of ASUS D700SA with ALC887
+ - cifs: remove bogus debug code
+ - cifs: Return the error from crypt_message when enc/dec key not found.
+ - [x86] KVM: x86/mmu: Commit zap of remaining invalid pages when
+ recovering lpages
+ - [x86] KVM: SVM: Initialize prev_ga_tag before use
+ - crypto: algif_aead - Do not set MAY_BACKLOG on the async path
+ - [x86] EDAC/i5100: Fix error handling order in i5100_init_one()
+ - [x86] fpu: Allow multiple bits in clearcpuid= parameter
+ - [arm64] drivers/perf: xgene_pmu: Fix uninitialized resource struct
+ - [x86] nmi: Fix nmi_handle() duration miscalculation
+ - [amd64] x86/events/amd/iommu: Fix sizeof mismatch
+ - crypto: algif_skcipher - EBUSY on aio should be an error
+ - media: tuner-simple: fix regression in simple_set_radio_freq
+ - media: uvcvideo: Set media controller entity functions
+ - media: uvcvideo: Silence shift-out-of-bounds warning
+ - [armhf] media: omap3isp: Fix memleak in isp_probe
+ - [armhf] media: ti-vpe: Fix a missing check and reference count leak
+ - regulator: resolve supply after creating regulator
+ - ath10k: provide survey info as accumulated data
+ - Bluetooth: hci_uart: Cancel init work before unregistering
+ - ath6kl: prevent potential array overflow in ath6kl_add_new_sta()
+ - ath9k: Fix potential out of bounds in ath9k_htc_txcompletion_cb()
+ - ath10k: Fix the size used in a 'dma_free_coherent()' call in an error
+ handling path
+ - [arm64] wcn36xx: Fix reported 802.11n rx_highest rate wcn3660/wcn3680
+ - [arm64] ASoC: qcom: lpass-platform: fix memory leak
+ - [arm64] ASoC: qcom: lpass-cpu: fix concurrency issue
+ - brcmfmac: check ndev pointer
+ - mwifiex: Do not use GFP_KERNEL in atomic context
+ - [x86] staging: rtl8192u: Do not use GFP_KERNEL in atomic context
+ - [x86] drm/gma500: fix error check
+ - scsi: qla4xxx: Fix an error handling path in 'qla4xxx_get_host_stats()'
+ - scsi: qla2xxx: Fix wrong return value in qla_nvme_register_hba()
+ - scsi: csiostor: Fix wrong return value in csio_hw_prep_fw()
+ - [x86] VMCI: check return value of get_user_pages_fast() for errors
+ - [ppc64el] tty: hvcs: Don't NULL tty->driver_data until hvcs_cleanup()
+ - pty: do tty_flip_buffer_push without port->lock in pty_write
+ - [x86] pwm: lpss: Fix off by one error in base_unit math in
+ pwm_lpss_prepare()
+ - [x86] pwm: lpss: Add range limit check for the base_unit register value
+ - [x86] video: fbdev: vga16fb: fix setting of pixclock because a
+ pass-by-value error
+ - video: fbdev: sis: fix null ptr dereference
+ - video: fbdev: radeon: Fix memleak in radeonfb_pci_register
+ - HID: roccat: add bounds checking in kone_sysfs_write_settings()
+ - [armhf] pinctrl: mcp23s08: Fix mcp23x17_regmap initialiser
+ - [armhf] pinctrl: mcp23s08: Fix mcp23x17 precious range
+ - net/mlx5: Don't call timecounter cyc2time directly from 1PPS flow
+ - [arm64,armhf] net: stmmac: use netif_tx_start|stop_all_queues() function
+ - [arm64] cpufreq: armada-37xx: Add missing MODULE_DEVICE_TABLE
+ - ath6kl: wmi: prevent a shift wrapping bug in
+ ath6kl_wmi_delete_pstream_cmd()
+ - [amd64] misc: mic: scif: Fix error handling path
+ - [arm*] usb: dwc2: Fix parameter type in function pointer prototype
+ - quota: clear padding in v2r1_mem2diskdqb()
+ - HID: hid-input: fix stylus battery reporting
+ - net: enic: Cure the enic api locking trainwreck
+ - [mips*] mfd: sm501: Fix leaks in probe()
+ - iwlwifi: mvm: split a print to avoid a WARNING in ROC
+ - usb: gadget: f_ncm: fix ncm_bitrate for SuperSpeed and above.
+ - usb: gadget: u_ether: enable qmult on SuperSpeed Plus as well
+ - nl80211: fix non-split wiphy information
+ - [arm*] usb: dwc2: Fix INTR OUT transfers in DDMA mode.
+ - scsi: target: tcmu: Fix warning: 'page' may be used uninitialized
+ - scsi: be2iscsi: Fix a theoretical leak in beiscsi_create_eqs()
+ - mwifiex: fix double free
+ - ipvs: clear skb->tstamp in forwarding path
+ - netfilter: nf_log: missing vlan offload tag and proto
+ - mm/memcg: fix device private memcg accounting
+ - mm, oom_adj: don't loop through tasks in __set_oom_adj when not
+ necessary
+ - IB/mlx4: Fix starvation in paravirt mux/demux
+ - IB/mlx4: Adjust delayed work when a dup is observed
+ - [powerpc*] pseries: Fix missing of_node_put() in rng_init()
+ - [powerpc*] icp-hv: Fix missing of_node_put() in success path
+ - RDMA/ucma: Fix locking for ctx->events_reported
+ - RDMA/ucma: Add missing locking around rdma_leave_multicast()
+ - [powerpc*] pseries: explicitly reschedule during drmem_lmb list
+ traversal
+ - mtd: mtdoops: Don't write panic data twice
+ - [armel,armhf] ARM: 9007/1: l2c: fix prefetch bits init in L2X0_AUX_CTRL
+ using DT values
+ - xfs: limit entries returned when counting fsmap records
+ - xfs: fix high key handling in the rt allocator's query_range function
+ - RDMA/qedr: Fix use of uninitialized field
+ - RDMA/qedr: Fix inline size returned for iWARP
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.154
+ - [powerpc*] 64s/radix: Fix mm_cpumask trimming race vs kthread_use_mm
+ - RDMA/cma: Remove dead code for kernel rdmacm multicast
+ - RDMA/cma: Consolidate the destruction of a cma_multicast in one place
+ - [arm64] RDMA/hns: Set the unsupported wr opcode
+ - [arm64] RDMA/hns: Fix missing sq_sig_type when querying QP
+ - overflow: Include header file with SIZE_MAX declaration
+ - [powerpc*] perf: Exclude pmc5/6 from the irrelevant PMU group
+ constraints
+ - [poerpc*] cpufreq: powernv: Fix frame-size-overflow in
+ powernv_cpufreq_reboot_notifier
+ - IB/rdmavt: Fix sizeof mismatch
+ - f2fs: wait for sysfs kobject removal before freeing f2fs_sb_info
+ - lib/crc32.c: fix trivial typo in preprocessor condition
+ - rapidio: fix error handling path
+ - rapidio: fix the missed put_device() for rio_mport_add_riodev
+ - mailbox: avoid timer start from callback
+ - [arm64,armhf] clk: rockchip: Initialize hw to error to avoid undefined
+ behavior
+ - [arm*] clk: bcm2835: add missing release if devm_clk_hw_register fails
+ - watchdog: Fix memleak in watchdog_cdev_register
+ - watchdog: Use put_device on error
+ - svcrdma: fix bounce buffers for unaligned offsets and multiple pages
+ - ext4: limit entries returned when counting fsmap records
+ - vfio/pci: Clear token on bypass registration failure
+ - [amd64,arm64] vfio iommu type1: Fix memory leak in
+ vfio_iommu_type1_pin_pages
+ - SUNRPC: fix copying of multiple pages in gss_read_proxy_verf()
+ - [armhf] Input: omap4-keypad - fix handling of platform_get_irq() error
+ - [armhf] Input: twl4030_keypad - fix handling of platform_get_irq() error
+ - [armhf] Input: sun4i-ps2 - fix handling of platform_get_irq() error
+ - [x86] KVM: emulating RDPID failure shall return #UD rather than #GP
+ - netfilter: conntrack: connection timeout after re-register
+ - netfilter: nf_fwd_netdev: clear timestamp in forwarding path
+ - [armhf] dts: sun8i: r40: bananapi-m2-ultra: Fix dcdc1 regulator
+ - [armhf] memory: omap-gpmc: Fix a couple off by ones
+ - [powerpc*] powernv/dump: Fix race while processing OPAL dump
+ - nvmet: fix uninitialized work for zero kato
+ - [x86,arm64] i2c: core: Restore acpi_walk_dep_device_list() getting
+ called after registering the ACPI i2c devs
+ - block: ratelimit handle_bad_sector() message
+ - [x86] crypto: ccp - fix error handling
+ - media: firewire: fix memory leak
+ - media: ati_remote: sanity check for both endpoints
+ - media: media/pci: prevent memory leak in bttv_probe
+ - media: uvcvideo: Ensure all probed info is returned to v4l2
+ - mmc: sdio: Check for CISTPL_VERS_1 buffer size
+ - media: saa7134: avoid a shift overflow
+ - fs: dlm: fix configfs memory leak
+ - [arm64] media: venus: core: Fix runtime PM imbalance in venus_probe
+ - ip_gre: set dev->hard_header_len and dev->needed_headroom properly
+ - mac80211: handle lack of sband->bitrates in rates
+ - PM: hibernate: remove the bogus call to get_gendisk() in
+ software_resume()
+ - scsi: mvumi: Fix error return in mvumi_io_attach()
+ - scsi: target: core: Add CONTROL field for trace events
+ - [amd64] mic: vop: copy data to kernel space then write to io memory
+ - [amd64] misc: vop: add round_up(x,4) for vring_size to avoid kernel
+ panic
+ - usb: gadget: function: printer: fix use-after-free in __lock_acquire
+ - udf: Limit sparing table size
+ - udf: Avoid accessing uninitialized data on failed inode read
+ - USB: cdc-acm: handle broken union descriptors
+ - [arm64,armhf] usb: dwc3: simple: add support for Hikey 970
+ - [armhf] can: flexcan: flexcan_chip_stop(): add error handling and
+ propagate error value
+ - ath9k: hif_usb: fix race condition between usb_get_urb() and
+ usb_kill_anchored_urbs()
+ - misc: rtsx: Fix memory leak in rtsx_pci_probe
+ - reiserfs: only call unlock_new_inode() if I_NEW
+ - xfs: make sure the rt allocator doesn't run off the end
+ - usb: ohci: Default to per-port over-current protection
+ - Bluetooth: Only mark socket zapped after unlocking
+ - [ppc64el] scsi: ibmvfc: Fix error return in ibmvfc_probe()
+ - brcmsmac: fix memory leak in wlc_phy_attach_lcnphy
+ - rtl8xxxu: prevent potential memory leak
+ - Fix use after free in get_capset_info callback.
+ - scsi: qedi: Protect active command list to avoid list corruption
+ - scsi: qedi: Fix list_del corruption while removing active I/O
+ - [x86] tty: ipwireless: fix error handling
+ - ipvs: Fix uninit-value in do_ip_vs_set_ctl()
+ - reiserfs: Fix memory leak in reiserfs_parse_options()
+ - mwifiex: don't call del_timer_sync() on uninitialized timer
+ - brcm80211: fix possible memleak in brcmf_proto_msgbuf_attach
+ - usb: core: Solve race condition in anchor cleanup functions
+ - ath10k: check idx validity in __ath10k_htt_rx_ring_fill_n()
+ - usb: cdc-acm: add quirk to blacklist ETAS ES58X devices
+ - USB: cdc-wdm: Make wdm_flush() interruptible and add wdm_fsync().
+ - eeprom: at25: set minimum read/write access stride to 1
+ - usb: gadget: f_ncm: allow using NCM in SuperSpeed Plus gadgets.
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.155
+ - scripts/setlocalversion: make git describe output more reliable
+ - [arm64] Run ARCH_WORKAROUND_1 enabling code on all CPUs
+ - [arm64] link with -z norelro regardless of CONFIG_RELOCATABLE
+ - [x86,arm64,armhf] efivarfs: Replace invalid slashes with exclamation
+ marks in dentries.
+ - gtp: fix an use-before-init in gtp_newlink()
+ - netem: fix zero division in tabledist
+ - tcp: Prevent low rmem stalls with SO_RCVLOWAT.
+ - tipc: fix memory leak caused by tipc_buf_append()
+ - r8169: fix issue with forced threading in combination with shared
+ interrupts
+ - cxgb4: set up filter action after rewrites
+ - [x86] arch/x86/amd/ibs: Fix re-arming IBS Fetch
+ - [x86] xen: disable Firmware First mode for correctable memory errors
+ - fuse: fix page dereference after free
+ - bpf: Fix comment for helper bpf_current_task_under_cgroup()
+ - p54: avoid accessing the data mapped to streaming DMA
+ - [powerpc*] cxl: Rework error message for incompatible slots
+ - RDMA/addr: Fix race with netevent_callback()/rdma_addr_cancel()
+ - mtd: lpddr: Fix bad logic in print_drs_error
+ - [arm*] serial: pl011: Fix lockdep splat when handling magic-sysrq
+ interrupt
+ - fscrypt: return -EXDEV for incompatible rename or link into encrypted
+ dir
+ - fscrypt: clean up and improve dentry revalidation
+ - fscrypt: fix race allowing rename() and link() of ciphertext dentries
+ - fs, fscrypt: clear DCACHE_ENCRYPTED_NAME when unaliasing directory
+ - fscrypt: only set dentry_operations on ciphertext dentries
+ - fscrypt: fix race where ->lookup() marks plaintext dentry as ciphertext
+ - Revert "block: ratelimit handle_bad_sector() message"
+ - xen/events: don't use chip_data for legacy IRQs
+ - xen/events: avoid removing an event channel while handling it
+ (CVE-2020-27675)
+ - xen/events: add a proper barrier to 2-level uevent unmasking
+ (CVE-2020-27673)
+ - xen/events: fix race in evtchn_fifo_unmask() (CVE-2020-27673)
+ - xen/events: add a new "late EOI" evtchn framework (CVE-2020-27673)
+ - xen/blkback: use lateeoi irq binding (CVE-2020-27673)
+ - xen/netback: use lateeoi irq binding (CVE-2020-27673)
+ - xen/scsiback: use lateeoi irq binding (CVE-2020-27673)
+ - xen/pvcallsback: use lateeoi irq binding (CVE-2020-27673)
+ - xen/pciback: use lateeoi irq binding (CVE-2020-27673)
+ - xen/events: switch user event channels to lateeoi model (CVE-2020-27673)
+ - xen/events: use a common cpu hotplug hook for event channels
+ (CVE-2020-27673)
+ - xen/events: defer eoi in case of excessive number of events
+ (CVE-2020-27673)
+ - xen/events: block rogue events for some time (CVE-2020-27673)
+ - RDMA/qedr: Fix memory leak in iWARP CM
+ - ata: sata_nv: Fix retrieving of active qcs
+ - futex: Fix incorrect should_fail_futex() handling
+ - [powerpc*] powernv/smp: Fix spurious DBG() warning
+ - mm: fix exec activate_mm vs TLB shootdown and lazy tlb switching race
+ - [powerpc*] select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
+ - f2fs: add trace exit in exception path
+ - f2fs: fix uninit-value in f2fs_lookup
+ - f2fs: fix to check segment boundary during SIT page readahead
+ - [armel,armhf] 8997/2: hw_breakpoint: Handle inexact watchpoint addresses
+ - power: supply: bq27xxx: report "not charging" on all types
+ - xfs: fix realtime bitmap/summary file truncation when growing rt volume
+ - ath10k: fix VHT NSS calculation when STBC is enabled
+ - media: videodev2.h: RGB BT2020 and HSV are always full range
+ - [x86] usb: typec: tcpm: During PR_SWAP, source caps should be sent only
+ after tSwapSourceStart
+ - media: tw5864: check status of tw5864_frameinterval_get
+ - mmc: via-sdmmc: Fix data race bug
+ - [arm64] topology: Stop using MPIDR for topology information
+ - media: uvcvideo: Fix dereference of out-of-bound list iterator
+ - USB: adutux: fix debugging
+ - uio: free uio id after uio file node is freed
+ - usb: xhci: omit duplicate actions when suspending a runtime suspended
+ host.
+ - [arm64] mm: return cpu_all_mask when node is NUMA_NO_NODE
+ - xfs: don't free rt blocks when we're doing a REMAP bunmapi call
+ - ACPI: Add out of bounds and numa_off protections to pxm_to_node()
+ - drivers/net/wan/hdlc_fr: Correctly handle special skb->protocol values
+ - btrfs: fix replace of seed device
+ - md/bitmap: md_bitmap_get_counter returns wrong blocks
+ - bnxt_en: Log unknown link speed appropriately.
+ - [arm64] rpmsg: glink: Use complete_all for open states
+ - [armhf] clk: ti: clockdomain: fix static checker warning
+ - net: 9p: initialize sun_server.sun_path to have addr's value only when
+ addr is valid
+ - ext4: Detect already used quota file early
+ - gfs2: add validation checks for size of superblock
+ - cifs: handle -EINTR in cifs_setattr
+ - [armhf] memory: emif: Remove bogus debugfs error handling
+ - nbd: make the config put is called before the notifying the waiter
+ - sgl_alloc_order: fix memory leak
+ - nvme-rdma: fix crash when connect rejected
+ - md/raid5: fix oops during stripe resizing
+ - [x86,arm64] mmc: sdhci-acpi: AMDI0040: Set
+ SDHCI_QUIRK2_PRESET_VALUE_BROKEN
+ - [x86] perf/x86/amd/ibs: Don't include randomized bits in
+ get_ibs_op_count()
+ - [x86] perf/x86/amd/ibs: Fix raw sample data accumulation
+ - media: uvcvideo: Fix uvc_ctrl_fixup_xu_info() not having any effect
+ - fs: Don't invalidate page buffers in block_write_full_page()
+ - NFS: fix nfs_path in case of a rename retry
+ - ACPI: button: fix handling lid state changes when input device closed
+ - [x86] ACPI / extlog: Check for RDMSR failure (Closes: #971058)
+ - [x86] ACPI: video: use ACPI backlight for HP 635 Notebook
+ - [x86] acpi-cpufreq: Honor _PSD table setting on new AMD CPUs
+ - scsi: mptfusion: Fix null pointer dereferences in mptscsih_remove()
+ - scsi: qla2xxx: Fix crash on session cleanup with unload
+ - btrfs: qgroup: fix wrong qgroup metadata reserve for delayed inode
+ - btrfs: improve device scanning messages
+ - btrfs: reschedule if necessary when logging directory items
+ - btrfs: send, recompute reference path after orphanization of a directory
+ - btrfs: use kvzalloc() to allocate clone_roots in btrfs_ioctl_send()
+ - btrfs: cleanup cow block on error
+ - btrfs: fix use-after-free on readahead extent after failure to create it
+ - usb: xhci: Workaround for S3 issue on AMD SNPS 3.0 xHC
+ - [arm64,armhf] usb: dwc3: ep0: Fix ZLP for OUT ep0 requests
+ - [arm64,armhf] usb: dwc3: gadget: Check MPS of the request length
+ - [arm64,armhf] usb: dwc3: core: add phy cleanup for probe error handling
+ - [arm64,armhf] usb: dwc3: core: don't trigger runtime pm when remove
+ driver
+ - usb: cdc-acm: fix cooldown mechanism
+ - [x86] usb: typec: tcpm: reset hard_reset_count for any disconnect
+ - [x86] drm/i915: Force VT'd workarounds when running as a guest OS
+ - vt: keyboard, simplify vt_kdgkbsent
+ - vt: keyboard, extend func_buf_lock to readers (CVE-2020-25656)
+ - HID: wacom: Avoid entering wacom_wac_pen_report for pad / battery
+ - udf: Fix memory leak when mounting
+ - [powerpc*] drmem: Make lmb_size 64 bit
+ - [s390x] stp: add locking to sysfs functions
+ - [powerpc*] rtas: Restrict RTAS requests from userspace (CVE-2020-27777)
+ - [powerpc*] Warn about use of smt_snooze_delay
+ - [powerpc*] powernv/elog: Fix race while processing OPAL error log event.
+ - [powerpc*] Fix undetected data corruption with P9N DD2.1 VSX CI load
+ emulation
+ - NFSv4.2: support EXCHGID4_FLAG_SUPP_FENCE_OPS 4.2 EXCHANGE_ID flag
+ - NFSD: Add missing NFSv2 .pc_func methods
+ - ubifs: dent: Fix some potential memory leaks while iterating entries
+ - perf python scripting: Fix printable strings in python3 scripts
+ - ubi: check kthread_should_stop() after the setting of task state
+ - [armhf] i2c: imx: Fix external abort on interrupt in exit paths
+ - drm/amdgpu: don't map BO in reserved region
+ - ceph: promote to unsigned long long before shifting
+ - libceph: clear con->out_msg on Policy::stateful_server faults
+ - 9P: Cast to loff_t before multiplying
+ - ring-buffer: Return 0 on success from ring_buffer_resize()
+ - [amd64] vringh: fix __vringh_iov() when riov and wiov are different
+ - ext4: fix leaking sysfs kobject after failed mount
+ - ext4: fix error handling code in add_new_gdb
+ - ext4: fix invalid inode checksum
+ - drm/ttm: fix eviction valuable range check.
+ - tty: make FONTX ioctl use the tty pointer they were actually passed
+ (CVE-2020-25668)
+ - cachefiles: Handle readpage error correctly
+ - device property: Keep secondary firmware node secondary by type
+ - device property: Don't clear secondary pointer for shared primary
+ firmware node
+ - [arm64] KVM: Fix AArch32 handling of DBGD{CCINT,SCRext} and DBGVCR
+ - [x86] staging: comedi: cb_pcidas: Allow 2-channel commands for AO
+ subdevice
+ - [mips*] staging: octeon: repair "fixed-link" support
+ - [mips*] staging: octeon: Drop on uncorrectable alignment or FCS error
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.156
+ - [x86] drm/i915: Break up error capture compression loops with
+ cond_resched()
+ - tipc: fix use-after-free in tipc_bcast_get_mode
+ - ptrace: fix task_join_group_stop() for the case when current is traced
+ - [arm64] cadence: force nonlinear buffers to be cloned
+ - net: usb: qmi_wwan: add Telit LE910Cx 0x1230 composition
+ - sctp: Fix COMM_LOST/CANT_STR_ASSOC err reporting on big-endian platforms
+ - [arm64,armhf] sfp: Fix error handing in sfp_probe()
+ - blktrace: fix debugfs use after free (CVE-2019-19770)
+ - btrfs: extent_io: Kill the forward declaration of flush_write_bio
+ - btrfs: extent_io: Move the BUG_ON() in flush_write_bio() one level up
+ - Revert "btrfs: flush write bio if we loop in extent_write_cache_pages"
+ - btrfs: flush write bio if we loop in extent_write_cache_pages
+ - btrfs: extent_io: Handle errors better in extent_write_full_page()
+ - btrfs: extent_io: Handle errors better in btree_write_cache_pages()
+ - btrfs: extent_io: add proper error handling to
+ lock_extent_buffer_for_io()
+ - Btrfs: fix unwritten extent buffers and hangs on future writeback
+ attempts
+ - btrfs: Don't submit any btree write bio if the fs has errors
+ (CVE-2019-19039, CVE-2019-19377)
+ - btrfs: Move btrfs_check_chunk_valid() to tree-check.[ch] and export it
+ - btrfs: tree-checker: Make chunk item checker messages more readable
+ - btrfs: tree-checker: Make btrfs_check_chunk_valid() return EUCLEAN
+ instead of EIO
+ - btrfs: tree-checker: Check chunk item at tree block read time
+ - btrfs: tree-checker: Verify dev item
+ - btrfs: tree-checker: Fix wrong check on max devid
+ - btrfs: tree-checker: Enhance chunk checker to validate chunk profile
+ (CVE-2019-19816)
+ - btrfs: tree-checker: Verify inode item
+ - btrfs: tree-checker: fix the error message for transid error
+ - Fonts: Replace discarded const qualifier
+ - ALSA: usb-audio: Add implicit feedback quirk for Zoom UAC-2
+ - ALSA: usb-audio: add usb vendor id as DSD-capable for Khadas devices
+ - ALSA: usb-audio: Add implicit feedback quirk for Qu-16
+ - ALSA: usb-audio: Add implicit feedback quirk for MODX
+ - mm: mempolicy: fix potential pte_unmap_unlock pte error
+ - kthread_worker: prevent queuing delayed work from timer_fn when it is
+ being canceled
+ - mm: always have io_remap_pfn_range() set pgprot_decrypted()
+ - gfs2: Wake up when sd_glock_disposal becomes zero
+ - ring-buffer: Fix recursion protection transitions between interrupt
+ context
+ - ftrace: Fix recursion check for NMI test
+ - ftrace: Handle tracing when switching between context
+ - tracing: Fix out of bounds write in get_trace_buf
+ - futex: Handle transient "ownerless" rtmutex state correctly
+ - [amd64] x86/kexec: Use up-to-dated screen_info copy to fill boot params
+ - of: Fix reserved-memory overlap detection
+ - blk-cgroup: Fix memleak on error path
+ - blk-cgroup: Pre-allocate tree node on blkg_conf_prep
+ - scsi: core: Don't start concurrent async scan on same host
+ - vsock: use ns_capable_noaudit() on socket create
+ - [arm*] drm/vc4: drv: Add error handding for bind
+ - [amd64,arm64] ACPI: NFIT: Fix comparison to '-ENXIO'
+ - vt: Disable KD_FONT_OP_COPY (CVE-2020-28974)
+ - fork: fix copy_process(CLONE_PARENT) race with the exiting ->real_parent
+ - USB: serial: cyberjack: fix write-URB completion race
+ - USB: serial: option: add Quectel EC200T module support
+ - USB: serial: option: add LE910Cx compositions 0x1203, 0x1230, 0x1231
+ - USB: serial: option: add Telit FN980 composition 0x1055
+ - USB: Add NO_LPM quirk for Kingston flash drive
+ - PM: runtime: Resume the device earlier in __device_release_driver()
+ - perf/core: Fix a memory leak in perf_event_parse_addr_filter()
+ (CVE-2020-25704)
+ - tools: perf: Fix build error in v4.19.y
+ - [arm64,armhf] net: dsa: read mac address from DT for slave device
+ - [arm64] dts: marvell: espressobin: Add ethernet switch aliases
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.157
+ - [x86] powercap: restrict energy meter to root access (CVE-2020-8694)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.158
+ - regulator: defer probe when trying to get voltage from unresolved supply
+ - time: Prevent undefined behaviour in timespec64_to_ns()
+ - nbd: don't update block size after device is started
+ - [arm64,armhf] usb: dwc3: gadget: Continue to process pending requests
+ - [arm64,armhf] usb: dwc3: gadget: Reclaim extra TRBs after request
+ completion
+ - btrfs: sysfs: init devices outside of the chunk_mutex
+ - btrfs: reschedule when cloning lots of extents
+ - [x86] hv_balloon: disable warning when floor reached
+ - net: xfrm: fix a race condition during allocing spi
+ - xfs: set xefi_discard when creating a deferred agfl free log intent item
+ - netfilter: ipset: Update byte and packet counters regardless of whether
+ they match
+ - perf tools: Add missing swap for ino_generation
+ - [x86] ALSA: hda: prevent undefined shift in snd_hdac_ext_bus_get_link()
+ - can: rx-offload: don't call kfree_skb() from IRQ context
+ - can: dev: can_get_echo_skb(): prevent call to kfree_skb() in hard IRQ
+ context
+ - can: dev: __can_get_echo_skb(): fix real payload length return value for
+ RTR frames
+ - can: can_create_echo_skb(): fix echo skb generation: always use
+ skb_clone()
+ - can: peak_usb: add range checking in decode operations
+ - can: peak_usb: peak_usb_get_ts_time(): fix timestamp wrapping
+ - can: peak_canfd: pucan_handle_can_rx(): fix echo management when
+ loopback is on
+ - [armhf] can: flexcan: remove FLEXCAN_QUIRK_DISABLE_MECR quirk for
+ LS1021A
+ - xfs: flush new eof page on truncate to avoid post-eof corruption
+ - [arm64,x86] tpm: efi: Don't create binary_bios_measurements file for an
+ empty log
+ - Btrfs: fix missing error return if writeback for extent buffer never
+ started
+ - ath9k_htc: Use appropriate rs_datalen type
+ - netfilter: use actual socket sk rather than skb sk when routing harder
+ - gfs2: Free rd_bits later in gfs2_clear_rgrpd to fix use-after-free
+ - gfs2: Add missing truncate_inode_pages_final for sd_aspace
+ - gfs2: check for live vs. read-only file system in gfs2_fitrim
+ - scsi: hpsa: Fix memory leak in hpsa_init_one()
+ - drm/amdgpu: perform srbm soft reset always on SDMA resume
+ - mac80211: fix use of skb payload instead of header
+ - cfg80211: regulatory: Fix inconsistent format argument
+ - scsi: scsi_dh_alua: Avoid crash during alua_bus_detach()
+ - [s390x] smp: move rcu_cpu_starting() earlier
+ - [x86] tpm_tis: Disable interrupts on ThinkPad T490s
+ - tick/common: Touch watchdog in tick_unfreeze() on all CPUs
+ - [x86] pinctrl: intel: Set default bias in case no particular value given
+ - [armel,armhf] 9019/1: kprobes: Avoid fortify_panic() when copying
+ optprobe template
+ - nbd: fix a block_device refcount leak in nbd_release
+ - xfs: fix flags argument to rmap lookup when converting shared file rmaps
+ - xfs: fix rmap key and record comparison functions
+ - lan743x: fix "BUG: invalid wait context" when setting rx mode
+ - xfs: fix a missing unlock on error in xfs_fs_map_blocks
+ - of/address: Fix of_node memory leak in of_dma_is_coherent
+ - [i386] cosa: Add missing kfree in error path of cosa_write
+ - perf: Fix get_recursion_context()
+ - ext4: correctly report "not supported" for {usr,grp}jquota when
+ !CONFIG_QUOTA
+ - ext4: unlock xattr_sem properly in ext4_inline_data_truncate()
+ - btrfs: dev-replace: fail mount if we don't have replace item with target
+ device
+ - [x86] thunderbolt: Fix memory leak if ida_simple_get() fails in
+ enumerate_services()
+ - [x86] thunderbolt: Add the missed ida_simple_remove() in
+ ring_request_msix()
+ - uio: Fix use-after-free in uio_unregister_device()
+ - usb: cdc-acm: Add DISABLE_ECHO for Renesas USB Download mode
+ - futex: Don't enable IRQs unconditionally in put_pi_state()
+ - ocfs2: initialize ip_next_orphan
+ - btrfs: fix potential overflow in cluster_pages_for_defrag on 32bit arch
+ - selinux: Fix error return code in sel_ib_pkey_sid_slow()
+ - gpio: pcie-idio-24: Fix irq mask when masking
+ - gpio: pcie-idio-24: Fix IRQ Enable Register value
+ - gpio: pcie-idio-24: Enable PEX8311 interrupts
+ - don't dump the threads that had been already exiting when zapped.
+ - [x86] drm/gma500: Fix out-of-bounds access to struct drm_device.vblank[]
+ - pinctrl: amd: use higher precision for 512 RtcClk
+ - pinctrl: amd: fix incorrect way to disable debounce filter
+ - swiotlb: fix "x86: Don't panic if can not alloc buffer for swiotlb"
+ - IPv6: Set SIT tunnel hard_header_len to zero
+ - [s390x] net/af_iucv: fix null pointer dereference on shutdown
+ - net: Update window_clamp if SOCK_RCVBUF is set
+ - tipc: fix memory leak in tipc_topsrv_start()
+ - vrf: Fix fast path output packet handling with async Netfilter rules
+ - r8169: fix potential skb double free in an error path
+ - random32: make prandom_u32() output unpredictable
+ - [x86] speculation: Allow IBPB to be conditionally enabled on CPUs with
+ always-on STIBP
+ - perf/core: Fix race in the perf_mmap_close() function (CVE-2020-14351)
+ - Revert "kernel/reboot.c: convert simple_strtoul to kstrtoint"
+ - reboot: fix overflow parsing reboot cpu number
+ - net: sch_generic: fix the missing new qdisc assignment bug
+ - Convert trailing spaces and periods in path components
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.159
+ - [powerpc*] 64s: move some exception handlers out of line
+ - [powerpc*] 64s: flush L1D on kernel entry (CVE-2020-4788)
+ - [powerpc*] Add a framework for user access tracking
+ - [powerpc*] Implement user_access_begin and friends
+ - [powerpc*] Fix __clear_user() with KUAP enabled
+ - [powerpc*] uaccess: Evaluate macro arguments once, before user access is
+ allowed
+ - [powerpc*] 64s: flush L1D after user accesses (CVE-2020-4788)
+ - Revert "perf cs-etm: Move definition of 'traceid_list' global variable
+ from header file"
+ - Input: sunkbd - avoid use-after-free in teardown paths (CVE-2020-25669)
+ - mac80211: always wind down STA state
+ - can: proc: can_remove_proc(): silence remove_proc_entry warning
+ - [x86] KVM: x86: clflushopt should be treated as a no-op by emulation
+ - [arm64] ACPI: GED: fix -Wformat
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.160
+ - ah6: fix error return code in ah6_input()
+ - atm: nicstar: Unmap DMA on send error
+ - bnxt_en: read EEPROM A2h address using page 0
+ - devlink: Add missing genlmsg_cancel() in devlink_nl_sb_port_pool_fill()
+ - inet_diag: Fix error path to cancel the meseage in inet_req_diag_fill()
+ - lan743x: fix issue causing intermittent kernel log warnings
+ - lan743x: prevent entire kernel HANG on open, for some platforms
+ - net: b44: fix error return code in b44_init_one()
+ - net: bridge: add missing counters to ndo_get_stats64 callback
+ - [arm64,armhf] net: dsa: mv88e6xxx: Avoid VTU corruption on 6097
+ - net: Have netpoll bring-up DSA management interface
+ - net/mlx4_core: Fix init_hca fields offset
+ - page_frag: Recover from memory pressure
+ - qed: fix error return code in qed_iwarp_ll2_start()
+ - qlcnic: fix error return code in qlcnic_83xx_restart_hw()
+ - sctp: change to hold/put transport for proto_unreach_timer
+ - tcp: only postpone PROBE_RTT if RTT is < current min_rtt estimate
+ - [arm64,armhf] net/mlx5: Disable QoS when min_rates on all VFs are zero
+ - net: usb: qmi_wwan: Set DTR quirk for MR400
+ - [arm64,armhf] pinctrl: rockchip: enable gpio pclk for
+ rockchip_gpio_to_irq
+ - scsi: ufs: Fix unbalanced scsi_block_reqs_cnt caused by ufshcd_hold()
+ - [x86] ACPI: button: Add DMI quirk for Medion Akoya E2228T
+ - [arm64] psci: Avoid printing in cpu_psci_cpu_die()
+ - vfs: remove lockdep bogosity in __sb_start_write
+ - [arm64] dts: allwinner: a64: Pine64 Plus: Fix ethernet node
+ - [arm64] dts: allwinner: h5: OrangePi PC2: Fix ethernet node
+ - [armhf] dts: sun8i: r40: bananapi-m2-ultra: Fix ethernet node
+ - [armhf] Revert "arm: sun8i: orangepi-pc-plus: Set EMAC activity LEDs to
+ active high"
+ - [armhf] dts: sun8i: h3: orangepi-plus2e: Enable RGMII RX/TX delay on
+ Ethernet PHY
+ - [armhf] dts: sun8i: a83t: Enable both RGMII RX/TX delay on Ethernet PHY
+ - [arm64] dts: allwinner: a64: bananapi-m64: Enable RGMII RX/TX delay on
+ PHY
+ - [mips*] export has_transparent_hugepage() for modules
+ - [arm64] dts: allwinner: h5: OrangePi Prime: Fix ethernet node
+ - perf lock: Don't free "lock_seq_stat" if read_count isn't zero
+ - ip_tunnels: Set tunnel option flag when tunnel metadata is present
+ - can: af_can: prevent potential access of uninitialized member in
+ can_rcv()
+ - can: af_can: prevent potential access of uninitialized member in
+ canfd_rcv()
+ - can: dev: can_restart(): post buffer from the right context
+ - can: mcba_usb: mcba_usb_start_xmit(): first fill skb, then pass to
+ can_put_echo_skb()
+ - can: peak_usb: fix potential integer overflow on shift of a int
+ - [arm64] ASoC: qcom: lpass-platform: Fix memory leak
+ - [arm64,armhf] drm/sun4i: dw-hdmi: fix error return code in
+ sun8i_dw_hdmi_bind()
+ - can: kvaser_usb: kvaser_usb_hydra: Fix KCAN bittiming limits
+ - [armhf] regulator: ti-abb: Fix array out of bound read access on the
+ first transition
+ - xfs: revert "xfs: fix rmap key and record comparison functions"
+ - [amd64] efi/x86: Free efi_pgd with free_pages()
+ - libfs: fix error cast of negative value in simple_attr_write()
+ - speakup: Do not let the line discipline be used several times
+ (CVE-2020-28941)
+ - ALSA: firewire: Clean up a locking issue in copy_resp_to_buf()
+ - ALSA: usb-audio: Add delay quirk for all Logitech USB devices
+ - ALSA: ctl: fix error path at adding user-defined element set
+ - ALSA: mixart: Fix mutex deadlock
+ - ALSA: hda/realtek: Add some Clove SSID in the ALC293(ALC1220)
+ - [armhf] tty: serial: imx: keep console clocks always on
+ - [arm64,armhf,x86] efivarfs: fix memory leak in efivarfs_create()
+ - [arm64,x86] staging: rtl8723bs: Add 024c:0627 to the list of SDIO
+ device-ids
+ - ext4: fix bogus warning in ext4_update_dx_flag()
+ - [x86] iio: accel: kxcjk1013: Replace is_smo8500_device with an acpi_type
+ enum
+ - [x86] iio: accel: kxcjk1013: Add support for KIOX010A ACPI DSM for
+ setting tablet-mode
+ - [armhf] regulator: pfuze100: limit pfuze-support-disable-sw to
+ pfuze{100,200}
+ - regulator: fix memory leak with repeated set_machine_constraints()
+ - regulator: avoid resolve_supply() infinite recursion
+ - regulator: workaround self-referent regulators
+ - mac80211: minstrel: remove deferred sampling code
+ - mac80211: minstrel: fix tx status processing corner case
+ - mac80211: free sta in sta_info_insert_finish() on errors
+ - [s390x] cpum_sf.c: fix file permission for cpum_sfb_size
+ - [s390x] dasd: fix null pointer dereference for ERP requests
+ - ptrace: Set PF_SUPERPRIV when checking capability
+ - seccomp: Set PF_SUPERPRIV when checking capability
+ - [x86] microcode/intel: Check patch signature before saving microcode for
+ early loading
+ - mm/userfaultfd: do not access vma->vm_mm after calling
+ handle_userfault()
+
+ [ Salvatore Bonaccorso ]
+ * net: Enable NET_SWITCHDEV; disable on armel/marvell (Closes: #949863)
+ * Bump ABI to 13
+ * [rt] Update to 4.19.152-rt65
+ * [rt] Refresh "mm: Protect activate_mm() by preempt_[disable&enable]_rt()"
+ * [rt] Refresh "kthread: convert worker lock to raw spinlock"
+ * [rt] Refresh "signals: Allow rt tasks to cache one sigqueue struct"
+ * [rt] Refresh "tpm_tis: fix stall after iowrite*()s"
+ * [rt] Refresh "futex: Delay deallocation of pi_state"
+ * [rt] Refresh "futex: Make the futex_hash_bucket spinlock_t again"
+ * [rt] Update to 4.19.152-rt66
+ - mm/memcontrol: Disable preemption in __mod_memcg_lruvec_state()
+ - ptrace: fix ptrace_unfreeze_traced() race with rt-lock
+ * [rt] Update to 4.19.160-rt69
+
+ [ Noah Meyerhans ]
+ * Backport upstream fix for PCI bridge firmware configuration preservation
+ (Closes: #968623)
+
+ [ John L. Villalovos ]
+ * Backport support for USB Host Controllers with local memory to avoid
+ crashes. In particular the Renesas USB 3.0 controller (PD720201/PD720202)
+ which is used on the Ampere's Mt Jade platform which is part of their
+ Altra product line:
+ - lib/genalloc: add gen_pool_dma_zalloc() for zeroed DMA allocations
+ - USB: use genalloc for USB HCs with local memory
+ - USB: drop HCD_LOCAL_MEM flag
+ - usb: don't create dma pools for HCDs with a localmem_pool
+ - usb: add a hcd_uses_dma helper
+ - usb: host: ohci-sm501: init genalloc for local memory
+ - usb/hcd: Fix a NULL vs IS_ERR() bug in usb_hcd_setup_local_mem()
+ * [arm64] config/arm64/config: Set NODES_SHIFT to 4
+
+ [ Yves-Alexis Perez ]
+ * usbnet: ipheth: fix connectivity with iOS 14
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Thu, 26 Nov 2020 21:23:20 +0100
+
+linux (4.19.152-1) buster-security; urgency=high
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.147
+ - [arm64,armhf] dsa: Allow forwarding of redirected IGMP traffic
+ - scsi: qla2xxx: Update rscn_rcvd field to more meaningful scan_needed
+ - scsi: qla2xxx: Move rport registration out of internal work_list
+ - scsi: qla2xxx: Reduce holding sess_lock to prevent CPU lock-up
+ - net: handle the return value of pskb_carve_frag_list() correctly
+ - [x86] hv_netvsc: Remove "unlikely" from netvsc_select_queue
+ - NFSv4.1 handle ERR_DELAY error reclaiming locking state on delegation
+ recall
+ - scsi: pm8001: Fix memleak in pm8001_exec_internal_task_abort
+ - scsi: libfc: Fix for double free()
+ - scsi: lpfc: Fix FLOGI/PLOGI receive race condition in pt2pt discovery
+ - [arm64] regulator: pwm: Fix machine constraints application
+ - NFS: Zero-stateid SETATTR should first return delegation
+ - SUNRPC: stop printk reading past end of string
+ - nvme-fc: cancel async events before freeing event struct
+ - nvme-rdma: cancel async events before freeing event struct
+ - f2fs: fix indefinite loop scanning for free nid
+ - f2fs: Return EOF on unaligned end of file DIO read
+ - i2c: algo: pca: Reapply i2c bus settings after reset
+ - spi: Fix memory leak on splited transfers
+ - [arm64,armhf] clk: rockchip: Fix initialization of mux_pll_src_4plls_p
+ - [arm64] ASoC: qcom: Set card->owner to avoid warnings
+ - [x86] Drivers: hv: vmbus: Add timeout to vmbus_wait_for_unload
+ - fbcon: Fix user font detection test at fbcon_resize().
+ - USB: quirks: Add USB_QUIRK_IGNORE_REMOTE_WAKEUP quirk for BYD zhaoxin
+ notebook
+ - USB: UAS: fix disconnect by unplugging a hub
+ - usblp: fix race between disconnect() and read()
+ - [x86] i2c: i801: Fix resume bug
+ - Revert "ALSA: hda - Fix silent audio output and corrupted input on MSI
+ X570-A PRO"
+ - percpu: fix first chunk size calculation for populated bitmap
+ - Input: trackpoint - add new trackpoint variant IDs
+ - serial: 8250_pci: Add Realtek 816a and 816b
+ - ehci-hcd: Move include to keep CRC stable
+ - [powerpc*] dma: Fix dma_map_ops::get_required_mask
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.148
+ - af_key: pfkey_dump needs parameter validation
+ - KVM: fix memory leak in kvm_io_bus_unregister_dev()
+ - kprobes: fix kill kprobe which has been marked as gone
+ - mm/thp: fix __split_huge_pmd_locked() for migration PMD
+ - cxgb4: Fix offset when clearing filter byte counters
+ - geneve: add transport ports in route lookup for geneve (CVE-2020-25645)
+ - [x86,ppc64el] hdlc_ppp: add range checks in ppp_cp_parse_cr()
+ (CVE-2020-25643)
+ - ip: fix tos reflection in ack and reset packets
+ - ipv6: avoid lockdep issue in fib6_del()
+ - net: DCB: Validate DCB_ATTR_DCB_BUFFER argument
+ - net: ipv6: fix kconfig dependency warning for IPV6_SEG6_HMAC
+ - net: sch_generic: aviod concurrent reset and enqueue op for lockless
+ qdisc
+ - nfp: use correct define to return NONE fec
+ - tipc: Fix memory leak in tipc_group_create_member()
+ - tipc: fix shutdown() of connection oriented socket
+ - tipc: use skb_unshare() instead in tipc_buf_append()
+ - bnxt_en: return proper error codes in bnxt_show_temp
+ - bnxt_en: Protect bnxt_set_eee() and bnxt_set_pauseparam() with mutex.
+ - net: phy: Avoid NPD upon phy_detach() when driver is unbound
+ - net: add __must_check to skb_put_padto()
+ - ipv4: Update exception handling for multipath routes via same device
+ - kbuild: add OBJSIZE variable for the size tool
+ - mm: memcg: fix memcg reclaim soft lockup
+ - tcp_bbr: refactor bbr_target_cwnd() for general inflight provisioning
+ - tcp_bbr: adapt cwnd based on ack aggregation estimation
+ - serial: 8250: Avoid error message on reprobe
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.149
+ - selinux: allow labeling before policy is loaded
+ - media: mc-device.c: fix memleak in media_device_register_entity
+ - dma-fence: Serialise signal enabling (dma_fence_enable_sw_signaling)
+ - ath10k: fix array out-of-bounds access
+ - ath10k: fix memory leak for tpc_stats_final
+ - mm: fix double page fault on arm64 if PTE_AF is cleared
+ - scsi: aacraid: fix illegal IO beyond last LBA
+ - [x86] gma/gma500: fix a memory disclosure bug due to uninitialized bytes
+ - [armel,armhf] ASoC: kirkwood: fix IRQ error handling
+ - [amd64] arch/x86/lib/usercopy_64.c: fix __copy_user_flushcache() cache
+ writeback
+ - [x86] ioapic: Unbreak check_timer()
+ - ALSA: usb-audio: Add delay quirk for H570e USB headsets
+ - ALSA: hda/realtek - Couldn't detect Mic if booting with headset plugged
+ - ALSA: hda/realtek: Enable front panel headset LED on Lenovo ThinkStation
+ P520
+ - lib/string.c: implement stpcpy
+ - [armhf] PM / devfreq: tegra30: Fix integer overflow on CPU's freq max
+ out
+ - [x86] scsi: fnic: fix use after free
+ - scsi: lpfc: Fix kernel crash at lpfc_nvme_info_show during remote port
+ bounce
+ - net: silence data-races on sk_backlog.tail
+ - [armhf] clk/ti/adpll: allocate room for terminating null
+ - mtd: cfi_cmdset_0002: don't free cfi->cfiq in error path of
+ cfi_amdstd_setup()
+ - mfd: mfd-core: Protect against NULL call-back function pointer
+ - [x86] tpm_crb: fix fTPM on AMD Zen+ CPUs
+ - tracing: Adding NULL checks for trace_array descriptor pointer
+ - bcache: fix a lost wake-up problem caused by mca_cannibalize_lock
+ - RDMA/qedr: Fix potential use after free
+ - RDMA/i40iw: Fix potential use after free
+ - fix dget_parent() fastpath race
+ - xfs: fix attr leaf header freemap.size underflow
+ - RDMA/iw_cgxb4: Fix an error handling path in 'c4iw_connect()'
+ - ubi: Fix producing anchor PEBs
+ - mmc: core: Fix size overflow for mmc partitions
+ - gfs2: clean up iopen glock mess in gfs2_create_inode
+ - scsi: pm80xx: Cleanup command when a reset times out
+ - CIFS: Properly process SMB3 lease breaks
+ - ASoC: max98090: remove msleep in PLL unlocked workaround
+ - kernel/sys.c: avoid copying possible padding bytes in copy_to_user
+ - [arm64,armhf] KVM: vgic: Fix potential double free dist->spis in
+ __kvm_vgic_destroy()
+ - xfs: fix log reservation overflows when allocating large rt extents
+ - neigh_stat_seq_next() should increase position index
+ - rt_cpu_seq_next should increase position index
+ - ipv6_route_seq_next should increase position index
+ - seqlock: Require WRITE_ONCE surrounding raw_seqcount_barrier
+ - sctp: move trace_sctp_probe_path into sctp_outq_sack
+ - [arm64,x86] ACPI: EC: Reference count query handlers under lock
+ - scsi: ufs: Make ufshcd_add_command_trace() easier to read
+ - scsi: ufs: Fix a race condition in the tracing code
+ - [s390x] /cpum_sf: Use kzalloc and minor changes
+ - [powerpc*] eeh: Only dump stack once if an MMIO loop is detected
+ - Bluetooth: btrtl: Use kvmalloc for FW allocations
+ - [armel,armhf] ARM: 8948/1: Prevent OOB access in stacktrace
+ - ar5523: Add USB ID of SMCWUSBT-G2 wireless adapter
+ - ceph: ensure we have a new cap before continuing in fill_inode
+ - Bluetooth: Fix refcount use-after-free issue
+ - mm/swapfile.c: swap_next should increase position index
+ - mm: pagewalk: fix termination condition in walk_pte_range()
+ - Bluetooth: prefetch channel before killing sock
+ - KVM: fix overflow of zero page refcount with ksm running
+ - ALSA: hda: Clear RIRB status before reading WP
+ - skbuff: fix a data race in skb_queue_len()
+ - audit: CONFIG_CHANGE don't log internal bookkeeping as an event
+ - selinux: sel_avc_get_stat_idx should increase position index
+ - scsi: lpfc: Fix RQ buffer leakage when no IOCBs available
+ - scsi: lpfc: Fix coverity errors in fmdi attribute handling
+ - [armhf] drm/omap: fix possible object reference leak
+ - crypto: chelsio - This fixes the kernel panic which occurs during a
+ libkcapi test
+ - mt76: clear skb pointers from rx aggregation reorder buffer during
+ cleanup
+ - ALSA: usb-audio: Don't create a mixer element with bogus volume range
+ - [s390x] perf test: Fix test trace+probe_vfs_getname.sh on s390
+ - RDMA/rxe: Fix configuration of atomic queue pair attributes
+ - [x86] KVM: x86: fix incorrect comparison in trace event
+ - [x86] pkeys: Add check for pkey "overflow"
+ - bpf: Remove recursion prevention from rcu free callback
+ - [arm64,armhf] dmaengine: tegra-apb: Prevent race conditions on channel's
+ freeing
+ - random: fix data races at timer_rand_state
+ - [arm64] bus: hisi_lpc: Fixup IO ports addresses to avoid use-after-free
+ in host removal
+ - media: go7007: Fix URB type for interrupt handling
+ - Bluetooth: guard against controllers sending zero'd events
+ - timekeeping: Prevent 32bit truncation in scale64_check_overflow()
+ - ext4: fix a data race at inode->i_disksize
+ - mm: avoid data corruption on CoW fault into PFN-mapped VMA
+ - drm/amdgpu: increase atombios cmd timeout
+ - ath10k: use kzalloc to read for ath10k_sdio_hif_diag_read
+ - scsi: aacraid: Disabling TM path and only processing IOP reset
+ - Bluetooth: L2CAP: handle l2cap config request during open state
+ - media: tda10071: fix unsigned sign extension overflow
+ - xfs: don't ever return a stale pointer from __xfs_dir3_free_read
+ - xfs: mark dir corrupt when lookup-by-hash fails
+ - ext4: mark block bitmap corrupted when found instead of BUGON
+ - nfsd: Don't add locks to closed or closing open stateids
+ - RDMA/cm: Remove a race freeing timewait_info
+ - [powerpc*] KVM: PPC: Book3S HV: Treat TM-related invalid form
+ instructions on P9 like the valid ones
+ - [arm64] drm/msm: fix leaks if initialization fails
+ - [arm64] drm/msm/a5xx: Always set an OPP supported hardware value
+ - serial: 8250_port: Don't service RX FIFO if throttled
+ - [powerpc*] cpufreq: powernv: Fix frame-size-overflow in
+ powernv_cpufreq_work_fn
+ - nvme-multipath: do not reset on unknown status
+ - nvme: Fix controller creation races with teardown flow
+ - RDMA/rxe: Set sys_image_guid to be aligned with HW IB devices
+ - scsi: hpsa: correct race condition in offload enabled
+ - SUNRPC: Fix a potential buffer overflow in 'svc_print_xprts()'
+ - svcrdma: Fix leak of transport addresses
+ - PCI: Use ioremap(), not phys_to_virt() for platform ROM
+ - ubifs: Fix out-of-bounds memory access caused by abnormal value of
+ node_len
+ - ALSA: usb-audio: Fix case when USB MIDI interface has more than one
+ extra endpoint descriptor
+ - PCI: pciehp: Fix MSI interrupt race
+ - NFS: Fix races nfs_page_group_destroy() vs
+ nfs_destroy_unlinked_subrequests()
+ - mm/kmemleak.c: use address-of operator on section symbols
+ - mm/filemap.c: clear page error before actual read
+ - mm/vmscan.c: fix data races using kswapd_classzone_idx
+ - nvmet-rdma: fix double free of rdma queue
+ - mm/mmap.c: initialize align_offset explicitly for vm_unmapped_area
+ - scsi: qedi: Fix termination timeouts in session logout
+ - [arm64] serial: uartps: Wait for tx_empty in console setup
+ - [x86] KVM: Remove CREATE_IRQCHIP/SET_PIT2 race
+ - bdev: Reduce time holding bd_mutex in sync in blkdev_close()
+ - [x86] drivers: char: tlclk.c: Avoid data race between init and interrupt
+ handler
+ - [arm64] KVM: vgic-its: Fix memory leak on the error path of
+ vgic_add_lpi()
+ - net: openvswitch: use u64 for meter bucket
+ - scsi: aacraid: Fix error handling paths in aac_probe_one()
+ - staging:r8188eu: avoid skb_clone for amsdu to msdu conversion
+ - [arm64] cpufeature: Relax checks for AArch32 support at EL[0-2]
+ - dt-bindings: sound: wm8994: Correct required supplies based on actual
+ implementaion
+ - atm: fix a memory leak of vcc->user_back
+ - Bluetooth: Handle Inquiry Cancel error after Inquiry Complete
+ - tipc: fix memory leak in service subscripting
+ - [armhf] tty: serial: samsung: Correct clock selection logic
+ - ALSA: hda: Fix potential race in unsol event handler
+ - [powerpc*] traps: Make unrecoverable NMIs die instead of panic
+ - fuse: don't check refcount after stealing page
+ - [powerpc*] scsi: cxlflash: Fix error return code in cxlflash_probe()
+ - [arm64] cpufeature: Drop TraceFilt feature exposure from ID_DFR0
+ register
+ - e1000: Do not perform reset in reset_task if we are already down
+ - drm/nouveau/debugfs: fix runtime pm imbalance on error
+ - drm/nouveau: fix runtime pm imbalance on error
+ - drm/nouveau/dispnv50: fix runtime pm imbalance on error
+ - printk: handle blank console arguments passed in.
+ - [arm64,armhf] usb: dwc3: Increase timeout for CmdAct cleared by device
+ controller
+ - btrfs: don't force read-only after error in drop snapshot
+ - vfio/pci: fix memory leaks of eventfd ctx
+ - perf trace: Fix the selection for architectures to generate the errno
+ name tables
+ - [arm64,armhf] wlcore: fix runtime pm imbalance in wl1271_tx_work
+ - [arm64,armhf] wlcore: fix runtime pm imbalance in
+ wlcore_regdomain_config
+ - [arm64,armhf] PCI: tegra: Fix runtime PM imbalance on error
+ - ceph: fix potential race in ceph_check_caps
+ - mm/swap_state: fix a data race in swapin_nr_pages
+ - [armel] mtd: parser: cmdline: Support MTD names containing one or more
+ colons
+ - [x86] speculation/mds: Mark mds_user_clear_cpu_buffers() __always_inline
+ - vfio/pci: Clear error and request eventfd ctx after releasing
+ - cifs: Fix double add page to memcg when cifs_readpages
+ - nvme: fix possible deadlock when I/O is blocked
+ - scsi: libfc: Handling of extra kref
+ - scsi: libfc: Skip additional kref updating work event
+ - vfio/pci: fix racy on error and request eventfd ctx
+ - btrfs: qgroup: fix data leak caused by race between writeback and
+ truncate
+ - net: openvswitch: use div_u64() for 64-by-32 divisions
+ - nvme: explicitly update mpath disk capacity on revalidation
+ - [x86] ASoC: Intel: bytcr_rt5640: Add quirk for MPMAN Converter9 2-in-1
+ - [s390x] init: add missing __init annotations
+ - lockdep: fix order in trace_hardirqs_off_caller()
+ - [amd64] drm/amdkfd: fix a memory leak issue
+ - i2c: core: Call i2c_acpi_install_space_handler() before
+ i2c_acpi_register_devices()
+ - mwifiex: Increase AES key storage size to 256 bits
+ - batman-adv: bla: fix type misuse for backbone_gw hash indexing
+ - atm: eni: fix the missed pci_disable_device() for eni_init_one()
+ - batman-adv: mcast/TT: fix wrongly dropped or rerouted packets
+ - mac802154: tx: fix use-after-free
+ - bpf: Fix clobbering of r2 in bpf_gen_ld_abs
+ - [arm*] drm/vc4/vc4_hdmi: fill ASoC card owner
+ - net: qed: RDMA personality shouldn't fail VF load
+ - batman-adv: Add missing include for in_interrupt()
+ - batman-adv: mcast: fix duplicate mcast packets in BLA backbone from mesh
+ - batman-adv: mcast: fix duplicate mcast packets from BLA backbone to mesh
+ - bpf: Fix a rcu warning for bpffs map pretty-print
+ - [x86] ALSA: asihpi: fix iounmap in error handler
+ - regmap: fix page selection for noinc reads
+ - [x86] KVM: Reset MMU context if guest toggles CR4.SMAP or CR4.PKE
+ - [x86] KVM: SVM: Add a dedicated INVD intercept routine
+ - tracing: fix double free
+ - [s390x] dasd: Fix zero write for FBA devices
+ - kprobes: Fix to check probe enabled before disarm_kprobe_ftrace()
+ - mm, THP, swap: fix allocating cluster for swapfile by mistake
+ - [s390x] zcrypt: Fix ZCRYPT_PERDEV_REQCNT ioctl
+ - ata: define AC_ERR_OK
+ - ata: make qc_prep return ata_completion_errors
+ - ata: sata_mv, avoid trigerrable BUG_ON
+ - [arm64] KVM: Assume write fault on S1PTW permission fault on instruction
+ fetch
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.150
+ - mmc: sdhci: Workaround broken command queuing on Intel GLK based IRBIS
+ models
+ - USB: gadget: f_ncm: Fix NDP16 datagram validation
+ - vsock/virtio: use RCU to avoid use-after-free on the_virtio_vsock
+ - vsock/virtio: stop workers during the .remove()
+ - vsock/virtio: add transport parameter to the
+ virtio_transport_reset_no_sock()
+ - net: virtio_vsock: Enhance connection semantics
+ - Input: i8042 - add nopnp quirk for Acer Aspire 5 A515
+ - ftrace: Move RCU is watching check after recursion check
+ - drm/amdgpu: restore proper ref count in amdgpu_display_crtc_set_config
+ - drivers/net/wan/hdlc_fr: Add needed_headroom for PVC devices
+ - [armhf] drm/sun4i: mixer: Extend regmap max_register
+ - net: dec: de2104x: Increase receive ring size for Tulip
+ - rndis_host: increase sleep time in the query-response loop
+ - nvme-core: get/put ctrl and transport module in nvme_dev_open/release()
+ - [x86,ppc64el] drivers/net/wan/hdlc: Set skb->protocol before
+ transmitting
+ - mac80211: do not allow bigger VHT MPDUs than the hardware supports
+ - nvme-fc: fail new connections to a deleted host or remote port
+ - [armhf] pinctrl: mvebu: Fix i2c sda definition for 98DX3236
+ - nfs: Fix security label length not being reset
+ - [armhf] clk: samsung: exynos4: mark 'chipid' clock as CLK_IGNORE_UNUSED
+ - Input: trackpoint - enable Synaptics trackpoints
+ - random32: Restore __latent_entropy attribute on net_rand_state
+ - mm: replace memmap_context by meminit_context
+ - mm: don't rely on system state to detect hot-plug operations
+ - epoll: do not insert into poll queues until all sanity checks are done
+ - epoll: replace ->visited/visited_list with generation count
+ - epoll: EPOLL_CTL_ADD: close the race in decision to take fast path
+ - ep_create_wakeup_source(): dentry name can change under you...
+ - netfilter: ctnetlink: add a range check for l3/l4 protonum
+ (CVE-2020-25211)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.151
+ - fbdev, newport_con: Move FONT_EXTRA_WORDS macros into linux/font.h
+ - Fonts: Support FONT_EXTRA_WORDS macros for built-in fonts
+ - fbcon: Fix global-out-of-bounds read in fbcon_get_font()
+ - net: wireless: nl80211: fix out-of-bounds access in nl80211_del_key()
+ - drm/nouveau/mem: guard against NULL pointer access in mem_del
+ - usermodehelper: reset umask to default before executing user process
+ - [x86] platform/x86: intel-vbtn: Fix SW_TABLET_MODE always reporting 1 on
+ the HP Pavilion 11 x360
+ - [x86] platform/x86: thinkpad_acpi: initialize tp_nvram_state variable
+ - [x86] platform/x86: intel-vbtn: Switch to an allow-list for
+ SW_TABLET_MODE reporting
+ - [x86] platform/x86: thinkpad_acpi: re-initialize ACPI buffer size when
+ reuse
+ - driver core: Fix probe_count imbalance in really_probe()
+ - [x86] i2c: i801: Exclude device from suspend direct complete
+ optimization
+ - [armhf] mtd: rawnand: sunxi: Fix the probe error path
+ - nvme-core: put ctrl ref when module ref get fail
+ - macsec: avoid use-after-free in macsec_handle_frame()
+ - mm/khugepaged: fix filemap page_to_pgoff(page) != offset
+ - xfrmi: drop ignore_df check before updating pmtu
+ - cifs: Fix incomplete memory allocation on setxattr path
+ - [arm64,armhf] i2c: meson: fix clock setting overwrite
+ - [arm64,armhf] i2c: meson: fixup rate calculation with filter delay
+ - sctp: fix sctp_auth_init_hmacs() error path
+ - team: set dev->needed_headroom in team_setup_by_port()
+ - net: team: fix memory leak in __team_options_register
+ - openvswitch: handle DNAT tuple collision
+ - drm/amdgpu: prevent double kfree ttm->sg
+ - xfrm: clone XFRMA_SET_MARK in xfrm_do_migrate
+ - xfrm: clone XFRMA_REPLAY_ESN_VAL in xfrm_do_migrate
+ - xfrm: clone XFRMA_SEC_CTX in xfrm_do_migrate
+ - xfrm: clone whole liftime_cur structure in xfrm_do_migrate
+ - [arm64,armhf] net: stmmac: removed enabling eee in EEE set callback
+ - xfrm: Use correct address family in xfrm_state_find
+ - bonding: set dev->needed_headroom in bond_setup_by_slave()
+ - net: usb: ax88179_178a: fix missing stop entry in driver_info
+ - net/mlx5e: Fix VLAN cleanup flow
+ - net/mlx5e: Fix VLAN create flow
+ - rxrpc: Fix rxkad token xdr encoding
+ - rxrpc: Downgrade the BUG() for unsupported token type in rxrpc_read()
+ - rxrpc: Fix some missing _bh annotations on locking conn->state_lock
+ - rxrpc: Fix server keyring leak
+ - perf: Fix task_function_call() error handling
+ - mmc: core: don't set limits.discard_granularity as 0
+ - mm: khugepaged: recalculate min_free_kbytes after memory hotplug as
+ expected by khugepaged
+ - net: usb: rtl8150: set random MAC address when set_ethernet_addr() fails
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.152
+ - Bluetooth: A2MP: Fix not initializing all members (CVE-2020-12352)
+ - Bluetooth: L2CAP: Fix calling sk_filter on non-socket based channel
+ (CVE-2020-12351)
+ - Bluetooth: MGMT: Fix not checking if BT_HS is enabled
+ - Bluetooth: Consolidate encryption handling in hci_encrypt_cfm
+ - Bluetooth: Fix update of connection state in `hci_encrypt_cfm`
+ - Bluetooth: Disconnect if E0 is used for Level 4
+ - media: usbtv: Fix refcounting mixup
+ - USB: serial: option: add Cellient MPL200 card
+ - USB: serial: option: Add Telit FT980-KS composition
+ - [x86] staging: comedi: check validity of wMaxPacketSize of usb endpoints
+ found
+ - USB: serial: pl2303: add device-id for HP GC device
+ - USB: serial: ftdi_sio: add support for FreeCalypso JTAG+UART adapters
+ - reiserfs: Initialize inode keys properly
+ - reiserfs: Fix oops during mount
+ - [arm*] drivers/net/ethernet/marvell/mvmdio.c: Fix non OF case
+ (Closes: #908712)
+ - [x86] crypto: qat - check cipher length for aead AES-CBC-HMAC-SHA
+
+ [ Salvatore Bonaccorso ]
+ * [rt] Update to 4.19.148-rt64
+ * Bump ABI to 12
+ * Revert "perf cs-etm: Move definition of 'traceid_list' global variable
+ from header file"
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Sun, 18 Oct 2020 10:43:18 +0200
+
+linux (4.19.146-1) buster; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.133
+ - [s390x] KVM: s390: reduce number of IO pins to 1
+ - regmap: fix alignment issue
+ - [arm64,armhf] drm/tegra: hub: Do not enable orphaned window group
+ - [arm64,armhf] gpu: host1x: Detach driver on unregister
+ - spi: spidev: fix a race between spidev_release and spidev_remove
+ - spi: spidev: fix a potential use-after-free in spidev_release()
+ - ixgbe: protect ring accesses with READ- and WRITE_ONCE
+ - i40e: protect ring accesses with READ- and WRITE_ONCE
+ - [x86] drm: panel-orientation-quirks: Add quirk for Asus T101HA panel
+ - [x86] drm: panel-orientation-quirks: Use generic orientation-data for
+ Acer S1003
+ - cifs: update ctime and mtime during truncate
+ - [armhf] imx6: add missing put_device() call in imx6q_suspend_init()
+ - scsi: mptscsih: Fix read sense data size
+ - [arm64] usb: dwc3: pci: Fix reference count leak in dwc3_pci_resume_work
+ - block: release bip in a right way in error path
+ - nvme-rdma: assign completion vector correctly
+ - [x86] entry: Increase entry_stack size to a full page
+ - net: cxgb4: fix return error value in t4_prep_fw
+ - smsc95xx: check return value of smsc95xx_reset
+ - smsc95xx: avoid memory leak in smsc95xx_bind
+ - [arm64] net: hns3: fix use-after-free when doing self test
+ - [x86] ALSA: compress: fix partial_drain completion state
+ - nbd: Fix memory leak in nbd_add_socket
+ - cxgb4: fix all-mask IP address comparison
+ - bnxt_en: fix NULL dereference in case SR-IOV configuration fails
+ - [arm64] net: macb: mark device wake capable when "magic-packet" property
+ present
+ - ALSA: opl3: fix infoleak in opl3
+ - ALSA: hda - let hs_mic be picked ahead of hp_mic
+ - ALSA: usb-audio: add quirk for MacroSilicon MS2109
+ - [arm64] KVM: Fix definition of PAGE_HYP_DEVICE
+ - [arm64] KVM: Stop clobbering x0 for HVC_SOFT_RESTART
+ - [x86] KVM: bit 8 of non-leaf PDPEs is not reserved
+ - [x86] KVM: Inject #GP if guest attempts to toggle CR4.LA57 in 64-bit
+ mode
+ - [x86] KVM: Mark CR4.TSD as being possibly owned by the guest
+ - kallsyms: Refactor kallsyms_show_value() to take cred
+ - kernel: module: Use struct_size() helper
+ - module: Refactor section attr into bin attribute
+ - module: Do not expose section addresses to non-CAP_SYSLOG
+ - kprobes: Do not expose probe addresses to non-CAP_SYSLOG
+ - bpf: Check correct cred for CAP_SYSLOG in bpf_dump_raw_ok()
+ - btrfs: fix fatal extent_buffer readahead vs releasepage race
+ - drm/radeon: fix double free
+ - dm: use noio when sending kobject event
+ - [s390x] mm: fix huge pte soft dirty copying
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.134
+ - perf: Make perf able to build with latest libbfd
+ - genetlink: remove genl_bind
+ - ipv4: fill fl4_icmp_{type,code} in ping_v4_sendmsg
+ - l2tp: remove skb_dst_set() from l2tp_xmit_skb()
+ - llc: make sure applications use ARPHRD_ETHER
+ - net: Added pointer check for dst->ops->neigh_lookup in
+ dst_neigh_lookup_skb
+ - net_sched: fix a memory leak in atm_tc_init()
+ - net: usb: qmi_wwan: add support for Quectel EG95 LTE modem
+ - tcp: fix SO_RCVLOWAT possible hangs under high mem pressure
+ - tcp: make sure listeners don't initialize congestion-control state
+ - tcp: md5: add missing memory barriers in
+ tcp_md5_do_add()/tcp_md5_hash_key()
+ - tcp: md5: do not send silly options in SYNCOOKIES
+ - tcp: md5: refine tcp_md5_do_add()/tcp_md5_hash_key() barriers
+ - tcp: md5: allow changing MD5 keys in all socket states
+ - cgroup: fix cgroup_sk_alloc() for sk_clone_lock() (CVE-2020-14356)
+ (Closes: #966846)
+ - cgroup: Fix sock_cgroup_data on big-endian.
+ - sched: consistently handle layer3 header accesses in the presence of
+ VLANs
+ - vlan: consolidate VLAN parsing code and limit max parsing depth
+ - [arm64] drm/msm: fix potential memleak in error branch
+ - [arm64] alternatives: use subsections for replacement sequences
+ - [arm64,x86] tpm_tis: extra chip->ops check on error path in
+ tpm_tis_core_init
+ - gfs2: read-only mounts should grab the sd_freeze_gl glock
+ - [i386] i2c: eg20t: Load module automatically if ID matches
+ - [arm64] alternatives: don't patch up internal branches
+ - [armhf] iio: mma8452: Add missed iio_device_unregister() call in
+ mma8452_probe()
+ - [armhf] net: dsa: bcm_sf2: Fix node reference count
+ - of: of_mdio: Correct loop scanning logic
+ - Revert "usb/ohci-platform: Fix a warning when hibernating"
+ - [arm64,armhf] Revert "usb/xhci-plat: Set PM runtime as active on resume"
+ - Revert "usb/ehci-platform: Set PM runtime as active on resume"
+ - [arm64,armhf] net: sfp: add support for module quirks
+ - [arm64,armhf] net: sfp: add some quirks for GPON modules
+ - HID: quirks: Remove ITE 8595 entry from hid_have_special_driver
+ - ALSA: usb-audio: Create a registration quirk for Kingston HyperX Amp
+ (0951:16d8)
+ - mmc: sdhci: do not enable card detect interrupt for gpio cd type
+ - ALSA: usb-audio: Rewrite registration quirk handling
+ - [x86] ACPI: video: Use native backlight on Acer Aspire 5783z
+ - ALSA: usb-audio: Add registration quirk for Kingston HyperX Cloud Alpha
+ S
+ - [x86] ACPI: video: Use native backlight on Acer TravelMate 5735Z
+ - ALSA: usb-audio: Add registration quirk for Kingston HyperX Cloud Flight
+ S
+ - [arm64,armhf] phy: sun4i-usb: fix dereference of pointer phy0 before it
+ is null checked
+ - [armhf] spi: spi-sun6i: sun6i_spi_transfer_one(): fix setting of clock
+ rate
+ - [x86] staging: comedi: verify array index is correct before using it
+ - regmap: debugfs: Don't sleep while atomic for fast_io regmaps
+ - [x86] copy_xstate_to_kernel: Fix typo which caused GDB regression
+ - apparmor: ensure that dfa state tables have entries
+ - perf stat: Zero all the 'ena' and 'run' array slot stats for interval
+ mode
+ - [armhf] mtd: rawnand: marvell: Use nand_cleanup() when the device is not
+ yet registered
+ - [armhf] mtd: rawnand: marvell: Fix probe error path
+ - mtd: rawnand: timings: Fix default tR_max and tCCS_min timings
+ - HID: magicmouse: do not set up autorepeat
+ - HID: quirks: Always poll Obins Anne Pro 2 keyboard
+ - HID: quirks: Ignore Simply Automated UPB PIM
+ - ALSA: line6: Perform sanity check for each URB creation
+ - ALSA: line6: Sync the pending work cancel at disconnection
+ - ALSA: usb-audio: Fix race against the error recovery URB submission
+ - [x86] ALSA: hda/realtek - change to suitable link model for ASUS platform
+ - [x86] ALSA: hda/realtek - Enable Speaker for ASUS UX533 and UX534
+ - [arm*] usb: dwc2: Fix shutdown callback in platform
+ - [arm64,armhf] usb: chipidea: core: add wakeup support for extcon
+ - USB: serial: iuu_phoenix: fix memory corruption
+ - USB: serial: cypress_m8: enable Simply Automated UPB PIM
+ - USB: serial: ch341: add new Product ID for CH340
+ - USB: serial: option: add GosunCn GM500 series
+ - USB: serial: option: add Quectel EG95 LTE modem
+ - [x86] virt: vbox: Fix VBGL_IOCTL_VMMDEV_REQUEST_BIG and _LOG req numbers
+ to match upstream
+ - [x86] virt: vbox: Fix guest capabilities mask check
+ - [arm64] virtio: virtio_console: add missing MODULE_DEVICE_TABLE() for
+ rproc serial
+ - ovl: inode reference leak in ovl_is_inuse true case.
+ - ovl: relax WARN_ON() when decoding lower directory file handle
+ - ovl: fix unneeded call to ovl_change_flags()
+ - fuse: Fix parameter for FS_IOC_{GET,SET}FLAGS
+ - Revert "zram: convert remaining CLASS_ATTR() to CLASS_ATTR_RO()"
+ (CVE-2020-10781)
+ - [x86] mei: bus: don't clean driver pointer
+ - timer: Prevent base->clk from moving backward
+ - timer: Fix wheel index calculation on last level
+ - [mips*] Fix build for LTS kernel caused by backporting lpj adjustment
+ - hwmon: (emc2103) fix unable to change fan pwm1_enable attribute
+ - [powerpc*] book3s64/pkeys: Fix pkey_access_permitted() for execute
+ disable pkey
+ - [x86] intel_th: pci: Add Jasper Lake CPU support
+ - [x86] intel_th: pci: Add Tiger Lake PCH-H support
+ - [x86] intel_th: pci: Add Emmitsburg PCH support
+ - [x86] intel_th: Fix a NULL dereference when hub driver is not loaded
+ - [arm*] thermal/drivers/cpufreq_cooling: Fix wrong frequency converted
+ from power
+ - [arm64] ptrace: Override SPSR.SS when single-stepping is enabled
+ - [arm64] ptrace: Consistently use pseudo-singlestep exceptions
+ - [arm64] compat: Ensure upper 32 bits of x0 are zero on syscall return
+ - sched: Fix unreliable rseq cpu_id for new tasks
+ - sched/fair: handle case of task_h_load() returning 0
+ - genirq/affinity: Handle affinity setting on inactive interrupts
+ correctly
+ - printk: queue wake_up_klogd irq_work only if per-CPU areas are ready
+ - libceph: don't omit recovery_deletes in target_copy()
+ - rxrpc: Fix trace string
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.135
+ - mac80211: allow rx of mesh eapol frames with default rx key
+ - scsi: scsi_transport_spi: Fix function pointer check
+ - net: sky2: initialize return of gm_phy_read
+ - drm/nouveau/i2c/g94-: increase NV_PMGR_DP_AUXCTL_TRANSACTREQ timeout
+ - fuse: fix weird page warning
+ - [x86] irqdomain/treewide: Keep firmware node unconditionally allocated
+ - SUNRPC reverting d03727b248d0 ("NFSv4 fix CLOSE not waiting for direct
+ IO compeletion")
+ - tipc: clean up skb list lock handling on send path
+ - IB/umem: fix reference count leak in ib_umem_odp_get()
+ - uprobes: Change handle_swbp() to send SIGTRAP with si_code=SI_KERNEL, to
+ fix GDB regression
+ - ALSA: info: Drop WARN_ON() from buffer NULL sanity check
+ - btrfs: fix double free on ulist after backref resolution failure
+ - btrfs: fix mount failure caused by race with umount
+ - btrfs: fix page leaks after failure to lock page for delalloc
+ - bnxt_en: Fix race when modifying pause settings.
+ - [x86] hippi: Fix a size used in a 'pci_free_consistent()' in an error
+ handling path
+ - ax88172a: fix ax88172a_unbind() failures
+ - ieee802154: fix one possible memleak in adf7242_probe
+ - [arm64,armhf] drm: sun4i: hdmi: Fix inverted HPD result
+ - [arm64,armhf] net: smc91x: Fix possible memory leak in smc_drv_probe()
+ - bonding: check error value of register_netdevice() immediately
+ - qed: suppress "don't support RoCE & iWARP" flooding on HW init
+ - ipvs: fix the connection sync failed in some cases
+ - bonding: check return value of register_netdevice() in bond_newlink()
+ - serial: exar: Fix GPIO configuration for Sealevel cards based on
+ XR17V35X
+ - [arm64,x86] HID: i2c-hid: add Mediacom FlexBook edge13 to descriptor
+ override
+ - HID: alps: support devices with report id 2
+ - HID: steam: fixes race in handling device list.
+ - HID: apple: Disable Fn-key key-re-mapping on clone keyboards
+ - [arm64] dmaengine: tegra210-adma: Fix runtime PM imbalance on error
+ - Input: add `SW_MACHINE_COVER`
+ - regmap: dev_get_regmap_match(): fix string comparison
+ - hwmon: (aspeed-pwm-tacho) Avoid possible buffer overflow
+ - [amd64] dmaengine: ioat setting ioat timeout as module parameter
+ - [x86] Input: synaptics - enable InterTouch for ThinkPad X1E 1st gen
+ - [arm64] Use test_tsk_thread_flag() for checking TIF_SINGLESTEP
+ - [arm*] binder: Don't use mmput() from shrinker function.
+ - usb: xhci: Fix ASM2142/ASM3142 DMA addressing
+ - Revert "cifs: Fix the target file was deleted when rename failed."
+ (Closes: #966917)
+ - [x86] staging: wlan-ng: properly check endpoint types
+ - [x86] staging: comedi: addi_apci_1032: check INSN_CONFIG_DIGITAL_TRIG
+ shift
+ - [x86] staging: comedi: ni_6527: fix INSN_CONFIG_DIGITAL_TRIG support
+ - [x86] staging: comedi: addi_apci_1500: check INSN_CONFIG_DIGITAL_TRIG
+ shift
+ - [x86] staging: comedi: addi_apci_1564: check INSN_CONFIG_DIGITAL_TRIG
+ shift
+ - serial: 8250: fix null-ptr-deref in serial8250_start_tx()
+ - fbdev: Detect integer underflow at "struct fbcon_ops"->clear_margins.
+ - vt: Reject zero-sized screen buffer size.
+ - mm/memcg: fix refcount error while moving and swapping
+ - mm: memcg/slab: synchronize access to kmem_cache dying flag using a
+ spinlock
+ - mm: memcg/slab: fix memory leak at non-root kmem_cache destroy
+ - io-mapping: indicate mapping failure
+ - drm/amdgpu: Fix NULL dereference in dpm sysfs handlers
+ - [x86] vmlinux.lds: Page-align end of ..page_aligned sections
+ - [x86] ASoC: rt5670: Add new gpio1_is_ext_spk_en quirk and enable it on
+ the Lenovo Miix 2 10
+ - dm integrity: fix integrity recalculation that is improperly skipped
+ - ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb
+ - ath9k: Fix regression with Atheros 9271
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.136
+ - AX.25: Fix out-of-bounds read in ax25_connect()
+ - AX.25: Prevent out-of-bounds read in ax25_sendmsg()
+ - dev: Defer free of skbs in flush_backlog
+ - ip6_gre: fix null-ptr-deref in ip6gre_init_net()
+ - net-sysfs: add a newline when printing 'tx_timeout' by sysfs
+ - net: udp: Fix wrong clean up for IS_UDPLITE macro
+ - rxrpc: Fix sendmsg() returning EPIPE due to recvmsg() returning ENODATA
+ - tcp: allow at most one TLP probe per flight
+ - AX.25: Prevent integer overflows in connect and sendmsg
+ - sctp: shrink stream outq only when new outcnt < old outcnt
+ - sctp: shrink stream outq when fails to do addstream reconf
+ - udp: Copy has_conns in reuseport_grow().
+ - udp: Improve load balancing for SO_REUSEPORT.
+ - rtnetlink: Fix memory(net_device) leak when ->newlink fails
+ - regmap: debugfs: check count when read regmap file
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.137
+ - [x86] crypto: ccp - Release all allocated memory if sha type is invalid
+ (CVE-2019-18808)
+ - media: rc: prevent memory leak in cx23888_ir_probe (CVE-2019-19054)
+ - iio: imu: adis16400: fix memory leak (CVE-2019-19061)
+ - [x86] drm/amdgpu: fix multiple memory leaks in acp_hw_init
+ (CVE-2019-19067)
+ - tracing: Have error path in predicate_parse() free its allocated memory
+ (CVE-2019-19072)
+ - ath9k_htc: release allocated buffer if timed out (CVE-2019-19073)
+ - ath9k: release allocated buffer if timed out (CVE-2019-19074)
+ - drm/amd/display: prevent memory leak (CVE-2019-19082)
+ - btrfs: inode: Verify inode mode to avoid NULL pointer dereference
+ (CVE-2019-19813, CVE-2019-19816)
+ - sctp: implement memory accounting on tx path (CVE-2019-3874)
+ - Btrfs: fix selftests failure due to uninitialized i_mode in test inodes
+ - PCI/ASPM: Disable ASPM on ASMedia ASM1083/1085 PCIe-to-PCI bridge
+ - 9p/trans_fd: Fix concurrency del of req_list in
+ p9_fd_cancelled/p9_read_work
+ - wireless: Use offsetof instead of custom macro.
+ - [armel,armhf] 8986/1: hw_breakpoint: Don't invoke overflow handler on
+ uaccess watchpoints
+ - Revert "drm/amdgpu: Fix NULL dereference in dpm sysfs handlers"
+ - drm/amdgpu: Prevent kernel-infoleak in amdgpu_info_ioctl()
+ - drm: hold gem reference until object is no longer accessed
+ - rds: Prevent kernel-infoleak in rds_notify_queue_get()
+ - xfs: fix missed wakeup on l_flush_wait
+ - xfrm: Fix crash when the hold queue is used.
+ - net/mlx5: Verify Hardware supports requested ptp function on a given pin
+ - net: lan78xx: add missing endpoint sanity check
+ - net: lan78xx: fix transfer-buffer memory leak
+ - mlx4: disable device on shutdown
+ - bpf: Fix map leak in HASH_OF_MAPS map
+ - mac80211: mesh: Free ie data when leaving mesh
+ - mac80211: mesh: Free pending skb when destroying a mpath
+ - [arm64] alternatives: move length validation inside the subsection
+ - [arm64] csum: Fix handling of bad packets
+ - Bluetooth: fix kernel oops in store_pending_adv_report
+ - net/mlx5e: fix bpf_prog reference count leaks in mlx5e_alloc_rq
+ - qed: Disable "MFW indication via attention" SPAM every 5 minutes
+ - [amd64] x86/unwind/orc: Fix ORC for newly forked tasks
+ - cxgb4: add missing release on skb in uld_send()
+ - xen-netfront: fix potential deadlock in xennet_remove()
+ - [x86] KVM: LAPIC: Prevent setting the tscdeadline timer if the lapic is
+ hw disabled
+ - [x86] i8259: Use printk_deferred() to prevent deadlock
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.138
+ - random32: update the net random state on interrupt and activity
+ (CVE-2020-16166)
+ - [armel] ARM: percpu.h: fix build error
+ - random: fix circular include dependency on arm64 after addition of
+ percpu.h
+ - random32: remove net_rand_state from the latent entropy gcc plugin
+ - random32: move the pseudo-random 32-bit definitions to prandom.h
+ - ext4: fix direct I/O read error
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.139
+ - USB: serial: qcserial: add EM7305 QDL product ID
+ - USB: iowarrior: fix up report size handling for some devices
+ - usb: xhci: define IDs for various ASMedia host controllers
+ - usb: xhci: Fix ASMedia ASM1142 DMA addressing
+ - Revert "ALSA: hda: call runtime_allow() for all hda controllers"
+ - [arm*] staging: android: ashmem: Fix lockdep warning for write operation
+ - Bluetooth: Fix slab-out-of-bounds read in
+ hci_extended_inquiry_result_evt()
+ - Bluetooth: Prevent out-of-bounds read in hci_inquiry_result_evt()
+ - Bluetooth: Prevent out-of-bounds read in
+ hci_inquiry_result_with_rssi_evt()
+ - [arm*] binder: Prevent context manager from incrementing ref 0
+ - vgacon: Fix for missing check in scrollback handling (CVE-2020-14331)
+ - mtd: properly check all write ioctls for permissions
+ - net/9p: validate fds in p9_fd_open
+ - drm/nouveau/fbcon: fix module unload when fbcon init has failed for some
+ reason
+ - drm/nouveau/fbcon: zero-initialise the mode_cmd2 structure
+ - usb: hso: check for return value in hso_serial_common_create()
+ - firmware: Fix a reference count leak.
+ - cfg80211: check vendor command doit pointer before use
+ - igb: reinit_locked() should be called with rtnl_lock
+ - atm: fix atm_dev refcnt leaks in atmtcp_remove_persistent
+ - tools lib traceevent: Fix memory leak in process_dynamic_array_len
+ - [x86] Drivers: hv: vmbus: Ignore CHANNELMSG_TL_CONNECT_RESULT(23)
+ - xattr: break delegations in {set,remove}xattr
+ - ipv4: Silence suspicious RCU usage warning
+ - ipv6: fix memory leaks on IPV6_ADDRFORM path
+ - vxlan: Ensure FDB dump is performed under RCU
+ - net: lan78xx: replace bogus endpoint lookup
+ - [x86] hv_netvsc: do not use VF device if link is down
+ - net: gre: recompute gre csum for sctp over gre tunnels
+ - [arm64] net: thunderx: use spin_lock_bh in nicvf_set_rx_mode_task()
+ - openvswitch: Prevent kernel-infoleak in ovs_ct_put_key()
+ - Revert "vxlan: fix tos value before xmit"
+ - rxrpc: Fix race between recvmsg and sendmsg on immediate call failure
+ - i40e: add num_vectors checker in iwarp handler
+ - i40e: Wrong truncation from u16 to u8
+ - i40e: Fix of memory leak and integer truncation in i40e_virtchnl.c
+ - i40e: Memory leak in i40e_config_iwarp_qvlist
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.140
+ - tracepoint: Mark __tracepoint_string's __used
+ - HID: input: Fix devices that return multiple bytes in battery report
+ - cgroup: add missing skcd->no_refcnt check in cgroup_sk_clone()
+ - [x86] mce/inject: Fix a wrong assignment of i_mce.status
+ - sched/fair: Fix NOHZ next idle balance
+ - sched: correct SD_flags returned by tl->sd_flags()
+ - EDAC: Fix reference count leaks
+ - [x86] platform/x86: intel-hid: Fix return value check in
+ check_acpi_dev()
+ - [x86] platform/x86: intel-vbtn: Fix return value check in
+ check_acpi_dev()
+ - [armhf] drm/tilcdc: fix leak & null ref in panel_connector_get_modes
+ - Bluetooth: add a mutex lock to avoid UAF in do_enale_set
+ - loop: be paranoid on exit and prevent new additions / removals
+ - fs/btrfs: Add cond_resched() for try_release_extent_mapping() stalls
+ - drm/amdgpu: avoid dereferencing a NULL pointer
+ - drm/radeon: Fix reference count leaks caused by pm_runtime_get_sync
+ - [x86] crypto: aesni - Fix build with LLVM_IAS=1
+ - video: fbdev: neofb: fix memory leak in neo_scan_monitor()
+ - md-cluster: fix wild pointer of unlock_all_bitmaps()
+ - [arm64] dts: hisilicon: hikey: fixes to comply with adi, adv7533 DT
+ binding
+ - [armhf] drm/etnaviv: fix ref count leak via pm_runtime_get_sync
+ - drm/nouveau: fix multiple instances of reference count leaks
+ - drm/debugfs: fix plain echo to connector "force" attribute
+ - drm/radeon: disable AGP by default
+ - mm/mmap.c: Add cond_resched() for exit_mmap() CPU stalls
+ - brcmfmac: keep SDIO watchdog running when console_interval is non-zero
+ - brcmfmac: To fix Bss Info flag definition Bug
+ - brcmfmac: set state of hanger slot to FREE when flushing PSQ
+ - iwlegacy: Check the return value of pcie_capability_read_*()
+ - [arm64,armhf] gpu: host1x: debug: Fix multiple channels emitting
+ messages simultaneously
+ - usb: gadget: net2280: fix memory leak on probe error handling paths
+ - dyndbg: fix a BUG_ON in ddebug_describe_flags
+ - bcache: fix super block seq numbers comparision in register_cache_set()
+ - [arm64,x86] ACPICA: Do not increment operation_region reference counts
+ for field units
+ - [arm64] drm/msm: ratelimit crtc event overflow error
+ - [x86] agp/intel: Fix a memory leak on module initialisation failure
+ - ath10k: Acquire tx_lock in tx error paths
+ - [armhf] drm/etnaviv: Fix error path on failure to enable bus clk
+ - [arm64] drm/arm: fix unintentional integer overflow on left shift
+ - drm/mipi: use dcs write for mipi_dsi_dcs_set_tear_scanline
+ - [powerpc*] cxl: Fix kobject memleak
+ - drm/radeon: fix array out-of-bounds read and write issues
+ - ipvs: allow connection reuse for unconfirmed conntrack
+ - xfs: don't eat an EIO/ENOSPC writeback error when scrubbing data fork
+ - xfs: fix reflink quota reservation accounting error
+ - RDMA/rxe: Skip dgid check in loopback mode
+ - PCI: Fix pci_cfg_wait queue locking problem
+ - leds: core: Flush scheduled work for system suspend
+ - [arm64,armhf] drm: panel: simple: Fix bpc for LG LB070WV8 panel
+ - [armhf] phy: exynos5-usbdrd: Calibrating makes sense only for USB2.0 PHY
+ - scsi: scsi_debug: Add check for sdebug_max_queue during module init
+ - mwifiex: Prevent memory corruption handling keys
+ - [powerpc*] vdso: Fix vdso cpu truncation
+ - RDMA/qedr: SRQ's bug fixes
+ - RDMA/rxe: Prevent access to wr->next ptr afrer wr is posted to send
+ queue
+ - [x86] staging: rtl8192u: fix a dubious looking mask before a shift
+ - PCI/ASPM: Add missing newline in sysfs 'policy'
+ - [powerpc*] book3s64/pkeys: Use PVR check instead of cpu feature
+ - USB: serial: iuu_phoenix: fix led-activity helpers
+ - usb: core: fix quirks_param_set() writing to a const pointer
+ - [armhf] thermal: ti-soc-thermal: Fix reversed condition in
+ ti_thermal_expose_sensor()
+ - [mips*] OCTEON: add missing put_device() call in
+ dwc3_octeon_device_init()
+ - [arm*] usb: dwc2: Fix error path in gadget registration
+ - [arm64,armhf] net: dsa: mv88e6xxx: MV88E6097 does not support jumbo
+ configuration
+ - RDMA/core: Fix return error value in _ib_modify_qp() to negative
+ - Bluetooth: hci_h5: Set HCI_UART_RESET_ON_INIT to correct flags
+ - Bluetooth: hci_serdev: Only unregister device if it was registered
+ - [x86] PCI: Release IVRS table in AMD ACS quirk
+ - [s390x] qeth: don't process empty bridge port events
+ - [arm64,armhf] wl1251: fix always return 0 error
+ - [amd64] net: ethernet: aquantia: Fix wrong return value
+ - liquidio: Fix wrong return value in cn23xx_get_pf_num()
+ - dlm: Fix kobject memleak
+ - ocfs2: fix unbalanced locking
+ - [arm64,armhf] pinctrl-single: fix pcs_parse_pinconf() return value
+ - svcrdma: Fix page leak in svc_rdma_recv_read_chunk()
+ - [x86] fsgsbase/64: Fix NULL deref in 86_fsgsbase_read_task
+ - [amd64] crypto: aesni - add compatibility with IAS
+ - af_packet: TPACKET_V3: fix fill status rwlock imbalance
+ - net/nfc/rawsock.c: add CAP_NET_RAW check.
+ - net: Set fput_needed iff FDPUT_FPUT is set
+ - net: refactor bind_bucket fastreuse into helper
+ - net: initialize fastreuse on inet_inherit_port
+ - USB: serial: cp210x: re-enable auto-RTS on open
+ - USB: serial: cp210x: enable usb generic throttle/unthrottle
+ - [x86] ALSA: hda - fix the micmute led status for Lenovo ThinkCentre AIO
+ - ALSA: usb-audio: Creative USB X-Fi Pro SB1095 volume knob support
+ - ALSA: usb-audio: fix overeager device match for MacroSilicon MS2109
+ - ALSA: usb-audio: work around streaming quirk for MacroSilicon MS2109
+ - [x86] crypto: qat - fix double free in qat_uclo_create_batch_init_list
+ - [x86] crypto: ccp - Fix use of merged scatterlists
+ - [arm64] crypto: cpt - don't sleep of CRYPTO_TFM_REQ_MAY_SLEEP was not
+ specified
+ - bitfield.h: don't compile-time validate _val in FIELD_FIT
+ - fs/minix: check return value of sb_getblk()
+ - fs/minix: don't allow getting deleted inodes
+ - fs/minix: reject too-large maximum file size
+ - ALSA: usb-audio: add quirk for Pioneer DDJ-RB
+ - 9p: Fix memory leak in v9fs_mount
+ - drm/ttm/nouveau: don't call tt destroy callback on alloc failure.
+ - NFS: Don't move layouts to plh_return_segs list while in use
+ - NFS: Don't return layout segments that are in use
+ - [arm64] cpufreq: dt: fix oops on armada37xx
+ - include/asm-generic/vmlinux.lds.h: align ro_after_init
+ - spi: spidev: Align buffers for DMA
+ - [x86] irqdomain/treewide: Free firmware node after domain removal
+ - xen/balloon: fix accounting in alloc_xenballooned_pages error path
+ - xen/balloon: make the balloon wait interruptible
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.141
+ - smb3: warn on confusing error scenario with sec=krb5
+ - genirq/affinity: Make affinity setting if activated opt-in
+ - [arm64,x86] PCI: hotplug: ACPI: Fix context refcounting in
+ acpiphp_grab_context()
+ - PCI: Mark AMD Navi10 GPU rev 0x00 ATS as broken
+ - PCI: Add device even if driver attach failed
+ - [arm64] PCI: qcom: Define some PARF params needed for ipq8064 SoC
+ - [arm64] PCI: qcom: Add support for tx term offset for rev 2.1.0
+ - PCI: Probe bridge window attributes once at enumeration-time
+ - btrfs: free anon block device right after subvolume deletion
+ - btrfs: don't allocate anonymous block device for user invisible roots
+ - btrfs: ref-verify: fix memory leak in add_block_entry
+ - btrfs: don't traverse into the seed devices in show_devname
+ - btrfs: open device without device_list_mutex
+ - btrfs: fix messages after changing compression level by remount
+ - btrfs: only search for left_info if there is no right_info in
+ try_merge_free_space (CVE-2019-19448)
+ - btrfs: fix memory leaks after failure to lookup checksums during inode
+ logging
+ - btrfs: fix return value mixup in btrfs_get_extent
+ - cifs: Fix leak when handling lease break for cached root fid
+ - [powerpc*] Allow 4224 bytes of stack expansion for the signal frame
+ - [powerpc*] Fix circular dependency between percpu.h and mmu.h
+ - [arm64] net: ethernet: stmmac: Disable hardware multicast filter
+ - [arm64,armhf] net: stmmac: dwmac1000: provide multicast filter fallback
+ - net/compat: Add missing sock updates for SCM_RIGHTS
+ - md/raid5: Fix Force reconstruct-write io stuck in degraded raid5
+ - bcache: allocate meta data pages as compound pages
+ - bcache: fix overflow in offset_to_stripe()
+ - mac80211: fix misplaced while instead of if
+ - driver core: Avoid binding drivers to dead devices
+ - [mips*] CPU#0 is not hotpluggable
+ - ocfs2: change slot number type s16 to u16
+ - mm/page_counter.c: fix protection usage propagation
+ - ftrace: Setup correct FTRACE_FL_REGS flags for module
+ - kprobes: Fix NULL pointer dereference at kprobe_ftrace_handler
+ - tracing/hwlat: Honor the tracing_cpumask
+ - tracing: Use trace_sched_process_free() instead of exit() for pid
+ tracing
+ - [x86] watchdog: f71808e_wdt: indicate WDIOF_CARDRESET support in
+ watchdog_info.options
+ - [x86] watchdog: f71808e_wdt: remove use of wrong watchdog_info option
+ - [x86] watchdog: f71808e_wdt: clear watchdog timeout occurred flag
+ - [powerpc*] pseries: Fix 64 bit logical memory block panic
+ - module: Correctly truncate sysfs sections output
+ - [armhf] drm/imx: imx-ldb: Disable both channels for split mode in
+ enc->disable()
+ - RDMA/ipoib: Return void from ipoib_ib_dev_stop()
+ - RDMA/ipoib: Fix ABBA deadlock with ipoib_reap_ah()
+ - USB: serial: ftdi_sio: make process-packet buffer unsigned
+ - USB: serial: ftdi_sio: clean up receive processing
+ - [armhf] gpu: ipu-v3: image-convert: Combine rotate/no-rotate irq
+ handlers
+ - dm rq: don't call blk_mq_queue_stopped() in dm_stop_queue()
+ - [amd64] iommu/vt-d: Enforce PASID devTLB field mask
+ - scsi: lpfc: nvmet: Avoid hang / use-after-free again when destroying
+ targetport
+ - watchdog: initialize device before misc_register
+ - Input: sentelic - fix error return when fsp_reg_write fails
+ - [x86] drm/vmwgfx: Use correct vmw_legacy_display_unit pointer
+ - [x86] drm/vmwgfx: Fix two list_for_each loop exit tests
+ - [arm64] net: qcom/emac: add missed clk_disable_unprepare in error path
+ of emac_clks_phase1_init
+ - nfs: Fix getxattr kernel panic and memory overflow (CVE-2020-25212)
+ - fs/minix: set s_maxbytes correctly
+ - fs/minix: fix block limit check for V1 filesystems
+ - fs/minix: remove expected error message in block_to_path()
+ - fs/ufs: avoid potential u32 multiplication overflow
+ - khugepaged: retract_page_tables() remember to test exit
+ - [arm64] dts: marvell: espressobin: add ethernet alias
+ - [x86] drm: Added orientation quirk for ASUS tablet model T103HAF
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.142
+ - drm/vgem: Replace opencoded version of drm_gem_dumb_map_offset()
+ - perf probe: Fix memory leakage when the probe point is not found
+ - khugepaged: khugepaged_test_exit() check mmget_still_valid()
+ - khugepaged: adjust VM_BUG_ON_MM() in __khugepaged_enter()
+ - btrfs: export helpers for subvolume name/id resolution
+ - btrfs: don't show full path of bind mounts in subvol=
+ - btrfs: Move free_pages_out label in inline extent handling branch in
+ compress_file_range
+ - btrfs: inode: fix NULL pointer dereference if inode doesn't need
+ compression
+ - btrfs: sysfs: use NOFS for device creation
+ - romfs: fix uninitialized memory leak in romfs_dev_read()
+ - kernel/relay.c: fix memleak on destroy relay channel
+ - mm: include CMA pages in lowmem_reserve at boot
+ - mm, page_alloc: fix core hung in free_pcppages_bulk()
+ - ext4: fix checking of directory entry validity for inline directories
+ - jbd2: add the missing unlock_buffer() in the error path of
+ jbd2_write_superblock()
+ - [s390x] scsi: zfcp: Fix use-after-free in request timeout handlers
+ - kthread: Do not preempt current task if it is going to call schedule()
+ - spi: Prevent adding devices below an unregistering controller
+ - scsi: ufs: Add DELAY_BEFORE_LPM quirk for Micron devices
+ - [arm*] scsi: target: tcmu: Fix crash in tcmu_flush_dcache_range on ARM
+ - media: budget-core: Improve exception handling in budget_register()
+ - Input: psmouse - add a newline when printing 'proto' by sysfs
+ - svcrdma: Fix another Receive buffer leak
+ - xfs: fix inode quota reservation checks
+ - jffs2: fix UAF problem
+ - ceph: fix use-after-free for fsc->mdsc
+ - [x86] cpufreq: intel_pstate: Fix cpuinfo_max_freq when
+ MSR_TURBO_RATIO_LIMIT is 0
+ - scsi: libfc: Free skb in fc_disc_gpn_id_resp() for valid cases
+ - virtio_ring: Avoid loop when vq is broken in virtqueue_poll
+ - xfs: Fix UBSAN null-ptr-deref in xfs_sysfs_init
+ - fs/signalfd.c: fix inconsistent return codes for signalfd4
+ - ext4: fix potential negative array index in do_split() (CVE-2020-14314)
+ - ext4: don't allow overlapping system zones
+ - i40e: Set RX_ONLY mode for unicast promiscuous on VLAN
+ - i40e: Fix crash during removing i40e driver
+ - [armhf] net: fec: correct the error path for regulator disable in probe
+ - bonding: show saner speed for broadcast mode
+ - bonding: fix a potential double-unregister
+ - [s390x] runtime_instrumentation: fix storage key handling
+ - [s390x] ptrace: fix storage key handling
+ - [x86] ASoC: intel: Fix memleak in sst_media_open
+ - [amd64,arm64] vfio/type1: Add proper error unwind for
+ vfio_iommu_replay()
+ - [x86] kvm: Toggling CR4.SMAP does not load PDPTEs in PAE mode
+ - [x86] kvm: Toggling CR4.PKE does not load PDPTEs in PAE mode
+ - efi: avoid error message when booting under Xen
+ - afs: Fix NULL deref in afs_dynroot_depopulate()
+ - bonding: fix active-backup failover for current ARP slave
+ - net: ena: Prevent reset after device destruction
+ - [x86] hv_netvsc: Fix the queue_mapping in netvsc_vf_xmit()
+ - [armhf] net: dsa: b53: check for timeout
+ - [powerpc*] pseries: Do not initiate shutdown when system is running on
+ UPS
+ - efi: add missed destroy_workqueue when efisubsys_init fails
+ - epoll: Keep a reference on files added to the check list
+ - do_epoll_ctl(): clean the failure exits up a bit
+ - mm/hugetlb: fix calculation of adjust_range_if_pmd_sharing_possible
+ - xen: don't reschedule in preemption off sections
+ - clk: Evict unregistered clks from parent caches
+ - KVM: Pass MMU notifier range flags to kvm_unmap_hva_range()
+ - [arm64] KVM: Only reschedule if MMU_NOTIFIER_RANGE_BLOCKABLE is not set
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.143
+ - [powerpc*] 64s: Don't init FSCR_DSCR in __init_FSCR()
+ - gre6: Fix reception with IP6_TNL_F_RCV_DSCP_COPY
+ - net: Fix potential wrong skb->protocol in skb_vlan_untag()
+ - net/smc: Prevent kernel-infoleak in __smc_diag_dump()
+ - tipc: fix uninit skb->data in tipc_nl_compat_dumpit()
+ - net: ena: Make missed_tx stat incremental
+ - ipvlan: fix device features
+ - [x86] mfd: intel-lpss: Add Intel Emmitsburg PCH PCI IDs
+ - [powerpc*] xive: Ignore kmemleak false positives
+ - media: pci: ttpci: av7110: fix possible buffer overflow caused by bad
+ DMA value in debiirq()
+ - blktrace: ensure our debugfs dir exists
+ - scsi: target: tcmu: Fix crash on ARM during cmd completion
+ - [arm*] iommu/iova: Don't BUG on invalid PFNs
+ - [amd64] drm/amdkfd: Fix reference count leaks.
+ - drm/radeon: fix multiple reference count leak
+ - drm/amdgpu: fix ref count leak in amdgpu_driver_open_kms
+ - drm/amd/display: fix ref count leak in amdgpu_drm_ioctl
+ - drm/amdgpu: fix ref count leak in amdgpu_display_crtc_set_config
+ - drm/amdgpu/display: fix ref count leak when pm_runtime_get_sync fails
+ - scsi: lpfc: Fix shost refcount mismatch when deleting vport
+ - xfs: Don't allow logging of XFS_ISTALE inodes
+ - f2fs: fix error path in do_recover_data()
+ - PCI: Fix pci_create_slot() reference count leak
+ - rtlwifi: rtl8192cu: Prevent leaking urb
+ - [mips*] vdso: Fix resource leaks in genvdso.c
+ - cec-api: prevent leaking memory through hole in structure
+ - HID: quirks: add NOGET quirk for Logitech GROUP
+ - f2fs: fix use-after-free issue
+ - drm/nouveau/drm/noveau: fix reference count leak in nouveau_fbcon_open
+ - drm/nouveau: fix reference count leak in nv50_disp_atomic_commit
+ - drm/nouveau: Fix reference count leak in nouveau_connector_detect
+ - btrfs: file: reserve qgroup space after the hole punch range is locked
+ - scsi: iscsi: Do not put host in iscsi_set_flashnode_param()
+ - ceph: fix potential mdsc use-after-free crash
+ - scsi: fcoe: Memory leak fix in fcoe_sysfs_fcf_del()
+ - [x86] EDAC/ie31200: Fallback if host bridge device is already
+ initialized
+ - [arm64] KVM: Fix symbol dependency in __hyp_call_panic_nvhe
+ - USB: sisusbvga: Fix a potential UB casued by left shifting a negative
+ value
+ - [arm64] drm/msm/adreno: fix updating ring fence
+ - nvme-fc: Fix wrong return value in __nvme_fc_init_request()
+ - null_blk: fix passing of REQ_FUA flag in null_handle_rq
+ - jbd2: make sure jh have b_transaction set in refile/unfile_buffer
+ - ext4: don't BUG on inconsistent journal feature
+ - ext4: handle read only external journal device
+ - jbd2: abort journal if free a async write error metadata buffer
+ - ext4: handle option set by mount flags correctly
+ - ext4: handle error of ext4_setup_system_zone() on remount
+ - ext4: correctly restore system zone info when remount fails
+ - fs: prevent BUG_ON in submit_bh_wbc()
+ - [s390x] cio: add cond_resched() in the slow_eval_known_fn() loop
+ - scsi: fcoe: Fix I/O path allocation
+ - scsi: ufs: Fix possible infinite loop in ufshcd_hold
+ - scsi: ufs: Improve interrupt handling for shared interrupts
+ - scsi: ufs: Clean up completed request without interrupt notification
+ - scsi: qla2xxx: Check if FW supports MQ before enabling
+ - scsi: qla2xxx: Fix null pointer access during disconnect from subsystem
+ - Revert "scsi: qla2xxx: Fix crash on qla2x00_mailbox_command"
+ - macvlan: validate setting of multiple remote source MAC addresses
+ - [powerpc*] perf: Fix soft lockups due to missed interrupt accounting
+ - block: loop: set discard granularity and alignment for block device
+ backed loop
+ - [arm64,x86] HID: i2c-hid: Always sleep 60ms after I2C_HID_PWR_ON
+ commands
+ - blk-mq: order adding requests to hctx->dispatch and checking
+ SCHED_RESTART
+ - btrfs: reset compression level for lzo on remount
+ - btrfs: fix space cache memory leak after transaction abort
+ - fbcon: prevent user font height or width change from causing potential
+ out-of-bounds access
+ - vt: defer kfree() of vc_screenbuf in vc_do_resize()
+ - vt_ioctl: change VT_RESIZEX ioctl to check for error return from
+ vc_resize()
+ - [armhf] serial: samsung: Removes the IRQ not found warning
+ - [arm*] serial: pl011: Fix oops on -EPROBE_DEFER
+ - [arm*] serial: pl011: Don't leak amba_ports entry on driver register
+ error
+ - serial: 8250_exar: Fix number of ports for Commtech PCIe cards
+ - serial: 8250: change lock order in serial8250_do_startup()
+ - writeback: Protect inode->i_io_list with inode->i_lock
+ - writeback: Avoid skipping inode writeback
+ - writeback: Fix sync livelock due to b_dirty_time processing
+ - XEN uses irqdesc::irq_data_common::handler_data to store a per interrupt
+ XEN data pointer which contains XEN specific information.
+ - usb: host: xhci: fix ep context print mismatch in debugfs
+ - xhci: Do warm-reset when both CAS and XDEV_RESUME are set
+ - xhci: Always restore EP_SOFT_CLEAR_TOGGLE even if ep reset failed
+ - PM: sleep: core: Fix the handling of pending runtime resume requests
+ - device property: Fix the secondary firmware node handling in
+ set_primary_fwnode()
+ - [x86] genirq/matrix: Deal with the sillyness of for_each_cpu() on UP
+ - drm/amdgpu: Fix buffer overflow in INFO ioctl
+ - USB: yurex: Fix bad gfp argument
+ - USB: quirks: Add no-lpm quirk for another Raydium touchscreen
+ - USB: quirks: Ignore duplicate endpoint on Sound Devices MixPre-D
+ - [armhf] usb: host: ohci-exynos: Fix error handling in
+ exynos_ohci_probe()
+ - USB: gadget: f_ncm: add bounds checks to ncm_unwrap_ntb()
+ - USB: cdc-acm: rework notification_buffer resizing
+ - btrfs: check the right error variable in btrfs_del_dir_entries_in_log
+ - [arm64,armhf] usb: dwc3: gadget: Don't setup more than requested
+ - [arm64,armhf] usb: dwc3: gadget: Fix handling ZLP
+ - [arm64,armhf] usb: dwc3: gadget: Handle ZLP for sg requests
+ - [arm64,x86] tpm: Unify the mismatching TPM space buffer sizes
+ - HID: hiddev: Fix slab-out-of-bounds write in hiddev_ioctl_usage()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.144
+ - HID: core: Correctly handle ReportSize being zero
+ - HID: core: Sanitize event code and type when mapping input
+ - scsi: target: tcmu: Fix size in calls to tcmu_flush_dcache_range
+ - scsi: target: tcmu: Optimize use of flush_dcache_page
+ - [arm64] drm/msm: add shutdown support for display platform_driver
+ - [x86] hwmon: (applesmc) check status earlier.
+ - nvmet: Disable keep-alive timer when kato is cleared to 0h
+ - [arm64] drm/msm/a6xx: fix gmu start on newer firmware
+ - ceph: don't allow setlease on cephfs
+ - cpuidle: Fixup IRQ state
+ - [s390x] don't trace preemption in percpu macros
+ - xen/xenbus: Fix granting of vmalloc'd memory
+ - dmaengine: of-dma: Fix of_dma_router_xlate's of_dma_xlate handling
+ - batman-adv: Avoid uninitialized chaddr when handling DHCP
+ - batman-adv: bla: use netif_rx_ni when not in interrupt context
+ - [mips*] mm: BMIPS5000 has inclusive physical caches
+ - netfilter: nf_tables: add NFTA_SET_USERDATA if not null
+ - netfilter: nf_tables: incorrect enum nft_list_attributes definition
+ - netfilter: nf_tables: fix destination register zeroing
+ - [arm64] net: hns: Fix memleak in hns_nic_dev_probe
+ - [arm64,armhf] dmaengine: pl330: Fix burst length if burst size is
+ smaller than bus width
+ - gtp: add GTPA_LINK info to msg sent to userspace
+ - bnxt_en: Don't query FW when netif_running() is false.
+ - bnxt_en: Check for zero dir entries in NVRAM.
+ - bnxt_en: Fix PCI AER error recovery flow
+ - bnxt_en: fix HWRM error when querying VF temperature
+ - xfs: fix boundary test in xfs_attr_shortform_verify (CVE-2020-14385)
+ - bnxt: don't enable NAPI until rings are ready
+ - netfilter: nfnetlink: nfnetlink_unicast() reports EAGAIN instead of
+ ENOBUFS
+ - nvmet-fc: Fix a missed _irqsave version of spin_lock in
+ 'nvmet_fc_fod_op_done()'
+ - net: ethernet: mlx4: Fix memory allocation in mlx4_buddy_init()
+ - fix regression in "epoll: Keep a reference on files added to the check
+ list"
+ - xfs: fix xfs_bmap_validate_extent_raw when checking attr fork of rt
+ files
+ - tg3: Fix soft lockup when tg3_reset_task() fails.
+ - [amd64] x86, fakenuma: Fix invalid starting node ID
+ - [amd64] iommu/vt-d: Serialize IOMMU GCMD register modifications
+ - [armhf] thermal: ti-soc-thermal: Fix bogus thermal shutdowns for
+ omap4430
+ - xfs: don't update mtime on COW faults
+ - btrfs: drop path before adding new uuid tree entry
+ - vfio/type1: Support faulting PFNMAP vmas
+ - vfio-pci: Fault mmaps to enable vma tracking
+ - vfio-pci: Invalidate mmaps and block MMIO access on disabled memory
+ (CVE-2020-12888)
+ - btrfs: Remove redundant extent_buffer_get in get_old_root
+ - btrfs: Remove extraneous extent_buffer_get from tree_mod_log_rewind
+ - btrfs: set the lockdep class for log tree extent buffers
+ - uaccess: Add non-pagefault user-space read functions
+ - uaccess: Add non-pagefault user-space write function
+ - btrfs: fix potential deadlock in the search ioctl
+ - net: usb: qmi_wwan: add Telit 0x1050 composition
+ - usb: qmi_wwan: add D-Link DWM-222 A2 device ID
+ - ALSA: ca0106: fix error code handling
+ - ALSA: pcm: oss: Remove superfluous WARN_ON() for mulaw sanity check
+ - [x86] ALSA: hda/hdmi: always check pin power status in i915 pin fixup
+ - ALSA: firewire-digi00x: exclude Avid Adrenaline from detection
+ - [x86] ALSA: hda - Fix silent audio output and corrupted input on MSI
+ X570-A PRO
+ - media: rc: do not access device via sysfs after rc_unregister_device()
+ - media: rc: uevent sysfs file races with rc_unregister_device()
+ - affs: fix basic permission bits to actually work
+ - block: allow for_each_bvec to support zero len bvec
+ - libata: implement ATA_HORKAGE_MAX_TRIM_128M and apply to Sandisks
+ - dm writecache: handle DAX to partitions on persistent memory correctly
+ - dm cache metadata: Avoid returning cmd->bm wild pointer on error
+ - dm thin metadata: Avoid returning cmd->bm wild pointer on error
+ - mm: slub: fix conversion of freelist_corrupted()
+ - [arm64] KVM: Add kvm_extable for vaxorcism code
+ - [arm64] KVM: Defer guest entry when an asynchronous exception is pending
+ - [arm64] KVM: Survive synchronous exceptions caused by AT instructions
+ - [arm64] KVM: Set HCR_EL2.PTW to prevent AT taking synchronous exception
+ - vfio/pci: Fix SR-IOV VF handling with MMIO blocking
+ - checkpatch: fix the usage of capture group ( ... )
+ - mm/hugetlb: fix a race between hugetlb sysctl handlers (CVE-2020-25285)
+ - cfg80211: regulatory: reject invalid hints
+ - net: usb: Fix uninit-was-stored issue in asix_read_phy_addr()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.145
+ - ALSA; firewire-tascam: exclude Tascam FE-8 from detection
+ - block: ensure bdi->io_pages is always initialized
+ - net: usb: dm9601: Add USB ID of Keenetic Plus DSL
+ - sctp: not disable bh in the whole sctp_get_port_local()
+ - tipc: fix shutdown() of connectionless socket
+ - net: disable netpoll on fresh napis
+ - [arm64,armhf] net/mlx5e: Don't support phys switch id if not in
+ switchdev mode
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.146
+ - RDMA/rxe: Fix memleak in rxe_mem_init_user
+ - RDMA/rxe: Drop pointless checks in rxe_init_ports
+ - [armhf] drm/sun4i: Fix dsi dcs long write function
+ - scsi: libsas: Set data_dir as DMA_NONE if libata marks qc as NODATA
+ - RDMA/core: Fix reported speed and width
+ - [arm64] mmc: sdhci-msm: Add retries when all tuning phases are found
+ valid
+ - [arm64,x86] dmaengine: acpi: Put the CSRT table after using it
+ - netfilter: conntrack: allow sctp hearbeat after connection re-use
+ - [x86] firestream: Fix memleak in fs_open
+ - [arm64,armhf] ALSA: hda: Fix 2 channel swapping for Tegra
+ - xfs: initialize the shortform attr header padding entry
+ - nvme-fabrics: don't check state NVME_CTRL_NEW for request acceptance
+ - nvme-rdma: serialize controller teardown sequences
+ - HID: quirks: Set INCREMENT_USAGE_ON_DUPLICATE for all Saitek X52 devices
+ - [ppc64el,x86] drivers/net/wan/hdlc_cisco: Add hard_header_len
+ - HID: elan: Fix memleak in elan_input_configured
+ - [x86] cpufreq: intel_pstate: Refuse to turn off with HWP enabled
+ - [x86] cpufreq: intel_pstate: Fix intel_pstate_get_hwp_max() for turbo
+ disabled
+ - ALSA: hda: fix a runtime pm issue in SOF when integrated GPU is disabled
+ - [amd64] iommu/amd: Do not use IOMMUv2 functionality when SME is active
+ - [x86] iio:accel:bmc150-accel: Fix timestamp alignment and prevent data
+ leak.
+ - [x86] iio:magnetometer:ak8975 Fix alignment and data leak issues.
+ - [armhf] iio:accel:mma8452: Fix timestamp alignment and prevent data
+ leak.
+ - [x86] staging: wlan-ng: fix out of bounds read in prism2sta_probe_usb()
+ - btrfs: require only sector size alignment for parent eb bytenr
+ - btrfs: fix lockdep splat in add_missing_dev
+ - btrfs: fix wrong address when faulting in pages in the search ioctl
+ - regulator: push allocation in set_consumer_device_supply() out of lock
+ - scsi: target: iscsi: Fix data digest calculation
+ - scsi: target: iscsi: Fix hang in iscsit_access_np() when getting
+ tpg->np_login_sem
+ - [arm64] drm/msm: Disable preemption on all 5xx targets
+ - rbd: require global CAP_SYS_ADMIN for mapping and unmapping
+ (CVE-2020-25284)
+ - RDMA/rxe: Fix the parent sysfs read when the interface has 15 chars
+ - vgacon: remove software scrollback support
+ - fbcon: remove soft scrollback code (CVE-2020-14390)
+ - fbcon: remove now unusued 'softback_lines' cursor() argument
+ - [x86] KVM: VMX: Don't freeze guest when event delivery causes an
+ APIC-access exit
+ - [x86] video: fbdev: fix OOB read in vga_8planes_imageblit()
+ - [arm64] phy: qcom-qmp: Use correct values for ipq8074 PCIe Gen2 PHY init
+ - usb: core: fix slab-out-of-bounds Read in read_descriptors
+ - USB: serial: ftdi_sio: add IDs for Xsens Mti USB converter
+ - USB: serial: option: support dynamic Quectel USB compositions
+ - USB: serial: option: add support for SIM7070/SIM7080/SIM7090 modules
+ - usb: Fix out of sync data toggle if a configured device is reconfigured
+ - [x86] usb: typec: ucsi: acpi: Check the _DEP dependencies
+
+ [ Salvatore Bonaccorso ]
+ * Bump ABI to 11
+ * Drop 'Revert "mips: Add udelay lpj numbers adjustment"'
+ * [rt] Update to 4.19.135-rt60
+ * [rt] Refresh "net: Use skbufhead with raw lock" for context changes in
+ 4.19.136
+ * [rt] Refresh "timers: Prepare for full preemption" for context changes in
+ 4.19.138
+ * [rt] Refresh "timers: Redo the notification of canceling timers on -RT"
+ for context changes in 4.19.138
+ * [rt] Refresh "watchdog: prevent deferral of watchdogd wakeup on RT" for
+ context changes in 4.19.141
+ * Refresh "net: ena: fix crash during ena_remove()" for context changes in
+ 4.19.142
+ * [rt] Refresh "Split IRQ-off and zone->lock while freeing pages from PCP
+ list #1" for context changes in 4.19.142
+ * ACPI: configfs: Disallow loading ACPI tables when locked down
+ (CVE-2020-15780)
+ * [rt] Update to 4.19.142-rt63
+ * net/packet: fix overflow in tpacket_rcv (CVE-2020-14386)
+ * debian/tests/python: pycodestyle: Increase max-line-length to 100.
+ * gfs2: initialize transaction tr_ailX_lists earlier (Closes: #968567)
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Thu, 17 Sep 2020 23:42:03 +0200
+
+linux (4.19.132-1) buster; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.132
+ - btrfs: fix a block group ref counter leak after failure to remove block
+ group
+ - mm: fix swap cache node allocation mask
+ - [x86] EDAC/amd64: Read back the scrub rate PCI register on F15h
+ - usbnet: smsc95xx: Fix use-after-free after removal
+ - mm/slub.c: fix corrupted freechain in deactivate_slab()
+ - mm/slub: fix stack overruns with SLUB_STATS
+ - [s390x] debug: avoid kernel warning on too large number of pages
+ - nvme-multipath: set bdi capabilities once
+ - nvme-multipath: fix deadlock between ana_work and scan_work
+ - crypto: af_alg - fix use-after-free in af_alg_accept() due to
+ bh_lock_sock()
+ - [arm64] drm/msm/dpu: fix error return code in dpu_encoder_init
+ - cxgb4: use unaligned conversion for fetching timestamp
+ - cxgb4: parse TC-U32 key values and masks natively
+ - cxgb4: use correct type for all-mask IP address comparison
+ - cxgb4: fix SGE queue dump destination buffer context
+ - [x86] hwmon: (acpi_power_meter) Fix potential memory leak in
+ acpi_power_meter_add()
+ - [arm64,armhf] drm: sun4i: hdmi: Remove extra HPD polling
+ - virtio-blk: free vblk-vqs in error path of virtblk_probe()
+ - SMB3: Honor 'posix' flag for multiuser mounts
+ - nvme: fix a crash in nvme_mpath_add_disk
+ - i2c: algo-pca: Add 0x78 as SCL stuck low status for PCA9665
+ - Revert "ALSA: usb-audio: Improve frames size computation"
+ - SMB3: Honor 'seal' flag for multiuser mounts
+ - SMB3: Honor persistent/resilient handle flags for multiuser mounts
+ - SMB3: Honor lease disabling for multiuser mounts
+ - cifs: Fix the target file was deleted when rename failed.
+ - [mips*] Add missing EHB in mtc0 -> mfc0 sequence for DSPen
+ - [arm64,armhf] irqchip/gic: Atomically update affinity
+ - dm zoned: assign max_io_len correctly
+ - efi: Make it possible to disable efivar_ssdt entirely
+
+ [ Salvatore Bonaccorso ]
+ * [rt] Update to 4.19.132-rt59
+ * Revert "ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb"
+ (Closes: #964153, #964480)
+ * efi: Restrict efivar_ssdt_load when the kernel is locked down
+ (CVE-2019-20908)
+ * certs: Rotate to use the Debian Secure Boot Signer 2020 certificate
+ * e1000e: Add support for Comet Lake (Closes: #965365)
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Fri, 24 Jul 2020 20:46:18 +0200
+
+linux (4.19.131-2) buster; urgency=medium
+
+ [ Aurelien Jarno ]
+ * Revert "mips: Add udelay lpj numbers adjustment", since it causes the
+ build to fail with CONFIG_CPU_FREQ=y.
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Sat, 11 Jul 2020 15:44:13 +0200
+
+linux (4.19.131-1) buster; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.119
+ - ext4: fix extent_status fragmentation for plain files
+ - [arm64] drm/msm: Use the correct dma_sync calls harder
+ - vti4: removed duplicate log message.
+ - [arm64] Add part number for Neoverse N1
+ - [arm64] errata: Hide CTR_EL0.DIC on systems affected by Neoverse-N1
+ #1542419
+ - [arm64] Fake the IminLine size on systems affected by Neoverse-N1
+ #1542419
+ - [arm64] compat: Workaround Neoverse-N1 #1542419 for compat user-space
+ - watchdog: reset last_hw_keepalive time at start
+ - scsi: lpfc: Fix kasan slab-out-of-bounds error in lpfc_unreg_login
+ - scsi: lpfc: Fix crash in target side cable pulls hitting WAIT_FOR_UNREG
+ - ceph: return ceph_mdsc_do_request() errors from __get_parent()
+ - ceph: don't skip updating wanted caps when cap is stale
+ - scsi: iscsi: Report unbind session event when the target has been
+ removed
+ - [x86] ASoC: Intel: atom: Take the drv->lock mutex before calling
+ sst_send_slot_map()
+ - nvme: fix deadlock caused by ANA update wrong locking
+ - ipc/util.c: sysvipc_find_ipc() should increase position index
+ - [s390x] cio: avoid duplicated 'ADD' uevents
+ - loop: Better discard support for block devices
+ - [powerpc*] Revert "powerpc/64: irq_work avoid interrupt when called with
+ hardware irqs enabled"
+ - [arm*] pwm: bcm2835: Dynamically allocate base
+ - perf/core: Disable page faults when getting phys address
+ - [x86] ASoC: Intel: bytcr_rt5640: Add quirk for MPMAN MPWIN895CL tablet
+ - xhci: Ensure link state is U3 after setting USB_SS_PORT_LS_U3
+ - virtio-blk: improve virtqueue error to BLK_STS
+ - scsi: smartpqi: fix call trace in device discovery
+ - PCI/ASPM: Allow re-enabling Clock PM
+ - [x86] KVM: VMX: Zero out *all* general purpose registers after VM-Exit
+ - cxgb4: fix adapter crash due to wrong MC size
+ - cxgb4: fix large delays in PTP synchronization
+ - ipv6: fix restrict IPV6_ADDRFORM operation
+ - macsec: avoid to set wrong mtu
+ - macvlan: fix null dereference in macvlan_device_event()
+ - net: netrom: Fix potential nr_neigh refcnt leak in nr_add_node
+ - [arm64,armhf] net: stmmac: dwmac-meson8b: Add missing boundary to RGMII
+ TX clock array
+ - sched: etf: do not assume all sockets are full blown
+ - tcp: cache line align MAX_TCP_HEADER
+ - team: fix hang in team_mode_get()
+ - vrf: Fix IPv6 with qdisc and xfrm
+ - [armhf] net: dsa: b53: Lookup VID in ARL searches when VLAN is enabled
+ - [armhf] net: dsa: b53: Fix ARL register definitions
+ - [armhf] net: dsa: b53: Rework ARL bin logic
+ - [armhf] net: dsa: b53: b53_arl_rw_op() needs to select IVL or SVL
+ - xfrm: Always set XFRM_TRANSFORMED in xfrm{4,6}_output_finish
+ - vrf: Check skb for XFRM_TRANSFORMED flag
+ - KEYS: Avoid false positive ENOMEM error on key read
+ - ALSA: hda: Remove ASUS ROG Zenith from the blacklist
+ - ALSA: usb-audio: Add static mapping table for ALC1220-VB-based mobos
+ - ALSA: usb-audio: Add connector notifier delegation
+ - [armhf] iio: st_sensors: rely on odr mask to know if odr can be set
+ - USB: sisusbvga: Change port variable from signed to unsigned
+ - USB: Add USB_QUIRK_DELAY_CTRL_MSG and USB_QUIRK_DELAY_INIT for Corsair
+ K70 RGB RAPIDFIRE
+ - USB: early: Handle AMD's spec-compliant identifiers, too
+ - USB: hub: Fix handling of connect changes during sleep
+ - vmalloc: fix remap_vmalloc_range() bounds checks
+ - mm/hugetlb: fix a addressing exception caused by huge_pte_offset
+ - mm/ksm: fix NULL pointer dereference when KSM zero page is enabled
+ - ALSA: hda/realtek - Fix unexpected init_amp override
+ - ALSA: hda/realtek - Add new codec supported for ALC245
+ - ALSA: usb-audio: Fix usb audio refcnt leak when getting spdif
+ - ALSA: usb-audio: Filter out unsupported sample rates on Focusrite
+ devices
+ - tpm/tpm_tis: Free IRQ if probing fails
+ - [s390x] KVM: Return last valid slot if approx index is out-of-bounds
+ - KVM: Check validity of resolved slot when searching memslots
+ - [x86] KVM: VMX: Enable machine check support for 32bit targets
+ - tty: hvc: fix buffer overflow during hvc_alloc().
+ - [x86] tty: rocket, avoid OOB access
+ - usb-storage: Add unusual_devs entry for JMicron JMS566
+ - audit: check the length of userspace generated audit records
+ - ASoC: dapm: fixup dapm kcontrol widget
+ - iwlwifi: pcie: actually release queue memory in TVQM
+ - iwlwifi: mvm: beacon statistics shouldn't go backwards
+ - [armel,armhf] ARM: imx: provide v7_cpu_resume() only on
+ ARM_CPU_SUSPEND=y
+ - [powerpc*] setup_64: Set cache-line-size based on cache-block-size
+ - [i386] staging: comedi: dt2815: fix writing hi byte of analog output
+ - [x86] staging: comedi: Fix comedi_device refcnt leak in comedi_open
+ - vt: don't hardcode the mem allocation upper bound
+ - vt: don't use kmalloc() for the unicode screen buffer
+ - [x86] staging: vt6656: Don't set RCR_MULTICAST or RCR_BROADCAST by
+ default.
+ - [x86] staging: vt6656: Fix calling conditions of vnt_set_bss_mode
+ - [x86] staging: vt6656: Fix drivers TBTT timing counter.
+ - [x86] staging: vt6656: Fix pairwise key entry save.
+ - [x86] staging: vt6656: Power save stop wake_up_count wrap around.
+ - cdc-acm: close race betrween suspend() and acm_softint
+ - cdc-acm: introduce a cool down
+ - UAS: no use logging any details in case of ENODEV
+ - UAS: fix deadlock in error handling and PM flushing work
+ - [arm64,armhf] usb: dwc3: gadget: Fix request completion check
+ - usb: f_fs: Clear OS Extended descriptor counts to zero in
+ ffs_data_reset()
+ - xhci: prevent bus suspend if a roothub port detected a over-current
+ condition
+ - xfs: Fix deadlock between AGI and AGF with RENAME_WHITEOUT
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.120
+ - mtd: cfi: fix deadloop in cfi_cmdset_0002.c do_write_buffer
+ - [arm*] binder: take read mode of mmap_sem in binder_alloc_free_page()
+ - [arm64,armhf] usb: dwc3: gadget: Do link recovery for SS and SSP
+ - nfsd: memory corruption in nfsd4_lock()
+ - rxrpc: Fix DATA Tx to disable nofrag for UDP on AF_INET6 socket
+ - net/cxgb4: Check the return from t4_query_params properly
+ - xfs: acquire superblock freeze protection on eofblocks scans
+ - svcrdma: Fix trace point use-after-free race
+ - svcrdma: Fix leak of svc_rdma_recv_ctxt objects
+ - PCI: Avoid ASMedia XHCI USB PME# from D0 defect
+ - [s390x] net/mlx5: Fix failing fw tracer allocation on s390
+ - perf/core: fix parent pid/tid in task exit events
+ - [i386] bpf, x86_32: Fix incorrect encoding in BPF_LDX zero-extension
+ - mm: shmem: disable interrupt when acquiring info->lock in
+ userfaultfd_copy path
+ - xfs: clear PF_MEMALLOC before exiting xfsaild thread
+ - [x86] bpf, x86: Fix encoding for lower 8-bit registers in BPF_STX BPF_B
+ - [armhf] net: fec: set GPR bit on suspend by DT configuration.
+ - [x86] hyperv: report value of misc_features
+ - xfs: fix partially uninitialized structure in xfs_reflink_remap_extent
+ - ALSA: hda: Keep the controller initialization even if no codecs found
+ - ALSA: hda: Explicitly permit using autosuspend if runtime PM is
+ supported
+ - scsi: target: fix PR IN / READ FULL STATUS for FC
+ - scsi: target: tcmu: reset_ring should reset TCMU_DEV_BIT_BROKEN
+ - xen/xenbus: ensure xenbus_map_ring_valloc() returns proper grant status
+ - ALSA: hda: call runtime_allow() for all hda controllers
+ - [arm64] Delete the space separator in __emit_inst
+ - ext4: use matching invalidatepage in ext4_writepage
+ - ext4: increase wait time needed before reuse of deleted inode numbers
+ - ext4: convert BUG_ON's to WARN_ON's in mballoc.c
+ - hwmon: (jc42) Fix name to have no illegal characters
+ - [i386] bpf, x86_32: Fix clobbering of dst for BPF_JSET
+ - qed: Fix use after free in qed_chain_free
+ - ext4: check for non-zero journal inum in ext4_calculate_overhead
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.121
+ - drm/edid: Fix off-by-one in DispID DTD pixel clock
+ - drm/qxl: qxl_release leak in qxl_draw_dirty_fb()
+ - drm/qxl: qxl_release leak in qxl_hw_surface_alloc()
+ - drm/qxl: qxl_release use after free
+ - btrfs: fix block group leak when removing fails
+ - ALSA: hda/realtek - Two front mics on a Lenovo ThinkCenter
+ - ALSA: usb-audio: Correct a typo of NuPrime DAC-10 USB ID
+ - ALSA: hda/hdmi: fix without unlocked before return
+ - ALSA: pcm: oss: Place the plugin buffer overflow checks correctly
+ (Closes: #960493)
+ - PM: ACPI: Output correct message on target power state
+ - PM: hibernate: Freeze kernel threads in software_resume()
+ - dm writecache: fix data corruption when reloading the target
+ - dm multipath: use updated MPATHF_QUEUE_IO on mapping for bio-based mpath
+ - scsi: qla2xxx: set UNLOADING before waiting for session deletion
+ - scsi: qla2xxx: check UNLOADING before posting async work
+ - RDMA/mlx5: Set GRH fields in query QP on RoCE
+ - RDMA/mlx4: Initialize ib_spec on the stack
+ - RDMA/core: Prevent mixed use of FDs between shared ufiles
+ - RDMA/core: Fix race between destroy and release FD object
+ - [amd64,arm64] vfio: avoid possible overflow in
+ vfio_iommu_type1_pin_pages
+ - [amd64,arm64] vfio/type1: Fix VA->PA translation for PFNMAP VMAs in
+ vaddr_get_pfn()
+ - [arm64] iommu/qcom: Fix local_base status check
+ - scsi: target/iblock: fix WRITE SAME zeroing
+ - [amd64] iommu/amd: Fix legacy interrupt remapping for x2APIC-enabled
+ system
+ - nfs: Fix potential posix_acl refcnt leak in nfs3_set_acl
+ - btrfs: fix partial loss of prealloc extent past i_size after fsync
+ - btrfs: transaction: Avoid deadlock due to bad initialization timing of
+ fs_info::journal_info
+ - mmc: cqhci: Avoid false "cqhci: CQE stuck on" by not open-coding timeout
+ loop
+ - [arm64] mmc: sdhci-xenon: fix annoying 1.8V regulator warning
+ - mmc: sdhci-pci: Fix eMMC driver strength for BYT-based controllers
+ - [arm64] mmc: sdhci-msm: Enable host capabilities pertains to R1b
+ response
+ - [armhf] mmc: meson-mx-sdio: Set MMC_CAP_WAIT_WHILE_BUSY
+ - [armhf] mmc: meson-mx-sdio: remove the broken ->card_busy() op
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.122
+ - vhost: vsock: kick send_pkt worker once device is started
+ - [powerpc*] pci/of: Parse unassigned resources
+ - [x86] ASoC: topology: Check return value of pcm_new_ver
+ - [armhf] ASoC: sgtl5000: Fix VAG power-on handling
+ - [arm64,armhf] usb: dwc3: gadget: Properly set maxpacket limit
+ - [x86] ASoC: codecs: hdac_hdmi: Fix incorrect use of list_for_each_entry
+ - wimax/i2400m: Fix potential urb refcnt leak
+ - [armhf] net: stmmac: fix enabling socfpga's ptp_ref_clock
+ - [armhf] net: stmmac: Fix sub-second increment
+ - cifs: protect updating server->dstaddr with a spinlock
+ - [s390x] ftrace: fix potential crashes when switching tracers
+ - sctp: Fix SHUTDOWN CTSN Ack in the peer restart case
+ - drm/amdgpu: Fix oops when pp_funcs is unset in ACPI event
+ - lib: devres: add a helper function for ioremap_uc
+ - [x86] mfd: intel-lpss: Use devm_ioremap_uc for MMIO
+ - ALSA: hda: Match both PCI ID and SSID for driver blacklist
+ - [x86] platform: GPD pocket fan: Fix error message when temp-limits are
+ out of range
+ - mac80211: add ieee80211_is_any_nullfunc()
+ - cgroup, netclassid: remove double cond_resched
+ - drm/atomic: Take the atomic toys away from X
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.123
+ - USB: serial: qcserial: Add DW5816e support
+ - tracing/kprobes: Fix a double initialization typo
+ - vt: fix unicode console freeing with a common interface
+ - fq_codel: fix TCA_FQ_CODEL_DROP_BATCH_SIZE sanity checks
+ - net: macsec: preserve ingress frame ordering
+ - net/mlx4_core: Fix use of ENOSPC around mlx4_counter_alloc()
+ - net_sched: sch_skbprio: add message validation to skbprio_change()
+ - net: usb: qmi_wwan: add support for DW5816e
+ - sch_choke: avoid potential panic in choke_reset()
+ - sch_sfq: validate silly quantum values
+ - tipc: fix partial topology connection closure
+ - bnxt_en: Fix VLAN acceleration handling in bnxt_fix_features().
+ - net/mlx5: Fix forced completion access non initialized command entry
+ - net/mlx5: Fix command entry leak in Internal Error State
+ - bnxt_en: Improve AER slot reset.
+ - bnxt_en: Fix VF anti-spoof filter setup.
+ - net: stricter validation of untrusted gso packets
+ - HID: wacom: Read HID_DG_CONTACTMAX directly for non-generic devices
+ - sctp: Fix bundling of SHUTDOWN with COOKIE-ACK
+ - HID: usbhid: Fix race between usbhid_close() and usbhid_stop()
+ - USB: uas: add quirk for LaCie 2Big Quadra
+ - USB: serial: garmin_gps: add sanity checking for data length
+ - tracing: Add a vmalloc_sync_mappings() for safe measure
+ - [arm64,armhf] KVM: vgic: Fix limit condition when writing to
+ GICD_I[CS]ACTIVER
+ - [arm64] KVM: Fix 32bit PC wrap-around
+ - [arm64] hugetlb: avoid potential NULL dereference
+ - mm/page_alloc: fix watchdog soft lockups during set_zone_contiguous()
+ - [x86] KVM: VMX: Explicitly reference RCX as the vmx_vcpu pointer in asm
+ blobs
+ - [x86] KVM: VMX: Mark RCX, RDX and RSI as clobbered in vmx_vcpu_run()'s
+ asm blob
+ - batman-adv: fix batadv_nc_random_weight_tq
+ - batman-adv: Fix refcnt leak in batadv_show_throughput_override
+ - batman-adv: Fix refcnt leak in batadv_store_throughput_override
+ - batman-adv: Fix refcnt leak in batadv_v_ogm_process
+ - [amd64] x86/entry/64: Fix unwind hints in register clearing code
+ - [amd64] x86/entry/64: Fix unwind hints in kernel exit path
+ - [amd64] x86/entry/64: Fix unwind hints in rewind_stack_do_exit()
+ - [amd64] x86/unwind/orc: Don't skip the first frame for inactive tasks
+ - [amd64] x86/unwind/orc: Prevent unwinding before ORC initialization
+ - [amd64] x86/unwind/orc: Fix error path for bad ORC entry type
+ - [amd64] x86/unwind/orc: Fix premature unwind stoppage due to IRET frames
+ - netfilter: nat: never update the UDP checksum when it's 0
+ - netfilter: nf_osf: avoid passing pointer to local var
+ - scripts/decodecode: fix trapping instruction formatting
+ - ipc/mqueue.c: change __do_notify() to bypass check_kill_permission()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.124
+ - [arm64,armhf] net: dsa: Do not make user port errors fatal
+ - shmem: fix possible deadlocks on shmlock_user_lock
+ - virtio-blk: handle block_device_operations callbacks after hot unplug
+ - mmc: sdhci-acpi: Add SDHCI_QUIRK2_BROKEN_64_BIT_DMA for AMDI0040
+ - net: fix a potential recursive NETDEV_FEAT_CHANGE
+ - net: phy: fix aneg restart in phy_ethtool_set_eee
+ - pppoe: only process PADT targeted at local interfaces
+ - Revert "ipv6: add mtu lock check in __ip6_rt_update_pmtu"
+ - tcp: fix error recovery in tcp_zerocopy_receive()
+ - virtio_net: fix lockdep warning on 32 bit
+ - [x86,arm64] hinic: fix a bug of ndo_stop
+ - net: ipv4: really enforce backoff for redirects
+ - netprio_cgroup: Fix unlimited memory leak of v2 cgroups
+ - net: tcp: fix rx timestamp behavior for tcp_recvmsg
+ - tcp: fix SO_RCVLOWAT hangs with fat skbs
+ - [i386] dmaengine: pch_dma.c: Avoid data race between probe and irq
+ handler
+ - [x86] cpufreq: intel_pstate: Only mention the BIOS disabling turbo mode
+ once
+ - ALSA: hda/hdmi: fix race in monitor detection during probe
+ - drm/qxl: lost qxl_bo_kunmap_atomic_page in qxl_image_init_helper()
+ - ipc/util.c: sysvipc_find_ipc() incorrectly updates position index
+ - ALSA: hda/realtek - Fix S3 pop noise on Dell Wyse
+ - gfs2: Another gfs2_walk_metadata fix
+ - [x86] pinctrl: baytrail: Enable pin configuration setting for GPIO chip
+ - [x86] pinctrl: cherryview: Add missing spinlock usage in
+ chv_gpio_irq_handler
+ - i40iw: Fix error handling in i40iw_manage_arp_cache()
+ - mmc: core: Check request type before completing the request
+ - mmc: block: Fix request completion in the CQE timeout path
+ - NFS: Fix fscache super_cookie index_key from changing after umount
+ - nfs: fscache: use timespec64 in inode auxdata
+ - NFSv4: Fix fscache cookie aux_data to ensure change_attr is included
+ - [arm64] fix the flush_icache_range arguments in machine_kexec
+ - netfilter: nft_set_rbtree: Introduce and use nft_rbtree_interval_start()
+ - IB/mlx4: Test return value of calls to ib_get_cached_pkey
+ - ALSA: hda/realtek - Limit int mic boost for Thinkpad T530
+ - ALSA: rawmidi: Fix racy buffer resize under concurrent accesses
+ - ALSA: usb-audio: Add control message quirk delay for Kingston HyperX
+ headset
+ - usb: core: hub: limit HUB_QUIRK_DISABLE_AUTOSUSPEND to USB5534B
+ - [arm64,armhf] usb: host: xhci-plat: keep runtime active when removing
+ host
+ - usb: xhci: Fix NULL pointer dereference when enqueuing trbs from urb sg
+ list
+ - cifs: fix leaked reference on requeued write
+ - exec: Move would_dump into flush_old_exec
+ - [arm64,armhf] clk: rockchip: fix incorrect configuration of rk3228
+ aclk_gpu* clocks
+ - [arm64,armhf] dwc3: Remove check for HWO flag in
+ dwc3_gadget_ep_reclaim_trb_sg()
+ - Revert "ALSA: hda/realtek: Fix pop noise on ALC225"
+ - clk: Unlink clock if failed to prepare or enable
+ - [arm64] dts: rockchip: Replace RK805 PMIC node name with "pmic" on
+ rk3328 boards
+ - [x86] KVM: Fix off-by-one error in kvm_vcpu_ioctl_x86_setup_mce
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.125
+ - i2c: dev: Fix the race between the release of i2c_dev and cdev
+ - fix multiplication overflow in copy_fdtable()
+ - ubifs: remove broken lazytime support
+ - [amd64] iommu/amd: Fix over-read of ACPI UID from IVRS table
+ - ubi: Fix seq_file usage in detailed_erase_block_info debugfs file
+ - HID: multitouch: add eGalaxTouch P80H84 support
+ - HID: alps: Add AUI1657 device ID
+ - HID: alps: ALPS_1657 is too specific; use U1_UNICORN_LEGACY instead
+ - scsi: qla2xxx: Fix hang when issuing nvme disconnect-all in NPIV
+ - scsi: qla2xxx: Delete all sessions before unregister local nvme port
+ - configfs: fix config_item refcnt leak in configfs_rmdir()
+ - vhost/vsock: fix packet delivery order to monitoring devices
+ - [amd64] aquantia: Fix the media type of AQC100 ethernet controller in
+ the driver
+ - component: Silence bind error on -EPROBE_DEFER
+ - [ppc64el] scsi: ibmvscsi: Fix WARN_ON during event pool release
+ - HID: i2c-hid: reset Synaptics SYNA2393 on resume
+ - [x86] apic: Move TSC deadline timer debug printk
+ - gtp: set NLM_F_MULTI flag in gtp_genl_dump_pdp()
+ - HID: quirks: Add HID_QUIRK_NO_INIT_REPORTS quirk for Dell K12A
+ keyboard-dock
+ - ceph: fix double unlock in handle_cap_export()
+ - [arm64,armhf] stmmac: fix pointer check after utilization in
+ stmmac_interrupt
+ - USB: core: Fix misleading driver bug report
+ - [x86] platform/x86: asus-nb-wmi: Do not load on Asus T100TA and T200TA
+ - padata: Replace delayed timer with immediate workqueue in padata_reorder
+ - padata: initialize pd->cpu with effective cpumask
+ - padata: purge get_cpu and reorder_via_wq from padata_do_serial
+ - ALSA: iec1712: Initialize STDSP24 properly when using the model=staudio
+ option
+ - ALSA: pcm: fix incorrect hw_base increase
+ - ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Xtreme
+ - ALSA: hda/realtek - Add more fixup entries for Clevo machines
+ - [armhf] drm/etnaviv: fix perfmon domain interation
+ - apparmor: Fix use-after-free in aa_audit_rule_init
+ - apparmor: fix potential label refcnt leak in aa_change_profile
+ - apparmor: Fix aa_label refcnt leak in policy_update
+ - [arm64] dmaengine: tegra210-adma: Fix an error handling path in
+ 'tegra_adma_probe()'
+ - [powerpc*] Remove STRICT_KERNEL_RWX incompatibility with RELOCATABLE
+ - [powerpc*] 64s: Disable STRICT_KERNEL_RWX
+ - [amd64,arm64] nfit: Add Hyper-V NVDIMM DSM command set to white list
+ - [x86,arm64] libnvdimm/btt: Remove unnecessary code in btt_freelist_init
+ - [x86,arm64] libnvdimm/btt: Fix LBA masking during 'free list' population
+ - [x86] thunderbolt: Drop duplicated get_switch_at_route()
+ - cxgb4: free mac_hlist properly
+ - cxgb4/cxgb4vf: Fix mac_hlist initialization and free
+ - brcmfmac: abort and release host after error
+ - Revert "gfs2: Don't demote a glock until its revokes are written"
+ - misc: rtsx: Add short delay after exit from ASPM
+ - [x86] mei: release me_cl object reference
+ - rxrpc: Fix a memory leak in rxkad_verify_response()
+ - rxrpc: Trace discarded ACKs
+ - rxrpc: Fix ack discard
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.126
+ - ax25: fix setsockopt(SO_BINDTODEVICE)
+ - __netif_receive_skb_core: pass skb by reference
+ - net: inet_csk: Fix so_reuseport bind-address cache in tb->fast*
+ - net: ipip: fix wrong address family in init error path
+ - net/mlx5: Add command entry handling completion
+ - net: revert "net: get rid of an signed integer overflow in
+ ip_idents_reserve()"
+ - net sched: fix reporting the first-time use timestamp
+ - r8152: support additional Microsoft Surface Ethernet Adapter variant
+ - sctp: Don't add the shutdown timer if its already been added
+ - sctp: Start shutdown on association restart if in SHUTDOWN-SENT state
+ and socket is closed
+ - net/mlx5e: Update netdev txq on completions during closure
+ - net/mlx5: Annotate mutex destroy for root ns
+ - net: sun: fix missing release regions in cas_init_one().
+ - net/mlx4_core: fix a memory leak bug.
+ - [armhf] dts: rockchip: fix phy nodename for rk3228-evb
+ - [arm64] dts: rockchip: fix status for &gmac2phy in rk3328-evb.dts
+ - [arm64,armhf] gpio: tegra: mask GPIO IRQs during IRQ shutdown
+ - ALSA: usb-audio: add mapping for ASRock TRX40 Creator
+ - gfs2: move privileged user check to gfs2_quota_lock_check
+ - cachefiles: Fix race between read_waiter and read_copier involving
+ op->to_do
+ - [arm64] usb: dwc3: pci: Enable extcon driver for Intel Merrifield
+ - usb: gadget: legacy: fix redundant initialization warnings
+ - IB/i40iw: Remove bogus call to netdev_master_upper_dev_get()
+ - cifs: Fix null pointer check in cifs_read
+ - Input: usbtouchscreen - add support for BonXeon TP
+ - Input: evdev - call input_flush_device() on release(), not flush()
+ - Input: xpad - add custom init packet for Xbox One S controllers
+ - Input: i8042 - add ThinkPad S230u to i8042 reset list
+ - Input: synaptics-rmi4 - really fix attn_data use-after-free
+ - Input: synaptics-rmi4 - fix error return code in rmi_driver_probe()
+ - [armel,armhf] 8970/1: decompressor: increase tag size
+ - [arm*] 8843/1: use unified assembler in headers
+ - gpio: exar: Fix bad handling for ida_simple_get error path
+ - IB/qib: Call kobject_put() when kobject_init_and_add() fails
+ - [armhf] dts/imx6q-bx50v3: Set display interface clock parents
+ - [armel,armhf] dts: bcm2835-rpi-zero-w: Fix led polarity
+ - mmc: block: Fix use-after-free issue for rpmb
+ - ALSA: hwdep: fix a left shifting 1 by 31 UB bug
+ - ALSA: hda/realtek - Add a model for Thinkpad T570 without DAC workaround
+ - ALSA: usb-audio: mixer: volume quirk for ESS Technology Asus USB DAC
+ - exec: Always set cap_ambient in cap_bprm_set_creds
+ - ALSA: usb-audio: Quirks for Gigabyte TRX40 Aorus Master onboard audio
+ - ALSA: hda/realtek - Add new codec supported for ALC287
+ - libceph: ignore pool overlay and cache logic on redirects
+ - IB/ipoib: Fix double free of skb in case of multicast traffic in CM mode
+ - mm: remove VM_BUG_ON(PageSlab()) from page_mapcount()
+ - include/asm-generic/topology.h: guard cpumask_of_node() macro argument
+ - iommu: Fix reference count leak in iommu_group_alloc.
+ - mmc: core: Fix recursive locking issue in CQE recovery path
+ - RDMA/core: Fix double destruction of uobject
+ - mac80211: mesh: fix discovery timer re-arming issue / crash
+ - [x86] dma: Fix max PFN arithmetic overflow on 32 bit systems
+ - [x86] copy_xstate_to_kernel(): don't leave parts of destination
+ uninitialized
+ - xfrm: allow to accept packets with ipv6 NEXTHDR_HOP in xfrm_input
+ - xfrm: call xfrm_output_gso when inner_protocol is set in xfrm_output
+ - xfrm interface: fix oops when deleting a x-netns interface
+ - xfrm: fix a warning in xfrm_policy_insert_list
+ - xfrm: fix a NULL-ptr deref in xfrm_local_error
+ - xfrm: fix error in comment
+ - vti4: eliminated some duplicate code.
+ - ip_vti: receive ipip packet by calling ip_tunnel_rcv
+ - netfilter: nft_reject_bridge: enable reject with bridge vlan
+ - netfilter: ipset: Fix subcounter update skip
+ - netfilter: nfnetlink_cthelper: unbreak userspace helper support
+ - netfilter: nf_conntrack_pptp: prevent buffer overflows in debug code
+ - esp6: get the right proto for transport mode in esp6_gso_encap
+ - bnxt_en: Fix accumulation of bp->net_stats_prev.
+ - xsk: Add overflow check for u64 division, stored into u32
+ - qlcnic: fix missing release in qlcnic_83xx_interrupt_test.
+ - bonding: Fix reference count leak in bond_sysfs_slave_add.
+ - netfilter: nf_conntrack_pptp: fix compilation warning with W=1 build
+ - mm/vmalloc.c: don't dereference possible NULL pointer in __vunmap()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.127
+ - Revert "cgroup: Add memory barriers to plug cgroup_rstat_updated() race
+ window"
+ - libnvdimm: Fix endian conversion issues 
+ - HID: sony: Fix for broken buttons on DS3 USB dongles
+ - HID: i2c-hid: add Schneider SCL142ALM to descriptor override
+ - p54usb: add AirVasT USB stick device-id
+ - mmc: fix compilation of user API
+ - scsi: ufs: Release clock if DMA map fails
+ - airo: Fix read overflows sending packets
+ - [x86] drm/i915: fix port checks for MST support on gen >= 11
+ - [arm64] scsi: hisi_sas: Check sas_port before using it
+ - [powerpc*] powernv: Avoid re-registration of imc debugfs directory
+ - [s390x] ftrace: save traced function caller
+ - drm/edid: Add Oculus Rift S to non-desktop list
+ - [s390x] mm: fix set_huge_pte_at() for empty ptes
+ - null_blk: return error for invalid zone size
+ - [arm64] net: ethernet: stmmac: Enable interface clocks on probe for
+ IPQ806x
+ - [arm64,armhf] net: smsc911x: Fix runtime PM imbalance on error
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.128
+ - devinet: fix memleak in inetdev_init()
+ - l2tp: add sk_family checks to l2tp_validate_socket
+ - l2tp: do not use inet_hash()/inet_unhash()
+ - net: usb: qmi_wwan: add Telit LE910C1-EUX composition
+ - vsock: fix timeout in vsock_accept()
+ - net: check untrusted gso_size at kernel entry
+ - USB: serial: qcserial: add DW5816e QDL support
+ - USB: serial: usb_wwan: do not resubmit rx urb on fatal errors
+ - USB: serial: option: add Telit LE910C1-EUX compositions
+ - [arm64,armhf] usb: musb: start session in resume for host port
+ - [arm64,armhf] usb: musb: Fix runtime PM imbalance on error
+ - vt: keyboard: avoid signed integer overflow in k_ascii (CVE-2020-13974)
+ - tty: hvc_console, fix crashes on parallel open/close
+ - staging: rtl8712: Fix IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK
+ - CDC-ACM: heed quirk also in error handling
+ - [arm64] nvmem: qfprom: remove incorrect write support
+ - uprobes: ensure that uprobe->offset and ->ref_ctr_offset are properly
+ aligned
+ - Revert "net/mlx5: Annotate mutex destroy for root ns"
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.129
+ - ipv6: fix IPV6_ADDRFORM operation logic
+ - net_failover: fixed rollback in net_failover_open()
+ - bridge: Avoid infinite loop when suppressing NS messages with invalid
+ options
+ - vxlan: Avoid infinite loop when suppressing NS messages with invalid
+ options
+ - tun: correct header offsets in napi frags mode
+ - make 'user_access_begin()' do 'access_ok()' (CVE-2018-20669)
+ - [x86] uaccess: Inhibit speculation past access_ok() in
+ user_access_begin()
+ - lib: Reduce user_access_begin() boundaries in strncpy_from_user() and
+ strnlen_user()
+ - btrfs: merge btrfs_find_device and find_device (CVE-2019-18885)
+ - btrfs: Detect unbalanced tree with empty leaf before crashing btree
+ operations
+ - [armel,armhf] 8977/1: ptrace: Fix mask for thumb breakpoint hook
+ - sched/fair: Don't NUMA balance for kthreads
+ - Input: synaptics - add a second working PNP_ID for Lenovo T470s
+ - [powerpc*] xive: Clear the page tables for the ESB IO mapping
+ - ath9k_htc: Silence undersized packet warnings
+ - RDMA/uverbs: Make the event_queue fds return POLLERR when disassociated
+ - [x86] cpu/amd: Make erratum #1054 a legacy erratum
+ - perf probe: Accept the instance number of kretprobe event
+ - mm: add kvfree_sensitive() for freeing sensitive data objects
+ - aio: fix async fsync creds
+ - btrfs: tree-checker: Check level for leaves and nodes
+ - [x86] Fix jiffies ODR violation
+ - [x86] PCI: Mark Intel C620 MROMs as having non-compliant BARs
+ - [x86] speculation: Prevent rogue cross-process SSBD shutdown
+ (CVE-2020-10766)
+ - [x86] reboot/quirks: Add MacBook6,1 reboot quirk
+ - efi/efivars: Add missing kobject_put() in sysfs entry creation error
+ path
+ - [i386] ALSA: es1688: Add the missed snd_card_free()
+ - ALSA: hda/realtek - add a pintbl quirk for several Lenovo machines
+ - ALSA: usb-audio: Fix inconsistent card PM state after resume
+ - ALSA: usb-audio: Add vendor, product and profile name for HP Thunderbolt
+ Dock
+ - [arm64,x86] ACPI: sysfs: Fix reference count leak in
+ acpi_sysfs_add_hotplug_profile()
+ - [amd64,arm64] ACPI: CPPC: Fix reference count leak in
+ acpi_cppc_processor_probe()
+ - [arm64] ACPI: GED: add support for _Exx / _Lxx handler methods
+ - [arm64,x86] ACPI: PM: Avoid using power resources if there are none for
+ D0
+ - cgroup, blkcg: Prepare some symbols for module and !CONFIG_CGROUP usages
+ - nilfs2: fix null pointer dereference at nilfs_segctor_do_construct()
+ - [arm*] spi: bcm2835aux: Fix controller unregister order
+ - PM: runtime: clk: Fix clk_pm_runtime_get() error path
+ - [arm64] crypto: cavium/nitrox - Fix 'nitrox_get_first_device()' when
+ ndevlist is fully iterated
+ - ALSA: pcm: disallow linking stream to itself
+ - [x86] {mce,mm}: Unmap the entire page if the whole page is affected and
+ poisoned
+ - [x86] KVM: Fix APIC page invalidation race
+ - [x86] kvm: Fix L1TF mitigation for shadow MMU
+ - [x86] KVM: x86/mmu: Consolidate "is MMIO SPTE" code
+ - [x86] KVM: only do L1TF workaround on affected processors
+ - [x86] speculation: Change misspelled STIPB to STIBP
+ - [x86] speculation: Add support for STIBP always-on preferred mode
+ - [x86] speculation: Avoid force-disabling IBPB based on STIBP and
+ enhanced IBRS. (CVE-2020-10767)
+ - [x86] speculation: PR_SPEC_FORCE_DISABLE enforcement for indirect
+ branches. (CVE-2020-10768)
+ - spi: No need to assign dummy value in spi_unregister_controller()
+ - spi: Fix controller unregister order
+ - [amd64] spi: pxa2xx: Fix controller unregister order
+ - [arm*] spi: bcm2835: Fix controller unregister order
+ - [amd64] spi: pxa2xx: Balance runtime PM enable/disable on error
+ - [amd64] spi: pxa2xx: Fix runtime PM ref imbalance on probe error
+ - crypto: virtio: Fix use-after-free in
+ virtio_crypto_skcipher_finalize_req()
+ - crypto: virtio: Fix src/dst scatterlist calculation in
+ __virtio_crypto_skcipher_do_req()
+ - crypto: virtio: Fix dest length calculation in
+ __virtio_crypto_skcipher_do_req()
+ - ovl: initialize error in ovl_copy_xattr
+ - proc: Use new_inode not new_inode_pseudo
+ - [x86] KVM: nSVM: fix condition for filtering async PF
+ - [x86] KVM: nSVM: leave ASID aside in copy_vmcb_control_area
+ - [x86] KVM: nVMX: Consult only the "basic" exit reason when routing
+ nested exit
+ - [arm64] KVM: Make vcpu_cp1x() work on Big Endian hosts
+ - scsi: megaraid_sas: TM command refire leads to controller firmware crash
+ - ath9k: Fix use-after-free Read in ath9k_wmi_ctrl_rx
+ - ath9k: Fix use-after-free Write in ath9k_htc_rx_msg
+ - ath9x: Fix stack-out-of-bounds Write in ath9k_hif_usb_rx_cb
+ - ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb
+ - mm/slub: fix a memory leak in sysfs_slab_add()
+ - fat: don't allow to mount if the FAT length == 0
+ - perf: Add cond_resched() to task_function_call()
+ - [x86] agp/intel: Reinforce the barrier after GTT updates
+ - [arm64] mmc: sdhci-msm: Clear tuning done flag while hs400 tuning
+ - mmc: sdio: Fix potential NULL pointer error in mmc_sdio_init_card()
+ - xen/pvcalls-back: test for errors when calling backend_connect()
+ - [arm64] KVM: Synchronize sysreg state on injecting an AArch32 exception
+ - [arm64] ACPI: GED: use correct trigger type field in _Exx / _Lxx
+ handling
+ - [arm64] drm: bridge: adv7511: Extend list of audio sample rates
+ - [x86] crypto: ccp -- don't "select" CONFIG_DMADEVICES
+ - media: si2157: Better check for running tuner in init
+ - [amd64] spi: pxa2xx: Apply CS clk quirk to BXT
+ - [amd64] net: atlantic: make hw_get_regs optional
+ - net: ena: fix error returning in ena_com_get_hash_function()
+ - [arm64] insn: Fix two bugs in encoding 32-bit logical immediates
+ - ixgbe: Fix XDP redirect on archs with PAGE_SIZE above 4K
+ - Bluetooth: Add SCO fallback for invalid LMP parameters error
+ - [armhf] clocksource: dw_apb_timer: Make CPU-affiliation being optional
+ - [armhf] clocksource: dw_apb_timer_of: Fix missing clockevent timers
+ - btrfs: do not ignore error from btrfs_next_leaf() when inserting
+ checksums
+ - batman-adv: Revert "disable ethtool link speed detection when auto
+ negotiation off"
+ - [armhf] mmc: meson-mx-sdio: trigger a soft reset after a timeout or CRC
+ error
+ - [x86] kvm/hyper-v: Explicitly align hcall param for kvm_hyperv_exit
+ - [x86] net: vmxnet3: fix possible buffer overflow caused by bad DMA value
+ in vmxnet3_get_rss()
+ - brcmfmac: fix wrong location to get firmware feature
+ - e1000: Distribute switch variables for initialization
+ - dt-bindings: display: mediatek: control dpi pins mode to avoid leakage
+ - audit: fix a net reference leak in audit_send_reply()
+ - media: dvb: return -EREMOTEIO on i2c transfer failure.
+ - [mips*] Make sparse_init() using top-down allocation
+ - Bluetooth: btbcm: Add 2 missing models to subver tables
+ - audit: fix a net reference leak in audit_list_rules_send()
+ - netfilter: nft_nat: return EOPNOTSUPP if type or flags are not supported
+ - exit: Move preemption fixup up, move blocking operations down
+ - sched/core: Fix illegal RCU from offline CPUs
+ - drivers/perf: hisi: Fix typo in events attribute array
+ - [armhf] net: allwinner: Fix use correct return type for ndo_start_xmit()
+ - xfs: clean up the error handling in xfs_swap_extents
+ - Crypto/chcr: fix for ccm(aes) failed test
+ - [mips*] cm: Fix an invalid error code of INTVN_*_ERR
+ - xfs: reset buffer write failure state on successful completion
+ - xfs: fix duplicate verification from xfs_qm_dqflush()
+ - [x86] platform/x86: intel-vbtn: Use acpi_evaluate_integer()
+ - [x86] platform/x86: intel-vbtn: Split keymap into buttons and switches
+ parts
+ - [x86] platform/x86: intel-vbtn: Do not advertise switches to userspace
+ if they are not there
+ - [x86] platform/x86: intel-vbtn: Also handle tablet-mode switch on
+ "Detachable" and "Portable" chassis-types
+ - nvme: refine the Qemu Identify CNS quirk
+ - ath10k: Remove msdu from idr when management pkt send fails
+ - [arm64] wcn36xx: Fix error handling path in 'wcn36xx_probe()'
+ - net: qed*: Reduce RX and TX default ring count when running inside kdump
+ kernel
+ - mt76: avoid rx reorder buffer overflow
+ - md: don't flush workqueue unconditionally in md_open
+ - veth: Adjust hard_start offset on redirect XDP frames
+ - net/mlx5e: IPoIB, Drop multicast packets that this interface sent
+ - rtlwifi: Fix a double free in _rtl_usb_tx_urb_setup()
+ - mwifiex: Fix memory corruption in dump_station
+ - [x86] boot: Correct relocation destination on old linkers
+ - [x86] mm: Stop printing BRK addresses
+ - btrfs: qgroup: mark qgroup inconsistent if we're inherting snapshot to a
+ new qgroup
+ - macvlan: Skip loopback packets in RX handler
+ - PCI: Don't disable decoding when mmio_always_on is set
+ - [mips*] Fix IRQ tracing when call handle_fpe() and handle_msa_fpe()
+ - bcache: fix refcount underflow in bcache_device_free()
+ - [arm64] mmc: sdhci-msm: Set SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12 quirk
+ - mmc: via-sdmmc: Respect the cmd->busy_timeout from the mmc core
+ - ixgbe: fix signed-integer-overflow warning
+ - [armhf] mmc: sdhci-esdhc-imx: fix the mask for tuning start point
+ - cpuidle: Fix three reference count leaks
+ - [x86] platform/x86: hp-wmi: Convert simple_strtoul() to kstrtou32()
+ - [x86] platform/x86: intel-hid: Add a quirk to support HP Spectre X2
+ (2015)
+ - [x86] platform/x86: intel-vbtn: Only blacklist SW_TABLET_MODE on the 9 /
+ "Laptop" chasis-type
+ - btrfs: include non-missing as a qualifier for the latest_bdev
+ - btrfs: send: emit file capabilities after chown
+ - mm: thp: make the THP mapcount atomic against __split_huge_pmd_locked()
+ - mm: initialize deferred pages with interrupts enabled
+ - ext4: fix EXT_MAX_EXTENT/INDEX to check for zeroed eh_max
+ - ext4: fix error pointer dereference
+ - ext4: fix race between ext4_sync_parent() and rename()
+ - PCI: Avoid Pericom USB controller OHCI/EHCI PME# defect
+ - PCI: Avoid FLR for AMD Matisse HD Audio & USB 3.0
+ - PCI: Avoid FLR for AMD Starship USB 3.0
+ - PCI: Add ACS quirk for iProc PAXB
+ - PCI: Add ACS quirk for Intel Root Complex Integrated Endpoints
+ - PCI: Remove unused NFP32xx IDs
+ - [x86] hwmon/k10temp, x86/amd_nb: Consolidate shared device IDs
+ - [x86] amd_nb: Add PCI device IDs for family 17h, model 30h
+ - PCI: add USR vendor id and use it in r8169 and w6692 driver
+ - PCI: Move Synopsys HAPS platform device IDs
+ - PCI: Move Rohm Vendor ID to generic list
+ - misc: pci_endpoint_test: Add the layerscape EP device support
+ - misc: pci_endpoint_test: Add support to test PCI EP in AM654x
+ - PCI: Add Synopsys endpoint EDDA Device ID
+ - PCI: Add NVIDIA GPU multi-function power dependencies
+ - PCI: Enable NVIDIA HDA controllers
+ - [x86] amd_nb: Add PCI device IDs for family 17h, model 70h
+ - ALSA: lx6464es - add support for LX6464ESe pci express variant
+ - PCI: Add Genesys Logic, Inc. Vendor ID
+ - PCI: Add Amazon's Annapurna Labs vendor ID
+ - PCI: vmd: Add device id for VMD device 8086:9A0B
+ - [x86] amd_nb: Add Family 19h PCI IDs
+ - PCI: Add Loongson vendor ID
+ - serial: 8250_pci: Move Pericom IDs to pci_ids.h
+ - PCI: Make ACS quirk implementations more uniform
+ - PCI: Unify ACS quirk desired vs provided checking
+ - PCI: Generalize multi-function power dependency device links
+ - btrfs: fix error handling when submitting direct I/O bio
+ - btrfs: fix wrong file range cleanup after an error filling dealloc range
+ - PCI: Program MPS for RCiEP devices
+ - e1000e: Disable TSO for buffer overrun workaround
+ - e1000e: Relax condition to trigger reset for ME workaround
+ - carl9170: remove P2P_GO support
+ - media: go7007: fix a miss of snd_card_free (CVE-2019-20810)
+ - Bluetooth: hci_bcm: fix freeing not-requested IRQ
+ - b43legacy: Fix case where channel status is corrupted
+ - b43: Fix connection problem with WPA3
+ - b43_legacy: Fix connection problem with WPA3
+ - igb: Report speed and duplex as unknown when device is runtime suspended
+ - [arm64,armhf] power: vexpress: add suppress_bind_attrs to true
+ - [armhf] pinctrl: samsung: Correct setting of eint wakeup mask on s5pv210
+ - [armhf] pinctrl: samsung: Save/restore eint_mask over suspend for
+ EINT_TYPE GPIOs
+ - gnss: sirf: fix error return code in sirf_probe()
+ - dm crypt: avoid truncating the logical block size
+ - kernel/cpu_pm: Fix uninitted local in cpu_pm
+ - [armhf] tegra: Correct PL310 Auxiliary Control Register initialization
+ - [powerpc*] 64s: Don't let DT CPU features set FSCR_DSCR
+ - [powerpc*] 64s: Save FSCR to init_task.thread.fscr after feature init
+ - sunrpc: svcauth_gss_register_pseudoflavor must reject duplicate
+ registrations.
+ - sunrpc: clean up properly in gss_mech_unregister()
+ - [armhf] w1: omap-hdq: cleanup to add missing newline for some dev_dbg
+ - perf probe: Do not show the skipped events
+ - perf probe: Fix to check blacklist address correctly
+ - perf probe: Check address correctness by map instead of _etext
+ - perf symbols: Fix debuginfo search for Ubuntu
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.130
+ - [arm64,armhf] clk: sunxi: Fix incorrect usage of round_down()
+ - [arm64,armhf] ASoC: tegra: tegra_wm8903: Support nvidia, headset
+ property
+ - i2c: piix4: Detect secondary SMBus controller on AMD AM4 chipsets
+ - [x86] iio: pressure: bmp280: Tolerate IRQ before registering
+ - [arm64] clk: qcom: msm8916: Fix the address location of pll->config_reg
+ - [arm64] backlight: lp855x: Ensure regulators are disabled on probe
+ failure
+ - [armhf] ASoC: davinci-mcasp: Fix dma_chan refcnt leak when getting dma
+ type
+ - [armel] integrator: Add some Kconfig selections
+ - scsi: qedi: Check for buffer overflow in qedi_set_path()
+ - ALSA: hda/realtek - Introduce polarity for micmute LED GPIO
+ - [i386] ALSA: isa/wavefront: prevent out of bounds write in ioctl
+ - PCI: Allow pci_resize_resource() for devices on root bus
+ - scsi: qla2xxx: Fix issue with adapter's stopping state
+ - [x86] iio: bmp280: fix compensation of humidity
+ - f2fs: report delalloc reserve as non-free in statfs for project quota
+ - [x86] i2c: pxa: clear all master action bits in i2c_pxa_stop_message()
+ - [armhf] clk: samsung: Mark top ISP and CAM clocks on Exynos542x as
+ critical
+ - usblp: poison URBs upon disconnect
+ - serial: 8250: Fix max baud limit in generic 8250 port
+ - dm mpath: switch paths in dm_blk_ioctl() code path
+ - [arm64] PCI: aardvark: Don't blindly enable ASPM L0s and don't write to
+ read-only register
+ - vfio/pci: fix memory leaks in alloc_perm_bits()
+ - RDMA/mlx5: Add init2init as a modify command
+ - scsi: lpfc: Fix lpfc_nodelist leak when processing unsolicited event
+ - [powerpc*] perf/hv-24x7: Fix inconsistent output values incase multiple
+ hv-24x7 events run
+ - nfsd: Fix svc_xprt refcnt leak when setup callback client failed
+ - [amd64] PCI: vmd: Filter resource type bits from shadow register
+ - [powerpc*] crashkernel: Take "mem=" option into account
+ - yam: fix possible memory leak in yam_init_driver
+ - apparmor: fix introspection of of task mode for unconfined tasks
+ - apparmor: check/put label on apparmor_sk_clone_security()
+ - scsi: sr: Fix sr_probe() missing deallocate of device minor
+ - [powerpc*] scsi: ibmvscsi: Don't send host info in adapter info MAD
+ after LPM
+ - apparmor: fix nnp subset test for unconfined
+ - [x86] purgatory: Disable various profiling and sanitizing options
+ - scsi: qedi: Do not flush offload work if ARP not resolved
+ - [armhf] dts: sun8i-h2-plus-bananapi-m2-zero: Fix led polarity
+ - scsi: qedf: Fix crash when MFW calls for protocol stats while function
+ is still probing
+ - [arm64] firmware: qcom_scm: fix bogous abuse of dma-direct internals
+ - ALSA: usb-audio: Improve frames size computation
+ - ALSA: usb-audio: Fix racy list management in output queue
+ - [s390x] qdio: put thinint indicator after early error
+ - tty: hvc: Fix data abort due to race in hvc_open
+ - [armhf] thermal/drivers/ti-soc-thermal: Avoid dereferencing ERR_PTR
+ - [arm64,armhf] usb: dwc3: gadget: Properly handle failed kick_transfer
+ - [mips64el,mipsel] staging: sm750fb: add missing case while setting
+ FB_VISUAL
+ - [arm64,i386] i2c: pxa: fix i2c_pxa_scream_blue_murder() debug output
+ - [arm*] serial: amba-pl011: Make sure we initialize the port.lock
+ spinlock
+ - drivers: base: Fix NULL pointer exception in __platform_driver_probe()
+ if a driver developer is foolish
+ - PCI/ASPM: Allow ASPM on links to PCIe-to-PCI/PCI-X Bridges
+ - scsi: qla2xxx: Fix warning after FC target reset
+ - scsi: mpt3sas: Fix double free warnings
+ - [arm64,armhf] pinctrl: rockchip: fix memleak in rockchip_dt_node_to_map
+ - [armhf] clk: ti: composite: fix memory leak
+ - PCI: Fix pci_register_host_bridge() device_register() error handling
+ - [powerpc*] Don't initialise init_task->thread.regs
+ - tty: n_gsm: Fix SOF skipping
+ - tty: n_gsm: Fix waking up upper tty layer when room available
+ - HID: Add quirks for Trust Panora Graphic Tablet
+ - ipmi: use vzalloc instead of kmalloc for user creation
+ - [powerpc*] pseries/ras: Fix FWNMI_VALID off by one
+ - vfio-pci: Mask cap zero
+ - usb/ohci-platform: Fix a warning when hibernating
+ - [arm64] drm/msm/mdp5: Fix mdp5_init error path for failed mdp5_kms
+ allocation
+ - [x86] ASoC: Intel: bytcr_rt5640: Add quirk for Toshiba Encore WT8-A
+ tablet
+ - [armhf] USB: host: ehci-mxc: Add error handling in ehci_mxc_drv_probe()
+ - tty: n_gsm: Fix bogus i++ in gsm_data_kick
+ - scsi: target: tcmu: Userspace must not complete queued commands
+ - [powerpc*] 64s/pgtable: fix an undefined behaviour
+ - dm zoned: return NULL if dmz_get_zone_for_reclaim() fails to find a zone
+ - PCI/PTM: Inherit Switch Downstream Port PTM settings from Upstream Port
+ - [arm64,armhf] PCI: dwc: Fix inner MSI IRQ domain registration
+ - IB/cma: Fix ports memory leak in cma_configfs
+ - [arm*] usb: dwc2: gadget: move gadget resume after the core is in L0
+ state
+ - usb: gadget: Fix issue with config_ep_by_speed function
+ - RDMA/iw_cxgb4: cleanup device debugfs entries on ULD remove
+ - [x86] apic: Make TSC deadline timer detection message visible
+ - scsi: target: tcmu: Fix a use after free in
+ tcmu_check_expired_queue_cmd()
+ - [arm*] clk: bcm2835: Fix return type of bcm2835_register_gate
+ - [ppc64el] KVM: Book3S HV: Ignore kmemleak false positives
+ - net: sunrpc: Fix off-by-one issues in 'rpc_ntop6'
+ - NFSv4.1 fix rpc_call_done assignment for BIND_CONN_TO_SESSION
+ - of: Fix a refcounting bug in __of_attach_node_sysfs()
+ - rxrpc: Adjust /proc/net/rxrpc/calls to display call->debug_id not
+ user_ID
+ - gfs2: Allow lock_nolock mount to specify jid=X
+ - scsi: iscsi: Fix reference count leak in iscsi_boot_create_kobj
+ - scsi: ufs: Don't update urgent bkops level when toggling auto bkops
+ - [armhf] pinctrl: freescale: imx: Fix an error handling path in
+ 'imx_pinctrl_probe()'
+ - geneve: change from tx_error to tx_dropped on missing metadata
+ - lib/zlib: remove outdated and incorrect pre-increment optimization
+ - blktrace: use errno instead of bi_status
+ - blktrace: fix endianness in get_pdu_int()
+ - blktrace: fix endianness for blk_log_remap()
+ - gfs2: fix use-after-free on transaction ail lists
+ - drivers/perf: hisi: Fix wrong value for all counters enable
+ - afs: Fix memory leak in afs_put_sysnames()
+ - ASoC: core: only convert non DPCM link to DPCM link
+ - [x86] ASoC: Intel: bytcr_rt5640: Add quirk for Toshiba Encore WT10-A
+ tablet
+ - ASoC: rt5645: Add platform-data for Asus T101HA
+ - [arm64,armhf] drm/sun4i: hdmi ddc clk: Fix size of m divider
+ - [x86] idt: Keep spurious entries unset in system_vectors
+ - net/filter: Permit reading NET in load_bytes_relative when MAC not set
+ - xdp: Fix xsk_generic_xmit errno
+ - [arm64,armhf] usb/xhci-plat: Set PM runtime as active on resume
+ - usb: host: ehci-platform: add a quirk to avoid stuck
+ - usb/ehci-platform: Set PM runtime as active on resume
+ - perf report: Fix NULL pointer dereference in
+ hists__fprintf_nr_sample_events()
+ - ext4: stop overwrite the errcode in ext4_setup_super
+ - bcache: fix potential deadlock problem in btree_gc_coalesce
+ (CVE-2020-12771)
+ - afs: Fix non-setting of mtime when writing into mmap
+ - afs: afs_write_end() should change i_size under the right lock
+ - block: Fix use-after-free in blkdev_get()
+ - [arm64] hw_breakpoint: Don't invoke overflow handler on uaccess
+ watchpoints
+ - libata: Use per port sync for detach
+ - drm: encoder_slave: fix refcouting error for modules
+ - drm/dp_mst: Reformat drm_dp_check_act_status() a bit
+ - drm/qxl: Use correct notify port address when creating cursor ring
+ - selinux: fix double free
+ - ext4: fix partial cluster initialization when splitting extent
+ - ext4: avoid race conditions when remounting with options that change dax
+ - drm/dp_mst: Increase ACT retry timeout to 3s
+ - block: nr_sects_write(): Disable preemption on seqcount write
+ - mtd: rawnand: Pass a nand_chip object to nand_scan()
+ - mtd: rawnand: Pass a nand_chip object to nand_release()
+ - mtd: rawnand: diskonchip: Fix the probe error path
+ - [armel,armhf] mtd: rawnand: orion: Fix the probe error path
+ - [s390x] fix syscall_get_error for compat processes
+ - [x86] drm/i915: Whitelist context-local timestamp in the gen9 cmdparser
+ - [x86] drm/i915/icl+: Fix hotplug interrupt disabling after storm
+ detection
+ - crypto: algif_skcipher - Cap recv SG list at ctx->used
+ - crypto: algboss - don't wait during notifier callback
+ - kprobes: Fix to protect kick_kprobe_optimizer() by kprobe_mutex
+ - e1000e: Do not wake up the system via WOL if device wakeup is disabled
+ - [mips*] net: octeon: mgmt: Repair filling of RX ring
+ - kretprobe: Prevent triggering kretprobe from within kprobe_flush_task
+ - sched/rt, net: Use CONFIG_PREEMPTION.patch
+ - net: core: device_rename: Use rwsem instead of a seqcount
+ - md: add feature flag MD_FEATURE_RAID0_LAYOUT
+ - [x86] kvm: Move kvm_set_mmio_spte_mask() from x86.c to mmu.c
+ - [x86] kvm: Fix reserved bits related calculation errors caused by MKTME
+ - [x86] KVM: x86/mmu: Set mmio_value to '0' if reserved #PF can't be
+ generated
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.131
+ - net: be more gentle about silly gso requests coming from user
+ - block/bio-integrity: don't free 'buf' if bio_integrity_add_page() failed
+ - fanotify: fix ignore mask logic for events on child and on dir
+ - [armhf] mtd: rawnand: marvell: Fix the condition on a return code
+ - net: sched: export __netdev_watchdog_up()
+ - [x86] EDAC/amd64: Add Family 17h Model 30h PCI IDs
+ - [arm64,armhf] i2c: tegra: Cleanup kerneldoc comments
+ - [arm64,armhf] i2c: tegra: Add missing kerneldoc for some fields
+ - [arm64,armhf] i2c: tegra: Fix Maximum transfer size
+ - ALSA: hda/realtek - Enable the headset of ASUS B9450FA with ALC294
+ - ALSA: hda/realtek: Enable mute LED on an HP system
+ - ALSA: hda/realtek - Enable micmute LED on and HP system
+ - apparmor: don't try to replace stale label in ptraceme check
+ (Closes: #963493)
+ - [ppc64el] ibmveth: Fix max MTU limit
+ - mld: fix memory leak in ipv6_mc_destroy_dev()
+ - net: bridge: enfore alignment for ethernet address
+ - net: fix memleak in register_netdevice()
+ - net: place xmit recursion in softnet data
+ - net: use correct this_cpu primitive in dev_recursion_level
+ - net: increment xmit_recursion level in dev_direct_xmit()
+ - net: usb: ax88179_178a: fix packet alignment padding
+ - rxrpc: Fix notification call on completion of discarded calls
+ - sctp: Don't advertise IPv4 addresses if ipv6only is set on the socket
+ - tcp: don't ignore ECN CWR on pure ACK
+ - tcp: grow window for OOO packets only for SACK flows
+ - tg3: driver sleeps indefinitely when EEH errors exceed eeh_max_freezes
+ - ip6_gre: fix use-after-free in ip6gre_tunnel_lookup()
+ - net: phy: Check harder for errors in get_phy_id()
+ - ip_tunnel: fix use-after-free in ip_tunnel_lookup()
+ - sch_cake: don't try to reallocate or unshare skb unconditionally
+ - sch_cake: fix a few style nits
+ - tcp_cubic: fix spurious HYSTART_DELAY exit upon drop in min RTT
+ - sch_cake: don't call diffserv parsing code when it is not needed
+ - net: Fix the arp error in some cases
+ - net: Do not clear the sock TX queue in sk_set_socket()
+ - net: core: reduce recursion limit value
+ - [arm*] usb: dwc2: Postponed gadget registration to the udc class driver
+ - usb: add USB_QUIRK_DELAY_INIT for Logitech C922
+ - USB: ehci: reopen solution for Synopsys HC bug
+ - xhci: Poll for U0 after disabling USB2 LPM
+ - [armhf] usb: host: ehci-exynos: Fix error check in exynos_ehci_probe()
+ - ALSA: usb-audio: add quirk for Denon DCD-1500RE
+ - ALSA: usb-audio: add quirk for Samsung USBC Headset (AKG)
+ - ALSA: usb-audio: Fix OOB access of mixer element list
+ - [s390x] scsi: zfcp: Fix panic on ERP timeout for previously dismissed
+ ERP action
+ - xhci: Fix incorrect EP_STATE_MASK
+ - xhci: Fix enumeration issue when setting max packet size for FS devices.
+ - xhci: Return if xHCI doesn't support LPM
+ - cdc-acm: Add DISABLE_ECHO quirk for Microchip/SMSC chip
+ - loop: replace kill_bdev with invalidate_bdev
+ - IB/mad: Fix use after free when destroying MAD agent
+ - cifs/smb3: Fix data inconsistent when punch hole
+ - cifs/smb3: Fix data inconsistent when zero file range
+ - xfrm: Fix double ESP trailer insertion in IPsec crypto offload.
+ - efi/esrt: Fix reference count leak in esre_create_sysfs_entry.
+ - [armhf] regualtor: pfuze100: correct sw1a/sw2 on pfuze3000
+ - [armhf] ASoC: fsl_ssi: Fix bclk calculation for mono channel
+ - [armhf] dts: Fix duovero smsc interrupt for suspend
+ - regmap: Fix memory leak from regmap_register_patch
+ - rxrpc: Fix handling of rwind from an ACK packet
+ - RDMA/qedr: Fix KASAN: use-after-free in ucma_event_handler+0x532
+ - RDMA/cma: Protect bind_list and listen_list while finding matching cm id
+ - RDMA/mad: Fix possible memory leak in ib_mad_post_receive_mads()
+ - net: qed: fix left elements count calculation
+ - net: qed: fix NVMe login fails over VFs
+ - net: qed: fix excessive QM ILT lines consumption
+ - cxgb4: move handling L2T ARP failures to caller
+ - [armhf] imx5: add missing put_device() call in imx_suspend_alloc_ocram()
+ - netfilter: ipset: fix unaligned atomic access
+ - i2c: core: check returned size of emulated smbus block read
+ - sched/deadline: Initialize ->dl_boosted
+ - sched/core: Fix PI boosting between RT and DEADLINE tasks
+ - ata/libata: Fix usage of page address by page_address in
+ ata_scsi_mode_select_xlat function
+ - net: alx: fix race condition in alx_remove
+ - [s390x] ptrace: fix setting syscall number
+ - [s390x] vdso: fix vDSO clock_getres()
+ - kbuild: improve cc-option to clean up all temporary files
+ - blktrace: break out of blktrace setup on concurrent calls
+ - ALSA: hda: Add NVIDIA codec IDs 9a & 9d through a0 to patch table
+ - ALSA: hda/realtek - Add quirk for MSI GE63 laptop
+ - [x86,arm64] ACPI: sysfs: Fix pm_profile_attr type
+ - [x86] KVM: Fix MSR range of APIC registers in X2APIC mode
+ - [x86] KVM: nVMX: Plumb L2 GPA through to PML emulation
+ - [amd64] x86/asm/64: Align start of __clear_user() loop to 16-bytes
+ - btrfs: fix data block group relocation failure due to concurrent scrub
+ - btrfs: fix failure of RWF_NOWAIT write into prealloc extent beyond eof
+ - mm/slab: use memzero_explicit() in kzfree()
+ - ocfs2: avoid inode removal while nfsd is accessing it
+ - ocfs2: load global_inode_alloc
+ - ocfs2: fix value of OCFS2_INVALID_SLOT
+ - ocfs2: fix panic on nfs server over ocfs2
+ - [arm64] perf: Report the PC value in REGS_ABI_32 mode
+ - tracing: Fix event trigger to accept redundant spaces
+ - ring-buffer: Zero out time extend if it is nested and not absolute
+ - drm/radeon: fix fb_div check in ni_init_smc_spll_table()
+ - [x86,arm64] Staging: rtl8723bs: prevent buffer overflow in
+ update_sta_support_rate()
+ - sunrpc: fixed rollback in rpc_gssd_dummy_populate()
+ - SUNRPC: Properly set the @subbuf parameter of xdr_buf_subsegment()
+ - pNFS/flexfiles: Fix list corruption if the mirror count changes
+ - NFSv4 fix CLOSE not waiting for direct IO compeletion
+ - dm writecache: correct uncommitted_block when discarding uncommitted
+ entry
+ - dm writecache: add cond_resched to loop in persistent_memory_claim()
+ - xfs: add agf freeblocks verify in xfs_agf_verify (CVE-2020-12655)
+ - Revert "tty: hvc: Fix data abort due to race in hvc_open"
+
+ [ Salvatore Bonaccorso ]
+ * [rt] Add new signing key for Tom Zanussi
+ * nfsd: apply umask on fs without ACL support (Closes: #962254)
+ * [rt] Update to 4.19.120-rt52:
+ - tasklet: Address a race resulting in double-enqueue
+ - hrtimer: fix logic for when grabbing softirq_expiry_lock can be elided
+ * [rt] Update to 4.19.124-rt53
+ * [rt] Update to 4.19.127-rt55:
+ - fs/dcache: Include swait.h header
+ - mm: slub: Always flush the delayed empty slubs in flush_all()
+ - tasklet: Fix UP case for tasklet CHAINED state
+ * usb: usbtest: fix missing kfree(dev->buf) in usbtest_disconnect
+ (CVE-2020-15393)
+
+ [ Ben Hutchings ]
+ * [rt] Update "net: move xmit_recursion to per-task variable on -RT" to
+ apply on top of "net: place xmit recursion in softnet data"
+ * [rt] Drop "net: Add a mutex around devnet_rename_seq", redundant with
+ "net: Introduce net_rwsem to protect net_namespace_list"
+ * [rt] Drop idle task related parts of "sched: Move mmdrop to RCU on RT",
+ redundant with "sched/core: Fix illegal RCU from offline CPUs"
+ * Bump ABI to 10
+
+ [ YunQiang Su ]
+ * [mips*]: Do not enable MIPS_O32_FP64_SUPPORT, since golang hasn't been
+ migrated to FPXX yet and this breaks the golang packages on Octeon
+ hardware. In turns this disables MSA on 32-bit kernels.
+
+ [ Luca Boccassi ]
+ * [cloud] Enable INFINIBAND configs for HyperV/Azure (Closes: #958300)
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Thu, 09 Jul 2020 04:45:56 +0200
+
+linux (4.19.118-2+deb10u1) buster-security; urgency=high
+
+ [ Salvatore Bonaccorso ]
+ * selinux: properly handle multiple messages in selinux_netlink_send()
+ (CVE-2020-10751)
+ * fs/namespace.c: fix mountpoint reference counter race (CVE-2020-12114)
+ * USB: core: Fix free-while-in-use bug in the USB S-Glibrary
+ (CVE-2020-12464)
+ * [x86] KVM: SVM: Fix potential memory leak in svm_cpu_init()
+ (CVE-2020-12768)
+ * scsi: sg: add sg_remove_request in sg_write (CVE-2020-12770)
+ * USB: gadget: fix illegal array access in binding with UDC (CVE-2020-13143)
+ * netlabel: cope with NULL catmap (CVE-2020-10711)
+ * fs/binfmt_elf.c: allocate initialized memory in fill_thread_core_info()
+ (CVE-2020-10732)
+ * kernel/relay.c: handle alloc_percpu returning NULL in relay_open
+ (CVE-2019-19462)
+ * mm: Fix mremap not considering huge pmd devmap (CVE-2020-10757)
+ * [x86] KVM: nVMX: Always sync GUEST_BNDCFGS when it comes from vmcs01
+ * KVM: Introduce a new guest mapping API
+ * [arm64] kvm: fix compilation on aarch64
+ * [s390x] kvm: fix compilation on s390
+ * [s390x] kvm: fix compile on s390 part 2
+ * KVM: Properly check if "page" is valid in kvm_vcpu_unmap
+ * [x86] kvm: Introduce kvm_(un)map_gfn() (CVE-2019-3016)
+ * [x86] kvm: Cache gfn to pfn translation (CVE-2019-3016)
+ * [x86] KVM: Make sure KVM_VCPU_FLUSH_TLB flag is not missed (CVE-2019-3016)
+ * [x86] KVM: Clean up host's steal time structure (CVE-2019-3016)
+ * include/uapi/linux/swab.h: fix userspace breakage, use __BITS_PER_LONG for
+ swap (Closes: #960271)
+
+ [ Ben Hutchings ]
+ * propagate_one(): mnt_set_mountpoint() needs mount_lock
+ * [x86] Add support for mitigation of Special Register Buffer Data Sampling
+ (SRBDS) (CVE-2020-0543):
+ - x86/cpu: Add 'table' argument to cpu_matches()
+ - x86/speculation: Add Special Register Buffer Data Sampling (SRBDS)
+ mitigation
+ - x86/speculation: Add SRBDS vulnerability and mitigation documentation
+ - x86/speculation: Add Ivy Bridge to affected list
+ * [x86] speculation: Do not match steppings, to avoid an ABI change
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Sun, 07 Jun 2020 17:42:22 +0200
+
+linux (4.19.118-2) buster; urgency=medium
+
+ * Merge changes from 4.19.67-2+deb10u2 to include all security fixes from
+ DSA 4667-1.
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Wed, 29 Apr 2020 11:38:41 +0200
+
+linux (4.19.118-1) buster; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.99
+ - Revert "efi: Fix debugobjects warning on 'efi_rts_work'"
+ - xfs: Sanity check flags of Q_XQUOTARM call
+ - [x86] mfd: intel-lpss: Add default I2C device properties for Gemini Lake
+ - SUNRPC: Fix svcauth_gss_proxy_init()
+ - [powerpc*] pseries: Enable support for ibm,drc-info property
+ - tipc: update mon's self addr when node addr generated
+ - tipc: fix wrong timeout input for tipc_wait_for_cond()
+ - mt7601u: fix bbp version check in mt7601u_wait_bbp_ready
+ - [armhf] crypto: sun4i-ss - fix big endian issues
+ - perf map: No need to adjust the long name of modules
+ - ipmi: Fix memory leak in __ipmi_bmc_register (CVE-2019-19046)
+ - ixgbe: don't clear IPsec sa counters on HW clearing
+ - drm/virtio: fix bounds check in virtio_gpu_cmd_get_capset()
+ - iio: fix position relative kernel version
+ - apparmor: Fix network performance issue in aa_label_sk_perm
+ - ALSA: hda: fix unused variable warning
+ - apparmor: don't try to replace stale label in ptrace access check
+ - firmware: coreboot: Let OF core populate platform device
+ - bridge: br_arp_nd_proxy: set icmp6_router if neigh has NTF_ROUTER
+ - [arm64] drm/hisilicon: hibmc: Don't overwrite fb helper surface depth
+ - IB/rxe: replace kvfree with vfree
+ - [amd64] IB/hfi1: Add mtu check for operational data VLs
+ - genirq/debugfs: Reinstate full OF path for domain name
+ - [arm64] usb: dwc3: add EXTCON dependency for qcom
+ - cfg80211: regulatory: make initialization more robust
+ - [x86] mei: replace POLL* with EPOLL* for write queues.
+ - [arm64] drm/msm: fix unsigned comparison with less than zero
+ - ALSA: usb-audio: update quirk for B&W PX to remove microphone
+ - iwlwifi: nvm: get num of hw addresses from firmware
+ - netfilter: nft_osf: usage from output path is not valid
+ - [x86] pwm: lpss: Release runtime-pm reference from the driver's remove
+ callback
+ - [powerpc*] pseries/memory-hotplug: Fix return value type of
+ find_aa_index
+ - rtlwifi: rtl8821ae: replace _rtl8821ae_mrate_idx_to_arfr_id with generic
+ version
+ - netfilter: nf_flow_table: do not remove offload when other netns's
+ interface is down
+ - tipc: eliminate message disordering during binding table update
+ - [arm64] net: socionext: Add dummy PHY register read in phy_write()
+ - [arm64,armhf] drm/sun4i: hdmi: Fix double flag assignation
+ - [arm64] net: hns3: add error handler for hns3_nic_init_vector_data()
+ - pcrypt: use format specifier in kobject_add
+ - [armhf] ASoC: sun8i-codec: add missing route for ADC
+ - [arm64] pinctrl: meson-gxl: remove invalid GPIOX tsin_a pins
+ - [armhf] bus: ti-sysc: Add mcasp optional clocks flag
+ - exportfs: fix 'passing zero to ERR_PTR()' warning
+ - net: always initialize pagedlen
+ - net: phy: Fix not to call phy_resume() if PHY is not attached
+ - [amd64] IB/hfi1: Correctly process FECN and BECN in packets
+ - IB/rxe: Fix incorrect cache cleanup in error flow
+ - ipv6: add missing tx timestamping on IPPROTO_RAW
+ - [arm64] net: hns3: fix error handling int the hns3_get_vector_ring_chain
+ - vxlan: changelink: Fix handling of default remotes
+ - fork,memcg: fix crash in free_thread_stack on memcg charge fail
+ - [armhf] clk: highbank: fix refcount leak in hb_clk_init()
+ - [armhf] clk: ti: fix refcount leak in ti_dt_clocks_register()
+ - [armhf] clk: socfpga: fix refcount leak
+ - [armhf] clk: samsung: exynos4: fix refcount leak in exynos4_get_xom()
+ - [armhf] clk: imx6q: fix refcount leak in imx6q_clocks_init()
+ - [armhf] clk: imx6sx: fix refcount leak in imx6sx_clocks_init()
+ - [armhf] clk: armada-370: fix refcount leak in a370_clk_init()
+ - [armel] clk: kirkwood: fix refcount leak in kirkwood_clk_init()
+ - [armhf] clk: armada-xp: fix refcount leak in axp_clk_init()
+ - [armhf] clk: mv98dx3236: fix refcount leak in mv98dx3236_clk_init()
+ - [armhf] clk: dove: fix refcount leak in dove_clk_init()
+ - drm: Fix error handling in drm_legacy_addctx
+ - [armhf] drm/etnaviv: fix some off by one bugs
+ - drm/fb-helper: generic: Fix setup error path
+ - fork, memcg: fix cached_stacks case
+ - [amd64] IB/usnic: Fix out of bounds index check in query pkey
+ - RDMA/ocrdma: Fix out of bounds index check in query pkey
+ - RDMA/qedr: Fix out of bounds index check in query pkey
+ - RDMA/iw_cxgb4: Fix the unchecked ep dereference
+ - net: phy: micrel: set soft_reset callback to genphy_soft_reset for
+ KSZ9031
+ - [armhf] memory: tegra: Don't invoke Tegra30+ specific memory timing setup
+ on Tegra20
+ - [armhf] drm/etnaviv: NULL vs IS_ERR() buf in etnaviv_core_dump()
+ - kbuild: mark prepare0 as PHONY to fix external module build
+ - crypto: tgr192 - fix unaligned memory access
+ - [armhf] ASoC: imx-sgtl5000: put of nodes if finding codec fails
+ - IB/iser: Pass the correct number of entries for dma mapped SGL
+ - [arm64] net: hns3: fix wrong combined count returned by ethtool -l
+ - IB/mlx5: Don't override existing ip_protocol
+ - rtc: cmos: ignore bogus century byte
+ - [i386] spi/topcliff_pch: Fix potential NULL dereference on allocation
+ error
+ - [arm64] net: hns3: fix bug of ethtool_ops.get_channels for VF
+ - [armhf] clk: sunxi-ng: sun8i-a23: Enable PLL-MIPI LDOs when ungating it
+ - iwlwifi: mvm: avoid possible access out of array.
+ - net/mlx5: Take lock with IRQs disabled to avoid deadlock
+ - ip_tunnel: Fix route fl4 init in ip_md_tunnel_xmit
+ - iwlwifi: mvm: fix A-MPDU reference assignment
+ - [armhf] bus: ti-sysc: Fix timer handling with drop pm_runtime_irq_safe()
+ - [x86] tty: ipwireless: Fix potential NULL pointer dereference
+ - driver: uio: fix possible memory leak in __uio_register_device
+ - driver: uio: fix possible use-after-free in __uio_register_device
+ - driver core: Fix DL_FLAG_AUTOREMOVE_SUPPLIER device link flag handling
+ - driver core: Avoid careless re-use of existing device links
+ - driver core: Do not resume suppliers under device_links_write_lock()
+ - driver core: Fix handling of runtime PM flags in device_link_add()
+ - driver core: Do not call rpm_put_suppliers() in pm_runtime_drop_link()
+ - drm/xen-front: Fix mmap attributes for display buffers
+ - iwlwifi: mvm: fix RSS config command
+ - [mips*] rtc: ds1672: fix unintended sign extension
+ - ath10k: fix dma unmap direction for management frames
+ - net: phy: fixed_phy: Fix fixed_phy not checking GPIO
+ - rtc: ds1307: rx8130: Fix alarm handling
+ - net/smc: original socket family in inet_sock_diag
+ - [arm64] rtc: pm8xxx: fix unintended sign extension
+ - iw_cxgb4: use tos when importing the endpoint
+ - iw_cxgb4: use tos when finding ipv6 routes
+ - xsk: add missing smp_rmb() in xsk_mmap
+ - [armhf] drm/etnaviv: potential NULL dereference
+ - RDMA/mlx5: Fix memory leak in case we fail to add an IB device
+ - driver core: Fix possible supplier PM-usage counter imbalance
+ - [armhf] usb: phy: twl6030-usb: fix possible use-after-free on remove
+ - block: don't use bio->bi_vcnt to figure out segment number
+ - keys: Timestamp new keys
+ - [armhf] net: dsa: b53: Fix default VLAN ID
+ - [armhf] net: dsa: b53: Properly account for VLAN filtering
+ - [armhf] net: dsa: b53: Do not program CPU port's PVID
+ - mt76: usb: fix possible memory leak in mt76u_buf_free
+ - vfio_pci: Enable memory accesses before calling pci_map_rom
+ - mdio_bus: Fix PTR_ERR() usage after initialization to constant
+ - [powerpc*] KVM: Release all hardware TCE tables attached to a group
+ - [x86] staging: r8822be: check kzalloc return or bail
+ - [arm*] dmaengine: mv_xor: Use correct device for DMA API
+ - cdc-wdm: pass return value of recover_from_urb_loss
+ - brcmfmac: create debugfs files for bus-specific layer
+ - net/mlx5: Delete unused FPGA QPN variable
+ - drm/nouveau/bios/ramcfg: fix missing parentheses when calculating RON
+ - drm/nouveau/pmu: don't print reply values if exec is false
+ - drm/nouveau: fix missing break in switch statement
+ - driver core: Fix PM-runtime for links added during consumer probe
+ - [arm64] ASoC: qcom: Fix of-node refcount unbalance in
+ apq8016_sbc_parse_of()
+ - [arm64,armhf] net: dsa: fix unintended change of bridge interface STP
+ state
+ - fs/nfs: Fix nfs_parse_devname to not modify it's argument
+ - [x86] staging: rtlwifi: Use proper enum for return in
+ halmac_parse_psd_data_88xx
+ - [ppc64el] 64s: Fix logic when handling unknown CPU features
+ - NFS: Fix a soft lockup in the delegation recovery code
+ - perf: Copy parent's address filter offsets on clone
+ - perf, pt, coresight: Fix address filters for vmas with non-zero offset
+ - [armhf] clocksource/drivers/sun5i: Fail gracefully when clock rate is
+ unavailable
+ - [armhf] clocksource/drivers/exynos_mct: Fix error path in timer
+ resources initialization
+ - [x86] platform/x86: wmi: fix potential null pointer dereference
+ - NFS/pnfs: Bulk destroy of layouts needs to be safe w.r.t. umount
+ - ath10k: Fix length of wmi tlv command for protected mgmt frames
+ - netfilter: nft_set_hash: fix lookups with fixed size hash on big endian
+ - netfilter: nft_set_hash: bogus element self comparison from deactivation
+ path
+ - net: sched: act_csum: Fix csum calc for tagged packets
+ - [arm*] hwrng: bcm2835 - fix probe as platform device
+ - [amd64] iommu/vt-d: Fix NULL pointer reference in intel_svm_bind_mm()
+ - NFS: Add missing encode / decode sequence_maxsz to v4.2 operations
+ - NFSv4/flexfiles: Fix invalid deref in FF_LAYOUT_DEVID_NODE()
+ - [amd64] net: aquantia: fixed instack structure overflow
+ - media: dvb/earth-pt1: fix wrong initialization for demod blocks
+ - rbd: clear ->xferred on error from rbd_obj_issue_copyup()
+ - PCI: Fix "try" semantics of bus and slot reset
+ - scsi: megaraid_sas: reduce module load time
+ - xen, cpu_hotplug: Prevent an out of bounds access
+ - net/mlx5: Fix multiple updates of steering rules in parallel
+ - net/mlx5e: IPoIB, Fix RX checksum statistics update
+ - [arm64,armhf] soc: amlogic: gx-socinfo: Add mask for each SoC packages
+ - media: ivtv: update *pos correctly in ivtv_read_pos()
+ - media: cx18: update *pos correctly in cx18_read_pos()
+ - [armhf] media: wl128x: Fix an error code in fm_download_firmware()
+ - media: cx23885: check allocation return
+ - jfs: fix bogus variable self-initialization
+ - [armhf] dts: sun9i: optimus: Fix fixed-regulators
+ - net: phy: don't clear BMCR in genphy_soft_reset
+ - [armhf] OMAP2+: Fix potentially uninitialized return value for
+ _setup_reset()
+ - [arm64,armhf] net: dsa: Avoid null pointer when failing to connect to
+ PHY
+ - media: tw5864: Fix possible NULL pointer dereference in
+ tw5864_handle_frame
+ - [arm64,armhf] spi: tegra114: clear packed bit for unpacked mode
+ - [arm64,armhf] spi: tegra114: fix for unpacked mode transfers
+ - [arm64,armhf] spi: tegra114: terminate dma and reset on transfer timeout
+ - [arm64,armhf] spi: tegra114: flush fifos
+ - [arm64,armhf] spi: tegra114: configure dma burst size to fifo trig level
+ - [armhf] bus: ti-sysc: Fix sysc_unprepare() when no clocks have been
+ allocated
+ - [arm*] spi: bcm2835aux: fix driver to not allow 65535 (=-1) cs-gpios
+ - drm/fb-helper: generic: Call drm_client_add() after setup is done
+ - [arm64] vdso: don't leak kernel addresses
+ - rtc: Fix timestamp value for RTC_TIMESTAMP_BEGIN_1900
+ - bpf: Add missed newline in verifier verbose log
+ - [x86] drm/vmwgfx: Remove set but not used variable 'restart'
+ - scsi: qla2xxx: Unregister chrdev if module initialization fails
+ - net/sched: cbs: fix port_rate miscalculation
+ - ACPI: button: reinitialize button state upon resume
+ - [arm64,armhf] firmware: arm_scmi: fix of_node leak in scmi_mailbox_check
+ - rxrpc: Fix detection of out of order acks
+ - scsi: target/core: Fix a race condition in the LUN lookup code
+ - brcmfmac: fix leak of mypkt on error return path
+ - [arm64] net: hns3: fix for vport->bw_limit overflow problem
+ - [x86] hwmon: (w83627hf) Use request_muxed_region for Super-IO accesses
+ - perf/core: Fix the address filtering fix
+ - [arm64,armhf] soc: amlogic: meson-gx-pwrc-vpu: Fix power on/off register
+ bitmask
+ - [x86] platform/x86: alienware-wmi: fix kfree on potentially
+ uninitialized pointer
+ - tipc: set sysctl_tipc_rmem and named_timeout right range
+ - usb: typec: tcpm: Notify the tcpc to start connection-detection for SRPs
+ - [arm64] net: hns3: fix loop condition of hns3_get_tx_timeo_queue_info()
+ - 6lowpan: Off by one handling ->nexthdr
+ - ALSA: usb-audio: Handle the error from
+ snd_usb_mixer_apply_create_quirk()
+ - afs: Fix AFS file locking to allow fine grained locks
+ - afs: Further fix file locking
+ - NFS: Don't interrupt file writeout due to fatal errors
+ - scsi: qla2xxx: Fix a format specifier
+ - scsi: qla2xxx: Fix error handling in qlt_alloc_qfull_cmd()
+ - scsi: qla2xxx: Avoid that qlt_send_resp_ctio() corrupts memory
+ - [ppc64el] KVM: PPC: Book3S HV: Fix lockdep warning when entering the
+ guest
+ - netfilter: nft_flow_offload: add entry to flowtable after confirmation
+ - packet: in recvmsg msg_name return at least sizeof sockaddr_ll
+ - ASoC: fix valid stream condition
+ - [arm*] dwc2: gadget: Fix completed transfer size calculation in DDMA
+ - IB/mlx5: Add missing XRC options to QP optional params mask
+ - RDMA/rxe: Consider skb reserve space based on netdev of GID
+ - [amd64] iommu/vt-d: Make kernel parameter igfx_off work with vIOMMU
+ - [arm64] dmaengine: tegra210-adma: restore channel status
+ - mmc: core: fix possible use after free of host
+ - ath10k: Fix encoding for protected management frames
+ - afs: Fix the afs.cell and afs.volume xattr handlers
+ - l2tp: Fix possible NULL pointer dereference
+ - [x86] platform/x86: alienware-wmi: printing the wrong error code
+ - netfilter: ebtables: CONFIG_COMPAT: reject trailing data after last rule
+ - [arm64,armhf] pwm: meson: Consider 128 a valid pre-divider
+ - [arm64,armhf] pwm: meson: Don't disable PWM when setting duty repeatedly
+ - nfp: bpf: fix static check error through tightening shift amount
+ adjustment
+ - netfilter: nf_tables: correct NFT_LOGLEVEL_MAX value
+ - [arm*] thermal: cpu_cooling: Actually trace CPU load in
+ thermal_power_cpu_get_power
+ - EDAC/mc: Fix edac_mc_find() in case no device is found
+ - afs: Fix key leak in afs_release() and afs_evict_inode()
+ - afs: Don't invalidate callback if AFS_VNODE_DIR_VALID not set
+ - afs: Fix lock-wait/callback-break double locking
+ - afs: Fix double inc of vnode->cb_break
+ - [armhf] dts: sun8i-h3: Fix wifi in Beelink X2 DT
+ - [arm64] clk: meson: gxbb: no spread spectrum on mpll0
+ - [arm64] clk: meson: axg: spread spectrum is on mpll2
+ - [arm64] dmaengine: tegra210-adma: Fix crash during probe
+ - [arm64] dts: meson: libretech-cc: set eMMC as removable
+ - RDMA/qedr: Fix incorrect device rate.
+ - [x86] crypto: ccp - fix AES CFB error exposed by new test vectors
+ - [x86] crypto: ccp - Fix 3DES complaint from ccp-crypto module
+ - iommu: Add missing new line for dma type
+ - iommu: Use right function to get group for device
+ - signal/cifs: Fix cifs_put_tcp_session to call send_sig instead of
+ force_sig
+ - inet: frags: call inet_frags_fini() after unregister_pernet_subsys()
+ - [arm64] net: hns3: fix a memory leak issue for
+ hclge_map_unmap_ring_to_vf_vector
+ - [x86] netvsc: unshare skb in VF rx handler
+ - net: core: support XDP generic on stacked devices.
+ - RDMA/uverbs: check for allocation failure in uapi_add_elm()
+ - net: don't clear sock->sk early to avoid trouble in strparser
+ - [arm64] phy: qcom-qusb2: fix missing assignment of ret when calling
+ clk_prepare_enable
+ - [arm64] clk: sunxi-ng: sun50i-h6-r: Fix incorrect W1 clock gate register
+ - media: vivid: fix incorrect assignment operation when setting video mode
+ - [arm64] crypto: inside-secure - fix zeroing of the request in
+ ahash_exit_inv
+ - [arm64] crypto: inside-secure - fix queued len computation
+ - mpls: fix warning with multi-label encap
+ - [arm64] dts: meson-gxm-khadas-vim2: fix gpio-keys-polled node
+ - [arm64] dts: meson-gxm-khadas-vim2: fix Bluetooth support
+ - [amd64] iommu/vt-d: Duplicate iommu_resv_region objects per device list
+ - qed: iWARP - Use READ_ONCE and smp_store_release to access ep->state
+ - qed: iWARP - fix uninitialized callback
+ - [powerpc*] cacheinfo: add cacheinfo_teardown, cacheinfo_rebuild
+ - [powerpc*] pseries/mobility: rebuild cacheinfo hierarchy post-migration
+ - bpf: fix the check that forwarding is enabled in bpf_ipv6_fib_lookup
+ - [amd64] IB/hfi1: Handle port down properly in pio
+ - [arm64] drm/msm/mdp5: Fix mdp5_cfg_init error return
+ - net: netem: fix backlog accounting for corrupted GSO frames
+ - net/udp_gso: Allow TX timestamp with UDP GSO
+ - [s390x] net/af_iucv: build proper skbs for HiperTransport
+ - [s390x] net/af_iucv: always register net_device notifier
+ - [armhf] ASoC: ti: davinci-mcasp: Fix slot mask settings when using
+ multiple AXRs
+ - rtc: pcf8563: Fix interrupt trigger method
+ - rtc: pcf8563: Clear event flags and disable interrupts before requesting
+ irq
+ - net/sched: cbs: Fix error path of cbs_module_init
+ - [arm64] drm/msm/a3xx: remove TPL1 regs from snapshot
+ - ip6_fib: Don't discard nodes with valid routing information in
+ fib6_locate_1()
+ - perf/ioctl: Add check for the sample_period value
+ - [x86] dmaengine: hsu: Revert "set HSU_CH_MTSR to memory width"
+ - tools: bpftool: use correct argument in cgroup errors
+ - fork,memcg: alloc_thread_stack_node needs to set tsk->stack
+ - bnxt_en: Fix ethtool selftest crash under error conditions.
+ - bnxt_en: Suppress error messages when querying DSCP DCB capabilities.
+ - [amd64] iommu: Make iommu_disable safer
+ - [x86] mfd: intel-lpss: Release IDA resources
+ - rxrpc: Fix uninitialized error code in rxrpc_send_data_packet()
+ - xprtrdma: Fix use-after-free in rpcrdma_post_recvs
+ - PM: ACPI/PCI: Resume all devices during hibernation
+ - ACPI: PM: Simplify and fix PM domain hibernation callbacks
+ - ACPI: PM: Introduce "poweroff" callbacks for ACPI PM domain and LPSS
+ - devres: allow const resource arguments
+ - [arm64] RDMA/hns: Fixs hw access invalid dma memory error
+ - ceph: fix "ceph.dir.rctime" vxattr value
+ - xdp: fix possible cq entry leak
+ - scsi: libfc: fix null pointer dereference on a null lport
+ - xfrm interface: ifname may be wrong in logs
+ - [armhf] clk: sunxi-ng: v3s: add the missing PLL_DDR1
+ - PM: sleep: Fix possible overflow in pm_system_cancel_wakeup()
+ - libertas_tf: Use correct channel range in lbtf_geo_init
+ - qed: reduce maximum stack frame size
+ - usb: host: xhci-hub: fix extra endianness conversion
+ - [x86] crypto: ccp - Reduce maximum stack usage
+ - tipc: reduce risk of wakeup queue starvation
+ - net/mlx5: Fix mlx5_ifc_query_lag_out_bits
+ - cifs: fix rmmod regression in cifs.ko caused by force_sig changes
+ - net: fix bpf_xdp_adjust_head regression for generic-XDP
+ - cxgb4: smt: Add lock for atomic_dec_and_test
+ - ext4: set error return correctly when ext4_htree_store_dirent fails
+ - [arm64] RDMA/hns: Bugfix for slab-out-of-bounds when unloading hip08
+ driver
+ - [arm64] RDMA/hns: bugfix for slab-out-of-bounds when loading hip08
+ driver
+ - net/rds: Add a few missing rds_stat_names entries
+ - tools: bpftool: fix arguments for p_err() in do_event_pipe()
+ - tools: bpftool: fix format strings and arguments for jsonw_printf()
+ - bnxt_en: Fix handling FRAG_ERR when NVM_INSTALL_UPDATE cmd fails
+ - signal: Allow cifs and drbd to receive their terminating signals
+ - [ppc64el] 64s/radix: Fix memory hot-unplug page table split
+ - [x86] dmaengine: dw: platform: Switch to acpi_dma_controller_register()
+ - mac80211: minstrel_ht: fix per-group max throughput rate initialization
+ - i40e: reduce stack usage in i40e_set_fc
+ - [armhf] 8896/1: VDSO: Don't leak kernel addresses
+ - [mips*] avoid explicit UB in assignment of mips_io_port_base
+ - media: em28xx: Fix exception handling in em28xx_alloc_urbs()
+ - ahci: Do not export local variable ahci_em_messages
+ - rxrpc: Fix lack of conn cleanup when local endpoint is cleaned up
+ - Partially revert "kfifo: fix kfifo_alloc() and kfifo_init()"
+ - hwmon: (lm75) Fix write operations for negative temperatures
+ - net/sched: cbs: Set default link speed to 10 Mbps in cbs_set_port_rate
+ - power: supply: Init device wakeup after device_add()
+ - [x86] perf: Fix the dependency of the x86 insn decoder selftest
+ - irqdomain: Add the missing assignment of domain->fwnode for named fwnode
+ - bcma: fix incorrect update of BCMA_CORE_PCI_MDIO_DATA
+ - bcache: Fix an error code in bch_dump_read()
+ - netfilter: ctnetlink: honor IPS_OFFLOAD flag
+ - [arm64] wcn36xx: use dynamic allocation for large variables
+ - xsk: avoid store-tearing when assigning queues
+ - xsk: avoid store-tearing when assigning umem
+ - led: triggers: Fix dereferencing of null pointer
+ - [arm64] net: hns3: fix error VF index when setting VLAN offload
+ - rtlwifi: Fix file release memory leak
+ - f2fs: fix wrong error injection path in inc_valid_block_count()
+ - f2fs: fix error path of f2fs_convert_inline_page()
+ - [x86] scsi: fnic: fix msix interrupt allocation
+ - Btrfs: fix hang when loading existing inode cache off disk
+ - Btrfs: fix inode cache waiters hanging on failure to start caching
+ thread
+ - Btrfs: fix inode cache waiters hanging on path allocation failure
+ - btrfs: use correct count in btrfs_file_write_iter()
+ - ixgbe: sync the first fragment unconditionally
+ - ath10k: adjust skb length in ath10k_sdio_mbox_rx_packet
+ - RDMA/cma: Fix false error message
+ - net/rds: Fix 'ib_evt_handler_call' element in 'rds_ib_stat_names'
+ - bnxt_en: Increase timeout for HWRM_DBG_COREDUMP_XX commands
+ - f2fs: fix to avoid accessing uninitialized field of inode page in
+ is_alive()
+ - [powerpc*] mm/mce: Keep irqs disabled during lockless page table walk
+ - bpf: fix BTF limits
+ - [amd64] iommu: Wait for completion of IOTLB flush in attach_device
+ - [amd64] net: aquantia: Fix aq_vec_isr_legacy() return value
+ - cxgb4: Signedness bug in init_one()
+ - [arm64] net: hisilicon: Fix signedness bug in hix5hd2_dev_probe()
+ - [arm64] net: netsec: Fix signedness bug in netsec_probe()
+ - [arm64,armhf] net: stmmac: dwmac-meson8b: Fix signedness bug in probe
+ - of: mdio: Fix a signedness bug in of_phy_get_and_connect()
+ - [arm64] net: ethernet: stmmac: Fix signedness bug in
+ ipq806x_gmac_of_parse()
+ - net: sched: cbs: Avoid division by zero when calculating the port rate
+ - nvme: retain split access workaround for capability reads
+ - [arm64,armhf] net: stmmac: gmac4+: Not all Unicast addresses may be
+ available
+ - rxrpc: Fix trace-after-put looking at the put connection record
+ - mac80211: accept deauth frames in IBSS mode
+ - llc: fix another potential sk_buff leak in llc_ui_sendmsg()
+ - llc: fix sk_buff refcounting in llc_conn_state_process()
+ - ip6erspan: remove the incorrect mtu limit for ip6erspan
+ - [arm64,armhf] net: stmmac: fix length of PTP clock's name string
+ - [arm64,armhf] net: stmmac: fix disabling flexible PPS output
+ - sctp: add chunks to sk_backlog when the newsk sk_socket is not set
+ - [s390x] qeth: Fix error handling during VNICC initialization
+ - [s390x] qeth: Fix initialization of vnicc cmd masks during set online
+ - act_mirred: Fix mirred_init_module error handling
+ - net: avoid possible false sharing in sk_leave_memory_pressure()
+ - net: add {READ|WRITE}_ONCE() annotations on ->rskq_accept_head
+ - tcp: annotate lockless access to tcp_memory_pressure
+ - net/smc: receive returns without data
+ - net/smc: receive pending data after RCV_SHUTDOWN
+ - [arm64] drm/msm/dsi: Implement reset correctly
+ - [armhf] dmaengine: imx-sdma: fix size check for sdma script_number
+ - [arm64] hibernate: check pgd table allocation
+ - net: netem: fix error path for corrupted GSO frames
+ - net: netem: correct the parent's backlog when corrupted packet was
+ dropped
+ - xsk: Fix registration of Rx-only sockets
+ - bpf, offload: Unlock on error in bpf_offload_dev_create()
+ - afs: Fix missing timeout reset
+ - [x86] hv_netvsc: Fix offset usage in netvsc_send_table()
+ - [x86] hv_netvsc: Fix send_table offset in case of a host bug
+ - afs: Fix large file support
+ - [armhf] hwrng: omap3-rom - Fix missing clock by probing with device tree
+ - [mips64el,mipsel] Loongson: Fix return value of loongson_hwmon_init
+ - [x86] hv_netvsc: flag software created hash value
+ - net: neigh: use long type to store jiffies delta
+ - packet: fix data-race in fanout_flow_is_huge()
+ - affs: fix a memory leak in affs_remount
+ - afs: Remove set but not used variables 'before', 'after'
+ - [armhf] dmaengine: ti: edma: fix missed failure handling
+ - drm/radeon: fix bad DMA from INTERRUPT_CNTL2
+ - [arm64] dts: meson-gxm-khadas-vim2: fix uart_A bluetooth node
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.100
+ - can, slip: Protect tty->disc_data in write_wakeup and close with RCU
+ - [x86] firestream: fix memory leaks
+ - gtp: make sure only SOCK_DGRAM UDP sockets are accepted
+ - ipv6: sr: remove SKB_GSO_IPXIP6 on End.D* actions
+ - net: cxgb3_main: Add CAP_NET_ADMIN check to CHELSIO_GET_MEM
+ - net: ip6_gre: fix moving ip6gre between namespaces
+ - net, ip6_tunnel: fix namespaces move
+ - net, ip_tunnel: fix namespaces move
+ - net: rtnetlink: validate IFLA_MTU attribute in rtnl_create_link()
+ - net_sched: fix datalen for ematch
+ - net-sysfs: Fix reference count leak in rx|netdev_queue_add_kobject
+ - net-sysfs: fix netdev_queue_add_kobject() breakage
+ - net-sysfs: Call dev_hold always in netdev_queue_add_kobject
+ - net-sysfs: Call dev_hold always in rx_queue_add_kobject
+ - net-sysfs: Fix reference count leak
+ - net: usb: lan78xx: Add .ndo_features_check
+ - Revert "udp: do rmem bulk free even if the rx sk queue is empty"
+ - tcp_bbr: improve arithmetic division in bbr_update_bw()
+ - tcp: do not leave dangling pointers in tp->highest_sack
+ - tun: add mutex_unlock() call and napi.skb clearing in tun_get_user()
+ - afs: Fix characters allowed into cell names
+ - hwmon: (adt7475) Make volt2reg return same reg as reg2volt input
+ - hwmon: (core) Do not use device managed functions for memory allocations
+ - PCI: Mark AMD Navi14 GPU rev 0xc5 ATS as broken
+ - tracing: trigger: Replace unneeded RCU-list traversals
+ - Input: keyspan-remote - fix control-message timeouts
+ - [x86] Revert "Input: synaptics-rmi4 - don't increment rmiaddr for SMBus
+ transfers"
+ - [arm64,armhf] mmc: tegra: fix SDR50 tuning override
+ - mmc: sdhci: fix minimum clock rate for v3 controller
+ - [arm64] Documentation: Document arm64 kpti control
+ - Input: sur40 - fix interface sanity checks
+ - Input: gtco - fix endpoint sanity check
+ - Input: aiptek - fix endpoint sanity check
+ - Input: pegasus_notetaker - fix endpoint sanity check
+ - [armhf] Input: sun4i-ts - add a check for
+ devm_thermal_zone_of_sensor_register
+ - netfilter: nft_osf: add missing check for DREG attribute
+ - hwmon: (nct7802) Fix voltage limits to wrong registers
+ - do_last(): fetch directory ->i_mode and ->i_uid before it's too late
+ (CVE-2020-8428)
+ - sd: Fix REQ_OP_ZONE_REPORT completion handling
+ - [i386] crypto: geode-aes - switch to skcipher for cbc(aes) fallback
+ - media: v4l2-ioctl.c: zero reserved fields for S/TRY_FMT
+ - scsi: iscsi: Avoid potential deadlock in iscsi_if_rx func
+ - netfilter: ipset: use bitmap infrastructure completely
+ - netfilter: nf_tables: add __nft_chain_type_get()
+ - mm/memory_hotplug: make remove_memory() take the device_hotplug_lock
+ - mm, sparse: drop pgdat_resize_lock in sparse_add/remove_one_section()
+ - mm, sparse: pass nid instead of pgdat to sparse_add_one_section()
+ - drivers/base/memory.c: remove an unnecessary check on NR_MEM_SECTIONS
+ - mm, memory_hotplug: add nid parameter to arch_remove_memory
+ - mm/memory_hotplug: release memory resource after arch_remove_memory()
+ - drivers/base/memory.c: clean up relics in function parameters
+ - mm, memory_hotplug: update a comment in unregister_memory()
+ - mm/memory_hotplug: make unregister_memory_section() never fail
+ - mm/memory_hotplug: make __remove_section() never fail
+ - [powerpc*] mm: Fix section mismatch warning
+ - mm/memory_hotplug: make __remove_pages() and arch_remove_memory() never
+ fail
+ - [s390x] mm: implement arch_remove_memory()
+ - mm/memory_hotplug: allow arch_remove_memory() without
+ CONFIG_MEMORY_HOTREMOVE
+ - drivers/base/memory: pass a block_id to init_memory_block()
+ - mm/memory_hotplug: create memory block devices after arch_add_memory()
+ - mm/memory_hotplug: remove memory block devices before
+ arch_remove_memory()
+ - mm/memory_hotplug: make unregister_memory_block_under_nodes() never fail
+ - mm/memory_hotplug: remove "zone" parameter from
+ sparse_remove_one_section
+ - mm/hotplug: kill is_dev_zone() usage in __remove_pages()
+ - drivers/base/node.c: simplify unregister_memory_block_under_nodes()
+ - mm/memunmap: don't access uninitialized memmap in memunmap_pages()
+ - mm/memory_hotplug: fix try_offline_node()
+ - mm/memory_hotplug: shrink zones when offlining memory
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.101
+ - orinoco_usb: fix interface sanity check
+ - rsi_91x_usb: fix interface sanity check
+ - USB: serial: ir-usb: add missing endpoint sanity check
+ - USB: serial: ir-usb: fix link-speed handling
+ - USB: serial: ir-usb: fix IrLAP framing
+ - [arm64,armhf] usb: dwc3: turn off VBUS when leaving host mode
+ - staging: wlan-ng: ensure error return is actually returned
+ - [x86] staging: vt6656: correct packet types for CTS protect, mode.
+ - [x86] staging: vt6656: use NULLFUCTION stack on mac80211
+ - [x86] staging: vt6656: Fix false Tx excessive retries reporting.
+ - [arm64,armel] serial: 8250_bcm2835aux: Fix line mismatch on driver
+ unbind
+ - component: do not dereference opaque pointer in debugfs
+ - [x86] mei: me: add comet point (lake) H device ids
+ - crypto: chelsio - fix writing tfm flags to wrong place
+ - cifs: Fix memory allocation in __smb2_handle_cancelled_cmd()
+ - ath9k: fix storage endpoint lookup
+ - brcmfmac: fix interface sanity check
+ - rtl8xxxu: fix interface sanity check
+ - zd1211rw: fix storage endpoint lookup
+ - net_sched: ematch: reject invalid TCF_EM_SIMPLE
+ - net_sched: fix ops->bind_class() implementations
+ - HID: multitouch: Add LG MELF0410 I2C touchscreen support
+ - HID: Add quirk for Xin-Mo Dual Controller
+ - HID: ite: Add USB id match for Acer SW5-012 keyboard dock
+ - [x86] HID: Add quirk for incorrect input length on Lenovo Y720
+ - drivers/hid/hid-multitouch.c: fix a possible null pointer access.
+ - [arm64] phy: qcom-qmp: Increase PHY ready timeout
+ - drivers/net/b44: Change to non-atomic bit operations on pwol_mask
+ - [i386] net: wan: sdla: Fix cast from pointer to integer of different
+ size
+ - [arm64] gpio: max77620: Add missing dependency on GPIOLIB_IRQCHIP
+ - atm: eni: fix uninitialized variable warning
+ - HID: steam: Fix input device disappearing
+ - [x86] platform/x86: dell-laptop: disable kbd backlight on Inspiron 10xx
+ - [amd64] PCI: Add DMA alias quirk for Intel VCA NTB
+ - [amd64] iommu: Support multiple PCI DMA aliases in IRQ Remapping
+ - usb-storage: Disable UAS on JMicron SATA enclosure
+ - sched/fair: Add tmp_alone_branch assertion
+ - sched/fair: Fix insertion in rq->leaf_cfs_rq_list
+ - rsi: fix use-after-free on probe errors
+ - rsi: fix memory leak on failed URB submission
+ - rsi: fix non-atomic allocation in completion handler
+ - crypto: af_alg - Use bh_lock_sock in sk_destruct
+ - block: cleanup __blkdev_issue_discard()
+ - block: fix 32 bit overflow in __blkdev_issue_discard()
+ - [arm64] KVM: Write arch.mdcr_el2 changes since last vcpu_load on VHE
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.102
+ - vfs: fix do_last() regression
+ - crypto: pcrypt - Fix user-after-free on module unload
+ - perf c2c: Fix return type for histogram sorting comparision functions
+ - PM / devfreq: Add new name attribute for sysfs
+ - tools lib: Fix builds when glibc contains strlcpy()
+ - ext4: validate the debug_want_extra_isize mount option at parse time
+ - mm/mempolicy.c: fix out of bounds write in mpol_parse_str()
+ - reiserfs: Fix memory leak of journal device string
+ - media: digitv: don't continue if remote control state can't be read
+ - media: af9005: uninitialized variable printked
+ - media: vp7045: do not read uninitialized values if usb transfer fails
+ - media: gspca: zero usb_buf
+ - media: dvb-usb/dvb-usb-urb.c: initialize actlen to 0
+ - tomoyo: Use atomic_t for statistics counter
+ - ttyprintk: fix a potential deadlock in interrupt context issue
+ - Bluetooth: Fix race condition in hci_release_sock()
+ - cgroup: Prevent double killing of css when enabling threaded cgroup
+ - [armhf] dts: sun8i: a83t: Correct USB3503 GPIOs polarity
+ - [armhf] dts: am57xx-beagle-x15/am57xx-idk: Remove "gpios" for endpoint
+ dt nodes
+ - [armhf] dts: beagle-x15-common: Model 5V0 regulator
+ - [arm64] clk: sunxi-ng: h6-r: Fix AR100/R_APB2 parent order
+ - mac80211: mesh: restrict airtime metric to peered established plinks
+ - ASoC: rt5640: Fix NULL dereference on module unload
+ - ixgbevf: Remove limit of 10 entries for unicast filter list
+ - ixgbe: Fix calculation of queue with VFs and flow director on interface
+ flap
+ - igb: Fix SGMII SFP module discovery for 100FX/LX.
+ - [x86] platform/x86: GPD pocket fan: Allow somewhat lower/higher
+ temperature limits
+ - qmi_wwan: Add support for Quectel RM500Q
+ - wireless: fix enabling channel 12 for custom regulatory domain
+ - cfg80211: Fix radar event during another phy CAC
+ - mac80211: Fix TKIP replay protection immediately after key setup
+ - netfilter: nft_tunnel: ERSPAN_VERSION must not be null
+ - [armhf] net: dsa: bcm_sf2: Configure IMP port for 2Gb/sec
+ - bnxt_en: Fix ipv6 RFS filter matching logic.
+ - iwlwifi: Don't ignore the cap field upon mcc update
+ - [armhf] dts: am335x-boneblack-common: fix memory size
+ - vti[6]: fix packet tx through bpf_redirect()
+ - xfrm interface: fix packet tx through bpf_redirect()
+ - xfrm: interface: do not confirm neighbor when do pmtu update
+ - scsi: fnic: do not queue commands during fwreset
+ - [armhf] 8955/1: virt: Relax arch timer version check during early boot
+ - [arm64] tee: optee: Fix compilation issue with nommu
+ - airo: Fix possible info leak in AIROOLDIOCTL/SIOCDEVPRIVATE
+ - airo: Add missing CAP_NET_ADMIN check in AIROOLDIOCTL/SIOCDEVPRIVATE
+ - r8152: get default setting of WOL before initializing
+ - qlcnic: Fix CPU soft lockup while collecting firmware dump
+ - seq_tab_next() should increase position index
+ - l2t_seq_next should increase position index
+ - net: Fix skb->csum update in inet_proto_csum_replace16().
+ - btrfs: do not zero f_bavail if we have available space
+ - perf report: Fix no libunwind compiled warning break s390 issue
+ - mm/migrate.c: also overwrite error when it is bigger than zero
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.103
+ - [armhf] Revert "drm/sun4i: dsi: Change the start delay calculation"
+ - ovl: fix lseek overflow on 32bit
+ - kernel/module: Fix memleak in module_add_modinfo_attrs()
+ - media: iguanair: fix endpoint sanity check
+ - ocfs2: fix oops when writing cloned file
+ - [x86] cpu: Update cached HLE state on write to TSX_CTRL_CPUID_CLEAR
+ - udf: Allow writing to 'Rewritable' partitions
+ - printk: fix exclusive_console replaying
+ - iwlwifi: mvm: fix NVM check for 3168 devices
+ - gtp: use __GFP_NOWARN to avoid memalloc warning
+ - l2tp: Allow duplicate session creation with UDP
+ - net_sched: fix an OOB access in cls_tcindex
+ - [arm64,armhf] net: stmmac: Delete txtimer in suspend()
+ - bnxt_en: Fix TC queue mapping.
+ - tcp: clear tp->total_retrans in tcp_disconnect()
+ - tcp: clear tp->delivered in tcp_disconnect()
+ - tcp: clear tp->data_segs{in|out} in tcp_disconnect()
+ - tcp: clear tp->segs_{in|out} in tcp_disconnect()
+ - rxrpc: Fix use-after-free in rxrpc_put_local()
+ - rxrpc: Fix insufficient receive notification generation
+ - rxrpc: Fix missing active use pinning of rxrpc_local object
+ - rxrpc: Fix NULL pointer deref due to call->conn being cleared on
+ disconnect
+ - media: uvcvideo: Avoid cyclic entity chains due to malformed USB
+ descriptors
+ - ipc/msg.c: consolidate all xxxctl_down() functions
+ - tracing: Fix sched switch start/stop refcount racy updates
+ - rcu: Avoid data-race in rcu_gp_fqs_check_wake()
+ - brcmfmac: Fix memory leak in brcmf_usbdev_qinit
+ - usb: gadget: f_ncm: Use atomic_t to track in-flight request
+ - usb: gadget: f_ecm: Use atomic_t to track in-flight request
+ - ALSA: usb-audio: Fix endianess in descriptor validation
+ - ALSA: dummy: Fix PCM format loop in proc output
+ - mm/memory_hotplug: fix remove_memory() lockdep splat
+ - mm: move_pages: report the number of non-attempted pages
+ - media/v4l2-core: set pages dirty upon releasing DMA buffers
+ - media: v4l2-core: compat: ignore native command codes
+ - media: v4l2-rect.h: fix v4l2_rect_map_inside() top/left adjustments
+ - irqdomain: Fix a memory leak in irq_domain_push_irq()
+ - [x86] platform/x86: intel_scu_ipc: Fix interrupt support
+ - [x86] ALSA: hda: Add Clevo W65_67SB the power_save blacklist
+ - [arm64] KVM: Correct PSTATE on exception entry
+ - [arm64,armhf] KVM: Correct CPSR on exception entry
+ - [arm64,armhf] KVM: Correct AArch32 SPSR on exception entry
+ - [arm64] KVM: Only sign-extend MMIO up to register width
+ - [s390x] mm: fix dynamic pagetable upgrade for hugetlbfs
+ - [powerpc*] pseries: Advance pfn if section is not present in
+ lmb_is_removable()
+ - smb3: fix signing verification of large reads
+ - [arm64,armhf] PCI: tegra: Fix return value check of
+ pm_runtime_get_sync()
+ - [arm64,armhf] mmc: spi: Toggle SPI polarity, do not hardcode it
+ - [x86] ACPI: video: Do not export a non working backlight interface on MSI
+ MS-7721 boards
+ - [x86] ACPI / battery: Deal with design or full capacity being reported
+ as -1
+ - [x86] ACPI / battery: Use design-cap for capacity calculations if
+ full-cap is not available
+ - [x86] ACPI / battery: Deal better with neither design nor full capacity
+ not being reported
+ - alarmtimer: Unregister wakeup source when module get fails
+ - ubifs: Reject unsupported ioctl flags explicitly
+ - ubifs: don't trigger assertion on invalid no-key filename
+ - ubifs: Fix FS_IOC_SETFLAGS unexpectedly clearing encrypt flag
+ - ubifs: Fix deadlock in concurrent bulk-read and writepage
+ - [i386] crypto: geode-aes - convert to skcipher API and make thread-safe
+ - [x86] hv_balloon: Balloon up according to request page number
+ - mfd: axp20x: Mark AXP20X_VBUS_IPSOUT_MGMT as volatile
+ - crypto: api - Check spawn->alg under lock in crypto_drop_spawn
+ - scsi: qla2xxx: Fix mtcp dump collection failure
+ - ovl: fix wrong WARN_ON() in ovl_cache_update_ino()
+ - f2fs: choose hardlimit when softlimit is larger than hardlimit in
+ f2fs_statfs_project()
+ - f2fs: fix miscounted block limit in f2fs_statfs_project()
+ - f2fs: code cleanup for f2fs_statfs_project()
+ - PM: core: Fix handling of devices deleted during system-wide resume
+ - dm zoned: support zone sizes smaller than 128MiB
+ - dm space map common: fix to ensure new block isn't already in use
+ - dm crypt: fix benbi IV constructor crash if used in authenticated mode
+ - dm: fix potential for q->make_request_fn NULL pointer
+ - dm writecache: fix incorrect flush sequence when doing SSD mode commit
+ - padata: Remove broken queue flushing
+ - tracing: Annotate ftrace_graph_hash pointer with __rcu
+ - tracing: Annotate ftrace_graph_notrace_hash pointer with __rcu
+ - ftrace: Add comment to why rcu_dereference_sched() is open coded
+ - ftrace: Protect ftrace_graph_hash with ftrace_sync
+ - [x86] crypto: ccp - set max RSA modulus size for v3 platform devices as
+ well
+ - crypto: pcrypt - Do not clear MAY_SLEEP flag in original request
+ - crypto: api - Fix race condition in crypto_spawn_alg
+ - scsi: qla2xxx: Fix unbound NVME response length
+ - NFS: Fix memory leaks and corruption in readdir
+ - NFS: Directory page cache pages need to be locked when read
+ - jbd2_seq_info_next should increase position index
+ - Btrfs: fix missing hole after hole punching and fsync when using
+ NO_HOLES
+ - btrfs: set trans->drity in btrfs_commit_transaction
+ - Btrfs: fix race between adding and putting tree mod seq elements and
+ nodes
+ - [armhf] tegra: Enable PLLP bypass during Tegra124 LP1
+ - iwlwifi: don't throw error when trying to remove IGTK
+ - mwifiex: fix unbalanced locking in mwifiex_process_country_ie()
+ - sunrpc: expiry_time should be seconds not timeval
+ - gfs2: move setting current->backing_dev_info
+ - gfs2: fix O_SYNC write handling
+ - drm/rect: Avoid division by zero
+ - media: rc: ensure lirc is initialized before registering input device
+ - xen/balloon: Support xend-based toolstack take two
+ - watchdog: fix UAF in reboot notifier handling in watchdog core code
+ - bcache: add readahead cache policy options via sysfs interface
+ - eventfd: track eventfd_signal() recursion depth
+ - aio: prevent potential eventfd recursion on poll
+ - [x86] KVM: Refactor picdev_write() to prevent Spectre-v1/L1TF attacks
+ - [x86] KVM: Refactor prefix decoding to prevent Spectre-v1/L1TF attacks
+ - [x86] KVM: Protect pmu_intel.c from Spectre-v1/L1TF attacks
+ - [x86] KVM: Protect DR-based index computations from Spectre-v1/L1TF
+ attacks
+ - [x86] KVM: Protect kvm_lapic_reg_write() from Spectre-v1/L1TF attacks
+ - [x86] KVM: Protect kvm_hv_msr_[get|set]_crash_data() from Spectre-v1/L1TF
+ attacks
+ - [x86] KVM: Protect ioapic_write_indirect() from Spectre-v1/L1TF attacks
+ - [x86] KVM: Protect MSR-based index computations in pmu.h from
+ Spectre-v1/L1TF attacks
+ - [x86] KVM: Protect ioapic_read_indirect() from Spectre-v1/L1TF attacks
+ - [x86] KVM: Protect MSR-based index computations from Spectre-v1/L1TF
+ attacks in x86.c
+ - [x86] KVM: Protect x86_decode_insn from Spectre-v1/L1TF attacks
+ - [x86] KVM: Protect MSR-based index computations in
+ fixed_msr_to_seg_unit() from Spectre-v1/L1TF attacks
+ - [x86] KVM: Fix potential put_fpu() w/o load_fpu() on MPX platform
+ - [ppc64el] KVM: Book3S HV: Uninit vCPU if vcore creation fails
+ - [ppc64el] KVM: Book3S PR: Free shared page if mmu initialization fails
+ - [x86] kvm: Be careful not to clear KVM_VCPU_FLUSH_TLB bit
+ (CVE-2019-3016)
+ - [x86] KVM: Don't let userspace set host-reserved cr4 bits
+ - [x86] KVM: Free wbinvd_dirty_mask if vCPU creation fails
+ - [s390x] KVM: do not clobber registers during guest reset/store status
+ - [arm64,armhf] clk: tegra: Mark fuse clock as critical
+ - percpu: Separate decrypted varaibles anytime encryption can be enabled
+ - scsi: qla2xxx: Fix the endianness of the qla82xx_get_fw_size() return
+ type
+ - scsi: csiostor: Adjust indentation in csio_device_reset
+ - scsi: qla4xxx: Adjust indentation in qla4xxx_mem_free
+ - scsi: ufs: Recheck bkops level if bkops is disabled
+ - [arm64] phy: qualcomm: Adjust indentation in read_poll_timeout
+ - ext2: Adjust indentation in ext2_fill_super
+ - [arm64] drm: msm: mdp4: Adjust indentation in mdp4_dsi_encoder_enable
+ - IB/mlx5: Fix outstanding_pi index for GSI qps
+ - IB/core: Fix ODP get user pages flow
+ - nfsd: fix delay timer on 32-bit architectures
+ - nfsd: fix jiffies/time_t mixup in LRU list
+ - nfsd: Return the correct number of bytes written to the file
+ - ubi: fastmap: Fix inverted logic in seen selfcheck
+ - ubi: Fix an error pointer dereference in error handling code
+ - bonding/alb: properly access headers in bond_alb_xmit()
+ - [armhf] net: dsa: bcm_sf2: Only 7278 supports 2Gb/sec IMP port
+ - [arm64,armhf] net: mvneta: move rx_dropped and rx_errors in per-cpu
+ stats
+ - net_sched: fix a resource leak in tcindex_set_parms()
+ - net/mlx5: IPsec, Fix esp modify function attribute
+ - net/mlx5: IPsec, fix memory leak at mlx5_fpga_ipsec_delete_sa_ctx
+ - [arm64] net: macb: Remove unnecessary alignment check for TSO
+ - [arm64] net: macb: Limit maximum GEM TX length in TSO
+ - [armhf] net: dsa: b53: Always use dev->vlan_enabled in
+ b53_configure_vlan()
+ - ext4: fix deadlock allocating crypto bounce page from mempool
+ - btrfs: use bool argument in free_root_pointers()
+ - btrfs: free block groups after free'ing fs trees
+ - btrfs: flush write bio if we loop in extent_write_cache_pages
+ - [x86] KVM: mmu: Apply max PA check for MMIO sptes to 32-bit KVM
+ - [x86] KVM: Use gpa_t for cr2/gpa to fix TDP support on 32-bit KVM
+ - [x86] KVM: nVMX: vmread should not set rflags to specify success in case
+ of #PF
+ - KVM: Use vcpu-specific gva->hva translation when querying host page size
+ - KVM: Play nice with read-only memslots when querying host page size
+ - mm: zero remaining unavailable struct pages
+ - mm: return zero_resv_unavail optimization
+ - mm/page_alloc.c: fix uninitialized memmaps on a partially populated last
+ section
+ - cifs: fail i/o on soft mounts if sessionsetup errors out
+ - [x86] apic/msi: Plug non-maskable MSI affinity race
+ - clocksource: Prevent double add_timer_on() for watchdog_timer
+ - perf/core: Fix mlock accounting in perf_mmap()
+ - rxrpc: Fix service call disconnection
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.104
+ - ASoC: pcm: update FE/BE trigger order based on the command
+ - [x86] hv_sock: Remove the accept port restriction
+ - IB/mlx4: Fix memory leak in add_gid error flow
+ - RDMA/netlink: Do not always generate an ACK for some netlink operations
+ - RDMA/core: Fix locking in ib_uverbs_event_read
+ - scsi: ufs: Fix ufshcd_probe_hba() reture value in case
+ ufshcd_scsi_add_wlus() fails
+ - PCI/IOV: Fix memory leak in pci_iov_add_virtfn()
+ - ath10k: pci: Only dump ATH10K_MEM_REGION_TYPE_IOREG when safe
+ - PCI: Don't disable bridge BARs when assigning bus resources
+ - nfs: NFS_SWAP should depend on SWAP
+ - NFS: Revalidate the file size on a fatal write error
+ - NFS/pnfs: Fix pnfs_generic_prepare_to_resend_writes()
+ - NFSv4: try lease recovery on NFS4ERR_EXPIRED
+ - [arm64] serial: uartps: Add a timeout to the tx empty wait
+ - [arm64] gpio: zynq: Report gpio direction at boot
+ - spi: spi-mem: Add extra sanity checks on the op param
+ - spi: spi-mem: Fix inverted logic in op sanity check
+ - rtc: cmos: Stop using shared IRQ
+ - [x86] platform/x86: intel_mid_powerbtn: Take a copy of ddata
+ - [powerpc*] pseries/vio: Fix iommu_table use-after-free refcount warning
+ - [powerpc*] pseries: Allow not having ibm,
+ hypertas-functions::hcall-multi-tce for DDW
+ - [arm64] iommu/arm-smmu-v3: Populate VMID field for CMDQ_OP_TLBI_NH_VA
+ - [arm64,armhf] KVM: vgic-its: Fix restoration of unmapped collections
+ - [armel,armhf] 8949/1: mm: mark free_memmap as __init
+ - [arm64] cpufeature: Fix the type of no FP/SIMD capability
+ - [arm64] ptrace: nofpsimd: Fail FP/SIMD regset operations
+ - [arm64,armhf] KVM: Fix young bit from mmu notifier
+ - [arm64,armhf] KVM: Fix DFSR setting for non-LPAE aarch32 guests
+ - [arm64,armhf] KVM: Make inject_abt32() inject an external abort instead
+ - [arm64] KVM: pmu: Don't increment SW_INCR if PMCR.E is unset
+ - mtd: onenand_base: Adjust indentation in onenand_read_ops_nolock
+ - mwifiex: Fix possible buffer overflows in mwifiex_ret_wmm_get_status()
+ - mwifiex: Fix possible buffer overflows in mwifiex_cmd_append_vsie_tlv()
+ - libertas: don't exit from lbs_ibss_join_existing() with RCU read lock
+ held
+ - libertas: make lbs_ibss_join_existing() return error code on rates
+ overflow
+ - scsi: megaraid_sas: Do not initiate OCR if controller is not in ready
+ state
+ - [x86] stackframe: Move ENCODE_FRAME_POINTER to asm/frame.h
+ - [x86] x86/stackframe, x86/ftrace: Add pt_regs frame annotations
+ - [arm64] serial: uartps: Move the spinlock after the read of the tx empty
+ - padata: fix null pointer deref of pd->pinst
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.105
+ - Input: synaptics - switch T470s to RMI4 by default
+ - Input: synaptics - enable SMBus on ThinkPad L470
+ - Input: synaptics - remove the LEN0049 dmi id from topbuttonpad list
+ - ALSA: usb-audio: Fix UAC2/3 effect unit parsing
+ - ALSA: hda/realtek - Fix silent output on MSI-GL73
+ - ALSA: usb-audio: Apply sample rate quirk for Audioengine D1
+ - [arm64] cpufeature: Set the FP/SIMD compat HWCAP bits properly
+ - [arm64] nofpsmid: Handle TIF_FOREIGN_FPSTATE flag cleanly
+ - ALSA: usb-audio: sound: usb: usb true/false for bool return type
+ - ALSA: usb-audio: Add clock validity quirk for Denon MC7000/MCX8000
+ - ext4: don't assume that mmp_nodename/bdevname have NUL
+ - ext4: fix support for inode sizes > 1024 bytes
+ - ext4: fix checksum errors with indexed dirs
+ - ext4: add cond_resched() to ext4_protect_reserved_inode (CVE-2020-8992)
+ - ext4: improve explanation of a mount failure caused by a misconfigured
+ kernel
+ - Btrfs: fix race between using extent maps and merging them
+ - btrfs: ref-verify: fix memory leaks
+ - btrfs: print message when tree-log replay starts
+ - btrfs: log message when rw remount is attempted with unclean tree-log
+ - [arm64] ssbs: Fix context-switch when SSBS is present on all CPUs
+ - [x86] perf/x86/amd: Add missing L2 misses event spec to AMD Family 17h's
+ event map
+ - nvme: fix the parameter order for nvme_get_log in nvme_get_fw_slot_info
+ - [amd64] IB/hfi1: Acquire lock to release TID entries when user file is
+ closed
+ - [amd64] IB/hfi1: Close window for pq and request coliding
+ - IB/rdmavt: Reset all QPs when the device is shut down
+ - RDMA/core: Fix invalid memory access in spec_filter_size
+ - [amd64] RDMA/hfi1: Fix memory leak in _dev_comp_vect_mappings_create
+ - RDMA/rxe: Fix soft lockup problem due to using tasklets in softirq
+ - RDMA/core: Fix protection fault in get_pkey_idx_qp_list
+ - [s390x] time: Fix clk type in get_tod_clock
+ - [x86] perf/x86/intel: Fix inaccurate period in context switch for auto-
+ reload
+ - NFSv4.1 make cachethis=no for writes
+ - jbd2: move the clearing of b_modified flag to the journal_unmap_buffer()
+ - jbd2: do not clear the BH_Mapped flag when forgetting a metadata buffer
+ - [x86] KVM: mmu: Fix struct guest_walker arrays for 5-level paging
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.106
+ - core: Don't skip generic XDP program execution for cloned SKBs
+ - enic: prevent waking up stopped tx queues over watchdog reset
+ - net/smc: fix leak of kernel memory to user space
+ - net/sched: matchall: add missing validation of TCA_MATCHALL_FLAGS
+ - net/sched: flower: add missing validation of TCA_FLOWER_FLAGS
+ - [x86] KVM: nVMX: Use correct root level for nested EPT shadow page
+ tables
+ - [x86] drm/gma500: Fixup fbdev stolen size usage evaluation
+ - cpu/hotplug, stop_machine: Fix stop_machine vs hotplug order
+ - brcmfmac: Fix use after free in brcmf_sdio_readframes()
+ - ext4: fix ext4_dax_read/write inode locking sequence for IOCB_NOWAIT
+ - ALSA: ctl: allow TLV read operation for callback type of element in
+ locked case
+ - [powerpc*] powernv/iov: Ensure the pdn for VFs always contains a valid
+ PE number
+ - [amd64] iommu/vt-d: Fix off-by-one in PASID allocation
+ - [x86] pinctrl: baytrail: Do not clear IRQ flags on direct-irq enabled
+ pins
+ - [x86] efi: Map the entire EFI vendor string before copying it
+ - [mips64el,mipsel] Loongson: Fix potential NULL dereference in
+ loongson3_platform_init()
+ - [arm*] usb: dwc2: Fix IN FIFO allocation
+ - [armel,armhf] clocksource/drivers/bcm2835_timer: Fix memory leak of
+ timer
+ - jbd2: clear JBD2_ABORT flag before journal_reset to update log tail info
+ when load journal
+ - [armhf] pwm: omap-dmtimer: Simplify error handling
+ - [s390x] pci: Fix possible deadlock in recover_store()
+ - [powerpc*] iov: Move VF pdev fixup into pcibios_fixup_iov()
+ - tracing: Fix tracing_stat return values in error handling paths
+ - tracing: Fix very unlikely race of registering two stat tracers
+ - ext4, jbd2: ensure panic when aborting with zero errno
+ - ath10k: Correct the DMA direction for management tx buffers
+ - nbd: add a flush_workqueue in nbd_start_device
+ - [s390x] KVM: ENOTSUPP -> EOPNOTSUPP fixups
+ - [arm64] clk: qcom: rcg2: Don't crash if our parent can't be found;
+ return an error
+ - drm/amdgpu: remove 4 set but not used variable in
+ amdgpu_atombios_get_connector_info_from_object_table
+ - [arm64,armhf] regulator: rk808: Lower log level on optional GPIOs being
+ not available
+ - NFC: port100: Convert cpu_to_le16(le16_to_cpu(E1) + E2) to use
+ le16_add_cpu().
+ - selinux: fall back to ref-walk if audit is required
+ - selinux: ensure we cleanup the internal AVC counters on error in
+ avc_insert()
+ - media: cx23885: Add support for AVerMedia CE310B
+ - PCI: Add generic quirk for increasing D3hot delay
+ - PCI: Increase D3 delay for AMD Ryzen5/7 XHCI controllers
+ - media: v4l2-device.h: Explicitly compare grp{id,mask} to zero in
+ v4l2_device macros
+ - reiserfs: Fix spurious unlock in reiserfs_fill_super() error handling
+ - fore200e: Fix incorrect checks of NULL pointer dereference
+ - netfilter: nft_tunnel: add the missing ERSPAN_VERSION nla_policy
+ - ALSA: usx2y: Adjust indentation in snd_usX2Y_hwdep_dsp_status
+ - orinoco: avoid assertion in case of NULL pointer
+ - ACPICA: Disassembler: create buffer fields in ACPI_PARSE_LOAD_PASS1
+ - scsi: ufs: Complete pending requests in host reset and restore path
+ - scsi: aic7xxx: Adjust indentation in ahc_find_syncrate
+ - selinux: ensure we cleanup the internal AVC counters on error in
+ avc_update()
+ - dmaengine: Store module owner in dma_device struct
+ - [arm64] clk: sunxi-ng: add mux and pll notifiers for A64 CPU clock
+ - tools lib api fs: Fix gcc9 stringop-truncation compilation error
+ - [x86] ACPI: button: Add DMI quirk for Razer Blade Stealth 13 late 2019
+ lid switch
+ - mlx5: work around high stack usage with gcc
+ - drm: remove the newline for CRC source name.
+ - usbip: Fix unsafe unaligned pointer usage
+ - udf: Fix free space reporting for metadata and virtual partitions
+ - staging: rtl8188: avoid excessive stack usage
+ - [amd64] IB/hfi1: Add software counter for ctxt0 seq drop
+ - [armhf] soc/tegra: fuse: Correct straps' address for older Tegra124
+ device trees
+ - [x86] efi: Don't panic or BUG() on non-critical error conditions
+ - rcu: Use WRITE_ONCE() for assignments to ->pprev for hlist_nulls
+ - [x86] nmi: Remove irq_work from the long duration NMI handler
+ - driver core: platform: Prevent resouce overflow from causing infinite
+ loops
+ - driver core: Print device when resources present in really_probe()
+ - bpf: Return -EBADRQC for invalid map type in __bpf_tx_xdp_map
+ - drm/nouveau/secboot/gm20b: initialize pointer in gm20b_secboot_new()
+ - drm/nouveau/gr/gk20a,gm200-: add terminators to method lists read from
+ fw
+ - drm/nouveau: Fix copy-paste error in nouveau_fence_wait_uevent_handler
+ - drm/nouveau/fault/gv100-: fix memory leak on module unload
+ - [x86] drm/vmwgfx: prevent memory leak in vmw_cmdbuf_res_add
+ - [armhf] usb: musb: omap2430: Get rid of musb .set_vbus for omap2430 glue
+ - [arm64] iommu/arm-smmu-v3: Use WRITE_ONCE() when changing validity of an
+ STE
+ - f2fs: set I_LINKABLE early to avoid wrong access by vfs
+ - f2fs: free sysfs kobject
+ - scsi: iscsi: Don't destroy session if there are outstanding connections
+ - watchdog/softlockup: Enforce that timestamp is valid on boot
+ - f2fs: fix memleak of kobject
+ - [x86] mm: Fix NX bit clearing issue in kernel_map_pages_in_pgd
+ - [armhf] pwm: omap-dmtimer: Remove PWM chip in .remove before making it
+ unfunctional
+ - btrfs: fix possible NULL-pointer dereference in integrity checks
+ - btrfs: safely advance counter when looking up bio csums
+ - btrfs: device stats, log when stats are zeroed
+ - module: avoid setting info->name early in case we can fall back to
+ info->mod->name
+ - ALSA: hda/hdmi - add retry logic to parse_intel_hdmi()
+ - driver core: platform: fix u32 greater or equal to zero comparison
+ - ALSA: hda - Add docking station support for Lenovo Thinkpad T420s
+ - drm/nouveau/mmu: fix comptag memory leak
+ - [powerpc*] sriov: Remove VF eeh_dev state when disabling SR-IOV
+ - bcache: cached_dev_free needs to put the sb page
+ - [amd64] iommu/vt-d: Remove unnecessary WARN_ON_ONCE()
+ - jbd2: switch to use jbd2_journal_abort() when failed to submit the
+ commit record
+ - jbd2: make sure ESHUTDOWN to be recorded in the journal superblock
+ - iwlegacy: ensure loop counter addr does not wrap and cause an infinite
+ loop
+ - cifs: fix NULL dereference in match_prepath
+ - bpf: map_seq_next should always increase position index
+ - ceph: check availability of mds cluster on mount after wait timeout
+ - [arm64,armhf] irqchip/gic-v3: Only provision redistributors that are
+ enabled in ACPI
+ - drm/nouveau/disp/nv50-: prevent oops when no channel method map provided
+ - ftrace: fpid_next() should increase position index
+ - trigger_next should increase position index
+ - radeon: insert 10ms sleep in dce5_crtc_load_lut
+ - ocfs2: fix a NULL pointer dereference when call
+ ocfs2_update_inode_fsync_trans()
+ - reiserfs: prevent NULL pointer dereference in reiserfs_insert_item()
+ - bcache: explicity type cast in bset_bkey_last()
+ - [arm64,armhf] irqchip/gic-v3-its: Reference to its_invall_cmd descriptor
+ when building INVALL
+ - iwlwifi: mvm: Fix thermal zone registration
+ - brd: check and limit max_part par
+ - NFS: Fix memory leaks
+ - help_next should increase position index
+ - cifs: log warning message (once) if out of disk space
+ - virtio_balloon: prevent pfn array overflow
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.107
+ - [arm64] iommu/qcom: Fix bogus detach logic
+ - ALSA: hda: Use scnprintf() for printing texts for sysfs/procfs
+ - [x86] ALSA: hda/realtek - Apply quirk for MSI GP63, too
+ - [x86] ALSA: hda/realtek - Apply quirk for yet another MSI laptop
+ - [armhf] ASoC: sun8i-codec: Fix setting DAI data format
+ - ecryptfs: fix a memory leak bug in parse_tag_1_packet()
+ - ecryptfs: fix a memory leak bug in ecryptfs_init_messaging()
+ - [x86] thunderbolt: Prevent crash if non-active NVMem file is read
+ - USB: misc: iowarrior: add support for 2 OEMed devices
+ - USB: misc: iowarrior: add support for the 28 and 28L devices
+ - USB: misc: iowarrior: add support for the 100 device
+ - floppy: check FDC index for errors before assigning it (CVE-2020-9383)
+ - vt: fix scrollback flushing on background consoles
+ - vt: selection, handle pending signals in paste_selection
+ - vt: vt_ioctl: fix race in VT_RESIZEX
+ - [arm*] staging: android: ashmem: Disallow ashmem memory from being
+ remapped (CVE-2020-0009)
+ - [x86] staging: vt6656: fix sign of rx_dbm to bb_pre_ed_rssi.
+ - xhci: Force Maximum Packet size for Full-speed bulk devices to valid
+ range.
+ - xhci: fix runtime pm enabling for quirky Intel hosts
+ - xhci: Fix memory leak when caching protocol extended capability PSI
+ tables - take 2
+ - usb: host: xhci: update event ring dequeue pointer on purpose
+ - USB: core: add endpoint-blacklist quirk
+ - USB: quirks: blacklist duplicate ep on Sound Devices USBPre2
+ - usb: uas: fix a plug & unplug racing
+ - USB: Fix novation SourceControl XL after suspend
+ - USB: hub: Don't record a connect-change event during reset-resume
+ - USB: hub: Fix the broken detection of USB3 device in SMSC hub
+ - [arm*] usb: dwc2: Fix SET/CLEAR_FEATURE and GET_STATUS flows
+ - [arm64,armhf] usb: dwc3: gadget: Check for IOC/LST bit in TRB->ctrl
+ fields
+ - staging: rtl8188eu: Fix potential security hole
+ - staging: rtl8188eu: Fix potential overuse of kernel memory
+ - staging: rtl8723bs: Fix potential security hole
+ - staging: rtl8723bs: Fix potential overuse of kernel memory
+ - [powerpc*] tm: Fix clearing MSR[TS] in current when reclaiming on signal
+ delivery
+ - jbd2: fix ocfs2 corrupt when clearing block group bits
+ - [x86] mce/amd: Publish the bank pointer only after setup has succeeded
+ - [x86] mce/amd: Fix kobject lifetime
+ - [x86] cpu/amd: Enable the fixed Instructions Retired counter IRPERF
+ - serial: 8250: Check UPF_IRQ_SHARED in advance
+ - [armhf] tty: serial: imx: setup the correct sg entry for tx dma
+ - serdev: ttyport: restore client ops on deregistration
+ - Revert "ipc,sem: remove uneeded sem_undo_list lock usage in exit_sem()"
+ - mm/memcontrol.c: lost css_put in memcg_expand_shrinker_maps()
+ - nvme-multipath: Fix memory leak with ana_log_buf
+ - genirq/irqdomain: Make sure all irq domain flags are distinct
+ - mm/vmscan.c: don't round up scan size for online memory cgroup
+ - drm/amdgpu/soc15: fix xclk for raven
+ - [x86] xhci: apply XHCI_PME_STUCK_QUIRK to Intel Comet Lake platforms
+ - [x86] KVM: nVMX: Don't emulate instructions in guest mode
+ (CVE-2020-2732)
+ - [x86] KVM: don't notify userspace IOAPIC on edge-triggered interrupt EOI
+ - drm/nouveau/kms/gv100-: Re-set LUT after clearing for modesets
+ - ext4: fix a data race in EXT4_I(inode)->i_disksize
+ - ext4: add cond_resched() to __ext4_find_entry()
+ - ext4: fix potential race between online resizing and write operations
+ - ext4: fix potential race between s_group_info online resizing and access
+ - ext4: fix potential race between s_flex_groups online resizing and
+ access
+ - ext4: fix mount failure with quota configured as module
+ - ext4: rename s_journal_flag_rwsem to s_writepages_rwsem
+ - ext4: fix race between writepages and enabling EXT4_EXTENTS_FL
+ - [x86] KVM: nVMX: Refactor IO bitmap checks into helper function
+ - [x86] KVM: nVMX: Check IO instruction VM-exit conditions
+ - [x86] KVM: nVMX: handle nested posted interrupts when apicv is disabled
+ for L1
+ - [x86] KVM: apic: avoid calculating pending eoi from an uninitialized val
+ - btrfs: fix bytes_may_use underflow in prealloc error condtition
+ - btrfs: reset fs_root to NULL on error in open_ctree
+ - btrfs: do not check delayed items are empty for single transaction
+ cleanup
+ - Btrfs: fix btrfs_wait_ordered_range() so that it waits for all ordered
+ extents
+ - scsi: Revert "target: iscsi: Wait for all commands to finish before
+ freeing a session"
+ - usb: gadget: composite: Fix bMaxPower for SuperSpeedPlus
+ - [arm*] usb: dwc2: Fix in ISOC request length checking
+ - staging: rtl8723bs: fix copy of overlapping memory
+ - ecryptfs: replace BUG_ON with error handling code
+ - genirq/proc: Reject invalid affinity masks (again)
+ - bpf, offload: Replace bitwise AND by logical AND in
+ bpf_prog_offload_info_fill
+ - ALSA: seq: Avoid concurrent access to queue flags
+ - ALSA: seq: Fix concurrent access to queue current tick/time
+ - netfilter: xt_hashlimit: limit the max size of hashtable
+ - rxrpc: Fix call RCU cleanup using non-bh-safe locks
+ - ata: ahci: Add shutdown to freeze hardware resources of ahci
+ - xen: Enable interrupts when calling _cond_resched()
+ - [s390x] mm: Explicitly compare PAGE_DEFAULT_KEY against zero in
+ storage_key_init_range
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.108
+ - [arm64,armhf] irqchip/gic-v3-its: Fix misuse of GENMASK macro
+ - iwlwifi: pcie: fix rb_allocator workqueue allocation
+ - ipmi:ssif: Handle a possible NULL pointer reference
+ - [arm64] drm/msm: Set dma maximum segment size for mdss
+ - dax: pass NOWAIT flag to iomap_apply
+ - mac80211: consider more elements in parsing CRC
+ - cfg80211: check wiphy driver existence for drvinfo report
+ - [s390x] zcrypt: fix card and queue total counter wrap
+ - qmi_wwan: re-add DW5821e pre-production variant
+ - qmi_wwan: unconditionally reject 2 ep interfaces
+ - [arm64] soc/tegra: fuse: Fix build with Tegra194 configuration
+ - net: ena: fix potential crash when rxfh key is NULL
+ - net: ena: fix uses of round_jiffies()
+ - net: ena: add missing ethtool TX timestamping indication
+ - net: ena: fix incorrect default RSS key
+ - net: ena: rss: fix failure to get indirection table
+ - net: ena: rss: store hash function as values and not bits
+ - net: ena: fix incorrectly saving queue numbers when setting RSS
+ indirection table
+ - net: ena: ethtool: use correct value for crc32 hash
+ - net: ena: ena-com.c: prevent NULL pointer dereference
+ - cifs: Fix mode output in debugging statements
+ - cfg80211: add missing policy for NL80211_ATTR_STATUS_CODE
+ - sysrq: Restore original console_loglevel when sysrq disabled
+ - sysrq: Remove duplicated sysrq message
+ - net: fib_rules: Correctly set table field when table number exceeds 8
+ bits
+ - net: sched: correct flower port blocking
+ - sctp: move the format error check out of __sctp_sf_do_9_1_abort
+ - ipv6: Fix route replacement with dev-only route
+ - ipv6: Fix nlmsg_flags when splitting a multipath route
+ - qede: Fix race between rdma destroy workqueue and link change event
+ - ext4: potential crash on allocation error in ext4_alloc_flex_bg_array()
+ - audit: fix error handling in audit_data_to_entry()
+ - ACPICA: Introduce ACPI_ACCESS_BYTE_WIDTH() macro
+ - [arm64,x86] ACPI: watchdog: Fix gas->access_width usage
+ - [x86] KVM: VMX: check descriptor table exits on instruction emulation
+ - HID: ite: Only bind to keyboard USB interface on Acer SW5-012 keyboard
+ dock
+ - HID: core: fix off-by-one memset in hid_report_raw_event()
+ - HID: core: increase HID report buffer size to 8KiB
+ - tracing: Disable trace_printk() on post poned tests
+ - Revert "PM / devfreq: Modify the device name as devfreq(X) for sysfs"
+ - amdgpu/gmc_v9: save/restore sdpif regs during S3
+ - vhost: Check docket sk_family instead of call getname (CVE-2020-10942)
+ - HID: alps: Fix an error handling path in 'alps_input_configured()'
+ - HID: hiddev: Fix race in in hiddev_disconnect()
+ - [x86] hv_netvsc: Fix unwanted wakeup in netvsc_attach()
+ - [s390x] qeth: vnicc Fix EOPNOTSUPP precedence
+ - net: netlink: cap max groups which will be considered in netlink_bind()
+ - [amd64] net: atlantic: fix use after free kasan warn
+ - [amd64] net: atlantic: fix potential error handling
+ - net/smc: no peer ID in CLC decline for SMCD
+ - net: ena: make ena rxfh support ETH_RSS_HASH_NO_CHANGE
+ - namei: only return -ECHILD from follow_dotdot_rcu()
+ - mwifiex: drop most magic numbers from
+ mwifiex_process_tdls_action_frame()
+ - [x86] KVM: SVM: Override default MMIO mask if memory encryption is
+ enabled
+ - KVM: Check for a bad hva before dropping into the ghc slow path
+ - sched/fair: Optimize update_blocked_averages()
+ - sched/fair: Fix O(nr_cgroups) in the load balancing path
+ - perf stat: Use perf_evsel__is_clocki() for clock events
+ - perf stat: Fix shadow stats for clock events
+ - [arm64] drivers: net: xgene: Fix the order of the arguments of
+ 'alloc_etherdev_mqs()'
+ - kprobes: Set unoptimized flag after unoptimizing code
+ - [armhf] pwm: omap-dmtimer: put_device() after of_find_device_by_node()
+ - perf hists browser: Restore ESC as "Zoom out" of DSO/thread/etc
+ - [x86] KVM: Remove spurious kvm_mmu_unload() from vcpu destruction path
+ - [x86] KVM: Remove spurious clearing of async #PF MSR
+ - netfilter: nft_tunnel: no need to call htons() when dumping ports
+ - mm/huge_memory.c: use head to check huge zero page
+ - mm, thp: fix defrag setting if newline is not used
+ - audit: always check the netlink payload length in audit_receive_msg()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.109
+ - [x86] EDAC/amd64: Set grain per DIMM
+ - ALSA: hda/realtek - Fix a regression for mute led on Lenovo Carbon X1
+ - [armhf] net: dsa: bcm_sf2: Forcibly configure IMP port for 1Gb/sec
+ - kprobes: Fix optimize_kprobe()/unoptimize_kprobe() cancellation logic
+ - [x86] ALSA: hda: do not override bus codec_mask in link_get()
+ - usb: gadget: composite: Support more than 500mA MaxPower
+ - usb: gadget: ffs: ffs_aio_cancel(): Save/restore IRQ flags
+ - usb: gadget: serial: fix Tx stall after buffer overflow
+ - [arm64] drm/msm/mdp5: rate limit pp done timeout warnings
+ - [arm64] drm: msm: Fix return type of dsi_mgr_connector_mode_valid for
+ kCFI
+ - scsi: megaraid_sas: silence a warning
+ - [arm64] drm/msm/dsi: save pll state before dsi host is powered off
+ - [arm64] drm/msm/dsi/pll: call vco set rate explicitly
+ - [armhf] net: dsa: b53: Ensure the default VID is untagged
+ - [s390x] cio: cio_ignore_proc_seq_next should increase position index
+ - [s390x] qdio: fill SL with absolute addresses
+ - ice: Don't tell the OS that link is going down
+ - [arm64] net: thunderx: workaround BGX TX Underflow issue
+ - ALSA: hda/realtek - Add Headset Mic supported
+ - ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Master
+ - cifs: don't leak -EAGAIN for stat() during reconnect
+ - usb: storage: Add quirk for Samsung Fit flash
+ - usb: quirks: add NO_LPM quirk for Logitech Screen Share
+ - [arm64,armhf] usb: dwc3: gadget: Update chain bit correctly when using
+ sg list
+ - usb: core: hub: fix unhandled return by employing a void function
+ - usb: core: hub: do error out if usb_autopm_get_interface() fails
+ - usb: core: port: do error out if usb_autopm_get_interface() fails
+ - vgacon: Fix a UAF in vgacon_invert_region (CVE-2020-8647, CVE-2020-8649)
+ - mm, numa: fix bad pmd by atomically check for pmd_trans_huge when
+ marking page tables prot_numa
+ - mm: fix possible PMD dirty bit lost in set_pmd_migration_entry()
+ - fat: fix uninit-memory access for partial initialized inode
+ - [arm64] tty:serial:mvebu-uart:fix a wrong return
+ - serial: 8250_exar: add support for ACCES cards
+ - vt: selection, close sel_buffer race (CVE-2020-8648)
+ - vt: selection, push console lock down
+ - vt: selection, push sel_lock up
+ - [arm64,armhf] media: v4l2-mem2mem.c: fix broken links
+ - [x86] pkeys: Manually set X86_FEATURE_OSPKE to preserve existing changes
+ - [arm64,armhf] dmaengine: tegra-apb: Fix use-after-free
+ - [arm64,armhf] dmaengine: tegra-apb: Prevent race conditions of tasklet
+ vs free list
+ - dm cache: fix a crash due to incorrect work item cancelling
+ - dm: report suspended device during destroy
+ - dm writecache: verify watermark during resume
+ - [x86] ASoC: topology: Fix memleak in soc_tplg_link_elems_load()
+ - [x86] ASoC: topology: Fix memleak in soc_tplg_manifest_load()
+ - [x86] ASoC: intel: skl: Fix pin debug prints
+ - [x86] ASoC: intel: skl: Fix possible buffer overflow in debug outputs
+ - [armhf] dmaengine: imx-sdma: remove dma_slave_config direction usage and
+ leave sdma_event_enable()
+ - ASoC: pcm: Fix possible buffer overflow in dpcm state sysfs output
+ - ASoC: dapm: Correct DAPM handling of active widgets during shutdown
+ - [armhf] drm/sun4i: Fix DE2 VI layer format support
+ - [armhf] drm/sun4i: de2/de3: Remove unsupported VI layer formats
+ - RDMA/iwcm: Fix iwcm work deallocation
+ - RMDA/cm: Fix missing ib_cm_destroy_id() in ib_cm_insert_listen()
+ - [amd64] IB/hfi1, qib: Ensure RCU is locked when accessing list
+ - [armhf] ARM: imx: build v7_cpu_resume() unconditionally
+ - hwmon: (adt7462) Fix an error return in ADT7462_REG_VOLT()
+ - [powerpc*] fix hardware PMU exception bug on PowerVM compatibility mode
+ systems
+ - [amd64] efi/x86: Align GUIDs to their size in the mixed mode runtime
+ wrapper
+ - [amd64] efi/x86: Handle by-ref arguments covering multiple pages in
+ mixed mode
+ - dm integrity: fix a deadlock due to offloading to an incorrect workqueue
+ - scsi: pm80xx: Fixed kernel panic during error recovery for SATA drive
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.110
+ - [x86] KVM: SVM: fix up incorrect backport
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.111
+ - phy: Revert toggling reset changes.
+ - net: phy: Avoid multiple suspends
+ - cgroup, netclassid: periodically release file_lock on classid updating
+ - gre: fix uninit-value in __iptunnel_pull_header
+ - inet_diag: return classid for all socket types
+ - ipv6/addrconf: call ipv6_mc_up() for non-Ethernet interface
+ - ipvlan: add cond_resched_rcu() while processing muticast backlog
+ - ipvlan: do not add hardware address of master to its unicast filter list
+ - ipvlan: do not use cond_resched_rcu() in ipvlan_process_multicast()
+ - ipvlan: don't deref eth hdr before checking it's set
+ - net/ipv6: use configured metric when add peer route
+ - netlink: Use netlink header as base to calculate bad attribute offset
+ - net: macsec: update SCI upon MAC address change.
+ - net: nfc: fix bounds checking bugs on "pipe"
+ - net/packet: tpacket_rcv: do not increment ring index on drop
+ - [arm64,armhf] net: stmmac: dwmac1000: Disable ACS if enhanced descs are
+ not used
+ - r8152: check disconnect status after long sleep
+ - sfc: detach from cb_page in efx_copy_channel()
+ - bnxt_en: reinitialize IRQs when MTU is modified
+ - cgroup: memcg: net: do not associate sock with unrelated cgroup
+ - net: memcg: late association of sock to memcg
+ - net: memcg: fix lockdep splat in inet_csk_accept()
+ - devlink: validate length of param values
+ - nl802154: add missing attribute validation
+ - nl802154: add missing attribute validation for dev_type
+ - can: add missing attribute validation for termination
+ - macsec: add missing attribute validation for port
+ - net: fq: add missing attribute validation for orphan mask
+ - team: add missing attribute validation for port ifindex
+ - team: add missing attribute validation for array index
+ - nfc: add missing attribute validation for SE API
+ - nfc: add missing attribute validation for deactivate target
+ - nfc: add missing attribute validation for vendor subcommand
+ - net: phy: fix MDIO bus PM PHY resuming
+ - net/ipv6: need update peer route when modify metric
+ - net/ipv6: remove the old peer route if change it to a new one
+ - tipc: add missing attribute validation for MTU property
+ - devlink: validate length of region addr/len
+ - bonding/alb: make sure arp header is pulled before accessing it
+ - slip: make slhc_compress() more robust against malicious packets
+ - [armhf] net: fec: validate the new settings in fec_enet_set_coalesce()
+ - macvlan: add cond_resched() during multicast processing
+ - cgroup: cgroup_procs_next should increase position index
+ - cgroup: Iterate tasks that did not finish do_exit()
+ - iwlwifi: mvm: Do not require PHY_SKU NVM section for 3168 devices
+ - virtio-blk: fix hw_queue stopped on arbitrary error
+ - [amd64] iommu/vt-d: quirk_ioat_snb_local_iommu: replace WARN_TAINT with
+ pr_warn + add_taint
+ - netfilter: nf_conntrack: ct_cpu_seq_next should increase position index
+ - netfilter: synproxy: synproxy_cpu_seq_next should increase position
+ index
+ - netfilter: xt_recent: recent_seq_next should increase position index
+ - netfilter: x_tables: xt_mttg_seq_next should increase position index
+ - workqueue: don't use wq_select_unbound_cpu() for bound works
+ - drm/amd/display: remove duplicated assignment to grph_obj_type
+ - cifs_atomic_open(): fix double-put on late allocation failure
+ - gfs2_atomic_open(): fix O_EXCL|O_CREAT handling on cold dcache
+ - [x86] KVM: clear stale x86_emulate_ctxt->intercept value
+ - efi: Fix a race and a buffer overflow while reading efivars via sysfs
+ - efi: Make efi_rts_work accessible to efi page fault handler
+ - mt76: fix array overflow on receiving too many fragments for a packet
+ - [x86] mce: Fix logic and comments around MSR_PPIN_CTL
+ - [arm64] iommu/dma: Fix MSI reservation allocation
+ - [amd64] iommu/vt-d: dmar: replace WARN_TAINT with pr_warn + add_taint
+ - [amd64] iommu/vt-d: Fix a bug in intel_iommu_iova_to_phys() for huge
+ page
+ - batman-adv: Don't schedule OGM for disabled interface
+ - [arm64] pinctrl: meson-gxl: fix GPIOX sdio pins
+ - pinctrl: core: Remove extra kref_get which blocks hogs being freed
+ - [arm64,armhf] i2c: gpio: suppress error on probe defer
+ - nl80211: add missing attribute validation for critical protocol
+ indication
+ - nl80211: add missing attribute validation for beacon report scanning
+ - nl80211: add missing attribute validation for channel switch
+ - perf bench futex-wake: Restore thread count default to online CPU count
+ - netfilter: cthelper: add missing attribute validation for cthelper
+ - netfilter: nft_payload: add missing attribute validation for payload
+ csum flags
+ - netfilter: nft_tunnel: add missing attribute validation for tunnels
+ - [amd64] iommu/vt-d: Fix the wrong printing in RHSA parsing
+ - [amd64] iommu/vt-d: Ignore devices with out-of-spec domain number
+ - [arm64,x86] i2c: acpi: put device when verifying client fails
+ - ipv6: restrict IPV6_ADDRFORM operation
+ - net/smc: check for valid ib_client_data
+ - net/smc: cancel event worker during device removal
+ - efi: Add a sanity check to efivar_store_raw()
+ - batman-adv: Avoid free/alloc race when handling OGM2 buffer
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.112
+ - [x86] perf/amd/uncore: Replace manual sampling check with
+ CAP_NO_INTERRUPT flag
+ - [armhf] mmc: sdhci-omap: Add platform specific reset callback
+ - [armhf] mmc: sdhci-omap: Workaround errata regarding SDR104/HS200 tuning
+ failures (i929)
+ - ACPI: watchdog: Allow disabling WDAT at boot
+ - HID: apple: Add support for recent firmware on Magic Keyboards
+ - [x86] HID: i2c-hid: add Trekstor Surfbook E11B to descriptor override
+ - cfg80211: check reg_rule for NULL in handle_channel_custom()
+ - scsi: libfc: free response frame from GPN_ID
+ - net: usb: qmi_wwan: restore mtu min/max values after raw_ip switch
+ - mac80211: rx: avoid RCU list traversal under mutex
+ - signal: avoid double atomic counter increments for user accounting
+ - slip: not call free_netdev before rtnl_unlock in slip_open
+ - [x86,arm64] hinic: fix a irq affinity bug
+ - [x86,arm64] hinic: fix a bug of setting hw_ioctxt
+ - sfc: fix timestamp reconstruction at 16-bit rollover points
+ - jbd2: fix data races at struct journal_head
+ - [armhf] mmc: sdhci-omap: Don't finish_mrq() on a command error during
+ tuning
+ - [armhf] mmc: sdhci-omap: Fix Tuning procedure for temperatures < -20C
+ - driver core: Remove the link if there is no driver with AUTO flag
+ - driver core: Fix adding device links to probing suppliers
+ - driver core: Make driver core own stateful device links
+ - driver core: Add device link flag DL_FLAG_AUTOPROBE_CONSUMER
+ - driver core: Remove device link creation limitation
+ - driver core: Fix creation of device links with PM-runtime flags
+ - mm: slub: add missing TID bump in kmem_cache_alloc_bulk()
+ - efi: Fix debugobjects warning on 'efi_rts_work'
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.113
+ - [arm64] spi: qup: call spi_qup_pm_resume_runtime before suspending
+ - [amd64] spi: pxa2xx: Add CS control clock quirk
+ - [armhf] drm/exynos: dsi: fix workaround for the legacy clock name
+ - [arm64] drivers/perf: arm_pmu_acpi: Fix incorrect checking of gicc
+ pointer
+ - dm bio record: save/restore bi_end_io and bi_integrity
+ - dm integrity: use dm_bio_record and dm_bio_restore
+ - xenbus: req->body should be updated before req->state
+ - xenbus: req->err should be updated before req->state
+ - block, bfq: fix overwrite of bfq_group pointer in bfq_find_set_group()
+ - USB: Disable LPM on WD19's Realtek Hub
+ - usb: quirks: add NO_LPM quirk for RTL8153 based ethernet adapters
+ - USB: serial: option: add ME910G1 ECM composition 0x110b
+ - [arm64,armhf] usb: host: xhci-plat: add a shutdown
+ - USB: serial: pl2303: add device-id for HP LD381
+ - [x86] usb: xhci: apply XHCI_SUSPEND_DELAY to AMD XHCI controller
+ 1022:145c
+ - ALSA: line6: Fix endless MIDI read loop
+ - ALSA: seq: virmidi: Fix running status after receiving sysex
+ - ALSA: seq: oss: Fix running status after receiving sysex
+ - ALSA: pcm: oss: Avoid plugin buffer overflow
+ - ALSA: pcm: oss: Remove WARNING from snd_pcm_plug_alloc() checks
+ - [armhf] iio: st_sensors: remap SMO8840 to LIS2DH12
+ - mmc: rtsx_pci: Fix support for speed-modes that relies on tuning
+ - staging: rtl8188eu: Add device id for MERCUSYS MW150US v2
+ - staging/speakup: fix get_word non-space look-ahead
+ - [x86] intel_th: Fix user-visible error codes
+ - [x86] intel_th: pci: Add Elkhart Lake CPU support
+ - xhci: Do not open code __print_symbolic() in xhci trace events
+ - btrfs: fix log context list corruption after rename whiteout error
+ - drm/amd/amdgpu: Fix GPR read from debugfs (v2)
+ - drm/lease: fix WARNING in idr_destroy
+ - memcg: fix NULL pointer dereference in
+ __mem_cgroup_usage_unregister_event
+ - mm: slub: be more careful about the double cmpxchg of freelist
+ - mm, slub: prevent kmalloc_node crashes and memory leaks
+ - page-flags: fix a crash at SetPageError(THP_SWAP)
+ - [x86] mm: split vmalloc_sync_all() (Closes: #953017)
+ - USB: cdc-acm: fix close_delay and closing_wait units in TIOCSSERIAL
+ - USB: cdc-acm: fix rounding error in TIOCSSERIAL
+ - futex: Fix inode life-time issue
+ - futex: Unbreak futex hashing
+ - Revert "vrf: mark skb for multicast or link-local as enslaved to VRF"
+ - Revert "ipv6: Fix handling of LLA with VRF and sockets bound to VRF"
+ - ALSA: hda/realtek: Fix pop noise on ALC225
+ - [arm64] smp: fix smp_send_stop() behaviour
+ - [arm64] smp: fix crash_smp_send_stop() behaviour
+ - [arm64,armhf] drm/bridge: dw-hdmi: fix AVI frame colorimetry
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.114
+ - mmc: core: Allow host controllers to require R1B for CMD6
+ - mmc: core: Respect MMC_CAP_NEED_RSP_BUSY for erase/trim/discard
+ - mmc: core: Respect MMC_CAP_NEED_RSP_BUSY for eMMC sleep command
+ - [armhf] mmc: sdhci-omap: Fix busy detection by enabling
+ MMC_CAP_NEED_RSP_BUSY
+ - [arm64,armhf] mmc: sdhci-tegra: Fix busy detection by enabling
+ MMC_CAP_NEED_RSP_BUSY
+ - geneve: move debug check after netdev unregister
+ - macsec: restrict to ethernet devices
+ - net: cbs: Fix software cbs to consider packet sending time
+ - [armhf] net: dsa: Fix duplicate frames flooded by learning
+ - [arm64,armhf] net: mvneta: Fix the case where the last poll did not
+ process all rx
+ - net/packet: tpacket_rcv: avoid a producer race condition
+ - net: qmi_wwan: add support for ASKEY WWHC050
+ - net_sched: cls_route: remove the right filter from hashtable
+ - net_sched: keep alloc_hash updated after hash allocation
+ - [arm64,armhf] net: stmmac: dwmac-rk: fix error path in rk_gmac_probe
+ - slcan: not call free_netdev before rtnl_unlock in slcan_open
+ - bnxt_en: fix memory leaks in bnxt_dcbnl_ieee_getets()
+ - bnxt_en: Reset rings if ring reservation fails during open()
+ - net: ip_gre: Separate ERSPAN newlink / changelink callbacks
+ - net: ip_gre: Accept IFLA_INFO_DATA-less configuration
+ - r8169: re-enable MSI on RTL8168c
+ - tcp: repair: fix TCP_QUEUE_SEQ implementation
+ - vxlan: check return value of gro_cells_init()
+ - cgroup-v1: cgroup_pidlist_next should update position index
+ - nfs: add minor version to nfs_server_key for fscache
+ - drivers/of/of_mdio.c:fix of_mdiobus_register()
+ - cgroup1: don't call release_agent when it is ""
+ - [s390x] qeth: handle error when backing RX buffer
+ - scsi: ipr: Fix softlockup when rescanning devices in petitboot
+ - mac80211: Do not send mesh HWMP PREQ if HWMP is disabled
+ - [x86] ftrace: Anotate text_mutex split between
+ ftrace_arch_code_modify_post_process() and
+ ftrace_arch_code_modify_prepare()
+ - [x86] Input: synaptics - enable RMI on HP Envy 13-ad105ng
+ - Input: avoid BIT() macro usage in the serio.h UAPI header
+ - ceph: check POOL_FLAG_FULL/NEARFULL in addition to OSDMAP_FULL/NEARFULL
+ - perf probe: Do not depend on dwfl_module_addrsym()
+ - scsi: sd: Fix optimal I/O size for devices that change reported values
+ - nl80211: fix NL80211_ATTR_CHANNEL_WIDTH attribute type
+ - mac80211: mark station unauthorized before key removal
+ - [x86] gpiolib: acpi: Correct comment for HP x2 10 honor_wakeup quirk
+ - gpiolib: acpi: Rework honor_wakeup option into an ignore_wake option
+ - [x86] gpiolib: acpi: Add quirk to ignore EC wakeups on HP x2 10 BYT +
+ AXP288 model
+ - genirq: Fix reference leaks on irq affinity notifiers
+ - xfrm: handle NETDEV_UNREGISTER for xfrm device
+ - vti[6]: fix packet tx through bpf_redirect() in XinY cases
+ - RDMA/mlx5: Block delay drop to unprivileged users
+ - xfrm: fix uctx len check in verify_sec_ctx_len
+ - xfrm: add the missing verify_sec_ctx_len check in xfrm_add_acquire
+ - xfrm: policy: Fix doulbe free in xfrm_policy_timer
+ - afs: Fix some tracing details
+ - netfilter: flowtable: reload ip{v6}h in nf_flow_tuple_ip{v6}
+ - netfilter: nft_fwd_netdev: validate family and chain type
+ - bpf/btf: Fix BTF verification of enum members in struct/union
+ - vti6: Fix memory leak of skb if input policy check fails
+ - mac80211: add option for setting control flags
+ - mac80211: set IEEE80211_TX_CTRL_PORT_CTRL_PROTO for nl80211 TX
+ - USB: serial: option: add support for ASKEY WWHC050
+ - USB: serial: option: add BroadMobi BM806U
+ - USB: serial: option: add Wistron Neweb D19Q1
+ - USB: cdc-acm: restore capability check order
+ - USB: serial: io_edgeport: fix slab-out-of-bounds read in
+ edge_interrupt_callback
+ - [arm64,armhf] usb: musb: fix crash with highmen PIO and usbmon
+ - media: flexcop-usb: fix endpoint sanity check
+ - media: usbtv: fix control-message timeouts
+ - staging: rtl8188eu: Add ASUS USB-N10 Nano B1 to device table
+ - [x86] ahci: Add Intel Comet Lake H RAID PCI ID
+ - libfs: fix infoleak in simple_attr_read()
+ - media: ov519: add missing endpoint sanity checks (CVE-2020-11608)
+ - media: dib0700: fix rc endpoint lookup
+ - media: stv06xx: add missing descriptor sanity checks (CVE-2020-11609)
+ - media: xirlink_cit: add missing descriptor sanity checks
+ (CVE-2020-11668)
+ - mac80211: Check port authorization in the ieee80211_tx_dequeue() case
+ - mac80211: fix authentication with iwlwifi/mvm
+ - vt: selection, introduce vc_is_sel
+ - vt: ioctl, switch VT_IS_IN_USE and VT_BUSY to inlines
+ - vt: switch vt_dont_switch to bool
+ - vt: vt_ioctl: remove unnecessary console allocation checks
+ - vt: vt_ioctl: fix VT_DISALLOCATE freeing in-use virtual console
+ - vt: vt_ioctl: fix use-after-free in vt_in_use()
+ - [x86] platform: pmc_atom: Add Lex 2I385SW to critclk_systems DMI table
+ - bpf: Explicitly memset the bpf_attr structure
+ - bpf: Explicitly memset some bpf info structures declared on the stack
+ - [x86] gpiolib: acpi: Add quirk to ignore EC wakeups on HP x2 10 CHT +
+ AXP288 model
+ - perf map: Fix off by one in strncpy() size argument
+ - [armel] bcm2835-rpi-zero-w: Add missing pinctrl name
+ - [armhf] dts: N900: fix onenand timings
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.115
+ - ipv4: fix a RCU-list lock in fib_triestat_seq_show
+ - net, ip_tunnel: fix interface lookup with no key
+ - sctp: fix refcount bug in sctp_wfree
+ - sctp: fix possibly using a bad saddr with a given dst
+ - nvme-rdma: Avoid double freeing of async event data
+ - drm/bochs: downgrade pci_request_region failure from error to warning
+ - drm/amdgpu: fix typo for vcn1 idle check
+ - [x86] tools/power turbostat: Fix gcc build warnings
+ - [x86] tools/power turbostat: Fix missing SYS_LPI counter on some
+ Chromebooks
+ - [armhf] drm/etnaviv: replace MMU flush marker with flush sequence
+ - media: rc: IR signal for Panasonic air conditioner too long
+ - misc: rtsx: set correct pcr_ops for rts522A
+ - [x86] mei: me: add cedar fork device ids
+ - ALSA: hda/ca0132 - Add Recon3Di quirk to handle integrated sound on EVGA
+ X99 Classified motherboard
+ - rxrpc: Fix sendmsg(MSG_WAITALL) handling
+ - net: Fix Tx hash bound checking
+ - padata: always acquire cpu_hotplug_lock before pinst->lock
+ - mm: mempolicy: require at least one nodeid for MPOL_PREFERRED
+ (CVE-2020-11565)
+ - ipv6: don't auto-add link-local address to lag ports
+ - [armhf] net: dsa: bcm_sf2: Do not register slave MDIO bus with OF
+ - [armhf] net: dsa: bcm_sf2: Ensure correct sub-node is parsed
+ - net: phy: micrel: kszphy_resume(): add delay after genphy_resume()
+ before accessing PHY registers
+ - [arm64,armhf] net: stmmac: dwmac1000: fix out-of-bounds mac address reg
+ setting
+ - slcan: Don't transmit uninitialized stack data in padding
+ (CVE-2020-11494)
+ - random: always use batched entropy for get_random_u{32,64}
+ - [arm64,armhf] usb: dwc3: gadget: Wrap around when skip TRBs
+ - [armhf] hwrng: imx-rngc - fix an error path
+ - [amd64] IB/hfi1: Call kobject_put() when kobject_init_and_add() fails
+ - [amd64] IB/hfi1: Fix memory leaks in sysfs registration and
+ unregistration
+ - ceph: remove the extra slashes in the server path
+ - ceph: canonicalize server path in place
+ - RDMA/ucma: Put a lock around every call to the rdma_cm layer
+ - RDMA/cma: Teach lockdep about the order of rtnl and lock
+ - Bluetooth: RFCOMM: fix ODEBUG bug in rfcomm_dev_ioctl
+ - RDMA/cm: Update num_paths in cma_resolve_iboe_route error flow
+ - fbcon: fix null-ptr-deref in fbcon_switch
+ - [arm64] clk: qcom: rcg: Return failure for RCG update
+ - [arm64] drm/msm: stop abusing dma_map/unmap for cache
+ - [arm64] Fix size of __early_cpu_boot_status
+ - [arm64] rpmsg: glink: Remove chunk size word align warning
+ - [arm64,armhf] usb: dwc3: don't set gadget->is_otg flag
+ - drm_dp_mst_topology: fix broken drm_dp_sideband_parse_remote_dpcd_read()
+ - [arm64] drm/msm: Use the correct dma_sync calls in msm_gem
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.116
+ - [armhf] dts: sun8i-a83t-tbs-a711: HM5065 doesn't like such a high
+ voltage
+ - [arm64,armhf] bus: sunxi-rsb: Return correct data when mixing 16-bit and
+ 8-bit reads
+ - [x86,arm64] hinic: fix a bug of waitting for IO stopped
+ - [x86,arm64] hinic: fix wrong para of wait_for_completion_timeout
+ - cxgb4/ptp: pass the sign of offset delta in FW CMD
+ - qlcnic: Fix bad kzalloc null test
+ - [armhf] cpufreq: imx6q: Fixes unwanted cpu overclocking on i.MX6ULL
+ - [arm64] media: venus: hfi_parser: Ignore HEVC encoding for V1
+ - null_blk: Fix the null_add_dev() error path
+ - null_blk: Handle null_add_dev() failures properly
+ - null_blk: fix spurious IO errors after failed past-wp access
+ - xhci: bail out early if driver can't accress host in resume
+ - [x86] Don't let pgprot_modify() change the page encryption bit
+ - block: keep bdi->io_pages in sync with max_sectors_kb for stacked
+ devices
+ - sched: Avoid scale real weight down to zero
+ - libata: Remove extra scsi_host_put() in ata_scsi_add_hosts()
+ - [amd64,x86] pstore/platform: fix potential mem leak if pstore_init_fs
+ failed
+ - gfs2: Don't demote a glock until its revokes are written
+ - [i386] efi/x86: Ignore the memory attributes table on i386
+ - genirq/irqdomain: Check pointer in irq_domain_alloc_irqs_hierarchy()
+ - block: Fix use-after-free issue accessing struct io_cq
+ - [arm64,armhf] usb: dwc3: core: add support for disabling SS instances in
+ park mode
+ - [arm64,armhf] irqchip/gic-v4: Provide irq_retrigger to avoid circular
+ locking dependency
+ - md: check arrays is suspended in mddev_detach before call quiesce
+ operations
+ - firmware: fix a double abort case with fw_load_sysfs_fallback
+ - block, bfq: fix use-after-free in bfq_idle_slice_timer_body
+ - btrfs: qgroup: ensure qgroup_rescan_running is only set when the worker
+ is at least queued
+ - btrfs: remove a BUG_ON() from merge_reloc_roots()
+ - btrfs: track reloc roots based on their commit root bytenr
+ - IB/mlx5: Replace tunnel mpls capability bits for tunnel_offloads
+ - uapi: rename ext2_swab() to swab() and share globally in swab.h
+ - slub: improve bit diffusion for freelist ptr obfuscation
+ - ASoC: fix regwmask
+ - ASoC: dapm: connect virtual mux with default value
+ - ASoC: dpcm: allow start or stop during pause for backend
+ - [x86] ASoC: topology: use name_prefix for new kcontrol
+ - usb: gadget: f_fs: Fix use after free issue as part of queue failure
+ - usb: gadget: composite: Inform controller driver of self-powered
+ - ALSA: hda: Add driver blacklist
+ - ALSA: hda: Fix potential access overflow in beep helper
+ - ALSA: ice1724: Fix invalid access for enumerated ctl items
+ - ALSA: pcm: oss: Fix regression by buffer overflow fix
+ - ALSA: doc: Document PC Beep Hidden Register on Realtek ALC256
+ - ALSA: hda/realtek - Set principled PC Beep configuration for ALC256
+ - [x86] ALSA: hda/realtek - Remove now-unnecessary XPS 13 headphone noise
+ fixups
+ - [x86] ALSA: hda/realtek - Add quirk for MSI GL63
+ - [x86] acpi: ignore unspecified bit positions in the ACPI global lock
+ field
+ - nvme-fc: Revert "add module to ops template to allow module references"
+ - nvme: Treat discovery subsystems as unique subsystems
+ - PCI: pciehp: Fix indefinite wait on sysfs requests
+ - PCI/ASPM: Clear the correct bits when enabling L1 substates
+ - PCI: Add boot interrupt quirk mechanism for Xeon chipsets
+ - tpm: Don't make log failures fatal
+ - tpm: tpm1_bios_measurements_next should increase position index
+ - tpm: tpm2_bios_measurements_next should increase position index
+ - KEYS: reaching the keys quotas correctly
+ - [amd64,x86] pstore: pstore_ftrace_seq_next should increase position
+ index
+ - [mips*el] tlbex: Fix LDDIR usage in setup_pw() for Loongson-3
+ - [mips*/octeon] irq: Fix potential NULL pointer dereference
+ - ath9k: Handle txpower changes even when TPC is disabled
+ - signal: Extend exec_id to 64bits
+ - [i386] x86/entry/32: Add missing ASM_CLAC to general_protection entry
+ - [x86] KVM: nVMX: Properly handle userspace interrupt window request
+ - [s390x] KVM: vsie: Fix region 1 ASCE sanity shadow address checks
+ - [s390x] KVM: vsie: Fix delivery of addressing exceptions
+ - [x86] KVM: Allocate new rmap and large page tracking when moving memslot
+ - [x86] KVM: VMX: Always VMCLEAR in-use VMCSes during crash with kexec
+ support
+ - [x86] KVM: Gracefully handle __vmalloc() failure during VM allocation
+ - [x86] KVM: VMX: fix crash cleanup when KVM wasn't used
+ - CIFS: Fix bug which the return value by asynchronous read is error
+ - Btrfs: fix crash during unmount due to race with delayed inode workers
+ - btrfs: set update the uuid generation as soon as possible
+ - btrfs: drop block from cache on error in relocation
+ - btrfs: fix missing file extent item for hole after ranged fsync
+ - btrfs: fix missing semaphore unlock in btrfs_sync_file
+ - [powerpc*] pseries: Drop pointless static qualifier in
+ vpa_debugfs_init()
+ - [x86] speculation: Remove redundant arch_smt_update() invocation
+ - mm: Use fixed constant in page_frag_alloc instead of size + 1
+ - dm writecache: add cond_resched to avoid CPU hangs
+ - [s390x] scsi: zfcp: fix missing erp_lock in port recovery trigger for
+ point-to-point
+ - [arm64] armv8_deprecated: Fix undef_hook mask for thumb setend
+ - [armhf] drm/etnaviv: rework perfmon query infrastructure
+ - [powerpc*] pseries: Avoid NULL pointer dereference when drmem is
+ unavailable
+ - NFS: Fix a page leak in nfs_destroy_unlinked_subrequests()
+ - ext4: fix a data race at inode->i_blocks
+ - fs/filesystems.c: downgrade user-reachable WARN_ONCE() to pr_warn_once()
+ - ocfs2: no need try to truncate file beyond i_size
+ - [s390x] diag: fix display of diagnose call statistics
+ - [x86] Input: i8042 - add Acer Aspire 5738z to nomux list
+ - kmod: make request_module() return an error when autoloading is disabled
+ - [powerpc*] cpufreq: powernv: Fix use-after-free
+ - hfsplus: fix crash and filesystem corruption when deleting files
+ - libata: Return correct status in sata_pmp_eh_recover_pm() when
+ ATA_DFLAG_DETACH is set
+ - ipmi: fix hung processes in __get_guid()
+ - xen/blkfront: fix memory allocation flags in blkfront_setup_indirect()
+ - [powerpc*] powernv/idle: Restore AMR/UAMOR/AMOR after idle
+ (CVE-2020-11669)
+ - [powerpc*] 64/tm: Don't let userspace set regs->trap via sigreturn
+ - [powerpc*] hash64/devmap: Use H_PAGE_THP_HUGE when setting up huge
+ devmap PTE entries
+ - [powerpc*] xive: Use XIVE_BAD_IRQ instead of zero to catch non
+ configured IPIs
+ - [powerpc*] kprobes: Ignore traps that happened in real mode
+ - scsi: mpt3sas: Fix kernel panic observed on soft HBA unplug
+ - [powerpc*] Add attributes for setjmp/longjmp
+ - [powerpc*] Make setjmp/longjmp signature standard
+ - btrfs: use nofs allocations for running delayed items
+ - dm zoned: remove duplicate nr_rnd_zones increase in dmz_init_zone()
+ - drm/dp_mst: Fix clearing payload state on topology disable
+ - drm: Remove PageReserved manipulation from drm_pci_alloc
+ - ftrace/kprobe: Show the maxactive number on kprobe_events
+ - [armhf] etnaviv: perfmon: fix total and idle HI cyleces readout
+ - [amd64] efi/x86: Fix the deletion of variables in mixed mode
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.117
+ - [amd64,arm64] amd-xgbe: Use __napi_schedule() in BH context
+ - net: ipv6: do not consider routes via gateways for anycast address check
+ - net: revert default NAPI poll timeout to 2 jiffies
+ - [arm64,armhf] net: stmmac: dwmac-sunxi: Provide TX and RX fifo sizes
+ - ovl: fix value of i_ino for lower hardlink corner case
+ - scsi: ufs: Fix ufshcd_hold() caused scheduling while atomic
+ - jbd2: improve comments about freeing data buffers whose page mapping is
+ NULL
+ - ext4: fix incorrect group count in ext4_fill_super error message
+ - ext4: fix incorrect inodes per group in error message
+ - [x86] ASoC: Intel: mrfld: fix incorrect check on p->sink
+ - [x86] ASoC: Intel: mrfld: return error codes when an error occurs
+ - ALSA: usb-audio: Filter error from connector kctl ops, too
+ - ALSA: usb-audio: Don't override ignore_ctl_error value from the map
+ - ALSA: usb-audio: Don't create jack controls for PCM terminals
+ - ALSA: usb-audio: Check mapping at creating connector controls, too
+ - keys: Fix proc_keys_next to increase position index
+ - tracing: Fix the race between registering 'snapshot' event trigger and
+ triggering 'snapshot' operation
+ - btrfs: check commit root generation in should_ignore_root
+ - mac80211_hwsim: Use kstrndup() in place of kasprintf()
+ - [arm64,armhf] usb: dwc3: gadget: don't enable interrupt when disabling
+ endpoint
+ - [arm64,armhf] usb: dwc3: gadget: Don't clear flags before transfer ended
+ - ext4: do not zeroout extents beyond i_disksize
+ - [x86] kvm: Host feature SSBD doesn't imply guest feature SPEC_CTRL_SSBD
+ - scsi: target: fix hang when multiple threads try to destroy the same
+ iscsi session
+ - [x86] microcode/AMD: Increase microcode PATCH_MAX_SIZE
+ - wil6210: check rx_buff_mgmt before accessing it
+ - wil6210: ignore HALP ICR if already handled
+ - wil6210: add general initialization/size checks
+ - wil6210: make sure Rx ring sizes are correlated
+ - wil6210: remove reset file from debugfs
+ - mm/vmalloc.c: move 'area->pages' after if statement
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.118
+ - [armel,armhf] bpf: Fix offset overflow for BPF_MEM BPF_DW
+ - scsi: sg: add sg_remove_request in sg_common_write
+ - ext4: use non-movable memory for superblock readahead
+ - [arm64,armhf] watchdog: sp805: fix restart handler
+ - [armel,armhf] arm, bpf: Fix bugs with ALU64 {RSH, ARSH} BPF_K shift by 0
+ - netfilter: nf_tables: report EOPNOTSUPP on unsupported flags/object type
+ - [arm64] irqchip/mbigen: Free msi_desc on device teardown
+ - ALSA: hda: Don't release card at firmware loading error
+ - of: overlay: kmemleak in dup_and_fixup_symbol_prop()
+ - [x86] Hyper-V: Report crash register data or kmsg before running crash
+ kernel
+ - rbd: avoid a deadlock on header_rwsem when flushing notifies
+ - rbd: call rbd_dev_unprobe() after unwatching and flushing notifies
+ - xsk: Add missing check on user supplied headroom size
+ - [x86] Hyper-V: Unload vmbus channel in hv panic callback
+ - [x86] Hyper-V: Free hv_panic_page when fail to register kmsg dump
+ - [x86] Hyper-V: Trigger crash enlightenment only once during system
+ crash.
+ - [x86] Hyper-V: Report crash register data when sysctl_record_panic_msg
+ is not set
+ - [x86] Hyper-V: Report crash data in die() when panic_on_oops is set
+ - power: supply: bq27xxx_battery: Silence deferred-probe error
+ - [arm64,armhf] clk: tegra: Fix Tegra PMC clock out parents
+ - [armhf] soc: imx: gpc: fix power up sequencing
+ - NFSv4/pnfs: Return valid stateids in nfs_layout_find_inode_by_stateid()
+ - NFS: direct.c: Fix memory leak of dreq when nfs_get_lock_context fails
+ - [s390x] cpuinfo: fix wrong output when CPU0 is offline
+ - [s390x] cpum_sf: Fix wrong page count in error message
+ - ext4: do not commit super on read-only bdev
+ - cifs: Allocate encryption header through kmalloc
+ - include/linux/swapops.h: correct guards for non_swap_entry()
+ - percpu_counter: fix a data race at vm_committed_as
+ - [s390x] KVM: vsie: Fix possible race when shadowing region 3 tables
+ - [x86] ACPI: fix CPU hotplug deadlock
+ - [amd64] drm/amdkfd: kfree the wrong pointer
+ - NFS: Fix memory leaks in nfs_pageio_stop_mirroring()
+ - f2fs: fix NULL pointer dereference in f2fs_write_begin()
+ - [arm*] drm/vc4: Fix HDMI mode validation
+ - [amd64] iommu/vt-d: Fix mm reference leak
+ - power: supply: axp288_fuel_gauge: Broaden vendor check for Intel Compute
+ Sticks.
+ - libnvdimm: Out of bounds read in __nd_ioctl()
+ - f2fs: fix to wait all node page writeback
+ - [armhf] net: dsa: bcm_sf2: Fix overflow checks
+ - fbdev: potential information leak in do_fb_ioctl()
+ - mtd: lpddr: Fix a double free in probe()
+ - mtd: phram: fix a double free issue in error path
+ - KEYS: Don't write out to userspace while holding key semaphore
+ - bpf: fix buggy r0 retval refinement for tracing helpers
+
+ [ Salvatore Bonaccorso ]
+ * Refresh "Revert "objtool: Fix CONFIG_STACK_VALIDATION=y warning for
+ out-of-tree modules"" for context changes in 4.19.99
+ * Refresh "ARM: dts: bcm283x: Correct vchiq compatible string" for context
+ changes in 4.19.99
+ * Drop "tools/lib/api/fs/fs.c: Fix misuse of strncpy()"
+ * Refresh "net: ena: add MAX_QUEUES_EXT get feature admin command" for
+ context changes in 4.19.108
+ * [rt] Update to 4.19.115-rt48:
+ - Revert "genirq: Do not invoke the affinity callback via a workqueue on
+ RT"
+ * [rt] Refresh "pci/switchtec: Don't use completion's wait queue" for
+ context changes in 4.19.116
+ * Refresh "firmware: Remove redundant log messages from drivers" for context
+ changes in 4.19.118
+ * f2fs: fix to avoid memory leakage in f2fs_listxattr (CVE-2020-0067)
+ * net: ipv6: add net argument to ip6_dst_lookup_flow
+ * net: ipv6_stub: use ip6_dst_lookup_flow instead of ip6_dst_lookup
+ (CVE-2020-1749)
+ * blktrace: Protect q->blk_trace with RCU (CVE-2019-19768)
+ * blktrace: fix dereference after null check
+
+ [ Ben Hutchings ]
+ * [x86] Drop "Add a SysRq option to lift kernel lockdown" (Closes: #947021)
+ - This patch allowed remotely disabling lockdown using usbip
+ - Lockdown can be disabled by running "mokutil --disable-validation",
+ rebooting, and confirming the change when prompted
+ * debian/README.source: Refer to upload checklist in kernel-team.git
+ * Bump ABI to 9
+
+ [ YunQiang Su ]
+ * [mips*] enable CONFIG_MIPS_O32_FP64_SUPPORT.
+ * [mips*] enable CONFIG_CPU_HAS_MSA except octeon.
+
+ [ Steve McIntyre ]
+ * [arm64] Include the Hisilicon Hibmc drm driver in fb-modules
+ (Closes: #951274)
+
+ [ Noah Meyerhans ]
+ * [cloud] Enable CONFIG_KSM
+ (Closes: #955366)
+
+ -- Ben Hutchings <benh@debian.org> Sun, 26 Apr 2020 14:04:11 +0100
+
+linux (4.19.98-1+deb10u1) buster-security; urgency=high
+
+ * [x86] KVM: nVMX: Don't emulate instructions in guest mode (CVE-2020-2732)
+ * do_last(): fetch directory ->i_mode and ->i_uid before it's too late
+ (CVE-2020-8428)
+ * vfs: fix do_last() regression
+ * vhost: Check docket sk_family instead of call getname (CVE-2020-10942)
+ * mm: mempolicy: require at least one nodeid for MPOL_PREFERRED
+ (CVE-2020-11565)
+ * [s390x] mm: fix page table upgrade vs 2ndary address mode accesses
+ (CVE-2020-11884)
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Mon, 27 Apr 2020 07:05:39 +0200
+
+linux (4.19.98-1) buster; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.88
+ - [arm64] clk: meson: gxbb: let sar_adc_clk_div set the parent clock rate
+ - ASoC: compress: fix unsigned integer overflow check
+ - reset: Fix memory leak in reset_control_array_put()
+ - [armhf] clk: samsung: exynos5433: Fix error paths
+ - [armel/marvell,armhf] ASoC: kirkwood: fix external clock probe defer
+ - [armel/marvell,armhf] ASoC: kirkwood: fix device remove ordering
+ - [armhf] clk: samsung: exynos5420: Preserve PLL configuration during
+ suspend/resume
+ - [x86] pinctrl: cherryview: Allocate IRQ chip dynamic
+ - [armhf] dts: imx6qdl-sabreauto: Fix storm of accelerometer interrupts
+ - reset: fix reset_control_ops kerneldoc comment
+ - [armhf,arm64] clk: sunxi: Fix operator precedence in sunxi_divs_clk_setup
+ - [armhf] clk: sunxi-ng: a80: fix the zero'ing of bits 16 and 18
+ - [armhf] dts: sun8i-a83t-tbs-a711: Fix WiFi resume from suspend
+ - [ppc64el] bpf: Fix tail call implementation
+ - idr: Fix integer overflow in idr_for_each_entry
+ - idr: Fix idr_alloc_u32 on 32-bit systems
+ - [x86] resctrl: Prevent NULL pointer dereference when reading mondata
+ - [armhf] clk: ti: dra7-atl-clock: Remove ti_clk_add_alias call
+ - [armhf] clk: ti: clkctrl: Fix failed to enable error with double udelay
+ timeout
+ - bridge: ebtables: don't crash when using dnat target in output chains
+ - can: peak_usb: report bus recovery as well
+ - can: rx-offload: can_rx_offload_queue_tail(): fix error handling, avoid
+ skb mem leak
+ - can: rx-offload: can_rx_offload_offload_one(): do not increase the
+ skb_queue beyond skb_queue_len_max
+ - can: rx-offload: can_rx_offload_offload_one(): increment rx_fifo_errors
+ on queue overflow or OOM
+ - can: rx-offload: can_rx_offload_offload_one(): use ERR_PTR() to
+ propagate error value in case of errors
+ - can: rx-offload: can_rx_offload_irq_offload_timestamp(): continue on
+ error
+ - can: rx-offload: can_rx_offload_irq_offload_fifo(): continue on error
+ - [armhf] can: flexcan: increase error counters if skb enqueueing via
+ can_rx_offload_queue_sorted() fails
+ - [arm64] watchdog: meson: Fix the wrong value of left time
+ - ceph: return -EINVAL if given fsc mount option on kernel w/o support
+ - net/fq_impl: Switch to kvmalloc() for memory allocation
+ - mac80211: fix station inactive_time shortly after boot
+ - block: drbd: remove a stray unlock in __drbd_send_protocol()
+ - scsi: target/tcmu: Fix queue_cmd_ring() declaration
+ - scsi: lpfc: Fix kernel Oops due to null pring pointers
+ - scsi: lpfc: Fix dif and first burst use in write commands
+ - tracing: Lock event_mutex before synth_event_mutex
+ - [armhf] dts: imx*: Fix memory node duplication
+ - [armhf] dts: Fix hsi gdd range for omap4
+ - [arm64] mm: Prevent mismatched 52-bit VA support
+ - [arm64] smp: Handle errors reported by the firmware
+ - [armhf] bus: ti-sysc: Check for no-reset and no-idle flags at the child
+ level
+ - [arm64] RDMA/hns: Fix the bug while use multi-hop of pbl
+ - [x86] RDMA/vmw_pvrdma: Use atomic memory allocation in create AH
+ - [armhf] PM / AVS: SmartReflex: NULL check before some freeing functions
+ is not needed
+ - xfs: zero length symlinks are not valid
+ - ACPI / LPSS: Ignore acpi_device_fix_up_power() return value
+ - scsi: lpfc: Enable Management features for IF_TYPE=6
+ - scsi: qla2xxx: Fix NPIV handling for FC-NVMe
+ - scsi: qla2xxx: Fix for FC-NVMe discovery for NPIV port
+ - nvme: provide fallback for discard alloc failure
+ - [s390x] zcrypt: make sysfs reset attribute trigger queue reset
+ - crypto: user - support incremental algorithm dumps
+ - mwifiex: fix potential NULL dereference and use after free
+ - mwifiex: debugfs: correct histogram spacing, formatting
+ - brcmfmac: set F2 watermark to 256 for 4373
+ - brcmfmac: set SDIO F1 MesBusyCtrl for CYW4373
+ - rtl818x: fix potential use after free
+ - bcache: do not check if debug dentry is ERR or NULL explicitly on remove
+ - bcache: do not mark writeback_running too early
+ - xfs: require both realtime inodes to mount
+ - nvme: fix kernel paging oops
+ - ubifs: Fix default compression selection in ubifs
+ - ubi: Put MTD device after it is not used
+ - ubi: Do not drop UBI device reference before using
+ - iwlwifi: move iwl_nvm_check_version() into dvm
+ - iwlwifi: mvm: force TCM re-evaluation on TCM resume
+ - iwlwifi: pcie: fix erroneous print
+ - iwlwifi: pcie: set cmd_len in the correct place
+ - [armhf,arm64] gpio: pca953x: Fix AI overflow on PCAL6524
+ - gpiolib: Fix return value of gpio_to_desc() stub if !GPIOLIB
+ - [x86] kvm: vmx: Set IA32_TSC_AUX for legacy mode guests
+ - [x86] Revert "KVM: nVMX: reset cache/shadows when switching loaded VMCS"
+ - [x86] Revert "KVM: nVMX: move check_vmentry_postreqs() call to
+ nested_vmx_enter_non_root_mode()"
+ - VSOCK: bind to random port for VMADDR_PORT_ANY
+ - [amd64] mmc: meson-gx: make sure the descriptor is stopped on errors
+ - [armhf] mtd: rawnand: sunxi: Write pageprog related opcodes to WCMD_SET
+ - [armhf] usb: ehci-omap: Fix deferred probe for phy handling
+ - btrfs: Check for missing device before bio submission in btrfs_map_bio
+ - btrfs: fix ncopies raid_attr for RAID56
+ - btrfs: dev-replace: set result code of cancel by status of scrub
+ - Btrfs: allow clear_extent_dirty() to receive a cached extent state
+ record
+ - btrfs: only track ref_heads in delayed_ref_updates
+ - [x86] HID: intel-ish-hid: fixes incorrect error handling
+ - serial: 8250: Rate limit serial port rx interrupts during input overruns
+ - [x86] kprobes/xen: blacklist non-attachable xen interrupt functions
+ - xen/pciback: Check dev_data before using it
+ - kprobes: Blacklist symbols in arch-defined prohibited area
+ - [amd64] kprobes: Show x86-64 specific blacklisted symbols correctly
+ - [armhf] memory: omap-gpmc: Get the header of the enum
+ - net/mlx5: Continue driver initialization despite debugfs failure
+ - netfilter: nf_nat_sip: fix RTP/RTCP source port translations
+ - exofs_mount(): fix leaks on failure exits
+ - bnxt_en: Return linux standard errors in bnxt_ethtool.c
+ - bnxt_en: Save ring statistics before reset.
+ - bnxt_en: query force speeds before disabling autoneg mode.
+ - [s390x] KVM: unregister debug feature on failing arch init
+ - dm flakey: Properly corrupt multi-page bios.
+ - gfs2: take jdata unstuff into account in do_grow
+ - dm raid: fix false -EBUSY when handling check/repair message
+ - xfs: Align compat attrlist_by_handle with native implementation.
+ - xfs: Fix bulkstat compat ioctls on x32 userspace.
+ - IB/qib: Fix an error code in qib_sdma_verbs_send()
+ - vxlan: Fix error path in __vxlan_dev_create()
+ - [ppc64el] xmon: fix dump_segments()
+ - drivers/regulator: fix a missing check of return value
+ - Bluetooth: hci_bcm: Handle specific unknown packets after firmware
+ loading
+ - RDMA/srp: Propagate ib_post_send() failures to the SCSI mid-layer
+ - scsi: qla2xxx: deadlock by configfs_depend_item
+ - scsi: csiostor: fix incorrect dma device in case of vport
+ - brcmfmac: Fix access point mode
+ - ath6kl: Only use match sets when firmware supports it
+ - ath6kl: Fix off by one error in scan completion
+ - [ppc64el] perf: Fix unit_sel/cache_sel checks
+ - [ppc64el] prom: fix early DEBUG messages
+ - [ppc64el] mm: Make NULL pointer deferences explicit on bad page faults.
+ - [ppc64el] vfio/spapr_tce: Get rid of possible infinite loop
+ - [ppc64el] powernv/eeh/npu: Fix uninitialized variables in
+ opal_pci_eeh_freeze_status
+ - drbd: ignore "all zero" peer volume sizes in handshake
+ - drbd: reject attach of unsuitable uuids even if connected
+ - drbd: do not block when adjusting "disk-options" while IO is frozen
+ - drbd: fix print_st_err()'s prototype to match the definition
+ - IB/rxe: Make counters thread safe
+ - bpf/cpumap: make sure frame_size for build_skb is aligned if headroom
+ isn't
+ - [armhf] regulator: tps65910: fix a missing check of return value
+ - [ppc64el] powerpc/pseries: Fix node leak in
+ update_lmb_associativity_index()
+ - net/netlink_compat: Fix a missing check of nla_parse_nested
+ - net/net_namespace: Check the return value of register_pernet_subsys()
+ - f2fs: fix block address for __check_sit_bitmap
+ - f2fs: fix to dirty inode synchronously
+ - [armhf] net: dsa: bcm_sf2: Propagate error value from mdio_write
+ - atl1e: checking the status of atl1e_write_phy_reg
+ - tipc: fix a missing check of genlmsg_put
+ - net: marvell: fix a missing check of acpi_match_device
+ - ocfs2: clear journal dirty flag after shutdown journal
+ - vmscan: return NODE_RECLAIM_NOSCAN in node_reclaim() when CONFIG_NUMA is
+ n
+ - mm/page_alloc.c: free order-0 pages through PCP in page_frag_free()
+ - mm/page_alloc.c: use a single function to free page
+ - mm/page_alloc.c: deduplicate __memblock_free_early() and memblock_free()
+ - netfilter: nf_tables: fix a missing check of nla_put_failure
+ - xprtrdma: Prevent leak of rpcrdma_rep objects
+ - infiniband/qedr: Potential null ptr dereference of qp
+ - lib/genalloc.c: fix allocation of aligned buffer from non-aligned chunk
+ - lib/genalloc.c: use vzalloc_node() to allocate the bitmap
+ - drivers/base/platform.c: kmemleak ignore a known leak
+ - lib/genalloc.c: include vmalloc.h
+ - mtd: Check add_mtd_device() ret code
+ - tipc: fix memory leak in tipc_nl_compat_publ_dump
+ - net/core/neighbour: tell kmemleak about hash tables
+ - [armhf,arm64] ata: ahci: mvebu: do Armada 38x configuration only on
+ relevant SoCs
+ - PCI/MSI: Return -ENOSPC from pci_alloc_irq_vectors_affinity()
+ - net/core/neighbour: fix kmemleak minimal reference count for hash tables
+ - serial: 8250: Fix serial8250 initialization crash
+ - [armhf] gpu: ipu-v3: pre: don't trigger update if buffer address doesn't
+ change
+ - sfc: suppress duplicate nvmem partition types in efx_ef10_mtd_probe
+ - ip_tunnel: Make none-tunnel-dst tunnel port work with lwtunnel
+ - decnet: fix DN_IFREQ_SIZE
+ - net/smc: prevent races between smc_lgr_terminate() and smc_conn_free()
+ - net/smc: don't wait for send buffer space when data was already sent
+ - mm/hotplug: invalid PFNs from pfn_to_online_page()
+ - xfs: end sync buffer I/O properly on shutdown error
+ - net/smc: fix sender_free computation
+ - blktrace: Show requests without sector
+ - net/smc: fix byte_order for rx_curs_confirmed
+ - tipc: fix skb may be leaky in tipc_link_input
+ - sfc: initialise found bitmap in efx_ef10_mtd_probe
+ - geneve: change NET_UDP_TUNNEL dependency to select
+ - net: fix possible overflow in __sk_mem_raise_allocated()
+ - net: ip_gre: do not report erspan_ver for gre or gretap
+ - net: ip6_gre: do not report erspan_ver for ip6gre or ip6gretap
+ - sctp: don't compare hb_timer expire date before starting it
+ - bpf: decrease usercnt if bpf_map_new_fd() fails in
+ bpf_map_get_fd_by_id()
+ - mmc: core: align max segment size with logical block size
+ - net: dev: Use unsigned integer as an argument to left-shift
+ - kvm: properly check debugfs dentry before using it
+ - bpf: drop refcount if bpf_map_new_fd() fails in map_create()
+ - [arm64] net: hns3: Change fw error code NOT_EXEC to NOT_SUPPORTED
+ - [arm64] net: hns3: fix PFC not setting problem for DCB module
+ - [arm64] net: hns3: fix an issue for hclgevf_ae_get_hdev
+ - [arm64] net: hns3: fix an issue for hns3_update_new_int_gl
+ - [x86] iommu/amd: Fix NULL dereference bug in match_hid_uid
+ - apparmor: delete the dentry in aafs_remove() to avoid a leak
+ - scsi: libsas: Support SATA PHY connection rate unmatch fixing during
+ discovery
+ - ACPI / APEI: Don't wait to serialise with oops messages when panic()ing
+ - ACPI / APEI: Switch estatus pool to use vmalloc memory
+ - [arm64] scsi: hisi_sas: shutdown axi bus to avoid exception CQ returned
+ - scsi: libsas: Check SMP PHY control function result
+ - [arm64] RDMA/hns: Fix the bug with updating rq head pointer when flush cqe
+ - [arm64] RDMA/hns: Bugfix for the scene without receiver queue
+ - [arm64] RDMA/hns: Fix the state of rereg mr
+ - [arm64] RDMA/hns: Use GFP_ATOMIC in hns_roce_v2_modify_qp
+ - ASoC: rt5645: Headphone Jack sense inverts on the LattePanda board
+ - [ppc64el] pseries/dlpar: Fix a missing check in dlpar_parse_cc_property()
+ (CVE-2019-12614)
+ - xdp: fix cpumap redirect SKB creation bug
+ - mtd: Remove a debug trace in mtdpart.c
+ - [s390x] mm, gup: add missing refcount overflow checks on s390
+ - [armhf,arm64] usb: dwc2: use a longer core rest timeout in
+ dwc2_core_reset()
+ - staging: rtl8192e: fix potential use after free
+ - staging: rtl8723bs: Drop ACPI device ids
+ - staging: rtl8723bs: Add 024c:0525 to the list of SDIO device-ids
+ - USB: serial: ftdi_sio: add device IDs for U-Blox C099-F9P
+ - [x86] mei: bus: prefix device names on bus with the bus name
+ - [x86] mei: me: add comet point V device id
+ - thunderbolt: Power cycle the router if NVM authentication fails
+ - xfrm: Fix memleak on xfrm state destroy
+ - media: v4l2-ctrl: fix flags for DO_WHITE_BALANCE
+ - [arm64] net: macb: fix error format in dev_err()
+ - pwm: Clear chip_data in pwm_put()
+ - macvlan: schedule bc_work even if error
+ - net: psample: fix skb_over_panic
+ - openvswitch: fix flow command message size
+ - sctp: Fix memory leak in sctp_sf_do_5_2_4_dupcook
+ - slip: Fix use-after-free Read in slip_open
+ - openvswitch: drop unneeded BUG_ON() in ovs_flow_cmd_build_info()
+ - openvswitch: remove another BUG_ON()
+ - tipc: fix link name length check
+ - sctp: cache netns in sctp_ep_common
+ - net: sched: fix `tc -s class show` no bstats on class with nolock
+ subqueues
+ - [arm64] net: macb: add missed tasklet_kill
+ - ext4: add more paranoia checking in ext4_expand_extra_isize handling
+ (CVE-2019-19767)
+ - [arm64] net: macb: Fix SUBNS increment and increase resolution
+ - [arm64] net: macb driver, check for SKBTX_HW_TSTAMP
+ - mtd: spi-nor: cast to u64 to avoid uint overflows
+ - tcp: exit if nothing to retransmit on RTO timeout
+ - HID: core: check whether Usage Page item is after Usage ID items
+ - [x86] platform: hp-wmi: Fix ACPI errors caused by too small buffer
+ - [x86] platform: hp-wmi: Fix ACPI errors caused by passing 0 as input size
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.89
+ - rsi: release skb if rsi_prepare_beacon fails (CVE-2019-19071)
+ - [arm64] tegra: Fix 'active-low' warning for Jetson TX1 regulator
+ - usb: gadget: u_serial: add missing port entry locking
+ - [arm64] tty: serial: msm_serial: Fix flow control
+ - [armhf,arm64] serial: pl011: Fix DMA ->flush_buffer()
+ - serial: serial_core: Perform NULL checks for break_ctl ops
+ - autofs: fix a leak in autofs_expire_indirect()
+ - [arm64] RDMA/hns: Correct the value of HNS_ROCE_HEM_CHUNK_LEN
+ - iwlwifi: pcie: don't consider IV len in A-MSDU
+ - exportfs_decode_fh(): negative pinned may become positive without the
+ parent locked
+ - audit_get_nd(): don't unlock parent too early
+ - xfrm: release device reference for invalid state
+ - sched/core: Avoid spurious lock dependencies
+ - perf/core: Consistently fail fork on allocation failures
+ - ALSA: pcm: Fix stream lock usage in snd_pcm_period_elapsed()
+ - [armhf,arm64] drm/sun4i: tcon: Set min division of TCON0_DCLK to 1.
+ - rsxx: add missed destroy_workqueue calls in remove
+ - i2c: core: fix use after free in of_i2c_notify
+ - serial: core: Allow processing sysrq at port unlock time
+ - cxgb4vf: fix memleak in mac_hlist initialization
+ - iwlwifi: mvm: synchronize TID queue removal
+ - iwlwifi: trans: Clear persistence bit when starting the FW
+ - iwlwifi: mvm: Send non offchannel traffic via AP sta
+ - [armhf] 8813/1: Make aligned 2-byte getuser()/putuser() atomic on ARMv6+
+ - audit: Embed key into chunk
+ - netfilter: nf_tables: don't use position attribute on rule replacement
+ - net/mlx5: Release resource on error flow
+ - [arm64] clk: sunxi-ng: a64: Fix gate bit of DSI DPHY
+ - ice: Fix NVM mask defines
+ - dlm: fix possible call to kfree() for non-initialized pointer
+ - [armhf] dts: exynos: Fix LDO13 min values on Odroid XU3/XU4/HC1
+ - [armhf,arm64] rtc: max77686: Fix the returned value in case of error in
+ 'max77686_rtc_read_time()'
+ - i40e: don't restart nway if autoneg not supported
+ - virtchnl: Fix off by one error
+ - [armhf] clk: rockchip: fix rk3188 sclk_smc gate data
+ - [armhf] clk: rockchip: fix rk3188 sclk_mac_lbtest parameter ordering
+ - [armhf] dts: rockchip: Fix rk3288-rock2 vcc_flash name
+ - dlm: fix missing idr_destroy for recover_idr
+ - [armhf,arm64] net: dsa: mv88e6xxx: Work around mv886e6161 SERDES missing
+ MII_PHYSID2
+ - [s390x] scsi: zfcp: update kernel message for invalid FCP_CMND length,
+ it's not the CDB
+ - [s390x] scsi: zfcp: drop default switch case which might paper over
+ missing case
+ - [armhf] bus: ti-sysc: Fix getting optional clocks in clock_roles
+ - [armhf] dts: imx6: RDU2: fix eGalax touchscreen node
+ - crypto: ecc - check for invalid values in the key verification test
+ - crypto: bcm - fix normal/non key hash algorithm failure
+ - [arm64] dts: zynqmp: Fix node names which contain "_"
+ - [arm64] pinctrl: qcom: ssbi-gpio: fix gpio-hog related boot issues
+ - [arm*] firmware: raspberrypi: Fix firmware calls with large buffers
+ - mm/vmstat.c: fix NUMA statistics updates
+ - [arm64] clk: rockchip: fix I2S1 clock gate register for rk3328
+ - [arm64] clk: rockchip: fix ID of 8ch clock of I2S1 for rk3328
+ - sctp: count sk_wmem_alloc by skb truesize in sctp_packet_transmit
+ - regulator: Fix return value of _set_load() stub
+ - USB: serial: f81534: fix reading old/new IC config
+ - xfs: extent shifting doesn't fully invalidate page cache
+ - net-next/hinic:fix a bug in set mac address
+ - net-next/hinic: fix a bug in rx data flow
+ - ice: Fix return value from NAPI poll
+ - ice: Fix possible NULL pointer de-reference
+ - iomap: FUA is wrong for DIO O_DSYNC writes into unwritten extents
+ - iomap: sub-block dio needs to zeroout beyond EOF
+ - iomap: dio data corruption and spurious errors when pipes fill
+ - iomap: readpages doesn't zero page tail beyond EOF
+ - iw_cxgb4: only reconnect with MPAv1 if the peer aborts
+ - [mips*/octeon] octeon-platform: fix typing
+ - net/smc: use after free fix in smc_wr_tx_put_slot()
+ - [armhf] dts: exynos: Use Samsung SoC specific compatible for DWC2 module
+ - media: pulse8-cec: return 0 when invalidating the logical address
+ - media: cec: report Vendor ID after initialization
+ - iwlwifi: fix cfg structs for 22000 with different RF modules
+ - net/ipv6: re-do dad when interface has IFF_NOARP flag change
+ - [x86] dmaengine: dw-dmac: implement dma protection control setting
+ - [armhf,arm64] usb: dwc3: debugfs: Properly print/set link state for HS
+ - [armhf,arm64] usb: dwc3: don't log probe deferrals; but do log other
+ error codes
+ - ACPI: fix acpi_find_child_device() invocation in acpi_preset_companion()
+ - f2fs: fix to account preflush command for noflush_merge mode
+ - f2fs: fix count of seg_freed to make sec_freed correct
+ - f2fs: change segment to section in f2fs_ioc_gc_range
+ - [armhf] dts: rockchip: Fix the PMU interrupt number for rv1108
+ - [armhf] dts: rockchip: Assign the proper GPIO clocks for rv1108
+ - f2fs: fix to allow node segment for GC by ioctl path
+ - nvme: Free ctrl device name on init failure
+ - dma-mapping: fix return type of dma_set_max_seg_size()
+ - [armhf] serial: imx: fix error handling in console_setup
+ - [armhf] i2c: imx: don't print error message on probe defer
+ - [arm64] clk: meson: Fix GXL HDMI PLL fractional bits width
+ - [armhf,arm64] gpu: host1x: Fix syncpoint ID field size on Tegra186
+ - lockd: fix decoding of TEST results
+ - sctp: increase sk_wmem_alloc when head->truesize is increased
+ - [x86] iommu/amd: Fix line-break in error log reporting
+ - [armhf] dts: sun8i: a23/a33: Fix OPP DTC warnings
+ - [armhf] dts: sun8i: v3s: Change pinctrl nodes to avoid warning
+ - nfsd: fix a warning in __cld_pipe_upcall()
+ - bpf: btf: implement btf_name_valid_identifier()
+ - bpf: btf: check name validity for various types
+ - [armhf] OMAP1/2: fix SoC name printing
+ - [arm64] dts: meson-gxl-libretech-cc: fix GPIO lines names
+ - [arm64] dts: meson-gxbb-nanopi-k2: fix GPIO lines names
+ - [arm64] dts: meson-gxbb-odroidc2: fix GPIO lines names
+ - [arm64] dts: meson-gxl-khadas-vim: fix GPIO lines names
+ - net/x25: fix called/calling length calculation in x25_parse_address_block
+ - net/x25: fix null_x25_address handling
+ - tcp: make tcp_space() aware of socket backlog
+ - tcp: fix off-by-one bug on aborting window-probing socket
+ - tcp: fix SNMP under-estimation on failed retransmission
+ - tcp: fix SNMP TCP timeout under-estimation
+ - kbuild: fix single target build for external module
+ - mtd: fix mtd_oobavail() incoherent returned value
+ - [arm64] clk: meson: meson8b: fix the offset of vid_pll_dco's N value
+ - [armhf,arm64] clk: sunxi-ng: h3/h5: Fix CSI_MCLK parent
+ - [arm64] clk: qcom: Fix MSM8998 resets
+ - dlm: fix invalid cluster name warning
+ - net/mlx4_core: Fix return codes of unsupported operations
+ - pstore/ram: Avoid NULL deref in ftrace merging failure path
+ - [mips*/octeon] cvmx_pko_mem_debug8: use oldest forward compatible
+ definition
+ - nfsd: Return EPERM, not EACCES, in some SETATTR cases
+ - media: uvcvideo: Abstract streaming object lifetime
+ - [armhf] dts: sun8i: h3: Fix the system-control register range
+ - tty: Don't block on IO when ldisc change is pending
+ - media: stkwebcam: Bugfix for wrong return values
+ - sctp: frag_point sanity check
+ - IB/hfi1: Ignore LNI errors before DC8051 transitions to Polling state
+ - IB/hfi1: Close VNIC sdma_progress sleep window
+ - mlx4: Use snprintf instead of complicated strcpy
+ - [armhf] dts: sunxi: Fix PMU compatible strings
+ - [armhf] dts: am335x-pdu001: Fix polarity of card detection input
+ - net: aquantia: fix RSS table and key sizes
+ - sched/fair: Scale bandwidth quota and period without losing quota/period
+ ratio precision
+ - fuse: verify nlink
+ - fuse: verify attributes
+ - [x86] ALSA: hda/realtek - Enable internal speaker of ASUS UX431FLC
+ - [x86] ALSA: hda/realtek - Enable the headset-mic on a Xiaomi's laptop
+ - [x86] ALSA: hda/realtek - Dell headphone has noise on unmute for ALC236
+ - ALSA: pcm: oss: Avoid potential buffer overflows
+ - [x86] ALSA: hda - Add mute led support for HP ProBook 645 G4
+ - [x86] Input: synaptics - switch another X1 Carbon 6 to RMI/SMbus
+ - [x86] Input: synaptics-rmi4 - re-enable IRQs in f34v7_do_reflash
+ - [x86] Input: synaptics-rmi4 - don't increment rmiaddr for SMBus transfers
+ - [x86] Input: goodix - add upside-down quirk for Teclast X89 tablet
+ - Input: Fix memory leak in psxpad_spi_probe
+ - [i386] mm: Sync only to VMALLOC_END in vmalloc_sync_all()
+ - [x86] PCI: Avoid AMD FCH XHCI USB PME# from D0 defect
+ - xfrm interface: fix memory leak on creation
+ - xfrm interface: avoid corruption on changelink
+ - xfrm interface: fix list corruption for x-netns
+ - xfrm interface: fix management of phydev
+ - CIFS: Fix NULL-pointer dereference in smb2_push_mandatory_locks
+ - CIFS: Fix SMB2 oplock break processing
+ - tty: vt: keyboard: reject invalid keycodes
+ - can: slcan: Fix use-after-free Read in slcan_open
+ - kernfs: fix ino wrap-around detection
+ - jbd2: Fix possible overflow in jbd2_log_space_left()
+ - [arm64] drm/msm: fix memleak on release
+ - [i386] drm/i810: Prevent underflow in ioctl
+ - [armhf,arm64] KVM: vgic: Don't rely on the wrong pending table
+ - [x86] KVM: do not modify masked bits of shared MSRs
+ - [x86] KVM: fix presentation of TSX feature in ARCH_CAPABILITIES
+ - [x86] KVM: Grab KVM's srcu lock when setting nested state
+ - crypto: af_alg - cast ki_complete ternary op to int
+ - [x86] crypto: ccp - fix uninitialized list head
+ - crypto: ecdh - fix big endian bug in ECC library
+ - crypto: user - fix memory leak in crypto_report (CVE-2019-19062)
+ - mwifiex: update set_mac_address logic
+ - can: ucan: fix non-atomic allocation in completion handler
+ - RDMA/qib: Validate ->show()/store() callbacks before calling them
+ - iomap: Fix pipe page leakage during splicing
+ - thermal: Fix deadlock in thermal thermal_zone_device_check
+ - vcs: prevent write access to vcsu devices (CVE-2019-19252)
+ - binder: Fix race between mmap() and binder_alloc_print_pages()
+ - binder: Handle start==NULL in binder_update_page_range()
+ - ALSA: hda - Fix pending unsol events at shutdown
+ - perf script: Fix invalid LBR/binary mismatch error
+ - splice: don't read more than available pipe space
+ - iomap: partially revert 4721a601099 (simulated directio short read on
+ EFAULT)
+ - xfs: add missing error check in xfs_prepare_shift()
+ - ASoC: rsnd: fixup MIX kctrl registration
+ - [x86] KVM: fix out-of-bounds write in KVM_GET_EMULATED_CPUID
+ (CVE-2019-19332)
+ - net: qrtr: fix memort leak in qrtr_tun_write_iter (CVE-2019-19079)
+ - appletalk: Fix potential NULL pointer dereference in
+ unregister_snap_client (CVE-2019-19227)
+ - appletalk: Set error code if register_snap_client failed
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.90
+ - usb: gadget: configfs: Fix missing spin_lock_init()
+ - [x86] usb: gadget: pch_udc: fix use after free
+ - scsi: qla2xxx: Fix driver unload hang
+ - [arm64] media: venus: remove invalid compat_ioctl32 handler
+ - USB: uas: honor flag to avoid CAPACITY16
+ - USB: uas: heed CAPACITY_HEURISTICS
+ - usb: Allow USB device to be warm reset in suspended state
+ - staging: rtl8188eu: fix interface sanity check
+ - staging: rtl8712: fix interface sanity check
+ - staging: gigaset: fix general protection fault on probe
+ - staging: gigaset: fix illegal free on probe errors
+ - staging: gigaset: add endpoint-type sanity check
+ - usb: xhci: only set D3hot for pci device
+ - xhci: Fix memory leak in xhci_add_in_port()
+ - xhci: Increase STS_HALT timeout in xhci_suspend()
+ - xhci: handle some XHCI_TRUST_TX_LENGTH quirks cases as default behaviour.
+ - [armhf] dts: pandora-common: define wl1251 as child node of mmc3
+ - [x86] iio: imu: inv_mpu6050: fix temperature reporting using bad unit
+ - USB: atm: ueagle-atm: add missing endpoint check
+ - USB: idmouse: fix interface sanity checks
+ - USB: serial: io_edgeport: fix epic endpoint lookup
+ - usb: roles: fix a potential use after free
+ - USB: adutux: fix interface sanity check
+ - usb: core: urb: fix URB structure initialization function
+ - usb: mon: Fix a deadlock in usbmon between mmap and read
+ - tpm: add check after commands attribs tab allocation
+ - virtio-balloon: fix managed page counts when migrating pages between
+ zones
+ - [armhf,arm64] usb: dwc3: gadget: Fix logical condition
+ - [armhf,arm64] usb: dwc3: ep0: Clear started flag on completion
+ - btrfs: check page->mapping when loading free space cache
+ - btrfs: use refcount_inc_not_zero in kill_all_nodes
+ - Btrfs: fix metadata space leak on fixup worker failure to set range as
+ delalloc
+ - Btrfs: fix negative subv_writers counter and data space leak after
+ buffered write
+ - btrfs: Avoid getting stuck during cyclic writebacks
+ - btrfs: Remove btrfs_bio::flags member
+ - Btrfs: send, skip backreference walking for extents with many references
+ - btrfs: record all roots for rename exchange on a subvol
+ - rtlwifi: rtl8192de: Fix missing code to retrieve RX buffer address
+ - rtlwifi: rtl8192de: Fix missing callback that tests for hw release of
+ buffer
+ - rtlwifi: rtl8192de: Fix missing enable interrupt flag
+ - ovl: fix corner case of non-unique st_dev;st_ino
+ - ovl: relax WARN_ON() on rename to self
+ - [armhf] hwrng: omap - Fix RNG wait loop timeout
+ - dm writecache: handle REQ_FUA
+ - dm zoned: reduce overhead of backing device checks
+ - workqueue: Fix spurious sanity check failures in destroy_workqueue()
+ - workqueue: Fix pwq ref leak in rescuer_thread()
+ - ASoC: rt5645: Fixed buddy jack support.
+ - ASoC: rt5645: Fixed typo for buddy jack support.
+ - ASoC: Jack: Fix NULL pointer dereference in snd_soc_jack_report
+ - md: improve handling of bio with REQ_PREFLUSH in md_flush_request()
+ - blk-mq: avoid sysfs buffer overflow with too many CPU cores
+ - cgroup: pids: use atomic64_t for pids->limit
+ - ar5523: check NULL before memcpy() in ar5523_cmd()
+ - [s390x] mm: properly clear _PAGE_NOEXEC bit when it is not supported
+ - media: cec.h: CEC_OP_REC_FLAG_ values were swapped
+ - cpuidle: Do not unset the driver if it is there already
+ - erofs: zero out when listxattr is called with no xattr
+ - [x86] intel_th: Fix a double put_device() in error path
+ - [x86] intel_th: pci: Add Ice Lake CPU support
+ - [x86] intel_th: pci: Add Tiger Lake CPU support
+ - PM / devfreq: Lock devfreq in trans_stat_show
+ - [ppc64el] cpufreq: powernv: fix stack bloat and hard limit on number of
+ CPUs
+ - ACPI / hotplug / PCI: Allocate resources directly under the non-hotplug
+ bridge
+ - ACPI: OSL: only free map once in osl.c
+ - ACPI: bus: Fix NULL pointer check in acpi_bus_get_private_data()
+ - ACPI: PM: Avoid attaching ACPI PM domain to certain devices
+ - [arm64] pinctrl: armada-37xx: Fix irq mask access in
+ armada_37xx_irq_set_type()
+ - [armhf] pinctrl: samsung: Add of_node_put() before return in error path
+ - [armhf] pinctrl: samsung: Fix device node refcount leaks in Exynos wakeup
+ controller init
+ - [armhf] pinctrl: samsung: Fix device node refcount leaks in init code
+ - [armhf] mmc: host: omap_hsmmc: add code for special init of wl1251 to get
+ rid of pandora_wl1251_init_card
+ - [armhf] dts: omap3-tao3530: Fix incorrect MMC card detection GPIO
+ polarity
+ - ppdev: fix PPGETTIME/PPSETTIME ioctls
+ - [ppc64el] Allow 64bit VDSO __kernel_sync_dicache to work across ranges
+ >4GB
+ - [ppc64el] xive: Prevent page fault issues in the machine crash handler
+ - [ppc64el] Allow flush_icache_range to work across ranges >4GB
+ - [ppc64el] xive: Skip ioremap() of ESB pages for LSI interrupts
+ - video/hdmi: Fix AVI bar unpack
+ - quota: Check that quota is not dirty before release
+ - ext2: check err when partial != NULL
+ - quota: fix livelock in dquot_writeback_dquots
+ - ext4: Fix credit estimate for final inode freeing
+ - reiserfs: fix extended attributes on the root directory
+ - block: fix single range discard merge
+ - [s390x] scsi: zfcp: trace channel log even for FCP command responses
+ - scsi: qla2xxx: Fix DMA unmap leak
+ - scsi: qla2xxx: Fix hang in fcport delete path
+ - scsi: qla2xxx: Fix session lookup in qlt_abort_work()
+ - scsi: qla2xxx: Fix qla24xx_process_bidir_cmd()
+ - scsi: qla2xxx: Always check the qla2x00_wait_for_hba_online() return value
+ - scsi: qla2xxx: Fix message indicating vectors used by driver
+ - scsi: qla2xxx: Fix SRB leak on switch command timeout
+ - xhci: make sure interrupts are restored to correct state
+ - usb: typec: fix use after free in typec_register_port()
+ - [armhf] omap: pdata-quirks: remove openpandora quirks for mmc3 and wl1251
+ - scsi: lpfc: Cap NPIV vports to 256
+ - scsi: lpfc: Correct code setting non existent bits in sli4 ABORT WQE
+ - scsi: lpfc: Correct topology type reporting on G7 adapters
+ - sch_cake: Correctly update parent qlen when splitting GSO packets
+ - net/smc: do not wait under send_lock
+ - [arm64] net: hns3: clear pci private data when unload hns3 driver
+ - [arm64] net: hns3: change hnae3_register_ae_dev() to int
+ - [arm64] net: hns3: Check variable is valid before assigning it to another
+ - [arm64] scsi: hisi_sas: send primitive NOTIFY to SSP situation only
+ - [arm64] scsi: hisi_sas: Reject setting programmed minimum linkrate > 1.5G
+ - [x86] MCE/AMD: Turn off MC4_MISC thresholding on all family 0x15 models
+ - [x86] MCE/AMD: Carve out the MC4_MISC thresholding quirk
+ - ath10k: fix fw crash by moving chip reset after napi disabled
+ - [ppc64el] Fix vDSO clock_getres()
+ - ext4: work around deleting a file with i_nlink == 0 safely
+ (CVE-2019-19447)
+ - mm/shmem.c: cast the type of unmap_start to u64
+ - rtc: disable uie before setting time and enable after
+ - splice: only read in as much information as there is pipe buffer space
+ - ext4: fix a bug in ext4_wait_for_tail_page_commit
+ - [armhf,arm64] mfd: rk808: Fix RK818 ID template
+ - mm, thp, proc: report THP eligibility for each vma
+ - [s390x] smp,vdso: fix ASCE handling
+ - blk-mq: make sure that line break can be printed
+ - workqueue: Fix missing kfree(rescuer) in destroy_workqueue()
+ - perf callchain: Fix segfault in thread__resolve_callchain_sample()
+ - gre: refetch erspan header from skb->data after pskb_may_pull()
+ - sunrpc: fix crash when cache_head become valid before update
+ - net/mlx5e: Fix SFF 8472 eeprom length
+ - leds: trigger: netdev: fix handling on interface rename
+ - gfs2: fix glock reference problem in gfs2_trans_remove_revoke
+ - of: overlay: add_changeset_property() memory leak
+ - kernel/module.c: wakeup processes in module_wq on module unload
+ - cifs: Fix potential softlockups while refreshing DFS cache
+ - [x86] gpiolib: acpi: Add Terra Pad 1061 to the
+ run_edge_events_on_boot_blacklist
+ - raid5: need to set STRIPE_HANDLE for batch head
+ - scsi: qla2xxx: Change discovery state before PLOGI
+ - [x86] iio: imu: mpu6050: add missing available scan masks
+ - idr: Fix idr_get_next_ul race with idr_remove
+ - of: unittest: fix memory leak in attach_node_and_children
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.91
+ - inet: protect against too small mtu values.
+ - mqprio: Fix out-of-bounds access in mqprio_dump
+ - net: bridge: deny dev_set_mac_address() when unregistering
+ - net: dsa: fix flow dissection on Tx path
+ - net: ethernet: ti: cpsw: fix extra rx interrupt
+ - net: sched: fix dump qlen for sch_mq/sch_mqprio with NOLOCK subqueues
+ - [arm64] net: thunderx: start phy before starting autonegotiation
+ - openvswitch: support asymmetric conntrack
+ - tcp: md5: fix potential overestimation of TCP option space
+ - tipc: fix ordering of tipc module init and exit routine
+ - net/mlx5e: Query global pause state before setting prio2buffer
+ - tcp: fix rejected syncookies due to stale timestamps
+ - tcp: tighten acceptance of ACKs not matching a child socket
+ - tcp: Protect accesses to .ts_recent_stamp with {READ,WRITE}_ONCE()
+ - [arm64] Revert "arm64: preempt: Fix big-endian when checking preempt
+ count in assembly"
+ - mmc: block: Make card_busy_detect() a bit more generic
+ - mmc: block: Add CMD13 polling for MMC IOCTLS with R1B response
+ - PCI/PM: Always return devices to D0 when thawing
+ - PCI: pciehp: Avoid returning prematurely from sysfs requests
+ - [x86] PCI: Fix Intel ACS quirk UPDCR register address
+ - PCI/MSI: Fix incorrect MSI-X masking on resume
+ - [arm64] PCI: Apply Cavium ACS quirk to ThunderX2 and ThunderX3
+ - [arm64] rpmsg: glink: Set tail pointer to 0 at end of FIFO
+ - [arm64] rpmsg: glink: Fix reuse intents memory leak issue
+ - [arm64] rpmsg: glink: Fix use after free in open_ack TIMEOUT case
+ - [arm64] rpmsg: glink: Put an extra reference during cleanup
+ - [arm64] rpmsg: glink: Fix rpmsg_register_device err handling
+ - [arm64] rpmsg: glink: Don't send pending rx_done during remove
+ - [arm64] rpmsg: glink: Free pending deferred work on remove
+ - cifs: smbd: Return -EAGAIN when transport is reconnecting
+ - cifs: smbd: Add messages on RDMA session destroy and reconnection
+ - cifs: smbd: Return -EINVAL when the number of iovs exceeds
+ SMBDIRECT_MAX_SGE
+ - cifs: Don't display RDMA transport on reconnect
+ - CIFS: Respect O_SYNC and O_DIRECT flags during reconnect
+ - CIFS: Close open handle after interrupted close
+ - [armhf] tegra: Fix FLOW_CTLR_HALT register clobbering by tegra_resume()
+ - vfio/pci: call irq_bypass_unregister_producer() before freeing irq
+ - dma-buf: Fix memory leak in sync_file_merge()
+ - [arm64] drm: meson: venc: cvbs: fix CVBS mode matching
+ - dm mpath: remove harmful bio-based optimization
+ - dm btree: increase rebalance threshold in __rebalance2()
+ - scsi: iscsi: Fix a potential deadlock in the timeout handler
+ - scsi: qla2xxx: Change discovery state before PLOGI
+ - drm/radeon: fix r1xx/r2xx register checker for POT textures
+ - xhci: fix USB3 device initiated resume race with roothub autosuspend
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.92
+ - af_packet: set defaule value for tmo
+ - [amd64] fjes: fix missed check in fjes_acpi_add
+ - [arm64] net: hisilicon: Fix a BUG trigered by wrong bytes_compl
+ - net: qlogic: Fix error paths in ql_alloc_large_buffers()
+ - net: usb: lan78xx: Fix suspend/resume PHY register access error
+ - qede: Disable hardware gro when xdp prog is installed
+ - qede: Fix multicast mac configuration
+ - sctp: fully initialize v4 addr in some functions
+ - btrfs: don't double lock the subvol_sem for rename exchange
+ - btrfs: do not call synchronize_srcu() in inode_tree_del
+ - Btrfs: fix missing data checksums after replaying a log tree
+ - btrfs: send: remove WARN_ON for readonly mount
+ - btrfs: abort transaction after failed inode updates in create_subvol
+ - btrfs: skip log replay on orphaned roots
+ - btrfs: do not leak reloc root if we fail to read the fs root
+ - btrfs: handle ENOENT in btrfs_uuid_tree_iterate
+ - Btrfs: fix removal logic of the tree mod log that leads to
+ use-after-free issues
+ - ALSA: pcm: Avoid possible info leaks from PCM stream buffers
+ - ALSA: hda/ca0132 - Keep power on during processing DSP response
+ - ALSA: hda/ca0132 - Avoid endless loop
+ - ALSA: hda/ca0132 - Fix work handling in delayed HP detection
+ - [arm64,armhf] drm/panel: Add missing drm_panel_init() in panel drivers
+ - drm/amdgpu: grab the id mgr lock while accessing passid_mapping
+ - spi: Add call to spi_slave_abort() function when spidev driver is
+ released
+ - [x86] staging: rtl8192u: fix multiple memory leaks on error path
+ - staging: rtl8188eu: fix possible null dereference
+ - rtlwifi: prevent memory leak in rtl_usb_probe (CVE-2019-19063)
+ - libertas: fix a potential NULL pointer dereference
+ - ath10k: fix backtrace on coredump
+ - IB/iser: bound protection_sg size by data_sg size
+ - [arm64] media: venus: core: Fix msm8996 frequency table
+ - ath10k: fix offchannel tx failure when no ath10k_mac_tx_frm_has_freq
+ - pinctrl: devicetree: Avoid taking direct reference to device name string
+ - [amd64] drm/amdkfd: fix a potential NULL pointer dereference
+ - [arm64] media: venus: Fix occasionally failures to suspend
+ - [armhf] hwrng: omap3-rom - Call clk_disable_unprepare() on exit only if
+ not idled
+ - media: flexcop-usb: fix NULL-ptr deref in flexcop_usb_transfer_init()
+ - [arm64,armhf] drm/bridge: dw-hdmi: Refuse DDC/CI transfers on the
+ internal I2C controller
+ - block: Fix writeback throttling W=1 compiler warnings
+ - mwifiex: pcie: Fix memory leak in mwifiex_pcie_init_evt_ring
+ (CVE-2019-19057)
+ - drm/drm_vblank: Change EINVAL by the correct errno
+ - media: cx88: Fix some error handling path in 'cx8800_initdev()'
+ - [armhf] media: ti-vpe: vpe: Fix Motion Vector vpdma stride
+ - [armhf] media: ti-vpe: vpe: fix a v4l2-compliance warning about invalid
+ pixel format
+ - [armhf] media: ti-vpe: vpe: fix a v4l2-compliance failure about frame
+ sequence number
+ - [armhf] media: ti-vpe: vpe: Make sure YUYV is set as default format
+ - [armhf] media: ti-vpe: vpe: fix a v4l2-compliance failure causing a
+ kernel panic
+ - [armhf] media: ti-vpe: vpe: ensure buffers are cleaned up properly in
+ abort cases
+ - [armhf] media: ti-vpe: vpe: fix a v4l2-compliance failure about invalid
+ sizeimage
+ - [x86] syscalls/x86: Use the correct function type in SYSCALL_DEFINE0
+ - [x86] mm: Use the correct function type for native_set_fixmap()
+ - ath10k: Correct error handling of dma_map_single()
+ - [arm64,armhf] drm/bridge: dw-hdmi: Restore audio when setting a mode
+ - perf report: Add warning when libunwind not compiled in
+ - usb: usbfs: Suppress problematic bind and unbind uevents.
+ - Bluetooth: missed cpu_to_le16 conversion in hci_init4_req
+ - Bluetooth: Workaround directed advertising bug in Broadcom controllers
+ - Bluetooth: hci_core: fix init for HCI_USER_CHANNEL
+ - [x86] mce: Lower throttling MCE messages' priority to warning
+ - [x86] drm/gma500: fix memory disclosures due to uninitialized bytes
+ - rtl8xxxu: fix RTL8723BU connection failure issue after warm reboot
+ - ipmi: Don't allow device module unload when in use
+ - [x86] ioapic: Prevent inconsistent state when moving an interrupt
+ - md/bitmap: avoid race window between md_bitmap_resize and
+ bitmap_file_clear_bit
+ - [arm64] psci: Reduce the waiting time for cpu_psci_cpu_kill()
+ - i40e: initialize ITRN registers with correct values
+ - net: phy: dp83867: enable robust auto-mdix
+ - [arm64,armhf] drm/tegra: sor: Use correct SOR index on Tegra210
+ - ACPI: button: Add DMI quirk for Medion Akoya E2215T
+ - RDMA/qedr: Fix memory leak in user qp and mr
+ - [arm64,armhf] gpu: host1x: Allocate gather copy for host1x
+ - [arm64,armhf] net: dsa: LAN9303: select REGMAP when LAN9303 enable
+ - [arm64] phy: qcom-usb-hs: Fix extcon double register after power cycle
+ - [s390x] time: ensure get_clock_monotonic() returns monotonic values
+ - [s390x] mm: add mm_pxd_folded() checks to pxd_free()
+ - [arm64] net: hns3: add struct netdev_queue debug info for TX timeout
+ - libata: Ensure ata_port probe has completed before detach
+ - loop: fix no-unmap write-zeroes request behavior
+ - Bluetooth: Fix advertising duplicated flags
+ - pinctrl: amd: fix __iomem annotation in amd_gpio_irq_handler()
+ - ixgbe: protect TX timestamping from API misuse
+ - media: rcar_drif: fix a memory disclosure (CVE-2019-18786)
+ - media: v4l2-core: fix touch support in v4l_g_fmt
+ - rfkill: allocate static minor
+ - bnx2x: Fix PF-VF communication over multi-cos queues.
+ - ALSA: timer: Limit max amount of slave instances
+ - rtlwifi: fix memory leak in rtl92c_set_fw_rsvdpagepkt()
+ - perf probe: Fix to find range-only function instance
+ - perf probe: Fix to list probe event with correct line number
+ - perf jevents: Fix resource leak in process_mapfile() and main()
+ - perf probe: Walk function lines in lexical blocks
+ - perf probe: Fix to probe an inline function which has no entry pc
+ - perf probe: Fix to show ranges of variables in functions without
+ entry_pc
+ - perf probe: Fix to show inlined function callsite without entry_pc
+ - perf probe: Fix to probe a function which has no entry pc
+ - perf tools: Splice events onto evlist even on error
+ - perf parse: If pmu configuration fails free terms
+ - perf probe: Skip overlapped location on searching variables
+ - perf probe: Return a better scope DIE if there is no best scope
+ - perf probe: Fix to show calling lines of inlined functions
+ - perf probe: Skip end-of-sequence and non statement lines
+ - perf probe: Filter out instances except for inlined subroutine and
+ subprogram
+ - ath10k: fix get invalid tx rate for Mesh metric
+ - media: pvrusb2: Fix oops on tear-down when radio support is not present
+ - ice: delay less
+ - [amd64] spi: pxa2xx: Add missed security checks
+ - ASoC: rt5677: Mark reg RT5677_PWR_ANLG2 as volatile
+ - iio: dac: ad5446: Add support for new AD5600 DAC
+ - [x86] ASoC: Intel: kbl_rt5663_rt5514_max98927: Add dmic format
+ constraint
+ - [s390x] disassembler: don't hide instruction addresses
+ - nvme: Discard workaround for non-conformant devices
+ - parport: load lowlevel driver if ports not found
+ - bcache: fix static checker warning in bcache_device_free()
+ - cpufreq: Register drivers only after CPU devices have been registered
+ - tracing: use kvcalloc for tgid_map array allocation
+ - tracing/kprobe: Check whether the non-suffixed symbol is notrace
+ - bcache: fix deadlock in bcache_allocator
+ - iwlwifi: mvm: fix unaligned read of rx_pkt_status
+ - [arm64] spi: tegra20-slink: add missed clk_unprepare
+ - tun: fix data-race in gro_normal_list()
+ - crypto: virtio - deal with unsupported input sizes
+ - btrfs: don't prematurely free work in end_workqueue_fn()
+ - btrfs: don't prematurely free work in run_ordered_work()
+ - [x86] ASoC: Intel: bytcr_rt5640: Update quirk for Acer Switch 10 SW5-012
+ 2-in-1
+ - [x86] insn: Add some Intel instructions to the opcode map
+ - brcmfmac: remove monitor interface when detaching
+ - iwlwifi: check kasprintf() return value
+ - [armhf] net: ethernet: ti: ale: clean ale tbl on init and intf restart
+ - [armhf] crypto: sun4i-ss - Fix 64-bit size_t warnings
+ - [armhf] crypto: sun4i-ss - Fix 64-bit size_t warnings on sun4i-ss-hash.c
+ - mac80211: consider QoS Null frames for STA_NULLFUNC_ACKED
+ - net: phy: initialise phydev speed and duplex sanely
+ - btrfs: don't prematurely free work in reada_start_machine_worker()
+ - btrfs: don't prematurely free work in scrub_missing_raid56_worker()
+ - Revert "mmc: sdhci: Fix incorrect switch to HS mode"
+ - can: kvaser_usb: kvaser_usb_leaf: Fix some info-leaks to USB devices
+ (CVE-2019-19947)
+ - usb: xhci: Fix build warning seen with CONFIG_PM=n
+ - [s390x] ftrace: fix endless recursion in function_graph tracer
+ - btrfs: return error pointer from alloc_test_extent_buffer
+ - usbip: Fix receive error in vhci-hcd when using scatter-gather
+ - usbip: Fix error path of vhci_recv_ret_submit()
+ - cpufreq: Avoid leaving stale IRQ work items during CPU offline
+ - [x86] intel_th: pci: Add Comet Lake PCH-V support
+ - [x86] intel_th: pci: Add Elkhart Lake SOC support
+ - [x86] platform/x86: hp-wmi: Make buffer for HPWMI_FEATURE2_QUERY 128
+ bytes
+ - [x86] staging: comedi: gsc_hpdi: check dma_alloc_coherent() return value
+ - ext4: fix ext4_empty_dir() for directories with holes (CVE-2019-19037)
+ - ext4: check for directory entries too close to block end
+ - ext4: unlock on error in ext4_expand_extra_isize()
+ - [arm64] KVM: Ensure 'params' is initialised when looking up sys register
+ - [x86] MCE/AMD: Do not use rdmsr_safe_on_cpu() in smca_configure()
+ - [x86] MCE/AMD: Allow Reserved types to be overwritten in smca_banks[]
+ - [powerpc*] irq: fix stack overflow verification
+ - [arm64] mmc: sdhci-msm: Correct the offset and value for DDR_CONFIG
+ register
+ - mmc: sdhci: Update the tuning failed messages to pr_debug level
+ - mmc: sdhci: Workaround broken command queuing on Intel GLK
+ - mmc: sdhci: Add a quirk for broken command queuing
+ - nbd: fix shutdown and recv work deadlock
+ - perf probe: Fix to show function entry line as probe-able
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.93
+ - scsi: lpfc: Fix discovery failures when target device connectivity
+ bounces
+ - scsi: mpt3sas: Fix clear pending bit in ioctl status
+ - scsi: lpfc: Fix locking on mailbox command completion
+ - Input: atmel_mxt_ts - disable IRQ across suspend
+ - f2fs: fix to update time in lazytime mode
+ - [arm64,armhf] iommu: rockchip: Free domain on .domain_free
+ - [arm64,armhf] iommu/tegra-smmu: Fix page tables in > 4 GiB memory
+ - scsi: target: compare full CHAP_A Algorithm strings
+ - scsi: lpfc: Fix SLI3 hba in loop mode not discovering devices
+ - scsi: csiostor: Don't enable IRQs too early
+ - [arm64] scsi: hisi_sas: Replace in_softirq() check in
+ hisi_sas_task_exec()
+ - [ppc64el] pseries: Mark accumulate_stolen_time() as notrace
+ - [ppc64el] pseries: Don't fail hash page table insert for bolted mapping
+ - clocksource/drivers/timer-of: Use unique device name instead of timer
+ - [ppc64el] security/book3s64: Report L1TF status in sysfs
+ - [ppc64el] book3s64/hash: Add cond_resched to avoid soft lockup warning
+ - ext4: update direct I/O read lock pattern for IOCB_NOWAIT
+ - ext4: iomap that extends beyond EOF should be marked dirty
+ - jbd2: Fix statistics for the number of logged blocks
+ - scsi: tracing: Fix handling of TRANSFER LENGTH == 0 for READ(6) and
+ WRITE(6)
+ - scsi: lpfc: Fix duplicate unreg_rpi error in port offline flow
+ - f2fs: fix to update dir's i_pino during cross_rename
+ - [arm64] clk: qcom: Allow constant ratio freq tables for rcg
+ - clk: clk-gpio: propagate rate change to parent
+ - fs/quota: handle overflows of sysctl fs.quota.* and report as unsigned
+ long
+ - scsi: lpfc: fix: Coverity: lpfc_cmpl_els_rsp(): Null pointer
+ dereferences
+ - [ppc64el] PCI: rpaphp: Fix up pointer to first drc-info entry
+ - scsi: ufs: fix potential bug which ends in system hang
+ - [ppc64el] PCI: rpaphp: Don't rely on firmware feature to imply drc-info
+ support
+ - [ppc64el] PCI: rpaphp: Annotate and correctly byte swap DRC properties
+ - [ppc64el] PCI: rpaphp: Correctly match ibm, my-drc-index to drc-name
+ when using drc-info
+ - [ppc64el] powerpc/security: Fix wrong message when RFI Flush is disable
+ - bcache: at least try to shrink 1 node in bch_mca_scan()
+ - HID: quirks: Add quirk for HP MSU1465 PIXART OEM mouse
+ - HID: logitech-hidpp: Silence intermittent get_battery_capacity errors
+ - [armhf] 8937/1: spectre-v2: remove Brahma-B53 from hardening
+ - libnvdimm/btt: fix variable 'rc' set but not used
+ - HID: Improve Windows Precision Touchpad detection.
+ - HID: rmi: Check that the RMI_STARTED bit is set before unregistering the
+ RMI transport device
+ - watchdog: Fix the race between the release of watchdog_core_data and
+ cdev
+ - scsi: pm80xx: Fix for SATA device discovery
+ - scsi: ufs: Fix error handing during hibern8 enter
+ - scsi: scsi_debug: num_tgts must be >= 0
+ - scsi: iscsi: Don't send data to unbound connection
+ - scsi: target: iscsi: Wait for all commands to finish before freeing a
+ session
+ - apparmor: fix unsigned len comparison with less than zero
+ - scripts/kallsyms: fix definitely-lost memory leak
+ - cdrom: respect device capabilities during opening action
+ - perf script: Fix brstackinsn for AUXTRACE
+ - perf regs: Make perf_reg_name() return "unknown" instead of NULL
+ - [s390x] zcrypt: handle new reply code FILTERED_BY_HYPERVISOR
+ - [s390x] cpum_sf: Check for SDBT and SDB consistency
+ - ocfs2: fix passing zero to 'PTR_ERR' warning
+ - kernel: sysctl: make drop_caches write-only
+ - userfaultfd: require CAP_SYS_PTRACE for UFFD_FEATURE_EVENT_FORK
+ - [x86] mce: Fix possibly incorrect severity calculation on AMD
+ - net, sysctl: Fix compiler warning when only cBPF is present
+ - netfilter: nf_queue: enqueue skbs with NULL dst
+ - ALSA: hda - Downgrade error message for single-cmd fallback
+ - bonding: fix active-backup transition after link failure
+ - perf strbuf: Remove redundant va_end() in strbuf_addv()
+ - Make filldir[64]() verify the directory entry filename is valid
+ (CVE-2019-10220)
+ - filldir[64]: remove WARN_ON_ONCE() for bad directory entries
+ (CVE-2019-10220)
+ - netfilter: ebtables: compat: reject all padding in matches/watchers
+ - 6pack,mkiss: fix possible deadlock
+ - netfilter: bridge: make sure to pull arp header in br_nf_forward_arp()
+ - inetpeer: fix data-race in inet_putpeer / inet_putpeer
+ - net: add a READ_ONCE() in skb_peek_tail()
+ - net: icmp: fix data-race in cmp_global_allow()
+ - hrtimer: Annotate lockless access to timer->state
+ - net: ena: fix napi handler misbehavior when the napi budget is zero
+ - net/mlxfw: Fix out-of-memory error in mfa2 flash burning
+ - [arm64,armhf] net: stmmac: dwmac-meson8b: Fix the RGMII TX delay on
+ Meson8b/8m2 SoCs
+ - ptp: fix the race between the release of ptp_clock and cdev
+ - tcp: Fix highest_sack and highest_sack_seq
+ - udp: fix integer overflow while computing available space in sk_rcvbuf
+ - vhost/vsock: accept only packets with the right dst_cid
+ - net: add bool confirm_neigh parameter for dst_ops.update_pmtu
+ - ip6_gre: do not confirm neighbor when do pmtu update
+ - gtp: do not confirm neighbor when do pmtu update
+ - net/dst: add new function skb_dst_update_pmtu_no_confirm
+ - tunnel: do not confirm neighbor when do pmtu update
+ - vti: do not confirm neighbor when do pmtu update
+ - sit: do not confirm neighbor when do pmtu update
+ - net/dst: do not confirm neighbor for vxlan and geneve pmtu update
+ - gtp: do not allow adding duplicate tid and ms_addr pdp context
+ - [arm64,armhf] net: marvell: mvpp2: phylink requires the link interrupt
+ - tcp/dccp: fix possible race __inet_lookup_established()
+ - tcp: do not send empty skb from tcp_write_xmit()
+ - gtp: fix wrong condition in gtp_genl_dump_pdp()
+ - gtp: fix an use-after-free in ipv4_pdp_find()
+ - gtp: avoid zero size hashtable
+ - [arm64,armhf] pinctrl: baytrail: Really serialize all register accesses
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.94
+ - nvme_fc: add module to ops template to allow module references
+ - nvme-fc: fix double-free scenarios on hw queues
+ - drm/amdgpu: add check before enabling/disabling broadcast mode
+ - drm/amdgpu: add cache flush workaround to gfx8 emit_fence
+ - PM / devfreq: Fix devfreq_notifier_call returning errno
+ - PM / devfreq: Set scaling_max_freq to max on OPP notifier error
+ - PM / devfreq: Don't fail devfreq_dev_release if not in list
+ - afs: Fix afs_find_server lookups for ipv4 peers
+ - afs: Fix SELinux setting security label on /afs
+ - RDMA/cma: add missed unregister_pernet_subsys in init failure
+ - rxe: correctly calculate iCRC for unaligned payloads
+ - scsi: lpfc: Fix memory leak on lpfc_bsg_write_ebuf_set func
+ - scsi: qla2xxx: Drop superfluous INIT_WORK of del_work
+ - scsi: qla2xxx: Don't call qlt_async_event twice
+ - scsi: qla2xxx: Fix PLOGI payload and ELS IOCB dump length
+ - scsi: qla2xxx: Configure local loop for N2N target
+ - scsi: qla2xxx: Send Notify ACK after N2N PLOGI
+ - scsi: qla2xxx: Ignore PORT UPDATE after N2N PLOGI
+ - scsi: iscsi: qla4xxx: fix double free in probe
+ - scsi: libsas: stop discovering if oob mode is disconnected
+ (CVE-2019-19965)
+ - drm/nouveau: Move the declaration of struct nouveau_conn_atom up a bit
+ - usb: gadget: fix wrong endpoint desc
+ - net: make socket read/write_iter() honor IOCB_NOWAIT
+ - afs: Fix creation calls in the dynamic root to fail with EOPNOTSUPP
+ - md: raid1: check rdev before reference in raid1_sync_request func
+ - [s390x] cpum_sf: Adjust sampling interval to avoid hitting sample limits
+ - [s390x] cpum_sf: Avoid SBD overflow condition in irq handler
+ - IB/mlx4: Follow mirror sequence of device add during device removal
+ - IB/mlx5: Fix steering rule of drop and count
+ - xen-blkback: prevent premature module unload
+ - xen/balloon: fix ballooned page accounting without hotplug enabled
+ - PM / hibernate: memory_bm_find_bit(): Tighten node optimisation
+ - ALSA: hda/realtek - Add Bass Speaker and fixed dac for bass speaker
+ - ALSA: hda/realtek - Enable the bass speaker of ASUS UX431FLC
+ - ALSA: hda - fixup for the bass speaker on Lenovo Carbon X1 7th gen
+ - xfs: fix mount failure crash on invalid iclog memory access
+ - taskstats: fix data-race
+ - drm: limit to INT_MAX in create_blob ioctl
+ - netfilter: nft_tproxy: Fix port selector on Big Endian
+ - ALSA: ice1724: Fix sleep-in-atomic in Infrasonic Quartet support code
+ - ALSA: usb-audio: fix set_format altsetting sanity check
+ - ALSA: usb-audio: set the interface format after resume on Dell WD19
+ - ALSA: hda/realtek - Add headset Mic no shutup for ALC283
+ - [arm64,armhf] drm/sun4i: hdmi: Remove duplicate cleanup calls
+ - [mips*] Avoid VDSO ABI breakage due to global register variable
+ - media: pulse8-cec: fix lost cec_transmit_attempt_done() call
+ - media: cec: CEC 2.0-only bcast messages were ignored
+ - media: cec: avoid decrementing transmit_queue_sz if it is 0
+ - media: cec: check 'transmit_in_progress', not 'transmitting'
+ - mm/zsmalloc.c: fix the migrated zspage statistics.
+ - memcg: account security cred as well to kmemcg
+ - mm: move_pages: return valid node id in status if the page is already on
+ the target node
+ - [x86,arm64] pstore/ram: Write new dumps to start of recycled zones
+ - locks: print unsigned ino in /proc/locks
+ - compat_ioctl: block: handle Persistent Reservations
+ - compat_ioctl: block: handle BLKREPORTZONE/BLKRESETZONE
+ - ata: libahci_platform: Export again ahci_platform_<en/dis>able_phys()
+ - libata: Fix retrieving of active qcs
+ - gpiolib: fix up emulated open drain outputs
+ - tracing: Fix lock inversion in trace_event_enable_tgid_record()
+ - tracing: Avoid memory leak in process_system_preds()
+ - tracing: Have the histogram compare functions convert to u64 first
+ - tracing: Fix endianness bug in histogram trigger
+ - apparmor: fix aa_xattrs_match() may sleep while holding a RCU lock
+ - [i386] ALSA: cs4236: fix error return comparison of an unsigned integer
+ - ALSA: firewire-motu: Correct a typo in the clock proc string
+ - exit: panic before exit_mm() on global init exit
+ - [arm64] Revert support for execute-only user mappings
+ - ftrace: Avoid potential division by zero in function profiler
+ - [arm64] drm/msm: include linux/sched/task.h
+ - PM / devfreq: Check NULL governor in available_governors_show
+ - nfsd4: fix up replay_matches_cache()
+ - [x86,arm64] HID: i2c-hid: Reset ALPS touchpads on resume
+ - ACPI: sysfs: Change ACPI_MASKABLE_GPE_MAX to 0x100
+ - xfs: don't check for AG deadlock for realtime files in bunmapi
+ - [x86] platform/x86: pmc_atom: Add Siemens CONNECT X300 to
+ critclk_systems DMI table
+ - Bluetooth: btusb: fix PM leak in error case of setup
+ - Bluetooth: delete a stray unlock
+ - Bluetooth: Fix memory leak in hci_connect_le_scan
+ - media: flexcop-usb: ensure -EIO is returned on error condition
+ - media: usb: fix memory leak in af9005_identify_state (CVE-2019-18809)
+ - [arm64] dts: meson: odroid-c2: Disable usb_otg bus to avoid power failed
+ warning
+ - [arm64] tty: serial: msm_serial: Fix lockup for sysrq and oops
+ - fix compat handling of FICLONERANGE, FIDEDUPERANGE and FS_IOC_FIEMAP
+ - bdev: Factor out bdev revalidation into a common helper
+ - bdev: Refresh bdev size for disks without partitioning
+ - scsi: qedf: Do not retry ELS request if qedf_alloc_cmd fails
+ - drm/mst: Fix MST sideband up-reply failure handling
+ - [ppc64el] pseries/hvconsole: Fix stack overread via udbg
+ - [ppc64el] KVM: PPC: Book3S HV: use smp_mb() when setting/clearing
+ host_ipi flag
+ - rxrpc: Fix possible NULL pointer access in ICMP handling
+ - tcp: annotate tp->rcv_nxt lockless reads
+ - net: core: limit nested device depth
+ - ath9k_htc: Modify byte order for an error message
+ - ath9k_htc: Discard undersized packets
+ - xfs: periodically yield scrub threads to the scheduler
+ - net: add annotations on hh->hh_len lockless accesses
+ - ubifs: ubifs_tnc_start_commit: Fix OOB in layout_in_gaps
+ - [s390x] smp: fix physical to logical CPU map for SMT
+ - xen/blkback: Avoid unmapping unmapped grant pages
+ - [x86] perf/x86/intel/bts: Fix the use of page_private()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.95
+ - bpf: Fix passing modified ctx to ld/abs/ind instruction
+ - regulator: fix use after free issue
+ - ASoC: max98090: fix possible race conditions
+ - netfilter: ctnetlink: netns exit must wait for callbacks
+ - mwifiex: Fix heap overflow in mmwifiex_process_tdls_action_frame()
+ (CVE-2019-14901)
+ - [x86] efi: Update e820 with reserved EFI boot services data to fix kexec
+ breakage
+ - [x86] ASoC: Intel: bytcr_rt5640: Update quirk for Teclast X89
+ - efi/gop: Return EFI_NOT_FOUND if there are no usable GOPs
+ - efi/gop: Return EFI_SUCCESS if a usable GOP was found
+ - efi/gop: Fix memory leak in __gop_query32/64()
+ - netfilter: uapi: Avoid undefined left-shift in xt_sctp.h
+ - netfilter: nft_set_rbtree: bogus lookup/get on consecutive elements in
+ named sets
+ - netfilter: nf_tables: validate NFT_SET_ELEM_INTERVAL_END
+ - netfilter: nf_tables: validate NFT_DATA_VALUE after nft_data_init()
+ - [arm64] spi: spi-cavium-thunderx: Add missing pci_release_regions()
+ - ASoC: topology: Check return value for soc_tplg_pcm_create()
+ - bnxt_en: Return error if FW returns more data than dump length
+ - [mips*] bpf, mips: Limit to 33 tail calls
+ - [armhf] spi: spi-ti-qspi: Fix a bug when accessing non default CS
+ - [powerpc*] Ensure that swiotlb buffer is allocated from low memory
+ - btrfs: Fix error messages in qgroup_rescan_init
+ - bpf: Clear skb->tstamp in bpf_redirect when necessary
+ - bnx2x: Do not handle requests from VFs after parity
+ - bnx2x: Fix logic to get total no. of PFs per engine
+ - cxgb4: Fix kernel panic while accessing sge_info
+ - net: usb: lan78xx: Fix error message format specifier
+ - rfkill: Fix incorrect check to avoid NULL pointer dereference
+ - iommu/iova: Init the struct iova to fix the possible memleak
+ - [x86] perf/x86/intel: Fix PT PMI handling
+ - fs: avoid softlockups in s_inodes iterators
+ - [arm64,armhf] net: stmmac: Do not accept invalid MTU values
+ - [arm64,armhf] net: stmmac: xgmac: Clear previous RX buffer size
+ - [arm64,armhf] net: stmmac: RX buffer size must be 16 byte aligned
+ - [arm64,armhf] net: stmmac: Always arm TX Timer at end of transmission
+ start
+ - [s390x] dasd/cio: Interpret ccw_device_get_mdc return value correctly
+ - [s390x] dasd: fix memleak in path handling error case
+ - block: fix memleak when __blk_rq_map_user_iov() is failed
+ - llc2: Fix return statement of llc_stat_ev_rx_null_dsap_xid_c (and
+ _test_c)
+ - [x86] hv_netvsc: Fix unwanted rx_table reset
+ - [powerpc*] vcpu: Assume dedicated processors as non-preempt
+ - [powerpc*] spinlocks: Include correct header for static key
+ - [armhf] cpufreq: imx6q: read OCOTP through nvmem for imx6ul/imx6ull
+ - gtp: fix bad unlock balance in gtp_encap_enable_socket
+ - macvlan: do not assume mac_header is set in macvlan_broadcast()
+ - [arm64,armhf] net: dsa: mv88e6xxx: Preserve priority when setting CPU
+ port.
+ - [arm64,armhf] net: stmmac: dwmac-sun8i: Allow all RGMII modes
+ - [arm64,armhf] net: stmmac: dwmac-sunxi: Allow all RGMII modes
+ - net: usb: lan78xx: fix possible skb leak
+ - pkt_sched: fq: do not accept silly TCA_FQ_QUANTUM
+ - sch_cake: avoid possible divide by zero in cake_enqueue()
+ - sctp: free cmd->obj.chunk for the unprocessed SCTP_CMD_REPLY
+ - tcp: fix "old stuff" D-SACK causing SACK to be treated as D-SACK
+ - vxlan: fix tos value before xmit
+ - vlan: fix memory leak in vlan_dev_set_egress_priority
+ - vlan: vlan_changelink() should propagate errors
+ - net: sch_prio: When ungrafting, replace with FIFO
+ - [arm64,armhf] usb: dwc3: gadget: Fix request complete check
+ - USB: core: fix check for duplicate endpoints
+ - USB: serial: option: add Telit ME910G1 0x110a composition
+ - usb: missing parentheses in USE_NEW_SCHEME
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.96
+ - chardev: Avoid potential use-after-free in 'chrdev_open()'
+ - i2c: fix bus recovery stop mode timing
+ - [arm64,armhf] usb: chipidea: host: Disable port power only if previously
+ enabled
+ - ALSA: usb-audio: Apply the sample rate quirk for Bose Companion 5
+ - ALSA: hda/realtek - Add new codec supported for ALCS1200A
+ - ALSA: hda/realtek - Set EAPD control to default for ALC222
+ - [x86] ALSA: hda/realtek - Add quirk for the bass speaker on Lenovo Yoga
+ X1 7th gen
+ - kernel/trace: Fix do not unregister tracepoints when register
+ sched_migrate_task fail
+ - tracing: Have stack tracer compile when MCOUNT_INSN_SIZE is not defined
+ - tracing: Change offset type to s32 in preempt/irq tracepoints
+ - HID: Fix slab-out-of-bounds read in hid_field_extract
+ - HID: uhid: Fix returning EPOLLOUT from uhid_char_poll
+ - HID: hid-input: clear unmapped usages
+ - Input: add safety guards to input_set_keycode()
+ - [arm64,armhf] drm/sun4i: tcon: Set RGB DCLK min. divider based on
+ hardware model
+ - drm/fb-helper: Round up bits_per_pixel if possible
+ - drm/dp_mst: correct the shifting in DP_REMOTE_I2C_READ
+ - can: kvaser_usb: fix interface sanity check
+ - can: gs_usb: gs_usb_probe(): use descriptors of current altsetting
+ - can: can_dropped_invalid_skb(): ensure an initialized headroom in
+ outgoing CAN sk_buffs
+ - gpiolib: acpi: Turn dmi_system_id table into a generic quirk table
+ - gpiolib: acpi: Add honor_wakeup module-option + quirk mechanism
+ - [x86] staging: vt6656: set usb_set_intfdata on driver fail.
+ - USB: serial: option: add ZLP support for 0x1bc7/0x9010
+ - [arm64,armhf] usb: musb: fix idling for suspend after disconnect
+ interrupt
+ - [arm64,armhf] usb: musb: Disable pullup at init
+ - [arm64,armhf] usb: musb: dma: Correct parameter passed to IRQ handler
+ - [x86] staging: comedi: adv_pci1710: fix AI channels 16-31 for PCI-1713
+ - staging: rtl8188eu: Add device code for TP-Link TL-WN727N v5.21
+ - serdev: Don't claim unsupported ACPI serial devices
+ - tty: link tty and port before configuring it as console
+ - tty: always relink the port
+ - mwifiex: fix possible heap overflow in mwifiex_process_country_ie()
+ (CVE-2019-14895)
+ - mwifiex: pcie: Fix memory leak in mwifiex_pcie_alloc_cmdrsp_buf
+ (CVE-2019-19056)
+ - scsi: bfa: release allocated memory in case of error (CVE-2019-19066)
+ - rtl8xxxu: prevent leaking urb (CVE-2019-19068)
+ - ath10k: fix memory leak (CVE-2019-19078)
+ - HID: hiddev: fix mess in hiddev_open()
+ - USB: Fix: Don't skip endpoint descriptors with maxpacket=0
+ - netfilter: arp_tables: init netns pointer in xt_tgchk_param struct
+ - netfilter: conntrack: dccp, sctp: handle null timeout argument
+ - netfilter: ipset: avoid null deref when IPSET_ATTR_LINENO is present
+ - [x86] drm/i915/gen9: Clear residual context state on context switch
+ (CVE-2019-14615)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.97
+ - hidraw: Return EPOLLOUT from hidraw_poll
+ - HID: hidraw: Fix returning EPOLLOUT from hidraw_poll
+ - HID: hidraw, uhid: Always report EPOLLOUT
+ - cfg80211/mac80211: make ieee80211_send_layer2_update a public function
+ - mac80211: Do not send Layer 2 Update frame before authorization
+ (CVE-2019-5108)
+ - f2fs: Move err variable to function scope in f2fs_fill_dentries()
+ - f2fs: check memory boundary by insane namelen
+ - f2fs: check if file namelen exceeds max value (CVE-2019-9445)
+ - media: usb:zr364xx:Fix KASAN:null-ptr-deref Read in
+ zr364xx_vidioc_querycap (CVE-2019-15217)
+ - iwlwifi: dbg_ini: fix memory leak in alloc_sgtable (CVE-2019-19058)
+ - iwlwifi: pcie: fix memory leaks in iwl_pcie_ctxt_info_gen3_init
+ (CVE-2019-19059)
+ - RDMA: Fix goto target to release the allocated memory (CVE-2019-19077)
+ - dccp: Fix memleak in __feat_register_sp (CVE-2019-20096)
+ - [x86] drm/i915: Fix use-after-free when destroying GEM context
+ - ASoC: soc-core: Set dpcm_playback / dpcm_capture
+ - [armhf] mtd: onenand: omap2: Pass correct flags for prep_dma_memcpy
+ - [arm64] gpio: zynq: Fix for bug in zynq_gpio_restore_context API
+ - iommu: Remove device link to group on failure
+ - gpio: Fix error message on out-of-range GPIO in lookup table
+ - [s390x] qeth: fix false reporting of VNIC CHAR config failure
+ - [s390x] qeth: Fix vnicc_is_in_use if rx_bcast not set
+ - cifs: Adjust indentation in smb2_open_file
+ - afs: Fix missing cell comparison in afs_test_super()
+ - drm/ttm: fix start page for huge page check in ttm_put_pages()
+ (CVE-2019-19927)
+ - drm/ttm: fix incrementing the page pointer for huge pages
+ (CVE-2019-19927)
+ - btrfs: simplify inode locking for RWF_NOWAIT
+ - RDMA/mlx5: Return proper error value
+ - RDMA/srpt: Report the SCSI residual to the initiator
+ - scsi: enclosure: Fix stale device oops with hot replug
+ - scsi: sd: Clear sdkp->protection_type if disk is reformatted without PI
+ - [x86] platform/x86: asus-wmi: Fix keyboard brightness cannot be set to 0
+ - [x86] platform/x86: GPD pocket fan: Use default values when wrong
+ modparams are given
+ - xprtrdma: Fix completion wait during device removal
+ - crypto: virtio - implement missing support for output IVs
+ - NFSv2: Fix a typo in encode_sattr()
+ - NFSv4.x: Drop the slot if nfs4_delegreturn_prepare waits for
+ layoutreturn
+ - mei: fix modalias documentation
+ - [armhf] clk: samsung: exynos5420: Preserve CPU clocks configuration
+ during suspend/resume
+ - [armhf] pinctl: ti: iodelay: fix error checking on
+ pinctrl_count_index_with_args call
+ - [x86] pinctrl: lewisburg: Update pin list according to v1.1v6
+ - scsi: sd: enable compat ioctls for sed-opal
+ - af_unix: add compat_ioctl support
+ - compat_ioctl: handle SIOCOUTQNSD
+ - [arm64,armhf] PCI: dwc: Fix find_next_bit() usage
+ - PCI/PTM: Remove spurious "d" from granularity message
+ - [powerpc*] powernv: Disable native PCIe port management
+ - [armhf] tty: serial: imx: use the sg count from dma_map_sg
+ - [i386] tty: serial: pch_uart: correct usage of dma_unmap_sg
+ - mtd: spi-nor: fix silent truncation in spi_nor_read()
+ - mtd: spi-nor: fix silent truncation in spi_nor_read_raw()
+ - rtlwifi: Remove unnecessary NULL check in rtl_regd_init
+ - f2fs: fix potential overflow
+ - scsi: libcxgbi: fix NULL pointer dereference in cxgbi_device_destroy()
+ - [mips*] cacheinfo: report shared CPU map
+ - [arm64] drm/arm/mali: make malidp_mw_connector_helper_funcs static
+ - [arm64] dmaengine: k3dma: Avoid null pointer traversal
+ - [amd64] ioat: ioat_alloc_ring() failure handling.
+ - ocfs2: call journal flush to mark journal as empty after journal
+ recovery when mount
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.98
+ - clk: Don't try to enable critical clocks if prepare failed
+ - iio: buffer: align the size of scan bytes to size of the largest element
+ - USB: serial: simple: Add Motorola Solutions TETRA MTP3xxx and MTP85xx
+ - USB: serial: option: Add support for Quectel RM500Q
+ - USB: serial: opticon: fix control-message timeouts
+ - USB: serial: option: add support for Quectel RM500Q in QDL mode
+ - USB: serial: suppress driver bind attributes
+ - USB: serial: ch341: handle unbound port at reset_resume
+ - USB: serial: io_edgeport: handle unbound ports on URB completion
+ - USB: serial: io_edgeport: add missing active-port sanity check
+ - USB: serial: keyspan: handle unbound ports
+ - USB: serial: quatech2: handle unbound ports
+ - [x86] scsi: fnic: fix invalid stack access
+ - scsi: mptfusion: Fix double fetch bug in ioctl
+ - [armhf] dts: imx6q-dhcom: Fix SGTL5000 VDDIO regulator connection
+ - ALSA: dice: fix fallback from protocol extension into limited
+ functionality
+ - ALSA: seq: Fix racy access for queue timer in proc read
+ - ALSA: usb-audio: fix sync-ep altsetting sanity check
+ - [arm64] dts: allwinner: a64: olinuxino: Fix SDIO supply regulator
+ - block: fix an integer overflow in logical block size
+ - [armhf] dts: am571x-idk: Fix gpios property to have the correct gpio
+ number
+ - LSM: generalize flag passing to security_capable
+ - ptrace: reintroduce usage of subjective credentials in ptrace_has_cap()
+ - usb: core: hub: Improved device recognition on remote wakeup
+ - [x86] resctrl: Fix an imbalance in domain_remove_cpu()
+ - [x86] CPU/AMD: Ensure clearing of SME/SEV features is maintained
+ - [amd64] x86/efistub: Disable paging at mixed mode entry
+ - [x86] resctrl: Fix potential memory leak
+ - perf hists: Fix variable name's inconsistency in hists__for_each() macro
+ - perf report: Fix incorrectly added dimensions as switch perf data file
+ - mm/shmem.c: thp, shmem: fix conflict of above-47bit hint address and PMD
+ alignment
+ - mm: memcg/slab: call flush_memcg_workqueue() only if memcg workqueue is
+ valid
+ - btrfs: rework arguments of btrfs_unlink_subvol
+ - btrfs: fix invalid removal of root ref
+ - btrfs: do not delete mismatched root refs
+ - btrfs: fix memory leak in qgroup accounting
+ - mm/page-writeback.c: avoid potential division by zero in
+ wb_min_max_ratio()
+ - [armhf] dts: imx6qdl: Add Engicam i.Core 1.5 MX6
+ - [armhf] dts: imx6q-icore-mipi: Use 1.5 version of i.Core MX6DL
+ - [arm64,armhf] net: stmmac: 16KB buffer must be 16 byte aligned
+ - [arm64,armhf] net: stmmac: Enable 16KB buffer size
+ - mm/huge_memory.c: make __thp_get_unmapped_area static
+ - mm/huge_memory.c: thp: fix conflict of above-47bit hint address and PMD
+ alignment
+ - bpf: Fix incorrect verifier simulation of ARSH under ALU32
+ - cfg80211: fix deadlocks in autodisconnect work
+ - cfg80211: fix memory leak in cfg80211_cqm_rssi_update
+ - cfg80211: fix page refcount issue in A-MSDU decap
+ - netfilter: fix a use-after-free in mtype_destroy()
+ - netfilter: arp_tables: init netns pointer in xt_tgdtor_param struct
+ - netfilter: nft_tunnel: fix null-attribute check
+ - netfilter: nf_tables: remove WARN and add NLA_STRING upper limits
+ - netfilter: nf_tables: store transaction list locally while requesting
+ module
+ - netfilter: nf_tables: fix flowtable list del corruption
+ - NFC: pn533: fix bulk-message timeout
+ - batman-adv: Fix DAT candidate selection on little endian systems
+ - macvlan: use skb_reset_mac_header() in macvlan_queue_xmit()
+ - [x86] hv_netvsc: Fix memory leak when removing rndis device
+ - [arm64] net: hns: fix soft lockup when there is not enough memory
+ - net: usb: lan78xx: limit size of local TSO packets
+ - ptp: free ptp device pin descriptors properly
+ - r8152: add missing endpoint sanity check
+ - tcp: fix marked lost packets not being retransmitted
+ - xen/blkfront: Adjust indentation in xlvbd_alloc_gendisk
+ - tcp: refine rule to allow EPOLLOUT generation under mem pressure
+ - [arm64] dts: meson-gxl-s905x-khadas-vim: fix gpio-keys-polled node
+ - cfg80211: check for set_wiphy_params
+ - tick/sched: Annotate lockless access to last_jiffies_update
+ - drm/nouveau/bar/nv50: check bar1 vmm return value
+ - drm/nouveau/bar/gf100: ensure BAR is mapped
+ - drm/nouveau/mmu: qualify vmm during dtor
+ - reiserfs: fix handling of -EOPNOTSUPP in reiserfs_for_each_xattr
+ - scsi: esas2r: unlock on error in esas2r_nvram_read_direct()
+ - scsi: qla4xxx: fix double free bug
+ - scsi: bnx2i: fix potential use after free
+ - scsi: target: core: Fix a pr_debug() argument
+ - scsi: qla2xxx: Fix qla2x00_request_irqs() for MSI
+ - scsi: qla2xxx: fix rports not being mark as lost in sync fabric scan
+ - scsi: core: scsi_trace: Use get_unaligned_be*()
+ - perf probe: Fix wrong address verification
+
+ [ Joe Richey ]
+ * [cloud-amd64] tpm: Enable TPM drivers for Cloud (Closes: #946237)
+
+ [ Salvatore Bonaccorso ]
+ * Refresh powerpc-fix-mcpu-options-for-spe-only-compiler.patch (Context
+ changes in 4.19.88)
+ * Drop 0027-RDMA-hns-Fix-the-bug-with-updating-rq-head-pointer-w.patch
+ * Drop 0028-RDMA-hns-Bugfix-for-the-scene-without-receiver-queue.patch
+ * [rt] Refresh 0199-net-move-xmit_recursion-to-per-task-variable-on-RT.patch
+ (Context changes in 4.19.88)
+ * [rt] Update to 4.19.90-rt35:
+ - Update "workqueue: rework" for workqueue changes in 4.19.90
+ * [rt] Drop 0245-Revert-arm64-preempt-Fix-big-endian-when-checking-pr.patch
+ * Refresh 0013-scsi-hisi_sas-Relocate-some-codes-to-avoid-an-unused.patch
+ for context changes in 4.19.93.
+ * [rt] Refresh
+ 0253-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch (Context
+ changes in 4.19.93)
+ * [rt] Refresh 0199-net-move-xmit_recursion-to-per-task-variable-on-RT.patch
+ (Context changes in 4.19.97)
+
+ [ Ben Hutchings ]
+ * [rt] Update to 4.19.94-rt38:
+ - Refresh "x86/ioapic: Don't let setaffinity unmask threaded EOI interrupt
+ too early" which was partly included in 4.19.92
+ * aufs: Update support patchset to aufs4.19.63+ 20200113; no functional
+ changes
+ * Bump ABI to 8
+ * libertas: Fix two buffer overflows at parsing bss descriptor
+ (CVE-2019-14896, CVE-2019-14897)
+ * wimax: i2400: fix memory leak (CVE-2019-19051)
+ * wimax: i2400: Fix memory leak in i2400m_op_rfkill_sw_toggle
+ (CVE-2019-19051)
+ * [amd64/cloud-amd64] hwrandom: Enable HW_RANDOM_VIRTIO (Closes: #914511)
+
+ [ Noah Meyerhans ]
+ * random: try to actively add entropy rather than passively wait for it
+ (Closes: #948519)
+
+ [ Aurelien Jarno ]
+ * [mips*/malta] Enable POWER_RESET_PIIX4_POWEROFF.
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Sun, 26 Jan 2020 21:01:13 +0100
+
+linux (4.19.87-1) buster; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.68
+ - seq_file: fix problem when seeking mid-record
+ - mm/hmm: fix bad subpage pointer in try_to_unmap_one
+ - mm: mempolicy: make the behavior consistent when MPOL_MF_MOVE* and
+ MPOL_MF_STRICT were specified
+ - mm: mempolicy: handle vma with unmovable pages mapped correctly in mbind
+ - mm/memcontrol.c: fix use after free in mem_cgroup_iter()
+ - mm/usercopy: use memory range to be accessed for wraparound check
+ - Revert "pwm: Set class for exported channels in sysfs"
+ - cpufreq: schedutil: Don't skip freq update when limits change
+ - [x86] ALSA: hda/realtek - Add quirk for HP Envy x360
+ - ALSA: hda - Apply workaround for another AMD chip 1022:1487
+ - ALSA: hda - Fix a memory leak bug
+ - ALSA: hda - Add a generic reboot_notify
+ - ALSA: hda - Let all conexant codec enter D3 when rebooting
+ - HID: holtek: test for sanity of intfdata
+ - HID: hiddev: avoid opening a disconnected device
+ - HID: hiddev: do cleanup in failure of opening a device
+ - Input: kbtab - sanity check for endpoint type
+ - Input: iforce - add sanity checks
+ - net: usb: pegasus: fix improper read if get_registers() fail
+ - netfilter: ebtables: also count base chain policies
+ - xen/pciback: remove set but not used variable 'old_state'
+ - [armhf,arm64] irqchip/gic-v3-its: Free unused vpt_page when alloc vpe
+ table fail
+ - perf header: Fix divide by zero error if f_header.attr_size==0
+ - perf header: Fix use of unitialized value warning
+ - libata: zpodd: Fix small read overflow in zpodd_get_mech_type()
+ - Btrfs: fix deadlock between fiemap and transaction commits
+ - scsi: hpsa: correct scsi command status issue after reset
+ - scsi: qla2xxx: Fix possible fcport null-pointer dereferences
+ - drm/amdgpu: fix a potential information leaking bug
+ - ata: libahci: do not complain in case of deferred probe
+ - kbuild: modpost: handle KBUILD_EXTRA_SYMBOLS only for external modules
+ - [arm64] efi: fix variable 'si' set but not used
+ - [arm64] unwind: Prohibit probing on return_address()
+ - [arm64] mm: fix variable 'pud' set but not used
+ - IB/core: Add mitigation for Spectre V1
+ - IB/mlx5: Fix MR registration flow to use UMR properly
+ - IB/mad: Fix use-after-free in ib mad completion handling
+ - [arm64] drm: msm: Fix add_gpu_components
+ - [armhf] drm/exynos: fix missing decrement of retry counter
+ - ocfs2: remove set but not used variable 'last_hash'
+ - asm-generic: fix -Wtype-limits compiler warnings
+ - [arm64] KVM: regmap: Fix unexpected switch fall-through
+ - [armhf,arm64] KVM: Sync ICH_VMCR_EL2 back when about to block
+ - [x86] staging: comedi: dt3000: Fix signed integer overflow 'divider *
+ base'
+ - [x86] staging: comedi: dt3000: Fix rounding up of timer divisor
+ - USB: core: Fix races in character device registration and deregistraion
+ - usb: cdc-acm: make sure a refcount is taken early enough
+ - USB: CDC: fix sanity checks in CDC union parser
+ - USB: serial: option: add D-Link DWM-222 device ID
+ - USB: serial: option: Add support for ZTE MF871A
+ - USB: serial: option: add the BroadMobi BM818 card
+ - USB: serial: option: Add Motorola modem UARTs
+ - [x86] drm/i915/cfl: Add a new CFL PCI ID.
+ - [arm64] ftrace: Ensure module ftrace trampoline is coherent with I-side
+ - Input: psmouse - fix build error of multiple definition
+ - bnx2x: Fix VF's VLAN reconfiguration in reload.
+ - bonding: Add vlan tx offload to hw_enc_features
+ - net: dsa: Check existence of .port_mdb_add callback before calling it
+ - net/mlx4_en: fix a memory leak bug
+ - net/packet: fix race in tpacket_snd()
+ - sctp: fix memleak in sctp_send_reset_streams
+ - sctp: fix the transport error_count check
+ - team: Add vlan tx offload to hw_enc_features
+ - tipc: initialise addr_trail_end when setting node addresses
+ - xen/netback: Reset nr_frags before freeing skb
+ - net/mlx5e: Only support tx/rx pause setting for port owner
+ - net/mlx5e: Use flow keys dissector to parse packets for ARFS
+ - [arm64] mmc: sdhci-of-arasan: Do now show error message in case of
+ deffered probe
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.69
+ - HID: Add 044f:b320 ThrustMaster, Inc. 2 in 1 DT
+ - [mips*] kernel: only use i8253 clocksource with periodic clockevent
+ - [mips*] fix cacheinfo
+ - netfilter: ebtables: fix a memory leak bug in compat
+ - ASoC: dapm: Fix handling of custom_stop_condition on DAPM graph walks
+ - bonding: Force slave speed check after link state recovery for 802.3ad
+ - [armhf,arm64] net: mvpp2: Don't check for 3 consecutive Idle frames for
+ 10G links
+ - can: dev: call netif_carrier_off() in register_candev()
+ - can: gw: Fix error path of cgw_module_init
+ - [armhf,arm64] ASoC: rockchip: Fix mono capture
+ - [armhf] ASoC: ti: davinci-mcasp: Correct slot_width posed constraint
+ - net: usb: qmi_wwan: Add the BroadMobi BM818 card
+ - qed: RDMA - Fix the hw_ver returned in device attributes
+ - isdn: mISDN: hfcsusb: Fix possible null-pointer dereferences in
+ start_isoc_chain()
+ - mac80211_hwsim: Fix possible null-pointer dereferences in
+ hwsim_dump_radio_nl()
+ - netfilter: ipset: Actually allow destination MAC address for hash:ip,mac
+ sets too
+ - netfilter: ipset: Copy the right MAC address in bitmap:ip,mac and
+ hash:ip,mac sets
+ - netfilter: ipset: Fix rename concurrency with listing
+ - rxrpc: Fix potential deadlock
+ - rxrpc: Fix the lack of notification when sendmsg() fails on a DATA packet
+ - isdn: hfcsusb: Fix mISDN driver crash caused by transfer buffer on the
+ stack
+ - net: phy: phy_led_triggers: Fix a possible null-pointer dereference in
+ phy_led_trigger_change_speed()
+ - can: sja1000: force the string buffer NULL-terminated
+ - can: peak_usb: force the string buffer NULL-terminated
+ - net/ethernet/qlogic/qed: force the string buffer NULL-terminated
+ - NFSv4: Fix a potential sleep while atomic in nfs4_do_reclaim()
+ - NFS: Fix regression whereby fscache errors are appearing on 'nofsc' mounts
+ - HID: quirks: Set the INCREMENT_USAGE_ON_DUPLICATE quirk on Saitek X52
+ - HID: input: fix a4tech horizontal wheel custom usage
+ - [armhf,arm64] drm/rockchip: Suspend DP late
+ - SMB3: Fix potential memory leak when processing compound chain
+ - SMB3: Kernel oops mounting a encryptData share with CONFIG_DEBUG_VIRTUAL
+ - [s390x] put _stext and _etext into .text section
+ - net: cxgb3_main: Fix a resource leak in a error path in 'init_one()'
+ - [armhf,arm64] net: stmmac: Fix issues when number of Queues >= 4
+ - [armhf,arm64] net: stmmac: tc: Do not return a fragment entry
+ - [arm64] net: hisilicon: make hip04_tx_reclaim non-reentrant
+ - [arm64] net: hisilicon: fix hip04-xmit never return TX_BUSY
+ - [arm64] net: hisilicon: Fix dma_map_single failed on arm64
+ - libata: have ata_scsi_rw_xlat() fail invalid passthrough requests
+ - libata: add SG safety checks in SFF pio transfers
+ - [x86] lib/cpu: Address missing prototypes warning
+ - [x86] drm/vmwgfx: fix memory leak when too many retries have occurred
+ - block, bfq: handle NULL return value by bfq_init_rq()
+ - perf ftrace: Fix failure to set cpumask when only one cpu is present
+ - perf cpumap: Fix writing to illegal memory in handling cpumap mask
+ - perf pmu-events: Fix missing "cpu_clk_unhalted.core" event
+ - [arm64] KVM: Don't write junk to sysregs on reset
+ - [armhf] KVM: Don't write junk to CP15 registers on reset
+ - HID: wacom: correct misreported EKR ring values
+ - HID: wacom: Correct distance scale for 2nd-gen Intuos devices
+ - Revert "dm bufio: fix deadlock with loop device" (regression in 4.19.61)
+ - ceph: clear page dirty before invalidate page
+ - ceph: don't try fill file_lock on unsuccessful GETFILELOCK reply
+ - libceph: fix PG split vs OSD (re)connect race
+ - drm/nouveau: Don't retry infinitely when receiving no data on i2c over
+ AUX
+ - gpiolib: never report open-drain/source lines as 'input' to user-space
+ - [x86] Drivers: hv: vmbus: Fix virt_to_hvpfn() for X86_PAE
+ - userfaultfd_release: always remove uffd flags and clear
+ vm_userfaultfd_ctx
+ - [i386] retpoline: Don't clobber RFLAGS during CALL_NOSPEC on i386
+ - [x86] apic: Handle missing global clockevent gracefully
+ - [x86] CPU/AMD: Clear RDRAND CPUID bit on AMD family 15h/16h
+ - [x86] boot: Save fields explicitly, zero out everything else
+ - [x86] boot: Fix boot regression caused by bootparam sanitizing
+ - dm kcopyd: always complete failed jobs
+ - dm btree: fix order of block initialization in btree_split_beneath
+ - dm integrity: fix a crash due to BUG_ON in __journal_read_write()
+ - dm raid: add missing cleanup in raid_ctr()
+ - dm space map metadata: fix missing store of apply_bops() return value
+ - dm table: fix invalid memory accesses with too high sector number
+ - dm zoned: improve error handling in reclaim
+ - dm zoned: improve error handling in i/o map code
+ - dm zoned: properly handle backing device failure
+ - genirq: Properly pair kobject_del() with kobject_add()
+ - mm, page_owner: handle THP splits correctly
+ - mm/zsmalloc.c: migration can leave pages in ZS_EMPTY indefinitely
+ - mm/zsmalloc.c: fix race condition in zs_destroy_pool
+ - xfs: don't trip over uninitialized buffer on extent read of corrupted
+ inode
+ - xfs: Move fs/xfs/xfs_attr.h to fs/xfs/libxfs/xfs_attr.h
+ - xfs: Add helper function xfs_attr_try_sf_addname
+ - xfs: Add attibute set and helper functions
+ - xfs: Add attibute remove and helper functions
+ - xfs: always rejoin held resources during defer roll
+ - dm zoned: fix potential NULL dereference in dmz_do_reclaim()
+ - [ppc64el] Allow flush_(inval_)dcache_range to work across ranges >4GB
+ - rxrpc: Fix local endpoint refcounting
+ - rxrpc: Fix read-after-free in rxrpc_queue_local()
+ - rxrpc: Fix local endpoint replacement
+ - rxrpc: Fix local refcounting
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.70
+ - nvme-multipath: revalidate nvme_ns_head gendisk in nvme_validate_ns
+ - afs: Fix the CB.ProbeUuid service handler to reply correctly
+ - afs: Fix loop index mixup in afs_deliver_vl_get_entry_by_name_u()
+ - fs: afs: Fix a possible null-pointer dereference in afs_put_read()
+ - afs: Only update d_fsdata if different in afs_d_revalidate()
+ - nvmet-loop: Flush nvme_delete_wq when removing the port
+ - nvme: fix a possible deadlock when passthru commands sent to a multipath
+ device
+ - nvme-pci: Fix async probe remove race
+ - [armhf] omap-dma/omap_vout_vrfb: fix off-by-one fi value
+ - iommu/dma: Handle SG length overflow better
+ - usb: gadget: composite: Clear "suspended" on reset/disconnect
+ - usb: gadget: mass_storage: Fix races between fsg_disable and fsg_set_alt
+ - xen/blkback: fix memory leaks
+ - [arm64] cpufeature: Don't treat granule sizes as strict
+ - drm/ast: Fixed reboot test may cause system hanged
+ - [x86] tools: hv: fix KVP and VSS daemons exit code
+ - [x86] drm/i915: fix broadwell EU computation
+ - [arm*] watchdog: bcm2835_wdt: Fix module autoload
+ - scsi: ufs: Fix RX_TERMINATION_FORCE_ENABLE define value
+ - [armhf] drm/tilcdc: Register cpufreq notifier after we have initialized
+ crtc
+ - ipv6/addrconf: allow adding multicast addr if IFA_F_MCAUTOJOIN is set
+ - ipv6: Default fib6_type to RTN_UNICAST when not set
+ - net/smc: make sure EPOLLOUT is raised
+ - tcp: make sure EPOLLOUT wont be missed
+ - ipv4/icmp: fix rt dst dev null pointer dereference
+ - mm/zsmalloc.c: fix build when CONFIG_COMPACTION=n
+ - ALSA: usb-audio: Check mixer unit bitmap yet more strictly
+ - ALSA: line6: Fix memory leak at line6_init_pcm() error path
+ - ALSA: hda - Fixes inverted Conexant GPIO mic mute led
+ - ALSA: seq: Fix potential concurrent access to the deleted pool
+ - ALSA: usb-audio: Fix invalid NULL check in snd_emuusb_set_samplerate()
+ - ALSA: usb-audio: Add implicit fb quirk for Behringer UFX1604
+ - [x86] kvm: skip populating logical dest map if apic is not sw enabled
+ - [x86] KVM: Don't update RIP or do single-step on faulting emulation
+ - [amd64] uprobes: Fix detection of 32-bit user mode
+ - [x86] apic: Do not initialize LDR and DFR for bigsmp
+ - ftrace: Fix NULL pointer dereference in t_probe_next()
+ - ftrace: Check for successful allocation of hash
+ - ftrace: Check for empty hash and comment the race with registering probes
+ - usb-storage: Add new JMS567 revision to unusual_devs
+ - USB: cdc-wdm: fix race between write and disconnect due to flag abuse
+ - usb: hcd: use managed device resources
+ - [armhf,arm64] usb: chipidea: udc: don't do hardware access if gadget has
+ stopped
+ - usb: host: ohci: fix a race condition between shutdown and irq
+ - usb: host: xhci: rcar: Fix typo in compatible string matching
+ - USB: storage: ums-realtek: Update module parameter description for
+ auto_delink_en
+ - USB: storage: ums-realtek: Whitelist auto-delink support
+ - [x86] mei: me: add Tiger Lake point LP device ID
+ - mmc: core: Fix init of SD cards reporting an invalid VDD range
+ - stm class: Fix a double free of stm_source_device
+ - [x86] intel_th: pci: Add support for another Lewisburg PCH
+ - [x86] intel_th: pci: Add Tiger Lake support
+ - [x86] typec: tcpm: fix a typo in the comparison of pdo_max_voltage
+ - lib: logic_pio: Fix RCU usage
+ - lib: logic_pio: Avoid possible overlap for unregistering regions
+ - lib: logic_pio: Add logic_pio_unregister_range()
+ - [x86] drm/amdgpu: Add APTX quirk for Dell Latitude 5495
+ - [x86] drm/i915: Don't deballoon unused ggtt drm_mm_node in linux guest
+ - [x86] drm/i915: Call dma_set_max_seg_size() in i915_driver_hw_probe()
+ - [arm64] bus: hisi_lpc: Unregister logical PIO range to avoid potential
+ use-after-free
+ - [arm64] bus: hisi_lpc: Add .remove method to avoid driver unbind crash
+ - [x86] VMCI: Release resource if the work is already queued
+ - [x86] crypto: ccp - Ignore unconfigured CCP device on suspend/resume
+ - Revert "cfg80211: fix processing world regdomain when non modular"
+ - mac80211: fix possible sta leak
+ - mac80211: Don't memset RXCB prior to PAE intercept
+ - mac80211: Correctly set noencrypt for PAE frames
+ - [ppc64el] KVM: Book3S: Fix incorrect guest-to-user-translation error
+ handling
+ - [armhf,arm64] KVM: vgic: Fix potential deadlock when ap_list is long
+ - [armhf,arm64] KVM: vgic-v2: Handle SGI bits in GICD_I{S,C}PENDR0 as WI
+ - NFS: Clean up list moves of struct nfs_page
+ - NFSv4/pnfs: Fix a page lock leak in nfs_pageio_resend()
+ - NFS: Pass error information to the pgio error cleanup routine
+ - NFS: Ensure O_DIRECT reports an error if the bytes read/written is 0
+ - [x86] i2c: piix4: Fix port selection for AMD Family 16h Model 30h
+ - mt76: mt76x0u: do not reset radio on resume
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.71
+ - Revert "Input: elantech - enable SMBus on new (2018+) systems"
+ (regression in 4.19.67)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.72
+ - mld: fix memory leak in mld_del_delrec()
+ - net: fix skb use after free in netpoll
+ - net: sched: act_sample: fix psample group handling on overwrite
+ - net_sched: fix a NULL pointer deref in ipt action
+ - [armhf,arm64] net: stmmac: dwmac-rk: Don't fail if phy regulator is
+ absent
+ - tcp: inherit timestamp on mtu probe
+ - tcp: remove empty skb from write queue in error cases
+ - net/rds: Fix info leak in rds6_inc_info_copy() (CVE-2019-16714)
+ - [x86] boot: Preserve boot_params.secure_boot from sanitizing
+ - [arm*] spi: bcm2835aux: unifying code between polling and interrupt
+ driven code
+ - [arm*] spi: bcm2835aux: remove dangerous uncontrolled read of fifo
+ - [arm*] spi: bcm2835aux: fix corruptions for longer spi transfers
+ - netfilter: nf_tables: use-after-free in failing rule with bound set
+ - [x86] hv_netvsc: Fix a warning of suspicious RCU usage
+ - Bluetooth: btqca: Add a short delay before downloading the NVM
+ - [ppc64el] ibmveth: Convert multicast list size for little-endian system
+ - gpio: Fix build error of function redefinition
+ - netfilter: nft_flow_offload: skip tcp rst and fin packets
+ - scsi: qla2xxx: Fix gnl.l memory leak on adapter init failure
+ - scsi: target: tcmu: avoid use-after-free after command timeout
+ - cxgb4: fix a memory leak bug
+ - liquidio: add cleanup in octeon_setup_iq()
+ - net: myri10ge: fix memory leaks
+ - lan78xx: Fix memory leaks
+ - vfs: fix page locking deadlocks when deduping files
+ - cx82310_eth: fix a memory leak bug
+ - net: kalmia: fix memory leaks
+ - net: cavium: fix driver name
+ - wimax/i2400m: fix a memory leak bug
+ - kprobes: Fix potential deadlock in kprobe_optimizer()
+ - HID: cp2112: prevent sleeping function called from invalid context
+ - [amd64] boot/compressed: Fix boot on machines with broken E820 table
+ - [x86] Input: hyperv-keyboard: Use in-place iterator API in the channel
+ callback
+ - [x86] Tools: hv: kvp: eliminate 'may be used uninitialized' warning
+ - nvme-multipath: fix possible I/O hang when paths are updated
+ - IB/mlx4: Fix memory leaks
+ - infiniband: hfi1: fix a memory leak bug
+ - infiniband: hfi1: fix memory leaks
+ - ceph: fix buffer free while holding i_ceph_lock in __ceph_setxattr()
+ - ceph: fix buffer free while holding i_ceph_lock in
+ __ceph_build_xattrs_blob()
+ - ceph: fix buffer free while holding i_ceph_lock in fill_inode()
+ - [armhf,arm64] KVM: Only skip MMIO insn once
+ - afs: Fix leak in afs_lookup_cell_rcu()
+ - [armhf,arm64] KVM: VGIC: Properly initialise private IRQ affinity
+ - [amd64] boot/compressed: Fix missing initialization in
+ find_trampoline_placement()
+ - libceph: allow ceph_buffer_put() to receive a NULL ceph_buffer
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.73
+ - ALSA: hda - Fix potential endless loop at applying quirks
+ - ALSA: hda/realtek - Fix overridden device-specific initialization
+ - [x86] ALSA: hda/realtek - Add quirk for HP Pavilion 15
+ - [x86] ALSA: hda/realtek - Enable internal speaker & headset mic of ASUS
+ UX431FL
+ - [x86] ALSA: hda/realtek - Fix the problem of two front mics on a
+ ThinkCentre
+ - sched/fair: Don't assign runtime for throttled cfs_rq
+ - [x86] drm/vmwgfx: Fix double free in vmw_recv_msg()
+ - [ppc64el] tm: Fix FP/VMX unavailable exceptions inside a transaction
+ (CVE-2019-15030)
+ - batman-adv: fix uninit-value in batadv_netlink_get_ifindex()
+ - batman-adv: Only read OGM tvlv_len after buffer len check
+ - [x86] hv_sock: Fix hang when a connection is closed
+ - Blk-iolatency: warn on negative inflight IO counter
+ - blk-iolatency: fix STS_AGAIN handling
+ - {nl,mac}80211: fix interface combinations on crypto controlled devices
+ - timekeeping: Use proper ktime_add when adding nsecs in coarse offset
+ - selftests: fib_rule_tests: use pre-defined DEV_ADDR
+ - [x86] ftrace: Fix warning and considate ftrace_jmp_replace() and
+ ftrace_call_replace()
+ - [ppc64el] mark start_here_multiplatform as __ref
+ - [arm64] dts: rockchip: enable usb-host regulators at boot on
+ rk3328-rock64
+ - nvme-fc: use separate work queue to avoid warning
+ - [armhf] clk: s2mps11: Add used attribute to s2mps11_dt_match
+ - [arm64] remoteproc: qcom: q6v5: shore up resource probe handling
+ - modules: always page-align module section allocations
+ - kernel/module: Fix mem leak in module_add_modinfo_attrs
+ - [x86] drm/i915: Re-apply "Perform link quality check, unconditionally
+ during long pulse"
+ - scsi: qla2xxx: Move log messages before issuing command to firmware
+ - keys: Fix the use of the C++ keyword "private" in uapi/linux/keyctl.h
+ - [x86] Drivers: hv: kvp: Fix two "this statement may fall through"
+ warnings
+ - [x86] hibernate: Fix nosave_regions setup for hibernation
+ - [arm64] remoteproc: qcom: q6v5-mss: add SCM probe dependency
+ - drm/amdgpu/gfx9: Update gfx9 golden settings.
+ - drm/amdgpu: Update gc_9_0 golden settings.
+ - [x86] KVM: hyperv: enforce vp_index < KVM_MAX_VCPUS
+ - [x86] KVM: hyperv: consistently use 'hv_vcpu' for 'struct kvm_vcpu_hv'
+ variables
+ - [x86] KVM: hyperv: keep track of mismatched VP indexes
+ - [x86] KVM: hyperv: define VP assist page helpers
+ - [x86] kvm/lapic: preserve gfn_to_hva_cache len on cache reinit
+ - [x86] drm/i915: Fix intel_dp_mst_best_encoder()
+ - [x86] drm/i915: Rename PLANE_CTL_DECOMPRESSION_ENABLE
+ - [x86] drm/i915/gen9+: Fix initial readout for Y tiled framebuffers
+ - drm/atomic_helper: Disallow new modesets on unregistered connectors
+ - [x86] Drivers: hv: kvp: Fix the recent regression caused by incorrect
+ clean-up
+ - powerplay: Respect units on max dcfclk watermark
+ - drm/amd/pp: Fix truncated clock value when set watermark
+ - drm/amd/dm: Understand why attaching path/tile properties are needed
+ - [s390x] zcrypt: reinit ap queue state machine during device probe
+ - [x86] drm/i915: Restore sane defaults for KMS on GEM error load
+ - [x86] drm/i915: Cleanup gt powerstate from gem
+ - [ppc64el] KVM: Book3S HV: Fix race between kvm_unmap_hva_range and MMU
+ mode switch
+ - Btrfs: clean up scrub is_dev_replace parameter
+ - Btrfs: fix deadlock with memory reclaim during scrub
+ - btrfs: Remove extent_io_ops::fill_delalloc
+ - btrfs: Fix error handling in btrfs_cleanup_ordered_extents
+ - scsi: megaraid_sas: Fix combined reply queue mode detection
+ - scsi: megaraid_sas: Add check for reset adapter bit
+ - scsi: megaraid_sas: Use 63-bit DMA addressing
+ - [ppc64el] pkeys: Fix handling of pkey state across fork()
+ - btrfs: volumes: Make sure no dev extent is beyond device boundary
+ - btrfs: Use real device structure to verify dev extent
+ - IB/uverbs: Fix OOPs upon device disassociation
+ - drm/vblank: Allow dynamic per-crtc max_vblank_count
+ - [x86] drm/i915/ilk: Fix warning when reading emon_status with no output
+ - tpm: Fix some name collisions with drivers/char/tpm.h
+ - bcache: replace hard coded number with BUCKET_GC_GEN_MAX
+ - bcache: treat stale && dirty keys as bad keys
+ - [x86] KVM: VMX: Compare only a single byte for VMCS' "launched" in
+ vCPU-run
+ - [armhf] iio: adc: exynos-adc: Add S5PV210 variant
+ - [armhf] iio: adc: exynos-adc: Use proper number of channels for
+ Exynos4x12
+ - mt76: fix corrupted software generated tx CCMP PN
+ - drm/nouveau: Don't WARN_ON VCPI allocation failures
+ - iwlwifi: fix devices with PCI Device ID 0x34F0 and 11ac RF modules
+ - iwlwifi: add new card for 9260 series
+ - spi: spi-gpio: fix SPI_CS_HIGH capability
+ - [ppc64el] kvm: Save and restore host AMR/IAMR/UAMOR
+ - btrfs: scrub: pass fs_info to scrub_setup_ctx
+ - btrfs: scrub: move scrub_setup_ctx allocation out of device_list_mutex
+ - btrfs: scrub: fix circular locking dependency warning
+ - btrfs: init csum_list before possible free
+ - [arm64] PCI: qcom: Fix error handling in runtime PM support
+ - [arm64] PCI: qcom: Don't deassert reset GPIO during probe
+ - CIFS: Fix error paths in writeback code
+ - CIFS: Fix leaking locked VFS cache pages in writeback retry
+ - [x86] drm/i915: Handle vm_mmap error during I915_GEM_MMAP ioctl with WC
+ set
+ - [x86] drm/i915: Sanity check mmap length against object size
+ - [x86] usb: typec: tcpm: Try PD-2.0 if sink does not respond to 3.0
+ source-caps
+ - IB/mlx5: Reset access mask when looping inside page fault handler
+ - kvm: mmu: Fix overflow on kvm mmu page limit calculation
+ - [x86] kvm: move kvm_load/put_guest_xcr0 into atomic context
+ - [x86] KVM: Always use 32-bit SMRAM save state for 32-bit kernels
+ - cifs: Fix lease buffer length error (CVE-2019-15918)
+ - ext4: protect journal inode's blocks using block_validity
+ - [x86] PCI: Reset Lenovo ThinkPad P50 nvgpu at boot if necessary
+ - dm mpath: fix missing call of path selector type->end_io
+ - blk-mq: free hw queue's resource in hctx's release handler
+ - mmc: sdhci-pci: Add support for Intel CML
+ - PCI: dwc: Use devm_pci_alloc_host_bridge() to simplify code
+ - cifs: smbd: take an array of reqeusts when sending upper layer data
+ - dm crypt: move detailed message into debug level
+ - [x86] drm/amdkfd: Add missing Polaris10 ID
+ - kvm: Check irqchip mode before assign irqfd
+ - drm/amdgpu: fix ring test failure issue during s3 in vce 3.0 (V2)
+ - drm/amdgpu/{uvd,vcn}: fetch ring's read_ptr after alloc
+ - Btrfs: fix race between block group removal and block group allocation
+ - cifs: add spinlock for the openFileList to cifsInodeInfo
+ - [arm64] clk: tegra: Fix maximum audio sync clock for Tegra124/210
+ - [arm64] clk: tegra210: Fix default rates for HDA clocks
+ - IB/hfi1: Avoid hardlockup with flushlist_lock
+ - apparmor: reset pos on failure to unpack for various functions
+ - scsi: target/core: Use the SECTOR_SHIFT constant
+ - scsi: target/iblock: Fix overrun in WRITE SAME emulation
+ - [s390x] scsi: zfcp: fix request object use-after-free in send path
+ causing wrong traces
+ - cifs: Properly handle auto disabling of serverino option
+ - [x86] ALSA: hda - Don't resume forcibly i915 HDMI/DP codec
+ - [x86] KVM: optimize check for valid PAT value
+ - [x86] KVM: VMX: Always signal #GP on WRMSR to MSR_IA32_CR_PAT with bad
+ value
+ - [x86] KVM: VMX: Fix handling of #MC that occurs during VM-Entry
+ - [x86] KVM: VMX: check CPUID before allowing read/write of IA32_XSS
+ - [ppc64el] KVM: Use ccr field in pt_regs struct embedded in vcpu struct
+ - [ppc64el] KVM: Book3S HV: Fix CR0 setting in TM emulation
+ - RDMA/srp: Document srp_parse_in() arguments
+ - RDMA/srp: Accept again source addresses that do not have a port number
+ - btrfs: correctly validate compression type
+ - resource: Include resource end in walk_*() interfaces
+ - resource: Fix find_next_iomem_res() iteration issue
+ - resource: fix locking in find_next_iomem_res()
+ - pstore: Fix double-free in pstore_mkfile() failure path
+ - dm thin metadata: check if in fail_io mode when setting needs_check
+ - [armhf,arm64] drm/panel: Add support for Armadeus ST0700 Adapt
+ - [x86] ALSA: hda - Fix intermittent CORB/RIRB stall on Intel chips
+ - [ppc64el] mm: Limit rma_size to 1TB when running without HV mode
+ - iommu/iova: Remove stale cached32_node
+ - gpio: don't WARN() on NULL descs if gpiolib is disabled
+ - mm/migrate.c: initialize pud_entry in migrate_vma()
+ - NFSv4: Fix delegation state recovery
+ - bcache: only clear BTREE_NODE_dirty bit when it is set
+ - bcache: add comments for mutex_lock(&b->write_lock)
+ - bcache: fix race in btree_flush_write()
+ - [x86] drm/i915: Make sure cdclk is high enough for DP audio on VLV/CHV
+ - [s390x] virtio: fix race on airq_areas[]
+ - drm/atomic_helper: Allow DPMS On<->Off changes for unregistered connectors
+ - ext4: don't perform block validity checks on the journal inode
+ - ext4: fix block validity checks for journal inodes using indirect blocks
+ - ext4: unsigned int compared against zero
+ - [x86] PCI: Reset both NVIDIA GPU and HDA in ThinkPad P50 workaround
+ - [ppc64el] tm: Remove msr_tm_active()
+ - [ppc64el] tm: Fix restoring FP/VMX facility incorrectly on interrupts
+ (CVE-2019-15031)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.74
+ - bridge/mdb: remove wrong use of NLM_F_MULTI
+ - cdc_ether: fix rndis support for Mediatek based smartphones
+ - ipv6: Fix the link time qualifier of 'ping_v6_proc_exit_net()'
+ - isdn/capi: check message length in capi_write()
+ - net: Fix null de-reference of device refcount
+ - net: gso: Fix skb_segment splat when splitting gso_size mangled skb
+ having linear-headed frag_list
+ - net: phylink: Fix flow control resolution
+ - net: sched: fix reordering issues
+ - sch_hhf: ensure quantum and hhf_non_hh_weight are non-zero
+ - sctp: Fix the link time qualifier of 'sctp_ctrlsock_exit()'
+ - sctp: use transport pf_retrans in sctp_do_8_2_transport_strike
+ - tcp: fix tcp_ecn_withdraw_cwr() to clear TCP_ECN_QUEUE_CWR
+ - tipc: add NULL pointer check before calling kfree_rcu
+ - tun: fix use-after-free when register netdev failed
+ - gpiolib: acpi: Add gpiolib_acpi_run_edge_events_on_boot option and
+ blacklist
+ - gpio: fix line flag validation in linehandle_create
+ - Btrfs: fix assertion failure during fsync and use of stale transaction
+ - ixgbe: Prevent u8 wrapping of ITR value to something less than 10us
+ - genirq: Prevent NULL pointer dereference in resend_irqs()
+ - [s390x] KVM: kvm_s390_vm_start_migration: check dirty_bitmap before using
+ it as target for memset()
+ - [s390x] KVM: Do not leak kernel stack data in the KVM_S390_INTERRUPT
+ ioctl
+ - [x86] KVM: work around leak of uninitialized stack contents
+ - [x86] KVM: nVMX: handle page fault in vmread
+ - [x86] purgatory: Change compiler flags from -mcmodel=kernel to
+ -mcmodel=large to fix kexec relocation errors
+ - [ppc64el] Add barrier_nospec to raw_copy_in_user()
+ - [arm64] drm/meson: Add support for XBGR8888 & ABGR8888 formats
+ - [armhf,arm64] clk: rockchip: Don't yell about bad mmc phases when getting
+ - PCI: Always allow probing with driver_override
+ - gpio: fix line flag validation in lineevent_create
+ - ubifs: Correctly use tnc_next() in search_dh_cookie()
+ - driver core: Fix use-after-free and double free on glue directory
+ - firmware: ti_sci: Always request response from firmware
+ - [x86] drm: panel-orientation-quirks: Add extra quirk table entry for
+ GPD MicroPC
+ - Revert "Bluetooth: btusb: driver to enable the usb-wakeup feature"
+ - modules: fix BUG when load module with rodata=n
+ - rsi: fix a double free bug in rsi_91x_deinit() (CVE-2019-15504)
+ - nvmem: Use the same permissions for eeprom as for nvmem
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.75
+ - netfilter: nf_flow_table: set default timeout after successful insertion
+ - HID: wacom: generic: read HID_DG_CONTACTMAX from any feature report
+ - RDMA/restrack: Release task struct which was hold by CM_ID object
+ - [x86] Input: elan_i2c - remove Lenovo Legion Y7000 PnpID
+ - [ppc64el] mm/radix: Use the right page size for vmemmap mapping
+ - USB: usbcore: Fix slab-out-of-bounds bug during device reset
+ - media: tm6000: double free if usb disconnect while streaming
+ - ip6_gre: fix a dst leak in ip6erspan_tunnel_xmit
+ - udp: correct reuseport selection with connected sockets
+ - xen-netfront: do not assume sk_buff_head list is empty in error handling
+ - net_sched: let qdisc_put() accept NULL pointer
+ - mwifiex: Fix three heap overflow at parsing element in
+ cfg80211_ap_settings (CVE-2019-14814, CVE-2019-14815, CVE-2019-14816)
+ - nl80211: Fix possible Spectre-v1 for CQM RSSI thresholds
+ - ieee802154: hwsim: Fix error handle path in hwsim_init_module
+ - ieee802154: hwsim: unregister hw while hwsim_subscribe_all_others fails
+ - [armhf] dts: am57xx: Disable voltage switching for SD card
+ - [armhf] OMAP2+: Fix missing SYSC_HAS_RESET_STATUS for dra7 epwmss
+ - [armhf] bus: ti-sysc: Fix using configured sysc mask value
+ - [s390x] bpf: fix lcgr instruction encoding
+ - [armhf] OMAP2+: Fix omap4 errata warning on other SoCs
+ - [armhf] dts: dra74x: Fix iodelay configuration for mmc3
+ - [armhf] bus: ti-sysc: Simplify cleanup upon failures in sysc_probe()
+ - [s390x] bpf: use 32-bit index for tail calls
+ - netfilter: ebtables: Fix argument order to ADD_COUNTER
+ - netfilter: nft_flow_offload: missing netlink attribute policy
+ - netfilter: xt_nfacct: Fix alignment mismatch in xt_nfacct_match_info
+ - NFSv4: Fix return values for nfs4_file_open()
+ - NFSv4: Fix return value in nfs_finish_open()
+ - NFS: Fix initialisation of I/O result struct in nfs_pgio_rpcsetup
+ - xdp: unpin xdp umem pages in error path
+ - qed: Add cleanup in qed_slowpath_start()
+ - [armel,armhf] 8874/1: mm: only adjust sections of valid mm structures
+ - batman-adv: Only read OGM2 tvlv_len after buffer len check
+ - bpf: allow narrow loads of some sk_reuseport_md fields with offset > 0
+ - r8152: Set memory to all 0xFFs on failed reg reads
+ - [x86] apic: Fix arch_dynirq_lower_bound() bug for DT enabled machines
+ - netfilter: xt_physdev: Fix spurious error message in physdev_mt_check
+ - netfilter: nf_conntrack_ftp: Fix debug output
+ - NFSv2: Fix eof handling
+ - NFSv2: Fix write regression
+ - kallsyms: Don't let kallsyms_lookup_size_offset() fail on retrieving the
+ first symbol
+ - cifs: set domainName when a domain-key is used in multiuser
+ - cifs: Use kzfree() to zero out the password
+ - [armhf,arm64] usb: host: xhci-tegra: Set DMA mask correctly
+ - [armel,armhf] 8901/1: add a criteria for pfn_valid of arm
+ - sky2: Disable MSI on yet another ASUS boards (P6Xxxx)
+ - i2c: designware: Synchronize IRQs when unregistering slave client
+ - [x86] perf/intel: Restrict period on Nehalem
+ - [x86] perf/amd/ibs: Fix sample bias for dispatched micro-ops
+ - amd-xgbe: Fix error path in xgbe_mod_init()
+ - [x86] tools/power x86_energy_perf_policy: Fix argument parsing
+ - [x86] tools/power turbostat: fix buffer overrun
+ - net: aquantia: fix out of memory condition on rx side
+ - [armhf] dmaengine: ti: omap-dma: Add cleanup in omap_dma_probe()
+ - [x86] uaccess: Don't leak the AC flags into __get_user() argument
+ evaluation
+ - [x86] hyper-v: Fix overflow bug in fill_gva_list()
+ - keys: Fix missing null pointer check in request_key_auth_describe()
+ - [x86] iommu/amd: Flush old domains in kdump kernel
+ - [x86] iommu/amd: Fix race in increase_address_space()
+ - [arm64] PCI: kirin: Fix section mismatch warning
+ - ovl: fix regression caused by overlapping layers detection
+ - floppy: fix usercopy direction
+ - binfmt_elf: move brk out of mmap when doing direct loader exec
+ - [arm64] kpti: Whitelist Cortex-A CPUs that don't implement the CSV3 field
+ - media: technisat-usb2: break out of loop at end of buffer
+ (CVE-2019-15505)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.76
+ - Revert "Bluetooth: validate BLE connection interval updates"
+ - RDMA/restrack: Protect from reentry to resource return path
+ - [ppc64el] xive: Fix bogus error code returned by OPAL
+ - IB/core: Add an unbound WQ type to the new CQ API
+ - HID: prodikeys: Fix general protection fault during probe
+ - HID: sony: Fix memory corruption issue on cleanup.
+ - HID: logitech: Fix general protection fault caused by Logitech driver
+ - HID: hidraw: Fix invalid read in hidraw_ioctl
+ - HID: Add quirk for HP X500 PIXART OEM mouse
+ - mtd: cfi_cmdset_0002: Use chip_good() to retry in do_write_oneword()
+ - CIFS: fix deadlock in cached root handling
+ - net/mlx5e: Set ECN for received packets using CQE indication
+ - net/mlx5e: don't set CHECKSUM_COMPLETE on SCTP packets
+ - mlx5: fix get_ip_proto()
+ - net/mlx5e: Allow reporting of checksum unnecessary
+ - net/mlx5e: XDP, Avoid checksum complete when XDP prog is loaded
+ - net/mlx5e: Rx, Fixup skb checksum for packets with tail padding
+ - net/mlx5e: Rx, Check ip headers sanity
+ - iwlwifi: mvm: send BCAST management frames to the right station
+ - iwlwifi: mvm: always init rs_fw with 20MHz bandwidth rates
+ - media: tvp5150: fix switch exit in set control handler
+ - [x86] ASoC: Intel: cht_bsw_max98090_ti: Enable codec clock once and keep
+ it enabled
+ - ALSA: usb-audio: Add Hiby device family to quirks for native DSD support
+ - ALSA: usb-audio: Add DSD support for EVGA NU Audio
+ - ALSA: dice: fix wrong packet parameter for Alesis iO26
+ - [x86] ALSA: hda - Add laptop imic fixup for ASUS M9V laptop
+ - [x86] ALSA: hda - Apply AMD controller workaround for Raven platform
+ - objtool: Clobber user CFLAGS variable
+ - power: supply: sysfs: ratelimit property read error message
+ - scsi: qla2xxx: Turn off IOCB timeout timer on IOCB completion
+ - scsi: qla2xxx: Remove all rports if fabric scan retry fails
+ - scsi: qla2xxx: Return switch command on a timeout
+ - Revert "drm/amd/powerplay: Enable/Disable NBPSTATE on On/OFF of UVD"
+ - bpf: libbpf: retry loading program on EAGAIN
+ - [armhf,arm64] irqchip/gic-v3-its: Fix LPI release for Multi-MSI devices
+ - f2fs: check all the data segments against all node ones
+ - [x86] PCI: hv: Avoid use of hv_pci_dev->pci_slot after freeing it
+ - bcache: remove redundant LIST_HEAD(journal) from run_cache_set()
+ - initramfs: don't free a non-existent initrd
+ - blk-mq: change gfp flags to GFP_NOIO in blk_mq_realloc_hw_ctxs
+ - blk-mq: move cancel of requeue_work to the front of blk_exit_queue
+ - Revert "f2fs: avoid out-of-range memory access"
+ - dm zoned: fix invalid memory access
+ - f2fs: fix to do sanity check on segment bitmap of LFS curseg
+ - drm: Flush output polling on shutdown
+ - net: don't warn in inet diag when IPV6 is disabled
+ - Bluetooth: btrtl: HCI reset on close for Realtek BT chip
+ - [x86] ACPI: video: Add new hw_changes_brightness quirk, set it on
+ PB Easynote MZ35
+ - drm/nouveau/disp/nv50-: fix center/aspect-corrected scaling
+ - xfs: don't crash on null attr fork xfs_bmapi_read
+ - netfilter: nft_socket: fix erroneous socket assignment
+ - Bluetooth: btrtl: Additional Realtek 8822CE Bluetooth devices
+ - net_sched: check cops->tcf_block in tc_bind_tclass()
+ - net/rds: An rds_sock is added too early to the hash table
+ - net/rds: Check laddr_check before calling it
+ - f2fs: use generic EFSBADCRC/EFSCORRUPTED
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.77
+ - arcnet: provide a buffer big enough to actually receive packets
+ - cdc_ncm: fix divide-by-zero caused by invalid wMaxPacketSize
+ - macsec: drop skb sk before calling gro_cells_receive
+ - net/phy: fix DP83865 10 Mbps HDX loopback disable function
+ - net/sched: act_sample: don't push mac header on ip6gre ingress
+ - net_sched: add max len check for TCA_KIND
+ - nfp: flower: fix memory leak in nfp_flower_spawn_vnic_reprs
+ (CVE-2019-19081)
+ - openvswitch: change type of UPCALL_PID attribute to NLA_UNSPEC
+ - ppp: Fix memory leak in ppp_write
+ - sch_netem: fix a divide by zero in tabledist()
+ - skge: fix checksum byte order
+ - usbnet: ignore endpoints with invalid wMaxPacketSize
+ - usbnet: sanity checking of packet sizes and device mtu
+ - net: sched: fix possible crash in tcf_action_destroy()
+ - tcp: better handle TCP_USER_TIMEOUT in SYN_SENT state
+ - net/mlx5: Add device ID of upcoming BlueField-2
+ - mISDN: enforce CAP_NET_RAW for raw sockets (CVE-2019-17055)
+ - appletalk: enforce CAP_NET_RAW for raw sockets (CVE-2019-17054)
+ - ax25: enforce CAP_NET_RAW for raw sockets (CVE-2019-17052)
+ - ieee802154: enforce CAP_NET_RAW for raw sockets (CVE-2019-17053)
+ - nfc: enforce CAP_NET_RAW for raw sockets (CVE-2019-17056)
+ - nfp: flower: prevent memory leak in nfp_flower_spawn_phy_reprs
+ (CVE-2019-19080)
+ - ALSA: hda: Flush interrupts on disabling
+ - [armhf] ASoC: sgtl5000: Fix of unmute outputs on probe
+ - [armhf] ASoC: sgtl5000: Fix charge pump source assignment
+ - [arm*] dmaengine: bcm2835: Print error in case setting DMA mask fails
+ - media: dib0700: fix link error for dibx000_i2c_set_speed
+ - media: hdpvr: Add device num check and handling
+ - time/tick-broadcast: Fix tick_broadcast_offline() lockdep complaint
+ - sched/fair: Fix imbalance due to CPU affinity
+ - sched/core: Fix CPU controller for !RT_GROUP_SCHED
+ - [x86] apic: Make apic_pending_intr_clear() more robust
+ - sched/deadline: Fix bandwidth accounting at all levels after offline
+ migration
+ - [x86] reboot: Always use NMI fallback when shutdown via reboot vector IPI
+ fails
+ - [x86] apic: Soft disable APIC before initializing it
+ - ALSA: hda - Show the fatal CORB/RIRB error more clearly
+ - ALSA: i2c: ak4xxx-adda: Fix a possible null pointer dereference in
+ build_adc_controls()
+ - EDAC/mc: Fix grain_bits calculation
+ - media: iguanair: add sanity checks
+ - base: soc: Export soc_device_register/unregister APIs
+ - ALSA: usb-audio: Skip bSynchAddress endpoint check if it is invalid
+ - [arm64] prefetch: fix a -Wtype-limits warning
+ - md/raid1: end bio when the device faulty
+ - md: don't call spare_active in md_reap_sync_thread if all member devices
+ can't work
+ - md: don't set In_sync if array is frozen
+ - ACPI / processor: don't print errors for processorIDs == 0xff
+ - loop: Add LOOP_SET_DIRECT_IO to compat ioctl
+ - [x86] EDAC, pnd2: Fix ioremap() size in dnv_rd_reg()
+ - efi: cper: print AER info of PCIe fatal error
+ - sched/fair: Use rq_lock/unlock in online_fair_sched_group
+ - idle: Prevent late-arriving interrupts from disrupting offline
+ - media: gspca: zero usb_buf on error
+ - perf config: Honour $PERF_CONFIG env var to specify alternate .perfconfig
+ - perf test vfs_getname: Disable ~/.perfconfig to get default output
+ - media: em28xx: modules workqueue not inited for 2nd device
+ - media: rc: imon: Allow iMON RC protocol for ffdc 7e device
+ - [arm64] perf record: Support aarch64 random socket_id assignment
+ - [armhf] media: omap3isp: Don't set streaming state on random subdevs
+ - media: radio/si470x: kill urb on error
+ - media: hdpvr: add terminating 0 at end of string
+ - led: triggers: Fix a memory leak bug
+ - nbd: add missing config put
+ - media: mceusb: fix (eliminate) TX IR signal length limit
+ - media: dvb-frontends: use ida for pll number
+ - posix-cpu-timers: Sanitize bogus WARNONS
+ - media: dvb-core: fix a memory leak bug
+ - libperf: Fix alignment trap with xyarray contents in 'perf stat'
+ - [amd64] EDAC/amd64: Recognize DRAM device type ECC capability
+ - [amd64] EDAC/amd64: Decode syndrome before translating address
+ - PM / devfreq: passive: Use non-devm notifiers
+ - PM / devfreq: exynos-bus: Correct clock enable sequence
+ - media: cec-notifier: clear cec_adap in cec_notifier_unregister
+ - media: saa7146: add cleanup in hexium_attach()
+ - media: cpia2_usb: fix memory leaks
+ - media: saa7134: fix terminology around saa7134_i2c_eeprom_md7134_gate()
+ - perf trace beauty ioctl: Fix off-by-one error in cmd->string table
+ - [x86] ASoC: es8316: fix headphone mixer volume table
+ - ACPI / CPPC: do not require the _PSD method
+ - sched/cpufreq: Align trace event behavior of fast switching
+ - [x86] apic/vector: Warn when vector space exhaustion breaks affinity
+ - [arm64] kpti: ensure patched kernel text is fetched from PoU
+ - [x86] mm/pti: Do not invoke PTI functions when PTI is disabled
+ - [x86] mm/pti: Handle unaligned address gracefully in
+ pti_clone_pagetable()
+ - nvmet: fix data units read and written counters in SMART log
+ - nvme-multipath: fix ana log nsid lookup when nsid is not found
+ - ALSA: firewire-motu: add support for MOTU 4pre
+ - iommu/amd: Silence warnings under memory pressure
+ - libata/ahci: Drop PCS quirk for Denverton and beyond
+ - iommu/iova: Avoid false sharing on fq_timer_on
+ - libtraceevent: Change users plugin directory
+ - [armhf] dts: exynos: Mark LDO10 as always-on on Peach Pit/Pi Chromebooks
+ - ACPI: custom_method: fix memory leaks
+ - ACPI / PCI: fix acpi_pci_irq_enable() memory leak
+ - closures: fix a race on wakeup from closure_sync
+ - hwmon: (acpi_power_meter) Change log level for 'unsafe software power
+ cap'
+ - md/raid1: fail run raid1 array when active disk less than one
+ - dmaengine: ti: edma: Do not reset reserved paRAM slots
+ - kprobes: Prohibit probing on BUG() and WARN() address
+ - [s390x] crypto: xts-aes-s390 fix extra run-time crypto self tests finding
+ - [x86] cpu: Add Tiger Lake to Intel family
+ - [x86] platform: intel_pmc_core: Do not ioremap RAM
+ - ASoC: dmaengine: Make the pcm->name equal to pcm->id if the name is not
+ set
+ - raid5: don't set STRIPE_HANDLE to stripe which is in batch list
+ - mmc: core: Clarify sdio_irq_pending flag for MMC_CAP2_SDIO_IRQ_NOTHREAD
+ - mmc: sdhci: Fix incorrect switch to HS mode
+ - mmc: core: Add helper function to indicate if SDIO IRQs is enabled
+ - [armhf,arm64] mmc: dw_mmc: Re-store SDIO IRQs mask at system resume
+ - raid5: don't increment read_errors on EILSEQ return
+ - libertas: Add missing sentinel at end of if_usb.c fw_table
+ - e1000e: add workaround for possible stalled packet
+ - ALSA: hda - Drop unsol event handler for Intel HDMI codecs
+ - drm/amd/powerplay/smu7: enforce minimal VBITimeout (v2)
+ - media: ttusb-dec: Fix info-leak in ttusb_dec_send_command()
+ - [x86] ALSA: hda/realtek - Blacklist PC beep for Lenovo ThinkCentre M73/93
+ - [x86] iommu/amd: Override wrong IVRS IOAPIC on Raven Ridge systems
+ - btrfs: extent-tree: Make sure we only allocate extents from block groups
+ with the same type
+ - [armhf] media: omap3isp: Set device on omap3isp subdevs
+ - PM / devfreq: passive: fix compiler warning
+ - iwlwifi: fw: don't send GEO_TX_POWER_LIMIT command to FW version 36
+ - ALSA: firewire-tascam: handle error code when getting current source of
+ clock
+ - ALSA: firewire-tascam: check intermediate state of clock status and retry
+ - scsi: scsi_dh_rdac: zero cdb in send_mode_select()
+ - scsi: qla2xxx: Fix Relogin to prevent modifying scan_state flag
+ - printk: Do not lose last line in kmsg buffer dump
+ - IB/mlx5: Free mpi in mp_slave mode
+ - IB/hfi1: Define variables as unsigned long to fix KASAN warning
+ - randstruct: Check member structs in is_pure_ops_struct()
+ - ceph: use ceph_evict_inode to cleanup inode's resource
+ - [x86] ALSA: hda/realtek - PCI quirk for Medion E4254
+ - blk-mq: add callback of .cleanup_rq
+ - scsi: implement .cleanup_rq callback
+ - [ppc64el] imc: Dont create debugfs files for cpu-less nodes
+ - fuse: fix missing unlock_page in fuse_writepage()
+ - [x86] KVM: always stop emulation on page fault
+ - [x86] KVM: set ctxt->have_exception in x86_decode_insn()
+ - [x86] KVM: Manually calculate reserved bits when loading PDPTRS
+ - [x86] media: sn9c20x: Add MSI MS-1039 laptop to flip_dmi_table
+ - media: don't drop front-end reference count for ->detach
+ - binfmt_elf: Do not move brk for INTERP-less ET_EXEC
+ - [x86] ASoC: Intel: NHLT: Fix debug print format
+ - [x86] ASoC: Intel: Skylake: Use correct function to access iomem space
+ - [x86] ASoC: Intel: Fix use of potentially uninitialized variable
+ - [arm64] Revert "arm64: Remove unnecessary ISBs from set_{pte,pmd,pud}"
+ - [arm64] tlb: Ensure we execute an ISB following walk cache invalidation
+ - [arm64] dts: rockchip: limit clock rate of MMC controllers for RK3328
+ - alarmtimer: Use EOPNOTSUPP instead of ENOTSUPP
+ - regulator: Defer init completion for a while after late_initcall
+ - efifb: BGRT: Improve efifb_bgrt_sanity_check
+ - gfs2: clear buf_in_tr when ending a transaction in sweep_bh_for_rgrps
+ - memcg, oom: don't require __GFP_FS when invoking memcg OOM killer
+ - memcg, kmem: do not fail __GFP_NOFAIL charges
+ - i40e: check __I40E_VF_DISABLE bit in i40e_sync_filters_subtask
+ - block: fix null pointer dereference in blk_mq_rq_timed_out()
+ - smb3: allow disabling requesting leases
+ - ovl: Fix dereferencing possible ERR_PTR()
+ - ovl: filter of trusted xattr results in audit
+ - btrfs: fix allocation of free space cache v1 bitmap pages
+ - Btrfs: fix use-after-free when using the tree modification log
+ - btrfs: Relinquish CPUs in btrfs_compare_trees
+ - btrfs: qgroup: Fix the wrong target io_tree when freeing reserved data
+ space
+ - btrfs: qgroup: Fix reserved data space leak if we have multiple reserve
+ calls
+ - Btrfs: fix race setting up and completing qgroup rescan workers
+ - md/raid6: Set R5_ReadError when there is read failure on parity disk
+ - md: don't report active array_state until after revalidate_disk()
+ completes.
+ - md: only call set_in_sync() when it is expected to succeed.
+ - cfg80211: Purge frame registrations on iftype change
+ - /dev/mem: Bail out upon SIGKILL.
+ - ext4: fix warning inside ext4_convert_unwritten_extents_endio
+ - ext4: fix punch hole for inline_data file systems
+ - quota: fix wrong condition in is_quota_modification()
+ - hwrng: core - don't wait on add_early_randomness()
+ - CIFS: fix max ea value size
+ - CIFS: Fix oplock handling for SMB 2.1+ protocols
+ - md/raid0: avoid RAID0 data corruption due to layout confusion.
+ - fuse: fix deadlock with aio poll and fuse_iqueue::waitq.lock
+ - mm/compaction.c: clear total_{migrate,free}_scanned before scanning a new
+ zone
+ - drm/amd/display: Restore backlight brightness after system resume
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.78
+ - tpm: use tpm_try_get_ops() in tpm-sysfs.c.
+ - tpm: Fix TPM 1.2 Shutdown sequence to prevent future TPM operations
+ - [armhf,arm64] drm/panel: simple: fix AUO g185han01 horizontal blanking
+ - [armhf,arm64] drm/panel: check failure cases in the probe func
+ - [armhf,arm64] drm/rockchip: Check for fast link training before enabling
+ psr
+ - gpu: drm: radeon: Fix a possible null-pointer dereference in
+ radeon_connector_set_property()
+ - [ppc64el] PCI: rpaphp: Avoid a sometimes-uninitialized warning
+ - ipmi_si: Only schedule continuously in the thread in maintenance mode
+ - [armhf,arm64] clk: sunxi-ng: v3s: add missing clock slices for MMC2
+ module clocks
+ - drm/amd/display: fix issue where 252-255 values are clipped
+ - drm/amd/display: reprogram VM config when system resume
+ - [ppc64el] powernv/ioda2: Allocate TCE table levels on demand for default
+ DMA window
+ - [ppc64el] xmon: Check for HV mode when dumping XIVE info from OPAL
+ - [ppc64el] rtas: use device model APIs and serialization during LPM
+ - [ppc64el] futex: Fix warning: 'oldval' may be used uninitialized in this
+ function
+ - [ppc64el] pseries/mobility: use cond_resched when updating device tree
+ - [armhf,arm64] pinctrl: tegra: Fix write barrier placement in pmx_writel
+ - [ppc64el] eeh: Clear stale EEH_DEV_NO_HANDLER flag
+ - vfio_pci: Restore original state on release
+ - drm/nouveau/volt: Fix for some cards having 0 maximum voltage
+ - [x86] pinctrl: amd: disable spurious-firing GPIO IRQs
+ - drm/amd/display: support spdif
+ - drm/amdgpu/si: fix ASIC tests
+ - [ppc64el] exception: machine check use correct cfar for late handler
+ - pstore: fs superblock limits
+ - [ppc64el] pseries: correctly track irq state in default idle
+ - [arm64] pinctrl: meson-gxbb: Fix wrong pinning definition for uart_c
+ - [ppc64el] dump kernel log before carrying out fadump or kdump
+ - [arm64] mbox: qcom: add APCS child device for QCS404
+ - scsi: core: Reduce memory required for SCSI logging
+ - dma-buf/sw_sync: Synchronize signal vs syncpt free
+ - ext4: fix potential use after free after remounting with noblock_validity
+ - [mips*] tlbex: Explicitly cast _PAGE_NO_EXEC to a boolean
+ - [x86] i2c-cht-wc: Fix lockdep warning
+ - [x86] mfd: intel-lpss: Remove D3cold delay
+ - HID: wacom: Fix several minor compiler warnings
+ - [armel,armhf] 8898/1: mm: Don't treat faults reported from cache
+ maintenance as writes
+ - [armhf] rtc: snvs: fix possible race condition
+ - HID: apple: Fix stuck function keys when using FN
+ - [arm64] PCI: rockchip: Propagate errors for optional regulators
+ - [armhf] PCI: imx6: Propagate errors for optional regulators
+ - [armel,armhf] 8903/1: ensure that usable memory in bank 0 starts from a
+ PMD-aligned address
+ - fat: work around race with userspace's read via blockdev while mounting
+ - pktcdvd: remove warning on attempting to register non-passthrough dev
+ - [s390x] hypfs: Fix error number left in struct pointer member
+ - ocfs2: wait for recovering done after direct unlock request
+ - [arm64] consider stack randomization for mmap base only when necessary
+ - [mips*] properly account for stack randomization and stack guard gap
+ - [armel,armhf] properly account for stack randomization and stack guard
+ gap
+ - [armel,armhf] use STACK_TOP when computing mmap base address
+ - block: mq-deadline: Fix queue restart handling
+ - bpf: fix use after free in prog symbol exposure
+ - cxgb4:Fix out-of-bounds MSI-X info array access
+ - erspan: remove the incorrect mtu limit for erspan
+ - hso: fix NULL-deref on tty open
+ - ipv6: drop incoming packets having a v4mapped source address
+ - ipv6: Handle missing host route in __ipv6_ifa_notify
+ - net: ipv4: avoid mixed n_redirects and rate_tokens usage
+ - net: qlogic: Fix memory leak in ql_alloc_large_buffers
+ - net: Unpublish sk from sk_reuseport_cb before call_rcu
+ - nfc: fix memory leak in llcp_sock_bind()
+ - qmi_wwan: add support for Cinterion CLS8 devices
+ - rxrpc: Fix rxrpc_recvmsg tracepoint
+ - sch_dsmark: fix potential NULL deref in dsmark_init()
+ - udp: fix gso_segs calculations
+ - vsock: Fix a lockdep warning in __vsock_release()
+ - udp: only do GSO if # of segs > 1
+ - net/rds: Fix error handling in rds_ib_add_one()
+ - xen-netfront: do not use ~0U as error return value for
+ xennet_fill_frags()
+ - tipc: fix unlimited bundling of small messages
+ - sch_cbq: validate TCA_CBQ_WRROPT to avoid crash
+ - NFC: fix attrs checks in netlink interface
+ - kexec: bail out upon SIGKILL when allocating memory.
+ - 9p/cache.c: Fix memory leak in v9fs_cache_session_get_cookie
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.79
+ - [s390x] process: avoid potential reading of freed stack
+ - [s390x] KVM: Test for bad access register and size at the start of
+ S390_MEM_OP
+ - [s390x] topology: avoid firing events before kobjs are created
+ - [s390x] cio: exclude subchannels with no parent from pseudo check
+ - [ppc64el] KVM: Book3S HV: Fix race in re-enabling XIVE escalation
+ interrupts
+ - [ppc64el] KVM: Book3S HV: Check for MMU ready on piggybacked virtual
+ cores
+ - [ppc64el] KVM: Book3S HV: Don't lose pending doorbell request on
+ migration on P9
+ - [x86] KVM: Fix userspace set invalid CR4
+ - [x86] KVM: nVMX: handle page fault in vmread fix
+ - nbd: fix max number of supported devs
+ - PM / devfreq: tegra: Fix kHz to Hz conversion
+ - ASoC: Define a set of DAPM pre/post-up events
+ - [armhf] ASoC: sgtl5000: Improve VAG power and mute control
+ - [ppc64el] mce: Fix MCE handling for huge pages
+ - [ppc64el] mce: Schedule work from irq_work
+ - [ppc64el] powernv: Restrict OPAL symbol map to only be readable by root
+ - [ppc64el] powernv/ioda: Fix race in TCE level allocation
+ - [ppc64el] book3s64/mm: Don't do tlbie fixup for some hardware revisions
+ - tools lib traceevent: Fix "robust" test of do_generate_dynamic_list_file
+ - [x86] crypto: qat - Silence smp_processor_id() warning
+ - crypto: skcipher - Unmap pages after an external error
+ - [mips*el/loongson-3] Treat Loongson Extensions as ASEs
+ - power: supply: sbs-battery: use correct flags field
+ - power: supply: sbs-battery: only return health when battery present
+ - tracing: Make sure variable reference alias has correct var_ref_idx
+ - usercopy: Avoid HIGHMEM pfn warning
+ - timer: Read jiffies once when forwarding base clk
+ - [x86] PCI: vmd: Fix shadow offsets to reflect spec changes
+ - PCI: Restore Resizable BAR size bits correctly for 1MB BARs
+ - [armhf] watchdog: imx2_wdt: fix min() calculation in imx2_wdt_set_timeout
+ - perf stat: Fix a segmentation fault when using repeat forever
+ - [armhf] drm/omap: fix max fclk divider for omap36xx
+ - [arm64] drm/msm/dsi: Fix return value check for clk_get_parent
+ - drm/nouveau/kms/nv50-: Don't create MSTMs for eDP connectors
+ - [x86] drm/i915/gvt: update vgpu workload head pointer correctly
+ - mmc: sdhci: improve ADMA error reporting
+ - Revert "locking/pvqspinlock: Don't wait if vCPU is preempted"
+ - xen/xenbus: fix self-deadlock after killing user process
+ - ieee802154: atusb: fix use-after-free at disconnect
+ - [s390x] cio: avoid calling strlen on null pointer
+ - cfg80211: initialize on-stack chandefs
+ - [arm64] cpufeature: Detect SSBS and advertise to userspace
+ - ima: always return negative code for error
+ - ima: fix freeing ongoing ahash_request
+ - fs: nfs: Fix possible null-pointer dereferences in encode_attrs()
+ - 9p: Transport error uninitialized
+ - 9p: avoid attaching writeback_fid on mmap with type PRIVATE
+ - xen/pci: reserve MCFG areas earlier
+ - ceph: fix directories inode i_blkbits initialization
+ - ceph: reconnect connection if session hang in opening state
+ - watchdog: aspeed: Add support for AST2600
+ - netfilter: nf_tables: allow lookups in dynamic sets
+ - drm/amdgpu: Fix KFD-related kernel oops on Hawaii
+ - drm/amdgpu: Check for valid number of registers to read
+ - pNFS: Ensure we do clear the return-on-close layout stateid on fatal
+ errors
+ - [x86] purgatory: Disable the stackleak GCC plugin for the purgatory
+ - ntb: point to right memory window index
+ - thermal: Fix use-after-free when unregistering thermal zone device
+ - thermal_hwmon: Sanitize thermal_zone type
+ - libnvdimm/region: Initialize bad block for volatile namespaces
+ - fuse: fix memleak in cuse_channel_open
+ - libnvdimm/nfit_test: Fix acpi_handle redefinition
+ - sched/membarrier: Call sync_core only before usermode for same mm
+ - sched/membarrier: Fix private expedited registration check
+ - sched/core: Fix migration to invalid CPU in __set_cpus_allowed_ptr()
+ - kernel/elfcore.c: include proper prototypes
+ - nfp: flower: fix memory leak in nfp_flower_spawn_vnic_reprs
+ - drm/radeon: Bail earlier when radeon.cik_/si_support=0 is passed
+ - [ppc64el] KVM: HV: XIVE: Free escalation interrupts before disabling the
+ VP
+ - [x86] KVM: nVMX: Fix consistency check on injected exception error code
+ - nbd: fix crash when the blksize is zero
+ - [ppc64el] pseries: Fix cpu_hotplug_lock acquisition in resize_hpt()
+ - [ppc64el] radix: Rename CPU_FTR_P9_TLBIE_BUG feature flag
+ - tools lib traceevent: Do not free tep->cmdlines in add_new_comm() on
+ failure
+ - tick: broadcast-hrtimer: Fix a race in bc_set_next
+ - perf tools: Fix segfault in cpu_cache_level__read()
+ - perf stat: Reset previous counts on repeat with interval
+ - [arm64] ssbd: Add support for PSTATE.SSBS rather than trapping to EL3
+ - [arm64] KVM: Set SCTLR_EL2.DSSBS if SSBD is forcefully disabled and !vhe
+ - [arm64] docs: Document SSBS HWCAP
+ - [arm64] fix SSBS sanitization
+ - [arm64] Add sysfs vulnerability show for spectre-v1
+ - [arm64] add sysfs vulnerability show for meltdown
+ - [arm64] enable generic CPU vulnerabilites support
+ - [arm64] Always enable ssb vulnerability detection
+ - [arm64] Provide a command line to disable spectre_v2 mitigation
+ - [arm64] Advertise mitigation of Spectre-v2, or lack thereof
+ - [arm64] Always enable spectre-v2 vulnerability detection
+ - [arm64] add sysfs vulnerability show for spectre-v2
+ - [arm64] add sysfs vulnerability show for speculative store bypass
+ - [arm64] ssbs: Don't treat CPUs with SSBS as unaffected by SSB
+ - [arm64] Force SSBS on context switch
+ - [arm64] Use firmware to detect CPUs that are not affected by Spectre-v2
+ - [arm64] speculation: Support 'mitigations=' cmdline option
+ - vfs: Fix EOVERFLOW testing in put_compat_statfs64
+ - cfg80211: add and use strongly typed element iteration macros
+ - cfg80211: Use const more consistently in for_each_element macros
+ - nl80211: validate beacon head (CVE-2019-16746)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.80
+ - panic: ensure preemption is disabled during panic()
+ - f2fs: use EINVAL for superblock with invalid magic
+ - USB: rio500: Remove Rio 500 kernel driver
+ - USB: yurex: Don't retry on unexpected errors
+ - USB: yurex: fix NULL-derefs on disconnect
+ - USB: usb-skeleton: fix runtime PM after driver unbind
+ - USB: usb-skeleton: fix NULL-deref on disconnect
+ - xhci: Fix false warning message about wrong bounce buffer write length
+ - xhci: Prevent device initiated U1/U2 link pm if exit latency is too long
+ - xhci: Check all endpoints for LPM timeout
+ - xhci: Fix USB 3.1 capability detection on early xHCI 1.1 spec based hosts
+ - usb: xhci: wait for CNR controller not ready bit in xhci resume
+ - xhci: Prevent deadlock when xhci adapter breaks during init
+ - xhci: Increase STS_SAVE timeout in xhci_suspend()
+ - USB: adutux: fix use-after-free on disconnect
+ - USB: adutux: fix NULL-derefs on disconnect
+ - USB: adutux: fix use-after-free on release
+ - USB: iowarrior: fix use-after-free on disconnect
+ - USB: iowarrior: fix use-after-free on release
+ - USB: iowarrior: fix use-after-free after driver unbind
+ - USB: usblp: fix runtime PM after driver unbind
+ - USB: chaoskey: fix use-after-free on release
+ - USB: ldusb: fix NULL-derefs on driver unbind
+ - serial: uartlite: fix exit path null pointer
+ - USB: serial: keyspan: fix NULL-derefs on open() and write()
+ - USB: serial: ftdi_sio: add device IDs for Sienna and Echelon PL-20
+ - USB: serial: option: add Telit FN980 compositions
+ - USB: serial: option: add support for Cinterion CLS8 devices
+ - USB: serial: fix runtime PM after driver unbind
+ - USB: usblcd: fix I/O after disconnect
+ - USB: microtek: fix info-leak at probe
+ - USB: dummy-hcd: fix power budget for SuperSpeed mode
+ - USB: legousbtower: fix slab info leak at probe
+ - USB: legousbtower: fix deadlock on disconnect
+ - USB: legousbtower: fix potential NULL-deref on disconnect
+ - USB: legousbtower: fix open after failed reset request
+ - USB: legousbtower: fix use-after-free on release
+ - [x86] mei: me: add comet point (lake) LP device ids
+ - [x86] mei: avoid FW version request on Ibex Peak and earlier
+ - [armhf,arm64] iio: adc: axp288: Override TS pin bias current for some
+ models
+ - efivar/ssdt: Don't iterate over EFI vars if no SSDT override was
+ specified
+ - perf llvm: Don't access out-of-scope array
+ - perf inject jit: Fix JIT_CODE_MOVE filename
+ - blk-wbt: fix performance regression in wbt scale_up/scale_down
+ - CIFS: Gracefully handle QueryInfo errors during open
+ - CIFS: Force revalidate inode when dentry is stale
+ - CIFS: Force reval dentry if LOOKUP_REVAL flag is set
+ - kernel/sysctl.c: do not override max_threads provided by userspace
+ - mm/vmpressure.c: fix a signedness bug in vmpressure_register_event()
+ - gpiolib: don't clear FLAG_IS_OUT when emulating open-drain/open-source
+ - cifs: use cifsInodeInfo->open_file_lock while iterating to avoid a panic
+ - btrfs: fix incorrect updating of log root tree
+ - btrfs: fix uninitialized ret in ref-verify
+ - NFS: Fix O_DIRECT accounting of number of bytes read/written
+ - [mips*] elf_hwcap: Export userspace ASEs
+ - ACPICA: ACPI 6.3: PPTT add additional fields in Processor Structure Flags
+ - ACPI/PPTT: Add support for ACPI 6.3 thread flag
+ - [arm64] topology: Use PPTT to determine if PE is a thread
+ - vfs: Fix the locking in dcache_readdir() and friends
+ - media: stkwebcam: fix runtime PM after driver unbind
+ - [arm64] sve: Fix wrong free for task->thread.sve_state
+ - [rt] tracing/hwlat: Report total time spent in all NMIs during the sample
+ - [rt] tracing/hwlat: Don't ignore outer-loop duration when calculating
+ max_latency
+ - ftrace: Get a reference counter for the trace_array on filter files
+ - tracing: Get trace_array reference for available_tracers files
+ - hwmon: Fix HWMON_P_MIN_ALARM mask
+ - [x86] asm: Fix MWAITX C-state hint value
+ - [x86] PCI: vmd: Fix config addressing when using bus offsets
+ - perf/hw_breakpoint: Fix arch_hw_breakpoint use-before-initialization
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.81
+ - nvme-pci: Fix a race in controller removal
+ - scsi: ufs: skip shutdown if hba is not powered
+ - scsi: megaraid: disable device when probe failed after enabled device
+ - scsi: qla2xxx: Fix unbound sleep in fcport delete path.
+ - [armhf] OMAP2+: Fix missing reset done flag for am3 and am43
+ - [armhf] OMAP2+: Fix warnings with broken omap2_set_init_voltage()
+ - xen/efi: Set nonblocking callbacks
+ - nl80211: fix null pointer dereference
+ - mac80211: fix txq null pointer dereference
+ - netfilter: nft_connlimit: disable bh on garbage collection
+ - [mips*el/loongson-3] Fix the link time qualifier of 'serial_exit()'
+ - [arm64] net: hisilicon: Fix usage of uninitialized variable in function
+ mdio_sc_cfg_reg_write()
+ - lib: textsearch: fix escapes in example code
+ - r8152: Set macpassthru in reset_resume callback
+ - libata/ahci: Fix PCS quirk application
+ - md/raid0: fix warning message for parameter default_layout
+ - ocfs2: fix panic due to ocfs2_wq is null
+ - ipv4: fix race condition between route lookup and invalidation
+ - net: avoid potential infinite loop in tc_ctl_action()
+ - net: ipv6: fix listify ip6_rcv_finish in case of forwarding
+ - [armhf,arm64] net: stmmac: disable/enable ptp_ref_clk in suspend/resume
+ flow
+ - sctp: change sctp_prot .no_autobind with true
+ - memfd: Fix locking when tagging pins
+ - USB: legousbtower: fix memleak on disconnect
+ - ALSA: hda/realtek - Add support for ALC711
+ - [x86] ALSA: hda/realtek - Enable headset mic on Asus MJ401TA
+ - ALSA: usb-audio: Disable quirks for BOSS Katana amplifiers
+ - ALSA: hda - Force runtime PM on Nvidia HDMI codecs
+ - USB: serial: ti_usb_3410_5052: fix port-close races
+ - USB: ldusb: fix memleak on disconnect
+ - USB: usblp: fix use-after-free on disconnect
+ - USB: ldusb: fix read info leaks
+ - [mips*] tlbex: Fix build_restore_pagemask KScratch restore
+ - staging: wlan-ng: fix exit return when sme->key_idx >= NUM_WEPKEYS
+ - [s390x] scsi: zfcp: fix reaction on bit error threshold notification
+ - scsi: sd: Ignore a failure to sync cache due to lack of authorization
+ - scsi: core: save/restore command resid for error handling
+ - scsi: core: try to get module before removing device
+ - scsi: ch: Make it possible to open a ch device multiple times again
+ - Input: synaptics-rmi4 - avoid processing unknown IRQs
+ - ACPI: CPPC: Set pcc_data[pcc_ss_id] to NULL in acpi_cppc_processor_exit()
+ - cfg80211: wext: avoid copying malformed SSIDs (CVE-2019-17133)
+ - mac80211: Reject malformed SSID elements
+ - [x86] drm/edid: Add 6 bpc quirk for SDC panel in Lenovo G50
+ - drm/ttm: Restore ttm prefaulting
+ - drm/amdgpu: Bail earlier when amdgpu.cik_/si_support is not set to 1
+ - drivers/base/memory.c: don't access uninitialized memmaps in
+ soft_offline_page_store()
+ - fs/proc/page.c: don't access uninitialized memmaps in fs/proc/page.c
+ - mm/memory-failure.c: don't access uninitialized memmaps in
+ memory_failure()
+ - mm/slub: fix a deadlock in show_slab_objects()
+ - mm/page_owner: don't access uninitialized memmaps when reading
+ /proc/pagetypeinfo
+ - hugetlbfs: don't access uninitialized memmaps in
+ pfn_range_valid_gigantic()
+ - mm/memory-failure: poison read receives SIGKILL instead of SIGBUS if
+ mmaped more than once
+ - EDAC/ghes: Fix Use after free in ghes_edac remove path
+ - [arm64] Enable workaround for Cavium TX2 erratum 219 when running SMT
+ - CIFS: avoid using MID 0xFFFF
+ - CIFS: Fix use after free of file info structures
+ - perf/aux: Fix AUX output stopping
+ - tracing: Fix race in perf_trace_buf initialization
+ - dm cache: fix bugs when a GFP_NOWAIT allocation fails
+ - [amd64] boot: Make level2_kernel_pgt pages invalid outside kernel area
+ - [x86] apic/x2apic: Fix a NULL pointer deref when handling a dying cpu
+ - [x86] pinctrl: cherryview: restore Strago DMI workaround for all versions
+ - [arm64] pinctrl: armada-37xx: fix control of pins 32 and up
+ - [arm64] pinctrl: armada-37xx: swap polarity on LED group
+ - btrfs: block-group: Fix a memory leak due to missing
+ btrfs_put_block_group()
+ - Btrfs: add missing extents release on file extent cluster relocation
+ error
+ - Btrfs: check for the full sync flag while holding the inode lock during
+ fsync
+ - btrfs: tracepoints: Fix bad entry members of qgroup events
+ - memstick: jmb38x_ms: Fix an error handling path in 'jmb38x_ms_probe()'
+ - cpufreq: Avoid cpufreq_suspend() deadlock on system shutdown
+ - xen/netback: fix error path of xenvif_connect_data()
+ - PCI: PM: Fix pci_power_up()
+ - blk-rq-qos: fix first node deletion of rq_qos_del()
+ - RDMA/cxgb4: Do not dma memory off of the stack (CVE-2019-17075)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.82
+ - zram: fix race between backing_dev_show and backing_dev_store
+ - dm snapshot: introduce account_start_copy() and account_end_copy()
+ - dm snapshot: rework COW throttling to fix deadlock
+ - Btrfs: fix inode cache block reserve leak on failure to allocate data
+ space
+ - Btrfs: fix memory leak due to concurrent append writes with fiemap
+ - btrfs: qgroup: Always free PREALLOC META reserve in
+ btrfs_delalloc_release_extents()
+ - btrfs: tracepoints: Fix wrong parameter order for qgroup events
+ - wil6210: fix freeing of rx buffers in EDMA mode
+ - f2fs: flush quota blocks after turnning it off
+ - scsi: lpfc: Fix a duplicate 0711 log message number.
+ - f2fs: fix to recover inode's i_gc_failures during POR
+ - f2fs: fix to recover inode->i_flags of inode block during POR
+ - [x86] HID: i2c-hid: add Direkt-Tek DTLAPY133-1 to descriptor override
+ - [arm64,armel,armhf] usb: dwc2: fix unbalanced use of external
+ vbus-supply
+ - [x86] tools/power turbostat: fix goldmont C-state limit decoding
+ - [x86] cpu: Add Atom Tremont (Jacobsville)
+ - [arm64] drm/msm/dpu: handle failures while initializing displays
+ - bcache: fix input overflow to writeback_rate_minimum
+ - PCI: Fix Switchtec DMA aliasing quirk dmesg noise
+ - Btrfs: fix deadlock on tree root leaf when finding free extent
+ - netfilter: ipset: Make invalid MAC address checks consistent
+ - HID: i2c-hid: Disable runtime PM for LG touchscreen
+ - HID: i2c-hid: Ignore input report if there's no data present on Elan
+ touchpanels
+ - HID: i2c-hid: Add Odys Winbook 13 to descriptor override
+ - [x86] platform/x86: Add the VLV ISP PCI ID to atomisp2_pm
+ - [x86] platform/x86: Fix config space access for intel_atomisp2_pm
+ - ath10k: assign 'n_cipher_suites = 11' for WCN3990 to enable WPA3
+ - HID: Add ASUS T100CHI keyboard dock battery quirks
+ - NFSv4: Ensure that the state manager exits the loop on SIGKILL
+ - HID: steam: fix boot loop with bluetooth firmware
+ - HID: steam: fix deadlock with input devices.
+ - [arm64,armhf] usb: dwc3: gadget: early giveback if End Transfer already
+ completed
+ - [arm64,armhf] usb: dwc3: gadget: clear DWC3_EP_TRANSFER_STARTED on cmd
+ complete
+ - ALSA: usb-audio: Cleanup DSD whitelist
+ - usb: handle warm-reset port requests on hub resume
+ - [armhf] rtc: pcf8523: set xtal load capacitance from DT
+ - [arm64] Add MIDR encoding for HiSilicon Taishan CPUs
+ - [arm64] kpti: Whitelist HiSilicon Taishan v110 CPUs
+ - scsi: lpfc: Correct localport timeout duration error
+ - CIFS: Respect SMB2 hdr preamble size in read responses
+ - cifs: add credits from unmatched responses/messages
+ - ALSA: hda/realtek - Apply ALC294 hp init also for S4 resume
+ - ext4: disallow files with EXT4_JOURNAL_DATA_FL from EXT4_IOC_SWAP_BOOT
+ - exec: load_script: Do not exec truncated interpreter path
+ - [arm64,armhf] net: dsa: mv88e6xxx: Release lock while requesting IRQ
+ - PCI/PME: Fix possible use-after-free on remove
+ - [arm64,armhf] iio: adc: meson_saradc: Fix memory allocation order
+ - [x86] iio: fix center temperature of bmc150-accel-core
+ - perf map: Fix overlapped map handling
+ - perf script brstackinsn: Fix recovery from LBR/binary mismatch
+ - perf jevents: Fix period for Intel fixed counters
+ - perf tools: Propagate get_cpuid() error
+ - perf annotate: Propagate perf_env__arch() error
+ - perf annotate: Fix the signedness of failure returns
+ - perf annotate: Propagate the symbol__annotate() error return
+ - perf annotate: Return appropriate error code for allocation failures
+ - staging: rtl8188eu: fix null dereference when kzalloc fails
+ - RDMA/hfi1: Prevent memory leak in sdma_init (CVE-2019-19065)
+ - RDMA/iwcm: Fix a lock inversion issue
+ - [x86] HID: hyperv: Use in-place iterator API in the channel callback
+ - nfs: Fix nfsi->nrequests count error on nfs_inode_remove_request
+ - [arm64] ftrace: Ensure synchronisation in PLT setup for Neoverse-N1
+ - [arm64] gpio: max77620: Use correct unit for debounce times
+ - fs: cifs: mute -Wunused-const-variable message
+ - [armhf] serial: mctrl_gpio: Check for NULL pointer
+ - efi/cper: Fix endianness of PCIe class code
+ - [x86] efi/x86: Do not clean dummy variable in kexec path
+ - [x86] xen: Return from panic notifier
+ - ocfs2: clear zero in unaligned direct IO
+ - fs: ocfs2: fix possible null-pointer dereferences in
+ ocfs2_xa_prepare_entry()
+ - fs: ocfs2: fix a possible null-pointer dereference in
+ ocfs2_write_end_nolock()
+ - fs: ocfs2: fix a possible null-pointer dereference in
+ ocfs2_info_scan_inode_alloc()
+ - [arm64] armv8_deprecated: Checking return value for memory allocation
+ - [x86] cpu: Add Comet Lake to the Intel CPU models header
+ - sched/vtime: Fix guest/system mis-accounting on task switch
+ - [x86] perf/x86/amd: Change/fix NMI latency mitigation to use a timestamp
+ - drm/amdgpu: fix memory leak
+ - iio: imu: adis16400: release allocated memory on failure
+ (CVE-2019-19060)
+ - [x86] virt: vbox: fix memory leak in hgcm_call_preprocess_linaddr
+ (CVE-2019-19048)
+ - NFSv4: Fix leak of clp->cl_acceptor string
+ - tracing: Initialize iter->seq after zeroing in tracing_read_pipe()
+ - ALSA: hda/realtek: Reduce the Headphone static noise on XPS 9350/9360
+ - iwlwifi: exclude GEO SAR support for 3168
+ - nbd: verify socket is supported during setup
+ - USB: legousbtower: fix a signedness bug in tower_probe()
+ - [x86] thunderbolt: Use 32-bit writes when writing ring producer/consumer
+ - ath6kl: fix a NULL-ptr-deref bug in ath6kl_usb_alloc_urb_from_pipe()
+ (CVE-2019-15098)
+ - fuse: flush dirty data/metadata before non-truncate setattr
+ - fuse: truncate pending writes on O_TRUNC
+ - ALSA: bebob: Fix prototype of helper function to return negative value
+ - ALSA: hda/realtek - Fix 2 front mics of codec 0x623
+ - ALSA: hda/realtek - Add support for ALC623
+ - UAS: Revert commit 3ae62a42090f ("UAS: fix alignment of scatter/gather
+ segments")
+ - USB: gadget: Reject endpoints with 0 maxpacket value
+ - usb-storage: Revert commit 747668dbc061 ("usb-storage: Set
+ virt_boundary_mask to avoid SG overflows")
+ - USB: ldusb: fix ring-buffer locking
+ - USB: ldusb: fix control-message timeout
+ - usb: xhci: fix __le32/__le64 accessors in debugfs code
+ - USB: serial: whiteheat: fix potential slab corruption
+ - USB: serial: whiteheat: fix line-speed endianness
+ - scsi: target: cxgbit: Fix cxgbit_fw4_ack()
+ - HID: i2c-hid: add Trekstor Primebook C11B to descriptor override
+ - HID: Fix assumption that devices have inputs
+ - HID: fix error message in hid_open_report()
+ - nl80211: fix validation of mesh path nexthop
+ - [s390x] cmm: fix information leak in cmm_timeout_handler()
+ - [s390x] idle: fix cpu idle time calculation
+ - [arm64] Ensure VM_WRITE|VM_SHARED ptes are clean by default
+ - rtlwifi: Fix potential overflow on P2P code (CVE-2019-17666)
+ - [arm64] dmaengine: qcom: bam_dma: Fix resource leak
+ - [armhf] dmaengine: cppi41: Fix cppi41_dma_prep_slave_sg() when idle
+ - NFS: Fix an RCU lock leak in nfs4_refresh_delegation_stateid()
+ - batman-adv: Avoid free/alloc race when handling OGM buffer
+ - llc: fix sk_buff leak in llc_sap_state_process()
+ - llc: fix sk_buff leak in llc_conn_service()
+ - rxrpc: Fix call ref leak
+ - rxrpc: rxrpc_peer needs to hold a ref on the rxrpc_local record
+ - rxrpc: Fix trace-after-put looking at the put peer record
+ - NFC: pn533: fix use-after-free and memleaks
+ - bonding: fix potential NULL deref in bond_update_slave_arr
+ - net: usb: sr9800: fix uninitialized local variable
+ - sch_netem: fix rcu splat in netem_enqueue()
+ - ALSA: timer: Simplify error path in snd_timer_open()
+ - ALSA: timer: Fix mutex deadlock at releasing card
+ - ALSA: usb-audio: DSD auto-detection for Playback Designs
+ - ALSA: usb-audio: Update DSD support quirks for Oppo and Rotel
+ - ALSA: usb-audio: Add DSD support for Gustard U16/X26 USB Interface
+ - [ppc64el] powerpc/powernv: Fix CPU idle to be called with IRQs disabled
+ - Revert "ALSA: hda: Flush interrupts on disabling"
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.83
+ - regulator: of: fix suspend-min/max-voltage parsing
+ - [arm64] dts: allwinner: a64: pine64-plus: Add PHY regulator delay
+ - [arm64] arm64: dts: allwinner: a64: sopine-baseboard: Add PHY regulator
+ delay
+ - [armhf] regulator: ti-abb: Fix timeout in
+ ti_abb_wait_txdone/ti_abb_clear_all_txdone
+ - [x86] ASoC: rt5682: add NULL handler to set_jack function
+ - [armhf] regulator: pfuze100-regulator: Variable "val" in
+ pfuze100_regulator_probe() could be uninitialized
+ - [arm64,armhf] ASoc: rockchip: i2s: Fix RPM imbalance
+ - [armel,armhf] mm: fix alignment handler faults under memory pressure
+ - scsi: qla2xxx: fix a potential NULL pointer dereference
+ - scsi: scsi_dh_alua: handle RTPG sense code correctly during state
+ transitions
+ - drm/amdgpu: fix potential VM faults
+ - scsi: target: core: Do not overwrite CDB byte 1
+ - tracing: Fix "gfp_t" format for synthetic events
+ - of: unittest: fix memory leak in unittest_data_add (CVE-2019-19049)
+ - [arm64,armhf] irqchip/gic-v3-its: Use the exact ITSList for VMOVP
+ - cifs: Fix cifsInodeInfo lock_sem deadlock when reconnect occurs
+ - nbd: protect cmd->status with cmd->lock
+ - nbd: handle racing with error'ed out commands
+ - cxgb4: fix panic when attaching to ULD fail
+ - dccp: do not leak jiffies on the wire
+ - erspan: fix the tun_info options_len check for erspan
+ - inet: stop leaking jiffies on the wire
+ - net: annotate accesses to sk->sk_incoming_cpu
+ - net: annotate lockless accesses to sk->sk_napi_id
+ - [armhf] net: dsa: bcm_sf2: Fix IMP setup for port different than 8
+ - net: fix sk_page_frag() recursion from memory reclaim
+ - [arm64] net: hisilicon: Fix ping latency when deal with high throughput
+ - net/mlx4_core: Dynamically set guaranteed amount of counters per VF
+ - netns: fix GFP flags in rtnl_net_notifyid()
+ - net: usb: lan78xx: Disable interrupts before calling
+ generic_handle_irq()
+ - net: Zeroing the structure ethtool_wolinfo in ethtool_get_wol()
+ - udp: fix data-race in udp_set_dev_scratch()
+ - vxlan: check tun_info options_len properly
+ - net: add skb_queue_empty_lockless()
+ - udp: use skb_queue_empty_lockless()
+ - net: use skb_queue_empty_lockless() in poll() handlers
+ - net: use skb_queue_empty_lockless() in busy poll contexts
+ - net: add READ_ONCE() annotation in __skb_wait_for_more_packets()
+ - ipv4: fix route update on metric change.
+ - net/mlx5e: Fix handling of compressed CQEs in case of low NAPI budget
+ - r8169: fix wrong PHY ID issue with RTL8168dp
+ - net/mlx5e: Fix ethtool self test: link speed
+ - [armhf] net: dsa: b53: Do not clear existing mirrored port mask
+ - [armhf] net: phy: bcm7xxx: define soft_reset for 40nm EPHY
+ - net: usb: lan78xx: Connect PHY before registering MAC
+ - [arm64,armhf] net: dsa: fix switch tree list
+ - r8152: add device id for Lenovo ThinkPad USB-C Dock Gen 2
+ - net/flow_dissector: switch to siphash
+ - wireless: Skip directory when generating certificates
+ - [x86] platform/x86: pmc_atom: Add Siemens SIMATIC IPC227E to
+ critclk_systems DMI table
+ - [ppc64el] powerpc/mm: Fixup tlbie vs mtpidr/mtlpidr ordering issue on
+ POWER9
+ - usb: gadget: udc: core: Fix segfault if udc_bind_to_driver() for pending
+ driver fails
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.84
+ - bonding: fix state transition issue in link monitoring
+ - CDC-NCM: handle incomplete transfer of MTU
+ - ipv4: Fix table id reference in fib_sync_down_addr
+ - [mips*] net: ethernet: octeon_mgmt: Account for second possible VLAN
+ header
+ - net: fix data-race in neigh_event_send()
+ - net: usb: qmi_wwan: add support for DW5821e with eSIM support
+ - nfc: netlink: fix double device reference drop
+ - qede: fix NULL pointer deref in __qede_remove()
+ - ipv6: fixes rt6_probe() and fib6_nh->last_probe init
+ - [arm64] net: hns: Fix the stray netpoll locks causing deadlock in NAPI
+ path
+ - ALSA: timer: Fix incorrectly assigned timer instance
+ - ALSA: bebob: fix to detect configured source of sampling clock for
+ Focusrite Saffire Pro i/o series
+ - ALSA: hda/ca0132 - Fix possible workqueue stall
+ - mm: memcontrol: fix network errors from failing __GFP_ATOMIC charges
+ - mm, meminit: recalculate pcpu batch and high limits after init completes
+ - mm: thp: handle page cache THP correctly in PageTransCompoundMap
+ - mm, vmstat: hide /proc/pagetypeinfo from normal users
+ - dump_stack: avoid the livelock of the dump_lock
+ - perf tools: Fix time sorting
+ - drm/radeon: fix si_enable_smc_cac() failed issue
+ - HID: wacom: generic: Treat serial number and related fields as unsigned
+ - [arm64] Do not mask out PTE_RDONLY in pte_same()
+ - ceph: fix use-after-free in __ceph_remove_cap()
+ - ceph: add missing check in d_revalidate snapdir handling
+ - [armhf] sunxi: Fix CPU powerdown on A83T
+ - netfilter: nf_tables: Align nft_expr private data to 64-bit
+ - netfilter: ipset: Fix an error code in ip_set_sockfn_get()
+ - [x86] intel_th: pci: Add Comet Lake PCH support
+ - [x86] intel_th: pci: Add Jasper Lake PCH support
+ - [x86] apic/32: Avoid bogus LDR warnings
+ - SMB3: Fix persistent handles reconnect
+ - can: usb_8dev: fix use-after-free on disconnect
+ - [armhf] can: flexcan: disable completely the ECC mechanism
+ - can: peak_usb: fix a potential out-of-sync while decoding packets
+ - can: rx-offload: can_rx_offload_queue_sorted(): fix error handling,
+ avoid skb mem leak
+ - can: gs_usb: gs_can_open(): prevent memory leak (CVE-2019-19052)
+ - can: dev: add missing of_node_put() after calling of_get_child_by_name()
+ - can: mcba_usb: fix use-after-free on disconnect
+ - can: peak_usb: fix slab info leak
+ - configfs: stash the data we need into configfs_buffer at open time
+ - configfs_register_group() shouldn't be (and isn't) called in rmdirable
+ parts
+ - configfs: new object reprsenting tree fragments
+ - configfs: provide exclusion between IO and removals
+ - configfs: fix a deadlock in configfs_symlink()
+ - ALSA: usb-audio: More validations of descriptor units
+ - ALSA: usb-audio: Simplify parse_audio_unit()
+ - ALSA: usb-audio: Unify the release of usb_mixer_elem_info objects
+ - ALSA: usb-audio: Remove superfluous bLength checks
+ - ALSA: usb-audio: Clean up check_input_term()
+ - ALSA: usb-audio: Fix possible NULL dereference at
+ create_yamaha_midi_quirk()
+ - ALSA: usb-audio: remove some dead code
+ - ALSA: usb-audio: Fix copy&paste error in the validator
+ - sched/fair: Fix low cpu usage with high throttling by removing
+ expiration of cpu-local slices
+ - sched/fair: Fix -Wunused-but-set-variable warnings
+ - usbip: Fix vhci_urb_enqueue() URB null transfer buffer error path
+ - usbip: Implement SG support to vhci-hcd and stub driver
+ - [arm64,armhf] PCI: tegra: Enable Relaxed Ordering only for Tegra20 &
+ Tegra30
+ - [amd64] HID: intel-ish-hid: fix wrong error handling in
+ ishtp_cl_alloc_tx_ring()
+ - RDMA/mlx5: Clear old rate limit when closing QP
+ - iw_cxgb4: fix ECN check on the passive accept
+ - RDMA/qedr: Fix reported firmware version
+ - net/mlx5e: TX, Fix consumer index of error cqe dump
+ - net/mlx5: prevent memory leak in mlx5_fpga_conn_create_cq
+ (CVE-2019-19045)
+ - scsi: qla2xxx: fixup incorrect usage of host_byte
+ - RDMA/uverbs: Prevent potential underflow
+ - net: openvswitch: free vport unless register_netdevice() succeeds
+ - scsi: lpfc: Honor module parameter lpfc_use_adisc
+ - scsi: qla2xxx: Initialized mailbox to prevent driver load failure
+ - netfilter: nf_flow_table: set timeout before insertion into hashes
+ - ipvs: don't ignore errors in case refcounting ip_vs module fails
+ - ipvs: move old_secure_tcp into struct netns_ipvs
+ - bonding: fix unexpected IFF_BONDING bit unset
+ - macsec: fix refcnt leak in module exit routine
+ - usb: gadget: composite: Fix possible double free memory bug
+ - [arm64] usb: dwc3: pci: prevent memory leak in dwc3_pci_probe
+ (CVE-2019-18813)
+ - usb: gadget: configfs: fix concurrent issue between composite APIs
+ - [arm64,armhf] usb: dwc3: remove the call trace of USBx_GFLADJ
+ - [x86] perf/x86/amd/ibs: Fix reading of the IBS OpData register and thus
+ precise RIP validity
+ - [x86] perf/x86/amd/ibs: Handle erratum #420 only on the affected CPU
+ family (10h)
+ - [x86] perf/x86/uncore: Fix event group support
+ - USB: Skip endpoints with 0 maxpacket length
+ - USB: ldusb: use unsigned size format specifiers
+ - usbip: tools: Fix read_usb_vudc_device() error path handling
+ - RDMA/iw_cxgb4: Avoid freeing skb twice in arp failure case
+ - [arm64] RDMA/hns: Prevent memory leaks of eq->buf_list
+ - scsi: qla2xxx: stop timer in shutdown path
+ - nvme-multipath: fix possible io hang after ctrl reconnect
+ - [amd64] fjes: Handle workqueue allocation failure
+ - [arm64] net: hisilicon: Fix "Trying to free already-free IRQ"
+ - drm/amdgpu: If amdgpu_ib_schedule fails return back the error.
+ - [x86] hv_netvsc: Fix error handling in netvsc_attach()
+ - [arm64,armhf] usb: dwc3: gadget: fix race when disabling ep with
+ cancelled xfers
+ - NFSv4: Don't allow a cached open with a revoked delegation
+ - igb: Fix constant media auto sense switching when no cable is connected
+ - e1000: fix memory leaks
+ - [x86] pinctrl: intel: Avoid potential glitches if pin is in GPIO mode
+ - ocfs2: protect extent tree in ocfs2_prepare_inode_for_write()
+ - [x86] pinctrl: cherryview: Fix irq_valid_mask calculation
+ - blkcg: make blkcg_print_stat() print stats only for online blkgs
+ - [x86] iio: imu: mpu6050: Add support for the ICM 20602 IMU
+ - [x86] iio: imu: inv_mpu6050: fix no data on MPU6050
+ - mm/filemap.c: don't initiate writeback if mapping has no dirty pages
+ - cgroup,writeback: don't switch wbs immediately on dead wbs if the memcg
+ is dead
+ - usbip: Fix free of unallocated memory in vhci tx
+ - netfilter: ipset: Copy the right MAC address in hash:ip,mac IPv6 sets
+ - net: prevent load/store tearing on sk->sk_stamp
+ - [x86] iio: imu: mpu6050: Fix FIFO layout for ICM20602
+ - vsock/virtio: fix sock refcnt holding during the shutdown
+ - x86/cpu: Add Tremont to the cpu vulnerability whitelist
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.85
+ - scsi: core: Handle drivers which set sg_tablesize to zero
+ - ax88172a: fix information leak on short answers
+ - ipmr: Fix skb headroom in ipmr_get_route().
+ - net: gemini: add missed free_netdev
+ - net: usb: qmi_wwan: add support for Foxconn T77W968 LTE modules
+ - slip: Fix memory leak in slip_open error path
+ - ALSA: usb-audio: Fix missing error check at mixer resolution test
+ - ALSA: usb-audio: not submit urb for stopped endpoint
+ - ALSA: usb-audio: Fix incorrect NULL check in create_yamaha_midi_quirk()
+ - ALSA: usb-audio: Fix incorrect size check for processing/extension units
+ - Btrfs: fix log context list corruption after rename exchange operation
+ - Input: ff-memless - kill timer in destroy()
+ - Input: synaptics-rmi4 - fix video buffer size
+ - Input: synaptics-rmi4 - disable the relative position IRQ in the F12
+ driver
+ - Input: synaptics-rmi4 - do not consume more data than we have (F11, F12)
+ - Input: synaptics-rmi4 - clear IRQ enables for F54
+ - Input: synaptics-rmi4 - destroy F54 poller workqueue when removing
+ - IB/hfi1: Ensure full Gen3 speed in a Gen4 system
+ - IB/hfi1: Use a common pad buffer for 9B and 16B packets
+ - i2c: acpi: Force bus speed to 400KHz if a Silead touchscreen is present
+ - ecryptfs_lookup_interpose(): lower_dentry->d_inode is not stable
+ - ecryptfs_lookup_interpose(): lower_dentry->d_parent is not stable either
+ - [armhf] net: ethernet: dwmac-sun8i: Use the correct function in exit path
+ - [x86] iommu/vt-d: Fix QI_DEV_IOTLB_PFSID and QI_DEV_EIOTLB_PFSID macros
+ - mm: mempolicy: fix the wrong return value and potential pages leak of
+ mbind
+ - mm: memcg: switch to css_tryget() in get_mem_cgroup_from_mm()
+ - mm: hugetlb: switch to css_tryget() in hugetlb_cgroup_charge_cgroup()
+ - iio: adc: max9611: explicitly cast gain_selectors
+ - tee: optee: take DT status property into account
+ - ath10k: fix kernel panic by moving pci flush after napi_disable
+ - clk: sunxi-ng: h6: fix PWM gate/reset offset
+ - soundwire: Initialize completion for defer messages
+ - [x86] soundwire: intel: Fix uninitialized adev deref
+ - [arm64] dts: allwinner: a64: Orange Pi Win: Fix SD card node
+ - [arm64] dts: allwinner: a64: Olinuxino: fix DRAM voltage
+ - [arm64] dts: allwinner: a64: NanoPi-A64: Fix DCDC1 voltage
+ - ALSA: pcm: signedness bug in snd_pcm_plug_alloc()
+ - [arm64] soc/tegra: pmc: Fix pad voltage configuration for Tegra186
+ - [arm64] dts: tegra210-p2180: Correct sdmmc4 vqmmc-supply
+ - y2038: make do_gettimeofday() and get_seconds() inline
+ - rtc: sysfs: fix NULL check in rtc_add_groups()
+ - remoteproc/davinci: Use %zx for formating size_t
+ - extcon: cht-wc: Return from default case to avoid warnings
+ - cfg80211: Avoid regulatory restore when COUNTRY_IE_IGNORE is set
+ - ALSA: seq: Do error checks at creating system ports
+ - ath10k: skip resetting rx filter for WCN3990
+ - ath9k: fix tx99 with monitor mode interface
+ - wil6210: drop Rx multicast packets that are looped-back to STA
+ - wil6210: set edma variables only for Talyn-MB devices
+ - wil6210: prevent usage of tx ring 0 for eDMA
+ - wil6210: fix invalid memory access for rx_buff_mgmt debugfs
+ - ath10k: limit available channels via DT ieee80211-freq-limit
+ - ice: Update request resource command to latest specification
+ - ice: Prevent control queue operations during reset
+ - gfs2: Don't set GFS2_RDF_UPTODATE when the lvb is updated
+ - ice: Fix and update driver version string
+ - ASoC: dapm: Don't fail creating new DAPM control on NULL pinctrl
+ - ASoC: dpcm: Properly initialise hw->rate_max
+ - ASoC: meson: axg-fifo: report interrupt request failure
+ - ASoC: AMD: Change MCLK to 48Mhz
+ - pinctrl: ingenic: Probe driver at subsys_initcall
+ - [armhf] dts: exynos: Use i2c-gpio for HDMI-DDC on Arndale
+ - [armhf] dts: exynos: Fix HDMI-HPD line handling on Arndale
+ - [armhf] dts: exynos: Fix sound in Snow-rev5 Chromebook
+ - liquidio: fix race condition in instruction completion processing
+ - [arm64] dts: stratix10: i2c clock running out of spec
+ - [armhf] dts: exynos: Fix regulators configuration on Peach Pi/Pit
+ Chromebooks
+ - i40evf: Validate the number of queues a PF sends
+ - i40e: use correct length for strncpy
+ - i40evf: set IFF_UNICAST_FLT flag for the VF
+ - i40e: Check and correct speed values for link on open
+ - i40evf: Don't enable vlan stripping when rx offload is turned on
+ - i40e: hold the rtnl lock on clearing interrupt scheme
+ - i40evf: cancel workqueue sync for adminq when a VF is removed
+ - i40e: Prevent deleting MAC address from VF when set by PF
+ - IB/rxe: avoid back-to-back retries
+ - IB/rxe: fixes for rdma read retry
+ - iwlwifi: drop packets with bad status in CD
+ - iwlwifi: don't WARN on trying to dump dead firmware
+ - iwlwifi: mvm: avoid sending too many BARs
+ - media: vicodec: fix out-of-range values when decoding
+ - media: i2c: Fix pm_runtime_get_if_in_use() usage in sensor drivers
+ - media: ov772x: Disable clk on error path
+ - rtl8187: Fix warning generated when strncpy() destination length matches
+ the sixe argument
+ - mwifiex: do no submit URB in suspended state
+ - mwifex: free rx_cmd skb in suspended state
+ - brcmfmac: fix wrong strnchr usage
+ - mt76: Fix comparisons with invalid hardware key index
+ - soc: imx: gpc: fix PDN delay
+ - ASoC: rsnd: ssi: Fix issue in dma data address assignment
+ - net: hns3: Fix for multicast failure
+ - net: hns3: Fix error of checking used vlan id
+ - net: hns3: Fix for loopback selftest failed problem
+ - net: hns3: Change the dst mac addr of loopback packet
+ - net/mlx5: Fix atomic_mode enum values
+ - net: phy: mscc: read 'vsc8531,vddmac' as an u32
+ - net: phy: mscc: read 'vsc8531, edge-slowdown' as an u32
+ - [armhf] dts: meson8: fix the clock controller register size
+ - [armhf] dts: meson8b: fix the clock controller register size
+ - mtd: rawnand: marvell: use regmap_update_bits() for syscon access
+ - mtd: rawnand: fsl_ifc: check result of SRAM initialization
+ - mtd: rawnand: fsl_ifc: fixup SRAM init for newer ctrl versions
+ - mtd: rawnand: qcom: don't include dma-direct.h
+ - IB/mlx5: Change TX affinity assignment in RoCE LAG mode
+ - qxl: fix null-pointer crash during suspend
+ - mac80211: fix saving a few HE values
+ - cfg80211: validate wmm rule when setting
+ - f2fs: avoid wrong decrypted data from disk
+ - net: lan78xx: Bail out if lan78xx_get_endpoints fails
+ - rtnetlink: move type calculation out of loop
+ - ASoC: sgtl5000: avoid division by zero if lo_vag is zero
+ - ath10k: avoid possible memory access violation
+ - [armhf] dts: exynos: Disable pull control for S5M8767 PMIC
+ - ath10k: wmi: disable softirq's while calling ieee80211_rx
+ - i2c: mediatek: Use DMA safe buffers for i2c transactions
+ - IB/mlx5: Don't hold spin lock while checking device state
+ - IB/ipoib: Ensure that MTU isn't less than minimum permitted
+ - RDMA/core: Rate limit MAD error messages
+ - RDMA/core: Follow correct unregister order between sysfs and cgroup
+ - udf: Fix crash during mount
+ - ASoC: dapm: Avoid uninitialised variable warning
+ - [x86] ASoC: Intel: hdac_hdmi: Limit sampling rates at dai creation
+ - ata: Disable AHCI ALPM feature for Ampere Computing eMAG SATA
+ - [powerpc] make PowerMac cache node search conditional on CONFIG_PPC_PMAC
+ - [armhf] dts: omap3-gta04: give spi_lcd node a label so that we can
+ overwrite in other DTS files
+ - [armhf] dts: omap3-gta04: fixes for tvout / venc
+ - [armhf] dts: omap3-gta04: tvout: enable as display1 alias
+ - [armhf] dts: omap3-gta04: fix touchscreen tsc2007
+ - [armhf] dts: omap3-gta04: make NAND partitions compatible with recent
+ U-Boot
+ - [armhf] dts: omap3-gta04: keep vpll2 always on
+ - f2fs: submit bio after shutdown
+ - failover: Fix error return code in net_failover_create
+ - sched/debug: Explicitly cast sched_feat() to bool
+ - sched/debug: Use symbolic names for task state constants
+ - firmware: arm_scmi: use strlcpy to ensure NULL-terminated strings
+ - [arm64] dts: rockchip: Fix VCC5V0_HOST_EN on rk3399-sapphire
+ - [armhf] dts: exynos: Disable pull control for PMIC IRQ line on Artik5
+ board
+ - usb: mtu3: disable vbus rise/fall interrupts of ltssm
+ - EDAC, sb_edac: Return early on ADDRV bit and address type test
+ - [armhf] rtc: pl030: fix possible race condition
+ - ath9k: add back support for using active monitor interfaces for tx99
+ - dmaengine: at_xdmac: remove a stray bottom half unlock
+ - RDMA/hns: Fix an error code in hns_roce_v2_init_eq_table()
+ - IB/hfi1: Missing return value in error path for user sdma
+ - signal: Always ignore SIGKILL and SIGSTOP sent to the global init
+ - signal: Properly deliver SIGILL from uprobes
+ - signal: Properly deliver SIGSEGV from x86 uprobes
+ - f2fs: fix memory leak of write_io in fill_super()
+ - f2fs: fix memory leak of percpu counter in fill_super()
+ - f2fs: fix setattr project check upon fssetxattr ioctl
+ - scsi: qla2xxx: Use correct qpair for ABTS/CMD
+ - scsi: qla2xxx: Fix iIDMA error
+ - scsi: qla2xxx: Defer chip reset until target mode is enabled
+ - scsi: qla2xxx: Terminate Plogi/PRLI if WWN is 0
+ - scsi: qla2xxx: Fix deadlock between ATIO and HW lock
+ - scsi: qla2xxx: Increase abort timeout value
+ - scsi: qla2xxx: Check for Register disconnect
+ - scsi: qla2xxx: Fix port speed display on chip reset
+ - scsi: qla2xxx: Fix dropped srb resource.
+ - scsi: qla2xxx: Fix duplicate switch's Nport ID entries
+ - scsi: lpfc: Fix GFT_ID and PRLI logic for RSCN
+ - scsi: lpfc: Correct invalid EQ doorbell write on if_type=6
+ - scsi: lpfc: Fix errors in log messages.
+ - scsi: sym53c8xx: fix NULL pointer dereference panic in sym_int_sir()
+ - [armhf] imx6: register pm_power_off handler if "fsl,pmic-stby-poweroff"
+ is set
+ - scsi: pm80xx: Corrected dma_unmap_sg() parameter
+ - scsi: pm80xx: Fixed system hang issue during kexec boot
+ - kprobes: Don't call BUG_ON() if there is a kprobe in use on free list
+ - net: aquantia: fix hw_atl_utils_fw_upload_dwords
+ - Drivers: hv: vmbus: Fix synic per-cpu context initialization
+ - nvmem: core: return error code instead of NULL from nvmem_device_get
+ - media: dt-bindings: adv748x: Fix decimal unit addresses
+ - [x86] ALSA: hda: Fix implicit definition of pci_iomap() on SH
+ - media: fix: media: pci: meye: validate offset to avoid arbitrary access
+ - media: dvb: fix compat ioctl translation
+ - net: bcmgenet: Fix speed selection for reverse MII
+ - [arm64] dts: meson: libretech: update board model
+ - [arm64] dts: meson-axg: use the proper compatible for ethmac
+ - [x86] ALSA: intel8x0m: Register irq handler after register initializations
+ - [arm64] dts: renesas: salvator-common: adv748x: Override secondary
+ addresses
+ - [arm64] dts: renesas: r8a77965: Attach the SYS-DMAC to the IPMMU
+ - [arm64] dts: renesas: r8a77965: Fix HS-USB compatible
+ - [arm64] dts: renesas: r8a77965: Fix clock/reset for usb2_phy1
+ - pinctrl: at91-pio4: fix has_config check in atmel_pctl_dt_subnode_to_map()
+ - llc: avoid blocking in llc_sap_close()
+ - [armhf] dts: qcom: ipq4019: fix cpu0's qcom,saw2 reg value
+ - [arm64] soc: qcom: wcnss_ctrl: Avoid string overflow
+ - [arm64] dts: broadcom: Fix I2C and SPI bus warnings
+ - [armhf] dts: bcm: Fix SPI bus warnings
+ - [armhf] dts: aspeed: Fix I2C bus warnings
+ - [ppc64el,powerpc*] powerpc/vdso: Correct call frame information
+ - [armhf] dts: socfpga: Fix I2C bus unit-address error
+ - [armhf] dts: sunxi: Fix I2C bus warnings
+ - [armhf] dts: sun9i: Fix I2C bus warnings
+ - android: binder: no outgoing transaction when thread todo has transaction
+ - cxgb4: Fix endianness issue in t4_fwcache()
+ - [arm64] fix for bad_mode() handler to always result in panic
+ - block, bfq: inject other-queue I/O into seeky idle queues on NCQ flash
+ - blok, bfq: do not plug I/O if all queues are weight-raised
+ - [arm64] dts: meson: Fix erroneous SPI bus warnings
+ - power: supply: ab8500_fg: silence uninitialized variable warnings
+ - component: fix loop condition to call unbind() if bind() fails
+ - kernfs: Fix range checks in kernfs_get_target_path
+ - ip_gre: fix parsing gre header in ipgre_err
+ - scsi: ufshcd: Fix NULL pointer dereference for in ufshcd_init
+ - [armhf] dts: rockchip: Fix erroneous SPI bus dtc warnings on rk3036
+ - [arm64] dts: rockchip: Fix I2C bus unit-address error on
+ rk3399-puma-haikou
+ - [x86] ACPI / LPSS: Exclude I2C busses shared with PUNIT from
+ pmc_atom_d3_mask
+ - netfilter: nf_tables: avoid BUG_ON usage
+ - ath9k: Fix a locking bug in ath9k_add_interface()
+ - [s390x] qeth: uninstall IRQ handler on device removal
+ - [s390x] qeth: invoke softirqs after napi_schedule()
+ - media: vsp1: Fix vsp1_regs.h license header
+ - media: vsp1: Fix YCbCr planar formats pitch calculation
+ - media: ov2680: don't register the v4l2 subdevice before checking chip ID
+ - PCI/ACPI: Correct error message for ASPM disabling
+ - net: socionext: Fix two sleep-in-atomic-context bugs in ave_rxfifo_reset()
+ - PCI: mediatek: Fix unchecked return value
+ - [armhf] dts: xilinx: Fix I2C and SPI bus warnings
+ - serial: uartps: Fix suspend functionality
+ - serial: samsung: Enable baud clock for UART reset procedure in resume
+ - serial: mxs-auart: Fix potential infinite loop
+ - tty: serial: qcom_geni_serial: Fix serial when not used as console
+ - [arm64] dts: ti: k3-am65: Change #address-cells and #size-cells of
+ interconnect to 2
+ - samples/bpf: fix a compilation failure
+ - spi: mediatek: Don't modify spi_transfer when transfer.
+ - ASoC: rt5682: Fix the boost volume at the begining of playback
+ - ipmi_si_pci: fix NULL device in ipmi_si error message
+ - ipmi_si: fix potential integer overflow on large shift
+ - ipmi:dmi: Ignore IPMI SMBIOS entries with a zero base address
+ - ipmi: fix return value of ipmi_set_my_LUN
+ - net: hns3: fix return type of ndo_start_xmit function
+ - net: cavium: fix return type of ndo_start_xmit function
+ - net: ibm: fix return type of ndo_start_xmit function
+ - [ppc64el,powerpc*] iommu: Avoid derefence before pointer check
+ - [ppc64el,powerpc*] selftests: Do not fail with reschedule
+ - [ppc64el,powerpc64] hash: Fix stab_rr off by one initialization
+ - [ppc64el,powerpc64] pseries/memory-hotplug: Only update DT once per memory
+ DLPAR request
+ - [ppc64el,powerpc64] pseries: Disable CPU hotplug across migrations
+ - [ppc64el,powerpc*] Fix duplicate const clang warning in user access code
+ - RDMA/i40iw: Fix incorrect iterator type
+ - OPP: Protect dev_list with opp_table lock
+ - of/unittest: Fix I2C bus unit-address error
+ - libfdt: Ensure INT_MAX is defined in libfdt_env.h
+ - power: supply: twl4030_charger: fix charging current out-of-bounds
+ - power: supply: twl4030_charger: disable eoc interrupt on linear charge
+ - net: mvpp2: fix the number of queues per cpu for PPv2.2
+ - net: marvell: fix return type of ndo_start_xmit function
+ - net: toshiba: fix return type of ndo_start_xmit function
+ - net: xilinx: fix return type of ndo_start_xmit function
+ - net: broadcom: fix return type of ndo_start_xmit function
+ - net: amd: fix return type of ndo_start_xmit function
+ - net: sun: fix return type of ndo_start_xmit function
+ - net: hns3: Fix for setting speed for phy failed problem
+ - net: hns3: Fix cmdq registers initialization issue for vf
+ - net: hns3: Clear client pointer when initialize client failed or
+ unintialize finished
+ - net: hns3: Fix client initialize state issue when roce client
+ initialize failed
+ - net: hns3: Fix parameter type for q_id in hclge_tm_q_to_qs_map_cfg()
+ - nfp: provide a better warning when ring allocation fails
+ - usb: chipidea: imx: enable OTG overcurrent in case USB subsystem is
+ already started
+ - usb: chipidea: Fix otg event handler
+ - usb: usbtmc: Fix ioctl USBTMC_IOCTL_ABORT_BULK_OUT
+ - [s390x] zcrypt: enable AP bus scan without a valid default domain
+ - [s390x] vdso: avoid 64-bit vdso mapping for compat tasks
+ - [s390x] vdso: correct CFI annotations of vDSO functions
+ - brcmfmac: increase buffer for obtaining firmware capabilities
+ - brcmsmac: Use kvmalloc() for ucode allocations
+ - mlxsw: spectrum: Init shaper for TCs 8..15
+ - PCI: portdrv: Initialize service drivers directly
+ - [armhf] dts: am335x-evm: fix number of cpsw
+ - [armhf] dts: ti: Fix SPI and I2C bus warnings
+ - f2fs: avoid infinite loop in f2fs_alloc_nid
+ - f2fs: fix to recover inode's uid/gid during POR
+ - [armhf] dts: ux500: Correct SCU unit address
+ - [armhf] dts: ux500: Fix LCDA clock line muxing
+ - [armhf] dts: ste: Fix SPI controller node names
+ - spi: pic32: Use proper enum in dmaengine_prep_slave_rg
+ - crypto: chacha20 - Fix chacha20_block() keystream alignment (again)
+ - cpufeature: avoid warning when compiling with clang
+ - [armhf] crypto: crc32 - avoid warning when compiling with Clang
+ - [armel] dts: marvell: Fix SPI and I2C bus warnings
+ - [x86] mce-inject: Reset injection struct after injection
+ - [armhf,arm64] dts: clearfog: fix sdhci supply property name
+ - bnx2x: Ignore bandwidth attention in single function mode
+ - PCI/AER: Take reference on error devices
+ - PCI/AER: Don't read upstream ports below fatal errors
+ - PCI/ERR: Use slot reset if available
+ - samples/bpf: fix compilation failure
+ - net: phy: mdio-bcm-unimac: Allow configuring MDIO clock divider
+ - net: micrel: fix return type of ndo_start_xmit function
+ - net: freescale: fix return type of ndo_start_xmit function
+ - [x86] CPU: Use correct macros for Cyrix calls
+ - [x86] CPU: Change query logic so CPUID is enabled before testing
+ - EDAC: Correct DIMM capacity unit symbol
+ - [mips*] kexec: Relax memory restriction
+ - [arm64] dts: rockchip: Fix microSD in rk3399 sapphire board
+ - mlxsw: Make MLXSW_SP1_FWREV_MINOR a hard requirement
+ - media: imx: work around false-positive warning, again
+ - media: pci: ivtv: Fix a sleep-in-atomic-context bug in ivtv_yuv_init()
+ - media: au0828: Fix incorrect error messages
+ - media: davinci: Fix implicit enum conversion warning
+ - [armhf] dts: rockchip: explicitly set vcc_sd0 pin to gpio on
+ rk3188-radxarock
+ - usb: gadget: uvc: configfs: Drop leaked references to config items
+ - usb: gadget: uvc: configfs: Prevent format changes after linking header
+ - usb: gadget: uvc: configfs: Sort frame intervals upon writing
+ - [armhf] dts: exynos: Correct audio subsystem parent clock on Peach
+ Chromebooks
+ - i2c: aspeed: fix invalid clock parameters for very large divisors
+ - gpiolib: Fix gpio_direction_* for single direction GPIOs
+ - phy: brcm-sata: allow PHY_BRCM_SATA driver to be built for DSL SoCs
+ - phy: renesas: rcar-gen3-usb2: fix vbus_ctrl for role sysfs
+ - phy: phy-twl4030-usb: fix denied runtime access
+ - [armhf] dts: imx6ull: update vdd_soc voltage for 900MHz operating point
+ - usb: gadget: uvc: Factor out video USB request queueing
+ - usb: gadget: uvc: Only halt video streaming endpoint in bulk mode
+ - coresight: Use ERR_CAST instead of ERR_PTR
+ - coresight: Fix handling of sinks
+ - coresight: perf: Fix per cpu path management
+ - coresight: perf: Disable trace path upon source error
+ - coresight: tmc-etr: Handle driver mode specific ETR buffers
+ - coresight: etm4x: Configure EL2 exception level when kernel is running
+ in HYP
+ - coresight: tmc: Fix byte-address alignment for RRP
+ - coresight: dynamic-replicator: Handle multiple connections
+ - slimbus: ngd: register ngd driver only once.
+ - slimbus: ngd: return proper error code instead of zero
+ - silmbus: ngd: register controller after power up.
+ - misc: kgdbts: Fix restrict error
+ - misc: genwqe: should return proper error value.
+ - vmbus: keep pointer to ring buffer page
+ - vfio/pci: Fix potential memory leak in vfio_msi_cap_len
+ - vfio/pci: Mask buggy SR-IOV VF INTx support
+ - iw_cxgb4: Use proper enumerated type in c4iw_bar2_addrs
+ - scsi: libsas: always unregister the old device if going to discover new
+ - f2fs: fix remount problem of option io_bits
+ - phy: lantiq: Fix compile warning
+ - [arm64] dts: fsl: Fix I2C and SPI bus warnings
+ - [armhf] dts: imx51-zii-rdu1: Fix the rtc compatible string
+ - [arm64] tegra: I2C on Tegra194 is not compatible with Tegra114
+ - [armhf] dts: tegra30: fix xcvr-setup-use-fuses
+ - [armhf] dts: tegra20: restore address order
+ - [armhf] tegra: apalis_t30: fix mmc1 cmd pull-up
+ - [armhf] tegra: apalis_t30: fix mcp2515 can controller interrupt polarity
+ - [armhf] tegra: colibri_t30: fix mcp2515 can controller interrupt polarity
+ - [armhf] dts: paz00: fix wakeup gpio keycode
+ - net: smsc: fix return type of ndo_start_xmit function
+ - net: faraday: fix return type of ndo_start_xmit function
+ - PCI/ERR: Run error recovery callbacks for all affected devices
+ - f2fs: update i_size after DIO completion
+ - f2fs: fix to recover inode's project id during POR
+ - f2fs: mark inode dirty explicitly in recover_inode()
+ - RDMA: Fix dependencies for rdma_user_mmap_io
+ - EDAC: Raise the maximum number of memory controllers
+ - firmware: dell_rbu: Make payload memory uncachable
+ - Bluetooth: hci_serdev: clear HCI_UART_PROTO_READY to avoid closing proto
+ races
+ - Bluetooth: L2CAP: Detect if remote is not able to use the whole MPS
+ - Bluetooth: btrsi: fix bt tx timeout issue
+ - [x86] hyperv: Suppress "PCI: Fatal: No config space access function found"
+ - crypto: s5p-sss: Fix race in error handling
+ - crypto: s5p-sss: Fix Fix argument list alignment
+ - crypto: fix a memory leak in rsa-kcs1pad's encryption mode
+ - iwlwifi: dbg: don't crash if the firmware crashes in the middle of a
+ debug dump
+ - iwlwifi: fix non_shared_ant for 22000 devices
+ - iwlwifi: pcie: read correct prph address for newer devices
+ - iwlwifi: api: annotate compressed BA notif array sizes
+ - iwlwifi: pcie: gen2: build A-MSDU only for GSO
+ - iwlwifi: pcie: fit reclaim msg to MAX_MSG_LEN
+ - iwlwifi: mvm: use correct FIFO length
+ - iwlwifi: mvm: Allow TKIP for AP mode
+ - scsi: NCR5380: Clear all unissued commands on host reset
+ - scsi: NCR5380: Have NCR5380_select() return a bool
+ - scsi: NCR5380: Withhold disconnect privilege for REQUEST SENSE
+ - scsi: NCR5380: Use DRIVER_SENSE to indicate valid sense data
+ - scsi: NCR5380: Check for invalid reselection target
+ - scsi: NCR5380: Don't clear busy flag when abort fails
+ - scsi: NCR5380: Don't call dsprintk() following reselection interrupt
+ - scsi: NCR5380: Handle BUS FREE during reselection
+ - scsi: NCR5380: Check for bus reset
+ - [arm64] dts: amd: Fix SPI bus warnings
+ - [arm64] dts: lg: Fix SPI controller node names
+ - rtc: isl1208: avoid possible sysfs race
+ - rtc: tx4939: fixup nvmem name and register size
+ - rtc: armada38x: fix possible race condition
+ - netfilter: masquerade: don't flush all conntracks if only one address
+ deleted on device
+ - usb: xhci-mtk: fix ISOC error when interval is zero
+ - usb: usbtmc: uninitialized symbol 'actual' in usbtmc_ioctl_clear
+ - fuse: use READ_ONCE on congestion_threshold and max_background
+ - IB/iser: Fix possible NULL deref at iser_inv_desc()
+ - media: ov2680: fix null dereference at power on
+ - [s390x] vdso: correct vdso mapping for compat tasks
+ - net: phy: mdio-bcm-unimac: mark PM functions as __maybe_unused
+ - memfd: Use radix_tree_deref_slot_protected to avoid the warning.
+ - slcan: Fix memory leak in error path
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.86
+ - spi: mediatek: use correct mata->xfer_len when in fifo transfer
+ - i2c: mediatek: modify threshold passed to i2c_get_dma_safe_msg_buf()
+ - tee: optee: add missing of_node_put after of_device_is_available
+ - Revert "OPP: Protect dev_list with opp_table lock"
+ - net: cdc_ncm: Signedness bug in cdc_ncm_set_dgram_size()
+ - idr: Fix idr_get_next race with idr_remove
+ - mm/memory_hotplug: don't access uninitialized memmaps in
+ shrink_pgdat_span()
+ - mm/memory_hotplug: fix updating the node span
+ - [arm64] uaccess: Ensure PAN is re-enabled after unhandled uaccess fault
+ - fbdev: Ditch fb_edid_add_monspecs
+ - [i386] bpf, x32: Fix bug for BPF_ALU64 | BPF_NEG
+ - [i386] bpf, x32: Fix bug with ALU64 {LSH, RSH, ARSH} BPF_X shift by 0
+ - [i386] bpf, x32: Fix bug with ALU64 {LSH, RSH, ARSH} BPF_K shift by 0
+ - [i386] bpf, x32: Fix bug for BPF_JMP | {BPF_JSGT, BPF_JSLE, BPF_JSLT,
+ BPF_JSGE}
+ - net: ovs: fix return type of ndo_start_xmit function
+ - net: xen-netback: fix return type of ndo_start_xmit function
+ - [armhf] dts: dra7: Enable workaround for errata i870 in PCIe host mode
+ - [armhf] dts: omap5: enable OTG role for DWC3 controller
+ - [arm64] net: hns3: Fix for netdev not up problem when setting mtu
+ - [arm64] net: hns3: Fix loss of coal configuration while doing reset
+ - f2fs: return correct errno in f2fs_gc
+ - [armhf] dts: sun8i: h3-h5: ir register size should be the whole memory
+ block
+ - [armhf] dts: sun8i: h3: bpi-m2-plus: Fix address for external RGMII
+ Ethernet PHY
+ - tcp: up initial rmem to 128KB and SYN rwin to around 64KB
+ - SUNRPC: Fix priority queue fairness
+ - ACPI / LPSS: Make acpi_lpss_find_device() also find PCI devices
+ - ACPI / LPSS: Resume BYT/CHT I2C controllers from resume_noirq
+ - f2fs: keep lazytime on remount
+ - IB/hfi1: Error path MAD response size is incorrect
+ - IB/hfi1: Ensure ucast_dlid access doesnt exceed bounds
+ - mt76x2: fix tx power configuration for VHT mcs 9
+ - mt76x2: disable WLAN core before probe
+ - mt76: fix handling ps-poll frames
+ - [arm64,armhf] iommu/io-pgtable-arm: Fix race handling in split_blk_unmap()
+ - [arm64,armhf] iommu/arm-smmu-v3: Fix unexpected CMD_SYNC timeout
+ - [arm64,armhf] kvm: Fix stage2_flush_memslot for 4 level page table
+ - [arm64] numa: Report correct memblock range for the dummy node
+ - ath10k: fix vdev-start timeout on error
+ - rtlwifi: btcoex: Use proper enumerated types for Wi-Fi only interface
+ - ata: ahci_brcm: Allow using driver or DSL SoCs
+ - PM / devfreq: Fix devfreq_add_device() when drivers are built as modules.
+ - PM / devfreq: Fix handling of min/max_freq == 0
+ - PM / devfreq: stopping the governor before device_unregister()
+ - ath9k: fix reporting calculated new FFT upper max
+ - selftests/tls: Fix recv(MSG_PEEK) & splice() test cases
+ - usb: gadget: udc: fotg210-udc: Fix a sleep-in-atomic-context bug in
+ fotg210_get_status()
+ - usb: dwc3: gadget: Check ENBLSLPM before sending ep command
+ - nl80211: Fix a GET_KEY reply attribute
+ - [arm64,armhf] irqchip/irq-mvebu-icu: Fix wrong private data retrieval
+ - watchdog: core: fix null pointer dereference when releasing cdev
+ - watchdog: w83627hf_wdt: Support NCT6796D, NCT6797D, NCT6798D
+ - [ppc64el,powerpc64] Inform the userspace about TCE update failures
+ - printk: Do not miss new messages when replaying the log
+ - printk: CON_PRINTBUFFER console registration is a bit racy
+ - dmaengine: ep93xx: Return proper enum in ep93xx_dma_chan_direction
+ - dmaengine: timb_dma: Use proper enum in td_prep_slave_sg
+ - [x86] ALSA: hda: Fix mismatch for register mask and value in ext
+ controller.
+ - ext4: fix build error when DX_DEBUG is defined
+ - clk: keystone: Enable TISCI clocks if K3_ARCH
+ - sunrpc: Fix connect metrics
+ - [x86] PCI: Apply VMD's AERSID fixup generically
+ - mei: samples: fix a signedness bug in amt_host_if_call()
+ - cxgb4: Use proper enum in cxgb4_dcb_handle_fw_update
+ - cxgb4: Use proper enum in IEEE_FAUX_SYNC
+ - [ppc64el,powerpc*] Fix DTL buffer registration
+ - [ppc64el,powerpc*] Fix how we iterate over the DTL entries
+ - [ppc64el,powerpc*] xive: Move a dereference below a NULL test
+ - mtd: rawnand: sh_flctl: Use proper enum for flctl_dma_fifo0_transfer
+ - PM / hibernate: Check the success of generating md5 digest before
+ hibernation
+ - tools: PCI: Fix compilation warnings
+ - ice: Fix forward to queue group logic
+ - md: allow metadata updates while suspending an array - fix
+ - ixgbe: Fix ixgbe TX hangs with XDP_TX beyond queue limit
+ - i40e: Use proper enum in i40e_ndo_set_vf_link_state
+ - ixgbe: Fix crash with VFs and flow director on interface flap
+ - IB/mthca: Fix error return code in __mthca_init_one()
+ - IB/rxe: avoid srq memory leak
+ - RDMA/hns: Bugfix for reserved qp number
+ - RDMA/hns: Submit bad wr when post send wr exception
+ - RDMA/hns: Bugfix for CM test
+ - RDMA/hns: Limit the size of extend sge of sq
+ - IB/mlx4: Avoid implicit enumerated type conversion
+ - rpmsg: glink: smem: Support rx peak for size less than 4 bytes
+ - msm/gpu/a6xx: Force of_dma_configure to setup DMA for GMU
+ - OPP: Return error on error from dev_pm_opp_get_opp_count()
+ - ACPICA: Never run _REG on system_memory and system_IO
+ - cpuidle: menu: Fix wakeup statistics updates for polling state
+ - ASoC: qdsp6: q6asm-dai: checking NULL vs IS_ERR()
+ - [ppc64el,powerpc*] time: Use clockevents_register_device(), fixing an
+ issue with large decrementer
+ - [ppc64el,powerpc64] radix: Explicitly flush ERAT with local LPID
+ invalidation
+ - ata: ep93xx: Use proper enums for directions
+ - qed: Avoid implicit enum conversion in qed_ooo_submit_tx_buffers
+ - media: rc: ir-rc6-decoder: enable toggle bit for Kathrein RCU-676 remote
+ - media: pxa_camera: Fix check for pdev->dev.of_node
+ - media: rcar-vin: fix redeclaration of symbol
+ - media: i2c: adv748x: Support probing a single output
+ - [x86] ALSA: hda/sigmatel - Disable automute for Elo VuPoint
+ - bnxt_en: return proper error when FW returns
+ HWRM_ERR_CODE_RESOURCE_ACCESS_DENIED
+ - [ppc64el,powerpc64] Book3S PR: Exiting split hack mode needs to fixup both
+ PC and LR
+ - USB: serial: cypress_m8: fix interrupt-out transfer length
+ - usb: dwc2: disable power_down on rockchip devices
+ - mtd: physmap_of: Release resources on error
+ - cpu/SMT: State SMT is disabled even with nosmt and without "=force"
+ - brcmfmac: reduce timeout for action frame scan
+ - brcmfmac: fix full timeout waiting for action frame on-channel tx
+ - qtnfmac: request userspace to do OBSS scanning if FW can not
+ - qtnfmac: pass sgi rate info flag to wireless core
+ - qtnfmac: inform wireless core about supported extended capabilities
+ - qtnfmac: drop error reports for out-of-bounds key indexes
+ - [armhf] clk: samsung: Use NOIRQ stage for Exynos5433 clocks suspend/resume
+ - [armhf] clk: samsung: exynos5420: Define CLK_SECKEY gate clock only or
+ Exynos5420
+ - [armhf] clk: samsung: Use clk_hw API for calling clk framework from
+ clk notifiers
+ - printk: Correct wrong casting
+ - NFSv4.x: fix lock recovery during delegation recall
+ - dmaengine: ioat: fix prototype of ioat_enumerate_channels
+ - media: ov5640: fix framerate update
+ - media: cec-gpio: select correct Signal Free Time
+ - gfs2: slow the deluge of io error messages
+ - i2c: omap: use core to detect 'no zero length' quirk
+ - i2c: qup: use core to detect 'no zero length' quirk
+ - i2c: tegra: use core to detect 'no zero length' quirk
+ - i2c: zx2967: use core to detect 'no zero length' quirk
+ - Input: st1232 - set INPUT_PROP_DIRECT property
+ - Input: silead - try firmware reload after unsuccessful resume
+ - soc: fsl: bman_portals: defer probe after bman's probe
+ - net: hns3: Fix for rx vlan id handle to support Rev 0x21 hardware
+ - tc-testing: fix build of eBPF programs
+ - remoteproc: Check for NULL firmwares in sysfs interface
+ - remoteproc: qcom: q6v5: Fix a race condition on fatal crash
+ - kexec: Allocate decrypted control pages for kdump if SME is enabled
+ - [x86] olpc: Fix build error with CONFIG_MFD_CS5535=m
+ - dmaengine: rcar-dmac: set scatter/gather max segment size
+ - xfrm: use correct size to initialise sp->ovec
+ - ACPI / SBS: Fix rare oops when removing modules
+ - iwlwifi: mvm: don't send keys when entering D3
+ - xsk: proper AF_XDP socket teardown ordering
+ - [amd64] fsgsbase: Fix ptrace() to read the FS/GS base accurately
+ - mmc: renesas_sdhi_internal_dmac: Whitelist r8a774a1
+ - mmc: tmio: Fix SCC error detection
+ - mmc: renesas_sdhi_internal_dmac: set scatter/gather max segment size
+ - fbdev: sbuslib: use checked version of put_user()
+ - fbdev: sbuslib: integer overflow in sbusfb_ioctl_helper()
+ - fbdev: fix broken menu dependencies
+ - reset: Fix potential use-after-free in __of_reset_control_get()
+ - bcache: account size of buckets used in uuid write to
+ ca->meta_sectors_written
+ - bcache: recal cached_dev_sectors on detach
+ - [x86] platform: mlx-platform: Properly use mlxplat_mlxcpld_msn201x_items
+ - media: dw9714: Fix error handling in probe function
+ - media: dw9807-vcm: Fix probe error handling
+ - media: cx18: Don't check for address of video_dev
+ - mtd: spi-nor: cadence-quadspi: Use proper enum for dma_[un]map_single
+ - mtd: devices: m25p80: Make sure WRITE_EN is issued before each write
+ - [x86] intel_rdt: Introduce utility to obtain CDP peer
+ - [x86] intel_rdt: CBM overlap should also check for overlap with CDP peer
+ - mmc: mmci: expand startbiterr to irqmask and error check
+ - [s390x] kasan: avoid vdso instrumentation
+ - [s390x] kasan: avoid instrumentation of early C code
+ - [s390x] kasan: avoid user access code instrumentation
+ - [i386] proc/vmcore: Fix i386 build error of missing
+ copy_oldmem_page_encrypted()
+ - backlight: lm3639: Unconditionally call led_classdev_unregister
+ - mfd: ti_am335x_tscadc: Keep ADC interface on if child is wakeup capable
+ - printk: Give error on attempt to set log buffer length to over 2G
+ - media: isif: fix a NULL pointer dereference bug
+ - GFS2: Flush the GFS2 delete workqueue before stopping the kernel threads
+ - media: cx231xx: fix potential sign-extension overflow on large shift
+ - media: venus: vdec: fix decoded data size
+ - [x86] ALSA: hda/ca0132 - Fix input effect controls for desktop cards
+ - lightnvm: pblk: fix rqd.error return value in pblk_blk_erase_sync
+ - lightnvm: pblk: fix incorrect min_write_pgs
+ - lightnvm: pblk: guarantee emeta on line close
+ - lightnvm: pblk: fix write amplificiation calculation
+ - lightnvm: pblk: guarantee mw_cunits on read buffer
+ - lightnvm: do no update csecs and sos on 1.2
+ - lightnvm: pblk: fix error handling of pblk_lines_init()
+ - lightnvm: pblk: consider max hw sectors supported for max_write_pgs
+ - [x86] kexec: Correct KEXEC_BACKUP_SRC_END off-by-one error
+ - bpf: btf: Fix a missing check bug
+ - net: fix generic XDP to handle if eth header was mangled
+ - gpio: syscon: Fix possible NULL ptr usage
+ - spi: fsl-lpspi: Prevent FIFO under/overrun by default
+ - pinctrl: gemini: Mask and set properly
+ - spi: spidev: Fix OF tree warning logic
+ - [armel,armhf] 8802/1: Call syscall_trace_exit even when system call
+ skipped
+ - [x86] mm: Do not warn about PCI BIOS W+X mappings
+ - orangefs: rate limit the client not running info message
+ - pinctrl: gemini: Fix up TVC clock group
+ - scsi: arcmsr: clean up clang warning on extraneous parentheses
+ - [x86] hwmon: (k10temp) Support all Family 15h Model 6xh and Model 7xh
+ processors
+ - hwmon: (nct6775) Fix names of DIMM temperature sources
+ - hwmon: (pwm-fan) Silence error on probe deferral
+ - hwmon: (ina3221) Fix INA3221_CONFIG_MODE macros
+ - hwmon: (npcm-750-pwm-fan) Change initial pwm target to 255
+ - selftests: forwarding: Have lldpad_app_wait_set() wait for unknown, too
+ - net: sched: avoid writing on noop_qdisc
+ - netfilter: nft_compat: do not dump private area
+ - misc: cxl: Fix possible null pointer dereference
+ - mac80211: minstrel: fix using short preamble CCK rates on HT clients
+ - mac80211: minstrel: fix CCK rate group streams value
+ - mac80211: minstrel: fix sampling/reporting of CCK rates in HT mode
+ - spi: rockchip: initialize dma_slave_config properly
+ - mlxsw: spectrum_switchdev: Check notification relevance based on upper
+ device
+ - [armhf] dts: omap5: Fix dual-role mode on Super-Speed port
+ - tcp: start receiver buffer autotuning sooner
+ - ACPI / LPSS: Use acpi_lpss_* instead of acpi_subsys_* functions for
+ hibernate
+ - PM / devfreq: Fix static checker warning in try_then_request_governor
+ - tools: PCI: Fix broken pcitest compilation
+ - [ppc64el,powerpc*] time: Fix clockevent_decrementer initalisation for
+ PR KVM
+ - mmc: tmio: fix SCC error handling to avoid false positive CRC error
+ - [x86] resctrl: Fix rdt_find_domain() return value and checks
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.87
+ - mlxsw: spectrum_router: Fix determining underlay for a GRE tunnel
+ - net/mlx4_en: fix mlx4 ethtool -N insertion
+ - net/mlx4_en: Fix wrong limitation for number of TX rings
+ - net: rtnetlink: prevent underflows in do_setvfinfo()
+ - net/sched: act_pedit: fix WARN() in the traffic path
+ - net: sched: ensure opts_len <= IP_TUNNEL_OPTS_MAX in act_tunnel_key
+ - sfc: Only cancel the PPS workqueue if it exists
+ - net/mlx5e: Fix set vf link state error flow
+ - net/mlxfw: Verify FSM error code translation doesn't exceed array size
+ - net/mlx5: Fix auto group size calculation
+ - vhost/vsock: split packets to send using multiple buffers
+ - gpio: max77620: Fixup debounce delays
+ - tools: gpio: Correctly add make dependencies for gpio_utils
+ - nbd:fix memory leak in nbd_get_socket()
+ - virtio_console: allocate inbufs in add_port() only if it is needed
+ - Revert "fs: ocfs2: fix possible null-pointer dereferences in
+ ocfs2_xa_prepare_entry()"
+ - mm/ksm.c: don't WARN if page is still mapped in remove_stable_node()
+ - [x86] drm/amd/powerplay: issue no PPSMC_MSG_GetCurrPkgPwr on unsupported
+ ASICs
+ - [x86] drm/i915/pmu: "Frequency" is reported as accumulated cycles
+ - [x86] drm/i915/userptr: Try to acquire the page lock around
+ set_page_dirty()
+ - mwifiex: Fix NL80211_TX_POWER_LIMITED
+ - ALSA: isight: fix leak of reference to firewire unit in error path of
+ .probe callback
+ - crypto: testmgr - fix sizeof() on COMP_BUF_SIZE
+ - printk: lock/unlock console only for new logbuf entries
+ - printk: fix integer overflow in setup_log_buf()
+ - pinctrl: madera: Fix uninitialized variable bug in madera_mux_set_mux
+ - PCI: cadence: Write MSI data with 32bits
+ - gfs2: Fix marking bitmaps non-full
+ - pty: fix compat ioctls
+ - synclink_gt(): fix compat_ioctl()
+ - [ppc64] Fix signedness bug in update_flash_db()
+ - [powerpc] boot: Fix opal console in boot wrapper
+ - [ppc64*,powerpc] boot: Disable vector instructions
+ - [ppc64*,powerpc] eeh: Fix null deref for devices removed during EEH
+ - [ppc64*,powerpc] eeh: Fix use of EEH_PE_KEEP on wrong field
+ - EDAC, thunderx: Fix memory leak in thunderx_l2c_threaded_isr()
+ - mt76: do not store aggregation sequence number for null-data frames
+ - mt76x0: phy: fix restore phase in mt76x0_phy_recalibrate_after_assoc
+ - brcmsmac: AP mode: update beacon when TIM changes
+ - ath10k: set probe request oui during driver start
+ - ath10k: allocate small size dma memory in ath10k_pci_diag_write_mem
+ - skd: fixup usage of legacy IO API
+ - cdrom: don't attempt to fiddle with cdo->capability
+ - spi: sh-msiof: fix deferred probing
+ - mmc: mediatek: fill the actual clock for mmc debugfs
+ - mmc: mediatek: fix cannot receive new request when msdc_cmd_is_ready fail
+ - PCI: mediatek: Fix class type for MT7622 to PCI_CLASS_BRIDGE_PCI
+ - btrfs: defrag: use btrfs_mod_outstanding_extents in
+ cluster_pages_for_defrag
+ - btrfs: handle error of get_old_root
+ - gsmi: Fix bug in append_to_eventlog sysfs handler
+ - misc: mic: fix a DMA pool free failure
+ - w1: IAD Register is yet readable trough iad sys file. Fix snprintf (%u
+ for unsigned, count for max size).
+ - [m68k] fix command-line parsing when passed from u-boot
+ - RDMA/bnxt_re: Avoid NULL check after accessing the pointer
+ - RDMA/bnxt_re: Fix qp async event reporting
+ - RDMA/bnxt_re: Avoid resource leak in case the NQ registration fails
+ - pinctrl: sunxi: Fix a memory leak in 'sunxi_pinctrl_build_state()'
+ - pwm: lpss: Only set update bit if we are actually changing the settings
+ - amiflop: clean up on errors during setup
+ - qed: Align local and global PTT to propagate through the APIs.
+ - scsi: ips: fix missing break in switch
+ - nfp: bpf: protect against mis-initializing atomic counters
+ - [x86] KVM: nVMX: reset cache/shadows when switching loaded VMCS
+ - [x86] KVM: nVMX: move check_vmentry_postreqs() call to
+ nested_vmx_enter_non_root_mode()
+ - [x86] KVM: Fix invvpid and invept register operand size in 64-bit mode
+ - clk: tegra: Fixes for MBIST work around
+ - scsi: isci: Use proper enumerated type in atapi_d2h_reg_frame_handler
+ - scsi: isci: Change sci_controller_start_task's return type to sci_status
+ - scsi: bfa: Avoid implicit enum conversion in bfad_im_post_vendor_event
+ - scsi: iscsi_tcp: Explicitly cast param in iscsi_sw_tcp_host_get_param
+ - nvmet: avoid integer overflow in the discard code
+ - nvmet-fcloop: suppress a compiler warning
+ - nvme-pci: fix hot removal during error handling
+ - PCI: mediatek: Fixup MSI enablement logic by enabling MSI before clocks
+ - clk: mmp2: fix the clock id for sdh2_clk and sdh3_clk
+ - ASoC: tegra_sgtl5000: fix device_node refcounting
+ - scsi: dc395x: fix dma API usage in srb_done
+ - scsi: dc395x: fix DMA API usage in sg_update_list
+ - scsi: zorro_esp: Limit DMA transfers to 65535 bytes
+ - net: dsa: mv88e6xxx: Fix 88E6141/6341 2500mbps SERDES speed
+ - net: fix warning in af_unix
+ - xfs: fix use-after-free race in xfs_buf_rele
+ - xfs: clear ail delwri queued bufs on unmount of shutdown fs
+ - kprobes, x86/ptrace.h: Make regs_get_kernel_stack_nth() not fault on
+ bad stack
+ - ACPI / scan: Create platform device for INT33FE ACPI nodes
+ - PM / Domains: Deal with multiple states but no governor in genpd
+ - ALSA: i2c/cs8427: Fix int to char conversion
+ - macintosh/windfarm_smu_sat: Fix debug output
+ - PCI: vmd: Detach resources after stopping root bus
+ - USB: misc: appledisplay: fix backlight update_status return code
+ - usbip: tools: fix atoi() on non-null terminated string
+ - sctp: use sk_wmem_queued to check for writable space
+ - dm raid: avoid bitmap with raid4/5/6 journal device
+ - selftests/bpf: fix file resource leak in load_kallsyms
+ - SUNRPC: Fix a compile warning for cmpxchg64()
+ - sunrpc: safely reallow resvport min/max inversion
+ - atm: zatm: Fix empty body Clang warnings
+ - [s390x] perf: Return error when debug_register fails
+ - swiotlb: do not panic on mapping failures
+ - spi: omap2-mcspi: Set FIFO DMA trigger level to word length
+ - [x86] intel_rdt: Prevent pseudo-locking from using stale pointers
+ - sparc: Fix parport build warnings.
+ - [ppc64*,powerpc] pseries: Export raw per-CPU VPA data via debugfs
+ - [ppc64*,powerpc] mm/radix: Fix off-by-one in split mapping logic
+ - [ppc64*,powerpc] mm/radix: Fix overuse of small pages in splitting logic
+ - [ppc64*,powerpc] mm/radix: Fix small page at boundary when splitting
+ - [ppc64*] radix: Fix radix__flush_tlb_collapsed_pmd double flushing pmd
+ - selftests/bpf: fix return value comparison for tests in test_libbpf.sh
+ - tools: bpftool: fix completion for "bpftool map update"
+ - ceph: fix dentry leak in ceph_readdir_prepopulate
+ - ceph: only allow punch hole mode in fallocate
+ - thermal: armada: fix a test in probe()
+ - f2fs: fix to spread clear_cold_data()
+ - f2fs: spread f2fs_set_inode_flags()
+ - mISDN: Fix type of switch control variable in ctrl_teimanager
+ - qlcnic: fix a return in qlcnic_dcb_get_capability()
+ - net: ethernet: ti: cpsw: unsync mcast entries while switch promisc mode
+ - mfd: arizona: Correct calling of runtime_put_sync
+ - mfd: mc13xxx-core: Fix PMIC shutdown when reading ADC values
+ - [x86] mfd: intel_soc_pmic_bxtwc: Chain power button IRQs as well
+ - mfd: max8997: Enale irq-wakeup unconditionally
+ - net: socionext: Stop PHY before resetting netsec
+ - fs/cifs: fix uninitialised variable warnings
+ - spi: uniphier: fix incorrect property items
+ - selftests/ftrace: Fix to test kprobe $comm arg only if available
+ - selftests: watchdog: fix message when /dev/watchdog open fails
+ - selftests: watchdog: Fix error message.
+ - selftests: kvm: Fix -Wformat warnings
+ - selftests: fix warning: "_GNU_SOURCE" redefined
+ - net: ethernet: cadence: fix socket buffer corruption problem
+ - bpf: devmap: fix wrong interface selection in notifier_call
+ - bpf, btf: fix a missing check bug in btf_parse
+ - [sparc64] Rework xchg() definition to avoid warnings.
+ - [arm64] lib: use C string functions with KASAN enabled
+ - fs/ocfs2/dlm/dlmdebug.c: fix a sleep-in-atomic-context bug in
+ dlm_print_one_mle()
+ - mm/page-writeback.c: fix range_cyclic writeback vs writepages deadlock
+ - tools/testing/selftests/vm/gup_benchmark.c: fix 'write' flag usage
+ - mm: thp: fix MADV_DONTNEED vs
+ migrate_misplaced_transhuge_page race condition
+ - macsec: update operstate when lower device changes
+ - macsec: let the administrator set UP state even if lowerdev is down
+ - block: fix the DISCARD request merge
+ - i2c: uniphier-f: make driver robust against concurrency
+ - i2c: uniphier-f: fix occasional timeout error
+ - i2c: uniphier-f: fix race condition when IRQ is cleared
+ - um: Make line/tty semantics use true write IRQ
+ - vfs: avoid problematic remapping requests into partial EOF block
+ - ipv4/igmp: fix v1/v2 switchback timeout based on rfc3376, 8.12
+ - [ppc64*,powerpc] xmon: Relax frame size for clang
+ - [ppc64*,powerpc] selftests/ptrace: Fix out-of-tree build
+ - [ppc64*,powerpc] selftests/signal: Fix out-of-tree build
+ - [ppc64*,powerpc] selftests/switch_endian: Fix out-of-tree build
+ - [ppc64*,powerpc] selftests/cache_shape: Fix out-of-tree build
+ - block: call rq_qos_exit() after queue is frozen
+ - mm/gup_benchmark.c: prevent integer overflow in ioctl
+ - linux/bitmap.h: handle constant zero-size bitmaps correctly
+ - linux/bitmap.h: fix type of nbits in bitmap_shift_right()
+ - lib/bitmap.c: fix remaining space computation in bitmap_print_to_pagebuf
+ - hfsplus: fix BUG on bnode parent update
+ - hfs: fix BUG on bnode parent update
+ - hfsplus: prevent btree data loss on ENOSPC
+ - hfs: prevent btree data loss on ENOSPC
+ - hfsplus: fix return value of hfsplus_get_block()
+ - hfs: fix return value of hfs_get_block()
+ - hfsplus: update timestamps on truncate()
+ - hfs: update timestamp on truncate()
+ - fs/hfs/extent.c: fix array out of bounds read of array extent
+ - kernel/panic.c: do not append newline to the stack protector panic string
+ - mm/memory_hotplug: make add_memory() take the device_hotplug_lock
+ - mm/memory_hotplug: fix online/offline_pages called w.o. mem_hotplug_lock
+ - [ppc64*,powerprc] powerpc/powernv: hold device_hotplug_lock when calling
+ device_online()
+ - igb: shorten maximum PHC timecounter update interval
+ - fm10k: ensure completer aborts are marked as non-fatal after a resume
+ - [arm64] net: hns3: bugfix for buffer not free problem during resetting
+ - [arm64] net: hns3: bugfix for reporting unknown vector0 interrupt repeatly
+ problem
+ - [arm64] net: hns3: bugfix for is_valid_csq_clean_head()
+ - [arm64] net: hns3: bugfix for hclge_mdio_write and hclge_mdio_read
+ - ntb_netdev: fix sleep time mismatch
+ - [x86] ntb: intel: fix return value for ndev_vec_mask()
+ - irq/matrix: Fix memory overallocation
+ - nvme-pci: fix conflicting p2p resource adds
+ - [arm64] makefile fix build of .i file in external module case
+ - [x86] tools/power turbosat: fix AMD APIC-id output
+ - mm: handle no memcg case in memcg_kmem_charge() properly
+ - ocfs2: without quota support, avoid calling quota recovery
+ - ocfs2: don't use iocb when EIOCBQUEUED returns
+ - ocfs2: don't put and assigning null to bh allocated outside
+ - ocfs2: fix clusters leak in ocfs2_defrag_extent()
+ - net: do not abort bulk send on BQL status
+ - sched/topology: Fix off by one bug
+ - sched/fair: Don't increase sd->balance_interval on newidle balance
+ - openvswitch: fix linking without CONFIG_NF_CONNTRACK_LABELS
+ - [armhf] dts: imx6sx-sdb: Fix enet phy regulator
+ - [arm64] sunxi-ng: enable so-said LDOs for A64 SoC's pll-mipi clock
+ - soc: bcm: brcmstb: Fix re-entry point with a THUMB2_KERNEL
+ - audit: print empty EXECVE args
+ - sock_diag: fix autoloading of the raw_diag module
+ - net: bpfilter: fix iptables failure if bpfilter_umh is disabled
+ - nds32: Fix bug in bitfield.h
+ - media: ov13858: Check for possible null pointer
+ - btrfs: avoid link error with CONFIG_NO_AUTO_INLINE
+ - wil6210: fix debugfs memory access alignment
+ - wil6210: fix L2 RX status handling
+ - wil6210: fix RGF_CAF_ICR address for Talyn-MB
+ - wil6210: fix locking in wmi_call
+ - ath10k: snoc: fix unbalanced clock error handling
+ - wlcore: Fix the return value in case of error in
+ 'wlcore_vendor_cmd_smart_config_start()'
+ - rtl8xxxu: Fix missing break in switch
+ - brcmsmac: never log "tid x is not agg'able" by default
+ - wireless: airo: potential buffer overflow in sprintf()
+ - rtlwifi: rtl8192de: Fix misleading REG_MCUFWDL information
+ - net: dsa: bcm_sf2: Turn on PHY to allow successful registration
+ - scsi: mpt3sas: Fix Sync cache command failure during driver unload
+ - scsi: mpt3sas: Don't modify EEDPTagMode field setting on SAS3.5 HBA
+ devices
+ - scsi: mpt3sas: Fix driver modifying persistent data in Manufacturing
+ page11
+ - scsi: megaraid_sas: Fix msleep granularity
+ - scsi: megaraid_sas: Fix goto labels in error handling
+ - scsi: lpfc: fcoe: Fix link down issue after 1000+ link bounces
+ - scsi: lpfc: Fix odd recovery in duplicate FLOGIs in point-to-point
+ - scsi: lpfc: Correct loss of fc4 type on remote port address change
+ - usb: typec: tcpm: charge current handling for sink during hard reset
+ - dlm: fix invalid free
+ - dlm: don't leak kernel pointer to userspace
+ - vrf: mark skb for multicast or link-local as enslaved to VRF
+ - clk: tegra20: Turn EMC clock gate into divider
+ - ACPICA: Use %d for signed int print formatting instead of %u
+ - net: bcmgenet: return correct value 'ret' from bcmgenet_power_down
+ - of: unittest: allow base devicetree to have symbol metadata
+ - of: unittest: initialize args before calling of_*parse_*()
+ - tools: bpftool: pass an argument to silence open_obj_pinned()
+ - cfg80211: Prevent regulatory restore during STA disconnect in concurrent
+ interfaces
+ - pinctrl: qcom: spmi-gpio: fix gpio-hog related boot issues
+ - pinctrl: bcm2835: Use define directive for BCM2835_PINCONF_PARAM_PULL
+ - pinctrl: lpc18xx: Use define directive for PIN_CONFIG_GPIO_PIN_INT
+ - pinctrl: zynq: Use define directive for PIN_CONFIG_IO_STANDARD
+ - PCI: keystone: Use quirk to limit MRRS for K2G
+ - nvme-pci: fix surprise removal
+ - spi: omap2-mcspi: Fix DMA and FIFO event trigger size mismatch
+ - i2c: uniphier-f: fix timeout error after reading 8 bytes
+ - mm/memory_hotplug: Do not unlock when fails to take the
+ device_hotplug_lock
+ - ipv6: Fix handling of LLA with VRF and sockets bound to VRF
+ - cfg80211: call disconnect_wk when AP stops
+ - mm/page_io.c: do not free shared swap slots
+ - Bluetooth: Fix invalid-free in bcsp_close()
+ - KVM: MMU: Do not treat ZONE_DEVICE pages as being reserved
+ - ath10k: Fix a NULL-ptr-deref bug in ath10k_usb_alloc_urb_from_pipe
+ - ath9k_hw: fix uninitialized variable data
+ - md/raid10: prevent access of uninitialized resync_pages offset
+ - mm/memory_hotplug: don't access uninitialized memmaps in
+ shrink_zone_span()
+ - net: phy: dp83867: fix speed 10 in sgmii mode
+ - net: phy: dp83867: increase SGMII autoneg timer duration
+ - ocfs2: remove ocfs2_is_o2cb_active()
+ - [arm*] 8904/1: skip nomap memblocks while finding the
+ lowmem/highmem boundary
+ - ARC: perf: Accommodate big-endian CPU
+ - [x86] insn: Fix awk regexp warnings
+ - [x86] speculation: Fix incorrect MDS/TAA mitigation status
+ - [x86] speculation: Fix redundant MDS mitigation message
+ - nbd: prevent memory leak
+ - y2038: futex: Move compat implementation into futex.c
+ - futex: Prevent robust futex exit race
+ - ALSA: usb-audio: Fix NULL dereference at parsing BADD
+ - nfc: port100: handle command failure cleanly
+ - media: vivid: Set vid_cap_streaming and vid_out_streaming to true
+ - media: vivid: Fix wrong locking that causes race conditions on streaming
+ stop (CVE-2019-18683)
+ - media: usbvision: Fix races among open, close, and disconnect
+ - cpufreq: Add NULL checks to show() and store() methods of cpufreq
+ - media: uvcvideo: Fix error path in control parsing failure
+ - media: b2c2-flexcop-usb: add sanity checking
+ - media: cxusb: detect cxusb_ctrl_msg error in query
+ - media: imon: invalid dereference in imon_touch_event
+ - virtio_ring: fix return code on DMA mapping fails
+ - USBIP: add config dependency for SGL_ALLOC
+ - usbip: tools: fix fd leakage in the function of read_attr_usbip_status
+ - usbip: Fix uninitialized symbol 'nents' in stub_recv_cmd_submit()
+ - usb-serial: cp201x: support Mark-10 digital force gauge
+ - USB: chaoskey: fix error case of a timeout
+ - appledisplay: fix error handling in the scheduled work
+ - USB: serial: mos7840: add USB ID to support Moxa UPort 2210
+ - USB: serial: mos7720: fix remote wakeup
+ - USB: serial: mos7840: fix remote wakeup
+ - USB: serial: option: add support for DW5821e with eSIM support
+ - USB: serial: option: add support for Foxconn T77W968 LTE modules
+ - staging: comedi: usbduxfast: usbduxfast_ai_cmdtest rounding error
+ - [ppc64*] support nospectre_v2 cmdline option
+ - [ppc64*] book3s: Fix link stack flush on context switch (CVE-2019-18660)
+ - [ppc64*, powerpc] PPC: Book3S HV: Flush link stack on guest exit to host
+ kernel
+ - PM / devfreq: Fix kernel oops on governor module load
+
+ [ Romain Perier ]
+ * [armel/rpi] Enable CONFIG_BRCMFMAC_SDIO (Closes: #940530)
+ * [armhf, arm64] Backport devicetree for enabling support for the
+ Raspberry PI 3 A+
+
+ [ Salvatore Bonaccorso ]
+ * ixgbe: Fix secpath usage for IPsec TX offload (Closes: #930443)
+ * ipv4: Return -ENETUNREACH if we can't create route but saddr is valid
+ (Closes: #945023)
+ * [x86] KVM: x86: introduce is_pae_paging (Regression in 4.19.77)
+ * [rt] Refresh 0011-sched-fair-Robustify-CFS-bandwidth-timer-locking.patch
+ (context changes in 4.19.84)
+
+ [ Bastian Blank ]
+ * [amd64/cloud-amd64] Re-enable RTC drivers. (closes: #931341)
+
+ [ Noah Meyerhans ]
+ * drivers/net/ethernet/amazon: Backport driver fixes from Linux 5.4
+ (Closes: #941291)
+ * Bump ABI to 7
+
+ [ Ben Hutchings ]
+ * debian/bin/genpatch-rt: Fix series generation from git
+ * [rt] Update to 4.19.82-rt30:
+ - Drop changes in "fs/dcache: disable preemption on i_dir_seq's write side"
+ that conflict with "Fix the locking in dcache_readdir() and friends"
+ - Rewrite "fs/aio: simple simple work" using kthread_work
+ - Rewrite "thermal: Defer thermal wakups to threads" using kthread_work
+ - Rewrite "block: blk-mq: move blk_queue_usage_counter_release() into
+ process context" using kthread_work
+ - workqueue: rework
+
+ [ Benjamin Poirier ]
+ * tools/perf: Add python3 support to scripts (Closes: #944641)
+
+ [ Aurelien Jarno ]
+ * [rt] Refresh 0025-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch (context
+ changes in 4.19.86)
+ * [rt] Refresh 0202-net-Qdisc-use-a-seqlock-instead-seqcount.patch (context
+ changes in 4.19.86)
+ * [rt] Refresh 0057-printk-Add-a-printk-kill-switch.patch (context changes
+ in 4.19.87)
+ * [rt] Refresh 0207-printk-Make-rt-aware.patch (context changes in 4.19.87)
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Tue, 03 Dec 2019 06:58:41 +0100
+
+linux (4.19.67-2+deb10u2) buster-security; urgency=high
+
+ * [x86] Add mitigation for TSX Asynchronous Abort (CVE-2019-11135):
+ - KVM: x86: use Intel speculation bugs and features as derived in generic
+ x86 code
+ - x86/msr: Add the IA32_TSX_CTRL MSR
+ - x86/cpu: Add a helper function x86_read_arch_cap_msr()
+ - x86/cpu: Add a "tsx=" cmdline option with TSX disabled by default
+ - x86/speculation/taa: Add mitigation for TSX Async Abort
+ - x86/speculation/taa: Add sysfs reporting for TSX Async Abort
+ - kvm/x86: Export MDS_NO=0 to guests when TSX is enabled
+ - x86/tsx: Add "auto" option to the tsx= cmdline parameter
+ - x86/speculation/taa: Add documentation for TSX Async Abort
+ - x86/tsx: Add config options to set tsx=on|off|auto
+ - x86/speculation/taa: Fix printing of TAA_MSG_SMT on IBRS_ALL CPUs
+ TSX is now disabled by default; see
+ Documentation/admin-guide/hw-vuln/tsx_async_abort.rst
+ * [x86] KVM: Add mitigation for Machine Check Error on Page Size Change
+ (aka iTLB multi-hit, CVE-2018-12207):
+ - kvm: Convert kvm_lock to a mutex
+ - kvm: x86: Do not release the page inside mmu_set_spte()
+ - KVM: x86: make FNAME(fetch) and __direct_map more similar
+ - KVM: x86: remove now unneeded hugepage gfn adjustment
+ - KVM: x86: change kvm_mmu_page_get_gfn BUG_ON to WARN_ON
+ - KVM: x86: add tracepoints around __direct_map and FNAME(fetch)
+ - kvm: x86, powerpc: do not allow clearing largepages debugfs entry
+ - KVM: vmx, svm: always run with EFER.NXE=1 when shadow paging is active
+ - x86/bugs: Add ITLB_MULTIHIT bug infrastructure
+ - cpu/speculation: Uninline and export CPU mitigations helpers
+ - kvm: mmu: ITLB_MULTIHIT mitigation
+ - kvm: Add helper function for creating VM worker threads
+ - kvm: x86: mmu: Recovery of shattered NX large pages
+ - Documentation: Add ITLB_MULTIHIT documentation
+ * [x86] i915: Mitigate local privilege escalation on gen9 (CVE-2019-0155):
+ - drm/i915: Rename gen7 cmdparser tables
+ - drm/i915: Disable Secure Batches for gen6+
+ - drm/i915: Remove Master tables from cmdparser
+ - drm/i915: Add support for mandatory cmdparsing
+ - drm/i915: Support ro ppgtt mapped cmdparser shadow buffers
+ - drm/i915: Allow parsing of unsized batches
+ - drm/i915: Add gen9 BCS cmdparsing
+ - drm/i915/cmdparser: Use explicit goto for error paths
+ - drm/i915/cmdparser: Add support for backward jumps
+ - drm/i915/cmdparser: Ignore Length operands during command matching
+ - drm/i915/cmdparser: Fix jump whitelist clearing
+ * [x86] i915: Mitigate local denial-of-service on gen8/gen9 (CVE-2019-0154):
+ - drm/i915: Lower RM timeout to avoid DSI hard hangs
+ - drm/i915/gen8+: Add RC6 CTX corruption WA
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 11 Nov 2019 00:30:56 +0000
+
+linux (4.19.67-2+deb10u1) buster-security; urgency=high
+
+ [ Romain Perier ]
+ * ALSA: usb-audio: Fix an OOB bug in parse_audio_mixer_unit (CVE-2019-15117)
+ * ALSA: usb-audio: Fix a stack buffer overflow bug in check_input_term
+ (CVE-2019-15118)
+
+ [ Salvatore Bonaccorso ]
+ * vhost: make sure log_num < in_num (CVE-2019-14835)
+ * [x86] ptrace: fix up botched merge of spectrev1 fix (CVE-2019-15902)
+ * KVM: coalesced_mmio: add bounds checking (CVE-2019-14821)
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Fri, 20 Sep 2019 12:51:55 +0200
+
+linux (4.19.67-2) buster; urgency=medium
+
+ [ Salvatore Bonaccorso ]
+ * dm: disable DISCARD if the underlying storage no longer supports it
+ (Closes: #934331)
+ * xfs: fix missing ILOCK unlock when xfs_setattr_nonsize fails due to EDQUOT
+ (CVE-2019-15538)
+
+ [ Ben Hutchings ]
+ * KVM: Ignore ABI changes
+ * [ppc64el] Disable PPC_TRANSACTIONAL_MEM (Closes: #866122)
+ * [ppc64el] Avoid ABI change for disabling TM
+ * netfilter: conntrack: Use consistent ct id hash calculation
+ (fixes regression in 4.19.44)
+
+ [ Cyril Brulebois ]
+ * [arm] Backport DTB support for Rasperry Pi Compute Module 3.
+ * [arm64] Backport DTB support for Rasperry Pi Compute Module 3.
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Wed, 28 Aug 2019 06:20:22 +0200
+
+linux (4.19.67-1) buster; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.38
+ - netfilter: nft_compat: use refcnt_t type for nft_xt reference count
+ - netfilter: nft_compat: make lists per netns
+ - netfilter: nf_tables: split set destruction in deactivate and destroy
+ phase
+ - netfilter: nft_compat: destroy function must not have side effects
+ - netfilter: nf_tables: warn when expr implements only one of
+ activate/deactivate
+ - netfilter: nf_tables: unbind set in rule from commit path
+ - netfilter: nft_compat: don't use refcount_inc on newly allocated entry
+ - netfilter: nft_compat: use .release_ops and remove list of extension
+ - netfilter: nf_tables: fix set double-free in abort path
+ - netfilter: nf_tables: bogus EBUSY when deleting set after flush
+ - netfilter: nf_tables: bogus EBUSY in helper removal from transaction
+ - net/ibmvnic: Fix RTNL deadlock during device reset
+ - net: mvpp2: fix validate for PPv2.1
+ - ext4: fix some error pointer dereferences
+ - tipc: handle the err returned from cmd header function
+ - loop: do not print warn message if partition scan is successful
+ - [armhf,arm64] drm/rockchip: fix for mailbox read validation.
+ - vsock/virtio: fix kernel panic from virtio_transport_reset_no_sock
+ - ipvs: fix warning on unused variable
+ - [ppc64el] vdso32: fix CLOCK_MONOTONIC on PPC64
+ - [armhf,arm64] net: dsa: mv88e6xxx: add call to mv88e6xxx_ports_cmode_init
+ to probe for new DSA framework
+ - cifs: fix memory leak in SMB2_read
+ - cifs: do not attempt cifs operation on smb2+ rename error
+ - tracing: Fix a memory leak by early error exit in trace_pid_write()
+ - zram: pass down the bvec we need to read into in the work struct
+ - trace: Fix preempt_enable_no_resched() abuse
+ - IB/rdmavt: Fix frwr memory registration
+ - RDMA/mlx5: Do not allow the user to write to the clock page
+ - sched/numa: Fix a possible divide-by-zero
+ - ceph: only use d_name directly when parent is locked
+ - ceph: ensure d_name stability in ceph_dentry_hash()
+ - ceph: fix ci->i_head_snapc leak
+ - nfsd: Don't release the callback slot unless it was actually held
+ - sunrpc: don't mark uninitialised items as VALID.
+ - [x86] perf/intel: Update KBL Package C-state events to also include
+ PC8/PC9/PC10 counters
+ - Input: synaptics-rmi4 - write config register values to the right offset
+ - [armhf] 8857/1: efi: enable CP15 DMB instructions before cleaning the
+ cache
+ - [ppc64el] mm/radix: Make Radix require HUGETLB_PAGE
+ - [arm*] drm/vc4: Fix memory leak during gpu reset.
+ - [x86] Revert "drm/i915/fbdev: Actually configure untiled displays"
+ - USB: Add new USB LPM helpers
+ - USB: Consolidate LPM checks to avoid enabling LPM twice
+ - slip: make slhc_free() silently accept an error pointer
+ - [x86] intel_th: gth: Fix an off-by-one in output unassigning
+ - fs/proc/proc_sysctl.c: Fix a NULL pointer dereference
+ - workqueue: Try to catch flush_work() without INIT_WORK().
+ - sched/deadline: Correctly handle active 0-lag timers
+ - NFS: Forbid setting AF_INET6 to "struct sockaddr_in"->sin_family.
+ - netfilter: ebtables: CONFIG_COMPAT: drop a bogus WARN_ON
+ - fm10k: Fix a potential NULL pointer dereference
+ - tipc: check bearer name with right length in tipc_nl_compat_bearer_enable
+ - tipc: check link name with right length in tipc_nl_compat_link_set
+ - net: netrom: Fix error cleanup path of nr_proto_init
+ - net/rds: Check address length before reading address family
+ - rxrpc: fix race condition in rxrpc_input_packet()
+ - [x86] retpolines: Raise limit for generating indirect calls from
+ switch-case
+ - [x86] retpolines: Disable switch jump tables when retpolines are enabled
+ - mm: Fix warning in insert_pfn()
+ - [x86] fpu: Don't export __kernel_fpu_{begin,end}()
+ - ipv4: add sanity checks in ipv4_link_failure()
+ - ipv4: set the tcp_min_rtt_wlen range from 0 to one day
+ - net/mlx5e: ethtool, Remove unsupported SFP EEPROM high pages query
+ - net: rds: exchange of 8K and 1M pool
+ - net/rose: fix unbound loop in rose_loopback_timer()
+ - [armhf,arm64] net: stmmac: move stmmac_check_ether_addr() to driver probe
+ - team: fix possible recursive locking when add slaves
+ - [arm64] net: hns: Fix WARNING when hns modules installed
+ - net/mlx5e: Fix the max MTU check in case of XDP
+ - net/mlx5e: Fix use-after-free after xdp_return_frame
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.39
+ - selinux: use kernel linux/socket.h for genheaders and mdp
+ - Revert "ACPICA: Clear status of GPEs before enabling them"
+ - [arm*] dts: bcm283x: Fix hdmi hpd gpio pull
+ - [s390x] limit brk randomization to 32MB
+ - net: ieee802154: fix a potential NULL pointer dereference
+ - ieee802154: hwsim: propagate genlmsg_reply return code
+ - [armhf,arm64] net: stmmac: don't set own bit too early for jumbo frames
+ - qlcnic: Avoid potential NULL pointer dereference
+ - xsk: fix umem memory leak on cleanup
+ - netfilter: nft_set_rbtree: check for inactive element after flag mismatch
+ - netfilter: bridge: set skb transport_header before entering
+ NF_INET_PRE_ROUTING
+ - netfilter: fix NETFILTER_XT_TARGET_TEE dependencies
+ - netfilter: ip6t_srh: fix NULL pointer dereferences
+ - [s390x] qeth: fix race when initializing the IP address table
+ - [armhf] imx51: fix a leaked reference by adding missing of_node_put
+ - [arm64] KVM: Reset the PMU in preemptible context
+ - [armhf,arm64] KVM: vgic-its: Take the srcu lock when writing to guest
+ memory
+ - [armhf,arm64] KVM: vgic-its: Take the srcu lock when parsing the memslots
+ - [x86] usb: dwc3: pci: add support for Comet Lake PCH ID
+ - usb: gadget: net2280: Fix overrun of OUT messages
+ - usb: gadget: net2280: Fix net2280_dequeue()
+ - [x86] i2c: i801: Add support for Intel Comet Lake
+ - staging: rtl8188eu: Fix potential NULL pointer dereference of kcalloc
+ - staging: rtlwifi: rtl8822b: fix to avoid potential NULL pointer
+ dereference
+ - staging: rtl8712: uninitialized memory in read_bbreg_hdl()
+ - staging: rtlwifi: Fix potential NULL pointer dereference of kzalloc
+ - [arm64] net: macb: Add null check for PCLK and HCLK
+ - net/sched: don't dereference a->goto_chain to read the chain index
+ - [armhf] dts: imx6qdl: Fix typo in imx6qdl-icore-rqs.dtsi
+ - [armhf,arm64] drm/tegra: hub: Fix dereference before check
+ - NFS: Fix a typo in nfs_init_timeout_values()
+ - drm: Fix drm_release() and device unplug
+ - [arm64] drm/meson: Fix invalid pointer in meson_drv_unbind()
+ - [arm64] drm/meson: Uninstall IRQ handler
+ - scsi: mpt3sas: Fix kernel panic during expander reset
+ - scsi: aacraid: Insure we don't access PCIe space during AER/EEH
+ - scsi: qla4xxx: fix a potential NULL pointer dereference
+ - leds: trigger: netdev: fix refcnt leak on interface rename
+ - [x86] realmode: Don't leak the trampoline kernel address
+ - usb: u132-hcd: fix resource leak
+ - ceph: fix use-after-free on symlink traversal
+ - [s390x] scsi: zfcp: reduce flood of fcrscn1 trace records on multi-
+ element RSCN
+ - [x86] mm: Don't exceed the valid physical address space
+ - libata: fix using DMA buffers on stack
+ - gpio: of: Fix of_gpiochip_add() error path
+ - nvme-multipath: relax ANA state check
+ - perf machine: Update kernel map address and re-order properly
+ - [x86] iommu/amd: Reserve exclusion range in iova-domain
+ - ptrace: take into account saved_sigmask in PTRACE{GET,SET}SIGMASK
+ - leds: trigger: netdev: use memcpy in device_name_store
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.40
+ - ipv4: ip_do_fragment: Preserve skb_iif during fragmentation
+ - ipv6: A few fixes on dereferencing rt->from
+ - ipv6: fix races in ip6_dst_destroy()
+ - ipv6/flowlabel: wait rcu grace period before put_pid()
+ - ipv6: invert flowlabel sharing check in process and user mode
+ - l2ip: fix possible use-after-free
+ - l2tp: use rcu_dereference_sk_user_data() in l2tp_udp_encap_recv()
+ - [armhf] net: dsa: bcm_sf2: fix buffer overflow doing set_rxnfc
+ - net: phy: marvell: Fix buffer overrun with stats counters
+ - rxrpc: Fix net namespace cleanup
+ - sctp: avoid running the sctp state machine recursively
+ - packet: validate msg_namelen in send directly
+ - bnxt_en: Improve multicast address setup logic.
+ - bnxt_en: Free short FW command HWRM memory in error path in
+ bnxt_init_one()
+ - bnxt_en: Fix uninitialized variable usage in bnxt_rx_pkt().
+ - [x86] KVM: Whitelist port 0x7e for pre-incrementing %rip
+ - [x86] KVM: nVMX: Fix size checks in vmx_set_nested_state
+ - ALSA: line6: use dynamic buffers
+ - ath10k: Drop WARN_ON()s that always trigger during system resume
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.41
+ - iwlwifi: fix driver operation for 5350
+ - mwifiex: Make resume actually do something useful again on SDIO cards
+ - mac80211: don't attempt to rename ERR_PTR() debugfs dirs
+ - [armhf] i2c: imx: correct the method of getting private data in
+ notifier_call
+ - i2c: Remove unnecessary call to irq_find_mapping
+ - i2c: Clear client->irq in i2c_device_remove
+ - i2c: Allow recovery of the initial IRQ by an I2C client device.
+ - i2c: Prevent runtime suspend of adapter when Host Notify is required
+ - [x86] ALSA: hda/realtek - Add new Dell platform for headset mode
+ - [x86] ALSA: hda/realtek - Fixed Dell AIO speaker noise
+ - [x86] ALSA: hda/realtek - Apply the fixup for ASUS Q325UAR
+ - USB: yurex: Fix protection fault after device removal (CVE-2019-15216)
+ - USB: w1 ds2490: Fix bug caused by improper use of altsetting array
+ - USB: dummy-hcd: Fix failure to give back unlinked URBs
+ - usb: usbip: fix isoc packet num validation in get_pipe
+ - USB: core: Fix unterminated string returned by usb_string()
+ - USB: core: Fix bug caused by duplicate interface PM usage counter
+ - nvme-loop: init nvmet_ctrl fatal_err_work when allocate
+ - [arm64] dts: rockchip: fix rk3328-roc-cc gmac2io tx/rx_delay
+ - HID: logitech: check the return value of create_singlethread_workqueue
+ - HID: debug: fix race condition with between rdesc_show() and device
+ removal
+ - rtc: cros-ec: Fail suspend/resume if wake IRQ can't be configured
+ - batman-adv: Reduce claim hash refcnt only for removed entry
+ - batman-adv: Reduce tt_local hash refcnt only for removed entry
+ - batman-adv: Reduce tt_global hash refcnt only for removed entry
+ - batman-adv: fix warning in function batadv_v_elp_get_throughput
+ - [armhf] dts: rockchip: Fix gpu opp node names for rk3288
+ - [arm64] reset: meson-audio-arb: Fix missing .owner setting of
+ reset_controller_dev
+ - igb: Fix WARN_ONCE on runtime suspend
+ - HID: quirks: Fix keyboard + touchpad on Lenovo Miix 630
+ - net/mlx5: E-Switch, Fix esw manager vport indication for more vport
+ commands
+ - bonding: show full hw address in sysfs for slave entries
+ - [armhf,arm64] net: stmmac: use correct DMA buffer size in the RX
+ descriptor
+ - [armhf,arm64] net: stmmac: ratelimit RX error logs
+ - [armhf,arm64] net: stmmac: don't stop NAPI processing when dropping a
+ packet
+ - [armhf,arm64] net: stmmac: don't overwrite discard_frame status
+ - [armhf,arm64] net: stmmac: fix dropping of multi-descriptor RX frames
+ - [armhf,arm64] net: stmmac: don't log oversized frames
+ - jffs2: fix use-after-free on symlink traversal
+ - debugfs: fix use-after-free on symlink traversal
+ - [armhf] mfd: twl-core: Disable IRQ while suspended
+ - block: use blk_free_flush_queue() to free hctx->fq in blk_mq_init_hctx
+ - HID: input: add mapping for Assistant key
+ - vfio/pci: use correct format characters
+ - scsi: core: add new RDAC LENOVO/DE_Series device
+ - [x86] scsi: storvsc: Fix calculation of sub-channel count
+ - [arm64] fix wrong check of on_sdei_stack in nmi context
+ - [arm64] net: hns: fix KASAN: use-after-free in hns_nic_net_xmit_hw()
+ - [arm64] net: hns: Use NAPI_POLL_WEIGHT for hns driver
+ - [arm64] net: hns: Fix probabilistic memory overwrite when HNS driver
+ initialized
+ - [arm64] net: hns: fix ICMP6 neighbor solicitation messages discard
+ problem
+ - [arm64] net: hns: Fix WARNING when remove HNS driver with SMMU enabled
+ - libcxgb: fix incorrect ppmax calculation
+ - [x86] KVM: SVM: prevent DBG_DECRYPT and DBG_ENCRYPT overflow
+ - hugetlbfs: fix memory leak for resv_map
+ - fs: stream_open - opener for stream-like files so that read and write can
+ run simultaneously without deadlock
+ - [armel] orion: don't use using 64-bit DMA masks
+ - block: pass no-op callback to INIT_WORK().
+ - [x86] perf/amd: Update generic hardware cache events for Family 17h
+ - Bluetooth: btusb: request wake pin with NOAUTOEN
+ - Bluetooth: mediatek: fix up an error path to restore bdev->tx_state
+ - [arm64] clk: qcom: Add missing freq for usb30_master_clk on 8998
+ - scsi: RDMA/srpt: Fix a credit leak for aborted commands
+ - [x86] ASoC: Intel: bytcr_rt5651: Revert "Fix DMIC map headsetmic mapping"
+ - [x86] platform: intel_pmc_core: Fix PCH IP name
+ - [x86] platform: intel_pmc_core: Handle CFL regmap properly
+ - IB/core: Unregister notifier before freeing MAD security
+ - IB/core: Fix potential memory leak while creating MAD agents
+ - IB/core: Destroy QP if XRC QP fails
+ - selinux: avoid silent denials in permissive mode under RCU walk
+ - selinux: never allow relabeling on context mounts
+ - mac80211: Honor SW_CRYPTO_CONTROL for unicast keys in AP VLAN mode
+ - [ppc64el] mm/hash: Handle mmap_min_addr correctly in get_unmapped_area
+ topdown search
+ - [x86] mce: Improve error message when kernel cannot recover, p2
+ - [x86] clk: Add system specific quirk to mark clocks as critical
+ - [x86] mm/KASLR: Fix the size of the direct mapping section
+ - [x86] mm: Fix a crash with kmemleak_scan()
+ - [x86] mm/tlb: Revert "x86/mm: Align TLB invalidation info"
+ - media: v4l2: i2c: ov7670: Fix PLL bypass register values
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.42
+ - [armhf,arm64] net: stmmac: Use bfsize1 in ndesc_init_rx_desc
+ - [x86] Drivers: hv: vmbus: Remove the undesired put_cpu_ptr() in
+ hv_synic_cleanup()
+ - ASoC: hdmi-codec: fix S/PDIF DAI
+ - ASoC:soc-pcm:fix a codec fixup issue in TDM case
+ - [x86] ASoC:intel:skl:fix a simultaneous playback & capture issue on hda
+ platform
+ - [arm64] clk: meson-gxbb: round the vdec dividers to closest
+ - ASoC: dapm: Fix NULL pointer dereference in snd_soc_dapm_free_kcontrol
+ - [armhf] drm/omap: hdmi4_cec: Fix CEC clock handling for PM
+ - IB/hfi1: Eliminate opcode tests on mr deref
+ - IB/hfi1: Fix the allocation of RSM table
+ - [x86] perf/intel: Fix handling of wakeup_events for multi-entry PEBS
+ - [x86] perf/intel: Initialize TFA MSR
+ - linux/kernel.h: Use parentheses around argument in u64_to_user_ptr()
+ - drm/amd/display: fix cursor black issue
+ - objtool: Add rewind_stack_do_exit() to the noreturn list
+ - slab: fix a crash by reading /proc/slab_allocators
+ - [armhf,arm64] drm/sun4i: tcon top: Fix NULL/invalid pointer dereference
+ in sun8i_tcon_top_un/bind
+ - virtio_pci: fix a NULL pointer reference in vp_del_vqs
+ - [x86] RDMA/vmw_pvrdma: Fix memory leak on pvrdma_pci_remove
+ - [arm64] RDMA/hns: Fix bug that caused srq creation to fail
+ - scsi: csiostor: fix missing data copy in csio_scsi_err_handler()
+ - [x86] ASoC: Intel: kbl: fix wrong number of channels
+ - virtio-blk: limit number of hw queues by nr_cpu_ids
+ - nvme-fc: correct csn initialization and increments on error
+ - [x86] platform: pmc_atom: Drop __initconst on dmi table
+ - perf/core: Fix perf_event_disable_inatomic() race
+ - [x86] iommu/amd: Set exclusion range correctly
+ - genirq: Prevent use-after-free and work list corruption
+ - usb: dwc3: Fix default lpm_nyet_threshold value
+ - USB: serial: f81232: fix interrupt worker not stop
+ - USB: cdc-acm: fix unthrottle races
+ - usb-storage: Set virt_boundary_mask to avoid SG overflows
+ - [x86] intel_th: pci: Add Comet Lake support
+ - [arm64] cpufreq: armada-37xx: fix frequency calculation for opp
+ - scsi: lpfc: change snprintf to scnprintf for possible overflow
+ - scsi: qla2xxx: Fix incorrect region-size setting in optrom SYSFS routines
+ - scsi: qla2xxx: Fix device staying in blocked state
+ - UAS: fix alignment of scatter/gather segments
+ - [x86] ASoC: Intel: avoid Oops if DMA setup fails
+ - locking/futex: Allow low-level atomic operations to return -EAGAIN
+ - [arm64] futex: Bound number of LDXR/STXR loops in FUTEX_WAKE_OP
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.43
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.44
+ - bfq: update internal depth state when queue depth changes
+ - [x86] platform: sony-laptop: Fix unintentional fall-through
+ - [x86] platform: thinkpad_acpi: Disable Bluetooth for some machines
+ - [x86] platform: dell-laptop: fix rfkill functionality
+ - hwmon: (pwm-fan) Disable PWM if fetching cooling data fails
+ - kernfs: fix barrier usage in __kernfs_new_node()
+ - [x86] virt: vbox: Sanity-check parameter types for hgcm-calls coming from
+ userspace
+ - USB: serial: fix unthrottle races
+ - acpi/nfit: Always dump _DSM output payload
+ - libnvdimm/namespace: Fix a potential NULL pointer dereference
+ - HID: input: add mapping for Expose/Overview key
+ - HID: input: add mapping for keyboard Brightness Up/Down/Toggle keys
+ - HID: input: add mapping for "Toggle Display" key
+ - libnvdimm/btt: Fix a kmemdup failure check
+ - [s390x] dasd: Fix capacity calculation for large volumes
+ - mac80211: fix unaligned access in mesh table hash function
+ - mac80211: Increase MAX_MSG_LEN
+ - cfg80211: Handle WMM rules in regulatory domain intersection
+ - mac80211: fix memory accounting with A-MSDU aggregation
+ - nl80211: Add NL80211_FLAG_CLEAR_SKB flag for other NL commands
+ - libnvdimm/pmem: fix a possible OOB access when read and write pmem
+ - [s390x] 3270: fix lockdep false positive on view->lock
+ - drm/amd/display: extending AUX SW Timeout
+ - mISDN: Check address length before reading address family
+ - vxge: fix return of a free'd memblock on a failed dma mapping
+ - qede: fix write to free'd pointer error and double free of ptp
+ - afs: Unlock pages for __pagevec_release()
+ - drm/amd/display: If one stream full updates, full update all planes
+ - [s390x] pkey: add one more argument space for debug feature entry
+ - [x86] reboot, efi: Use EFI reboot for Acer TravelMate X514-51T
+ - [x86] KVM: fix spectrev1 gadgets
+ - [x86] KVM: avoid misreporting level-triggered irqs as edge-triggered in
+ tracing
+ - tools lib traceevent: Fix missing equality check for strcmp
+ - ipmi: ipmi_si_hardcode.c: init si_type array to fix a crash
+ - scsi: aic7xxx: fix EISA support
+ - mm: fix inactive list balancing between NUMA nodes and cgroups
+ - init: initialize jump labels before command line option parsing
+ - ipvs: do not schedule icmp errors from tunnels
+ - netfilter: ctnetlink: don't use conntrack/expect object addresses as id
+ - netfilter: nf_tables: prevent shift wrap in nft_chain_parse_hook()
+ - [s390x] ctcm: fix ctcm_new_device error return code
+ - [armhf,arm64] drm/sun4i: Set device driver data at bind time for use in
+ unbind
+ - [armhf,arm64] drm/sun4i: Fix component unbinding and component master
+ deletion
+ - netfilter: fix nf_l4proto_log_invalid to log invalid packets
+ - [armhf] gpu: ipu-v3: dp: fix CSC handling
+ - [armhf] drm/imx: don't skip DP channel disable for background plane
+ - [armhf,arm64] drm/sun4i: Unbind components before releasing DRM and
+ memory
+ - Input: synaptics-rmi4 - fix possible double free
+ - [arm64] RDMA/hns: Bugfix for mapping user db
+ - mm/memory_hotplug.c: drop memory device reference after
+ find_memory_block()
+ - [ppc64el] smp: Fix NMI IPI timeout
+ - [ppc64el] smp: Fix NMI IPI xmon timeout
+ - [armhf,arm64] net: dsa: mv88e6xxx: fix few issues in
+ mv88e6390x_port_set_cmode
+ - mm/memory.c: fix modifying of page protection by insert_pfn()
+ - usb: typec: Fix unchecked return value
+ - netfilter: nf_tables: use-after-free in dynamic operations
+ - netfilter: nf_tables: add missing ->release_ops() in error path of
+ newrule() (Closes: #934168)
+ - net: fec: manage ahb clock in runtime pm
+ - net: strparser: partially revert "strparser: Call skb_unclone
+ conditionally"
+ - NFC: nci: Add some bounds checking in nci_hci_cmd_received()
+ - nfc: nci: Potential off by one in ->pipes[] array
+ - [x86] kprobes: Avoid kretprobe recursion bug
+ - mwl8k: Fix rate_idx underflow
+ - rtlwifi: rtl8723ae: Fix missing break in switch statement
+ - bonding: fix arp_validate toggling in active-backup mode
+ - bridge: Fix error path for kobject_init_and_add()
+ - ipv4: Fix raw socket lookup for local traffic
+ - net: dsa: Fix error cleanup path in dsa_init_module
+ - [armhf] net: ethernet: stmmac: dwmac-sun8i: enable support of unicast
+ filtering
+ - [arm64] net: macb: Change interrupt and napi enable order in open
+ - packet: Fix error path in packet_init
+ - selinux: do not report error on connect(AF_UNSPEC)
+ - vlan: disable SIOCSHWTSTAMP in container
+ - vrf: sit mtu should not be updated when vrf netdev is the link
+ - tuntap: fix dividing by zero in ebpf queue selection
+ - tuntap: synchronize through tfiles array instead of tun->numqueues
+ - isdn: bas_gigaset: use usb_fill_int_urb() properly
+ - tipc: fix hanging clients using poll with EPOLLOUT flag
+ - [ppc64el] book3s/64: check for NULL pointer in pgd_alloc()
+ - [ppc64el] powernv/idle: Restore IAMR after idle
+ - [x86] PCI: hv: Fix a memory leak in hv_eject_device_work()
+ - [x86] PCI: hv: Add hv_pci_remove_slots() when we unload the driver
+ - [x86] PCI: hv: Add pci_destroy_slot() in pci_devices_present_work(), if
+ necessary
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.45
+ - locking/rwsem: Prevent decrement of reader count before increment
+ - [x86] speculation/mds: Revert CPU buffer clear on double fault exit
+ - [x86] speculation/mds: Improve CPU buffer clear documentation
+ - objtool: Fix function fallthrough detection
+ - [arm64] dts: rockchip: Disable DCMDs on RK3399's eMMC controller.
+ - [armhf] dts: exynos: Fix interrupt for shared EINTs on Exynos5260
+ - [armhf] dts: exynos: Fix audio (microphone) routing on Odroid XU3
+ - [arm64] mmc: sdhci-of-arasan: Add DTS property to disable DCMDs.
+ - [armhf] exynos: Fix a leaked reference by adding missing of_node_put
+ - [armhf] power: supply: axp288_charger: Fix unchecked return value
+ - [armhf,arm64] power: supply: axp288_fuel_gauge: Add ACEPC T8 and T11 mini
+ PCs to the blacklist
+ - [arm64] mmap: Ensure file offset is treated as unsigned
+ - [arm64] arch_timer: Ensure counter register reads occur with seqlock held
+ - [arm64] compat: Reduce address limit
+ - [arm64] Clear OSDLR_EL1 on CPU boot
+ - [arm64] Save and restore OSDLR_EL1 across suspend/resume
+ - [x96] sched: Save [ER]FLAGS on context switch
+ - crypto: salsa20 - don't access already-freed walk.iv
+ - crypto: chacha20poly1305 - set cra_name correctly
+ - [x86] crypto: ccp - Do not free psp_master when PLATFORM_INIT fails
+ - [ppc64el] crypto: vmx - fix copy-paste error in CTR mode
+ - crypto: skcipher - don't WARN on unprocessed data after slow walk step
+ - crypto: crct10dif-generic - fix use via crypto_shash_digest()
+ - [x86] crypto: crct10dif-pcl - fix use via crypto_shash_digest()
+ - [arm64] crypto: gcm-aes-ce - fix no-NEON fallback code
+ - crypto: gcm - fix incompatibility between "gcm" and "gcm_base"
+ - [armhf,arm64] crypto: aes-neonbs - don't access already-freed walk.iv
+ - mmc: core: Fix tag set memory leak
+ - ALSA: line6: toneport: Fix broken usage of timer for delayed execution
+ - ALSA: usb-audio: Fix a memory leak bug
+ - ALSA: hda/hdmi - Read the pin sense from register when repolling
+ - ALSA: hda/hdmi - Consider eld_valid when reporting jack event
+ - ALSA: hda/realtek - EAPD turn on later
+ - ALSA: hdea/realtek - Headset fixup for System76 Gazelle (gaze14)
+ - [armhf,arm64] ASoC: max98090: Fix restore of DAPM Muxes
+ - ASoC: codec: hdac_hdmi add device_link to card device
+ - [arm64] bpf: remove prefetch insn in xadd mapping
+ - mm/huge_memory: fix vmf_insert_pfn_{pmd, pud}() crash, handle unaligned
+ addresses
+ - mm/hugetlb.c: don't put_page in lock of hugetlb_lock
+ - hugetlb: use same fault hash key for shared and private mappings
+ - ocfs2: fix ocfs2 read inode data panic in ocfs2_iget
+ - userfaultfd: use RCU to free the task struct when fork fails
+ - ACPI: PM: Set enable_for_wake for wakeup GPEs during suspend-to-idle
+ - [arm64] mfd: max77620: Fix swapped FPS_PERIOD_MAX_US values
+ - mtd: spi-nor: intel-spi: Avoid crossing 4K address boundary on read/write
+ - tty: vt.c: Fix TIOCL_BLANKSCREEN console blanking if blankinterval == 0
+ - tty/vt: fix write/write race in ioctl(KDSKBSENT) handler
+ - jbd2: check superblock mapped prior to committing
+ - ext4: make sanity check in mballoc more strict
+ - ext4: ignore e_value_offs for xattrs with value-in-ea-inode
+ - ext4: avoid drop reference to iloc.bh twice
+ - ext4: fix use-after-free race with debug_want_extra_isize
+ - ext4: actually request zeroing of inode table after grow
+ - ext4: fix ext4_show_options for file systems w/o journal
+ - btrfs: Check the first key and level for cached extent buffer
+ - btrfs: Correctly free extent buffer in case
+ btree_read_extent_buffer_pages fails
+ - Btrfs: send, flush dellaloc in order to avoid data loss
+ - Btrfs: do not start a transaction during fiemap
+ - Btrfs: do not start a transaction at iterate_extent_inodes()
+ - bcache: fix a race between cache register and cacheset unregister
+ - bcache: never set KEY_PTRS of journal key to 0 in journal_reclaim()
+ - ipmi:ssif: compare block number correctly for multi-part return messages
+ - crypto: ccm - fix incompatibility between "ccm" and "ccm_base"
+ - fs/writeback.c: use rcu_barrier() to wait for inflight wb switches going
+ into workqueue when umount
+ - ext4: fix data corruption caused by overlapping unaligned and aligned IO
+ - ext4: fix use-after-free in dx_release()
+ - ext4: avoid panic during forced reboot due to aborted journal
+ - [x86] ALSA: hda/realtek - Corrected fixup for System76 Gazelle (gaze14)
+ - ALSA: hda/realtek - Fixup headphone noise via runtime suspend
+ - [x86] ALSA: hda/realtek - Fix for Lenovo B50-70 inverted internal
+ microphone bug
+ - jbd2: fix potential double free
+ - [x86] KVM: Skip EFER vs. guest CPUID checks for host-initiated writes
+ - [x86] KVM: lapic: Busy wait for timer to expire when using hv_timer
+ - xen/pvh: set xen_domain_type to HVM in xen_pvh_init
+ - libnvdimm/namespace: Fix label tracking error
+ - iov_iter: optimize page_copy_sane()
+ - pstore: Centralize init/exit routines
+ - pstore: Allocate compression during late_initcall()
+ - pstore: Refactor compression initialization
+ - ext4: don't update s_rev_level if not required
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.46
+ - ipv6: fix src addr routing with the exception table
+ - ipv6: prevent possible fib6 leaks
+ - net: Always descend into dsa/
+ - net: avoid weird emergency message
+ - net/mlx4_core: Change the error print to info print
+ - net: test nouarg before dereferencing zerocopy pointers
+ - net: usb: qmi_wwan: add Telit 0x1260 and 0x1261 compositions
+ - nfp: flower: add rcu locks when accessing netdev for tunnels
+ - ppp: deflate: Fix possible crash in deflate_init
+ - rtnetlink: always put IFLA_LINK for links with a link-netnsid
+ - tipc: switch order of device registration to fix a crash
+ - vsock/virtio: free packets during the socket release
+ - vsock/virtio: Initialize core virtio vsock before registering the driver
+ - net/mlx5: Imply MLXFW in mlx5_core
+ - net/mlx5e: Fix ethtool rxfh commands when CONFIG_MLX5_EN_RXNFC is disabled
+ - stm class: Fix channel free in stm output free path
+ - stm class: Fix channel bitmap on 32-bit systems
+ - brd: re-enable __GFP_HIGHMEM in brd_insert_page()
+ - proc: prevent changes to overridden credentials
+ - Revert "MD: fix lock contention for flush bios"
+ - md: batch flush requests.
+ - md: add mddev->pers to avoid potential NULL pointer dereference
+ - dcache: sort the freeing-without-RCU-delay mess for good.
+ - [x86] intel_th: msu: Fix single mode with IOMMU
+ - p54: drop device reference count if fails to enable device
+ - of: fix clang -Wunsequenced for be32_to_cpu()
+ - cifs: fix strcat buffer overflow and reduce raciness in
+ smb21_set_oplock_level()
+ - [armhf] phy: ti-pipe3: fix missing bit-wise or operator when assigning
+ val
+ - NFS4: Fix v4.0 client state corruption when mount
+ - PNFS fallback to MDS if no deviceid found
+ - [arm64] clk: hi3660: Mark clk_gate_ufs_subsys as critical
+ - [armhf,arm64] clk: tegra: Fix PLLM programming on Tegra124+ when PMC
+ overrides divider
+ - [arm64] clk: rockchip: fix wrong clock definitions for rk3328
+ - udlfb: delete the unused parameter for dlfb_handle_damage
+ - udlfb: fix sleeping inside spinlock
+ - udlfb: introduce a rendering mutex
+ - fuse: fix writepages on 32bit
+ - fuse: honor RLIMIT_FSIZE in fuse_file_fallocate
+ - ovl: fix missing upper fs freeze protection on copy up for ioctl
+ - [armhf] iommu/tegra-smmu: Fix invalid ASID bits on Tegra30/114
+ - ceph: flush dirty inodes before proceeding with remount
+ - [amd64] Add gap to int3 to allow for call emulation
+ - [amd64] Allow breakpoints to emulate call instructions
+ - [amd64] ftrace: Emulate call function while updating in breakpoint
+ handler
+ - tracing: Fix partial reading of trace event's id file
+ - [armhf,arm64] memory: tegra: Fix integer overflow on tick value
+ calculation
+ - [x86] perf intel-pt: Fix instructions sampling rate
+ - [x86] perf intel-pt: Fix improved sample timestamp
+ - [x86] perf intel-pt: Fix sample timestamp wrt non-taken branches
+ - fbdev/efifb: Ignore framebuffer memmap entries that lack any memory types
+ - PCI: Mark AMD Stoney Radeon R7 GPU ATS as broken
+ - PCI: Mark Atheros AR9462 to avoid bus reset
+ - PCI: Init PCIe feature bits for managed host bridge alloc
+ - PCI/AER: Change pci_aer_init() stub to return void
+ - PCI: Factor out pcie_retrain_link() function
+ - PCI: Work around Pericom PCIe-to-PCI bridge Retrain Link erratum
+ - dm cache metadata: Fix loading discard bitset
+ - dm zoned: Fix zone report handling
+ - dm delay: fix a crash when invalid device is specified
+ - dm integrity: correctly calculate the size of metadata area
+ - dm mpath: always free attached_handler_name in parse_path()
+ - fuse: Add FOPEN_STREAM to use stream_open()
+ - xfrm: policy: Fix out-of-bound array accesses in __xfrm_policy_unlink
+ - xfrm6_tunnel: Fix potential panic when unloading xfrm6_tunnel module
+ - vti4: ipip tunnel deregistration fixes.
+ - xfrm: clean up xfrm protocol checks
+ - esp4: add length check for UDP encapsulation
+ - xfrm: Honor original L3 slave device in xfrmi policy lookup
+ - xfrm4: Fix uninitialized memory read in _decode_session4
+ - [armhf,arm64] clk: sunxi-ng: nkmp: Avoid GENMASK(-1, 0)
+ - securityfs: fix use-after-free on symlink traversal
+ - apparmorfs: fix use-after-free on symlink traversal
+ - PCI: Fix issue with "pci=disable_acs_redir" parameter being ignored
+ - [x86] kvm: hyper-v: deal with buggy TLB flush requests from WS2012
+ - mac80211: Fix kernel panic due to use of txq after free
+ - net: ieee802154: fix missing checks for regmap_update_bits
+ - [armhf,arm64] KVM: Ensure vcpu target is unset on reset failure
+ - bpf: Fix preempt_enable_no_resched() abuse
+ - qmi_wwan: new Wistron, ZTE and D-Link devices
+ - iwlwifi: mvm: check for length correctness in iwl_mvm_create_skb()
+ - sched/cpufreq: Fix kobject memleak
+ - [x86] mm/mem_encrypt: Disable all instrumentation for early SME setup
+ - ufs: fix braino in ufs_get_inode_gid() for solaris UFS flavour
+ - perf bench numa: Add define for RUSAGE_THREAD if not present
+ - [x86] perf/intel: Fix race in intel_pmu_disable_event()
+ - md/raid: raid5 preserve the writeback action after the parity check
+ - driver core: Postpone DMA tear-down until after devres release for probe
+ failure
+ - bpf: relax inode permission check for retrieving bpf program
+ - bpf: add map_lookup_elem_sys_only for lookups from syscall side
+ - bpf, lru: avoid messing with eviction heuristics upon syscall lookup
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.47
+ - [x86] Hide the int3_emulate_call/jmp functions from UML
+ - ext4: do not delete unlinked inode from orphan list on failed truncate
+ - ext4: wait for outstanding dio during truncate in nojournal mode
+ - f2fs: Fix use of number of devices
+ - [x86] KVM: fix return value for reserved EFER
+ - bio: fix improper use of smp_mb__before_atomic()
+ - sbitmap: fix improper use of smp_mb__before_atomic()
+ - Revert "scsi: sd: Keep disk read-only when re-reading partition"
+ - [ppc64el] crypto: vmx - CTR: always increment IV as quadword
+ - [arm*] mmc: sdhci-iproc: cygnus: Set NO_HISPD bit to fix HS50 data hold
+ time problem
+ - [arm*] mmc: sdhci-iproc: Set NO_HISPD bit to fix HS50 data hold time
+ problem
+ - [x86] kvm: svm/avic: fix off-by-one in checking host APIC ID
+ - libnvdimm/pmem: Bypass CONFIG_HARDENED_USERCOPY overhead
+ - [arm64] kernel: kaslr: reduce module randomization range to 2 GB
+ - [arm64] iommu: handle non-remapped addresses in ->mmap and ->get_sgtable
+ - gfs2: Fix sign extension bug in gfs2_update_stats
+ - btrfs: don't double unlock on error in btrfs_punch_hole
+ - Btrfs: do not abort transaction at btrfs_update_root() after failure to
+ COW path
+ - Btrfs: avoid fallback to transaction commit during fsync of files with
+ holes
+ - Btrfs: fix race between ranged fsync and writeback of adjacent ranges
+ - btrfs: sysfs: Fix error path kobject memory leak
+ - btrfs: sysfs: don't leak memory when failing add fsid
+ - udlfb: fix some inconsistent NULL checking
+ - fbdev: fix divide error in fb_var_to_videomode
+ - NFSv4.2 fix unnecessary retry in nfs4_copy_file_range
+ - NFSv4.1 fix incorrect return value in copy_file_range
+ - bpf: add bpf_jit_limit knob to restrict unpriv allocations
+ - [arm64] errata: Add workaround for Cortex-A76 erratum #1463225
+ - btrfs: honor path->skip_locking in backref code
+ - ovl: relax WARN_ON() for overlapping layers use case
+ - fbdev: fix WARNING in __alloc_pages_nodemask bug
+ - media: cpia2: Fix use-after-free in cpia2_exit
+ - media: serial_ir: Fix use-after-free in serial_ir_init_module
+ - media: vb2: add waiting_in_dqbuf flag
+ - media: vivid: use vfree() instead of kfree() for dev->bitmap_cap
+ - ssb: Fix possible NULL pointer dereference in ssb_host_pcmcia_exit
+ - bpf: devmap: fix use-after-free Read in __dev_map_entry_free
+ - batman-adv: mcast: fix multicast tt/tvlv worker locking
+ - at76c50x-usb: Don't register led_trigger if usb_register_driver failed
+ - acct_on(): don't mess with freeze protection
+ - gfs2: Fix lru_count going negative
+ - cxgb4: Fix error path in cxgb4_init_module
+ - NFS: make nfs_match_client killable
+ - IB/hfi1: Fix WQ_MEM_RECLAIM warning
+ - gfs2: Fix occasional glock use-after-free
+ - mmc: core: Verify SD bus width
+ - [arm64] dmaengine: tegra210-dma: free dma controller in remove()
+ - net: ena: gcc 8: fix compilation warning
+ - [x86] hv_netvsc: fix race that may miss tx queue wakeup
+ - Bluetooth: Ignore CC events not matching the last HCI command
+ - [x86] ASoC: Intel: kbl_da7219_max98357a: Map BTN_0 to KEY_PLAYPAUSE
+ - [armhf,arm64] usb: dwc2: gadget: Increase descriptors count for ISOC's
+ - [armhf,arm64] usb: dwc3: move synchronize_irq() out of the spinlock
+ protected block
+ - ASoC: hdmi-codec: unlock the device on startup errors
+ - [ppc64el] perf: Return accordingly on invalid chip-id in
+ - [ppc64el] boot: Fix missing check of lseek() return value
+ - [ppc64el] perf: Fix loop exit condition in nest_imc_event_init
+ - [armhf] ASoC: imx: fix fiq dependencies
+ - [amd64] spi: pxa2xx: fix SCR (divisor) calculation
+ - brcm80211: potential NULL dereference in
+ brcmf_cfg80211_vndr_cmds_dcmd_handler()
+ - ACPI / property: fix handling of data_nodes in acpi_get_next_subnode()
+ - drm/nouveau/bar/nv50: ensure BAR is mapped
+ - [armel,armhf] vdso: Remove dependency with the arch_timer driver
+ internals
+ - [ppc64el] watchdog: Use hrtimers for per-CPU heartbeat
+ - sched/cpufreq: Fix kobject memleak
+ - scsi: qla2xxx: Fix a qla24xx_enable_msix() error path
+ - scsi: qla2xxx: Fix abort handling in tcm_qla2xxx_write_pending()
+ - scsi: qla2xxx: Avoid that lockdep complains about unsafe locking in
+ tcm_qla2xxx_close_session()
+ - scsi: qla2xxx: Fix hardirq-unsafe locking
+ - [x86] modules: Avoid breaking W^X while loading modules
+ - Btrfs: fix data bytes_may_use underflow with fallocate due to failed
+ quota reserve
+ - btrfs: fix panic during relocation after ENOSPC before writeback happens
+ - btrfs: Don't panic when we can't find a root key
+ - iwlwifi: pcie: don't crash on invalid RX interrupt
+ - scsi: qedi: Abort ep termination if offload not scheduled
+ - [s390x] kexec_file: Fix detection of text segment in ELF loader
+ - sched/nohz: Run NOHZ idle load balancer on HK_FLAG_MISC CPUs
+ - w1: fix the resume command API
+ - [s390x] qeth: address type mismatch warning
+ - [armhf,arm64] dmaengine: pl330: _stop: clear interrupt status
+ - mac80211/cfg80211: update bss channel on channel switch
+ - mwifiex: prevent an array overflow
+ - rsi: Fix NULL pointer dereference in kmalloc
+ - nvme: set 0 capacity if namespace block size exceeds PAGE_SIZE
+ - nvme-rdma: fix a NULL deref when an admin connect times out
+ - [armhf,arm64] crypto: sun4i-ss - Fix invalid calculation of hash end
+ - bcache: avoid potential memleak of list of journal_replay(s) in the
+ CACHE_SYNC branch of run_cache_set
+ - bcache: return error immediately in bch_journal_replay()
+ - bcache: fix failure in journal relplay
+ - bcache: add failure check to run_cache_set() for journal replay
+ - bcache: avoid clang -Wunintialized warning
+ - RDMA/cma: Consider scope_id while binding to ipv6 ll address
+ - vfio-ccw: Do not call flush_workqueue while holding the spinlock
+ - vfio-ccw: Release any channel program when releasing/removing vfio-ccw
+ mdev
+ - [x86] mm: Remove in_nmi() warning from 64-bit implementation of
+ vmalloc_fault()
+ - mm/uaccess: Use 'unsigned long' to placate UBSAN warnings on older GCC
+ versions
+ - Bluetooth: hci_qca: Give enough time to ROME controller to bootup.
+ - HID: logitech-hidpp: use RAP instead of FAP to get the protocol version
+ - [armhf] pinctrl: samsung: fix leaked of_node references
+ - [armhf] clk: rockchip: undo several noc and special clocks as critical on
+ rk3288
+ - [arm64] perf/arm-cci: Remove broken race mitigation
+ - media: au0828: stop video streaming only when last user stops
+ - audit: fix a memory leak bug
+ - media: au0828: Fix NULL pointer dereference in
+ au0828_analog_stream_enable()
+ - media: pvrusb2: Prevent a buffer overflow
+ - block: fix use-after-free on gendisk
+ - [ppc64el] numa: improve control of topology updates
+ - [ppc64el] Fix booting large kernels with STRICT_KERNEL_RWX
+ - random: fix CRNG initialization when random.trust_cpu=1
+ - random: add a spinlock_t to struct batched_entropy
+ - cgroup: protect cgroup->nr_(dying_)descendants by css_set_lock
+ - sched/core: Check quota and period overflow at usec to nsec conversion
+ - sched/rt: Check integer overflow at usec to nsec conversion
+ - sched/core: Handle overflow in cpu_shares_write_u64
+ - [arm*] staging: vc04_services: handle kzalloc failure
+ - [arm64] drm/msm: a5xx: fix possible object reference leak
+ - irq_work: Do not raise an IPI when queueing work on the local CPU
+ - [x86] thunderbolt: Take domain lock in switch sysfs attribute callbacks
+ - [s390x] qeth: handle error from qeth_update_from_chp_desc()
+ - USB: core: Don't unbind interfaces following device reset failure
+ - [amd64] irq: Limit IST stack overflow check to #DB stack
+ - [armhf] drm: etnaviv: avoid DMA API warning when importing buffers
+ - [armhf,arm64] phy: sun4i-usb: Make sure to disable PHY0 passby for
+ peripheral mode
+ - i40e: Able to add up to 16 MAC filters on an untrusted VF
+ - i40e: don't allow changes to HW VLAN stripping on active port VLANs
+ - ACPI/IORT: Reject platform device creation on NUMA node mapping failure
+ - [arm64] vdso: Fix clock_getres() for CLOCK_REALTIME
+ - RDMA/cxgb4: Fix null pointer dereference on alloc_skb failure
+ - [x86] perf/msr: Add Icelake support
+ - [x86] perf/intel/rapl: Add Icelake support
+ - [x86] perf/intel/cstate: Add Icelake support
+ - hwmon: (vt1211) Use request_muxed_region for Super-IO accesses
+ - hwmon: (smsc47m1) Use request_muxed_region for Super-IO accesses
+ - hwmon: (smsc47b397) Use request_muxed_region for Super-IO accesses
+ - hwmon: (pc87427) Use request_muxed_region for Super-IO accesses
+ - hwmon: (f71805f) Use request_muxed_region for Super-IO accesses
+ - scsi: libsas: Do discovery on empty PHY to update PHY info
+ - mmc: core: make pwrseq_emmc (partially) support sleepy GPIO controllers
+ - [armhf,arm64] mmc_spi: add a status check for spi_sync_locked
+ - drm/amdgpu: fix old fence check in amdgpu_fence_emit
+ - PM / core: Propagate dev->power.wakeup_path when no callbacks
+ - [armhf] clk: rockchip: Fix video codec clocks on rk3288
+ - [armhf] clk: rockchip: Make rkpwm a critical clock on rk3288
+ - [s390x] zcrypt: initialize variables before_use
+ - [x86] microcode: Fix the ancient deprecated microcode loading method
+ - [s390x] mm: silence compiler warning when compiling without CONFIG_PGSTE
+ - [s390x] cio: fix cio_irb declaration
+ - qmi_wwan: Add quirk for Quectel dynamic config
+ - block: sed-opal: fix IOC_OPAL_ENABLE_DISABLE_MBR
+ - rtlwifi: fix a potential NULL pointer dereference
+ - mwifiex: Fix mem leak in mwifiex_tm_cmd
+ - brcmfmac: fix missing checks for kmemdup
+ - b43: shut up clang -Wuninitialized variable warning
+ - brcmfmac: convert dev_init_lock mutex to completion
+ - brcmfmac: fix WARNING during USB disconnect in case of unempty psq
+ - brcmfmac: fix race during disconnect when USB completion is in progress
+ - brcmfmac: fix Oops when bringing up interface during USB disconnect
+ - [arm64] rtc: xgene: fix possible race condition
+ - rtlwifi: fix potential NULL pointer dereference
+ - scsi: ufs: Fix regulator load and icc-level configuration
+ - scsi: ufs: Avoid configuring regulator with undefined voltage range
+ - [arm64] cpu_ops: fix a leaked reference by adding missing of_node_put
+ - wil6210: fix return code of wmi_mgmt_tx and wmi_mgmt_tx_ext
+ - [x86] uaccess, signal: Fix AC=1 bloat
+ - [amd64] ia32: Fix ia32_restore_sigcontext() AC leak
+ - [x86] uaccess: Fix up the fixup
+ - chardev: add additional check for minor range overlap
+ - [arm64] RDMA/hns: Fix bad endianess of port_pd variable
+ - HID: core: move Usage Page concatenation to Main item
+ - [armhf] ASoC: eukrea-tlv320: fix a leaked reference by adding missing
+ of_node_put
+ - cxgb3/l2t: Fix undefined behaviour
+ - HID: logitech-hidpp: change low battery level threshold from 31 to 30
+ percent
+ - [armhf] spi: tegra114: reset controller on probe
+ - kobject: Don't trigger kobject_uevent(KOBJ_REMOVE) twice.
+ - [armhf] media: wl128x: prevent two potential buffer overflows
+ - media: gspca: Kill URBs on USB device disconnect
+ - efifb: Omit memory map check on legacy boot
+ - [x86] thunderbolt: property: Fix a missing check of kzalloc
+ - [x86] thunderbolt: Fix to check the return value of kmemdup
+ - timekeeping: Force upper bound for setting CLOCK_REALTIME
+ - scsi: qedf: Add missing return in qedf_post_io_req() in the fcport
+ offload check
+ - virtio_console: initialize vtermno value for ports
+ - tty: ipwireless: fix missing checks for ioremap
+ - overflow: Fix -Wtype-limits compilation warnings
+ - [x86] mce: Fix machine_check_poll() tests for error types
+ - rcutorture: Fix cleanup path for invalid torture_type strings
+ - [x86] mce: Handle varying MCA bank counts
+ - rcuperf: Fix cleanup path for invalid perf_type strings
+ - usb: core: Add PM runtime calls to usb_hcd_platform_shutdown
+ - scsi: qla4xxx: avoid freeing unallocated dma memory
+ - scsi: lpfc: avoid uninitialized variable warning
+ - selinux: avoid uninitialized variable warning
+ - batman-adv: allow updating DAT entry timeouts on incoming ARP Replies
+ - dmaengine: tegra210-adma: use devm_clk_*() helpers
+ - [armhf] hwrng: omap - Set default quality
+ - [x86] thunderbolt: Fix to check return value of ida_simple_get
+ - [x86] thunderbolt: Fix to check for kmemdup failure
+ - drm/amd/display: fix releasing planes when exiting odm
+ - [x86] thunderbolt: property: Fix a NULL pointer dereference
+ - e1000e: Disable runtime PM on CNP+
+ - igb: Exclude device from suspend direct complete optimization
+ - media: dvbsky: Avoid leaking dvb frontend
+ - drm/amd/display: Fix Divide by 0 in memory calculations
+ - drm/amd/display: Set stream->mode_changed when connectors change
+ - scsi: ufs: fix a missing check of devm_reset_control_get
+ - media: gspca: do not resubmit URBs when streaming has stopped
+ - media: go7007: avoid clang frame overflow warning with KASAN
+ - scsi: lpfc: Fix FDMI manufacturer attribute value
+ - scsi: lpfc: Fix fc4type information for FDMI
+ - media: saa7146: avoid high stack usage with clang
+ - scsi: lpfc: Fix SLI3 commands being issued on SLI4 devices
+ - [i386] spi : spi-topcliff-pch: Fix to handle empty DMA buffers
+ - [armhf] drm/omap: dsi: Fix PM for display blank with paired dss_pll calls
+ - [armhf] spi: imx: stop buffer overflow in RX FIFO flush
+ - spi: Fix zero length xfer bug
+ - [armhf] ASoC: davinci-mcasp: Fix clang warning without CONFIG_PM
+ - drm/drv: Hold ref on parent device during drm_device lifetime
+ - drm: Wake up next in drm_read() chain if we are forced to putback the
+ event
+ - [s390x] vfio-ccw: Prevent quiesce function going into an infinite loop
+ - NFS: Fix a double unlock from nfs_match,get_client
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.48
+ - bonding/802.3ad: fix slave link initialization transition states
+ - cxgb4: offload VLAN flows regardless of VLAN ethtype
+ - ipv4/igmp: fix another memory leak in igmpv3_del_delrec()
+ - ipv4/igmp: fix build error if !CONFIG_IP_MULTICAST
+ - ipv6: Consider sk_bound_dev_if when binding a raw socket to an address
+ - ipv6: Fix redirect with VRF
+ - llc: fix skb leak in llc_build_and_send_ui_pkt()
+ - [armhf,arm64] net: dsa: mv88e6xxx: fix handling of upper half of
+ STATS_TYPE_PORT
+ - net-gro: fix use-after-free read in napi_gro_frags()
+ - [armhf,arm64] net: mvneta: Fix err code path of probe
+ - [armhf,arm64] net: mvpp2: fix bad MVPP2_TXQ_SCHED_TOKEN_CNTR_REG queue
+ value
+ - net: phy: marvell10g: report if the PHY fails to boot firmware
+ - net: sched: don't use tc_action->order during action dump
+ - [armhf,arm64] net: stmmac: fix reset gpio free missing
+ - usbnet: fix kernel crash after disconnect
+ - net/mlx5: Avoid double free in fs init error unwinding path
+ - tipc: Avoid copying bytes beyond the supplied data
+ - net/mlx5: Allocate root ns memory using kzalloc to match kfree
+ - net/mlx5e: Disable rxhash when CQE compress is enabled
+ - [armhf,arm64] net: stmmac: dma channel control register need to be init
+ first
+ - bnxt_en: Fix aggregation buffer leak under OOM condition.
+ - [ppc64el] crypto: vmx - ghash: do nosimd fallback manually
+ - include/linux/compiler*.h: define asm_volatile_goto
+ - compiler.h: give up __compiletime_assert_fallback()
+ - jump_label: move 'asm goto' support test to Kconfig
+ - tipc: fix modprobe tipc failed after switch order of device registration
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.49
+ - include/linux/bitops.h: sanitize rotate primitives
+ - xhci: update bounce buffer with correct sg num
+ - xhci: Use %zu for printing size_t type
+ - xhci: Convert xhci_handshake() to use readl_poll_timeout_atomic()
+ - usb: xhci: avoid null pointer deref when bos field is NULL
+ - usbip: usbip_host: fix BUG: sleeping function called from invalid context
+ - usbip: usbip_host: fix stub_dev lock context imbalance regression
+ - USB: Fix slab-out-of-bounds write in usb_get_bos_descriptor
+ - USB: sisusbvga: fix oops in error path of sisusb_probe (CVE-2019-15219)
+ - USB: Add LPM quirk for Surface Dock GigE adapter
+ - USB: rio500: refuse more than one device at a time (CVE-2019-15212)
+ - USB: rio500: fix memory leak in close after disconnect
+ - media: usb: siano: Fix general protection fault in smsusb
+ (CVE-2019-15218)
+ - media: usb: siano: Fix false-positive "uninitialized variable" warning
+ - media: smsusb: better handle optional alignment
+ - brcmfmac: fix NULL pointer derefence during USB disconnect
+ - [s390x] scsi: zfcp: fix missing zfcp_port reference put on -EBUSY from
+ port_remove
+ - [s390x] scsi: zfcp: fix to prevent port_remove with pure auto scan LUNs
+ (only sdevs)
+ - tracing: Avoid memory leak in predicate_parse()
+ - Btrfs: fix wrong ctime and mtime of a directory after log replay
+ - Btrfs: fix race updating log root item during fsync
+ - Btrfs: fix fsync not persisting changed attributes of a directory
+ - Btrfs: incremental send, fix file corruption when no-holes feature is
+ enabled
+ - [s390x] crypto: fix gcm-aes-s390 selftest failures
+ - [s390x] crypto: fix possible sleep during spinlock aquired
+ - [ppc64el] KVM: Book3S HV: XIVE: Do not clear IRQ data of passthrough
+ interrupts
+ - [ppc64el] perf: Fix MMCRA corruption by bhrb_filter
+ - ALSA: line6: Assure canceling delayed work at disconnection
+ (CVE-2019-15223)
+ - ALSA: hda/realtek - Set default power save node to 0
+ - [s390x] KVM: Do not report unusabled IDs via KVM_CAP_MAX_VCPU_ID
+ - drm/nouveau/i2c: Disable i2c bus access after ->fini()
+ - [arm64] tty: serial: msm_serial: Fix XON/XOFF
+ - memcg: make it work on sparse non-0-node systems
+ - kernel/signal.c: trace_signal_deliver when signal_group_exit
+ - [arm64] Fix the arm64_personality() syscall wrapper redirection
+ - vt/fbcon: deinitialize resources in visual_init() after failed memory
+ allocation
+ - [arm*] staging: vc04_services: prevent integer overflow in
+ create_pagelist()
+ - [x86] staging: wlan-ng: fix adapter initialization failure
+ - cifs: fix memory leak of pneg_inbuf on -EOPNOTSUPP ioctl case
+ - CIFS: cifs_read_allocate_pages: don't iterate through whole page array on
+ ENOMEM
+ - Revert "lockd: Show pid of lockd for remote locks"
+ - [armhf,arm64] drm/tegra: gem: Fix CPU-cache maintenance for BO's
+ allocated using get_pages()
+ - [x86] drm/vmwgfx: Don't send drm sysfs hotplug events on initial master
+ set
+ - [armhf,arm64] drm/sun4i: Fix sun8i HDMI PHY clock initialization
+ - [armhf,arm64] drm/sun4i: Fix sun8i HDMI PHY configuration for > 148.5 MHz
+ - [armhf,arm64] drm/rockchip: shutdown drm subsystem on shutdown
+ - drm/lease: Make sure implicit planes are leased
+ - [x86] ftrace: Do not call function graph from dynamic trampolines
+ - [x86] ftrace: Set trampoline pages as executable
+ - [x86] kprobes: Set instruction page as executable
+ - scsi: lpfc: Fix backport of faf5a744f4f8 ("scsi: lpfc: avoid
+ uninitialized variable warning")
+ - media: uvcvideo: Fix uvc_alloc_entity() allocation alignment
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.50
+ - ethtool: fix potential userspace buffer overflow
+ - Fix memory leak in sctp_process_init
+ - ipv4: not do cache for local delivery if bc_forwarding is enabled
+ - ipv6: fix the check before getting the cookie in rt6_get_cookie
+ - neighbor: Call __ipv4_neigh_lookup_noref in neigh_xmit
+ - [armhf] net: ethernet: ti: cpsw_ethtool: fix ethtool ring param set
+ - net/mlx4_en: ethtool, Remove unsupported SFP EEPROM high pages query
+ - [armhf,arm64] net: mvpp2: Use strscpy to handle stat strings
+ - net: rds: fix memory leak in rds_ib_flush_mr_pool
+ - net: sfp: read eeprom in maximum 16 byte increments
+ - packet: unconditionally free po->rollover
+ - pktgen: do not sleep with the thread lock held.
+ - ipv6: use READ_ONCE() for inet->hdrincl as in ipv4
+ - ipv6: fix EFAULT on sendto with icmpv6 and hdrincl
+ - rcu: locking and unlocking need to always be at least barriers
+ - NFSv4.1: Again fix a race where CB_NOTIFY_LOCK fails to wake a waiter
+ - NFSv4.1: Fix bug only first CB_NOTIFY_LOCK is handled
+ - fuse: fallocate: fix return with locked inode
+ - pstore: Remove needless lock during console writes
+ - pstore: Convert buf_lock to semaphore
+ - pstore: Set tfm to NULL on free_buf_for_compression
+ - pstore/ram: Run without kernel crash dump region
+ - [x86] power: Fix 'nosmt' vs hibernation triple fault during resume
+ - [s390x] mm: fix address space detection in exception handling
+ - xen-blkfront: switch kcalloc to kvcalloc for large array allocation
+ - [ppc64el] genwqe: Prevent an integer overflow in the ioctl
+ - test_firmware: Use correct snprintf() limit
+ - [x86] drm/gma500/cdv: Check vbt config bits when detecting lvds panels
+ - [arm64] drm/msm: fix fb references in async update
+ - drm: add non-desktop quirk for Valve HMDs
+ - drm: add non-desktop quirks to Sensics and OSVR headsets.
+ - drm/amdgpu/psp: move psp version specific function pointers to early_init
+ - drm/radeon: prefer lower reference dividers
+ - drm/amdgpu: remove ATPX_DGPU_REQ_POWER_FOR_DISPLAYS check when hotplug-in
+ - [x86] drm/i915: Fix I915_EXEC_RING_MASK
+ - [x86] drm/i915/fbc: disable framebuffer compression on GeminiLake
+ - [x86] drm/i915: Maintain consistent documentation subsection ordering
+ - drm: don't block fb changes for async plane updates
+ - [x86] drm/i915/gvt: Initialize intel_gvt_gtt_entry in stack
+ - TTY: serial_core, add ->install
+ - ipv4: Define __ipv4_neigh_lookup_noref when CONFIG_INET is disabled
+ - ethtool: check the return value of get_regs_len
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.51
+ - fs/fat/file.c: issue flush after the writeback of FAT
+ - sysctl: return -EINVAL if val violates minmax
+ - ipc: prevent lockup on alloc_msg and free_msg
+ - [armhf] prevent tracing IPI_CPU_BACKTRACE
+ - hugetlbfs: on restore reserve error path retain subpool reservation
+ - mem-hotplug: fix node spanned pages when we have a node with only
+ ZONE_MOVABLE
+ - mm/cma.c: fix crash on CMA allocation if bitmap allocation fails
+ - initramfs: free initrd memory if opening /initrd.image fails
+ - mm/cma.c: fix the bitmap status to show failed allocation reason
+ - mm: page_mkclean vs MADV_DONTNEED race
+ - mm/cma_debug.c: fix the break condition in cma_maxchunk_get()
+ - mm/slab.c: fix an infinite loop in leaks_show()
+ - kernel/sys.c: prctl: fix false positive in validate_prctl_map()
+ - drivers: thermal: tsens: Don't print error message on -EPROBE_DEFER
+ - [x86] mfd: intel-lpss: Set the device in reset state when init
+ - drm/nouveau/disp/dp: respect sink limits when selecting failsafe link
+ configuration
+ - [armhf] mfd: twl6040: Fix device init errors for ACCCTL register
+ - [x86] perf/intel: Allow PEBS multi-entry in watermark mode
+ - drm/nouveau/kms/gf119-gp10x: push HeadSetControlOutputResource() mthd
+ when encoders change
+ - [arm64] drm/bridge: adv7511: Fix low refresh rate selection
+ - objtool: Don't use ignore flag for fake jumps
+ - drm/nouveau/kms/gv100-: fix spurious window immediate interlocks
+ - bpf: fix undefined behavior in narrow load handling
+ - [arm64] pwm: meson: Use the spin-lock only to protect register
+ modifications
+ - ntp: Allow TAI-UTC offset to be set to zero
+ - f2fs: fix to avoid panic in do_recover_data()
+ - f2fs: fix to avoid panic in f2fs_inplace_write_data()
+ - f2fs: fix to avoid panic in f2fs_remove_inode_page()
+ - f2fs: fix to do sanity check on free nid
+ - f2fs: fix to clear dirty inode in error path of f2fs_iget()
+ - f2fs: fix to avoid panic in dec_valid_block_count()
+ - f2fs: fix to use inline space only if inline_xattr is enable
+ - f2fs: fix to do sanity check on valid block count of segment
+ - f2fs: fix to do checksum even if inode page is uptodate
+ - percpu: remove spurious lock dependency between percpu and sched
+ - configfs: fix possible use-after-free in configfs_register_group
+ - [armhf,arm64] PCI: dwc: Free MSI in dw_pcie_host_init() error path
+ - [armhf,arm64] PCI: dwc: Free MSI IRQ page in dw_pcie_free_msi()
+ - ovl: do not generate duplicate fsnotify events for "fake" path
+ - mmc: mmci: Prevent polling for busy detection in IRQ context
+ - netfilter: nf_flow_table: fix missing error check for
+ rhashtable_insert_fast
+ - netfilter: nf_conntrack_h323: restore boundary check correctness
+ - [mips*] Make sure dt memory regions are valid
+ - netfilter: nf_tables: fix base chain stat rcu_dereference usage
+ - [armhf] watchdog: imx2_wdt: Fix set_timeout for big timeout values
+ - watchdog: fix compile time error of pretimeout governors
+ - blk-mq: move cancel of requeue_work into blk_mq_release
+ - [x86] iommu/vt-d: Set intel_iommu_gfx_mapped correctly
+ - nvme-pci: unquiesce admin queue on shutdown
+ - nvme-pci: shutdown on timeout during deletion
+ - netfilter: nf_flow_table: check ttl value in flow offload data path
+ - netfilter: nf_flow_table: fix netdev refcnt leak
+ - ALSA: hda - Register irq handler after the chip initialization
+ - nvmem: core: fix read buffer in place
+ - [armhf,arm64] nvmem: sunxi_sid: Support SID on A83T and H5
+ - fuse: retrieve: cap requested size to negotiated max_write
+ - nfsd: allow fh_want_write to be called twice
+ - nfsd: avoid uninitialized variable warning
+ - vfio: Fix WARNING "do not call blocking ops when !TASK_RUNNING"
+ - [armhf,arm64] iommu/arm-smmu-v3: Don't disable SMMU in kdump kernel
+ - [x86] net: thunderbolt: Unregister ThunderboltIP protocol handler when
+ suspending
+ - [x86] PCI: Fix PCI IRQ routing table memory leak
+ - i40e: Queues are reserved despite "Invalid argument" error
+ - platform/chrome: cros_ec_proto: check for NULL transfer function
+ - [armhf] clk: rockchip: Turn on "aclk_dmac1" for suspend on rk3288
+ - [armhf] soc: rockchip: Set the proper PWM for rk3288
+ - [armhf] dts: imx51: Specify IMX5_CLK_IPG as "ahb" clock to SDMA
+ - [armhf] dts: imx50: Specify IMX5_CLK_IPG as "ahb" clock to SDMA
+ - [armhf] dts: imx53: Specify IMX5_CLK_IPG as "ahb" clock to SDMA
+ - [armhf] dts: imx6sx: Specify IMX6SX_CLK_IPG as "ahb" clock to SDMA
+ - [armhf] dts: imx6sll: Specify IMX6SLL_CLK_IPG as "ipg" clock to SDMA
+ - [armhf] dts: imx6ul: Specify IMX6UL_CLK_IPG as "ipg" clock to SDMA
+ - [armhf] dts: imx6sx: Specify IMX6SX_CLK_IPG as "ipg" clock to SDMA
+ - [armhf] dts: imx6qdl: Specify IMX6QDL_CLK_IPG as "ipg" clock to SDMA
+ - [ppc64el] PCI: rpadlpar: Fix leaked device_node references in add/remove
+ paths
+ - drm/amd/display: Use plane->color_space for dpp if specified
+ - [armhf] OMAP2+: pm33xx-core: Do not Turn OFF CEFUSE as PPA may be using
+ it
+ - [x86] platform: intel_pmc_ipc: adding error handling
+ - [arm64] net: hns3: return 0 and print warning when hit duplicate MAC
+ - scsi: qla2xxx: Reset the FCF_ASYNC_{SENT|ACTIVE} flags
+ - [x86] video: hgafb: fix potential NULL pointer dereference
+ - block, bfq: increase idling for weight-raised queues
+ - [arm64] PCI: xilinx: Check for __get_free_pages() failure
+ - ice: Add missing case in print_link_msg for printing flow control
+ - [x86] dmaengine: idma64: Use actual device for DMA transfers
+ - [armhf] pwm: tiehrpwm: Update shadow register for disabling PWMs
+ - [armhf] dts: exynos: Always enable necessary APIO_1V8 and ABB_1V8
+ regulators on Arndale Octa
+ - pwm: Fix deadlock warning when removing PWM device
+ - [armhf] exynos: Fix undefined instruction during Exynos5422 resume
+ - [x86] usb: typec: fusb302: Check vconn is off when we start toggling
+ - soc: renesas: Identify R-Car M3-W ES1.3
+ - percpu: do not search past bitmap when allocating an area
+ - ovl: check the capability before cred overridden
+ - ovl: support stacked SEEK_HOLE/SEEK_DATA
+ - [arm*] drm/vc4: fix fb references in async update
+ - ALSA: seq: Cover unsubscribe_port() in list_mutex
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.52
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.53
+ - drm/nouveau: add kconfig option to turn off nouveau legacy contexts. (v3)
+ - nouveau: Fix build with CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT disabled
+ - HID: multitouch: handle faulty Elo touch device
+ - HID: wacom: Don't set tool type until we're in range
+ - HID: wacom: Don't report anything prior to the tool entering range
+ - HID: wacom: Send BTN_TOUCH in response to INTUOSP2_BT eraser contact
+ - HID: wacom: Correct button numbering 2nd-gen Intuos Pro over Bluetooth
+ - HID: wacom: Sync INTUOSP2_BT touch state after each frame if necessary
+ - ALSA: oxfw: allow PCM capture for Stanton SCS.1m
+ - ALSA: hda/realtek - Update headset mode for ALC256
+ - ALSA: firewire-motu: fix destruction of data for isochronous resources
+ - libata: Extend quirks for the ST1000LM024 drives with NOLPM quirk
+ - mm/list_lru.c: fix memory leak in __memcg_init_list_lru_node
+ - fs/ocfs2: fix race in ocfs2_dentry_attach_lock()
+ - mm/vmscan.c: fix trying to reclaim unevictable LRU page
+ - signal/ptrace: Don't leak unitialized kernel memory with
+ PTRACE_PEEK_SIGINFO
+ - ptrace: restore smp_rmb() in __ptrace_may_access()
+ - [armhf,arm64] iommu/arm-smmu: Avoid constant zero in TLBI writes
+ - bcache: fix stack corruption by PRECEDING_KEY()
+ - bcache: only set BCACHE_DEV_WB_RUNNING when cached device attached
+ - cgroup: Use css_tryget() instead of css_tryget_online() in task_get_css()
+ - [x86] drm/i915/sdvo: Implement proper HDMI audio support for SDVO
+ - ALSA: seq: Fix race of get-subscription call vs port-delete ioctls
+ - Drivers: misc: fix out-of-bounds access in function param_set_kgdbts_var
+ - f2fs: fix to avoid accessing xattr across the boundary
+ - scsi: qedi: remove memset/memcpy to nfunc and use func instead
+ (CVE-2019-15090)
+ - scsi: qedi: remove set but not used variables 'cdev' and 'udev'
+ - scsi: lpfc: correct rcu unlock issue in lpfc_nvme_info_show
+ - scsi: lpfc: add check for loss of ndlp when sending RRQ
+ - [arm64] mm: Inhibit huge-vmap with ptdump
+ - nvme: fix srcu locking on error return in nvme_get_ns_from_disk
+ - nvme: remove the ifdef around nvme_nvm_ioctl
+ - nvme: merge nvme_ns_ioctl into nvme_ioctl
+ - nvme: release namespace SRCU protection before performing controller
+ ioctls
+ - nvme: fix memory leak for power latency tolerance
+ - [x86] platform: pmc_atom: Add Lex 3I380D industrial PC to critclk_systems
+ DMI table
+ - [x86] platform: pmc_atom: Add several Beckhoff Automation boards to
+ critclk_systems DMI table
+ - scsi: bnx2fc: fix incorrect cast to u64 on shift operation
+ - libnvdimm: Fix compilation warnings with W=1
+ - tracing: Prevent hist_field_var_ref() from accessing NULL tracing_map_elts
+ - usbnet: ipheth: fix racing condition
+ - [armhf,arm64] KVM: Move cc/it checks under hyp's Makefile to avoid
+ instrumentation
+ - [x86] KVM: pmu: mask the result of rdpmc according to the width of the
+ counters
+ - [x86] KVM: pmu: do not mask the value that is written to fixed PMUs
+ - [s390x] KVM: fix memory slot handling for KVM_SET_USER_MEMORY_REGION
+ - [x86] drm/vmwgfx: integer underflow in vmw_cmd_dx_set_shader() leading to
+ an invalid read
+ - [x86] drm/vmwgfx: NULL pointer dereference from vmw_cmd_dx_view_define()
+ - [armhf,arm64] usb: dwc2: Fix DMA cache alignment issues
+ - [armhf,arm64] usb: dwc2: host: Fix wMaxPacketSize handling (fix webcam
+ regression)
+ - USB: Fix chipmunk-like voice when using Logitech C270 for recording
+ audio.
+ - USB: usb-storage: Add new ID to ums-realtek
+ - USB: serial: pl2303: add Allied Telesis VT-Kit3
+ - USB: serial: option: add support for Simcom SIM7500/SIM7600 RNDIS mode
+ - USB: serial: option: add Telit 0x1260 and 0x1261 compositions
+ - timekeeping: Repair ktime_get_coarse*() granularity
+ - [x86] microcode, cpuhotplug: Add a microcode loader CPU hotplug callback
+ - [x86] mm/KASLR: Compute the size of the vmemmap section properly
+ - [x86] resctrl: Prevent NULL pointer dereference when local MBM is disabled
+ - drm/edid: abstract override/firmware EDID retrieval
+ - drm: add fallback override/firmware EDID modes workaround
+ - [armhf] rtc: pcf8523: don't return invalid date when battery is low
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.54
+ - ax25: fix inconsistent lock state in ax25_destroy_timer
+ - be2net: Fix number of Rx queues used for flow hashing
+ - [x86] hv_netvsc: Set probe mode to sync
+ - ipv6: flowlabel: fl6_sock_lookup() must use atomic_inc_not_zero
+ - lapb: fixed leak of control-blocks.
+ - neigh: fix use-after-free read in pneigh_get_next
+ - net: openvswitch: do not free vport if register_netdevice() is failed.
+ - sctp: Free cookie before we memdup a new one
+ - tipc: purge deferredq list for each grp member in tipc_group_delete
+ - vsock/virtio: set SOCK_DONE on peer shutdown
+ - net/mlx5: Avoid reloading already removed devices
+ - [armhf,arm64] net: mvpp2: prs: Fix parser range for VID filtering
+ - [armhf,arm64] net: mvpp2: prs: Use the correct helpers when removing all
+ VID filters
+ - [arm*] Staging: vc04_services: Fix a couple error codes
+ - [x86] perf/intel/ds: Fix EVENT vs. UEVENT PEBS constraints
+ - netfilter: nf_queue: fix reinject verdict handling
+ - ipvs: Fix use-after-free in ip_vs_in
+ - [armhf] clk: ti: clkctrl: Fix clkdm_clk handling
+ - [ppc64el] powernv: Return for invalid IMC domain
+ - usb: xhci: Fix a potential null pointer dereference in
+ xhci_debugfs_create_endpoint()
+ - mISDN: make sure device name is NUL terminated
+ - [x86] CPU/AMD: Don't force the CPB cap when running under a hypervisor
+ - perf/ring_buffer: Fix exposing a temporarily decreased data_head
+ - perf/ring_buffer: Add ordering to rb->nest increment
+ - perf/ring-buffer: Always use {READ,WRITE}_ONCE() for rb->user_page data
+ - [armhf,arm64] net: stmmac: update rx tail pointer register to fix rx dma
+ hang issue.
+ - ACPI/PCI: PM: Add missing wakeup.flags.valid checks
+ - [armhf] drm/etnaviv: lock MMU while dumping core
+ - net: aquantia: tx clean budget logic error
+ - net: aquantia: fix LRO with FCS error
+ - i2c: dev: fix potential memory leak in i2cdev_ioctl_rdwr
+ - ALSA: hda - Force polling mode on CNL for fixing codec communication
+ - configfs: Fix use-after-free when accessing sd->s_dentry
+ - perf data: Fix 'strncat may truncate' build failure with recent gcc
+ - perf namespace: Protect reading thread's namespace
+ - [s390x] perf record: Fix s390 missing module symbol and warning for
+ non-root users
+ - xenbus: Avoid deadlock during suspend due to open transactions
+ - [ppc64el] KVM: Book3S: Use new mutex to synchronize access to rtas token
+ list
+ - [ppc64el] KVM: Book3S HV: Don't take kvm->lock around kvm_for_each_vcpu
+ - [arm64] fix syscall_fn_t type
+ - [arm64] use the correct function type in SYSCALL_DEFINE0
+ - [arm64] use the correct function type for __arm64_sys_ni_syscall
+ - net: phylink: ensure consistent phy interface mode
+ - net: phy: dp83867: Set up RGMII TX delay
+ - scsi: libcxgbi: add a check for NULL pointer in cxgbi_check_route()
+ - scsi: smartpqi: properly set both the DMA mask and the coherent DMA mask
+ - scsi: scsi_dh_alua: Fix possible null-ptr-deref
+ - scsi: libsas: delete sas port if expander discover failed
+ - ocfs2: fix error path kobject memory leak
+ - coredump: fix race condition between collapse_huge_page() and core dumping
+ - Abort file_remove_privs() for non-reg. files
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.55
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.56
+ - tracing: Silence GCC 9 array bounds warning
+ - objtool: Support per-function rodata sections
+ - ovl: support the FS_IOC_FS[SG]ETXATTR ioctls
+ - ovl: fix wrong flags check in FS_IOC_FS[SG]ETXATTR ioctls
+ - ovl: make i_ino consistent with st_ino in more cases
+ - ovl: detect overlapping layers
+ - ovl: don't fail with disconnected lower NFS
+ - ovl: fix bogus -Wmaybe-unitialized warning
+ - [s390x] jump_label: Use "jdd" constraint on gcc9
+ - [s390x] ap: rework assembler functions to use unions for in/out register
+ variables
+ - mmc: sdhci: sdhci-pci-o2micro: Correctly set bus width when tuning
+ - mmc: core: API to temporarily disable retuning for SDIO CRC errors
+ - mmc: core: Add sdio_retune_hold_now() and sdio_retune_release()
+ - mmc: core: Prevent processing SDIO IRQs when the card is suspended
+ - scsi: ufs: Avoid runtime suspend possibly being blocked forever
+ - [armhf,arm64] usb: chipidea: udc: workaround for endpoint conflict issue
+ - xhci: detect USB 3.2 capable host controllers correctly
+ - usb: xhci: Don't try to recover an endpoint if port is in error state.
+ - IB/hfi1: Validate fault injection opcode user input
+ - IB/hfi1: Silence txreq allocation warnings
+ - [x86] Input: synaptics - enable SMBus on ThinkPad E480 and E580
+ - Input: uinput - add compat ioctl number translation for UI_*_FF_UPLOAD
+ - [x86] Input: silead - add MSSL0017 to acpi_device_id
+ - apparmor: fix PROFILE_MEDIATES for untrusted input
+ - apparmor: enforce nullbyte at end of tag string
+ - brcmfmac: sdio: Disable auto-tuning around commands expected to fail
+ - brcmfmac: sdio: Don't tune while the card is off
+ - parport: Fix mem leak in parport_register_dev_model
+ - IB/rdmavt: Fix alloc_qpn() WARN_ON()
+ - IB/hfi1: Insure freeze_work work_struct is canceled on shutdown
+ - IB/{qib, hfi1, rdmavt}: Correct ibv_devinfo max_mr value
+ - IB/hfi1: Validate page aligned for a given virtual address
+ - [mips*] uprobes: remove set but not used variable 'epc'
+ - [armhf,arm64] net: dsa: mv88e6xxx: avoid error message on remove from
+ VLAN 0
+ - [arm64] net: hns: Fix loopback test failed at copper ports
+ - mdesc: fix a missing-check bug in get_vdev_port_node_info()
+ - [arm64] drm/arm/mali-dp: Add a loop around the second set CVAL and try 5
+ times
+ - [arm64] drm/arm/hdlcd: Actually validate CRTC modes
+ - [arm64] drm/arm/hdlcd: Allow a bit of clock tolerance
+ - nvmet: fix data_len to 0 for bdev-backed write_zeroes
+ - scsi: ufs: Check that space was properly alloced in copy_query_response
+ - scsi: smartpqi: unlock on error in pqi_submit_raid_request_synchronous()
+ - net: ipvlan: Fix ipvlan device tso disabled while NETIF_F_IP_CSUM is set
+ - [s390x] qeth: fix VLAN attribute in bridge_hostnotify udev event
+ - hwmon: (core) add thermal sensors only if dev->of_node is present
+ - hwmon: (pmbus/core) Treat parameters as paged if on multiple pages
+ - nvme: Fix u32 overflow in the number of namespace list calculation
+ - btrfs: start readahead also in seed devices
+ - [armhf] can: flexcan: fix timeout when set small bitrate
+ - can: purge socket error queue on sock destruct
+ - [ppc64el] bpf: use unsigned division instruction for 64-bit operations
+ - [armhf] imx: cpuidle-imx6sx: Restrict the SW2ISO increase to i.MX6SX
+ - [armhf] dts: dra76x: Update MMC2_HS200_MANUAL1 iodelay values
+ - [armhf] dts: am57xx-idk: Remove support for voltage switching for SD card
+ - [arm64] sve: <uapi/asm/ptrace.h> should not depend on
+ <uapi/linux/prctl.h>
+ - [arm64] ssbd: explicitly depend on <linux/prctl.h>
+ - [x86] drm/vmwgfx: Use the backdoor port if the HB port is not available
+ - Bluetooth: Align minimum encryption key size for LE and BR/EDR
+ connections (CVE-2019-9506)
+ - Bluetooth: Fix regression with minimum encryption key size alignment
+ - SMB3: retry on STATUS_INSUFFICIENT_RESOURCES instead of failing write
+ - cfg80211: fix memory leak of wiphy device name
+ - mac80211: drop robust management frames from unknown TA
+ - {nl,mac}80211: allow 4addr AP operation on crypto controlled devices
+ - mac80211: handle deauthentication/disassociation from TDLS peer
+ - nl80211: fix station_info pertid memory leak
+ - mac80211: Do not use stack memory with scatterlist for GMAC
+ - [x86] resctrl: Don't stop walking closids when a locksetup group is found
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.57
+ - perf ui helpline: Use strlcpy() as a shorter form of strncpy() + explicit
+ set nul
+ - perf help: Remove needless use of strncpy()
+ - perf header: Fix unchecked usage of strncpy()
+ - [arm64] Don't unconditionally add -Wno-psabi to KBUILD_CFLAGS
+ - IB/hfi1: Close PSM sdma_progress sleep window
+ - 9p/xen: fix check for xenbus_read error in front_probe
+ - 9p: Use a slab for allocating requests
+ - 9p: embed fcall in req to round down buffer allocs
+ - 9p: add a per-client fcall kmem_cache
+ - 9p: rename p9_free_req() function
+ - 9p: Add refcount to p9_req_t
+ - 9p/rdma: do not disconnect on down_interruptible EAGAIN
+ - 9p: Rename req to rreq in trans_fd
+ - 9p: acl: fix uninitialized iattr access
+ - 9p/rdma: remove useless check in cm_event_handler
+ - 9p: p9dirent_read: check network-provided name length
+ - 9p: potential NULL dereference
+ - 9p/trans_fd: abort p9_read_work if req status changed
+ - 9p/trans_fd: put worker reqs on destroy
+ - net/9p: include trans_common.h to fix missing prototype warning.
+ - qmi_wwan: Fix out-of-bounds read
+ - [armhf,arm64] Revert "usb: dwc3: gadget: Clear req->needs_extra_trb flag
+ on cleanup"
+ - [armhf,arm64] usb: dwc3: gadget: combine unaligned and zero flags
+ - [armhf,arm64] usb: dwc3: gadget: track number of TRBs per request
+ - [armhf,arm64] usb: dwc3: gadget: use num_trbs when skipping TRBs on
+ ->dequeue()
+ - [armhf,arm64] usb: dwc3: gadget: extract dwc3_gadget_ep_skip_trbs()
+ - [armhf,arm64] usb: dwc3: gadget: introduce cancelled_list
+ - [armhf,arm64] usb: dwc3: gadget: move requests to cancelled_list
+ - [armhf,arm64] usb: dwc3: gadget: remove wait_end_transfer
+ - [armhf,arm64] usb: dwc3: gadget: Clear req->needs_extra_trb flag on
+ cleanup
+ - fs/proc/array.c: allow reporting eip/esp for all coredumping threads
+ - mm/mempolicy.c: fix an incorrect rebind node in mpol_rebind_nodemask
+ - fs/binfmt_flat.c: make load_flat_shared_library() work
+ - [armhf] clk: socfpga: stratix10: fix divider entry for the emac clocks
+ - mm: soft-offline: return -EBUSY if set_hwpoison_free_buddy_page() fails
+ - mm: hugetlb: soft-offline: dissolve_free_huge_page() return zero on
+ !PageHuge
+ - mm/page_idle.c: fix oops because end_pfn is larger than max_pfn
+ - dm log writes: make sure super sector log updates are written in order
+ - [x86] scsi: vmw_pscsi: Fix use-after-free in pvscsi_queue_lck()
+ - [x86] speculation: Allow guests to use SSBD even if host does not
+ - [x86] microcode: Fix the microcode load on CPU hotplug for real
+ - [x86] resctrl: Prevent possible overrun during bitmap operations
+ - [x86] KVM: mmu: Allocate PAE root array when using SVM's 32-bit NPT
+ - NFS/flexfiles: Use the correct TCP timeout for flexfiles I/O
+ - cpu/speculation: Warn on unsupported mitigations= parameter
+ - SUNRPC: Clean up initialisation of the struct rpc_rqst
+ - [mips*] irqchip/mips-gic: Use the correct local interrupt map registers
+ - eeprom: at24: fix unexpected timeout under high load
+ - af_packet: Block execution of tasks waiting for transmit to complete in
+ AF_PACKET
+ - bonding: Always enable vlan tx offload
+ - ipv4: Use return value of inet_iif() for __raw_v4_lookup in the while
+ loop
+ - net/packet: fix memory leak in packet_set_ring()
+ - net: remove duplicate fetch in sock_getsockopt
+ - [armhf,arm64] net: stmmac: fixed new system time seconds value
+ calculation
+ - [armhf,arm64] net: stmmac: set IC bit when transmitting frames with HW
+ timestamp
+ - sctp: change to hold sk after auth shkey is created successfully
+ - team: Always enable vlan tx offload
+ - tipc: change to use register_pernet_device
+ - tipc: check msg->req data len in tipc_nl_compat_bearer_disable
+ - tun: wake up waitqueues after IFF_UP is set
+ - bpf: simplify definition of BPF_FIB_LOOKUP related flags
+ - bpf: lpm_trie: check left child of last leftmost node for NULL
+ - bpf: fix nested bpf tracepoints with per-cpu data
+ - bpf: fix unconnected udp hooks
+ - bpf: udp: Avoid calling reuseport's bpf_prog from udp_gro
+ - bpf: udp: ipv6: Avoid running reuseport's bpf_prog from __udp6_lib_err
+ - [arm64] futex: Avoid copying out uninitialised stack in failed cmpxchg()
+ - [arm64] bpf: use more scalable stadd over ldxr / stxr loop in xadd
+ - futex: Update comments and docs about return values of arch futex code
+ - RDMA: Directly cast the sockaddr union to sockaddr
+ - tipc: pass tunnel dev as NULL to udp_tunnel(6)_xmit_skb
+ - [armhf,arm64] usb: dwc3: Reset num_trbs after skipping
+ - [arm64] insn: Fix ldadd instruction encoding
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.58
+ - Bluetooth: Fix faulty expression for minimum encryption key size check
+ - block: Fix a NULL pointer dereference in generic_make_request()
+ - md/raid0: Do not bypass blocking queue entered for raid0 bios
+ - netfilter: nf_flow_table: ignore DF bit setting
+ - netfilter: nft_flow_offload: set liberal tracking mode for tcp
+ - netfilter: nft_flow_offload: don't offload when sequence numbers need
+ adjustment
+ - netfilter: nft_flow_offload: IPCB is only valid for ipv4 family
+ - ASoC: soc-pcm: BE dai needs prepare when pause release after resume
+ - spi: bitbang: Fix NULL pointer dereference in spi_unregister_master
+ - [armhf,arm64] ASoC: max98090: remove 24-bit format support if RJ is 0
+ - [x86] CPU: Add more Icelake model numbers
+ - ALSA: hdac: fix memory release for SST and SOF drivers
+ - scsi: hpsa: correct ioaccel2 chaining
+ - [x86] drm: panel-orientation-quirks: Add quirk for GPD pocket2
+ - [x86] drm: panel-orientation-quirks: Add quirk for GPD MicroPC
+ - [x86] platform: asus-wmi: Only Tell EC the OS will handle display hotkeys
+ from asus_nb_wmi
+ - [x86] platform: intel-vbtn: Report switch events when event wakes device
+ - [x86] platform: mlx-platform: Fix parent device in i2c-mux-reg device
+ registration
+ - i2c: pca-platform: Fix GPIO lookup code
+ - cpuset: restore sanity to cpuset_cpus_allowed_fallback()
+ - mm/mlock.c: change count_mm_mlocked_page_nr return type
+ - tracing: avoid build warning with HAVE_NOP_MCOUNT
+ - module: Fix livepatch/ftrace module text permissions race
+ - ftrace: Fix NULL pointer dereference in free_ftrace_func_mapper()
+ - [x86] drm/i915/dmc: protect against reading random memory
+ - crypto: user - prevent operating on larval algorithms
+ - crypto: cryptd - Fix skcipher instance memory leak
+ - ALSA: seq: fix incorrect order of dest_client/dest_ports arguments
+ - ALSA: firewire-lib/fireworks: fix miss detection of received MIDI messages
+ - ALSA: line6: Fix write on zero-sized buffer (CVE-2019-15221)
+ - ALSA: usb-audio: fix sign unintended sign extension on left shifts
+ - [x86] ALSA: hda/realtek: Add quirks for several Clevo notebook barebones
+ - [x86] ALSA: hda/realtek - Change front mic location for Lenovo M710q
+ - lib/mpi: Fix karactx leak in mpi_powm
+ - fs/userfaultfd.c: disable irqs for fault_pending and event locks
+ - tracing/snapshot: Resize spare buffer if size changed
+ - [armhf] dts: armada-xp-98dx3236: Switch to armada-38x-uart serial node
+ - drm/amd/powerplay: use hardware fan control if no powerplay fan table
+ - drm/amdgpu/gfx9: use reset default for PA_SC_FIFO_SIZE
+ - [armhf] drm/etnaviv: add missing failure path to destroy suballoc
+ - [armhf] drm/imx: notify drm core before sending event during crtc disable
+ - drm/imx: only send event on crtc disable if kept disabled
+ - [x86] ftrace: Remove possible deadlock between register_kprobe() and
+ ftrace_run_update_code()
+ - mm/vmscan.c: prevent useless kswapd loops
+ - btrfs: Ensure replaced device doesn't have pending chunk allocation
+ - tty: rocket: fix incorrect forward declaration of 'rp_init()'
+ - net/smc: move unhash before release of clcsock
+ - drm/fb-helper: generic: Don't take module ref for fbcon
+ - f2fs: don't access node/meta inode mapping after iput
+ - mac80211: mesh: fix missing unlock on error in table_path_del()
+ - scsi: tcmu: fix use after free
+ - [amd64] boot/compressed: Do not corrupt EDX on EFER.LME=1 setting
+ - [arm64] net: hns: Fixes the missing put_device in positive leg for roce
+ reset
+ - ALSA: hda: Initialize power_state field properly
+ - rds: Fix warning.
+ - ip6: fix skb leak in ip6frag_expire_frag_queue()
+ - netfilter: ipv6: nf_defrag: fix leakage of unqueued fragments
+ - [arm64] net: hns: fix unsigned comparison to less than zero
+ - bpf: fix bpf_jit_limit knob for PAGE_SIZE >= 64K
+ - netfilter: ipv6: nf_defrag: accept duplicate fragments again
+ - [x86] KVM: degrade WARN to pr_warn_ratelimited
+ - [x86] KVM: LAPIC: Fix pending interrupt in IRR blocked by software
+ disable LAPIC
+ - nfsd: Fix overflow causing non-working mounts on 1 TB machines
+ - svcrdma: Ignore source port when computing DRC hash
+ - [mips*] Fix bounds check virt_addr_valid
+ - [mips*] Add missing EHB in mtc0 -> mfc0 sequence.
+ - [arm64] dmaengine: qcom: bam_dma: Fix completed descriptors count
+ - [armhf] dmaengine: imx-sdma: remove BD_INTR for channel0
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.59
+ - [x86] Input: elantech - enable middle button support on 2 ThinkPads
+ - mac80211: fix rate reporting inside cfg80211_calculate_bitrate_he()
+ - bpf: sockmap, fix use after free from sleep in psock backlog workqueue
+ - mac80211: mesh: fix RCU warning
+ - mac80211: free peer keys before vif down in mesh
+ - iwlwifi: Fix double-free problems in iwl_req_fw_callback()
+ - can: af_can: Fix error path of can_init()
+ - net: phy: rename Asix Electronics PHY driver
+ - [armhf] dts: am335x phytec boards: Fix cd-gpios active level
+ - [s390x] boot: disable address-of-packed-member warning
+ - [x86] drm/vmwgfx: Honor the sg list segment size limitation
+ - [x86] drm/vmwgfx: fix a warning due to missing dma_parms
+ - [armhf] Input: imx_keypad - make sure keyboard can always wake up system
+ - [armhf,arm64] KVM: vgic: Fix kvm_device leak in vgic_its_destroy
+ - mac80211: only warn once on chanctx_conf being NULL
+ - mac80211: do not start any work during reconfigure flow
+ - bpf, devmap: Fix premature entry free on destroying map
+ - bpf, devmap: Add missing bulk queue free
+ - bpf, devmap: Add missing RCU read lock on flush
+ - [amd64] bpf: fix stack layout of JITed bpf code
+ - qmi_wwan: add support for QMAP padding in the RX path
+ - qmi_wwan: avoid RCU stalls on device disconnect when in QMAP mode
+ - qmi_wwan: extend permitted QMAP mux_id value range
+ - mmc: core: complete HS400 before checking status
+ - md: fix for divide error in status_resync
+ - bnx2x: Check if transceiver implements DDM before access
+ - drm: return -EFAULT if copy_to_user() fails
+ - ip6_tunnel: allow not to count pkts on tstats by passing dev as NULL
+ - net: lio_core: fix potential sign-extension overflow on large shift
+ - scsi: qedi: Check targetname while finding boot target information
+ - quota: fix a problem about transfer quota
+ - [armhf,arm64] net: dsa: mv88e6xxx: fix shift of FID bits in
+ mv88e6185_g1_vtu_loadpurge()
+ - NFS4: Only set creation opendata if O_CREAT
+ - net :sunrpc :clnt :Fix xps refcount imbalance on the error path
+ - fscrypt: don't set policy for a dead directory
+ - udf: Fix incorrect final NOT_ALLOCATED (hole) extent length
+ - media: stv0297: fix frequency range limit
+ - ALSA: usb-audio: Fix parse of UAC2 Extension Units
+ - ALSA: hda/realtek - Headphone Mic can't record after S3
+ - block, bfq: NULL out the bic when it's no longer valid
+ - [arm64] perf pmu: Fix uncore PMU alias list for ARM64
+ - [x86] ptrace: Fix possible spectre-v1 in ptrace_get_debugreg()
+ - [x86] tls: Fix possible spectre-v1 in do_get_thread_area()
+ - USB: serial: ftdi_sio: add ID for isodebug v1
+ - USB: serial: option: add support for GosunCn ME3630 RNDIS mode
+ - Revert "serial: 8250: Don't service RX FIFO if interrupts are disabled"
+ - p54usb: Fix race between disconnect and firmware loading
+ (CVE-2019-15220)
+ - usb: gadget: ether: Fix race between gether_disconnect and rx_submit
+ - [armhf,arm64] usb: dwc2: use a longer AHB idle timeout in
+ dwc2_core_reset()
+ - [x86] drivers/usb/typec/tps6598x.c: fix portinfo width
+ - [x86] drivers/usb/typec/tps6598x.c: fix 4CC cmd write
+ - [i386] staging: comedi: dt282x: fix a null pointer deref on interrupt
+ - [x86] staging: comedi: amplc_pci230: fix null pointer deref on interrupt
+ - HID: Add another Primax PIXART OEM mouse quirk
+ - binder: fix memory leak in error path
+ - carl9170: fix misuse of device driver API
+ - [x86] VMCI: Fix integer overflow in VMCI handle arrays
+ - staging: rtl8712: reduce stack usage, again
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.60
+ - Revert "e1000e: fix cyclic resets at link up with active tx"
+ - e1000e: start network tx queue only when link is up
+ - [x86] Input: synaptics - enable SMBUS on T480 thinkpad trackpad
+ - nilfs2: do not use unexported cpu_to_le32()/le32_to_cpu() in uapi header
+ - drivers: base: cacheinfo: Ensure cpu hotplug work is done before Intel
+ RDT
+ - firmware: improve LSM/IMA security behaviour
+ - [armhf,arm64] irqchip/gic-v3-its: Fix command queue pointer comparison
+ bug
+ - [armhf] clk: ti: clkctrl: Fix returning uninitialized data
+ - [amd64,arm64] efi/bgrt: Drop BGRT status field reserved bits check
+ - perf/core: Fix perf_sample_regs_user() mm check
+ - [armhf] omap2: remove incorrect __init annotation
+ - afs: Fix uninitialised spinlock afs_volume::cb_break_lock
+ - [x86] apic: Fix integer overflow on 10 bit left shift of cpu_khz
+ - be2net: fix link failure after ethtool offline test
+ - ppp: mppe: Add softdep to arc4
+ - sis900: fix TX completion
+ - [armhf] dts: imx6ul: fix PWM[1-4] interrupts
+ - [armhf] pinctrl: mcp23s08: Fix add_data and irqchip_add_nested call order
+ - dm table: don't copy from a NULL pointer in realloc_argv()
+ - dm verity: use message limit for data block corruption message
+ - [amd64] boot: Fix crash if kernel image crosses page table boundary
+ - [amd64] boot: Add missing fixup_pointer() for next_early_pgt access
+ - HID: chicony: add another quirk for PixArt mouse
+ - HID: multitouch: Add pointstick support for ALPS Touchpad
+ - cpu/hotplug: Fix out-of-bounds read when setting fail state
+ - linux/kernel.h: fix overflow for DIV_ROUND_UP_ULL
+ - genirq: Delay deactivation in free_irq()
+ - genirq: Fix misleading synchronize_irq() documentation
+ - genirq: Add optional hardware synchronization for shutdown
+ - [x86] ioapic: Implement irq_get_irqchip_state() callback
+ - [x86] irq: Handle spurious interrupt after shutdown gracefully
+ - [x86] irq: Seperate unused system vectors from spurious entry again
+ - [s390x] fix stfle zero padding
+ - [s390x] qdio: (re-)initialize tiqdio list entries
+ - [s390x] qdio: don't touch the dsci in tiqdio_add_input_queues()
+ - regmap-irq: do not write mask register if mask_base is zero
+ - drm/udl: introduce a macro to convert dev to udl.
+ - drm/udl: Replace drm_dev_unref with drm_dev_put
+ - drm/udl: move to embedding drm device inside udl device.
+ - [i386] entry: Fix ENDPROC of common_spurious
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.61
+ - [arm64] efi: Mark __efistub_stext_offset as an absolute symbol explicitly
+ - scsi: iscsi: set auth_protocol back to NULL if CHAP_A value is not
+ supported
+ - [armhf] dmaengine: imx-sdma: fix use-after-free on probe error path
+ - wil6210: fix potential out-of-bounds read
+ - ath10k: Do not send probe response template for mesh
+ - ath9k: Check for errors when reading SREV register
+ - ath6kl: add some bounds checking
+ - ath10k: add peer id check in ath10k_peer_find_by_id
+ - wil6210: fix spurious interrupts in 3-msi
+ - ath: DFS JP domain W56 fixed pulse type 3 RADAR detection
+ - regmap: debugfs: Fix memory leak in regmap_debugfs_init
+ - batman-adv: fix for leaked TVLV handler.
+ - media: dvb: usb: fix use after free in dvb_usb_device_exit
+ - media: marvell-ccic: fix DMA s/g desc number calculation
+ - media: media_device_enum_links32: clean a reserved field
+ - [armhf,arm64] net: stmmac: dwmac1000: Clear unused address entries
+ - [armhf,arm64] net: stmmac: dwmac4/5: Clear unused address entries
+ - qed: Set the doorbell address correctly
+ - signal/pid_namespace: Fix reboot_pid_ns to use send_sig not force_sig
+ - af_key: fix leaks in key_pol_get_resp and dump_sp.
+ - xfrm: Fix xfrm sel prefix length validation
+ - fscrypt: clean up some BUG_ON()s in block encryption/decryption
+ - perf annotate TUI browser: Do not use member from variable within its own
+ initialization
+ - media: mc-device.c: don't memset __user pointer contents
+ - media: saa7164: fix remove_proc_entry warning
+ - net: phy: Check against net_device being NULL
+ - tua6100: Avoid build warnings.
+ - batman-adv: Fix duplicated OGMs on NETDEV_UP
+ - [armhf] media: wl128x: Fix some error handling in
+ fm_v4l2_init_video_device()
+ - [arm64] net: hns3: set ops to null when unregister ad_dev
+ - cpupower : frequency-set -r option misses the last cpu in related cpu
+ list
+ - [armhf,arm64] net: stmmac: dwmac4: fix flow control issue
+ - [armhf,arm64] net: stmmac: modify default value of tx-frames
+ - [arm64] crypto: inside-secure - do not rely on the hardware last bit for
+ result descriptors
+ - [s390x] qdio: handle PENDING state for QEBSM devices
+ - net: sfp: add mutex to prevent concurrent state checks
+ - ipset: Fix memory accounting for hash types on resize
+ - perf cs-etm: Properly set the value of 'old' and 'head' in snapshot mode
+ - [s390x] perf report: Fix OOM error in TUI mode on s390
+ - [arm64] irqchip/meson-gpio: Add support for Meson-G12A SoC
+ - media: uvcvideo: Fix access to uninitialized fields on probe error
+ - iommu: Fix a leak in iommu_insert_resv_region
+ - [armhf] gpio: omap: fix lack of irqstatus_raw0 for OMAP4
+ - [armhf] gpio: omap: ensure irq is enabled before wakeup
+ - regmap: fix bulk writes on paged registers
+ - bpf: silence warning messages in core
+ - selinux: fix empty write to keycreate file
+ - [x86] cpu: Add Ice Lake NNPI to Intel family
+ - [arm64] ASoC: meson: axg-tdm: fix sample clock inversion
+ - rcu: Force inlining of rcu_read_lock()
+ - [x86] cpufeatures: Add FDP_EXCPTN_ONLY and ZERO_FCS_FDS
+ - qed: iWARP - Fix tc for MPA ll2 connection
+ - [arm64] net: hns3: fix for skb leak when doing selftest
+ - block: null_blk: fix race condition for null_del_dev
+ - blkcg, writeback: dead memcgs shouldn't contribute to writeback ownership
+ arbitration
+ - xfrm: fix sa selector validation
+ - sched/core: Add __sched tag for io_schedule()
+ - sched/fair: Fix "runnable_avg_yN_inv" not used warnings
+ - [x86] perf/intel/uncore: Handle invalid event coding for free-running
+ counter
+ - [x86] atomic: Fix smp_mb__{before,after}_atomic()
+ - perf evsel: Make perf_evsel__name() accept a NULL argument
+ - vhost_net: disable zerocopy by default
+ - ipoib: correcly show a VF hardware address
+ - [x86] cacheinfo: Fix a -Wtype-limits warning
+ - blk-iolatency: only account submitted bios
+ - ACPICA: Clear status of GPEs on first direct enable
+ - EDAC/sysfs: Fix memory leak when creating a csrow object
+ - nvme: fix possible io failures when removing multipathed ns
+ - nvme-pci: properly report state change failure in nvme_reset_work
+ - nvme-pci: set the errno on ctrl state change error
+ - lightnvm: pblk: fix freeing of merged pages
+ - [arm64] Do not enable IRQs for ct_user_exit
+ - ipsec: select crypto ciphers for xfrm_algo
+ - ipvs: defer hook registration to avoid leaks
+ - media: i2c: fix warning same module names
+ - ntp: Limit TAI-UTC offset
+ - timer_list: Guard procfs specific code
+ - [arm64] acpi: ignore 5.1 FADTs that are reported as 5.0
+ - media: hdpvr: fix locking and a missing msleep
+ - [armhf] net: stmmac: sun8i: force select external PHY when no internal
+ one
+ - rtlwifi: rtl8192cu: fix error handle when usb probe failed
+ - mt7601u: do not schedule rx_tasklet when the device has been disconnected
+ - mt7601u: fix possible memory leak when the device is disconnected
+ - ipvs: fix tinfo memory leak in start_sync_thread
+ - ath10k: add missing error handling
+ - ath10k: fix PCIE device wake up failed
+ - perf tools: Increase MAX_NR_CPUS and MAX_CACHES
+ - [x86] ASoC: Intel: hdac_hdmi: Set ops to NULL on remove
+ - libata: don't request sense data on !ZAC ATA devices
+ - [armhf] clocksource/drivers/exynos_mct: Increase priority over ARM arch
+ timer
+ - xsk: Properly terminate assignment in xskq_produce_flush_desc
+ - rslib: Fix decoding of shortened codes
+ - rslib: Fix handling of of caller provided syndrome
+ - ixgbe: Check DDM existence in transceiver before access
+ - crypto: serpent - mark __serpent_setkey_sbox noinline
+ - wil6210: drop old event after wmi_call timeout
+ - EDAC: Fix global-out-of-bounds write when setting edac_mc_poll_msec
+ - bcache: check CACHE_SET_IO_DISABLE in allocator code
+ - bcache: check CACHE_SET_IO_DISABLE bit in bch_journal()
+ - bcache: acquire bch_register_lock later in cached_dev_free()
+ - bcache: check c->gc_thread by IS_ERR_OR_NULL in cache_set_flush()
+ - bcache: fix potential deadlock in cached_def_free()
+ - [arm64] net: hns3: fix a -Wformat-nonliteral compile warning
+ - [arm64] net: hns3: add some error checking in hclge_tm module
+ - ath10k: destroy sdio workqueue while remove sdio module
+ - [armhf,arm64] net: mvpp2: prs: Don't override the sign bit in SRAM parser
+ shift
+ - igb: clear out skb->tstamp after reading the txtime
+ - iwlwifi: mvm: Drop large non sta frames
+ - perf stat: Make metric event lookup more robust
+ - perf stat: Fix group lookup for metric group
+ - bnx2x: Prevent ptp_task to be rescheduled indefinitely
+ - net: usb: asix: init MAC address buffers
+ - rxrpc: Fix oops in tracepoint
+ - bpf, libbpf, smatch: Fix potential NULL pointer dereference
+ - bonding: validate ip header before check IPPROTO_IGMP
+ - gpiolib: Fix references to gpiod_[gs]et_*value_cansleep() variants
+ - [ppc64el] tools: bpftool: Fix json dump crash on powerpc
+ - Bluetooth: hci_bcsp: Fix memory leak in rx_skb
+ - Bluetooth: Add new 13d3:3491 QCA_ROME device
+ - Bluetooth: Add new 13d3:3501 QCA_ROME device
+ - Bluetooth: 6lowpan: search for destination address in all peers
+ - [ppc64el] perf tests: Fix record+probe_libc_inet_pton.sh for powerpc64
+ - Bluetooth: Check state in l2cap_disconnect_rsp
+ - gtp: add missing gtp_encap_disable_sock() in gtp_encap_enable()
+ - Bluetooth: validate BLE connection interval updates
+ - gtp: fix suspicious RCU usage
+ - gtp: fix Illegal context switch in RCU read-side critical section.
+ - gtp: fix use-after-free in gtp_encap_destroy()
+ - gtp: fix use-after-free in gtp_newlink()
+ - [armel/marvell,armhf] net: mvmdio: defer probe of orion-mdio if a clock
+ is not ready
+ - iavf: fix dereference of null rx_buffer pointer
+ - floppy: fix out-of-bounds read in next_valid_format
+ - floppy: fix invalid pointer dereference in drive_name
+ - xen: let alloc_xenballooned_pages() fail if not enough memory free
+ - scsi: core: Fix race on creating sense cache
+ - scsi: megaraid_sas: Fix calculation of target ID
+ - crypto: ghash - fix unaligned memory access in ghash_setkey()
+ - [x86] crypto: ccp - Validate the the error value used to index error
+ messages
+ - [arm64] crypto: sha1-ce - correct digest for empty data in finup
+ - [arm64] crypto: sha2-ce - correct digest for empty data in finup
+ - crypto: chacha20poly1305 - fix atomic sleep when using async algorithm
+ - [x86] crypto: ccp - memset structure fields to zero before reuse
+ - [x86] crypto: ccp/gcm - use const time tag comparison.
+ - Revert "bcache: set CACHE_SET_IO_DISABLE in bch_cached_dev_error()"
+ - bcache: Revert "bcache: fix high CPU occupancy during journal"
+ - bcache: Revert "bcache: free heap cache_set->flush_btree in
+ bch_journal_free"
+ - bcache: ignore read-ahead request failure on backing device
+ - bcache: fix mistaken sysfs entry for io_error counter
+ - bcache: destroy dc->writeback_write_wq if failed to create
+ dc->writeback_thread
+ - Input: alps - don't handle ALPS cs19 trackpoint-only device
+ - [x86] Input: synaptics - whitelist Lenovo T580 SMBus intertouch
+ - Input: alps - fix a mismatch between a condition check and its comment
+ - [armhf] regulator: s2mps11: Fix buck7 and buck8 wrong voltages
+ - [arm64] tegra: Update Jetson TX1 GPU regulator timings
+ - iwlwifi: pcie: don't service an interrupt that was masked
+ - iwlwifi: pcie: fix ALIVE interrupt handling for gen2 devices w/o MSI-X
+ - iwlwifi: don't WARN when calling iwl_get_shared_mem_conf with RF-Kill
+ - iwlwifi: fix RF-Kill interrupt while FW load for gen2 devices
+ - NFSv4: Handle the special Linux file open access mode
+ - pnfs/flexfiles: Fix PTR_ERR() dereferences in ff_layout_track_ds_error
+ - pNFS: Fix a typo in pnfs_update_layout
+ - pnfs: Fix a problem where we gratuitously start doing I/O through the MDS
+ - lib/scatterlist: Fix mapping iterator when sg->offset is greater than
+ PAGE_SIZE
+ - ASoC: dapm: Adapt for debugfs API change
+ - raid5-cache: Need to do start() part job after adding journal device
+ - ALSA: seq: Break too long mutex context in the write loop
+ - [x86] ALSA: hda/realtek - Fixed Headphone Mic can't record on Dell
+ platform
+ - [x86] ALSA: hda/realtek: apply ALC891 headset fixup to one Dell machine
+ - media: v4l2: Test type instead of cfg->type in v4l2_ctrl_new_custom()
+ - media: videobuf2-core: Prevent size alignment wrapping buffer size to 0
+ - media: videobuf2-dma-sg: Prevent size from overflowing
+ - [x86] KVM: vPMU: refine kvm_pmu err msg when event creation failed
+ - [arm64] tegra: Fix AGIC register range
+ - fs/proc/proc_sysctl.c: fix the default values of i_uid/i_gid on /proc/sys
+ inodes.
+ - kconfig: fix missing choice values in auto.conf
+ - drm/nouveau/i2c: Enable i2c pads & busses during preinit
+ - padata: use smp_mb in padata_reorder to avoid orphaned padata jobs
+ - dm zoned: fix zone state management race
+ - xen/events: fix binding user event channels to cpus
+ - 9p/xen: Add cleanup path in p9_trans_xen_init
+ - 9p/virtio: Add cleanup path in p9_virtio_init
+ - [x86] boot: Fix memory leak in default_get_smp_config()
+ - [x86] perf/intel: Fix spurious NMI on fixed counter
+ - [x86] perf/amd/uncore: Do not set 'ThreadMask' and 'SliceMask' for non-L3
+ PMCs
+ - [x86] perf/amd/uncore: Set the thread mask for F17h L3 PMCs
+ - drm/edid: parse CEA blocks embedded in DisplayID
+ - [x86] intel_th: pci: Add Ice Lake NNPI support
+ - [x86] PCI: hv: Fix a use-after-free bug in hv_eject_device_work()
+ - PCI: Do not poll for PME if the device is in D3cold
+ - [arm64] PCI: qcom: Ensure that PERST is asserted for at least 100 ms
+ - Btrfs: fix data loss after inode eviction, renaming it, and fsync it
+ - Btrfs: fix fsync not persisting dentry deletions due to inode evictions
+ - Btrfs: add missing inode version, ctime and mtime updates when punching
+ hole
+ - IB/mlx5: Report correctly tag matching rendezvous capability
+ - HID: wacom: generic: only switch the mode on devices with LEDs
+ - HID: wacom: generic: Correct pad syncing
+ - HID: wacom: correct touch resolution x/y typo
+ - libnvdimm/pfn: fix fsdax-mode namespace info-block zero-fields
+ - coda: pass the host file in vma->vm_file on mmap
+ - include/asm-generic/bug.h: fix "cut here" for WARN_ON for __WARN_TAINT
+ architectures
+ - xfs: fix pagecache truncation prior to reflink
+ - xfs: flush removing page cache in xfs_reflink_remap_prep
+ - xfs: don't overflow xattr listent buffer
+ - xfs: rename m_inotbt_nores to m_finobt_nores
+ - xfs: don't ever put nlink > 0 inodes on the unlinked list
+ - xfs: reserve blocks for ifree transaction during log recovery
+ - xfs: fix reporting supported extra file attributes for statx()
+ - xfs: serialize unaligned dio writes against all other dio writes
+ - xfs: abort unaligned nowait directio early
+ - [ppc64el] watchpoint: Restore NV GPRs while returning from exception
+ - [ppc64el] powernv/npu: Fix reference leak
+ - [ppc64el] pseries: Fix oops in hotplug memory notifier
+ - [arm64] mmc: sdhci-msm: fix mutex while in spinlock
+ - eCryptfs: fix a couple type promotion bugs
+ - [x86] intel_th: msu: Fix single mode with disabled IOMMU
+ - Bluetooth: Add SMP workaround Microsoft Surface Precision Mouse bug
+ - usb: Handle USB3 remote wakeup for LPM enabled devices correctly
+ - blk-throttle: fix zero wait time for iops throttled group
+ - blk-iolatency: clear use_delay when io.latency is set to zero
+ - blkcg: update blkcg_print_stat() to handle larger outputs
+ - [armel/marvell,armhf] net: mvmdio: allow up to four clocks to be
+ specified for orion-mdio
+ - dm bufio: fix deadlock with loop device
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.62
+ - bnx2x: Prevent load reordering in tx completion processing
+ - [x86] hv_netvsc: Fix extra rcu_read_unlock in netvsc_recv_callback()
+ - igmp: fix memory leak in igmpv3_del_delrec()
+ - ipv4: don't set IPv6 only flags to IPv4 addresses
+ - ipv6: rt6_check should return NULL if 'from' is NULL
+ - ipv6: Unlink sibling route in case of failure
+ - [armhf,arm64] net: dsa: mv88e6xxx: wait after reset deactivation
+ - net: make skb_dst_force return true when dst is refcounted
+ - net: neigh: fix multiple neigh timer scheduling
+ - net: openvswitch: fix csum updates for MPLS actions
+ - net: phy: sfp: hwmon: Fix scaling of RX power
+ - [armhf,arm64] net: stmmac: Re-work the queue selection for TSO packets
+ - nfc: fix potential illegal memory access
+ - r8169: fix issue with confused RX unit after PHY power-down on RTL8411b
+ - rxrpc: Fix send on a connected, but unbound socket
+ - sctp: fix error handling on stream scheduler initialization
+ - [x86] sky2: Disable MSI on ASUS P6T
+ - tcp: be more careful in tcp_fragment()
+ - tcp: fix tcp_set_congestion_control() use from bpf hook
+ - tcp: Reset bytes_acked and bytes_received when disconnecting
+ - vrf: make sure skb->data contains ip header to make routing
+ - net/mlx5e: IPoIB, Add error path in mlx5_rdma_setup_rn
+ - macsec: fix use-after-free of skb during RX
+ - macsec: fix checksumming after decryption
+ - netrom: fix a memory leak in nr_rx_frame()
+ - netrom: hold sock when setting skb->destructor
+ - net_sched: unset TCQ_F_CAN_BYPASS when adding filters
+ - sctp: not bind the socket in sctp_connect
+ - net: bridge: mcast: fix stale nsrcs pointer in igmp3/mld2 report handling
+ - net: bridge: mcast: fix stale ipv6 hdr pointer when handling v6 query
+ - net: bridge: don't cache ether dest pointer on input
+ - net: bridge: stp: don't cache eth dest pointer before skb pull
+ - dma-buf: balance refcount inbalance
+ - dma-buf: Discard old fence_excl on retrying get_fences_rcu for realloc
+ - perf/core: Fix exclusive events' grouping
+ - perf/core: Fix race between close() and fork()
+ - ext4: don't allow any modifications to an immutable file
+ - ext4: enforce the immutable flag on open files
+ - mm: add filemap_fdatawait_range_keep_errors()
+ - jbd2: introduce jbd2_inode dirty range scoping
+ - ext4: use jbd2_inode dirty range scoping
+ - ext4: allow directory holes
+ - [x86] KVM: nVMX: do not use dangling shadow VMCS after guest reset
+ - [x86] KVM: nVMX: Clear pending KVM_REQ_GET_VMCS12_PAGES when leaving
+ nested
+ - mm: vmscan: scan anonymous pages on file refaults
+ - net: sched: verify that q!=NULL before setting q->flags
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.63
+ - [x86] hvsock: fix epollout hang from race condition
+ - [armhf,arm64] drm/panel: simple: Fix panel_simple_dsi_probe
+ - [x86] staging: vt6656: use meaningful error code during buffer allocation
+ - usb: core: hub: Disable hub-initiated U1/U2
+ - [armhf,arm64] pinctrl: rockchip: fix leaked of_node references
+ - drm/amd/display: Fill prescale_params->scale for RGB565
+ - drm/amdgpu/sriov: Need to initialize the HDP_NONSURFACE_BAStE
+ - drm/amd/display: Disable ABM before destroy ABM struct
+ - drm/amdkfd: Fix a potential memory leak
+ - drm/amdkfd: Fix sdma queue map issue
+ - drm/edid: Fix a missing-check bug in drm_load_edid_firmware()
+ - PCI: Return error if cannot probe VF
+ - [armhf,arm64] gpu: host1x: Increase maximum DMA segment size
+ - drm/crc-debugfs: User irqsafe spinlock in drm_crtc_add_crc_entry
+ - drm/crc-debugfs: Also sprinkle irqrestore over early exits
+ - memstick: Fix error cleanup path of memstick_init
+ - [arm64] tty: serial: msm_serial: avoid system lockup condition
+ - serial: 8250: Fix TX interrupt handling condition
+ - drm/amd/display: Always allocate initial connector state state
+ - drm/virtio: Add memory barriers for capset cache.
+ - drm/amd/display: fix compilation error
+ - [ppc64el] pseries/mobility: prevent cpu hotplug during DT update
+ - [armhf,arm64] drm/rockchip: Properly adjust to a true clock in
+ adjusted_mode
+ - [armhf] serial: imx: fix locking in set_termios()
+ - tty: serial_core: Set port active bit in uart_port_activate
+ - usb: gadget: Zero ffs_io_data
+ - mmc: sdhci: sdhci-pci-o2micro: Check if controller supports 8-bit width
+ - [ppc64el] pci/of: Fix OF flags parsing for 64bit BARs
+ - [arm64] drm/msm: Depopulate platform on probe failure
+ - [arm64] PCI: xilinx-nwl: Fix Multi MSI data programming
+ - iio: iio-utils: Fix possible incorrect mask calculation
+ - [ppc64el] cacheflush: fix variable set but not used
+ - [ppc64el] xmon: Fix disabling tracing while in xmon
+ - [ppc64el] recordmcount: Fix spurious mcount entries on powerpc
+ - mfd: core: Set fwnode for created devices
+ - [arm64] mfd: hi655x-pmic: Fix missing return value check for
+ devm_regmap_init_mmio_clk
+ - mm/swap: fix release_pages() when releasing devmap pages
+ - RDMA/i40iw: Set queue pair state when being queried
+ - IB/mlx5: Fixed reporting counters on 2nd port for Dual port RoCE
+ - [ppc64el] mm: Handle page table allocation failures
+ - IB/ipoib: Add child to parent list only if device initialized
+ - [arm64] assembler: Switch ESB-instruction with a vanilla nop if
+ !ARM64_HAS_RAS
+ - perf stat: Fix use-after-freed pointer detected by the smatch tool
+ - perf top: Fix potential NULL pointer dereference detected by the smatch
+ tool
+ - perf session: Fix potential NULL pointer dereference found by the smatch
+ tool
+ - perf annotate: Fix dereferencing freed memory found by the smatch tool
+ - perf hists browser: Fix potential NULL pointer dereference found by the
+ smatch tool
+ - RDMA/rxe: Fill in wc byte_len with IB_WC_RECV_RDMA_WITH_IMM
+ - [armhf] PCI: dwc: pci-dra7xx: Fix compilation when !CONFIG_GPIOLIB
+ - [ppc64el] boot: add {get, put}_unaligned_be32 to xz_config.h
+ - block: init flush rq ref count to 1
+ - f2fs: avoid out-of-range memory access
+ - mailbox: handle failed named mailbox channel request
+ - dlm: check if workqueues are NULL before flushing/destroying
+ - [ppc64el] eeh: Handle hugepages in ioremap space
+ - block/bio-integrity: fix a memory leak bug
+ - 9p: pass the correct prototype to read_cache_page
+ - mm/gup.c: mark undo_dev_pagemap as __maybe_unused
+ - mm/gup.c: remove some BUG_ONs from get_gate_page()
+ - memcg, fsnotify: no oom-kill for remote memcg charging
+ - mm/mmu_notifier: use hlist_add_head_rcu()
+ - proc: use down_read_killable mmap_sem for /proc/pid/smaps_rollup
+ - proc: use down_read_killable mmap_sem for /proc/pid/pagemap
+ - proc: use down_read_killable mmap_sem for /proc/pid/clear_refs
+ - proc: use down_read_killable mmap_sem for /proc/pid/map_files
+ - cxgb4: reduce kernel stack usage in cudbg_collect_mem_region()
+ - proc: use down_read_killable mmap_sem for /proc/pid/maps
+ - locking/lockdep: Fix lock used or unused stats error
+ - mm: use down_read_killable for locking mmap_sem in access_remote_vm
+ - locking/lockdep: Hide unused 'class' variable
+ - usb: wusbcore: fix unbalanced get/put cluster_id
+ - [x86] usb: pci-quirks: Correct AMD PLL quirk detection
+ - btrfs: inode: Don't compress if NODATASUM or NODATACOW set
+ - [x86] sysfb_efi: Add quirks for some devices with swapped width and
+ height
+ - [x86] speculation/mds: Apply more accurate check on hypervisor platform
+ - binder: prevent transactions to context manager from its own process.
+ - fpga-manager: altera-ps-spi: Fix build error
+ - [x86] mei: me: add mule creek canyon (EHL) device ids
+ - [x86] hpet: Fix division by zero in hpet_time_div()
+ - ALSA: ac97: Fix double free of ac97_codec_device
+ - ALSA: line6: Fix wrong altsetting for LINE6_PODHD500_1
+ - ALSA: hda - Add a conexant codec entry to let mute led work
+ - [ppc64el] xive: Fix loop exit-condition in xive_find_target_in_mask()
+ - libnvdimm/bus: Stop holding nvdimm_bus_list_mutex over __nd_ioctl()
+ - access: avoid the RCU grace period for the temporary subjective
+ credentials
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.64
+ - [x86] hv_sock: Add support for delayed close
+ - vsock: correct removal of socket from the list
+ - NFS: Fix dentry revalidation on NFSv4 lookup
+ - NFS: Refactor nfs_lookup_revalidate()
+ - NFSv4: Fix lookup revalidate of regular files
+ - [armhf,arm64] usb: dwc2: Disable all EP's on disconnect
+ - [armhf,arm64] usb: dwc2: Fix disable all EP's on disconnect
+ - [arm64] compat: Provide definition for COMPAT_SIGMINSTKSZ
+ (Closes: #904385).
+ - binder: fix possible UAF when freeing buffer
+ - ISDN: hfcsusb: checking idx of ep configuration
+ - media: au0828: fix null dereference in error path
+ - ath10k: Change the warning message string
+ - media: cpia2_usb: first wake up, then free in disconnect
+ (CVE-2019-15215)
+ - media: pvrusb2: use a different format for warnings
+ - NFS: Cleanup if nfs_match_client is interrupted
+ - media: radio-raremono: change devm_k*alloc to k*alloc (CVE-2019-15211)
+ - [x86] iommu/vt-d: Don't queue_iova() if there is no flush queue
+ - vhost: introduce vhost_exceeds_weight()
+ - vhost_net: fix possible infinite loop (CVE-2019-3900)
+ - vhost: vsock: add weight support
+ - vhost: scsi: add weight support (CVE-2019-3900)
+ - sched/fair: Don't free p->numa_faults with concurrent readers
+ - sched/fair: Use RCU accessors consistently for ->numa_group
+ - /proc/<pid>/cmdline: remove all the special cases
+ - /proc/<pid>/cmdline: add back the setproctitle() special case
+ - drivers/pps/pps.c: clear offset flags in PPS_SETPARAMS ioctl
+ - Fix allyesconfig output.
+ - ceph: hold i_ceph_lock when removing caps for freeing inode
+ - block, scsi: Change the preempt-only flag into a counter
+ - scsi: core: Avoid that a kernel warning appears during system resume
+ - ip_tunnel: allow not to count pkts on tstats by setting skb's dev to NULL
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.65
+ - [armhf] dts: rockchip: Make rk3288-veyron-minnie run at hs200
+ - [armhf] dts: rockchip: Make rk3288-veyron-mickey's emmc work again
+ - [armhf] dts: rockchip: Mark that the rk3288 timer might stop in suspend
+ - ftrace: Enable trampoline when rec count returns back to one
+ - [armhf,arm64] dmaengine: tegra-apb: Error out if DMA_PREP_INTERRUPT flag
+ is unset
+ - [arm64] dts: rockchip: fix isp iommu clocks and power domain
+ - kernel/module.c: Only return -EEXIST for modules that have finished
+ loading
+ - [arm64] clk: tegra210: fix PLLU and PLLU_OUT1
+ - fs/adfs: super: fix use-after-free bug
+ - btrfs: fix minimum number of chunk errors for DUP
+ - btrfs: qgroup: Don't hold qgroup_ioctl_lock in btrfs_qgroup_inherit()
+ - cifs: Fix a race condition with cifs_echo_request
+ - ceph: fix improper use of smp_mb__before_atomic()
+ - ceph: return -ERANGE if virtual xattr value didn't fit in buffer
+ - ACPI: blacklist: fix clang warning for unused DMI table
+ - [s390x] scsi: zfcp: fix GCC compiler warning emitted with
+ -Wmaybe-uninitialized
+ - perf version: Fix segfault due to missing OPT_END()
+ - [x86] kvm: avoid constant-conversion warning
+ - ACPI: fix false-positive -Wuninitialized warning
+ - be2net: Signal that the device cannot transmit during reconfiguration
+ - [x86] apic: Silence -Wtype-limits compiler warnings
+ - mm/cma.c: fail if fixed declaration can't be honored
+ - lib/test_overflow.c: avoid tainting the kernel and fix wrap size
+ - lib/test_string.c: avoid masking memset16/32/64 failures
+ - coda: add error handling for fget
+ - coda: fix build using bare-metal toolchain
+ - uapi linux/coda_psdev.h: move upc_req definition from uapi to kernel side
+ headers
+ - drivers/rapidio/devices/rio_mport_cdev.c: NUL terminate some strings
+ - ipc/mqueue.c: only perform resource calculation if user valid
+ - [x86] xen/pv: Fix a boot up hang revealed by int3 self test
+ - [x86] kvm: Don't call kvm_spurious_fault() from .fixup
+ - [x86] paravirt: Fix callee-saved function ELF sizes
+ - [x86] boot: Remove multiple copy of static function sanitize_boot_params()
+ - drm/nouveau: fix memory leak in nouveau_conn_reset()
+ - kconfig: Clear "written" flag to avoid data loss
+ - Btrfs: fix incremental send failure after deduplication
+ - Btrfs: fix race leading to fs corruption after transaction abort
+ - [armhf,arm64] mmc: dw_mmc: Fix occasional hang after tuning on eMMC
+ - [arm64] mmc: meson-mx-sdio: Fix misuse of GENMASK macro
+ - gpiolib: fix incorrect IRQ requesting of an active-low lineevent
+ - IB/hfi1: Fix Spectre v1 vulnerability
+ - mtd: rawnand: micron: handle on-die "ECC-off" devices correctly
+ - selinux: fix memory leak in policydb_init()
+ - ALSA: hda: Fix 1-minute detection delay when i915 module is not available
+ (Closes: #931507)
+ - mm: vmscan: check if mem cgroup is disabled or not before calling memcg
+ slab shrinker
+ - [s390x] dasd: fix endless loop after read unit address configuration
+ - [arm*] drivers/perf: arm_pmu: Fix failure path in PM notifier
+ - [arm64] compat: Allow single-byte watchpoints on all addresses
+ - [arm64] cpufeature: Fix feature comparison for CTR_EL0.{CWG,ERG}
+ - nbd: replace kill_bdev() with __invalidate_device() again
+ - xen/swiotlb: fix condition for calling xen_destroy_contiguous_region()
+ - IB/mlx5: Fix unreg_umr to ignore the mkey state
+ - IB/mlx5: Use direct mkey destroy command upon UMR unreg failure
+ - IB/mlx5: Move MRs to a kernel PD when freeing them to the MR cache
+ - IB/mlx5: Fix clean_mr() to work in the expected order
+ - IB/mlx5: Fix RSS Toeplitz setup to be aligned with the HW specification
+ - IB/hfi1: Check for error on call to alloc_rsm_map_table
+ - [x86] drm/i915/gvt: fix incorrect cache entry for guest page mapping
+ - eeprom: at24: make spd world-readable again
+ - objtool: Support GCC 9 cold subfunction naming scheme
+ - gcc-9: properly declare the {pv,hv}clock_page storage
+ - [x86] vdso: Prevent segfaults due to hoisted vclock reads
+ - scsi: mpt3sas: Use 63-bit DMA addressing on SAS35 HBA
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.66
+ - scsi: fcoe: Embed fc_rport_priv in fcoe_rport structure
+ - gcc-9: don't warn about uninitialized variable
+ - driver core: Establish order of operations for device_add and device_del
+ via bitflag
+ - drivers/base: Introduce kill_device()
+ - libnvdimm/bus: Prevent duplicate device_unregister() calls
+ - libnvdimm/region: Register badblocks before namespaces
+ - libnvdimm/bus: Prepare the nd_ioctl() path to be re-entrant
+ - libnvdimm/bus: Fix wait_nvdimm_bus_probe_idle() ABBA deadlock
+ - HID: wacom: fix bit shift for Cintiq Companion 2
+ - HID: Add quirk for HP X1200 PIXART OEM mouse
+ - IB: directly cast the sockaddr union to aockaddr
+ - atm: iphase: Fix Spectre v1 vulnerability
+ - bnx2x: Disable multi-cos feature.
+ - ife: error out when nla attributes are empty
+ - ip6_gre: reload ipv6h in prepare_ip6gre_xmit_ipv6
+ - ip6_tunnel: fix possible use-after-free on xmit
+ - ipip: validate header length in ipip_tunnel_xmit
+ - [armhf,arm64] mvpp2: fix panic on module removal
+ - [armhf,arm64] mvpp2: refactor MTU change code
+ - net: bridge: delete local fdb on device init failure
+ - net: bridge: mcast: don't delete permanent entries when fast leave is
+ enabled
+ - net: fix ifindex collision during namespace removal
+ - net/mlx5e: always initialize frag->last_in_page
+ - net/mlx5: Use reversed order when unregister devices
+ - net: phylink: Fix flow control for fixed-link
+ - net: sched: Fix a possible null-pointer dereference in dequeue_func()
+ - net sched: update vlan action for batched events operations
+ - net: sched: use temporary variable for actions indexes
+ - net/smc: do not schedule tx_work in SMC_CLOSED state
+ - tipc: compat: allow tipc commands without arguments
+ - tun: mark small packets as owned by the tap sock
+ - net/mlx5: Fix modify_cq_in alignment
+ - net/mlx5e: Prevent encap flow counter update async to user query
+ - r8169: don't use MSI before RTL8168d
+ - compat_ioctl: pppoe: fix PPPOEIOCSFWD handling
+ - cgroup: Call cgroup_release() before __exit_signal()
+ - cgroup: Implement css_task_iter_skip()
+ - cgroup: Include dying leaders with live threads in PROCS iterations
+ - cgroup: css_task_iter_skip()'d iterators must be advanced before accessed
+ - cgroup: Fix css_task_iter_advance_css_set() cset skip condition
+ - [arm*] spi: bcm2835: Fix 3-wire mode if DMA is enabled
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.67
+ - [x86] crypto: ccp - Fix oops by properly managing allocated structures
+ - [x86] crypto: ccp - Add support for valid authsize values less than 16
+ - [x86] crypto: ccp - Ignore tag length when decrypting GCM ciphertext
+ - usb: usbfs: fix double-free of usb memory upon submiturb error
+ - usb: iowarrior: fix deadlock on disconnect
+ - sound: fix a memory leak bug
+ - [arm64,mips*/octeon] mmc: cavium: Set the correct dma max segment size
+ for mmc_host
+ - [arm64,mips*/octeon] mmc: cavium: Add the missing dma unmap when the dma
+ has finished.
+ - loop: set PF_MEMALLOC_NOIO for the worker thread
+ - Input: usbtouchscreen - initialize PM mutex before using it
+ - [x86] Input: elantech - enable SMBus on new (2018+) systems
+ - [x86] Input: synaptics - enable RMI mode for HP Spectre X360
+ - [x86] mm: Check for pfn instead of page in vmalloc_sync_one()
+ - [x86] mm: Sync also unmappings in vmalloc_sync_all()
+ - mm/vmalloc: Sync unmappings in __purge_vmap_area_lazy()
+ - [s390x] perf annotate: Fix s390 gap between kernel end and module start
+ - perf db-export: Fix thread__exec_comm()
+ - [s390x] perf record: Fix module size on s390
+ - [x86] purgatory: Use CFLAGS_REMOVE rather than reset KBUILD_CFLAGS
+ - gfs2: gfs2_walk_metadata fix
+ - usb: yurex: Fix use-after-free in yurex_delete
+ - [x86] usb: typec: tcpm: free log buf memory when remove debug file
+ - [x86] usb: typec: tcpm: remove tcpm dir if no children
+ - [x86] usb: typec: tcpm: Add NULL check before dereferencing config
+ - [x86] usb: typec: tcpm: Ignore unsupported/unknown alternate mode requests
+ - can: peak_usb: fix potential double kfree_skb()
+ - netfilter: nfnetlink: avoid deadlock due to synchronous request_module
+ - [s390x] vfio-ccw: Set pa_nr to 0 if memory allocation fails for
+ pa_iova_pfn
+ - netfilter: Fix rpfilter dropping vrf packets by mistake
+ - netfilter: conntrack: always store window size un-scaled
+ - netfilter: nft_hash: fix symhash with modulus one
+ - drm/amd/display: Wait for backlight programming completion in set
+ backlight level
+ - drm/amd/display: use encoder's engine id to find matched free audio
+ device
+ - drm/amd/display: Fix dc_create failure handling and 666 color depths
+ - drm/amd/display: Only enable audio if speaker allocation exists
+ - drm/amd/display: Increase size of audios array
+ - [x86] iscsi_ibft: make ISCSI_IBFT dependson ACPI instead of
+ ISCSI_IBFT_FIND
+ - nl80211: fix NL80211_HE_MAX_CAPABILITY_LEN
+ - mac80211: don't warn about CW params when not using them
+ - allocate_flower_entry: should check for null deref
+ - hwmon: (nct6775) Fix register address and added missed tolerance for
+ nct6106
+ - drm: silence variable 'conn' set but not used
+ - [s390x] qdio: add sanity checks to the fast-requeue path
+ - ALSA: compress: Fix regression on compressed capture streams
+ - ALSA: compress: Prevent bypasses of set_params
+ - ALSA: compress: Don't allow paritial drain operations on capture streams
+ - ALSA: compress: Be more restrictive about when a drain is allowed
+ - perf tools: Fix proper buffer size for feature processing
+ - perf probe: Avoid calling freeing routine multiple times for same pointer
+ - drbd: dynamically allocate shash descriptor
+ - ACPI/IORT: Fix off-by-one check in iort_dev_find_its_id()
+ - nvme: fix multipath crash when ANA is deactivated
+ - scsi: megaraid_sas: fix panic on loading firmware crashdump
+ - [ppc64el] scsi: ibmvfc: fix WARN_ON during event pool release
+ - scsi: scsi_dh_alua: always use a 2 second delay before retrying RTPG
+ - test_firmware: fix a memory leak bug
+ - tty/ldsem, locking/rwsem: Add missing ACQUIRE to read_failed sleep loop
+ - perf/core: Fix creating kernel counters for PMUs that override event->cpu
+ - [s390x] dma: provide proper ARCH_ZONE_DMA_BITS value
+ - HID: sony: Fix race condition between rumble and device remove.
+ - [x86] purgatory: Do not use __builtin_memcpy and __builtin_memset
+ - ALSA: usb-audio: fix a memory leak bug
+ - can: peak_usb: pcan_usb_pro: Fix info-leaks to USB devices
+ - can: peak_usb: pcan_usb_fd: Fix info-leaks to USB devices
+ - hwmon: (nct7802) Fix wrong detection of in4 presence
+ - [x86] drm/i915: Fix wrong escape clock divisor init for GLK
+ - ALSA: firewire: fix a memory leak bug
+ - ALSA: hiface: fix multiple memory leak bugs
+ - ALSA: hda - Don't override global PCM hw info flag
+ - [x86] ALSA: hda - Workaround for crackled sound on AMD controller
+ (1022:1457)
+ - mac80211: don't WARN on short WMM parameters from AP
+ - dax: dax_layout_busy_page() should not unmap cow pages
+ - SMB3: Fix deadlock in validate negotiate hits reconnect
+ - smb3: send CAP_DFS capability during session setup
+ - NFSv4: Fix an Oops in nfs4_do_setattr
+ - [x86] KVM: Fix leak vCPU's VMCS value into other pCPU
+ - mwifiex: fix 802.11n/WPA detection
+ - iwlwifi: don't unmap as page memory that was mapped as single
+ - iwlwifi: mvm: fix an out-of-bound access
+ - iwlwifi: mvm: don't send GEO_TX_POWER_LIMIT on version < 41
+ - iwlwifi: mvm: fix version check for GEO_TX_POWER_LIMIT support
+
+ [ Steve McIntyre ]
+ * [arm64] Improve support for the Huawei TaiShan server platform
+ (Closes: #930554):
+ - Enable the HNS/ROCE Infiniband driver
+ - Backport fixes from 4.20 and 4.21 for HNS3 networking, hisi_sas SAS
+ and HNS/ROCE Infiniband
+ - Add module:drivers/scsi/hisi_sas/* to the ABI ignore list
+
+ [ Uwe Kleine-König ]
+ * [armhf] Add support for all i.MX6 variants.
+ * rtc-s35390a: backport fix to make hwclock able to read the time
+ (Closes: #932845)
+
+ [ Ben Hutchings ]
+ * [rt] Update to 4.19.59-rt24:
+ - Fix build failure after "genirq: Prevent use-after-free and work
+ list corruption":
+ + Update "genirq: Do not invoke the affinity callback via a workqueue on
+ RT"
+ + kthread: add a global worker thread.
+ + genirq: Do not invoke the affinity callback via a workqueue on RT
+ + genirq: Handle missing work_struct in irq_set_affinity_notifier()
+ - Update "irqwork: push most work into softirq context" to resolve
+ conflict with "irq_work: Do not raise an IPI when queueing work on the
+ local CPU"
+ - Drop "random: avoid preempt_disable()ed section"
+ - arm: imx6: cpuidle: Use raw_spinlock_t
+ - rcu: Don't allow to change rcu_normal_after_boot on RT
+ - sched/core: Drop a preempt_disable_rt() statement
+ - timers: Redo the notification of canceling timers on -RT
+ - Fix futex regression in 4.19.21:
+ + Revert "futex: Ensure lock/unlock symetry versus pi_lock and hash
+ bucket lock"
+ + Revert "futex: Fix bug on when a requeued RT task times out"
+ + Revert "rtmutex: Handle the various new futex race conditions"
+ + Revert "futex: workaround migrate_disable/enable in different context"
+ + futex: Make the futex_hash_bucket lock raw
+ + futex: Delay deallocation of pi_state
+ - mm/zswap: Do not disable preemption in zswap_frontswap_store()
+ * Bump ABI to 6
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 21 Aug 2019 17:44:57 +0100
+
+linux (4.19.37-5+deb10u2) buster-security; urgency=high
+
+ [ Romain Perier ]
+ * [x86] x86/insn-eval: Fix use-after-free access to LDT entry (CVE-2019-13233)
+ * [powerpc*] mm/64s/hash: Reallocate context ids on fork (CVE-2019-12817)
+ * nfc: Ensure presence of required attributes in the deactivate_target handler
+ (CVE-2019-12984)
+ * binder: fix race between munmap() and direct reclaim (CVE-2019-1999)
+ * scsi: libsas: fix a race condition when smp task timeout (CVE-2018-20836)
+ * Input: gtco - bounds check collection indent level (CVE-2019-13631)
+ * floppy: fix out-of-bounds read in copy_buffer (CVE-2019-14283)
+ * inet: switch IP ID generator to siphash (CVE-2019-10638)
+ * floppy: fix div-by-zero in setup_format_params (CVE-2019-14284)
+ * Bluetooth: hci_uart: check for missing tty operations (CVE-2019-10207)
+ * [powerpc/tm] Fix oops on sigreturn on systems without TM (CVE-2019-13648)
+
+ [ Salvatore Bonaccorso ]
+ * [x86] cpufeatures: Carve out CQM features retrieval
+ * [x86] cpufeatures: Combine word 11 and 12 into a new scattered features
+ word
+ * [x86] speculation: Prepare entry code for Spectre v1 swapgs mitigations
+ * [x86] speculation: Enable Spectre v1 swapgs mitigations (CVE-2019-1125)
+ * [amd64] entry: Use JMP instead of JMPQ
+ * [x86] speculation/swapgs: Exclude ATOMs from speculation through SWAPGS
+ * Documentation: Add section about CPU vulnerabilities for Spectre
+ * Documentation: Add swapgs description to the Spectre v1 documentation
+
+ [ Ben Hutchings ]
+ * [x86] cpufeatures: Avoid ABI change for swapgs mitigations:
+ - Move swapgs feature bits to existing scattered words
+ - Revert "x86/cpufeatures: Combine word 11 and 12 into a new scattered
+ features word"
+ * inet: Avoid ABI change for IP ID hash change
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 08 Aug 2019 03:02:38 +0100
+
+linux (4.19.37-5+deb10u1) buster-security; urgency=high
+
+ * tcp: refine memory limit test in tcp_fragment() (Closes: #930904)
+ * ptrace: Fix ->ptracer_cred handling for PTRACE_TRACEME (CVE-2019-13272)
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Fri, 19 Jul 2019 10:45:17 +0200
+
+linux (4.19.37-5) unstable; urgency=medium
+
+ [ Romain Perier ]
+ * [sparc64] Fix device naming inconsistency between sunhv_console and
+ sunhv_reg (Closes: #926539)
+
+ [ Ben Hutchings ]
+ * tcp: Avoid ABI change for DoS fixes (Closes: #930743)
+ * Add ABI reference for 4.19.0-5
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 19 Jun 2019 23:16:58 +0100
+
+linux (4.19.37-4) unstable; urgency=high
+
+ [ Ben Hutchings ]
+ * libbpf: Fix various build bugs:
+ - Drop unnecessary changes from "libbpf: add SONAME to shared object"
+ - libbpf: Use only 2 components in soversion, matching package name
+ (Closes: #929187)
+ - libbpf: Build out-of-tree
+ * README.source: Document the various makefiles and use of out-of-tree builds
+ * [x86] lockdown,sysrq: Enable ALLOW_LOCKDOWN_LIFT_BY_SYSRQ (Closes: #929583)
+ * mwifiex: Fix possible buffer overflows at parsing bss descriptor
+ (CVE-2019-3846)
+ * mwifiex: Abort at too short BSS descriptor element
+ * mwifiex: Don't abort on small, spec-compliant vendor IEs
+ * mm/mincore.c: make mincore() more conservative (CVE-2019-5489)
+ * mwifiex: Fix heap overflow in mwifiex_uap_parse_tail_ies()
+ (CVE-2019-10126)
+ * tcp: limit payload size of sacked skbs (CVE-2019-11477)
+ * tcp: tcp_fragment() should apply sane memory limits (CVE-2019-11478)
+ * tcp: add tcp_min_snd_mss sysctl (CVE-2019-11479)
+ * tcp: enforce tcp_min_snd_mss in tcp_mtu_probing()
+
+ [ Romain Perier ]
+ * [rt] Update to 4.19.37-rt20:
+ - powerpc/pseries/iommu: Use a locallock instead local_irq_save()
+ - powerpc: reshuffle TIF bits
+ - tty/sysrq: Convert show_lock to raw_spinlock_t
+ - drm/i915: Don't disable interrupts independently of the lock
+ - sched/completion: Fix a lockup in wait_for_completion()
+
+ [ Salvatore Bonaccorso ]
+ * brcmfmac: assure SSID length from firmware is limited (CVE-2019-9500)
+ * brcmfmac: add subtype check for event handling in data path
+ (CVE-2019-9503)
+ * ext4: zero out the unused memory region in the extent tree block
+ (CVE-2019-11833)
+ * Bluetooth: hidp: fix buffer overflow (CVE-2019-11884)
+
+ [ Aurelien Jarno ]
+ * [mips] Correctly bounds check virt_addr_valid (Closes: #929366)
+
+ [ John Paul Adrian Glaubitz ]
+ * [sparc64] udeb: Disable suffix for kernel-image
+
+ [ Alper Nebi Yasak ]
+ * udeb: input-modules: Include all keyboard driver modules
+ * [arm64] udeb: kernel-image: Include cros_ec_spi and SPI drivers
+ * [arm64] udeb: kernel-image: Include phy-rockchip-pcie
+ * [arm64] udeb: usb-modules: Include phy-rockchip-typec, extcon-usbc-cros-ec
+ * [arm64] udeb: mmc-modules: Include phy-rockchip-emmc
+ * [arm64] udeb: fb-modules: Include rockchipdrm, panel-simple, pwm_bl and
+ pwm-cros-ec
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 17 Jun 2019 20:00:22 +0100
+
+linux (4.19.37-3) unstable; urgency=medium
+
+ * [powerpc*] 64s: Include cpu header (fixes FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 15 May 2019 23:07:16 +0100
+
+linux (4.19.37-2) unstable; urgency=high
+
+ * debian/bin: Fix Python static checker regressions (Closes: #928618)
+ * Clean up speculation mitigations:
+ - Documentation/l1tf: Fix small spelling typo
+ - x86/cpu: Sanitize FAM6_ATOM naming
+ - kvm: x86: Report STIBP on GET_SUPPORTED_CPUID
+ - x86/msr-index: Cleanup bit defines
+ - x86/speculation: Consolidate CPU whitelists
+ - Documentation: Move L1TF to separate directory
+ - cpu/speculation: Add 'mitigations=' cmdline option
+ - x86/speculation: Support 'mitigations=' cmdline option
+ - powerpc/speculation: Support 'mitigations=' cmdline option
+ - s390/speculation: Support 'mitigations=' cmdline option
+ - x86/speculation/mds: Add 'mitigations=' support for MDS
+ * [x86] Mitigate Microarchitectural Data Sampling (MDS) vulnerabilities
+ (CVE-2018-12126, CVE-2018-12127, CVE-2018-12130, CVE-2019-11091):
+ - x86/speculation/mds: Add basic bug infrastructure for MDS
+ - x86/speculation/mds: Add BUG_MSBDS_ONLY
+ - x86/kvm: Expose X86_FEATURE_MD_CLEAR to guests
+ - x86/speculation/mds: Add mds_clear_cpu_buffers()
+ - x86/speculation/mds: Clear CPU buffers on exit to user
+ - x86/kvm/vmx: Add MDS protection when L1D Flush is not active
+ - x86/speculation/mds: Conditionally clear CPU buffers on idle entry
+ - x86/speculation/mds: Add mitigation control for MDS
+ - x86/speculation/mds: Add sysfs reporting for MDS
+ - x86/speculation/mds: Add mitigation mode VMWERV
+ - Documentation: Add MDS vulnerability documentation
+ - x86/speculation/mds: Add mds=full,nosmt cmdline option
+ - x86/speculation: Move arch_smt_update() call to after mitigation decisions
+ - x86/speculation/mds: Add SMT warning message
+ - x86/speculation/mds: Fix comment
+ - x86/speculation/mds: Print SMT vulnerable on MSBDS with mitigations off
+ - x86/mds: Add MDSUM variant to the MDS documentation
+ - Documentation: Correct the possible MDS sysfs values
+ - x86/speculation/mds: Fix documentation typo
+ * [x86] linux-cpupower: Update CPPFLAGS for change in <asm/msr-index.h>
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 14 May 2019 17:34:37 +0100
+
+linux (4.19.37-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.29
+ - media: uvcvideo: Fix 'type' check leading to overflow
+ - vti4: Fix a ipip packet processing bug in 'IPCOMP' virtual tunnel
+ - perf script: Fix crash with printing mixed trace point and other events
+ - perf core: Fix perf_proc_update_handler() bug
+ - perf tools: Handle TOPOLOGY headers with no CPU
+ - perf script: Fix crash when processing recorded stat data
+ - IB/{hfi1, qib}: Fix WC.byte_len calculation for UD_SEND_WITH_IMM
+ - [amd64] iommu/amd: Call free_iova_fast with pfn in map_sg
+ - [amd64] iommu/amd: Unmap all mapped pages in error path of map_sg
+ - [riscv64] fixup max_low_pfn with PFN_DOWN.
+ - ipvs: Fix signed integer overflow when setsockopt timeout
+ - [amd64] iommu/amd: Fix IOMMU page flush when detach device from a domain
+ - [armhf] clk: ti: Fix error handling in ti_clk_parse_divider_data()
+ - [arm64] clk: qcom: gcc: Use active only source for CPUSS clocks
+ - [riscv64] Adjust mmap base address at a third of task size
+ - IB/ipoib: Fix for use-after-free in ipoib_cm_tx_start
+ - iomap: get/put the page in iomap_page_create/release()
+ - iomap: fix a use after free in iomap_dio_rw
+ - [arm64] net: hns: Fix for missing of_node_put() after of_parse_phandle()
+ - [arm64] net: hns: Restart autoneg need return failed when autoneg off
+ - [arm64] net: hns: Fix wrong read accesses via Clause 45 MDIO protocol
+ - [armhf,arm64] net: stmmac: dwmac-rk: fix error handling in
+ rk_gmac_powerup()
+ - netfilter: ebtables: compat: un-break 32bit setsockopt when no rules are
+ present
+ - nfs: Fix NULL pointer dereference of dev_name
+ - qed: Fix bug in tx promiscuous mode settings
+ - qed: Fix LACP pdu drops for VFs
+ - qed: Fix VF probe failure while FLR
+ - qed: Fix system crash in ll2 xmit
+ - qed: Fix stack out of bounds bug
+ - scsi: libfc: free skb when receiving invalid flogi resp
+ - scsi: scsi_debug: fix write_same with virtual_gb problem
+ - scsi: bnx2fc: Fix error handling in probe()
+ - scsi: 53c700: pass correct "dev" to dma_alloc_attrs()
+ - net: macb: Apply RXUBR workaround only to versions with errata
+ - [amd64] boot/compressed/64: Set EFER.LME=1 in 32-bit trampoline before
+ returning to long mode
+ - cifs: fix computation for MAX_SMB2_HDR_SIZE
+ - [x86] microcode/amd: Don't falsely trick the late loading mechanism
+ - [arm64] kprobe: Always blacklist the KVM world-switch code
+ - apparmor: Fix aa_label_build() error handling for failed merges
+ - [x86] kexec: Don't setup EFI info if EFI runtime is not enabled
+ - proc: fix /proc/net/* after setns(2)
+ - mm, memory_hotplug: is_mem_section_removable do not pass the end of a zone
+ - mm, memory_hotplug: test_pages_in_a_zone do not pass the end of zone
+ - fs/drop_caches.c: avoid softlockups in drop_pagecache_sb()
+ - autofs: drop dentry reference only when it is never used
+ - autofs: fix error return in autofs_fill_super()
+ - mm, memory_hotplug: fix off-by-one in is_pageblock_removable
+ - [armhf] OMAP: dts: N950/N9: fix onenand timings
+ - [armhf] dts: omap4-droid4: Fix typo in cpcap IRQ flags
+ - [armhf] dts: sun8i: h3: Add ethernet0 alias to Beelink X2
+ - [arm64] dts: meson: Fix IRQ trigger type for macirq
+ - [arm64] dts: meson8b: odroidc1: mark the SD card detection GPIO
+ active-low
+ - [arm64] dts: meson8m2: mxiii-plus: mark the SD card detection GPIO
+ active-low
+ - [arm64] dts: imx6sx: correct backward compatible of gpt
+ - [armhf] pinctrl: mcp23s08: spi: Fix regmap allocation for mcp23s18
+ - wlcore: sdio: Fixup power on/off sequence
+ - bpf: sock recvbuff must be limited by rmem_max in bpf_setsockopt()
+ - [arm64] dts: add msm8996 compatible to gicv3
+ - batman-adv: release station info tidstats
+ - [armhf,arm64] irqchip/gic-v4: Fix occasional VLPI drop
+ - [armhf,arm64] irqchip/gic-v3-its: Gracefully fail on LPI exhaustion
+ - drm/amdgpu: Add missing power attribute to APU check
+ - drm/radeon: check if device is root before getting pci speed caps
+ - drm/amdgpu: Transfer fences to dmabuf importer
+ - [armhf,arm64] net: stmmac: Fallback to Platform Data clock in Watchdog
+ conversion
+ - [armhf,arm64] net: stmmac: Disable EEE mode earlier in XMIT callback
+ - [armhf,arm64] irqchip/gic-v3-its: Fix ITT_entry_size accessor
+ - relay: check return of create_buf_file() properly
+ - bpf: fix potential deadlock in bpf_prog_register
+ - bpf: Fix syscall's stackmap lookup potential deadlock
+ - [armhf,arm64] drm/sun4i: tcon: Prepare and enable TCON channel 0 clock at
+ init
+ - vsock/virtio: fix kernel panic after device hot-unplug
+ - vsock/virtio: reset connected sockets on device removal
+ - netfilter: nf_nat: skip nat clash resolution for same-origin entries
+ - [s390x] qeth: release cmd buffer in error paths
+ - [s390x] qeth: fix use-after-free in error path
+ - [s390x] qeth: cancel close_dev work before removing a card
+ - perf symbols: Filter out hidden symbols from labels
+ - perf trace: Support multiple "vfs_getname" probes
+ - [mips*] Remove function size check in get_frame_info()
+ - Revert "scsi: libfc: Add WARN_ON() when deleting rports"
+ - [armhf] i2c: omap: Use noirq system sleep pm ops to idle device for
+ suspend
+ - drm/amdgpu: use spin_lock_irqsave to protect vm_manager.pasid_idr
+ - nvme: lock NS list changes while handling command effects
+ - nvme-pci: fix rapid add remove sequence
+ - fs: ratelimit __find_get_block_slow() failure message.
+ - qed: Fix EQ full firmware assert.
+ - qed: Consider TX tcs while deriving the max num_queues for PF.
+ - qede: Fix system crash on configuring channels.
+ - blk-iolatency: fix IO hang due to negative inflight counter
+ - nvme-pci: add missing unlock for reset error
+ - Input: wacom_serial4 - add support for Wacom ArtPad II tablet
+ - Input: elan_i2c - add id for touchpad found in Lenovo s21e-20
+ - [x86] iscsi_ibft: Fix missing break in switch statement
+ - scsi: aacraid: Fix missing break in switch statement
+ - [x86] PCI: Fixup RTIT_BAR of Intel Denverton Trace Hub
+ - [arm64] dts: zcu100-revC: Give wifi some time after power-on
+ - [arm64] dts: hikey: Give wifi some time after power-on
+ - [arm64] dts: hikey: Revert "Enable HS200 mode on eMMC"
+ - [armhf] dts: exynos: Fix pinctrl definition for eMMC RTSN line on Odroid
+ X2/U3
+ - [armhf] dts: exynos: Add minimal clkout parameters to Exynos3250 PMU
+ - [armhf] dts: exynos: Fix max voltage for buck8 regulator on Odroid
+ XU3/XU4
+ - drm: disable uncached DMA optimization for ARM and arm64
+ (Closes: #923723)
+ - netfilter: xt_TEE: fix wrong interface selection
+ - netfilter: xt_TEE: add missing code to get interface index in checkentry.
+ - gfs2: Fix missed wakeups in find_insert_glock
+ - cifs: allow calling SMB2_xxx_free(NULL) (Closes: #919290)
+ - ath9k: Avoid OF no-EEPROM quirks without qca,no-eeprom
+ - driver core: Postpone DMA tear-down until after devres release
+ - [x86] perf/intel: Make cpuc allocations consistent
+ - [x86] perf/intel: Generalize dynamic constraint creation
+ - [x86] Add TSX Force Abort CPUID/MSR
+ - [x86] perf/intel: Implement support for TSX Force Abort
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.30
+ - connector: fix unsafe usage of ->real_parent
+ - gro_cells: make sure device is up in gro_cells_receive()
+ - ipv4/route: fail early when inet dev is missing
+ - l2tp: fix infoleak in l2tp_ip6_recvmsg()
+ - lan743x: Fix RX Kernel Panic
+ - lan743x: Fix TX Stall Issue
+ - net: sit: fix UBSAN Undefined behaviour in check_6rd
+ - net/x25: fix use-after-free in x25_device_event()
+ - net/x25: reset state in x25_connect()
+ - pptp: dst_release sk_dst_cache in pptp_sock_destruct
+ - route: set the deleted fnhe fnhe_daddr to 0 in ip_del_fnhe to fix a race
+ - rxrpc: Fix client call queueing, waiting for channel
+ - sctp: remove sched init from sctp_stream_init
+ - tcp: do not report TCP_CM_INQ of 0 for closed connections
+ - tcp: Don't access TCP_SKB_CB before initializing it
+ - tcp: handle inet_csk_reqsk_queue_add() failures
+ - vxlan: Fix GRO cells race condition between receive and link delete
+ - vxlan: test dev->flags & IFF_UP before calling gro_cells_receive()
+ - net/mlx4_core: Fix reset flow when in command polling mode
+ - net/mlx4_core: Fix locking in SRIOV mode when switching between events
+ and polling
+ - net/mlx4_core: Fix qp mtt size calculation
+ - net/x25: fix a race in x25_bind()
+ - mdio_bus: Fix use-after-free on device_register fails
+ - net: Set rtm_table to RT_TABLE_COMPAT for ipv6 for tables > 255
+ - ipv6: route: purge exception on removal
+ - team: use operstate consistently for linkup
+ - ipvlan: disallow userns cap_net_admin to change global mode/flags
+ - ipv6: route: enforce RCU protection in rt6_update_exception_stamp_rt()
+ - ipv6: route: enforce RCU protection in ip6_route_check_nh_onlink()
+ - bonding: fix PACKET_ORIGDEV regression
+ - net/smc: fix smc_poll in SMC_INIT state
+ - af_unix: missing barriers in some of unix_sock ->addr and ->path accesses
+ - net: sched: flower: insert new filter to idr after setting its mask
+ - f2fs: wait on atomic writes to count F2FS_CP_WB_DATA
+ - ALSA: bebob: use more identical mod_alias for Saffire Pro 10 I/O against
+ Liquid Saffire 56
+ - ALSA: firewire-motu: fix construction of PCM frame for capture direction
+ - [x86] ALSA: hda: Extend i915 component bind timeout
+ - [x86] ALSA: hda - add more quirks for HP Z2 G4 and HP Z240
+ - ALSA: hda/realtek: Enable audio jacks of ASUS UX362FA with ALC294
+ - ALSA: hda/realtek - Reduce click noise on Dell Precision 5820 headphone
+ - ALSA: hda/realtek: Enable headset MIC of Acer TravelMate X514-51T with
+ ALC255
+ - [x86] perf/intel: Fix memory corruption
+ - [x86] perf/intel: Make dev_attr_allow_tsx_force_abort static
+ - md: It's wrong to add len to sector_nr in raid10 reshape twice
+ - drm: Block fb changes for async plane updates
+ - i40e: report correct statistics when XDP is enabled
+ - vhost/vsock: fix vhost vsock cid hashing inconsistent
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.31
+ - media: videobuf2-v4l2: drop WARN_ON in vb2_warn_zero_bytesused()
+ - 9p: use inode->i_lock to protect i_size_write() under 32-bit
+ - 9p/net: fix memory leak in p9_client_create
+ - [armhf] iio: adc: exynos-adc: Fix NULL pointer exception on unbind
+ - [x86] mei: hbm: clean the feature flags on link reset
+ - [x86] mei: bus: move hw module get/put to probe/release
+ - crypto: cfb - add missing 'chunksize' property
+ - crypto: cfb - remove bogus memcpy() with src == dest
+ - crypto: ahash - fix another early termination in hash walk
+ - [armhf] drm/imx: ignore plane updates on disabled crtcs
+ - [armhf] drm/imx: imx-ldb: add missing of_node_puts
+ - [x86] ASoC: rt5682: Correct the setting while select ASRC clk for AD/DA
+ filter
+ - [armhf] clocksource: timer-ti-dm: Fix pwm dmtimer usage of fck
+ reparenting
+ - [armhf,arm64] KVM: vgic: Make vgic_dist->lpi_list_lock a raw_spinlock
+ - [arm64] dts: rockchip: fix graph_port warning on rk3399 bob kevin and
+ excavator
+ - [s390x] dasd: fix using offset into zero size array error
+ - Input: pwm-vibra - prevent unbalanced regulator
+ - Input: pwm-vibra - stop regulator after disabling pwm, not before
+ - [armhf] dts: Configure clock parent for pwm vibra
+ - [armhf] OMAP2+: Variable "reg" in function omap4_dsi_mux_pads() could be
+ uninitialized
+ - ASoC: dapm: fix out-of-bounds accesses to DAPM lookup tables
+ - [armhf,arm64] KVM: Reset the VCPU without preemption and vcpu state
+ loaded
+ - [armhf,arm64] KVM: Allow a VCPU to fully reset itself
+ - [armhf,arm64] KVM: Don't panic on failure to properly reset system
+ registers
+ - [armhf,arm64] KVM: vgic: Always initialize the group of private IRQs
+ - [arm64] KVM: Forbid kprobing of the VHE world-switch code
+ - [armhf] OMAP2+: fix lack of timer interrupts on CPU1 after hotplug
+ - mac80211: call drv_ibss_join() on restart
+ - mac80211: Fix Tx aggregation session tear down with ITXQs
+ - netfilter: compat: initialize all fields in xt_init
+ - blk-mq: insert rq with DONTPREP to hctx dispatch list when requeue
+ - ipvs: fix dependency on nf_defrag_ipv6
+ - floppy: check_events callback should not return a negative number
+ - xprtrdma: Make sure Send CQ is allocated on an existing compvec
+ - NFS: Don't use page_file_mapping after removing the page
+ - mm/gup: fix gup_pmd_range() for dax
+ - Revert "mm: use early_pfn_to_nid in page_ext_init"
+ - scsi: qla2xxx: Fix panic from use after free in qla2x00_async_tm_cmd
+ - [armhf] net: dsa: bcm_sf2: potential array overflow in
+ bcm_sf2_sw_suspend()
+ - [x86] CPU: Add Icelake model number
+ - mm: page_alloc: fix ref bias in page_frag_alloc() for 1-byte allocs
+ - [arm64] net: hns: Fix object reference leaks in hns_dsaf_roce_reset()
+ - [arm*] i2c: bcm2835: Clear current buffer pointers and counts after a
+ transfer
+ - [armhf] clk: sunxi-ng: v3s: Fix TCON reset de-assert bit
+ - kallsyms: Handle too long symbols in kallsyms.c
+ - [armhf] clk: sunxi: A31: Fix wrong AHB gate number
+ - esp: Skip TX bytes accounting when sending from a request socket
+ - [armhf] 8824/1: fix a migrating irq bug when hotplug cpu
+ - bpf: only adjust gso_size on bytestream protocols
+ - bpf: fix lockdep false positive in stackmap
+ - af_key: unconditionally clone on broadcast
+ - [armhf] 8835/1: dma-mapping: Clear DMA ops on teardown
+ - assoc_array: Fix shortcut creation
+ - keys: Fix dependency loop between construction record and auth key
+ - scsi: libiscsi: Fix race between iscsi_xmit_task and iscsi_complete_task
+ - [armhf] net: dsa: bcm_sf2: Do not assume DSA master supports WoL
+ - [arm64] pinctrl: meson: meson8b: fix the sdxc_a data 1..3 pins
+ - qmi_wwan: apply SET_DTR quirk to Sierra WP7607
+ - net: mv643xx_eth: disable clk on error path in mv643xx_eth_shared_probe()
+ - xfrm: Fix inbound traffic via XFRM interfaces across network namespaces
+ - ASoC: topology: free created components in tplg load error
+ - qed: Fix iWARP buffer size provided for syn packet processing.
+ - qed: Fix iWARP syn packet mac address validation.
+ - [armhf] dts: armada-xp: fix Armada XP boards NAND description
+ - [arm64] Relax GIC version check during early boot
+ - [armhf] tegra: Restore DT ABI on Tegra124 Chromebooks
+ - [armhf,arm64] net: marvell: mvneta: fix DMA debug warning
+ - mm: handle lru_add_drain_all for UP properly
+ - tmpfs: fix link accounting when a tmpfile is linked in
+ - ixgbe: fix older devices that do not support IXGBE_MRQC_L3L4TXSWEN
+ - phonet: fix building with clang
+ - mac80211_hwsim: propagate genlmsg_reply return code
+ - bpf, lpm: fix lookup bug in map_delete_elem
+ - [arm64] net: thunderx: make CFG_DONE message to run through generic
+ send-ack sequence
+ - [arm64] net: thunderx: add nicvf_send_msg_to_pf result check for
+ set_rx_mode_task
+ - nfp: bpf: fix code-gen bug on BPF_ALU | BPF_XOR | BPF_K
+ - nfp: bpf: fix ALU32 high bits clearance bug
+ - bnxt_en: Fix typo in firmware message timeout logic.
+ - bnxt_en: Wait longer for the firmware message response to complete.
+ - net: set static variable an initial value in atl2_probe()
+ - tmpfs: fix uninitialized return value in shmem_link
+ - stm class: Prevent division by zero
+ - nfit: acpi_nfit_ctl(): Check out_obj->type in the right place
+ - acpi/nfit: Fix bus command validation
+ - nfit/ars: Attempt a short-ARS whenever the ARS state is idle at boot
+ - nfit/ars: Attempt short-ARS even in the no_init_ars case
+ - [amd64] libnvdimm/label: Clear 'updating' flag after label-set update
+ - [amd64] libnvdimm, pfn: Fix over-trim in trim_pfn_device()
+ - [amd64] libnvdimm/pmem: Honor force_raw for legacy pmem regions
+ - [amd64] libnvdimm: Fix altmap reservation size calculation
+ - cgroupfs: fix cgroup_do_mount() handling of failure exits
+ - crypto: aead - set CRYPTO_TFM_NEED_KEY if ->setkey() fails
+ - crypto: aegis - fix handling chunked inputs
+ - [arm64] crypto: aes-neonbs - fix returning final keystream block
+ - crypto: hash - set CRYPTO_TFM_NEED_KEY if ->setkey() fails
+ - crypto: morus - fix handling chunked inputs
+ - crypto: pcbc - remove bogus memcpy()s with src == dest
+ - crypto: skcipher - set CRYPTO_TFM_NEED_KEY if ->setkey() fails
+ - crypto: testmgr - skip crc32c context test for ahash algorithms
+ - [x86] crypto: aegis - fix handling chunked inputs and MAY_SLEEP
+ - [x86] crypto: aesni-gcm - fix crash on empty plaintext
+ - [x86] crypto: morus - fix handling chunked inputs and MAY_SLEEP
+ - [arm64] crypto: aes-ccm - fix logical bug in AAD MAC handling
+ - [arm64] crypto: aes-ccm - fix bugs in non-NEON fallback routine
+ - CIFS: Do not reset lease state to NONE on lease break
+ - CIFS: Do not skip SMB2 message IDs on send failures
+ - CIFS: Fix read after write for files with read caching
+ - tracing: Use strncpy instead of memcpy for string keys in hist triggers
+ - tracing: Do not free iter->trace in fail path of tracing_open_pipe()
+ - tracing/perf: Use strndup_user() instead of buggy open-coded version
+ - xen: fix dom0 boot on huge systems
+ - ACPI / device_sysfs: Avoid OF modalias creation for removed device
+ - [armhf] mmc: sdhci-esdhc-imx: fix HS400 timing issue
+ - mmc:fix a bug when max_discard is 0
+ - netfilter: ipt_CLUSTERIP: fix warning unused variable cn
+ - [armhf] spi: ti-qspi: Fix mmap read when more than one CS in use
+ - [amd64] spi: pxa2xx: Setup maximum supported DMA transfer length
+ - [armhf] regulator: s2mps11: Fix steps for buck7, buck8 and LDO35
+ - [arm64] regulator: max77620: Initialize values for DT properties
+ - [armhf] regulator: s2mpa01: Fix step values for some LDOs
+ - [armhf] clocksource/drivers/exynos_mct: Move one-shot check from tick
+ clear to ISR
+ - [armhf] clocksource/drivers/exynos_mct: Clear timer interrupt when
+ shutdown
+ - [arm64] clocksource/drivers/arch_timer: Workaround for Allwinner A64
+ timer instability (Closes: #928457)
+ - [s390x] setup: fix early warning messages
+ - [s390x] virtio: handle find on invalid queue gracefully
+ - scsi: virtio_scsi: don't send sc payload with tmfs
+ - scsi: aacraid: Fix performance issue on logical drives
+ - scsi: sd: Optimal I/O size should be a multiple of physical block size
+ - scsi: target/iscsi: Avoid iscsit_release_commands_from_conn() deadlock
+ - scsi: qla2xxx: Fix LUN discovery if loop id is not assigned yet by
+ firmware
+ - fs/devpts: always delete dcache dentry-s in dput()
+ - splice: don't merge into linked buffers
+ - ovl: During copy up, first copy up data and then xattrs
+ - ovl: Do not lose security.capability xattr over metadata file copy-up
+ - Btrfs: setup a nofs context for memory allocation at btrfs_create_tree()
+ - Btrfs: setup a nofs context for memory allocation at __btrfs_set_acl
+ - btrfs: ensure that a DUP or RAID1 block group has exactly two stripes
+ - Btrfs: fix corruption reading shared and compressed extents after hole
+ punching
+ - libertas_tf: don't set URB_ZERO_PACKET on IN USB transfer
+ - [armhf,arm64] irqchip/gic-v3-its: Avoid parsing _indirect_ twice for
+ Device table
+ - [x86] kprobes: Prohibit probing on optprobe template code
+ - [armhf,arm64] cpufreq: tegra124: add missing of_node_put()
+ - ext4: fix check of inode in swap_inode_boot_loader
+ - ext4: cleanup pagecache before swap i_data
+ - ext4: update quota information while swapping boot loader inode
+ - ext4: add mask of ext4 flags to swap
+ - ext4: fix crash during online resizing
+ - PCI/ASPM: Use LTR if already enabled by platform
+ - PCI/DPC: Fix print AER status in DPC event handling
+ - [armhf,arm64] PCI: dwc: skip MSI init if MSIs have been explicitly
+ disabled
+ - IB/hfi1: Close race condition on user context disable and close
+ - [armhf] clk: clk-twl6040: Fix imprecise external abort for pdmclk
+ - [armhf] clk: samsung: exynos5: Fix possible NULL pointer exception on
+ platform_device_alloc() failure
+ - [armhf] clk: samsung: exynos5: Fix kfree() of const memory on setting
+ driver_override
+ - [armhf,arm64] usb: chipidea: tegra: Fix missed ci_hdrc_remove_device()
+ - [x86] usb: typec: tps6598x: handle block writes separately with plain-I2C
+ adapters
+ - mm: hwpoison: fix thp split handing in soft_offline_in_use_page()
+ - mm/vmalloc: fix size check for remap_vmalloc_range_partial()
+ - mm/memory.c: do_fault: avoid usage of stale vm_area_struct
+ - kernel/sysctl.c: add missing range check in do_proc_dointvec_minmax_conv
+ - device property: Fix the length used in PROPERTY_ENTRY_STRING()
+ - [x86] intel_th: Don't reference unassigned outputs
+ - parport_pc: fix find_superio io compare code, should use equal test.
+ - [armhf,arm64] i2c: tegra: fix maximum transfer size
+ - [armhf,arm64] gpio: pca953x: Fix dereference of irq data in shutdown
+ - [armhf] can: flexcan: FLEXCAN_IFLAG_MB: add () around macro argument
+ - [x86] drm/i915: Relax mmap VMA check
+ - bpf: only test gso type on gso packets
+ - [arm64] serial: uartps: Fix stuck ISR if RX disabled with non-empty FIFO
+ - serial: 8250_of: assume reg-shift of 2 for mrvl,mmp-uart
+ - serial: 8250_pci: Fix number of ports for ACCES serial cards
+ - serial: 8250_pci: Have ACCES cards that use the four port Pericom
+ PI7C9X7954 chip use the pci_pericom_setup()
+ - jbd2: clear dirty flag when revoking a buffer from an older transaction
+ - jbd2: fix compile warning when using JBUFFER_TRACE
+ - selinux: add the missing walk_size + len check in
+ selinux_sctp_bind_connect
+ - security/selinux: fix SECURITY_LSM_NATIVE_LABELS on reused superblock
+ - [powerpc*] powerpc/32: Clear on-stack exception marker upon exception
+ return
+ - [powerpc*] powernv: Make opal log only readable by root
+ - [powerpc*] powernv: Don't reprogram SLW image on every KVM guest
+ entry/exit
+ - [powerpc*] Fix 32-bit KVM-PR lockup and host crash with MacOS guest
+ - [powerpc*] ptrace: Simplify vr_get/set() to avoid GCC warning
+ - [powerpc*] hugetlb: Don't do runtime allocation of 16G pages in LPAR
+ configuration
+ - [powerpc*] traps: fix recoverability of machine check handling on
+ book3s/32
+ - [powerpc*] traps: Fix the message printed when stack overflows
+ - [arm64] Fix HCR.TGE status for NMI contexts
+ - [arm64] debug: Ensure debug handlers check triggering exception level
+ - [arm64] KVM: Fix architecturally invalid reset value for FPEXC32_EL2
+ - ipmi_si: fix use-after-free of resource->name
+ - dm: fix to_sector() for 32bit
+ - dm integrity: limit the rate of error messages
+ - mfd: sm501: Fix potential NULL pointer dereference
+ - NFS: Fix I/O request leakages
+ - NFS: Fix an I/O request leakage in nfs_do_recoalesce
+ - NFS: Don't recoalesce on error in nfs_pageio_complete_mirror()
+ - nfsd: fix performance-limiting session calculation
+ - nfsd: fix memory corruption caused by readdir
+ - nfsd: fix wrong check in write_v4_end_grace()
+ - NFSv4.1: Reinitialise sequence results before retransmitting a request
+ - svcrpc: fix UDP on servers with lots of threads
+ - PM / wakeup: Rework wakeup source timer cancellation
+ - bcache: never writeback a discard operation
+ - vt: perform safe console erase in the right order
+ - [x86] unwind/orc: Fix ORC unwind table alignment
+ - [x86] perf intel-pt: Fix CYC timestamp calculation after OVF
+ - perf tools: Fix split_kallsyms_for_kcore() for trampoline symbols
+ - perf auxtrace: Define auxtrace record alignment
+ - [x86] perf intel-pt: Fix overlap calculation for padding
+ - [x86] perf/intel/uncore: Fix client IMC events return huge result
+ - [x86] perf intel-pt: Fix divide by zero when TSC is not available
+ - md: Fix failed allocation of md_register_thread
+ - [x86] tpm/tpm_crb: Avoid unaligned reads in crb_recv()
+ - tpm: Unify the send callback behaviour
+ - rcu: Do RCU GP kthread self-wakeup from softirq and interrupt
+ - media: lgdt330x: fix lock status reporting
+ - media: uvcvideo: Avoid NULL pointer dereference at the end of streaming
+ - drm/fb-helper: generic: Fix drm_fbdev_client_restore()
+ - drm/radeon/evergreen_cs: fix missing break in switch statement
+ - drm/amd/powerplay: correct power reading on fiji
+ - drm/amd/display: don't call dm_pp_ function from an fpu block
+ - KVM: Call kvm_arch_memslots_updated() before updating memslots
+ - [x86] KVM: mmu: Detect MMIO generation wrap in any address space
+ - [x86] KVM: mmu: Do not cache MMIO accesses while memslots are in flux
+ - [x86] KVM: nVMX: Sign extend displacements of VMX instr's mem operands
+ - [x86] KVM: nVMX: Apply addr size mask to effective address for VMX
+ instructions
+ - [x86] KVM: nVMX: Ignore limit checks on VMX instructions using flat
+ segments
+ - bcache: use (REQ_META|REQ_PRIO) to indicate bio for metadata
+ - [s390x] setup: fix boot crash for machine without EDAT-1
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.32
+ - [x86] ALSA: hda - add Lenovo IdeaCentre B550 to the power_save_blacklist
+ - ALSA: firewire-motu: use 'version' field of unit directory to identify
+ model
+ - [x86] drm/vmwgfx: Don't double-free the mode stored in par->set_mode
+ - [x86] drm/vmwgfx: Return 0 when gmrid::get_node runs out of ID's
+ - [amd64] iommu/amd: fix sg->dma_address for sg->offset bigger than
+ PAGE_SIZE
+ - libceph: wait for latest osdmap in ceph_monc_blacklist_add()
+ - udf: Fix crash on IO error during truncate
+ - [mips64*/loongson-3] lemote-2f: Add IRQF_NO_SUSPEND to "cascade"
+ irqaction.
+ - [mips*] Ensure ELF appended dtb is relocated
+ - [mips*r6] Fix kernel crash for R6 in jump label branch function
+ - [powerpc*] vdso64: Fix CLOCK_MONOTONIC inconsistencies across Y2038
+ - [powerpc*] scsi: ibmvscsi: Protect ibmvscsi_head from concurrent
+ modificaiton
+ - [powerpc*] scsi: ibmvscsi: Fix empty event pool access during host
+ removal
+ - futex: Ensure that futex address is aligned in handle_futex_death()
+ - cifs: allow guest mounts to work for smb3.11
+ - perf probe: Fix getting the kernel map
+ - [x86] objtool: Move objtool_file struct off the stack
+ - [armhf,arm64] irqchip/gic-v3-its: Fix comparison logic in lpi_range_cmp
+ - SMB3: Fix SMB3.1.1 guest mounts to Samba
+ - [x86] ALSA: Fix runtime PM for hdmi-lpe-audio
+ - ALSA: hda/ca0132 - make pci_iounmap() call conditional
+ - ALSA: ac97: Fix of-node refcount unbalance
+ - ext4: fix NULL pointer dereference while journal is aborted
+ - ext4: fix data corruption caused by unaligned direct AIO
+ - ext4: brelse all indirect buffer in ext4_ind_remove_space()
+ - media: v4l2-ctrls.c/uvc: zero v4l2_event
+ - Bluetooth: hci_uart: Check if socket buffer is ERR_PTR in h4_recv_buf()
+ - Bluetooth: Fix decrementing reference count twice in releasing socket
+ - Bluetooth: hci_ldisc: Initialize hci_dev before open()
+ - Bluetooth: hci_ldisc: Postpone HCI_UART_PROTO_READY bit set in
+ hci_uart_set_proto()
+ - drm: Reorder set_property_atomic to avoid returning with an active ww_ctx
+ - RDMA/cma: Rollback source IP address if failing to acquire device
+ - f2fs: fix to avoid deadlock of atomic file operations
+ - netfilter: ebtables: remove BUGPRINT messages
+ - loop: access lo_backing_file only when the loop device is Lo_bound
+ - [x86] unwind: Handle NULL pointer calls better in frame unwinder
+ - [x86] unwind: Add hardcoded ORC entry for NULL
+ - ALSA: hda - Record the current power state before suspend/resume calls
+ - ALSA: hda - Enforces runtime_resume after S3 and S4 for each codec
+ - power: supply: charger-manager: Fix incorrect return value
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.33
+ - Bluetooth: Check L2CAP option sizes returned from l2cap_get_conf_opt
+ (CVE-2019-3460)
+ - Bluetooth: Verify that l2cap_get_conf_opt provides large enough buffer
+ (CVE-2019-3459)
+ - ipmi_si: Fix crash when using hard-coded device
+ - dccp: do not use ipv6 header for ipv4 flow
+ - genetlink: Fix a memory leak on error path
+ - ipv6: make ip6_create_rt_rcu return ip6_null_entry instead of NULL
+ - mac8390: Fix mmio access size probe
+ - mISDN: hfcpci: Test both vendor & device ID for Digium HFC4S
+ - net: aquantia: fix rx checksum offload for UDP/TCP over IPv6
+ - net: datagram: fix unbounded loop in __skb_try_recv_datagram()
+ - net/packet: Set __GFP_NOWARN upon allocation in alloc_pg_vec
+ - [arm64] net: phy: meson-gxl: fix interrupt support
+ - net: rose: fix a possible stack overflow
+ - [armhf,arm64] net: stmmac: fix memory corruption with large MTUs
+ - net-sysfs: call dev_hold if kobject_init_and_add success
+ - packets: Always register packet sk in the same order
+ - rhashtable: Still do rehash when we get EEXIST
+ - sctp: get sctphdr by offset in sctp_compute_cksum
+ - sctp: use memdup_user instead of vmemdup_user
+ - tcp: do not use ipv6 header for ipv4 flow
+ - tipc: allow service ranges to be connect()'ed on RDM/DGRAM
+ - tipc: change to check tipc_own_id to return in tipc_net_stop
+ - tipc: fix cancellation of topology subscriptions
+ - tun: properly test for IFF_UP
+ - vrf: prevent adding upper devices
+ - vxlan: Don't call gro_cells_destroy() before device is unregistered
+ - ila: Fix rhashtable walker list corruption
+ - net: sched: fix cleanup NULL pointer exception in act_mirr
+ - [arm64] thunderx: enable page recycling for non-XDP case
+ - [arm64] thunderx: eliminate extra calls to put_page() for pages held for
+ recycling
+ - tun: add a missing rcu_read_unlock() in error path
+ - [powerpcspe] fsl: Add infrastructure to fixup branch predictor flush
+ - [powerpcspe] fsl: Add macro to flush the branch predictor
+ - [powerpcspe] fsl: Emulate SPRN_BUCSR register
+ - [powerpcspe] fsl: Add nospectre_v2 command line argument
+ - [powerpcspe] fsl: Flush the branch predictor at each kernel entry (32 bit)
+ - [powerpcspe] fsl: Enable runtime patching if nospectre_v2 boot arg is used
+ - [powerpcspe] fsl: Update Spectre v2 reporting
+ - [powerpcspe] fsl: Fixed warning: orphan section `__btb_flush_fixup'
+ - [powerpc*] security: Fix spectre_v2 reporting
+ - Btrfs: fix incorrect file size after shrinking truncate and fsync
+ - btrfs: remove WARN_ON in log_dir_items
+ - btrfs: don't report readahead errors and don't update statistics
+ - btrfs: raid56: properly unmap parity page in finish_parity_scrub()
+ - btrfs: Avoid possible qgroup_rsv_size overflow in
+ btrfs_calculate_inode_block_rsv_size
+ - Btrfs: fix assertion failure on fsync with NO_HOLES enabled
+ - [armhf] imx6q: cpuidle: fix bug that CPU might not wake up at expected
+ time
+ - [powerpc*] bpf: Fix generation of load/store DW instructions
+ - [s390x] vfio: ccw: only free cp on final interrupt
+ - NFS: fix mount/umount race in nlmclnt.
+ - NFSv4.1 don't free interrupted slot on open
+ - ALSA: rawmidi: Fix potential Spectre v1 vulnerability
+ - ALSA: seq: oss: Fix Spectre v1 vulnerability
+ - ALSA: pcm: Fix possible OOB access in PCM oss plugins
+ - ALSA: pcm: Don't suspend stream in unrecoverable PCM state
+ - [x86] ALSA: hda/realtek - Add support headset mode for DELL WYSE AIO
+ - [x86] ALSA: hda/realtek - Add support headset mode for New DELL WYSE NB
+ - [x86] ALSA: hda/realtek: Enable headset MIC of Acer AIO with ALC286
+ - [x86] ALSA: hda/realtek: Enable headset MIC of Acer Aspire Z24-890 with
+ ALC286
+ - [x86] ALSA: hda/realtek - Add support for Acer Aspire E5-523G/ES1-432
+ headset mic
+ - [x86] ALSA: hda/realtek: Enable ASUS X441MB and X705FD headset MIC with
+ ALC256
+ - [x86] ALSA: hda/realtek: Enable headset mic of ASUS P5440FF with ALC256
+ - [x86] ALSA: hda/realtek: Enable headset MIC of ASUS X430UN and X512DK
+ with ALC256
+ - [x86] ALSA: hda/realtek - Fix speakers on Acer Predator Helios 500 Ryzen
+ laptops
+ - kbuild: modversions: Fix relative CRC byte order interpretation
+ - fs/open.c: allow opening only regular files during execve()
+ - ocfs2: fix inode bh swapping mixup in ocfs2_reflink_inodes_lock
+ - scsi: sd: Fix a race between closing an sd device and sd I/O
+ - scsi: sd: Quiesce warning if device does not report optimal I/O size
+ - [s390x] scsi: zfcp: fix rport unblock if deleted SCSI devices on
+ Scsi_Host
+ - [s390x] scsi: zfcp: fix scsi_eh host reset with port_forced ERP for
+ non-NPIV FCP devices
+ - [armhf,arm64] drm/rockchip: vop: reset scale mode when win is disabled
+ - [x86] staging: comedi: ni_mio_common: Fix divide-by-zero for DIO cmdtest
+ - staging: speakup_soft: Fix alternate speech with other synths
+ - staging: vt6655: Remove vif check from vnt_interrupt
+ - staging: vt6655: Fix interrupt race condition on device start up.
+ - [arm64] serial: mvebu-uart: Fix to avoid a potential NULL pointer
+ dereference
+ - [sh4] serial: sh-sci: Fix setting SCSCR_TIE while transferring data
+ - USB: serial: cp210x: add new device id
+ - USB: serial: ftdi_sio: add additional NovaTech products
+ - USB: serial: mos7720: fix mos_parport refcount imbalance on error path
+ - USB: serial: option: set driver_info for SIM5218 and compatibles
+ - USB: serial: option: add support for Quectel EM12
+ - USB: serial: option: add Olicard 600
+ - fs/proc/proc_sysctl.c: fix NULL pointer dereference in put_links
+ - drm/vgem: fix use-after-free when drm_gem_handle_create() fails
+ - [x86] drm/i915/gvt: Fix MI_FLUSH_DW parsing with correct index check
+ - gpio: exar: add a check for the return value of ida_simple_get fails
+ - [armhf,arm64] phy: sun4i-usb: Support set_mode to USB_HOST for non-OTG
+ PHYs
+ - USB: gadget: f_hid: fix deadlock in f_hidg_write()
+ - usb: common: Consider only available nodes for dr_mode
+ - xhci: Fix port resume done detection for SS ports with LPM enabled
+ - usb: xhci: dbc: Don't free all memory with spinlock held
+ - xhci: Don't let USB3 ports stuck in polling state prevent suspend
+ - usb: cdc-acm: fix race during wakeup blocking TX traffic
+ - mm: add support for kmem caches in DMA32 zone
+ - [armhf,arm64] iommu/io-pgtable-arm-v7s: request DMA32 memory, and improve
+ debugging
+ - mm: mempolicy: make mbind() return -EIO when MPOL_MF_STRICT is specified
+ - mm/migrate.c: add missing flush_dcache_page for non-mapped page migrate
+ - perf pmu: Fix parser error for uncore event alias
+ - [x86] perf intel-pt: Fix TSC slip
+ - [x86] objtool: Query pkg-config for libelf location
+ - [powerpc*] pseries/energy: Use OF accessor functions to read
+ ibm,drc-indexes
+ - [powerpc*] powerpc/64: Fix memcmp reading past the end of src/dest
+ - watchdog: Respect watchdog cpumask on CPU hotplug
+ - cpu/hotplug: Prevent crash when CPU bringup fails on CONFIG_HOTPLUG_CPU=n
+ - KVM: Reject device ioctls from processes other than the VM's creator
+ - [x86] KVM: update %rip after emulating IO
+ - [x86] KVM: Emulate MSR_IA32_ARCH_CAPABILITIES on AMD hosts
+ - bpf: do not restore dst_reg when cur_state is freed
+ - [x86] platform: intel_cht_int33fe: Register all connections at once
+ - [x86] platform: intel_cht_int33fe: Add connection for the DP alt mode
+ - [x86] platform: intel_cht_int33fe: Add connections for the USB Type-C port
+ - usb: typec: class: Don't use port parent for getting mux handles
+ - [x86] platform: intel_cht_int33fe: Remove the old connections for the
+ muxes
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.34
+ - [arm64] debug: Don't propagate UNKNOWN FAR into si_code for debug signals
+ - ext4: cleanup bh release code in ext4_ind_remove_space()
+ - CIFS: fix POSIX lock leak and invalid ptr deref
+ - f2fs: fix to adapt small inline xattr space in __find_inline_xattr()
+ - f2fs: fix to avoid deadlock in f2fs_read_inline_dir()
+ - tracing: kdb: Fix ftdump to not sleep
+ - net/mlx5: Avoid panic when setting vport rate
+ - net/mlx5: Avoid panic when setting vport mac, getting vport config
+ - [armhf] gpio: gpio-omap: fix level interrupt idling
+ - sysctl: handle overflow for file-max
+ - [armhf,arm64] net: stmmac: Avoid sometimes uninitialized Clang warnings
+ - enic: fix build warning without CONFIG_CPUMASK_OFFSTACK
+ - [arm64] scsi: hisi_sas: Set PHY linkrate when disconnected
+ - [arm64] scsi: hisi_sas: Fix a timeout race of driver internal and SMP IO
+ - iio: adc: fix warning in Qualcomm PM8xxx HK/XOADC driver
+ - [x86] hyperv: Fix kernel panic when kexec on HyperV
+ - perf c2c: Fix c2c report for empty numa node
+ - mm/sparse: fix a bad comparison
+ - mm/cma.c: cma_declare_contiguous: correct err handling
+ - mm/page_ext.c: fix an imbalance with kmemleak
+ - mm, swap: bounds check swap_info array accesses to avoid NULL derefs
+ - mm,oom: don't kill global init via memory.oom.group
+ - memcg: killed threads should not invoke memcg OOM killer
+ - mm, mempolicy: fix uninit memory access
+ - mm/vmalloc.c: fix kernel BUG at mm/vmalloc.c:512!
+ - mm/slab.c: kmemleak no scan alien caches
+ - ocfs2: fix a panic problem caused by o2cb_ctl
+ - f2fs: do not use mutex lock in atomic context
+ - fs/file.c: initialize init_files.resize_wait
+ - page_poison: play nicely with KASAN
+ - cifs: use correct format characters
+ - dm thin: add sanity checks to thin-pool and external snapshot creation
+ - f2fs: fix to check inline_xattr_size boundary correctly
+ - cifs: Accept validate negotiate if server return NT_STATUS_NOT_SUPPORTED
+ - cifs: Fix NULL pointer dereference of devname
+ - netfilter: nf_tables: check the result of dereferencing base_chain->stats
+ - netfilter: conntrack: tcp: only close if RST matches exact sequence
+ - jbd2: fix invalid descriptor block checksum
+ - fs: fix guard_bio_eod to check for real EOD errors
+ - tools lib traceevent: Fix buffer overflow in arg_eval
+ - PCI/PME: Fix hotplug/sysfs remove deadlock in pcie_pme_remove()
+ - wil6210: check null pointer in _wil_cfg80211_merge_extra_ies
+ - mt76: fix a leaked reference by adding a missing of_node_put
+ - [armhf,arm64] usb: chipidea: Grab the (legacy) USB PHY by phandle first
+ - [powerpc*] powernv/ioda: Fix locked_vm counting for memory used by IOMMU
+ tables
+ - scsi: core: replace GFP_ATOMIC with GFP_KERNEL in scsi_scan.c
+ - [powerpc*] xmon: Fix opcode being uninitialized in print_insn_powerpc
+ - [armhf,arm64] coresight: etm4x: Add support to enable ETMv4.2
+ - [armhf] 8840/1: use a raw_spinlock_t in unwind
+ - [armhf,arm64] iommu/io-pgtable-arm-v7s: Only kmemleak_ignore L2 tables
+ - [powerpc*] hugetlb: Handle mmap_min_addr correctly in get_unmapped_area
+ callback
+ - btrfs: qgroup: Make qgroup async transaction commit more aggressive
+ - [armhf] mmc: omap: fix the maximum timeout setting
+ - [armhf.arm64] net: dsa: mv88e6xxx: Add lockdep classes to fix false
+ positive splat
+ - e1000e: Fix -Wformat-truncation warnings
+ - [x86] platform: ideapad-laptop: Fix no_hw_rfkill_list for Lenovo RESCUER
+ R720-15IKBN
+ - loop: set GENHD_FL_NO_PART_SCAN after blkdev_reread_part()
+ - IB/mlx4: Increase the timeout for CM cache
+ - clk: fractional-divider: check parent rate only if flag is set
+ - perf annotate: Fix getting source line failure
+ - [arm64] ASoC: qcom: Fix of-node refcount unbalance in qcom_snd_parse_of()
+ - cpufreq: acpi-cpufreq: Report if CPU doesn't support boost technologies
+ - efi: cper: Fix possible out-of-bounds access
+ - [s390x] ism: ignore some errors during deregistration
+ - scsi: megaraid_sas: return error when create DMA pool failed
+ - scsi: fcoe: make use of fip_mode enum complete
+ - drm/amd/display: Clear stream->mode_changed after commit
+ - [s390x] perf test: Fix failure of 'evsel-tp-sched' test on s390
+ - mwifiex: don't advertise IBSS features without FW support
+ - perf report: Don't shadow inlined symbol with different addr range
+ - [armhf] SoC: imx-sgtl5000: add missing put_device()
+ - mt76: usb: do not run mt76u_queues_deinit twice
+ - xen/gntdev: Do not destroy context while dma-bufs are in use
+ - vfs: fix preadv64v2 and pwritev64v2 compat syscalls with offset == -1
+ - [x86] HID: intel-ish-hid: avoid binding wrong ishtp_cl_device
+ - cgroup, rstat: Don't flush subtree root unless necessary
+ - jbd2: fix race when writing superblock
+ - [s390x] perf report: Add s390 diagnosic sampling descriptor size
+ - iwlwifi: pcie: fix emergency path
+ - ACPI / video: Refactor and fix dmi_is_desktop()
+ - kprobes: Prohibit probing on bsearch()
+ - kprobes: Prohibit probing on RCU debug routine
+ - netfilter: conntrack: fix cloned unconfirmed skb->_nfct race in
+ __nf_conntrack_confirm
+ - [armhf] 8833/1: Ensure that NEON code always compiles with Clang
+ - ALSA: PCM: check if ops are defined before suspending PCM
+ - ath10k: fix shadow register implementation for WCN3990
+ - usb: f_fs: Avoid crash due to out-of-scope stack ptr access
+ - sched/topology: Fix percpu data types in struct sd_data & struct s_data
+ - bcache: fix input overflow to cache set sysfs file io_error_halflife
+ - bcache: fix input overflow to sequential_cutoff
+ - bcache: fix potential div-zero error of writeback_rate_i_term_inverse
+ - bcache: improve sysfs_strtoul_clamp()
+ - genirq: Avoid summation loops for /proc/stat
+ - [armhf,arm64] net: marvell: mvpp2: fix stuck in-band SGMII negotiation
+ - iw_cxgb4: fix srqidx leak during connection abort
+ - net: phy: consider latched link-down status in polling mode
+ - fbdev: fbmem: fix memory access if logo is bigger than the screen
+ - cdrom: Fix race condition in cdrom_sysctl_register
+ - drm: rcar-du: add missing of_node_put
+ - drm/amd/display: Don't re-program planes for DPMS changes
+ - drm/amd/display: Disconnect mpcc when changing tg
+ - perf/aux: Make perf_event accessible to setup_aux()
+ - e1000e: fix cyclic resets at link up with active tx
+ - e1000e: Exclude device from suspend direct complete optimization
+ - [x86] platform: intel_pmc_core: Fix PCH IP sts reading
+ - i2c: of: Try to find an I2C adapter matching the parent
+ - iwlwifi: mvm: fix RFH config command with >=10 CPUs
+ - sched/debug: Initialize sd_sysctl_cpus if !CONFIG_CPUMASK_OFFSTACK
+ - efi/memattr: Don't bail on zero VA if it equals the region's PA
+ - sched/core: Use READ_ONCE()/WRITE_ONCE() in move_queued_task()/
+ task_rq_lock()
+ - drm/vkms: Bugfix extra vblank frame
+ - [armhf] dts: lpc32xx: Remove leading 0x and 0s from bindings notation
+ - [armhf,arm64] efi: Allow SetVirtualAddressMap() to be omitted
+ - [arm64] soc: qcom: gsbi: Fix error handling in gsbi_probe()
+ - mt7601u: bump supported EEPROM version
+ - [armhf] 8830/1: NOMMU: Toggle only bits in EXC_RETURN we are really care
+ of
+ - [armhf] avoid Cortex-A9 livelock on tight dmb loops
+ - block, bfq: fix in-service-queue check for queue merging
+ - [powerpc*] 64s: Clear on-stack exception marker upon exception return
+ - cgroup/pids: turn cgroup_subsys->free() into cgroup_subsys->release() to
+ fix the accounting
+ - [armhf,arm64] backlight: pwm_bl: Use gpiod_get_value_cansleep() to get
+ initial state
+ - tty: increase the default flip buffer limit to 2*640K
+ - [powerpc*] pseries: Perform full re-add of CPU for topology update
+ post-migration
+ - drm/amd/display: Enable vblank interrupt during CRC capture
+ - ALSA: dice: add support for Solid State Logic Duende Classic/Mini
+ - [armhf,arm64] usb: dwc3: gadget: Fix OTG events when gadget driver isn't
+ loaded
+ - [x86] platform: intel-hid: Missing power button release on some Dell
+ models
+ - perf script python: Use PyBytes for attr in trace-event-python
+ - perf script python: Add trace_context extension module to sys.modules
+ - hwrng: virtio - Avoid repeated init of completion
+ - [armhf,arm64] soc/tegra: fuse: Fix illegal free of IO base address
+ - [x86] HID: intel-ish: ipc: handle PIMR before ish_wakeup also clear PISR
+ busy_clear bit
+ - f2fs: UBSAN: set boolean value iostat_enable correctly
+ - hpet: Fix missing '=' character in the __setup() code of hpet_mmap_enable
+ - [armhf] dmaengine: imx-dma: fix warning comparison of distinct pointer
+ types
+ - [arm64] dmaengine: qcom_hidma: assign channel cookie correctly
+ - [arm64] dmaengine: qcom_hidma: initialize tx flags in hidma_prep_dma_*
+ - netfilter: physdev: relax br_netfilter dependency
+ - [armhf] regulator: act8865: Fix act8600_sudcdc_voltage_ranges setting
+ - [arm64] pinctrl: meson: meson8b: add the eth_rxd2 and eth_rxd3 pins
+ - drm: Auto-set allow_fb_modifiers when given modifiers at plane init
+ - drm/nouveau: Stop using drm_crtc_force_disable
+ - selinux: do not override context on context mounts
+ - brcmfmac: Use firmware_request_nowarn for the clm_blob
+ - [armhf,arm64] wlcore: Fix memory leak in case wl12xx_fetch_firmware
+ failure
+ - drm/fb-helper: fix leaks in error path of drm_fb_helper_fbdev_setup
+ - [arm64] clk: rockchip: fix frac settings of GPLL clock for rk3328
+ - [armhf,arm64] dmaengine: tegra: avoid overflow of byte tracking
+ - [x86] Input: soc_button_array - fix mapping of the 5th GPIO in a PNP0C40
+ device
+ - drm/dp/mst: Configure no_stop_bit correctly for remote i2c xfers
+ - ACPI / video: Extend chassis-type detection with a "Lunch Box" check
+ - bcache: fix potential div-zero error of writeback_rate_p_term_inverse
+ - [x86] kprobes: Blacklist non-attachable interrupt functions
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.35
+ - [x86] kvm: nVMX: NMI-window and interrupt-window exiting should wake L2
+ from HLT
+ - [powerpc*] tm: Limit TM code inside PPC_TRANSACTIONAL_MEM
+ - [x86] hv_netvsc: Fix unwanted wakeup after tx_disable
+ - ip6_tunnel: Match to ARPHRD_TUNNEL6 for dev type
+ - ipv6: Fix dangling pointer when ipv6 fragment
+ - ipv6: sit: reset ip header pointer in ipip6_rcv
+ - net: ethtool: not call vzalloc for zero sized memory request
+ - net-gro: Fix GRO flush when receiving a GSO packet.
+ - net/mlx5: Decrease default mr cache size
+ - netns: provide pure entropy for net_hash_mix()
+ - net: rds: force to destroy connection if t_sock is NULL in
+ rds_tcp_kill_sock().
+ - net/sched: act_sample: fix divide by zero in the traffic path
+ - net/sched: fix ->get helper of the matchall cls
+ - openvswitch: fix flow actions reallocation
+ - qmi_wwan: add Olicard 600
+ - r8169: disable ASPM again
+ - sctp: initialize _pad of sockaddr_in before copying to user memory
+ - tcp: Ensure DCTCP reacts to losses
+ - tcp: fix a potential NULL pointer dereference in tcp_sk_exit
+ - vrf: check accept_source_route on the original netdevice
+ - net/mlx5e: Fix error handling when refreshing TIRs
+ - net/mlx5e: Add a lock on tir list
+ - nfp: validate the return code from dev_queue_xmit()
+ - nfp: disable netpoll on representors
+ - bnxt_en: Improve RX consumer index validity check.
+ - bnxt_en: Reset device on RX buffer errors.
+ - net: ip_gre: fix possible use-after-free in erspan_rcv
+ - net: ip6_gre: fix possible use-after-free in ip6erspan_rcv
+ - net: core: netif_receive_skb_list: unlist skb before passing to pt->func
+ - r8169: disable default rx interrupt coalescing on RTL8168
+ (Closes: #925496)
+ - net: mlx5: Add a missing check on idr_find, free buf
+ - net/mlx5e: Update xoff formula
+ - net/mlx5e: Update xon formula
+ - kbuild: deb-pkg: fix bindeb-pkg breakage when O= is used
+ - netfilter: nfnetlink_cttimeout: pass default timeout policy to
+ obj_to_nlattr
+ - netfilter: nfnetlink_cttimeout: fetch timeouts for udplite and gre, too
+ - [arm64] kaslr: Reserve size of ARM64_MEMSTART_ALIGN in linear region
+ - [x86] tty: mark Siemens R3964 line discipline as BROKEN (CVE-2019-11486)
+ - tty: ldisc: add sysctl to prevent autoloading of ldiscs
+ - ACPICA: Clear status of GPEs before enabling them
+ - ACPICA: Namespace: remove address node from global list after method
+ termination
+ - ALSA: seq: Fix OOB-reads from strlcpy
+ - [x86] ALSA: hda/realtek: Enable headset MIC of Acer TravelMate B114-21
+ with ALC233
+ - [x86] ALSA: hda/realtek - Add quirk for Tuxedo XC 1509
+ - [x86] ALSA: hda - Add two more machines to the power_save_blacklist
+ - mm/huge_memory.c: fix modifying of page protection by insert_pfn_pmd()
+ - [arm64] dts: rockchip: fix rk3328 sdmmc0 write errors
+ - [hppa] Detect QEMU earlier in boot process
+ - [hppa] regs_return_value() should return gpr28
+ - [hppa] also set iaoq_b in instruction_pointer_set()
+ - alarmtimer: Return correct remaining time
+ - drm/udl: add a release method and delay modeset teardown
+ - [x86] kvm: svm: fix potential get_num_contig_pages overflow
+ - include/linux/bitrev.h: fix constant bitrev
+ - mm: writeback: use exact memcg dirty counts
+ - [x86] ASoC: intel: Fix crash at suspend/resume after failed codec
+ registration
+ - Btrfs: do not allow trimming when a fs is mounted with the nologreplay
+ option
+ - btrfs: prop: fix zstd compression parameter validation
+ - btrfs: prop: fix vanished compression property after failed set
+ - [riscv64] Fix syscall_get_arguments() and syscall_set_arguments()
+ - block: do not leak memory in bio_copy_user_iov()
+ - block: fix the return errno for direct IO
+ - genirq: Respect IRQCHIP_SKIP_SET_WAKE in irq_chip_set_wake_parent()
+ - genirq: Initialize request_mutex if CONFIG_SPARSE_IRQ=n
+ - virtio: Honour 'may_reduce_num' in vring_create_virtqueue
+ - [armhf] dts: rockchip: fix rk3288 cpu opp node reference
+ - [armhf] dts: am335x-evmsk: Correct the regulators for the audio codec
+ - [armhf] dts: am335x-evm: Correct the regulators for the audio codec
+ - [arm64] futex: Fix FUTEX_WAKE_OP atomic ops with non-zero result value
+ - [arm64] dts: rockchip: fix rk3328 rgmii high tx error rate
+ - [arm64] backtrace: Don't bother trying to unwind the userspace stack
+ - xen: Prevent buffer overflow in privcmd ioctl
+ - sched/fair: Do not re-read ->h_load_next during hierarchical load
+ calculation
+ - [x86] asm: Use stricter assembly constraints in bitops
+ - [x86] perf/amd: Resolve race condition when disabling PMC
+ - [x86] perf/amd: Resolve NMI latency issues for active PMCs
+ - [x86] perf/amd: Remove need to check "running" bit in NMI handler
+ - PCI: Add function 1 DMA alias quirk for Marvell 9170 SATA controller
+ - PCI: pciehp: Ignore Link State Changes after powering off a slot
+ - dm integrity: change memcmp to strncmp in dm_integrity_ctr
+ - dm: revert 8f50e358153d ("dm: limit the max bio size as BIO_MAX_PAGES *
+ PAGE_SIZE")
+ - dm table: propagate BDI_CAP_STABLE_WRITES to fix sporadic checksum errors
+ - dm integrity: fix deadlock with overlapping I/O
+ - [arm64] dts: rockchip: fix vcc_host1_5v pin assign on rk3328-rock64
+ - [arm64] dts: rockchip: Fix vcc_host1_5v GPIO polarity on rk3328-rock64
+ - ACPICA: AML interpreter: add region addresses in global list during
+ initialization
+ - [x86] KVM: nVMX: close leak of L0's x2APIC MSRs (CVE-2019-3887)
+ - [x86] KVM: nVMX: fix x2APIC VTPR read intercept
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.36
+ - inotify: Fix fsnotify_mark refcount leak in
+ inotify_update_existing_watch() (CVE-2019-9857)
+ - perf/core: Restore mmap record type correctly
+ - ext4: avoid panic during forced reboot
+ - ext4: add missing brelse() in add_new_gdb_meta_bg()
+ - ext4: report real fs size after failed resize
+ - ALSA: echoaudio: add a check for ioremap_nocache
+ - [i386,alpha] ALSA: sb8: add a check for request_region
+ - drm/udl: use drm_gem_object_put_unlocked.
+ - IB/mlx4: Fix race condition between catas error reset and aliasguid flows
+ - i40iw: Avoid panic when handling the inetdev event
+ - [i386,alpha] ALSA: opl3: fix mismatch between snd_opl3_drum_switch
+ definition and declaration
+ - [x86] thermal/intel_powerclamp: fix __percpu declaration of worker_data
+ - [arm*] thermal: bcm2835: Fix crash in bcm2835_thermal_debugfs
+ - [x86] thermal/int340x_thermal: Add additional UUIDs
+ - [x86] thermal/int340x_thermal: fix mode setting
+ - [x86] thermal/intel_powerclamp: fix truncated kthread name
+ - scsi: iscsi: flush running unbind operations when removing a session
+ - sched/cpufreq: Fix 32-bit math overflow
+ - sched/core: Fix buffer overflow in cgroup2 property cpu.max
+ - [x86] mm: Don't leak kernel addresses
+ - [x86] tools/power turbostat: return the exit status of a command
+ - perf list: Don't forget to drop the reference to the allocated thread_map
+ - perf config: Fix an error in the config template documentation
+ - perf config: Fix a memory leak in collect_config()
+ - perf build-id: Fix memory leak in print_sdt_events()
+ - perf top: Fix error handling in cmd_top()
+ - perf hist: Add missing map__put() in error case
+ - perf evsel: Free evsel->counts in perf_evsel__exit()
+ - ACPI / utils: Drop reference in test for device presence
+ - PM / Domains: Avoid a potential deadlock
+ - [armhf] drm/exynos/mixer: fix MIXER shadow registry synchronisation code
+ - [arm64] irqchip/mbigen: Don't clear eventid when freeing an MSI
+ - [x86] hpet: Prevent potential NULL pointer dereference
+ - [x86] hyperv: Prevent potential NULL pointer dereference
+ - [i386] cpu/cyrix: Use correct macros for Cyrix calls on Geode processors
+ - drm/nouveau/debugfs: Fix check of pm_runtime_get_sync failure
+ - [x86] iommu/vt-d: Check capability before disabling protected memory
+ - [x86] hw_breakpoints: Make default case in hw_breakpoint_arch_parse()
+ return an error
+ - fix incorrect error code mapping for OBJECTID_NOT_FOUND
+ - [x86] gart: Exclude GART aperture from kcore
+ - ext4: prohibit fstrim in norecovery mode
+ - drm/cirrus: Use drm_framebuffer_put to avoid kernel oops in clean-up
+ - rsi: improve kernel thread handling to fix kernel panic
+ - f2fs: fix to avoid NULL pointer dereference on se->discard_map
+ - 9p: do not trust pdu content for stat item size
+ - 9p locks: add mount option for lock retry interval
+ - ASoC: Fix UBSAN warning at snd_soc_get/put_volsw_sx()
+ - f2fs: fix to do sanity check with current segment number
+ - netfilter: xt_cgroup: shrink size of v2 path
+ - [arm64] serial: uartps: console_setup() can't be placed to init section
+ - [powerpc*] pseries: Remove prrn_work workqueue
+ - media: au0828: cannot kfree dev before usb disconnect
+ - Bluetooth: Fix debugfs NULL pointer dereference
+ - HID: i2c-hid: override HID descriptors for certain devices
+ - pinctrl: core: make sure strcmp() doesn't get a null parameter
+ - usbip: fix vhci_hcd controller counting
+ - [x86] ACPI / SBS: Fix GPE storm on recent MacBookPro's
+ - HID: usbhid: Add quirk for Redragon/Dragonrise Seymur 2
+ - [x86] KVM: nVMX: restore host state in nested_vmx_vmexit for VMFail
+ - netfilter: nf_flow_table: remove flowtable hook flush routine in netns
+ exit routine
+ - f2fs: cleanup dirty pages if recover failed
+ - [armhf,arm64] net: stmmac: Set OWN bit for jumbo frames
+ - cifs: fallback to older infolevels on findfirst queryinfo retry
+ - kernel: hung_task.c: disable on suspend
+ - drm/ttm: Fix bo_global and mem_global kfree error
+ - [x86] ALSA: hda: fix front speakers on Huawei MBXP
+ - ACPI: EC / PM: Disable non-wakeup GPEs for suspend-to-idle
+ - net/rds: fix warn in rds_message_alloc_sgs
+ - xfrm: destroy xfrm_state synchronously on net exit path
+ - net: ip6_gre: fix possible NULL pointer dereference in
+ ip6erspan_set_version
+ - [x86] iommu/dmar: Fix buffer overflow during PCI bus notification
+ - scsi: core: Avoid that system resume triggers a kernel warning
+ - [armhf,arm64] soc/tegra: pmc: Drop locking from
+ tegra_powergate_is_powered()
+ - Revert "ACPI / EC: Remove old CLEAR_ON_RESUME quirk"
+ - [arm64] coresight: cpu-debug: Support for CA73 CPUs
+ - [x86] PCI: Blacklist power management of Gigabyte X299 DESIGNARE EX PCIe
+ ports
+ - drm/nouveau/volt/gf117: fix speedo readout register
+ - [armel,armhf] 8839/1: kprobe: make patch_lock a raw_spinlock_t
+ - [x86] drm/amdkfd: use init_mqd function to allocate object for hid_mqd
+ (CI)
+ - appletalk: Fix use-after-free in atalk_proc_exit
+ - lib/div64.c: off by one in shift
+ - rxrpc: Fix client call connect/disconnect race
+ - f2fs: fix to dirty inode for i_mode recovery
+ - include/linux/swap.h: use offsetof() instead of custom __swapoffset macro
+ - bpf: fix use after free in bpf_evict_inode
+ - IB/hfi1: Failed to drain send queue when QP is put into error state
+ - mm: hide incomplete nr_indirectly_reclaimable in /proc/zoneinfo
+ - mm: hide incomplete nr_indirectly_reclaimable in sysfs
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.37
+ - bonding: fix event handling for stacked bonds
+ - failover: allow name change on IFF_UP slave interfaces
+ - net: atm: Fix potential Spectre v1 vulnerabilities (CVE-2017-5715)
+ - net: bridge: fix per-port af_packet sockets
+ - net: bridge: multicast: use rcu to access port list from
+ br_multicast_start_querier
+ - net: Fix missing meta data in skb with vlan packet
+ - net: fou: do not use guehdr after iptunnel_pull_offloads in gue_udp_recv
+ - tcp: tcp_grow_window() needs to respect tcp_space()
+ - team: set slave to promisc if team is already in promisc mode
+ - tipc: missing entries in name table of publications
+ - vhost: reject zero size iova range
+ - ipv4: recompile ip options in ipv4_link_failure
+ - ipv4: ensure rcu_read_lock() in ipv4_link_failure()
+ - [arm64] net: thunderx: raise XDP MTU to 1508
+ - [arm64] net: thunderx: don't allow jumbo frames with XDP
+ - net/mlx5: FPGA, tls, hold rcu read lock a bit longer
+ - net/mlx5: FPGA, tls, idr remove on flow delete
+ - route: Avoid crash from dereferencing NULL rt->from
+ - sch_cake: Use tc_skb_protocol() helper for getting packet protocol
+ - sch_cake: Make sure we can write the IP header before changing DSCP bits
+ - nfp: flower: replace CFI with vlan present
+ - nfp: flower: remove vlan CFI bit from push vlan action
+ - sch_cake: Simplify logic in cake_select_tin()
+ - net: IP defrag: encapsulate rbtree defrag code into callable functions
+ - net: IP6 defrag: use rbtrees for IPv6 defrag
+ - net: IP6 defrag: use rbtrees in nf_conntrack_reasm.c
+ - CIFS: keep FileInfo handle live during oplock break
+ - cifs: Fix use-after-free in SMB2_write
+ - cifs: Fix use-after-free in SMB2_read
+ - cifs: fix handle leak in smb2_query_symlink()
+ - [x86] KVM: Don't clear EFER during SMM transitions for 32-bit vCPU
+ - [x86] KVM: svm: make sure NMI is injected after nmi_singlestep
+ - [x86] iio/gyro/bmg160: Use millidegrees for temperature scale
+ - iio: Fix scan mask selection
+ - iio: core: fix a possible circular locking dependency
+ - [x86] iio: accel: kxcjk-1013: restore the range after resume.
+ - [x86] staging: comedi: vmk80xx: Fix use of uninitialized semaphore
+ - [x86] staging: comedi: vmk80xx: Fix possible double-free of ->usb_rx_buf
+ - [x86] staging: comedi: ni_usb6501: Fix use of uninitialized mutex
+ - [x86] staging: comedi: ni_usb6501: Fix possible double-free of
+ ->usb_rx_buf
+ - [x86] ALSA: hda/realtek - add two more pin configuration sets to quirk
+ table
+ - ALSA: core: Fix card races between register and disconnect
+ - [x86] Input: elan_i2c - add hardware ID for multiple Lenovo laptops
+ - vt: fix cursor when clearing the screen
+ - scsi: core: set result when the command cannot be dispatched
+ - Revert "scsi: fcoe: clear FC_RP_STARTED flags when receiving a LOGO"
+ - [x86] Revert "svm: Fix AVIC incomplete IPI emulation"
+ - coredump: fix race condition between mmget_not_zero()/get_task_mm() and
+ core dumping (CVE-2019-11599)
+ - ipmi: fix sleep-in-atomic in free_user at cleanup SRCU
+ user->release_barrier
+ - [x86] crypto: poly1305 - fix overflow during partial reduction
+ - drm/ttm: fix out-of-bounds read in ttm_put_pages() v2
+ - [arm64] futex: Restore oldval initialization to work around buggy
+ compilers
+ - [x86] kprobes: Verify stack frame on kretprobe
+ - kprobes: Mark ftrace mcount handler functions nokprobe
+ - kprobes: Fix error check when reusing optimized probes
+ - rt2x00: do not increment sequence number while re-transmitting
+ - mac80211: do not call driver wake_tx_queue op during reconfig
+ - drm/amdgpu/gmc9: fix VM_L2_CNTL3 programming
+ - [x86] perf/amd: Add event map for AMD Family 17h
+ - [x86] cpu/bugs: Use __initconst for 'const' init data
+ - [x86] perf: Fix incorrect PEBS_REGS
+ - [x86] speculation: Prevent deadlock on ssb_state::lock
+ - timers/sched_clock: Prevent generic sched_clock wrap caused by
+ tick_freeze()
+ - nfit/ars: Remove ars_start_flags
+ - nfit/ars: Introduce scrub_flags
+ - nfit/ars: Allow root to busy-poll the ARS state machine
+ - nfit/ars: Avoid stale ARS results
+ - mmc: sdhci: Fix data command CRC error handling
+ - mmc: sdhci: Handle auto-command errors
+ - modpost: file2alias: go back to simple devtable lookup
+ - modpost: file2alias: check prototype of handler
+ - [x86] tpm/tpm_i2c_atmel: Return -E2BIG when the transfer is incomplete
+ - tpm: Fix the type of the return value in calc_tpm2_event_size()
+ - sched/fair: Limit sched_cfs_period_timer() loop to avoid hard lockup
+ - device_cgroup: fix RCU imbalance in error case
+ - ALSA: info: Fix racy addition/deletion of nodes
+ - [armhf] ASoC: rockchip: add missing INTERLEAVED PCM attribute
+ - i2c-hid: properly terminate i2c_hid_dmi_desc_override_table[] array
+ - kernel/sysctl.c: fix out-of-bounds access when setting file-max
+
+ [ Ben Hutchings ]
+ * debian/bin/abiupdate.py: Automatically select the correct archive to fetch
+ from
+ * debian/bin/abiupdate.py: Change default URLs to use https: scheme
+ * [powerpc*] vdso: Make vdso32 installation conditional in vdso_install
+ (Closes: #785065)
+ * Bump ABI to 5
+ * [rt] Add new signing subkey for Steven Rostedt
+ * [rt] Update to 4.19.31-rt18 (no functional change)
+ * [armhf,arm64] Revert "net: stmmac: Send TSO packets always from Queue 0"
+ * [riscv64] linux-image-dbg: Include vdso debug symbols
+ * [ia64] linux-image: Recommend grub-efi-ia64 instead of (removed) elilo
+ * [armel/marvell] Disable HW_RANDOM as no HWRNG drivers are usable here
+ * udeb: Add all HWRNG drivers to kernel-image (see #923675)
+ * lockdown: Refer to Debian wiki until manual page exists
+ * [sparc64] linux-image: Recommend grub-ieee1275 instead of (removed) silo
+ * [sparc64] linux-image: Install uncompressed kernel image
+ * [powerpc,ppc64,ppc64el] linux-image: Recommend grub-ieee1275
+ * [i386] Add grub-efi-ia32 as an alternate recommended bootloader
+ * linux-source: Recommend bison and flex, always needed to build the kernel
+ * [armel/marvell,sh4] linux-image: Recommend apparmor, like all other configs
+ * udeb: Drop unused ntfs-modules packages
+ * ntfs: Disable NTFS_FS due to lack of upstream security support
+ (CVE-2018-12929, CVE-2018-12930, CVE-2018-12931)
+ * [x86] platform: Enable INTEL_ATOMISP2_PM as module
+ * drivers/firmware/google: Adjust configuration for 4.19
+ * MODSIGN: Make shash allocation failure fatal
+ * aio: Apply fixes from 4.19.38:
+ - aio: clear IOCB_HIPRI
+ - aio: use assigned completion handler
+ - aio: separate out ring reservation from req allocation
+ - aio: don't zero entire aio_kiocb aio_get_req()
+ - aio: use iocb_put() instead of open coding it
+ - aio: split out iocb copy from io_submit_one()
+ - aio: abstract out io_event filler helper
+ - aio: initialize kiocb private in case any filesystems expect it.
+ - aio: simplify - and fix - fget/fput for io_submit() (CVE-2019-10125)
+ - pin iocb through aio.
+ - aio: fold lookup_kiocb() into its sole caller
+ - aio: keep io_event in aio_kiocb
+ - aio: store event at final iocb_put()
+ - Fix aio_poll() races
+ * tracing: Fix buffer_ref pipe ops
+ * mm,fs: Prevent page refcount overflow (CVE-2019-11487):
+ - mm: make page ref count overflow check tighter and more explicit
+ - mm: add 'try_get_page()' helper function
+ - mm: prevent get_user_pages() from overflowing page refcount
+ - fs: prevent page refcount overflow in pipe_buf_get
+
+ [ YunQiang Su ]
+ * [mips*r6] Re-enable CONFIG_JUMP_LABEL, which has been fixed in upstream.
+
+ [ Stefan Fritsch ]
+ * [armhf] Enable SND_SOC_SPDIF for Cubietruck (Closes: #884562)
+
+ [ Luca Boccassi ]
+ * libbpf-dev: generate pkg-config file for libbpf by backporting
+ libbpf-generate-pkg-config.patch from bpf-next.
+ * Import patches to enable loading keys from UEFI db and MOK from
+ http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git to
+ allow kernel modules built by users (eg: by dkms) to be verified, and
+ to load dbx and MOKX for the equivalent blacklisting functionality.
+
+ [ Bastian Blank ]
+ * Don't longer recommend irqbalance. (closes: #926967)
+
+ [ Salvatore Bonaccorso ]
+ * xen/pciback: Don't disable PCI_COMMAND on PCI device reset.
+ (CVE-2015-8553)
+ * [x86] Disable R3964 due to lack of security support
+ * [amd64,arm64] vfio/type1: Limit DMA mappings per container (CVE-2019-3882)
+
+ [ Aurelien Jarno ]
+ * [mips] Fix indirect syscall tracing & seccomp filtering for big endian
+ MIPS64 kernels with 32-bit userland.
+
+ [ Romain Perier ]
+ * [rt] Update to 4.19.37-rt19
+ * Enable coreboot memconsole (Closes: #872069)
+
+ [ Uwe Kleine-König ]
+ * [armhf] Disable MVNETA_BM_ENABLE again as it break networking on
+ DB-MV784MP-GP. Thanks to Steve McIntyre for providing access such a
+ machine for testing. (Closes: #927825)
+
+ [ Alper Nebi Yasak ]
+ * [arm64] Enable configs for Samsung Chromebook Plus (v1) and other
+ rk3399-gru based devices:
+ - Enable PL330_DMA, CROS_EC_SPI, SPI_ROCKCHIP as modules.
+ - Enable EXTCON_USBC_CROS_EC, PHY_ROCKCHIP_TYPEC, PHY_ROCKCHIP_USB as
+ modules.
+ - Enable KEYBOARD_CROS_EC as module.
+ - Enable PWM_CROS_EC, PHY_ROCKCHIP_DP as modules and enable ROCKCHIP_CDN_DP
+ - Enable SND_SOC_ROCKCHIP, SND_SOC_ROCKCHIP_I2S, SND_SOC_ROCKCHIP_SPDIF,
+ SND_SOC_ROCKCHIP_RT5645, SND_SOC_RK3399_GRU_SOUND as modules.
+ - Enable INPUT_TOUCHSCREEN, enable TOUCHSCREEN_ATMEL_MXT as module, and
+ enable TOUCHSCREEN_ATMEL_MXT_T37.
+ - Enable TOUCHSCREEN_ELAN, MOUSE_ELAN_I2C as modules.
+ - Enable I2C_HID as module.
+ - Enable MWIFIEX, MWIFIEX_PCIE as modules.
+ - Enable TCG_TPM, TCG_TIS_I2C_INFINEON as modules.
+ - Enable PM_DEVFREQ_EVENT, enable DEVFREQ_EVENT_ROCKCHIP_DFI and
+ ARM_RK3399_DMC_DEVFREQ as modules.
+ - Enable REGULATOR_VCTRL as module.
+ - Enable MFD_CROS_EC_CHARDEV, IIO_CROS_EC_ACCEL_LEGACY,
+ IIO_CROS_EC_SENSORS_CORE, IIO_CROS_EC_SENSORS, IIO_CROS_EC_LIGHT_PROX,
+ IIO_CROS_EC_BARO, RTC_DRV_CROS_EC as modules.
+ - Enable BATTERY_SBS, CHARGER_CROS_USBPD as modules.
+
+ [ Vagrant Cascadian ]
+ * debian/bin/gencontrol_signed.py: Sort list of modules before adding to
+ .json file, fixing reproducibility issues.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 05 May 2019 19:32:32 +0100
+
+linux (4.19.28-2) unstable; urgency=medium
+
+ [ Ben Hutchings ]
+ * [x86,alpha,m68k] binfmt: Disable BINFMT_AOUT, IA32_AOUT, OSF4_COMPAT
+ * [x86] Drop fix for #865303, which no longer affects Debian's OpenJDK
+ * udeb: Make serial_cs optional in serial-modules
+ * [ppc64el] Disable PCMCIA (fixes FTBFS)
+
+ [ Vagrant Cascadian ]
+ * [arm64] Enable DRM_SUN4I and DRM_SUN8I_DW_HDMI as modules.
+ * [arm64] Enable I2C_GPIO as a module.
+ * [arm64] Enable MESON_EFUSE as a module.
+
+ [ Yves-Alexis Perez ]
+ * certs: include both root CA and direct signing certificate.
+ closes: #924545
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 15 Mar 2019 02:16:04 +0000
+
+linux (4.19.28-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.21
+ - devres: Align data[] to ARCH_KMALLOC_MINALIGN
+ - drm/bufs: Fix Spectre v1 vulnerability
+ - drm/vgem: Fix vgem_init to get drm device available.
+ - [arm*] pinctrl: bcm2835: Use raw spinlock for RT compatibility
+ - [x86] ASoC: Intel: mrfld: fix uninitialized variable access
+ - gpiolib: Fix possible use after free on label
+ - [armhf] drm/sun4i: Initialize registers in tcon-top driver
+ - genirq/affinity: Spread IRQs to all available NUMA nodes
+ - [armhf] gpu: ipu-v3: image-convert: Prevent race between run and
+ unprepare
+ - wil6210: fix reset flow for Talyn-mb
+ - wil6210: fix memory leak in wil_find_tx_bcast_2
+ - ath10k: assign 'n_cipher_suites' for WCN3990
+ - ath9k: dynack: use authentication messages for 'late' ack
+ - scsi: lpfc: Correct LCB RJT handling
+ - scsi: mpt3sas: Call sas_remove_host before removing the target devices
+ - scsi: lpfc: Fix LOGO/PLOGI handling when triggerd by ABTS Timeout event
+ - [armhf] 8808/1: kexec:offline panic_smp_self_stop CPU
+ - [mips] clk: boston: fix possible memory leak in clk_boston_setup()
+ - dlm: Don't swamp the CPU with callbacks queued during recovery
+ - [x86] PCI: Fix Broadcom CNB20LE unintended sign extension (redux)
+ - [powerpc] pseries: add of_node_put() in dlpar_detach_node()
+ - [arm*] drm/vc4: ->x_scaling[1] should never be set to VC4_SCALING_NONE
+ - ptp: check gettime64 return code in PTP_SYS_OFFSET ioctl
+ - [mips] Boston: Disable EG20T prefetch
+ - iwlwifi: fw: do not set sgi bits for HE connection
+ - fpga: altera-cvp: Fix registration for CvP incapable devices
+ - [x86] fpga: altera-cvp: fix 'bad IO access' on x86_64
+ - [x86] vbox: fix link error with 'gcc -Og'
+ - platform/chrome: don't report EC_MKBP_EVENT_SENSOR_FIFO as wakeup
+ - i40e: prevent overlapping tx_timeout recover
+ - scsi: hisi_sas: change the time of SAS SSP connection
+ - usbnet: smsc95xx: fix rx packet alignment
+ - [armhf,arm64] drm/rockchip: fix for mailbox read size
+ - [arm*] OMAP2+: hwmod: Fix some section annotations
+ - drm/amd/display: fix gamma not being applied correctly
+ - drm/amd/display: calculate stream->phy_pix_clk before clock mapping
+ - bpf: libbpf: retry map creation without the name
+ - net/mlx5: EQ, Use the right place to store/read IRQ affinity hint
+ - modpost: validate symbol names also in find_elf_symbol
+ - perf tools: Add Hygon Dhyana support
+ - [armhf] soc/tegra: Don't leak device tree node reference
+ - media: rc: ensure close() is called on rc_unregister_device
+ - media: video-i2c: avoid accessing released memory area when removing
+ driver
+ - [armhf] media: mtk-vcodec: Release device nodes in
+ mtk_vcodec_init_enc_pm()
+ - ptp: Fix pass zero to ERR_PTR() in ptp_clock_register
+ - dmaengine: xilinx_dma: Remove __aligned attribute on zynqmp_dma_desc_ll
+ - [powerpc] 32: Add .data..Lubsan_data*/.data..Lubsan_type* sections
+ explicitly
+ - media: adv*/tc358743/ths8200: fill in min width/height/pixelclock
+ - ACPI: SPCR: Consider baud rate 0 as preconfigured state
+ - f2fs: move dir data flush to write checkpoint process
+ - f2fs: fix race between write_checkpoint and write_begin
+ - f2fs: fix wrong return value of f2fs_acl_create
+ - [arm64] io: Ensure calls to delay routines are ordered against prior
+ readX()
+ - net: aquantia: return 'err' if set MPI_DEINIT state fails
+ - [sparc*] sunvdc: Do not spin in an infinite loop when vio_ldc_send()
+ returns EAGAIN
+ - nfsd4: fix crash on writing v4_end_grace before nfsd startup
+ - drm: Clear state->acquire_ctx before leaving
+ drm_atomic_helper_commit_duplicated_state()
+ - [arm64] io: Ensure value passed to __iormb() is held in a 64-bit register
+ - Thermal: do not clear passive state during system sleep
+ - thermal: Fix locking in cooling device sysfs update cur_state
+ - firmware/efi: Add NULL pointer checks in efivars API functions
+ - [s390] zcrypt: improve special ap message cmd handling
+ - [arm64] ftrace: don't adjust the LR value
+ - [x86] fpu: Add might_fault() to user_insn()
+ - usb: dwc3: Correct the logic for checking TRB full in
+ __dwc3_prepare_one_trb()
+ - usb: dwc2: Disable power down feature on Samsung SoCs
+ - usb: hub: delay hub autosuspend if USB3 port is still link training
+ - timekeeping: Use proper seqcount initializer
+ - usb: mtu3: fix the issue about SetFeature(U1/U2_Enable)
+ - [armhf] clk: sunxi-ng: a33: Set CLK_SET_RATE_PARENT for all audio module
+ clocks
+ - media: imx274: select REGMAP_I2C
+ - drm/amdgpu/powerplay: fix clock stretcher limits on polaris (v2)
+ - tipc: fix node keep alive interval calculation
+ - driver core: Move async_synchronize_full call
+ - kobject: return error code if writing /sys/.../uevent fails
+ - IB/hfi1: Unreserve a reserved request when it is completed
+ - usb: dwc3: trace: add missing break statement to make compiler happy
+ - [mips] gpio: mt7621: report failure of devm_kasprintf()
+ - [mips] gpio: mt7621: pass mediatek_gpio_bank_probe() failure up the stack
+ - [x86] iommu/amd: Fix amd_iommu=force_isolation
+ - [armhf] dts: Fix OMAP4430 SDP Ethernet startup
+ - [mips] bpf: fix encoding bug for mm_srlv32_op
+ - media: coda: fix H.264 deblocking filter controls
+ - [armel] dts: Fix up the D-Link DIR-685 MTD partition info
+ - watchdog: renesas_wdt: don't set divider while watchdog is running
+ - [armhf] dts: imx51-zii-rdu1: Do not specify "power-gpio" for hpa1
+ - usb: dwc3: gadget: Disable CSP for stream OUT ep
+ - [arm64] iommu/arm-smmu-v3: Avoid memory corruption from Hisilicon MSI
+ payloads
+ - [arm64] iommu/arm-smmu: Add support for qcom,smmu-v2 variant
+ - [arm64] iommu/arm-smmu-v3: Use explicit mb() when moving cons pointer
+ - [armhf] clk: imx6sl: ensure MMDC CH0 handshake is bypassed
+ - OPP: Use opp_table->regulators to verify no regulator case
+ - [arm64] tee: optee: avoid possible double list_del()
+ - [arm64] drm/msm/dsi: fix dsi clock names in DSI 10nm PLL driver
+ - [arm64] drm/msm: dpu: Only check flush register against pending flushes
+ - lightnvm: pblk: fix resubmission of overwritten write err lbas
+ - lightnvm: pblk: add lock protection to list operations
+ - i2c-axxia: check for error conditions first
+ - [armhf] phy: sun4i-usb: add support for missing USB PHY index
+ - udf: Fix BUG on corrupted inode
+ - selftests/bpf: use __bpf_constant_htons in test_prog.c
+ - [armel] pxa: avoid section mismatch warning
+ - [armhf] ASoC: fsl: Fix SND_SOC_EUKREA_TLV320 build error on i.MX8M
+ - [powerpc] KVM: Book3S: Only report KVM_CAP_SPAPR_TCE_VFIO on powernv
+ machines
+ - [arm*] mmc: bcm2835: Recover from MMC_SEND_EXT_CSD
+ - [arm*] mmc: bcm2835: reset host on timeout
+ - memstick: Prevent memstick host from getting runtime suspended during
+ card detection
+ - [arm64] mmc: sdhci-xenon: Fix timeout checks
+ - btrfs: harden agaist duplicate fsid on scanned devices
+ - serial: sh-sci: Fix locking in sci_submit_rx()
+ - serial: sh-sci: Resume PIO in sci_rx_interrupt() on DMA failure
+ - tty: serial: samsung: Properly set flags in autoCTS mode
+ - perf test: Fix perf_event_attr test failure
+ - perf dso: Fix unchecked usage of strncpy()
+ - perf header: Fix unchecked usage of strncpy()
+ - btrfs: use tagged writepage to mitigate livelock of snapshot
+ - perf probe: Fix unchecked usage of strncpy()
+ - i2c: sh_mobile: Add support for r8a774c0 (RZ/G2E)
+ - bnxt_en: Disable MSIX before re-reserving NQs/CMPL rings.
+ - [x86] tools/power/x86/intel_pstate_tracer: Fix non root execution for
+ post processing a trace file
+ - livepatch: check kzalloc return values
+ - [arm64] KVM: Skip MMIO insn after emulation
+ - usb: musb: dsps: fix otg state machine
+ - usb: musb: dsps: fix runtime pm for peripheral mode
+ - perf header: Fix up argument to ctime()
+ - perf tools: Cast off_t to s64 to avoid warning on bionic libc
+ - percpu: convert spin_lock_irq to spin_lock_irqsave.
+ - [arm64] net: hns3: fix incomplete uninitialization of IRQ in the
+ hns3_nic_uninit_vector_data()
+ - drm/amd/display: Add retry to read ddc_clock pin
+ - Bluetooth: hci_bcm: Handle deferred probing for the clock supply
+ - drm/amd/display: fix YCbCr420 blank color
+ - [powerpc] uaccess: fix warning/error with access_ok()
+ - mac80211: fix radiotap vendor presence bitmap handling
+ - xfrm6_tunnel: Fix spi check in __xfrm6_tunnel_alloc_spi
+ - scsi: smartpqi: correct host serial num for ssa
+ - scsi: smartpqi: correct volume status
+ - scsi: smartpqi: increase fw status register read timeout
+ - cw1200: Fix concurrency use-after-free bugs in cw1200_hw_scan()
+ - [arm64] net: hns3: add max vector number check for pf
+ - [powerpc] perf: Fix thresholding counter data for unknown type
+ - iwlwifi: mvm: fix setting HE ppe FW config
+ - [powerpc] powernv/ioda: Allocate indirect TCE levels of cached userspace
+ addresses on demand
+ - mlx5: update timecounter at least twice per counter overflow
+ - drbd: narrow rcu_read_lock in drbd_sync_handshake
+ - drbd: disconnect, if the wrong UUIDs are attached on a connected peer
+ - drbd: skip spurious timeout (ping-timeo) when failing promote
+ - drbd: Avoid Clang warning about pointless switch statment
+ - drm/amd/display: validate extended dongle caps
+ - md: fix raid10 hang issue caused by barrier
+ - fbdev: fbmem: behave better with small rotated displays and many CPUs
+ - i40e: define proper net_device::neigh_priv_len
+ - ice: Do not enable NAPI on q_vectors that have no rings
+ - igb: Fix an issue that PME is not enabled during runtime suspend
+ - ACPI/APEI: Clear GHES block_status before panic()
+ - fbdev: fbcon: Fix unregister crash when more than one framebuffer
+ - [powerpc] mm: Fix reporting of kernel execute faults on the 8xx
+ - [x86] KVM: svm: report MSR_IA32_MCG_EXT_CTL as unsupported
+ - [powerpc] fadump: Do not allow hot-remove memory from fadump reserved
+ area.
+ - kvm: Change offset in kvm_write_guest_offset_cached to unsigned
+ - NFS: nfs_compare_mount_options always compare auth flavors.
+ - perf build: Don't unconditionally link the libbfd feature test to
+ -liberty and -lz
+ - hwmon: (lm80) fix a missing check of the status of SMBus read
+ - hwmon: (lm80) fix a missing check of bus read in lm80 probe
+ - seq_buf: Make seq_buf_puts() null-terminate the buffer
+ - cifs: check ntwrk_buf_start for NULL before dereferencing it
+ - f2fs: fix use-after-free issue when accessing sbi->stat_info
+ - niu: fix missing checks of niu_pci_eeprom_read
+ - f2fs: fix sbi->extent_list corruption issue
+ - cgroup: fix parsing empty mount option string
+ - perf python: Do not force closing original perf descriptor in
+ evlist.get_pollfd()
+ - scripts/decode_stacktrace: only strip base path when a prefix of the path
+ - arch/sh/boards/mach-kfr2r09/setup.c: fix struct mtd_oob_ops build warning
+ - ocfs2: don't clear bh uptodate for block read
+ - ocfs2: improve ocfs2 Makefile
+ - mm/page_alloc.c: don't call kasan_free_pages() at deferred mem init
+ - zram: fix lockdep warning of free block handling
+ - isdn: hisax: hfc_pci: Fix a possible concurrency use-after-free bug in
+ HFCPCI_l1hw()
+ - [m68k] block/swim3: Fix -EBUSY error when re-opening device after unmount
+ - [arm*] thermal: bcm2835: enable hwmon explicitly
+ - [armhf] PCI: imx: Enable MSI from downstream components
+ - thermal: generic-adc: Fix adc to temp interpolation
+ - [arm64] sve: ptrace: Fix SVE_PT_REGS_OFFSET definition
+ - kernel/hung_task.c: break RCU locks based on jiffies
+ - proc/sysctl: fix return error for proc_doulongvec_minmax()
+ - kernel/hung_task.c: force console verbose before panic
+ - fs/epoll: drop ovflist branch prediction
+ - exec: load_script: don't blindly truncate shebang string
+ - xfs: Fix xqmstats offsets in /proc/fs/xfs/xqmstat
+ - xfs: cancel COW blocks before swapext
+ - xfs: Fix error code in 'xfs_ioc_getbmap()'
+ - xfs: fix overflow in xfs_attr3_leaf_verify
+ - xfs: fix shared extent data corruption due to missing cow reservation
+ - xfs: fix transient reference count error in
+ xfs_buf_resubmit_failed_buffers
+ - xfs: delalloc -> unwritten COW fork allocation can go wrong
+ - fs/xfs: fix f_ffree value for statfs when project quota is set
+ - xfs: fix PAGE_MASK usage in xfs_free_file_space
+ - xfs: fix inverted return from xfs_btree_sblock_verify_crc
+ - thermal: hwmon: inline helpers when CONFIG_THERMAL_HWMON is not set
+ - dccp: fool proof ccid_hc_[rt]x_parse_options()
+ - enic: fix checksum validation for IPv6
+ - lib/test_rhashtable: Make test_insert_dup() allocate its hash table
+ dynamically
+ - net: dsa: Fix lockdep false positive splat
+ - net: dsa: Fix NULL checking in dsa_slave_set_eee()
+ - [armhf,arm64] net: dsa: mv88e6xxx: Fix counting of ATU violations
+ - net: dsa: slave: Don't propagate flag changes on down slave interfaces
+ - net/mlx5e: Force CHECKSUM_UNNECESSARY for short ethernet frames
+ - rds: fix refcount bug in rds_sock_addref
+ - Revert "net: phy: marvell: avoid pause mode on SGMII-to-Copper for
+ 88e151x"
+ - rxrpc: bad unlock balance in rxrpc_recvmsg
+ - sctp: check and update stream->out_curr when allocating stream_out
+ - sctp: walk the list of asoc safely (CVE-2019-8956)
+ - skge: potential memory corruption in skge_get_regs()
+ - virtio_net: Account for tx bytes and packets on sending xdp_frames
+ - net/mlx5e: FPGA, fix Innova IPsec TX offload data path performance
+ - xfs: eof trim writeback mapping as soon as it is cached
+ - ALSA: compress: Fix stop handling on compressed capture streams
+ - ALSA: usb-audio: Add support for new T+A USB DAC
+ - ALSA: hda - Serialize codec registrations
+ - ALSA: hda/realtek - Fix lose hp_pins for disable auto mute
+ - ALSA: hda/realtek - Use a common helper for hp pin reference
+ - ALSA: hda/realtek - Headset microphone support for System76 darp5
+ - fuse: call pipe_buf_release() under pipe lock
+ - fuse: decrement NR_WRITEBACK_TEMP on the right page
+ - fuse: handle zero sized retrieve correctly
+ - [arm*] dmaengine: bcm2835: Fix interrupt race on RT
+ - [arm*] dmaengine: bcm2835: Fix abort of transactions
+ - [armhf] dmaengine: imx-dma: fix wrong callback invoke
+ - futex: Handle early deadlock return correctly
+ - [arm64] irqchip/gic-v3-its: Plug allocation race for devices sharing a
+ DevID
+ - [armhf] usb: phy: am335x: fix race condition in _probe
+ - usb: dwc3: gadget: Handle 0 xfer length for OUT EP
+ - usb: gadget: udc: net2272: Fix bitwise and boolean operations
+ - usb: gadget: musb: fix short isoc packets with inventra dma
+ - staging: speakup: fix tty-operation NULL derefs
+ - scsi: cxlflash: Prevent deadlock when adapter probe fails
+ - scsi: aic94xx: fix module loading
+ - cpu/hotplug: Fix "SMT disabled by BIOS" detection for KVM
+ - [x86] perf/x86/intel/uncore: Add Node ID mask
+ - [x86] MCE: Initialize mce.bank in the case of a fatal error in
+ mce_no_way_out()
+ - perf/core: Don't WARN() for impossible ring-buffer sizes
+ - perf tests evsel-tp-sched: Fix bitwise operator
+ - serial: fix race between flush_to_ldisc and tty_open
+ - serial: 8250_pci: Make PCI class test non fatal
+ - serial: sh-sci: Do not free irqs that have already been freed
+ - cacheinfo: Keep the old value if of_property_read_u32 fails
+ - IB/hfi1: Add limit test for RC/UC send via loopback
+ - [x86] perf/x86/intel: Delay memory deallocation until x86_pmu_dead_cpu()
+ - ath9k: dynack: make ewma estimation faster
+ - ath9k: dynack: check da->enabled first in sampling routines
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.22
+ - mtd: Make sure mtd->erasesize is valid even if the partition is of size 0
+ - mtd: rawnand: gpmi: fix MX28 bus master lockup problem
+ - libata: Add NOLPM quirk for SAMSUNG MZ7TE512HMHP-000L1 SSD
+ - [armhf, arm64] iio: adc: axp288: Fix TS-pin handling
+ - signal: Always notice exiting tasks
+ - signal: Better detection of synchronous signals
+ - [armhf, arm64] misc: vexpress: Off by one in vexpress_syscfg_exec()
+ - [x86] mei: me: add ice lake point device id.
+ - debugfs: fix debugfs_rename parameter checking
+ - [arm64] pinctrl: sunxi: Correct number of IRQ banks on H6 main pin
+ controller
+ - [x86] pinctrl: cherryview: fix Strago DMI workaround
+ - tracing: uprobes: Fix typo in pr_fmt string
+ - [mips*] cm: reprime error cause
+ - [mips*] OCTEON: don't set octeon_dma_bar_type if PCI is disabled
+ - [mips*] VDSO: Use same -m%-float cflag as the kernel proper
+ - [mips*] loongson64: remove unreachable(), fix loongson_poweroff().
+ - [mips*] VDSO: Include $(ccflags-vdso) in o32,n32 .lds builds
+ - [arm64] firmware: arm_scmi: provide the mandatory device release callback
+ - [powerpc*] radix: Fix kernel crash with mremap()
+ - [amd64] mic: vop: Fix use-after-free on remove
+ - mac80211: ensure that mgmt tx skbs have tailroom for encryption
+ - drm/modes: Prevent division by zero htotal
+ - drm/amd/powerplay: Fix missing break in switch
+ - [x86] drm/i915: always return something on DDI clock selection
+ - [x86] drm/vmwgfx: Fix setting of dma masks
+ - [x86] drm/vmwgfx: Return error code from vmw_execbuf_copy_fence_user
+ - SUNRPC: Always drop the XPRT_LOCK on XPRT_CLOSE_WAIT
+ - xfrm: Make set-mark default behavior backward compatible
+ - Revert "ext4: use ext4_write_inode() when fsyncing w/o a journal"
+ - libceph: avoid KEEPALIVE_PENDING races in ceph_con_keepalive()
+ - xfrm: refine validation of template and selector families
+ - batman-adv: Avoid WARN on net_device without parent in netns
+ - batman-adv: Force mac header to start of data on xmit
+ - svcrdma: Reduce max_send_sges
+ - svcrdma: Remove max_sge check at connect time
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.23
+ - Revert "exec: load_script: don't blindly truncate shebang string"
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.24
+ - dt-bindings: eeprom: at24: add "atmel,24c2048" compatible string
+ - eeprom: at24: add support for 24c2048
+ - blk-mq: fix a hung issue when fsync (Closes: #913119, #913138)
+ - [armel, armhf] 8789/1: signal: copy registers using __copy_to_user()
+ - [armel, armhf] 8790/1: signal: always use __copy_to_user to save iwmmxt
+ context
+ - [armel, armhf] 8791/1: vfp: use __copy_to_user() when saving VFP state
+ - [armel, armhf] 8792/1: oabi-compat: copy oabi events using
+ __copy_to_user()
+ - [armel, armhf] 8793/1: signal: replace __put_user_error with __put_user
+ - [armel, armhf] 8794/1: uaccess: Prevent speculative use of the current
+ addr_limit
+ - [armel, armhf] 8795/1: spectre-v1.1: use put_user() for __put_user()
+ - [armel, armhf] 8796/1: spectre-v1,v1.1: provide helpers for address
+ sanitization
+ - [armel, armhf] 8797/1: spectre-v1.1: harden __copy_to_user
+ - [armel, armhf] 8810/1: vfp: Fix wrong assignement to ufp_exc
+ - [armel, armhfl armhf] make lookup_processor_type() non-__init
+ - [armel, armhf] split out processor lookup
+ - [armel, armhf] clean up per-processor check_bugs method call
+ - [armel, armhf] add PROC_VTABLE and PROC_TABLE macros
+ - [armel, armhf] spectre-v2: per-CPU vtables to work around big.Little
+ systems
+ - [armel, armhf] ensure that processor vtables is not lost after boot
+ - [armel, armhf] fix the cockup in the previous patch
+ - drm/amdgpu/sriov:Correct pfvf exchange logic
+ - [i386] ACPI: NUMA: Use correct type for printing addresses on i386-PAE
+ - perf report: Fix wrong iteration count in --branch-history
+ - perf test shell: Use a fallback to get the pathname in vfs_getname
+ - [riscv64] riscv: fix trace_sys_exit hook
+ - cpufreq: check if policy is inactive early in __cpufreq_get()
+ - nvme-pci: use the same attributes when freeing host_mem_desc_bufs.
+ - nvme-pci: fix out of bounds access in nvme_cqe_pending
+ - nvme-multipath: zero out ANA log buffer
+ - nvme: pad fake subsys NQN vid and ssvid with zeros
+ - drm/amdgpu: set WRITE_BURST_LENGTH to 64B to workaround SDMA1 hang
+ - [armel] dts: kirkwood: Fix polarity of GPIO fan lines
+ - [armel, armhf] gpio: pl061: handle failed allocations
+ - drm/nouveau: Don't disable polling in fallback mode
+ - drm/nouveau/falcon: avoid touching registers if engine is off
+ - cifs: Limit memory used by lock request calls to a page
+ - [x86] kvm: sev: Fail KVM_SEV_INIT if already initialized
+ - CIFS: Do not assume one credit for async responses
+ - [arm*] gpio: mxc: move gpio noirq suspend/resume to syscore phase
+ - [x86] Revert "Input: elan_i2c - add ACPI ID for touchpad in ASUS Aspire
+ F5-573G"
+ - [x86] Input: elan_i2c - add ACPI ID for touchpad in Lenovo V330-15ISK
+ - [armhf] OMAP5+: Fix inverted nirq pin interrupts with irq_set_type
+ - perf/core: Fix impossible ring-buffer sizes warning
+ - [x86] perf: Add check_period PMU callback
+ - [x86] ALSA: hda - Add quirk for HP EliteBook 840 G5
+ - ALSA: usb-audio: Fix implicit fb endpoint setup by quirk
+ - ASoC: hdmi-codec: fix oops on re-probe
+ - [alpha] tools uapi: fix Alpha support
+ - [riscv64] Add pte bit to distinguish swap from invalid
+ - [x86] kvm/nVMX: read from MSR_IA32_VMX_PROCBASED_CTLS2 only when it is
+ available
+ - [x86] kvm: vmx: Fix entry number check for add_atomic_switch_msr()
+ - [arm*] mmc: sunxi: Filter out unsupported modes declared in the device
+ tree
+ - mmc: block: handle complete_work on separate workqueue
+ - [x86] Input: elantech - enable 3rd button support on Fujitsu CELSIUS H780
+ - Revert "nfsd4: return default lease period"
+ - Revert "mm: don't reclaim inodes with many attached pages"
+ - Revert "mm: slowly shrink slabs with a relatively small number of
+ objects"
+ - [alpha] fix page fault handling for r16-r18 targets
+ - [alpha] Fix Eiger NR_IRQS to 128
+ - [s390*] zcrypt: fix specification exception on z196 during ap probe
+ - tracing/uprobes: Fix output for multiple string arguments
+ - [x86] platform/UV: Use efi_runtime_lock to serialise BIOS calls
+ - scsi: sd: fix entropy gathering for most rotational disks
+ - signal: Restore the stop PTRACE_EVENT_EXIT
+ - md/raid1: don't clear bitmap bits on interrupted recovery.
+ - [x86] a.out: Clear the dump structure initially
+ - dm crypt: don't overallocate the integrity tag space
+ - dm thin: fix bug where bio that overwrites thin block ignores FUA
+ - drm: Use array_size() when creating lease
+ - [x86] drm/i915: Block fbdev HPD processing during suspend
+ - [x86] drm/i915: Prevent a race during I915_GEM_MMAP ioctl with WC set
+ - mm: proc: smaps_rollup: fix pss_locked calculation
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.25
+ - af_packet: fix raw sockets over 6in4 tunnel
+ - [arm64, armhf] dsa: mv88e6xxx: Ensure all pending interrupts are handled
+ prior to exit
+ - net: crypto set sk to NULL when af_alg_release. (CVE-2019-8912)
+ - net: Fix for_each_netdev_feature on Big endian
+ - net: fix IPv6 prefix route residue
+ - net: ip6_gre: initialize erspan_ver just for erspan tunnels
+ - net: ipv4: use a dedicated counter for icmp_v4 redirect packets
+ - net: phy: xgmiitorgmii: Support generic PHY status read
+ - net: stmmac: Fix a race in EEE enable callback
+ - net: stmmac: handle endianness in dwmac4_get_timestamp
+ - sky2: Increase D3 delay again
+ - vhost: correctly check the return value of translate_desc() in log_used()
+ - vsock: cope with memory allocation failure at socket creation time
+ - vxlan: test dev->flags & IFF_UP before calling netif_rx()
+ - net: Add header for usage of fls64()
+ - tcp: clear icsk_backoff in tcp_write_queue_purge()
+ - tcp: tcp_v4_err() should be more careful
+ - net: Do not allocate page fragments that are not skb aligned
+ - hwmon: (lm80) Fix missing unlock on error in set_fan_div()
+ - scsi: target/core: Use kmem_cache_free() instead of kfree()
+ - PCI: Fix __initdata issue with "pci=disable_acs_redir" parameter
+ - sunrpc: fix 4 more call sites that were using stack memory with a
+ scatterlist
+ - netfilter: nf_nat_snmp_basic: add missing length checks in ASN.1 cbs
+ (CVE-2019-9162)
+ - net/x25: do not hold the cpu too long in x25_new_lci()
+ - ax25: fix possible use-after-free
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.26
+ - [armel armhf] 8834/1: Fix: kprobes: optimized kprobes illegal instruction
+ - tracing: Fix number of entries in trace header
+ - [mips*] eBPF: Always return sign extended 32b values
+ - mac80211: Restore vif beacon interval if start ap fails
+ - mac80211: Use linked list instead of rhashtable walk for mesh tables
+ - mac80211: Free mpath object when rhashtable insertion fails
+ - libceph: handle an empty authorize reply
+ - ceph: avoid repeatedly adding inode to mdsc->snap_flush_list
+ - numa: change get_mempolicy() to use nr_node_ids instead of MAX_NUMNODES
+ - proc, oom: do not report alien mms when setting oom_score_adj
+ - [x86] ALSA: hda/realtek - Headset microphone and internal speaker
+ support for System76 oryp5
+ - [x86] ALSA: hda/realtek: Disable PC beep in passthrough on alc285
+ - KEYS: allow reaching the keys quotas exactly
+ - [armhf,arm64] backlight: pwm_bl: Fix devicetree parsing with auto-
+ generated brightness tables
+ - [armhf] mfd: ti_am335x_tscadc: Use PLATFORM_DEVID_AUTO while registering
+ mfd cells
+ - [armhf] mfd: twl-core: Fix section annotations on {,un}protect_pm_master
+ - [arm64] mfd: qcom_rpm: write fw_version to CTRL_REG
+ - mfd: axp20x: Add AC power supply cell for AXP813
+ - mfd: axp20x: Re-align MFD cell entries
+ - mfd: axp20x: Add supported cells for AXP803
+ - mfd: cros_ec_dev: Add missing mfd_remove_devices() call in remove
+ probe()
+ - [armhf] mfd: mc13xxx: Fix a missing check of a register-read failure
+ - qed: Fix qed_chain_set_prod() for PBL chains with non power of 2 page
+ count
+ - qed: Fix qed_ll2_post_rx_buffer_notify_fw() by adding a write memory
+ barrier
+ - [arm64] net: hns: Fix use after free identified by SLUB debug
+ - bpf: Fix [::] -> [::1] rewrite in sys_sendmsg
+ - selftests/bpf: Test [::] -> [::1] rewrite in sys_sendmsg in
+ test_sock_addr
+ - net/mlx4: Get rid of page operation after dma_alloc_coherent
+ - xprtrdma: Double free in rpcrdma_sendctxs_create()
+ - selftests: forwarding: Add a test for VLAN deletion
+ - netfilter: nf_tables: fix leaking object reference count
+ - scsi: qla4xxx: check return code of qla4xxx_copy_from_fwddb_param
+ - scsi: isci: initialize shost fully before calling scsi_add_host()
+ - include/linux/compiler*.h: fix OPTIMIZER_HIDE_VAR
+ - netfilter: nft_flow_offload: Fix reverse route lookup
+ - bpf: correctly set initial window on active Fast Open sender
+ - bpf: fix panic in stack_map_get_build_id() on i386 and arm32
+ - netfilter: nft_flow_offload: fix interaction with vrf slave device
+ - RDMA/mthca: Clear QP objects during their allocation
+ - [powerpcspe] 8xx: fix setting of pagetable for Abatron BDI debug tool.
+ - acpi/nfit: Fix race accessing memdev in nfit_get_smbios_id()
+ - net: stmmac: Fix PCI module removal leak
+ - net: stmmac: dwxgmac2: Only clear interrupts that are active
+ - net: stmmac: Check if CBS is supported before configuring
+ - net: stmmac: Fix the logic of checking if RX Watchdog must be enabled
+ - net: stmmac: Prevent RX starvation in stmmac_napi_poll()
+ - scsi: tcmu: avoid cmd/qfull timers updated whenever a new cmd comes
+ - scsi: ufs: Fix system suspend status
+ - scsi: qedi: Add ep_state for login completion on un-reachable targets
+ - scsi: ufs: Fix geometry descriptor size
+ - scsi: cxgb4i: add wait_for_completion()
+ - netfilter: nft_flow_offload: fix checking method of conntrack helper
+ - always clear the X2APIC_ENABLE bit for PV guest
+ - [armhf, arm64] drm/meson: add missing of_node_put
+ - drm/amdkfd: Don't assign dGPUs to APU topology devices
+ - drm/amd/display: fix PME notification not working in RV desktop
+ - vhost: return EINVAL if iovecs size does not match the message size
+ - [armhf, arm64] drm/sun4i: backend: add missing of_node_puts
+ - bpf: don't assume build-id length is always 20 bytes
+ - bpf: zero out build_id for BPF_STACK_BUILD_ID_IP
+ - atm: he: fix sign-extension overflow on large shift
+ - hwmon: (tmp421) Correct the misspelling of the tmp442 compatible
+ attribute in OF device ID table
+ - [armhf] leds: lp5523: fix a missing check of return value of lp55xx_read
+ - bpf: bpf_setsockopt: reset sock dst on SO_MARK changes
+ - net: bridge: Mark FDB entries that were added by user as such
+ - net/mlx5e: Fix wrong (zero) TX drop counter indication for representor
+ - isdn: avm: Fix string plus integer warning from Clang
+ - batman-adv: fix uninit-value in batadv_interface_tx()
+ - inet_diag: fix reporting cgroup classid and fallback to priority
+ - ipv6: propagate genlmsg_reply return code
+ - net: ena: fix race between link up and device initalization
+ - net/mlx4_en: Force CHECKSUM_NONE for short ethernet frames
+ - net/mlx5e: Don't overwrite pedit action when multiple pedit used
+ - net/packet: fix 4gb buffer limit due to overflow check
+ - net: sfp: do not probe SFP module before we're attached
+ - sctp: call gso_reset_checksum when computing checksum in sctp_gso_segment
+ - sctp: set stream ext to NULL after freeing it in sctp_stream_outq_migrate
+ - team: avoid complex list operations in team_nl_cmd_options_set()
+ - Revert "socket: fix struct ifreq size in compat ioctl"
+ - Revert "kill dev_ifsioc()"
+ - net: socket: fix SIOCGIFNAME in compat
+ - net: socket: make bond ioctls go through compat_ifreq_ioctl()
+ - geneve: should not call rt6_lookup() when ipv6 was disabled
+ - sit: check if IPv6 enabled before calling ip6_err_gen_icmpv6_unreach()
+ - net_sched: fix a race condition in tcindex_destroy() (Closes: #921542)
+ - net_sched: fix a memory leak in cls_tcindex
+ - net_sched: fix two more memory leaks in cls_tcindex
+ - net/mlx5e: XDP, fix redirect resources availability check
+ - RDMA/srp: Rework SCSI device reset handling
+ - KEYS: user: Align the payload buffer
+ - KEYS: always initialize keyring_index_key::desc_len
+ - drm/amdgpu: Set DPM_FLAG_NEVER_SKIP when enabling PM-runtime
+ - gpu: drm: radeon: Set DPM_FLAG_NEVER_SKIP when enabling PM-runtime
+ - [x86] drm/i915/fbdev: Actually configure untiled displays
+ - drm/amd/display: Fix MST reboot/poweroff sequence
+ - mac80211: allocate tailroom for forwarded mesh packets
+ - [x86] kvm: Return LA57 feature based on hardware capability
+ - net: validate untrusted gso packets without csum offload
+ - net: avoid false positives in untrusted gso validation
+ - Revert "bridge: do not add port to router list when receives query with
+ source 0.0.0.0"
+ - netfilter: nf_tables: fix flush after rule deletion in the same batch
+ - netfilter: nft_compat: use-after-free when deleting targets
+ - netfilter: ipv6: Don't preserve original oif for loopback address
+ - netfilter: nfnetlink_osf: add missing fmatch check
+ - netfilter: ipt_CLUSTERIP: fix sleep-in-atomic bug in
+ clusterip_config_entry_put()
+ - udlfb: handle unplug properly
+ - [armhf arm64] pinctrl: max77620: Use define directive for
+ max77620_pinconf_param values
+ - net: phylink: avoid resolving link state too early
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.27
+ - irq/matrix: Split out the CPU selection code into a helper
+ - irq/matrix: Spread managed interrupts on allocation
+ - genirq/matrix: Improve target CPU selection for managed interrupts
+ (Closes: #922182)
+ - mac80211: Change default tx_sk_pacing_shift to 7
+ - scsi: libsas: Fix rphy phy_identifier for PHYs with end devices attached
+ - [arm64] drm/msm: Unblock writer if reader closes file
+ - [x86] ASoC: Intel: Haswell/Broadwell: fix setting for .dynamic field
+ - [armhf] clk: tegra: dfll: Fix a potential Oop in remove()
+ - [x86] thermal: int340x_thermal: Fix a NULL vs IS_ERR() check
+ - [arm64, armhf] usb: dwc3: gadget: synchronize_irq dwc irq in suspend
+ - [arm64, armhf] usb: dwc3: gadget: Fix the uninitialized link_state when
+ udc starts
+ - genirq: Make sure the initial affinity is not empty
+ - [arm64, armel, x86, armhf] ASoC: dapm: change snprintf to scnprintf for
+ possible overflow
+ - [x86] drivers: thermal: int340x_thermal: Fix sysfs race condition
+ - mac80211: fix miscounting of ttl-dropped frames
+ - sched/wait: Fix rcuwait_wake_up() ordering
+ - sched/wake_q: Fix wakeup ordering for wake_q
+ - futex: Fix (possible) missed wakeup
+ - drm/amd/powerplay: OD setting fix on Vega10
+ - [armhf] drm/sun4i: hdmi: Fix usage of TMDS clock
+ - direct-io: allow direct writes to empty inodes
+ - writeback: synchronize sync(2) against cgroup writeback membership
+ switches
+ - scsi: lpfc: nvme: avoid hang / use-after-free when destroying localport
+ - scsi: lpfc: nvmet: avoid hang / use-after-free when destroying targetport
+ - scsi: csiostor: fix NULL pointer dereference in csio_vport_set_state()
+ - [x86] hv_netvsc: Fix ethtool change hash key error
+ - [x86] hv_netvsc: Refactor assignments of struct netvsc_device_info
+ - [x86] hv_netvsc: Fix hash key value reset after other ops
+ - nvme-rdma: fix timeout handler
+ - nvme-multipath: drop optimization for static ANA group IDs
+ - [arm64] drm/msm: Fix A6XX support for opp-level
+ - net: usb: asix: ax88772_bind return error when hw_reset fail
+ - net: dev_is_mac_header_xmit() true for ARPHRD_RAWIP
+ - [powerpc*] ibmveth: Do not process frames after calling napi_reschedule
+ - mac80211: don't initiate TDLS connection if station is not associated to
+ AP
+ - mac80211: Add attribute aligned(2) to struct 'action'
+ - cfg80211: extend range deviation for DMG
+ - [x86] svm: Fix AVIC incomplete IPI emulation
+ - [x86] KVM: nSVM: clear events pending from svm_complete_interrupts() when
+ exiting to L1
+ - [arm64, armhf] mmc: spi: Fix card detection during probe
+ - mmc: core: Fix NULL ptr crash from mmc_should_fail_request
+ - [armhf] mmc: sdhci-esdhc-imx: correct the fix of ERR004536
+ - mm: enforce min addr even if capable() in expand_downwards()
+ (CVE-2019-9213)
+ - hugetlbfs: fix races and page leaks during migration
+ - [mips*] fix truncation in __cmpxchg_small for short values
+ - [x86] uaccess: Don't leak the AC flag into __put_user() value evaluation
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.28
+ - cpufreq: Use struct kobj_attribute instead of struct global_attr
+ - staging: erofs: fix mis-acted TAIL merging behavior
+ - USB: serial: option: add Telit ME910 ECM composition
+ - USB: serial: cp210x: add ID for Ingenico 3070
+ - USB: serial: ftdi_sio: add ID for Hjelmslund Electronics USB485
+ - [x86] staging: comedi: ni_660x: fix missing break in switch statement
+ - [x86, arm64, armhf] staging: android: ashmem: Don't call fallocate() with
+ ashmem_mutex held.
+ - [x86, arm64, armhf] staging: android: ashmem: Avoid range_alloc()
+ allocation with ashmem_mutex held.
+ - ip6mr: Do not call __IP6_INC_STATS() from preemptible context
+ - [arm64, armhf] net: dsa: mv88e6xxx: handle unknown duplex modes gracefully
+ in mv88e6xxx_port_set_duplex
+ - [arm64, armhf] net: dsa: mv88e6xxx: fix number of internal PHYs for
+ 88E6x90 family
+ - net: sched: put back q.qlen into a single location
+ - net-sysfs: Fix mem leak in netdev_register_kobject
+ - qmi_wwan: Add support for Quectel EG12/EM12
+ - sctp: call iov_iter_revert() after sending ABORT
+ - sky2: Disable MSI on Dell Inspiron 1545 and Gateway P-79
+ - team: Free BPF filter when unregistering netdev
+ - tipc: fix RDM/DGRAM connect() regression
+ - bnxt_en: Drop oversize TX packets to prevent errors.
+ - geneve: correctly handle ipv6.disable module parameter
+ - [x86] hv_netvsc: Fix IP header checksum for coalesced packets
+ - ipv4: Add ICMPv6 support when parse route ipproto
+ - lan743x: Fix TX Stall Issue
+ - [arm64, armhf] net: dsa: mv88e6xxx: Fix statistics on mv88e6161
+ - [arm64, armhf] net: dsa: mv88e6xxx: Fix u64 statistics
+ - net: netem: fix skb length BUG_ON in __skb_to_sgvec
+ - net: nfc: Fix NULL dereference on nfc_llcp_build_tlv fails
+ - net: phy: Micrel KSZ8061: link failure after cable connect
+ - [arm64, armhf] net: phy: phylink: fix uninitialized variable in
+ phylink_get_mac_state
+ - net: sit: fix memory leak in sit_init_net()
+ - net: socket: set sock->sk to NULL after calling proto_ops::release()
+ - tipc: fix race condition causing hung sendto
+ - tun: fix blocking read
+ - [x86, arm64, armhf] xen-netback: don't populate the hash cache on XenBus
+ disconnect
+ - [x86, arm64, armhf] xen-netback: fix occasional leak of grant ref mappings
+ under memory pressure
+ - tun: remove unnecessary memory barrier
+ - net: Add __icmp_send helper.
+ - ipv4: Return error for RTA_VIA attribute
+ - ipv6: Return error for RTA_VIA attribute
+ - mpls: Return error for RTA_GATEWAY attribute
+ - ipv4: Pass original device to ip_rcv_finish_core
+ - [arm64, armhf] net: dsa: mv88e6xxx: power serdes on/off for 10G interfaces
+ on 6390X
+ - [arm64, armhf] net: dsa: mv88e6xxx: prevent interrupt storm caused by
+ mv88e6390x_port_set_cmode
+ - net/sched: act_ipt: fix refcount leak when replace fails
+ - net/sched: act_skbedit: fix refcount leak when replace fails
+ - net: sched: act_tunnel_key: fix NULL pointer dereference during init
+ - [x86] CPU/AMD: Set the CPB bit unconditionally on F17h
+ - [x86] boot/compressed/64: Do not read legacy ROM on EFI system
+ - tracing: Fix event filters and triggers to handle negative numbers
+ - usb: xhci: Fix for Enabling USB ROLE SWITCH QUIRK on
+ INTEL_SUNRISEPOINT_LP_XHCI
+ - [x86, powerpc*] applicom: Fix potential Spectre v1 vulnerabilities
+ - [mips*] irq: Allocate accurate order pages for irq stack
+ - aio: Fix locking in aio_poll()
+ - xtensa: fix get_wchan
+ - gnss: sirf: fix premature wakeup interrupt enable
+ - USB: serial: cp210x: fix GPIO in autosuspend
+ - Bluetooth: btrtl: Restore old logic to assume firmware is already loaded
+ - Bluetooth: Fix locking in bt_accept_enqueue() for BH context
+ - exec: Fix mem leak in kernel_read_file (CVE-2019-8980)
+ - scsi: core: reset host byte in DID_NEXUS_FAILURE case
+ - bpf: fix sanitation rewrite in case of non-pointers
+
+ [ Ben Hutchings ]
+ * [sparc64] udeb: Use standard module list in nic-modules; add i2c-modules
+ and nic-shared-modules to avoid duplication
+ * mt76: Use the correct hweight8() function (fixes FTBFS on ia64)
+ * [armel] udeb: Add mmc-core-modules
+ * udeb: Make nic-wireless-modules depend on mmc-core-modules, not
+ mmc-modules; move crc7 to crc-modules to avoid duplication
+ * [powerpc*] udeb: Add i2c-modules, mmc-core-modules, nic-wireless-modules
+ * [arm64,armhf] udeb: Add mmc-core-modules to Provides of kernel-image
+ * udeb: Add fb-modules and include drm and drm_kms_helper on most
+ architectures
+ * udeb: Move basic PV modules from {hyperv,virtio}-modules to kernel-image
+ * udeb: Move drivers from {hyperv,virtio}-modules to
+ {fb,input,nic,scsi}-modules
+ * debian/bin/gencontrol.py: Add rules to build debian/build/config.*
+ * certs: Replace test signing certificate with production signing certificate
+ * debian/bin/gencontrol_signed.py: Put all files.json fields under "packages"
+ * Bump ABI to 4
+
+ [ Wookey ]
+ * linux-perf: Enable coresight trace (libopencsd) support in perf
+ (Closes: #895131)
+
+ [ Vagrant Cascadian ]
+ * [armhf] Add patch from upstream fixing stability issues when cpufreq
+ is enabled on Orange Pi Plus.
+ * [armhf] Enable REGULATOR_SY8106A as module.
+ * [arm64] Add patch working around A64 timer issues.
+
+ [ dann frazier ]
+ * arm64: lockdown: Move init_lockdown() call after uefi_init()
+
+ [ Salvatore Bonaccorso ]
+ * Btrfs: fix corruption reading shared and compressed extents after hole
+ punching (Closes: #922306)
+
+ [ Vagrant Cascadian ]
+ * [arm64] Add patch from v4.20 to enable device-tree for Pine64-LTS.
+
+ [ Romain Perier ]
+ * [rt] Update to 4.19.25-rt16:
+ - Add zram_slot_trylock() to "drivers/block/zram: Replace bit spinlocks
+ with rtmutex for -rt"
+ - Refresh "futex: workaround migrate_disable/enable in different context"
+ - softirq: Avoid "local_softirq_pending" messages if ksoftirqd is blocked
+ - softirq: Avoid "local_softirq_pending" messages if task is in cpu_chill()
+ - hrtimer: Don't lose state in cpu_chill()
+ - hrtimer: cpu_chill(): save task state in ->saved_state()
+ - [x86] lazy-preempt: properly check against preempt-mask
+ - [i386] lazy-preempt: use proper return label on 32bit-x86
+ * [armel/rpi] Add flavour for Raspberry Pi and Raspberry Pi Zero
+ * [armel, armhf] Enable CRASH_DUMP
+ * Enable STRICT_MODULE_RWX
+
+ [ Marcin Juszkiewicz ]
+ * [arm64] udeb: Use generic ata-modules
+ * [arm64] udeb: Remove redundant lines from nic-modules
+
+ [ YunQiang Su ]
+ * [mips r6] Disable JUMP_LABEL for now: it will cause Reserved Instruction.
+ Enable SERIAL_OF_PLATFORM, if not, userland shows nothing.
+ Enable CPU_HAS_MSA, HIGHMEM, CRYPTO_CRC32_MIPS, and NR_CPUS to 16.
+ Support some boston drivers: IMG_ASCII_LCD, I2C_EG20T, PCH_PHUB, MMC,
+ PCIE_XILINX, RTC_DRV_M41T80, SPI_TOPCLIFF_PCH.
+ * [mipsel/mips64el] Backport MIPS: Loongson: Introduce and use
+ loongson_llsc_mb()
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 12 Mar 2019 05:06:28 +0000
+
+linux (4.19.20-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.17
+ - tty/ldsem: Wake up readers after timed out down_write()
+ - tty: Hold tty_ldisc_lock() during tty_reopen()
+ - tty: Simplify tty->count math in tty_reopen()
+ - tty: Don't hold ldisc lock in tty_reopen() if ldisc present
+ - can: gw: ensure DLC boundaries after CAN frame modification
+ (CVE-2019-3701)
+ - netfilter: nf_conncount: don't skip eviction when age is negative
+ - netfilter: nf_conncount: split gc in two phases
+ - netfilter: nf_conncount: restart search when nodes have been erased
+ (Closes: #921616)
+ - netfilter: nf_conncount: merge lookup and add functions
+ - netfilter: nf_conncount: move all list iterations under spinlock
+ - netfilter: nf_conncount: speculative garbage collection on empty lists
+ - netfilter: nf_conncount: fix argument order to find_next_bit
+ - [arm64] mmc: sdhci-msm: Disable CDR function on TX
+ - Revert "scsi: target: iscsi: cxgbit: fix csk leak"
+ - scsi: target: iscsi: cxgbit: fix csk leak
+ - scsi: target: iscsi: cxgbit: fix csk leak
+ - [arm64] kvm: consistently handle host HCR_EL2 flags
+ - [arm64] Don't trap host pointer auth use to EL2
+ - ipv6: fix kernel-infoleak in ipv6_local_error()
+ - net: bridge: fix a bug on using a neighbour cache entry without checking
+ its state
+ - packet: Do not leak dev refcounts on error exit
+ - tcp: change txhash on SYN-data timeout
+ - tun: publish tfile after it's fully initialized
+ - r8169: don't try to read counters if chip is in a PCI power-save state
+ - bonding: update nest level on unlink
+ - ip: on queued skb use skb_header_pointer instead of pskb_may_pull
+ - r8169: load Realtek PHY driver module before r8169
+ - crypto: authencesn - Avoid twice completion call in decrypt path
+ - crypto: authenc - fix parsing key with misaligned rta_len
+ - [x86] xen: Fix x86 sched_clock() interface for xen
+ - Revert "btrfs: balance dirty metadata pages in btrfs_finish_ordered_io"
+ - btrfs: wait on ordered extents on abort cleanup
+ - Yama: Check for pid death before checking ancestry
+ - scsi: core: Synchronize request queue PM status only on successful resume
+ - [x86] scsi: sd: Fix cache_type_store()
+ - [mips*] fix n32 compat_ipc_parse_version
+ - [mips*] BCM47XX: Setup struct device for the SoC
+ - [mips*] lantiq: Fix IPI interrupt handling
+ - of: properties: add missing of_node_put
+ - RDMA/nldev: Don't expose unsafe global rkey to regular user
+ - [arm64] kaslr: ensure randomized quantities are clean to the PoC
+ - [arm64] dts: marvell: armada-ap806: reserve PSCI area
+ - [mips*] Disable MSI also when pcie-octeon.pcie_disable on
+ - fix int_sqrt64() for very large numbers
+ - media: vivid: fix error handling of kthread_run
+ - media: vivid: set min width/height to a value > 0
+ - bpf: in __bpf_redirect_no_mac pull mac only if present
+ - ipv6: make icmp6_send() robust against null skb->dev
+ - LSM: Check for NULL cred-security on free
+ - netfilter: ebtables: account ebt_table_info to kmemcg
+ - block: use rcu_work instead of call_rcu to avoid sleep in softirq
+ - selinux: fix GPF on invalid policy
+ - blockdev: Fix livelocks on loop device
+ - sctp: allocate sctp_sockaddr_entry with kzalloc
+ - tipc: fix uninit-value in in tipc_conn_rcv_sub
+ - tipc: fix uninit-value in tipc_nl_compat_link_reset_stats
+ - tipc: fix uninit-value in tipc_nl_compat_bearer_enable
+ - tipc: fix uninit-value in tipc_nl_compat_link_set
+ - tipc: fix uninit-value in tipc_nl_compat_name_table_dump
+ - tipc: fix uninit-value in tipc_nl_compat_doit
+ - block/loop: Don't grab "struct file" for vfs_getattr() operation.
+ - block/loop: Use global lock for ioctl() operation.
+ - loop: Fold __loop_release into loop_release
+ - loop: Get rid of loop_index_mutex
+ - loop: Push lo_ctl_mutex down into individual ioctls
+ - loop: Split setting of lo_state from loop_clr_fd
+ - loop: Push loop_ctl_mutex down into loop_clr_fd()
+ - loop: Push loop_ctl_mutex down to loop_get_status()
+ - loop: Push loop_ctl_mutex down to loop_set_status()
+ - loop: Push loop_ctl_mutex down to loop_set_fd()
+ - loop: Push loop_ctl_mutex down to loop_change_fd()
+ - loop: Move special partition reread handling in loop_clr_fd()
+ - loop: Move loop_reread_partitions() out of loop_ctl_mutex
+ - loop: Fix deadlock when calling blkdev_reread_part()
+ - loop: Avoid circular locking dependency between loop_ctl_mutex and
+ bd_mutex
+ - loop: Get rid of 'nested' acquisition of loop_ctl_mutex
+ - loop: Fix double mutex_unlock(&loop_ctl_mutex) in loop_control_ioctl()
+ - loop: drop caches if offset or block_size are changed
+ - drm/fb-helper: Ignore the value of fb_var_screeninfo.pixclock
+ - nbd: Use set_blocksize() to set device blocksize
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.18
+ - ipv6: Consider sk_bound_dev_if when binding a socket to a v4 mapped
+ address
+ - [armhf, arm64 net: dsa: mv88x6xxx: mv88e6390 errata
+ - net, skbuff: do not prefer skb allocation fails early
+ - qmi_wwan: add MTU default to qmap network interface
+ - r8169: Add support for new Realtek Ethernet
+ - ipv6: Take rcu_read_lock in __inet6_bind for mapped addresses
+ - net: clear skb->tstamp in bridge forwarding path
+ - netfilter: ipset: Allow matching on destination MAC address for mac and
+ ipmac sets
+ - [arm64] gpio: pl061: Move irq_chip definition inside struct pl061
+ - drm/amd/display: Guard against null stream_state in set_crc_source
+ - [x86] drm/amdkfd: fix interrupt spin lock
+ - ixgbe: allow IPsec Tx offload in VEPA mode
+ - [x86] platform: asus-wmi: Tell the EC the OS will handle the display
+ off hotkey
+ - e1000e: allow non-monotonic SYSTIM readings
+ - [x86] usb: typec: tcpm: Do not disconnect link for self powered devices
+ - of: overlay: add missing of_node_put() after add new node to changeset
+ - writeback: don't decrement wb->refcnt if !wb->bdi
+ - serial: set suppress_bind_attrs flag only if builtin
+ - bpf: Allow narrow loads with offset > 0
+ - ALSA: oxfw: add support for APOGEE duet FireWire
+ - [x86] mce: Fix -Wmissing-prototypes warnings
+ - [mips] SiByte: Enable swiotlb for SWARM, LittleSur and BigSur
+ - [arm64] perf: set suppress_bind_attrs flag to true
+ - drm/atomic-helper: Complete fake_commit->flip_done potentially earlier
+ - [arm64] clk: meson: meson8b: fix incorrect divider mapping in
+ cpu_scale_table
+ - samples: bpf: fix: error handling regarding kprobe_events
+ - usb: gadget: udc: renesas_usb3: add a safety connection way for
+ forced_b_device
+ - fpga: altera-cvp: fix probing for multiple FPGAs on the bus
+ - selinux: always allow mounting submounts
+ - ASoC: pcm3168a: Don't disable pcm3168a when CONFIG_PM defined
+ - scsi: qedi: Check for session online before getting iSCSI TLV data.
+ - drm/amdgpu: Reorder uvd ring init before uvd resume
+ - rxe: IB_WR_REG_MR does not capture MR's iova field
+ - efi/libstub: Disable some warnings for x86{,_64}
+ - jffs2: Fix use of uninitialized delayed_work, lockdep breakage
+ - clk: imx: make mux parent strings const
+ - pstore/ram: Do not treat empty buffers as valid
+ - media: uvcvideo: Refactor teardown of uvc on USB disconnect
+ - powerpc/xmon: Fix invocation inside lock region
+ - powerpc/pseries/cpuidle: Fix preempt warning
+ - media: firewire: Fix app_info parameter type in avc_ca{,_app}_info
+ - ASoC: use dma_ops of parent device for acp_audio_dma
+ - media: venus: core: Set dma maximum segment size
+ - staging: erofs: fix use-after-free of on-stack `z_erofs_vle_unzip_io'
+ - net: call sk_dst_reset when set SO_DONTROUTE
+ - scsi: target: use consistent left-aligned ASCII INQUIRY data
+ - scsi: target/core: Make sure that target_wait_for_sess_cmds() waits long
+ enough
+ - [arm64] kasan: Increase stack size for KASAN_EXTRA
+ - clk: imx6q: reset exclusive gates on init
+ - [arm64] Fix minor issues with the dcache_by_line_op macro
+ - bpf: relax verifier restriction on BPF_MOV | BPF_ALU
+ - mmc: atmel-mci: do not assume idle after atmci_request_end
+ - btrfs: volumes: Make sure there is no overlap of dev extents at mount
+ time
+ - btrfs: alloc_chunk: fix more DUP stripe size handling
+ - btrfs: fix use-after-free due to race between replace start and cancel
+ - btrfs: improve error handling of btrfs_add_link
+ - tty/serial: do not free trasnmit buffer page under port lock
+ - perf intel-pt: Fix error with config term "pt=0"
+ - perf tests ARM: Disable breakpoint tests 32-bit
+ - perf svghelper: Fix unchecked usage of strncpy()
+ - perf parse-events: Fix unchecked usage of strncpy()
+ - perf vendor events intel: Fix Load_Miss_Real_Latency on SKL/SKX
+ - netfilter: ipt_CLUSTERIP: check MAC address when duplicate config is set
+ - netfilter: ipt_CLUSTERIP: remove wrong WARN_ON_ONCE in netns exit routine
+ - netfilter: ipt_CLUSTERIP: fix deadlock in netns exit routine
+ - [x86] topology: Use total_cpus for max logical packages calculation
+ - dm crypt: use u64 instead of sector_t to store iv_offset
+ - dm kcopyd: Fix bug causing workqueue stalls
+ - perf stat: Avoid segfaults caused by negated options
+ - tools lib subcmd: Don't add the kernel sources to the include path
+ - dm snapshot: Fix excessive memory usage and workqueue stalls
+ - perf cs-etm: Correct packets swapping in cs_etm__flush()
+ - perf tools: Add missing sigqueue() prototype for systems lacking it
+ - perf tools: Add missing open_memstream() prototype for systems lacking it
+ - quota: Lock s_umount in exclusive mode for Q_XQUOTA{ON,OFF} quotactls.
+ - clocksource/drivers/integrator-ap: Add missing of_node_put()
+ - dm: Check for device sector overflow if CONFIG_LBDAF is not set
+ - Bluetooth: btusb: Add support for Intel bluetooth device 8087:0029
+ - ALSA: bebob: fix model-id of unit for Apogee Ensemble
+ - sysfs: Disable lockdep for driver bind/unbind files
+ - IB/usnic: Fix potential deadlock
+ - scsi: mpt3sas: fix memory ordering on 64bit writes
+ - scsi: smartpqi: correct lun reset issues
+ - ath10k: fix peer stats null pointer dereference
+ - scsi: smartpqi: call pqi_free_interrupts() in pqi_shutdown()
+ - scsi: megaraid: fix out-of-bound array accesses
+ - iomap: don't search past page end in iomap_is_partially_uptodate
+ - ocfs2: fix panic due to unrecovered local alloc
+ - mm/page-writeback.c: don't break integrity writeback on ->writepage()
+ error
+ - mm/swap: use nr_node_ids for avail_lists in swap_info_struct
+ - userfaultfd: clear flag if remap event not enabled
+ - mm, proc: be more verbose about unstable VMA flags in /proc/<pid>/smaps
+ - iwlwifi: mvm: Send LQ command as async when necessary
+ - Bluetooth: Fix unnecessary error message for HCI request completion
+ - ipmi: fix use-after-free of user->release_barrier.rda
+ - ipmi: msghandler: Fix potential Spectre v1 vulnerabilities
+ - ipmi: Prevent use-after-free in deliver_response
+ - ipmi:ssif: Fix handling of multi-part return messages
+ - ipmi: Don't initialize anything in the core until something uses it
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.19
+ - amd-xgbe: Fix mdio access for non-zero ports and clause 45 PHYs
+ - net: bridge: Fix ethernet header pointer before check skb forwardable
+ - net: Fix usage of pskb_trim_rcsum
+ - net: phy: marvell: Errata for mv88e6390 internal PHYs
+ - net: phy: mdio_bus: add missing device_del() in mdiobus_register() error
+ handling
+ - net/sched: act_tunnel_key: fix memory leak in case of action replace
+ - net_sched: refetch skb protocol for each filter
+ - openvswitch: Avoid OOB read when parsing flow nlattrs
+ - vhost: log dirty page correctly
+ - net: ipv4: Fix memory leak in network namespace dismantle
+ - net/sched: cls_flower: allocate mask dynamically in fl_change()
+ - udp: with udp_segment release on error path
+ - ip6_gre: fix tunnel list corruption for x-netns
+ - erspan: build the header with the right proto according to erspan_ver
+ - net: phy: marvell: Fix deadlock from wrong locking
+ - ip6_gre: update version related info when changing link
+ - tcp: allow MSG_ZEROCOPY transmission also in CLOSE_WAIT state
+ - mei: me: mark LBG devices as having dma support
+ - mei: me: add denverton innovation engine device IDs
+ - USB: leds: fix regression in usbport led trigger
+ - USB: serial: simple: add Motorola Tetra TPG2200 device id
+ - USB: serial: pl2303: add new PID to support PL2303TB
+ - ceph: clear inode pointer when snap realm gets dropped by its inode
+ - ASoC: atom: fix a missing check of snd_pcm_lib_malloc_pages
+ - ASoC: rt5514-spi: Fix potential NULL pointer dereference
+ - ASoC: tlv320aic32x4: Kernel OOPS while entering DAPM standby mode
+ - clk: socfpga: stratix10: fix rate calculation for pll clocks
+ - clk: socfpga: stratix10: fix naming convention for the fixed-clocks
+ - inotify: Fix fd refcount leak in inotify_add_watch().
+ - ALSA: hda/realtek - Fix typo for ALC225 model
+ - ALSA: hda - Add mute LED support for HP ProBook 470 G5
+ - ARCv2: lib: memeset: fix doing prefetchw outside of buffer
+ - ARC: adjust memblock_reserve of kernel memory
+ - ARC: perf: map generic branches to correct hardware condition
+ - s390/mm: always force a load of the primary ASCE on context switch
+ - s390/early: improve machine detection
+ - s390/smp: fix CPU hotplug deadlock with CPU rescan
+ - misc: ibmvsm: Fix potential NULL pointer dereference
+ - char/mwave: fix potential Spectre v1 vulnerability
+ - [arm64] mmc: dw_mmc-bluefield: : Fix the license information
+ - [arm64] mmc: meson-gx: Free irq in release() callback
+ - staging: rtl8188eu: Add device code for D-Link DWA-121 rev B1
+ - tty: Handle problem if line discipline does not have receive_buf
+ - uart: Fix crash in uart_write and uart_put_char
+ - tty/n_hdlc: fix __might_sleep warning
+ - hv_balloon: avoid touching uninitialized struct page during tail onlining
+ - Drivers: hv: vmbus: Check for ring when getting debug info
+ - vgacon: unconfuse vc_origin when using soft scrollback
+ - CIFS: Fix possible hang during async MTU reads and writes
+ - CIFS: Fix credits calculations for reads with errors
+ - CIFS: Fix credit calculation for encrypted reads with errors
+ - CIFS: Do not reconnect TCP session in add_credits()
+ - smb3: add credits we receive from oplock/break PDUs
+ - Input: xpad - add support for SteelSeries Stratus Duo
+ - Input: input_event - provide override for sparc64
+ - Input: uinput - fix undefined behavior in uinput_validate_absinfo()
+ - acpi/nfit: Block function zero DSMs
+ - acpi/nfit: Fix command-supported detection
+ - scsi: ufs: Use explicit access size in ufshcd_dump_regs
+ - dm thin: fix passdown_double_checking_shared_status()
+ - dm crypt: fix parsing of extended IV arguments
+ - [x86] drm/amdgpu: Add APTX quirk for Lenovo laptop
+ - [x86] KVM: Fix single-step debugging
+ - [x86] KVM: Fix PV IPIs for 32-bit KVM host
+ - [x86] KVM: WARN_ONCE if sending a PV IPI returns a fatal error
+ - [x86] kvm: vmx: Use kzalloc for cached_vmcs12
+ - [x86] KVM/nVMX: Do not validate that posted_intr_desc_addr is page
+ aligned
+ - [x86] pkeys: Properly copy pkey state at fork()
+ - [x86] selftests/pkeys: Fork() to check for state being preserved
+ - [x86] kaslr: Fix incorrect i8254 outb() parameters
+ - [x86] entry/64/compat: Fix stack switching for XEN PV
+ - [arm64] irqchip/gic-v3-its: Align PCI Multi-MSI allocation on their size
+ - can: dev: __can_get_echo_skb(): fix bogous check for non-existing skb by
+ removing it
+ - can: bcm: check timer values before ktime conversion
+ - can: flexcan: fix NULL pointer exception during bringup
+ - vt: make vt_console_print() compatible with the unicode screen buffer
+ - vt: always call notifier with the console lock held
+ - vt: invoke notifier on screen size change
+ - [arm64] drm/meson: Fix atomic mode switching regression
+ - bpf: improve verifier branch analysis
+ - bpf: add per-insn complexity limit
+ - bpf: move {prev_,}insn_idx into verifier env
+ - bpf: move tmp variable into ax register in interpreter
+ - bpf: enable access to ax register also from verifier rewrite
+ - bpf: restrict map value pointer arithmetic for unprivileged
+ - bpf: restrict stack pointer arithmetic for unprivileged
+ - bpf: restrict unknown scalars of mixed signed bounds for unprivileged
+ - bpf: fix check_map_access smin_value test when pointer contains offset
+ - bpf: prevent out of bounds speculation on pointer arithmetic
+ (CVE-2019-7308)
+ - bpf: fix sanitation of alu op with pointer / scalar type from different
+ paths (CVE-2019-7308)
+ - bpf: fix inner map masking to prevent oob under speculation
+ - [s390*] smp: Fix calling smp_call_ipl_cpu() from ipl CPU
+ - nvmet-rdma: Add unlikely for response allocated check
+ - nvmet-rdma: fix null dereference under heavy load
+ - Revert "mm, memory_hotplug: initialize struct pages for the full memory
+ section"
+ - usb: dwc3: gadget: Clear req->needs_extra_trb flag on cleanup
+ - ide: fix a typo in the settings proc file name
+ - Input: input_event - fix the CONFIG_SPARC64 mixup
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.20
+ - Fix "net: ipv4: do not handle duplicate fragments as overlapping"
+ - ipv6: sr: clear IP6CB(skb) on SRH ip4ip6 encapsulation
+ - ipvlan, l3mdev: fix broken l3s mode wrt local routes
+ - l2tp: copy 4 more bytes to linear part if necessary
+ - l2tp: fix reading optional fields of L2TPv3
+ - net: ip_gre: always reports o_key to userspace
+ - net: ip_gre: use erspan key field for tunnel lookup
+ - net/mlx4_core: Add masking for a few queries on HCA caps
+ - netrom: switch to sock timer API
+ - net/rose: fix NULL ax25_cb kernel panic
+ - net: set default network namespace in init_dummy_netdev()
+ - sctp: improve the events for sctp stream reset
+ - tun: move the call to tun_set_real_num_queues
+ - vhost: fix OOB in get_rx_bufs()
+ (CVE-2018-16880)
+ - net: ip6_gre: always reports o_key to userspace
+ - sctp: improve the events for sctp stream adding
+ - net/mlx5e: Allow MAC invalidation while spoofchk is ON
+ - ip6mr: Fix notifiers call on mroute_clean_tables()
+ - sctp: set chunk transport correctly when it's a new asoc
+ - sctp: set flow sport from saddr only when it's 0
+ - virtio_net: Don't enable NAPI when interface is down
+ - virtio_net: Don't call free_old_xmit_skbs for xdp_frames
+ - virtio_net: Fix not restoring real_num_rx_queues
+ - virtio_net: Fix out of bounds access of sq
+ - virtio_net: Don't process redirected XDP frames when XDP is disabled
+ - virtio_net: Use xdp_return_frame to free xdp_frames on destroying vqs
+ - virtio_net: Differentiate sk_buff and xdp_frame on freeing
+ - CIFS: Do not count -ENODATA as failure for query directory
+ - CIFS: Fix trace command logging for SMB2 reads and writes
+ - CIFS: Do not consider -ENODATA as stat failure for reads
+ - fs/dcache: Fix incorrect nr_dentry_unused accounting in
+ shrink_dcache_sb()
+ - iommu/vt-d: Fix memory leak in intel_iommu_put_resv_regions()
+ - NFS: Fix up return value on fatal errors in nfs_page_async_flush()
+ - [arm64] kaslr: ensure randomized quantities are clean also when kaslr is
+ off
+ - [arm64] Do not issue IPIs for user executable ptes
+ - [arm64] hyp-stub: Forbid kprobing of the hyp-stub
+ - [arm64] hibernate: Clean the __hyp_text to PoC after resume
+ - gpiolib: fix line event timestamps for nested irqs
+ - gpio: pcf857x: Fix interrupts on multiple instances
+ - gfs2: Revert "Fix loop in gfs2_rbm_find"
+ - [arm*] mmc: bcm2835: Fix DMA channel leak on probe error
+ - mmc: mediatek: fix incorrect register setting of hs400_cmd_int_delay
+ - ALSA: usb-audio: Add Opus #3 to quirks for native DSD support
+ - ALSA: hda/realtek - Fixed hp_pin no value
+ - IB/hfi1: Remove overly conservative VM_EXEC flag check
+ - [x86] platform: asus-nb-wmi: Map 0x35 to KEY_SCREENLOCK
+ - [x86] platform: asus-nb-wmi: Drop mapping of 0x33 and 0x34 scan codes
+ - mmc: sdhci-iproc: handle mmc_of_parse() errors during probe
+ - Btrfs: fix deadlock when allocating tree block during leaf/node split
+ - btrfs: On error always free subvol_name in btrfs_mount
+ - kernel/exit.c: release ptraced tasks before zap_pid_ns_processes
+ - mm/hugetlb.c: teach follow_hugetlb_page() to handle FOLL_NOWAIT
+ - oom, oom_reaper: do not enqueue same task twice
+ - mm,memory_hotplug: fix scan_movable_pages() for gigantic hugepages
+ - mm, oom: fix use-after-free in oom_kill_process
+ - mm: hwpoison: use do_send_sig_info() instead of force_sig()
+ - mm: migrate: don't rely on __PageMovable() of newpage after unlocking it
+ - of: Convert to using %pOFn instead of device_node.name
+ - of: overlay: add tests to validate kfrees from overlay removal
+ - of: overlay: add missing of_node_get() in __of_attach_node_sysfs
+ - of: overlay: use prop add changeset entry for property in new nodes
+ - of: overlay: do not duplicate properties from overlay for new nodes
+ - md/raid5: fix 'out of memory' during raid cache recovery
+ - cifs: Always resolve hostname before reconnecting
+
+ [ Luca Boccassi ]
+ * Do not generate linux-source-$ver stanza in debian/control if
+ source is set to disabled in debian/config/defines.
+ * linux-perf: explicitly disable the jvmti feature and shared library.
+ * Document pkg.linux.nosource in debian/README.source.
+ * [amd64] enable UIO_HV_GENERIC for Azure's VMBus access.
+ * [cloud-amd64] enable UIO for Azure's VMBus access, and VFIO for guests
+ running on an hypervisor that exposes a vIOMMU.
+
+ [ Ben Hutchings ]
+ * debian/rules.d, debian/rules.real: Restore build of userland headers for
+ tools
+ * debian/rules.d: Delete now-unused recursive makefiles
+ * debian/rules.d/tools/perf/Makefile: Delete redundant arch/profile checks
+ * debian/control: Add !pkg.linux.nokernel to qualification for compiler
+ build-deps
+ * [i386] debian/control: Fix cross-compiler build-dependency
+ * debian/README.source: Document how to run kconfigeditor2
+ * [armhf,arm64] serial: 8250: Disable SERIAL_8250_DEPRECATED_OPTIONS
+ * percpu: convert spin_lock_irq to spin_lock_irqsave (fixes boot failure with
+ alpha-generic flavour)
+ * debian/tests/python: Fix spurious failure due to misuse of stderr
+ * Update "Revert "objtool: Fix CONFIG_STACK_VALIDATION=y warning for ..."
+ to not duplicate the conditional warning/error
+ * Bump ABI to 3
+ * drivers/firmware: Enable FW_CFG_SYSFS as module (Closes: #882208)
+ * [arm64,armhf,ia64,riscv64,sparc64] udeb: Add usb-serial-modules
+ (Closes: #903824)
+ * [powerpc*,sparc64] udeb: Add nic-usb-modules
+ * [armhf,riscv64,s390x] udeb: Add cdrom-core-modules
+ * 9p: Enable NET_9P_XEN as module
+ * ACPI: Enable ACPI_TAD as module
+ * amd-xgbe: Enable AMD_XGBE_DCB
+ * ath9k: Enable ATH9K_CHANNEL_CONTEXT
+ * block: Enable BLK_DEV_ZONED (except armel/marvell)
+ * bluetooth: Enable BT_HCIUART_RTL; BT_HCIUART_NOKIA, BT_MTKUART as modules
+ * bnxt: Enable BNXT_DCB
+ * ethernet: Enable HINIC, ICE, LAN743X, LIQUIDIO_VF as modules
+ * can: Enable CAN_VXCAN, CAN_MCBA_USB, CAN_UCAN as modules
+ * dm: Enable DM_UNSTRIPED, DM_WRITECACHE, DM_ZONED as modules
+ * [arm64,armhf] drm: Enable DRM_PANEL_RASPBERRYPI_TOUCHSCREEN as module
+ * dvb-usb-v2: Enable DVB_USB_ZD1301 as module
+ * gnss: Enable GNSS, GNSS_SIRF_SERIAL, GNSS_UBX_SERIAL as modules
+ * gpio: Enable GPIO_EXAR, GPIO_PCI_IDIO_16, GPIO_PCIE_IDIO_24 as modules
+ * HID: Enable HID_ACCUTOUCH, HID_COUGAR, HID_ELAN, HID_ITE, HID_JABRA,
+ HID_MAYFLASH, HID_REDRAGON, HID_RETRODE, HID_STEAM, HID_UDRAW_PS3 as
+ modules
+ * [x86] i2c: Enable I2C_DESIGNWARE_BAYTRAIL
+ * IB: Enable CGROUP_RDMA (except armel/marvell)
+ * ieee802154: Enable IEEE802154_HWSIM as module
+ * inet: Enable INET_RAW_DIAG as module
+ * input: Enable INPUT_AXP20X_PEK as module
+ * IPMI: Enable IPMI_SSIF as module
+ * joystick: Enable JOYSTICK_PXRC as module
+ * media/rc: Enable IR_IMON_DECODER, IR_IMON_RAW as modules
+ * [x86] mfd: Enable INTEL_SOC_PMIC_BXTWC, INTEL_SOC_PMIC_CHTDC_TI as modules
+ * mlx5: Enable MLX5_FPGA, MLX5_CORE_IPOIB; MLXFW as module
+ * net: Enable BPF_STREAM_PARSER, XDP_SOCKETS (except armel/marvell)
+ (Closes: #908860); NET_FAILOVER, SMC, SMC_DIAG, VSOCKMON as modules
+ * net/phy: Enable LED_TRIGGER_PHY; CORTINA_PHY, DP83822_PHY, DP83TC811_PHY,
+ MARVELL_10G_PHY, MICROCHIP_T1_PHY, RENESAS_PHY, ROCKCHIP_PHY as modules
+ * net/sched: Enable NET_SCH_CBS, NET_SCH_ETF, NET_SCH_SKBPRIO, NET_EMATCH_IPT
+ as modules
+ * PCMCIA: Enable SCR24X as module
+ * [x86] pinctrl: Enable PINCTRL_CANNONLAKE, PINCTRL_CEDARFORK,
+ PINCTRL_DENVERTON, PINCTRL_GEMINILAKE, PINCTRL_ICELAKE, PINCTRL_LEWISBURG
+ * [x86] rmi4: Re-enable RMI4_CORE, RMI4_SMB as modules (Closes: #875621);
+ RMI4_F03, RMI4_F11, RMI4_F12, RMI4_F30, RMI4_F34, RMI4_F55
+ * xfrm: Enable XFRM_INTERFACE as module
+ * PCI: Enable PCI_PF_STUB as module
+ * ptp: Change PTP_1588_CLOCK_KVM from built-in to module
+ * random: Enable RANDOM_TRUST_CPU. This can be reverted using the kernel
+ parameter: random.trust_cpu=off
+ * SCSI: Enable QEDF, QEDI as modules
+ * serial: Enable SERIAL_8250_EXAR, USB_SERIAL_F8153X, USB_SERIAL_UPD78F0730
+ as modules
+ * sound: Enable SND_FIREWIRE_MOTU, SND_FIREFACE, SND_XEN_FRONTEND as modules
+ * [x86] sound: Enable SND_SOC_AMD_CZ_DA7219MX98357_MACH,
+ SND_SOC_AMD_CZ_RT5645_MACH, SND_SOC_INTEL_CHT_BSW_NAU8824_MACH,
+ SND_SOC_INTEL_BYT_CHT_DA7213_MACH, SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH,
+ SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH,
+ SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH,
+ SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH as modules
+ * thermal: Enable DEVFREQ_THERMAL, THERMAL_STATISTICS
+ * tpm: Enable TCG_TIS_SPI, TCG_VTPM_PROXY as modules
+ * usbtouchscreen: Enable TOUCHSCREEN_USB_EASYTOUCH
+ * watchdog: Enable WATCHDOG_PRETIMEOUT_GOV, WATCHDOG_PRETIMEOUT_GOV_NOOP,
+ WATCHDOG_PRETIMEOUT_DEFAULT_GOV_NOOP; WATCHDOG_PRETIMEOUT_GOV_PANIC,
+ WDAT_WDT as modules
+ * [x86] watchdog: Enable INTEL_MEI_WDT, NI903X_WDT, NIC7018_WDT as modules
+ * wireless: Enable MT76x0U, MT76x2E, MT76x2U, QTNFMAC_PEARL_PCIE as modules
+ (Closes: #918331)
+ * zram: Enable ZRAM_WRITEBACK, ZRAM_MEMORY_TRACKING
+ * udeb: Add scsi-nic-modules containing Chelsio and Qlogic iSCSI/FC drivers
+
+ [ Marcin Juszkiewicz ]
+ * [arm64] enable ARM_CCI_PMU so ARM_CCI400_PMU and ARM_CCI5xx_PMU options
+ get really enabled.
+ * [arm64] enable PCI_PRI, PCI_PASID as PCI can be behind IOMMU in servers.
+ * udeb: Add virtio-gpu into d-i to get graphical output in VM instances.
+ * [arm64] Enable ARM64_ERRATUM_843419 (Closes: #920866)
+
+ [ Salvatore Bonaccorso ]
+ * [x86] kvmclock: set offset for kvm unstable clock (Closes: #918036)
+ * kvm: fix kvm_ioctl_create_device() reference counting (CVE-2019-6974)
+ * [x86] KVM: work around leak of uninitialized stack contents
+ (CVE-2019-7222)
+ * [x86] KVM: nVMX: unconditionally cancel preemption timer in free_nested
+ (CVE-2019-7221)
+ * HID: debug: fix the ring buffer implementation (CVE-2019-3819)
+
+ [ Hideki Yamane ]
+ * [x86] Enable Touchpad support on Gemini Lake via CONFIG_PINCTRL_GEMINILAKE
+ (Closes: #917388)
+ * [x86] Enable SND_SOC_ES8316 and Baytrail & Cherrytrail with ES8316 codec,
+ too (Closes: #918589)
+ * hwmon: Enable CONFIG_SENSORS_NCT7802,NCT7904,NPCM7XX,ASPEED and W83773G
+ to use HWMON hardware (Closes: #912597)
+ * net: can: Enable CONFIG_CAN_PEAK_PCIEFD for a PCI express CAN Bus adapter
+ (Closes: #920809)
+ * [armhf] Enable CONFIG_SENSORS_LM75 for armhf (Closes: #918114)
+ * [armhf] Enable CONFIG_IMX_THERMAL for armhf (Closes: #883023)
+ * [arm64] Enable CONFIG_ARM_ARMADA_37XX_CPUFREQ for arm64 (Closes: #917939)
+
+ [ Vagrant Cascadian ]
+ * [armhf] Enable CONFIG_MMC_SDHCI_OMAP=m, used on DRA7 and related SoCs.
+
+ [ Uwe Kleine-König ]
+ * [armel] add spi-orion to mtd.udeb to be able to access spi flash on e.g.
+ qnap ts-21x. (Closes: #920607)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 11 Feb 2019 16:55:59 +0000
+
+linux (4.19.16-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.14
+ - ax25: fix a use-after-free in ax25_fillin_cb()
+ - gro_cell: add napi_disable in gro_cells_destroy
+ - ip6mr: Fix potential Spectre v1 vulnerability
+ - ipv4: Fix potential Spectre v1 vulnerability
+ - ipv6: explicitly initialize udp6_addr in udp_sock_create6()
+ - ipv6: tunnels: fix two use-after-free
+ - ip: validate header length on virtual device xmit
+ - isdn: fix kernel-infoleak in capi_unlocked_ioctl
+ - net/wan: fix a double free in x25_asy_open_tty()
+ - packet: validate address length
+ - packet: validate address length if non-zero
+ - ptr_ring: wrap back ->producer in __ptr_ring_swap_queue()
+ - sctp: initialize sin6_flowinfo for ipv6 addrs in sctp_inet6addr_event
+ - tipc: compare remote and local protocols in tipc_udp_enable()
+ - tipc: fix a double free in tipc_enable_bearer()
+ - tipc: fix a double kfree_skb()
+ - ipv6: frags: Fix bogus skb->sk in reassembled packets
+ - ipv6: route: Fix return value of ip6_neigh_lookup() on neigh_create()
+ error
+ - ALSA: rme9652: Fix potential Spectre v1 vulnerability
+ - ALSA: emu10k1: Fix potential Spectre v1 vulnerabilities
+ - ALSA: pcm: Fix potential Spectre v1 vulnerability
+ - ALSA: emux: Fix potential Spectre v1 vulnerabilities
+ - powerpc/fsl: Fix spectre_v2 mitigations reporting
+ - usb: r8a66597: Fix a possible concurrency use-after-free bug in
+ r8a66597_endpoint_disable()
+ - [s390x] s390/pci: fix sleeping in atomic during hotplug
+ - [x86] x86/speculation/l1tf: Drop the swap storage limit restriction when
+ l1tf=off
+ - [x86] x86/mm: Drop usage of __flush_tlb_all() in
+ kernel_physical_mapping_init()
+ - [x86] KVM: x86: Use jmp to invoke kvm_spurious_fault() from .fixup
+ - [arm64] arm64: KVM: Make VHE Stage-2 TLB invalidation operations
+ non-interruptible
+ - perf pmu: Suppress potential format-truncation warning
+ - perf env: Also consider env->arch == NULL as local operation
+ - ext4: fix possible use after free in ext4_quota_enable
+ - ext4: missing unlock/put_page() in ext4_try_to_write_inline_data()
+ - ext4: include terminating u32 in size of xattr entries when expanding
+ inodes
+ - ext4: force inode writes when nfsd calls commit_metadata()
+ - ext4: check for shutdown and r/o file system in ext4_write_inode()
+ - [armhf,arm64] spi: bcm2835: Fix race on DMA termination
+ - [armhf,arm64] spi: bcm2835: Fix book-keeping of DMA termination
+ - [armhf,arm64] spi: bcm2835: Avoid finishing transfer prematurely in IRQ
+ mode
+ - btrfs: dev-replace: go back to suspended state if target device is missing
+ - btrfs: dev-replace: go back to suspend state if another EXCL_OP is running
+ - btrfs: skip file_extent generation check for free_space_inode in
+ run_delalloc_nocow
+ - Btrfs: fix fsync of files with multiple hard links in new directories
+ - btrfs: run delayed items before dropping the snapshot
+ - Btrfs: send, fix race with transaction commits that create snapshots
+ - brcmfmac: Fix out of bounds memory access during fw load
+ - dax: Don't access a freed inode
+ - f2fs: read page index before freeing
+ - f2fs: sanity check of xattr entry size
+ - media: imx274: fix stack corruption in imx274_read_reg
+ - media: v4l2-tpg: array index could become negative
+ - tools lib traceevent: Fix processing of dereferenced args in bprintk
+ events
+ - [mips*] MIPS: math-emu: Write-protect delay slot emulation pages
+ - [mips*] MIPS: Ensure pmd_present() returns false after pmd_mknotpresent()
+ - [mips*] MIPS: Align kernel load address to 64KB
+ - [mips*] MIPS: Expand MIPS32 ASIDs to 64 bits
+ - CIFS: Fix error mapping for SMB2_LOCK command which caused OFD lock
+ problem
+ - smb3: fix large reads on encrypted connections
+ - [arm*] KVM: arm/arm64: vgic: Cap SPIs to the VM-defined maximum
+ - [arm*] KVM: arm/arm64: vgic-v2: Set active_source to 0 when restoring
+ state
+ - [arm*] KVM: arm/arm64: vgic: Fix off-by-one bug in vgic_get_irq()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.15
+ - IB/core: Fix oops in netdev_next_upper_dev_rcu()
+ - xfrm: Fix NULL pointer dereference in xfrm_input when skb_dst_force
+ clears the dst_entry.
+ - ieee802154: hwsim: fix off-by-one in parse nested
+ - netfilter: seqadj: re-load tcp header pointer after possible head
+ reallocation
+ - scsi: bnx2fc: Fix NULL dereference in error handling
+ - [ppc64el] ibmvnic: Convert reset work item mutex to spin lock
+ - [ppc64el] ibmvnic: Fix non-atomic memory allocation in IRQ context
+ - [x86] x86/mm: Fix guard hole handling
+ - i40e: fix mac filter delete when setting mac address
+ - ixgbe: Fix race when the VF driver does a reset
+ - netfilter: nat: can't use dst_hold on noref dst
+ - bnx2x: Clear fip MAC when fcoe offload support is disabled
+ - bnx2x: Remove configured vlans as part of unload sequence.
+ - bnx2x: Send update-svid ramrod with retry/poll flags enabled
+ - mt76: fix potential NULL pointer dereference in mt76_stop_tx_queues
+ - [x86] x86, hyperv: remove PCI dependency
+ - [arm64] net: hns: All ports can not work when insmod hns ko after rmmod.
+ - [arm64] net: hns: Fixed bug that netdev was opened twice
+ - [arm64] net: hns: Clean rx fbd when ae stopped.
+ - [arm64] net: hns: Avoid net reset caused by pause frames storm
+ - [arm64] net: hns: Add mac pcs config when enable|disable mac
+ - [arm64] net: hns: Fix ping failed when use net bridge and send multicast
+ - mac80211: fix a kernel panic when TXing after TXQ teardown
+ - [arm64,riscv64] net: macb: fix random memory corruption on RX with
+ 64-bit DMA
+ - [arm64.risvv64] net: macb: fix dropped RX frames due to a race
+ - lan78xx: Resolve issue with changing MAC address
+ - [s390x] scsi: zfcp: fix posting too many status read buffers leading to
+ adapter shutdown
+ - fork: record start_time late
+ - zram: fix double free backing device
+ - hwpoison, memory_hotplug: allow hwpoisoned pages to be offlined
+ - mm, devm_memremap_pages: kill mapping "System RAM" support
+ - memcg, oom: notify on oom killer invocation from the charge path
+ - mt76x0: init hw capabilities
+ - [amd64] media: cx23885: only reset DMA on problematic CPUs
+ - ALSA: cs46xx: Potential NULL dereference in probe
+ - ALSA: usb-audio: Avoid access before bLength check in
+ build_audio_procunit()
+ - ALSA: usb-audio: Check mixer unit descriptors more strictly
+ - ALSA: usb-audio: Fix an out-of-bound read in create_composite_quirks
+ - ALSA: usb-audio: Always check descriptor sizes in parser code
+ - Fix failure path in alloc_pid()
+ - block: deactivate blk_stat timer in wbt_disable_default()
+ - gfs2: Get rid of potential double-freeing in gfs2_create_inode
+ - gfs2: Fix loop in gfs2_rbm_find
+ - b43: Fix error in cordic routine
+ - nfsd4: zero-length WRITE should succeed
+ - [ppc*] powerpc/tm: Set MSR[TS] just prior to recheckpoint
+ - RDMA/srpt: Fix a use-after-free in the channel release code
+ - sched/fair: Fix infinite loop in update_blocked_averages() by reverting
+ a9e7f6544b9c
+ - [s390x] genwqe: Fix size check
+ - [x86] intel_th: msu: Fix an off-by-one in attribute store
+ - [armhf,arm64] drm/rockchip: psr: do not dereference encoder before it is
+ null checked.
+ - bnx2x: Fix NULL pointer dereference in bnx2x_del_all_vlans() on some hw
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.16
+ - Btrfs: fix deadlock when using free space tree due to block group
+ creation
+ - staging: rtl8188eu: Fix module loading from tasklet for CCMP encryption
+ - staging: rtl8188eu: Fix module loading from tasklet for WEP encryption
+ - cpufreq: scmi: Fix frequency invariance in slow path
+ - [x86] modpost: Replace last remnants of RETPOLINE with CONFIG_RETPOLINE
+ - ALSA: hda/realtek - Support Dell headset mode for New AIO platform
+ - ALSA: hda/realtek - Add unplug function into unplug state of Headset Mode
+ for ALC225
+ - ALSA: hda/realtek - Disable headset Mic VREF for headset mode of ALC225
+ - CIFS: Fix adjustment of credits for MTU requests
+ - CIFS: Do not set credits to 1 if the server didn't grant anything
+ - CIFS: Do not hide EINTR after sending network packets
+ - CIFS: Fix credit computation for compounded requests
+ - cifs: Fix potential OOB access of lock element array
+ - usb: cdc-acm: send ZLP for Telit 3G Intel based modems
+ - USB: storage: don't insert sane sense for SPC3+ when bad sense specified
+ - USB: storage: add quirk for SMI SM3350
+ - USB: Add USB_QUIRK_DELAY_CTRL_MSG quirk for Corsair K70 RGB
+ - slab: alien caches must not be initialized if the allocation of the alien
+ cache failed
+ - mm/usercopy.c: no check page span for stack objects
+ - mm, memcg: fix reclaim deadlock with writeback
+ - ACPI: power: Skip duplicate power resource references in _PRx
+ - ACPI / PMIC: xpower: Fix TS-pin current-source handling
+ - ACPI/IORT: Fix rc_dma_get_range()
+ - i2c: dev: prevent adapter retries and timeout being set as minus value
+ - vfio/type1: Fix unmap overflow off-by-one
+ - drm/amdgpu: Add new VegaM pci id
+ - PCI: dwc: Use interrupt masking instead of disabling
+ - PCI: dwc: Take lock when ACKing an interrupt
+ - PCI: dwc: Move interrupt acking into the proper callback
+ - drm/amd/display: Fix MST dp_blank REG_WAIT timeout
+ - drm/fb_helper: Allow leaking fbdev smem_start
+ - drm/fb-helper: Partially bring back workaround for bugs of SDL 1.2
+ - [x86] drm/i915: Unwind failure on pinning the gen7 ppgtt
+ - drm/amdgpu: Don't ignore rc from drm_dp_mst_topology_mgr_resume()
+ - drm/amdgpu: Don't fail resume process if resuming atomic state fails
+ - rbd: don't return 0 on unmap if RBD_DEV_FLAG_REMOVING is set
+ - ext4: make sure enough credits are reserved for dioread_nolock writes
+ - ext4: fix a potential fiemap/page fault deadlock w/ inline_data
+ - ext4: avoid kernel warning when writing the superblock to a dead device
+ - ext4: use ext4_write_inode() when fsyncing w/o a journal
+ - ext4: track writeback errors using the generic tracking infrastructure
+ - ext4: fix special inode number checks in __ext4_iget()
+ - mm: page_mapped: don't assume compound page is huge or THP
+ - sunrpc: use-after-free in svc_process_common()
+ - [armhf,arm64] KVM: Fix VMID alloc race by reverting to lock-less
+ - [arm64] compat: Don't pull syscall number from regs in arm_compat_syscall
+ - Btrfs: fix access to available allocation bits when starting balance
+ - Btrfs: fix deadlock when enabling quotas due to concurrent snapshot
+ creation
+ - Btrfs: use nofs context when initializing security xattrs to avoid
+ deadlock
+
+ [ John Paul Adrian Glaubitz ]
+ * [m68k] Add patch to build with -ffreestanding to fix FTBFS
+
+ [ Ben Hutchings ]
+ * [ia64,m68k] libbpf: Really don't build on architectures without perf events
+ * Use dh_listpackages to determine which packages to build
+ * Add pkg.linux.nokernel build profile that excludes kernel image and header
+ packages
+
+ [ Yves-Alexis Perez ]
+ * Bump ABI to 2 because of changes in struct sock_common from 60f05dddf1eb
+ * [rt] Update to 4.19.15-rt12
+ - rtmutex/rwlock: preserve state like a sleeping lock
+
+ [ Salvatore Bonaccorso ]
+ * ipv6: Consider sk_bound_dev_if when binding a socket to an address
+ (Closes: #918103)
+ * posix-cpu-timers: Unbreak timer rearming (Closes: #919019, #919049)
+
+ [ Michal Simek ]
+ * [arm64] Enable Xilinx ZynqMP SoC and drivers
+
+ [ YunQiang Su ]
+ * [mipsel, mips64el] Enable DRM_AST and FB_SM750 for loongson-3
+ install ast and sm750fb to loongson-3's fb-modules
+
+ [ Romain Perier ]
+ * [rt] Update to 4.19.13-rt10
+
+ [ Luigi Baldoni ]
+ * [x86] Enable LEDS_APU to support leds on PC Engines
+ APU SBC series
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 17 Jan 2019 18:56:17 +0000
+
+linux (4.19.13-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.13
+ - Revert "vfs: Allow userns root to call mknod on owned filesystems."
+ - USB: hso: Fix OOB memory access in hso_probe/hso_get_config_data
+ (CVE-2018-19985)
+ - xhci: Don't prevent USB2 bus suspend in state check intended for USB3
+ only
+ - USB: xhci: fix 'broken_suspend' placement in struct xchi_hcd
+ - USB: serial: option: add GosunCn ZTE WeLink ME3630
+ - USB: serial: option: add HP lt4132
+ - USB: serial: option: add Simcom SIM7500/SIM7600 (MBIM mode)
+ - USB: serial: option: add Fibocom NL668 series
+ - USB: serial: option: add Telit LN940 series
+ - ubifs: Handle re-linking of inodes correctly while recovery
+ - scsi: t10-pi: Return correct ref tag when queue has no integrity profile
+ - scsi: sd: use mempool for discard special page
+ - mmc: core: Reset HPI enabled state during re-init and in case of errors
+ - mmc: core: Allow BKOPS and CACHE ctrl even if no HPI support
+ - mmc: core: Use a minimum 1600ms timeout when enabling CACHE ctrl
+ - [armhf] mmc: omap_hsmmc: fix DMA API warning
+ - gpiolib-acpi: Only defer request_irq for GpioInt ACPI event handlers
+ - posix-timers: Fix division by zero bug
+ - [x86] KVM: Fix NULL deref in vcpu_scan_ioapic
+ - [x86] kvm: Add AMD's EX_CFG to the list of ignored MSRs
+ - [x86] KVM: Fix UAF in nested posted interrupt processing
+ - [x86] Drivers: hv: vmbus: Return -EINVAL for the sys files for unopened
+ channels
+ - futex: Cure exit race
+ - [x86] mtrr: Don't copy uninitialized gentry fields back to userspace
+ - [x86] mm: Fix decoy address handling vs 32-bit builds (Closes: #917569)
+ - [x86] vdso: Pass --eh-frame-hdr to the linker
+ - panic: avoid deadlocks in re-entrant console drivers
+ - mm: add mm_pxd_folded checks to pgtable_bytes accounting functions
+ - mm: make the __PAGETABLE_PxD_FOLDED defines non-empty
+ - mm: introduce mm_[p4d|pud|pmd]_folded
+ - xfrm_user: fix freeing of xfrm states on acquire
+ - rtlwifi: Fix leak of skb when processing C2H_BT_INFO
+ - iwlwifi: mvm: don't send GEO_TX_POWER_LIMIT to old firmwares
+ - Revert "mwifiex: restructure rx_reorder_tbl_lock usage"
+ - iwlwifi: add new cards for 9560, 9462, 9461 and killer series
+ - mm, memory_hotplug: initialize struct pages for the full memory section
+ - mm: thp: fix flags for pmd migration when split
+ - mm, page_alloc: fix has_unmovable_pages for HugePages
+ - mm: don't miss the last page because of round-off error
+ - Input: elantech - disable elan-i2c for P52 and P72
+ - proc/sysctl: don't return ENOMEM on lookup when a table is unregistering
+ - drm/ioctl: Fix Spectre v1 vulnerabilities
+
+ [ Uwe Kleine-König ]
+ * [armhf] enable some kconfig items for Allwinner SoCs (SUNXI_CCU=y,
+ SUN8I_DE2_CCU=y, DRM_SUN8I_DW_HDMI=m, SND_SUN8I_CODEC=m,
+ SND_SUN8I_CODEC_ANALOG=m). (Closes: #915899)
+
+ [ Ben Hutchings ]
+ * linux-image-*-unsigned: Remove Provides field (Closes: #916927)
+ * [ia64,m68k] libbpf: Don't build on architectures without performance events
+ * [riscv64] tools uapi: fix RISC-V 64-bit support
+ * [powerpc,powerpcspe,ppc64] linux-config: Eliminate config.*_bootwrapper.gz
+ files
+ * [powerpcspe] Fix -mcpu= options for SPE-only compiler
+ * debian/lib/python/debian_linux/debian.py: Fix deprecated import of
+ MutableSet
+ * Fix pycodestyle "line break after binary operator" warnings
+ * Fix pycodestyle "inalid escape sequence" warnings
+
+ [ Romain Perier ]
+ * [rt] Update to 4.19.10-rt8
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Sun, 30 Dec 2018 10:04:03 +0100
+
+linux (4.19.12-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.10
+ - ipv4: ipv6: netfilter: Adjust the frag mem limit when truesize changes
+ - ipv6: Check available headroom in ip6_xmit() even without options
+ - ipv6: sr: properly initialize flowi6 prior passing to ip6_route_output
+ - [arm64, hppa, powerpc, x86, alpha, armhf, mips*] net: 8139cp: fix a BUG
+ triggered by changing mtu with network traffic
+ - net: phy: don't allow __set_phy_supported to add unsupported modes
+ - net: Prevent invalid access to skb->prev in __qdisc_drop_all
+ - net: use skb_list_del_init() to remove from RX sublists
+ - Revert "net/ibm/emac: wrong bit is used for STA control"
+ - rtnetlink: ndo_dflt_fdb_dump() only work for ARPHRD_ETHER devices
+ - sctp: kfree_rcu asoc
+ - tcp: Do not underestimate rwnd_limited
+ - tcp: fix NULL ref in tail loss probe
+ - tun: forbid iface creation with rtnl ops
+ - virtio-net: keep vnet header zeroed after processing XDP
+ - net: phy: sfp: correct store of detected link modes
+ - sctp: update frag_point when stream_interleave is set
+ - net: restore call to netdev_queue_numa_node_write when resetting XPS
+ - net: fix XPS static_key accounting
+ - [armhf] OMAP2+: prm44xx: Fix section annotation on
+ omap44xx_prm_enable_io_wakeup
+ - [arm64, x86] staging: rtl8723bs: Fix the return value in case of error in
+ 'rtw_wx_read32()'
+ - [armhf] dts: am3517: Fix pinmuxing for CD on MMC1
+ - [armhf] dts: LogicPD Torpedo: Fix mmc3_dat1 interrupt
+ - [armhf] dts: logicpd-somlv: Fix interrupt on mmc3_dat1
+ - [armhf] dts: am3517-som: Fix WL127x Wifi interrupt
+ - tools: bpftool: prevent infinite loop in get_fdinfo()
+ - [arm64] dts: sdm845-mtp: Reserve reserved gpios
+ - sysv: return 'err' instead of 0 in __sysv_write_inode
+ - netfilter: nf_tables: don't skip inactive chains during update
+ - perf tools: Fix crash on synthesizing the unit
+ - netfilter: xt_RATEEST: remove netns exit routine
+ - netfilter: nf_tables: fix use-after-free when deleting compat expressions
+ - [armhf] ASoC: rockchip: add missing slave_config setting for I2S
+ - s390/cpum_cf: Reject request for sampling in event initialization
+ - [arm64, armel, x86, armhf] ASoC: dapm: Recalculate audio map forcely when
+ card instantiated
+ - [armhf] spi: omap2-mcspi: Add missing suspend and resume calls
+ - bpf: allocate local storage buffers using GFP_ATOMIC
+ - aio: fix failure to put the file pointer
+ - netfilter: xt_hashlimit: fix a possible memory leak in htable_create()
+ - hwmon: (w83795) temp4_type has writable permission
+ - perf tools: Restore proper cwd on return from mnt namespace
+ - [armhf] PCI: imx6: Fix link training status detection in link up check
+ - objtool: Fix double-free in .cold detection error path
+ - objtool: Fix segfault in .cold detection with -ffunction-sections
+ - [arm64] phy: qcom-qusb2: Use HSTX_TRIM fused value as is
+ - [arm64] phy: qcom-qusb2: Fix HSTX_TRIM tuning with fused value for SDM845
+ - Btrfs: send, fix infinite loop due to directory rename dependencies
+ - RDMA/mlx5: Fix fence type for IB_WR_LOCAL_INV WR
+ - RDMA/core: Add GIDs while changing MAC addr only for registered ndev
+ - RDMA/rdmavt: Fix rvt_create_ah function signature
+ - tools: bpftool: fix potential NULL pointer dereference in do_load
+ - ipvs: call ip_vs_dst_notifier earlier than ipv6_dev_notf
+ - [x86] thunderbolt: Prevent root port runtime suspend during NVM upgrade
+ - [arm64] drm/meson: add support for 1080p25 mode
+ - netfilter: ipv6: Preserve link scope traffic original oif
+ - IB/mlx5: Fix page fault handling for MW
+ - netfilter: add missing error handling code for register functions
+ - [x86] KVM: VMX: Update shared MSRs to be saved/restored on MSR_EFER.LMA
+ changes
+ - [x86] kvm/vmx: fix old-style function declaration
+ - [arm64] net: thunderx: fix NULL pointer dereference in nic_remove
+ - netfilter: nf_tables: deactivate expressions in rule replecement routine
+ - ALSA: usb-audio: Add vendor and product name for Dell WD19 Dock
+ - cachefiles: Fix an assertion failure when trying to update a failed object
+ - fscache: Fix race in fscache_op_complete() due to split atomic_sub & read
+ - cachefiles: Fix page leak in cachefiles_read_backing_file while vmscan is
+ active
+ - igb: fix uninitialized variables
+ - ixgbe: recognize 1000BaseLX SFP modules as 1Gbps
+ - [arm64] net: hisilicon: remove unexpected free_netdev
+ - drm/amdgpu: Add delay after enable RLC ucode
+ - [arm64, powerpc, x86] drm/ast: fixed reading monitor EDID not stable issue
+ - Revert "xen/balloon: Mark unallocated host memory as UNUSABLE"
+ - afs: Fix validation/callback interaction
+ - fscache: fix race between enablement and dropping of object
+ - cachefiles: Explicitly cast enumerated type in put_object
+ - fscache, cachefiles: remove redundant variable 'cache'
+ - nvme: warn when finding multi-port subsystems without multipathing enabled
+ - ocfs2: fix deadlock caused by ocfs2_defrag_extent()
+ - mm/page_alloc.c: fix calculation of pgdat->nr_zones
+ - hfs: do not free node before using
+ - hfsplus: do not free node before using
+ - initramfs: clean old path before creating a hardlink
+ - ocfs2: fix potential use after free
+ - dax: Check page->mapping isn't NULL
+ - ALSA: hda/realtek - Fixed headphone issue for ALC700
+ - ALSA: hda/realtek: ALC294 mic and headset-mode fixups for ASUS X542UN
+ - ALSA: hda/realtek: Enable audio jacks of ASUS UX533FD with ALC294
+ - ALSA: hda/realtek: Enable audio jacks of ASUS UX433FN/UX333FA with ALC294
+ - ALSA: hda/realtek - Fix the mute LED regresion on Lenovo X1 Carbon
+ - IB/hfi1: Fix an out-of-bounds access in get_hw_stats
+ - bpf: fix off-by-one error in adjust_subprog_starts
+ - tcp: lack of available data can also cause TSO defer
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.11
+ - sched/pelt: Fix warning and clean up IRQ PELT config
+ - scsi: raid_attrs: fix unused variable warning
+ - [i386] staging: olpc_dcon: add a missing dependency
+ - [arm64] dts: qcom-apq8064-arrow-sd-600eval fix graph_endpoint warning
+ - [arm64] drm/msm: fix address space warning
+ - aio: fix spectre gadget in lookup_ioctx
+ - fs/iomap.c: get/put the page in iomap_page_create/release()
+ - userfaultfd: check VM_MAYWRITE was set after verifying the uffd is
+ registered
+ - [arm64] dma-mapping: Fix FORCE_CONTIGUOUS buffer clearing
+ - block/bio: Do not zero user pages
+ - ovl: fix decode of dir file handle with multi lower layers
+ - ovl: fix missing override creds in link of a metacopy upper
+ - [armhf] MMC: OMAP: fix broken MMC on OMAP15XX/OMAP5910/OMAP310
+ - mmc: core: use mrq->sbc when sending CMD23 for RPMB
+ - mmc: sdhci: fix the timeout check window for clock and reset
+ - fuse: continue to send FUSE_RELEASEDIR when FUSE_OPEN returns ENOSYS
+ - [arm] mmp/mmp2: fix cpu_is_mmp2() on mmp2-dt
+ - [arm] dts: bcm2837: Fix polarity of wifi reset GPIOs (Closes: #911443)
+ - dm thin: send event about thin-pool state change _after_ making it
+ - dm cache metadata: verify cache has blocks in
+ blocks_are_clean_separate_dirty()
+ - dm: call blk_queue_split() to impose device limits on bios
+ - tracing: Fix memory leak of instance function hash filters
+ - [powerpc*] msi: Fix NULL pointer access in teardown code
+ - drm/nouveau/kms: Fix memory leak in nv50_mstm_del()
+ - drm/nouveau/kms/nv50-: also flush fb writes when rewinding push buffer
+ - Revert "drm/rockchip: Allow driver to be shutdown on reboot/kexec"
+ - [x86] drm/i915/execlists: Apply a full mb before execution for Braswell
+ - [amd64] drm/amdkfd: add new vega10 pci ids
+ - drm/amdgpu: add some additional vega10 pci ids
+ - drm/amdgpu: update smu firmware images for VI variants (v2)
+ - drm/amdgpu: update SMC firmware image for polaris10 variants
+ - [x86] build: Fix compiler support check for CONFIG_RETPOLINE
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.12
+ - locking/qspinlock: Re-order code
+ - [x86] locking/qspinlock, x86: Provide liveness guarantee
+ - [amd64] IB/hfi1: Remove race conditions in user_sdma send path
+ - mac80211_hwsim: fix module init error paths for netlink
+ - [x86] Input: hyper-v - fix wakeup from suspend-to-idle
+ - scsi: libiscsi: Fix NULL pointer dereference in iscsi_eh_session_reset
+ - [x86] scsi: vmw_pscsi: Rearrange code to avoid multiple calls to
+ free_irq during unload
+ - [x86] earlyprintk/efi: Fix infinite loop on some screen widths
+ - [arm64] drm/msm: Fix task dump in gpu recovery
+ - [arm64] drm/msm/gpu: Fix a couple memory leaks in debugfs
+ - [arm64] drm/msm: fix handling of cmdstream offset
+ - [arm64] drm/msm/dsi: configure VCO rate for 10nm PLL driver
+ - [arm64] drm/msm: Grab a vblank reference when waiting for commit_done
+ - drm/ttm: fix LRU handling in ttm_buffer_object_transfer
+ - drm/amdgpu: wait for IB test on first device open
+ - [arm64,armhf] net: stmmac: Move debugfs init/exit to
+ ->probe()/->remove()
+ - [amd64] net: aquantia: fix rx checksum offload bits
+ - bonding: fix 802.3ad state sent to partner when unbinding slave
+ - liquidio: read sc->iq_no before release sc
+ - nfs: don't dirty kernel pages read by direct-io
+ - SUNRPC: Fix a potential race in xprt_connect()
+ - [sparc64] sbus: char: add of_node_put()
+ - [sparc64] drivers/sbus/char: add of_node_put()
+ - [sparc64] drivers/tty: add missing of_node_put()
+ - [arm64] drm/msm/hdmi: Enable HPD after HDMI IRQ is set up
+ - [amr64] drm/msm: dpu: Don't set legacy plane->crtc pointer
+ - [arm64] drm/msm: dpu: Fix "WARNING: invalid free of devm_ allocated
+ data"
+ - [arm64] drm/msm: Fix error return checking
+ - [arm64] clk: mvebu: Off by one bugs in cp110_of_clk_get()
+ - Input: synaptics - enable SMBus for HP 15-ay000
+ - [armhf] Input: omap-keypad - fix keyboard debounce configuration
+ - libata: whitelist all SAMSUNG MZ7KM* solid-state disks
+ - macvlan: return correct error value
+ - [arm64,armhf] mv88e6060: disable hardware level MAC learning
+ - net/mlx4_en: Fix build break when CONFIG_INET is off
+ - bpf: check pending signals while verifying programs
+ - [arm*] 8814/1: mm: improve/fix ARM v7_dma_inv_range() unaligned address
+ handling
+ - [arm*] 8815/1: V7M: align v7m_dma_inv_range() with v7 counterpart
+ - [arm*] 8816/1: dma-mapping: fix potential uninitialized return
+ - [arm64,armhf] thermal: armada: fix legacy validity test sense
+ - [arm64,armhf] net: mvpp2: fix detection of 10G SFP modules
+ - [arm64,armhf] net: mvpp2: fix phylink handling of invalid PHY modes
+ - drm/amdgpu/vcn: Update vcn.cur_state during suspend
+ - [amd64,arm64] acpi/nfit: Fix user-initiated ARS to be "ARS-long" rather
+ than "ARS-short"
+ - drm/ast: Fix connector leak during driver unload
+ - cifs: In Kconfig CONFIG_CIFS_POSIX needs depends on legacy (insecure
+ cifs)
+ - vhost/vsock: fix reset orphans race with close timeout
+ - [x86] i2c: scmi: Fix probe error on devices with an empty SMB0001 ACPI
+ device node
+ - nvme: validate controller state before rescheduling keep alive
+ - nvmet-rdma: fix response use after free
+ - Btrfs: fix missing delayed iputs on unmount
+
+ [ Uwe Kleine-König ]
+ * [arm] Fix probing of 3rd gpio device on Armada 370.
+
+ [ Ben Hutchings ]
+ * linux-perf: Fix build-time check for unversioned files
+ * linux-perf: Fix installation directories for BPF headers and examples
+ (Closes: #916774)
+
+ [ Noah Meyerhans ]
+ * drivers/net/ethernet/amazon: Backport v2.0.2 from Linux 4.20
+
+ [ Bastian Blank ]
+ * Ignore various ABI changes.
+
+ [ Salvatore Bonaccorso ]
+ * iomap: Revert "fs/iomap.c: get/put the page in
+ iomap_page_create/release()"
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Sat, 22 Dec 2018 09:06:45 +0100
+
+linux (4.19.9-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.6
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.7
+ - [x86] KVM: LAPIC: Fix pv ipis use-before-initialization (CVE-2018-19406)
+ - mm: cleancache: fix corruption on missed inode invalidation
+ (CVE-2018-16862)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.8
+ - blk-mq: fix corruption with direct issue (Closes: #915666)
+ - userfaultfd: use ENOENT instead of EFAULT if the atomic copy user fails
+ (CVE-2018-18397)
+ - userfaultfd: shmem: allocate anonymous memory for MAP_PRIVATE shmem
+ (CVE-2018-18397)
+ - userfaultfd: shmem: add i_size checks (CVE-2018-18397)
+ - userfaultfd: shmem: UFFDIO_COPY: set the page dirty if VM_WRITE is not
+ set (CVE-2018-18397)
+ - blk-mq: punt failed direct issue to dispatch list
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.9
+ - ALSA: usb-audio: Fix UAF decrement if card has no live interfaces in
+ card.c (CVE-2018-19824)
+ - vhost/vsock: fix use-after-free in network stack callers
+ (CVE-2018-14625)
+
+ [ Marcin Juszkiewicz ]
+ * [arm64] Enable ACPI IMPI
+ * [arm64] Enable IPMI watchdog and power off support
+ * [arm64] Enable PCI Express hotplug
+ * [arm64] Enable PMU for several server cpus
+ * [arm64] Enable HiSilicon LPC for serial/ipmi access
+
+ [ Romain Perier ]
+ * [x86] Enable support for error detection and correction on the Intel
+ Pondicherry2 Integrated Memory Controller (Closes: #914946)
+ * [rt] Update to 4.19.8-rt6
+
+ [ Uwe Kleine-König ]
+ * Enable usb support for ATH10K (Closes: #915083)
+
+ [ Luca Boccassi ]
+ * debian/rules.real: Split the rules so that the [un]versioned_tools
+ knobs can be used to avoid building them. Fixes FTBFS with unversioned
+ tools disabled.
+ * perf: do not ship python2-only call-graph-from-sql script.
+ * Override Lintian warning dbg-package-missing-depends in source too.
+
+ [ Ben Hutchings ]
+ * debian/rules.real: Mark most targets as phony
+ * debian/rules: Mark more targets as phony
+ * libcpupower: Hide private function and drop it from .symbols file
+ * integrity: Disable INTEGRITY_TRUSTED_KEYRING (Closes: #865277)
+
+ [ Vagrant Cascadian ]
+ * debian/config/config: Enable Z3FOLD as a module.
+
+ [ Salvatore Bonaccorso ]
+ * Set ABI to 1
+
+ [ Nicolas Schier ]
+ * ovl: permit overlayfs mounts in user namespaces (Closes: #913880)
+
+ [ Hilko Bengen ]
+ * Add patches to build libbpf.so with SONAME, link against libelf
+ * Add versioned libbpf, libbpf-dev package (Closes: #914428)
+
+ [ Hans van Kranenburg ]
+ * [x86] Add patch to repair booting as Xen dom0 (Closes: #914951)
+ * [x86] Add patches to support booting a Xen PVH guest via Grub2
+
+ [ Christoph Anton Mitterer ]
+ * crypto: Enable MORUS and AEGIS AEAD ciphers (Closes: #914136)
+ * [amd64]: Enable AES-NI/SSE2/AVX2 optimised implementations of the MORUS
+ and AEGIS AEAD ciphers
+
+ [ Bastian Blank ]
+ * Enable NFT_CONNLIMIT, NFT_TUNNEL, NFT_SOCKET, NFT_OSF, NFT_TPROXY,
+ IP_VS_MH.
+ * Enable netfilter flow table support.
+ * [x86] Enable DRM_XEN_FRONTEND.
+ * Enable EFI_BOOTLOADER_CONTROL, EFI_CAPSULE_LOADER.
+
+ -- Bastian Blank <waldi@debian.org> Sun, 16 Dec 2018 19:45:54 +0100
+
+linux (4.19.5-1~exp1) experimental; urgency=medium
+
+ * New upstream release: https://kernelnewbies.org/Linux_4.19
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.1
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.2
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.3
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.4
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.5
+
+ [ Ben Hutchings ]
+ * linux-perf: Enable verbose output for build-time feature detection
+ * udeb: Define mtd-core-modules package to contain MTD core if not built-in
+ * udeb: Move MTD core from nic-modules to mtd-core-modules
+ * debian/changelog: Move older entries to changelog.old
+ * debian/rules: Checksum only the source name and version from
+ debian/changelog
+ * Move generation of CONFIG_BUILD_SALT to gencontrol.py
+ * [x86] hyperv-daemons: Make all services conditional on device existence
+ * debian/rules.real: Fix build failure with pkg.linux.nosource profile
+ * debian/source/options: Delete redundant compression setting; satisfy
+ lintian
+ * Documentation/media: uapi: Explicitly say there are no Invariant Sections
+ (Closes: #698668)
+
+ [ Karsten Merker ]
+ * [riscv64] Build a kernel image and udebs for riscv64 (Closes: #908161)
+
+ [ Uwe Kleine-König ]
+ * [armhf,arm64] enable SND_BCM2835 as a module (Closes: #911121)
+ * Enable Orange filesystem (Closes: #911743)
+ * [arm64] Enable hns3 network driver as a module. (Closes: #914422)
+
+ [ Noah Meyerhans ]
+ * [cloud-amd64] Enable Amazon ENA ethernet driver (Closes: #910049)
+
+ [ Romain Perier ]
+ * [rt] Update to 4.19.1-rt3
+ * [rt] Update patch arm-disable-NEON-in-kernel-mode.patch, so it can be
+ applied onto 4.19.2
+ * [rt] Update patch
+ irq-allow-disabling-of-softirq-processing-in-irq-thread-context.patch, so
+ it can be applied onto 4.19.2
+ * [amd64] Enable AMD pinctrl driver (Closes: #908954)
+ * Enable Diffie-Hellman operations on retained keys (Closes: #911998)
+ * Update patch features/all/lockdown/enable-cold-boot-attack-mitigation.patch,
+ so it can be applied onto 4.19.2
+ * [x86] Enable DisplayPort CEC-Tunneling-over-AUX HDMI support
+ (Closes: #913199)
+
+ -- Bastian Blank <waldi@debian.org> Tue, 27 Nov 2018 20:06:42 +0100
+
+linux (4.19~rc7-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Uwe Kleine-König ]
+ * [armhf] enable MVNETA_BM_ENABLE and CAN_FLEXCAN as a module
+ * enable NET_SCH_CAKE as a module (Closes: #908709)
+ * enable HID_NTI as a module (Closes: #910260)
+
+ [ Ben Hutchings ]
+ * linux-kbuild: Include scripts/subarch.include (Closes: #910348)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 07 Oct 2018 23:48:27 +0100
+
+linux (4.19~rc6-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [ppc64el] udeb: Fix relative #include filenames in kernel-image module
+ list (really fixes FTBFS?)
+ * debian/bin, debian/lib/python: Fix most errors reported by pycodestyle
+ * debian/bin, debian/rules.real: Add symlink to Python package directory
+ instead of editing path
+ * debian/bin, debian/lib/python: Clean up imports based on pyflakes report
+ * debian/bin, debian/lib/python: Delete write-only vars reported by pyflakes
+ * debian/lib/python/debian_linux/gencontrol.py: Delete broken methods
+ * debian/lib/python/debian_linux/config.py: Fix undefined exception type
+ * Add Python static checks and unit tests to autopkgtest tests
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 03 Oct 2018 18:57:08 +0100
+
+linux (4.19~rc4-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * debian/control: Add arch-qualification to build-dependencies for linux-perf
+ (Closes: #908519)
+ * debian/control: Build-depend on libunwind-dev instead of libunwind8-dev
+ * [hppa,mips*,powerpc*,sh4] debian/control: Build-depend on libunwind-dev for
+ linux-perf
+ * debian/control: Build-depend on libnuma-dev for linux-perf on all arches
+ * debian/control: Remove "cross" from profiles for build-dep on libssl-dev
+ * [mips64*] debian/control: Build-depend on gcc-multilib for linux-perf
+ * debian/lib/python: Use raw strings for all regexes
+ * debian/control: Fix restrictions for build-deps on asciidoctor and
+ patchutils
+ * Add support for specifying build-dependencies in binary package templates
+ * debian/templates: Move various build-dependencies to binary package
+ templates
+ * linux-perf: Fix generation of Perl and Python interpreter dependencies
+ (Closes: #908547)
+ * lockdep, lib{cpupower,lockdep}-dev: Remove bogus deps on ${shlibs:Depends}
+ * debian/rules.d/tools/power/linux-cpupower: Add "+" to recursive make
+ commands
+ * tools: x86_energy_perf_policy: Fix "uninitialized variable" warnings at -O2
+ * tools: turbostat: Add checks for failure of fgets() and fscanf()
+ * debian/control: Build-depend on texlive-latex-{base,extra}, dvipng for
+ linux-doc
+ * debian/rules{,.real}: Use /usr/share/dpkg/architecture.mk
+ * debian/signing_templates/rules: Use /usr/share/dpkg/architecture.mk
+ * linux-image-*-signed-template: Add ${misc:Depends} to Depends
+ * linux-image-*-signed-template: Include changelog and copyright files
+ * linux-image-*-signed-template: Depend on dpkg-dev
+ * linux-image-*-signed-template: Override lintian warnings about non-
+ executable scripts
+ * [ia64] udeb: Fix priority of sn-modules
+ * Revert "Revert "net: increase fragment memory usage limits"", as 4.19
+ includes a better fix for CVE-2018-5391
+ * debian/patches: Add Forwarded fields to several patches
+ * [ppc64el] udeb: Fix relative #include filenames in module lists (fixes
+ FTBFS)
+ * [ppc64] udeb: Revert accidental change to nic-pcmcia-modules dependencies
+ (fixes FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 18 Sep 2018 15:52:02 +0100
+
+linux (4.19~rc3-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [s390x] linux-image: Install compressed kernel image (fixes FTBFS)
+ * [powerpc*] boot: Fix missing crc32poly.h when building with KERNEL_XZ
+ (fixes FTBFS)
+ * [x86] boot: Fix EFI stub alignment
+ * wireless: Update "wireless: Disable regulatory.db direct loading" for
+ 4.19-rc3
+ * aufs: Update support patchset to aufs4.x-rcN 20180910
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 10 Sep 2018 20:13:55 +0100
+
+linux (4.19~rc2-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * aufs: Disable until it is updated for Linux 4.19
+ * debian/rules.d: Update for move of bin2c back up to scripts
+ * locking/lockdep: Delete unnecesary #include (fixes liblockdep build)
+ * [hppa] debian/control: Simplify build-dependencies for 64-bit toolchain
+ * Compile with gcc-8 on all architectures
+ * udeb: Merge configuration directories and files across architectures
+ * [alpha,hppa] udeb: Remove incorrect dependency overrides
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 03 Sep 2018 21:34:41 +0100
+
+linux (4.18.20-2) unstable; urgency=medium
+
+ * linux-kbuild: Include scripts/subarch.include (Closes: #910348)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 23 Nov 2018 19:15:55 +0000
+
+linux (4.18.20-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.18.11
+ - gso_segment: Reset skb->mac_len after modifying network header
+ - ipv6: fix possible use-after-free in ip6_xmit()
+ - net/appletalk: fix minor pointer leak to userspace in SIOCFINDIPDDPRT
+ - [alpha, hppa, x86] net: hp100: fix always-true check for link up state
+ - pppoe: fix reception of frames with no mac header
+ - qmi_wwan: set DTR for modems in forced USB2 mode
+ - udp4: fix IP_CMSG_CHECKSUM for connected sockets
+ - neighbour: confirm neigh entries when ARP packet is received
+ - udp6: add missing checks on edumux packet processing
+ - net/sched: act_sample: fix NULL dereference in the data path
+ - hv_netvsc: fix schedule in RCU context
+ - [arm64, armhf] net: dsa: mv88e6xxx: Fix ATU Miss Violation
+ - socket: fix struct ifreq size in compat ioctl
+ - bnxt_en: Fix VF mac address regression.
+ - ipv6: use rt6_info members when dst is set in rt6_fill_node
+ - net/ipv6: do not copy dst flags on rt init
+ - [arm64, armhf] net: mvpp2: let phylink manage the carrier state
+ - net: rtnl_configure_link: fix dev flags changes arg to __dev_notify_flags
+ - NFC: Fix possible memory corruption when handling SHDLC I-Frame commands
+ - NFC: Fix the number of pipes
+ - ASoC: uapi: fix sound/skl-tplg-interface.h userspace compilation errors
+ - ALSA: bebob: fix memory leak for M-Audio FW1814 and ProjectMix I/O at
+ error path
+ - ALSA: bebob: use address returned by kmalloc() instead of kernel stack for
+ streaming DMA mapping
+ - [powerpc*, mips*, x86, alpha, sparc*] ALSA: emu10k1: fix possible info
+ leak to userspace on SNDRV_EMU10K1_IOCTL_INFO
+ - ALSA: firewire-digi00x: fix memory leak of private data
+ - ALSA: firewire-tascam: fix memory leak of private data
+ - ALSA: fireworks: fix memory leak of response buffer at error path
+ - ALSA: oxfw: fix memory leak for model-dependent data at error path
+ - ALSA: oxfw: fix memory leak of discovered stream formats at error path
+ - ALSA: oxfw: fix memory leak of private data
+ - mtd: devices: m25p80: Make sure the buffer passed in op is DMA-able
+ - [x86] platform: dell-smbios-wmi: Correct a memory leak
+ - [x86] platform: alienware-wmi: Correct a memory leak
+ - xen/netfront: don't bug in case of too many frags
+ - Revert "PCI: Add ACS quirk for Intel 300 series"
+ - crypto: x86/aegis,morus - Do not require OSXSAVE for SSE2
+ - fork: report pid exhaustion correctly
+ - mm: disable deferred struct page for 32-bit arches
+ - mm: shmem.c: Correctly annotate new inodes for lockdep
+ - bpf/verifier: disallow pointer subtraction
+ - Revert "ubifs: xattr: Don't operate on deleted inodes"
+ - libata: mask swap internal and hardware tag
+ - ocfs2: fix ocfs2 read block panic
+ - drm/i915/bdw: Increase IPS disable timeout to 100ms
+ - drm/nouveau: Reset MST branching unit before enabling
+ - drm/nouveau: Only write DP_MSTM_CTRL when needed
+ - drm/nouveau: Remove duplicate poll_enable() in pmops_runtime_suspend()
+ - drm/nouveau: Fix deadlocks in nouveau_connector_detect()
+ - drm/nouveau/drm/nouveau: Don't forget to cancel hpd_work on suspend/unload
+ - drm/nouveau/drm/nouveau: Fix bogus drm_kms_helper_poll_enable() placement
+ - drm/nouveau/drm/nouveau: Fix deadlock with fb_helper with async RPM
+ requests
+ - drm/nouveau/drm/nouveau: Use pm_runtime_get_noresume() in
+ connector_detect()
+ - drm/nouveau/drm/nouveau: Prevent handling ACPI HPD events too early
+ - drm/vc4: Fix the "no scaling" case on multi-planar YUV formats
+ - drm: udl: Destroy framebuffer only if it was initialized
+ - drm/amdgpu: add new polaris pci id
+ - tty: vt_ioctl: fix potential Spectre v1
+ - ext4: check to make sure the rename(2)'s destination is not freed
+ - ext4: avoid divide by zero fault when deleting corrupted inline
+ directories
+ - ext4: avoid arithemetic overflow that can trigger a BUG
+ - ext4: recalucate superblock checksum after updating free blocks/inodes
+ - ext4: fix online resize's handling of a too-small final block group
+ - ext4: fix online resizing for bigalloc file systems with a 1k block size
+ - ext4: don't mark mmp buffer head dirty
+ - ext4: show test_dummy_encryption mount option in /proc/mounts
+ - ext4, dax: add ext4_bmap to ext4_dax_aops
+ - ext4, dax: set ext4_dax_aops for dax files
+ - sched/fair: Fix vruntime_normalized() for remote non-migration wakeup
+ - [x86] vmw_balloon: include asm/io.h
+ - iw_cxgb4: only allow 1 flush on user qps
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.18.12
+ - tsl2550: fix lux1_input error in low light
+ - vmci: type promotion bug in qp_host_get_user_memory()
+ - [x86] numa_emulation: Fix emulated-to-physical node mapping
+ - staging: rts5208: fix missing error check on call to rtsx_write_register
+ - [armhf] power: supply: axp288_charger: Fix initial
+ constant_charge_current value
+ - [sh4] serial: sh-sci: Stop RX FIFO timer during port shutdown
+ - [arm64] power: vexpress: fix corruption in notifier registration
+ - [x86] iommu/amd: make sure TLB to be flushed before IOVA freed
+ - Bluetooth: Add a new Realtek 8723DE ID 0bda:b009
+ - USB: serial: kobil_sct: fix modem-status error handling
+ - 6lowpan: iphc: reset mac_header after decompress to fix panic
+ - [s390x] mm: correct allocate_pgste proc_handler callback
+ - power: remove possible deadlock when unregistering power_supply
+ - cxgb4: Fix the condition to check if the card is T5
+ - RDMA/bnxt_re: Fix a couple off by one bugs
+ - RDMA/i40w: Hold read semaphore while looking after VMA
+ - RDMA/bnxt_re: Fix a bunch of off by one bugs in qplib_fp.c
+ - IB/core: type promotion bug in rdma_rw_init_one_mr()
+ - IB/mlx4: Test port number before querying type.
+ - vhost_net: Avoid tx vring kicks during busyloop
+ - IB/mlx5: Fix GRE flow specification
+ - include/rdma/opa_addr.h: Fix an endianness issue
+ - x86/tsc: Add missing header to tsc_msr.c
+ - ARM: hwmod: RTC: Don't assume lock/unlock will be called with irq enabled
+ - [x86] entry/64: Add two more instruction suffixes
+ - scsi: target/iscsi: Make iscsit_ta_authentication() respect the output
+ buffer size
+ - scsi: klist: Make it safe to use klists in atomic context
+ - [powerpc*] scsi: ibmvscsi: Improve strings handling
+ - scsi: target: Avoid that EXTENDED COPY commands trigger lock inversion
+ - usb: wusbcore: security: cast sizeof to int for comparison
+ - ath10k: sdio: use same endpoint id for all packets in a bundle
+ - ath10k: sdio: set skb len for all rx packets
+ - [powerpc*] powerpc/powernv/ioda2: Reduce upper limit for DMA window size
+ - [x86] platform/x86: asus-wireless: Fix uninitialized symbol usage
+ - [x86] ACPI / button: increment wakeup count only when notified
+ - alarmtimer: Prevent overflow for relative nanosleep (CVE-2018-13053)
+ - [s390x] s390/dasd: correct numa_node in dasd_alloc_queue
+ - [s390x] s390/scm_blk: correct numa_node in scm_blk_dev_setup
+ - posix-timers: Make forward callback return s64
+ - posix-timers: Sanitize overrun handling (CVE-2018-12896)
+ - [powerpc*] ALSA: snd-aoa: add of_node_put() in error path
+ - ath10k: use locked skb_dequeue for rx completions
+ - [armhf] media: omap3isp: zero-initialize the isp cam_xclk{a,b} initial
+ data
+ - staging: android: ashmem: Fix mmap size validation
+ - staging: mt7621-eth: Fix memory leak in mtk_add_mac() error path
+ - [powerpc*, x86, alpha, m68k, hppa] drivers/tty: add error handling for
+ pcmcia_loop_config
+ - [arm64] dts: renesas: salvator-common: Fix adv7482 decimal unit addresses
+ - [x86] media: tm6000: add error handling for dvb_register_adapter
+ - [powerpc*, mips*, arm64, x86, alpha] ALSA: hda: Add AZX_DCAPS_PM_RUNTIME
+ for AMD Raven Ridge
+ - ath10k: protect ath10k_htt_rx_ring_free with rx_ring.lock
+ - [armhf] drm/sun4i: Enable DW HDMI PHY clock
+ - [armhf] drm/sun4i: Fix releasing node when enumerating enpoints
+ - ath10k: transmit queued frames after processing rx packets
+ - mt76x2: fix mrr idx/count estimation in mt76x2_mac_fill_tx_status()
+ - rndis_wlan: potential buffer overflow in rndis_wlan_auth_indication()
+ - brcmsmac: fix wrap around in conversion from constant to s16
+ - bitfield: fix *_encode_bits()
+ - [arm64]wlcore: Add missing PM call for
+ wlcore_cmd_wait_for_event_or_timeout()
+ - [armhf] drm/omap: gem: Fix mm_list locking
+ - [armhf] mvebu: declare asm symbols as character arrays in pmsu.c
+ - RDMA/uverbs: Don't overwrite NULL pointer with ZERO_SIZE_PTR
+ - HID: hid-ntrig: add error handling for sysfs_create_group
+ - [x86] HID: i2c-hid: Use devm to allocate i2c_hid struct
+ - [arm64] dts: renesas: Fix VSPD registers range
+ - drm/v3d: Take a lock across GPU scheduler job creation and queuing.
+ - scsi: bnx2i: add error handling for ioremap_nocache
+ - [arm64] scsi: hisi_sas: Fix the conflict between dev gone and host reset
+ - [armhf] spi: orion: fix CS GPIO handling again
+ - scsi: megaraid_sas: Update controller info during resume
+ - [x86] ASoC: Intel: bytcr_rt5640: Fix Acer Iconia 8 over-current detect
+ threshold
+ - [x86] EDAC, i7core: Fix memleaks and use-after-free on probe and remove
+ - [x86, arm64, armhf] ASoC: dapm: Fix potential DAI widget pointer deref
+ when linking DAIs
+ - module: exclude SHN_UNDEF symbols from kallsyms api
+ - nfsd: fix corrupted reply to badly ordered compound
+ - [mips*, arm64, x86] EDAC: Fix memleak in module init error path
+ - ath10k: fix incorrect size of dma_free_coherent in
+ ath10k_ce_alloc_src_ring_64
+ - ath10k: snoc: use correct bus-specific pointer in RX retry
+ - fs/lock: skip lock owner pid translation in case we are in init_pid_ns
+ - ath10k: fix memory leak of tpc_stats
+ - Input: xen-kbdfront - fix multi-touch XenStore node's locations
+ - drm/vc4: Add missing formats to vc4_format_mod_supported().
+ - [armhf] ARM: dts: dra7: fix DCAN node addresses
+ - drm/vc4: plane: Expand the lower bits by repeating the higher bits
+ - block: fix deadline elevator drain for zoned block devices
+ - [x86] mm: Expand static page table for fixmap space
+ - [armhf] serial: imx: restore handshaking irq for imx1
+ - [arm64] serial: mvebu-uart: Fix reporting of effective CSIZE to userspace
+ - [x86] intel_th: Fix device removal logic
+ - [x86] intel_th: Fix resource handling for ACPI glue layer
+ - spi: tegra20-slink: explicitly enable/disable clock
+ - [mips*, 'arm64', x86, armhf] regulator: fix crash caused by null driver
+ data
+ - [mips*, 'arm64', x86, armhf] regulator: Fix 'do-nothing' value for
+ regulators without suspend state
+ - USB: fix error handling in usb_driver_claim_interface()
+ - USB: handle NULL config in usb_find_alt_setting()
+ - usb: core: safely deal with the dynamic quirk lists
+ - [armhf] usb: musb: dsps: do not disable CPPI41 irq in driver teardown
+ - USB: usbdevfs: sanitize flags more
+ - USB: usbdevfs: restore warning for nonsensical flags
+ - Revert "usb: cdc-wdm: Fix a sleep-in-atomic-context bug in
+ service_outstanding_interrupt()"
+ - USB: remove LPM management from usb_driver_claim_interface()
+ - uaccess: Fix is_source param for check_copy_size() in
+ copy_to_iter_mcsafe()
+ - filesystem-dax: Fix use of zero page
+ - Input: elantech - enable middle button of touchpad on ThinkPad P72
+ - IB/srp: Avoid that sg_reset -d ${srp_device} triggers an infinite loop
+ - IB/hfi1: Fix SL array bounds check
+ - IB/hfi1: Invalid user input can result in crash
+ - IB/hfi1: Fix context recovery when PBC has an UnsupportedVL
+ - IB/hfi1: Fix destroy_qp hang after a link down
+ - [x86] ACPI / hotplug / PCI: Don't scan for non-hotplug bridges if slot
+ is not bridge
+ - RDMA/uverbs: Atomically flush and mark closed the comp event queue
+ - ARM: OMAP2+: Fix null hwmod for ti-sysc debug
+ - ARM: OMAP2+: Fix module address for modules using mpu_rt_idx
+ - bus: ti-sysc: Fix module register ioremap for larger offsets
+ - qed: Wait for ready indication before rereading the shmem
+ - qed: Wait for MCP halt and resume commands to take place
+ - qed: Prevent a possible deadlock during driver load and unload
+ - qed: Avoid sending mailbox commands when MFW is not responsive
+ - thermal: of-thermal: disable passive polling when thermal zone is disabled
+ - isofs: reject hardware sector size > 2048 bytes
+ - mmc: atmel-mci: fix bad logic of sg_copy_{from,to}_buffer conversion
+ - mmc: android-goldfish: fix bad logic of sg_copy_{from,to}_buffer
+ conversion
+ - bus: ti-sysc: Fix no_console_suspend handling
+ - [armhf] dts: omap4-droid4: fix vibrations on Droid 4
+ - bpf, sockmap: fix sock_hash_alloc and reject zero-sized keys
+ - bpf, sockmap: fix sock hash count in alloc_sock_hash_elem
+ - tls: possible hang when do_tcp_sendpages hits sndbuf is full case
+ - bpf: sockmap: write_space events need to be passed to TCP handler
+ - drm/amdgpu: fix VM clearing for the root PD
+ - drm/amdgpu: fix preamble handling
+ - amdgpu: fix multi-process hang issue
+ - net/ncsi: Fixup .dumpit message flags and ID check in Netlink handler
+ - tcp_bbr: add bbr_check_probe_rtt_done() helper
+ - tcp_bbr: in restart from idle, see if we should exit PROBE_RTT
+ - net: hns: fix length and page_offset overflow when CONFIG_ARM64_64K_PAGES
+ - net: hns: fix skb->truesize underestimation
+ - tools: bpftool: return from do_event_pipe() on bad arguments
+ - e1000: check on netif_running() before calling e1000_up()
+ - e1000: ensure to free old tx/rx rings in set_ringparam()
+ - ixgbe: fix driver behaviour after issuing VFLR
+ - i40e: Fix for Tx timeouts when interface is brought up if DCB is enabled
+ - i40e: fix condition of WARN_ONCE for stat strings
+ - [arm64] crypto: cavium/nitrox - fix for command corruption in queue full
+ case with backlog submissions.
+ - hwmon: (ina2xx) fix sysfs shunt resistor read access
+ - hwmon: (adt7475) Make adt7475_read_word() return errors
+ - Revert "ARM: dts: imx7d: Invert legacy PCI irq mapping"
+ - drm/amdgpu: Enable/disable gfx PG feature in rlc safe mode
+ - drm/amdgpu: Update power state at the end of smu hw_init.
+ - ata: ftide010: Add a quirk for SQ201
+ - nvme-fcloop: Fix dropped LS's to removed target port
+ - [armhf] dts: omap4-droid4: Fix emmc errors seen on some devices
+ - drm/amdgpu: Need to set moved to true when evict bo
+ - [arm64, armhf] smccc-1.1: Make return values unsigned long
+ - [arm64, armhf] smccc-1.1: Handle function result as parameters
+ - i2c: i801: Allow ACPI AML access I/O ports not reserved for SMBus
+ - clk: x86: Set default parent to 48Mhz
+ - [x86] pti: Fix section mismatch warning/error
+ - [powerpc*] KVM: PPC: Book3S HV: Fix guest r11 corruption with POWER9 TM
+ workarounds
+ - [powerpc*] fix csum_ipv6_magic() on little endian platforms
+ - [powerpc*] pkeys: Fix reading of ibm, processor-storage-keys property
+ - [powerpc*] pseries: Fix unitialized timer reset on migration
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.18.13
+ - mac80211: Run TXQ teardown code before de-registering interfaces
+ - mac80211_hwsim: require at least one channel
+ - Btrfs: fix unexpected failure of nocow buffered writes after snapshotting
+ when low on space
+ - [powerpc*] KVM: PPC: Book3S HV: Don't truncate HPTE index in xlate
+ function
+ - cfg80211: remove division by size of sizeof(struct ieee80211_wmm_rule)
+ - btrfs: btrfs_shrink_device should call commit transaction at the end
+ - scsi: csiostor: add a check for NULL pointer after kmalloc()
+ - scsi: csiostor: fix incorrect port capabilities
+ - scsi: libata: Add missing newline at end of file
+ - scsi: aacraid: fix a signedness bug
+ - bpf, sockmap: fix potential use after free in bpf_tcp_close
+ - bpf, sockmap: fix psock refcount leak in bpf_tcp_recvmsg
+ - bpf: sockmap, decrement copied count correctly in redirect error case
+ - mac80211: correct use of IEEE80211_VHT_CAP_RXSTBC_X
+ - mac80211_hwsim: correct use of IEEE80211_VHT_CAP_RXSTBC_X
+ - cfg80211: make wmm_rule part of the reg_rule structure
+ - mac80211_hwsim: Fix possible Spectre-v1 for hwsim_world_regdom_custom
+ - nl80211: Fix nla_put_u8 to u16 for NL80211_WMMR_TXOP
+ - nl80211: Pass center frequency in kHz instead of MHz
+ - bpf: fix several offset tests in bpf_msg_pull_data
+ - mac80211: mesh: fix HWMP sequence numbering to follow standard
+ - mac80211: avoid kernel panic when building AMSDU from non-linear SKB
+ - bpf: fix msg->data/data_end after sg shift repair in bpf_msg_pull_data
+ - bpf: fix shift upon scatterlist ring wrap-around in bpf_msg_pull_data
+ - bpf: fix sg shift repair start offset in bpf_msg_pull_data
+ - [arm64] net: hns: add the code for cleaning pkt in chip
+ - [arm64] net: hns: add netif_carrier_off before change speed and duplex
+ - [arm64, armhf] net: mvpp2: initialize port of_node pointer
+ - cfg80211: nl80211_update_ft_ies() to validate NL80211_ATTR_IE
+ - mac80211: do not convert to A-MSDU if frag/subframe limited
+ - mac80211: always account for A-MSDU header changes
+ - Revert "blk-throttle: fix race between blkcg_bio_issue_check() and
+ cgroup_rmdir()"
+ - md/raid5-cache: disable reshape completely
+ - RAID10 BUG_ON in raise_barrier when force is true and conf->barrier is 0
+ - bpf: Fix bpf_msg_pull_data()
+ - bpf: avoid misuse of psock when TCP_ULP_BPF collides with another ULP
+ - fs/cifs: don't translate SFM_SLASH (U+F026) to backslash
+ - mac80211: fix an off-by-one issue in A-MSDU max_subframe computation
+ - cfg80211: fix a type issue in ieee80211_chandef_to_operating_class()
+ - mac80211: fix WMM TXOP calculation
+ - mac80211: fix a race between restart and CSA flows
+ - mac80211: Fix station bandwidth setting after channel switch
+ - mac80211: don't Tx a deauth frame if the AP forbade Tx
+ - mac80211: shorten the IBSS debug messages
+ - [powerpc*] net/ibm/emac: wrong emac_calc_base call was used by typo
+ - ceph: avoid a use-after-free in ceph_destroy_options()
+ - firmware: arm_scmi: fix divide by zero when sustained_perf_level is zero
+ - afs: Fix cell specification to permit an empty address list
+ - mm: madvise(MADV_DODUMP): allow hugetlbfs pages
+ - bpf: 32-bit RSH verification must truncate input before the ALU op
+ (CVE-2018-18445)
+ - netfilter: xt_cluster: add dependency on conntrack module
+ - [x86] HID: intel-ish-hid: Enable Sunrise Point-H ish driver
+ - HID: add support for Apple Magic Keyboards
+ - HID: hid-saitek: Add device ID for RAT 7 Contagion
+ - scsi: iscsi: target: Set conn->sess to NULL when
+ iscsi_login_set_conn_values fails
+ - scsi: iscsi: target: Fix conn_ops double free
+ - perf annotate: Properly interpret indirect call
+ - perf evsel: Fix potential null pointer dereference in
+ perf_evsel__new_idx()
+ - perf util: Fix bad memory access in trace info.
+ - [powerpc*] perf probe: Ignore SyS symbols irrespective of endianness
+ - [arm64] perf annotate: Fix parsing aarch64 branch instructions after
+ objdump update
+ - netfilter: nf_tables: release chain in flushing set
+ - HID: sensor-hub: Restore fixup for Lenovo ThinkPad Helix 2 sensor hub
+ report
+ - USB: yurex: Check for truncation in yurex_read()
+ - nvmet-rdma: fix possible bogus dereference under heavy load
+ - net/mlx5: Consider PCI domain in search for next dev
+ - [x86] HID: i2c-hid: Don't reset device upon system resume
+ - dm raid: fix reshape race on small devices
+ - drm/nouveau: fix oops in client init failure path
+ - drm/nouveau/mmu: don't attempt to dereference vmm without valid instance
+ pointer
+ - drm/nouveau/TBDdevinit: don't fail when PMU/PRE_OS is missing from VBIOS
+ - drm/nouveau/disp: fix DP disable race
+ - drm/nouveau/disp/gm200-: enforce identity-mapped SOR assignment for
+ LVDS/eDP panels
+ - dm raid: fix stripe adding reshape deadlock
+ - dm raid: fix rebuild of specific devices by updating superblock
+ - dm raid: fix RAID leg rebuild errors
+ - r8169: set TxConfig register after TX / RX is enabled, just like RxConfig
+ - fs/cifs: suppress a string overflow warning
+ - net: ena: fix surprise unplug NULL dereference kernel crash
+ - net: ena: fix driver when PAGE_SIZE == 64kB
+ - net: ena: fix device destruction to gracefully free resources
+ - net: ena: fix potential double ena_destroy_device()
+ - net: ena: fix missing lock during device destruction
+ - net: ena: fix missing calls to READ_ONCE
+ - sched/topology: Set correct NUMA topology type
+ - dm thin metadata: try to avoid ever aborting transactions
+ - netfilter: nfnetlink_queue: Solve the NFQUEUE/conntrack clash for
+ NF_REPEAT
+ - netfilter: xt_hashlimit: use s->file instead of s->private
+ - drm/amdgpu: Fix SDMA hang in prt mode v2
+ - drm/amdgpu: fix error handling in amdgpu_cs_user_fence_chunk
+ - r8169: Clear RTL_FLAG_TASK_*_PENDING when clearing RTL_FLAG_TASK_ENABLED
+ - [s390x] qeth: use vzalloc for QUERY OAT buffer
+ - [s390x] qeth: don't dump past end of unknown HW header
+ - cifs: read overflow in is_valid_oplock_break()
+ - asm-generic: io: Fix ioport_map() for !CONFIG_GENERIC_IOMAP &&
+ CONFIG_INDIRECT_PIO
+ - xen/manage: don't complain about an empty value in control/sysrq node
+ - [mips*, x86, s390x] xen: avoid crash in disable_hotplug_cpu
+ - new primitive: discard_new_inode()
+ - vfs: don't evict uninitialized inode
+ - ovl: set I_CREATING on inode being created
+ - ovl: fix access beyond unterminated strings
+ - ovl: fix memory leak on unlink of indexed file
+ - ovl: fix format of setxattr debug
+ - sysfs: Do not return POSIX ACL xattrs via listxattr
+ - b43: fix DMA error related regression with proprietary firmware
+ - firmware: Fix security issue with request_firmware_into_buf()
+ - firmware: Always initialize the fw_priv list object
+ - smb2: fix missing files in root share directory listing
+ - [x86] iommu/amd: Clear memory encryption mask from physical address
+ - ALSA: hda/realtek - Cannot adjust speaker's volume on Dell XPS 27 7760
+ - [x86] crypto: qat - Fix KASAN stack-out-of-bounds bug in adf_probe()
+ - crypto: chelsio - Fix memory corruption in DMA Mapped buffers.
+ - [arm64, armhf, x86, powerpc*] gpiolib: Free the last requested descriptor
+ - [x86] Drivers: hv: vmbus: Use get/put_cpu() in vmbus_connect()
+ - proc: restrict kernel stack dumps to root (CVE-2018-17972)
+ - ocfs2: fix locking for res->tracking and dlm->tracking_list
+ - [x86] HID: i2c-hid: disable runtime PM operations on hantick touchpad
+ - ixgbe: check return value of napi_complete_done()
+ - dm thin metadata: fix __udivdi3 undefined on 32-bit
+ - Revert "drm/amd/pp: Send khz clock values to DC for smu7/8"
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.18.14
+ - perf/core: Add sanity check to deal with pinned event failure
+ - mm: migration: fix migration of huge PMD shared pages
+ - mm, thp: fix mlocking THP page with migration enabled
+ - mm/vmstat.c: skip NR_TLB_REMOTE_FLUSH* properly
+ - [x86] KVM: fix L1TF's MMIO GFN calculation
+ - [x86] KVM: VMX: check for existence of secondary exec controls before
+ accessing
+ - blk-mq: I/O and timer unplugs are inverted in blktrace
+ - [powerpc*, mips*, arm64, x86, alpha, armhf] mmc: core: Fix debounce time
+ to use microseconds
+ - [powerpc*, mips*, arm64, x86, alpha, armhf] mmc: slot-gpio: Fix debounce
+ time to use miliseconds again
+ - mac80211: allocate TXQs for active monitor interfaces
+ - drm/amdgpu: Fix vce work queue was not cancelled when suspend
+ - [x86] vdso: Fix asm constraints on vDSO syscall fallbacks
+ - [x86] vdso: Only enable vDSO retpolines when enabled and supported
+ - [x86] vdso: Fix vDSO syscall fallback asm constraint regression
+ - [powerpc*, mips*, arm64, x86, s390x, armhf, sparc, hppa] PCI: Reprogram
+ bridge prefetch registers on resume
+ - mac80211: fix setting IEEE80211_KEY_FLAG_RX_MGMT for AP mode keys
+ - dm mpath: fix attached_handler_name leak and dangling hw_handler_name
+ pointer
+ - dm cache metadata: ignore hints array being too small during resize
+ - dm cache: fix resize crash if user doesn't reload cache table
+ - USB: serial: simple: add Motorola Tetra MTP6550 id
+ - USB: serial: option: improve Quectel EP06 detection
+ - USB: serial: option: add two-endpoints device-id flag
+ - usb: cdc_acm: Do not leak URB buffers
+ - tty: Drop tty->count on tty_reopen() failure
+ - [powerpc*] Avoid code patching freed init sections
+ - [powerpc*] lib: fix book3s/32 boot failure due to code patching
+ - f2fs: fix invalid memory access
+ - tipc: call start and done ops directly in __tipc_nl_compat_dumpit()
+ - ubifs: Check for name being NULL while mounting
+ - rds: rds_ib_recv_alloc_cache() should call alloc_percpu_gfp() instead
+ - ath10k: fix scan crash due to incorrect length calculation
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.18.15
+ - bnxt_en: Fix TX timeout during netpoll.
+ - bnxt_en: free hwrm resources, if driver probe fails.
+ - bonding: avoid possible dead-lock
+ - ip6_tunnel: be careful when accessing the inner header
+ - ip_tunnel: be careful when accessing the inner header
+ - ipv4: fix use-after-free in ip_cmsg_recv_dstaddr()
+ - ipv6: take rcu lock in rawv6_send_hdrinc()
+ - [armhf] net: dsa: bcm_sf2: Call setup during switch resume
+ - [arm64] net: hns: fix for unmapping problem when SMMU is on
+ - net: ipv4: update fnhe_pmtu when first hop's MTU changes
+ - net/ipv6: Display all addresses in output of /proc/net/if_inet6
+ - netlabel: check for IPV4MASK in addrinfo_get
+ - [armhf,arm64] net: mvpp2: Extract the correct ethtype from the skb for
+ tx csum offload
+ - [armhf,arm64] net: mvpp2: fix a txq_done race condition
+ - net: sched: Add policy validation for tc attributes
+ - net: sched: cls_u32: fix hnode refcounting
+ - net/usb: cancel pending work when unbinding smsc75xx
+ - qlcnic: fix Tx descriptor corruption on 82xx devices
+ - qmi_wwan: Added support for Gemalto's Cinterion ALASxx WWAN interface
+ - rtnetlink: fix rtnl_fdb_dump() for ndmsg header
+ - rtnl: limit IFLA_NUM_TX_QUEUES and IFLA_NUM_RX_QUEUES to 4096
+ - sctp: update dst pmtu with the correct daddr
+ - team: Forbid enslaving team device to itself
+ - tipc: fix flow control accounting for implicit connect
+ - udp: Unbreak modules that rely on external __skb_recv_udp() availability
+ - tun: remove unused parameters
+ - tun: initialize napi_mutex unconditionally
+ - tun: napi flags belong to tfile
+ - [armhf,arm64] net: stmmac: Fixup the tail addr setting in xmit path
+ - net/packet: fix packet drop as of virtio gso
+ - [armhf] net: dsa: bcm_sf2: Fix unbind ordering
+ - net/mlx5e: Set vlan masks for all offloaded TC rules
+ - net: aquantia: memory corruption on jumbo frames
+ - net/mlx5: E-Switch, Fix out of bound access when setting vport rate
+ - bonding: pass link-local packets to bonding master also.
+ - bonding: fix warning message
+ - [armhf,arm64] net: stmmac: Rework coalesce timer and fix multi-queue
+ races
+ - nfp: avoid soft lockups under control message storm
+ - bnxt_en: don't try to offload VLAN 'modify' action
+ - net-ethtool: ETHTOOL_GUFO did not and should not require CAP_NET_ADMIN
+ - net: phy: phylink: fix SFP interface autodetection
+ - sfp: fix oops with ethtool -m
+ - tcp/dccp: fix lockdep issue when SYN is backlogged
+ - inet: make sure to grab rcu_read_lock before using ireq->ireq_opt
+ - [armhf] net: dsa: b53: Keep CPU port as tagged in all VLANs
+ - rtnetlink: Fail dump if target netnsid is invalid
+ - bnxt_en: Fix VNIC reservations on the PF.
+ - net: ipv4: don't let PMTU updates increase route MTU
+ - net/mlx5: Check for SQ and not RQ state when modifying hairpin SQ
+ - bnxt_en: Fix enables field in HWRM_QUEUE_COS2BW_CFG request
+ - bnxt_en: get the reduced max_irqs by the ones used by RDMA
+ - net/ipv6: Remove extra call to ip6_convert_metrics for multipath case
+ - net/ipv6: stop leaking percpu memory in fib6 info
+ - qed: Fix shmem structure inconsistency between driver and the mfw.
+ - r8169: fix network stalls due to missing bit TXCFG_AUTO_FIFO
+ - r8169: set RX_MULTI_EN bit in RxConfig for 8168F-family chips
+ - vxlan: fill ttl inherit info
+ - ASoC: dapm: Fix NULL pointer deference on CODEC to CODEC DAIs
+ - hwmon: (nct6775) Fix access to fan pulse registers
+ - [x86] ASoC: AMD: Ensure reset bit is cleared before configuring
+ - Bluetooth: SMP: Fix trying to use non-existent local OOB data
+ - Bluetooth: Use correct tfm to generate OOB data
+ - Bluetooth: hci_ldisc: Free rw_semaphore on close
+ - [armhf] mfd: omap-usb-host: Fix dts probe of children
+ - [powerpc*] KVM: Book3S HV: Don't use compound_order to determine host
+ mapping size
+ - scsi: iscsi: target: Don't use stack buffer for scatterlist
+ - scsi: qla2xxx: Fix an endian bug in fcpcmd_is_corrupted()
+ - sound: enable interrupt after dma buffer initialization
+ - sound: don't call skl_init_chip() to reset intel skl soc
+ - bpf: btf: Fix end boundary calculation for type section
+ - bpf: use __GFP_COMP while allocating page
+ - hwmon: (nct6775) Fix virtual temperature sources for NCT6796D
+ - hwmon: (nct6775) Fix RPM output for fan7 on NCT6796D
+ - [armhf,arm64] stmmac: fix valid numbers of unicast filter entries
+ - hwmon: (nct6775) Use different register to get fan RPM for fan7
+ - [x86] PCI: hv: support reporting serial number as slot information
+ - [x86] clk: add "ether_clk" alias for Bay Trail / Cherry Trail
+ - [x86] clk: Stop marking clocks as CLK_IS_CRITICAL
+ - [x86] pinctrl: cannonlake: Fix gpio base for GPP-E
+ - [x86] kvm/lapic: always disable MMIO interface in x2APIC mode
+ - drm/amdgpu: Fix SDMA HQD destroy error on gfx_v7
+ - drm/amdkfd: Change the control stack MTYPE from UC to NC on GFX9
+ - drm/amdkfd: Fix ATS capablity was not reported correctly on some APUs
+ - mm/vmstat.c: fix outdated vmstat_text
+ - afs: Fix afs_server struct leak
+ - afs: Fix clearance of reply
+ - [mips*] Fix CONFIG_CMDLINE handling
+ - [mips*] VDSO: Always map near top of user memory
+ - [sparc64] mach64: detect the dot clock divider correctly on sparc
+ - vsprintf: Fix off-by-one bug in bstr_printf() processing dereferenced
+ pointers
+ - percpu: stop leaking bitmap metadata blocks
+ - perf script python: Fix export-to-postgresql.py occasional failure
+ - perf script python: Fix export-to-sqlite.py sample columns
+ - [s390x] cio: Fix how vfio-ccw checks pinned pages
+ - dm cache: destroy migration_cache if cache target registration failed
+ - dm: fix report zone remapping to account for partition offset
+ - dm linear: eliminate linear_end_io call if CONFIG_DM_ZONED disabled
+ - dm linear: fix linear_end_io conditional definition
+ - cgroup: Fix dom_cgrp propagation when enabling threaded mode
+ - drm/nouveau/drm/nouveau: Grab runtime PM ref in nv50_mstc_detect()
+ - mmc: block: avoid multiblock reads for the last sector in SPI mode
+ - [armhf] pinctrl: mcp23s08: fix irq and irqchip setup order
+ - [arm64] perf: Reject stand-alone CHAIN events for PMUv3
+ - mm/mmap.c: don't clobber partially overlapping VMA with
+ MAP_FIXED_NOREPLACE
+ - mm/thp: fix call to mmu_notifier in set_pmd_migration_entry() v2
+ - filesystem-dax: Fix dax_layout_busy_page() livelock
+ - mm: Preserve _PAGE_DEVMAP across mprotect() calls
+ - [x86] i2c: i2c-scmi: fix for i2c_smbus_write_block_data
+ - [powerpc*] KVM: Book3S HV: Avoid crash from THP collapse during radix
+ page fault
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.18.16
+ - media: af9035: prevent buffer overflow on write
+ - spi: gpio: Fix copy-and-paste error
+ - batman-adv: Avoid probe ELP information leak
+ - batman-adv: Fix segfault when writing to throughput_override
+ - batman-adv: Fix segfault when writing to sysfs elp_interval
+ - batman-adv: Prevent duplicated gateway_node entry
+ - batman-adv: Prevent duplicated nc_node entry
+ - batman-adv: Prevent duplicated softif_vlan entry
+ - batman-adv: Prevent duplicated global TT entry
+ - batman-adv: Prevent duplicated tvlv handler
+ - batman-adv: fix backbone_gw refcount on queue_work() failure
+ - batman-adv: fix hardif_neigh refcount on queue_work() failure
+ - cxgb4: fix abort_req_rss6 struct
+ - [armhf] clocksource/drivers/ti-32k: Add CLOCK_SOURCE_SUSPEND_NONSTOP flag
+ for non-am43 SoCs
+ - [powerpc*] scsi: ibmvscsis: Fix a stringop-overflow warning
+ - [powerpc*] scsi: ibmvscsis: Ensure partition name is properly NUL
+ terminated
+ - [x86] intel_th: pci: Add Ice Lake PCH support
+ - [m68k] Input: atakbd - fix Atari keymap
+ - [m68k] Input: atakbd - fix Atari CapsLock behaviour
+ - [powerpc*] net: emac: fix fixed-link setup for the RTL8363SB switch
+ - qed: Fix populating the invalid stag value in multi function mode.
+ - qed: Do not add VLAN 0 tag to untagged frames in multi-function mode.
+ - [armhf,arm64] PCI: dwc: Fix scheduling while atomic issues
+ - RDMA/uverbs: Fix validity check for modify QP
+ - scsi: lpfc: Synchronize access to remoteport via rport
+ - [arm64] drm: mali-dp: Call drm_crtc_vblank_reset on device init
+ - scsi: ipr: System hung while dlpar adding primary ipr adapter back
+ - scsi: sd: don't crash the host on invalid commands
+ - bpf: sockmap only allow ESTABLISHED sock state
+ - bpf: sockmap, fix transition through disconnect without close
+ - bpf: test_maps, only support ESTABLISHED socks
+ - net/mlx4: Use cpumask_available for eq->affinity_mask
+ - clocksource/drivers/fttmr010: Fix set_next_event handler
+ - RDMA/bnxt_re: Fix system crash during RDMA resource initialization
+ - [armhf,arm64] iommu/rockchip: Free irqs in shutdown handler
+ - [x86] pinctrl/amd: poll InterruptEnable bits in amd_gpio_irq_set_type
+ - [powerpc*] tm: Fix userspace r13 corruption
+ - [powerpc*] tm: Avoid possible userspace r1 corruption on reclaim
+ - [powerpc*] numa: Use associativity if VPHN hcall is successful
+ - [x86] iommu/amd: Return devid as alias for ACPI HID devices
+ - [x86] boot: Fix kexec booting failure in the SEV bit detection code
+ - Revert "vfs: fix freeze protection in mnt_want_write_file() for
+ overlayfs"
+ - mremap: properly flush TLB before releasing the page
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.18.17
+ - xfrm: Validate address prefix lengths in the xfrm selector.
+ - xfrm6: call kfree_skb when skb is toobig
+ - xfrm: reset transport header back to network header after all input
+ transforms ahave been applied
+ - xfrm: reset crypto_done when iterating over multiple input xfrms
+ - mac80211: Always report TX status
+ - cfg80211: reg: Init wiphy_idx in regulatory_hint_core()
+ - mac80211: fix pending queue hang due to TX_DROP
+ - cfg80211: Address some corner cases in scan result channel updating
+ - mac80211: TDLS: fix skb queue/priority assignment
+ - mac80211: fix TX status reporting for ieee80211s
+ - xfrm: Fix NULL pointer dereference when skb_dst_force clears the
+ dst_entry.
+ - [armel,armhf] 8799/1: mm: fix pci_ioremap_io() offset check
+ - xfrm: validate template mode
+ - netfilter: bridge: Don't sabotage nf_hook calls from an l3mdev
+ - netfilter: conntrack: get rid of double sizeof
+ - [arm64] hugetlb: Fix handling of young ptes
+ - nl80211: Fix possible Spectre-v1 for NL80211_TXRATE_HT
+ - mac80211_hwsim: fix locking when iterating radios during ns exit
+ - mac80211_hwsim: fix race in radio destruction from netlink notifier
+ - mac80211_hwsim: do not omit multicast announce of first added radio
+ - Bluetooth: SMP: fix crash in unpairing
+ - qed: Avoid implicit enum conversion in qed_set_tunn_cls_info
+ - qed: Fix mask parameter in qed_vf_prep_tunn_req_tlv
+ - qed: Avoid implicit enum conversion in qed_roce_mode_to_flavor
+ - qed: Avoid constant logical operation warning in qed_vf_pf_acquire
+ - qed: Avoid implicit enum conversion in qed_iwarp_parse_rx_pkt
+ - nl80211: Fix possible Spectre-v1 for CQM RSSI thresholds
+ - scsi: qedi: Initialize the stats mutex lock
+ - rxrpc: Fix checks as to whether we should set up a new call
+ - rxrpc: Fix RTT gathering
+ - rxrpc: Fix transport sockopts to get IPv4 errors on an IPv6 socket
+ - rxrpc: Fix error distribution
+ - netfilter: nft_set_rbtree: add missing rb_erase() in GC routine
+ - netfilter: avoid erronous array bounds warning
+ - asix: Check for supported Wake-on-LAN modes
+ - ax88179_178a: Check for supported Wake-on-LAN modes
+ - lan78xx: Check for supported Wake-on-LAN modes
+ - sr9800: Check for supported Wake-on-LAN modes
+ - r8152: Check for supported Wake-on-LAN Modes
+ - smsc75xx: Check for Wake-on-LAN modes
+ - smsc95xx: Check for Wake-on-LAN modes
+ - cfg80211: fix use-after-free in reg_process_hint()
+ - [x86] KVM: nVMX: Do not expose MPX VMX controls when guest MPX disabled
+ - [x86] KVM: Do not use kvm_x86_ops->mpx_supported() directly
+ - [x86] KVM: nVMX: Fix emulation of VM_ENTRY_LOAD_BNDCFGS
+ - perf/core: Fix perf_pmu_unregister() locking
+ - [x86] perf/intel/uncore: Use boot_cpu_data.phys_proc_id instead of
+ hardcorded physical package ID 0
+ - perf/ring_buffer: Prevent concurent ring buffer access
+ - [x86] perf/intel/uncore: Fix PCI BDF address of M3UPI on SKX
+ - [x86] perf/amd/uncore: Set ThreadMask and SliceMask for L3 Cache perf
+ events
+ - thunderbolt: Do not handle ICM events after domain is stopped
+ - thunderbolt: Initialize after IOMMUs
+ - Revert "serial: 8250_dw: Fix runtime PM handling"
+ - locking/ww_mutex: Fix runtime warning in the WW mutex selftest
+ - drm/amd/display: Signal hw_done() after waiting for flip_done()
+ - be2net: don't flip hw_features when VXLANs are added/deleted
+ - [powerpc*] numa: Skip onlining a offline node in kdump path
+ - net: cxgb3_main: fix a missing-check bug
+ - yam: fix a missing-check bug
+ - ocfs2: fix crash in ocfs2_duplicate_clusters_by_page()
+ - mm/gup_benchmark: fix unsigned comparison to zero in __gup_benchmark_ioctl
+ - mm/migrate.c: split only transparent huge pages when allocation fails
+ - [x86] paravirt: Fix some warning messages
+ - [arm64] clk: mvebu: armada-37xx-periph: Remove unused var num_parents
+ - libertas: call into generic suspend code before turning off power
+ - perf report: Don't try to map ip to invalid map
+ - HID: i2c-hid: Remove RESEND_REPORT_DESCR quirk and its handling
+ - [armhf] dts: imx53-qsb: disable 1.2GHz OPP
+ - perf record: Use unmapped IP for inline callchain cursors
+ - rxrpc: Don't check RXRPC_CALL_TX_LAST after calling
+ rxrpc_rotate_tx_window()
+ - rxrpc: Carry call state out of locked section in rxrpc_rotate_tx_window()
+ - rxrpc: Only take the rwind and mtu values from latest ACK
+ - rxrpc: Fix connection-level abort handling
+ - [x86] net: ena: fix warning in rmmod caused by double iounmap
+ - [x86] net: ena: fix rare bug when failed restart/resume is followed by
+ driver removal
+ - [x86] net: ena: fix NULL dereference due to untimely napi initialization
+ - gpio: Assign gpio_irq_chip::parents to non-stack pointer
+ - IB/mlx5: Unmap DMA addr from HCA before IOMMU
+ - rds: RDS (tcp) hangs on sendto() to unresponding address
+ - afs: Fix cell proc list
+ - fs/fat/fatent.c: add cond_resched() to fat_count_free_clusters()
+ - Revert "netfilter: ipv6: nf_defrag: drop skb dst before queueing"
+ - bridge: do not add port to router list when receives query with source
+ 0.0.0.0
+ - ipv6: mcast: fix a use-after-free in inet6_mc_check
+ - ipv6/ndisc: Preserve IPv6 control buffer if protocol error handlers are
+ called
+ - ipv6: rate-limit probes for neighbourless routes
+ - llc: set SOCK_RCU_FREE in llc_sap_add_socket()
+ - net: fec: don't dump RX FIFO register when not available
+ - net/ipv6: Fix index counter for unicast addresses in in6_dump_addrs
+ - net/mlx5e: fix csum adjustments caused by RXFCS
+ - net: sched: gred: pass the right attribute to gred_change_table_def()
+ - net: socket: fix a missing-check bug
+ - [armhf,arm64] net: stmmac: Fix stmmac_mdio_reset() when building stmmac
+ as modules
+ - net: udp: fix handling of CHECKSUM_COMPLETE packets
+ - r8169: fix NAPI handling under high load
+ - rtnetlink: Disallow FDB configuration for non-Ethernet device
+ - sctp: fix race on sctp_id2asoc
+ - tipc: fix unsafe rcu locking when accessing publication list
+ - udp6: fix encap return code for resubmitting
+ - vhost: Fix Spectre V1 vulnerability
+ - virtio_net: avoid using netif_tx_disable() for serializing tx routine
+ - ethtool: fix a privilege escalation bug
+ - bonding: fix length of actor system
+ - ip6_tunnel: Fix encapsulation layout
+ - openvswitch: Fix push/pop ethernet validation
+ - net: ipmr: fix unresolved entry dumps
+ - net/mlx5: Take only bit 24-26 of wqe.pftype_wq for page fault type
+ - net: sched: Fix for duplicate class dump
+ - net/sched: cls_api: add missing validation of netlink attributes
+ - net/ipv6: Allow onlink routes to have a device mismatch if it is the
+ default route
+ - sctp: fix the data size calculation in sctp_data_size
+ - sctp: not free the new asoc when sctp_wait_for_connect returns err
+ - net/mlx5: Fix memory leak when setting fpga ipsec caps
+ - net: bpfilter: use get_pid_task instead of pid_task
+ - net: drop skb on failure in ip_check_defrag()
+ - net: fix pskb_trim_rcsum_slow() with odd trim offset
+ - net/mlx5: WQ, fixes for fragmented WQ buffers API
+ - [sparc64] Make corrupted user stacks more debuggable.
+ - [sparc64] Set %l4 properly on trap return after handling signals.
+ - [sparc64] Wire up compat getpeername and getsockname.
+ - [sparc64] Fix single-pcr perf event counter management.
+ - [sparc64] Fix syscall fallback bugs in VDSO.
+ - [sparc64] Throttle perf events properly.
+ - net: bridge: remove ipv6 zero address check in mcast queries
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.18.18
+ - vfs: swap names of {do,vfs}_clone_file_range()
+ - bpf: fix partial copy of map_ptr when dst is scalar
+ - [armhf,arm64] clk: sunxi-ng: sun4i: Set VCO and PLL bias current to
+ lowest setting
+ - fscache: Fix incomplete initialisation of inline key space
+ - cachefiles: fix the race between cachefiles_bury_object() and rmdir(2)
+ - fscache: Fix out of bound read in long cookie keys
+ - ptp: fix Spectre v1 vulnerability
+ - drm/edid: VSDB yCBCr420 Deep Color mode bit definitions
+ - drm: fb-helper: Reject all pixel format changing requests
+ - RDMA/ucma: Fix Spectre v1 vulnerability (CVE-2017-5753)
+ - IB/ucm: Fix Spectre v1 vulnerability (CVE-2017-5753)
+ - cdc-acm: do not reset notification buffer index upon urb unlinking
+ - cdc-acm: correct counting of UART states in serial state notification
+ - cdc-acm: fix race between reset and control messaging
+ - usb: usbip: Fix BUG: KASAN: slab-out-of-bounds in vhci_hub_control()
+ - usb: gadget: storage: Fix Spectre v1 vulnerability
+ - usb: roles: intel_xhci: Fix Unbalanced pm_runtime_enable
+ - usb: xhci: pci: Enable Intel USB role mux on Apollo Lake platforms
+ - USB: fix the usbfs flag sanitization for control transfers
+ - tracing: Fix synthetic event to accept unsigned modifier
+ - tracing: Fix synthetic event to allow semicolon at end
+ - [armhf] drm/sun4i: Fix an ulong overflow in the dotclock driver
+ - sched/fair: Fix throttle_list starvation with low CFS quota
+ - [x86] tsc: Force inlining of cyc2ns bits
+ - [x86] hibernate: Fix nosave_regions setup for hibernation
+ - [x86] percpu: Fix this_cpu_read()
+ - [x86] time: Correct the attribute on jiffies' definition
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.18.19
+ - [armhf] mtd: rawnand: marvell: fix the IRQ handler complete() condition
+ - spi: spi-mem: Adjust op len based on message/transfer size limitations
+ - bcache: trace missed reading by cache_missed
+ - bcache: correct dirty data statistics
+ - bcache: fix miss key refill->end in writeback
+ - hwmon: (pmbus) Fix page count auto-detection.
+ - jffs2: free jffs2_sb_info through jffs2_kill_sb()
+ - block: setup bounce bio_sets properly
+ - block: don't deal with discard limit in blkdev_issue_discard()
+ - block: make sure discard bio is aligned with logical block size
+ - block: make sure writesame bio is aligned with logical block size
+ - cpufreq: conservative: Take limits changes into account properly
+ - dma-mapping: fix panic caused by passing empty cma command line argument
+ - pcmcia: Implement CLKRUN protocol disabling for Ricoh bridges
+ - ACPI / OSL: Use 'jiffies' as the time bassis for acpi_os_get_timer()
+ - ACPICA: AML Parser: fix parse loop to correctly skip erroneous extended
+ opcodes
+ - [x86] kprobes: Use preempt_enable() in optimized_callback()
+ - ipmi: Fix timer race with module unload
+ - acpi, nfit: Fix Address Range Scrub completion tracking
+ - [hppa] Fix address in HPMC IVA
+ - [hppa] Fix map_pages() to not overwrite existing pte entries
+ - [hppa] Fix exported address of os_hpmc handler
+ - [x86] ALSA: hda - Add quirk for ASUS G751 laptop
+ - [x86] ALSA: hda - Fix headphone pin config for ASUS G751
+ - [x86] ALSA: hda/realtek - Fix the problem of the front MIC on the Lenovo
+ M715
+ - [x86] ALSA: hda - Add mic quirk for the Lenovo G50-30 (17aa:3905)
+ - ALSA: hda: Add 2 more models to the power_save blacklist
+ - ALSA: ca0106: Disable IZD on SB0570 DAC to fix audio pops
+ - [x86] speculation: Enable cross-hyperthread spectre v2 STIBP mitigation
+ (CVE-2017-5715)
+ - [x86] xen: Fix boot loader version reported for PVH guests
+ - [x86] corruption-check: Fix panic in memory_corruption_check() when boot
+ option without value is provided
+ - [x86] mm/pat: Disable preemption around __flush_tlb_all()
+ - [x86] speculation: Support Enhanced IBRS on future CPUs (CVE-2017-5715)
+ - [armhf] dts: exynos: Disable pull control for MAX8997 interrupts on
+ Origen
+ - drm: fix use of freed memory in drm_mode_setcrtc
+ - bpf: do not blindly change rlimit in reuseport net selftest
+ - nvme: remove ns sibling before clearing path
+ - Revert "perf tools: Fix PMU term format max value calculation"
+ - xsk: do not call synchronize_net() under RCU read lock
+ - xfrm: policy: use hlist rcu variants on insert
+ - [x86] perf vendor events intel: Fix wrong filter_band* values for uncore
+ events
+ - r8169: Enable MSI-X on RTL8106e
+ - nfp: flower: fix pedit set actions for multiple partial masks
+ - nfp: flower: use offsets provided by pedit instead of index for ipv6
+ - sched/fair: Fix the min_vruntime update logic in dequeue_entity()
+ - perf evsel: Store ids for events with their own cpus
+ perf_event__synthesize_event_update_cpus
+ - perf tools: Fix use of alternatives to find JDIR
+ - perf cpu_map: Align cpu map synthesized events properly.
+ - perf report: Don't crash on invalid inline debug information
+ - [x86] fpu: Remove second definition of fpu in __fpu__restore_sig()
+ - net: qla3xxx: Remove overflowing shift statement
+ - r8169: re-enable MSI-X on RTL8168g
+ - drm: Get ref on CRTC commit object when waiting for flip_done
+ - [arm64] net: socionext: Reset tx queue in ndo_stop
+ - netfilter: xt_nat: fix DNAT target for shifted portmap ranges
+ - [m68k] ataflop: fix error handling during setup
+ - [m68k] swim: fix cleanup on setup error
+ - [arm64] cpufeature: ctr: Fix cpu capability check for late CPUs
+ - nfp: devlink port split support for 1x100G CXP NIC
+ - tun: Consistently configure generic netdev params via rtnetlink
+ - [s390x] sthyi: Fix machine name validity indication
+ - hwmon: (pwm-fan) Set fan speed to 0 on suspend
+ - lightnvm: pblk: fix race on sysfs line state
+ - lightnvm: pblk: fix two sleep-in-atomic-context bugs
+ - lightnvm: pblk: fix race condition on metadata I/O
+ - perf tools: Free temporary 'sys' string in read_event_files()
+ - perf tools: Cleanup trace-event-info 'tdata' leak
+ - perf strbuf: Match va_{add,copy} with va_end
+ - [x86] cpupower: Fix coredump on VMWare
+ - bcache: Populate writeback_rate_minimum attribute
+ - mmc: sdhci-pci-o2micro: Add quirk for O2 Micro dev 0x8620 rev 0x01
+ - sdhci: acpi: add free_slot callback
+ - iwlwifi: pcie: avoid empty free RB queue
+ - iwlwifi: mvm: clear HW_RESTART_REQUESTED when stopping the interface
+ - iwlwifi: mvm: check for n_profiles validity in EWRD ACPI
+ - [i386] olpc: Indicate that legacy PC XO-1 platform should not register
+ RTC
+ - ACPI/PPTT: Handle architecturally unknown cache types
+ - ACPI / PM: LPIT: Register sysfs attributes based on FADT
+ - ACPI / processor: Fix the return value of acpi_processor_ids_walk()
+ - cpufreq: dt: Try freeing static OPPs only if we have added them
+ - [x86] intel_rdt: Show missing resctrl mount options
+ - [arm64] signal: Introduce COMPAT_SIGMINSTKSZ for use in
+ compat_sys_sigaltstack
+ - [arm64] net: hns3: Fix for packet buffer setting bug
+ - [x86] boot: Fix EFI stub alignment
+ - [arm64] net: hns3: Add nic state check before calling netif_tx_wake_queue
+ - [arm64] net: hns3: Fix ets validate issue
+ - [armhf,arm64] pinctrl: sunxi: fix 'pctrl->functions' allocation in
+ sunxi_pinctrl_build_state
+ - [arm64] pinctrl: qcom: spmi-mpp: Fix err handling of pmic_mpp_set_mux
+ - brcmfmac: fix for proper support of 160MHz bandwidth
+ - [arm64] net: hns3: Check hdev state when getting link status
+ - [arm64] net: hns3: Set STATE_DOWN bit of hdev state when stopping net
+ - net: phy: phylink: ensure the carrier is off when starting phylink
+ - block, bfq: correctly charge and reset entity service in all cases
+ - [arm64] entry: Allow handling of undefined instructions from EL1
+ - kprobes: Return error if we fail to reuse kprobe instead of BUG_ON()
+ - spi: gpio: No MISO does not imply no RX
+ - ACPI / LPSS: Add alternative ACPI HIDs for Cherry Trail DMA controllers
+ - [arm64] pinctrl: qcom: spmi-mpp: Fix drive strength setting
+ - bpf/verifier: fix verifier instability
+ - failover: Add missing check to validate 'slave_dev' in
+ net_failover_slave_unregister
+ - perf tests: Fix record+probe_libc_inet_pton.sh without ping's debuginfo
+ - [arm64] pinctrl: spmi-mpp: Fix pmic_mpp_config_get() to be compliant
+ - [arm64] pinctrl: ssbi-gpio: Fix pm8xxx_pin_config_get() to be compliant
+ - [arm64] net: hns3: Preserve vlan 0 in hardware table
+ - [arm64] net: hns3: Fix ping exited problem when doing lp selftest
+ - [arm64] net: hns3: Fix for vf vlan delete failed problem
+ - [armhf,arm64] net: dsa: mv88e6xxx: Fix writing to a PHY page.
+ - rsi: fix memory alignment issue in ARM32 platforms
+ - iwlwifi: mvm: fix BAR seq ctrl reporting
+ - ixgbe: disallow IPsec Tx offload when in SR-IOV mode
+ - ixgbevf: VF2VF TCP RSS
+ - ath10k: schedule hardware restart if WMI command times out
+ - libata: Apply NOLPM quirk for SAMSUNG MZ7TD256HAFV-000L9
+ - cgroup, netclassid: add a preemption point to write_classid
+ - [armhf,arm64] net: stmmac: dwmac-sun8i: fix OF child-node lookup
+ - f2fs: fix to account IO correctly for cgroup writeback
+ - MD: Memory leak when flush bio size is zero
+ - md: fix memleak for mempool
+ - scsi: esp_scsi: Track residual for PIO transfers
+ - scsi: ufs: Schedule clk gating work on correct queue
+ - UAPI: ndctl: Fix g++-unsupported initialisation in headers
+ - [x86] KVM: nVMX: Clear reserved bits of #DB exit qualification
+ - scsi: megaraid_sas: fix a missing-check bug
+ - RDMA/core: Do not expose unsupported counters
+ - IB/ipoib: Clear IPCB before icmp_send
+ - usb: host: ohci-at91: fix request of irq for optional gpio
+ - usb: typec: tcpm: Report back negotiated PPS voltage and current
+ - tpm: suppress transmit cmd error logs when TPM 1.2 is disabled/
+ deactivated
+ - f2fs: clear PageError on the read path
+ - [x86] Drivers: hv: vmbus: Use cpumask_var_t for on-stack cpu mask
+ - [x86] VMCI: Resource wildcard match fixed
+ - PCI / ACPI: Enable wake automatically for power managed bridges
+ - xprtrdma: Reset credit grant properly after a disconnect
+ - irqchip/pdc: Setup all edge interrupts as rising edge at GIC
+ - [armhf,arm64] usb: dwc2: fix a race with external vbus supply
+ - ext4: fix argument checking in EXT4_IOC_MOVE_EXT
+ - MD: fix invalid stored role for a disk
+ - nvmem: check the return value of nvmem_add_cells()
+ - xhci: Avoid USB autosuspend when resuming USB2 ports.
+ - f2fs: fix to recover inode's crtime during POR
+ - f2fs: fix to recover inode's i_flags during POR
+ - PCI/MSI: Warn and return error if driver enables MSI/MSI-X twice
+ - [armhf.arm64] usb: chipidea: Prevent unbalanced IRQ disable
+ - [x86] driver/dma/ioat: Call del_timer_sync() without holding prep_lock
+ - IB/mlx5: Allow transition of DCI QP to reset
+ - uio: ensure class is registered before devices
+ - scsi: lpfc: Correct soft lockup when running mds diagnostics
+ - scsi: lpfc: Correct race with abort on completion path
+ - f2fs: avoid sleeping under spin_lock
+ - f2fs: report error if quota off error during umount
+ - signal: Always deliver the kernel's SIGKILL and SIGSTOP to a pid
+ namespace init
+ - IB/rxe: fix for duplicate request processing and ack psns
+ - ALSA: hda: Check the non-cached stream buffers more explicitly
+ - [x86] cpupower: Fix AMD Family 0x17 msr_pstate size
+ - Revert "f2fs: fix to clear PG_checked flag in set_page_dirty()"
+ - f2fs: fix to recover cold bit of inode block during POR
+ - f2fs: fix to account IO correctly
+ - OPP: Free OPP table properly on performance state irregularities
+ - [armhf] dts: exynos: Add missing cooling device properties for CPUs
+ - [armhf] dts: exynos: Convert exynos5250.dtsi to opp-v2 bindings
+ - [armhf] dts: exynos: Mark 1 GHz CPU OPP as suspend OPP on Exynos5250
+ - xen-swiotlb: use actually allocated size on check physical continuous
+ - tpm: Restore functionality to xen vtpm driver.
+ - xen/blkfront: avoid NULL blkfront_info dereference on device removal
+ - xen/balloon: Support xend-based toolstack
+ - xen: fix race in xen_qlock_wait()
+ - xen: make xen_qlock_wait() nestable
+ - xen/pvh: increase early stack size
+ - xen/pvh: don't try to unplug emulated devices
+ - libertas: don't set URB_ZERO_PACKET on IN USB transfer
+ - usbip:vudc: BUG kmalloc-2048 (Not tainted): Poison overwritten
+ - usb: typec: tcpm: Fix APDO PPS order checking to be based on voltage
+ - mt76: mt76x2: fix multi-interface beacon configuration
+ - iwlwifi: mvm: check return value of rs_rate_from_ucode_rate()
+ - net/ipv4: defensive cipso option parsing
+ - libnvdimm: Hold reference on parent while scheduling async init
+ - libnvdimm, region: Fail badblocks listing for inactive regions
+ - libnvdimm, pmem: Fix badblocks population for 'raw' namespaces
+ - [x86] ASoC: intel: skylake: Add missing break in skl_tplg_get_token()
+ - IB/mlx5: Fix MR cache initialization
+ - IB/rxe: Revise the ib_wr_opcode enum
+ - jbd2: fix use after free in jbd2_log_do_checkpoint()
+ - gfs2_meta: ->mount() can get NULL dev_name
+ - ext4: fix EXT4_IOC_SWAP_BOOT
+ - ext4: initialize retries variable in ext4_da_write_inline_data_begin()
+ - ext4: fix setattr project check in fssetxattr ioctl
+ - ext4: propagate error from dquot_initialize() in EXT4_IOC_FSSETXATTR
+ - ext4: fix use-after-free race in ext4_remount()'s error path
+ - selinux: fix mounting of cgroup2 under older policies
+ - HID: wacom: Work around HID descriptor bug in DTK-2451 and DTH-2452
+ - HID: hiddev: fix potential Spectre v1
+ - [x86] EDAC, amd64: Add Family 17h, models 10h-2fh support
+ - [x86] EDAC, {i7core,sb,skx}_edac: Fix uncorrected error counting
+ - [x86] EDAC, skx_edac: Fix logical channel intermediate decoding
+ - PCI/ASPM: Fix link_state teardown on device removal
+ - [x86] PCI: vmd: White list for fast interrupt handlers
+ - [powerpc*] signal/GenWQE: Fix sending of SIGKILL
+ - signal: Guard against negative signal numbers in copy_siginfo_from_user32
+ - crypto: lrw - Fix out-of bounds access on counter overflow
+ - crypto: tcrypt - fix ghash-generic speed test
+ - [x86] crypto: aesni - don't use GFP_ATOMIC allocation if the request
+ doesn't cross a page in gcm
+ - mm: /proc/pid/smaps_rollup: fix NULL pointer deref in smaps_pte_range()
+ - ima: fix showing large 'violations' or 'runtime_measurements_count'
+ - hugetlbfs: dirty pages as they are added to pagecache
+ - mm/rmap: map_pte() was not handling private ZONE_DEVICE page properly
+ - mm/hmm: fix race between hmm_mirror_unregister() and mmu_notifier callback
+ - [armhf,arm64] KVM: Ensure only THP is candidate for adjustment
+ - [arm64] KVM: Fix caching of host MDCR_EL2 value
+ - [armhf] w1: omap-hdq: fix missing bus unregister at removal
+ - smb3: allow stats which track session and share reconnects to be reset
+ - smb3: do not attempt cifs operation in smb3 query info error path
+ - smb3: on kerberos mount if server doesn't specify auth type use krb5
+ - printk: Fix panic caused by passing log_buf_len to command line
+ - genirq: Fix race on spurious interrupt detection
+ - NFSv4.1: Fix the r/wsize checking
+ - nfs: Fix a missed page unlock after pg_doio()
+ - nfsd: correctly decrement odstate refcount in error path
+ - nfsd: Fix an Oops in free_session()
+ - lockd: fix access beyond unterminated strings in prints
+ - dm ioctl: harden copy_params()'s copy_from_user() from malicious users
+ - dm zoned: fix metadata block ref counting
+ - dm zoned: fix various dmz_get_mblock() issues
+ - media: ov7670: make "xclk" clock optional
+ - fsnotify: Fix busy inodes during unmount
+ - [powerpc*] msi: Fix compile error on mpc83xx
+ - [powerpc*] tm: Fix HFSCR bit for no suspend case
+ - [powerpc*] 4s/hash: Do not use PPC_INVALIDATE_ERAT on CPUs before POWER9
+ - [mips*] memset: Fix CPU_DADDI_WORKAROUNDS `small_fixup' regression
+ - [mips*/octeon] fix out of bounds array access on CN68XX
+ - rtc: ds1307: fix ds1339 wakealarm support
+ - rtc: cmos: Fix non-ACPI undefined reference to `hpet_rtc_interrupt'
+ - rtc: cmos: Remove the `use_acpi_alarm' module parameter for !ACPI
+ - [armhf] power: supply: twl4030-charger: fix OF sibling-node lookup
+ - [armhf,arm64] iommu/arm-smmu: Ensure that page-table updates are visible
+ before TLBI
+ - media: v4l2-tpg: fix kernel oops when enabling HFLIP and OSD
+ - Revert "media: dvbsky: use just one mutex for serializing device R/W ops"
+ - media: cec: make cec_get_edid_spa_location() an inline function
+ - media: cec: integrate cec_validate_phys_addr() in cec-api.c
+ - xen: fix xen_qlock_wait()
+ - xen: remove size limit of privcmd-buf mapping interface
+ - xen-blkfront: fix kernel panic with negotiate_mq error path
+ - media: cec: add new tx/rx status bits to detect aborts/timeouts
+ - media: cec: fix the Signal Free Time calculation
+ - media: cec: forgot to cancel delayed work
+ - media: em28xx: use a default format if TRY_FMT fails
+ - media: tvp5150: avoid going past array on v4l2_querymenu()
+ - media: em28xx: fix input name for Terratec AV 350
+ - media: em28xx: make v4l2-compliance happier by starting sequence on zero
+ - media: em28xx: fix handler for vidioc_s_input()
+ - media: media colorspaces*.rst: rename AdobeRGB to opRGB
+ - media: replace ADOBERGB by OPRGB
+ - media: hdmi.h: rename ADOBE_RGB to OPRGB and ADOBE_YCC to OPYCC
+ - [arm64] lse: remove -fcall-used-x0 flag
+ - [arm64] rpmsg: smd: fix memory leak on channel create
+ - Cramfs: fix abad comparison when wrap-arounds occur
+ - [armhf,arm64] soc/tegra: pmc: Fix child-node lookup
+ - tracing: Return -ENOENT if there is no target synthetic event
+ - btrfs: qgroup: Avoid calling qgroup functions if qgroup is not enabled
+ - btrfs: Handle owner mismatch gracefully when walking up tree
+ - btrfs: locking: Add extra check in btrfs_init_new_buffer() to avoid
+ deadlock
+ - btrfs: fix error handling in free_log_tree
+ - btrfs: fix error handling in btrfs_dev_replace_start
+ - btrfs: Enhance btrfs_trim_fs function to handle error better
+ - btrfs: Ensure btrfs_trim_fs can trim the whole filesystem
+ - btrfs: iterate all devices during trim, instead of fs_devices::alloc_list
+ - btrfs: don't attempt to trim devices that don't support it
+ - btrfs: keep trim from interfering with transaction commits
+ - btrfs: wait on caching when putting the bg cache
+ - Btrfs: don't clean dirty pages during buffered writes
+ - btrfs: release metadata before running delayed refs
+ - btrfs: protect space cache inode alloc with GFP_NOFS
+ - btrfs: reset max_extent_size on clear in a bitmap
+ - btrfs: make sure we create all new block groups
+ - Btrfs: fix warning when replaying log after fsync of a tmpfile
+ - Btrfs: fix wrong dentries after fsync of file that got its parent
+ replaced
+ - btrfs: qgroup: Dirty all qgroups before rescan
+ - Btrfs: fix null pointer dereference on compressed write path error
+ - Btrfs: fix assertion on fsync of regular file when using no-holes feature
+ - Btrfs: fix deadlock when writing out free space caches
+ - btrfs: reset max_extent_size properly
+ - btrfs: set max_extent_size properly
+ - btrfs: don't use ctl->free_space for max_extent_size
+ - btrfs: only free reserved extent if we didn't insert it
+ - btrfs: fix insert_reserved error handling
+ - btrfs: don't run delayed_iputs in commit
+ - btrfs: move the dio_sem higher up the callchain
+ - Btrfs: fix use-after-free during inode eviction
+ - Btrfs: fix use-after-free when dumping free space
+ - net: sched: Remove TCA_OPTIONS from policy
+ - userns: also map extents in the reverse map to kernel IDs
+ - bpf: wait for running BPF programs when updating map-in-map
+ - MD: fix invalid stored role for a disk - try2
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.18.20
+ - [powerpc*] traps: restore recoverability of machine_check interrupts
+ - [powerpc*] 64/module: REL32 relocation range check
+ - [powerpc*] mm: Fix page table dump to work on Radix
+ - [powerpc*] mm: fix always true/false warning in slice.c
+ - drm/amd/display: fix bug of accessing invalid memory
+ - Input: wm97xx-ts - fix exit path
+ - [powerpc*] eeh: Fix possible null deref in eeh_dump_dev_log()
+ - tty: check name length in tty_find_polling_driver()
+ - tracing/kprobes: Check the probe on unloaded module correctly
+ - drm/amdgpu/powerplay: fix missing break in switch statements
+ - [powerpc*] nohash: fix undefined behaviour when testing page size support
+ - [powerpc*] mm: Don't report hugepage tables as memory leaks when using
+ kmemleak
+ - [armhf] drm/omap: fix memory barrier bug in DMM driver
+ - drm/amd/display: fix gamma not being applied
+ - [arm64] drm/hisilicon: hibmc: Do not carry error code in HiBMC
+ framebuffer pointer
+ - media: pci: cx23885: handle adding to list failure
+ - [mips*] kexec: Mark CPU offline before disabling local IRQ
+ - [powerpc*] memtrace: Remove memory in chunks
+ - [mips*] PCI: Call pcie_bus_configure_settings() to set MPS/MRRS
+ - media: tvp5150: fix width alignment during set_selection()
+ - drm/amdgpu: Fix SDMA TO after GPU reset v3
+ - 9p locks: fix glock.client_id leak in do_lock
+ - udf: Prevent write-unsupported filesystem to be remounted read-write
+ - 9p: clear dangling pointers in p9stat_free
+ - cdrom: fix improper type cast, which can leat to information leak.
+ - ovl: fix error handling in ovl_verify_set_fh()
+ - ovl: check whiteout in ovl_create_over_whiteout()
+ - [sh4] serial: sh-sci: Fix could not remove dev_attr_rx_fifo_timeout
+ - scsi: qla2xxx: Fix incorrect port speed being set for FC adapters
+ - scsi: qla2xxx: Fix process response queue for ISP26XX and above
+ - scsi: qla2xxx: Remove stale debug trace message from tcm_qla2xxx
+ - scsi: qla2xxx: shutdown chip if reset fail
+ - scsi: qla2xxx: Fix duplicate switch database entries
+ - scsi: qla2xxx: Fix driver hang when FC-NVMe LUNs are configured
+ - fuse: Fix use-after-free in fuse_dev_do_read()
+ - fuse: Fix use-after-free in fuse_dev_do_write()
+ - fuse: fix blocked_waitq wakeup
+ - fuse: set FR_SENT while locked
+ - ovl: fix recursive oi->lock in ovl_link()
+ - scsi: qla2xxx: Fix re-using LoopID when handle is in use
+ - scsi: qla2xxx: Fix NVMe session hang on unload
+ - [arm64] clk: meson-gxbb: set fclk_div3 as CLK_IS_CRITICAL
+ - [arm64] clk: meson: axg: mark fdiv2 and fdiv3 as critical
+ - zram: close udev startup race condition as default groups
+ - [mips*el/loonsgon-3] Fix CPU UART irq delivery problem
+ - [mips*el/loongson-3] Fix BRIDGE irq delivery problem
+ - [armhf] clk: s2mps11: Fix matching when built as module and DT node
+ contains compatible
+ - [armhf,arm64] clk: sunxi-ng: h6: fix bus clocks' divider position
+ - [arm64] clk: rockchip: fix wrong mmc sample phase shift for rk3328
+ - [armhf,arm64] clk: rockchip: Fix static checker warning in
+ rockchip_ddrclk_get_parent call
+ - libceph: bump CEPH_MSG_MAX_DATA_LEN
+ - Revert "ceph: fix dentry leak in splice_dentry()"
+ - thermal: core: Fix use-after-free in thermal_cooling_device_destroy_sysfs
+ - mach64: fix display corruption on big endian machines
+ - mach64: fix image corruption due to reading accelerator registers
+ - acpi/nfit, x86/mce: Handle only uncorrectable machine checks
+ - acpi/nfit, x86/mce: Validate a MCE's address before using it
+ - acpi, nfit: Fix ARS overflow continuation
+ - [arm64] reset: hisilicon: fix potential NULL pointer dereference
+ - vhost/scsi: truncate T10 PI iov_iter to prot_bytes
+ - scsi: qla2xxx: Initialize port speed to avoid setting lower speed
+ - SCSI: fix queue cleanup race before queue initialization is done
+ - [powerpc*] Revert "powerpc/8xx: Use L1 entry APG to handle _PAGE_ACCESSED
+ for CONFIG_SWAP"
+ - ocfs2: fix a misuse a of brelse after failing ocfs2_check_dir_entry
+ - ocfs2: free up write context when direct IO failed
+ - mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings
+ - memory_hotplug: cond_resched in __remove_pages
+ - netfilter: conntrack: fix calculation of next bucket number in early_drop
+ - [armhf] 8809/1: proc-v7: fix Thumb annotation of cpu_v7_hvc_switch_mm
+ - bonding/802.3ad: fix link_failure_count tracking
+ - mtd: nand: Fix nanddev_neraseblocks()
+ - mtd: docg3: don't set conflicting BCH_CONST_PARAMS option
+ - hwmon: (core) Fix double-free in __hwmon_device_register()
+ - perf stat: Handle different PMU names with common prefix
+ - of, numa: Validate some distance map rules
+ - [x86] hyper-v: Enable PIT shutdown quirk
+ - termios, tty/tty_baudrate.c: fix buffer overrun
+ - watchdog/core: Add missing prototypes for weak functions
+ - btrfs: fix pinned underflow after transaction aborted
+ - Btrfs: fix cur_offset in the error case for nocow
+ - Btrfs: fix infinite loop on inode eviction after deduplication of eof
+ block
+ - Btrfs: fix data corruption due to cloning of eof block
+ - clockevents/drivers/i8253: Add support for PIT shutdown quirk
+ - ext4: add missing brelse() update_backups()'s error path
+ - ext4: add missing brelse() in set_flexbg_block_bitmap()'s error path
+ - ext4: add missing brelse() add_new_gdb_meta_bg()'s error path
+ - ext4: avoid potential extra brelse in setup_new_flex_group_blocks()
+ - ext4: missing !bh check in ext4_xattr_inode_write()
+ - ext4: fix possible inode leak in the retry loop of ext4_resize_fs()
+ - ext4: avoid buffer leak on shutdown in ext4_mark_iloc_dirty()
+ - ext4: avoid buffer leak in ext4_orphan_add() after prior errors
+ - ext4: fix missing cleanup if ext4_alloc_flex_bg_array() fails while
+ resizing
+ - ext4: avoid possible double brelse() in add_new_gdb() on error path
+ - ext4: fix possible leak of sbi->s_group_desc_leak in error path
+ - ext4: fix possible leak of s_journal_flag_rwsem in error path
+ - ext4: fix buffer leak in ext4_xattr_get_block() on error path
+ - ext4: release bs.bh before re-using in ext4_xattr_block_find()
+ - ext4: fix buffer leak in ext4_xattr_move_to_block() on error path
+ - ext4: fix buffer leak in ext4_expand_extra_isize_ea() on error path
+ - ext4: fix buffer leak in __ext4_read_dirblock() on error path
+ - mount: Retest MNT_LOCKED in do_umount
+ - mount: Don't allow copying MNT_UNBINDABLE|MNT_LOCKED mounts
+ - mount: Prevent MNT_DETACH from disconnecting locked mounts
+ - mnt: fix __detach_mounts infinite loop
+ - sunrpc: correct the computation for page_ptr when truncating
+ - NFSv4: Don't exit the state manager without clearing
+ NFS4CLNT_MANAGER_RUNNING
+ - nfsd: COPY and CLONE operations require the saved filehandle to be set
+ - rtc: hctosys: Add missing range error reporting
+ - fuse: fix use-after-free in fuse_direct_IO()
+ - fuse: fix leaked notify reply
+ - selinux: check length properly in SCTP bind hook
+ - configfs: replace strncpy with memcpy
+ - gfs2: Put bitmap buffers in put_super
+ - gfs2: Fix metadata read-ahead during truncate (2)
+ - libata: blacklist SAMSUNG MZ7TD256HAFV-000L9 SSD
+ - crypto: user - fix leaking uninitialized memory to userspace
+ - hugetlbfs: fix kernel BUG at fs/hugetlbfs/inode.c:444!
+ - mm/swapfile.c: use kvzalloc for swap_info_struct allocation
+ - [armhf,arm64] efi/libstub: Pack FDT after populating it
+ - [armhf,arm64] drm/rockchip: Allow driver to be shutdown on reboot/kexec
+ - [arm64] drm/msm: fix OF child-node lookup
+ - drm/amdgpu: Fix typo in amdgpu_vmid_mgr_init
+ - drm/amdgpu: add missing CHIP_HAINAN in amdgpu_ucode_get_load_type
+ - drm/nouveau: Check backlight IDs are >= 0, not > 0
+ - drm/nouveau: Fix nv50_mstc->best_encoder()
+ - drm/amd/powerplay: Enable/Disable NBPSTATE on On/OFF of UVD
+ - [armhf] drm/etnaviv: fix bogus fence complete check in timeout handler
+ - drm/dp_mst: Check if primary mstb is null
+ - drm: panel-orientation-quirks: Add quirk for Acer One 10 (S1003)
+ - [x86] drm/i915/dp: Link train Fallback on eDP only if fallback link BW
+ can fit panel's native mode
+ - [x86] drm/i915: Restore vblank interrupts earlier
+ - [x86] drm/i915: Don't unset intel_connector->mst_port
+ - [x86] drm/i915: Skip vcpi allocation for MSTB ports that are gone
+ - [x86] drm/i915: Large page offsets for pread/pwrite
+ - [x86] drm/i915/dp: Fix link retraining comment in intel_dp_long_pulse()
+ - [x86] drm/i915/dp: Restrict link retrain workaround to external monitors
+ - [x86] drm/i915/hdmi: Add HDMI 2.0 audio clock recovery N values
+ - [x86] drm/i915: Fix error handling for the NV12 fb dimensions check
+ - [x86] drm/i915: Fix ilk+ watermarks when disabling pipes
+ - [x86] drm/i915: Compare user's 64b GTT offset even on 32b
+ - [x86] drm/i915: Don't oops during modeset shutdown after lpe audio deinit
+ - [x86] drm/i915: Mark pin flags as u64
+ - [x86] drm/i915/ringbuffer: Delay after EMIT_INVALIDATE for gen4/gen5
+ - [x86] drm/i915/execlists: Force write serialisation into context image vs
+ execution
+ - [x86] drm/i915: Fix possible race in intel_dp_add_mst_connector()
+ - [armhf,arm64] CONFIG_XEN_PV breaks xen_create_contiguous_region on ARM
+
+ [ Ben Hutchings ]
+ * linux-perf: Fix BPF feature detection
+ * [rt] Update to 4.18.16-rt9:
+ - Revert "rcu: Use cpus_read_lock() while looking at cpu_online_mask"
+ - EXP rcu: Revert expedited GP parallelization cleverness
+
+ [ Romain Perier ]
+ * [rt] Update to 4.18.12-rt7
+ * Fixed FTBFS caused by wireless-disable-regulatory.db-direct-loading.patch,
+ due to conflicting types for 'reg_query_regdb_wmm'
+
+ [ Vagrant Cascadian ]
+ * [arm64] Update pinebook/teres-i device-tree patches to 4.19.x:
+ - Enables the lid to wakeup from suspend.
+
+ [ Salvatore Bonaccorso ]
+ * [x86] swiotlb: Enable swiotlb for > 4GiG RAM on 32-bit kernels
+ (Closes: #908924)
+ * mremap: properly flush TLB before releasing the page (CVE-2018-18281)
+ * cdrom: fix improper type cast, which can leat to information leak
+ (CVE-2018-18710)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 21 Nov 2018 20:55:46 +0000
+
+linux (4.18.10-2) unstable; urgency=medium
+
+ [ Ben Hutchings ]
+ * [rt][arm64,armhf] Fix build failure after rebasing onto 4.18.10
+ * xen-netback: fix input validation in xenvif_set_hash_mapping()
+ (CVE-2018-15471)
+ * Revert "uapi/linux/keyctl.h: don't use C++ reserved keyword as a struct
+ member name" (Closes: #909813)
+
+ [ Salvatore Bonaccorso ]
+ * [arm64] KVM: Tighten guest core register access from userspace
+ (CVE-2018-18021)
+ * [arm64] KVM: Sanitize PSTATE.M when being set from userspace
+ (CVE-2018-18021)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 07 Oct 2018 21:57:06 +0100
+
+linux (4.18.10-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.18.9
+ - i2c: xiic: Make the start and the byte count write atomic
+ - i2c: i801: fix DNV's SMBCTRL register offset
+ - HID: multitouch: fix Elan panels with 2 input modes declaration
+ - HID: core: fix grouping by application
+ - HID: i2c-hid: Fix flooded incomplete report after S3 on Rayd touchscreen
+ - HID: input: fix leaking custom input node name
+ - mm/hugetlb: filter out hugetlb pages if HUGEPAGE migration is not
+ supported.
+ - mac80211: don't update the PM state of a peer upon a multicast frame
+ - scsi: lpfc: Correct MDS diag and nvmet configuration
+ - nbd: don't allow invalid blocksize settings
+ - block: don't warn when doing fsync on read-only devices
+ - block: bfq: swap puts in bfqg_and_blkg_put
+ - android: binder: fix the race mmap and alloc_new_buf_locked
+ - [mips*] VDSO: Match data page cache colouring when D$ aliases
+ - smb3: Backup intent flag missing for directory opens with backupuid mounts
+ - smb3: check for and properly advertise directory lease support
+ - cifs: connect to servername instead of IP for IPC$ share
+ - btrfs: fix qgroup_free wrong num_bytes in btrfs_subvolume_reserve_metadata
+ - btrfs: fix data corruption when deduplicating between different files
+ - [arm64] KVM: Only force FPEXC32_EL2.EN if trapping FPSIMD
+ - [armhf, arm64] KVM: Clean dcache to PoC when changing PTE due to CoW
+ - [[powerpc*] KVM: Book3S HV: Use correct pagesize in kvm_unmap_radix()
+ - [s390x] KVM: vsie: copy wrapping keys to right place
+ - [x86] KVM: SVM: Set EMULTYPE_NO_REEXECUTE for RSM emulation
+ - [x86] KVM: VMX: Do not allow reexecute_instruction() when skipping MMIO
+ instr
+ - [x86] KVM: Invert emulation re-execute behavior to make it opt-in
+ - [x86] KVM: Merge EMULTYPE_RETRY and EMULTYPE_ALLOW_REEXECUTE
+ - [x86] KVM: Default to not allowing emulation retry in kvm_mmu_page_fault
+ - [x86] KVM: Do not re-{try,execute} after failed emulation in L2
+ - ACPI / LPSS: Force LPSS quirks on boot
+ - memory: ti-aemif: fix a potential NULL-pointer dereference
+ - ALSA: hda - Fix cancel_work_sync() stall from jackpoll work
+ - cpu/hotplug: Adjust misplaced smb() in cpuhp_thread_fun()
+ - cpu/hotplug: Prevent state corruption on error rollback
+ - [x86] microcode: Make sure boot_cpu_data.microcode is up-to-date
+ - [x86] microcode: Update the new microcode revision unconditionally
+ - [x86] process: Don't mix user/kernel regs in 64bit __show_regs()
+ - [x86] apic/vector: Make error return value negative
+ - switchtec: Fix Spectre v1 vulnerability
+ - misc: mic: SCIF Fix scif_get_new_port() error handling
+ - ALSA: hda/realtek - Add mute LED quirk for HP Spectre x360
+ - ethtool: Remove trailing semicolon for static inline
+ - i2c: aspeed: Add an explicit type casting for *get_clk_reg_val
+ - Bluetooth: h5: Fix missing dependency on BT_HCIUART_SERDEV
+ - gpio: tegra: Move driver registration to subsys_init level
+ - [powerpc*] powernv: Fix concurrency issue with npu->mmio_atsd_usage
+ - [powerpc*] 4xx: Fix error return path in ppc4xx_msi_probe()
+ - media: davinci: vpif_display: Mix memory leak on probe error path
+ - media: dw2102: Fix memleak on sequence of probes
+ - net: phy: Fix the register offsets in Broadcom iProc mdio mux driver
+ - scsi: qla2xxx: Fix unintended Logout
+ - scsi: qla2xxx: Fix session state stuck in Get Port DB
+ - scsi: qla2xxx: Silent erroneous message
+ - clk: scmi: Fix the rounding of clock rate
+ - blk-mq: fix updating tags depth
+ - scsi: lpfc: Fix driver crash when re-registering NVME rports.
+ - scsi: target: fix __transport_register_session locking
+ - md/raid5: fix data corruption of replacements after originals dropped
+ - timers: Clear timer_base::must_forward_clk with timer_base::lock held
+ - gpu: ipu-v3: default to id 0 on missing OF alias
+ - misc: ti-st: Fix memory leak in the error path of probe()
+ - uio: potential double frees if __uio_register_device() fails
+ - firmware: vpd: Fix section enabled flag on vpd_section_destroy
+ - [x86] Drivers: hv: vmbus: Cleanup synic memory free path
+ - tty: rocket: Fix possible buffer overwrite on register_PCI
+ - uio: fix possible circular locking dependency
+ - iwlwifi: pcie: don't access periphery registers when not available
+ - IB/IPoIB: Set ah valid flag in multicast send flow
+ - f2fs: fix to active page in lru list for read path
+ - f2fs: do not set free of current section
+ - f2fs: Keep alloc_valid_block_count in sync
+ - f2fs: issue discard align to section in LFS mode
+ - f2fs: fix defined but not used build warnings
+ - f2fs: fix to detect looped node chain correctly
+ - ASoC: soc-pcm: Use delay set in component pointer function
+ - perf tools: Allow overriding MAX_NR_CPUS at compile time
+ - device-dax: avoid hang on error before devm_memremap_pages()
+ - NFSv4.0 fix client reference leak in callback
+ - perf c2c report: Fix crash for empty browser
+ - perf evlist: Fix error out while applying initial delay and LBR
+ - [powerpc*] pseries: fix EEH recovery of some IOV devices
+ - [powerpc*] macintosh/via-pmu: Add missing mmio accessors
+ - ath9k: report tx status on EOSP
+ - ath9k_hw: fix channel maximum power level test
+ - ath10k: prevent active scans on potential unusable channels
+ - wlcore: Set rx_status boottime_ns field on rx
+ - rpmsg: core: add support to power domains for devices
+ - mtd: rawnand: make subop helpers return unsigned values
+ - scsi: tcmu: do not set max_blocks if data_bitmap has been setup
+ - [mips*] Fix ISA virt/bus conversion for non-zero PHYS_OFFSET
+ - ata: libahci: Allow reconfigure of DEVSLP register
+ - ata: libahci: Correct setting of DEVSLP register
+ - nfs: Referrals not inheriting proto setting from parent
+ - scsi: 3ware: fix return 0 on the error path of probe
+ - tools/testing/nvdimm: kaddr and pfn can be NULL to ->direct_access()
+ - ath10k: disable bundle mgmt tx completion event support
+ - media: em28xx: explicitly disable TS packet filter
+ - PCI: mobiveil: Fix struct mobiveil_pcie.pcie_reg_base address type
+ - [powerpc*] mm: Don't report PUDs as memory leaks when using kmemleak
+ - Bluetooth: hidp: Fix handling of strncpy for hid->name information
+ - [x86] mm: Remove in_nmi() warning from vmalloc_fault()
+ - [armhf] pinctrl: imx: off by one in imx_pinconf_group_dbg_show()
+ - gpio: pxa: disable pinctrl calls for PXA3xx
+ - gpio: ml-ioh: Fix buffer underwrite on probe error path
+ - [x86, arm64] pinctrl/amd: only handle irq if it is pending and unmasked
+ - [armhf, arm64] net: mvneta: fix mtu change on port without link
+ - f2fs: try grabbing node page lock aggressively in sync scenario
+ - pktcdvd: Fix possible Spectre-v1 for pkt_devs
+ - f2fs: fix to skip GC if type in SSA and SIT is inconsistent
+ - [x86] tpm/tpm_i2c_infineon: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)
+ - f2fs: fix to do sanity check with reserved blkaddr of inline inode
+ (CVE-2018-13099)
+ - [mips*] Octeon: add missing of_node_put()
+ - [mips*] generic: fix missing of_node_put()
+ - thermal: rcar_thermal: avoid NULL dereference in absence of IRQ resources
+ - thermal_hwmon: Sanitize attribute name passed to hwmon
+ - net: dcb: For wild-card lookups, use priority -1, not 0
+ - dm cache: only allow a single io_mode cache feature to be requested
+ - Input: atmel_mxt_ts - only use first T9 instance
+ - [powerpc*] partitions/aix: append null character to print data from disk
+ - [powerpc*] partitions/aix: fix usage of uninitialized lv_info and lvname
+ structures
+ - drm/amd/display: Prevent PSR from being enabled if initialization fails
+ - media: em28xx: Fix dual transport stream operation
+ - [arm64] iommu/arm-smmu-v3: Abort all transactions if SMMU is enabled in
+ kdump kernel
+ - f2fs: fix to wait on page writeback before updating page
+ - f2fs: Fix uninitialized return in f2fs_ioc_shutdown()
+ - media: em28xx: Fix DualHD disconnect oops
+ - f2fs: avoid potential deadlock in f2fs_sbi_store
+ - f2fs: fix to do sanity check with secs_per_zone (CVE-2018-13100)
+ - [armhf] mfd: ti_am335x_tscadc: Fix struct clk memory leak
+ - f2fs: fix to do sanity check with {sit,nat}_ver_bitmap_bytesize
+ - f2fs: fix to propagate return value of scan_nat_page()
+ - f2fs: fix to do sanity check with extra_attr feature (CVE-2018-13098)
+ - RDMA/hns: Add illegal hop_num judgement
+ - NFSv4.1: Fix a potential layoutget/layoutrecall deadlock
+ - RDMA/hns: Update the data type of immediate data
+ - [mips*] WARN_ON invalid DMA cache maintenance, not BUG_ON
+ - [mips*] mscc: ocelot: fix length of memory address space for MIIM
+ - RDMA/cma: Do not ignore net namespace for unbound cm_id
+ - clocksource: Revert "Remove kthread"
+ - autofs: fix autofs_sbi() does not check super block type
+ - mm: get rid of vmacache_flush_all() entirely (CVE-2018-17182)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.18.10
+ - be2net: Fix memory leak in be_cmd_get_profile_config()
+ - net/mlx5: Fix use-after-free in self-healing flow
+ - rds: fix two RCU related problems
+ - tipc: orphan sock in tipc_release()
+ - net/mlx5: E-Switch, Fix memory leak when creating switchdev mode FDB
+ tables
+ - net/tls: Set count of SG entries if sk_alloc_sg returns -ENOSPC
+ - net/mlx5: Check for error in mlx5_attach_interface
+ - net/mlx5: Fix debugfs cleanup in the device init/remove flow
+ - erspan: fix error handling for erspan tunnel
+ - erspan: return PACKET_REJECT when the appropriate tunnel is not found
+ - tcp: really ignore MSG_ZEROCOPY if no SO_ZEROCOPY
+ - net/mlx5: Fix not releasing read lock when adding flow rules
+ - net/mlx5: Fix possible deadlock from lockdep when adding fte to fg
+ - net/mlx5: Use u16 for Work Queue buffer fragment size
+ - [armhf, arm64] usb: dwc3: change stream event enable bit back to 13
+ - [arm64] iommu/arm-smmu-v3: sync the OVACKFLG to PRIQ consumer register
+ - [armhf] iommu/io-pgtable-arm-v7s: Abort allocation when table address
+ overflows the PTE
+ - [armhf] iommu/io-pgtable-arm: Fix pgtable allocation in selftest
+ - ALSA: msnd: Fix the default sample sizes
+ - ALSA: usb-audio: Add support for Encore mDSD USB DAC
+ - ALSA: usb-audio: Fix multiple definitions in AU0828_DEVICE() macro
+ - xfrm: fix 'passing zero to ERR_PTR()' warning
+ - [amd64, arm64] amd-xgbe: use dma_mapping_error to check map errors
+ - nfp: don't fail probe on pci_sriov_set_totalvfs() errors
+ - iwlwifi: cancel the injective function between hw pointers to tfd entry
+ index
+ - gfs2: Special-case rindex for gfs2_grow
+ - [armhf] clk: imx6ul: fix missing of_node_put()
+ - [armhf] clk: imx6sll: fix missing of_node_put()
+ - [arm64] clk: mvebu: armada-37xx-periph: Fix wrong return value in
+ get_parent
+ - Input: pxrc - fix freeing URB on device teardown
+ - clk: core: Potentially free connection id
+ - clk: clk-fixed-factor: Clear OF_POPULATED flag in case of failure
+ - media: tw686x: Fix oops on buffer alloc failure
+ - [armhf] dmaengine: pl330: fix irq race with terminate_all
+ - [mips*] ath79: fix system restart
+ - media: videobuf2-core: check for q->error in vb2_core_qbuf()
+ - IB/rxe: Drop QP0 silently
+ - block: allow max_discard_segments to be stacked
+ - IB/ipoib: Fix error return code in ipoib_dev_init()
+ - mtd/maps: fix solutionengine.c printk format warnings
+ - gfs2: Don't reject a supposedly full bitmap if we have blocks reserved
+ - perf tools: Synthesize GROUP_DESC feature in pipe mode
+ - perf tools: Fix struct comm_str removal crash
+ - [powerpc*] perf: Fix callchain ip filtering when return address is in a
+ register
+ - fbdev: Distinguish between interlaced and progressive modes
+ - [armhf] exynos: Clear global variable on init error path
+ - [powerpc*] perf: Fix callchain ip filtering
+ - nvmet: fix file discard return status
+ - nvme-rdma: unquiesce queues when deleting the controller
+ - [armhf, arm64] KVM: vgic: Fix possible spectre-v1 write in
+ vgic_mmio_write_apr()
+ - [powerpc*] powerpc/powernv: opal_put_chars partial write fix
+ - perf script: Show correct offsets for DWARF-based unwinding
+ - ASoC: rt5514: Fix the issue of the delay volume applied
+ - [mips*] jz4740: Bump zload address
+ - mac80211: restrict delayed tailroom needed decrement
+ - Smack: Fix handling of IPv4 traffic received by PF_INET6 sockets
+ - wan/fsl_ucc_hdlc: use IS_ERR_VALUE() to check return value of
+ qe_muram_alloc
+ - [arm64] fix possible spectre-v1 write in ptrace_hbp_set_event()
+ - reset: imx7: Fix always writing bits as 0
+ - efi/arm: preserve early mapping of UEFI memory map longer for BGRT
+ - ALSA: usb-audio: Generic DSD detection for Thesycon-based implementations
+ - nfp: avoid buffer leak when FW communication fails
+ - xen-netfront: fix queue name setting
+ - [arm64] dts: qcom: db410c: Fix Bluetooth LED trigger
+ - ARM: dts: qcom: msm8974-hammerhead: increase load on l20 for sdhci
+ - soc: qcom: smem: Correct check for global partition
+ - [s390x] qeth: fix race in used-buffer accounting
+ - [s390x] qeth: reset layer2 attribute on layer switch
+ - platform/x86: toshiba_acpi: Fix defined but not used build warnings
+ - KVM: arm/arm64: Fix vgic init race
+ - drivers/base: stop new probing during shutdown
+ - i2c: aspeed: Fix initial values of master and slave state
+ - drm/amd/pp: Set Max clock level to display by default
+ - regulator: qcom_spmi: Use correct regmap when checking for error
+ - regulator: qcom_spmi: Fix warning Bad of_node_put()
+ - iommu/ipmmu-vmsa: IMUCTRn.TTSEL needs a special usage on R-Car Gen3
+ - dmaengine: mv_xor_v2: kill the tasklets upon exit
+ - crypto: sharah - Unregister correct algorithms for SAHARA 3
+ - [x86] pti: Check the return value of pti_user_pagetable_walk_p4d()
+ - [x86] pti: Check the return value of pti_user_pagetable_walk_pmd()
+ - [x86} mm/pti: Add an overflow check to pti_clone_pmds()
+ - PCI/AER: Honor "pcie_ports=native" even if HEST sets FIRMWARE_FIRST
+ - xen-netfront: fix warn message as irq device name has '/'
+ - RDMA/cma: Protect cma dev list with lock
+ - pstore: Fix incorrect persistent ram buffer mapping
+ - xen/netfront: fix waiting for xenbus state change
+ - IB/ipoib: Avoid a race condition between start_xmit and cm_rep_handler
+ - [s390x] crypto: Fix return code checking in cbc_paes_crypt()
+ - [armhf] mmc: omap_hsmmc: fix wakeirq handling on removal
+ - ipmi: Rework SMI registration failure
+ - ipmi: Move BT capabilities detection to the detect call
+ - ipmi: Fix I2C client removal in the SSIF driver
+ - ovl: fix oopses in ovl_fill_super() failure paths
+ - vmbus: don't return values for uninitalized channels
+ - tools: hv: Fix a bug in the key delete code
+ - misc: ibmvsm: Fix wrong assignment of return code
+ - misc: hmc6352: fix potential Spectre v1
+ - xhci: Fix use after free for URB cancellation on a reallocated endpoint
+ - usb: Don't die twice if PCI xhci host is not responding in resume
+ - usb: xhci: fix interrupt transfer error happened on MTK platforms
+ - usb: mtu3: fix error of xhci port id when enable U3 dual role
+ - mei: ignore not found client in the enumeration
+ - mei: bus: fix hw module get/put balance
+ - mei: bus: need to unlink client before freeing
+ - dm verity: fix crash on bufio buffer that was allocated with vmalloc
+ - usb: Add quirk to support DJI CineSSD
+ - usb: uas: add support for more quirk flags
+ - usb: Avoid use-after-free by flushing endpoints early in
+ usb_set_interface()
+ - usb: host: u132-hcd: Fix a sleep-in-atomic-context bug in u132_get_frame()
+ - usb: add quirk for WORLDE Controller KS49 or Prodipe MIDI 49C USB
+ controller
+ - usb: gadget: udc: renesas_usb3: fix maxpacket size of ep0
+ - usb: net2280: Fix erroneous synchronization change
+ - usb: serial: io_ti: fix array underflow in completion handler
+ - usb: misc: uss720: Fix two sleep-in-atomic-context bugs
+ - usb: serial: ti_usb_3410_5052: fix array underflow in completion handler
+ - usb: yurex: Fix buffer over-read in yurex_write()
+ - usb: cdc-wdm: Fix a sleep-in-atomic-context bug in
+ service_outstanding_interrupt()
+ - Revert "cdc-acm: implement put_char() and flush_chars()"
+ - cifs: prevent integer overflow in nxt_dir_entry()
+ - CIFS: fix wrapping bugs in num_entries()
+ - cifs: integer overflow in in SMB2_ioctl()
+ - xtensa: ISS: don't allocate memory in platform_setup
+ - perf/core: Force USER_DS when recording user stack data
+ - perf tools: Fix maps__find_symbol_by_name()
+ - of: fix phandle cache creation for DTs with no phandles
+ - x86/EISA: Don't probe EISA bus for Xen PV guests
+ - NFSv4: Fix a tracepoint Oops in initiate_file_draining()
+ - NFSv4.1 fix infinite loop on I/O.
+ - of: add helper to lookup compatible child node
+ - mmc: meson-mx-sdio: fix OF child-node lookup
+ - binfmt_elf: Respect error return from `regset->active'
+ - net/mlx5: Add missing SET_DRIVER_VERSION command translation
+ - audit: fix use-after-free in audit_add_watch
+ - mtdchar: fix overflows in adjustment of `count`
+ - vfs: fix freeze protection in mnt_want_write_file() for overlayfs
+ - bpf: fix rcu annotations in compute_effective_progs()
+ - spi: dw: fix possible race condition
+ - Bluetooth: Use lock_sock_nested in bt_accept_enqueue
+ - evm: Don't deadlock if a crypto algorithm is unavailable
+ - [powerpc*] KVM: Book3S HV: Add of_node_put() in success path
+ - security: check for kstrdup() failure in lsm_append()
+ - PM / devfreq: use put_device() instead of kfree()
+ - [powerpc*] KVM: Book3S: Fix matching of hardware and emulated TCE tables
+ - configfs: fix registered group removal
+ - sched/core: Use smp_mb() in wake_woken_function()
+ - efi/esrt: Only call efi_mem_reserve() for boot services memory
+ - [arm64] net: hns3: Reset net device with rtnl_lock
+ - [arm64] net: hns3: Fix for reset_level default assignment probelm
+ - [arm64] hisi: handle of_iomap and fix missing of_node_put
+ - [arm64] hisi: fix error handling and missing of_node_put
+ - [arm64] net: hns3: Fix return value error in hns3_reset_notify_down_enet
+ - [arm64] hisi: check of_iomap and fix missing of_node_put
+ - liquidio: fix hang when re-binding VF host drv after running DPDK VF
+ driver
+ - [armhf] gpu: ipu-v3: csi: pass back mbus_code_to_bus_cfg error codes
+ - ASoC: hdmi-codec: fix routing
+ - serial: 8250: of: Correct of_platform_serial_setup() error handling
+ - tty: fix termios input-speed encoding when using BOTHER
+ - tty: fix termios input-speed encoding
+ - [armhf, arm64] mmc: tegra: prevent HS200 on Tegra 3
+ - mmc: sdhci: do not try to use 3.3V signaling if not supported
+ - drm/nouveau: Fix runtime PM leak in drm_open()
+ - drm/nouveau/debugfs: Wake up GPU before doing any reclocking
+ - [armhf, arm64] drm/nouveau: tegra: Detach from ARM DMA/IOMMU mapping
+ - tls: Fix zerocopy_from_iter iov handling
+ - parport: sunbpp: fix error return code
+ - sched/fair: Fix util_avg of new tasks for asymmetric systems
+ - f2fs: do checkpoint in kill_sb
+ - drm/amd/display: support access ddc for mst branch
+ - gpiolib: Mark gpio_suffixes array with __maybe_unused
+ - [armhf, arm64] net: mvpp2: make sure we use single queue mode on PPv2.1
+ - mfd: 88pm860x-i2c: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)
+ - input: rohm_bu21023: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)
+ - [x86] drm/amdkfd: Fix kernel queue 64 bit doorbell offset calculation
+ - [x86] drm/amdkfd: Fix error codes in kfd_get_process
+ - ALSA: pcm: Fix snd_interval_refine first/last with open min/max
+ - scsi: libfc: fixup 'sleeping function called from invalid context'
+ - scsi: lpfc: Fix NVME Target crash in defer rcv logic
+ - scsi: lpfc: Fix panic if driver unloaded when port is offline
+ - [arm64] perf: Disable PMU while processing counter overflows
+ - drm/amd/pp: Send khz clock values to DC for smu7/8
+ - IB/mlx5: fix uaccess beyond "count" in debugfs read/write handlers
+ - blk-mq: only attempt to merge bio if there is rq in sw queue
+ - blk-mq: avoid to synchronize rcu inside blk_cleanup_queue()
+ - [arm64] pinctrl: msm: Fix msm_config_group_get() to be compliant
+ - [arm64] pinctrl: qcom: spmi-gpio: Fix pmic_gpio_config_get() to be
+ compliant
+ - [armhf, arm64] clk: tegra: bpmp: Don't crash when a clock fails to
+ register
+ - [x86] mei: bus: type promotion bug in mei_nfc_if_version()
+ - [x86] crypto: ccp - add timeout support in the SEV command
+
+ [ Vagrant Cascadian ]
+ * debian/rules.real: Generate linux-source tarball with root user and
+ group specified, to fix reproducibility issues.
+
+ [ Ben Hutchings ]
+ * drivers/net/ethernet: Ignore ABI changes
+ * [arm64] ACPI: Change ACPI_NFIT from built-in to module
+ * [i386/686] Enable MGEODE_LX instead of M686 (regression in 4.16)
+ - x86-32: Disable 3D-Now in generic config
+ * Bump ABI to 2
+
+ [ Yves-Alexis Perez ]
+ * [x86] enable PINCTRL_AMD for touchpad support on Lenovo IdeaPad.
+ (closes: #876141)
+
+ [ Geoff Levand ]
+ * [arm64] Add support for new server hardware (Closes: #900581):
+ - Enable SCHED_SMT for hardware multithreading processors
+ - Enable ARM64_LSE_ATOMICS for v8.1 processors
+ - ACPI: Enable ACPI_PCI_SLOT, ACPI_HED, ACPI_BGRT, ACPI_APEI,
+ ACPI_APEI_GHES, ACPI_APEI_PCIEAER, ACPI_APEI_SEA,
+ ACPI_APEI_MEMORY_FAILURE as built-in;
+ ACPI_APEI_EINJ, WDAT_WDT as modules
+ * [arm64] acpi: Add fixup for HPE m400 quirks
+
+ [ Salvatore Bonaccorso ]
+ * floppy: Do not copy a kernel pointer to user memory in FDGETPRM ioctl
+ (CVE-2018-7755)
+ * scsi: target: iscsi: Use hex2bin instead of a re-implementation
+ (CVE-2018-14633)
+ * scsi: target: iscsi: Use bin2hex instead of a re-implementation
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 30 Sep 2018 18:02:51 +0100
+
+linux (4.18.8-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.18.7
+ - rcu: Make expedited GPs handle CPU 0 being offline
+ - net: 6lowpan: fix reserved space for single frames
+ - net: mac802154: tx: expand tailroom if necessary
+ - 9p/net: Fix zero-copy path in the 9p virtio transport
+ - spi: pxa2xx: Add support for Intel Ice Lake
+ - mmc: block: Fix unsupported parallel dispatch of requests
+ - readahead: stricter check for bdi io_pages
+ - block: fix infinite loop if the device loses discard capability
+ - block: blk_init_allocated_queue() set q->fq as NULL in the fail case
+ - block: really disable runtime-pm for blk-mq
+ - blkcg: Introduce blkg_root_lookup()
+ - block: Introduce blk_exit_queue()
+ - block: Ensure that a request queue is dissociated from the cgroup
+ controller
+ - apparmor: fix bad debug check in apparmor_secid_to_secctx()
+ - dma-buf: Move BUG_ON from _add_shared_fence to _add_shared_inplace
+ - libertas: fix suspend and resume for SDIO connected cards
+ - media: Revert "[media] tvp5150: fix pad format frame height"
+ - [arm64] mailbox: xgene-slimpro: Fix potential NULL pointer dereference
+ - Replace magic for trusting the secondary keyring with #define
+ - Fix kexec forbidding kernels signed with keys in the secondary keyring to
+ boot
+ - [powerpc*] fadump: handle crash memory ranges array index overflow
+ - [powerpc*] 64s: Fix page table fragment refcount race vs speculative
+ references
+ - [powerpc*] pseries: Fix endianness while restoring of r3 in MCE handler.
+ - [powerpc*] pkeys: Give all threads control of their key permissions
+ - [powerpc*] pkeys: Deny read/write/execute by default
+ - [powerpc*] pkeys: key allocation/deallocation must not change pkey
+ registers
+ - [powerpc*] pkeys: Save the pkey registers before fork
+ - [powerpc*] pkeys: Fix calculation of total pkeys.
+ - [powerpc*] pkeys: Preallocate execute-only key
+ - [powerpc*] nohash: fix pte_access_permitted()
+ - [powerpc64] ftrace: Include ftrace.h needed for enable/disable calls
+ - [powerpc*] powernv/pci: Work around races in PCI bridge enabling
+ - cxl: Fix wrong comparison in cxl_adapter_context_get()
+ - ocxl: Fix page fault handler in case of fault on dying process
+ - IB/mlx5: Honor cnt_set_id_valid flag instead of set_id
+ - IB/mlx5: Fix leaking stack memory to userspace
+ - IB/srpt: Fix srpt_cm_req_recv() error path (1/2)
+ - IB/srpt: Fix srpt_cm_req_recv() error path (2/2)
+ - IB/srpt: Support HCAs with more than two ports
+ - RDMA/mlx5: Fix shift overflow in mlx5_ib_create_wq
+ - ib_srpt: Fix a use-after-free in srpt_close_ch()
+ - ib_srpt: Fix a use-after-free in __srpt_close_all_ch()
+ - RDMA/rxe: Set wqe->status correctly if an unexpected response is received
+ - 9p: fix multiple NULL-pointer-dereferences
+ - fs/9p/xattr.c: catch the error of p9_client_clunk when setting xattr
+ failed
+ - 9p/virtio: fix off-by-one error in sg list bounds check
+ - net/9p/client.c: version pointer uninitialized
+ - net/9p/trans_fd.c: fix race-condition by flushing workqueue before the
+ kfree()
+ - dm integrity: change 'suspending' variable from bool to int
+ - dm thin: stop no_space_timeout worker when switching to write-mode
+ - dm cache metadata: save in-core policy_hint_size to on-disk superblock
+ - dm cache metadata: set dirty on all cache blocks after a crash
+ - dm crypt: don't decrease device limits
+ - dm writecache: fix a crash due to reading past end of dirty_bitmap
+ - uart: fix race between uart_put_char() and uart_shutdown()
+ - [x86] Drivers: hv: vmbus: Fix the offer_in_progress in
+ vmbus_process_offer()
+ - [x86] Drivers: hv: vmbus: Reset the channel callback in
+ vmbus_onoffer_rescind()
+ - extcon: Release locking when sending the notification of connector state
+ - [x86] vmw_balloon: fix inflation of 64-bit GFNs
+ - [x86] vmw_balloon: do not use 2MB without batching
+ - [x86] vmw_balloon: VMCI_DOORBELL_SET does not check status
+ - [x86] vmw_balloon: fix VMCI use when balloon built into kernel
+ - [armhf] rtc: omap: fix resource leak in registration error path
+ - [armhf] rtc: omap: fix potential crash on power off
+ - tracing: Do not call start/stop() functions when tracing_on does not
+ change
+ - tracing/blktrace: Fix to allow setting same value
+ - printk/tracing: Do not trace printk_nmi_enter()
+ - uprobes: Use synchronize_rcu() not synchronize_sched()
+ - mfd: hi655x: Fix regmap area declared size for hi655x
+ - ovl: fix wrong use of impure dir cache in ovl_iterate()
+ - ACPICA: AML Parser: skip opcodes that open a scope upon parse failure
+ - ACPICA: Clear status of all events when entering sleep states
+ - drivers/block/zram/zram_drv.c: fix bug storing backing_dev
+ - sched: idle: Avoid retaining the tick when it has been stopped
+ - cpuidle: menu: Handle stopped tick more aggressively
+ - cpufreq: governor: Avoid accessing invalid governor_data
+ - PM / sleep: wakeup: Fix build error caused by missing SRCU support
+ - ALSA: ac97: fix device initialization in the compat layer
+ - ALSA: ac97: fix check of pm_runtime_get_sync failure
+ - ALSA: ac97: fix unbalanced pm_runtime_enable
+ - [x86, arm64] i2c: designware: Re-init controllers with pm_disabled set on
+ resume
+ - [x86] KVM: VMX: fixes for vmentry_l1d_flush module parameter
+ - [powerpc*] KVM: Book3S: Fix guest DMA when guest partially backed by
+ THP pages
+ - block, bfq: return nbytes and not zero from struct cftype .write() method
+ - pnfs/blocklayout: off by one in bl_map_stripe()
+ - nfsd: fix leaked file lock with nfs exported overlayfs
+ - NFSv4 client live hangs after live data migration recovery
+ - NFSv4: Fix locking in pnfs_generic_recover_commit_reqs
+ - NFSv4: Fix a sleep in atomic context in nfs4_callback_sequence()
+ - [armhf] ARM: dts: am57xx-idk: Enable dual role for USB2 port
+ - [armhf] pwm: omap-dmtimer: Return -EPROBE_DEFER if no dmtimer platform
+ data
+ - mm/tlb: Remove tlb_remove_table() non-concurrent condition
+ - [x86] iommu/vt-d: Add definitions for PFSID
+ - [x86] iommu/vt-d: Fix dev iotlb pfsid use
+ - sys: don't hold uts_sem while accessing userspace memory
+ - ubifs: Fix memory leak in lprobs self-check
+ - Revert "UBIFS: Fix potential integer overflow in allocation"
+ - ubifs: Check data node size before truncate
+ - ubifs: xattr: Don't operate on deleted inodes
+ - ubifs: Fix directory size calculation for symlinks
+ - ubifs: Fix synced_i_size calculation for xattr inodes
+ - [armhf] pwm: tiehrpwm: Don't use emulation mode bits to control PWM output
+ - [armhf] pwm: tiehrpwm: Fix disabling of output of PWMs
+ - fb: fix lost console when the user unplugs a USB adapter
+ - udlfb: fix semaphore value leak
+ - udlfb: fix display corruption of the last line
+ - udlfb: don't switch if we are switching to the same videomode
+ - udlfb: set optimal write delay
+ - udlfb: make a local copy of fb_ops
+ - udlfb: handle allocation failure
+ - udlfb: set line_length in dlfb_ops_set_par
+ - getxattr: use correct xattr length
+ - libnvdimm: Use max contiguous area for namespace size
+ - libnvdimm: fix ars_status output length calculation
+ - bcache: release dc->writeback_lock properly in bch_writeback_thread()
+ - cap_inode_getsecurity: use d_find_any_alias() instead of d_find_alias()
+ - mm, dev_pagemap: Do not clear ->mapping on final put
+ - perf auxtrace: Fix queue resize
+ - [x86] crypto: vmx - Fix sleep-in-atomic bugs
+ - [x86] crypto: aesni - Use unaligned loads from gcm_context_data
+ - [arm64] crypto: arm64/sm4-ce - check for the right CPU feature bit
+ - fs/quota: Fix spectre gadget in do_quotactl
+ - udf: Fix mounting of Win7 created UDF filesystems
+ - cpuidle: menu: Retain tick when shallow state is selected
+ - [arm64] mm: always enable CONFIG_HOLES_IN_ZONE
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.18.8
+ - act_ife: fix a potential use-after-free
+ - ipv4: tcp: send zero IPID for RST and ACK sent in SYN-RECV and TIME-WAIT
+ state
+ - net: sched: Fix memory exposure from short TCA_U32_SEL
+ - qlge: Fix netdev features configuration.
+ - r8152: disable RX aggregation on new Dell TB16 dock
+ - tcp: do not restart timewait timer on rst reception
+ - vti6: remove !skb->ignore_df check from vti6_xmit()
+ - act_ife: move tcfa_lock down to where necessary
+ - act_ife: fix a potential deadlock
+ - net: sched: action_ife: take reference to meta module
+ - bnxt_en: Clean up unused functions.
+ - bnxt_en: Do not adjust max_cp_rings by the ones used by RDMA.
+ - net/sched: act_pedit: fix dump of extended layered op
+ - tipc: fix a missing rhashtable_walk_exit()
+ - [x86] hv_netvsc: Fix a deadlock by getting rtnl lock earlier in
+ netvsc_probe()
+ - tipc: fix the big/little endian issue in tipc_dest
+ - sctp: remove useless start_fail from sctp_ht_iter in proc
+ - erspan: set erspan_ver to 1 by default when adding an erspan dev
+ - ipv6: don't get lwtstate twice in ip6_rt_copy_init()
+ - net/ipv6: init ip6 anycast rt->dst.input as ip6_input
+ - net/ipv6: Only update MTU metric if it set
+ - net/ipv6: Put lwtstate when destroying fib6_info
+ - net/mlx5: Fix SQ offset in QPs with small RQ
+ - r8169: set RxConfig after tx/rx is enabled for RTL8169sb/8110sb devices
+ - [armhf,arm64] Revert "net: stmmac: Do not keep rearming the coalesce
+ timer in stmmac_xmit"
+ - ip6_vti: fix creating fallback tunnel device for vti6
+ - ip6_vti: fix a null pointer deference when destroy vti6 tunnel
+ - nfp: wait for posted reconfigs when disabling the device
+ - sctp: hold transport before accessing its asoc in sctp_transport_get_next
+ - vhost: correctly check the iova range when waking virtqueue
+ - [x86] hv_netvsc: ignore devices that are not PCI
+ - cifs: check if SMB2 PDU size has been padded and suppress the warning
+ - hfsplus: don't return 0 when fill_super() failed
+ - hfs: prevent crash on exit from failed search
+ - sunrpc: Don't use stack buffer with scatterlist
+ - fork: don't copy inconsistent signal handler state to child
+ - fs/proc/vmcore.c: hide vmcoredd_mmap_dumps() for nommu builds
+ - reiserfs: change j_timestamp type to time64_t
+ - [armhf,arm64] iommu/rockchip: Handle errors returned from PM framework
+ - hfsplus: fix NULL dereference in hfsplus_lookup() (CVE-2018-14617)
+ - [armhf,arm64] iommu/rockchip: Move irq request past pm_runtime_enable
+ - fs/proc/kcore.c: use __pa_symbol() for KCORE_TEXT list entries
+ - fat: validate ->i_start before using
+ - workqueue: skip lockdep wq dependency in cancel_work_sync()
+ - workqueue: re-add lockdep dependencies for flushing
+ - scripts: modpost: check memory allocation results
+ - apparmor: fix an error code in __aa_create_ns()
+ - virtio: pci-legacy: Validate queue pfn
+ - [x86] mce: Add notifier_block forward declaration
+ - i2c: core: ACPI: Make acpi_gsb_i2c_read_bytes() check i2c_transfer return
+ value
+ - IB/hfi1: Invalid NUMA node information can cause a divide by zero
+ - [armhf,arm64] pwm: meson: Fix mux clock names
+ - [powerpc*] topology: Get topology for shared processors at boot
+ - mm/fadvise.c: fix signed overflow UBSAN complaint
+ - mm: make DEFERRED_STRUCT_PAGE_INIT explicitly depend on SPARSEMEM
+ - fs/dcache.c: fix kmemcheck splat at take_dentry_name_snapshot()
+ - [x86] platform: intel_punit_ipc: fix build errors
+ - bpf, sockmap: fix map elem deletion race with smap_stop_sock
+ - tcp, ulp: fix leftover icsk_ulp_ops preventing sock from reattach
+ - bpf, sockmap: fix sock_map_ctx_update_elem race with exist/noexist
+ - net/xdp: Fix suspicious RCU usage warning
+ - bpf, sockmap: fix leakage of smap_psock_map_entry
+ - netfilter: ip6t_rpfilter: set F_IFACE for linklocal addresses
+ - [s390x] kdump: Fix memleak in nt_vmcoreinfo
+ - ipvs: fix race between ip_vs_conn_new() and ip_vs_del_dest()
+ - mfd: sm501: Set coherent_dma_mask when creating subdevices
+ - netfilter: x_tables: do not fail xt_alloc_table_info too easilly
+ - [x86] platform: asus-nb-wmi: Add keymap entry for lid flip action on
+ UX360
+ - netfilter: fix memory leaks on netlink_dump_start error
+ - tcp, ulp: add alias for all ulp modules
+ - ubi: Initialize Fastmap checkmapping correctly
+ - ACPICA: ACPICA: add status check for acpi_hw_read before assigning return
+ value
+ - [arm*] perf arm spe: Fix uninitialized record error variable
+ - [arm64] net: hns3: Fix for command format parsing error in
+ hclge_is_all_function_id_zero
+ - block: don't warn for flush on read-only device
+ - [arm64] net: hns3: Fix for phy link issue when using marvell phy driver
+ - PCI: Match Root Port's MPS to endpoint's MPSS as necessary
+ - drm/amd/display: Guard against null crtc in CRC IRQ
+ - perf tools: Check for null when copying nsinfo.
+ - f2fs: avoid race between zero_range and background GC
+ - f2fs: fix avoid race between truncate and background GC
+ - net/9p/trans_fd.c: fix race by holding the lock
+ - net/9p: fix error path of p9_virtio_probe
+ - f2fs: fix to clear PG_checked flag in set_page_dirty()
+ - [armhf,arm64] pinctrl: axp209: Fix NULL pointer dereference after
+ allocation
+ - bpf: fix bpffs non-array map seq_show issue
+ - [powerpc*] uaccess: Enable get_user(u64, *p) on 32-bit
+ - [powerpc*] Fix size calculation using resource_size()
+ - [powerpc*] perf probe powerpc: Fix trace event post-processing
+ - block: bvec_nr_vecs() returns value for wrong slab
+ - brcmfmac: fix brcmf_wiphy_wowl_params() NULL pointer dereference
+ - [s390x] dasd: fix hanging offline processing due to canceled worker
+ - [s390x] dasd: fix panic for failed online processing
+ - ACPI / scan: Initialize status to ACPI_STA_DEFAULT
+ - blk-mq: count the hctx as active before allocating tag
+ - scsi: aic94xx: fix an error code in aic94xx_init()
+ - NFSv4: Fix error handling in nfs4_sp4_select_mode()
+ - Input: do not use WARN() in input_alloc_absinfo()
+ - xen/balloon: fix balloon initialization for PVH Dom0
+ - [armhf] PCI: mvebu: Fix I/O space end address calculation
+ - dm kcopyd: avoid softlockup in run_complete_job
+ - [x86] staging: comedi: ni_mio_common: fix subdevice flags for PFI
+ subdevice
+ - ASoC: rt5677: Fix initialization of rt5677_of_match.data
+ - [armhf] iommu/omap: Fix cache flushes on L2 table entries
+ - selinux: cleanup dentry and inodes on error in selinuxfs
+ - RDS: IB: fix 'passing zero to ERR_PTR()' warning
+ - cfq: Suppress compiler warnings about comparisons
+ - smb3: fix reset of bytes read and written stats
+ - CIFS: fix memory leak and remove dead code
+ - SMB3: Number of requests sent should be displayed for SMB3 not just CIFS
+ - smb3: if server does not support posix do not allow posix mount option
+ - [powerpcspe] platforms/85xx: fix t1042rdb_diu.c build errors & warning
+ - [powerpc*] 64s: Make rfi_flush_fallback a little more robust
+ - [powerpc*] pseries: Avoid using the size greater than RTAS_ERROR_LOG_MAX.
+ - [armhf,arm64] clk: rockchip: Add pclk_rkpwm_pmu to PMU critical clocks in
+ rk3399
+ - drm/amd/display: Read back max backlight value at boot
+ - [x86] KVM: vmx: track host_state.loaded using a loaded_vmcs pointer
+ - [x86] kvm: nVMX: Fix fault vector for VMX operation at CPL > 0
+ - [armhf] drm/etnaviv: fix crash in GPU suspend when init failed due to
+ buffer placement
+ - btrfs: Exit gracefully when chunk map cannot be inserted to the tree
+ - btrfs: replace: Reset on-disk dev stats value after replace
+ - btrfs: fix in-memory value of total_devices after seed device deletion
+ - btrfs: relocation: Only remove reloc rb_trees if reloc control has been
+ initialized (CVE-2018-14609)
+ - btrfs: tree-checker: Detect invalid and empty essential trees
+ (CVE-2018-14612)
+ - btrfs: check-integrity: Fix NULL pointer dereference for degraded mount
+ - btrfs: lift uuid_mutex to callers of btrfs_open_devices
+ - btrfs: Don't remove block group that still has pinned down bytes
+ - btrfs: Fix a C compliance issue
+ - [armhf,arm64] rockchip: Force CONFIG_PM on Rockchip systems
+ - btrfs: do btrfs_free_stale_devices outside of device_list_add
+ - btrfs: extend locked section when adding a new device in device_list_add
+ - btrfs: rename local devices for fs_devices in btrfs_free_stale_devices(
+ - btrfs: use device_list_mutex when removing stale devices
+ - btrfs: lift uuid_mutex to callers of btrfs_scan_one_device
+ - btrfs: lift uuid_mutex to callers of btrfs_parse_early_options
+ - btrfs: reorder initialization before the mount locks uuid_mutex
+ - btrfs: fix mount and ioctl device scan ioctl race
+ - [x86] drm/i915/lpe: Mark LPE audio runtime pm as "no callbacks"
+ - [x86] drm/i915: Nuke the LVDS lid notifier
+ - [x86] drm/i915: Increase LSPCON timeout
+ - [x86] drm/i915: Free write_buf that we allocated with kzalloc.
+ - drm/amdgpu: update uvd_v6_0_ring_vm_funcs to use new nop packet
+ - drm/amdgpu: fix a reversed condition
+ - drm/amdgpu: Fix RLC safe mode test in gfx_v9_0_enter_rlc_safe_mode
+ - drm/amd/pp: Convert voltage unit in mV*4 to mV on CZ/ST
+ - drm/amd/powerplay: fixed uninitialized value
+ - drm/amd/pp/Polaris12: Fix a chunk of registers missed to program
+ - drm/edid: Quirk Vive Pro VR headset non-desktop.
+ - drm/edid: Add 6 bpc quirk for SDC panel in Lenovo B50-80
+ - drm/amd/display: fix type of variable
+ - drm/amd/display: Don't share clk source between DP and HDMI
+ - drm/amd/display: update clk for various HDMI color depths
+ - drm/amd/display: Use requested HDMI aspect ratio
+ - drm/amd/display: Report non-DP display as disconnected without EDID
+ - [armhf,arm64] drm/rockchip: lvds: add missing of_node_put
+ - [armhf,arm64] drm/rockchip: vop: split out core clock enablement into
+ separate functions
+ - [armhf,arm64] drm/rockchip: vop: fix irq disabled after vop driver probed
+ - drm/amd/display: Pass connector id when executing VBIOS CT
+ - drm/amd/display: Check if clock source in use before disabling
+ - drm/amdgpu: update tmr mc address
+ - drm/amdgpu:add tmr mc address into amdgpu_firmware_info
+ - drm/amdgpu:add new firmware id for VCN
+ - drm/amdgpu:add VCN support in PSP driver
+ - drm/amdgpu:add VCN booting with firmware loaded by PSP
+ - drm/amdgpu: fix incorrect use of fcheck
+ - drm/amdgpu: fix incorrect use of drm_file->pid
+ - [x86] drm/i915: Re-apply "Perform link quality check, unconditionally
+ during long pulse"
+ - uapi/linux/keyctl.h: don't use C++ reserved keyword as a struct member
+ name
+ - mm: respect arch_dup_mmap() return value
+ - [x86] drm/i915: set DP Main Stream Attribute for color range on DDI
+ platforms
+ - [i386] tsc: Prevent result truncation on 32bit
+ - drm/amdgpu: Keep track of amount of pinned CPU visible VRAM
+ - drm/amdgpu: Make pin_size values atomic
+ - drm/amdgpu: Warn and update pin_size values when destroying a pinned BO
+ - drm/amdgpu: Don't warn on destroying a pinned BO
+ - debugobjects: Make stack check warning more informative
+ - [i386] pae: use 64 bit atomic xchg function in native_ptep_get_and_clear
+ - [x86] xen: don't write ptes directly in 32-bit PV guests
+ - [x86] kvm: Set highest physical address bits in non-present/reserved SPTEs
+ - [x86] kvm: avoid unused variable warning
+ - HID: redragon: fix num lock and caps lock LEDs
+
+ [ Ben Hutchings ]
+ * [x86] wireless: Enable R8822BE as module (Closes: #908330)
+ * Move all patch generation scripts to debian/bin
+ * [rt] genpatch-rt: Store patches and series file in debian/patches-rt
+ * linux-headers: Stop linking the doc directory, which is not binNMU-safe
+ * debian/copyright: Simplify exclusions to work with mk-origtargz
+ * debian/{watch,bin/uscan-hook}: Drop uscan hook in favour of uupdate
+ * debian/watch: Add options for signature validation
+ * README.Debian: Update URLs that were pointing to Alioth
+ * README.Debian: Describe where to find patches for a specific version
+ * Revert "i40e: Add kconfig dependency to ensure cmpxchg64() is available"
+
+ [ Salvatore Bonaccorso ]
+ * mac80211: don't update the PM state of a peer upon a multicast frame
+ (Closes: #887045, #886292)
+
+ [ Romain Perier ]
+ * [x86] Enable TI TPS6598x USB Power Delivery controller family
+ * [x86] crypto: ccp: add timeout support in the SEV command (Closes: #908248)
+ * [rt] Update to 4.18.7-rt5
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 18 Sep 2018 03:05:01 +0100
+
+linux (4.18.6-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.18.6
+ - scsi: libsas: dynamically allocate and free ata host
+ - xprtrdma: Fix disconnect regression
+ - mei: don't update offset in write
+ - cifs: add missing support for ACLs in SMB 3.11
+ - cifs: fix uninitialized ptr deref in smb2 signing
+ - cifs: add missing debug entries for kconfig options
+ - cifs: use a refcount to protect open/closing the cached file handle
+ - cifs: check kmalloc before use
+ - smb3: enumerating snapshots was leaving part of the data off end
+ - smb3: Do not send SMB3 SET_INFO if nothing changed
+ - smb3: don't request leases in symlink creation and query
+ - smb3: fill in statfs fsid and correct namelen
+ - btrfs: use correct compare function of dirty_metadata_bytes
+ - btrfs: don't leak ret from do_chunk_alloc
+ - Btrfs: fix mount failure after fsync due to hard link recreation
+ - Btrfs: fix btrfs_write_inode vs delayed iput deadlock
+ - Btrfs: fix send failure when root has deleted files still open
+ - Btrfs: send, fix incorrect file layout after hole punching beyond eof
+ - hwmon: (k10temp) 27C Offset needed for Threadripper2
+ - [armhf] bpf: fix stack var offset in jit
+ - [armhf, arm64] iommu/arm-smmu: Error out only if not enough context
+ interrupts
+ - printk: Split the code for storing a message into the log buffer
+ - printk: Create helper function to queue deferred console handling
+ - printk/nmi: Prevent deadlock when accessing the main log buffer in NMI
+ - [arm64] kprobes: Fix %p uses in error messages
+ - [arm64] Fix mismatched cache line size detection
+ - [arm64] Handle mismatched cache type
+ - [arm64] mm: check for upper PAGE_SHIFT bits in pfn_valid()
+ - [arm64] dts: rockchip: corrected uart1 clock-names for rk3328
+ - [armhf, arm64] KVM: Fix potential loss of ptimer interrupts
+ - [armhf, arm64] KVM: Fix lost IRQs from emulated physcial timer when
+ blocked
+ - [armhf, arm64] KVM: Skip updating PMD entry if no change
+ - [armhf, arm64] KVM: Skip updating PTE entry if no change
+ - [s390x] kvm: fix deadlock when killed by oom
+ - [s390x] perf kvm: Fix subcommands on s390
+ - stop_machine: Reflow cpu_stop_queue_two_works()
+ - stop_machine: Atomically queue and wake stopper threads
+ - ext4: check for NUL characters in extended attribute's name
+ - ext4: use ext4_warning() for sb_getblk failure
+ - ext4: sysfs: print ext4_super_block fields as little-endian
+ - ext4: reset error code in ext4_find_entry in fallback
+ - ext4: fix race when setting the bitmap corrupted flag
+ - nvme-pci: add a memory barrier to nvme_dbbuf_update_and_check_event
+ - [x86] gpu: reserve ICL's graphics stolen memory
+ - [x86] platform: wmi: Do not mix pages and kmalloc
+ - [x86] platform: ideapad-laptop: Apply no_hw_rfkill to Y20-15IKBM, too
+ - mm: move tlb_table_flush to tlb_flush_mmu_free
+ - [x86] mm/tlb, mm: Support invalidating TLB caches for RCU_TABLE_FREE
+ - [x86] speculation/l1tf: Fix overflow in l1tf_pfn_limit() on 32bit
+ - [x86] speculation/l1tf: Fix off-by-one error when warning that system has
+ too much RAM (Closes: #907581)
+ - [x86] speculation/l1tf: Suggest what to do on systems with too much RAM
+ - [x86] vdso: Fix vDSO build if a retpoline is emitted
+ - [x86] process: Re-export start_thread()
+ - [x86] KVM: ensure all MSRs can always be KVM_GET/SET_MSR'd
+ - [x86] KVM: SVM: Call x86_spec_ctrl_set_guest/host() with interrupts
+ disabled
+ - fuse: Don't access pipe->buffers without pipe_lock()
+ - fuse: fix initial parallel dirops
+ - fuse: fix double request_end()
+ - fuse: fix unlocked access to processing queue
+ - fuse: umount should wait for all requests
+ - fuse: Fix oops at process_init_reply()
+ - fuse: Add missed unlock_page() to fuse_readpages_fill()
+ - lib/vsprintf: Do not handle %pO[^F] as %px
+ - udl-kms: change down_interruptible to down
+ - udl-kms: handle allocation failure
+ - udl-kms: fix crash due to uninitialized memory
+ - udl-kms: avoid division
+ - b43legacy/leds: Ensure NUL-termination of LED name string
+ - b43/leds: Ensure NUL-termination of LED name string
+ - ASoC: dpcm: don't merge format from invalid codec dai
+ - ASoC: zte: Fix incorrect PCM format bit usages
+ - ASoC: sirf: Fix potential NULL pointer dereference
+ - ASoC: wm_adsp: Correct DSP pointer for preloader control
+ - [armhf] pinctrl: freescale: off by one in imx1_pinconf_group_dbg_show()
+ - scsi: qla2xxx: Fix stalled relogin
+ - [x86] vdso: Fix lsl operand order
+ - [x86 ]nmi: Fix NMI uaccess race against CR3 switching
+ - [x86] irqflags: Mark native_restore_fl extern inline
+ - [x86] spectre: Add missing family 6 check to microcode check
+ - [x86] speculation/l1tf: Increase l1tf memory limit for Nehalem+
+ (Closes: #907581)
+ - hwmon: (nct6775) Fix potential Spectre v1
+ - [x86] entry/64: Wipe KASAN stack shadow before rewind_stack_do_exit()
+ - [x86] Allow generating user-space headers without a compiler
+ - [s390x] mm: fix addressing exception after suspend/resume
+ - [s390x] lib: use expoline for all bcr instructions
+ - [s390x] fix br_r1_trampoline for machines without exrl
+ - [s390x] qdio: reset old sbal_state flags
+ - [s390x] numa: move initial setup of node_to_cpumask_map
+ - [s390x] pci: fix out of bounds access during irq setup
+ - [s390x] purgatory: Fix crash with expoline enabled
+ - [s390x] purgatory: Add missing FORCE to Makefile targets
+ - kprobes: Show blacklist addresses as same as kallsyms does
+ - kprobes: Replace %p with other pointer types
+ - kprobes/arm: Fix %p uses in error messages
+ - kprobes: Make list and blacklist root user read only
+ - [mips*] Correct the 64-bit DSP accumulator register size
+ - [mips*] memset.S: Fix byte_fixup for MIPSr6
+ - [mips*] Always use -march=<arch>, not -<arch> shortcuts
+ - [mips*] Change definition of cpu_relax() for Loongson-3
+ - [mips*] lib: Provide MIPS64r6 __multi3() for GCC < 7
+ - tpm: Return the actual size when receiving an unsupported command
+ - tpm: separate cmd_ready/go_idle from runtime_pm
+ - scsi: mpt3sas: Fix calltrace observed while running IO & reset
+ - scsi: mpt3sas: Fix _transport_smp_handler() error path
+ - scsi: sysfs: Introduce sysfs_{un,}break_active_protection()
+ - scsi: core: Avoid that SCSI device removal through sysfs triggers a
+ deadlock
+ - iscsi target: fix session creation failure handling
+ - mtd: rawnand: hynix: Use ->exec_op() in hynix_nand_reg_write_op()
+ - mtd: rawnand: fsmc: Stop using chip->read_buf()
+ - mtd: rawnand: marvell: add suspend and resume hooks
+ - mtd: rawnand: qcom: wait for desc completion in all BAM channels
+ - [arm64] clk: rockchip: fix clk_i2sout parent selection bits on rk3399
+ - PM / clk: signedness bug in of_pm_clk_add_clks()
+ - power: generic-adc-battery: fix out-of-bounds write when copying channel
+ properties
+ - power: generic-adc-battery: check for duplicate properties copied from
+ iio channels
+ - watchdog: Mark watchdog touch functions as notrace
+ - cdrom: Fix info leak/OOB read in cdrom_ioctl_drive_status
+ - [x86] dumpstack: Don't dump kernel memory based on usermode RIP
+
+ [ Ben Hutchings ]
+ * Set ABI to 1
+ * [x86,arm64] Disable code signing for upload to unstable
+ * [rt] Re-enable PREEMPT_RT
+ * aufs: Update support patchset to aufs4.18-20180827 (no functional change)
+ * netfilter: Enable NF_TABLES_SET as module, replacing the multiple set
+ type modules that were enabled before 4.18
+ * [powerpc,powerpcspe,ppc64] Build-Depend on updated kernel-wedge to fix
+ broken symlinks in kernel-image udeb
+
+ [ Romain Perier ]
+ * [rt] Update to 4.18.5-rt3
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 06 Sep 2018 15:32:14 +0100
+
+linux (4.18.5-1~exp1) experimental; urgency=medium
+
+ * New upstream release: https://kernelnewbies.org/Linux_4.18
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.18.1
+ - [x86] paravirt: Fix spectre-v2 mitigations for paravirt guests
+ - [x86] speculation: Protect against userspace-userspace spectreRSB
+ - [x86] kprobes: Fix %p uses in error messages
+ - [x86] irqflags: Provide a declaration for native_save_fl
+ - [x86] speculation/l1tf: Increase 32bit PAE __PHYSICAL_PAGE_SHIFT
+ - [x86] speculation/l1tf: Change order of offset/type in swap entry
+ - [x86] speculation/l1tf: Protect swap entries against L1TF
+ - [x86] speculation/l1tf: Protect PROT_NONE PTEs against speculation
+ - [x86] speculation/l1tf: Make sure the first page is always reserved
+ - [x86] speculation/l1tf: Add sysfs reporting for l1tf
+ - [x86] speculation/l1tf: Disallow non privileged high MMIO PROT_NONE
+ mappings
+ - [x86] speculation/l1tf: Limit swap file size to MAX_PA/2
+ - [x86] Move the l1tf function and define pr_fmt properly
+ - sched/smt: Update sched_smt_present at runtime
+ - [x86] smp: Provide topology_is_primary_thread()
+ - [x86] topology: Provide topology_smt_supported()
+ - cpu/hotplug: Make bringup/teardown of smp threads symmetric
+ - cpu/hotplug: Split do_cpu_down()
+ - cpu/hotplug: Provide knobs to control SMT
+ - [x86] cpu: Remove the pointless CPU printout
+ - [x86] cpu/AMD: Remove the pointless detect_ht() call
+ - [x86] cpu/common: Provide detect_ht_early()
+ - [x86] cpu/topology: Provide detect_extended_topology_early()
+ - [x86] cpu/intel: Evaluate smp_num_siblings early
+ - [x86] cpu/AMD: Do not check CPUID max ext level before parsing SMP info
+ - [x86] cpu/AMD: Evaluate smp_num_siblings early
+ - [x86] apic: Ignore secondary threads if nosmt=force
+ - [x86] speculation/l1tf: Extend 64bit swap file size limit
+ - [x86] cpufeatures: Add detection of L1D cache flush support.
+ - [x86] cpu/AMD: Move TOPOEXT reenablement before reading smp_num_siblings
+ - [x86] speculation/l1tf: Protect PAE swap entries against L1TF
+ - [x86] speculation/l1tf: Fix up pte->pfn conversion for PAE
+ - Revert "x86/apic: Ignore secondary threads if nosmt=force"
+ - cpu/hotplug: Boot HT siblings at least once
+ - [x86] KVM: Warn user if KVM is loaded SMT and L1TF CPU bug being present
+ - [x86] KVM/VMX: Add module argument for L1TF mitigation
+ - [x86] KVM/VMX: Add L1D flush algorithm
+ - [x86] KVM/VMX: Add L1D MSR based flush
+ - [x86] KVM/VMX: Add L1D flush logic
+ - [x86] KVM/VMX: Split the VMX MSR LOAD structures to have an host/guest
+ numbers
+ - [x86] KVM/VMX: Add find_msr() helper function
+ - [x86] KVM/VMX: Separate the VMX AUTOLOAD guest/host number accounting
+ - [x86] KVM/VMX: Extend add_atomic_switch_msr() to allow VMENTER only MSRs
+ - [x86] KVM/VMX: Use MSR save list for IA32_FLUSH_CMD if required
+ - cpu/hotplug: Online siblings when SMT control is turned on
+ - [x86] litf: Introduce vmx status variable
+ - [x86] kvm: Drop L1TF MSR list approach
+ - [x86] l1tf: Handle EPT disabled state proper
+ - [x86] kvm: Move l1tf setup function
+ - [x86] kvm: Add static key for flush always
+ - [x86] kvm: Serialize L1D flush parameter setter
+ - [x86] kvm: Allow runtime control of L1D flush
+ - cpu/hotplug: Expose SMT control init function
+ - cpu/hotplug: Set CPU_SMT_NOT_SUPPORTED early
+ - [x86] bugs, kvm: Introduce boot-time control of L1TF mitigations
+ - [x86] speculation/l1tf: Unbreak !__HAVE_ARCH_PFN_MODIFY_ALLOWED
+ architectures
+ - [x86] KVM/VMX: Initialize the vmx_l1d_flush_pages' content
+ - cpu/hotplug: detect SMT disabled by BIOS
+ - [x86] KVM/VMX: Don't set l1tf_flush_l1d to true from vmx_l1d_flush()
+ - [x86] KVM/VMX: Replace 'vmx_l1d_flush_always' with 'vmx_l1d_flush_cond'
+ - [x86] KVM/VMX: Move the l1tf_flush_l1d test to vmx_l1d_flush()
+ - [x86] irq: Demote irq_cpustat_t::__softirq_pending to u16
+ - [x86] KVM/VMX: Introduce per-host-cpu analogue of l1tf_flush_l1d
+ - [x86] Don't include linux/irq.h from asm/hardirq.h
+ - [x86] irq: Let interrupt handlers set kvm_cpu_l1tf_flush_l1d
+ - [x86] KVM/VMX: Don't set l1tf_flush_l1d from vmx_handle_external_intr()
+ - [x86] speculation: Simplify sysfs report of VMX L1TF vulnerability
+ - [x86] speculation: Use ARCH_CAPABILITIES to skip L1D flush on vmentry
+ - [x86] KVM/VMX: Tell the nested hypervisor to skip L1D flush on vmentry
+ - cpu/hotplug: Fix SMT supported evaluation
+ - [x86] speculation/l1tf: Invert all not present mappings
+ - [x86] speculation/l1tf: Make pmd/pud_mknotpresent() invert
+ - [x86] mm/pat: Make set_memory_np() L1TF safe
+ - [x86] mm/kmmio: Make the tracer robust against L1TF
+ - tools headers: Synchronise x86 cpufeatures.h for L1TF additions
+ - [x86] microcode: Allow late microcode loading with SMT disabled
+ - cpu/hotplug: Non-SMP machines do not make use of booted_once
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.18.2
+ - [x86] l1tf: Fix build error seen if CONFIG_KVM_INTEL is disabled
+ - [x86] hyper-v: Check for VP_INVAL in hyperv_flush_tlb_others()
+ - [x86] platform/UV: Mark memblock related init code and data correctly
+ - [x86] mm/pti: Clear Global bit more aggressively
+ - [x86] xen/pv: Call get_cpu_address_sizes to set x86_virt/phys_bits
+ - [x86] mm: Disable ioremap free page handling on x86-PAE
+ - crypto: ccp - Check for NULL PSP pointer at module unload
+ - crypto: ccp - Fix command completion detection race
+ - [x86] crypto: x86/sha256-mb - fix digest copy in
+ sha256_mb_mgr_get_comp_job_avx2()
+ - crypto: vmac - require a block cipher with 128-bit block size
+ - crypto: vmac - separate tfm and request context
+ - Bluetooth: hidp: buffer overflow in hidp_process_report (CVE-2018-9363)
+ - ioremap: Update pgtable free interfaces with addr
+ - [x86] mm: Add TLB purge to free pmd/pte page interfaces
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.18.3
+ - [x86] speculation/l1tf: Exempt zeroed PTEs from inversion
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.18.4
+ - l2tp: use sk_dst_check() to avoid race on sk->sk_dst_cache
+ - net_sched: fix NULL pointer dereference when delete tcindex filter
+ - net_sched: Fix missing res info when create new tc_index filter
+ - r8169: don't use MSI-X on RTL8168g
+ - ALSA: hda - Sleep for 10ms after entering D3 on Conexant codecs
+ - ALSA: hda - Turn CX8200 into D3 as well upon reboot
+ - ALSA: vx222: Fix invalid endian conversions
+ - ALSA: cs5535audio: Fix invalid endian conversion
+ - ALSA: dice: fix wrong copy to rx parameters for Alesis iO26
+ - ALSA: hda: Correct Asrock B85M-ITX power_save blacklist entry
+ - ALSA: memalloc: Don't exceed over the requested size
+ - ALSA: vxpocket: Fix invalid endian conversions
+ - ALSA: seq: Fix poll() error return
+ - media: gl861: fix probe of dvb_usb_gl861
+ - USB: serial: sierra: fix potential deadlock at close
+ - USB: serial: pl2303: add a new device id for ATEN
+ - USB: option: add support for DW5821e
+ - [x86] ACPI / PM: save NVS memory for ASUS 1025C laptop
+ - tty: serial: 8250: Revert NXP SC16C2552 workaround
+ - serial: 8250_exar: Read INT0 from slave device, too
+ - [x86, armhf, arm64] serial: 8250_dw: always set baud rate in
+ dw8250_set_termios
+ - [armhf, arm64] serial: 8250_dw: Add ACPI support for uart on Broadcom SoC
+ - uio: fix wrong return value from uio_mmap()
+ - Revert "uio: use request_threaded_irq instead"
+ - Bluetooth: avoid killing an already killed socket
+ - net: sock_diag: Fix spectre v1 gadget in __sock_diag_cmd()
+ - [x86] hv/netvsc: Fix NULL dereference at single queue mode fallback
+ - r8169: don't use MSI-X on RTL8106e
+ - ip_vti: fix a null pointer deferrence when create vti fallback tunnel
+ - [arm64] net: ethernet: mvneta: Fix napi structure mixup on armada 3700
+ - [arm64] net: mvneta: fix mvneta_config_rss on armada 3700
+ - cls_matchall: fix tcf_unbind_filter missing
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.18.5
+ - [mips*, x86] EDAC: Add missing MEM_LRDDR4 entry in edac_mem_types[]
+ - pty: fix O_CLOEXEC for TIOCGPTPEER
+ - mm: Allow non-direct-map arguments to free_reserved_area()
+ - [x86] mm/init: Pass unconverted symbol addresses to free_init_pages()
+ - [x86] mm/init: Add helper for freeing kernel image pages
+ - [x86] mm/init: Remove freed kernel image areas from alias mapping
+ - [powerpc64] Show ori31 availability in spectre_v1 sysfs file not v2
+ - ext4: fix spectre gadget in ext4_mb_regular_allocator()
+ - [x86] drm/i915/kvmgt: Fix potential Spectre v1
+ - drm/amdgpu/pm: Fix potential Spectre v1
+ - [hppa/parisc] Remove unnecessary barriers from spinlock.h
+ - [hppa/parisc] Remove ordered stores from syscall.S
+ - PCI: Restore resized BAR state on resume
+ - PCI/ACPI/PM: Resume all bridges on suspend-to-RAM
+ - PCI: hotplug: Don't leak pci_slot on registration failure
+ - [arm64] PCI: aardvark: Size bridges before resources allocation
+ - PCI: Skip MPS logic for Virtual Functions (VFs)
+ - PCI: pciehp: Fix use-after-free on unplug
+ - PCI: pciehp: Fix unprotected list iteration in IRQ handler
+ - i2c: core: ACPI: Properly set status byte to 0 for multi-byte writes
+ - [armhf] i2c: imx: Fix race condition in dma read
+ - reiserfs: fix broken xattr handling (heap corruption, bad retval)
+
+ [ Uwe Kleine-König ]
+ * [arm64] enable RTC_DRV_PCF8563 for Odroid-C2
+
+ [ Romain Perier ]
+ * [armhf, arm64] add the rt featureset, which adds support for
+ PREEMPT_RT (Closes #719547)
+ * spi: Enable CONFIG_SPI_SPIDEV (Closes: #904043)
+
+ [ Ben Hutchings ]
+ * certs: Remove certificate for my personal signing key
+ * Update policy version to 4.2.0:
+ - linux-kbuild: Change "#!/usr/bin/env perl" to "#!/usr/bin/perl"
+ - Build with KBUILD_VERBOSE=1 by default
+ - objtool, usbip: Build with V=1 by default
+ * cpupower: Fix handling of noopt and nostrip build options
+ * debian/bin/gencontrol_signed.py: Add certificate fingerprints to template
+ metadata
+ * scripts/kernel-doc: Escape all literal braces in regexes (Closes: #905116)
+ * debian/bin/genorig.py: Add support for debian/copyright Files-Excluded
+ field
+ * Move file exclusion from d/p/debian/dfsg/files-1 to d/copyright
+ * Move disabling of broken features from d/p/series-orig to d/p/series
+ * Remove our private patch system, which is no longer needed
+ * debian/bin: Change "#!/usr/bin/env python3" to "#!/usr/bin/python3"
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 26 Aug 2018 20:52:17 +0100
+
+linux (4.18~rc5-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ John Paul Adrian Glaubitz ]
+ * [m68k] net: Enable CONFIG_XSURF100 as module.
+ * [m68k] udeb: Remove individual modules from nic-modules.
+ * [m68k] scsi: Enable CONFIG_SCSI_ZORRO_ESP as module.
+ * [m68k] udeb: Add zorro_esp module to scsi-modules.
+
+ [ Ben Hutchings ]
+ * [powerpcspe] powerpc/Makefile: Assemble with -me500 when building for E500
+ (fixes FTBFS) (thanks to James Clarke)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 19 Jul 2018 16:16:23 +0100
+
+linux (4.18~rc4-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * Remove remaining Python 2 (build-)dependencies:
+ - Build docs using Python 3 version of Sphinx
+ - linux-perf: Build docs using asciidoctor
+ - linux-perf: Use Python 3 for scripts
+ * autofs: rename 'autofs' module back to 'autofs4' (Closes: #902946)
+ * udeb: Move of_mdio to nic-shared-modules (Closes: #903587)
+ * [armhf] mm: Export __sync_icache_dcache() for xen-privcmd (fixes FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 12 Jul 2018 05:12:50 +0100
+
+linux (4.18~rc3-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * aufs: Update to aufs4.x-rcN 20180702
+ * netfilter: ipvs: Fix invalid bytes in IP_VS_MH_TAB_INDEX help text
+ * Update config for 4.18 using kconfigeditor2
+ - [x86,arm64] PCI: HOTPLUG_PCI_SHPC is now built-in
+ * Move config files from linux-source-<version> to an arch-dependent
+ linux-config-<version> package
+ * lockdep: Stub task_struct::state
+ * [sh4] udeb: Add nic-shared-modules package
+ * udeb: Moved fixed_phy to nic-shared-modules
+
+ [ YunQiang Su ]
+ * [mips*r6*] Enable dtb building for boston.
+ * [mips*r6*/mipsn32*] build linux-perf in rules.real.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 03 Jul 2018 17:26:05 +0100
+
+linux (4.17.17-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.17.16
+ - [x86] platform/UV: Mark memblock related init code and data correctly
+ - [x86] mm/pti: Clear Global bit more aggressively
+ - [x86] xen/pv: Call get_cpu_address_sizes to set x86_virt/phys_bits
+ - [x86] mm: Disable ioremap free page handling on x86-PAE
+ - kbuild: verify that $DEPMOD is installed
+ - [x86] crypto: ccp - Check for NULL PSP pointer at module unload
+ - [x86] crypto: ccp - Fix command completion detection race
+ - crypto: vmac - require a block cipher with 128-bit block size
+ - crypto: vmac - separate tfm and request context
+ - crypto: blkcipher - fix crash flushing dcache in error path
+ - crypto: ablkcipher - fix crash flushing dcache in error path
+ - crypto: skcipher - fix aligning block size in skcipher_copy_iv()
+ - crypto: skcipher - fix crash flushing dcache in error path
+ - ioremap: Update pgtable free interfaces with addr
+ - [x86] mm: Add TLB purge to free pmd/pte page interfaces
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.17.17
+ - [x86] speculation/l1tf: Exempt zeroed PTEs from inversion
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Sat, 18 Aug 2018 14:02:58 +0200
+
+linux (4.17.15-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.17.15
+ - [hppa/parisc] Enable CONFIG_MLONGCALLS by default
+ - [hppa/parisc] Define mb() and add memory barriers to assembler unlock
+ sequences
+ - Mark HI and TASKLET softirq synchronous
+ - stop_machine: Disable preemption after queueing stopper threads
+ - sched/deadline: Update rq_clock of later_rq when pushing a task
+ - zram: remove BD_CAP_SYNCHRONOUS_IO with writeback feature
+ - xen/netfront: don't cache skb_shinfo()
+ - bpf, sockmap: fix leak in bpf_tcp_sendmsg wait for mem path
+ - bpf, sockmap: fix bpf_tcp_sendmsg sock error handling
+ - scsi: sr: Avoid that opening a CD-ROM hangs with runtime power
+ management enabled
+ - scsi: qla2xxx: Fix memory leak for allocating abort IOCB
+ - init: rename and re-order boot_cpu_state_init()
+ - root dentries need RCU-delayed freeing
+ - make sure that __dentry_kill() always invalidates d_seq, unhashed or not
+ - fix mntput/mntput race
+ - fix __legitimize_mnt()/mntput() race
+ - [armhf] dts: imx6sx: fix irq for pcie bridge
+ - [x86] paravirt: Fix spectre-v2 mitigations for paravirt guests
+ - [x86] speculation: Protect against userspace-userspace spectreRSB
+ - [x86] kprobes/x86: Fix %p uses in error messages
+ - [x86] irqflags: Provide a declaration for native_save_fl
+ - [x86] speculation/l1tf: Increase 32bit PAE __PHYSICAL_PAGE_SHIFT
+ - [x86] speculation/l1tf: Change order of offset/type in swap entry
+ - [x86] speculation/l1tf: Protect swap entries against L1TF
+ - [x86] speculation/l1tf: Protect PROT_NONE PTEs against speculation
+ - [x86] speculation/l1tf: Make sure the first page is always reserved
+ - [x86] speculation/l1tf: Add sysfs reporting for l1tf
+ - [x86] speculation/l1tf: Disallow non privileged high MMIO PROT_NONE
+ mappings
+ - [x86] speculation/l1tf: Limit swap file size to MAX_PA/2
+ - [x86] bugs: Move the l1tf function and define pr_fmt properly
+ - sched/smt: Update sched_smt_present at runtime
+ - [x86] smp: Provide topology_is_primary_thread()
+ - [x86] topology: Provide topology_smt_supported()
+ - cpu/hotplug: Make bringup/teardown of smp threads symmetric
+ - cpu/hotplug: Split do_cpu_down()
+ - cpu/hotplug: Provide knobs to control SMT
+ - [x86] cpu: Remove the pointless CPU printout
+ - [x86] cpu/AMD: Remove the pointless detect_ht() call
+ - [x86] cpu/common: Provide detect_ht_early()
+ - [x86] cpu/topology: Provide detect_extended_topology_early()
+ - [x86] cpu/intel: Evaluate smp_num_siblings early
+ - [x86] CPU/AMD: Do not check CPUID max ext level before parsing SMP info
+ - [x86] cpu/AMD: Evaluate smp_num_siblings early
+ - [x86] apic: Ignore secondary threads if nosmt=force
+ - [x86] speculation/l1tf: Extend 64bit swap file size limit
+ - [x86] cpufeatures: Add detection of L1D cache flush support.
+ - [x86] CPU/AMD: Move TOPOEXT reenablement before reading smp_num_siblings
+ - [x86] speculation/l1tf: Protect PAE swap entries against L1TF
+ - [x86] speculation/l1tf: Fix up pte->pfn conversion for PAE
+ - Revert "[x86] apic: Ignore secondary threads if nosmt=force"
+ - cpu/hotplug: Boot HT siblings at least once
+ - [x86] KVM: Warn user if KVM is loaded SMT and L1TF CPU bug being present
+ - [x86] KVM/VMX: Add module argument for L1TF mitigation
+ - [x86] KVM/VMX: Add L1D flush algorithm
+ - [x86] KVM/VMX: Add L1D MSR based flush
+ - [x86] KVM/VMX: Add L1D flush logic
+ - [x86] KVM/VMX: Split the VMX MSR LOAD structures to have an host/guest
+ numbers
+ - [x86] KVM/VMX: Add find_msr() helper function
+ - [x86] KVM/VMX: Separate the VMX AUTOLOAD guest/host number accounting
+ - [x86] KVM/VMX: Extend add_atomic_switch_msr() to allow VMENTER only MSRs
+ - [x86] KVM/VMX: Use MSR save list for IA32_FLUSH_CMD if required
+ - cpu/hotplug: Online siblings when SMT control is turned on
+ - [x86] litf: Introduce vmx status variable
+ - [x86] kvm: Drop L1TF MSR list approach
+ - [x86] l1tf: Handle EPT disabled state proper
+ - [x86] kvm: Move l1tf setup function
+ - [x86] kvm: Add static key for flush always
+ - [x86] kvm: Serialize L1D flush parameter setter
+ - [x86] kvm: Allow runtime control of L1D flush
+ - cpu/hotplug: Expose SMT control init function
+ - cpu/hotplug: Set CPU_SMT_NOT_SUPPORTED early
+ - [x86] bugs, kvm: Introduce boot-time control of L1TF mitigations
+ - Documentation: Add section about CPU vulnerabilities
+ - [x86] speculation/l1tf: Unbreak !__HAVE_ARCH_PFN_MODIFY_ALLOWED
+ architectures
+ - [x86] KVM/VMX: Initialize the vmx_l1d_flush_pages' content
+ - Documentation/l1tf: Fix typos
+ - cpu/hotplug: detect SMT disabled by BIOS
+ - [x86] KVM/VMX: Don't set l1tf_flush_l1d to true from vmx_l1d_flush()
+ - [x86] KVM/VMX: Replace 'vmx_l1d_flush_always' with 'vmx_l1d_flush_cond'
+ - [x86] KVM/VMX: Move the l1tf_flush_l1d test to vmx_l1d_flush()
+ - [x86] irq: Demote irq_cpustat_t::__softirq_pending to u16
+ - [x86] KVM/VMX: Introduce per-host-cpu analogue of l1tf_flush_l1d
+ - [x86] Don't include linux/irq.h from asm/hardirq.h
+ - [x86] irq: Let interrupt handlers set kvm_cpu_l1tf_flush_l1d
+ - [x86] KVM/VMX: Don't set l1tf_flush_l1d from vmx_handle_external_intr()
+ - Documentation/l1tf: Remove Yonah processors from not vulnerable list
+ - [x86] speculation: Simplify sysfs report of VMX L1TF vulnerability
+ - [x86] speculation: Use ARCH_CAPABILITIES to skip L1D flush on vmentry
+ - KVM: VMX: Tell the nested hypervisor to skip L1D flush on vmentry
+ - cpu/hotplug: Fix SMT supported evaluation
+ - [x86] speculation/l1tf: Invert all not present mappings
+ - [x86] speculation/l1tf: Make pmd/pud_mknotpresent() invert
+ - [x86] mm/pat: Make set_memory_np() L1TF safe
+ - [x86] mm/kmmio: Make the tracer robust against L1TF
+ - tools headers: Synchronize prctl.h ABI header
+ - tools headers: Synchronise x86 cpufeatures.h for L1TF additions
+ - [x86] microcode: Allow late microcode loading with SMT disabled
+ - [x86] smp: fix non-SMP broken build due to redefinition of
+ apic_id_is_primary_thread
+ - cpu/hotplug: Non-SMP machines do not make use of booted_once
+ - [x86] init: fix build with CONFIG_SWAP=n
+ - [x86] CPU/AMD: Have smp_num_siblings and cpu_llc_id always be present
+
+ [ Ben Hutchings ]
+ * serdev: Enable SERIAL_DEV_BUS, SERIAL_DEV_CTRL_TTYPORT as built-in
+ (except on armel)
+ - bluetooth: Re-enable BT_HCIUART_{BCM,LL} (Closes: #906048)
+ * drivers/net/phy: Enable SFP as module (Closes: #906054)
+ * Revert "net: increase fragment memory usage limits" (CVE-2018-5391)
+
+ [ Salvatore Bonaccorso ]
+ * [x86] l1tf: Fix build error seen if CONFIG_KVM_INTEL is disabled
+ * [x86] i8259: Add missing include file
+ * Bluetooth: hidp: buffer overflow in hidp_process_report (CVE-2018-9363)
+ * Bump ABI to 3
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Fri, 17 Aug 2018 05:11:43 +0200
+
+linux (4.17.14-1) unstable; urgency=high
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.17.9
+ - compiler-gcc.h: Add __attribute__((gnu_inline)) to all inline declarations
+ - [x86] asm: Add _ASM_ARG* constants for argument registers to <asm/asm.h>
+ - [x86] paravirt: Make native_save_fl() extern inline
+ - alx: take rtnl before calling __alx_open from resume
+ - atm: Preserve value of skb->truesize when accounting to vcc
+ - atm: zatm: Fix potential Spectre v1
+ - [x86] hv_netvsc: split sub-channel setup into async and sync
+ - ipv6: sr: fix passing wrong flags to crypto_alloc_shash()
+ - ipvlan: fix IFLA_MTU ignored on NEWLINK
+ - ixgbe: split XDP_TX tail and XDP_REDIRECT map flushing
+ - net: dccp: avoid crash in ccid3_hc_rx_send_feedback()
+ - net: dccp: switch rx_tstamp_last_feedback to monotonic clock
+ - net: fix use-after-free in GRO with ESP
+ - net/mlx5e: Avoid dealing with vport representors if not being e-switch
+ manager
+ - net/mlx5e: Don't attempt to dereference the ppriv struct if not being
+ eswitch manager
+ - net/mlx5: E-Switch, Avoid setup attempt if not being e-switch manager
+ - net/mlx5: Fix command interface race in polling mode
+ - net/mlx5: Fix incorrect raw command length parsing
+ - net/mlx5: Fix required capability for manipulating MPFS
+ - net/mlx5: Fix wrong size allocation for QoS ETC TC regitster
+ - [armhf, arm64] net: mvneta: fix the Rx desc DMA address in the Rx path
+ - net/packet: fix use-after-free
+ - net/sched: act_ife: fix recursive lock and idr leak
+ - net/sched: act_ife: preserve the action control in case of error
+ - net_sched: blackhole: tell upper qdisc about dropped packets
+ - net: sungem: fix rx checksum support
+ - net/tcp: Fix socket lookups with SO_BINDTODEVICE
+ - qede: Adverstise software timestamp caps when PHC is not available.
+ - qed: Fix setting of incorrect eswitch mode.
+ - qed: Fix use of incorrect size in memcpy call.
+ - qed: Limit msix vectors in kdump kernel to the minimum required count.
+ - qmi_wwan: add support for the Dell Wireless 5821e module
+ - r8152: napi hangup fix after disconnect
+ - [s390x] qeth: don't clobber buffer on async TX completion
+ - [armhf, arm64] stmmac: fix DMA channel hang in half-duplex mode
+ - tcp: fix Fast Open key endianness
+ - tcp: prevent bogus FRTO undos with non-SACK flows
+ - vhost_net: validate sock before trying to put its fd
+ - VSOCK: fix loopback on big-endian systems
+ - nfp: flower: fix mpls ether type detection
+ - net: use dev_change_tx_queue_len() for SIOCSIFTXQLEN
+ - nfp: reject binding to shared blocks
+ - xen-netfront: Fix mismatched rtnl_unlock
+ - xen-netfront: Update features after registering netdev
+ - enic: do not overwrite error code
+ - i40e: split XDP_TX tail and XDP_REDIRECT map flushing
+ - IB/mlx5: Avoid dealing with vport representors if not being e-switch
+ manager
+ - [s390x] Revert "s390/qeth: use Read device to query hypervisor for MAC"
+ - [s390x] qeth: avoid using is_multicast_ether_addr_64bits on (u8 *)[6]
+ - [s390x] qeth: fix race when setting MAC address
+ - sfc: correctly initialise filter rwsem for farch
+ - virtio_net: split XDP_TX kick and XDP_REDIRECT map flushing
+ - [x86] kvm/Kconfig: Ensure CRYPTO_DEV_CCP_DD state at minimum matches
+ KVM_AMD
+ - net: cxgb3_main: fix potential Spectre v1
+ - net: lan78xx: Fix race in tx pending skb size calculation
+ - [x86] PCI: hv: Disable/enable IRQs rather than BH in hv_compose_msi_msg()
+ - netfilter: ebtables: reject non-bridge targets
+ - reiserfs: fix buffer overflow with long warning messages
+ - KEYS: DNS: fix parsing multiple options
+ - tls: Stricter error checking in zerocopy sendmsg path
+ - autofs: fix slab out of bounds read in getname_kernel()
+ - netfilter: ipv6: nf_defrag: drop skb dst before queueing
+ - bpf: reject any prog that failed read-only lock
+ - rds: avoid unenecessary cong_update in loop transport
+ - block: don't use blocking queue entered for recursive bio submits
+ - bpf: sockmap, fix crash when ipv6 sock is added
+ - bpf: sockmap, consume_skb in close path
+ - bpf: don't leave partial mangled prog in jit_subprogs error path
+ - net/nfc: Avoid stalls when nfc_alloc_send_skb() returned NULL.
+ - ipvs: initialize tbl->entries after allocation
+ - ipvs: initialize tbl->entries in ip_vs_lblc_init_svc()
+ - [armhf, arm64] smccc: Add SMCCC-specific return codes
+ - [arm64] Add 'ssbd' command-line option
+ - [arm64] ssbd: Add global mitigation state accessor
+ - [arm64] ssbd: Skip apply_ssbd if not using dynamic mitigation
+ - [arm64] ssbd: Restore mitigation status on CPU resume
+ - [arm64] ssbd: Introduce thread flag to control userspace mitigation
+ - [arm64] ssbd: Add prctl interface for per-thread mitigation
+ - [arm64] KVM: Add HYP per-cpu accessors
+ ARCH_FEATURES_FUNC_ID
+ - bpf: enforce correct alignment for instructions
+ - [armhf] bpf: fix to use bpf_jit_binary_lock_ro api
+ - bpf: undo prog rejection on read-only lock failure
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.17.10
+ - scsi: sd_zbc: Fix variable type and bogus comment
+ - scsi: qla2xxx: Fix inconsistent DMA mem alloc/free
+ - scsi: qla2xxx: Fix kernel crash due to late workqueue allocation
+ - scsi: qla2xxx: Fix NULL pointer dereference for fcport search
+ - KVM/Eventfd: Avoid crash when assign and deassign specific eventfd in
+ parallel.
+ - KVM: irqfd: fix race between EPOLLHUP and irq_bypass_register_consumer
+ - [x86] KVM: VMX: Mark VMXArea with revision_id of physical CPU even when
+ eVMCS enabled
+ - [x86] kvm/vmx: don't read current->thread.{fs,gs}base of legacy tasks
+ - [x86] kvmclock: set pvti_cpu0_va after enabling kvmclock
+ - [x86] apm: Don't access __preempt_count with zeroed fs
+ - [x86] events/intel/ds: Fix bts_interrupt_threshold alignment
+ - [x86] MCE: Remove min interval polling limitation
+ - fat: fix memory allocation failure handling of match_strdup()
+ - ALSA: rawmidi: Change resized buffers atomically
+ - [x86] ALSA: hda/realtek - Add Panasonic CF-SZ6 headset jack quirk
+ - [x86] ALSA: hda/realtek - Yet another Clevo P950 quirk entry
+ - [x86] ALSA: hda: add mute led support for HP ProBook 455 G5
+ - mm: memcg: fix use after free in mem_cgroup_iter()
+ - mm/huge_memory.c: fix data loss when splitting a file pmd
+ - [x86] cpufreq: intel_pstate: Register when ACPI PCCH is present
+ - [x86, arm64, powerpc*] vfio/pci: Fix potential Spectre v1
+ - stop_machine: Disable preemption when waking two stopper threads
+ - [powerpc*] powerpc/powernv: Fix save/restore of SPRG3 on entry/exit from
+ stop (idle)
+ - drm/amdgpu: Reserve VM root shared fence slot for command submission (v3)
+ - [x86] drm/i915: Fix hotplug irq ack on i965/g4x
+ - Revert "drm/amd/display: Don't return ddc result and read_bytes in same
+ return value"
+ - [x86] drm/nouveau: Remove bogus crtc check in pmops_runtime_idle
+ - [x86] drm/nouveau: Use drm_connector_list_iter_* for iterating connectors
+ - [x86] drm/nouveau: Avoid looping through fake MST connectors
+ - gen_stats: Fix netlink stats dumping in the presence of padding
+ - ipv4: Return EINVAL when ping_group_range sysctl doesn't map to user ns
+ - ipv6: fix useless rol32 call on hash
+ - ipv6: ila: select CONFIG_DST_CACHE
+ - lib/rhashtable: consider param->min_size when setting initial table size
+ - net: diag: Don't double-free TCP_NEW_SYN_RECV sockets in tcp_abort
+ - net: Don't copy pfmemalloc flag in __copy_skb_header()
+ - skbuff: Unconditionally copy pfmemalloc in __skb_clone()
+ - net/ipv4: Set oif in fib_compute_spec_dst
+ - net/ipv6: Do not allow device only routes via the multipath API
+ - net: phy: fix flag masking in __set_phy_supported
+ - qmi_wwan: add support for Quectel EG91
+ - rhashtable: add restart routine in rhashtable_free_and_destroy()
+ - sch_fq_codel: zero q->flows_cnt when fq_codel_init fails
+ - tg3: Add higher cpu clock for 5762.
+ - net: ip6_gre: get ipv6hdr after skb_cow_head()
+ - sctp: introduce sctp_dst_mtu
+ - sctp: fix the issue that pathmtu may be set lower than MINSEGMENT
+ - [x86] hv_netvsc: Fix napi reschedule while receive completion is busy
+ - net: aquantia: vlan unicast address list correct handling
+ - net/mlx4_en: Don't reuse RX page when XDP is set
+ - ipv6: make DAD fail with enhanced DAD when nonce length differs
+ - net: usb: asix: replace mii_nway_restart in resume path
+ - [alpha] fix osf_wait4() breakage
+ - drm_mode_create_lease_ioctl(): fix open-coded filp_clone_open()
+ - xhci: Fix perceived dead host due to runtime suspend race with event
+ handler
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.17.11
+ - [x86] KVM: VMX: support MSR_IA32_ARCH_CAPABILITIES as a feature MSR
+ - [x86] Revert "iommu/intel-iommu: Enable CONFIG_DMA_DIRECT_OPS=y and clean
+ up intel_{alloc,free}_coherent()"
+ - [mips*] Fix off-by-one in pci_resource_to_user()
+ - [arm64] clk: mvebu: armada-37xx-periph: Fix switching CPU rate from 300Mhz
+ to 1.2GHz
+ - [x86] xen/PVH: Set up GS segment for stack canary
+ - [x86] drm/nouveau: Fix runtime PM leak in nv50_disp_atomic_commit()
+ - [x86] drm/nouveau: Set DRIVER_ATOMIC cap earlier to fix debugfs
+ - [arm64] clk: meson-gxbb: set fclk_div2 as CLK_IS_CRITICAL
+ - bonding: set default miimon value for non-arp modes if not set
+ - ip: hash fragments consistently
+ - ip: in cmsg IP(V6)_ORIGDSTADDR call pskb_may_pull
+ - net: dsa: mv88e6xxx: fix races between lock and irq freeing
+ - net/mlx4_core: Save the qpn from the input modifier in RST2INIT wrapper
+ - net-next/hinic: fix a problem in hinic_xmit_frame()
+ - net: skb_segment() should not return NULL
+ - tcp: fix dctcp delayed ACK schedule
+ - tcp: helpers to send special DCTCP ack
+ - tcp: do not cancel delay-AcK on DCTCP special ACK
+ - tcp: do not delay ACK in DCTCP upon CE status change
+ - net/mlx5: E-Switch, UBSAN fix undefined behavior in mlx5_eswitch_mode
+ - r8169: restore previous behavior to accept BIOS WoL settings
+ - tls: check RCV_SHUTDOWN in tls_wait_data
+ - net/mlx5e: Add ingress/egress indication for offloaded TC flows
+ - net/mlx5e: Only allow offloading decap egress (egdev) flows
+ - net/mlx5e: Refine ets validation function
+ - nfp: flower: ensure dead neighbour entries are not offloaded
+ - sock: fix sg page frag coalescing in sk_alloc_sg
+ - net: phy: consider PHY_IGNORE_INTERRUPT in phy_start_aneg_priv
+ - multicast: do not restore deleted record source filter mode to new one
+ - net/ipv6: Fix linklocal to global address with VRF
+ - net/mlx5e: Don't allow aRFS for encapsulated packets
+ - net/mlx5e: Fix quota counting in aRFS expire flow
+ - net/mlx5: Adjust clock overflow work period
+ - rtnetlink: add rtnl_link_state check in rtnl_configure_link
+ - vxlan: add new fdb alloc and create helpers
+ - vxlan: make netlink notify in vxlan_fdb_destroy optional
+ - vxlan: fix default fdb entry netlink notify ordering during netdev create
+ - tcp: free batches of packets in tcp_prune_ofo_queue()
+ CVE-2018-5390
+ - tcp: avoid collapses in tcp_prune_queue() if possible
+ - tcp: detect malicious patterns in tcp_collapse_ofo_queue()
+ - tcp: call tcp_drop() from tcp_data_queue_ofo()
+ - tcp: add tcp_ooo_try_coalesce() helper
+ - Revert "staging:r8188eu: Use lib80211 to support TKIP"
+ - staging: speakup: fix wraparound in uaccess length check
+ - usb: cdc_acm: Add quirk for Castles VEGA3000
+ - usb: core: handle hub C_PORT_OVER_CURRENT condition
+ - [armhf, arm64] usb: dwc2: Fix DMA alignment to start at allocated boundary
+ - [armhf, arm64] usb: xhci: Fix memory leak in xhci_endpoint_reset()
+ - [x86, arm64] ACPICA: AML Parser: ignore dispatcher error status during
+ table load
+ - driver core: Partially revert "driver core: correct device's shutdown
+ order"
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.17.12
+ - Input: elan_i2c - add ACPI ID for lenovo ideapad 330
+ - Input: i8042 - add Lenovo LaVie Z to the i8042 reset list
+ - Input: elan_i2c - add another ACPI ID for Lenovo Ideapad 330-15AST
+ - mm: disallow mappings that conflict for devm_memremap_pages()
+ - kvm, mm: account shadow page tables to kmemcg
+ - delayacct: fix crash in delayacct_blkio_end() after delayacct init failure
+ - tracing: Fix double free of event_trigger_data
+ - tracing: Fix possible double free in event_enable_trigger_func()
+ - kthread, tracing: Don't expose half-written comm when creating kthreads
+ - tracing/kprobes: Fix trace_probe flags on enable_trace_kprobe() failure
+ - tracing: Quiet gcc warning about maybe unused link variable
+ - [arm64] fix vmemmap BUILD_BUG_ON() triggering on !vmemmap setups
+ - [x86] drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
+ - kcov: ensure irq code sees a valid area
+ - mm: check for SIGKILL inside dup_mmap() loop
+ - drm/amd/powerplay: Set higher SCLK&MCLK frequency than dpm7 in OD (v2)
+ - xen/netfront: raise max number of slots in xennet_get_responses()
+ - [x86] hv_netvsc: fix network namespace issues with VF support
+ - skip LAYOUTRETURN if layout is invalid
+ - ixgbe: Fix setting of TC configuration for macvlan case
+ - ALSA: emu10k1: add error handling for snd_ctl_add
+ - ALSA: fm801: add error handling for snd_ctl_add
+ - NFSv4.1: Fix the client behaviour on NFS4ERR_SEQ_FALSE_RETRY
+ - nfsd: fix error handling in nfs4_set_delegation()
+ - nfsd: fix potential use-after-free in nfsd4_decode_getdeviceinfo
+ - vfio: platform: Fix reset module leak in error path
+ - vfio/mdev: Check globally for duplicate devices
+ - vfio/type1: Fix task tracking for QEMU vCPU hotplug
+ - kernel/hung_task.c: show all hung tasks before panic
+ - mem_cgroup: make sure moving_account, move_lock_task and stat_cpu in the
+ same cacheline
+ - mm: /proc/pid/pagemap: hide swap entries from unprivileged users
+ - mm: vmalloc: avoid racy handling of debugobjects in vunmap
+ - mm/slub.c: add __printf verification to slab_err()
+ - rtc: ensure rtc_set_alarm fails when alarms are not supported
+ - rxrpc: Fix terminal retransmission connection ID to include the channel
+ - [arm64] net: hns3: Fix for VF mailbox cannot receiving PF response
+ - perf tools: Fix pmu events parsing rule
+ - netfilter: ipset: forbid family for hash:mac sets
+ - netfilter: ipset: List timing out entries with "timeout 1" instead of zero
+ - printk: drop in_nmi check from printk_safe_flush_on_panic()
+ - [armhf] bpf: fix inconsistent naming about emit_a32_lsr_{r64,i64}
+ - ceph: fix alignment of rasize
+ - ceph: fix use-after-free in ceph_statfs()
+ - e1000e: Ignore TSYNCRXCTL when getting I219 clock attributes
+ - infiniband: fix a possible use-after-free bug (CVE-2018-14734)
+ - [powerpc*] lib: Adjust .balign inside string functions for PPC32
+ - [powerpc*] 64s: Add barrier_nospec
+ - [powerpc*] eeh: Fix use-after-release of EEH driver
+ - [powerpc*] 64s: Fix compiler store ordering to SLB shadow area
+ - [arm64] net: hns3: Fix for phy not link up problem after resetting
+ - [arm64] net: hns3: Fix for service_task not running problem after
+ resetting
+ - RDMA/mad: Convert BUG_ONs to error flows
+ - lightnvm: fix partial read error path
+ - lightnvm: proper error handling for pblk_bio_add_pages
+ - lightnvm: pblk: warn in case of corrupted write buffer
+ - netfilter: nf_tables: check msg_type before nft_trans_set(trans)
+ - pnfs: Don't release the sequence slot until we've processed layoutget on
+ open
+ - NFS: Fix up nfs_post_op_update_inode() to force ctime updates
+ - disable loading f2fs module on PAGE_SIZE > 4KB
+ - f2fs: fix error path of move_data_page
+ - f2fs: don't drop dentry pages after fs shutdown
+ - f2fs: fix to don't trigger writeback during recovery
+ - f2fs: fix to wait page writeback during revoking atomic write
+ - f2fs: Fix deadlock in shutdown ioctl
+ - f2fs: fix missing clear FI_NO_PREALLOC in some error case
+ - f2fs: fix to detect failure of dquot_initialize
+ - f2fs: fix race in between GC and atomic open
+ - block, bfq: remove wrong lock in bfq_requests_merged
+ - usbip: usbip_detach: Fix memory, udev context and udev leak
+ - usbip: dynamically allocate idev by nports found in sysfs
+ - [x86] perf/x86/intel/uncore: Correct fixed counter index check in
+ generic code
+ - [x86] perf/x86/intel/uncore: Correct fixed counter index check for NHM
+ - PCI: Fix devm_pci_alloc_host_bridge() memory leak
+ - btrfs: balance dirty metadata pages in btrfs_finish_ordered_io
+ - iwlwifi: pcie: fix race in Rx buffer allocator
+ - iwlwifi: mvm: open BA session only when sta is authorized
+ - Bluetooth: hci_qca: Fix "Sleep inside atomic section" warning
+ - drm/amd/display: Do not program interrupt status on disabled crtc
+ - Bluetooth: btusb: Add a new Realtek 8723DE ID 2ff8:b011
+ - ASoC: dpcm: fix BE dai not hw_free and shutdown
+ - mfd: cros_ec: Fail early if we cannot identify the EC
+ - mwifiex: handle race during mwifiex_usb_disconnect
+ - wlcore: sdio: check for valid platform device data before suspend
+ - [arm64] net: hns3: Fixes initalization of RoCE handle and makes it
+ conditional
+ - [arm64] net: hns3: Fixes the init of the VALID BD info in the descriptor
+ - media: tw686x: Fix incorrect vb2_mem_ops GFP flags
+ - media: cec-pin-error-inj: avoid a false-positive Spectre detection
+ - media: videobuf2-core: don't call memop 'finish' when queueing
+ - Btrfs: don't return ino to ino cache if inode item removal fails
+ - Btrfs: don't BUG_ON() in btrfs_truncate_inode_items()
+ - btrfs: add barriers to btrfs_sync_log before log_commit_wait wakeups
+ - btrfs: qgroup: Finish rescan when hit the last leaf of extent tree
+ - [x86] microcode: Make the late update update_lock a raw lock for RT
+ - PM / wakeup: Make s2idle_lock a RAW_SPINLOCK
+ - PCI: Prevent sysfs disable of device while driver is attached
+ - [arm64] soc: qcom: qmi: fix a buffer sizing bug
+ - [arm64] soc: qcom: smem: fix qcom_smem_set_global_partition()
+ - [arm64] soc: qcom: smem: byte swap values properly
+ - nvme-rdma: stop admin queue before freeing it
+ - nvme-pci: Fix AER reset handling
+ - ath: Add regulatory mapping for : FCC3_ETSIC, ETSI8_WORLD, APL13_WORLD,
+ APL2_FCCA, Uganda, Tanzania, Serbia, Bermuda and Bahamas
+ - sched/cpufreq: Modify aggregate utilization to always include blocked FAIR
+ utilization
+ - [powerpc*] Add a missing include header
+ - [powerpc*] chrp/time: Make some functions static, add missing header
+ include
+ - [powerpc*] powermac: Add missing prototype for note_bootable_part()
+ - [powerpc*] powermac: Mark variable x as unused
+ - powerpc: Add __printf verification to prom_printf
+ - [x86] KVM: prevent integer overflows in KVM_MEMORY_ENCRYPT_REG_REGION
+ - [powerpc*] 8xx: fix invalid register expression in head_8xx.S
+ - [arm64] pinctrl: msm: fix gpio-hog related boot issues
+ - bpf: fix multi-function JITed dump obtained via syscall
+ - [powerpc*] bpf: pad function address loads with NOPs
+ - PCI: pciehp: Request control of native hotplug only if supported
+ - mwifiex: correct histogram data with appropriate index
+ - ima: based on policy verify firmware signatures (pre-allocated buffer)
+ - spi: Add missing pm_runtime_put_noidle() after failed get
+ - [arm64] net: hns3: Fix for CMDQ and Misc. interrupt init order problem
+ - [arm64] net: hns3: Fix the missing client list node initialization
+ - [arm64] net: hns3: Fix for hns3 module is loaded multiple times problem
+ - fscrypt: use unbound workqueue for decryption
+ - [armhf, arm64] net: mvpp2: Add missing VLAN tag detection
+ - scsi: ufs: ufshcd: fix possible unclocked register access
+ - scsi: ufs: fix exception event handling
+ - [s390x] scsi: zfcp: assert that the ERP lock is held when tracing a
+ recovery trigger
+ - drm/nouveau: remove fence wait code from deferred client work handler
+ - drm/nouveau/gem: lookup VMAs for buffers referenced by pushbuf ioctl
+ - drm/nouveau/fifo/gk104-: poll for runlist update completion
+ - Bluetooth: btusb: add ID for LiteOn 04ca:301a
+ - rtc: tps6586x: fix possible race condition
+ - rtc: vr41xx: fix possible race condition
+ - rtc: tps65910: fix possible race condition
+ - ALSA: emu10k1: Rate-limit error messages about page errors
+ - regulator: pfuze100: add .is_enable() for pfuze100_swb_regulator_ops
+ - md/raid1: add error handling of read error from FailFast device
+ - md: fix NULL dereference of mddev->pers in remove_and_add_spares()
+ - ixgbevf: fix MAC address changes through ixgbevf_set_mac()
+ - gpu: host1x: Acquire a reference to the IOVA cache
+ - media: smiapp: fix timeout checking in smiapp_read_nvm
+ - PCI/DPC: Clear interrupt status in interrupt handler top half
+ - clocksource: Move inline keyword to the beginning of function declarations
+ - net: ethernet: ti: cpsw-phy-sel: check bus_find_device() ret value
+ - ALSA: usb-audio: Apply rate limit to warning messages in URB complete
+ callback
+ - [arm64] net: hns3: Fix for fiber link up problem
+ - media: atomisp: ov2680: don't declare unused vars
+ - media: staging: atomisp: Comment out several unused sensor resolutions
+ - [arm64] cmpwait: Clear event register before arming exclusive monitor
+ - HID: hid-plantronics: Re-resend Update to map button for PTT products
+ - drm/amd/display: remove need of modeset flag for overlay planes (V2)
+ - drm/radeon: fix mode_valid's return type
+ - drm/amdgpu: Remove VRAM from shared bo domains.
+ - drm/amd/display: Fix dim display on DCE11
+ - IB: Fix RDMA_RXE and INFINIBAND_RDMAVT dependencies for DMA_VIRT_OPS
+ - [powerpc*] embedded6xx/hlwd-pic: Prevent interrupts from being handled by
+ Starlet
+ - HID: i2c-hid: check if device is there before really probing
+ - rsi: Add null check for virtual interfaces in wowlan config
+ - nvmem: properly handle returned value nvmem_reg_read
+ - [armhf] ARM: dts: imx53: Fix LDB OF graph warning
+ - i40e: free the skb after clearing the bitlock
+ - tty: Fix data race in tty_insert_flip_string_fixed_flag
+ - dma-iommu: Fix compilation when !CONFIG_IOMMU_DMA
+ - net: phy: phylink: Release link GPIO
+ - media: rcar_jpu: Add missing clk_disable_unprepare() on error in
+ jpu_open()
+ - libata: Fix command retry decision
+ - ACPI / LPSS: Only call pwm_add_table() for Bay Trail PWM if PMIC HRV is 2
+ - media: media-device: fix ioctl function types
+ - media: saa7164: Fix driver name in debug output
+ - media: em28xx: Fix DualHD broken second tuner
+ - mtd: rawnand: fsl_ifc: fix FSL NAND driver to read all ONFI parameter
+ pages
+ - brcmfmac: Add support for bcm43364 wireless chipset
+ - [s390x] cpum_sf: Add data entry sizes to sampling trailer entry
+ - perf: fix invalid bit in diagnostic entry
+ - net: phy: sfp: handle cases where neither BR, min nor BR, max is given
+ - bnxt_en: Check unsupported speeds in bnxt_update_link() on PF only.
+ - bnxt_en: Always forward VF MAC address to the PF.
+ - mm, powerpc, x86: define VM_PKEY_BITx bits if CONFIG_ARCH_HAS_PKEYS is
+ enabled
+ - staging: most: cdev: fix chrdev_region leak
+ - scsi: 3w-9xxx: fix a missing-check bug
+ - scsi: 3w-xxxx: fix a missing-check bug
+ - scsi: megaraid: silence a static checker bug
+ - scsi: hisi_sas: config ATA de-reset as an constrained command for v3 hw
+ - soc/tegra: pmc: Don't allocate struct tegra_powergate on stack
+ - scsi: qedf: Set the UNLOADING flag when removing a vport
+ - dma-direct: try reallocation with GFP_DMA32 if possible
+ - staging: lustre: o2iblnd: fix race at kiblnd_connect_peer
+ - staging: lustre: o2iblnd: Fix FastReg map/unmap for MLX5
+ - thermal: exynos: fix setting rising_threshold for Exynos5433
+ - regulator: add dummy function of_find_regulator_by_node
+ - bpf: fix references to free_bpf_prog_info() in comments
+ - f2fs: avoid fsync() failure caused by EAGAIN in writepage()
+ - media: em28xx: fix a regression with HVR-950
+ - media: siano: get rid of __le32/__le16 cast warnings
+ - mt76x2: fix avg_rssi estimation
+ - drm/atomic: Handling the case when setting old crtc for plane
+ - mmc: sdhci-omap: Fix when capabilities are obtained from
+ SDHCI_CAPABILITIES reg
+ - f2fs: check cap_resource only for data blocks
+ - mlxsw: spectrum_router: Return an error for non-default FIB rules
+ - ALSA: hda/ca0132: fix build failure when a local macro is defined
+ - mmc: dw_mmc: update actual clock for mmc debugfs
+ - mmc: pwrseq: Use kmalloc_array instead of stack VLA
+ - [arm64] dt-bindings: pinctrl: meson: add support for the Meson8m2 SoC
+ - [armhf] spi: meson-spicc: Fix error handling in meson_spicc_probe()
+ - [arm64] net: hns3: Fixes the out of bounds access in hclge_map_tqp
+ - dt-bindings: net: meson-dwmac: new compatible name for AXG SoC
+ - i40e: Add advertising 10G LR mode
+ - i40e: avoid overflow in i40e_ptp_adjfreq()
+ - mt76: add rcu locking around tx scheduling
+ - backlight: pwm_bl: Don't use GPIOF_* with gpiod_get_direction
+ - stop_machine: Use raw spinlocks
+ - delayacct: Use raw_spinlocks
+ - ath10k: fix kernel panic while reading tpc_stats
+ - memory: tegra: Do not handle spurious interrupts
+ - memory: tegra: Apply interrupts mask per SoC
+ - nvme: lightnvm: add granby support
+ - ASoC: fsl_ssi: Use u32 variable type when using regmap_read()
+ - ASoC: compress: Only call free for components which have been opened
+ - igb: Fix queue selection on MAC filters on i210
+ - qtnfmac: pearl: pcie: fix memory leak in qtnf_fw_work_handler
+ - drm/gma500: fix psb_intel_lvds_mode_valid()'s return type
+ - ipconfig: Correctly initialise ic_nameservers
+ - rsi: Fix 'invalid vdd' warning in mmc
+ - rsi: fix nommu_map_sg overflow kernel panic
+ - audit: allow not equal op for audit by executable
+ - [armhf, arm64] drm/rockchip: analogix_dp: Do not call Analogix code before
+ bind
+ - [x86] platform/x86: dell-smbios: Match on www.dell.com in OEM strings too
+ - staging: vchiq_core: Fix missing semaphore release in error case
+ - staging: lustre: llite: correct removexattr detection
+ - staging: lustre: ldlm: free resource when ldlm_lock_create() fails.
+ - staging: ks7010: fix error handling in ks7010_upload_firmware
+ - serial: core: Make sure compiler barfs for 16-byte earlycon names
+ - soc: imx: gpcv2: Do not pass static memory as platform data
+ - microblaze: Fix simpleImage format generation
+ - usb: hub: Don't wait for connect state at resume for powered-off ports
+ - crypto: authencesn - don't leak pointers to authenc keys
+ - crypto: authenc - don't leak pointers to authenc keys
+ - y2038: ipc: Use ktime_get_real_seconds consistently
+ - media: rc: mce_kbd decoder: low timeout values cause double keydowns
+ - media: omap3isp: fix unbalanced dma_iommu_mapping
+ - regulator: Don't return or expect -errno from of_map_mode()
+ - ath10k: search all IEs for variant before falling back
+ - drm/stm: ltdc: fix warning in ltdc_crtc_update_clut()
+ - scsi: scsi_dh: replace too broad "TP9" string with the exact models
+ - scsi: megaraid_sas: Increase timeout by 1 sec for non-RAID fastpath IOs
+ - scsi: cxlflash: Synchronize reset and remove ops
+ - scsi: cxlflash: Avoid clobbering context control register value
+ - PCI/ASPM: Disable ASPM L1.2 Substate if we don't have LTR
+ - media: atomisp: compat32: fix __user annotations
+ - media: cec: fix smatch error
+ - media: si470x: fix __be16 annotations
+ - net: socionext: reset hardware in ndo_stop
+ - ASoC: topology: Fix bclk and fsync inversion in set_link_hw_format()
+ - ASoC: topology: Add missing clock gating parameter when parsing hw_configs
+ - [armhf] ARM: dts: imx6qdl-wandboard: Let the codec control MCLK pinctrl
+ - drm: Add DP PSR2 sink enable bit
+ - drm/atomic-helper: Drop plane->fb references only for
+ drm_atomic_helper_shutdown()
+ - drm/dp/mst: Fix off-by-one typo when dump payload table
+ - drm/amdgpu: Avoid reclaim while holding locks taken in MMU notifier
+ - block: bio_iov_iter_get_pages: fix size of last iovec
+ - blkdev: __blkdev_direct_IO_simple: fix leak in error case
+ - block: reset bi_iter.bi_done after splitting bio
+ - nvmet-fc: fix target sgl list on large transfers
+ - i2c: rcar: handle RXDMA HW behaviour on Gen3
+ - random: mix rdrand with entropy sent in from userspace
+ - squashfs: be more careful about metadata corruption
+ - ext4: fix false negatives *and* false positives in
+ ext4_check_descriptors()
+ - ext4: fix inline data updates with checksums enabled
+ - ext4: check for allocation block validity with block group locked
+ - ext4: fix check to prevent initializing reserved inodes
+ - gpio: of: Handle fixed regulator flags properly
+ - gpio: uniphier: set legitimate irq trigger type in .to_irq hook
+ - RDMA/uverbs: Protect from attempts to create flows on unsupported QP
+ - net: dsa: qca8k: Force CPU port to its highest bandwidth
+ - net: dsa: qca8k: Enable RXMAC when bringing up a port
+ - net: dsa: qca8k: Add QCA8334 binding documentation
+ - net: dsa: qca8k: Allow overwriting CPU port setting
+ - ipv4: remove BUG_ON() from fib_compute_spec_dst
+ - netdevsim: don't leak devlink resources
+ - net: ena: Fix use of uninitialized DMA address bits field
+ - net: fix amd-xgbe flow-control issue
+ - net: lan78xx: fix rx handling before first packet is send
+ - net: mdio-mux: bcm-iproc: fix wrong getter and setter pair
+ - NET: stmmac: align DMA stuff to largest cache line length
+ - RDS: RDMA: Fix the NULL-ptr deref in rds_ib_get_mr
+ - tcp_bbr: fix bw probing to raise in-flight data for very small BDPs
+ - virtio_net: Fix incosistent received bytes counter
+ - xen-netfront: wait xenbus state change when load module manually
+ - cxgb4: Added missing break in ndo_udp_tunnel_{add/del}
+ - net: rollback orig value on failure of dev_qdisc_change_tx_queue_len
+ - netlink: Do not subscribe to non-existent groups
+ - netlink: Don't shift with UB on nlk->ngroups
+ - tcp: do not force quickack when receiving out-of-order packets
+ - tcp: add max_quickacks param to tcp_incr_quickack and
+ tcp_enter_quickack_mode
+ - tcp: do not aggressively quick ack after ECN events
+ - tcp: refactor tcp_ecn_check_ce to remove sk type cast
+ - tcp: add one more quick ack after after ECN events
+ - tcp: ack immediately when a cwr packet arrives
+ - ACPI / LPSS: Avoid PM quirks on suspend and resume from hibernation
+ - [x86, arm64] ACPICA: AML Parser: ignore control method status in
+ module-level code
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.17.13
+ - bonding: avoid lockdep confusion in bond_get_stats()
+ - inet: frag: enforce memory limits earlier
+ - ipv4: frags: handle possible skb truesize change
+ - net: dsa: Do not suspend/resume closed slave_dev
+ - netlink: Fix spectre v1 gadget in netlink_create()
+ - [armhf, arm64] net: stmmac: Fix WoL for PCI-based setups
+ - rxrpc: Fix user call ID check in rxrpc_service_prealloc_one
+ - net/mlx5e: E-Switch, Initialize eswitch only if eswitch manager
+ - net/mlx5e: Set port trust mode to PCP as default
+ - net/mlx5e: IPoIB, Set the netdevice sw mtu in ipoib enhanced flow
+ - squashfs: more metadata hardening
+ - can: ems_usb: Fix memory leak on ems_usb_disconnect()
+ - net: socket: fix potential spectre v1 gadget in socketcall
+ - net: socket: Fix potential spectre v1 gadget in sock_is_registered
+ - virtio_balloon: fix another race between migration and ballooning
+ - [x86] efi: Access EFI MMIO data as unencrypted when SEV is active
+ - [x86] apic: Future-proof the TSC_DEADLINE quirk for SKX
+ - [x86] entry/64: Remove %ebx handling from error_entry/exit
+ - [86] kvm: x86: vmx: fix vpid leak
+ - audit: fix potential null dereference 'context->module.name'
+ - ipc/shm.c add ->pagesize function to shm_vm_ops
+ - userfaultfd: remove uffd flags from vma->vm_flags if UFFD_EVENT_FORK fails
+ - iwlwifi: add more card IDs for 9000 series
+ - brcmfmac: fix regression in parsing NVRAM for multiple devices
+ - RDMA/uverbs: Expand primary and alt AV port checks
+ - [x86] crypto: padlock-aes - Fix Nano workaround data corruption
+ - [armhf, arm64] drm/vc4: Reset ->{x, y}_scaling[1] when dealing with
+ uniplanar formats
+ - drm/atomic: Check old_plane_state->crtc in drm_atomic_helper_async_check()
+ - drm/atomic: Initialize variables in drm_atomic_helper_async_check() to
+ make gcc happy
+ - scsi: sg: fix minor memory leak in error path
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.17.14
+ - scsi: qla2xxx: Fix unintialized List head crash
+ - scsi: qla2xxx: Fix NPIV deletion by calling wait_for_sess_deletion
+ - scsi: qla2xxx: Fix driver unload by shutting down chip
+ - scsi: qla2xxx: Fix ISP recovery on unload
+ - scsi: qla2xxx: Return error when TMF returns
+ - jfs: Fix usercopy whitelist for inline inode data
+ - genirq: Make force irq threading setup more robust
+ - [x86] perf/x86/intel/uncore: Fix hardcoded index of Broadwell extra PCI
+ devices
+ - nohz: Fix local_timer_softirq_pending()
+ - nohz: Fix missing tick reprogram when interrupting an inline softirq
+ - netlink: Don't shift on 64 for ngroups
+ - ring_buffer: tracing: Inherit the tracing setting to next ring buffer
+ - i2c: imx: Fix reinit_completion() use
+ - Btrfs: fix file data corruption after cloning a range and fsync
+ - Partially revert "block: fail op_is_write() requests to read-only
+ partitions" (Closes: #900442)
+ - xfs: don't call xfs_da_shrink_inode with NULL bp
+ - xfs: validate cached inodes are free when allocated
+ - jfs: Fix inconsistency between memory allocation and ea_buf->max_size
+
+ [ Ben Hutchings ]
+ * [armhf] gpu: host1x: Drop my build fix in favour of upstream fix:
+ - Revert "Revert "gpu: host1x: Add IOMMU support""
+ - gpu: host1x: Fix compiler errors by converting to dma_addr_t
+ * [ia64] sched: Disable SCHED_STACK_END_CHECK (Closes: #905461)
+ * mtd: powernv_flash: set of_node in mtd's dev (Closes: #904380)
+ * block: really disable runtime-pm for blk-mq (Closes: #904441)
+
+ [ Bastian Blank ]
+ * Bump ABI to 2
+
+ -- Bastian Blank <waldi@debian.org> Mon, 13 Aug 2018 15:33:58 +0200
+
+linux (4.17.8-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.17.7
+ - bpf: reject passing modified ctx to helper functions
+ - [mips*] Call dump_stack() from show_regs()
+ - [mips*] Use async IPIs for arch_trigger_cpumask_backtrace()
+ - [mips*] Fix ioremap() RAM check
+ - [armhf] drm/etnaviv: Check for platform_device_register_simple() failure
+ - [armhf] drm/etnaviv: Fix driver unregistering
+ - [armhf] drm/etnaviv: bring back progress check in job timeout handler
+ - ACPICA: Clear status of all events when entering S5
+ - [armhf] mmc: sdhci-esdhc-imx: allow 1.8V modes without 100/200MHz
+ pinctrl states
+ - [armhf] mmc: dw_mmc: fix card threshold control configuration
+ - [x86] ibmasm: don't write out of bounds in read handler
+ - [arm64,x86] staging: rtl8723bs: Prevent an underflow in
+ rtw_check_beacon_data().
+ - ata: Fix ZBC_OUT command block check
+ - ata: Fix ZBC_OUT all bit handling
+ - [x86] mei: discard messages from not connected client during power down.
+ - mtd: spi-nor: cadence-quadspi: Fix direct mode write timeouts
+ - tracing/kprobe: Release kprobe print_fmt properly
+ - vmw_balloon: fix inflation with batching
+ - ahci: Add Intel Ice Lake LP PCI ID
+ - ahci: Disable LPM on Lenovo 50 series laptops with a too old BIOS
+ - [x86] thunderbolt: Notify userspace when boot_acl is changed
+ - USB: serial: ch341: fix type promotion bug in ch341_control_in()
+ - USB: serial: cp210x: add another USB ID for Qivicon ZigBee stick
+ - USB: serial: keyspan_pda: fix modem-status error handling
+ - USB: yurex: fix out-of-bounds uaccess in read handler
+ - USB: serial: mos7840: fix status-register error handling
+ - usb: quirks: add delay quirks for Corsair Strafe
+ - xhci: xhci-mem: off by one in xhci_stream_id_to_ring()
+ - mm: zero unavailable pages before memmap init
+ - ALSA: hda/realtek - two more lenovo models need fixup of
+ MIC_LOCATION
+ - ALSA: hda - Handle pm failure during hotplug
+ - mm: do not drop unused pages when userfaultd is running
+ - fs/proc/task_mmu.c: fix Locked field in /proc/pid/smaps*
+ - x86/purgatory: add missing FORCE to Makefile target
+ - fs, elf: make sure to page align bss in load_elf_library
+ - mm: do not bug_on on incorrect length in __mm_populate()
+ - tracing: Reorder display of TGID to be after PID
+ - kbuild: delete INSTALL_FW_PATH from kbuild documentation
+ - acpi, nfit: Fix scrub idle detection
+ - [arm64] neon: Fix function may_use_simd() return error status
+ - tools build: fix # escaping in .cmd files for future Make
+ - IB/hfi1: Fix incorrect mixing of ERR_PTR and NULL return values
+ - [arm64,armhf] i2c: tegra: Fix NACK error handling
+ - i2c: recovery: if possible send STOP with recovery pulses
+ - iw_cxgb4: correctly enforce the max reg_mr depth
+ - [x86] xen: remove global bit from __default_kernel_pte_mask for pv
+ guests
+ - [x86] xen: setup pv irq ops vector earlier
+ - bsg: fix bogus EINVAL on non-data commands
+ - [x86] uprobes/x86: Remove incorrect WARN_ON() in uprobe_init_insn()
+ - netfilter: nf_queue: augment nfqa_cfg_policy
+ - crypto: don't optimize keccakf()
+ - netfilter: x_tables: initialise match/target check parameter
+ struct
+ - loop: add recursion validation to LOOP_CHANGE_FD
+ - xfs: fix inobt magic number check
+ - PM / hibernate: Fix oops at snapshot_write()
+ - RDMA/ucm: Mark UCM interface as BROKEN
+ - loop: remember whether sysfs_create_group() was done
+ - [x86] kvm: vmx: Nested VM-entry prereqs for event inj.
+ - f2fs: give message and set need_fsck given broken node id
+ - f2fs: avoid bug_on on corrupted inode
+ - f2fs: sanity check on sit entry
+ - f2fs: sanity check for total valid node blocks
+ - [armhf] dts: armada-38x: use the new thermal binding
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.17.8
+ - mm: don't do zero_resv_unavail if memmap is not allocated
+
+ [ Ben Hutchings ]
+ * ext4: fix false negatives *and* false positives in ext4_check_descriptors()
+ (Closes: #903838)
+ * Fix remaining build failures with gcc 8 (Closes: #897802):
+ - tools/lib/api/fs/fs.c: Fix misuse of strncpy()
+ - usbip: Fix misuse of strncpy()
+
+ [ Salvatore Bonaccorso ]
+ * Ignore ABI changes for acpi_nfit_desc_init and acpi_nfit_init
+ * Ignore ABI changes for loop_register_transfer
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Fri, 20 Jul 2018 23:08:27 +0200
+
+linux (4.17.6-2) unstable; urgency=medium
+
+ [ Ben Hutchings ]
+ * [armhf] drm/sun4i: Ignore ABI changes (fixes FTBFS)
+ * debian/control: Fix arch/profile qualifications for libelf-dev
+ build-dependency
+ * debian/rules.real: Pass KERNEL_ARCH variable down to debian/rules.d
+ * debian/rules.d/tools/perf/Makefile: Use KERNEL_ARCH variable
+ * linux-kbuild: Fix the assumed host architecture for cross-built objtool
+ * [ppc64] linux-bootwrapper: Work around compiler include path quirk
+ (fixes FTBFS)
+ * Fix file conflicts between debug packages where a vDSO is identical
+ (Closes: #872263):
+ - kbuild: Add build salt to the kernel and modules
+ - [arm64,powerpc,x86] Add build salt to the vDSO
+ - Set BUILD_SALT equal to the release string
+ * init: Avoid ABI change for build salt
+
+ [ Vagrant Cascadian ]
+ * [riscv64] Build linux-libc-dev (Closes: #886440).
+ Thanks to Manuel A. Fernandez Montecelo.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 15 Jul 2018 23:45:56 +0100
+
+linux (4.17.6-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.17.4
+ - [x86] spectre_v1: Disable compiler optimizations over
+ array_index_mask_nospec()
+ - [x86] xen: Add call of speculative_store_bypass_ht_init() to PV paths
+ - [x86] UV: Add adjustable set memory block size function
+ - [x86] UV: Use new set memory block size function
+ - [x86] UV: Add kernel parameter to set memory block size
+ - [x86] mce: Improve error message when kernel cannot recover
+ - [x86] mce: Check for alternate indication of machine check recovery on
+ Skylake
+ - [x86] mce: Fix incorrect "Machine check from unknown source" message
+ - [x86] mce: Do not overwrite MCi_STATUS in mce_no_way_out()
+ - [x86] Call fixup_exception() before notify_die() in math_error()
+ - [m68k] mm: Adjust VM area to be unmapped by gap size for __iounmap()
+ - [m68k] mac: Fix SWIM memory resource end address
+ - hwmon: (k10temp) Add support for Stoney Ridge and Bristol Ridge CPUs
+ - mtd: spi-nor: intel-spi: Fix atomic sequence handling
+ - serial: sh-sci: Use spin_{try}lock_irqsave instead of open coding version
+ - signal/xtensa: Consistenly use SIGBUS in do_unaligned_user
+ - PM / Domains: Fix error path during attach in genpd
+ - PCI / PM: Do not clear state_saved for devices that remain suspended
+ - ACPI / LPSS: Avoid PM quirks on suspend and resume from S3
+ - PM / core: Fix supplier device runtime PM usage counter imbalance
+ - PM / OPP: Update voltage in case freq == old_freq
+ - mmc: renesas_sdhi: really fix WP logic regressions
+ - usb: do not reset if a low-speed or full-speed device timed out
+ - 1wire: family module autoload fails because of upper/lower case mismatch.
+ - ASoC: dapm: delete dapm_kcontrol_data paths list before freeing it
+ - ASoC: cs35l35: Add use_single_rw to regmap config
+ - ASoC: mediatek: preallocate pages use platform device
+ - ASoC: cirrus: i2s: Fix LRCLK configuration
+ - ASoC: cirrus: i2s: Fix {TX|RX}LinCtrlData setup
+ - thermal: bcm2835: Stop using printk format %pCr
+ - lib/vsprintf: Remove atomic-unsafe support for %pCr
+ - ftrace/selftest: Have the reset_trigger code be a bit more careful
+ - mips: ftrace: fix static function graph tracing
+ - branch-check: fix long->int truncation when profiling branches
+ - ipmi:bt: Set the timeout before doing a capabilities check
+ - Bluetooth: hci_qca: Avoid missing rampatch failure with userspace fw
+ loader
+ - printk: fix possible reuse of va_list variable
+ - fuse: fix congested state leak on aborted connections
+ - fuse: atomic_o_trunc should truncate pagecache
+ - fuse: don't keep dead fuse_conn at fuse_fill_super().
+ - fuse: fix control dir setup and teardown
+ - [powerpc*] mm/hash: Add missing isync prior to kernel stack SLB switch
+ - [powerpc*] pkeys: Detach execute_only key on !PROT_EXEC
+ - [powerpc*] ptrace: Fix setting 512B aligned breakpoints with
+ PTRACE_SET_DEBUGREG
+ - [powerpc*] perf: Fix memory allocation for core-imc based on
+ num_possible_cpus()
+ - [powerpc*] ptrace: Fix enforcement of DAWR constraints
+ - [powerpc*] powernv/ioda2: Remove redundant free of TCE pages
+ - [powerpc*] powernv: copy/paste - Mask SO bit in CR
+ - [powerpc*] powernv/cpuidle: Init all present cpus for deep states
+ - [powerpc*] cpuidle: powernv: Fix promotion from snooze if next state
+ disabled
+ - [powerpc*] fadump: Unregister fadump on kexec down path.
+ - libnvdimm, pmem: Do not flush power-fail protected CPU caches
+ - [armhf, arm64] soc: rockchip: power-domain: Fix wrong value when power
+ up pd with writemask
+ - [powerpc*] 64s/radix: Fix radix_kvm_prefetch_workaround paca access of not
+ possible CPU
+ - [powerpc] e500mc: Set assembler machine type to e500mc
+ - [powerpc*] 64s: Fix DT CPU features Power9 DD2.1 logic
+ - cxl: Configure PSL to not use APC virtual machines
+ - cxl: Disable prefault_mode in Radix mode
+ - [armhf] 8764/1: kgdb: fix NUMREGBYTES so that gdb_regs[] is the correct size
+ - [armhf] dts: Fix SPI node for Arria10
+ - [armhf] dts: socfpga: Fix NAND controller node compatible
+ - [armhf] dts: socfpga: Fix NAND controller clock supply
+ - [armhf] dts: socfpga: Fix NAND controller node compatible for Arria10
+ - hwrng: core - Always drop the RNG in hwrng_unregister()
+ - softirq: Reorder trace_softirqs_on to prevent lockdep splat
+ - [arm64] Fix syscall restarting around signal suppressed by tracer
+ - [arm64] crypto: arm64/aes-blk - fix and move skcipher_walk_done out of
+ kernel_neon_begin, _end
+ - [arm64] kpti: Use early_param for kpti= command-line option
+ - [arm64] mm: Ensure writes to swapper are ordered wrt subsequent cache
+ maintenance
+ - [arm64] dts: marvell: fix CP110 ICU node size
+ - [arm64] dts: meson: disable sd-uhs modes on the libretech-cc
+ - [arm64] dts: meson-gx: fix ATF reserved memory region
+ - of: overlay: validate offset from property fixups
+ - of: unittest: for strings, account for trailing \0 in property length
+ field
+ - of: platform: stop accessing invalid dev in of_platform_device_destroy
+ - tpm: fix use after free in tpm2_load_context()
+ - tpm: fix race condition in tpm_common_write()
+ - efi/libstub/tpm: Initialize efi_physical_addr_t vars to zero for mixed
+ mode
+ - IB/qib: Fix DMA api warning with debug kernel
+ - IB/{hfi1, qib}: Add handling of kernel restart
+ - IB/mlx4: Mark user MR as writable if actual virtual memory is writable
+ - IB/core: Make testing MR flags for writability a static inline function
+ - IB/mlx5: Fetch soft WQE's on fatal error state
+ - IB/isert: Fix for lib/dma_debug check_sync warning
+ - IB/isert: fix T10-pi check mask setting
+ - IB/hfi1: Fix fault injection init/exit issues
+ - IB/hfi1: Reorder incorrect send context disable
+ - IB/hfi1: Optimize kthread pointer locking when queuing CQ entries
+ - IB/hfi1: Fix user context tail allocation for DMA_RTAIL
+ - IB/uverbs: Fix ordering of ucontext check in ib_uverbs_write
+ - RDMA/mlx4: Discard unknown SQP work requests
+ - xprtrdma: Return -ENOBUFS when no pages are available
+ - RDMA/core: Save kernel caller name when creating CQ using ib_create_cq()
+ - mtd: rawnand: Do not check FAIL bit when executing a SET_FEATURES op
+ - mtd: cfi_cmdset_0002: Change write buffer to check correct value
+ - mtd: rawnand: denali_dt: set clk_x_rate to 200 MHz unconditionally
+ - mtd: rawnand: fix return value check for bad block status
+ - mtd: rawnand: mxc: set spare area size register explicitly
+ - mtd: rawnand: micron: add ONFI_FEATURE_ON_DIE_ECC to supported features
+ - mtd: rawnand: All AC chips have a broken GET_FEATURES(TIMINGS).
+ - mtd: cfi_cmdset_0002: Use right chip in do_ppb_xxlock()
+ - mtd: cfi_cmdset_0002: fix SEGV unlocking multiple chips
+ - mtd: cfi_cmdset_0002: Fix unlocking requests crossing a chip boudary
+ - mtd: cfi_cmdset_0002: Avoid walking all chips when unlocking.
+ - clk:aspeed: Fix reset bits for PCI/VGA and PECI
+ - [x86] PCI: hv: Make sure the bus domain is really unique
+ - PCI: Add ACS quirk for Intel 7th & 8th Gen mobile
+ - PCI: Add ACS quirk for Intel 300 series
+ - PCI: pciehp: Clear Presence Detect and Data Link Layer Status Changed on
+ resume
+ - PCI: Account for all bridges on bus when distributing bus numbers
+ - auxdisplay: fix broken menu
+ - pinctrl: armada-37xx: Fix spurious irq management
+ - pinctrl: samsung: Correct EINTG banks order
+ - pinctrl: devicetree: Fix pctldev pointer overwrite
+ - cpufreq: intel_pstate: Fix scaling max/min limits with Turbo 3.0
+ - [mips*] pb44: Fix i2c-gpio GPIO descriptor table
+ - [mips*] io: Add barrier after register read in inX()
+ - time: Make sure jiffies_to_msecs() preserves non-zero time periods
+ - irqchip/gic-v3-its: Don't bind LPI to unavailable NUMA node
+ - locking/rwsem: Fix up_read_non_owner() warning with DEBUG_RWSEMS
+ - X.509: unpack RSA signatureValue field from BIT STRING
+ - Btrfs: fix return value on rename exchange failure
+ - iio: adc: ad7791: remove sample freq sysfs attributes
+ - iio: sca3000: Fix an error handling path in 'sca3000_probe()'
+ - mm: fix __gup_device_huge vs unmap
+ - scsi: scsi_debug: Fix memory leak on module unload
+ - scsi: hpsa: disable device during shutdown
+ - scsi: qla2xxx: Delete session for nport id change
+ - scsi: qla2xxx: Fix setting lower transfer speed if GPSC fails
+ - scsi: qla2xxx: Mask off Scope bits in retry delay
+ - scsi: qla2xxx: Spinlock recursion in qla_target
+ - scsi: zfcp: fix missing SCSI trace for result of eh_host_reset_handler
+ - scsi: zfcp: fix missing SCSI trace for retry of abort / scsi_eh TMF
+ - scsi: zfcp: fix misleading REC trigger trace where erp_action setup
+ failed
+ - scsi: zfcp: fix missing REC trigger trace on terminate_rport_io early
+ return
+ - scsi: zfcp: fix missing REC trigger trace on terminate_rport_io for
+ ERP_FAILED
+ - scsi: zfcp: fix missing REC trigger trace for all objects in ERP_FAILED
+ - scsi: zfcp: fix missing REC trigger trace on enqueue without ERP thread
+ - linvdimm, pmem: Preserve read-only setting for pmem devices
+ - libnvdimm, pmem: Unconditionally deep flush on *sync
+ - [armhf] clk: meson: meson8b: mark fclk_div2 gate clocks as CLK_IS_CRITICAL
+ - [armhf] rtc: sun6i: Fix bit_idx value for clk_register_gate
+ - md: fix two problems with setting the "re-add" device state.
+ - rpmsg: smd: do not use mananged resources for endpoints and channels
+ - ubi: fastmap: Cancel work upon detach
+ - ubi: fastmap: Correctly handle interrupted erasures in EBA
+ - UBIFS: Fix potential integer overflow in allocation
+ - backlight: as3711_bl: Fix Device Tree node lookup
+ - backlight: max8925_bl: Fix Device Tree node lookup
+ - backlight: tps65217_bl: Fix Device Tree node lookup
+ - Revert "iommu/amd_iommu: Use CONFIG_DMA_DIRECT_OPS=y and
+ dma_direct_{alloc,free}()"
+ - f2fs: don't use GFP_ZERO for page caches
+ - um: Fix initialization of vector queues
+ - um: Fix raw interface options
+ - mfd: twl-core: Fix clock initialization
+ - mfd: intel-lpss: Program REMAP register in PIO mode
+ - mfd: intel-lpss: Fix Intel Cannon Lake LPSS I2C input clock
+ - perf tools: Fix symbol and object code resolution for vdso32 and vdsox32
+ - [x86] perf intel-pt: Fix sync_switch INTEL_PT_SS_NOT_TRACING
+ - [x86] perf intel-pt: Fix decoding to accept CBR between FUP and
+ corresponding TIP
+ - [x86] perf intel-pt: Fix MTC timing after overflow
+ - [x86] perf intel-pt: Fix "Unexpected indirect branch" error
+ - [x86] perf intel-pt: Fix packet decoding of CYC packets
+ - media: vsp1: Release buffers for each video node
+ - media: uvcvideo: Support realtek's UVC 1.5 device
+ - media: cx231xx: Ignore an i2c mux adapter
+ - media: v4l2-compat-ioctl32: prevent go past max size
+ - media: cx231xx: Add support for AverMedia DVD EZMaker 7
+ - media: rc: mce_kbd decoder: fix stuck keys
+ - media: dvb_frontend: fix locking issues at dvb_frontend_get_event()
+ - nfsd: restrict rd_maxcount to svc_max_payload in nfsd_encode_readdir
+ - NFSv4: Fix possible 1-byte stack overflow in
+ nfs_idmap_read_and_verify_message
+ - NFSv4: Revert commit 5f83d86cf531d ("NFSv4.x: Fix wraparound issues..")
+ - NFSv4: Fix a typo in nfs41_sequence_process
+ - video: uvesafb: Fix integer overflow in allocation (CVE-2018-13406)
+ - ACPI / LPSS: Add missing prv_offset setting for byt/cht PWM devices
+ - Input: silead - add MSSL0002 ACPI HID
+ - Input: elan_i2c - add ELAN0618 (Lenovo v330 15IKB) ACPI ID
+ - pwm: lpss: platform: Save/restore the ctrl register over a suspend/resume
+ - rbd: flush rbd_dev->watch_dwork after watch is unregistered
+ - mm/ksm.c: ignore STABLE_FLAG of rmap_item->address in rmap_walk_ksm()
+ - mm: fix devmem_is_allowed() for sub-page System RAM intersections
+ - xen: Remove unnecessary BUG_ON from __unbind_from_irq()
+ - net: ethernet: fix suspend/resume in davinci_emac
+ - udf: Detect incorrect directory size
+ - Input: xpad - fix GPD Win 2 controller name
+ - Input: psmouse - fix button reporting for basic protocols
+ - Input: elan_i2c_smbus - fix more potential stack buffer overflows
+ - Input: elantech - enable middle button of touchpads on ThinkPad P52
+ - Input: elantech - fix V4 report decoding for module with middle key
+ - ALSA: timer: Fix UBSAN warning at SNDRV_TIMER_IOCTL_NEXT_DEVICE ioctl
+ - ALSA: hda - Force to link down at runtime suspend on ATI/AMD HDMI
+ - ALSA: hda/realtek - Fix pop noise on Lenovo P50 & co
+ - ALSA: hda/realtek - Add a quirk for FSC ESPRIMO U9210
+ - ALSA: hda/realtek - Fix the problem of two front mics on more machines
+ - Revert "i2c: algo-bit: init the bus to a known state"
+ - i2c: gpio: initialize SCL to HIGH again
+ - slub: fix failure when we delete and create a slab cache
+ - kasan: depend on CONFIG_SLUB_DEBUG
+ - dm: use bio_split() when splitting out the already processed bio
+ - pmem: only set QUEUE_FLAG_DAX for fsdax mode
+ - block: Fix transfer when chunk sectors exceeds max
+ - block: Fix cloning of requests with a special payload
+ - [x86] e820: put !E820_TYPE_RAM regions into memblock.reserved
+ - selinux: move user accesses in selinuxfs out of locked regions
+ - [x86] entry/64/compat: Fix "x86/entry/64/compat: Preserve r8-r11 in int
+ $0x80"
+ - [x86] efi: Fix efi_call_phys_epilog() with CONFIG_X86_5LEVEL=y
+ - dm zoned: avoid triggering reclaim from inside dmz_map()
+ - dm thin: handle running out of data space vs concurrent discard
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.17.5
+ - [armhf,arm64] usb: dwc2: fix the incorrect bitmaps for the ports of
+ multi_tt hub
+ - usb: typec: tcpm: fix logbuffer index is wrong if _tcpm_log is re-entered
+ - acpi: Add helper for deactivating memory region
+ - usb: typec: ucsi: acpi: Workaround for cache mode issue
+ - usb: typec: ucsi: Fix for incorrect status data issue
+ - xhci: Fix kernel oops in trace_xhci_free_virt_device
+ - n_tty: Fix stall at n_tty_receive_char_special().
+ - n_tty: Access echo_* variables carefully.
+ - [armhf] iio: mma8452: Fix ignoring MMA8452_INT_DRDY
+ - serial: 8250_pci: Remove stalled entries in blacklist
+ - serdev: fix memleak on module unload
+ - vt: prevent leaking uninitialized data to userspace via /dev/vcs*
+ - drm/amdgpu: Add APU support in vi_set_uvd_clocks
+ - drm/amdgpu: Add APU support in vi_set_vce_clocks
+ - drm/amdgpu: fix the missed vcn fw version report
+ - drm/amdgpu: Grab/put runtime PM references in atomic_commit_tail()
+ - drm/amdgpu: fix clear_all and replace handling in the VM (v2)
+ - drm/amd/display: Clear connector's edid pointer
+ - [x86] drm/i915/dp: Send DPCD ON for MST before phy_up
+ - drm/qxl: Call qxl_bo_unref outside atomic context
+ - [armhf] Revert "drm/sun4i: Handle DRM_BUS_FLAG_PIXDATA_*EDGE"
+ - drm/amdgpu: Don't default to DC support for Kaveri and older
+ - drm/amdgpu: Use kvmalloc_array for allocating VRAM manager nodes array
+ - drm/amdgpu: Refactor amdgpu_vram_mgr_bo_invisible_size helper
+ - drm/amdgpu: Make amdgpu_vram_mgr_bo_invisible_size always accurate
+ - drm/amdgpu: Update pin_size values before unpinning BO
+ - drm/amdgpu: GPU vs CPU page size fixes in amdgpu_vm_bo_split_mapping
+ - drm/amdgpu: Count disabled CRTCs in commit tail earlier
+ - drm/amd/display: release spinlock before committing updates to stream
+ - [x86] drm/i915: Allow DBLSCAN user modes with eDP/LVDS/DSI
+ - [x86] drm/i915: Fix PIPESTAT irq ack on i965/g4x
+ - [x86] drm/i915: Disallow interlaced modes on g4x DP outputs
+ - [x86] drm/i915: Turn off g4x DP port in .post_disable()
+ - [x86] drm/i915: Enable provoking vertex fix on Gen9 systems.
+ - netfilter: ip6t_rpfilter: provide input interface for route lookup
+ - netfilter: xt_connmark: fix list corruption on rmmod
+ - netfilter: nf_tables: use WARN_ON_ONCE instead of BUG_ON in
+ nft_do_chain()
+ - [arm64] dts: meson-gxl-s905x-p212: Add phy-supply for usb0
+ - [x86] mm: Don't free P4D table when it is folded at runtime
+ - [armhf] dts: imx6q: Use correct SDMA script for SPI5 core
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.17.6
+ - userfaultfd: hugetlbfs: fix userfaultfd_huge_must_wait() pte access
+ - mm: hugetlb: yield when prepping struct pages
+ - mm: teach dump_page() to correctly output poisoned struct pages
+ - PCI / ACPI / PM: Resume bridges w/o drivers on suspend-to-RAM
+ - ACPICA: Drop leading newlines from error messages
+ - ACPI / battery: Safe unregistering of hooks
+ - tracing: Avoid string overflow
+ - tracing: Fix missing return symbol in function_graph output
+ - scsi: sg: mitigate read/write abuse
+ - scsi: aacraid: Fix PD performance regression over incorrect qd being set
+ - scsi: target: Fix truncated PR-in ReadKeys response
+ - [s390x] Correct register corruption in critical section cleanup
+ - drbd: fix access after free
+ - vfio: Use get_user_pages_longterm correctly
+ - [armhf] dts: imx51-zii-rdu1: fix touchscreen pinctrl
+ - [armhf] dts: omap3: Fix am3517 mdio and emac clock references
+ - [armhf] dts: dra7: Disable metastability workaround for USB2
+ - cifs: Fix use after free of a mid_q_entry
+ - cifs: Fix memory leak in smb2_set_ea()
+ - cifs: Fix slab-out-of-bounds in send_set_info() on SMB2 ACE setting
+ - cifs: Fix infinite loop when using hard mount option
+ - drm: Use kvzalloc for allocating blob property memory
+ - drm/udl: fix display corruption of the last line
+ - drm/amdgpu: Add amdgpu_atpx_get_dhandle()
+ - drm/amdgpu: Dynamically probe for ATIF handle (v2)
+ - ext4: include the illegal physical block in the bad map ext4_error msg
+ - ext4: add more mount time checks of the superblock
+ - ext4: check superblock mapped prior to committing
+ - HID: i2c-hid: Fix "incomplete report" noise
+ - HID: hiddev: fix potential Spectre v1 (CVE-2017-5715)
+ - HID: debug: check length before copy_to_user()
+ - HID: core: allow concurrent registration of drivers
+ - i2c: core: smbus: fix a potential missing-check bug
+ - i2c: smbus: kill memory leak on emulated and failed DMA SMBus xfers
+ - fs: allow per-device dax status checking for filesystems
+ - dax: change bdev_dax_supported() to support boolean returns
+ - dax: check for QUEUE_FLAG_DAX in bdev_dax_supported()
+ - dm: prevent DAX mounts if not supported
+ - mtd: cfi_cmdset_0002: Change definition naming to retry write operation
+ - mtd: cfi_cmdset_0002: Change erase functions to retry for error
+ - mtd: cfi_cmdset_0002: Change erase functions to check chip good only
+ - netfilter: nf_log: don't hold nf_log_mutex during user access
+ - [x86] staging: comedi: quatech_daqp_cs: fix no-op loop
+ daqp_ao_insn_write()
+ - Revert mm/vmstat.c: fix vmstat_update() preemption BUG
+
+ [ Sjoerd Simons ]
+ * [armhf] DRM: Enable CONFIG_DRM_IMX_PARALLEL_DISPLAY
+
+ [ Ben Hutchings ]
+ * linux-tools: Fix cross-build of objtool
+ * [powerpcspe] Fix build failures (thanks to James Clarke):
+ - powerpc/lib/sstep: Fix building for powerpcspe
+ - powerpc/lib/Makefile: Don't pull in quad.o for 32-bit kernels
+ - linux-perf: Disable building for powerpcspe
+ * [powerpc,powerpcspe,ppc64] Fix cross-build (Closes: #903096):
+ - Introduce linux-bootwrapper-<abiname> package containing boot wrapper
+ tools for the host architecture
+ - linux-image: Install symlinks to boot wrapper tools instead of the
+ native tools built by kbuild
+ * fs: Fix up non-directory creation in SGID directories (CVE-2018-13405)
+ * sound/pci/hda: Ignore ABI changes
+ * HID: Avoid ABI change in 4.17.6
+ * dax: Avoid ABI change in 4.17.6
+
+ [ Cyril Brulebois ]
+ * udeb: Add virtio_console to virtio-modules (Closes: #903122).
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 12 Jul 2018 02:05:27 +0100
+
+linux (4.17.3-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.17.3
+ - net: aquantia: fix unsigned numvecs comparison with less than zero
+ - bonding: re-evaluate force_primary when the primary slave name changes
+ - cdc_ncm: avoid padding beyond end of skb
+ - ipv6: allow PMTU exceptions to local routes
+ - [armhf,arm64] net: dsa: add error handling for pskb_trim_rcsum
+ - net/sched: act_simple: fix parsing of TCA_DEF_DATA
+ - tcp: verify the checksum of the first data segment in a new connection
+ - socket: close race condition between sock_close() and sockfs_setattr()
+ (CVE-2018-12232)
+ - udp: fix rx queue len reported by diag and proc interface
+ - net: in virtio_net_hdr only add VLAN_HLEN to csum_start if payload holds
+ vlan
+ - ACPICA: AML parser: attempt to continue loading table after error
+ - ext4: fix hole length detection in ext4_ind_map_blocks()
+ - ext4: update mtime in ext4_punch_hole even if no blocks are released
+ - ext4: do not allow external inodes for inline data (CVE-2018-11412)
+ - ext4: bubble errors from ext4_find_inline_data_nolock() up to ext4_iget()
+ - ext4: correctly handle a zero-length xattr with a non-zero e_value_offs
+ (CVE-2018-10840)
+ - ext4: fix fencepost error in check for inode count overflow during resize
+ - driver core: Don't ignore class_dir_create_and_add() failure.
+ - Btrfs: allow empty subvol= again
+ - Btrfs: fix clone vs chattr NODATASUM race
+ - Btrfs: fix memory and mount leak in btrfs_ioctl_rm_dev_v2()
+ - btrfs: return error value if create_io_em failed in cow_file_range
+ - btrfs: scrub: Don't use inode pages for device replace
+ - ALSA: usb-audio: Disable the quirk for Nura headset
+ - ALSA: hda - Handle kzalloc() failure in snd_hda_attach_pcm_stream()
+ - [x86] MCE: Fix stack out-of-bounds write in mce-inject.c: Flags_read()
+ - smb3: fix various xid leaks
+ - smb3: on reconnect set PreviousSessionId field
+ - CIFS: 511c54a2f69195b28afb9dd119f03787b1625bb4 adds a check for session
+ expiry
+ - cifs: For SMB2 security informaion query, check for minimum sized
+ security descriptor instead of sizeof FileAllInformation class
+ - nbd: fix nbd device deletion
+ - nbd: update size when connected
+ - nbd: use bd_set_size when updating disk size
+ - blk-mq: reinit q->tag_set_list entry only after grace period
+ - bdi: Move cgroup bdi_writeback to a dedicated low concurrency workqueue
+ - cpufreq: Fix new policy initialization during limits updates via sysfs
+ - cpufreq: governors: Fix long idle detection logic in load calculation
+ - libata: zpodd: small read overflow in eject_tray()
+ - libata: Drop SanDisk SD7UB3Q*G1001 NOLPM quirk
+ - nvme/pci: Sync controller reset for AER slot_reset
+ - [x86] vector: Fix the args of vector_alloc tracepoint
+ - [x86] apic/vector: Prevent hlist corruption and leaks
+ - [x86] apic: Provide apic_ack_irq()
+ - [x86] ioapic: Use apic_ack_irq()
+ - [x86] platform/uv: Use apic_ack_irq()
+ - irq_remapping: Use apic_ack_irq()
+ - genirq/generic_pending: Do not lose pending affinity update
+ - genirq/affinity: Defer affinity setting if irq chip is busy
+ - genirq/migration: Avoid out of line call if pending is not set
+ - [x86] intel_rdt: Enable CMT and MBM on new Skylake stepping
+ - media: uvcvideo: Prevent setting unavailable flags
+ - media: rc: ensure input/lirc device can be opened after register
+ - iwlwifi: fw: harden page loading code
+ - [x86] HID: intel_ish-hid: ipc: register more pm callbacks to support
+ hibernation
+ - HID: wacom: Correct logical maximum Y for 2nd-gen Intuos Pro large
+ - vhost: fix info leak due to uninitialized memory (CVE-2018-1118)
+ - fs/binfmt_misc.c: do not allow offset overflow
+ - mm, page_alloc: do not break __GFP_THISNODE by zonelist reset
+
+ [ Ben Hutchings ]
+ * [amd64,arm64,armhf] android: Build modules to support Anbox
+ (Closes: #901492)
+ - Export symbols needed by Android drivers
+ - Enable building ashmem and binder as modules
+ - Enable ANDROID
+ - Enable ANDROID_BINDER_IPC, ASHMEM as modules
+ - Set ANDROID_BINDER_DEVICES="binder"
+ - Disable ANDROID_BINDER_IPC_32BIT
+ * [mips*] Increase RELOCATION_TABLE_SIZE to 0x00140000 (fixes FTBFS)
+ * Set ABI to 1
+ * [x86,arm64] Disable code signing for upload to unstable
+ * [x86] virt: vbox: Only copy_from_user the request-header once
+ (CVE-2018-12633)
+ * [x86] vboxguest: Enable VBOXGUEST and DRM_VBOXVIDEO as modules
+ * aufs: Update support patchset to aufs4.x-rcN-20180611
+ * debian/rules.d/scripts/mod/gendef.py: Use Python 3
+ * debian/rules: Fix pkg.linux.notools build profile
+ * tracing: Check for no filter when processing event filters (CVE-2018-12714)
+ * dm: Enable DM_INTEGRITY as module (except on armel) (Closes: #896649)
+ * debian/lib/python/debian_linux/debian.py: Accept arbitrary revision
+ suffixes (Closes: #898087)
+ * ext4: add corruption check in ext4_xattr_set_entry() (CVE-2018-10879)
+ * ext4: always verify the magic number in xattr blocks (CVE-2018-10879)
+ * ext4: always check block group bounds in ext4_init_block_bitmap()
+ (CVE-2018-10878)
+ * ext4: make sure bitmaps and the inode table don't overlap with bg
+ descriptors (CVE-2018-10878)
+ * ext4: only look at the bg_flags field if it is valid (CVE-2018-10876)
+ * ext4: verify the depth of extent tree in ext4_find_extent()
+ (CVE-2018-10877)
+ * ext4: clear i_data in ext4_inode_info when removing inline data
+ (CVE-2018-10881)
+ * ext4: never move the system.data xattr out of the inode body
+ (CVE-2018-10880)
+ * jbd2: don't mark block as modified if the handle is out of credits
+ (CVE-2018-10883)
+ * ext4: avoid running out of journal credits when appending to an inline file
+ (CVE-2018-10883)
+ * ext4: add more inode number paranoia checks (CVE-2018-10882)
+ * jfs: Fix inconsistency between memory allocation and ea_buf->max_size
+ (CVE-2018-12233)
+ * debian/control: Move bison and flex to Build-Depends (Closes: #901712)
+
+ [ Romain Perier ]
+ * [x86] amdgpu: Enable DCN 1.0 Raven family (Closes: #901349)
+ * [armhf] Enable missing SND_EDMA_SOC for davinci-mcasp on the BeagleBoneBlack
+
+ [ Vagrant Cascadian ]
+ * [arm64] Add device-tree to support Pinebook.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 02 Jul 2018 22:13:27 +0100
+
+linux (4.17.2-1~exp1) experimental; urgency=medium
+
+ * New upstream release: https://kernelnewbies.org/Linux_4.17
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.17.1
+ - netfilter: nf_flow_table: attach dst to skbs
+ - bnx2x: use the right constant
+ - ip6mr: only set ip6mr_table from setsockopt when ip6mr_new_table succeeds
+ - ipv6: omit traffic class when calculating flow hash
+ - l2tp: fix refcount leakage on PPPoL2TP sockets
+ - netdev-FAQ: clarify DaveM's position for stable backports
+ - net: metrics: add proper netlink validation
+ - net/packet: refine check for priv area size
+ - rtnetlink: validate attributes in do_setlink()
+ - sctp: not allow transport timeout value less than HZ/5 for hb_timer
+ - team: use netdev_features_t instead of u32
+ - vrf: check the original netdevice for generating redirect
+ - net: dsa: b53: Fix for brcm tag issue in Cygnus SoC
+ - ipmr: fix error path when ipmr_new_table fails
+ - PCI: hv: Do not wait forever on a device that has disappeared
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.17.2
+ - crypto: chelsio - request to HW should wrap
+ - blkdev_report_zones_ioctl(): Use vmalloc() to allocate large buffers
+ - KVM: X86: Fix reserved bits check for MOV to CR3
+ - KVM: x86: introduce linear_{read,write}_system
+ - kvm: fix typo in flag name
+ - kvm: nVMX: Enforce cpl=0 for VMX instructions
+ - KVM: x86: pass kvm_vcpu to kvm_read_guest_virt and kvm_write_guest_virt_system
+ - kvm: x86: use correct privilege level for sgdt/sidt/fxsave/fxrstor access
+ - staging: android: ion: Switch to pr_warn_once in ion_buffer_destroy
+ - NFC: pn533: don't send USB data off of the stack
+ - usbip: vhci_sysfs: fix potential Spectre v1
+ - usb-storage: Add support for FL_ALWAYS_SYNC flag in the UAS driver
+ - usb-storage: Add compatibility quirk flags for G-Technologies G-Drive
+ - Input: xpad - add GPD Win 2 Controller USB IDs
+ - phy: qcom-qusb2: Fix crash if nvmem cell not specified
+ - usb: core: message: remove extra endianness conversion in usb_set_isoch_delay
+ - usb: typec: wcove: Remove dependency on HW FSM
+ - usb: gadget: function: printer: avoid wrong list handling in printer_write()
+ - usb: gadget: udc: renesas_usb3: fix double phy_put()
+ - usb: gadget: udc: renesas_usb3: should remove debugfs
+ - usb: gadget: udc: renesas_usb3: should call pm_runtime_enable() before add udc
+ - usb: gadget: udc: renesas_usb3: should call devm_phy_get() before add udc
+ - usb: gadget: udc: renesas_usb3: should fail if devm_phy_get() returns error
+ - usb: gadget: udc: renesas_usb3: disable the controller's irqs for reconnecting
+ - serial: sh-sci: Stop using printk format %pCr
+ - tty/serial: atmel: use port->name as name in request_irq()
+ - serial: samsung: fix maxburst parameter for DMA transactions
+ - serial: 8250: omap: Fix idling of clocks for unused uarts
+ - vmw_balloon: fixing double free when batching mode is off
+ - doc: fix sysfs ABI documentation
+ - arm64: defconfig: Enable CONFIG_PINCTRL_MT7622 by default
+ - tty: pl011: Avoid spuriously stuck-off interrupts
+ - crypto: ccree - correct host regs offset
+ - Input: goodix - add new ACPI id for GPD Win 2 touch screen
+ - Input: elan_i2c - add ELAN0612 (Lenovo v330 14IKB) ACPI ID
+ - crypto: caam - strip input zeros from RSA input buffer
+ - crypto: caam - fix DMA mapping dir for generated IV
+ - crypto: caam - fix IV DMA mapping and updating
+ - crypto: caam/qi - fix IV DMA mapping and updating
+ - crypto: caam - fix size of RSA prime factor q
+ - crypto: cavium - Fix fallout from CONFIG_VMAP_STACK
+ - crypto: cavium - Limit result reading attempts
+ - crypto: vmx - Remove overly verbose printk from AES init routines
+ - crypto: vmx - Remove overly verbose printk from AES XTS init
+ - crypto: omap-sham - fix memleak
+
+ [ Vagrant Cascadian ]
+ * [armhf] Enable MFD_AC100 and RTC_DRV_AC100, used in allwinner A80/A83t
+ systems.
+
+ [ Helge Deller ]
+ * [hppa] Disable debug info due to required disk size.
+
+ [ Bastian Blank ]
+ * [cloud-amd64] Enable VIRTUALIZATION. (closes: #900861)
+ * [cloud-amd64] Enable MEMORY_HOTPLUG.
+
+ [ Romain Perier ]
+ * [arm64] correct voltage selector for Firefly-RK3399 (Closes: #900799)
+
+ [ Vagrant Cascadian ]
+ * [arm64] Enable configuration options used in Firefly-RK3399:
+ DRM_ROCKCHIP, ROCKCHIP_ANALOGIX_DP, ROCKCHIP_DW_HDMI,
+ ROCKCHIP_DW_MIPI_DSI, ROCKCHIP_SARADC, ROCKCHIP_IOMMU, ROCKCHIP_EFUSE,
+ PHY_ROCKCHIP_TYPEC, ROCKCHIP_THERMAL (Closes: #901159).
+ Thanks to Heinrich Schuchardt.
+
+ -- Bastian Blank <waldi@debian.org> Tue, 19 Jun 2018 22:00:47 +0200
+
+linux (4.17~rc7-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Romain Perier]
+ * Update patch debian/wireless-disable-regulatory.db-direct-loading.patch to
+ fix a FTBFS with undefined symbol reg_query_regdb_wmm() that is used by
+ wireless driver iwlwifi.
+
+ [ Luca Boccassi ]
+ * Disable building linux-doc-* and tools documentation when the "nodoc"
+ build profile is used.
+ * Add new "pkg.linux.nosource" build profile that disables building the
+ linux-source-* package, and a "[packages] source" option for the
+ debian/config/defines file that defines the default behaviour.
+ * Remove redundant "Dual License" from debian/copyright to fix Lintian
+ source warning "space-in-std-shortname-in-dep5-copyright".
+ * Add missing Copyright line to debian/copyright to fix Lintian source
+ warning "missing-field-in-dep5-copyright".
+
+ [ John Paul Adrian Glaubitz ]
+ * [m68k] Enable CONFIG_PATA_GAYLE as module.
+
+ [ Ben Hutchings ]
+ * Fix building only versioned tools packages
+ * Reclassify lockdep packages as unversioned tools
+ * [hppa/parisc64-smp] IB: Fix RDMA_RXE and INFINIBAND_RDMAVT dependencies for
+ DMA_VIRT_OPS
+ * rtl8192se: Fix warning introduced by "firmware: Remove redundant log
+ messages from drivers"
+ * SCSI: Enable SCSI_MQ_DEFAULT. This can be reverted using the kernel
+ parameter: scsi_mod.use_blk_mq=n
+ * dm: Enable DM_MQ_DEFAULT. This can be reverted using the kernel parameter:
+ dm_mod.use_blk_mq=n
+
+ [ Jason Duerstock ]
+ * [ia64] udeb: Add compress-modules package (fixes FTBFS)
+
+ [ YunQiang Su ]
+ * [mips{,64}el/loongson-3] enable NUMA, CPU_PM, CPU_IDLE, RS780_HPET,
+ REGULATOR. (Closes: #898521).
+ * [mips{,64}r6{,el}] use boston as the target, and enable MIPS_CPS.
+ Add a patch to disable uImage generation to avoid depend on u-boot-tools.
+ Fix typo the EL's flavor names in installer: not same within defines
+ Malta is never used for r6. (Closes: #898523)
+ Boston also requires relocation table size >= 0x00121000.
+
+ [ Vagrant Cascadian ]
+ * [armhf] Update mtd-modules: Replace pxa3xx_nand with marvell_nand.
+
+ [ Hideki Yamane ]
+ * Improve battery life on laptops (Closes: #898629)
+ Thanks to Hans de Goede <hdegoede@redhat.com>
+ - ATA: A new SATA link-powermanagement-policy will be the default on all
+ Intel mobile chipsets. This can be reverted by passing
+ "ahci.mobile_lpm_policy=0" on the kernel commandline.
+ - sound: Enable Intel HDA codec power-saving by default with a 1 second
+ timeout. This can be overridden by passing "snd_hda_intel.power_save=0"
+ on the kernel commandline (0 is previously default).
+ - BlueTooth: Enable USB autosuspend for Bluetooth USB devices by default.
+ This can be disabled by passing "btusb.enable_autosuspend=n" on the
+ kernel commandline.
+
+ [ Bastian Blank ]
+ * [cloud-amd64] Disable some filesystems.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 29 May 2018 09:54:12 +0100
+
+linux (4.17~rc3-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [amd64] Drop our patch "Don't WARN about expected W+X pages on Xen"; the
+ problem appears to have been fixed upstream
+ * Drop our patch "Kbuild: kconfig: Verbose version of --listnewconfig";
+ listnewconfig now shows symbol values by default
+ * debian/rules.real: Stop enabling verbose output for listnewconfig target
+ * Documentation: typec.rst: Use literal-block element with ascii art
+ * Documentation: Update references to drivers/base/firmware_class.c
+ * [armhf] Enable MTD_NAND_MARVELL as module, replacing MTD_NAND_PXA3xx
+ * linux-kbuild: Update genksyms makefile to run flex and bison
+ * Add support for building only versioned tools packages
+ * Change generation of linux-doc, linux-source, linux-support package names
+
+ [ Luca Boccassi ]
+ * Build-Dep on libelf-dev even for nopython/notools builds to fix FTBFS,
+ needed when CONFIG_STACK_VALIDATION and CONFIG_UNWINDER_ORC are enabled.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 30 Apr 2018 00:13:06 +0100
+
+linux (4.16.16-2) unstable; urgency=medium
+
+ * [powerpc*] Ignore further ABI changes in cxl.
+ * [ia64] Add compress-modules udeb.
+
+ -- Bastian Blank <waldi@debian.org> Fri, 22 Jun 2018 11:50:22 +0200
+
+linux (4.16.16-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.16.13
+ - [mips*] c-r4k: Fix data corruption related to cache coherence
+ - [mips*] ptrace: Expose FIR register through FP regset
+ - [mips*] Fix ptrace(2) PTRACE_PEEKUSR and PTRACE_POKEUSR accesses to o32
+ FGRs
+ - affs_lookup(): close a race with affs_remove_link()
+ - fix breakage caused by d_find_alias() semantics change
+ - fs: don't scan the inode cache before SB_BORN is set
+ - aio: fix io_destroy(2) vs. lookup_ioctx() race
+ - Btrfs: fix error handling in btrfs_truncate()
+ - ALSA: timer: Fix pause event notification
+ - do d_instantiate/unlock_new_inode combinations safely
+ - mmc: block: propagate correct returned value in mmc_rpmb_ioctl
+ - mmc: sdhci-iproc: remove hard coded mmc cap 1.8v
+ - mmc: sdhci-iproc: fix 32bit writes for TRANSFER_MODE register
+ - mmc: sdhci-iproc: add SDHCI_QUIRK2_HOST_OFF_CARD_ON for cygnus
+ - ahci: Add PCI ID for Cannon Lake PCH-LP AHCI
+ - libata: Blacklist some Sandisk SSDs for NCQ
+ - libata: blacklist Micron 500IT SSD with MU01 firmware
+ - xen-swiotlb: fix the check condition for xen_swiotlb_free_coherent
+ - drm/vmwgfx: Fix 32-bit VMW_PORT_HB_[IN|OUT] macros
+ - [arm64] lse: Add early clobbers to some input/output asm operands
+ - [arm64] export tishift functions to modules
+ - [powerpc*] 64s: Clear PCR on boot
+ - IB/hfi1: Use after free race condition in send context error path
+ - IB/umem: Use the correct mm during ib_umem_release
+ - sr: pass down correctly sized SCSI sense buffer (CVE-2018-11506)
+ - bcma: fix buffer size caused crash in bcma_core_mips_print_irq()
+ - idr: fix invalid ptr dereference on item delete
+ - Revert "ipc/shm: Fix shmat mmap nil-page protection"
+ - ipc/shm: fix shmat() nil address after round-down when remapping
+ - mm/kasan: don't vfree() nonexistent vm_area
+ - kasan: free allocated shadow memory on MEM_CANCEL_ONLINE
+ - kasan: fix memory hotplug during boot
+ - kernel/sys.c: fix potential Spectre v1 issue
+ - PM / core: Fix direct_complete handling for devices with no callbacks
+ - KVM/VMX: Expose SSBD properly to guests
+ - KVM: s390: vsie: fix < 8k check for the itdba
+ - KVM: x86: Update cpuid properly when CR4.OSXAVE or CR4.PKE is changed
+ - kvm: x86: IA32_ARCH_CAPABILITIES is always supported
+ - x86/kvm: fix LAPIC timer drift when guest uses periodic mode
+ - [armhf] dts: sun4i: Fix incorrect clocks for displays
+ - sh: fix debug trap failure to process signals before return to user
+ - firmware: dmi_scan: Fix UUID length safety check
+ - nvme: don't send keep-alives to the discovery controller
+ - Btrfs: clean up resources during umount after trans is aborted
+ - Btrfs: fix loss of prealloc extents past i_size after fsync log replay
+ - x86/pgtable: Don't set huge PUD/PMD on non-leaf entries
+ - x86/mm: Do not forbid _PAGE_RW before init for __ro_after_init
+ - bnxt_en: Ignore src port field in decap filter nodes
+ - nvme: expand nvmf_check_if_ready checks
+ - fs/proc/proc_sysctl.c: fix potential page fault while unregistering
+ sysctl table
+ - kasan: fix invalid-free test crashing the kernel
+ - kasan, slub: fix handling of kasan_slab_free hook
+ - swap: divide-by-zero when zero length swap file on ssd
+ - z3fold: fix memory leak
+ - sr: get/drop reference to device in revalidate and check_events
+ - Force log to disk before reading the AGF during a fstrim
+ - cpufreq: CPPC: Initialize shared perf capabilities of CPUs
+ - powerpc/fscr: Enable interrupts earlier before calling get_user()
+ - perf tools: Fix perf builds with clang support
+ - perf clang: Add support for recent clang versions
+ - dp83640: Ensure against premature access to PHY registers after reset
+ - ibmvnic: Zero used TX descriptor counter on reset
+ - genirq/affinity: Don't return with empty affinity masks on error
+ - mm/ksm: fix interaction with THP
+ - mm: fix races between address_space dereference and free in
+ page_evicatable
+ - mm: thp: fix potential clearing to referenced flag in
+ page_idle_clear_pte_refs_one()
+ - Btrfs: bail out on error during replay_dir_deletes
+ - Btrfs: fix NULL pointer dereference in log_dir_items
+ - btrfs: Fix possible softlock on single core machines
+ - IB/rxe: Fix for oops in rxe_register_device on ppc64le arch
+ - ocfs2/dlm: don't handle migrate lockres if already in shutdown
+ - [powerpc*] 64s: Fix restore of AMOR on POWER9 after deep sleep
+ - sched/rt: Fix rq->clock_update_flags < RQCF_ACT_SKIP warning
+ - x86/mm: Fix bogus warning during EFI bootup, use boot_cpu_has() instead
+ of this_cpu_has() in build_cr3_noflush()
+ - KVM: VMX: raise internal error for exception during invalid protected
+ mode state
+ - lan78xx: Connect phy early
+ - fscache: Fix hanging wait on page discarded by writeback
+ - dmaengine: rcar-dmac: Fix too early/late system suspend/resume callbacks
+ - [sparc64] Make atomic_xchg() an inline function rather than a macro.
+ - riscv/spinlock: Strengthen implementations with fences
+ - platform/x86: dell-smbios: Fix memory leaks in build_tokens_sysfs()
+ - net: bgmac: Fix endian access in bgmac_dma_tx_ring_free()
+ - net: bgmac: Correctly annotate register space
+ - bnxt_en: fix clear flags in ethtool reset handling
+ - [powerpc*] 64s: sreset panic if there is no debugger or crash dump handlers
+ - btrfs: tests/qgroup: Fix wrong tree backref level
+ - Btrfs: fix copy_items() return value when logging an inode
+ - btrfs: fix lockdep splat in btrfs_alloc_subvolume_writers
+ - btrfs: qgroup: Fix root item corruption when multiple same source
+ snapshots are created with quota enabled
+ - rxrpc: Fix resend event time calculation
+ - rxrpc: Fix Tx ring annotation after initial Tx failure
+ - rxrpc: Don't treat call aborts as conn aborts
+ - xen/acpi: off by one in read_acpi_id()
+ - drivers: macintosh: rack-meter: really fix bogus memsets
+ - ACPI: acpi_pad: Fix memory leak in power saving threads
+ - powerpc/mpic: Check if cpu_possible() in mpic_physmask()
+ - ieee802154: ca8210: fix uninitialised data read
+ - ath10k: advertize beacon_int_min_gcd
+ - iommu/amd: Take into account that alloc_dev_data() may return NULL
+ - intel_th: Use correct method of finding hub
+ - [m68k] set dma and coherent masks for platform FEC ethernets
+ - iwlwifi: mvm: check if mac80211_queue is valid in iwl_mvm_disable_txq
+ - iwlwifi: mvm: take RCU lock before dereferencing
+ - net/mlx5e: Move all TX timeout logic to be under state lock
+ - parisc/pci: Switch LBA PCI bus from Hard Fail to Soft Fail mode
+ - perf mmap: Fix accessing unmapped mmap in perf_mmap__read_done()
+ - hwmon: (nct6775) Fix writing pwmX_mode
+ - mt76x2: fix possible NULL pointer dereferencing in mt76x2_tx()
+ - mt76x2: fix warning in ieee80211_get_key_rx_seq()
+ - [powerpc] perf: Prevent kernel address leak to userspace via BHRB buffer
+ - [powerpc] perf: Fix kernel address leak via sampling registers
+ - rsi: fix kernel panic observed on 64bit machine
+ - tools/thermal: tmon: fix for segfault
+ - selftests: Print the test we're running to /dev/kmsg
+ - i40e: hold the RTNL lock while changing interrupt schemes
+ - net/mlx5: Protect from command bit overflow
+ - watchdog: davinci_wdt: fix error handling in davinci_wdt_probe()
+ - net: hns3: fix for the wrong shift problem in hns3_set_txbd_baseinfo
+ - net: hns3: fix for returning wrong value problem in
+ hns3_get_rss_indir_size
+ - net: hns3: fix for returning wrong value problem in hns3_get_rss_key_size
+ - net: qualcomm: rmnet: check for null ep to avoid null pointer dereference
+ - ath10k: Fix kernel panic while using worker (ath10k_sta_rc_update_wk)
+ - nvme_fc: fix abort race on teardown with lld reject
+ - nvme-pci: disable APST for Samsung NVMe SSD 960 EVO + ASUS PRIME Z370-A
+ - ath9k: fix crash in spectral scan
+ - btrfs: fix null pointer deref when target device is missing
+ - cxgb4: Setup FW queues before registering netdev
+ - hv_netvsc: Fix the return status in RX path
+ - ima: Fix Kconfig to select TPM 2.0 CRB interface
+ - ima: Fallback to the builtin hash algorithm
+ - watchdog: aspeed: Allow configuring for alternate boot
+ - gfs2: Check for the end of metadata in punch_hole
+ - virtio-net: Fix operstate for virtio when no VIRTIO_NET_F_STATUS
+ - [armhf] dts: socfpga: fix GIC PPI warning
+ - ima: clear IMA_HASH
+ - ext4: don't complain about incorrect features when probing
+ - drm/vmwgfx: Unpin the screen object backup buffer when not used
+ - iommu/mediatek: Fix protect memory setting
+ - cpufreq: cppc_cpufreq: Fix cppc_cpufreq_init() failure path
+ - firmware: fix checking for return values for fw_add_devm_name()
+ - IB/mlx5: Set the default active rate and width to QDR and 4X
+ - zorro: Set up z->dev.dma_mask for the DMA API
+ - bcache: quit dc->writeback_thread when BCACHE_DEV_DETACHING is set
+ - remoteproc: imx_rproc: Fix an error handling path in 'imx_rproc_probe()'
+ - bcache: fix cached_dev->count usage for bch_cache_set_error()
+ - ACPICA: Events: add a return on failure from acpi_hw_register_read
+ - ACPICA: Fix memory leak on unusual memory leak
+ - bcache: stop dc->writeback_rate_update properly
+ - ACPICA: acpi: acpica: fix acpi operand cache leak in nseval.c
+ - cxgb4: Fix queue free path of ULD drivers
+ - i2c: mv64xxx: Apply errata delay only in standard mode
+ - KVM: lapic: stop advertising DIRECTED_EOI when in-kernel IOAPIC is in use
+ - perf top: Fix top.c[all] all-graph config option reading
+ - perf stat: Fix core dump when flag T is used
+ - IB/core: Honor port_num while resolving GID for IB link layer
+ - drm/amdkfd: add missing include of mm.h
+ - coresight: Use %px to print pcsr instead of %p
+ - ibmvnic: Fix reset return from closed state
+ - regulator: gpio: Fix some error handling paths in 'gpio_regulator_probe()'
+ - spi: bcm-qspi: fIX some error handling paths
+ - net/smc: pay attention to MAX_ORDER for CQ entries
+ - MIPS: ath79: Fix AR724X_PLL_REG_PCIE_CONFIG offset
+ - powerpc/vas: Fix cleanup when VAS is not configured
+ - PCI: Restore config space on runtime resume despite being unbound
+ - watchdog: sprd_wdt: Fix error handling in sprd_wdt_enable()
+ - watchdog: dw: RMW the control register
+ - watchdog: aspeed: Fix translation of reset mode to ctrl register
+ - ipmi_ssif: Fix kernel panic at msg_done_handler
+ - [arm64] drm/meson: Fix some error handling paths in 'meson_drv_bind_master()'
+ - [arm64] drm/meson: Fix an un-handled error path in 'meson_drv_bind_master()'
+ - [powerpc] powernv/npu: Fix deadlock in mmio_invalidate()
+ - f2fs: flush cp pack except cp pack 2 page at first
+ - cxl: Check if PSL data-cache is available before issue flush request
+ - f2fs: fix to set KEEP_SIZE bit in f2fs_zero_range
+ - f2fs: fix to clear CP_TRIMMED_FLAG
+ - f2fs: fix to check extent cache in f2fs_drop_extent_tree
+ - perf/core: Fix installing cgroup events on CPU
+ - max17042: propagate of_node to power supply device
+ - perf/core: Fix perf_output_read_group()
+ - drm/panel: simple: Fix the bus format for the Ontat panel
+ - hwmon: (pmbus/max8688) Accept negative page register values
+ - hwmon: (pmbus/adm1275) Accept negative page register values
+ - [amd64] perf: Properly save/restore the PMU state in the NMI handler
+ - cdrom: do not call check_disk_change() inside cdrom_open()
+ - [armhf, arm64] efi: Only register page tables when they exist
+ - [amd64] perf: Fix large period handling on Broadwell CPUs
+ - [amd64] perf: Fix event update for auto-reload
+ - [arm64] dts: qcom: Fix SPI5 config on MSM8996
+ - [arm64] soc: qcom: wcnss_ctrl: Fix increment in NV upload
+ - gfs2: Fix fallocate chunk size
+ - [amd64] x86/devicetree: Initialize device tree before using it
+ - [amd64] x86/devicetree: Fix device IRQ settings in DT
+ - phy: rockchip-emmc: retry calpad busy trimming
+ - ALSA: vmaster: Propagate slave error
+ - phy: qcom-qmp: Fix phy pipe clock gating
+ - drm/bridge: sii902x: Retry status read after DDI I2C
+ - drm/amdgpu: Clean sdma wptr register when only enable wptr polling
+ - tools: hv: fix compiler warnings about major/target_fname
+ - block: null_blk: fix 'Invalid parameters' when loading module
+ - dmaengine: pl330: fix a race condition in case of threaded irqs
+ - [powerpc] mm/slice: Remove intermediate bitmap copy
+ - [powerpc] mm/slice: create header files dedicated to slices
+ - [powerpc] mm/slice: Enhance for supporting PPC32
+ - [powerpc] mm/slice: Fix hugepage allocation at hint address on 8xx
+ - dmaengine: rcar-dmac: Check the done lists in rcar_dmac_chan_get_residue()
+ - enic: enable rq before updating rq descriptors
+ - watchdog: asm9260_wdt: fix error handling in asm9260_wdt_probe()
+ - hwrng: stm32 - add reset during probe
+ - pinctrl: devicetree: Fix dt_to_map_one_config handling of hogs
+ - pinctrl: artpec6: dt: add missing pin group uart5nocts
+ - vfio-ccw: fence off transport mode
+ - dmaengine: qcom: bam_dma: get num-channels and num-ees from dt
+ - drm: omapdrm: dss: Move initialization code from component bind to probe
+ - [armhf] dts: dra71-evm: Correct evm_sd regulator max voltage
+ - drm/amdgpu: disable GFX ring and disable PQ wptr in hw_fini
+ - drm/amdgpu: adjust timeout for ib_ring_tests(v2)
+ - ibmvnic: Allocate statistics buffers during probe
+ - [armhf, arm64] net: stmmac: ensure that the device has released ownership
+ before reading data
+ - [armhf, arm64] net: stmmac: ensure that the MSS desc is the last desc to
+ set the own bit
+ - cpufreq: Reorder cpufreq_online() error code path
+ - dpaa_eth: fix SG mapping
+ - PCI: Add function 1 DMA alias quirk for Marvell 88SE9220
+ - udf: Provide saner default for invalid uid / gid
+ - ixgbe: prevent ptp_rx_hang from running when in FILTER_ALL mode
+ - sh_eth: fix TSU init on SH7734/R8A7740
+ - power: supply: ltc2941-battery-gauge: Fix temperature units
+ - [armhf] dts: bcm283x: Fix probing of bcm2835-i2s
+ - [armhf] dts: bcm283x: Fix pin function of JTAG pins
+ - PCMCIA / PM: Avoid noirq suspend aborts during suspend-to-idle
+ - hwrng: bcm2835 - Handle deferred clock properly
+ - audit: return on memory error to avoid null pointer dereference
+ - [armhf, arm64] net: stmmac: call correct function in
+ stmmac_mac_config_rx_queues_routing()
+ - rcu: Call touch_nmi_watchdog() while printing stall warnings
+ - pinctrl: sh-pfc: r8a7796: Fix MOD_SEL register pin assignment for SSI
+ pins group
+ - dt-bindings: display: msm/dsi: Fix the PHY regulator supply props
+ - drm/amd/display: Set vsc pack revision when DPCD revision is >= 1.2
+ - dpaa_eth: fix pause capability advertisement logic
+ - [mips*/octeon] Fix logging messages with spurious periods after newlines
+ - [arm64] soc: renesas: r8a77970-sysc: fix power area parents
+ - [armhf] drm/rockchip: Respect page offset for PRIME mmap calls
+ - x86/apic: Set up through-local-APIC mode on the boot CPU if 'noapic'
+ specified
+ - perf report: Fix wrong jump arrow
+ - perf tests: Use arch__compare_symbol_names to compare symbols
+ - perf report: Fix memory corruption in --branch-history mode
+ --branch-history
+ - perf tests: Fix dwarf unwind for stripped binaries
+ - selftests/net: fixes psock_fanout eBPF test case
+ - drm/vblank: Data type fixes for 64-bit vblank sequences.
+ - netlabel: If PF_INET6, check sk_buff ip header version
+ - drm: rcar-du: lvds: Fix LVDS startup on R-Car Gen3
+ - drm: rcar-du: lvds: Fix LVDS startup on R-Car Gen2
+ - selftests: Add FIB onlink tests
+ - regmap: Correct comparison in regmap_cached
+ - soc: amlogic: meson-gx-pwrc-vpu: fix error on shutdown when domain is
+ powered off
+ - i40e: Add delay after EMP reset for firmware to recover
+ - [armhf] dts: imx7d: cl-som-imx7: fix pinctrl_enet
+ - [armhf] dts: porter: Fix HDMI output routing
+ - regulator: of: Add a missing 'of_node_put()' in an error handling path of
+ 'of_regulator_match()'
+ - pinctrl: msm: Use dynamic GPIO numbering
+ - pinctrl: mcp23s08: spi: Fix regmap debugfs entries
+ - kdb: make "mdr" command repeat
+ - drm/vmwgfx: Set dmabuf_size when vmw_dmabuf_init is successful
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.16.14
+ - objtool: Support GCC 8's cold subfunctions
+ - objtool: Support GCC 8 switch tables
+ - objtool: Detect RIP-relative switch table references
+ - objtool: Detect RIP-relative switch table references, part 2
+ - objtool: Fix "noreturn" detection for recursive sibling calls
+ - x86/mce/AMD: Carve out SMCA get_block_address() code
+ - x86/MCE/AMD: Cache SMCA MISC block addresses
+ - drm/vmwgfx: Use kasprintf
+ - drm/vmwgfx: Fix host logging / guestinfo reading error paths
+ - Revert "pinctrl: msm: Use dynamic GPIO numbering"
+ - xfs: convert XFS_AGFL_SIZE to a helper function
+ - xfs: detect agfl count corruption and reset agfl
+ - Input: synaptics - Lenovo Carbon X1 Gen5 (2017) devices should use RMI
+ - Input: synaptics - Lenovo Thinkpad X1 Carbon G5 (2017) with Elantech trackpoints should use RMI
+ - Input: synaptics - add Intertouch support on X1 Carbon 6th and X280
+ - Input: synaptics - add Lenovo 80 series ids to SMBus
+ - Input: elan_i2c_smbus - fix corrupted stack
+ - tracing: Fix crash when freeing instances with event triggers
+ - tracing: Make the snapshot trigger work with instances
+ - nvme: fix extended data LBA supported setting
+ - selinux: KASAN: slab-out-of-bounds in xattr_getsecurity
+ - cfg80211: further limit wiphy names to 64 bytes
+ - drm/amd/powerplay: Fix enum mismatch
+ - rtlwifi: rtl8192cu: Remove variable self-assignment in rf.c
+ - iio: ad7793: implement IIO_CHAN_INFO_SAMP_FREQ
+ - iio: hid-sensor-trigger: Fix sometimes not powering up the sensor after resume
+ - iio:buffer: make length types match kfifo types
+ - iio:kfifo_buf: check for uint overflow
+ - iio: adc: stm32-dfsdm: fix successive oversampling settings
+ - iio: adc: stm32-dfsdm: fix sample rate for div2 spi clock
+ - iio: adc: at91-sama5d2_adc: fix channel configuration for differential channels
+ - iio: adc: select buffer for at91-sama5d2_adc
+ - MIPS: lantiq: gphy: Drop reboot/remove reset asserts
+ - MIPS: ptrace: Fix PTRACE_PEEKUSR requests for 64-bit FGRs
+ - MIPS: prctl: Disallow FRE without FR with PR_SET_FP_MODE requests
+ - scsi: scsi_transport_srp: Fix shost to rport translation
+ - stm class: Use vmalloc for the master map
+ - hwtracing: stm: fix build error on some arches
+ - IB/core: Fix error code for invalid GID entry
+ - mm/huge_memory.c: __split_huge_page() use atomic ClearPageDirty()
+ - Revert "rt2800: use TXOP_BACKOFF for probe frames"
+ - intel_th: Use correct device when freeing buffers
+ - drm/psr: Fix missed entry in PSR setup time table.
+ - drm/i915/lvds: Move acpi lid notification registration to registration phase
+ - drm/i915: Disable LVDS on Radiant P845
+ - fix io_destroy()/aio_complete() race
+ - mm: fix the NULL mapping case in __isolate_lru_page()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.16.15
+ - mmap: introduce sane default mmap limits
+ - mmap: relax file size limit for regular files
+ - netfilter: nf_flow_table: attach dst to skbs
+ - kconfig: Avoid format overflow warning from GCC 8.1
+ - be2net: Fix error detection logic for BE3
+ - bnx2x: use the right constant
+ - cls_flower: Fix incorrect idr release when failing to modify rule
+ - dccp: don't free ccid2_hc_tx_sock struct in dccp_disconnect()
+ - enic: set DMA mask to 47 bit
+ - ip6mr: only set ip6mr_table from setsockopt when ip6mr_new_table succeeds
+ - ip6_tunnel: remove magic mtu value 0xFFF8
+ - ipmr: properly check rhltable_init() return value
+ - ipv4: remove warning in ip_recv_error
+ - ipv6: omit traffic class when calculating flow hash
+ - isdn: eicon: fix a missing-check bug
+ - kcm: Fix use-after-free caused by clonned sockets
+ - l2tp: fix refcount leakage on PPPoL2TP sockets
+ - mlxsw: spectrum: Forbid creation of VLAN 1 over port/LAG
+ - netdev-FAQ: clarify DaveM's position for stable backports
+ - net: ethernet: davinci_emac: fix error handling in probe()
+ - net: ipv4: add missing RTA_TABLE to rtm_ipv4_policy
+ - net: metrics: add proper netlink validation
+ - net/packet: refine check for priv area size
+ - net: phy: broadcom: Fix bcm_write_exp()
+ - net: usb: cdc_mbim: add flag FLAG_SEND_ZLP
+ - packet: fix reserve calculation
+ - qed: Fix mask for physical address in ILT entry
+ - rtnetlink: validate attributes in do_setlink()
+ - sctp: not allow transport timeout value less than HZ/5 for hb_timer
+ - team: use netdev_features_t instead of u32
+ - vhost: synchronize IOTLB message with dev cleanup
+ - vrf: check the original netdevice for generating redirect
+ - ipv6: sr: fix memory OOB access in seg6_do_srh_encap/inline
+ - net: phy: broadcom: Fix auxiliary control register reads
+ - net-sysfs: Fix memory leak in XPS configuration
+ - virtio-net: correctly transmit XDP buff after linearizing
+ - virtio-net: fix leaking page for gso packet during mergeable XDP
+ - net/mlx4: Fix irq-unsafe spinlock usage
+ - net/mlx5e: When RXFCS is set, add FCS data into checksum calculation
+ - tun: Fix NULL pointer dereference in XDP redirect
+ - virtio-net: correctly check num_buf during err path
+ - net: dsa: b53: Fix for brcm tag issue in Cygnus SoC
+ - net : sched: cls_api: deal with egdev path only if needed
+ - virtio-net: correctly redirect linearized packet
+ - ip_tunnel: restore binding to ifaces with a large mtu
+ - net: netsec: reduce DMA mask to 40 bits
+ - vhost_net: flush batched heads before trying to busy polling
+ - PCI: hv: Do not wait forever on a device that has disappeared
+ - drm: set FMODE_UNSIGNED_OFFSET for drm files
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.16.16
+ - netfilter: nf_tables: fix NULL pointer dereference on nft_ct_helper_obj_dump()
+ - crypto: chelsio - request to HW should wrap
+ - blkdev_report_zones_ioctl(): Use vmalloc() to allocate large buffers
+ - af_key: Always verify length of provided sadb_key
+ - KVM: X86: Fix reserved bits check for MOV to CR3
+ - KVM: x86: introduce linear_{read,write}_system
+ - kvm: nVMX: Enforce cpl=0 for VMX instructions
+ - KVM: x86: pass kvm_vcpu to kvm_read_guest_virt and kvm_write_guest_virt_system
+ - staging: android: ion: Switch to pr_warn_once in ion_buffer_destroy
+ - NFC: pn533: don't send USB data off of the stack
+ - usbip: vhci_sysfs: fix potential Spectre v1
+ - usb-storage: Add support for FL_ALWAYS_SYNC flag in the UAS driver
+ - usb-storage: Add compatibility quirk flags for G-Technologies G-Drive
+ - Input: xpad - add GPD Win 2 Controller USB IDs
+ - phy: qcom-qusb2: Fix crash if nvmem cell not specified
+ - usb: core: message: remove extra endianness conversion in usb_set_isoch_delay
+ - usb: typec: wcove: Remove dependency on HW FSM
+ - usb: gadget: function: printer: avoid wrong list handling in printer_write()
+ - usb: gadget: udc: renesas_usb3: fix double phy_put()
+ - usb: gadget: udc: renesas_usb3: should remove debugfs
+ - usb: gadget: udc: renesas_usb3: should call pm_runtime_enable() before add udc
+ - usb: gadget: udc: renesas_usb3: should call devm_phy_get() before add udc
+ - usb: gadget: udc: renesas_usb3: should fail if devm_phy_get() returns error
+ - usb: gadget: udc: renesas_usb3: disable the controller's irqs for reconnecting
+ - serial: sh-sci: Stop using printk format %pCr
+ - tty/serial: atmel: use port->name as name in request_irq()
+ - serial: samsung: fix maxburst parameter for DMA transactions
+ - serial: 8250: omap: Fix idling of clocks for unused uarts
+ - vmw_balloon: fixing double free when batching mode is off
+ - tty: pl011: Avoid spuriously stuck-off interrupts
+ - kvm: x86: use correct privilege level for sgdt/sidt/fxsave/fxrstor access
+ - Input: goodix - add new ACPI id for GPD Win 2 touch screen
+ - Input: elan_i2c - add ELAN0612 (Lenovo v330 14IKB) ACPI ID
+ - crypto: caam - strip input zeros from RSA input buffer
+ - crypto: caam - fix DMA mapping dir for generated IV
+ - crypto: caam - fix IV DMA mapping and updating
+ - crypto: caam/qi - fix IV DMA mapping and updating
+ - crypto: caam - fix size of RSA prime factor q
+ - crypto: cavium - Fix fallout from CONFIG_VMAP_STACK
+ - crypto: cavium - Limit result reading attempts
+ - crypto: vmx - Remove overly verbose printk from AES init routines
+ - crypto: vmx - Remove overly verbose printk from AES XTS init
+ - crypto: omap-sham - fix memleak
+
+ [ Vagrant Cascadian ]
+ * [armhf] Enable MFD_AC100 and RTC_DRV_AC100, used in allwinner A80/A83t
+ systems.
+
+ [ Yves-Alexis Perez ]
+ * hardening: enable FORTIFY_SOURCE, disable HARDENED_USERCOPY_FALLBACK
+ * [x86] hardening: enable REFCOUNT_FULL
+
+ [ Ben Hutchings ]
+ * ext4: Fix duplicate softdep fields in module info
+
+ [ Bastian Blank ]
+ * hv_netvsc: Fix a network regression after ifdown/ifup
+ * [rt] Update to 4.16.15-rt7.
+
+ [ Vagrant Cascadian ]
+ * [arm64] Enable configuration options used in Firefly-RK3399:
+ DRM_ROCKCHIP, ROCKCHIP_ANALOGIX_DP, ROCKCHIP_DW_HDMI,
+ ROCKCHIP_DW_MIPI_DSI, ROCKCHIP_SARADC, ROCKCHIP_IOMMU, ROCKCHIP_EFUSE,
+ PHY_ROCKCHIP_TYPEC, ROCKCHIP_THERMAL (Closes: #901159).
+ Thanks to Heinrich Schuchardt.
+ * [arm64,armhf] Add device-tree to support Raspberry PI 3b+.
+
+ -- Bastian Blank <waldi@debian.org> Tue, 19 Jun 2018 20:23:54 +0200
+
+linux (4.16.12-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.16.6
+ - Revert "pinctrl: intel: Initialize GPIO properly when used through
+ irqchip"
+ - [armhf] drm: bridge: dw-hdmi: Fix overflow workaround for Amlogic Meson
+ GX SoCs
+ - i40e: Fix attach VF to VM issue
+ - tpm: cmd_ready command can be issued only after granting locality
+ - tpm: tpm-interface: fix tpm_transmit/_cmd kdoc
+ - tpm: add retry logic
+ - Revert "ath10k: send (re)assoc peer command when NSS changed"
+ - bonding: do not set slave_dev npinfo before slave_enable_netpoll in
+ bond_enslave
+ - docs: ip-sysctl.txt: fix name of some ipv6 variables
+ - ipv6: add RTA_TABLE and RTA_PREFSRC to rtm_ipv6_policy
+ - ipv6: sr: fix NULL pointer dereference in seg6_do_srh_encap()- v4 pkts
+ - KEYS: DNS: limit the length of option strings
+ - l2tp: check sockaddr length in pppol2tp_connect()
+ - llc: delete timers synchronously in llc_sk_free()
+ - net: af_packet: fix race in PACKET_{R|T}X_RING
+ - net: fix deadlock while clearing neighbor proxy table
+ - [arm64,armhf] net: mvpp2: Fix DMA address mask size
+ - net: qmi_wwan: add Wistron Neweb D19Q1
+ - net/smc: fix shutdown in state SMC_LISTEN
+ - net: stmmac: Disable ACS Feature for GMAC >= 4
+ - packet: fix bitfield update race
+ - pppoe: check sockaddr length in pppoe_connect()
+ - Revert "macsec: missing dev_put() on error in macsec_newlink()"
+ - sctp: do not check port in sctp_inet6_cmp_addr
+ - strparser: Do not call mod_delayed_work with a timeout of LONG_MAX
+ - strparser: Fix incorrect strp->need_bytes value.
+ - tcp: clear tp->packets_out when purging write queue
+ - tcp: don't read out-of-bounds opsize
+ - tcp: md5: reject TCP_MD5SIG or TCP_MD5SIG_EXT on established sockets
+ - team: avoid adding twice the same option to the event list
+ - team: fix netconsole setup over team
+ - tipc: add policy for TIPC_NLA_NET_ADDR
+ - vlan: Fix reading memory beyond skb->tail in skb_vlan_tagged_multi
+ - vmxnet3: fix incorrect dereference when rxvlan is disabled
+ - [amd64,arm64] amd-xgbe: Add pre/post auto-negotiation phy hooks
+ - [amd64,arm64] amd-xgbe: Improve KR auto-negotiation and training
+ - [amd64,arm64] amd-xgbe: Only use the SFP supported transceiver signals
+ - net: sched: ife: signal not finding metaid
+ - net: sched: ife: handle malformed tlv length
+ - net: sched: ife: check on metadata length
+ - l2tp: hold reference on tunnels in netlink dumps
+ - l2tp: hold reference on tunnels printed in pppol2tp proc file
+ - l2tp: hold reference on tunnels printed in l2tp/tunnels debugfs file
+ - l2tp: fix {pppol2tp, l2tp_dfs}_seq_stop() in case of seq_file overflow
+ - llc: hold llc_sap before release_sock()
+ - llc: fix NULL pointer deref for SOCK_ZAPPED
+ - [s390x] qeth: fix error handling in adapter command callbacks
+ - [s390x] qeth: avoid control IO completion stalls
+ - [s390x] qeth: handle failure on workqueue creation
+ - [armhf] net: ethernet: ti: cpsw: fix tx vlan priority mapping
+ - net: validate attribute sizes in neigh_dump_table()
+ - bnxt_en: Fix memory fault in bnxt_ethtool_init()
+ - virtio-net: add missing virtqueue kick when flushing packets
+ - VSOCK: make af_vsock.ko removable again
+ - net: aquantia: Regression on reset with 1.x firmware
+ - tun: fix vlan packet truncation
+ - net: aquantia: oops when shutdown on already stopped device
+ - virtio_net: split out ctrl buffer
+ - virtio_net: fix adding vids on big-endian
+ - Revert "mm/hmm: fix header file if/else/endif maze"
+ - commoncap: Handle memory allocation failure.
+ - scsi: mptsas: Disable WRITE SAME
+ - cdrom: information leak in cdrom_ioctl_media_changed() (CVE-2018-10940)
+ - fsnotify: Fix fsnotify_mark_connector race
+ - [m68k] mac: Don't remap SWIM MMIO region
+ - [m68k] block/swim: Check drive type
+ - [m68k] block/swim: Don't log an error message for an invalid ioctl
+ - [m68k] block/swim: Remove extra put_disk() call from error path
+ - [m68k] block/swim: Rename macros to avoid inconsistent inverted logic
+ - [m68k] block/swim: Select appropriate drive on device open
+ - [m68k] block/swim: Fix array bounds check
+ - [m68k] block/swim: Fix IO error at end of medium
+ - tracing: Fix missing tab for hwlat_detector print format
+ - hwmon: (k10temp) Add temperature offset for Ryzen 2700X
+ - hwmon: (k10temp) Add support for AMD Ryzen w/ Vega graphics
+ - [s390x] cio: update chpid descriptor after resource accessibility event
+ - [s390x] dasd: fix IO error for newly defined devices
+ - [s390x] uprobes: implement arch_uretprobe_is_alive()
+ - [s390x] cpum_cf: rename IBM z13/z14 counter names
+ - kprobes: Fix random address output of blacklist file
+ - ACPI / video: Only default only_lcd to true on Win8-ready _desktops_
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.16.7
+ - ext4: prevent right-shifting extents beyond EXT_MAX_BLOCKS
+ - ext4: set h_journal if there is a failure starting a reserved handle
+ - ext4: add MODULE_SOFTDEP to ensure crc32c is included in the initramfs
+ - random: set up the NUMA crng instances after the CRNG is fully
+ initialized
+ - random: fix possible sleeping allocation from irq context
+ - random: rate limit unseeded randomness warnings
+ - usbip: usbip_event: fix to not print kernel pointer address
+ - usbip: usbip_host: fix to hold parent lock for device_attach() calls
+ - usbip: vhci_hcd: Fix usb device and sockfd leaks
+ - usbip: vhci_hcd: check rhport before using in vhci_hub_control()
+ - Revert "xhci: plat: Register shutdown for xhci_plat"
+ - xhci: Fix USB ports for Dell Inspiron 5775
+ - USB: serial: simple: add libtransistor console
+ - USB: serial: ftdi_sio: use jtag quirk for Arrow USB Blaster
+ - USB: serial: cp210x: add ID for NI USB serial console
+ - [arm64] serial: mvebu-uart: Fix local flags handling on termios update
+ - usb: typec: ucsi: Increase command completion timeout value
+ - usb: core: Add quirk for HP v222w 16GB Mini
+ - USB: Increment wakeup count on remote wakeup.
+ - ALSA: usb-audio: Skip broken EU on Dell dock USB-audio
+ - virtio: add ability to iterate over vqs
+ - virtio_console: don't tie bufs to a vq
+ - virtio_console: free buffers after reset
+ - virtio_console: drop custom control queue cleanup
+ - virtio_console: move removal code
+ - virtio_console: reset on out of memory
+ - drm/virtio: fix vq wait_event condition
+ - tty: Don't call panic() at tty_ldisc_init()
+ - tty: n_gsm: Fix long delays with control frame timeouts in ADM mode
+ - tty: n_gsm: Fix DLCI handling for ADM mode if debug & 2 is not set
+ - tty: Avoid possible error pointer dereference at tty_ldisc_restore().
+ - tty: Use __GFP_NOFAIL for tty_ldisc_get()
+ - ALSA: dice: fix OUI for TC group
+ - ALSA: dice: fix error path to destroy initialized stream data
+ - ALSA: hda - Skip jack and others for non-existing PCM streams
+ - ALSA: opl3: Hardening for potential Spectre v1
+ - ALSA: asihpi: Hardening for potential Spectre v1
+ - ALSA: hdspm: Hardening for potential Spectre v1
+ - ALSA: rme9652: Hardening for potential Spectre v1
+ - ALSA: control: Hardening for potential Spectre v1
+ - ALSA: pcm: Return negative delays from SNDRV_PCM_IOCTL_DELAY.
+ - ALSA: core: Report audio_tstamp in snd_pcm_sync_ptr
+ - ALSA: seq: oss: Fix unbalanced use lock for synth MIDI device
+ - ALSA: seq: oss: Hardening for potential Spectre v1
+ - ALSA: hda: Hardening for potential Spectre v1
+ - ALSA: hda/realtek - Add some fixes for ALC233
+ - ALSA: hda/realtek - Update ALC255 depop optimize
+ - ALSA: hda/realtek - change the location for one of two front mics
+ - mtd: spi-nor: cadence-quadspi: Fix page fault kernel panic
+ - mtd: cfi: cmdset_0001: Do not allow read/write to suspend erase block.
+ - mtd: cfi: cmdset_0001: Workaround Micron Erase suspend bug.
+ - mtd: cfi: cmdset_0002: Do not allow read/write to suspend erase block.
+ - mtd: rawnand: tango: Fix struct clk memory leak
+ - mtd: rawnand: marvell: fix the chip-select DT parsing logic
+ - kobject: don't use WARN for registration failures
+ - scsi: sd_zbc: Avoid that resetting a zone fails sporadically
+ - scsi: sd: Defer spinning up drive while SANITIZE is in progress
+ - blk-mq: start request gstate with gen 1
+ - bfq-iosched: ensure to clear bic/bfqq pointers when preparing request
+ - block: do not use interruptible wait anywhere
+ - [s390x] vfio: ccw: process ssch with interrupts disabled
+ - [arm64] PCI: aardvark: Fix logic in advk_pcie_{rd,wr}_conf()
+ - [arm64] PCI: aardvark: Set PIO_ADDR_LS correctly in advk_pcie_rd_conf()
+ - [arm64] PCI: aardvark: Use ISR1 instead of ISR0 interrupt in legacy irq
+ mode
+ - [arm64] PCI: aardvark: Fix PCIe Max Read Request Size setting
+ - [armhf,arm64] KVM: Close VMID generation race
+ - [powerpc*] mm: Flush cache on memory hot(un)plug
+ - [powerpc*] mce: Fix a bug where mce loops on memory UE.
+ - [powerpc*] powernv/npu: Do a PID GPU TLB flush when invalidating a large
+ address range
+ - crypto: drbg - set freed buffers to NULL
+ - libceph: un-backoff on tick when we have a authenticated session
+ - libceph: reschedule a tick in finish_hunting()
+ - libceph: validate con->state at the top of try_write()
+ - PCI / PM: Do not clear state_saved in pci_pm_freeze() when smart suspend
+ is set
+ - module: Fix display of wrong module .text address
+ - earlycon: Use a pointer table to fix __earlycon_table stride
+ - [powerpc*] cpufreq: powernv: Fix hardlockup due to synchronous smp_call
+ in timer interrupt
+ - [powerpc*] rtc: opal: Fix OPAL RTC driver OPAL_BUSY loops
+ - drm/edid: Reset more of the display info
+ - drm/amdgpu: set COMPUTE_PGM_RSRC1 for SGPR/VGPR clearing shaders
+ - [x86] drm/i915/fbdev: Enable late fbdev initial configuration
+ - [x86] drm/i915/audio: set minimum CD clock to twice the BCLK
+ - [x86] drm/i915: Enable display WA#1183 from its correct spot
+ - drm/amd/display: Fix deadlock when flushing irq
+ - drm/amd/display: Don't read EDID in atomic_check
+ - drm/amd/display: Disallow enabling CRTC without primary plane with FB
+ - objtool, perf: Fix GCC 8 -Wrestrict error
+ - [x86] ipc: Fix x32 version of shmid64_ds and msqid64_ds
+ - [x86] smpboot: Don't use mwait_play_dead() on AMD systems
+ - [x86] microcode/intel: Save microcode patch unconditionally
+ - [x86] microcode: Do not exit early from __reload_late()
+ - tick/sched: Do not mess with an enqueued hrtimer
+ - [x86] crypto: ccp - add check to get PSP master only when PSP is
+ detected
+ - [armhf,arm64] KVM: Add PSCI version selection API
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.16.8
+ - ACPI / button: make module loadable when booted in non-ACPI mode
+ - [arm64] Add work around for Arm Cortex-A55 Erratum 1024718
+ - ALSA: hda - Fix incorrect usage of IS_REACHABLE()
+ - ALSA: pcm: Check PCM state at xfern compat ioctl
+ - ALSA: seq: Fix races at MIDI encoding in snd_virmidi_output_trigger()
+ - ALSA: dice: fix kernel NULL pointer dereference due to invalid
+ calculation for array index
+ - ALSA: aloop: Mark paused device as inactive
+ - ALSA: aloop: Add missing cable lock to ctl API callbacks
+ - errseq: Always report a writeback error once
+ - tracepoint: Do not warn on ENOMEM
+ - scsi: target: Fix fortify_panic kernel exception
+ - Input: leds - fix out of bound access
+ - Input: atmel_mxt_ts - add touchpad button mapping for Samsung Chromebook
+ Pro
+ - swiotlb: fix inversed DMA_ATTR_NO_WARN test
+ - rtlwifi: cleanup 8723be ant_sel definition
+ - xfs: prevent creating negative-sized file via INSERT_RANGE
+ - RDMA/cxgb4: release hw resources on device removal
+ - RDMA/ucma: Allow resolving address w/o specifying source address
+ - RDMA/mlx5: Fix multiple NULL-ptr deref errors in rereg_mr flow
+ - RDMA/mlx4: Add missed RSS hash inner header flag
+ - RDMA/mlx5: Protect from shift operand overflow
+ - NET: usb: qmi_wwan: add support for ublox R410M PID 0x90b2
+ - IB/mlx5: Use unlimited rate when static rate is not supported
+ - infiniband: mlx5: fix build errors when INFINIBAND_USER_ACCESS=m
+ - IB/hfi1: Fix handling of FECN marked multicast packet
+ - IB/hfi1: Fix loss of BECN with AHG
+ - IB/hfi1: Fix NULL pointer dereference when invalid num_vls is used
+ - iw_cxgb4: Atomically flush per QP HW CQEs
+ - btrfs: Take trans lock before access running trans in check_delayed_ref
+ - [arm64,armhf] drm/vc4: Make sure vc4_bo_{inc,dec}_usecnt() calls are
+ balanced
+ - [x86] drm/vmwgfx: Fix a buffer object leak
+ - drm/bridge: vga-dac: Fix edid memory leak
+ - xhci: Fix use-after-free in xhci_free_virt_device
+ - USB: serial: visor: handle potential invalid device configuration
+ - [arm64,armhf] usb: dwc3: gadget: Fix list_del corruption in
+ dwc3_ep_dequeue
+ - USB: Accept bulk endpoints with 1024-byte maxpacket
+ - USB: serial: option: reimplement interface masking
+ - USB: serial: option: adding support for ublox R410M
+ - [arm64,armhf] usb: musb: host: fix potential NULL pointer dereference
+ - [arm64, armhf] usb: musb: trace: fix NULL pointer dereference in
+ musb_g_tx()
+ - [x86] platform/x86: asus-wireless: Fix NULL pointer dereference
+ - [x86] platform/x86: Kconfig: Fix dell-laptop dependency chain.
+ - [x86] KVM: remove APIC Timer periodic/oneshot spikes
+ - [x86] tsc: Always unregister clocksource_tsc_early
+ - [x86] tsc: Fix mark_tsc_unstable()
+ - [arm64] irqchip/qcom: Fix check for spurious interrupts
+ - clocksource: Allow clocksource_mark_unstable() on unregistered
+ clocksources
+ - clocksource: Initialize cs->wd_list
+ - clocksource: Consistent de-rate when marking unstable
+ - tracing: Fix bad use of igrab in trace_uprobe.c
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.16.9
+ - ipvs: fix rtnl_lock lockups caused by start_sync_thread
+ - netfilter: ebtables: don't attempt to allocate 0-sized compat array
+ - clk: ti: fix flag space conflict with clkctrl clocks
+ - rds: tcp: must use spin_lock_irq* and not spin_lock_bh with
+ rds_tcp_conn_lock
+ - crypto: af_alg - fix possible uninit-value in alg_bind()
+ - netlink: fix uninit-value in netlink_sendmsg
+ - net: fix rtnh_ok()
+ - net: initialize skb->peeked when cloning
+ - net: fix uninit-value in __hw_addr_add_ex()
+ - dccp: initialize ireq->ir_mark
+ - ipv4: fix uninit-value in ip_route_output_key_hash_rcu()
+ - soreuseport: initialise timewait reuseport field
+ - inetpeer: fix uninit-value in inet_getpeer
+ - bpf/tracing: fix a deadlock in perf_event_detach_bpf_prog
+ - memcg: fix per_node_info cleanup
+ - perf: Remove superfluous allocation error check
+ - i2c: dev: prevent ZERO_SIZE_PTR deref in i2cdev_ioctl_rdwr()
+ - tcp: fix TCP_REPAIR_QUEUE bound checking
+ - bdi: wake up concurrent wb_shutdown() callers.
+ - bdi: Fix use after free bug in debugfs_remove()
+ - bdi: Fix oops in wb_workfn()
+ - compat: fix 4-byte infoleak via uninitialized struct field
+ - gpioib: do not free unrequested descriptors
+ - gpio: fix error path in lineevent_create
+ - rfkill: gpio: fix memory leak in probe error path
+ - libata: Apply NOLPM quirk for SanDisk SD7UB3Q*G1001 SSDs
+ - dm integrity: use kvfree for kvmalloc'd memory
+ - tracing: Fix regex_match_front() to not over compare the test string
+ - mm: sections are not offlined during memory hotremove
+ - mm, oom: fix concurrent munlock and oom reaper unmap (CVE-2018-1000200)
+ - ceph: fix rsize/wsize capping in ceph_direct_read_write()
+ - can: kvaser_usb: Increase correct stats counter in kvaser_usb_rx_can_msg()
+ - [armhf,arm64] drm/vc4: Fix scaling of uni-planar formats
+ - drm/ttm: Use GFP_TRANSHUGE_LIGHT for allocating huge pages
+ - [x86] drm/i915: Fix drm:intel_enable_lvds ERROR message in kernel log
+ - [x86] drm/i915: Adjust eDP's logical vco in a reliable place.
+ - drm/nouveau: Fix deadlock in nv50_mstm_register_connector()
+ (Closes: #898825)
+ - drm/nouveau/ttm: don't dereference nvbo::cli, it can outlive client
+ - drm/atomic: Clean old_state/new_state in drm_atomic_state_default_clear()
+ - drm/atomic: Clean private obj old_state/new_state in
+ drm_atomic_state_default_clear()
+ - net: atm: Fix potential Spectre v1
+ - atm: zatm: Fix potential Spectre v1
+ - PCI / PM: Always check PME wakeup capability for runtime wakeup support
+ - PCI / PM: Check device_may_wakeup() in pci_enable_wake()
+ - cpufreq: schedutil: Avoid using invalid next_freq
+ - Revert "Bluetooth: btusb: Fix quirk for Atheros 1525/QCA6174"
+ - [x86] Bluetooth: btusb: Add Dell XPS 13 9360 to
+ btusb_needs_reset_resume_table
+ - Bluetooth: btusb: Only check needs_reset_resume DMI table for QCA rome
+ chipsets
+ - [armhf] thermal: exynos: Reading temperature makes sense only when TMU is
+ turned on
+ - [armhf] thermal: exynos: Propagate error value from tmu_read()
+ - nvme: add quirk to force medium priority for SQ creation
+ - nvme: Fix sync controller reset return
+ - smb3: directory sync should not return an error
+ - swiotlb: silent unwanted warning "buffer is full"
+ - sched/core: Fix possible Spectre-v1 indexing for sched_prio_to_weight[]
+ - sched/autogroup: Fix possible Spectre-v1 indexing for
+ sched_prio_to_weight[]
+ - tracing/uprobe_event: Fix strncpy corner case
+ - [x86] perf: Fix possible Spectre-v1 indexing for hw_perf_event cache_*
+ - [x86] perf/cstate: Fix possible Spectre-v1 indexing for pkg_msr
+ - [x86] perf/msr: Fix possible Spectre-v1 indexing in the MSR driver
+ - perf/core: Fix possible Spectre-v1 indexing for ->aux_pages[]
+ - [x86] perf: Fix possible Spectre-v1 indexing for x86_pmu::event_map()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.16.10
+ - 8139too: Use disable_irq_nosync() in rtl8139_poll_controller()
+ - bridge: check iface upper dev when setting master via ioctl
+ - dccp: fix tasklet usage
+ - ipv4: fix fnhe usage by non-cached routes
+ - ipv4: fix memory leaks in udp_sendmsg, ping_v4_sendmsg
+ - llc: better deal with too small mtu
+ - net: ethernet: sun: niu set correct packet size in skb
+ - [armhf] net: ethernet: ti: cpsw: fix packet leaking in dual_mac mode
+ - net/mlx4_en: Fix an error handling path in 'mlx4_en_init_netdev()'
+ - net/mlx4_en: Verify coalescing parameters are in range
+ - net/mlx5e: Err if asked to offload TC match on frag being first
+ - net/mlx5: E-Switch, Include VF RDMA stats in vport statistics
+ - net sched actions: fix refcnt leak in skbmod
+ - net_sched: fq: take care of throttled flows before reuse
+ - net: support compat 64-bit time in {s,g}etsockopt
+ - openvswitch: Don't swap table in nlattr_set() after OVS_ATTR_NESTED is
+ found
+ - qmi_wwan: do not steal interfaces from class drivers
+ - r8169: fix powering up RTL8168h
+ - rds: do not leak kernel memory to user land
+ - sctp: delay the authentication for the duplicated cookie-echo chunk
+ - sctp: fix the issue that the cookie-ack with auth can't get processed
+ - sctp: handle two v4 addrs comparison in sctp_inet6_cmp_addr
+ - sctp: remove sctp_chunk_put from fail_mark err path in
+ sctp_ulpevent_make_rcvmsg
+ - sctp: use the old asoc when making the cookie-ack chunk in dupcook_d
+ - tcp_bbr: fix to zero idle_restart only upon S/ACKed data
+ - tcp: ignore Fast Open on repair mode
+ - tg3: Fix vunmap() BUG_ON() triggered from tg3_free_consistent().
+ - bonding: do not allow rlb updates to invalid mac
+ - bonding: send learning packets for vlans on slave
+ - net: sched: fix error path in tcf_proto_create() when modules are not
+ configured
+ - net/mlx5e: TX, Use correct counter in dma_map error flow
+ - net/mlx5: Avoid cleaning flow steering table twice during error flow
+ - [x86] hv_netvsc: set master device
+ - ipv6: fix uninit-value in ip6_multipath_l3_keys()
+ - net/mlx5e: Allow offloading ipv4 header re-write for icmp
+ - udp: fix SO_BINDTODEVICE
+ - net/mlx5e: DCBNL fix min inline header size for dscp
+ - sctp: clear the new asoc's stream outcnt in sctp_stream_update
+ - tcp: restore autocorking
+ - tipc: fix one byte leak in tipc_sk_set_orig_addr()
+ - [x86] hv_netvsc: Fix net device attach on older Windows hosts
+ - ipv4: reset fnhe_mtu_locked after cache route flushed
+ - net/mlx5: Fix mlx5_get_vector_affinity function
+ - net: phy: sfp: fix the BR,min computation
+ - net/smc: keep clcsock reference in smc_tcp_listen_work()
+ - scsi: aacraid: Correct hba_send to include iu_type
+ - proc: do not access cmdline nor environ from file-backed areas
+ (CVE-2018-1120)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.16.11
+ - xhci: Fix USB3 NULL pointer dereference at logical disconnect.
+ - usbip: usbip_host: refine probe and disconnect debug msgs to be useful
+ - usbip: usbip_host: delete device from busid_table after rebind
+ - usbip: usbip_host: run rebind from exit when module is removed
+ - usbip: usbip_host: fix NULL-ptr deref and use-after-free errors
+ - usbip: usbip_host: fix bad unlock balance during stub_probe()
+ - ALSA: usb: mixer: volume quirk for CM102-A+/102S+
+ - ALSA: hda/realtek - Clevo P950ER ALC1220 Fixup
+ - ALSA: hda: Add Lenovo C50 All in one to the power_save blacklist
+ - ALSA: control: fix a redundant-copy issue
+ - [amd64] spi: pxa2xx: Allow 64-bit DMA
+ - KVM: vmx: update sec exec controls for UMIP iff emulating UMIP
+ - [armhf,arm64] KVM: Properly protect VGIC locks from IRQs
+ - [armhf,arm64] KVM: VGIC/ITS: Promote irq_lock() in update_affinity
+ - [armhf,arm64] KVM: VGIC/ITS save/restore: protect kvm_read_guest() calls
+ - [armhf,arm64] KVM: VGIC/ITS: protect kvm_read_guest() calls with SRCU
+ lock
+ - hwmon: (k10temp) Fix reading critical temperature register
+ - hwmon: (k10temp) Use API function to access System Management Network
+ - [s390x] vfio: ccw: fix cleanup if cp_prefetch fails
+ - tracing/x86/xen: Remove zero data size trace events
+ trace_xen_mmu_flush_tlb{_all}
+ - vsprintf: Replace memory barrier with static_key for random_ptr_key
+ update
+ - [x86] amd_nb: Add support for Raven Ridge CPUs
+ - [arm64] tee: shm: fix use-after-free via temporarily dropped reference
+ - netfilter: nf_tables: free set name in error path
+ - netfilter: nf_tables: can't fail after linking rule into active rule
+ list
+ - netfilter: nf_tables: nf_tables_obj_lookup_byhandle() can be static
+ - [arm64] dts: marvell: armada-cp110: Add clocks for the xmdio node
+ - [arm64] dts: marvell: armada-cp110: Add mg_core_clk for ethernet node
+ - i2c: designware: fix poll-after-enable regression
+ - mtd: rawnand: marvell: Fix read logic for layouts with ->nchunks > 2
+ - [powerpc*] powerpc/powernv: Fix NVRAM sleep in invalid context when
+ crashing
+ - drm: Match sysfs name in link removal to link creation
+ - radix tree: fix multi-order iteration race
+ - mm: don't allow deferred pages with NEED_PER_CPU_KM
+ - [x86] drm/i915/gen9: Add WaClearHIZ_WM_CHICKEN3 for bxt and glk
+ - [s390x] qdio: fix access to uninitialized qdio_q fields
+ - [s390x] cpum_sf: ensure sample frequency of perf event attributes is
+ non-zero
+ - [s390x] qdio: don't release memory in qdio_setup_irq()
+ - [s390x] remove indirect branch from do_softirq_own_stack
+ - bcache: return 0 from bch_debug_init() if CONFIG_DEBUG_FS=n
+ - [x86] pkeys: Override pkey when moving away from PROT_EXEC
+ - [x86] pkeys: Do not special case protection key 0
+ - efi: Avoid potential crashes, fix the 'struct efi_pci_io_protocol_32'
+ definition for mixed mode
+ - [arm*] 8771/1: kprobes: Prohibit kprobes on do_undefinstr
+ - [x86] apic/x2apic: Initialize cluster ID properly
+ - [x86] mm: Drop TS_COMPAT on 64-bit exec() syscall
+ - tick/broadcast: Use for_each_cpu() specially on UP kernels
+ - [arm*] 8769/1: kprobes: Fix to use get_kprobe_ctlblk after irq-disabed
+ - [arm*] 8770/1: kprobes: Prohibit probing on optimized_callback
+ - [arm*] 8772/1: kprobes: Prohibit kprobes on get_user functions
+ - Btrfs: fix xattr loss after power failure
+ - Btrfs: send, fix invalid access to commit roots due to concurrent
+ snapshotting
+ - btrfs: property: Set incompat flag if lzo/zstd compression is set
+ - btrfs: fix crash when trying to resume balance without the resume flag
+ - btrfs: Split btrfs_del_delalloc_inode into 2 functions
+ - btrfs: Fix delalloc inodes invalidation during transaction abort
+ - btrfs: fix reading stale metadata blocks after degraded raid1 mounts
+ - x86/nospec: Simplify alternative_msr_write()
+ - x86/bugs: Concentrate bug detection into a separate function
+ - x86/bugs: Concentrate bug reporting into a separate function
+ - x86/bugs: Read SPEC_CTRL MSR during boot and re-use reserved bits
+ - x86/bugs, KVM: Support the combination of guest and host IBRS
+ - x86/bugs: Expose /sys/../spec_store_bypass
+ - x86/cpufeatures: Add X86_FEATURE_RDS
+ - x86/bugs: Provide boot parameters for the spec_store_bypass_disable
+ mitigation
+ - x86/bugs/intel: Set proper CPU features and setup RDS
+ - x86/bugs: Whitelist allowed SPEC_CTRL MSR values
+ - x86/bugs/AMD: Add support to disable RDS on Fam[15,16,17]h if requested
+ - x86/KVM/VMX: Expose SPEC_CTRL Bit(2) to the guest
+ - x86/speculation: Create spec-ctrl.h to avoid include hell
+ - prctl: Add speculation control prctls
+ - x86/process: Allow runtime control of Speculative Store Bypass
+ - x86/speculation: Add prctl for Speculative Store Bypass mitigation
+ - nospec: Allow getting/setting on non-current task
+ - proc: Provide details on speculation flaw mitigations
+ - seccomp: Enable speculation flaw mitigations
+ - x86/bugs: Make boot modes __ro_after_init
+ - prctl: Add force disable speculation
+ - seccomp: Use PR_SPEC_FORCE_DISABLE
+ - seccomp: Add filter flag to opt-out of SSB mitigation
+ - seccomp: Move speculation migitation control to arch code
+ - x86/speculation: Make "seccomp" the default mode for Speculative Store
+ Bypass
+ - x86/bugs: Rename _RDS to _SSBD
+ - proc: Use underscores for SSBD in 'status'
+ - Documentation/spec_ctrl: Do some minor cleanups
+ - x86/bugs: Fix __ssb_select_mitigation() return type
+ - x86/bugs: Make cpu_show_common() static
+ - x86/bugs: Fix the parameters alignment and missing void
+ - x86/cpu: Make alternative_msr_write work for 32-bit code
+ - KVM: SVM: Move spec control call after restore of GS
+ - x86/speculation: Use synthetic bits for IBRS/IBPB/STIBP
+ - x86/cpufeatures: Disentangle MSR_SPEC_CTRL enumeration from IBRS
+ - x86/cpufeatures: Disentangle SSBD enumeration
+ - x86/cpufeatures: Add FEATURE_ZEN
+ - x86/speculation: Handle HT correctly on AMD
+ - x86/bugs, KVM: Extend speculation control for VIRT_SPEC_CTRL
+ - x86/speculation: Add virtualized speculative store bypass disable
+ support
+ - x86/speculation: Rework speculative_store_bypass_update()
+ - x86/bugs: Unify x86_spec_ctrl_{set_guest,restore_host}
+ - x86/bugs: Expose x86_spec_ctrl_base directly
+ - x86/bugs: Remove x86_spec_ctrl_set()
+ - x86/bugs: Rework spec_ctrl base and mask logic
+ - x86/speculation, KVM: Implement support for VIRT_SPEC_CTRL/LS_CFG
+ - KVM: SVM: Implement VIRT_SPEC_CTRL support for SSBD
+ - x86/bugs: Rename SSBD_NO to SSB_NO
+ - bpf: Prevent memory disambiguation attack
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.16.12
+ - net/mlx5: Fix build break when CONFIG_SMP=n
+ - net: Fix a bug in removing queues from XPS map
+ - net/mlx4_core: Fix error handling in mlx4_init_port_info.
+ - net/sched: fix refcnt leak in the error path of tcf_vlan_init()
+ - net: sched: red: avoid hashing NULL child
+ - net/smc: check for missing nlattrs in SMC_PNETID messages
+ - net: test tailroom before appending to linear skb
+ - packet: in packet_snd start writing at link layer allocation
+ - sock_diag: fix use-after-free read in __sk_free
+ - tcp: purge write queue in tcp_connect_init()
+ - tun: fix use after free for ptr_ring
+ - tuntap: fix use after free during release
+ - cxgb4: Correct ntuple mask validation for hash filters
+ - [armhf] net: dsa: bcm_sf2: Fix RX_CLS_LOC_ANY overwrite for last rule
+ - net: dsa: Do not register devlink for unused ports
+ - [armhf] net: dsa: bcm_sf2: Fix IPv6 rules and chain ID
+ - [armhf] net: dsa: bcm_sf2: Fix IPv6 rule half deletion
+ - 3c59x: convert to generic DMA API
+ - cxgb4: fix offset in collecting TX rate limit info
+ - vmxnet3: set the DMA mask before the first DMA map operation
+ - vmxnet3: use DMA memory barriers where required
+ - net: ip6_gre: Request headroom in __gre6_xmit()
+ - net: ip6_gre: Fix headroom request in ip6erspan_tunnel_xmit()
+ - net: ip6_gre: Split up ip6gre_tnl_link_config()
+ - net: ip6_gre: Split up ip6gre_tnl_change()
+ - net: ip6_gre: Split up ip6gre_newlink()
+ - net: ip6_gre: Split up ip6gre_changelink()
+ - net: ip6_gre: Fix ip6erspan hlen calculation
+ - net: ip6_gre: fix tunnel metadata device sharing.
+ - [sparc*]: vio: use put_device() instead of kfree()
+ - ext2: fix a block leak
+ - [powerpc*] rfi-flush: Always enable fallback flush on pseries
+ - [powerpc*] Add security feature flags for Spectre/Meltdown
+ - [powerpc*] pseries: Add new H_GET_CPU_CHARACTERISTICS flags
+ - [powerpc*] pseries: Set or clear security feature flags
+ - [powerpc*] powerpc/powernv: Set or clear security feature flags
+ - [powerpc*] powerpc/64s: Move cpu_show_meltdown()
+ - [powerpc*] powerpc/64s: Enhance the information in cpu_show_meltdown()
+ - [powerpc*] powerpc/powernv: Use the security flags in
+ pnv_setup_rfi_flush()
+ - [powerpc*] powerpc/pseries: Use the security flags in
+ pseries_setup_rfi_flush()
+ - [powerpc*] powerpc/64s: Wire up cpu_show_spectre_v1()
+ - [powerpc*] powerpc/64s: Wire up cpu_show_spectre_v2()
+ - [powerpc*] powerpc/pseries: Fix clearing of security feature flags
+ - [powerpc*] powerpc: Move default security feature flags
+ - [powerpc*] powerpc/64s: Add support for a store forwarding barrier at
+ kernel entry/exit
+ - [s390x] move nobp parameter functions to nospec-branch.c
+ - [s390x] add automatic detection of the spectre defense
+ - [s390x] report spectre mitigation via syslog
+ - [s390x] add sysfs attributes for spectre
+ - [s390x] add assembler macros for CPU alternatives
+ - [s390x] correct nospec auto detection init order
+ - [s390x] correct module section names for expoline code revert
+ - [s390x] move expoline assembler macros to a header
+ - [s390x] crc32-vx: use expoline for indirect branches
+ - [s390x] lib: use expoline for indirect branches
+ - [s390x] ftrace: use expoline for indirect branches
+ - [s390x] kernel: use expoline for indirect branches
+ - [s390x] move spectre sysfs attribute code
+ - [s390x] extend expoline to BC instructions
+ - [s390x] use expoline thunks in the BPF JIT
+ - scsi: sg: allocate with __GFP_ZERO in sg_build_indirect()
+ - [s390x] scsi: zfcp: fix infinite iteration on ERP ready list
+ - Bluetooth: btusb: Add USB ID 7392:a611 for Edimax EW-7611ULB
+ - ALSA: usb-audio: Add native DSD support for Luxman DA-06
+ - [arm64,armhf] usb: dwc3: Add SoftReset PHY synchonization delay
+ - [arm64,armhf] usb: dwc3: Update DWC_usb31 GTXFIFOSIZ reg fields
+ - [arm64,armhf] usb: dwc3: Makefile: fix link error on randconfig
+ - xhci: zero usb device slot_id member when disabling and freeing a xhci slot
+ - [arm64,armhf] usb: dwc2: Fix interval type issue
+ - [arm64,armhf] usb: dwc2: hcd: Fix host channel halt flow
+ - [arm64,armhf] usb: dwc2: host: Fix transaction errors in host mode
+ - usbip: Correct maximum value of CONFIG_USBIP_VHCI_HC_PORTS
+ - media: em28xx: USB bulk packet size fix
+ - Bluetooth: btusb: Add device ID for RTL8822BE
+ - Bluetooth: btusb: Add support for Intel Bluetooth device 22560
+ [8087:0026]
+ - xhci: Show what USB release number the xHC supports from protocol
+ capablity
+ - loop: don't call into filesystem while holding lo_ctl_mutex
+ - loop: fix LOOP_GET_STATUS lock imbalance
+ - cfg80211: limit wiphy names to 128 bytes
+ - hfsplus: stop workqueue when fill_super() failed
+ - [x86] kexec: Avoid double free_page() upon do_kexec_load() failure
+ - staging: bcm2835-audio: Release resources on module_exit()
+ - staging: lustre: fix bug in osc_enter_cache_try
+ - [x86] staging: rtl8192u: return -ENOMEM on failed allocation of
+ priv->oldaddr
+ - staging: lustre: lmv: correctly iput lmo_root
+ - [arm64] crypto: inside-secure - move the digest to the request context
+ - [arm64] crypto: inside-secure - wait for the request to complete if in
+ the backlog
+ - [x86] crypto: ccp - don't disable interrupts while setting up debugfs
+ - [arm64] crypto: inside-secure - do not process request if no command was
+ issued
+ - [arm64] crypto: inside-secure - fix the cache_len computation
+ - [arm64] crypto: inside-secure - fix the extra cache computation
+ - [arm64] crypto: inside-secure - do not overwrite the threshold value
+ - [armhf] crypto: sunxi-ss - Add MODULE_ALIAS to sun4i-ss
+ - [arm64] crypto: inside-secure - fix the invalidation step during
+ cra_exit
+ - scsi: aacraid: Insure command thread is not recursively stopped
+ - scsi: devinfo: add HP DISK-SUBSYSTEM device, for HP XP arrays
+ - scsi: lpfc: Fix NVME Initiator FirstBurst
+ - scsi: core: Make SCSI Status CONDITION MET equivalent to GOOD
+ - scsi: mvsas: fix wrong endianness of sgpio api
+ - scsi: lpfc: Fix issue_lip if link is disabled
+ - scsi: lpfc: Fix nonrecovery of NVME controller after cable swap.
+ - scsi: lpfc: Fix soft lockup in lpfc worker thread during LIP testing
+ - scsi: lpfc: Fix IO failure during hba reset testing with nvme io.
+ - scsi: lpfc: Fix frequency of Release WQE CQEs
+ - [armhf] clk: rockchip: Fix wrong parent for SDMMC phase clock for rk3228
+ - clk: Don't show the incorrect clock phase
+ - clk: hisilicon: mark wdt_mux_p[] as const
+ - [arm64,armhf] clk: tegra: Fix pll_u rate configuration
+ - [armhf] clk: rockchip: Prevent calculating mmc phase if clock rate is
+ zero
+ - [armhf] clk: samsung: s3c2410: Fix PLL rates
+ - [armhf] clk: samsung: exynos7: Fix PLL rates
+ - [armhf] clk: samsung: exynos5260: Fix PLL rates
+ - [armhf] clk: samsung: exynos5433: Fix PLL rates
+ - [armhf] clk: samsung: exynos5250: Fix PLL rates
+ - [armhf] clk: samsung: exynos3250: Fix PLL rates
+ - clk: meson: axg: fix the od shift of the sys_pll
+ - clk: meson: axg: add the fractional part of the fixed_pll
+ - media: cx23885: Override 888 ImpactVCBe crystal frequency
+ - media: cx23885: Set subdev host data to clk_freq pointer
+ - media: em28xx: Add Hauppauge SoloHD/DualHD bulk models
+ - media: v4l: vsp1: Fix display stalls when requesting too many inputs
+ - media: i2c: adv748x: fix HDMI field heights
+ - media: vb2: Fix videobuf2 to map correct area
+ - media: vivid: fix incorrect capabilities for radio
+ - media: cx25821: prevent out-of-bounds read on array card
+ - [arm64] serial: mvebu-uart: fix tx lost characters
+ - [sh4] serial: sh-sci: Fix out-of-bounds access through DT alias
+ - [armhf] serial: samsung: Fix out-of-bounds access through serial port
+ index
+ - [armhf] serial: imx: Fix out-of-bounds access through serial port index
+ - [armhf] serial: arc_uart: Fix out-of-bounds access through DT alias
+ - [arm*] serial: 8250: Don't service RX FIFO if interrupts are disabled
+ - [armhf] rtc: snvs: Fix usage of snvs_rtc_enable
+ - rtc: hctosys: Ensure system time doesn't overflow time_t
+ - [arm64,armhf] rtc: rk808: fix possible race condition
+ - [armel/marvell] rtc: m41t80: fix race conditions
+ - [m68k] rtc: rp5c01: fix possible race condition
+
+ [ Romain Perier ]
+ * [armhf] DRM: Enable DW_HDMI_AHB_AUDIO and DW_HDMI_CEC (Closes: #897204)
+ * [armhf] MFD: Enable MFD_TPS65217 (Closes: #897590)
+
+ [ Ben Hutchings ]
+ * kbuild: use -fmacro-prefix-map to make __FILE__ a relative path
+ * Bump ABI to 2
+ * [rt] Update to 4.16.8-rt3
+ * [x86] KVM: VMX: Expose SSBD properly to guests.
+
+ [ Salvatore Bonaccorso ]
+ * [rt] Update to 4.16.7-rt1 and reenable
+ * [rt] certs: Reference certificate for test key used in Debian signing
+ service
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Sun, 27 May 2018 14:05:03 +0200
+
+linux (4.16.5-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.16.1
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.16.2
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.16.3
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.16.4
+ - ext4: limit xattr size to INT_MAX (CVE-2018-1095)
+ - random: fix crng_ready() test (CVE-2018-1108)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.16.5
+
+ [ Ben Hutchings ]
+ * aufs: gen-patch: Fix Subject generation to skip SPDX-License-Identifier
+ * aufs: Update support patchset to aufs4.16-20180409 (no functional change)
+ * wireless: Add Debian wireless-regdb certificates (see #892229)
+ * Add support for compilers installed outside the default PATH
+ * linux-headers: Change linux-kbuild dependency to be versioned
+ * Set ABI to 1
+ * [x86,arm64] Disable code signing for upload to unstable
+ * debian/lib/python/debian_linux/debian.py: Fix binNMU changelog parsing
+ * debian/lib/python/debian_linux/debian.py: Fix binNMU revision parsing
+ * xfs: enhance dinode verifier (CVE-2018-10322)
+ * xfs: set format back to extents if xfs_bmap_extents_to_btree
+ (CVE-2018-10323)
+ * udeb: Add algif_skcipher to crypto-modules (Closes: #896968)
+ * ext4: fix bitmap position validation (fixes regression in 4.15.17-1)
+ * debian/lib/python/debian_linux/gencontrol.py: Allow uploads to *-security
+ with a simple revision
+
+ [ Vagrant Cascadian ]
+ * [arm64] Add patches to support SATA on Tegra210/Jetson-TX1.
+
+ [ James Clarke ]
+ * [ia64] Drop nic-modules Depends overrides (fixes FTBFS)
+
+ [ Vagrant Cascadian ]
+ * [arm64] Enable features to support Pinebook and other A64 systems:
+ CONFIG_USB_MUSB_HDRC, CONFIG_USB_MUSB_SUNXI, CONFIG_SUN8I_DE2_CCU,
+ CONFIG_DMA_SUN6I
+ * [arm64] Add patch enabling simplefb LCD on A64.
+
+ [ Roger Shimizu ]
+ * [armel] Add dependency of udeb modules (fixes FTBFS):
+ - Add lzo_decompress to lzo-modules.
+ - Add cmdlinepart to mtd-modules.
+ * [armel] Add dependency of udeb packages (fixes FTBFS):
+ - Add package dependency of mtd-modules to jffs2-modules.
+ - Add package dependency of lzo-modules to squashfs-modules.
+
+ [ Helge Deller ]
+ * [hppa] Switch to self-decompressing kernel to save disk space in /boot
+
+ [ Uwe Kleine-König ]
+ * [amd64] enable AMD 10GbE Ethernet driver (CONFIG_AMD_XGBE=m)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 29 Apr 2018 17:09:14 +0100
+
+linux (4.16-1~exp1) experimental; urgency=medium
+
+ * New upstream release: https://kernelnewbies.org/Linux_4.16
+
+ [ Jeremy Stanley ]
+ * [x86] Power management support for GPD Pocket UMPC systems
+ (Closes: #895164)
+ - Enable CONFIG_PWM_LPSS_PLATFORM as a module (provides support for the
+ low-level power subsystem handling backlight control) along with its
+ dependency CONFIG_PWM=y
+ - Enable CONFIG_INTEL_INT0002_VGPIO as a module (provides support for the
+ Bay Trail/Cherry Trail virtual GPIO controller to handle power events)
+ - Enable CONFIG_REGULATOR (needed to build the already enabled
+ CONFIG_INTEL_CHT_INT33FE module which provides support for the ACPI
+ interface)
+ - Enable CONFIG_TYPEC_FUSB302 as a module (provides support for the USB
+ type-C interface) along with its dependencies CONFIG_TYPEC=m and
+ CONFIG_TYPEC_TCPM=m
+ - Enable CONFIG_BATTERY_MAX17042 as a module (provides support for the
+ battery level monitor)
+ - Enable CONFIG_CHARGER_BQ24190 as a module (provides support for the
+ battery charger) along with its dependencies CONFIG_EXTCON=m,
+ CONFIG_EXTCON_INTEL_CHT_WC=m, CONFIG_I2C_CHT_WC=m and
+ CONFIG_INTEL_SOC_PMIC_CHTWC=y
+
+ [ Roger Shimizu ]
+ * [armel] Bring back armel build by reverting two commits that disabled
+ armel previously:
+ - [2ed70eb] "Add empty featuresets for armel to help abiupdate script"
+ - [5f62872] "(Temporarily) disable armel kernel image build"
+ * [armel] Reduce armel image size by:
+ - Set CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+ - Change MTD, MTD_CMDLINE_PARTS, RTC_DRV_MV, and SPI_ORION from
+ built-in to module.
+ - Disable VT, ZSWAP, RD_BZIP2, and RD_LZMA.
+ Thanks to Leigh Brown <leigh@solinno.co.uk> for his idea to disable VT.
+
+ [ Riku Voipio ]
+ * [armhf] Add dove cubox support, thanks to Josua Mayer (Closes: #876774)
+
+ [ Sjoerd Simons ]
+ * Enable DRM_DP_AUX_CHARDEV (Closes: #890235)
+
+ [ Ben Hutchings ]
+ * Set ABI name to trunk
+ * debian/config: Rename [build]signed-modules setting to signed-code
+ * debian/lib/python/debian_linux/gencontrol.py: Allow overriding output
+ filenames
+ * debian/lib/python/debian_linux/debian.py: Close changelog after parsing
+ * debian/lib/python/debian_linux/debian.py: Allow parsing any file as
+ changelog
+ * debian/rules.d/tools/lib/lockdep/Makefile: Fix repeated 'make install'
+ * Add template source package to support code signing
+ * Use a dummy build profile for udebs that we test-build before signing
+ * debian/lib/python/debian_linux/debian.py: Parse bottom lines of changelog
+ entries
+ * debian/bin/gencontrol_signed.py: Copy maintainer and date into template's
+ changelog
+ * [x86,arm64] Enable code signing again
+ * certs: Add certificate for test key used in Debian signing service
+ * integrity: Disable IMA until it works properly with lockdown
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 08 Apr 2018 14:44:18 +0200
+
+linux (4.16~rc6-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Jeremy Stanley ]
+ * [x86] Enable CONFIG_GPD_POCKET_FAN as a module (provides fan control on
+ GPD Pocket UMPC systems) (Closes: #893451)
+
+ [ Uwe Kleine-König ]
+ * [arm64] enable various drivers as module for teres-i OSHW laptop
+ (Closes: #892786)
+
+ [ Helge Deller ]
+ * [hppa] Re-enable 32-bit SMP kernel build. Qemu now supports it.
+
+ [ Ben Hutchings ]
+ * udeb: Add dependency from nic-modules to zlib-modules (fixes FTBFS on
+ some architectures)
+ * i40e: Add kconfig dependency to ensure cmpxchg64() is available
+ (fixes FTBFS on some architectures)
+ * [ia64] Re-add configuration for kernel and udebs:
+ - Revert "Remove all support for ia64" (Closes: #886693)
+ - Disable IRDA, consistent with other architectures
+ - linux-image: Don't suggest fdutils
+ - Compile with gcc-7
+ - linux-image: Improve flavour descriptions
+ - udeb: Combine core-modules/kernel-image and scsi{,-common,-extra}-modules
+ - udeb: Add i2c-modules
+
+ [ Vagrant Cascadian ]
+ * [armhf] Enable ARCH_MESON and related drivers.
+ * [armhf] Add device-tree patches from linux-next to support USB and
+ Ethernet on meson8b.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 20 Mar 2018 13:52:03 +0000
+
+linux (4.16~rc5-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Uwe Kleine-König ]
+ * netfilter: enable NFT_FIB_NETDEV as module
+
+ [ Thadeu Lima de Souza Cascardo ]
+ * [powerpc,ppc64el,ppc64] Enable CRASH_DUMP (Closes: #883432)
+
+ [ Bastian Blank ]
+ * Drop note about Xen from long descriptions.
+
+ [ Vagrant Cascadian ]
+ * [arm64] Enable ROCKCHIP_IODOMAIN as a module, to enable PCIe reset.
+ * [arm64] Enable REGULATOR_FAN53555 as a module, enabling cpufreq to
+ work on rk3399 A72 cores.
+ * [arm64] Apply patch from linux-next to fix eMMC corruption on
+ Odroid-C2 (Closes: #879072).
+
+ [ Ben Hutchings ]
+ * debian/control: Update profile qualification for build-deps on bison
+ and flex, which are now used to build kconfig
+ * debian/rules.d/tools/kconfig/Makefile: Use bison and flex to build kconfig
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 13 Mar 2018 02:06:57 +0000
+
+linux (4.15.17-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.15.12
+ - [i386] vm86: Fix POPF emulation
+ - [i386] speculation, objtool: Annotate indirect calls/jumps for objtool on
+ 32-bit kernels
+ - [x86] speculation: Remove Skylake C2 from Speculation Control microcode
+ blacklist
+ - [x86] KVM: Fix device passthrough when SME is active
+ - [x86] mm: Fix vmalloc_fault to use pXd_large
+ - [hppa] Handle case where flush_cache_range is called with no context
+ - ALSA: pcm: Fix UAF in snd_pcm_oss_get_formats()
+ - ALSA: hda - Revert power_save option default value
+ - ALSA: seq: Fix possible UAF in snd_seq_check_queue()
+ - ALSA: seq: Clear client entry before deleting else at closing
+ - drm/nouveau/bl: Fix oops on driver unbind
+ - drm/nouveau/mmu: ALIGN_DOWN correct variable (Closes: #895750)
+ - drm/amdgpu: fix prime teardown order
+ - drm/radeon: fix prime teardown order
+ - drm/amdgpu/dce: Don't turn off DP sink when disconnected
+ - fs: Teach path_connected to handle nfs filesystems with multiple roots.
+ - [armhf,arm64] KVM: Reduce verbosity of KVM init log
+ - [armhf,arm64] KVM: Reset mapped IRQs on VM reset
+ - [armhf,arm64] kvm: vgic-v3: Tighten synchronization for guests using v2
+ on v3
+ - [armhf.arm64] KVM: vgic: Don't populate multiple LRs with the same vintid
+ - lock_parent() needs to recheck if dentry got __dentry_kill'ed under it
+ - fs/aio: Add explicit RCU grace period when freeing kioctx
+ - fs/aio: Use RCU accessors for kioctx_table->table[]
+ - RDMAVT: Fix synchronization around percpu_ref
+ - [armhf.arm64] irqchip/gic-v3-its: Ensure nr_ites >= nr_lpis
+ - nvme: fix subsystem multiple controllers support check
+ - xfs: preserve i_rdev when recycling a reclaimable inode
+ - btrfs: Fix NULL pointer exception in find_bio_stripe
+ - btrfs: add missing initialization in btrfs_check_shared
+ - btrfs: alloc_chunk: fix DUP stripe size handling
+ - btrfs: Fix use-after-free when cleaning up fs_devs with a single stale
+ device
+ - btrfs: remove spurious WARN_ON(ref->count < 0) in find_parent_nodes
+ - btrfs: Fix memory barriers usage with device stats counters
+ - scsi: qla2xxx: Fix smatch warning in qla25xx_delete_{rsp|req}_que
+ - scsi: qla2xxx: Fix NULL pointer access for fcport structure
+ - scsi: qla2xxx: Fix logo flag for qlt_free_session_done()
+ - scsi: qla2xxx: Fix crashes in qla2x00_probe_one on probe failure
+ - usb: dwc2: fix STM32F7 USB OTG HS compatible
+ - USB: gadget: udc: Add missing platform_device_put() on error in
+ bdc_pci_probe()
+ - usb: dwc3: Fix GDBGFIFOSPACE_TYPE values
+ - usb: dwc3: core: Power-off core/PHYs on system_suspend in host mode
+ - usb: dwc3: of-simple: fix oops by unbalanced clk disable call
+ - usb: gadget: udc: renesas_usb3: fix oops in renesas_usb3_remove()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.15.13
+ - scsi: megaraid_sas: Do not use 32-bit atomic request descriptor for
+ Ventura controllers
+ - drm/amdgpu: use polling mem to set SDMA3 wptr for VF
+ - Bluetooth: hci_qca: Avoid setup failure on missing rampatch
+ - [arm64] Bluetooth: btqcomsmd: Fix skb double free corruption
+ - [x86] cpufreq: longhaul: Revert transition_delay_us to 200 ms
+ - [arm64] drm/msm: fix leak in failed get_pages
+ - IB/ipoib: Warn when one port fails to initialize
+ - RDMA/iwpm: Fix uninitialized error code in iwpm_send_mapinfo()
+ - [x86] hv_netvsc: Fix the receive buffer size limit
+ - [x86] hv_netvsc: Fix the TX/RX buffer default sizes
+ - tcp: allow TLP in ECN CWR
+ - libbpf: prefer global symbols as bpf program name source
+ - rtlwifi: rtl_pci: Fix the bug when inactiveps is enabled.
+ - rtlwifi: always initialize variables given to RT_TRACE()
+ - media: bt8xx: Fix err 'bt878_probe()'
+ - ath10k: handling qos at STA side based on AP WMM enable/disable
+ - media: dvb-frontends: Add delay to Si2168 restart
+ - qmi_wwan: set FLAG_SEND_ZLP to avoid network initiated disconnect
+ - serial: 8250_dw: Disable clock on error
+ - [armhf,arm64] cros_ec: fix nul-termination for firmware build info
+ - watchdog: Fix potential kref imbalance when opening watchdog
+ - watchdog: Fix kref imbalance seen if handle_boot_enabled=0
+ - platform/chrome: Use proper protocol transfer function
+ - [armhf] drm/tilcdc: ensure nonatomic iowrite64 is not used
+ - mmc: avoid removing non-removable hosts during suspend
+ - mmc: block: fix logical error to avoid memory leak
+ - /dev/mem: Add bounce buffer for copy-out
+ - [arm64] net: phy: meson-gxl: check phy_write return value
+ - IB/ipoib: Avoid memory leak if the SA returns a different DGID
+ - RDMA/cma: Use correct size when writing netlink stats
+ - IB/umem: Fix use of npages/nmap fields
+ - iser-target: avoid reinitializing rdma contexts for isert commands
+ - bpf/cgroup: fix a verification error for a CGROUP_DEVICE type prog
+ - PCI/ASPM: Calculate LTR_L1.2_THRESHOLD from device characteristics
+ - vgacon: Set VGA struct resource types
+ - [armhf] omapdrm: panel: fix compatible vendor string for td028ttec1
+ - [arm64] mmc: sdhci-xenon: wait 5ms after set 1.8V signal enable
+ - [armhf] drm/omap: DMM: Check for DMM readiness after successful
+ transaction commit
+ - pty: cancel pty slave port buf's work in tty_release
+ - clk: check ops pointer on clock register
+ - clk: use round rate to bail out early in set_rate
+ - pinctrl: Really force states during suspend/resume
+ - [armhf,arm64] pinctrl: rockchip: enable clock when reading pin direction
+ register
+ - [x86] iommu/vt-d: clean up pr_irq if request_threaded_irq fails
+ - ip6_vti: adjust vti mtu according to mtu of lower device
+ - ip_gre: fix error path when erspan_rcv failed
+ - ip_gre: fix potential memory leak in erspan_rcv
+ - [arm64] soc: qcom: smsm: fix child-node lookup
+ - scsi: lpfc: Fix SCSI LUN discovery when SCSI and NVME enabled
+ - scsi: lpfc: Fix issues connecting with nvme initiator
+ - RDMA/ocrdma: Fix permissions for OCRDMA_RESET_STATS
+ - nfsd4: permit layoutget of executable-only files
+ - clk: Don't touch hardware when reparenting during registration
+ - hwrng: core - Clean up RNG list when last hwrng is unregistered
+ - [armhf] dmaengine: ti-dma-crossbar: Fix event mapping for
+ TPCC_EVT_MUX_60_63
+ - IB/mlx5: Fix integer overflows in mlx5_ib_create_srq
+ - IB/mlx5: Fix out-of-bounds read in create_raw_packet_qp_rq
+ - [x86] RDMA/vmw_pvrdma: Fix usage of user response structures in ABI file
+ - serial: 8250_pci: Don't fail on multiport card class
+ - RDMA/core: Do not use invalid destination in determining port reuse
+ - clk: migrate the count of orphaned clocks at init
+ - RDMA/ucma: Fix access to non-initialized CM_ID object
+ - RDMA/ucma: Don't allow join attempts for unsupported AF family
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.15.14
+ - [armhf] iio: st_pressure: st_accel: pass correct platform data to init
+ - [arm64] iio: adc: meson-saradc: unlock on error in meson_sar_adc_lock()
+ - ALSA: usb-audio: Fix parsing descriptor of UAC2 processing unit
+ - ALSA: aloop: Sync stale timer before release
+ - ALSA: aloop: Fix access to not-yet-ready substream via cable
+ - ALSA: hda - Force polling mode on CFL for fixing codec communication
+ - ALSA: hda/realtek - Fix speaker no sound after system resume
+ - ALSA: hda/realtek - Fix Dell headset Mic can't record
+ - ALSA: hda/realtek - Always immediately update mute LED with pin VREF
+ - mmc: core: Fix tracepoint print of blk_addr and blksz
+ - mmc: core: Disable HPI for certain Micron (Numonyx) eMMC cards
+ - mmc: block: fix updating ext_csd caches on ioctl call
+ - [armhf] mmc: dw_mmc: Fix the DTO/CTO timeout overflow calculation for
+ 32-bit systems
+ - [armhf] mmc: dw_mmc: exynos: fix the suspend/resume issue for exynos5433
+ - [armhf,arm64] mmc: dw_mmc: fix falling from idmac to PIO mode when
+ dw_mci_reset occurs
+ - PCI: Add function 1 DMA alias quirk for Highpoint RocketRAID 644L
+ - lockdep: fix fs_reclaim warning
+ - [armhf,arm64] clk: bcm2835: Fix ana->maskX definitions
+ - [armhf,arm64] clk: bcm2835: Protect sections updating shared registers
+ - [armhf,arm64] clk: sunxi-ng: a31: Fix CLK_OUT_* clock ops
+ - RDMA/mlx5: Fix crash while accessing garbage pointer and freed memory
+ - [x86] Drivers: hv: vmbus: Fix ring buffer signaling
+ - [armhf] pinctrl: samsung: Validate alias coming from DT
+ - Bluetooth: btusb: Remove Yoga 920 from the btusb_needs_reset_resume_table
+ - Bluetooth: btusb: Add Dell OptiPlex 3060 to btusb_needs_reset_resume_table
+ - Bluetooth: btusb: Fix quirk for Atheros 1525/QCA6174
+ - libata: fix length validation of ATAPI-relayed SCSI commands
+ - libata: remove WARN() for DMA or PIO command without data
+ - libata: don't try to pass through NCQ commands to non-NCQ devices
+ - libata: Apply NOLPM quirk to Crucial MX100 512GB SSDs
+ - libata: disable LPM for Crucial BX100 SSD 500GB drive
+ - libata: Enable queued TRIM for Samsung SSD 860
+ - libata: Apply NOLPM quirk to Crucial M500 480 and 960GB SSDs
+ - libata: Make Crucial BX100 500GB LPM quirk apply to all firmware versions
+ - libata: Modify quirks for MX100 to limit NCQ_TRIM quirk to MU01 version
+ - sched, cgroup: Don't reject lower cpu.max on ancestors
+ - cgroup: fix rule checking for threaded mode switching
+ - nfsd: remove blocked locks on client teardown
+ - hugetlbfs: check for pgoff value overflow (CVE-2018-7740)
+ - [x86] mm: implement free pmd/pte page interfaces
+ - mm/khugepaged.c: convert VM_BUG_ON() to collapse fail
+ - mm/thp: do not wait for lock_page() in deferred_split_scan()
+ - mm/shmem: do not wait for lock_page() in shmem_unused_huge_shrink()
+ - Revert "mm: page_alloc: skip over regions of invalid pfns where possible"
+ - [x86] drm/vmwgfx: Fix black screen and device errors when running without
+ fbdev
+ - [x86] drm/vmwgfx: Fix a destoy-while-held mutex problem.
+ - drm/radeon: Don't turn off DP sink when disconnected
+ - drm/amd/display: We shouldn't set format_default on plane as atomic driver
+ - drm/amd/display: Add one to EDID's audio channel count when passing to DC
+ - drm: Reject getfb for multi-plane framebuffers
+ - drm: udl: Properly check framebuffer mmap offsets
+ - mm/vmscan: wake up flushers for legacy cgroups too
+ - module: propagate error in modules_open()
+ - acpi, numa: fix pxm to online numa node associations
+ - ACPI / watchdog: Fix off-by-one error at resource assignment
+ - libnvdimm, {btt, blk}: do integrity setup before add_disk()
+ - brcmfmac: fix P2P_DEVICE ethernet address generation
+ - rtlwifi: rtl8723be: Fix loss of signal
+ - tracing: probeevent: Fix to support minus offset from symbol
+ - mtdchar: fix usage of mtd_ooblayout_ecc()
+ - staging: ncpfs: memory corruption in ncp_read_kernel() (CVE-2018-8822)
+ - [i386] can: cc770: Fix stalls on rt-linux, remove redundant IRQ ack
+ - [i386] can: cc770: Fix queue stall & dropped RTR reply
+ - [i386] can: cc770: Fix use after free in cc770_tx_interrupt()
+ - tty: vt: fix up tabstops properly
+ - [amd64] entry: Don't use IST entry for #BP stack
+ - [amd64] vsyscall: Use proper accessor to update P4D entry
+ - [x86] efi: Free efi_pgd with free_pages()
+ - posix-timers: Protect posix clock array access against speculation
+ - [x86] kvm: fix icebp instruction handling
+ - [amd64] build: Force the linker to use 2MB page size
+ - [amd64] boot: Verify alignment of the LOAD segment
+ - [x86] hwmon: (k10temp) Only apply temperature offset if result is positive
+ - [x86] hwmon: (k10temp) Add temperature offset for Ryzen 1900X
+ - [x86] perf/intel/uncore: Fix Skylake UPI event format
+ - perf stat: Fix CVS output format for non-supported counters
+ - perf/core: Fix ctx_event_type in ctx_resched()
+ - trace/bpf: remove helper bpf_perf_prog_read_value from tracepoint type
+ programs
+ - [x86] perf/intel: Don't accidentally clear high bits in bdw_limit_period()
+ - [x86] perf/intel/uncore: Fix multi-domain PCI CHA enumeration bug on
+ Skylake servers
+ - iio: ABI: Fix name of timestamp sysfs file
+ - bpf: skip unnecessary capability check
+ - [amd64] bpf: increase number of passes
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.15.15
+ - net: dsa: Fix dsa_is_user_port() test inversion
+ - openvswitch: meter: fix the incorrect calculation of max delta_t
+ - qed: Fix MPA unalign flow in case header is split across two packets.
+ - tcp: purge write queue upon aborting the connection
+ - qed: Fix non TCP packets should be dropped on iWARP ll2 connection
+ - net: phy: relax error checking when creating sysfs link netdev->phydev
+ - devlink: Remove redundant free on error path
+ - macvlan: filter out unsupported feature flags
+ - net: ipv6: keep sk status consistent after datagram connect failure
+ - ipv6: old_dport should be a __be16 in __ip6_datagram_connect()
+ - ipv6: sr: fix NULL pointer dereference when setting encap source address
+ - ipv6: sr: fix scheduling in RCU when creating seg6 lwtunnel state
+ - net: phy: Tell caller result of phy_change()
+ - ipv6: Reflect MTU changes on PMTU of exceptions for MTU-less routes
+ - net sched actions: return explicit error when tunnel_key mode is not
+ specified
+ - ppp: avoid loop in xmit recursion detection code
+ - rhashtable: Fix rhlist duplicates insertion
+ - sch_netem: fix skb leak in netem_enqueue()
+ - ieee802154: 6lowpan: fix possible NULL deref in lowpan_device_event()
+ - net: use skb_to_full_sk() in skb_update_prio()
+ - net: Fix hlist corruptions in inet_evict_bucket()
+ - [s390x] qeth: free netdevice when removing a card
+ - [s390x] qeth: when thread completes, wake up all waiters
+ - [s390x] qeth: lock read device while queueing next buffer
+ - [s390x] qeth: on channel error, reject further cmd requests
+ - dccp: check sk for closed state in dccp_sendmsg()
+ - ipv6: fix access to non-linear packet in ndisc_fill_redirect_hdr_option()
+ - l2tp: do not accept arbitrary sockets
+ - [armhf] net: ethernet: ti: cpsw: add check for in-band mode setting with
+ RGMII PHY interface
+ - [armhf] net: fec: Fix unbalanced PM runtime calls
+ - [s390x] net/iucv: Free memory obtained by kzalloc
+ - netlink: avoid a double skb free in genlmsg_mcast()
+ - net: Only honor ifindex in IP_PKTINFO if non-0
+ - net: systemport: Rewrite __bcm_sysport_tx_reclaim()
+ - qede: Fix qedr link update
+ - skbuff: Fix not waking applications when errors are enqueued
+ - team: Fix double free in error path
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.15.16
+ - [armhf] OMAP: Fix SRAM W+X mapping
+ - [armhf] 8746/1: vfp: Go back to clearing vfp_current_hw_state[]
+ - [armhf] dts: sun6i: a31s: bpi-m2: improve pmic properties
+ - [armhf] dts: sun6i: a31s: bpi-m2: add missing regulators
+ - mtd: jedec_probe: Fix crash in jedec_read_mfr()
+ - ALSA: usb-audio: Add native DSD support for TEAC UD-301
+ - ALSA: pcm: Use dma_bytes as size parameter in dma_mmap_coherent()
+ - ALSA: pcm: potential uninitialized return values
+ - perf/hwbp: Simplify the perf-hwbp code, fix documentation
+ - ceph: only dirty ITER_IOVEC pages for direct read
+ - ipc/shm.c: add split function to shm_vm_ops
+ - [powerpc*] mm: Add tracking of the number of coprocessors using a context
+ - [powerpc*] mm: Workaround Nest MMU bug with TLB invalidations
+ - [powerpc*] 64s: Fix lost pending interrupt due to race causing lost
+ update to irq_happened
+ - [powerpc*] 64s: Fix i-side SLB miss bad address handler saving
+ nonvolatile GPRs
+ - partitions/msdos: Unable to mount UFS 44bsd partitions
+ - xfrm_user: uncoditionally validate esn replay attribute struct
+ - RDMA/ucma: Check AF family prior resolving address
+ - RDMA/ucma: Fix use-after-free access in ucma_close
+ - RDMA/ucma: Ensure that CM_ID exists prior to access it
+ - RDMA/rdma_cm: Fix use after free race with process_one_req
+ - RDMA/ucma: Check that device is connected prior to access it
+ - RDMA/ucma: Check that device exists prior to accessing it
+ - RDMA/ucma: Introduce safer rdma_addr_size() variants
+ - ipv6: fix possible deadlock in rt6_age_examine_exception()
+ - net: xfrm: use preempt-safe this_cpu_read() in ipcomp_alloc_tfms()
+ - xfrm: Refuse to insert 32 bit userspace socket policies on 64 bit systems
+ - percpu: add __GFP_NORETRY semantics to the percpu balancing path
+ - netfilter: x_tables: make allocation less aggressive
+ - netfilter: bridge: ebt_among: add more missing match size checks
+ - l2tp: fix races with ipv4-mapped ipv6 addresses
+ - netfilter: drop template ct when conntrack is skipped.
+ - netfilter: x_tables: add and use xt_check_proc_name
+ - [arm64] phy: qcom-ufs: add MODULE_LICENSE tag
+ - Bluetooth: Fix missing encryption refresh on Security Request
+ - [x86] drm/i915/dp: Write to SET_POWER dpcd to enable MST hub.
+ - bitmap: fix memset optimization on big-endian systems
+ - [x86] mei: remove dev_err message on an unsupported ioctl
+ - /dev/mem: Avoid overwriting "err" in read_mem()
+ - media: usbtv: prevent double free in error case (CVE-2017-17975)
+ - crypto: lrw - Free rctx->ext with kzfree
+ - [arm64] crypto: inside-secure - fix clock management
+ - crypto: testmgr - Fix incorrect values in PKCS#1 test vector
+ - crypto: ahash - Fix early termination in hash walk
+ - [x86] crypto: ccp - return an actual key size from RSA max_size callback
+ - [arm*] crypto - Fix random regeneration of S_shipped
+ - [x86] crypto: cast5-avx - fix ECB encryption when long sg follows short
+ one
+ - Btrfs: fix unexpected cow in run_delalloc_nocow
+ - [x86] staging: comedi: ni_mio_common: ack ai fifo error interrupts.
+ - Revert "base: arch_topology: fix section mismatch build warnings"
+ - [x86] Input: ALPS - fix TrackStick detection on Thinkpad L570 and
+ Latitude 7370
+ - [x86] Input: i8042 - add Lenovo ThinkPad L460 to i8042 reset list
+ - [x86] Input: i8042 - enable MUX on Sony VAIO VGN-CS series to fix touchpad
+ - vt: change SGR 21 to follow the standards
+ - [arm64] net: hns: Fix ethtool private flags (CVE-2017-18222)
+ - Fix slab name "biovec-(1<<(21-12))"
+ - [armhf] Revert "ARM: dts: am335x-pepper: Fix the audio CODEC's reset pin"
+ - [armhf] Revert "ARM: dts: omap3-n900: Fix the audio CODEC's reset pin"
+ - Revert "cpufreq: Fix governor module removal race"
+ - Revert "ip6_vti: adjust vti mtu according to mtu of lower device"
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.15.17
+ - i40iw: Fix sequence number for the first partial FPDU
+ - i40iw: Correct Q1/XF object count equation
+ - i40iw: Validate correct IRD/ORD connection parameters
+ - [arm64] clk: meson: mpll: use 64-bit maths in params_from_rate
+ - ipv6: Reinject IPv6 packets if IPsec policy matches after SNAT
+ - thermal: power_allocator: fix one race condition issue for
+ thermal_instances list
+ - perf probe: Find versioned symbols from map
+ - perf probe: Add warning message if there is unexpected event name
+ - perf evsel: Fix swap for samples with raw data
+ - perf evsel: Enable ignore_missing_thread for pid option
+ - l2tp: fix missing print session offset info
+ - rds; Reset rs->rs_bound_addr in rds_add_bound() failure path
+ - [x86] ACPI / video: Default lcd_only to true on Win8-ready and newer
+ machines
+ - net/mlx4_en: Change default QoS settings
+ - IB/mlx5: Report inner RSS capability
+ - VFS: close race between getcwd() and d_move()
+ - [armhf,arm64] watchdog: dw_wdt: add stop watchdog operation
+ - clk: divider: fix incorrect usage of container_of
+ - PM / devfreq: Fix potential NULL pointer dereference in governor_store
+ - gpiolib: don't dereference a desc before validation
+ - net_sch: red: Fix the new offload indication
+ - [arm64] thermal/drivers/hisi: Remove bogus const from function return type
+ - RDMA/cma: Mark end of CMA ID messages
+ - f2fs: fix lock dependency in between dio_rwsem & i_mmap_sem
+ - [armhf] clk: sunxi-ng: a83t: Add M divider to TCON1 clock
+ - media: videobuf2-core: don't go out of the buffer range
+ - [x86] ASoC: Intel: Skylake: Disable clock gating during firmware and
+ library download
+ - [x86] ASoC: Intel: cht_bsw_rt5645: Analog Mic support
+ - [arm64] drm/msm: Fix NULL deref in adreno_load_gpu
+ - IB/ipoib: Fix for notify send CQ failure messages
+ - scsi: libiscsi: Allow sd_shutdown on bad transport
+ - scsi: mpt3sas: Proper handling of set/clear of "ATA command pending" flag.
+ - [armhf,arm64] irqchip/gic-v3: Fix the driver probe() fail due to disabled
+ GICC entry
+ - ACPI: EC: Fix debugfs_create_*() usage
+ - mac80211: Fix setting TX power on monitor interfaces
+ - vfb: fix video mode and line_length being set when loaded
+ - gpio: label descriptors using the device name
+ - [arm64] asid: Do not replace active_asids if already 0
+ - [powerpc*] powernv-cpufreq: Add helper to extract pstate from PMSR
+ - IB/rdmavt: Allocate CQ memory on the correct node
+ - blk-mq: avoid to map CPU into stale hw queue
+ - blk-mq: fix race between updating nr_hw_queues and switching io sched
+ - nvme-fabrics: protect against module unload during create_ctrl
+ - nvme-fabrics: don't check for non-NULL module in nvmf_register_transport
+ - [x86] pinctrl: baytrail: Enable glitch filter for GPIOs used as interrupts
+ - nvme_fcloop: disassocate local port structs
+ - nvme_fcloop: fix abort race condition
+ - tpm: return a TPM_RC_COMMAND_CODE response if command is not implemented
+ - perf report: Fix a no annotate browser displayed issue
+ - [x86] staging: lustre: disable preempt while sampling processor id.
+ - [x86] ASoC: Intel: sst: Fix the return value o
+ 'sst_send_byte_stream_mrfld()'
+ - [armhf] power: supply: axp288_charger: Properly stop work on probe-error
+ / remove
+ - rt2x00: do not pause queue unconditionally on error path
+ - wl1251: check return from call to wl1251_acx_arp_ip_filter
+ - net/mlx5: Fix race for multiple RoCE enable
+ - bcache: ret IOERR when read meets metadata error
+ - bcache: stop writeback thread after detaching
+ - bcache: segregate flash only volume write streams
+ - scsi: libsas: Use dynamic alloced work to avoid sas event lost
+ - net: Fix netdev_WARN_ONCE macro
+ - scsi: libsas: fix memory leak in sas_smp_get_phy_events() (CVE-2018-7757)
+ - scsi: libsas: fix error when getting phy events
+ - scsi: libsas: initialize sas_phy status according to response of DISCOVER
+ - net/mlx5e: IPoIB, Use correct timestamp in child receive flow
+ - blk-mq: fix kernel oops in blk_mq_tag_idle()
+ - tty: n_gsm: Allow ADM response in addition to UA for control dlci
+ - block, bfq: put async queues for root bfq groups too
+ - serdev: Fix serdev_uevent failure on ACPI enumerated serdev-controllers
+ - i40evf: don't rely on netif_running() outside rtnl_lock()
+ - drm/amd/powerplay: fix memory leakage when reload (v2)
+ - cxgb4vf: Fix SGE FL buffer initialization logic for 64K pages
+ - PM / domains: Don't skip driver's ->suspend|resume_noirq() callbacks
+ - scsi: megaraid_sas: Error handling for invalid ldcount provided by
+ firmware in RAID map
+ - scsi: megaraid_sas: unload flag should be set after scsi_remove_host is
+ called
+ - RDMA/cma: Fix rdma_cm path querying for RoCE
+ - [x86] gart: Exclude GART aperture from vmcore
+ - sdhci: Advertise 2.0v supply on SDIO host controller
+ - Input: goodix - disable IRQs while suspended
+ - mtd: mtd_oobtest: Handle bitflips during reads
+ - crypto: aes-generic - build with -Os on gcc-7+
+ - perf tools: Fix copyfile_offset update of output offset
+ - tcmu: release blocks for partially setup cmds
+ - [x86] thermal: int3400_thermal: fix error handling in
+ int3400_thermal_probe()
+ - [x86] drm/i915/cnp: Ignore VBT request for know invalid DDC pin.
+ - [x86] drm/i915/cnp: Properly handle VBT ddc pin out of bounds.
+ - [x86] microcode: Propagate return value from updating functions
+ - [x86] CPU: Add a microcode loader callback
+ - [x86] CPU: Check CPU feature bits after microcode upgrade
+ - [x86] microcode: Get rid of struct apply_microcode_ctx
+ - [x86] microcode/intel: Check microcode revision before updating sibling
+ threads
+ - [x86] microcode/intel: Writeback and invalidate caches before updating
+ microcode
+ - [x86] microcode: Do not upload microcode if CPUs are offline
+ - [x86] microcode/intel: Look into the patch cache first
+ - [x86] microcode: Request microcode on the BSP
+ - [x86] microcode: Synchronize late microcode loading
+ - [x86] microcode: Attempt late loading only when new microcode is present
+ - [x86] microcode: Fix CPU synchronization routine
+ - arp: fix arp_filter on l3slave devices
+ - ipv6: the entire IPv6 header chain must fit the first fragment
+ - lan78xx: Crash in lan78xx_writ_reg (Workqueue: events
+ lan78xx_deferred_multicast_write)
+ - net: dsa: Discard frames from unused ports
+ - net: fix possible out-of-bound read in skb_network_protocol()
+ - net/ipv6: Fix route leaking between VRFs
+ - net/ipv6: Increment OUTxxx counters after netfilter hook
+ - netlink: make sure nladdr has correct size in netlink_connect()
+ - net/mlx5e: Verify coalescing parameters in range
+ - net sched actions: fix dumping which requires several messages to user
+ space
+ - net/sched: fix NULL dereference in the error path of tcf_bpf_init()
+ - pptp: remove a buggy dst release in pptp_connect()
+ - r8169: fix setting driver_data after register_netdev
+ - sctp: do not leak kernel memory to user space
+ - sctp: sctp_sockaddr_af must check minimal addr length for AF_INET6
+ - sky2: Increase D3 delay to sky2 stops working after suspend
+ - vhost: correctly remove wait queue during poll failure
+ - vlan: also check phy_driver ts_info for vlan's real device
+ - vrf: Fix use after free and double free in vrf_finish_output
+ - bonding: fix the err path for dev hwaddr sync in bond_enslave
+ - bonding: move dev_mc_sync after master_upper_dev_link in bond_enslave
+ - bonding: process the err returned by dev_set_allmulti properly in
+ bond_enslave
+ - net: fool proof dev_valid_name()
+ - ip_tunnel: better validate user provided tunnel names
+ - ipv6: sit: better validate user provided tunnel names
+ - ip6_gre: better validate user provided tunnel names
+ - ip6_tunnel: better validate user provided tunnel names
+ - vti6: better validate user provided tunnel names
+ - net/mlx5e: Set EQE based as default TX interrupt moderation mode
+ - net_sched: fix a missing idr_remove() in u32_delete_key()
+ - net/sched: fix NULL dereference in the error path of tcf_vlan_init()
+ - net/mlx5e: Avoid using the ipv6 stub in the TC offload neigh update path
+ - net/mlx5e: Fix memory usage issues in offloading TC flows
+ - net/sched: fix NULL dereference in the error path of tcf_sample_init()
+ - nfp: use full 40 bits of the NSP buffer address
+ - ipv6: sr: fix seg6 encap performances with TSO enabled
+ - net/mlx5e: Don't override vport admin link state in switchdev mode
+ - net/mlx5e: Sync netdev vxlan ports at open
+ - net/sched: fix NULL dereference in the error path of tunnel_key_init()
+ - net/sched: fix NULL dereference on the error path of tcf_skbmod_init()
+ - strparser: Fix sign of err codes
+ - net/mlx4_en: Fix mixed PFC and Global pause user control requests
+ - net/mlx5e: Fix traffic being dropped on VF representor
+ - vhost: validate log when IOTLB is enabled
+ - route: check sysctl_fib_multipath_use_neigh earlier than hash
+ - team: move dev_mc_sync after master_upper_dev_link in team_port_add
+ - vhost_net: add missing lock nesting notation
+ - net/mlx4_core: Fix memory leak while delete slave's resources
+
+ [ Roger Shimizu ]
+ * [armel] Bring back armel build by reverting two commits that disabled
+ armel previously:
+ - [2ed70eb] "Add empty featuresets for armel to help abiupdate script"
+ - [5f62872] "(Temporarily) disable armel kernel image build"
+ * [armel] Reduce armel image size by:
+ - Set CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+ - Change MTD, MTD_CMDLINE_PARTS, RTC_DRV_MV, and SPI_ORION from
+ built-in to module.
+ - Disable VT, ZSWAP, RD_BZIP2, and RD_LZMA.
+ Thanks to Leigh Brown <leigh@solinno.co.uk> for his idea to disable VT.
+ * [armel] Add dependency of udeb modules (fixes FTBFS):
+ - Add lzo_decompress to lzo-modules.
+ - Add cmdlinepart to mtd-modules.
+ * [armel] Add dependency of udeb packages (fixes FTBFS):
+ - Add package dependency of mtd-modules to jffs2-modules.
+ - Add package dependency of lzo-modules to squashfs-modules.
+
+ [ Ben Hutchings ]
+ * wireless: Disable regulatory.db direct loading (see #892229)
+ * Bump ABI to 3
+ * scsi: libsas: direct call probe and destruct (CVE-2017-18232)
+ * ext4: fail ext4_iget for root directory if unallocated (CVE-2018-1092)
+ * ext4: add validity checks for bitmap block numbers (CVE-2018-1093)
+ * ext4: always initialize the crc32c checksum driver (CVE-2018-1094)
+ * scsi: libsas: defer ata device eh commands to libata (CVE-2018-10021)
+ * [armel/marvell] linux-image: Replace supported model list with wiki link
+ * [armhf] udeb: Add i2c-exynos5 to i2c-modules (Closes: #895976)
+ * [arm*] iio: Enable DHT11 as module (Closes: #873176)
+ * udeb: Move arc4 and ecb from nic-wireless-modules to crypto-modules
+ (Closes: #895362)
+ * SCSI: Enable SCSI_SYM53C8XX_2 as module on all architectures
+ (Closes: #895532)
+ * [x86] Enable MFD_AXP20X_I2C, AXP288_FUEL_GAUGE as modules (Closes: #895129)
+ * w1: Enable all "slave" device drivers (Closes: #895340)
+ * [arm64] net/phy: Enable MDIO_BUS_MUX_MMIOREG as module (Closes: #894336)
+ * [x86] net: Enable THUNDERBOLT_NET as module (Closes: #894310)
+ * [x86] platform: Enable DELL_SMBIOS_SMM, DELL_SMBIOS_WMI as modules
+ (closes: #893976)
+ * ath9k_htc: Fix regression in 4.15, thanks to Ben Caradoc-Davies
+ (Closes: #891060)
+ - mac80211: add ieee80211_hw flag for QoS NDP support
+ - ath9k_htc: use non-QoS NDP for AP probing
+ * squashfs: Enable SQUASHFS_ZSTD (Closes: #883410)
+ * block: Enable BLK_SED_OPAL (except on armel)
+ * [arm64] Enable ARCH_SYNQUACER and related driver modules (Closes: #891787)
+ * [arm64] PCI: Enable PCI_TEGRA (Closes: #888817)
+ * [amd64] net: Enable AQTION as module
+ * udeb: Rename lzo-modules to compress-modules
+ * udeb: Add zstd_decompress to compress-modules and make squashfs-modules
+ depend on it
+
+ [ Vagrant Cascadian ]
+ * [armhf] Add patch to fix loading of imx6q-cpufreq module.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 19 Apr 2018 11:13:03 +0100
+
+linux (4.15.11-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.15.5
+ - IB/umad: Fix use of unprotected device pointer
+ - IB/qib: Fix comparison error with qperf compare/swap test
+ - IB/mlx4: Fix incorrectly releasing steerable UD QPs when have only ETH
+ ports
+ - IB/core: Fix two kernel warnings triggered by rxe registration
+ - IB/core: Fix ib_wc structure size to remain in 64 bytes boundary
+ - IB/core: Avoid a potential OOPs for an unused optional parameter
+ - RDMA/rxe: Fix a race condition related to the QP error state
+ - RDMA/rxe: Fix a race condition in rxe_requester()
+ - RDMA/rxe: Fix rxe_qp_cleanup()
+ - [powerpc*] cpufreq: powernv: Dont assume distinct pstate values for
+ nominal and pmin
+ - swiotlb: suppress warning when __GFP_NOWARN is set
+ - PM / devfreq: Propagate error from devfreq_add_device()
+ - mwifiex: resolve reset vs. remove()/shutdown() deadlocks
+ - ocfs2: try a blocking lock before return AOP_TRUNCATED_PAGE
+ - trace_uprobe: Display correct offset in uprobe_events
+ - [powerpc*] radix: Remove trace_tlbie call from radix__flush_tlb_all
+ - [powerpc*] kernel: Block interrupts when updating TIDR
+ - [powerpc*] vas: Don't set uses_vas for kernel windows
+ - [powerpc*] numa: Invalidate numa_cpu_lookup_table on cpu remove
+ - [powerpc*] mm: Flush radix process translations when setting MMU type
+ - [powerpc*] xive: Use hw CPU ids when configuring the CPU queues
+ - dma-buf: fix reservation_object_wait_timeout_rcu once more v2
+ - [s390x] fix handling of -1 in set{,fs}[gu]id16 syscalls
+ - [arm64] dts: msm8916: Correct ipc references for smsm
+ - [x86] gpu: add CFL to early quirks
+ - [x86] kexec: Make kexec (mostly) work in 5-level paging mode
+ - [x86] xen: init %gs very early to avoid page faults with stack protector
+ - [x86] PM: Make APM idle driver initialize polling state
+ - mm, memory_hotplug: fix memmap initialization
+ - [amd64] entry: Clear extra registers beyond syscall arguments, to reduce
+ speculation attack surface
+ - [amd64] entry/compat: Clear registers for compat syscalls, to reduce
+ speculation attack surface
+ - [armhf] crypto: sun4i_ss_prng - fix return value of sun4i_ss_prng_generate
+ - [armhf] crypto: sun4i_ss_prng - convert lock to _bh in
+ sun4i_ss_prng_generate
+ - [powerpc*] mm/radix: Split linear mapping on hot-unplug
+ - [x86] speculation: Update Speculation Control microcode blacklist
+ - [x86] speculation: Correct Speculation Control microcode blacklist again
+ - [x86] Revert "x86/speculation: Simplify
+ indirect_branch_prediction_barrier()"
+ - [x86] KVM: Reduce retpoline performance impact in
+ slot_handle_level_range(), by always inlining iterator helper methods
+ - [X86] nVMX: Properly set spec_ctrl and pred_cmd before merging MSRs
+ - [x86] KVM/nVMX: Set the CPU_BASED_USE_MSR_BITMAPS if we have a valid L02
+ MSR bitmap
+ - [x86] speculation: Clean up various Spectre related details
+ - PM / runtime: Update links_count also if !CONFIG_SRCU
+ - PM: cpuidle: Fix cpuidle_poll_state_init() prototype
+ - [x86] platform: wmi: fix off-by-one write in wmi_dev_probe()
+ - [amd64] entry: Clear registers for exceptions/interrupts, to reduce
+ speculation attack surface
+ - [amd64] entry: Merge SAVE_C_REGS and SAVE_EXTRA_REGS, remove unused
+ extensions
+ - [amd64] entry: Merge the POP_C_REGS and POP_EXTRA_REGS macros into a
+ single POP_REGS macro
+ - [amd64] entry: Interleave XOR register clearing with PUSH instructions
+ - [amd64] entry: Introduce the PUSH_AND_CLEAN_REGS macro
+ - [amd64] entry: Use PUSH_AND_CLEAN_REGS in more cases
+ - [amd64] entry: Get rid of the ALLOC_PT_GPREGS_ON_STACK and
+ SAVE_AND_CLEAR_REGS macros
+ - [amd64] entry: Indent PUSH_AND_CLEAR_REGS and POP_REGS properly
+ - [amd64] entry: Fix paranoid_entry() frame pointer warning
+ - [amd64] entry: Remove the unused 'icebp' macro
+ - gfs2: Fixes to "Implement iomap for block_map"
+ - objtool: Fix segfault in ignore_unreachable_insn()
+ - [x86] debug, objtool: Annotate WARN()-related UD2 as reachable
+ - [x86] debug: Use UD2 for WARN()
+ - [x86] speculation: Fix up array_index_nospec_mask() asm constraint
+ - nospec: Move array_index_nospec() parameter checking into separate macro
+ - [x86] speculation: Add <asm/msr-index.h> dependency
+ - [x86] mm: Rename flush_tlb_single() and flush_tlb_one() to
+ __flush_tlb_one_[user|kernel]()
+ - [x86] cpu: Rename cpu_data.x86_mask to cpu_data.x86_stepping
+ - [x86] spectre: Fix an error message
+ - [x86] cpu: Change type of x86_cache_size variable to unsigned int
+ - [amd64] entry: Fix CR3 restore in paranoid_exit()
+ - drm/ttm: Don't add swapped BOs to swap-LRU list
+ - drm/ttm: Fix 'buf' pointer update in ttm_bo_vm_access_kmap() (v2)
+ - drm/qxl: unref cursor bo when finished with it
+ - drm/qxl: reapply cursor after resetting primary
+ - drm/amd/powerplay: Fix smu_table_entry.handle type
+ - drm/ast: Load lut in crtc_commit
+ - drm: Check for lessee in DROP_MASTER ioctl
+ - [arm64] Add missing Falkor part number for branch predictor hardening
+ - drm/radeon: Add dpm quirk for Jet PRO (v2)
+ - drm/radeon: adjust tested variable
+ - [x86] smpboot: Fix uncore_pci_remove() indexing bug when hot-removing a
+ physical CPU
+ - [powerpc*] rtc-opal: Fix handling of firmware error codes, prevent busy
+ loops
+ - mbcache: initialize entry->e_referenced in mb_cache_entry_create()
+ - mmc: sdhci: Implement an SDHCI-specific bounce buffer
+ - [armhf,arm64] mmc: bcm2835: Don't overwrite max frequency unconditionally
+ - [arm64] Revert "mmc: meson-gx: include tx phase in the tuning process"
+ - mlx5: fix mlx5_get_vector_affinity to start from completion vector 0
+ - [x86] Revert "apple-gmux: lock iGP IO to protect from vgaarb changes"
+ - ext4: fix a race in the ext4 shutdown path
+ - ext4: save error to disk in __ext4_grp_locked_error()
+ - ext4: correct documentation for grpid mount option
+ - mm: Fix memory size alignment in devm_memremap_pages_release()
+ - [mips*] Fix typo BIG_ENDIAN to CPU_BIG_ENDIAN
+ - [mips*] CPS: Fix MIPS_ISA_LEVEL_RAW fallout
+ - [mips*] Fix incorrect mem=X@Y handling
+ - [arm64] PCI: Disable MSI for HiSilicon Hip06/Hip07 only in Root Port mode
+ - [armhf,arm64] PCI: iproc: Fix NULL pointer dereference for BCMA
+ - [x86] PCI: pciehp: Assume NoCompl+ for Thunderbolt ports
+ - console/dummy: leave .con_font_get set to NULL
+ - rbd: whitelist RBD_FEATURE_OPERATIONS feature bit
+ - xen: Fix {set,clear}_foreign_p2m_mapping on autotranslating guests
+ - xenbus: track caller request id
+ - seq_file: fix incomplete reset on read from zero offset
+ - tracing: Fix parsing of globs with a wildcard at the beginning
+ - mpls, nospec: Sanitize array index in mpls_label_ok() (CVE-2017-5753)
+ - rtlwifi: rtl8821ae: Fix connection lost problem correctly
+ - [arm64] proc: Set PTE_NG for table entries to avoid traversing them twice
+ - xprtrdma: Fix calculation of ri_max_send_sges
+ - xprtrdma: Fix BUG after a device removal
+ - blk-wbt: account flush requests correctly
+ - target/iscsi: avoid NULL dereference in CHAP auth error path
+ - iscsi-target: make sure to wake up sleeping login worker
+ - dm: correctly handle chained bios in dec_pending()
+ - Btrfs: fix deadlock in run_delalloc_nocow
+ - Btrfs: fix crash due to not cleaning up tree log block's dirty bits
+ - Btrfs: fix extent state leak from tree log
+ - Btrfs: fix btrfs_evict_inode to handle abnormal inodes correctly
+ - Btrfs: fix use-after-free on root->orphan_block_rsv
+ - Btrfs: fix unexpected -EEXIST when creating new inode
+ - 9p/trans_virtio: discard zero-length reply
+ - mtd: nand: vf610: set correct ooblayout
+ - ALSA: hda - Fix headset mic detection problem for two Dell machines
+ - ALSA: usb-audio: Fix UAC2 get_ctl request with a RANGE attribute
+ - ALSA: hda/realtek - Add headset mode support for Dell laptop
+ - ALSA: hda/realtek - Enable Thinkpad Dock device for ALC298 platform
+ - ALSA: hda/realtek: PCI quirk for Fujitsu U7x7
+ - ALSA: usb-audio: add implicit fb quirk for Behringer UFX1204
+ - ALSA: usb: add more device quirks for USB DSD devices
+ - ALSA: seq: Fix racy pool initializations (CVE-2018-7566)
+ - [armhf,arm64] mvpp2: fix multicast address filter
+ - usb: Move USB_UHCI_BIG_ENDIAN_* out of USB_SUPPORT
+ - [x86] mm, mm/hwpoison: Don't unconditionally unmap kernel 1:1 pages
+ - [armhf] dts: exynos: fix RTC interrupt for exynos5410
+ - [arm64] dts: msm8916: Add missing #phy-cells
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.15.6
+ - tun: fix tun_napi_alloc_frags() frag allocator
+ - ptr_ring: fail early if queue occupies more than KMALLOC_MAX_SIZE
+ - ptr_ring: try vmalloc() when kmalloc() fails
+ - selinux: ensure the context is NUL terminated in
+ security_context_to_sid_core()
+ - selinux: skip bounded transition processing if the policy isn't loaded
+ - media: pvrusb2: properly check endpoint types
+ - [x86] crypto: twofish-3way - Fix %rbp usage
+ - blk_rq_map_user_iov: fix error override
+ - [x86] KVM: fix escape of guest dr6 to the host
+ - kcov: detect double association with a single task
+ - netfilter: x_tables: fix int overflow in xt_alloc_table_info()
+ - netfilter: x_tables: avoid out-of-bounds reads in
+ xt_request_find_{match|target}
+ - netfilter: ipt_CLUSTERIP: fix out-of-bounds accesses in
+ clusterip_tg_check()
+ - netfilter: on sockopt() acquire sock lock only in the required scope
+ - netfilter: xt_cgroup: initialize info->priv in cgroup_mt_check_v1()
+ - netfilter: xt_RATEEST: acquire xt_rateest_mutex for hash insert
+ - rds: tcp: correctly sequence cleanup on netns deletion.
+ - rds: tcp: atomically purge entries from rds_tcp_conn_list during netns
+ delete
+ - net: avoid skb_warn_bad_offload on IS_ERR
+ - net_sched: gen_estimator: fix lockdep splat
+ - [arm64] dts: add #cooling-cells to CPU nodes
+ - dn_getsockoptdecnet: move nf_{get/set}sockopt outside sock lock
+ - xhci: Fix NULL pointer in xhci debugfs
+ - xhci: Fix xhci debugfs devices node disappearance after hibernation
+ - xhci: xhci debugfs device nodes weren't removed after device plugged out
+ - xhci: fix xhci debugfs errors in xhci_stop
+ - usbip: keep usbip_device sockfd state in sync with tcp_socket
+ - [x86] mei: me: add cannon point device ids
+ - [x86] mei: me: add cannon point device ids for 4th device
+ - vmalloc: fix __GFP_HIGHMEM usage for vmalloc_32 on 32b systems
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.15.7
+ - netfilter: drop outermost socket lock in getsockopt()
+ - [arm64] mm: don't write garbage into TTBR1_EL1 register
+ - kconfig.h: Include compiler types to avoid missed struct attributes
+ - scsi: ibmvfc: fix misdefined reserved field in ibmvfc_fcp_rsp_info
+ - [mips*] Drop spurious __unused in struct compat_flock
+ - cfg80211: fix cfg80211_beacon_dup
+ - i2c: designware: must wait for enable
+ - [armhf,arm64] i2c: bcm2835: Set up the rising/falling edge delays
+ - X.509: fix BUG_ON() when hash algorithm is unsupported
+ - X.509: fix NULL dereference when restricting key with unsupported_sig
+ - PKCS#7: fix certificate chain verification
+ - PKCS#7: fix certificate blacklisting
+ - [x86] genirq/matrix: Handle CPU offlining proper
+ - RDMA/uverbs: Protect from races between lookup and destroy of uobjects
+ - RDMA/uverbs: Protect from command mask overflow
+ - RDMA/uverbs: Fix bad unlock balance in ib_uverbs_close_xrcd
+ - RDMA/uverbs: Fix circular locking dependency
+ - RDMA/uverbs: Sanitize user entered port numbers prior to access it
+ - iio: buffer: check if a buffer has been set up when poll is called
+ - Kbuild: always define endianess in kconfig.h
+ - [x86] apic/vector: Handle vector release on CPU unplug correctly
+ - mm, swap, frontswap: fix THP swap if frontswap enabled
+ - mm: don't defer struct page initialization for Xen pv guests
+ - uapi/if_ether.h: move __UAPI_DEF_ETHHDR libc define
+ - [armhf,arm64] irqchip/gic-v3: Use wmb() instead of smb_wmb() in
+ gic_raise_softirq()
+ - [mips*] irqchip/mips-gic: Avoid spuriously handling masked interrupts
+ - PCI/cxgb4: Extend T3 PCI quirk to T4+ devices
+ - [x86] net: thunderbolt: Tear down connection properly on suspend
+ - [x86] net: thunderbolt: Run disconnect flow asynchronously when logout is
+ received
+ - ohci-hcd: Fix race condition caused by ohci_urb_enqueue() and
+ io_watchdog_func()
+ - usb: ohci: Proper handling of ed_rm_list to handle race condition between
+ usb_kill_urb() and finish_unlinks()
+ - [arm64] Remove unimplemented syscall log message
+ - [arm64] Disable unhandled signal log messages by default
+ - [arm64] cpufeature: Fix CTR_EL0 field definitions
+ - USB: Add delay-init quirk for Corsair K70 RGB keyboards
+ - drm/edid: Add 6 bpc quirk for CPT panel in Asus UX303LA
+ - usb: host: ehci: use correct device pointer for dma ops
+ - usb: dwc3: gadget: Set maxpacket size for ep0 IN
+ - usb: dwc3: ep0: Reset TRB counter for ep0 IN
+ - usb: ldusb: add PIDs for new CASSY devices supported by this driver
+ - Revert "usb: musb: host: don't start next rx urb if current one failed"
+ - usb: gadget: f_fs: Process all descriptors during bind
+ - usb: gadget: f_fs: Use config_ep_by_speed()
+ - drm/cirrus: Load lut in crtc_commit
+ - drm/atomic: Fix memleak on ERESTARTSYS during non-blocking commits
+ - drm: Handle unexpected holes in color-eviction
+ - drm/amdgpu: disable MMHUB power gating on raven
+ - drm/amdgpu: fix VA hole handling on Vega10 v3
+ - drm/amdgpu: Add dpm quirk for Jet PRO (v2)
+ - drm/amdgpu: only check mmBIF_IOV_FUNC_IDENTIFIER on tonga/fiji
+ - drm/amdgpu: add atpx quirk handling (v2)
+ - drm/amdgpu: Avoid leaking PM domain on driver unbind (v2)
+ - drm/amdgpu: add new device to use atpx quirk
+ - [arm64] __show_regs: Only resolve kernel symbols when running at EL1
+ - [x86] drm/i915/breadcrumbs: Ignore unsubmitted signalers
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.15.8
+ - vsprintf: avoid misleading "(null)" for %px
+ - hrtimer: Ensure POSIX compliance (relative CLOCK_REALTIME hrtimers)
+ - ipmi_si: Fix error handling of platform device
+ - [x86] platform: dell-laptop: Allocate buffer on heap rather than globally
+ - [powerpc*] pseries: Enable RAS hotplug events later
+ - Bluetooth: btusb: Use DMI matching for QCA reset_resume quirking
+ - ixgbe: fix crash in build_skb Rx code path
+ - [x86] tpm: st33zp24: fix potential buffer overruns caused by bit glitches
+ on the bus
+ - tpm: fix potential buffer overruns caused by bit glitches on the bus
+ - [x86] tpm_i2c_infineon: fix potential buffer overruns caused by bit
+ glitches on the bus
+ - [x86] tpm_i2c_nuvoton: fix potential buffer overruns caused by bit
+ glitches on the bus
+ - [x86] tpm_tis: fix potential buffer overruns caused by bit glitches on
+ the bus
+ - ALSA: usb-audio: Add a quirck for B&W PX headphones
+ - ALSA: control: Fix memory corruption risk in snd_ctl_elem_read
+ - [x86] ALSA: x86: Fix missing spinlock and mutex initializations
+ - ALSA: hda: Add a power_save blacklist
+ - ALSA: hda - Fix pincfg at resume on Lenovo T470 dock
+ - mmc: sdhci-pci: Fix S0i3 for Intel BYT-based controllers
+ - [armhf,arm64] mmc: dw_mmc-k3: Fix out-of-bounds access through DT alias
+ - [armhf,arm64] mmc: dw_mmc: Avoid accessing registers in runtime suspended
+ state
+ - [armhf,arm64] mmc: dw_mmc: Factor out dw_mci_init_slot_caps
+ - [armhf,arm64] mmc: dw_mmc: Fix out-of-bounds access for slot's caps
+ - timers: Forward timer base before migrating timers
+ - [hppa] Use cr16 interval timers unconditionally on qemu
+ - [hppa] Reduce irq overhead when run in qemu
+ - [hppa] Fix ordering of cache and TLB flushes
+ - [hppa] Hide virtual kernel memory layout
+ - btrfs: use proper endianness accessors for super_copy
+ - block: fix the count of PGPGOUT for WRITE_SAME
+ - block: kyber: fix domain token leak during requeue
+ - block: pass inclusive 'lend' parameter to truncate_inode_pages_range
+ - vfio: disable filesystem-dax page pinning
+ - dax: fix vma_is_fsdax() helper
+ - direct-io: Fix sleep in atomic due to sync AIO
+ - [x86] xen: Zero MSR_IA32_SPEC_CTRL before suspend
+ - [x86] cpu_entry_area: Sync cpu_entry_area to initial_page_table
+ - bridge: check brport attr show in brport_show
+ - fib_semantics: Don't match route with mismatching tclassid
+ - hdlc_ppp: carrier detect ok, don't turn off negotiation
+ - [arm64] net: amd-xgbe: fix comparison to bitshift when dealing with a mask
+ - [armhf] net: ethernet: ti: cpsw: fix net watchdog timeout
+ - net: fix race on decreasing number of TX queues
+ - net: ipv4: don't allow setting net.ipv4.route.min_pmtu below 68
+ - netlink: ensure to loop over all netns in genlmsg_multicast_allns()
+ - net: sched: report if filter is too large to dump
+ - ppp: prevent unregistered channels from connecting to PPP units
+ - sctp: verify size of a new chunk in _sctp_make_chunk() (CVE-2018-5803)
+ - udplite: fix partial checksum initialization
+ - net/mlx5e: Fix TCP checksum in LRO buffers
+ - sctp: fix dst refcnt leak in sctp_v4_get_dst
+ - net/mlx5e: Specify numa node when allocating drop rq
+ - net: phy: fix phy_start to consider PHY_IGNORE_INTERRUPT
+ - tcp: Honor the eor bit in tcp_mtu_probe
+ - rxrpc: Fix send in rxrpc_send_data_packet()
+ - tcp_bbr: better deal with suboptimal GSO
+ - doc: Change the min default value of tcp_wmem/tcp_rmem.
+ - net/mlx5e: Fix loopback self test when GRO is off
+ - net_sched: gen_estimator: fix broken estimators based on percpu stats
+ - net/sched: cls_u32: fix cls_u32 on filter replace
+ - sctp: do not pr_err for the duplicated node in transport rhlist
+ - net: ipv4: Set addr_type in hash_keys for forwarded case
+ - sctp: fix dst refcnt leak in sctp_v6_get_dst()
+ - bridge: Fix VLAN reference count problem
+ - net/mlx5e: Verify inline header size do not exceed SKB linear size
+ - tls: Use correct sk->sk_prot for IPV6
+ - [arm64] amd-xgbe: Restore PCI interrupt enablement setting on resume
+ - cls_u32: fix use after free in u32_destroy_key()
+ - netlink: put module reference if dump start fails
+ - tcp: purge write queue upon RST
+ - tuntap: correctly add the missing XDP flush
+ - tuntap: disable preemption during XDP processing
+ - virtio-net: disable NAPI only when enabled during XDP set
+ - cxgb4: fix trailing zero in CIM LA dump
+ - net/mlx5: Fix error handling when adding flow rules
+ - net: phy: Restore phy_resume() locking assumption
+ - tcp: tracepoint: only call trace_tcp_send_reset with full socket
+ - l2tp: don't use inet_shutdown on tunnel destroy
+ - l2tp: don't use inet_shutdown on ppp session destroy
+ - l2tp: fix races with tunnel socket close
+ - l2tp: fix race in pppol2tp_release with session object destroy
+ - l2tp: fix tunnel lookup use-after-free race
+ - [s390x] qeth: fix underestimated count of buffer elements
+ - [s390x] qeth: fix SETIP command handling
+ - [s390x] qeth: fix overestimated count of buffer elements
+ - [s390x] qeth: fix IP removal on offline cards
+ - [s390x] qeth: fix double-free on IP add/remove race
+ - [s390x] Revert "s390/qeth: fix using of ref counter for rxip addresses"
+ - [s390x] qeth: fix IP address lookup for L3 devices
+ - [s390x] qeth: fix IPA command submission race
+ - tcp: revert F-RTO middle-box workaround
+ - tcp: revert F-RTO extension to detect more spurious timeouts
+ - blk-mq: don't call io sched's .requeue_request when requeueing rq to
+ ->dispatch
+ - media: m88ds3103: don't call a non-initalized function
+ - [x86] EDAC, sb_edac: Fix out of bound writes during DIMM configuration on
+ KNL
+ - [s390x] KVM: take care of clock-comparator sign control
+ - [s390x] KVM: provide only a single function for setting the tod (fix SCK)
+ - [s390x] KVM: consider epoch index on hotplugged CPUs
+ - [s390x] KVM: consider epoch index on TOD clock syncs
+ - nospec: Allow index argument to have const-qualified type
+ - [x86] mm: Fix {pmd,pud}_{set,clear}_flags()
+ - [armhf] orion: fix orion_ge00_switch_board_info initialization
+ - [armhf] dts: rockchip: Remove 1.8 GHz operation point from phycore som
+ - [armhf] mvebu: Fix broken PL310_ERRATA_753970 selects
+ - [x86] KVM: Fix SMRAM accessing even if VM is shutdown
+ - KVM: mmu: Fix overlap between public and private memslots
+ - [x86] KVM: Remove indirect MSR op calls from SPEC_CTRL
+ - [x86] KVM: move LAPIC initialization after VMCS creation
+ - [x86] KVM/VMX: Optimize vmx_vcpu_run() and svm_vcpu_run() by marking the
+ RDMSR path as unlikely()
+ - [x86] KVM: fix vcpu initialization with userspace lapic
+ - [x86] KVM: remove WARN_ON() for when vm_munmap() fails
+ - [x86] ACPI / bus: Parse tables as term_list for Dell XPS 9570 and
+ Precision M5530
+ - [armhf] dts: LogicPD SOM-LV: Fix I2C1 pinmux
+ - [armhf] dts: LogicPD Torpedo: Fix I2C1 pinmux
+ - [powerpc*] 64s/radix: Boot-time NULL pointer protection using a guard-PID
+ - md: only allow remove_and_add_spares when no sync_thread running.
+ - [x86] platform: dell-laptop: fix kbd_get_state's request value
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.15.9
+ - bpf: fix mlock precharge on arraymaps
+ - bpf: fix memory leak in lpm_trie map_free callback function
+ - bpf: fix rcu lockdep warning for lpm_trie map_free callback
+ - [amd64] bpf: implement retpoline for tail call (CVE-2017-5715)
+ - [arm64] bpf: fix out of bounds access in tail call
+ - bpf: add schedule points in percpu arrays management
+ - bpf: allow xadd only on aligned memory
+ - [powerpc*] bpf, ppc64: fix out of bounds access in tail call
+ - scsi: mpt3sas: fix oops in error handlers after shutdown/unload
+ - scsi: mpt3sas: wait for and flush running commands on shutdown/unload
+ - [x86] KVM: fix backward migration with async_PF
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.15.10
+ - RDMA/ucma: Limit possible option size
+ - RDMA/ucma: Check that user doesn't overflow QP state
+ - RDMA/mlx5: Fix integer overflow while resizing CQ
+ - bpf: cpumap: use GFP_KERNEL instead of GFP_ATOMIC in
+ __cpu_map_entry_alloc()
+ - IB/uverbs: Improve lockdep_check
+ - mac80211_hwsim: don't use WQ_MEM_RECLAIM
+ - [x86] drm/i915: Check for fused or unused pipes
+ - [x86] drm/i915/audio: fix check for av_enc_map overflow
+ - [x86] drm/i915: Fix rsvd2 mask when out-fence is returned
+ - [x86] drm/i915: Clear the in-use marker on execbuf failure
+ - [x86] drm/i915: Disable DC states around GMBUS on GLK
+ - [x86] drm/i915: Update watermark state correctly in sanitize_watermarks
+ - [x86] drm/i915: Try EDID bitbanging on HDMI after failed read
+ - [x86] drm/i915/perf: fix perf stream opening lock
+ - scsi: core: Avoid that ATA error handling can trigger a kernel hang or
+ oops (Closes: #891467)
+ - scsi: qla2xxx: Fix NULL pointer crash due to active timer for ABTS
+ - [x86] drm/i915: Always call to intel_display_set_init_power() in
+ resume_early.
+ - workqueue: Allow retrieval of current task's work struct
+ - drm: Allow determining if current task is output poll worker
+ - drm/nouveau: Fix deadlock on runtime suspend
+ - drm/radeon: Fix deadlock on runtime suspend
+ - drm/amdgpu: Fix deadlock on runtime suspend
+ - drm/nouveau: prefer XBGR2101010 for addfb ioctl
+ - drm/amd/powerplay/smu7: allow mclk switching with no displays
+ - drm/amd/powerplay/vega10: allow mclk switching with no displays
+ - Revert "drm/radeon/pm: autoswitch power state when in balanced mode"
+ - drm/amd/display: check for ipp before calling cursor operations
+ - drm/radeon: insist on 32-bit DMA for Cedar on PPC64/PPC64LE
+ - drm/amd/powerplay: fix power over limit on Fiji
+ - drm/amd/display: Default HDMI6G support to true. Log VBIOS table error.
+ - drm/amdgpu: used cached pcie gen info for SI (v2)
+ - drm/amdgpu: Notify sbios device ready before send request
+ - drm/radeon: fix KV harvesting
+ - drm/amdgpu: fix KV harvesting
+ - drm/amdgpu:Correct max uvd handles
+ - drm/amdgpu:Always save uvd vcpu_bo in VM Mode
+ - ovl: redirect_dir=nofollow should not follow redirect for opaque lower
+ - [mips*/octeon] irq: Check for null return on kzalloc allocation
+ - PCI: dwc: Fix enumeration end when reaching root subordinate
+ - Revert "Input: synaptics - Lenovo Thinkpad T460p devices should use RMI"
+ - bug: use %pB in BUG and stack protector failure
+ - lib/bug.c: exclude non-BUG/WARN exceptions from report_bug()
+ - mm/memblock.c: hardcode the end_pfn being -1
+ - Documentation/sphinx: Fix Directive import error
+ - loop: Fix lost writes caused by missing flag
+ - virtio_ring: fix num_free handling in error case
+ - [x390x] KVM: fix memory overwrites when not using SCA entries
+ - [arm64] mm: fix thinko in non-global page table attribute check
+ - IB/core: Fix missing RDMA cgroups release in case of failure to register
+ device
+ - Revert "nvme: create 'slaves' and 'holders' entries for hidden
+ controllers"
+ - kbuild: Handle builtin dtb file names containing hyphens
+ - dm bufio: avoid false-positive Wmaybe-uninitialized warning
+ - IB/mlx5: Fix incorrect size of klms in the memory region
+ - bcache: fix crashes in duplicate cache device register
+ - bcache: don't attach backing with duplicate UUID
+ - [x86] MCE: Save microcode revision in machine check records
+ - [x86] MCE: Serialize sysfs changes (CVE-2018-7995)
+ - perf tools: Fix trigger class trigger_on()
+ - [x86] spectre_v2: Don't check microcode versions when running under
+ hypervisors
+ - ALSA: hda/realtek - Add support headset mode for DELL WYSE
+ - ALSA: hda/realtek - Add headset mode support for Dell laptop
+ - ALSA: hda/realtek: Limit mic boost on T480
+ - ALSA: hda/realtek - Fix dock line-out volume on Dell Precision 7520
+ - ALSA: hda/realtek - Make dock sound work on ThinkPad L570
+ - ALSA: seq: Don't allow resizing pool in use
+ - ALSA: seq: More protection for concurrent write and ioctl races
+ - ALSA: hda - Fix a wrong FIXUP for alc289 on Dell machines
+ - ALSA: hda: add dock and led support for HP EliteBook 820 G3
+ - ALSA: hda: add dock and led support for HP ProBook 640 G2
+ - scsi: qla2xxx: Fix NULL pointer crash due to probe failure
+ - scsi: qla2xxx: Fix recursion while sending terminate exchange
+ - dt-bindings: Document mti,mips-cpc binding
+ - nospec: Kill array_index_nospec_mask_check()
+ - nospec: Include <asm/barrier.h> dependency
+ - [x86] entry: Reduce the code footprint of the 'idtentry' macro
+ - [x86] entry/64: Use 'xorl' for faster register clearing
+ - [x86] mm: Remove stale comment about KMEMCHECK
+ - [x86] asm: Improve how GEN_*_SUFFIXED_RMWcc() specify clobbers
+ - [x86] IO-APIC: Avoid warning in 32-bit builds
+ - [x86] LDT: Avoid warning in 32-bit builds with older gcc
+ - x86-64/realmode: Add instruction suffix
+ - Revert "x86/retpoline: Simplify vmexit_fill_RSB()"
+ - [x86] speculation: Use IBRS if available before calling into firmware
+ - [x86] retpoline: Support retpoline builds with Clang
+ - [x86] speculation, objtool: Annotate indirect calls/jumps for objtool
+ - [x86] speculation: Move firmware_restrict_branch_speculation_*() from C
+ to CPP
+ - [x86] paravirt, objtool: Annotate indirect calls
+ - [x86] boot, objtool: Annotate indirect jump in secondary_startup_64()
+ - [x86] mm/sme, objtool: Annotate indirect call in sme_encrypt_execute()
+ - objtool: Use existing global variables for options
+ - objtool: Add retpoline validation
+ - objtool: Add module specific retpoline rules
+ - objtool, retpolines: Integrate objtool with retpoline support more
+ closely
+ - objtool: Fix another switch table detection issue
+ - objtool: Fix 32-bit build
+ - [x86] kprobes: Fix kernel crash when probing .entry_trampoline code
+ - watchdog: hpwdt: SMBIOS check
+ - watchdog: hpwdt: Check source of NMI
+ - watchdog: hpwdt: fix unused variable warning
+ - watchdog: hpwdt: Remove legacy NMI sourcing.
+ - netfilter: add back stackpointer size checks (CVE-2018-1065)
+ - netfilter: ipt_CLUSTERIP: fix a race condition of proc file creation
+ - netfilter: xt_hashlimit: fix lock imbalance
+ - netfilter: x_tables: fix missing timer initialization in xt_LED
+ - netfilter: nat: cope with negative port range
+ - netfilter: IDLETIMER: be syzkaller friendly
+ - netfilter: ebtables: CONFIG_COMPAT: don't trust userland offsets
+ (CVE-2018-1068)
+ - netfilter: bridge: ebt_among: add missing match size checks
+ - netfilter: ipv6: fix use-after-free Write in nf_nat_ipv6_manip_pkt
+ - netfilter: use skb_to_full_sk in ip6_route_me_harder
+ - tpm_tis: Move ilb_base_addr to tpm_tis_data
+ - tpm: Keep CLKRUN enabled throughout the duration of transmit_cmd()
+ - tpm: delete the TPM_TIS_CLK_ENABLE flag
+ - tpm: remove unused variables
+ - tpm: only attempt to disable the LPC CLKRUN if is already enabled
+ - [x86] xen: Calculate __max_logical_packages on PV domains
+ - scsi: qla2xxx: Fix system crash for Notify ack timeout handling
+ - scsi: qla2xxx: Fix gpnid error processing
+ - scsi: qla2xxx: Move session delete to driver work queue
+ - scsi: qla2xxx: Skip IRQ affinity for Target QPairs
+ - scsi: qla2xxx: Fix re-login for Nport Handle in use
+ - scsi: qla2xxx: Retry switch command on time out
+ - scsi: qla2xxx: Serialize GPNID for multiple RSCN
+ - scsi: qla2xxx: Fix login state machine stuck at GPDB
+ - scsi: qla2xxx: Fix NPIV host cleanup in target mode
+ - scsi: qla2xxx: Relogin to target port on a cable swap
+ - scsi: qla2xxx: Fix Relogin being triggered too fast
+ - scsi: qla2xxx: Fix PRLI state check
+ - scsi: qla2xxx: Fix abort command deadlock due to spinlock
+ - scsi: qla2xxx: Replace fcport alloc with qla2x00_alloc_fcport
+ - scsi: qla2xxx: Fix scan state field for fcport
+ - scsi: qla2xxx: Clear loop id after delete
+ - scsi: qla2xxx: Defer processing of GS IOCB calls
+ - scsi: qla2xxx: Remove aborting ELS IOCB call issued as part of timeout.
+ - scsi: qla2xxx: Fix system crash in qlt_plogi_ack_unref
+ - scsi: qla2xxx: Fix memory leak in dual/target mode
+ - NFS: Fix an incorrect type in struct nfs_direct_req
+ - pNFS: Prevent the layout header refcount going to zero in pnfs_roc()
+ - NFS: Fix unstable write completion
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.15.11
+ - [x86] Treat R_X86_64_PLT32 as R_X86_64_PC32
+ - usb: host: xhci-rcar: add support for r8a77965
+ - xhci: Fix front USB ports on ASUS PRIME B350M-A
+ - xhci: fix endpoint context tracer output
+ - [sh4] serial: sh-sci: prevent lockup on full TTY buffers
+ - tty/serial: atmel: add new version check for usart
+ - uas: fix comparison for error code
+ - [x86] staging: comedi: fix comedi_nsamples_left.
+ - USB: storage: Add JMicron bridge 152d:2567 to unusual_devs.h
+ - usbip: vudc: fix null pointer dereference on udc->lock
+ - usb: quirks: add control message delay for 1b1c:1b20
+ - usb: usbmon: Read text within supplied buffer size
+ - usb: gadget: f_fs: Fix use-after-free in ffs_fs_kill_sb()
+ - [arm64,armhf] usb: dwc3: Fix lock-up on ID change during system
+ suspend/resume
+ - serial: 8250_pci: Add Brainboxes UC-260 4 port serial device
+ - serial: core: mark port as initialized in autoconfig
+ - earlycon: add reg-offset to physical address before mapping
+ - dm mpath: fix passing integrity data
+ - Revert "btrfs: use proper endianness accessors for super_copy"
+ - gfs2: Clean up {lookup,fillup}_metapath
+ - gfs2: Fixes to "Implement iomap for block_map" (2)
+ - [armhf] spi: imx: Fix failure path leak on GPIO request error correctly
+ - HID: multitouch: Only look at non touch fields in first packet of a
+ frame
+ - [powerpc*] KVM: Book3S HV: Avoid shifts by negative amounts
+ - drm/edid: set ELD connector type in drm_edid_to_eld()
+ - dma-buf/fence: Fix lock inversion within dma-fence-array
+ - video/hdmi: Allow "empty" HDMI infoframes
+ - [powerpc*] KVM: Book3S HV: Fix typo in kvmppc_hv_get_dirty_log_radix()
+ - HID: elo: clear BTN_LEFT mapping
+ - iwlwifi: mvm: rs: don't override the rate history in the search cycle
+ - [armhf] dts: exynos: Correct Trats2 panel reset line
+ - drm/amdgpu: fix get_max_engine_clock_in_mhz
+ - USB: ledtrig-usbport: fix of-node leak
+ - dt-bindings: serial: Add common rs485 binding for RTS polarity
+ - sched: Stop switched_to_rt() from sending IPIs to offline CPUs
+ - sched: Stop resched_cpu() from sending IPIs to offline CPUs
+ - crypto: chelsio - Fix an error code in chcr_hash_dma_map()
+ - crypto: keywrap - Add missing ULL suffixes for 64-bit constants
+ - crypto: cavium - fix memory leak on info
+ - test_firmware: fix setting old custom fw path back on exit
+ - drm/vblank: Fix vblank timestamp debugs
+ - net: ieee802154: adf7242: Fix bug if defined DEBUG
+ - perf report: Fix -D output for user metadata events
+ - net: xfrm: allow clearing socket xfrm policies.
+ - gpiolib: don't allow OPEN_DRAIN & OPEN_SOURCE flags simultaneously
+ - mtd: nand: fix interpretation of NAND_CMD_NONE in nand_command[_lp]()
+ - [arm64] net: thunderx: Set max queue count taking XDP_TX into account
+ - [armhf] dts: am335x-pepper: Fix the audio CODEC's reset pin
+ - [armhf] dts: omap3-n900: Fix the audio CODEC's reset pin
+ - mtd: nand: ifc: update bufnum mask for ver >= 2.0.0
+ - userns: Don't fail follow_automount based on s_user_ns
+ - xfrm: Fix xfrm_replay_overflow_offload_esn
+ - leds: pm8058: Silence pointer to integer size warning
+ - bpf: fix stack state printing in verifier log
+ - [armhf] drm/etnaviv: make THERMAL selectable
+ - ath10k: update tdls teardown state to target
+ - cpufreq: Fix governor module removal race
+ - [x86] KVM: Restart the guest when insn_len is zero and SEV is enabled
+ - drm/amdgpu:fix random missing of FLR NOTIFY
+ - scsi: lpfc: Fix crash during driver unload with running nvme traffic
+ - scsi: ses: don't ask for diagnostic pages repeatedly during probe
+ - [armhf] drm/sun4i: Fix format mask in DE2 driver
+ - [s390x] perf annotate: Fix unnecessary memory allocation for s390x
+ - perf annotate: Fix objdump comment parsing for Intel mov dissassembly
+ - iwlwifi: mvm: avoid dumping assert log when device is stopped
+ - drm/amdgpu:fix virtual dce bug
+ - drm/amdgpu: fix amdgpu_sync_resv v2
+ - bnxt_en: Uninitialized variable in bnxt_tc_parse_actions()
+ - [arm64] clk: qcom: msm8916: fix mnd_width for codec_digcodec
+ - mwifiex: cfg80211: do not change virtual interface during scan
+ processing
+ - ath10k: fix invalid STS_CAP_OFFSET_MASK
+ - tools/usbip: fixes build with musl libc toolchain
+ - [armhf] spi: sun6i: disable/unprepare clocks on remove
+ - bnxt_en: Don't print "Link speed -1 no longer supported" messages.
+ - scsi: core: scsi_get_device_flags_keyed(): Always return device flags
+ - scsi: devinfo: apply to HP XP the same flags as Hitachi VSP
+ - scsi: dh: add new rdac devices
+ - media: vsp1: Prevent suspending and resuming DRM pipelines
+ - dm raid: fix raid set size revalidation
+ - media: cpia2: Fix a couple off by one bugs
+ - [arm*] media: davinci: vpif_capture: add NULL check on devm_kzalloc
+ return value
+ - virtio_net: Disable interrupts if napi_complete_done rescheduled napi
+ - net: sched: drop qdisc_reset from dev_graft_qdisc
+ - veth: set peer GSO values
+ - [x86] drm/amdkfd: Fix memory leaks in kfd topology
+ - [powerpc*] modules: Don't try to restore r2 after a sibling call
+ - [powerpc/powerpc64,ppc64*] Don't trace irqs-off at interrupt return to
+ soft-disabled context
+ - [arm64] dts: renesas: salvator-common: Add EthernetAVB PHY reset
+ - agp/intel: Flush all chipset writes after updating the GGTT
+ - mac80211_hwsim: enforce PS_MANUAL_POLL to be set after PS_ENABLED
+ - mac80211: remove BUG() when interface type is invalid
+ - crypto: caam/qi - use correct print specifier for size_t
+ - mmc: mmc_test: Ensure command queue is disabled for testing
+ - Fix misannotated out-of-line _copy_to_user()
+ - ipvlan: add L2 check for packets arriving via virtual devices
+ - locking/locktorture: Fix num reader/writer corner cases
+ - ima: relax requiring a file signature for new files with zero length
+ - IB/mlx5: revisit -Wmaybe-uninitialized warning
+ - [arm64] dmaengine: qcom_hidma: check pending interrupts
+ - [x86] drm/i915/glk: Disable Guc and HuC on GLK
+
+ [ Ben Hutchings ]
+ * aufs: gen-patch: Fix Subject generation to skip SPDX-License-Identifier
+ * aufs: Update support patchset to aufs4.15-20180219 (no functional change)
+ * debian/control: Point Vcs URLs to Salsa
+ * [x86] sound/soc/intel: Enable SND_SOC_INTEL_SST_TOPLEVEL,
+ SND_SOC_INTEL_HASWELL, SND_SOC_INTEL_BAYTRAIL, SND_SST_ATOM_HIFI2_PLATFORM,
+ SND_SOC_INTEL_SKYLAKE as modules; re-enable dependent board drivers
+ (Closes: #892629)
+ * firmware_class: Refer to Debian wiki page when logging missing firmware
+ (Closes: #888405)
+ * amdgpu: Abort probing if firmware is not installed, as we do in radeon
+ * Bump ABI to 2
+ * [amd64] udeb: Add vmd to scsi-modules, required for NVMe on some systems
+ (Closes: #891482)
+ * udeb: Update patterns for PHY modules included in usb-modules
+ (Closes: #893154)
+
+ [ Uwe Kleine-König ]
+ * netfilter: enable NFT_FIB_NETDEV as module
+
+ [ Thadeu Lima de Souza Cascardo ]
+ * [powerpc,ppc64el,ppc64] Enable CRASH_DUMP (Closes: #883432)
+
+ [ Bastian Blank ]
+ * Drop note about Xen from long descriptions.
+
+ [ Vagrant Cascadian ]
+ * [arm64] Enable ROCKCHIP_IODOMAIN as a module, to enable PCIe reset.
+ * [arm64] Enable REGULATOR_FAN53555 as a module, enabling cpufreq to
+ work on rk3399 A72 cores.
+ * [arm64] Apply patch from linux-next to fix eMMC corruption on
+ Odroid-C2 (Closes: #879072).
+
+ [ Salvatore Bonaccorso ]
+ * mac80211_hwsim: fix possible memory leak in hwsim_new_radio_nl()
+ (CVE-2018-8087)
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Tue, 20 Mar 2018 09:31:07 +0100
+
+linux (4.15.4-1) unstable; urgency=medium
+
+ * New upstream release: https://kernelnewbies.org/Linux_4.15
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.15.1
+ - Bluetooth: hci_serdev: Init hci_uart proto_lock to avoid oops
+ - tools/gpio: Fix build error with musl libc
+ - gpio: stmpe: i2c transfer are forbiden in atomic context
+ - gpio: Fix kernel stack leak to userspace
+ - scsi: storvsc: missing error code in storvsc_probe()
+ - staging: lustre: separate a connection destroy from free struct kib_conn
+ - staging: ccree: NULLify backup_info when unused
+ - staging: ccree: fix fips event irq handling build
+ - usb: option: Add support for FS040U modem
+ - serial: 8250_dw: Revert "Improve clock rate setting"
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.15.2
+ - [x86] KVM: Make indirect calls in emulator speculation safe
+ - [x86] KVM: VMX: Make indirect call speculation safe
+ - module/retpoline: Warn about missing retpoline in module
+ - [x86] cpufeatures: Add CPUID_7_EDX CPUID leaf
+ - [x86] cpufeatures: Add Intel feature bits for Speculation Control
+ - [x86] cpufeatures: Add AMD feature bits for Speculation Control
+ - [x86] msr: Add definitions for new speculation control MSRs
+ - [x86] pti: Do not enable PTI on CPUs which are not vulnerable to
+ Meltdown
+ - [x86] cpufeature: Blacklist SPEC_CTRL/PRED_CMD on early Spectre v2
+ microcodes
+ - [x86] speculation: Add basic IBPB (Indirect Branch Prediction Barrier)
+ support
+ - [x86] alternative: Print unadorned pointers
+ - [x86] nospec: Fix header guards names
+ - [x86] bugs: Drop one "mitigation" from dmesg
+ - [x86] cpu/bugs: Make retpoline module warning conditional
+ - [x86] cpufeatures: Clean up Spectre v2 related CPUID flags
+ - [x86] retpoline: Simplify vmexit_fill_RSB()
+ - [x86] speculation: Simplify indirect_branch_prediction_barrier()
+ - [x86] KVM: nVMX: Eliminate vmcs02 pool
+ - [x86] KVM: VMX: introduce alloc_loaded_vmcs
+ - objtool: Improve retpoline alternative handling
+ - objtool: Add support for alternatives at the end of a section
+ - objtool: Warn on stripped section symbol
+ - [x86] mm: Fix overlap of i386 CPU_ENTRY_AREA with FIX_BTMAP
+ - [x86] spectre: Check CONFIG_RETPOLINE in command line parser
+ - [x86] entry/64: Remove the SYSCALL64 fast path
+ - [x86] entry/64: Push extra regs right away
+ - [x86] asm: Move 'status' from thread_struct to thread_info
+ - Documentation: Document array_index_nospec
+ - array_index_nospec: Sanitize speculative array de-references
+ - [x86] Implement array_index_mask_nospec
+ - [x86] Introduce barrier_nospec
+ - [x86] Introduce __uaccess_begin_nospec() and uaccess_try_nospec
+ - [x86] usercopy: Replace open coded stac/clac with __uaccess_{begin, end}
+ - [x86] uaccess: Use __uaccess_begin_nospec() and uaccess_try_nospec
+ - [x86] get_user: Use pointer masking to limit speculation
+ - [x86] syscall: Sanitize syscall table de-references under speculation
+ - vfs, fdtable: Prevent bounds-check bypass via speculative execution
+ - nl80211: Sanitize array index in parse_txq_params
+ - [x86] spectre: Report get_user mitigation for spectre_v1
+ - [x86] spectre: Fix spelling mistake: "vunerable"-> "vulnerable"
+ - [x86] cpuid: Fix up "virtual" IBRS/IBPB/STIBP feature bits on Intel
+ - [x86] speculation: Use Indirect Branch Prediction Barrier in context
+ switch
+ - [x86] paravirt: Remove 'noreplace-paravirt' cmdline option
+ - [x86] KVM: VMX: make MSR bitmaps per-VCPU
+ - [x86] kvm: Update spectre-v1 mitigation
+ - [x86] retpoline: Avoid retpolines for built-in __init functions
+ - [x86] spectre: Simplify spectre_v2 command line parsing
+ - [x86] pti: Mark constant arrays as __initconst
+ - [x86] speculation: Fix typo IBRS_ATT, which should be IBRS_ALL
+ - [x86] KVM: Update the reverse_cpuid list to include CPUID_7_EDX
+ - [x86] KVM: Add IBPB support
+ - [x86] KVM/VMX: Emulate MSR_IA32_ARCH_CAPABILITIES
+ - [x86] KVM/VMX: Allow direct access to MSR_IA32_SPEC_CTRL
+ - [x86] KVM/SVM: Allow direct access to MSR_IA32_SPEC_CTRL
+ - serial: core: mark port as initialized after successful IRQ change
+ - fpga: region: release of_parse_phandle nodes after use
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.15.3
+ - ip6mr: fix stale iterator
+ - net: igmp: add a missing rcu locking section
+ - qlcnic: fix deadlock bug
+ - qmi_wwan: Add support for Quectel EP06
+ - r8169: fix RTL8168EP take too long to complete driver initialization.
+ - tcp: release sk_frag.page in tcp_disconnect
+ - vhost_net: stop device during reset owner
+ - ipv6: addrconf: break critical section in addrconf_verify_rtnl()
+ - ipv6: change route cache aging logic
+ - Revert "defer call to mem_cgroup_sk_alloc()"
+ - net: ipv6: send unsolicited NA after DAD
+ - rocker: fix possible null pointer dereference in
+ rocker_router_fib_event_work
+ - tcp_bbr: fix pacing_gain to always be unity when using lt_bw
+ - cls_u32: add missing RCU annotation.
+ - ipv6: Fix SO_REUSEPORT UDP socket with implicit sk_ipv6only
+ - soreuseport: fix mem leak in reuseport_add_sock()
+ - net_sched: get rid of rcu_barrier() in tcf_block_put_ext()
+ - net: sched: fix use-after-free in tcf_block_put_ext
+ - crypto: tcrypt - fix S/G table for test_aead_speed()
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.15.4
+ - cifs: Fix missing put_xid in cifs_file_strict_mmap
+ - cifs: Fix autonegotiate security settings mismatch
+ - CIFS: zero sensitive data when freeing
+ - cpufreq: mediatek: add mediatek related projects into blacklist
+ - [arm64] watchdog: gpio_wdt: set WDOG_HW_RUNNING in gpio_wdt_stop
+ - Revert "drm/i915: mark all device info struct with __initconst"
+ - sched/rt: Use container_of() to get root domain in
+ rto_push_irq_work_func()
+ - sched/rt: Up the root domain ref count when passing it around via IPIs
+ - [arm64] mm: Use non-global mappings for kernel space
+ - [arm64] mm: Temporarily disable ARM64_SW_TTBR0_PAN
+ - [arm64] mm: Move ASID from TTBR0 to TTBR1
+ - [arm64] mm: Remove pre_ttbr0_update_workaround for Falkor erratum #E1003
+ - [arm64] mm: Rename post_ttbr0_update_workaround
+ - [arm64] mm: Fix and re-enable ARM64_SW_TTBR0_PAN
+ - [arm64] mm: Allocate ASIDs in pairs
+ - [arm64] mm: Add arm64_kernel_unmapped_at_el0 helper
+ - [arm64] mm: Invalidate both kernel and user ASIDs when performing TLBI
+ - [arm64] entry: Add exception trampoline page for exceptions from EL0
+ - [arm64] mm: Map entry trampoline into trampoline and kernel page tables
+ - [arm64] entry: Explicitly pass exception level to kernel_ventry macro
+ - [arm64] entry: Hook up entry trampoline to exception vectors
+ - [arm64] erratum: Work around Falkor erratum #E1003 in trampoline code
+ - [arm64] cpu_errata: Add Kryo to Falkor 1003 errata
+ - [arm64] tls: Avoid unconditional zeroing of tpidrro_el0 for native tasks
+ - [arm64] entry: Add fake CPU feature for unmapping the kernel at EL0
+ - [arm64] kaslr: Put kernel vectors address in separate data page
+ - [arm64] use RET instruction for exiting the trampoline
+ - [arm64] Kconfig: Add CONFIG_UNMAP_KERNEL_AT_EL0
+ - [arm64] Kconfig: Reword UNMAP_KERNEL_AT_EL0 kconfig entry
+ - [arm64] Take into account ID_AA64PFR0_EL1.CSV3
+ - [arm64] capabilities: Handle duplicate entries for a capability
+ - [arm64] mm: Introduce TTBR_ASID_MASK for getting at the ASID in the TTBR
+ - [arm64] kpti: Fix the interaction between ASID switching and software PAN
+ - [arm64] cputype: Add MIDR values for Cavium ThunderX2 CPUs
+ - [arm64] Turn on KPTI only on CPUs that need it
+ - [arm64] kpti: Make use of nG dependent on arm64_kernel_unmapped_at_el0()
+ - [arm64] mm: Permit transitioning from Global to Non-Global without BBM
+ - [arm64] kpti: Add ->enable callback to remap swapper using nG mappings
+ - [arm64] Force KPTI to be disabled on Cavium ThunderX
+ - [arm64] entry: Reword comment about post_ttbr_update_workaround
+ - [arm64] idmap: Use "awx" flags for .idmap.text .pushsection directives
+ - [arm64] barrier: Add CSDB macros to control data-value prediction
+ - [arm64] Implement array_index_mask_nospec()
+ - [arm64] Make USER_DS an inclusive limit
+ - [arm64] Use pointer masking to limit uaccess speculation
+ - [arm64] entry: Ensure branch through syscall table is bounded under
+ speculation
+ - [arm64] uaccess: Prevent speculative use of the current addr_limit
+ - [arm64] uaccess: Don't bother eliding access_ok checks in __{get,
+ put}_user
+ - [arm64] uaccess: Mask __user pointers for __arch_{clear, copy_*}_user
+ - [arm64] futex: Mask __user pointers prior to dereference
+ - [arm64] cpufeature: __this_cpu_has_cap() shouldn't stop early
+ - [arm64] Run enable method for errata work arounds on late CPUs
+ - [arm64] cpufeature: Pass capability structure to ->enable callback
+ - drivers/firmware: Expose psci_get_version through psci_ops structure
+ - [arm64] Move post_ttbr_update_workaround to C code
+ - [arm64] Add skeleton to harden the branch predictor against aliasing
+ attacks
+ - [arm64] Move BP hardening to check_and_switch_context
+ - [arm64] KVM: Use per-CPU vector when BP hardening is enabled
+ - [arm64] entry: Apply BP hardening for high-priority synchronous
+ exceptions
+ - [arm64] entry: Apply BP hardening for suspicious interrupts from EL0
+ - [arm64] cputype: Add missing MIDR values for Cortex-A72 and Cortex-A75
+ - [arm64] Implement branch predictor hardening for affected Cortex-A CPUs
+ - [arm64] Implement branch predictor hardening for Falkor
+ - [arm64] Branch predictor hardening for Cavium ThunderX2
+ - [arm64] KVM: Increment PC after handling an SMC trap
+ - [armhf,arm64] KVM: Consolidate the PSCI include files
+ - [armhf,arm64] KVM: Add PSCI_VERSION helper
+ - [armhf,arm64] KVM: Add smccc accessors to PSCI code
+ - [armhf,arm64] KVM: Implement PSCI 1.0 support
+ - [armhf,arm64] KVM: Advertise SMCCC v1.1
+ - [arm64] KVM: Make PSCI_VERSION a fast path
+ - [armhf,arm64] KVM: Turn kvm_psci_version into a static inline
+ - [arm64] KVM: Report SMCCC_ARCH_WORKAROUND_1 BP hardening support
+ - [arm64] KVM: Add SMCCC_ARCH_WORKAROUND_1 fast handling
+ - firmware/psci: Expose PSCI conduit
+ - firmware/psci: Expose SMCCC version through psci_ops
+ - arm/arm64: smccc: Make function identifiers an unsigned quantity
+ - arm/arm64: smccc: Implement SMCCC v1.1 inline primitive
+ - [arm64] Add ARM_SMCCC_ARCH_WORKAROUND_1 BP hardening support
+ - [arm64] Kill PSCI_GET_VERSION as a variant-2 workaround
+ - mtd: cfi: convert inline functions to macros
+ - mtd: nand: brcmnand: Disable prefetch by default
+ - mtd: nand: Fix nand_do_read_oob() return value
+ - mtd: nand: sunxi: Fix ECC strength choice
+ - ubi: Fix race condition between ubi volume creation and udev
+ - ubi: fastmap: Erase outdated anchor PEBs during attach
+ - ubi: block: Fix locking for idr_alloc/idr_remove
+ - ubifs: free the encrypted symlink target
+ - nfs/pnfs: fix nfs_direct_req ref leak when i/o falls back to the mds
+ - nfs41: do not return ENOMEM on LAYOUTUNAVAILABLE
+ - NFS: Add a cond_resched() to nfs_commit_release_pages()
+ - NFS: Fix nfsstat breakage due to LOOKUPP
+ - NFS: commit direct writes even if they fail partially
+ - NFS: reject request for id_legacy key without auxdata
+ - NFS: Fix a race between mmap() and O_DIRECT
+ - nfsd: Detect unhashed stids in nfsd4_verify_open_stid()
+ - kernfs: fix regression in kernfs_fop_write caused by wrong type
+ - ahci: Annotate PCI ids for mobile Intel chipsets as such
+ - ahci: Add PCI ids for Intel Bay Trail, Cherry Trail and Apollo Lake AHCI
+ - ahci: Add Intel Cannon Lake PCH-H PCI ID
+ - crypto: hash - introduce crypto_hash_alg_has_setkey()
+ - crypto: cryptd - pass through absence of ->setkey()
+ - crypto: mcryptd - pass through absence of ->setkey()
+ - crypto: poly1305 - remove ->setkey() method
+ - crypto: hash - annotate algorithms taking optional key
+ - crypto: hash - prevent using keyed hashes without setting key
+ - media: v4l2-ioctl.c: use check_fmt for enum/g/s/try_fmt
+ - media: v4l2-ioctl.c: don't copy back the result for -ENOTTY
+ - media: v4l2-compat-ioctl32.c: add missing VIDIOC_PREPARE_BUF
+ - media: v4l2-compat-ioctl32.c: fix the indentation
+ - media: v4l2-compat-ioctl32.c: move 'helper' functions to __get/put_v4l2_format32
+ - media: v4l2-compat-ioctl32.c: avoid sizeof(type)
+ - media: v4l2-compat-ioctl32.c: copy m.userptr in put_v4l2_plane32
+ - media: v4l2-compat-ioctl32.c: fix ctrl_is_pointer
+ - media: v4l2-compat-ioctl32.c: copy clip list in put_v4l2_window32
+ - media: v4l2-compat-ioctl32.c: drop pr_info for unknown buffer type
+ - media: v4l2-compat-ioctl32.c: don't copy back the result for certain errors
+ - media: v4l2-compat-ioctl32.c: refactor compat ioctl32 logic
+ - media: v4l2-compat-ioctl32.c: make ctrl_is_pointer work for subdevs
+ - crypto: caam - fix endless loop when DECO acquire fails
+ - crypto: sha512-mb - initialize pending lengths correctly
+ - crypto: talitos - fix Kernel Oops on hashing an empty file
+ - [armhf,arm64 KVM: Fix SMCCC handling of unimplemented SMC/HVC calls
+ - [x86] KVM: nVMX: Fix races when sending nested PI while dest
+ enters/leaves L2
+ - [x86] KVM: nVMX: Fix bug of injecting L2 exception into L1
+ - [powerpc*] KVM: PPC: Book3S HV: Make sure we don't re-enter guest
+ without XIVE loaded
+ - [powerpc*] KVM: PPC: Book3S HV: Drop locks before reading guest memory
+ - [armhf,arm64] KVM: Handle CPU_PM_ENTER_FAILED
+ - [powerpc*] KVM: PPC: Book3S PR: Fix broken select due to misspelling
+ - watchdog: imx2_wdt: restore previous timeout after suspend+resume
+ - afs: Add missing afs_put_cell()
+ - afs: Need to clear responded flag in addr cursor
+ - afs: Fix missing cursor clearance
+ - afs: Fix server list handling
+ - btrfs: Handle btrfs_set_extent_delalloc failure in fixup worker
+ - Btrfs: raid56: iterate raid56 internal bio with bio_for_each_segment_all
+ - kasan: don't emit builtin calls when sanitization is off
+ - kasan: rework Kconfig settings
+ - media: dvb_frontend: be sure to init dvb_frontend_handle_ioctl() return
+ code
+ - media: dvb-frontends: fix i2c access helpers for KASAN
+ - media: dt-bindings/media/cec-gpio.txt: mention the CEC/HPD max voltages
+ - media: ts2020: avoid integer overflows on 32 bit machines
+ - media: vivid: fix module load error when enabling fb and no_error_inj=1
+ - media: cxusb, dib0700: ignore XC2028_I2C_FLUSH
+ - fs/proc/kcore.c: use probe_kernel_read() instead of memcpy()
+ - kernel/async.c: revert "async: simplify lowest_in_progress()"
+ - kernel/relay.c: revert "kernel/relay.c: fix potential memory leak"
+ - pipe: actually allow root to exceed the pipe buffer limits
+ - pipe: fix off-by-one error when checking buffer limits
+ - HID: quirks: Fix keyboard + touchpad on Toshiba Click Mini not working
+ - Bluetooth: btsdio: Do not bind to non-removable BCM43341
+ - Revert "Bluetooth: btusb: fix QCA Rome suspend/resume"
+ - Bluetooth: btusb: Restore QCA Rome suspend/resume fix with a "rewritten"
+ version
+ - ipmi: use dynamic memory for DMI driver override
+ - signal/openrisc: Fix do_unaligned_access to send the proper signal
+ - signal/sh: Ensure si_signo is initialized in do_divide_error
+ - alpha: fix crash if pthread_create races with signal delivery
+ - alpha: osf_sys.c: fix put_tv32 regression
+ - alpha: Fix mixed up args in EXC macro in futex operations
+ - alpha: fix reboot on Avanti platform
+ - alpha: fix formating of stack content
+ - xtensa: fix futex_atomic_cmpxchg_inatomic
+ - EDAC, octeon: Fix an uninitialized variable warning
+ - genirq: Make legacy autoprobing work again
+ - pinctrl: intel: Initialize GPIO properly when used through irqchip
+ - pinctrl: mcp23s08: fix irq setup order
+ - pinctrl: sx150x: Unregister the pinctrl on release
+ - pinctrl: sx150x: Register pinctrl before adding the gpiochip
+ - pinctrl: sx150x: Add a static gpio/pinctrl pin range mapping
+ - pktcdvd: Fix pkt_setup_dev() error path
+ - pktcdvd: Fix a recently introduced NULL pointer dereference
+ - blk-mq: quiesce queue before freeing queue
+ - clocksource/drivers/stm32: Fix kernel panic with multiple timers
+ - lib/ubsan.c: s/missaligned/misaligned/
+ - lib/ubsan: add type mismatch handler for new GCC/Clang
+ - objtool: Fix switch-table detection
+ - [arm64] dts: marvell: add Ethernet aliases
+ - drm/i915: Avoid PPS HW/SW state mismatch due to rounding
+ - ACPI: sbshc: remove raw pointer from printk() message (CVE-2018-5750)
+ - acpi, nfit: fix register dimm error handling
+ - ovl: force r/o mount when index dir creation fails
+ - ovl: fix failure to fsync lower dir
+ - ovl: take mnt_want_write() for work/index dir setup
+ - ovl: take mnt_want_write() for removing impure xattr
+ - ovl: hash directory inodes for fsnotify
+ - devpts: fix error handling in devpts_mntget()
+ - ftrace: Remove incorrect setting of glob search field
+ - scsi: core: Ensure that the SCSI error handler gets woken up
+ - scsi: lpfc: Fix crash after bad bar setup on driver attachment
+ - scsi: cxlflash: Reset command ioasc
+ - rcu: Export init_rcu_head() and destroy_rcu_head() to GPL modules
+
+ [ Bastian Blank ]
+ * Add cloud-amd64 kernel flavour.
+ - Support Microsoft Azure.
+ - Support Amazon EC2.
+ - Support Google Compute Engine.
+ * Enable NUMA_BALANCING_DEFAULT_ENABLED, enabled by all others.
+ * Enable INET_ESP_OFFLOAD, INET6_ESP_OFFLOAD, IPV6_SEG6_LWTUNNEL,
+ IPV6_SEG6_HMAC, NF_LOG_NETDEV, IP_SET_HASH_IPMAC, NET_ACT_SAMPLE,
+ IPVTAP, VIRTIO_MMIO, CRYPTO_RSA, CRYPTO_DH, CRYPTO_ECDH.
+ * x86: Enable SCHED_MC_PRIO, HYPERV_VSOCKETS.
+ * Enable NVME_MULTIPATH, NVME_FC, NVME_TARGET_FC, move nvme module into
+ scsi-modules installer udeb.
+ * Switch to SLUB as kernel allocator. (Closes: #862718)
+ - Enable SLUB_DEBUG, SLAB_FREELIST_HARDENED except on armel/marvell.
+ (Closes: #883069)
+ * Fix building of liblockdep.
+
+ [ Uwe Kleine-König ]
+ * [arm64] enable I2C_PXA for espressobin (Closes: #886983)
+
+ [ Ben Hutchings ]
+ * Enable CGROUP_BPF (except for armel) (Closes: #872560)
+ * usb: Enable USBIP_CORE, USBIP_VHCI_HCD, USBIP_HOST, USBIP_VUDC as
+ modules on all architectures (Closes: #888042)
+ * [x86] Rewrite "Make x32 syscall support conditional on a kernel parameter"
+ to use a static key
+
+ [ Salvatore Bonaccorso ]
+ * (Temporarily) disable armel kernel image build.
+ The armel/marvell kernel size is growing to large and the compressed
+ image is over the limit.
+ Given the armel architecture will most likely not be part of Buster,
+ disable the image build.
+ Cf. https://lists.debian.org/debian-kernel/2018/01/msg00278.html
+ * Set ABI to 1
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Sun, 18 Feb 2018 09:36:49 +0100
+
+linux (4.15~rc8-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+ - RDS: Heap OOB write in rds_message_alloc_sgs() (CVE-2018-5332)
+ - RDS: null pointer dereference in rds_atomic_free_op (CVE-2018-5333)
+ - loop: fix concurrent lo_open/lo_release (CVE-2018-5344)
+
+ [ Ben Hutchings ]
+ * [arm64] Update "add kernel config option to lock down when in Secure Boot
+ mode" for 4.15
+ * efi: Enable LOCK_DOWN_IN_EFI_SECURE_BOOT, replacing
+ EFI_SECURE_BOOT_LOCK_DOWN
+ * iio: Enable AD5446 as module, replacing TI_DAC7512
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 15 Jan 2018 04:43:14 +0000
+
+linux (4.15~rc5-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Riku Voipio ]
+ * [arm64] udeb: add multifunction devices
+ * [arm64] udeb: add mvebu comphy for armada 8K
+
+ [ Ben Hutchings ]
+ * aufs: Update support patchset to aufs4.x-rcN-20171218
+ * lockdown: Update patchset to 2017-11-10 version
+ * lockdown: Update calls to kernel_is_locked_down() in "mtd: Disable slram and
+ phram when locked down"
+ * cpupower: Move library to multiarch directory
+ * [rt] Disable until it is updated for 4.15 or later
+ * linux-kbuild: Add objtool
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 27 Dec 2017 02:48:14 +0000
+
+linux (4.14.17-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.14.14
+ - dm bufio: fix shrinker scans when (nr_to_scan < retain_target)
+ - can: gs_usb: fix return value of the "set_bittiming" callback
+ - IB/srpt: Disable RDMA access by the initiator
+ - IB/srpt: Fix ACL lookup during login
+ - [mips*] Validate PR_SET_FP_MODE prctl(2) requests against the ABI of the
+ task
+ - [mips*] Factor out NT_PRFPREG regset access helpers
+ - [mips*] Guard against any partial write attempt with PTRACE_SETREGSET
+ - [mips*] Consistently handle buffer counter with PTRACE_SETREGSET
+ - [mips*] Fix an FCSR access API regression with NT_PRFPREG and MSA
+ - [mips*] Also verify sizeof `elf_fpreg_t' with PTRACE_SETREGSET
+ - [mips*] Disallow outsized PTRACE_SETREGSET NT_PRFPREG regset accesses
+ - cgroup: fix css_task_iter crash on CSS_TASK_ITER_PROC (Closes: #888954)
+ - [x86] kvm: vmx: Scrub hardware GPRs at VM-exit (partial mitigation of
+ CVE-2017-5715, CVE-2017-5753)
+ - [x86] platform: wmi: Call acpi_wmi_init() later
+ - iw_cxgb4: only call the cq comp_handler when the cq is armed
+ - iw_cxgb4: atomically flush the qp
+ - iw_cxgb4: only clear the ARMED bit if a notification is needed
+ - iw_cxgb4: reflect the original WR opcode in drain cqes
+ - iw_cxgb4: when flushing, complete all wrs in a chain
+ - [x86] acpi: Handle SCI interrupts above legacy space gracefully
+ - ALSA: pcm: Remove incorrect snd_BUG_ON() usages
+ - ALSA: pcm: Workaround for weird PulseAudio behavior on rewind error
+ - ALSA: pcm: Add missing error checks in OSS emulation plugin builder
+ - ALSA: pcm: Abort properly at pending signal in OSS read/write loops
+ - ALSA: pcm: Allow aborting mutex lock at OSS read/write loops
+ - ALSA: aloop: Release cable upon open error path
+ - ALSA: aloop: Fix inconsistent format due to incomplete rule
+ - ALSA: aloop: Fix racy hw constraints adjustment
+ - [x86] acpi: Reduce code duplication in mp_override_legacy_irq()
+ - 8021q: fix a memory leak for VLAN 0 device
+ - ip6_tunnel: disable dst caching if tunnel is dual-stack
+ - net: core: fix module type in sock_diag_bind
+ - RDS: Heap OOB write in rds_message_alloc_sgs() (CVE-2018-5332)
+ - RDS: null pointer dereference in rds_atomic_free_op (CVE-2018-5333)
+ - net: fec: restore dev_id in the cases of probe error
+ - net: fec: defer probe if regulator is not ready
+ - net: fec: free/restore resource in related probe error pathes
+ - sctp: do not retransmit upon FragNeeded if PMTU discovery is disabled
+ - sctp: fix the handling of ICMP Frag Needed for too small MTUs
+ - [arm64, armhf] net: stmmac: enable EEE in MII, GMII or RGMII only
+ - ipv6: fix possible mem leaks in ipv6_make_skb()
+ - net/sched: Fix update of lastuse in act modules implementing
+ stats_update
+ - ipv6: sr: fix TLVs not being copied using setsockopt
+ - sfp: fix sfp-bus oops when removing socket/upstream
+ - membarrier: Disable preemption when calling smp_call_function_many()
+ - crypto: algapi - fix NULL dereference in crypto_remove_spawns()
+ - rbd: reacquire lock should update lock owner client id
+ - rbd: set max_segments to USHRT_MAX
+ - iwlwifi: pcie: fix DMA memory mapping / unmapping
+ - [x86] microcode/intel: Extend BDW late-loading with a revision check
+ - [x86] KVM: Add memory barrier on vmcs field lookup
+ - [powerpc*] KVM: Book3S PR: Fix WIMG handling under pHyp
+ - [powerpc*] KVM: Book3S HV: Drop prepare_done from struct kvm_resize_hpt
+ - [powerpc*] KVM: Book3S HV: Fix use after free in case of multiple resize
+ requests
+ - [powerpc*] KVM: Book3S HV: Always flush TLB in kvmppc_alloc_reset_hpt()
+ - [x86] drm/vmwgfx: Don't cache framebuffer maps
+ - [x86] drm/vmwgfx: Potential off by one in vmw_view_add()
+ - [x86] drm/i915/gvt: Clear the shadow page table entry after post-sync
+ - [x86] drm/i915: Whitelist SLICE_COMMON_ECO_CHICKEN1 on Geminilake.
+ - [x86] drm/i915: Move init_clock_gating() back to where it was
+ - [x86] drm/i915: Fix init_clock_gating for resume
+ - bpf: prevent out-of-bounds speculation (partial mitigation of
+ CVE-2017-5753)
+ - bpf, array: fix overflow in max_entries and undefined behavior in
+ index_mask
+ - bpf: arsh is not supported in 32 bit alu thus reject it
+ - [arm64, armhf] usb: misc: usb3503: make sure reset is low for at least
+ 100us
+ - USB: fix usbmon BUG trigger
+ - USB: UDC core: fix double-free in usb_add_gadget_udc_release
+ - usbip: remove kernel addresses from usb device and urb debug msgs
+ - usbip: fix vudc_rx: harden CMD_SUBMIT path to handle malicious input
+ - usbip: vudc_tx: fix v_send_ret_submit() vulnerability to null xfer
+ buffer
+ - staging: android: ashmem: fix a race condition in ASHMEM_SET_SIZE ioctl
+ (CVE-2017-13216)
+ - mux: core: fix double get_device()
+ - kdump: write correct address of mem_section into vmcoreinfo
+ - apparmor: fix ptrace label match when matching stacked labels
+ - [x86] pti: Unbreak EFI old_memmap
+ - [x86] Documentation: Add PTI description
+ - [x86] cpufeatures: Add X86_BUG_SPECTRE_V[12]
+ - sysfs/cpu: Add vulnerability folder
+ - [x86] cpu: Implement CPU vulnerabilites sysfs functions
+ - [x86] tboot: Unbreak tboot with PTI enabled
+ - [x86] mm/pti: Remove dead logic in pti_user_pagetable_walk*()
+ - [x86] cpu/AMD: Make LFENCE a serializing instruction
+ - [x86] cpu/AMD: Use LFENCE_RDTSC in preference to MFENCE_RDTSC
+ - [x86] alternatives: Fix optimize_nops() checking
+ - [x86] pti: Make unpoison of pgd for trusted boot work for real
+ - [x86] retpoline: Add initial retpoline support (partial mitigation of
+ CVE-2017-5715)
+ - [x86] spectre: Add boot time option to select Spectre v2 mitigation
+ - [x86] retpoline/crypto: Convert crypto assembler indirect jumps
+ - [x86] retpoline/entry: Convert entry assembler indirect jumps
+ - [x86] retpoline/ftrace: Convert ftrace assembler indirect jumps
+ - [x86] retpoline/hyperv: Convert assembler indirect jumps
+ - [x86] retpoline/xen: Convert Xen hypercall indirect jumps
+ - [x86] retpoline/checksum32: Convert assembler indirect jumps
+ - [x86] retpoline/irq32: Convert assembler indirect jumps
+ - [x86] retpoline: Fill return stack buffer on vmexit
+ - [x86] pti: Fix !PCID and sanitize defines
+ - [x86] perf: Disable intel_bts when PTI
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.14.15
+ - tools/objtool/Makefile: don't assume sync-check.sh is executable
+ - objtool: Fix seg fault with clang-compiled objects
+ - objtool: Fix Clang enum conversion warning
+ - objtool: Fix seg fault caused by missing parameter
+ - [powerpc*] pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper
+ - [powerpc*] 64: Add macros for annotating the destination of rfid/hrfid
+ - [powerpc*] 64s: Simple RFI macro conversions
+ - [powerpc*] 64: Convert the syscall exit path to use RFI_TO_USER/KERNEL
+ - [powerpc*] 64: Convert fast_exception_return to use RFI_TO_USER/KERNEL
+ - [powerpc*] 64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL
+ - [powerpc*] 64s: Add support for RFI flush of L1-D cache
+ - [powerpc*] 64s: Support disabling RFI flush with no_rfi_flush and nopti
+ - [powerpc*] pseries: Query hypervisor for RFI flush settings
+ - [powerpc*] powernv: Check device-tree for RFI flush settings
+ - futex: Avoid violating the 10th rule of futex
+ - futex: Prevent overflow by strengthen input validation (CVE-2018-6927)
+ - ALSA: seq: Make ioctls race-free (CVE-2018-1000004)
+ - ALSA: pcm: Remove yet superfluous WARN_ON()
+ - ALSA: hda - Apply headphone noise quirk for another Dell XPS 13 variant
+ - ALSA: hda - Apply the existing quirk to iMac 14,1
+ - IB/hfi1: Prevent a NULL dereference
+ - RDMA/mlx5: Fix out-of-bound access while querying AH
+ - timers: Unconditionally check deferrable base
+ - af_key: fix buffer overread in verify_address_len()
+ - af_key: fix buffer overread in parse_exthdrs()
+ - iser-target: Fix possible use-after-free in connection establishment
+ error
+ - delayacct: Account blkio completion on the correct task
+ - objtool: Fix seg fault with gold linker
+ - [armhf] mmc: sdhci-esdhc-imx: Fix i.MX53 eSDHCv3 clock
+ - [x86] kasan: Panic if there is not enough memory to boot
+ - [x86] retpoline: Fill RSB on context switch for affected CPUs
+ - [x86] retpoline: Add LFENCE to the retpoline/RSB filling RSB macros
+ - objtool: Improve error message for bad file argument
+ - [x86] cpufeature: Move processor tracing out of scattered features
+ - [x86] intel_rdt/cqm: Prevent use after free
+ - [x86] mm/pkeys: Fix fill_sig_info_pkey
+ - [x86] idt: Mark IDT tables __initconst
+ - [x86] tsc: Future-proof native_calibrate_tsc()
+ - [x86] tsc: Fix erroneous TSC rate on Skylake Xeon
+ - pipe: avoid round_pipe_size() nr_pages overflow on 32-bit
+ - [x86] apic/vector: Fix off by one in error path
+ - [x86] mm: Clean up register saving in the __enc_copy() assembly code
+ - [x86] mm: Use a struct to reduce parameters for SME PGD mapping
+ - [x86] mm: Centralize PMD flags in sme_encrypt_kernel()
+ - [x86] mm: Prepare sme_encrypt_kernel() for PAGE aligned encryption
+ - [armhf] OMAP3: hwmod_data: add missing module_offs for MMC3
+ - [x86] mm: Encrypt the initrd earlier for BSP microcode update
+ - Input: ALPS - fix multi-touch decoding on SS4 plus touchpads
+ - Input: synaptics-rmi4 - prevent UAF reported by KASAN
+ - [armhf] Input: twl6040-vibra - fix child-node lookup
+ - [armhf] Input: twl4030-vibra - fix sibling-node lookup
+ - tracing: Fix converting enum's from the map in trace_event_eval_update()
+ - phy: work around 'phys' references to usb-nop-xceiv devices
+ - [arm64] dts: marvell: armada-cp110: Fix clock resources for various node
+ - [armhf] sunxi_defconfig: Enable CMA
+ - [armel] dts: kirkwood: fix pin-muxing of MPP7 on OpenBlocks A7
+ - can: peak: fix potential bug in packet fragmentation
+ - can: af_can: can_rcv(): replace WARN_ONCE by pr_warn_once
+ - can: af_can: canfd_rcv(): replace WARN_ONCE by pr_warn_once
+ - i2c: core-smbus: prevent stack corruption on read I2C_BLOCK_DATA
+ - proc: fix coredump vs read /proc/*/stat race
+ - libata: apply MAX_SEC_1024 to all LITEON EP1 series devices
+ - workqueue: avoid hard lockups in show_workqueue_state()
+ - [x86] drm/vmwgfx: fix memory corruption with legacy/sou connectors
+ - dm btree: fix serious bug in btree_split_beneath()
+ - dm thin metadata: THIN_MAX_CONCURRENT_LOCKS should be 6
+ - dm integrity: don't store cipher request on the stack
+ - dm crypt: fix crash by adding missing check for auth key size
+ - dm crypt: wipe kernel key copy after IV initialization
+ - dm crypt: fix error return code in crypt_ctr()
+ - [x86] x86: Use __nostackprotect for sme_encrypt_kernel
+ - [alpha] PCI: Fix noname IRQ level detection
+ - [mips*] CM: Drop WARN_ON(vp != 0)
+ - [arm*] KVM: Check pagesize when allocating a hugepage at Stage 2
+ - [arm64] KVM: Fix SMCCC handling of unimplemented SMC/HVC calls
+ - [x86] mce: Make machine check speculation protected
+ - retpoline: Introduce start/end markers of indirect thunk
+ - [x86] kprobes: Blacklist indirect thunk functions for kprobes
+ - [x86] kprobes: Disable optimizing on the function jumps to indirect
+ thunk
+ - [x86] retpoline: Optimize inline assembler for vmexit_fill_RSB
+ - [x86] mm: Rework wbinvd, hlt operation in stop_this_cpu()
+ - mm, page_vma_mapped: Drop faulty pointer arithmetics in check_pte()
+ - [arm64, armhf] net: mvpp2: do not disable GMAC padding
+ - [mips]: AR7: ensure the port type's FCR value is used
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.14.16
+ - mm, page_alloc: fix potential false positive in __zone_watermark_ok
+ - xfrm: Fix a race in the xdst pcpu cache.
+ - Input: xpad - add support for PDP Xbox One controllers
+ - Input: trackpoint - force 3 buttons if 0 button is reported
+ - Input: trackpoint - only expose supported controls for Elan, ALPS and
+ NXP
+ - Btrfs: fix stale entries in readdir
+ - [s390x] KVM: add proper locking for CMMA migration bitmap
+ - [arm*] net: bpf: avoid 'bx' instruction on non-Thumb capable CPUs
+ - [arm*] net: bpf: fix tail call jumps
+ - [arm*] net: bpf: fix stack alignment
+ - [arm*] net: bpf: move stack documentation
+ - [arm*] net: bpf: correct stack layout documentation
+ - [arm*] net: bpf: fix register saving
+ - [arm*] net: bpf: fix LDX instructions
+ - [arm*] net: bpf: clarify tail_call index
+ - [arm64,armhf] drm/vc4: Fix NULL pointer dereference in
+ vc4_save_hang_state()
+ - net: Allow neigh contructor functions ability to modify the primary_key
+ - ipv4: Make neigh lookup keys for loopback/point-to-point devices be
+ INADDR_ANY
+ - dccp: don't restart ccid2_hc_tx_rto_expire() if sk in closed state
+ - ipv6: Fix getsockopt() for sockets with default IPV6_AUTOFLOWLABEL
+ - ipv6: fix udpv6 sendmsg crash caused by too small MTU
+ - ipv6: ip6_make_skb() needs to clear cork.base.dst
+ - lan78xx: Fix failure in USB Full Speed
+ - net: igmp: fix source address check for IGMPv3 reports
+ - net: qdisc_pkt_len_init() should be more robust
+ - net: tcp: close sock if net namespace is exiting
+ - net/tls: Fix inverted error codes to avoid endless loop
+ - net: vrf: Add support for sends to local broadcast address
+ - pppoe: take ->needed_headroom of lower device into account on xmit
+ - r8169: fix memory corruption on retrieval of hardware statistics.
+ - sctp: do not allow the v4 socket to bind a v4mapped v6 address
+ - sctp: return error if the asoc has been peeled off in
+ sctp_wait_for_sndbuf
+ - tipc: fix a memory leak in tipc_nl_node_get_link()
+ - {net,ib}/mlx5: Don't disable local loopback multicast traffic when
+ needed
+ - net/mlx5: Fix get vector affinity helper function
+ - ppp: unlock all_ppp_mutex before registering device
+ - be2net: restore properly promisc mode after queues reconfiguration
+ - ip6_gre: init dev->mtu and dev->hard_header_len correctly
+ - gso: validate gso_type in GSO handlers
+ - tun: fix a memory leak for tfile->tx_array
+ - flow_dissector: properly cap thoff field
+ - sctp: reinit stream if stream outcnt has been change by sinit in sendmsg
+ - netlink: extack needs to be reset each time through loop
+ - net/mlx5e: Fix fixpoint divide exception in mlx5e_am_stats_compare
+ - nfp: use the correct index for link speed table
+ - netlink: reset extack earlier in netlink_rcv_skb
+ - net/tls: Only attach to sockets in ESTABLISHED state
+ - tls: fix sw_ctx leak
+ - tls: return -EBUSY if crypto_info is already set
+ - tls: reset crypto_info when do_tls_setsockopt_tx fails
+ - net: ipv4: Make "ip route get" match iif lo rules again.
+ - vmxnet3: repair memory leak
+ - perf/x86/amd/power: Do not load AMD power module on !AMD platforms
+ - [x86] microcode/intel: Extend BDW late-loading further with LLC size
+ check
+ - [x86] microcode: Fix again accessing initrd after having been freed
+ - [x86] mm/64: Fix vmapped stack syncing on very-large-memory 4-level
+ systems
+ - hrtimer: Reset hrtimer cpu base proper on CPU hotplug
+ - bpf: introduce BPF_JIT_ALWAYS_ON config
+ - bpf: fix divides by zero
+ - bpf: fix 32-bit divide by zero
+ - bpf: reject stores into ctx via st and xadd
+ - [arm64] bpf: fix stack_depth tracking in combination with tail calls
+ - cpufreq: governor: Ensure sufficiently large sampling intervals
+ - nfsd: auth: Fix gid sorting when rootsquash enabled (CVE-2018-1000028)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.14.17
+ - futex: Fix OWNER_DEAD fixup
+ - loop: fix concurrent lo_open/lo_release (CVE-2018-5344)
+ - [x86] KVM: Fix CPUID function for word 6 (80000001_ECX)
+ - gpio: Fix kernel stack leak to userspace
+ - ALSA: hda - Reduce the suspend time consumption for ALC256
+ - crypto: ecdh - fix typo in KPP dependency of CRYPTO_ECDH
+ - [x86] crypto: aesni - handle zero length dst buffer
+ - [x86] crypto: aesni - fix typo in generic_gcmaes_decrypt
+ - crypto: gcm - add GCM IV size constant
+ - [x86] crypto: aesni - Use GCM IV size constant
+ - [x86] crypto: aesni - add wrapper for generic gcm(aes)
+ - [x86] crypto: aesni - Fix out-of-bounds access of the data buffer in
+ generic-gcm-aesni
+ - [x86] crypto: aesni - Fix out-of-bounds access of the AAD buffer in
+ generic-gcm-aesni
+ - [arm64] crypto: inside-secure - fix hash when length is a multiple of a
+ block
+ - [arm64] crypto: inside-secure - avoid unmapping DMA memory that was not
+ mapped
+ - crypto: sha3-generic - fixes for alignment and big endian operation
+ - crypto: af_alg - whitelist mask and type
+ - HID: wacom: EKR: ensure devres groups at higher indexes are released
+ - HID: wacom: Fix reporting of touch toggle (WACOM_HID_WD_MUTE_DEVICE)
+ events
+ - igb: Free IRQs when device is hotplugged
+ - ima/policy: fix parsing of fsuuid
+ - scsi: aacraid: Fix udev inquiry race condition
+ - scsi: aacraid: Fix hang in kdump
+ - VFS: Handle lazytime in do_mount()
+ - [arm64,armhf] drm/vc4: Account for interrupts in flight
+ - btrfs: Fix transaction abort during failure in btrfs_rm_dev_item
+ - Btrfs: bail out gracefully rather than BUG_ON
+ - cpupowerutils: bench - Fix cpu online check
+ - cpupower : Fix cpupower working when cpu0 is offline
+ - [x86] KVM: nVMX/nSVM: Don't intercept #UD when running L2
+ - [x86] KVM: emulator: Return to user-mode on L1 CPL=0 emulation failure
+ - [x86] KVM: Don't re-execute instruction when not passing CR2 value
+ - [x86] KVM: Fix operand/address-size during instruction decoding
+ - [x86] KVM: nVMX: Fix mmu context after VMLAUNCH/VMRESUME failure
+ - [x86] KVM: fix em_fxstor() sleeping while in atomic
+ - [x86] KVM: ioapic: Fix level-triggered EOI and IOAPIC reconfigure race
+ - [x86] KVM: ioapic: Clear Remote IRR when entry is switched to
+ edge-triggered
+ - [x86] KVM: ioapic: Preserve read-only values in the redirection table
+ - [x86] KVM: nVMX: Fix vmx_check_nested_events() return value in case an
+ event was reinjected to L2
+ - nvme-fabrics: introduce init command check for a queue that is not alive
+ - nvme-fc: check if queue is ready in queue_rq
+ - nvme-loop: check if queue is ready in queue_rq
+ - nvme-pci: disable APST on Samsung SSD 960 EVO + ASUS PRIME B350M-A
+ - nvme-pci: avoid hmb desc array idx out-of-bound when hmmaxd set.
+ - nvmet-fc: correct ref counting error when deferred rcv used
+ - [s390x] topology: fix compile error in file arch/s390/kernel/smp.c
+ - [s390x] zcrypt: Fix wrong comparison leading to strange load balancing
+ - ACPI / bus: Leave modalias empty for devices which are not present
+ - null_blk: fix dev->badblocks leak
+ - [s390x] fix alloc_pgste check in init_new_context again
+ - rxrpc: The mutex lock returned by rxrpc_accept_call() needs releasing
+ - rxrpc: Provide a different lockdep key for call->user_mutex for kernel
+ calls
+ - rxrpc: Fix service endpoint expiry
+ - bcache: check return value of register_shrinker
+ - drm/amdgpu: Fix SDMA load/unload sequence on HWS disabled mode
+ - [x86] drm/amdkfd: Fix SDMA ring buffer size calculation
+ - [x86] drm/amdkfd: Fix SDMA oversubsription handling
+ - uapi: fix linux/kfd_ioctl.h userspace compilation errors
+ - nvme-rdma: don't complete requests before a send work request has
+ completed
+ - openvswitch: fix the incorrect flow action alloc size
+ - [armhf] drm/rockchip: dw-mipi-dsi: fix possible un-balanced runtime PM
+ enable
+ - mac80211: use QoS NDP for AP probing
+ - mac80211: fix the update of path metric for RANN frame
+ - btrfs: fix deadlock when writing out space cache
+ - sctp: only allow the asoc reset when the asoc outq is empty
+ - sctp: avoid flushing unsent queue when doing asoc reset
+ - sctp: set sender next_tsn for the old result with ctsn_ack_point plus 1
+ - reiserfs: remove unneeded i_version bump
+ - [x86] KVM: Fix softlockup when get the current kvmclock
+ - [x86] KVM: VMX: Fix rflags cache during vCPU reset
+ - Btrfs: fix list_add corruption and soft lockups in fsync
+ - KVM: Let KVM_SET_SIGNAL_MASK work as advertised
+ - xfs: always free inline data before resetting inode fork during ifree
+ - xfs: log recovery should replay deferred ops in order
+ - xen-netfront: remove warning when unloading module
+ - nfsd: CLOSE SHOULD return the invalid special stateid for NFSv4.x (x>0)
+ - nfsd: Ensure we check stateid validity in the seqid operation checks
+ - grace: replace BUG_ON by WARN_ONCE in exit_net hook
+ - nfsd: check for use of the closed special stateid
+ - race of lockd inetaddr notifiers vs nlmsvc_rqst change
+ - lockd: fix "list_add double add" caused by legacy signal interface
+ - quota: propagate error from __dquot_initialize
+ - [arm64,armhf] net: mvpp2: fix the txq_init error path
+ - [arm64] net: phy: marvell10g: fix the PHY id mask
+ - bnxt_en: Fix an error handling path in 'bnxt_get_module_eeprom()'
+ - Btrfs: incremental send, fix wrong unlink path after renaming file
+ - nvme-pci: fix NULL pointer dereference in nvme_free_host_mem()
+ - xfs: fortify xfs_alloc_buftarg error handling
+ - drm/amdgpu: don't try to move pinned BOs
+ - quota: Check for register_shrinker() failure.
+ - SUNRPC: Allow connect to return EHOSTUNREACH
+ - kmemleak: add scheduling point to kmemleak_scan()
+ - [armhf] drm/omap: Fix error handling path in 'omap_dmm_probe()'
+ - [armhf] drm/omap: displays: panel-dpi: add backlight dependency
+ - xfs: ubsan fixes
+ - xfs: Properly retry failed dquot items in case of error during buffer
+ writeback
+ - perf/core: Fix memory leak triggered by perf --namespace
+ - scsi: aacraid: Prevent crash in case of free interrupt during scsi EH
+ path
+ - scsi: ufs: ufshcd: fix potential NULL pointer dereference in
+ ufshcd_config_vreg
+ - iwlwifi: mvm: fix the TX queue hang timeout for MONITOR vif type
+ - iwlwifi: fix access to prph when transport is stopped
+ - [arm*] dts: NSP: Disable AHCI controller for HR NSP boards
+ - [arm*] ARM: dts: NSP: Fix PPI interrupt types
+ - media: usbtv: add a new usbid
+ - [x86] xen: Support early interrupts in xen pv guests
+ - usb: gadget: don't dereference g until after it has been null checked
+ - staging: rtl8188eu: Fix incorrect response to SIOCGIWESSID
+ - [arm64,armhf] drm/vc4: Move IRQ enable to PM path
+ - [x86] KVM: emulate #UD while in guest mode
+ - [x86] staging: lustre: separate a connection destroy from free struct
+ kib_conn
+ - tty: fix data race between tty_init_dev and flush of buf
+ - USB: serial: pl2303: new device id for Chilitag
+ - USB: cdc-acm: Do not log urb submission errors on disconnect
+ - CDC-ACM: apply quirk for card reader
+ - USB: serial: io_edgeport: fix possible sleep-in-atomic
+ - usbip: prevent bind loops on devices attached to vhci_hcd
+ - usbip: list: don't list devices attached to vhci_hcd
+ - USB: serial: simple: add Motorola Tetra driver
+ - usb: f_fs: Prevent gadget unbind if it is already unbound
+ - usb: uas: unconditionally bring back host after reset
+ - usb/gadget: Fix "high bandwidth" check in usb_gadget_ep_match_desc()
+ - [x86] mei: me: allow runtime pm for platform with D0i3
+ - serial: 8250_of: fix return code when probe function fails to get reset
+ - serial: 8250_uniphier: fix error return code in uniphier_uart_probe()
+ - [armhf] serial: imx: Only wakeup via RTSDEN bit if the system has
+ RTS/CTS
+ - [armhf] spi: imx: do not access registers while clocks disabled
+ - iio: adc: stm32: fix scan of multiple channels with DMA
+ - iio: chemical: ccs811: Fix output of IIO_CONCENTRATION channels
+ - test_firmware: fix missing unlock on error in
+ config_num_requests_store()
+ - Input: synaptics-rmi4 - unmask F03 interrupts when port is opened
+ - Input: synaptics-rmi4 - do not delete interrupt memory too early
+ - [x86] efi: Clarify that reset attack mitigation needs appropriate
+ userspace
+
+ [ Salvatore Bonaccorso ]
+ * [rt] Update to 4.14.15-rt11
+ * [rt] Update to 4.14.15-rt13
+ * crypto: ecc - Fix NULL pointer deref. on no default_rng (Closes: #886556)
+ * mac80211: Avoid ABI change in 4.14.17
+ * rxrpc: Avoid ABI change in 4.14.17
+
+ [ Ben Hutchings ]
+ * bpf: Avoid ABI change in 4.14.14
+ * usbip: Reduce USBIP_VHCI_HC_PORTS to 15, the maximum allowed for SuperSpeed
+ hubs (Closes: #878866)
+ * [x86] Add versioned build-dependency on gcc-7 for retpoline support
+ * [x86] linux-compiler-gcc-7-x86: Add versioned dependency on gcc-7 for
+ retpoline support
+ * linux-compiler-gcc-7-{arm,s390,x86}: Remove specific (and wrong) compiler
+ version from description (Closes: #883363)
+ * [x86] linux-headers: Depend on updated linux-compiler-gcc-7-x86
+
+ [ Riku Voipio ]
+ * [arm64] build in reset drivers
+ * [arm64] enable COMMON_CLK_HI655X so wifi and bluetooth work on Hikey
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Wed, 14 Feb 2018 06:56:06 +0100
+
+linux (4.14.13-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.14.13
+ - [x86] mm: Set MODULES_END to 0xffffffffff000000
+ - [x86] mm: Map cpu_entry_area at the same place on 4/5 level
+ - [x86] kaslr: Fix the vaddr_end mess
+ - [x86] events/intel/ds: Use the proper cache flush method for mapping ds
+ buffers
+ - [x86] alternatives: Add missing '\n' at end of ALTERNATIVE inline asm
+ - [x86] pti: Rename BUG_CPU_INSECURE to BUG_CPU_MELTDOWN
+ - kernel/acct.c: fix the acct->needcheck check in check_free_space()
+ - mm/mprotect: add a cond_resched() inside change_pmd_range()
+ - mm/sparse.c: wrong allocation for mem_section
+ - userfaultfd: clear the vma->vm_userfaultfd_ctx if UFFD_EVENT_FORK fails
+ - btrfs: fix refcount_t usage when deleting btrfs_delayed_nodes
+ - efi/capsule-loader: Reinstate virtual capsule mapping
+ - [sparc*] crypto: n2 - cure use after free
+ - crypto: chacha20poly1305 - validate the digest size
+ - crypto: pcrypt - fix freeing pcrypt instances
+ - crypto: chelsio - select CRYPTO_GF128MUL
+ - [x86] drm/i915: Disable DC states around GMBUS on GLK
+ - [x86] drm/i915: Apply Display WA #1183 on skl, kbl, and cfl
+ - fscache: Fix the default for fscache_maybe_release_page()
+ - [x86] CPU: Avoid unnecessary IPIs in arch_freq_get_on_cpu()
+ - [x86] CPU: Always show current CPU frequency in /proc/cpuinfo
+ - kernel/signal.c: protect the traced SIGNAL_UNKILLABLE tasks from SIGKILL
+ - kernel/signal.c: protect the SIGNAL_UNKILLABLE tasks from
+ !sig_kernel_only() signals
+ - kernel/signal.c: remove the no longer needed SIGNAL_UNKILLABLE check in
+ complete_signal()
+ - [arm64] iommu/arm-smmu-v3: Don't free page table ops twice
+ - [arm64] iommu/arm-smmu-v3: Cope with duplicated Stream IDs
+ - [powerpc* ]mm: Fix SEGV on mapped region to return SEGV_ACCERR
+ - Input: elantech - add new icbody type 15
+ - [x86] microcode/AMD: Add support for fam17h microcode loading
+ - apparmor: fix regression in mount mediation when feature set is pinned
+ - [hppa/parisc] Fix alignment of pa_tlb_lock in assembly on 32-bit SMP
+ kernel
+ - [hppa/parisc] qemu idle sleep support
+ - mtd: nand: pxa3xx: Fix READOOB implementation
+ - [s390x] KVM: fix cmma migration for multiple memory slots
+ - [s390x] KVM: prevent buffer overrun on memory hotplug during migration
+
+ [ Salvatore Bonaccorso ]
+ * libsas: Disable asynchronous aborts for SATA devices
+ * drm/nouveau/disp/gf119: add missing drive vfunc ptr (Closes: #880660)
+
+ [ Riku Voipio ]
+ * [arm64] disable CONFIG_HW_RANDOM_OMAP until the IRQ storm bug is fixed
+
+ [ Ben Hutchings ]
+ * abiupdate.py: Add support for security mirrors
+ * Fix dependencies related to objtool (Closes: #886474):
+ - linux-headers: Add versioned dependency on linux-kbuild
+ - Revert "objtool: Fix CONFIG_STACK_VALIDATION=y warning for out-of-tree
+ modules"
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 14 Jan 2018 19:45:05 +0000
+
+linux (4.14.12-2) unstable; urgency=medium
+
+ [ Ben Hutchings ]
+ * linux-kbuild: Add objtool
+ * linux-headers: Add symlink to linux-kbuild tools directory for objtool
+
+ [ Salvatore Bonaccorso ]
+ * linux-headers: Add symlink to linux-kbuild tools directory for objtool in
+ architecture-specific headers package.
+ Thanks to Luca Boccassi (Closes: #886366)
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Sat, 06 Jan 2018 09:08:42 +0100
+
+linux (4.14.12-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.14.8
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.14.9
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.14.10
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.14.11
+ - x86/cpufeatures: Add X86_BUG_CPU_INSECURE
+ - x86/mm/pti: Disable global pages if PAGE_TABLE_ISOLATION=y
+ - x86/mm/pti: Prepare the x86/entry assembly code for entry/exit CR3
+ switching
+ - x86/mm/pti: Add infrastructure for page table isolation
+ - x86/pti: Add the pti= cmdline option and documentation
+ - x86/mm/pti: Add mapping helper functions
+ - x86/mm/pti: Allow NX poison to be set in p4d/pgd
+ - x86/mm/pti: Allocate a separate user PGD
+ - x86/mm/pti: Populate user PGD
+ - x86/mm/pti: Add functions to clone kernel PMDs
+ - x86/mm/pti: Force entry through trampoline when PTI active
+ - x86/mm/pti: Share cpu_entry_area with user space page tables
+ - x86/entry: Align entry text section to PMD boundary
+ - x86/mm/pti: Share entry text PMD
+ - x86/mm/pti: Map ESPFIX into user space
+ - x86/cpu_entry_area: Add debugstore entries to cpu_entry_area
+ - x86/events/intel/ds: Map debug buffers in cpu_entry_area
+ - x86/mm/64: Make a full PGD-entry size hole in the memory map
+ - x86/pti: Put the LDT in its own PGD if PTI is on
+ - x86/pti: Map the vsyscall page if needed
+ - x86/mm: Allow flushing for future ASID switches
+ - x86/mm: Abstract switching CR3
+ - x86/mm: Use/Fix PCID to optimize user/kernel switches
+ - x86/mm: Optimize RESTORE_CR3
+ - x86/mm: Use INVPCID for __native_flush_tlb_single()
+ - x86/mm: Clarify the whole ASID/kernel PCID/user PCID naming
+ - x86/dumpstack: Indicate in Oops whether PTI is configured and enabled
+ - x86/mm/pti: Add Kconfig
+ - net: Fix double free and memory corruption in get_net_ns_by_id()
+ (CVE-2017-15129)
+ * [amd64] Implement Kernel Page Table Isolation (KPTI, aka KAISER)
+ (CVE-2017-5754)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.14.12
+ - exec: Weaken dumpability for secureexec
+ - capabilities: fix buffer overread on very short xattr
+ - x86/cpu, x86/pti: Do not enable PTI on AMD processors
+ - x86/pti: Make sure the user/kernel PTEs match
+ - x86/dumpstack: Fix partial register dumps
+ - x86/dumpstack: Print registers for first stack frame
+ - x86/pti: Switch to kernel CR3 at early in entry_SYSCALL_compat()
+ - x86/process: Define cpu_tss_rw in same section as declaration
+
+ [ Ben Hutchings ]
+ * e1000e: Fix e1000_check_for_copper_link_ich8lan return value.
+ (Closes: #885348)
+
+ [ Vagrant Cascadian ]
+ * [arm64] Backport patch from linux-next to support SMP on tegra210
+ systems.
+
+ [ Salvatore Bonaccorso ]
+ * [rt] Update to 4.14.8-rt9
+ * Bump ABI to 3
+ * Revert "scsi: libsas: allow async aborts"
+ Fixes "Oops: NULL pointer dereference - RIP:
+ isci_task_abort_task+0x30/0x3e0 [isci]" (Closes: #882414)
+ * x86/tlb: Drop the _GPL from the cpu_tlbstate export
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Fri, 05 Jan 2018 21:20:26 +0100
+
+linux (4.14.7-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.14.3
+ - [s390x] fix transactional execution control register handling
+ - [s390x] noexec: execute kexec datamover without DAT
+ - [s390x] runtime instrumention: fix possible memory corruption
+ - [s390x] guarded storage: fix possible memory corruption
+ - [s390x] disassembler: add missing end marker for e7 table
+ - [s390x] disassembler: increase show_code buffer size
+ - ACPI / PM: Fix acpi_pm_notifier_lock vs flush_workqueue() deadlock
+ - ACPI / EC: Fix regression related to triggering source of EC event
+ handling
+ - cpufreq: schedutil: Reset cached_raw_freq when not in sync with next_freq
+ - serdev: fix registration of second slave
+ - sched: Make resched_cpu() unconditional
+ - lib/mpi: call cond_resched() from mpi_powm() loop
+ - [x86] boot: Fix boot failure when SMP MP-table is based at 0
+ - [x86] decoder: Add new TEST instruction pattern
+ - [amd64] entry: Fix entry_SYSCALL_64_after_hwframe() IRQ tracing
+ - [x86] perf: intel: Hide TSX events when RTM is not supported
+ - [arm64] Implement arch-specific pte_access_permitted()
+ - [armhf/armmp-lpae] 8722/1: mm: make STRICT_KERNEL_RWX effective for LPAE
+ - [armhf/armmp-lpae] 8721/1: mm: dump: check hardware RO bit for LPAE
+ - uapi: fix linux/tls.h userspace compilation error
+ - uapi: fix linux/rxrpc.h userspace compilation errors
+ - [mips*/4kc-malta] cmpxchg64() and HAVE_VIRT_CPU_ACCOUNTING_GEN don't work
+ for 32-bit SMP
+ - [armhf,arm64] net: mvneta: fix handling of the Tx descriptor counter
+ - nbd: wait uninterruptible for the dead timeout
+ - nbd: don't start req until after the dead connection logic
+ - PM / OPP: Add missing of_node_put(np)
+ - PCI/ASPM: Account for downstream device's Port Common_Mode_Restore_Time
+ - PCI/ASPM: Use correct capability pointer to program LTR_L1.2_THRESHOLD
+ - [x86] PCI: hv: Use effective affinity mask
+ - [arm64] PCI: Set Cavium ACS capability quirk flags to assert RR/CR/SV/UF
+ - [arm64] PCI: Apply Cavium ThunderX ACS quirk to more Root Ports
+ - dm integrity: allow unaligned bv_offset
+ - dm cache: fix race condition in the writeback mode overwrite_bio
+ optimisation
+ - dm crypt: allow unaligned bv_offset
+ - dm zoned: ignore last smaller runt zone
+ - dm mpath: remove annoying message of 'blk_get_request() returned -11'
+ - dm bufio: fix integer overflow when limiting maximum cache size
+ - ovl: Put upperdentry if ovl_check_origin() fails
+ - dm: allocate struct mapped_device with kvzalloc
+ - sched/rt: Simplify the IPI based RT balancing logic
+ - dm: fix race between dm_get_from_kobject() and __dm_destroy()
+ - dm: discard support requires all targets in a table support discards
+ - [mips*] Fix odd fp register warnings with MIPS64r2
+ - [mips*/4kc-malta] Fix MIPS64 FP save/restore on 32-bit kernels
+ - [mips*] dts: remove bogus bcm96358nb4ser.dtb from dtb-y entry
+ - [mips*] Fix an n32 core file generation regset support regression
+ - [mips*] math-emu: Fix final emulation phase for certain instructions
+ - rt2x00usb: mark device removed when get ENOENT usb error
+ - mm/z3fold.c: use kref to prevent page free/compact race
+ - autofs: don't fail mount for transient error
+ - nilfs2: fix race condition that causes file system corruption
+ - fscrypt: lock mutex before checking for bounce page pool
+ - eCryptfs: use after free in ecryptfs_release_messaging()
+ - libceph: don't WARN() if user tries to add invalid key
+ - bcache: check ca->alloc_thread initialized before wake up it
+ - fs: guard_bio_eod() needs to consider partitions
+ - fanotify: fix fsnotify_prepare_user_wait() failure
+ - isofs: fix timestamps beyond 2027
+ - btrfs: change how we decide to commit transactions during flushing
+ - f2fs: expose some sectors to user in inline data or dentry case
+ - NFS: Fix typo in nomigration mount option
+ - NFS: Revert "NFS: Move the flock open mode check into nfs_flock()"
+ - nfs: Fix ugly referral attributes
+ - NFS: Avoid RCU usage in tracepoints
+ - NFS: revalidate "." etc correctly on "open".
+ - nfsd: deal with revoked delegations appropriately
+ - rtlwifi: rtl8192ee: Fix memory leak when loading firmware
+ - rtlwifi: fix uninitialized rtlhal->last_suspend_sec time
+ - iwlwifi: fix firmware names for 9000 and A000 series hw
+ - md: fix deadlock error in recent patch.
+ - md: don't check MD_SB_CHANGE_CLEAN in md_allow_write
+ - Bluetooth: btqcomsmd: Add support for BD address setup
+ - md/bitmap: revert a patch
+ - fsnotify: clean up fsnotify_prepare/finish_user_wait()
+ - fsnotify: pin both inode and vfsmount mark
+ - fsnotify: fix pinning group in fsnotify_prepare_user_wait()
+ - ata: fixes kernel crash while tracing ata_eh_link_autopsy event
+ - ext4: fix interaction between i_size, fallocate, and delalloc after a
+ crash
+ - ext4: prevent data corruption with inline data + DAX
+ - ext4: prevent data corruption with journaling + DAX
+ - ALSA: pcm: update tstamp only if audio_tstamp changed
+ - ALSA: usb-audio: Add sanity checks to FE parser
+ - ALSA: usb-audio: Fix potential out-of-bound access at parsing SU
+ - ALSA: usb-audio: Add sanity checks in v2 clock parsers
+ - ALSA: timer: Remove kernel warning at compat ioctl error paths
+ - ALSA: hda/realtek - Fix ALC275 no sound issue
+ - ALSA: hda: Fix too short HDMI/DP chmap reporting
+ - ALSA: hda - Fix yet remaining issue with vmaster 0dB initialization
+ - ALSA: hda/realtek - Fix ALC700 family no sound issue
+ - [x86] mfd: lpc_ich: Avoton/Rangeley uses SPI_BYT method
+ - fix a page leak in vhost_scsi_iov_to_sgl() error recovery
+ - 9p: Fix missing commas in mount options
+ - fs/9p: Compare qid.path in v9fs_test_inode
+ - net/9p: Switch to wait_event_killable()
+ - scsi: qla2xxx: Suppress a kernel complaint in qla_init_base_qpair()
+ - scsi: sd_zbc: Fix sd_zbc_read_zoned_characteristics()
+ - scsi: lpfc: fix pci hot plug crash in timer management routines
+ - scsi: lpfc: fix pci hot plug crash in list_add call
+ - scsi: lpfc: Fix crash receiving ELS while detaching driver
+ - scsi: lpfc: Fix FCP hba_wqidx assignment
+ - scsi: lpfc: Fix oops if nvmet_fc_register_targetport fails
+ - iscsi-target: Make TASK_REASSIGN use proper se_cmd->cmd_kref
+ - iscsi-target: Fix non-immediate TMR reference leak
+ - target: fix null pointer regression in core_tmr_drain_tmr_list
+ - target: fix buffer offset in core_scsi3_pri_read_full_status
+ - target: Fix QUEUE_FULL + SCSI task attribute handling
+ - target: Fix caw_sem leak in transport_generic_request_failure
+ - target: Fix quiese during transport_write_pending_qf endless loop
+ - target: Avoid early CMD_T_PRE_EXECUTE failures during ABORT_TASK
+ - mtd: Avoid probe failures when mtd->dbg.dfs_dir is invalid
+ - mtd: nand: atmel: Actually use the PM ops
+ - mtd: nand: omap2: Fix subpage write
+ - mtd: nand: Fix writing mtdoops to nand flash.
+ - mtd: nand: mtk: fix infinite ECC decode IRQ issue
+ - p54: don't unregister leds when they are not initialized
+ - block: Fix a race between blk_cleanup_queue() and timeout handling
+ - raid1: prevent freeze_array/wait_all_barriers deadlock
+ - genirq: Track whether the trigger type has been set
+ - [armhf,arm64] irqchip/gic-v3: Fix ppi-partitions lookup
+ - lockd: double unregister of inetaddr notifiers
+ - [powerpc*] KVM: Book3S HV: Don't call real-mode XICS hypercall handlers
+ if not enabled
+ - [x86] KVM: nVMX: set IDTR and GDTR limits when loading L1 host state
+ - [x86] KVM: SVM: obey guest PAT
+ - [x86] kvm: vmx: Reinstate support for CPUs without virtual NMI
+ (Closes: #884482)
+ - dax: fix PMD faults on zero-length files
+ - dax: fix general protection fault in dax_alloc_inode
+ - SUNRPC: Fix tracepoint storage issues with svc_recv and svc_rqst_status
+ - [armhf] clk: ti: dra7-atl-clock: fix child-node lookups
+ - libnvdimm, dimm: clear 'locked' status on successful DIMM enable
+ - libnvdimm, pfn: make 'resource' attribute only readable by root
+ - libnvdimm, namespace: fix label initialization to use valid seq numbers
+ - libnvdimm, region : make 'resource' attribute only readable by root
+ - libnvdimm, namespace: make 'resource' attribute only readable by root
+ - svcrdma: Preserve CB send buffer across retransmits
+ - IB/srpt: Do not accept invalid initiator port names
+ - IB/cm: Fix memory corruption in handling CM request
+ - IB/hfi1: Fix incorrect available receive user context count
+ - IB/srp: Avoid that a cable pull can trigger a kernel crash
+ - IB/core: Avoid crash on pkey enforcement failed in received MADs
+ - IB/core: Only maintain real QPs in the security lists
+ - NFC: fix device-allocation error return
+ - spi-nor: intel-spi: Fix broken software sequencing codes
+ - fm10k,i40e,i40evf,igb,igbvf,ixgbe,ixgbevf: Use smp_rmb rather than
+ read_barrier_depends
+ - [hppa] Fix validity check of pointer size argument in new CAS
+ implementation
+ - [powerpc*] Fix boot on BOOK3S_32 with CONFIG_STRICT_KERNEL_RWX
+ - [powerpc*] mm/radix: Fix crashes on Power9 DD1 with radix MMU and
+ STRICT_RWX
+ - [powerpc*] perf/imc: Use cpu_to_node() not topology_physical_package_id()
+ - [powerpc*] signal: Properly handle return value from uprobe_deny_signal()
+ - [powerpc*] 64s: Fix masking of SRR1 bits on instruction fault
+ - [powerpc*] 64s/radix: Fix 128TB-512TB virtual address boundary case
+ allocation
+ - [powerpc*] 64s/hash: Fix 512T hint detection to use >= 128T
+ - [powerpc*] 64s/hash: Fix 128TB-512TB virtual address boundary case
+ allocation
+ - [powerpc*] 64s/hash: Fix fork() with 512TB process address space
+ - [powerpc*] 64s/hash: Allow MAP_FIXED allocations to cross 128TB boundary
+ - media: Don't do DMA on stack for firmware upload in the AS102 driver
+ - media: rc: check for integer overflow
+ - media: rc: nec decoder should not send both repeat and keycode
+ - media: v4l2-ctrl: Fix flags field on Control events
+ - [arm64] media: venus: fix wrong size on dma_free
+ - [arm64] media: venus: venc: fix bytesused v4l2_plane field
+ - [arm64] media: venus: reimplement decoder stop command
+ - [arm64] dts: meson-gxl: Add alternate ARM Trusted Firmware reserved
+ memory zone
+ - iwlwifi: fix wrong struct for a000 device
+ - iwlwifi: fix PCI IDs and configuration mapping for 9000 series
+ - iwlwifi: mvm: support version 7 of the SCAN_REQ_UMAC FW command
+ - e1000e: Fix error path in link detection
+ - e1000e: Fix return value test
+ - e1000e: Separate signaling for link check/link up
+ - e1000e: Avoid receiver overrun interrupt bursts
+ - e1000e: fix buffer overrun while the I219 is processing DMA transactions
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.14.4
+ - [x86]: platform: hp-wmi: Fix tablet mode detection for convertibles
+ - mm, memory_hotplug: do not back off draining pcp free pages from kworker
+ context
+ - mm, oom_reaper: gather each vma to prevent leaking TLB entry
+ - [armhf,arm64] mm/cma: fix alloc_contig_range ret code/potential leak
+ - mm: fix device-dax pud write-faults triggered by get_user_pages()
+ - mm, hugetlbfs: introduce ->split() to vm_operations_struct
+ - device-dax: implement ->split() to catch invalid munmap attempts
+ - mm: introduce get_user_pages_longterm
+ - mm: fail get_vaddr_frames() for filesystem-dax mappings
+ - v4l2: disable filesystem-dax mapping support
+ - IB/core: disable memory registration of filesystem-dax vmas
+ - exec: avoid RLIMIT_STACK races with prlimit()
+ - mm/madvise.c: fix madvise() infinite loop under special circumstances
+ - mm: migrate: fix an incorrect call of prep_transhuge_page()
+ - mm, memcg: fix mem_cgroup_swapout() for THPs
+ - fs/fat/inode.c: fix sb_rdonly() change
+ - autofs: revert "autofs: take more care to not update last_used on path
+ walk"
+ - autofs: revert "autofs: fix AT_NO_AUTOMOUNT not being honored"
+ - mm/hugetlb: fix NULL-pointer dereference on 5-level paging machine
+ - btrfs: clear space cache inode generation always
+ - nfsd: Fix stateid races between OPEN and CLOSE
+ - nfsd: Fix another OPEN stateid race
+ - nfsd: fix panic in posix_unblock_lock called from nfs4_laundromat
+ - crypto: algif_aead - skip SGL entries with NULL page
+ - crypto: af_alg - remove locking in async callback
+ - crypto: skcipher - Fix skcipher_walk_aead_common
+ - lockd: lost rollback of set_grace_period() in lockd_down_net()
+ - [s390x] revert ELF_ET_DYN_BASE base changes
+ - [armhf] drm: omapdrm: Fix DPI on platforms using the DSI VDDS
+ - [armhf] omapdrm: hdmi4: Correct the SoC revision matching
+ - [arm64] module-plts: factor out PLT generation code for ftrace
+ - [arm64] ftrace: emit ftrace-mod.o contents through code
+ - [powerpc*] powernv: Fix kexec crashes caused by tlbie tracing
+ - [powerpc*] kexec: Fix kexec/kdump in P9 guest kernels
+ - [x86] KVM: pvclock: Handle first-time write to pvclock-page contains
+ random junk
+ - [x86] KVM: Exit to user-mode on #UD intercept when emulator requires
+ - [x86] KVM: inject exceptions produced by x86_decode_insn
+ - [x86] KVM: lapic: Split out x2apic ldr calculation
+ - [x86] KVM: lapic: Fixup LDR on load in x2apic
+ - mmc: sdhci: Avoid swiotlb buffer being full
+ - mmc: block: Fix missing blk_put_request()
+ - mmc: block: Check return value of blk_get_request()
+ - mmc: core: Do not leave the block driver in a suspended state
+ - mmc: block: Ensure that debugfs files are removed
+ - mmc: core: prepend 0x to pre_eol_info entry in sysfs
+ - mmc: core: prepend 0x to OCR entry in sysfs
+ - ACPI / EC: Fix regression related to PM ops support in ECDT device
+ - eeprom: at24: fix reading from 24MAC402/24MAC602
+ - eeprom: at24: correctly set the size for at24mac402
+ - eeprom: at24: check at24_read/write arguments
+ - [alpha,x86] i2c: i801: Fix Failed to allocate irq -2147483648 error
+ - bcache: Fix building error on MIPS
+ - bcache: only permit to recovery read error when cache device is clean
+ - bcache: recover data from backing when data is clean
+ - hwmon: (jc42) optionally try to disable the SMBUS timeout
+ - nvme-pci: add quirk for delay before CHK RDY for WDC SN200
+ - Revert "drm/radeon: dont switch vt on suspend"
+ - drm/amdgpu: potential uninitialized variable in amdgpu_vce_ring_parse_cs()
+ - drm/amdgpu: Potential uninitialized variable in
+ amdgpu_vm_update_directories()
+ - drm/amdgpu: correct reference clock value on vega10
+ - drm/amdgpu: fix error handling in amdgpu_bo_do_create
+ - drm/amdgpu: Properly allocate VM invalidate eng v2
+ - drm/amdgpu: Remove check which is not valid for certain VBIOS
+ - drm/ttm: fix ttm_bo_cleanup_refs_or_queue once more
+ - dma-buf: make reservation_object_copy_fences rcu save
+ - drm/amdgpu: reserve root PD while releasing it
+ - drm/ttm: Always and only destroy bo->ttm_resv in ttm_bo_release_list
+ - drm/vblank: Fix flip event vblank count
+ - drm/vblank: Tune drm_crtc_accurate_vblank_count() WARN down to a debug
+ - drm/tilcdc: Precalculate total frametime in tilcdc_crtc_set_mode()
+ - drm/radeon: fix atombios on big endian
+ - drm/panel: simple: Add missing panel_simple_unprepare() calls
+ - [arm64] drm/hisilicon: Ensure LDI regs are properly configured.
+ - drm/ttm: once more fix ttm_buffer_object_transfer
+ - drm/amd/pp: fix typecast error in powerplay.
+ - drm/fb_helper: Disable all crtc's when initial setup fails.
+ - drm/edid: Don't send non-zero YQ in AVI infoframe for HDMI 1.x sinks
+ - drm/amdgpu: move UVD/VCE and VCN structure out from union
+ - drm/amdgpu: Set adev->vcn.irq.num_types for VCN
+ - IB/core: Do not warn on lid conversions for OPA
+ - IB/hfi1: Do not warn on lid conversions for OPA
+ - e1000e: fix the use of magic numbers for buffer overrun issue
+ - md: forbid a RAID5 from having both a bitmap and a journal.
+ - [x86] drm/i915: Fix false-positive assert_rpm_wakelock_held in
+ i915_pmic_bus_access_notifier v2
+ - [x86] drm/i915: Re-register PMIC bus access notifier on runtime resume
+ - [x86] drm/i915/fbdev: Serialise early hotplug events with async fbdev
+ config
+ - [x86] drm/i915/gvt: Correct ADDR_4K/2M/1G_MASK definition
+ - [x86] drm/i915: Don't try indexed reads to alternate slave addresses
+ - [x86] drm/i915: Prevent zero length "index" write
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.14.5
+ - drm/amdgpu: Use unsigned ring indices in amdgpu_queue_mgr_map
+ - [s390x] runtime instrumentation: simplify task exit handling
+ - usbip: fix usbip attach to find a port that matches the requested speed
+ - usbip: Fix USB device hang due to wrong enabling of scatter-gather
+ - uas: Always apply US_FL_NO_ATA_1X quirk to Seagate devices
+ - usb: quirks: Add no-lpm quirk for KY-688 USB 3.1 Type-C Hub
+ - serial: 8250_early: Only set divisor if valid clk & baud
+ - [mips*] Add custom serial.h with BASE_BAUD override for generic kernel
+ - ima: fix hash algorithm initialization
+ - [s390x] vfio-ccw: Do not attempt to free no-op, test and tic cda.
+ - PM / Domains: Fix genpd to deal with drivers returning 1 from ->prepare()
+ - [s390x] pci: do not require AIS facility
+ - serial: 8250_fintek: Fix rs485 disablement on invalid ioctl()
+ - staging: rtl8188eu: avoid a null dereference on pmlmepriv
+ - [arm64] mmc: sdhci-msm: fix issue with power irq
+ - hwmon: (pmbus/core) Prevent unintentional setting of page to 0xFF
+ - perf/core: Fix __perf_read_group_add() locking
+ - [armhf] PCI: dra7xx: Create functional dependency between PCIe and PHY
+ - [x86] intel_rdt: Initialize bitmask of shareable resource if CDP enabled
+ - [x86] intel_rdt: Fix potential deadlock during resctrl mount
+ - serial: 8250: Preserve DLD[7:4] for PORT_XR17V35X
+ - kprobes: Use synchronize_rcu_tasks() for optprobe with CONFIG_PREEMPT=y
+ - [x86] entry: Use SYSCALL_DEFINE() macros for sys_modify_ldt()
+ - [armhf,arm64] clocksource/drivers/arm_arch_timer: Validate CNTFRQ after
+ enabling frame
+ - [x86] EDAC, sb_edac: Fix missing break in switch
+ - [arm64] cpuidle: Correct driver unregistration if init fails
+ - usb: xhci: Return error when host is dead in xhci_disable_slot()
+ - [armel,armhf] sysrq : fix Show Regs call trace on ARM
+ - [sh4] serial: sh-sci: suppress warning for ports without dma channels
+ - [armhf] serial: imx: Update cached mctrl value when changing RTS
+ - [x86] kprobes: Disable preemption in ftrace-based jprobes
+ - [x86] locking/refcounts, asm: Use unique .text section for refcount
+ exceptions
+ - [s390x] ptrace: fix guarded storage regset handling
+ - perf tools: Fix leaking rec_argv in error cases
+ - mm, x86/mm: Fix performance regression in get_user_pages_fast()
+ - iio: adc: ti-ads1015: add 10% to conversion wait time
+ - iio: multiplexer: add NULL check on devm_kzalloc() and devm_kmemdup()
+ return values
+ - [x86] locking/refcounts, asm: Enable CONFIG_ARCH_HAS_REFCOUNT
+ - [powerpc*] jprobes: Disable preemption when triggered through ftrace
+ - [powerpc*] kprobes: Disable preemption before invoking probe handler for
+ optprobes
+ - usb: hub: Cycle HUB power when initialization fails
+ - [armhf,arm64] USB: ulpi: fix bus-node lookup
+ - xhci: Don't show incorrect WARN message about events for empty rings
+ - usb: xhci: fix panic in xhci_free_virt_devices_depth_first
+ - USB: core: Add type-specific length check of BOS descriptors
+ - USB: usbfs: Filter flags passed in from user space
+ - usb: host: fix incorrect updating of offset
+ - locking/refcounts: Do not force refcount_t usage as GPL-only export
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.14.6
+ - usb: gadget: core: Fix ->udc_set_speed() speed handling
+ - serdev: ttyport: add missing receive_buf sanity checks
+ - serdev: ttyport: fix NULL-deref on hangup
+ - serdev: ttyport: fix tty locking in close
+ - usb: f_fs: Force Reserved1=1 in OS_DESC_EXT_COMPAT
+ - can: peak/pci: fix potential bug when probe() fails
+ - can: kvaser_usb: free buf in error paths
+ - can: kvaser_usb: Fix comparison bug in kvaser_usb_read_bulk_callback()
+ - can: kvaser_usb: ratelimit errors if incomplete messages are received
+ - can: kvaser_usb: cancel urb on -EPIPE and -EPROTO
+ - can: ems_usb: cancel urb on -EPIPE and -EPROTO
+ - can: esd_usb2: cancel urb on -EPIPE and -EPROTO
+ - can: usb_8dev: cancel urb on -EPIPE and -EPROTO
+ - can: peak/pcie_fd: fix potential bug in restarting tx queue
+ - virtio: release virtio index when fail to device_register
+ - [arm64] pinctrl: armada-37xx: Fix direction_output() callback behavior
+ - [x86] Drivers: hv: vmbus: Fix a rescind issue
+ - [x86] hv: kvp: Avoid reading past allocated blocks from KVP file
+ - firmware: vpd: Destroy vpd sections in remove function
+ - firmware: vpd: Tie firmware kobject to device lifetime
+ - firmware: vpd: Fix platform driver and device registration/unregistration
+ - scsi: dma-mapping: always provide dma_get_cache_alignment
+ - scsi: use dma_get_cache_alignment() as minimum DMA alignment
+ - scsi: libsas: align sata_device's rps_resp on a cacheline
+ - efi: Move some sysfs files to be read-only by root
+ - efi/esrt: Use memunmap() instead of kfree() to free the remapping
+ - ASN.1: fix out-of-bounds read when parsing indefinite length item
+ - ASN.1: check for error from ASN1_OP_END__ACT actions
+ - KEYS: add missing permission check for request_key() destination
+ (CVE-2017-17807)
+ - KEYS: reject NULL restriction string when type is specified
+ - X.509: reject invalid BIT STRING for subjectPublicKey
+ - X.509: fix comparisons of ->pkey_algo
+ - [x86] idt: Load idt early in start_secondary
+ - [x86] PCI: Make broadcom_postcore_init() check acpi_disabled
+ - [x86] KVM: fix APIC page invalidation
+ - btrfs: fix missing error return in btrfs_drop_snapshot
+ - btrfs: handle errors while updating refcounts in update_ref_for_cow
+ - ALSA: pcm: prevent UAF in snd_pcm_info
+ - ALSA: seq: Remove spurious WARN_ON() at timer check
+ - ALSA: usb-audio: Fix out-of-bound error
+ - ALSA: usb-audio: Add check return value for usb_string()
+ - [x86] iommu/vt-d: Fix scatterlist offset handling
+ - smp/hotplug: Move step CPUHP_AP_SMPCFD_DYING to the correct place
+ - [s390x] always save and restore all registers on context switch
+ - [s390x] mm: fix off-by-one bug in 5-level page table handling
+ - [s390x] fix compat system call table
+ - [s390x] KVM: Fix skey emulation permission check
+ - [powerpc*] Revert "powerpc: Do not call ppc_md.panic in fadump panic
+ notifier"
+ - [powerpc*] 64s: Initialize ISAv3 MMU registers before setting partition
+ table
+ - iwlwifi: mvm: mark MIC stripped MPDUs
+ - iwlwifi: mvm: don't use transmit queue hang detection when it is not
+ possible
+ - iwlwifi: mvm: flush queue before deleting ROC
+ - iwlwifi: mvm: fix packet injection
+ - iwlwifi: mvm: enable RX offloading with TKIP and WEP
+ - brcmfmac: change driver unbind order of the sdio function devices
+ - md/r5cache: move mddev_lock() out of r5c_journal_mode_set()
+ - [armhf] drm/bridge: analogix dp: Fix runtime PM state in get_modes()
+ callback
+ - [armhf] drm/exynos: gem: Drop NONCONTIG flag for buffers allocated
+ without IOMMU
+ - [x86] drm/i915: Fix vblank timestamp/frame counter jumps on gen2
+ - media: dvb: i2c transfers over usb cannot be done from stack
+ - media: rc: sir_ir: detect presence of port
+ - media: rc: partial revert of "media: rc: per-protocol repeat period"
+ - [arm64] KVM: fix VTTBR_BADDR_MASK BUG_ON off-by-one
+ - [armhf] KVM: Fix VTTBR_BADDR_MASK BUG_ON off-by-one
+ - [x86] KVM: VMX: remove I/O port 0x80 bypass on Intel hosts
+ (CVE-2017-1000407)
+ - [armhf,arm64] KVM: Fix broken GICH_ELRSR big endian conversion
+ - [armhf,arm64] KVM: vgic-irqfd: Fix MSI entry allocation
+ - [armhf,arm64] KVM: vgic: Preserve the revious read from the pending table
+ - [armhf,arm64] KVM: vgic-its: Check result of allocation before use
+ - [arm64] fpsimd: Prevent registers leaking from dead tasks
+ - [arm64] SW PAN: Point saved ttbr0 at the zero page when switching to
+ init_mm
+ - [arm64] SW PAN: Update saved ttbr0 value on enter_lazy_tlb
+ - [armhf] Revert "ARM: dts: imx53: add srtc node"
+ - [armhf] bus: arm-cci: Fix use of smp_processor_id() in preemptible context
+ - IB/core: Only enforce security for InfiniBand
+ - [armel,armhf] BUG if jumping to usermode address in kernel mode
+ - [armel,armhf] avoid faulting on qemu
+ - [arm64] irqchip/qcom: Fix u32 comparison with value less than zero
+ - [powerpc*] perf: Fix pmu_count to count only nest imc pmus
+ - apparmor: fix leak of null profile name if profile allocation fails
+ - mac80211_hwsim: Fix memory leak in hwsim_new_radio_nl()
+ - gre6: use log_ecn_error module parameter in ip6_tnl_rcv()
+ - route: also update fnhe_genid when updating a route cache
+ - route: update fnhe_expires for redirect when the fnhe exists
+ - rsi: fix memory leak on buf and usb_reg_buf
+ - pipe: match pipe_max_size data type with procfs
+ - lib/genalloc.c: make the avail variable an atomic_long_t
+ - NFS: Fix a typo in nfs_rename()
+ - sunrpc: Fix rpc_task_begin trace point
+ - nfp: inherit the max_mtu from the PF netdev
+ - nfp: fix flower offload metadata flag usage
+ - xfs: fix forgotten rcu read unlock when skipping inode reclaim
+ - block: wake up all tasks blocked in get_request()
+ - [sparc64] mm: set fields in deferred pages
+ - zsmalloc: calling zs_map_object() from irq is a bug
+ - slub: fix sysfs duplicate filename creation when slub_debug=O
+ - sctp: do not free asoc when it is already dead in sctp_sendmsg
+ - sctp: use the right sk after waking up from wait_buf sleep
+ - fcntl: don't leak fd reference when fixup_compat_flock fails
+ - geneve: fix fill_info when link down
+ - bpf: fix lockdep splat
+ - [arm64] clk: qcom: common: fix legacy board-clock registration
+ - [arm64] clk: hi3660: fix incorrect uart3 clock freqency
+ - atm: horizon: Fix irq release error
+ - xfrm: Copy policy family in clone_policy
+ - f2fs: fix to clear FI_NO_PREALLOC
+ - bnxt_re: changing the ip address shouldn't affect new connections
+ - IB/mlx4: Increase maximal message size under UD QP
+ - IB/mlx5: Assign send CQ and recv CQ of UMR QP
+ - afs: Fix total-length calculation for multiple-page send
+ - afs: Connect up the CB.ProbeUuid
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.14.7
+ - net: realtek: r8169: implement set_link_ksettings()
+ - [s390x] qeth: fix early exit from error path
+ - tipc: fix memory leak in tipc_accept_from_sock()
+ - vhost: fix skb leak in handle_rx()
+ - rds: Fix NULL pointer dereference in __rds_rdma_map
+ - sit: update frag_off info
+ - tcp: add tcp_v4_fill_cb()/tcp_v4_restore_cb()
+ - packet: fix crash in fanout_demux_rollover()
+ - net/packet: fix a race in packet_bind() and packet_notifier()
+ - tcp: remove buggy call to tcp_v6_restore_cb()
+ - usbnet: fix alignment for frames with no ethernet header
+ - net: remove hlist_nulls_add_tail_rcu()
+ - stmmac: reset last TSO segment size after device open
+ - tcp/dccp: block bh before arming time_wait timer
+ - [s390x] qeth: build max size GSO skbs on L2 devices
+ - [s390x] qeth: fix thinko in IPv4 multicast address tracking
+ - [s390x] qeth: fix GSO throughput regression
+ - tcp: use IPCB instead of TCP_SKB_CB in inet_exact_dif_match()
+ - tipc: call tipc_rcv() only if bearer is up in tipc_udp_recv()
+ - tcp: use current time in tcp_rcv_space_adjust()
+ - net: sched: cbq: create block for q->link.block
+ - tap: free skb if flags error
+ - tcp: when scheduling TLP, time of RTO should account for current ACK
+ - tun: free skb in early errors
+ - net: ipv6: Fixup device for anycast routes during copy
+ - tun: fix rcu_read_lock imbalance in tun_build_skb
+ - net: accept UFO datagrams from tuntap and packet
+ - net: openvswitch: datapath: fix data type in queue_gso_packets
+ - cls_bpf: don't decrement net's refcount when offload fails
+ - sctp: use right member as the param of list_for_each_entry
+ - ipmi: Stop timers before cleaning up the module
+ - usb: gadget: ffs: Forbid usb_ep_alloc_request from sleeping
+ - fcntl: don't cap l_start and l_end values for F_GETLK64 in compat syscall
+ - fix kcm_clone()
+ - [armhf,arm64] KVM: vgic-its: Preserve the revious read from the pending
+ table
+ - kbuild: do not call cc-option before KBUILD_CFLAGS initialization
+ - [powerpc*] powernv/idle: Round up latency and residency values
+ - ipvlan: fix ipv6 outbound device
+ - blk-mq: Avoid that request queue removal can trigger list corruption
+ - nvmet-rdma: update queue list during ib_device removal
+ - audit: Allow auditd to set pid to 0 to end auditing
+ - audit: ensure that 'audit=1' actually enables audit for PID 1
+ - dm raid: fix panic when attempting to force a raid to sync
+ - md: free unused memory after bitmap resize
+ - RDMA/cxgb4: Annotate r2 and stag as __be32
+ - [x86] intel_rdt: Fix potential deadlock during resctrl unmount
+
+ [ Salvatore Bonaccorso ]
+ * Add ABI reference for 4.14.0-1
+ * xen/time: do not decrease steal time after live migration on xen
+ (Closes: #871608)
+ * crypto: salsa20 - fix blkcipher_walk API usage (CVE-2017-17805)
+ * crypto: hmac - require that the underlying hash algorithm is unkeyed
+ (CVE-2017-17806)
+
+ [ Vagrant Cascadian ]
+ * [armhf, arm64] Backport patches from 4.15.x to support dwmac-sun8i.
+
+ [ Ben Hutchings ]
+ * [rt] Update to 4.14.6-rt7:
+ - hrtimer: account for migrated timers
+ - crypto: mcryptd: protect the per-CPU queue with a lock
+ - tracing: Update inter-event hist trigger support to v7:
+ + Rename virtual "$common_timestamp" field to "common_timestamp"
+ + Fix use-after-free in trigger removal
+ - mm/slub: close possible memory-leak in kmem_cache_alloc_bulk()
+ - crypto: limit more FPU-enabled sections
+ * dccp: CVE-2017-8824: use-after-free in DCCP code
+ * netfilter: nfnetlink_cthelper: Add missing permission checks
+ (CVE-2017-17448)
+ * netlink: Add netns check on taps (CVE-2017-17449)
+ * netfilter: xt_osf: Add missing permission checks (CVE-2017-17450)
+ * USB: core: prevent malicious bNumInterfaces overflow (CVE-2017-17558)
+ * net: ipv4: fix for a race condition in raw_sendmsg (CVE-2017-17712)
+ * media: dvb-usb-v2: lmedm04: Improve logic checking of warm start
+ (CVE-2017-16538)
+ * media: dvb-usb-v2: lmedm04: move ts2020 attach to dm04_lme2510_tuner
+ (CVE-2017-16538)
+ * media: hdpvr: Fix an error handling path in hdpvr_probe() (CVE-2017-16644)
+ * [armhf,arm64,x86] KVM: Fix stack-out-of-bounds read in write_mmio
+ (CVE-2017-17741)
+ * bluetooth: Prevent stack info leak from the EFS element.
+ (CVE-2017-1000410)
+ * bpf/verifier: Fix multiple security issues (Closes: #883558):
+ - encapsulate verifier log state into a structure
+ - move global verifier log into verifier environment
+ - fix branch pruning logic
+ - fix bounds calculation on BPF_RSH
+ - fix incorrect sign extension in check_alu_op() (CVE-2017-16995)
+ - fix incorrect tracking of register size truncation (CVE-2017-16996)
+ - fix 32-bit ALU op verification
+ - fix missing error return in check_stack_boundary()
+ - force strict alignment checks for stack pointers
+ - don't prune branches when a scalar is replaced with a pointer
+ - fix integer overflows
+ * Bump ABI to 2
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 22 Dec 2017 14:12:23 +0000
+
+linux (4.14.2-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.14.1
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.14.2
+ - mm/pagewalk.c: report holes in hugetlb ranges (CVE-2017-16994)
+
+ [ Ben Hutchings ]
+ * [rt] Update to 4.14-rt1 and reenable (Closes: #882192)
+ * i40e: Build for 32-bit targets again
+ - i40e/i40evf: organize and re-number feature flags
+ - i40e: fix flags declaration
+ - Revert "i40e: Build for 64-bit targets only"
+ * aufs: Update support patchset to aufs4.14-20171120
+ * [armel] Change configuration to reduce image size (fixes FTBFS):
+ - Change CONNECTOR from built-in to module, and disable PROC_EVENTS
+ - Disable INTEGRITY and dependent options
+ - video: Disable USB_APPLEDISPLAY, BACKLIGHT_CLASS_DEVICE
+ * apparmor: fix oops in audit_signal_cb hook (regression in 4.14)
+ * leds: Enable LEDS_BRIGHTNESS_HW_CHANGED (Closes: #872862)
+ * [rt] Add new signing subkey for Steven Rostedt
+ * [rt] Update to 4.14.1-rt3
+ * Set ABI to 1
+ * mmap: Remember the MAP_FIXED flag as VM_FIXED
+ * [x86] mmap: Add an exception to the stack gap for Hotspot JVM compatibility
+ (Closes: #865303)
+
+ [ Salvatore Bonaccorso ]
+ * mm, thp: Do not make page table dirty unconditionally in touch_p[mu]d()
+ (CVE-2017-1000405)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 30 Nov 2017 12:33:47 +0000
+
+linux (4.14-1~exp1) experimental; urgency=medium
+
+ * New upstream release: https://kernelnewbies.org/Linux_4.14
+
+ [ Ben Hutchings ]
+ * debian/control: Set Rules-Requires-Root to no
+ * [armhf] drm: Enable DRM_SUN4I, DRM_SUN4I_HDMI, DRM_SUN4I_BACKEND,
+ DRM_SUN8I_MIXER as modules; and DRM_SUN4I_HDMI_CEC (Closes: #881570)
+ * media: dvb-core: always call invoke_release() in fe_free()
+ * dvb_frontend: don't use-after-free the frontend struct (CVE-2017-16648)
+ * Set ABI name to trunk
+
+ [ Bastian Blank ]
+ * Enable CRYPTO_SHA3.
+
+ [ Riku Voipio ]
+ * [arm64] enable generic server options.
+ - NUMA, ACPI_NUMA, CRASH_DUMP, VFIO, HOTPLUG_PCI, ACPI_CPPC_CPUFREQ,
+ MMC_SDHCI_ACPI, PL330_DMA
+ * [arm64] enable various server platform drivers
+ - NET_XGENE_V2, EDAC_THUNDERX, MMC_CAVIUM_THUNDER,
+ GPIO_XLP, I2C_XLP9XX, SPI_XLP, DRM_HISI_HIBMC, HISI_SAS_PCI,
+ GPIO_WATCHDOG, ARM_SP805_WATCHDOG, ARM_SBSA_WATCHDOG, DW_WATCHDOG
+ * [arm64] enable support for Marvell arm64 boards
+ - CRYPTO_DEV_MARVELL_CESA, MARVELL_PHY, MARVELL_10G_PHY,
+ PHY_MVEBU_CP110_COMPHY, RTC_DRV_MV, RTC_DRV_ARMADA38X, SPI_ARMADA_3700
+ ARMADA_THERMAL, HW_RANDOM_OMAP, CRYPTO_DEV_SAFEXCE
+ * [arm64] 96boards Hikey and Dragonboard support
+ - PCIE_KIRIN, TEE, OPTEE, SND_I2S_HI6210_I2S, DRM_I2C_ADV7511_AUDIO,
+ CMA, USB_ISP176, USB_CHIPIDEA_ULPI, USB_DWC3_ULPI, NOP_USB_XCEIV
+ USB_ULPI, RPMSG_QCOM*, PHY_QCOM*, QCOM_IOMMU, QCOM_CLK*, etc
+ - SERIAL_DEV_BUS for HiKey bluetooth
+ * All options as modules when possible
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 17 Nov 2017 00:16:15 +0000
+
+linux (4.14~rc7-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [mips*] Increase RELOCATION_TABLE_SIZE to 0x00120000 (fixes FTBFS)
+ * debian/bin/gencontrol.py: Set encoding to UTF-8 globally
+ * [alpha] udeb: Remove empty fb-modules package (fixes FTBFS)
+ * [armel] udeb: Remove fbcon from fb-modules package
+
+ [ Uwe Kleine-König ]
+ * [arm64] add BRCMFMAC_SDIO for wifi on Raspberry Pi 3 (Closes: #877911)
+
+ [ Vagrant Cascadian ]
+ * Enable SQUASHFS_LZ4 in default config.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 30 Oct 2017 18:31:38 +0000
+
+linux (4.14~rc5-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * Update kconfig for 4.14:
+ - [alpha] fbdev: Re-enable FRAMEBUFFER_CONSOLE as built-in
+ - [armel] fbdev: Explicitly disable FRAMEBUFFER_CONSOLE, as it can no
+ longer be a module
+ - [arm64] Re-enable MMC_QCOM_DML
+ - Change RC_CORE back to being a module
+ - power/supply: Enable BATTERY_BQ27XXX and BATTERY_BQ27XXX_HDQ as modules,
+ replacing W1_SLAVE_BQ27000
+ * net: Disable IRDA, which will soon be deleted upstream
+ * [mips*] Increase RELOCATION_TABLE_SIZE to 0x00110000 for all flavours
+ (fixes FTBFS)
+ * i40e: Build for 64-bit targets only (fixes FTBFS on hppa)
+ * Compile with gcc-7 on all architectures
+
+ [ John Paul Adrian Glaubitz ]
+ * [m68k] udeb: Build ata-modules package, include libata
+ * [m68k] udeb: Add ide-cd_mod to cdrom-core-modules
+ * [m68k] udeb: Build ide-core-modules package, include ide-core
+ * [m68k] udeb: Build ide-modules package, include ide-gd_mod
+ * [m68k] udeb: Move old IDE drivers from pata-modules to ide-modules:
+ - buddha, falconide, gayle, macide, q40ide
+ * [m68k] udeb: Add missing SCSI drivers to scsi-modules:
+ - a2091, a3000, a4000t, bvme6000_scsi, gvp11, mvme16x_scsi, zorro7xx
+ * [m68k] Build uncompressed kernel image by default.
+
+ [ Uwe Kleine-König ]
+ * media: drop explicit setting of DVB_MAX_ADAPTERS to follow upstream default
+ (Closes: #878846)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 17 Oct 2017 23:37:52 +0100
+
+linux (4.14~rc3-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * aufs: Update support patchset to aufs4.x-rcN-20171002
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 02 Oct 2017 04:47:08 +0100
+
+linux (4.13.13-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.13.11
+ - workqueue: replace pool->manager_arb mutex with a flag
+ - [x86] ALSA: hda/realtek - Add support for ALC236/ALC3204
+ - [x86] ALSA: hda - fix headset mic problem for Dell machines with alc236
+ - ceph: unlock dangling spinlock in try_flush_caps()
+ - [powerpc*] KVM: PPC: Fix oops when checking KVM_CAP_PPC_HTM
+ (CVE-2017-15306)
+ - [powerpc*] KVM: PPC: Book3S HV: POWER9 more doorbell fixes
+ - [powerpc*] KVM: PPC: Book3S: Protect kvmppc_gpa_to_ua() with SRCU
+ - [s390x] kvm: fix detection of guest machine checks
+ - nbd: handle interrupted sendmsg with a sndtimeo set
+ - spi: uapi: spidev: add missing ioctl header
+ - spi: a3700: Return correct value on timeout detection
+ - spi: bcm-qspi: Fix use after free in bcm_qspi_probe() in error path
+ - spi: armada-3700: Fix failing commands with quad-SPI
+ - ovl: add NULL check in ovl_alloc_inode
+ - ovl: fix EIO from lookup of non-indexed upper
+ - ovl: handle ENOENT on index lookup
+ - ovl: do not cleanup unsupported index entries
+ - fuse: fix READDIRPLUS skipping an entry
+ - xen/gntdev: avoid out of bounds access in case of partial gntdev_mmap()
+ - xen: fix booting ballooned down hvm guest
+ - cifs: Select all required crypto modules
+ - CIFS: Fix NULL pointer deref on SMB2_tcon() failure
+ - Input: elan_i2c - add ELAN0611 to the ACPI table
+ - Input: gtco - fix potential out-of-bound access (CVE-2017-16643)
+ - Fix encryption labels and lengths for SMB3.1.1
+ - SMB3: Validate negotiate request must always be signed
+ - assoc_array: Fix a buggy node-splitting case (CVE-2017-12193)
+ - [s390x] scsi: zfcp: fix erp_action use-before-initialize in REC action
+ trace
+ - scsi: aacraid: Fix controller initialization failure
+ - scsi: qla2xxx: Initialize Work element before requesting IRQs
+ - scsi: sg: Re-fix off by one in sg_fill_request_table()
+ - [x86] cpu/AMD: Apply the Erratum 688 fix when the BIOS doesn't
+ - [x86] drm/amd/powerplay: fix uninitialized variable
+ - [x86] drm/i915/perf: fix perf enable/disable ioctls with 32bits
+ userspace
+ - [armhf] can: sun4i: fix loopback mode
+ - can: kvaser_usb: Correct return value in printout
+ - can: kvaser_usb: Ignore CMD_FLUSH_QUEUE_REPLY messages
+ - cfg80211: fix connect/disconnect edge cases
+ - ipsec: Fix aborted xfrm policy dump crash
+ - [armhf] regulator: fan53555: fix I2C device ids (Closes: #879768)
+ - [powerpc*] xive: Fix the size of the cpumask used in
+ xive_find_target_in_mask()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.13.12
+ - ALSA: timer: Add missing mutex lock for compat ioctls
+ - ALSA: seq: Fix nested rwsem annotation for lockdep splat
+ - cifs: check MaxPathNameComponentLength != 0 before using it
+ (Closes: #880504)
+ - KEYS: return full count in keyring_read() if buffer is too small
+ - KEYS: trusted: fix writing past end of buffer in trusted_read()
+ - KEYS: fix out-of-bounds read during ASN.1 parsing
+ - ASoC: adau17x1: Workaround for noise bug in ADC
+ - virtio_blk: Fix an SG_IO regression
+ - [arm64] ensure __dump_instr() checks addr_limit
+ - [arm64] KVM: its: Fix missing dynamic allocation check in scan_its_table
+ - [armhf, arm64] KVM: set right LR register value for 32 bit guest when
+ inject abort
+ - [armhf,arm64] kvm: Disable branch profiling in HYP code
+ - [armhf] dts: mvebu: pl310-cache disable double-linefill
+ - drm/amdgpu: return -ENOENT from uvd 6.0 early init for harvesting
+ - drm/amdgpu: allow harvesting check for Polaris VCE
+ - userfaultfd: hugetlbfs: prevent UFFDIO_COPY to fill beyond the end of
+ i_size
+ - ocfs2: fstrim: Fix start offset of first cluster group during fstrim
+ - fs/hugetlbfs/inode.c: fix hwpoison reserve accounting
+ - mm, swap: fix race between swap count continuation operations
+ - [x86] drm/i915: Do not rely on wm preservation for ILK watermarks
+ - [x86] drm/i915/edp: read edp display control registers unconditionally
+ - [mips*] bpf: Fix a typo in build_one_insn()
+ - [mips*] smp-cmp: Use right include for task_struct
+ - [mips*] SMP: Fix deadlock & online race
+ - Revert "x86: do not use cpufreq_quick_get() for /proc/cpuinfo "cpu MHz""
+ - [powerpc*] kprobes: Dereference function pointers only if the address
+ does not belong to kernel text
+ - futex: Fix more put_pi_state() vs. exit_pi_state_list() races
+ - perf/cgroup: Fix perf cgroup hierarchy support
+ - [x86] mcelog: Get rid of RCU remnants
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.13.13
+ - netfilter: nat: Revert "netfilter: nat: convert nat bysrc hash to
+ rhashtable"
+ - netfilter: nft_set_hash: disable fast_ops for 2-len keys (Closes: #880145)
+ - workqueue: Fix NULL pointer dereference
+ - crypto: ccm - preserve the IV buffer
+ - [x86] crypto: sha1-mb - fix panic due to unaligned access
+ - [x86] crypto: sha256-mb - fix panic due to unaligned access
+ - KEYS: fix NULL pointer dereference during ASN.1 parsing [ver #2]
+ - [x86] ACPI / PM: Blacklist Low Power S0 Idle _DSM for Dell XPS13 9360
+ - ACPICA: Dispatch active GPEs at init time
+ - ACPICA: Make it possible to enable runtime GPEs earlier
+ - ACPI / scan: Enable GPEs before scanning the namespace
+ - [armel,armhf] 8720/1: ensure dump_instr() checks addr_limit
+ - ALSA: timer: Limit max instances per timer
+ - ALSA: usb-audio: support new Amanero Combo384 firmware version
+ - [x86] ALSA: hda - fix headset mic problem for Dell machines with alc274
+ - ALSA: seq: Fix OSS sysex delivery in OSS emulation
+ - ALSA: seq: Avoid invalid lockdep class warning
+ - [mips*] Fix CM region target definitions
+ - [powerpc*] KVM: Book3S HV: Fix exclusion between HPT resizing and other
+ HPT updates
+ - Input: elan_i2c - add ELAN060C to the ACPI table
+ - rbd: use GFP_NOIO for parent stat and data requests
+ - [x86] drm/vmwgfx: Fix Ubuntu 17.10 Wayland black screen issue
+ - [armhf] can: sun4i: handle overrun in RX FIFO
+ - can: peak: Add support for new PCIe/M2 CAN FD interfaces
+ - [x86] debug: Handle warnings before the notifier chain, to fix KGDB crash
+ - [x86] smpboot: Make optimization of delay calibration work correctly
+ - [x86] oprofile/ppro: Do not use __this_cpu*() in preemptible context
+
+ [ Salvatore Bonaccorso ]
+ * mac80211: accept key reinstall without changing anything (CVE-2017-13080)
+ * sctp: do not peel off an assoc from one netns to another one
+ (CVE-2017-15115)
+
+ [ Ben Hutchings ]
+ * linux-image: Recommend apparmor, as systemd units with an AppArmor
+ profile will fail without it (Closes: #880441)
+ * [powerpc*] kvm: Ignore ABI change in 4.13.6 (fixes FTBFS)
+ * swap: Avoid ABI change in 4.13.12
+ * mac80211: use constant time comparison with keys
+ * mac80211: don't compare TKIP TX MIC key in reinstall prevention
+ * usb: usbtest: fix NULL pointer dereference (CVE-2017-16532)
+ * media: cx231xx-cards: fix NULL-deref on missing association descriptor
+ (CVE-2017-16536)
+ * media: imon: Fix null-ptr-deref in imon_probe (CVE-2017-16537)
+ * media: dib0700: fix invalid dvb_detach argument (CVE-2017-16646)
+ * net: usb: asix: fill null-ptr-deref in asix_suspend (CVE-2017-16647)
+ * net: cdc_ether: fix divide by 0 on bad descriptors (CVE-2017-16649)
+ * net: qmi_wwan: fix divide by 0 on bad descriptors (CVE-2017-16650)
+ * nftables: Enable NFT_RT, NFT_SET_BITMAP, NFT_OBJREF as modules
+ (Closes: #881931)
+ * [powerpc*/*64*] drm: Enable DRM_AMDGPU as module (Closes: #881593)
+ * amdgpu: Enable DRM_AMDGPU_USERPTR on all architectures
+ * amdgpu: Enable DRM_AMDGPU_SI, CONFIG_DRM_AMDGPU_CIK (Closes: #847570)
+ * [arm64,x86] net/wireless: Enable RTL8723BS as module (Closes: #881568)
+ * [arm64] nvmem: Enable NVMEM_SUNXI_SID as module (Closes: #881567)
+ * [x86] rmi4: Disable RMI4_SMB (Closes: #880471)
+ * ALSA: timer: Avoid ABI change in 4.13.13
+ * netfilter: nat: Avoid ABI change in 4.13.13
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 16 Nov 2017 21:04:10 +0000
+
+linux (4.13.10-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.13.5
+ - cifs: check rsp for NULL before dereferencing in SMB2_open
+ - cifs: release cifs root_cred after exit_cifs
+ - cifs: release auth_key.response for reconnect.
+ - nvme-pci: fix host memory buffer allocation fallback
+ - nvme-pci: use appropriate initial chunk size for HMB allocation
+ - nvme-pci: propagate (some) errors from host memory buffer setup
+ - dax: remove the pmem_dax_ops->flush abstraction
+ - dm integrity: do not check integrity for failed read operations
+ - mmc: block: Fix incorrectly initialized requests
+ - fs/proc: Report eip/esp in /prod/PID/stat for coredumping
+ - scsi: scsi_transport_fc: fix NULL pointer dereference in
+ fc_bsg_job_timeout
+ - cifs: SMB3: Add support for multidialect negotiate (SMB2.1 and later)
+ - mac80211: fix VLAN handling with TXQs
+ - mac80211_hwsim: Use proper TX power
+ - mac80211: flush hw_roc_start work before cancelling the ROC
+ - genirq: Make sparse_irq_lock protect what it should protect
+ - genirq/msi: Fix populating multiple interrupts
+ - genirq: Fix cpumask check in __irq_startup_managed()
+ - [powerpc*] KVM: Book3S HV: Hold kvm->lock around call to
+ kvmppc_update_lpcr
+ - [powerpc*] KVM: Book3S HV: Fix bug causing host SLB to be restored
+ incorrectly
+ - [powerpc*] KVM: PPC: Book3S HV: Don't access XIVE PIPR register using
+ byte accesses
+ - tracing: Fix trace_pipe behavior for instance traces
+ - tracing: Erase irqsoff trace with empty write
+ - tracing: Remove RCU work arounds from stack tracer
+ - md/raid5: fix a race condition in stripe batch
+ - md/raid5: preserve STRIPE_ON_UNPLUG_LIST in break_stripe_batch_list
+ - scsi: aacraid: Fix 2T+ drives on SmartIOC-2000
+ - scsi: aacraid: Add a small delay after IOP reset
+ - [armhf] drm/exynos: Fix locking in the suspend/resume paths
+ - [x86] drm/i915/gvt: Fix incorrect PCI BARs reporting
+ - Revert "drm/i915/bxt: Disable device ready before shutdown command"
+ - drm/amdgpu: revert tile table update for oland
+ - drm/radeon: disable hard reset in hibernate for APUs
+ - crypto: drbg - fix freeing of resources
+ - security/keys: properly zero out sensitive key material in big_key
+ - security/keys: rewrite all of big_key crypto
+ - KEYS: fix writing past end of user-supplied buffer in keyring_read()
+ - KEYS: prevent creating a different user's keyrings
+ - [x86] libnvdimm, namespace: fix btt claim class crash
+ - [powerpc*] eeh: Create PHB PEs after EEH is initialized
+ - [powerpc*] pseries: Fix parent_dn reference leak in add_dt_node()
+ - [powerpc*] tm: Flush TM only if CPU has TM feature
+ - [mips*] Fix perf event init
+ - [s390x] perf: fix bug when creating per-thread event
+ - [s390x] mm: make pmdp_invalidate() do invalidation only
+ - [s390x] mm: fix write access check in gup_huge_pmd()
+ - PM: core: Fix device_pm_check_callbacks()
+ - Revert "IB/ipoib: Update broadcast object if PKey value was changed in
+ index 0"
+ - cifs: Fix SMB3.1.1 guest authentication to Samba
+ - cifs: SMB3: Fix endian warning
+ - cifs: SMB3: Warn user if trying to sign connection that authenticated as
+ guest
+ - cifs: SMB: Validate negotiate (to protect against downgrade) even if
+ signing off
+ - cifs: SMB3: handle new statx fields
+ - cifs: SMB3: Don't ignore O_SYNC/O_DSYNC and O_DIRECT flags
+ - vfs: Return -ENXIO for negative SEEK_HOLE / SEEK_DATA offsets
+ - libceph: don't allow bidirectional swap of pg-upmap-items
+ - brd: fix overflow in __brd_direct_access
+ - gfs2: Fix debugfs glocks dump
+ - bsg-lib: don't free job in bsg_prepare_job
+ - iw_cxgb4: drop listen destroy replies if no ep found
+ - iw_cxgb4: remove the stid on listen create failure
+ - iw_cxgb4: put ep reference in pass_accept_req()
+ - rcu: Allow for page faults in NMI handlers
+ - mmc: sdhci-pci: Fix voltage switch for some Intel host controllers
+ - extable: Consolidate *kernel_text_address() functions
+ - extable: Enable RCU if it is not watching in kernel_text_address()
+ - seccomp: fix the usage of get/put_seccomp_filter() in seccomp_get_filter()
+ - [arm64] Make sure SPsel is always set
+ - [arm64] mm: Use READ_ONCE when dereferencing pointer to pte table
+ - [arm64] fault: Route pte translation faults via do_translation_fault
+ - [x86] KVM: VMX: extract __pi_post_block
+ - [x86] KVM: VMX: avoid double list add with VT-d posted interrupts
+ - [x86] KVM: VMX: simplify and fix vmx_vcpu_pi_load
+ - [x86] KVM: nVMX: fix HOST_CR3/HOST_CR4 cache
+ - [x86] kvm: Handle async PF in RCU read-side critical sections
+ - xfs: validate bdev support for DAX inode flag
+ - sched/sysctl: Check user input value of sysctl_sched_time_avg
+ - irq/generic-chip: Don't replace domain's name
+ - mtd: Fix partition alignment check on multi-erasesize devices
+ - [armhf] etnaviv: fix submit error path
+ - [armhf] etnaviv: fix gem object list corruption
+ - futex: Fix pi_state->owner serialization
+ - md: fix a race condition for flush request handling
+ - md: separate request handling
+ - PCI: Fix race condition with driver_override
+ - btrfs: fix NULL pointer dereference from free_reloc_roots()
+ - btrfs: clear ordered flag on cleaning up ordered extents
+ - btrfs: finish ordered extent cleaning if no progress is found
+ - btrfs: propagate error to btrfs_cmp_data_prepare caller
+ - btrfs: prevent to set invalid default subvolid
+ - [x86] platform: fujitsu-laptop: Don't oops when FUJ02E3 is not presnt
+ - PM / OPP: Call notifier without holding opp_table->lock
+ - [x86] mm: Fix fault error path using unsafe vma pointer
+ - [x86] fpu: Don't let userspace set bogus xcomp_bv (CVE-2017-15537)
+ - [x86] KVM: VMX: do not change SN bit in vmx_update_pi_irte()
+ - [x86] KVM: VMX: remove WARN_ON_ONCE in kvm_vcpu_trigger_posted_interrupt
+ - [x86] KVM: VMX: use cmpxchg64
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.13.6
+ - [armhf,arm64] usb: dwc3: ep0: fix DMA starvation by assigning req->trb on
+ ep0
+ - mlxsw: spectrum: Fix EEPROM access in case of SFP/SFP+
+ - net: bonding: Fix transmit load balancing in balance-alb mode if
+ specified by sysfs
+ - openvswitch: Fix an error handling path in
+ 'ovs_nla_init_match_and_action()'
+ - net: bonding: fix tlb_dynamic_lb default value
+ - net_sched: gen_estimator: fix scaling error in bytes/packets samples
+ - net: sched: fix use-after-free in tcf_action_destroy and tcf_del_walker
+ - sctp: potential read out of bounds in sctp_ulpevent_type_enabled()
+ - tcp: update skb->skb_mstamp more carefully
+ - bpf/verifier: reject BPF_ALU64|BPF_END
+ - tcp: fix data delivery rate
+ - udpv6: Fix the checksum computation when HW checksum does not apply
+ - ip6_gre: skb_push ipv6hdr before packing the header in ip6gre_header
+ - net: phy: Fix mask value write on gmii2rgmii converter speed register
+ - ip6_tunnel: do not allow loading ip6_tunnel if ipv6 is disabled in cmdline
+ - net/sched: cls_matchall: fix crash when used with classful qdisc
+ - 8139too: revisit napi_complete_done() usage
+ - bpf: do not disable/enable BH in bpf_map_free_id()
+ - tcp: fastopen: fix on syn-data transmit failure
+ - [powerpc*] net: emac: Fix napi poll list corruption
+ - net: ipv6: fix regression of no RTM_DELADDR sent after DAD failure
+ - packet: hold bind lock when rebinding to fanout hook (CVE-2017-15649)
+ - net: change skb->mac_header when Generic XDP calls adjust_head
+ - net_sched: always reset qdisc backlog in qdisc_reset()
+ - [armhf,arm64] net: stmmac: Cocci spatch "of_table"
+ - [arm64] net: qcom/emac: specify the correct size when mapping a DMA buffer
+ - vti: fix use after free in vti_tunnel_xmit/vti6_tnl_xmit
+ - l2tp: fix race condition in l2tp_tunnel_delete
+ - tun: bail out from tun_get_user() if the skb is empty
+ - [armhf,arm64] net: dsa: mv88e6xxx: Allow dsa and cpu ports in multiple
+ vlans
+ - [armhf,arm64] net: dsa: Fix network device registration order
+ - packet: in packet_do_bind, test fanout with bind_lock held (CVE-2017-15649)
+ - packet: only test po->has_vnet_hdr once in packet_snd
+ - [armhf,arm64] net: dsa: mv88e6xxx: lock mutex when freeing IRQs
+ - net: Set sk_prot_creator when cloning sockets to the right proto
+ - net/mlx5e: IPoIB, Fix access to invalid memory address
+ - netlink: do not proceed if dump's start() errs
+ - ip6_gre: ip6gre_tap device should keep dst
+ - ip6_tunnel: update mtu properly for ARPHRD_ETHER tunnel device in tx path
+ - IPv4: early demux can return an error code
+ - tipc: use only positive error codes in messages
+ - l2tp: fix l2tp_eth module loading
+ - socket, bpf: fix possible use after free
+ - net: rtnetlink: fix info leak in RTM_GETSTATS call
+ - [amd64] bpf: fix bpf_tail_call() x64 JIT
+ - usb: gadget: core: fix ->udc_set_speed() logic
+ - USB: gadgetfs: Fix crash caused by inadequate synchronization
+ - USB: gadgetfs: fix copy_to_user while holding spinlock
+ - usb: gadget: udc: atmel: set vbus irqflags explicitly
+ - usb-storage: unusual_devs entry to fix write-access regression for
+ Seagate external drives
+ - usb-storage: fix bogus hardware error messages for ATA pass-thru devices
+ - ALSA: usb-audio: Check out-of-bounds access by corrupted buffer descriptor
+ - usb: pci-quirks.c: Corrected timeout values used in handshake
+ - USB: cdc-wdm: ignore -EPIPE from GetEncapsulatedResponse
+ - USB: dummy-hcd: fix connection failures (wrong speed)
+ - USB: dummy-hcd: fix infinite-loop resubmission bug
+ - USB: dummy-hcd: Fix erroneous synchronization change
+ - USB: devio: Prevent integer overflow in proc_do_submiturb()
+ - USB: g_mass_storage: Fix deadlock when driver is unbound
+ - USB: uas: fix bug in handling of alternate settings
+ - USB: core: harden cdc_parse_cdc_header
+ - usb: Increase quirk delay for USB devices
+ - USB: fix out-of-bounds in usb_set_configuration
+ - usb: xhci: Free the right ring in xhci_add_endpoint()
+ - xhci: fix finding correct bus_state structure for USB 3.1 hosts
+ - xhci: fix wrong endpoint ESIT value shown in tracing
+ - usb: host: xhci-plat: allow sysdev to inherit from ACPI
+ - xhci: Fix sleeping with spin_lock_irq() held in ASmedia 1042A workaround
+ - xhci: set missing SuperSpeedPlus Link Protocol bit in roothub descriptor
+ - [x86] Revert "xhci: Limit USB2 port wake support for AMD Promontory hosts"
+ - [armhf] iio: adc: twl4030: Fix an error handling path in
+ 'twl4030_madc_probe()'
+ - [armhf] iio: adc: twl4030: Disable the vusb3v1 rugulator in the error
+ handling path of 'twl4030_madc_probe()'
+ - iio: core: Return error for failed read_reg
+ - uwb: properly check kthread_run return value
+ - uwb: ensure that endpoint is interrupt
+ - ksm: fix unlocked iteration over vmas in cmp_and_merge_page()
+ - mm, hugetlb, soft_offline: save compound page order before page migration
+ - mm, oom_reaper: skip mm structs with mmu notifiers
+ - mm: fix RODATA_TEST failure "rodata_test: test data was not read only"
+ - mm: avoid marking swap cached page as lazyfree
+ - mm: fix data corruption caused by lazyfree page
+ - userfaultfd: non-cooperative: fix fork use after free
+ - ALSA: compress: Remove unused variable
+ - Revert "ALSA: echoaudio: purge contradictions between dimension matrix
+ members and total number of members"
+ - ALSA: usx2y: Suppress kernel warning at page allocation failures
+ - [powerpc*] powernv: Increase memory block size to 1GB on radix
+ - [powerpc*] Fix action argument for cpufeatures-based TLB flush
+ - percpu: make this_cpu_generic_read() atomic w.r.t. interrupts
+ - [x86] intel_th: pci: Add Lewisburg PCH support
+ - driver core: platform: Don't read past the end of "driver_override" buffer
+ - cgroup: Reinit cgroup_taskset structure before cgroup_migrate_execute()
+ returns
+ - [x86] Drivers: hv: fcopy: restore correct transfer length
+ - [x86] vmbus: don't acquire the mutex in vmbus_hvsock_device_unregister()
+ - ftrace: Fix kmemleak in unregister_ftrace_graph
+ - ovl: fix error value printed in ovl_lookup_index()
+ - ovl: fix dput() of ERR_PTR in ovl_cleanup_index()
+ - ovl: fix dentry leak in ovl_indexdir_cleanup()
+ - ovl: fix missing unlock_rename() in ovl_do_copy_up()
+ - ovl: fix regression caused by exclusive upper/work dir protection
+ - [arm64] dt marvell: Fix AP806 system controller size
+ - [arm64] Ensure the instruction emulation is ready for userspace
+ - HID: rmi: Make sure the HID device is opened on resume
+ - HID: i2c-hid: allocate hid buffers for real worst case
+ - HID: wacom: leds: Don't try to control the EKR's read-only LEDs
+ - HID: wacom: Properly report negative values from Intuos Pro 2 Bluetooth
+ - HID: wacom: Correct coordinate system of touchring and pen twist
+ - HID: wacom: generic: Send MSC_SERIAL and ABS_MISC when leaving prox
+ - HID: wacom: generic: Clear ABS_MISC when tool leaves proximity
+ - HID: wacom: Always increment hdev refcount within wacom_get_hdev_data
+ - HID: wacom: bits shifted too much for 9th and 10th buttons
+ - btrfs: avoid overflow when sector_t is 32 bit
+ - Btrfs: fix overlap of fs_info::flags values
+ - dm crypt: reject sector_size feature if device length is not aligned to it
+ - dm ioctl: fix alignment of event number in the device list
+ - dm crypt: fix memory leak in crypt_ctr_cipher_old()
+ - [powerpc*] KVM: Book3S: Fix server always zero from kvmppc_xive_get_xive()
+ - [x86] kvm: Avoid async PF preempting the kernel incorrectly
+ - iwlwifi: mvm: use IWL_HCMD_NOCOPY for MCAST_FILTER_CMD
+ - scsi: sd: Implement blacklist option for WRITE SAME w/ UNMAP
+ - scsi: sd: Do not override max_sectors_kb sysfs setting
+ - brcmfmac: setup passive scan if requested by user-space
+ - [x86] drm/i915: always update ELD connector type after get modes
+ - [x86] drm/i915/bios: ignore HDMI on port A
+ - bsg-lib: fix use-after-free under memory-pressure
+ - nvme-pci: Use PCI bus address for data/queues in CMB
+ - mmc: core: add driver strength selection when selecting hs400es
+ - nl80211: Define policy for packet pattern attributes
+ - [armhf] clk: samsung: exynos4: Enable VPLL and EPLL clocks for
+ suspend/resume cycle
+ - udp: perform source validation for mcast early demux
+ - udp: fix bcast packet reception
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.13.7
+ - watchdog: Revert "iTCO_wdt: all versions count down twice"
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.13.8
+ - USB: dummy-hcd: Fix deadlock caused by disconnect detection
+ - [mips*] math-emu: Remove pr_err() calls from fpu_emu()
+ - [mips*] bpf: Fix uninitialised target compiler error
+ - [x86] mei: always use domain runtime pm callbacks.
+ - [armhf] dmaengine: edma: Align the memcpy acnt array size with the
+ transfer
+ - [armhf] dmaengine: ti-dma-crossbar: Fix possible race condition with
+ dma_inuse
+ - NFS: Fix uninitialized rpc_wait_queue
+ - nfs/filelayout: fix oops when freeing filelayout segment
+ - HID: usbhid: fix out-of-bounds bug
+ - crypto: skcipher - Fix crash on zero-length input
+ - crypto: shash - Fix zero-length shash ahash digest crash
+ - [x86] KVM: nVMX: fix guest CR4 loading when emulating L2 to L1 exit
+ - [x86] pinctrl/amd: Fix build dependency on pinmux code
+ - [x86] iommu/amd: Finish TLB flush in amd_iommu_unmap()
+ - device property: Track owner device of device property
+ - Revert "vmalloc: back off when the current task is killed"
+ - fs/mpage.c: fix mpage_writepage() for pages with buffers
+ - ALSA: usb-audio: Kill stray URB at exiting
+ - ALSA: seq: Fix copy_from_user() call inside lock
+ - ALSA: caiaq: Fix stray URB at probe error path
+ - ALSA: line6: Fix NULL dereference at podhd_disconnect()
+ - ALSA: line6: Fix missing initialization before error path
+ - ALSA: line6: Fix leftover URB at error-path during probe
+ - drm/atomic: Unref duplicated drm_atomic_state in
+ drm_atomic_helper_resume()
+ - [x86] drm/i915/edp: Get the Panel Power Off timestamp after panel is off
+ - [x86] drm/i915: Read timings from the correct transcoder in
+ intel_crtc_mode_get()
+ - [x86] drm/i915/bios: parse DDI ports also for CHV for HDMI DDC pin and DP
+ AUX channel
+ - [x86] drm/i915: Use crtc_state_is_legacy_gamma in intel_color_check
+ - usb: gadget: configfs: Fix memory leak of interface directory data
+ - usb: gadget: composite: Fix use-after-free in
+ usb_composite_overwrite_options
+ - [arm64] PCI: aardvark: Move to struct pci_host_bridge IRQ mapping
+ functions
+ - [armhf,armhf] Revert "PCI: tegra: Do not allocate MSI target memory"
+ - direct-io: Prevent NULL pointer access in submit_page_section
+ - fix unbalanced page refcounting in bio_map_user_iov (CVE-2017-12190)
+ - more bio_map_user_iov() leak fixes
+ - bio_copy_user_iov(): don't ignore ->iov_offset
+ - perf script: Add missing separator for "-F ip,brstack" (and brstackoff)
+ - genirq/cpuhotplug: Enforce affinity setting on startup of managed irqs
+ - genirq/cpuhotplug: Add sanity check for effective affinity mask
+ - USB: serial: cp210x: fix partnum regression
+ - USB: serial: console: fix use-after-free on disconnect
+ - USB: serial: console: fix use-after-free after failed setup
+ - RAS/CEC: Use the right length for "cec_disable"
+ - [x86] alternatives: Fix alt_max_short macro to really be a max()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.13.9
+ - [x86] apic: Silence "FW_BUG TSC_DEADLINE disabled due to Errata" on CPUs
+ without the feature
+ - [x86] apic: Silence "FW_BUG TSC_DEADLINE disabled due to Errata" on
+ hypervisors
+ - [armhf,arm64] perf pmu: Unbreak perf record for arm/arm64 with events
+ with explicit PMU
+ - mm: page_vma_mapped: ensure pmd is loaded with READ_ONCE outside of lock
+ - HID: hid-elecom: extend to fix descriptor for HUGE trackball
+ - [x86] Drivers: hv: vmbus: Fix rescind handling issues
+ - [x86] Drivers: hv: vmbus: Fix bugs in rescind handling
+ - [x86] vmbus: simplify hv_ringbuffer_read
+ - [x86] vmbus: refactor hv_signal_on_read
+ - [x86] vmbus: eliminate duplicate cached index
+ - [x86] vmbus: more host signalling avoidance
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.13.10
+ - USB: core: fix out-of-bounds access bug in usb_get_bos_descriptor()
+ - usb: hub: Allow reset retry for USB2 devices on connect bounce
+ - ALSA: usb-audio: Add native DSD support for Pro-Ject Pre Box S2 Digital
+ - can: gs_usb: fix busy loop if no more TX context is available
+ - scsi: qla2xxx: Fix uninitialized work element
+ - nbd: don't set the device size until we're connected
+ - [s390x] cputime: fix guest/irq/softirq times after CPU hotplug
+ - [hppa/parisc] Fix double-word compare and exchange in LWS code on 32-bit
+ kernels
+ - [hppa] Fix detection of nonsynchronous cr16 cycle counters
+ - iio: dummy: events: Add missing break
+ - [armhf] usb: musb: sunxi: Explicitly release USB PHY on exit
+ - [armhf] USB: musb: fix session-bit runtime-PM quirk
+ - [armhf] USB: musb: fix late external abort on suspend
+ - [armhf] usb: musb: musb_cppi41: Fix the address of teardown and autoreq
+ registers
+ - [armhf] usb: musb: musb_cppi41: Fix cppi41_set_dma_mode() for DA8xx
+ - [armhf] usb: musb: musb_cppi41: Configure the number of channels for DA8xx
+ - [armhf] usb: musb: Check for host-mode using is_host_active() on reset
+ interrupt
+ - xhci: Identify USB 3.1 capable hosts by their port protocol capability
+ - xhci: Cleanup current_cmd in xhci_cleanup_command_queue()
+ - usb: xhci: Reset halted endpoint if trb is noop
+ - usb: xhci: Handle error condition in xhci_stop_device()
+ - can: esd_usb2: Fix can_dlc value for received RTR, frames
+ - can: af_can: can_pernet_init(): add missing error handling for kzalloc
+ returning NULL
+ - KEYS: encrypted: fix dereference of NULL user_key_payload
+ - mmc: sdhci-pci: Fix default d3_retune for Intel host controllers
+ - [x86] drm/i915: Use bdw_ddi_translations_fdi for Broadwell
+ - drm/nouveau/kms/nv50: fix oops during DP IRQ handling on non-MST boards
+ - drm/nouveau/bsp/g92: disable by default
+ - drm/nouveau/mmu: flush tlbs before deleting page tables
+ - media: cec: Respond to unregistered initiators, when applicable
+ - media: dvb: i2c transfers over usb cannot be done from stack
+ - ALSA: seq: Enable 'use' locking in all configurations
+ - ALSA: hda: Remove superfluous '-' added by printk conversion
+ - ALSA: hda: Abort capability probe at invalid register read
+ - [x86] i2c: ismt: Separate I2C block read from SMBus block read
+ - [x86] i2c: piix4: Fix SMBus port selection for AMD Family 17h chips
+ - Revert "tools/power turbostat: stop migrating, unless '-m'"
+ - brcmfmac: Add check for short event packets
+ - brcmsmac: make some local variables 'static const' to reduce stack size
+ - [armhf] dts: sun6i: Fix endpoint IDs in second display pipeline
+ - [i386] clockevents/drivers/cs5535: Improve resilience to spurious
+ interrupts
+ - rtlwifi: rtl8821ae: Fix connection lost problem
+ - [x86] microcode/intel: Disable late loading on model 79
+ - lib/digsig: fix dereference of NULL user_key_payload
+ - fscrypt: fix dereference of NULL user_key_payload
+ - ecryptfs: fix dereference of NULL user_key_payload
+ - KEYS: Fix race between updating and finding a negative key
+ (CVE-2017-15951)
+ - FS-Cache: fix dereference of NULL user_key_payload
+ - KEYS: don't let add_key() update an uninstantiated key (CVE-2017-15299)
+ - pkcs7: Prevent NULL pointer dereference, since sinfo is not always set.
+ - [arm64] dts: rockchip: correct vqmmc voltage for rk3399 platforms
+ - ALSA: hda - Fix incorrect TLV callback check introduced during set_fs()
+ removal
+ - iomap_dio_rw: Allocate AIO completion queue before submitting dio
+ - xfs: don't unconditionally clear the reflink flag on zero-block files
+ - xfs: evict CoW fork extents when performing finsert/fcollapse
+ - fs/xfs: Use %pS printk format for direct addresses
+ - xfs: report zeroed or not correctly in xfs_zero_range()
+ - xfs: update i_size after unwritten conversion in dio completion
+ - xfs: perag initialization should only touch m_ag_max_usable for AG 0
+ - xfs: Capture state of the right inode in xfs_iflush_done
+ - xfs: always swap the cow forks when swapping extents
+ - xfs: handle racy AIO in xfs_reflink_end_cow
+ - xfs: Don't log uninitialised fields in inode structures
+ - xfs: move more RT specific code under CONFIG_XFS_RT
+ - xfs: don't change inode mode if ACL update fails
+ - xfs: reinit btree pointer on attr tree inactivation walk
+ - xfs: handle error if xfs_btree_get_bufs fails
+ - xfs: cancel dirty pages on invalidation
+ - xfs: trim writepage mapping to within eof
+ - xfs: move two more RT specific functions into CONFIG_XFS_RT
+
+ [ Ben Hutchings ]
+ * [arm64] brcmfmac: Enable BRCMFMAC_SDIO (Closes: #877911)
+ * Update build dependencies on libbabeltrace[,-ctf}-dev
+ * linux-kbuild: Include scripts/ld-version.sh, needed for powerpc 64-bit
+ modules
+ * dax: Avoid most ABI changes in 4.13.5
+ * SCSI: Avoid ABI change in 4.13.6
+ * [x86] kvm: Ignore ABI change in 4.13.6
+ * inet, l2tp, snd-seq, usb/gadget: Ignore ABI changes
+ * [armel,armhf] mbus: Ignore ABI change in 4.13.10
+ * Revert "bpf: one perf event close won't free bpf program attached ..."
+ to avoid an ABI change
+ * [armel] security: Enable SECURITY_APPARMOR and disable SECURITY_SELINUX
+ * security: Enable DEFAULT_SECURITY_APPARMOR
+ * mac80211: Avoid ABI change in 4.13.5
+ * [x86] rmi4: Enable RMI4_SMB as module (Closes: #875621)
+ * KEYS: Limit ABI change in 4.13.10
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 30 Oct 2017 15:32:11 +0000
+
+linux (4.13.4-2) unstable; urgency=medium
+
+ [ Ben Hutchings ]
+ * [armhf,arm64] thermal: Enable BCM2835_THERMAL as module (Closes: #877699)
+
+ [ Salvatore Bonaccorso ]
+ * brcmfmac: add length check in brcmf_cfg80211_escan_handler()
+ (CVE-2017-0786)
+ * [powerpc*] Use emergency stack for kernel TM Bad Thing program
+ (CVE-2017-1000255)
+ * [powerpc*] Fix illegal TM state in signal handler
+ * mac80211: fix deadlock in driver-managed RX BA session start.
+ Thanks to Eric Côté (Closes: #878092)
+ * KEYS: prevent KEYCTL_READ on negative key (CVE-2017-12192)
+ * waitid(): Add missing access_ok() checks (CVE-2017-5123)
+ * ALSA: seq: Fix use-after-free at creating a port (CVE-2017-15265)
+ * [x86] KVM: nVMX: update last_nonleaf_level when initializing nested EPT
+ (CVE-2017-12188)
+ * [x86] KVM: MMU: always terminate page walks at level 1 (CVE-2017-12188)
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Sun, 15 Oct 2017 08:57:36 +0200
+
+linux (4.13.4-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.13.3
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.13.4
+
+ [ Ben Hutchings ]
+ * [armhf,arm64] mmc: Enable MMC_BCM2835 (Closes: #845422)
+ * [arm64ilp32] Build a linux-libc-dev package (Closes: #874536)
+ * [mips*r6*] Re-enable these architectures, now that dak knows about them
+ (Closes: #825024)
+ * [x86] Enable INTEL_CHT_INT33FE as module (Closes: #873164)
+ * [armhf] Enable AXP20X_ADC, CHARGER_AXP20X, BATTERY_AXP20X, GPIO_AXP209,
+ AXP288_CHARGER, AXP288_FUEL_GAUGE, EXTCON_AXP288, AXP288_ADC as modules
+ (Closes: #873038)
+ * thp: Enable TRANSPARENT_HUGEPAGE_ALWAYS instead of
+ TRANSPARENT_HUGEPAGE_MADVISE
+ * ALSA: Enable SND_OSSEMUL, a new dependency of SND_{MIXER,PCM}_OSS
+ * [armel] rtc: Disable RTC_NVMEM
+ * [x86] hyperv-daemons: Use pid file name in init script status operation
+ * Update policy version to 4.1.1:
+ - linux-doc: Build an empty package when the nodoc profile is used
+ - [x86] hyperv-daemons: Create pid files under /run, not /var/run
+ - Change all binary packages with priority: extra to priority: optional
+ - Install copyright file (and some other documentation) when the nodoc
+ profile is used
+ * debian/control: Move many build dependencies to Build-Depends-Arch field
+ * debian/control: Remove obsolete workarounds and alternate build deps
+ * usbip: Stop building broken libusbip-dev package
+ * Rename lintian-overrides template files to be consistent
+ * linux-image-dbg: Override lintian errors binary-from-other-architecture and
+ shlib-without-PT_GNU_STACK-section for vDSOs
+ * [armhf] dts: exynos: Add dwc3 SUSPHY quirk (Closes: #843448)
+ * liblockdep: Make missing function declarations fatal errors, to catch use
+ of missing kernel APIs
+ * liblockdep: Define pr_cont()
+ * Set ABI to 1
+
+ [ Uwe Kleine-König ]
+ * [arm64] really enable NET_DSA_MV88E6XXX for Espressobin
+
+ [ John Paul Adrian Glaubitz ]
+ * [m68k] Enable CONFIG_PATA_FALCON as module.
+
+ [ Salvatore Bonaccorso ]
+ * fix infoleak in waitid(2) (CVE-2017-14954)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 01 Oct 2017 15:52:09 +0100
+
+linux (4.13.2-1~exp1) experimental; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.13.2
+
+ [ Uwe Kleine-König ]
+ * USB/misc: reenable UCSI which got lost due to upstream changes
+ * update kernel config templates for upstream changes
+ * [amd64] enable CONFIG_SPI_PXA2XX for Apple MacBook Pro (Closes: #872004)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 19 Sep 2017 18:35:42 +0100
+
+linux (4.13.1-1~exp1) experimental; urgency=medium
+
+ * New upstream release: https://kernelnewbies.org/Linux_4.13
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.13.1
+
+ [ Roger Shimizu ]
+ * debian/bin/buildcheck.py:
+ Add check for uncompressed Image size, which is necessary for
+ armel/marvell flavour currently.
+
+ [ Ben Hutchings ]
+ * [mips*/octeon] mmc: Enable MMC_CAVIUM_OCTEON as module (Closes: #800594)
+
+ [ Uwe Kleine-König ]
+ * [arm64] enable NET_DSA_MV88E6XXX for Espressobin.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 11 Sep 2017 05:40:04 +0100
+
+linux (4.13~rc7-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [sh4] Do not use hyphen in exported variable names (fixes FTBFS)
+ * aufs: Update support patchset to aufs4.x-rcN-20170828
+
+ [ Roger Shimizu ]
+ * [armel] Disable CONFIG_STRICT_KERNEL_RWX, which will save about 3MB
+ on linux Image (before compression). (Closes: #870185)
+ * [armel] Change MTD_OF_PARTS, MTD_BLOCK, and MTD_PHYSMAP_OF from
+ built-in to modules.
+ Also change all RTC related except RTC_DRV_MV, which includes
+ RTC_DRV_DS1307, RTC_DRV_RS5C372, RTC_DRV_PCF8563, RTC_DRV_M41T80,
+ and RTC_DRV_S35390A, to modules. Because most marvell boards use
+ RTC_DRV_MV. (above two fix FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 30 Aug 2017 20:39:57 +0100
+
+linux (4.13~rc5-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * cpupower: Add/update definition of MSRHEADER macro for turbostat and
+ x86_energy_perf_policy
+ * Remove support for upstream DocBook-based documentation, including the
+ linux-manual package
+ * liblockdep: Re-enable liblockdep packages following upstream fixes
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 14 Aug 2017 23:20:50 +0100
+
+linux (4.12.13-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.13
+ - mtd: nand: make Samsung SLC NAND usable again
+ - mtd: nand: hynix: add support for 20nm NAND chips
+ - [armhf] mtd: nand: mxc: Fix mxc_v1 ooblayout
+ - nvme-fabrics: generate spec-compliant UUID NQNs
+ - btrfs: resume qgroup rescan on rw remount
+ - rtlwifi: btcoexist: Fix breakage of ant_sel for rtl8723be
+ - radix-tree: must check __radix_tree_preload() return value
+ - mm: kvfree the swap cluster info if the swap file is unsatisfactory
+ - mm/swapfile.c: fix swapon frontswap_map memory leak on error
+ - mm/memory.c: fix mem_cgroup_oom_disable() call missing
+ - [i386] ALSA: msnd: Optimize / harden DSP and MIDI loops
+ - [x86] KVM: SVM: Limit PFERR_NESTED_GUEST_PAGE error_code check to L1 guest
+ - rt2800: fix TX_PIN_CFG setting for non MT7620 chips
+ - Bluetooth: Properly check L2CAP config option output buffer length
+ (CVE-2017-1000251) (Closes: #875881)
+ - [arm64] dts: marvell: armada-37xx: Fix GIC maintenance interrupt
+ - [armel,armhf] 8692/1: mm: abort uaccess retries upon fatal signal
+ - NFS: Fix 2 use after free issues in the I/O code
+ - NFS: Sync the correct byte range during synchronous writes
+ - NFSv4: Fix up mirror allocation
+ - xfs: XFS_IS_REALTIME_INODE() should be false if no rt device present
+ (CVE-2017-14340)
+
+ [ Salvatore Bonaccorso ]
+ * sctp: Avoid out-of-bounds reads from address storage (CVE-2017-7558)
+ * scsi: qla2xxx: Fix an integer overflow in sysfs code (CVE-2017-14051)
+ * Add ABI reference for 4.12.0-2
+
+ [ Ben Hutchings ]
+ * nl80211: check for the required netlink attributes presence (CVE-2017-12153)
+ * [x86] kvm: nVMX: Don't allow L2 to access the hardware CR8 (CVE-2017-12154)
+ * video: fbdev: aty: do not leak uninitialized padding in clk to userspace
+ (CVE-2017-14156)
+ * scsi: fix the issue that iscsi_if_rx doesn't parse nlmsg properly
+ (CVE-2017-14489)
+ * packet: Don't write vnet header beyond end of buffer (CVE-2017-14497)
+ * [x86] KVM: VMX: Do not BUG() on out-of-bounds guest IRQ (CVE-2017-1000252)
+ * nfs: Ignore ABI change
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 19 Sep 2017 01:59:17 +0100
+
+linux (4.12.12-2) unstable; urgency=medium
+
+ * debian/source/lintian-overrides: Override license-problem-gfdl-invariants
+ error triggered by a ReSTified copy of the GFDL
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 11 Sep 2017 04:35:28 +0100
+
+linux (4.12.12-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.7
+ - ppp: Fix false xmit recursion detect with two ppp devices
+ - ppp: fix xmit recursion detection on ppp channels
+ - tcp: avoid setting cwnd to invalid ssthresh after cwnd reduction states
+ - net: fix keepalive code vs TCP_FASTOPEN_CONNECT
+ - ipv6: set rt6i_protocol properly in the route when it is installed
+ - [s390x] bpf: fix jit branch offset related to ldimm64
+ - net/mlx4_en: don't set CHECKSUM_COMPLETE on SCTP packets
+ - net: sched: set xt_tgchk_param par.net properly in ipt_init_target
+ - net: sched: set xt_tgchk_param par.nft_compat as 0 in ipt_init_target
+ - tcp: fastopen: tcp_connect() must refresh the route
+ - qmi_wwan: fix NULL deref on disconnect
+ - net: avoid skb_warn_bad_offload false positives on UFO
+ - igmp: Fix regression caused by igmp sysctl namespace code.
+ - scsi: sg: only check for dxfer_len greater than 256M
+ - btrfs: Remove false alert when fiemap range is smaller than on-disk
+ extent
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.8
+ - mm: ratelimit PFNs busy info message
+ - mm: fix list corruptions on shmem shrinklist
+ - futex: Remove unnecessary warning from get_futex_key
+ - xfs: Fix leak of discard bio
+ - [armhf] pinctrl: armada-37xx: Fix number of pin in south bridge
+ - mtd: nand: Fix timing setup for NANDs that do not support SET FEATURES
+ - mtd: nand: Declare tBERS, tR and tPROG as u64 to avoid integer overflow
+ - iscsi-target: fix memory leak in iscsit_setup_text_cmd()
+ - iscsi-target: Fix iscsi_np reset hung task during parallel delete
+ - usb-storage: fix deadlock involving host lock and scsi_done
+ - target: Fix node_acl demo-mode + uncached dynamic shutdown regression
+ - fuse: initialize the flock flag in fuse_file on allocation
+ - i2c: designware: Some broken DSTDs use 1MiHz instead of 1MHz
+ - nand: fix wrong default oob layout for small pages using soft ecc
+ - mmc: mmc: correct the logic for setting HS400ES signal voltage
+ - nfs/flexfiles: fix leak of nfs4_ff_ds_version arrays
+ - [armhf] drm/etnaviv: Fix off-by-one error in reloc checking
+ - [x86] drm/i915: Fix out-of-bounds array access in bdw_load_gamma_lut
+ - [armhf] usb: musb: fix tx fifo flush handling again
+ - USB: hcd: Mark secondary HCD as dead if the primary one died
+ - [armhf] iio: accel: st_accel: add SPI-3wire support
+ - [x86] iio: accel: bmc150: Always restore device to normal mode after
+ suspend-resume
+ - iio: light: tsl2563: use correct event code
+ - staging: comedi: comedi_fops: do not call blocking ops when !TASK_RUNNING
+ - uas: Add US_FL_IGNORE_RESIDUE for Initio Corporation INIC-3069
+ - firmware: fix batched requests - wake all waiters
+ - firmware: fix batched requests - send wake up on failure on direct lookups
+ - firmware: avoid invalid fallback aborts by using killable wait
+ - block: Make blk_mq_delay_kick_requeue_list() rerun the queue at a quiet
+ time
+ - USB: Check for dropped connection before switching to full speed
+ - usb: core: unlink urbs from the tail of the endpoint's urb_list
+ - usb: quirks: Add no-lpm quirk for Moshi USB to Ethernet Adapter
+ - usb:xhci:Add quirk for Certain failing HP keyboard on reset after resume
+ - PCI: Protect pci_error_handlers->reset_notify() usage with device_lock()
+ - xhci: Reset Renesas uPD72020x USB controller for 32-bit DMA issue
+ - pnfs/blocklayout: require 64-bit sector_t
+ - [x86] pinctrl: cherryview: Add Setzer models to the Chromebook DMI quirk
+ - [armhf] pinctrl: sunxi: add a missing function of A10/A20 pinctrl driver
+ - [x86] pinctrl: intel: merrifield: Correct UART pin lists
+ - [armhf] pinctrl: samsung: Remove bogus irq_[un]mask from resource
+ management
+ - [arm64] pinctrl: meson-gxbb: Add missing GPIODV_18 pin entry
+ - [arm64] pinctrl: meson-gxl: Add missing GPIODV_18 pin entry
+ - [mips*] Revert "MIPS: Don't unnecessarily include kmalloc.h into
+ <asm/cache.h>."
+ - [mips*/octeon] Fix broken EDAC driver.
+ - [ppc64el] Fix /proc/cpuinfo revision for POWER9 DD2
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.9
+ - audit: Fix use after free in audit_remove_watch_rule()
+ - [hppa] pci memory bar assignment fails with 64bit kernels on dino/cujo
+ - [x86] crypto: sha1 - Fix reads beyond the number of blocks passed
+ - [x86] drm/i915: Perform an invalidate prior to executing golden
+ renderstate
+ - drm/amdgpu: save list length when fence is signaled
+ - md: fix test in md_write_start()
+ - md: always clear ->safemode when md_check_recovery gets the mddev lock.
+ - MD: not clear ->safemode for external metadata array
+ - ALSA: seq: 2nd attempt at fixing race creating a queue
+ - ALSA: usb-audio: Apply sample rate quirk to Sennheiser headset
+ - ALSA: usb-audio: Add mute TLV for playback volumes on C-Media devices
+ - ALSA: usb-audio: add DSD support for new Amanero PID
+ - mm: discard memblock data later
+ - slub: fix per memcg cache leak on css offline
+ - mm: fix double mmap_sem unlock on MMF_UNSTABLE enforced SIGBUS
+ - mm/cma_debug.c: fix stack corruption due to sprintf usage
+ - mm/mempolicy: fix use after free when calling get_mempolicy
+ - mm/vmalloc.c: don't unconditonally use __GFP_HIGHMEM
+ - [amd64,arm64] mm: revert x86_64 and arm64 ELF_ET_DYN_BASE base changes
+ - xen: fix bio vec merging (CVE-2017-12134) (Closes: #866511)
+ - [armhf] ARM: dts: imx6qdl-nitrogen6_som2: fix PCIe reset
+ - blk-mq-pci: add a fallback when pci_irq_get_affinity returns NULL
+ - [powerpc*] Fix VSX enabling/flushing to also test MSR_FP and MSR_VEC
+ - xen-blkfront: use a right index when checking requests
+ - [x86] perf: Fix RDPMC vs. mm_struct tracking
+ - [amd64] asm: Clear AC on NMI entries
+ - [x86] Fix norandmaps/ADDR_NO_RANDOMIZE
+ - [x86] elf: Remove the unnecessary ADDR_NO_RANDOMIZE checks
+ - genirq: Restore trigger settings in irq_modify_status()
+ - genirq/ipi: Fixup checks against nr_cpu_ids
+ - kernel/watchdog: Prevent false positives with turbo modes
+ - Sanitize 'move_pages()' permission checks (CVE-2017-14140)
+ - pids: make task_tgid_nr_ns() safe
+ - debug: Fix WARN_ON_ONCE() for modules
+ - usb: optimize acpi companion search for usb port devices
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.10
+ - [sparc64] remove unnecessary log message
+ - bonding: require speed/duplex only for 802.3ad, alb and tlb
+ - bonding: ratelimit failed speed/duplex update warning
+ - af_key: do not use GFP_KERNEL in atomic contexts
+ - dccp: purge write queue in dccp_destroy_sock()
+ - dccp: defer ccid_hc_tx_delete() at dismantle time
+ - ipv4: fix NULL dereference in free_fib_info_rcu()
+ - net_sched/sfq: update hierarchical backlog when drop packet
+ - net_sched: remove warning from qdisc_hash_add
+ - bpf: fix bpf_trace_printk on 32 bit archs
+ - net: igmp: Use ingress interface rather than vrf device
+ - openvswitch: fix skb_panic due to the incorrect actions attrlen
+ - ptr_ring: use kmalloc_array()
+ - ipv4: better IP_MAX_MTU enforcement
+ - nfp: fix infinite loop on umapping cleanup
+ - tun: handle register_netdevice() failures properly
+ - sctp: fully initialize the IPv6 address in sctp_v6_to_addr()
+ - tipc: fix use-after-free
+ - ipv6: reset fn->rr_ptr when replacing route
+ - ipv6: repair fib6 tree in failure case
+ - tcp: when rearming RTO, if RTO time is in past then fire RTO ASAP
+ - net/mlx4_core: Enable 4K UAR if SRIOV module parameter is not enabled
+ - irda: do not leak initialized list.dev to userspace
+ - net: sched: fix NULL pointer dereference when action calls some targets
+ - net_sched: fix order of queue length updates in qdisc_replace()
+ - bpf, verifier: add additional patterns to evaluate_reg_imm_alu
+ - bpf: fix mixed signed/unsigned derived min/max value bounds
+ - bpf/verifier: fix min/max handling in BPF_SUB
+ - Input: ALPS - fix two-finger scroll breakage in right side on ALPS
+ touchpad
+ - [s390x] KVM: sthyi: fix sthyi inline assembly
+ - [s390x] KVM: sthyi: fix specification exception detection
+ - [x86] KVM: simplify handling of PKRU
+ - [x86] KVM, pkeys: do not use PKRU value in vcpu->arch.guest_fpu.state
+ - [x86] KVM: block guest protection keys unless the host has them enabled
+ - ALSA: core: Fix unexpected error at replacing user TLV
+ - ALSA: firewire: fix NULL pointer dereference when releasing
+ uninitialized data of iso-resource
+ - ALSA: firewire-motu: destroy stream data surely at failure of card
+ initialization
+ - PM/hibernate: touch NMI watchdog when creating snapshot
+ - mm, shmem: fix handling /sys/kernel/mm/transparent_hugepage/shmem_enabled
+ - dax: fix deadlock due to misaligned PMD faults
+ - i2c: designware: Fix system suspend
+ - mm/madvise.c: fix freeing of locked page with MADV_FREE
+ - fork: fix incorrect fput of ->exe_file causing use-after-free
+ - mm/memblock.c: reversed logic in memblock_discard()
+ - [arm64] fpsimd: Prevent registers leaking across exec
+ - drm: Fix framebuffer leak
+ - drm: Release driver tracking before making the object available again
+ - [armhf] drm/sun4i: Implement drm_driver lastclose to restore fbdev
+ console
+ - drm/atomic: Handle -EDEADLK with out-fences correctly
+ - drm/atomic: If the atomic check fails, return its value first
+ - [x86] drm/i915/vbt: ignore extraneous child devices for a port
+ - [x86] drm/i915/gvt: Fix the kernel null pointer error
+ - Revert "drm/amdgpu: fix vblank_time when displays are off"
+ - ACPI: device property: Fix node lookup in
+ acpi_graph_get_child_prop_value()
+ - tracing: Call clear_boot_tracer() at lateinit_sync
+ - tracing: Missing error code in tracer_alloc_buffers()
+ - tracing: Fix kmemleak in tracing_map_array_free()
+ - tracing: Fix freeing of filter in create_filter() when set_str is false
+ - RDMA/uverbs: Initialize cq_context appropriately
+ - cifs: Fix df output for users with quota limits
+ - cifs: return ENAMETOOLONG for overlong names in
+ cifs_open()/cifs_lookup()
+ - nfsd: Limit end of page list when decoding NFSv4 WRITE
+ - ring-buffer: Have ring_buffer_alloc_read_page() return error on offline
+ CPU
+ - virtio_pci: fix cpu affinity support
+ - ftrace: Check for null ret_stack on profile function graph entry
+ function
+ - perf/core: Fix group {cpu,task} validation
+ - timers: Fix excessive granularity of new timers after a nohz idle
+ - [x86] mm: Fix use-after-free of ldt_struct
+ - net: sunrpc: svcsock: fix NULL-pointer exception
+ - netfilter: expect: fix crash when putting uninited expectation
+ - netfilter: nat: fix src map lookup
+ - netfilter: nfnetlink: Improve input length sanitization in nfnetlink_rcv
+ - Bluetooth: hidp: fix possible might sleep error in hidp_session_thread
+ - Bluetooth: cmtp: fix possible might sleep error in cmtp_session
+ - Bluetooth: bnep: fix possible might sleep error in bnep_session
+ - iio: hid-sensor-trigger: Fix the race with user space powering up
+ sensors
+ - iommu: Fix wrong freeing of iommu_device->dev
+ - Clarify (and fix) MAX_LFS_FILESIZE macros
+ - ACPI: EC: Fix regression related to wrong ECDT initialization order
+ - [powerpc*] mm: Ensure cpumask update is ordered
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.11
+ - [arm64] mm: abort uaccess retries upon fatal signal
+ - [x86] io: Add "memory" clobber to insb/insw/insl/outsb/outsw/outsl
+ - [mips*] irqchip: mips-gic: SYNC after enabling GIC region
+ - Input: synaptics - fix device info appearing different on reconnect
+ - Input: xpad - fix PowerA init quirk for some gamepad models
+ - crypto: chacha20 - fix handling of chunked input
+ - [x86] i2c: ismt: Don't duplicate the receive length for block reads
+ - [x86] i2c: ismt: Return EMSGSIZE for block reads with bogus length
+ - crypto: algif_skcipher - only call put_page on referenced and used pages
+ - mm, uprobes: fix multiple free of ->uprobes_state.xol_area
+ - mm, madvise: ensure poisoned pages are removed from per-cpu lists
+ - ceph: fix readpage from fscache
+ - cpumask: fix spurious cpumask_of_node() on non-NUMA multi-node configs
+ - cpuset: Fix incorrect memory_pressure control file mapping
+ - CIFS: Fix maximum SMB2 header size
+ - CIFS: remove endian related sparse warning
+ - dm mpath: do not lock up a CPU with requeuing activity
+ - [x86] drm/vmwgfx: Fix F26 Wayland screen update issue
+ - [arm64, armhf] wl1251: add a missing spin_lock_init()
+ - [arm64] mmc: sdhci-xenon: add set_power callback
+ - lib/mpi: kunmap after finishing accessing buffer
+ - xfrm: policy: check policy direction value
+ - drm/ttm: Fix accounting error when fail to get pages for pool
+ - nvme: fix the definition of the doorbell buffer config support bit
+ - drm/nouveau/i2c/gf119-: add support for address-only transactions
+ - epoll: fix race between ep_poll_callback(POLLFREE) and
+ ep_free()/ep_remove()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.12
+ - usb: quirks: add delay init quirk for Corsair Strafe RGB keyboard
+ - USB: serial: option: add support for D-Link DWM-157 C1
+ - usb: Add device quirk for Logitech HD Pro Webcam C920-C
+ - usb:xhci:Fix regression when ATI chipsets detected
+ - [armhf] USB: musb: fix external abort on suspend
+ - USB: core: Avoid race of async_completed() w/ usbdev_release()
+ - [x86] staging/rts5208: fix incorrect shift to extract upper nybble
+ - iio: adc: ti-ads1015: fix incorrect data rate setting update
+ - iio: adc: ti-ads1015: fix scale information for ADS1115
+ - iio: adc: ti-ads1015: enable conversion when CONFIG_PM is not set
+ - iio: adc: ti-ads1015: avoid getting stale result after runtime resume
+ - iio: adc: ti-ads1015: don't return invalid value from buffer setup
+ callbacks
+ - iio: adc: ti-ads1015: add adequate wait time to get correct conversion
+ - driver core: bus: Fix a potential double free
+ - HID: wacom: Do not completely map WACOM_HID_WD_TOUCHRINGSTATUS usage
+ - [x86] intel_th: pci: Add Cannon Lake PCH-H support
+ - [x86] intel_th: pci: Add Cannon Lake PCH-LP support
+ - ath10k: fix memory leak in rx ring buffer allocation
+ - Input: trackpoint - assume 3 buttons when buttons detection fails
+ - rtlwifi: rtl_pci_probe: Fix fail path of _rtl_pci_find_adapter
+ - Bluetooth: Add support of 13d3:3494 RTL8723BE device
+ - iwlwifi: pci: add new PCI ID for 7265D
+ - dlm: avoid double-free on error path in dlm_device_{register,unregister}
+ - mwifiex: correct channel stat buffer overflows
+ - [s390x] mm: avoid empty zero pages for KVM guests to avoid postcopy
+ hangs
+ - [s390x] mm: fix BUG_ON in crst_table_upgrade
+ - drm/nouveau/pci/msi: disable MSI on big-endian platforms by default
+ - drm/nouveau: Fix error handling in nv50_disp_atomic_commit
+ - workqueue: Fix flag collision
+ - ahci: don't use MSI for devices with the silly Intel NVMe remapping
+ scheme
+ - cs5536: add support for IDE controller variant
+ - scsi: sg: protect against races between mmap() and SG_SET_RESERVED_SIZE
+ - scsi: sg: recheck MMAP_IO request length with lock held
+ - of/device: Prevent buffer overflow in of_device_modalias()
+ - rtlwifi: Fix memory leak when firmware request fails
+ - rtlwifi: Fix fallback firmware loading
+
+ [ Ben Hutchings ]
+ * [alpha] udeb: Add i2c-modules (fixes FTBFS)
+ * cpupower: Add/update definition of MSRHEADER macro for turbostat and
+ x86_energy_perf_policy (Closes: #872414)
+ * Bump ABI to 2
+
+ [ Roger Shimizu ]
+ * [armel] Disable CONFIG_STRICT_KERNEL_RWX, which will save about 3MB
+ on linux Image (before compression). (Closes: #870185)
+
+ [ Uwe Kleine-König ]
+ * mtd: nandsim: remove debugfs entries in error path
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 10 Sep 2017 19:42:51 +0100
+
+linux (4.12.6-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.3
+ - brcmfmac: fix possible buffer overflow in brcmf_cfg80211_mgmt_tx()
+ (CVE-2017-7541)
+ - [sparc64] Adding asm-prototypes.h for genksyms to generate crc
+ - [sparc64] sed regex in Makefile.build requires line break between
+ exported symbols
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.4
+ - f2fs: sanity check checkpoint segno and blkoff (CVE-2017-10663)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.5
+ - dentry name snapshots (CVE-2017-7533)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.6
+ - saa7164: fix double fetch PCIe access condition (CVE-2017-8831)
+ - ipv6: avoid overflow of offset in ip6_find_1stfragopt (CVE-2017-7542)
+
+ [ Ben Hutchings ]
+ * media: Enable USB_RAINSHADOW_CEC as module (see #868511)
+ * Clean up symbol version fixes for symbols exported from asm
+ (fixes FTBFS on sparc64):
+ - [alpha] Un-revert "alpha: move exports to actual definitions"
+ - [alpha] Restore symbol versions for symbols exported from assembly
+ - [m68k] Un-revert "m68k: move exports to definitions"
+ - [sparc64] Un-revert "sparc: move exports to definitions"
+ * [mips*/octeon] Fix broken EDAC driver (fixes FTBFS)
+ * [armhf] Revert "gpu: host1x: Add IOMMU support"
+ * [armhf] udeb: Replace imx-ipuv3-crtc with imxdrm in fb-modules
+ * [i386] perf tools: Fix unwind build (fixes FTBFS)
+ * debian/control: Fix version in dependencies on arch-independent
+ linux-headers-*-common* (Closes: #869511)
+ * xfrm: policy: check policy direction value (CVE-2017-11600)
+ * rtlwifi: Fix memory leak when firmware request fails
+ * rtlwifi: Fix fallback firmware loading (Closes: #869084)
+ * [arm64] video: Enable FRAMEBUFFER_CONSOLE (Closes: #870071)
+ * integrity: Enable INTEGRITY_SIGNATURE, INTEGRITY_ASYMMETRIC_KEYS
+ (Closes: #869565)
+ * [x86] sound: Enable SND_X86; enable HDMI_LPE_AUDIO as module
+ (Closes: #869372)
+ * blk-mq: Change MQ_IOSCHED_KYBER from built-in to module
+ * blk-mq: Enable IOSCHED_BFQ as module (Closes: #869028); enable
+ BFQ_GROUP_IOSCHED
+ * bfq: Enable auto-loading when built as a module
+ * netfilter: Enable NFT_FIB_IPV4, NFT_FIB_IPV6, NFT_FIB_INET as modules
+ (Closes: #868803)
+ * [amd64,arm64] mm: Revert x86_64 and arm64 ELF_ET_DYN_BASE base
+ (Closes: #869090)
+
+ [ Salvatore Bonaccorso ]
+ * packet: fix tp_reserve race in packet_set_ring (CVE-2017-1000111)
+ * udp: consistently apply ufo or fragmentation (CVE-2017-1000112)
+ * Set ABI to 1
+
+ [ Uwe Kleine-König ]
+ * [arm64] enable MMC_SDHCI_XENON and MVNETA for Espressobin and enable
+ respective device in its device tree (Closes: #871049)
+
+ [ Roger Shimizu ]
+ * [armel] Change NAND related stuff to modules (fixes FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 12 Aug 2017 23:09:26 +0100
+
+linux (4.12.2-1~exp1) experimental; urgency=medium
+
+ * New upstream release: https://kernelnewbies.org/Linux_4.12
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.1
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.2
+
+ [ Ben Hutchings ]
+ * Add script to regenerate lockdown patch series from git
+ * [rt] Disable until it is updated for 4.12 or later
+ * scripts/mod: Update modpost wrapper for 4.12
+ * Set ABI name to trunk
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 18 Jul 2017 12:19:38 +0100
+
+linux (4.11.11-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.11.7
+ - fs: pass on flags in compat_writev
+ - configfs: Fix race between create_link and configfs_rmdir
+ - can: gs_usb: fix memory leak in gs_cmd_reset()
+ - ila_xlat: add missing hash secret initialization
+ - cpufreq: conservative: Allow down_threshold to take values from 1 to 10
+ - vb2: Fix an off by one error in 'vb2_plane_vaddr'
+ - cec: race fix: don't return -ENONET in cec_receive()
+ - selinux: fix double free in selinux_parse_opts_str()
+ - mac80211: don't look at the PM bit of BAR frames
+ - mac80211/wpa: use constant time memory comparison for MACs
+ - [x86] drm/amdgpu: Fix overflow of watermark calcs at > 4k resolutions.
+ - [x86] drm/i915: Fix GVT-g PVINFO version compatibility check
+ - [x86] drm/i915: Fix scaling check for 90/270 degree plane rotation
+ - [x86] drm/i915: Do not sync RCU during shrinking
+ - mac80211: fix IBSS presp allocation size
+ - mac80211: strictly check mesh address extension mode
+ - mac80211: fix dropped counter in multiqueue RX
+ - mac80211: don't send SMPS action frame in AP mode when not needed
+ - [arm64, armhf] drm/vc4: Fix OOPSes from trying to cache a partially
+ constructed BO.
+ - serial: 8250_lpss: Unconditionally set PCI master for Quark
+ - [sh4] serial: sh-sci: Fix (AUTO)RTS in sci_init_pins()
+ - [sh4] serial: sh-sci: Fix late enablement of AUTORTS
+ - [x86] mm/32: Set the '__vmalloc_start_set' flag in initmem_init()
+ - [armhf] mfd: axp20x: Add support for dts property "xpowers,master-mode"
+ - [armhf] dt-bindings: mfd: axp20x: Add "xpowers,master-mode" property for
+ AXP806 PMICs
+ - [powerpc] mm: Add physical address to Linux page table dump
+ - staging: rtl8188eu: prevent an underflow in rtw_check_beacon_data()
+ - [armhf] iio: adc: ti_am335x_adc: allocating too much in probe
+ - [x86] ALSA: hda: Add Geminilake id to SKL_PLUS
+ - ALSA: usb-audio: fix Amanero Combo384 quirk on big-endian hosts
+ - USB: hub: fix SS max number of ports
+ - usb: core: fix potential memory leak in error path during hcd creation
+ - [x86] USB: usbip: fix nonconforming hub descriptor
+ - [arm64, armhf] usb: dwc3: gadget: Fix ISO transfer performance
+ - pvrusb2: reduce stack usage pvr2_eeprom_analyze()
+ - USB: gadget: dummy_hcd: fix hub-descriptor removable fields
+ - coda: restore original firmware locations
+ - usb: xhci: Fix USB 3.1 supported protocol parsing
+ - usb: xhci: ASMedia ASM1042A chipset need shorts TX quirk
+ - USB: gadget: fix GPF in gadgetfs
+ - USB: gadgetfs, dummy-hcd, net2280: fix locking for callbacks
+ - mm/memory-failure.c: use compound_head() flags for huge pages
+ - swap: cond_resched in swap_cgroup_prepare()
+ - mm: numa: avoid waiting on freed migrated pages
+ - userfaultfd: shmem: handle coredumping in handle_userfault()
+ - sched/core: Idle_task_exit() shouldn't use switch_mm_irqs_off()
+ - genirq: Release resources in __setup_irq() error path
+ - alarmtimer: Prevent overflow of relative timers
+ - alarmtimer: Rate limit periodic intervals
+ - virtio_balloon: disable VIOMMU support
+ - [mips*] Fix bnezc/jialc return address calculation
+ - [mips*] .its targets depend on vmlinux
+ - [sparc*] crypto: Work around deallocated stack frame reference gcc bug
+ on sparc.
+ - [armhf] dts: am335x-sl50: Fix card detect pin for mmc1
+ - [armhf] dts: am335x-sl50: Fix cannot claim requested pins for spi0
+ - mm: larger stack guard gap, between vmas
+ - Allow stack to grow up to address space limit
+ - mm: fix new crash in unmapped_area_topdown()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.11.8
+ - [armhf] clk: sunxi-ng: a31: Correct lcd1-ch1 clock register offset
+ - [armhf] clk: sunxi-ng: v3s: Fix usb otg device reset bit
+ - [armhf] clk: sunxi-ng: sun5i: Fix ahb_bist_clk definition
+ - xen/blkback: fix disconnect while I/Os in flight
+ - xen-blkback: don't leak stack data via response ring (XSA-216,
+ CVE-2017-10911)
+ - ALSA: firewire-lib: Fix stall of process context at packet error
+ - ALSA: pcm: Don't treat NULL chmap as a fatal error
+ - ALSA: hda - Add Coffelake PCI ID
+ - ALSA: hda - Apply quirks to Broxton-T, too
+ - fs/exec.c: account for argv/envp pointers (CVE-2017-1000365)
+ - [powerpc] perf: Fix oops when kthread execs user process
+ - autofs: sanity check status reported with AUTOFS_DEV_IOCTL_FAIL
+ - fs/dax.c: fix inefficiency in dax_writeback_mapping_range()
+ - lib/cmdline.c: fix get_options() overflow while parsing ranges
+ - [x86] perf/x86/intel: Add 1G DTLB load/store miss support for SKL
+ - perf probe: Fix probe definition for inlined functions
+ - [x86] KVM: fix singlestepping over syscall (CVE-2017-7518)
+ - [s390x] KVM gaccess: fix real-space designation asce handling for gmap
+ shadows
+ - [powerpc*] KVM: Book3S HV: Cope with host using large decrementer mode
+ - [powerpc*] KVM: Book3S HV: Preserve userspace HTM state properly
+ - [powerpc*] KVM: Book3S HV: Ignore timebase offset on POWER9 DD1
+ - [powerpc*] KVM: Book3S HV: Context-switch EBB registers properly
+ - [powerpc*] KVM: Book3S HV: Restore critical SPRs to host values on guest
+ exit
+ - [powerpc*] KVM: Book3S HV: Save/restore host values of debug registers
+ - CIFS: Improve readdir verbosity
+ - CIFS: Fix some return values in case of error in 'crypt_message'
+ - cxgb4: notify uP to route ctrlq compl to rdma rspq
+ - HID: Add quirk for Dell PIXART OEM mouse
+ - random: silence compiler warnings and fix race
+ - signal: Only reschedule timers on signals timers have sent
+ - [powerpc] kprobes: Pause function_graph tracing during jprobes handling
+ - ]powerpc*] 64s: Handle data breakpoints in Radix mode
+ - Input: i8042 - add Fujitsu Lifebook AH544 to notimeout list
+ - brcmfmac: add parameter to pass error code in firmware callback
+ - brcmfmac: use firmware callback upon failure to load
+ - brcmfmac: unbind all devices upon failure in firmware callback
+ - time: Fix clock->read(clock) race around clocksource changes
+ - time: Fix CLOCK_MONOTONIC_RAW sub-nanosecond accounting
+ - [arm64] vdso: Fix nsec handling for CLOCK_MONOTONIC_RAW
+ - target: Fix kref->refcount underflow in transport_cmd_finish_abort
+ - iscsi-target: Fix delayed logout processing greater than
+ SECONDS_FOR_LOGOUT_COMP
+ - iscsi-target: Reject immediate data underflow larger than SCSI transfer
+ length
+ - drm/radeon: add a PX quirk for another K53TK variant
+ - drm/radeon: add a quirk for Toshiba Satellite L20-183
+ - [x86] drm/amdgpu/atom: fix ps allocation size for EnableDispPowerGating
+ - [x86] drm/amdgpu: adjust default display clock
+ - [x86] drm/amdgpu: add Polaris12 DID
+ - ACPI / scan: Apply default enumeration to devices with ACPI drivers
+ - ACPI / scan: Fix enumeration for special SPI and I2C devices
+ - rxrpc: Fix several cases where a padded len isn't checked in ticket
+ decode (CVE-2017-7482)
+ - drm: Fix GETCONNECTOR regression
+ - usb: gadget: f_fs: avoid out of bounds access on comp_desc
+ - spi: double time out tolerance
+ - net: phy: fix marvell phy status reading
+ - netfilter: xtables: zero padding in data_to_user
+ - netfilter: xtables: fix build failure from COMPAT_XT_ALIGN outside
+ CONFIG_COMPAT
+ - brcmfmac: fix uninitialized warning in brcmf_usb_probe_phase2()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.11.9
+ - net: don't call strlen on non-terminated string in dev_set_alias()
+ - net: Fix inconsistent teardown and release of private netdev state.
+ - [s390x] net: fix up for "Fix inconsistent teardown and release of
+ private netdev state"
+ - mac80211: free netdev on dev_alloc_name() error
+ - decnet: dn_rtmsg: Improve input length sanitization in
+ dnrmg_receive_user_skb
+ - net: Zero ifla_vf_info in rtnl_fill_vfinfo()
+ - net: ipv6: Release route when device is unregistering
+ - net: vrf: Make add_fib_rules per network namespace flag
+ - af_unix: Add sockaddr length checks before accessing sa_family in bind
+ and connect handlers
+ - Fix an intermittent pr_emerg warning about lo becoming free.
+ - sctp: disable BH in sctp_for_each_endpoint
+ - net: caif: Fix a sleep-in-atomic bug in cfpkt_create_pfx
+ - net: tipc: Fix a sleep-in-atomic bug in tipc_msg_reverse
+ - net/mlx5: Remove several module events out of ethtool stats
+ - net/mlx5e: Added BW check for DIM decision mechanism
+ - net/mlx5e: Fix wrong indications in DIM due to counter wraparound
+ - net/mlx5: Enable 4K UAR only when page size is bigger than 4K
+ - proc: snmp6: Use correct type in memset
+ - igmp: acquire pmc lock for ip_mc_clear_src()
+ - igmp: add a missing spin_lock_init()
+ - qmi_wwan: new Telewell and Sierra device IDs
+ - net: don't global ICMP rate limit packets originating from loopback
+ - ipv6: fix calling in6_ifa_hold incorrectly for dad work
+ - sctp: return next obj by passing pos + 1 into sctp_transport_get_idx
+ - net/mlx5e: Fix min inline value for VF rep SQs
+ - net/mlx5e: Avoid doing a cleanup call if the profile doesn't have it
+ - net/mlx5: Wait for FW readiness before initializing command interface
+ - net/mlx5e: Fix timestamping capabilities reporting
+ - decnet: always not take dst->__refcnt when inserting dst into hash table
+ - net: 8021q: Fix one possible panic caused by BUG_ON in free_netdev
+ - ipv6: Do not leak throw route references
+ - rtnetlink: add IFLA_GROUP to ifla_policy
+ - netfilter: synproxy: fix conntrackd interaction
+ - NFSv4.x/callback: Create the callback service through svc_create_pooled
+ - xen/blkback: don't use xen_blkif_get() in xen-blkback kthread
+ - [mips*] head: Reorder instructions missing a delay slot
+ - [mips*] Avoid accidental raw backtrace
+ - [mips*] pm-cps: Drop manual cache-line alignment of ready_count
+ - [mips*] Fix IRQ tracing & lockdep when rescheduling
+ - ALSA: hda - Fix endless loop of codec configure
+ - ALSA: hda - set input_path bitmap to zero after moving it to new place
+ - NFSv4.2: Don't send mode again in post-EXCLUSIVE4_1 SETATTR with umask
+ - NFSv4.1: Fix a race in nfs4_proc_layoutget
+ - Revert "NFS: nfs_rename() handle -ERESTARTSYS dentry left behind"
+ - ovl: copy-up: don't unlock between lookup and link
+ - gpiolib: fix filtering out unwanted events
+ - [x86] intel_rdt: Fix memory leak on mount failure
+ - [x86] perf/x86/intel/uncore: Fix wrong box pointer check
+ - [x86] drm/vmwgfx: Free hash table allocated by cmdbuf managed res mgr
+ - dm thin: do not queue freed thin mapping for next stage processing
+ - [x86] mm: Fix boot crash caused by incorrect loop count calculation in
+ sync_global_pgds()
+ - [arm64] pinctrl/amd: Use regular interrupt instead of chained
+ - mm/vmalloc.c: huge-vmap: fail gracefully on unexpected huge vmap
+ mappings
+ - xen/blkback: don't free be structure too early
+ - xfrm6: Fix IPv6 payload_len in xfrm6_transport_finish
+ - xfrm: move xfrm_garbage_collect out of xfrm_policy_flush
+ - xfrm: fix stack access out of bounds with CONFIG_XFRM_SUB_POLICY
+ - xfrm: NULL dereference on allocation failure
+ - xfrm: Oops on error in pfkey_msg2xfrm_state()
+ - [arm64] PCI: Fix struct acpi_pci_root_ops allocation failure path
+ - [arm64] ACPI: Fix BAD_MADT_GICC_ENTRY() macro implementation
+ - [arm*] 8685/1: ensure memblock-limit is pmd-aligned
+ - [arm*] davinci: PM: Free resources in error handling path in
+ 'davinci_pm_init'
+ - [arm*] davinci: PM: Do not free useful resources in normal path in
+ 'davinci_pm_init'
+ - Revert "x86/entry: Fix the end of the stack for newly forked tasks"
+ - [x86] boot/KASLR: Fix kexec crash due to 'virt_addr' calculation bug
+ - [x86] perf: Fix spurious NMI with PEBS Load Latency event
+ - [x86] mpx: Correctly report do_mpx_bt_fault() failures to user-space
+ - [x86] mm: Fix flush_tlb_page() on Xen
+ - ocfs2: o2hb: revert hb threshold to keep compatible
+ - ocfs2: fix deadlock caused by recursive locking in xattr
+ - iommu/dma: Don't reserve PCI I/O windows
+ - [amd64] iommu/amd: Fix incorrect error handling in
+ amd_iommu_bind_pasid()
+ - [amd64] iommu/amd: Fix interrupt remapping when disable guest_mode
+ - mtd: nand: brcmnand: Check flash #WP pin status before nand
+ erase/program
+ - mtd: nand: fsmc: fix NAND width handling
+ - [x86] KVM: fix emulation of RSM and IRET instructions
+ - [x86] KVM: vPMU: fix undefined shift in intel_pmu_refresh()
+ - [x86] KVM: zero base3 of unusable segments
+ - KVM: nVMX: Fix exception injection
+ - esp4: Fix udpencap for local TCP packets.
+ - [armhf] hsi: Fix build regression due to netdev destructor fix.
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.11.10
+ - fs: completely ignore unknown open flags
+ - driver core: platform: fix race condition with driver_override
+ - RDMA/uverbs: Check port number supplied by user verbs cmds
+ - ceph: choose readdir frag based on previous readdir reply
+ - tracing/kprobes: Allow to create probe with a module name starting with a
+ digit
+ - drm/virtio: don't leak bo on drm_gem_object_init failure (CVE-2017-10810)
+ - usb: dwc3: replace %p with %pK
+ - Add USB quirk for HVR-950q to avoid intermittent device resets
+ - usb: usbip: set buffer pointers to NULL after free
+ - usb: Fix typo in the definition of Endpoint[out]Request
+ - USB: core: fix device node leak
+ - [armhf] pinctrl: meson: meson8b: fix the NAND DQS pins
+ - [armhf,arm64] pinctrl: sunxi: Fix SPDIF function name for A83T
+ - pinctrl: core: Fix warning by removing bogus code
+ - [x86] xhci: Limit USB2 port wake support for AMD Promontory hosts
+ - gfs2: Fix glock rhashtable rcu bug
+ - Add "shutdown" to "struct class".
+ - tpm: Issue a TPM2_Shutdown for TPM2 devices.
+ - tpm: fix a kernel memory leak in tpm-sysfs.c
+ - [x86] uaccess: Optimize copy_user_enhanced_fast_string() for short strings
+ - xen: avoid deadlock in xenbus driver
+ - crypto: drbg - Fixes panic in wait_for_completion call
+ - [x86] rt286: add Thinkpad Helix 2 to force_combo_jack_table
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.11.11
+ - mqueue: fix a use-after-free in sys_mq_notify() (CVE-2017-11176)
+ - proc: Fix proc_sys_prune_dcache to hold a sb reference
+ - locking/rwsem-spinlock: Fix EINTR branch in __down_write_common()
+ - [x86] staging: comedi: fix clean-up of comedi_class in comedi_init()
+ - crypto: rsa-pkcs1pad - use constant time memory comparison for MACs
+ - ext4: check return value of kstrtoull correctly in reserved_clusters_store
+ - [x86] mm/pat: Don't report PAT on CPUs that don't support it
+
+ [ Ben Hutchings ]
+ * [m68k] udeb: Use only the common module list for nic-shared-modules
+ (fixes FTBFS)
+ * [sparc64] Update "Revert "sparc: move exports to definitions"" for the
+ addition of __multi3 (fixes FTBFS)
+ * binfmt_elf: use ELF_ET_DYN_BASE only for PIE (CVE-2017-1000370,
+ CVE-2017-1000371)
+ * [rt] Update to 4.11.9-rt7:
+ - smp/hotplug: Move unparking of percpu threads to the control CPU
+ - cpu_pm: replace raw_notifier to atomic_notifier
+ * media: Enable MEDIA_CEC_SUPPORT, VIDEO_VIVID_CEC; USB_PULSE8_CEC as module
+ (Closes: #868511)
+ * [armhf] udeb: Add sunxi_wdt to kernel-image (Closes: #866130)
+ * crypto: Enable CRYPTO_USER, CRYPTO_USER_API_RNG as modules (Closes: #868291)
+ * udeb: Add dm-raid to md-modules (Closes: #868251)
+ * [arm64] sound: Enable SND_HDA_INTEL as module (Closes: #867611)
+ * aufs: Update support patchset to aufs4.11.7+-20170703 (Closes: #867257)
+ * [x86] ideapad-laptop: Add various IdeaPad models to no_hw_rfkill list
+ (Closes: #866706)
+ * firmware: dmi: Add DMI_PRODUCT_FAMILY identification string
+ * [x86] pinctrl: cherryview: Extend the Chromebook DMI quirk to Intel_Strago
+ systems (Closes: #862723)
+ * [armhf] Add ARM Mali Midgard device tree bindings and gpu node for rk3288
+ (thanks to Guillaume Tucker) (Closes: #865646)
+
+ [ Uwe Kleine-König ]
+ * [arm64] enable FB_SIMPLE
+
+ [ Vagrant Cascadian ]
+ * [arm64] Enable support for Rockchip systems (Closes: #860976).
+
+ [ Salvatore Bonaccorso ]
+ * Bump ABI to 2
+ * [rt] Update to 4.11.8-rt5
+
+ [ Cyril Brulebois ]
+ * [arm64,armhf] udeb: Ship usb3503 module in usb-modules, needed for
+ e.g. Arndale development boards, thanks to Wei Liu (Closes: #865645).
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 17 Jul 2017 03:01:21 +0100
+
+linux (4.11.6-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.11.4
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.11.5
+ - [x86] drm/vmwgfx: limit the number of mip levels in
+ vmw_gb_surface_define_ioctl() (CVE-2017-7346)
+ - [x86] drm/vmwgfx: Make sure backup_handle is always valid (CVE-2017-9605)
+ - ALSA: timer: Fix race between read and ioctl (CVE-2017-1000380)
+ - ALSA: timer: Fix missing queue indices reset at SNDRV_TIMER_IOCTL_SELECT
+ (CVE-2017-1000380)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.11.6
+
+ [ John Paul Adrian Glaubitz ]
+ * [m68k] udeb: Build affs-modules package
+ * [m68k] udeb: Build hfs-modules package
+ * [m68k] udeb: Build nic-modules package
+ * [m68k] udeb: Build pata-modules package
+ * [m68k] udeb: Build scsi-core-modules package
+ * [m68k] udeb: Move non-shared modules from nic-shared-modules to nic-modules
+ * [m68k] udeb: Add buddha, falconide, gayle, macide, q40ide to pata-modules
+ * [m68k] udeb: Add atari_scsi, mac_esp, mac_scsi to scsi-modules
+
+ [ Ben Hutchings ]
+ * [x86] Enable SERIAL_8250_MID as built-in (Closes: #864368)
+ * Set ABI to 1
+ * debian/rules.real: Include rules.defs before using architecture variables
+ (Closes: #862842)
+ * [rt] Update to 4.11.5-rt1 and reenable
+ * fs: Reenable HPFS_FS as module (Closes: #864878)
+ * USB: serial: option: add two Longcheer device ids (Closes: #864604)
+ * [armhf] PCI: Enable PCI_HOST_GENERIC (Closes: #864726)
+ * mm: larger stack guard gap, between vmas (CVE-2017-1000364)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 20 Jun 2017 00:25:45 +0100
+
+linux (4.11.3-1~exp1) experimental; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.11.1
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.11.2
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.11.3
+
+ [ Ben Hutchings ]
+ * [armel] udeb: Add af_packet. firmware_class, nls_base to kernel-image
+ (fixes FTBFS)
+ * [m68k] Update 'Revert "m68k: move exports to definitions"' for 4.11
+ (fixes FTBFS) (Closes: #862393)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 05 Jun 2017 14:13:41 +0100
+
+linux (4.11-1~exp2) experimental; urgency=medium
+
+ * [armel/marvell] Change MQ_IOSCHED_DEADLINE, FW_LOADER, HWMON,
+ INPUT_MOUSEDEV, THERMAL, SERIAL_8250_PCI, SERIAL_8250_EXAR, NLS, PACKET
+ from built-in to modules (fixes FTBFS)
+ * usbip: Fix potential format overflow in userspace tools (fixes FTBFS on
+ 64-bit architectures with gcc-7)
+ * [mips*/octeon] Increase RELOCATION_TABLE_SIZE to 0x00110000 (fixes FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 05 May 2017 04:35:12 +0100
+
+linux (4.11-1~exp1) experimental; urgency=medium
+
+ * New upstream release: https://kernelnewbies.org/Linux_4.11
+ (thanks to Lukas Wunner for rebasing up to 4.11-rc6)
+
+ [ Ben Hutchings ]
+ * aufs: Update support patchset to aufs4.x-rcN-20170410
+ * [arm64,x86] Replace securelevel patch set with lockdown patch set
+ * [x86] Make hyperv-modules depends on nic-shared-modules, as hv_utils now
+ implements PTP clock
+ * [arm64] Enable ARCH_SUNXI, RTC_DRV_SUN6I as built-in,
+ MMC_SUNXI and PHY_SUN4I_USB as modules (Closes: #860855)
+ * [arm64] Enable REGULATOR_GPIO as module (Closes: #860222)
+ * block: Enable BLK_WBT, BLK_WBT_MQ (Closes: #859570)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 02 May 2017 20:57:50 +0100
+
+linux (4.10.7-1~exp1) experimental; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.10.1
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.10.2
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.10.3
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.10.4
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.10.5
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.10.6
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.10.7
+
+ [ Ben Hutchings ]
+ * netfilter: Enable NF_SOCKET_IPV4, NF_SOCKET_IPV6 as modules
+ (Closes: #858897)
+ * [s390x] Set NR_CPUS=256 (Closes: #858731)
+ * Enable BUG_ON_DATA_CORRUPTION
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 31 Mar 2017 00:41:15 +0100
+
+linux (4.10-1~exp1) experimental; urgency=medium
+
+ * New upstream release: https://kernelnewbies.org/Linux_4.10
+
+ [ Ben Hutchings ]
+ * aufs: Update support patchset to aufs4.x-rcN-20170206
+ * Set ABI to trunk
+
+ [ Roger Shimizu ]
+ * debian/copyright & debian/README.source:
+ - Prefer https URL than http for security merit.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 22 Feb 2017 20:58:19 +0000
+
+linux (4.10~rc6-1~exp2) experimental; urgency=medium
+
+ * [s390x] Un-revert upstream change moving exports to assembly sources
+ (fixes FTBFS)
+ * [sparc64] topology_64.h: Fix condition for including cpudata.h
+ (might fix FTBFS)
+ * [powerpc*] Fix various build failures:
+ - Revert the initial stack protector support
+ - Fix missing CRC for _mcount
+ - [ppc64el] udeb: Exclude ehea from nic-modules
+ * debian/control: Fix compiler build-dependencies for cross-building
+ * [armel] Adjust configuration to reduce image size (fixes FTBFS):
+ - PCI: Disable PCIEAER, PCIEASPM
+ - net: Disable LWTUNNEL, IPV6_ILA
+ - trace: Disable UPROBE_EVENT
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 02 Feb 2017 03:44:51 +0000
+
+linux (4.10~rc6-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [rt] Disable until it is updated for 4.10 or later
+ * [amd64] Enable LEGACY_VSYSCALL_NONE instead of LEGACY_VSYSCALL_EMULATE
+ (Closes: #852620). This breaks (e)glibc versions < 2.14 and dietlibc
+ versions < 0.33. It can be reverted using the kernel parameter:
+ vsyscall=emulate
+ * [arm64] Enable DRM_MESON, MMC_MESON_GX, DWMAC_MESON, MESON_GXL_PHY,
+ PHY_MESON8B_USB2, MESON_WATCHDOG as modules
+ * net: Enable SFC_FALCON as module; SFC_FALCON_MTD
+ * cpupower: Fix compiler options for turbostat on 4.10
+ * linux-doc: Update documentation file list for 4.10
+ * linux-doc: Fix up symlinks to gzipped docs
+ * debian/control: Add build-dependency on graphviz for documentation
+ * linux-doc: Copy source to build directory, to avoid creating files in
+ source directory
+
+ [ Roger Shimizu ]
+ * debian/copyright: Add GPL/X11 Dual License
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 31 Jan 2017 15:33:20 +0000
+
diff --git a/debian/changelog.old b/debian/changelog.old
new file mode 100644
index 000000000..3e92709af
--- /dev/null
+++ b/debian/changelog.old
@@ -0,0 +1,26914 @@
+linux (4.9.30-2) unstable; urgency=high
+
+ * [x86] Enable SERIAL_8250_MID as built-in (Closes: #864368)
+ * Fix bugs introduced by original fix for CVE-2017-9074:
+ - ipv6: Check ip6_find_1stfragopt() return value properly.
+ - ipv6: xfrm: Handle errors reported by xfrm6_find_1stfragopt()
+ - ipv6: Fix leak in ipv6_gso_segment().
+ * Revert "uapi: fix linux/if.h userspace compilation errors" (see #864269)
+ * [armhf] udeb: Add axp20x_usb_power to kernel-image; add i2c-modules
+ package including i2c-mv64xxx and i2c-rk3x (thanks to Karsten Merker)
+ (Closes: #856111)
+ * NFSv4.x/callback: Create the callback service through svc_create_pooled
+ (Closes: #862357)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 12 Jun 2017 16:24:30 +0100
+
+linux (4.9.30-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.26
+ - [arm64] Revert "mmc: sdhci-msm: Enable few quirks"
+ - ping: implement proper locking
+ - [sparc64] kern_addr_valid regression
+ - [sparc64] Fix kernel panic due to erroneous #ifdef surrounding
+ pmd_write()
+ - net: neigh: guard against NULL solicit() method
+ - net: phy: handle state correctly in phy_stop_machine
+ - bpf: improve verifier packet range checks
+ - net/mlx5: Avoid dereferencing uninitialized pointer
+ - l2tp: hold tunnel socket when handling control frames in l2tp_ip
+ and l2tp_ip6
+ - l2tp: purge socket queues in the .destruct() callback
+ - net/packet: fix overflow in check for tp_frame_nr
+ - net/packet: fix overflow in check for tp_reserve
+ - l2tp: take reference on sessions being dumped
+ - l2tp: fix PPP pseudo-wire auto-loading
+ - net: ipv4: fix multipath RTM_GETROUTE behavior when iif is given
+ - sctp: listen on the sock only when it's state is listening or
+ closed
+ - tcp: clear saved_syn in tcp_disconnect()
+ - ipv6: Fix idev->addr_list corruption
+ - net-timestamp: avoid use-after-free in ip_recv_error
+ - net: vrf: Fix setting NLM_F_EXCL flag when adding l3mdev rule
+ - dp83640: don't recieve time stamps twice
+ - gso: Validate assumption of frag_list segementation
+ - net: ipv6: RTF_PCPU should not be settable from userspace
+ - netpoll: Check for skb->queue_mapping
+ - ip6mr: fix notification device destruction
+ - net/mlx5: Fix driver load bad flow when having fw
+ initializing timeout
+ - net/mlx5e: Fix small packet threshold
+ - net/mlx5e: Fix ETHTOOL_GRXCLSRLALL handling
+ - macvlan: Fix device ref leak when purging bc_queue
+ - net: ipv6: regenerate host route if moved to gc list
+ - net: phy: fix auto-negotiation stall due to unavailable interrupt
+ - ipv6: check skb->protocol before lookup for nexthop
+ - tcp: memset ca_priv data to 0 properly
+ - ipv6: check raw payload size correctly in ioctl
+ - ALSA: oxfw: fix regression to handle Stanton SCS.1m/1d
+ - ALSA: firewire-lib: fix inappropriate assignment between
+ signed/unsigned type
+ - ALSA: seq: Don't break snd_use_lock_sync() loop by timeout
+ - [mips*] KGDB: Use kernel context for sleeping threads
+ - [mips*] Avoid BUG warning in arch_check_elf
+ - p9_client_readdir() fix
+ - [x86] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers
+ - Input: i8042 - add Clevo P650RS to the i8042 reset list
+ - nfsd: check for oversized NFSv2/v3 arguments
+ - nfsd4: minor NFSv2/v3 write decoding cleanup
+ - nfsd: stricter decoding of write-like NFSv2/v3 ops
+ - ceph: fix recursion between ceph_set_acl() and __ceph_setattr()
+ - macsec: avoid heap overflow in skb_to_sgvec
+ - net: can: usb: gs_usb: Fix buffer on stack
+ - [x86] ftrace: Fix triple fault with graph tracing and suspend-to-ram
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.27
+ - timerfd: Protect the might cancel mechanism proper
+ - Handle mismatched open calls
+ - [x86] tpm_tis: use default timeout value if chip reports it as zero
+ - scsi: storvsc: Workaround for virtual DVD SCSI version
+ - [powerpc, x86] hwmon: (it87) Avoid registering the same chip on both SIO
+ addresses
+ - 8250_pci: Fix potential use-after-free in error path
+ - ceph: try getting buffer capability for readahead/fadvise
+ - cpu/hotplug: Serialize callback invocations proper
+ - dm ioctl: prevent stack leak in dm ioctl call
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.28
+ - 9p: fix a potential acl leak
+ - hwmon: (it87) Fix pwm4 detection for IT8620 and IT8628
+ - [x86] tpm: fix RC value check in tpm2_seal_trusted
+ - [x86] tmp: use pdev for parent device in tpm_chip_alloc
+ - cpupower: Fix turbo frequency reporting for pre-Sandy Bridge cores
+ - [powerpc*] mm: Fixup wrong LPCR_VRMASD value
+ - [powerpc*] powernv: Fix opal_exit tracepoint opcode
+ - [powerpc*] Correctly disable latent entropy GCC plugin on
+ prom_init.o
+ - [x86] perf/x86/intel/pt: Add format strings for PTWRITE and power
+ event tracing
+ - [arm64] dts: r8a7795: Mark EthernetAVB device node disabled
+ - [arm64] dts: qcom: Fix ipq board clock rates
+ - [arm64] Improve detection of user/non-user mappings in
+ set_pte(_at)
+ - [armhf] OMAP5 / DRA7: Fix HYP mode boot for thumb2 build
+ - [armhf] dts: sun7i: lamobo-r1: Fix CPU port RGMII settings
+ - mwifiex: debugfs: Fix (sometimes) off-by-1 SSID print
+ - mwifiex: remove redundant dma padding in AMSDU
+ - mwifiex: Avoid skipping WEP key deletion for AP
+ - iwlwifi: fix MODULE_FIRMWARE for 6030
+ - iwlwifi: mvm: don't restart HW if suspend fails with unified image
+ - iwlwifi: mvm: overwrite skb info later
+ - iwlwifi: pcie: don't increment / decrement a bool
+ - iwlwifi: pcie: trans: Remove unused 'shift_param'
+ - iwlwifi: pcie: fix the set of DMA memory mask
+ - iwlwifi: mvm: fix reorder timer re-arming
+ - iwlwifi: mvm: Use aux queue for offchannel frames in dqa
+ - iwlwifi: mvm/pcie: adjust A-MSDU tx_cmd length in PCIe
+ - iwlwifi: mvm: fix pending frame counter calculation
+ - iwlwifi: mvm: fix references to first_agg_queue in DQA mode
+ - iwlwifi: mvm: synchronize firmware DMA paging memory
+ - iwlwifi: mvm: writing zero bytes to debugfs causes a crash
+ - [x86] ioapic: Restore IO-APIC irq_chip retrigger callback
+ - [amd64] x86/pci-calgary: Fix iommu_free() comparison of unsigned
+ expression >= 0
+ - [x86] kprobes/x86: Fix kernel panic when certain exception-
+ handling addresses are probed
+ - [x86] platform/intel-mid: Correct MSI IRQ line for watchdog device
+ - [x86] KVM: nVMX: initialize PML fields in vmcs02
+ - [x86] KVM: nVMX: do not leak PML full vmexit to L1
+ - [arm64, armhf] usb: dwc2: host: use msleep() for long delay
+ - [armhf] usb: host: ehci-exynos: Decrese node refcount on
+ exynos_ehci_get_phy() error paths
+ - [armhf] usb: host: ohci-exynos: Decrese node refcount on
+ exynos_ehci_get_phy() error paths
+ - [arm64, armhf] usb: chipidea: Only read/write OTGSC from one place
+ - [arm64, armhf] usb: chipidea: Handle extcon events properly
+ - USB: serial: keyspan_pda: fix receive sanity checks
+ - USB: serial: digi_acceleport: fix incomplete rx sanity check
+ - USB: serial: ssu100: fix control-message error handling
+ - USB: serial: io_edgeport: fix epic-descriptor handling
+ - USB: serial: ti_usb_3410_5052: fix control-message error handling
+ - USB: serial: ark3116: fix open error handling
+ - USB: serial: ftdi_sio: fix latency-timer error handling
+ - USB: serial: quatech2: fix control-message error handling
+ - USB: serial: mct_u232: fix modem-status error handling
+ - USB: serial: io_edgeport: fix descriptor error handling
+ - [armhf] clk: rockchip: add "," to
+ mux_pll_src_apll_dpll_gpll_usb480m_p on rk3036
+ - phy: qcom-usb-hs: Add depends on EXTCON
+ - scsi: qla2xxx: Fix crash in qla2xxx_eh_abort on bad ptr
+ - scsi: mac_scsi: Fix MAC_SCSI=m option when SCSI=m
+ - scsi: smartpqi: fix time handling
+ - [mips*] R2-on-R6 MULTU/MADDU/MSUBU emulation bugfix
+ - brcmfmac: Ensure pointer correctly set if skb data location
+ changes
+ - brcmfmac: Make skb header writable before use
+ - [x86] staging/lustre/llite: move root_squash from sysfs to debugfs
+ - [x86] staging: wlan-ng: add missing byte order conversion
+ - ALSA: hda - Fix deadlock of controller device lock at unbinding
+ - [sparc64] fix fault handling in NGbzero.S and GENbzero.S
+ - macsec: dynamically allocate space for sglist
+ - tcp: do not underestimate skb->truesize in tcp_trim_head()
+ - bpf: enhance verifier to understand stack pointer arithmetic
+ - [arm64] bpf: fix jit branch offset related to ldimm64
+ - tcp: fix wraparound issue in tcp_lp
+ - net: ipv6: Do not duplicate DAD on link up
+ - net: usb: qmi_wwan: add Telit ME910 support
+ - tcp: do not inherit fastopen_req from parent
+ - ipv4, ipv6: ensure raw socket message is big enough to hold
+ an IP header
+ - rtnetlink: NUL-terminate IFLA_PHYS_PORT_NAME string
+ - ipv6: initialize route null entry in addrconf_init()
+ - ipv6: reorder ip6_route_dev_notifier after ipv6_dev_notf
+ - bnxt_en: allocate enough space for ->ntp_fltr_bmap
+ - bpf: don't let ldimm64 leak map addresses on unprivileged
+ (CVE-2017-9150)
+ - f2fs: sanity check segment count
+ - xen: Revert commits da72ff5bfcb0 and 72a9b186292d
+ - [arm64, armhf] wlcore: Pass win_size taken from
+ ieee80211_sta to FW
+ - [arm64, armhf] wlcore: Add RX_BA_WIN_SIZE_CHANGE_EVENT event
+ - drm/ttm: fix use-after-free races in vm fault handling
+ - block: get rid of blk_integrity_revalidate()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.29
+ - [x86] xen: adjust early dom0 p2m handling to xen hypervisor behavior
+ - target: Fix compare_and_write_callback handling for non GOOD status
+ - target/fileio: Fix zero-length READ and WRITE handling
+ - iscsi-target: Set session_fall_back_to_erl0 when forcing reinstatement
+ - usb: xhci: bInterval quirk for TI TUSB73x0
+ - usb: host: xhci: print correct command ring address
+ - USB: Proper handling of Race Condition when two USB class drivers try to
+ call init_usb_class simultaneously
+ - USB: Revert "cdc-wdm: fix "out-of-sync" due to missing notifications"
+ - [x86] staging: vt6656: use off stack for in buffer USB transfers.
+ - [x86] staging: vt6656: use off stack for out buffer USB transfers.
+ - [x86] staging: comedi: jr3_pci: fix possible null pointer dereference
+ - [x86] staging: comedi: jr3_pci: cope with jiffies wraparound
+ - usb: misc: add missing continue in switch
+ - usb: gadget: legacy gadgets are optional
+ - usb: Make sure usb/phy/of gets built-in
+ - usb: hub: Fix error loop seen after hub communication errors
+ - usb: hub: Do not attempt to autosuspend disconnected devices
+ - [x86] boot: Fix BSS corruption/overwrite bug in early x86 kernel startup
+ - [amd64] pmem: Fix cache flushing for iovec write < 8 bytes
+ - [x86] perf: Fix Broadwell-EP DRAM RAPL events
+ - [x86] KVM: fix user triggerable warning in kvm_apic_accept_events()
+ - [armhf,arm64] KVM: fix races in kvm_psci_vcpu_on
+ - [arm64] KVM: Fix decoding of Rt/Rt2 when trapping AArch32 CP accesses
+ - block: fix blk_integrity_register to use template's interval_exp if not 0
+ - crypto: algif_aead - Require setkey before accept(2)
+ - [x86] crypto: ccp - Use only the relevant interrupt bits
+ - [x86] crypto: ccp - Disable interrupts early on unload
+ - [x86] crypto: ccp - Change ISR handler method for a v3 CCP
+ - [x86] crypto: ccp - Change ISR handler method for a v5 CCP
+ - dm era: save spacemap metadata root after the pre-commit
+ - dm rq: check blk_mq_register_dev() return value in
+ dm_mq_init_request_queue()
+ - dm thin: fix a memory leak when passing discard bio down
+ - vfio/type1: Remove locked page accounting workqueue
+ - iov_iter: don't revert iov buffer if csum error
+ - IB/core: Fix sysfs registration error flow
+ - IB/core: For multicast functions, verify that LIDs are multicast LIDs
+ - IB/IPoIB: ibX: failed to create mcg debug file
+ - IB/mlx4: Fix ib device initialization error flow
+ - IB/mlx4: Reduce SRIOV multicast cleanup warning message to debug level
+ - IB/hfi1: Prevent kernel QP post send hard lockups
+ - perf auxtrace: Fix no_size logic in addr_filter__resolve_kernel_syms()
+ - ext4: evict inline data when writing to memory map
+ - fs/xattr.c: zero out memory copied to userspace in getxattr
+ - ceph: fix memory leak in __ceph_setxattr()
+ - fs/block_dev: always invalidate cleancache in invalidate_bdev()
+ - mm: prevent potential recursive reclaim due to clearing PF_MEMALLOC
+ - Fix match_prepath()
+ - Set unicode flag on cifs echo request to avoid Mac error
+ - SMB3: Work around mount failure when using SMB3 dialect to Macs
+ - CIFS: fix mapping of SFM_SPACE and SFM_PERIOD
+ - cifs: fix leak in FSCTL_ENUM_SNAPS response handling
+ - cifs: fix CIFS_ENUMERATE_SNAPSHOTS oops
+ - CIFS: fix oplock break deadlocks
+ - cifs: fix CIFS_IOC_GET_MNT_INFO oops
+ - CIFS: add misssing SFM mapping for doublequote
+ - padata: free correct variable
+ - device-dax: fix cdev leak
+ - fscrypt: fix context consistency check when key(s) unavailable
+ - [armhf] serial: samsung: Use right device for DMA-mapping calls
+ - [armhf] serial: omap: fix runtime-pm handling on unbind
+ - [armhf] serial: omap: suspend device on probe errors
+ - tty: pty: Fix ldisc flush after userspace become aware of the data already
+ - Bluetooth: Fix user channel for 32bit userspace on 64bit kernel
+ - Bluetooth: hci_bcm: add missing tty-device sanity check
+ - Bluetooth: hci_intel: add missing tty-device sanity check
+ - ipmi: Fix kernel panic at ipmi_ssif_thread()
+ - libnvdimm, region: fix flush hint detection crash
+ - libnvdimm, pmem: fix a NULL pointer BUG in nd_pmem_notify
+ - libnvdimm, pfn: fix 'npfns' vs section alignment
+ - [powerpc*/*64*] pstore: Fix flags to enable dumps on powerpc
+ - pstore: Shut down worker when unregistering
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.30
+ - usb: misc: legousbtower: Fix buffers on stack
+ - usb: misc: legousbtower: Fix memory leak
+ - USB: ene_usb6250: fix DMA to the stack
+ - watchdog: pcwd_usb: fix NULL-deref at probe
+ - char: lp: fix possible integer overflow in lp_setup() (CVE-2017-1000363)
+ - USB: core: replace %p with %pK
+ - tpm_tis_core: Choose appropriate timeout for reading burstcount
+ - ALSA: hda: Fix cpu lockup when stopping the cmd dmas
+ - [armhf] tegra: paz00: Mark panel regulator as enabled on boot
+ - fanotify: don't expose EOPENSTALE to userspace
+ - tpm_tis_spi: Use single function to transfer data
+ - tpm_tis_spi: Abort transfer when too many wait states are signaled
+ - tpm_tis_spi: Check correct byte for wait state indicator
+ - tpm_tis_spi: Remove limitation of transfers to MAX_SPI_FRAMESIZE bytes
+ - tpm_tis_spi: Add small delay after last transfer
+ - tpm: msleep() delays - replace with usleep_range() in i2c nuvoton driver
+ - tpm: add sleep only for retry in i2c_nuvoton_write_status()
+ - tpm_crb: check for bad response size
+ - mlx5: Fix mlx5_ib_map_mr_sg mr length
+ - infiniband: call ipv6 route lookup via the stub interface
+ - dm btree: fix for dm_btree_find_lowest_key()
+ - dm raid: select the Kconfig option CONFIG_MD_RAID0
+ - dm bufio: avoid a possible ABBA deadlock
+ - dm bufio: check new buffer allocation watermark every 30 seconds
+ - dm mpath: split and rename activate_path() to prepare for its expanded use
+ - dm cache metadata: fail operations if fail_io mode has been established
+ - dm bufio: make the parameter "retain_bytes" unsigned long
+ - dm thin metadata: call precommit before saving the roots
+ - dm space map disk: fix some book keeping in the disk space map
+ - md: update slab_cache before releasing new stripes when stripes resizing
+ - md: MD_CLOSING needs to be cleared after called md_set_readonly or
+ do_md_stop
+ - rtlwifi: rtl8821ae: setup 8812ae RFE according to device type
+ - mwifiex: MAC randomization should not be persistent
+ - mwifiex: pcie: fix cmd_buf use-after-free in remove/reset
+ - ima: accept previously set IMA_NEW_FILE
+ - [x86] KVM: Fix load damaged SSEx MXCSR register
+ - [x86] KVM: Fix potential preemption when get the current kvmclock
+ timestamp
+ - [x86] KVM: Fix read out-of-bounds vulnerability in kvm pio emulation
+ - [i386] fix 32-bit case of __get_user_asm_u64()
+ - [armhf] regulator: rk808: Fix RK818 LDO2
+ - [s390x] kdump: Add final note
+ - [s390x] cputime: fix incorrect system time
+ - ath9k_htc: Add support of AirTies 1eda:2315 AR9271 device
+ - ath9k_htc: fix NULL-deref at probe
+ - [x86] drm/amdgpu: Make display watermark calculations more accurate
+ - [x86] drm/amdgpu: Avoid overflows/divide-by-zero in latency_watermark
+ calculations.
+ - [x86] drm/amdgpu: Add missing lb_vblank_lead_lines setup to DCE-6 path.
+ - drm/nouveau/therm: remove ineffective workarounds for alarm bugs
+ - drm/nouveau/tmr: ack interrupt before processing alarms
+ - drm/nouveau/tmr: fix corruption of the pending list when rescheduling an
+ alarm
+ - drm/nouveau/tmr: avoid processing completed alarms when adding a new one
+ - drm/nouveau/tmr: handle races with hw when updating the next alarm time
+ - [armhf] gpio: omap: return error if requested debounce time is not
+ possible
+ - cdc-acm: fix possible invalid access when processing notification
+ - ohci-pci: add qemu quirk
+ - [powerpc*] cxl: Force context lock during EEH flow
+ - [powerpc*] cxl: Route eeh events to all drivers in
+ cxl_pci_error_detected()
+ - proc: Fix unbalanced hard link numbers
+ - of: fix sparse warning in of_pci_range_parser_one
+ - of: fix "/cpus" reference leak in of_numa_parse_cpu_nodes()
+ - of: fdt: add missing allocation-failure check
+ - [powerpc*/*64*] ibmvscsis: Do not send aborted task response
+ - [x86] IIO: bmp280-core.c: fix error in humidity calculation
+ - IB/hfi1: Return an error on memory allocation failure
+ - IB/hfi1: Fix a subcontext memory leak
+ - pid_ns: Sleep in TASK_INTERRUPTIBLE in zap_pid_ns_processes
+ - pid_ns: Fix race between setns'ed fork() and zap_pid_ns_processes()
+ - USB: serial: ftdi_sio: fix setting latency for unprivileged users
+ - USB: serial: ftdi_sio: add Olimex ARM-USB-TINY(H) PIDs
+ - USB: chaoskey: fix Alea quirk on big-endian hosts
+ - f2fs: check entire encrypted bigname when finding a dentry
+ - fscrypt: avoid collisions when presenting long encrypted filenames
+ - libnvdimm: fix clear length of nvdimm_forget_poison()
+ - xhci: remove GFP_DMA flag from allocation
+ - usb: host: xhci-plat: propagate return value of platform_get_irq()
+ - xhci: apply PME_STUCK_QUIRK and MISSING_CAS quirk for Denverton
+ - usb: host: xhci-mem: allocate zeroed Scratchpad Buffer
+ - net: irda: irda-usb: fix firmware name on big-endian hosts
+ - usbvision: fix NULL-deref at probe
+ - mceusb: fix NULL-deref at probe
+ - ttusb2: limit messages to buffer size
+ - [armhf,arm64] usb: dwc3: gadget: Prevent losing events in event cache
+ - [armhf] usb: musb: tusb6010_omap: Do not reset the other direction's
+ packet size
+ - [armhf] usb: musb: Fix trying to suspend while active for OTG
+ configurations
+ - USB: iowarrior: fix info ioctl on big-endian hosts
+ - usb: serial: option: add Telit ME910 support
+ - USB: serial: qcserial: add more Lenovo EM74xx device IDs
+ - USB: serial: mct_u232: fix big-endian baud-rate handling
+ - USB: serial: io_ti: fix div-by-zero in set_termios
+ - USB: hub: fix SS hub-descriptor handling
+ - USB: hub: fix non-SS hub-descriptor handling
+ - ipx: call ipxitf_put() in ioctl error path (CVE-2017-7487)
+ - iio: hid-sensor: Store restore poll and hysteresis on S3
+ - gspca: konica: add missing endpoint sanity check
+ - dib0700: fix NULL-deref at probe
+ - zr364xx: enforce minimum size when reading header
+ - dvb-frontends/cxd2841er: define symbol_rate_min/max in T/C fe-ops
+ - digitv: limit messages to buffer size
+ - dw2102: limit messages to buffer size
+ - cx231xx-audio: fix init error path
+ - cx231xx-audio: fix NULL-deref at probe
+ - cx231xx-cards: fix NULL-deref at probe
+ - [powerpc*] mm: Ensure IRQs are off in switch_mm()
+ - [powerpc*] eeh: Avoid use after free in eeh_handle_special_event()
+ - [powerpc*] book3s/mce: Move add_taint() later in virtual mode
+ - [powerpc*] pseries: Fix of_node_put() underflow during DLPAR remove
+ - [powerpc*] iommu: Do not call PageTransHuge() on tail pages
+ - [powerpc*] tm: Fix FP and VMX register corruption
+ - [arm64] KVM: Do not use stack-protector to compile EL2 code
+ - [armhf] KVM: Do not use stack-protector to compile HYP code
+ - [armhf] KVM: plug potential guest hardware debug leakage
+ - [armel,armhf] 8662/1: module: split core and init PLT sections
+ - [armhf] dts: imx6sx-sdb: Remove OPP override
+ - [arm64] dts: hi6220: Reset the mmc hosts
+ - [arm64] xchg: hazard against entire exchange variable
+ - [arm64] ensure extension of smp_store_release value
+ - [arm64] armv8_deprecated: ensure extension of addr
+ - [arm64] uaccess: ensure extension of access_ok() addr
+ - [arm64] documentation: document tagged pointer stack constraints
+ - [x86] staging: rtl8192e: rtl92e_fill_tx_desc fix write to mapped out
+ memory.
+ - [x86] staging: rtl8192e: fix 2 byte alignment of register BSSIDR.
+ - [x86] staging: rtl8192e: rtl92e_get_eeprom_size Fix read size of
+ EPROM_CMD.
+ - [x86] staging: rtl8192e: GetTs Fix invalid TID 7 warning.
+ - [x86] iommu/vt-d: Flush the IOTLB to get rid of the initial kdump mappings
+ - stackprotector: Increase the per-task stack canary's random range from 32
+ bits to 64 bits on 64-bit platforms
+ - uwb: fix device quirk on big-endian hosts
+ - genirq: Fix chained interrupt data ordering
+ - nvme: unmap CMB and remove sysfs file in reset path
+ - [alpha] osf_wait4(): fix infoleak
+ - tracing/kprobes: Enforce kprobes teardown after testing
+ - [x86] PCI: hv: Allocate interrupt descriptors with GFP_ATOMIC
+ - [x86] PCI: hv: Specify CPU_AFFINITY_ALL for MSI affinity when >= 32 CPUs
+ - PCI: Fix pci_mmap_fits() for HAVE_PCI_RESOURCE_TO_USER platforms
+ - PCI: Fix another sanity check bug in /proc/pci mmap
+ - PCI: Only allow WC mmap on prefetchable resources
+ - PCI: Freeze PME scan before suspending devices
+ - [armel,armhf] mtd: nand: orion: fix clk handling
+ - [armhf] mtd: nand: omap2: Fix partition creation via cmdline mtdparts
+ - mtd: nand: add ooblayout for old hamming layout
+ - [x86] drm/edid: Add 10 bpc quirk for LGD 764 panel in HP zBook 17 G2
+ - NFSv4: Fix a hang in OPEN related to server reboot
+ - NFS: Fix use after free in write error path
+ - NFS: Use GFP_NOIO for two allocations in writeback
+ - nfsd: fix undefined behavior in nfsd4_layout_verify
+ - nfsd: encoders mustn't use unitialized values in error cases
+ - drivers: char: mem: Check for address space wraparound with mmap()
+ - [x86] drm/i915/gvt: Disable access to stolen memory as a guest
+
+ [ Aurelien Jarno ]
+ * [mips*/*-malta] Enable POWER_RESET and POWER_RESET_SYSCON.
+
+ [ Uwe Kleine-König ]
+ * [arm64] Enable DRM modules (Closes: #863344)
+ * Ignore ABI changes in chipidea driver
+
+ [ Ben Hutchings ]
+ * Ignore ABI changes in ccp and hid-sensors
+ * [mips*el/loongson-3] Revert "MIPS: Loongson-3: Select
+ MIPS_L1_CACHE_SHIFT_6" to avoid ABI change
+ * SUNRPC: Refactor svc_set_num_threads()
+ * NFSv4: Fix callback server shutdown (CVE-2017-9059) (Closes: #862357)
+ * uapi: fix linux/if.h userspace compilation errors (see #822393, #824442)
+ * debian/control: Fix compiler build-dependencies for cross-building
+ (Closes: #863907)
+ * Add Debian package version to "hung task" log messages
+ * btrfs: warn about RAID5/6 being experimental at mount time (Closes: #863290)
+ * [x86] pinctrl: cherryview: Add a quirk to make Acer Chromebook keyboard
+ work again (Closes: #862723)
+ * [arm64] serial: pl011: add console matching function (Closes: #861898)
+ * [rt] Add new GPG subkeys for Sebastian Andrzej Siewior
+ * [rt] Update to 4.9.30-rt20:
+ - rtmutex: Deboost before waking up the top waiter
+ - sched/rtmutex/deadline: Fix a PI crash for deadline tasks
+ - sched/deadline/rtmutex: Dont miss the dl_runtime/dl_period update
+ - rtmutex: Clean up
+ - sched/rtmutex: Refactor rt_mutex_setprio()
+ - sched,tracing: Update trace_sched_pi_setprio()
+ - rtmutex: Fix PI chain order integrity
+ - rtmutex: Fix more prio comparisons
+ - rtmutex: Plug preempt count leak in rt_mutex_futex_unlock()
+ - futex: Avoid freeing an active timer
+ - futex: Fix small (and harmless looking) inconsistencies
+ - futex,rt_mutex: Fix rt_mutex_cleanup_proxy_lock()
+ - Revert "timers: Don't wake ktimersoftd on every tick"
+ - futex/rtmutex: Cure RT double blocking issue
+ - random: avoid preempt_disable()ed section
+
+ [ Salvatore Bonaccorso ]
+ * tracing: Use strlcpy() instead of strcpy() in __trace_find_cmdline()
+ (CVE-2017-0605)
+ * dccp/tcp: do not inherit mc_list from parent (CVE-2017-8890)
+ * ipv6: Prevent overrun when parsing v6 header options (CVE-2017-9074)
+ * sctp: do not inherit ipv6_{mc|ac|fl}_list from parent (CVE-2017-9075)
+ * ipv6/dccp: do not inherit ipv6_mc_list from parent (CVE-2017-9076,
+ CVE-2017-9077)
+ * crypto: skcipher - Add missing API setkey checks (CVE-2017-9211)
+ * ipv6: fix out of bound writes in __ip6_append_data() (CVE-2017-9242)
+
+ [ Cyril Brulebois ]
+ * udeb: Add efivarfs to efi-modules, which can be needed to retrieve
+ firmware or configuration bits from d-i. (Closes: #862555)
+
+ [ John Paul Adrian Glaubitz ]
+ * [m68k] udeb: Build loop-modules package (Closes: #862813)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 04 Jun 2017 03:03:01 +0100
+
+linux (4.9.25-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.19
+ - net/openvswitch: Set the ipv6 source tunnel key address attribute
+ correctly
+ - net: properly release sk_frag.page
+ - [arm64] amd-xgbe: Fix jumbo MTU processing on newer hardware
+ - openvswitch: Add missing case OVS_TUNNEL_KEY_ATTR_PAD
+ - net: unix: properly re-increment inflight counter of GC discarded
+ candidates
+ - net: vrf: Reset rt6i_idev in local dst after put
+ - net/mlx5: Add missing entries for set/query rate limit commands
+ - net/mlx5e: Use the proper UAPI values when offloading TC vlan actions
+ - net/mlx5: Increase number of max QPs in default profile
+ - net/mlx5e: Count GSO/LRO packets correctly
+ - ipv6: make sure to initialize sockc.tsflags before first use
+ - ipv4: provide stronger user input validation in nl_fib_input()
+ - socket, bpf: fix sk_filter use after free in sk_clone_lock
+ - tcp: initialize icsk_ack.lrcvtime at session start time
+ - Input: iforce,ims-pcu,hanwang,yealink,cm109,kbtab,sur40 - validate
+ number of endpoints before using them
+ - ALSA: seq: Fix racy cell insertions during snd_seq_pool_done()
+ - ALSA: ctxfi: Fix the incorrect check of dma_set_mask() call
+ - ALSA: hda - Adding a group of pin definition to fix headset problem
+ - ACM gadget: fix endianness in notifications
+ - usb: gadget: f_uvc: Fix SuperSpeed companion descriptor's
+ wBytesPerInterval
+ - USB: uss720,idmouse,wusbcore: fix NULL-deref at probe
+ - usb: musb: cppi41: don't check early-TX-interrupt for Isoch transfer
+ - usb: hub: Fix crash after failure to read BOS descriptor
+ - USB: usbtmc: add missing endpoint sanity check
+ - USB: usbtmc: fix probe error path
+ - uwb: i1480-dfu: fix NULL-deref at probe
+ - mmc: ushc: fix NULL-deref at probe
+ - [armhf[ iio: adc: ti_am335x_adc: fix fifo overrun recovery
+ - iio: sw-device: Fix config group initialization
+ - iio: hid-sensor-trigger: Change get poll value function order to avoid
+ sensor properties losing after resume from S3
+ - parport: fix attempt to write duplicate procfiles
+ - ext4: mark inode dirty after converting inline directory
+ - ext4: lock the xattr block before checksuming it
+ - [powerpc*/*64*] Fix idle wakeup potential to clobber registers
+ - mmc: sdhci: Do not disable interrupts while waiting for clock
+ - mmc: sdhci-pci: Do not disable interrupts in sdhci_intel_set_power
+ - [x86] hwrng: amd - Revert managed API changes
+ - [x86] hwrng: geode - Revert managed API changes
+ - [armhf] clk: sunxi-ng: sun6i: Fix enable bit offset for hdmi-ddc module
+ clock
+ - [armhf] clk: sunxi-ng: mp: Adjust parent rate for pre-dividers
+ - mwifiex: pcie: don't leak DMA buffers when removing
+ - [x86] crypto: ccp - Assign DMA commands to the channel's CCP
+ - xen/acpi: upload PM state from init-domain to Xen
+ - [x86] iommu/vt-d: Fix NULL pointer dereference in device_to_iommu
+ - [arm64] kaslr: Fix up the kernel image alignment
+ - cpufreq: Restore policy min/max limits on CPU online
+ - cgroup, net_cls: iterate the fds of only the tasks which are being
+ migrated
+ - blk-mq: don't complete un-started request in timeout handler
+ - [x86] drm/amdgpu: reinstate oland workaround for sclk
+ - jbd2: don't leak memory if setting up journal fails
+ - [x86] intel_th: Don't leak module refcount on failure to activate
+ - [x86] Drivers: hv: vmbus: Don't leak channel ids
+ - [x86] Drivers: hv: vmbus: Don't leak memory when a channel is rescinded
+ - libceph: don't set weight to IN when OSD is destroyed
+ - [x86] device-dax: fix pmd/pte fault fallback handling
+ - [armhf] drm/bridge: analogix dp: Fix runtime PM state on driver bind
+ - nl80211: fix dumpit error path RTNL deadlocks
+ - drm: reference count event->completion
+ - fbcon: Fix vc attr at deinit
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.20
+ - xfrm: policy: init locks early
+ - [x86] KVM: cleanup the page tracking SRCU instance
+ - virtio_balloon: init 1st buffer in stats vq
+ - [mips*] ptrace: Preserve previous registers for short regset write
+ - [sparc64] ptrace: Preserve previous registers for short regset write
+ - fscrypt: remove broken support for detecting keyring key revocation
+ (CVE-2017-7374)
+ - sched/rt: Add a missing rescheduling point
+ - [armhf] usb: musb: fix possible spinlock deadlock
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.21
+ - libceph: force GFP_NOIO for socket allocations
+ - xen/setup: Don't relocate p2m over existing one
+ - xfs: only update mount/resv fields on success in __xfs_ag_resv_init
+ - xfs: use per-AG reservations for the finobt
+ - xfs: pull up iolock from xfs_free_eofblocks()
+ - xfs: sync eofblocks scans under iolock are livelock prone
+ - xfs: fix eofblocks race with file extending async dio writes
+ - xfs: fix toctou race when locking an inode to access the data map
+ - xfs: fail _dir_open when readahead fails
+ - xfs: filter out obviously bad btree pointers
+ - xfs: check for obviously bad level values in the bmbt root
+ - xfs: verify free block header fields
+ - xfs: allow unwritten extents in the CoW fork
+ - xfs: mark speculative prealloc CoW fork extents unwritten
+ - xfs: reset b_first_retry_time when clear the retry status of xfs_buf_t
+ - xfs: update ctime and mtime on clone destinatation inodes
+ - xfs: reject all unaligned direct writes to reflinked files
+ - xfs: don't fail xfs_extent_busy allocation
+ - xfs: handle indlen shortage on delalloc extent merge
+ - xfs: split indlen reservations fairly when under reserved
+ - xfs: fix uninitialized variable in _reflink_convert_cow
+ - xfs: don't reserve blocks for right shift transactions
+ - xfs: Use xfs_icluster_size_fsb() to calculate inode chunk alignment
+ - xfs: tune down agno asserts in the bmap code
+ - xfs: only reclaim unwritten COW extents periodically
+ - xfs: fix and streamline error handling in xfs_end_io
+ - xfs: Use xfs_icluster_size_fsb() to calculate inode alignment mask
+ - xfs: use iomap new flag for newly allocated delalloc blocks
+ - xfs: try any AG when allocating the first btree block when reflinking
+ - scsi: libsas: fix ata xfer length
+ - scsi: scsi_dh_alua: Check scsi_device_get() return value
+ - scsi: scsi_dh_alua: Ensure that alua_activate() calls the completion
+ function
+ - ALSA: seq: Fix race during FIFO resize
+ - ALSA: hda - fix a problem for lineout on a Dell AIO machine
+ - [x86] ASoC: Intel: Skylake: fix invalid memory access due to wrong
+ reference of pointer
+ - HID: wacom: Don't add ghost interface as shared data
+ - mmc: sdhci: Disable runtime pm when the sdio_irq is enabled
+ - NFSv4.1 fix infinite loop on IO BAD_STATEID error
+ - nfsd: map the ENOKEY to nfserr_perm for avoiding warning
+ - [hppa] Clean up fixup routines for get_user()/put_user()
+ - [hppa] Avoid stalled CPU warnings after system shutdown
+ - [hppa] Fix access fault handling in pa_memcpy()
+ - ACPI: Fix incompatibility with mcount-based function graph tracing
+ - ACPI: Do not create a platform_device for IOAPIC/IOxAPIC
+ - USB: fix linked-list corruption in rh_call_control()
+ - [x86] KVM: clear bus pointer when destroyed
+ - KVM: kvm_io_bus_unregister_dev() should never fail
+ - drm/radeon: Override fpfn for all VRAM placements in radeon_evict_flags
+ - [armhf,arm64] drm/vc4: Allocate the right amount of space for boot-time
+ CRTC state.
+ - [armhf] drm/etnaviv: (re-)protect fence allocation with GPU mutex
+ - [x86] mm/KASLR: Exclude EFI region from KASLR VA space randomization
+ - [x86] mce: Fix copy/paste error in exception table entries
+ - lib/syscall: Clear return values when no stack
+ - mm: rmap: fix huge file mmap accounting in the memcg stats
+ - mm, hugetlb: use pte_present() instead of pmd_present() in
+ follow_huge_pmd()
+ - qla2xxx: Allow vref count to timeout on vport delete.
+ - mm: workingset: fix premature shadow node shrinking with cgroups
+ - blk: improve order of bio handling in generic_make_request()
+ - blk: Ensure users for current->bio_list can see the full list.
+ - padata: avoid race in reordering
+ - nvme/core: Fix race kicking freed request_queue
+ - nvme/pci: Disable on removal when disconnected
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.22
+ - ppdev: check before attaching port
+ - ppdev: fix registering same device name
+ - [x86] drm/vmwgfx: Type-check lookups of fence objects
+ - [x86] drm/vmwgfx: avoid calling vzalloc with a 0 size in
+ vmw_get_cap_3d_ioctl()
+ - drm/ttm, drm/vmwgfx: Relax permission checking when opening surfaces
+ - [x86] drm/vmwgfx: Remove getparam error message
+ - sysfs: be careful of error returns from ops->show()
+ - [armhf,arm64] KVM: Take mmap_sem in stage2_unmap_vm
+ - [armhf,arm64] KVM: Take mmap_sem in kvm_arch_prepare_memory_region
+ - [armhf,arm64] kvm: Fix locking for kvm_free_stage2_pgd
+ - [x86] iio: bmg160: reset chip when probing
+ - [arm64] mm: unaligned access by user-land should be received as SIGBUS
+ - cfg80211: check rdev resume callback only for registered wiphy
+ - CIFS: Reset TreeId to zero on SMB2 TREE_CONNECT
+ - mm/page_alloc.c: fix print order in show_free_areas()
+ - ptrace: fix PTRACE_LISTEN race corrupting task->state
+ - dm verity fec: limit error correction recursion
+ - dm verity fec: fix bufio leaks
+ - ACPI / gpio: do not fall back to parsing _CRS when we get a deferral
+ - xfs: Honor FALLOC_FL_KEEP_SIZE when punching ends of files
+ - ring-buffer: Fix return value check in test_ringbuffer()
+ - mac80211: unconditionally start new netdev queues with iTXQ support
+ - brcmfmac: use local iftype avoiding use-after-free of virtual interface
+ - [powerpc*] Disable HFSCR[TM] if TM is not supported
+ - [powerpc*] mm: Add missing global TLB invalidate if cxl is active
+ - [powerpc*/*64*]: Fix flush_(d|i)cache_range() called from modules
+ - [powerpc*] Don't try to fix up misaligned load-with-reservation
+ instructions
+ - [powerpc*] crypto/crc32c-vpmsum: Fix missing preempt_disable()
+ - dm raid: fix NULL pointer dereference for raid1 without bitmap
+ - [s390x] decompressor: fix initrd corruption caused by bss clear
+ - [s390x] uaccess: get_user() should zero on failure (again)
+ - [mips*el/loongson-3] Check TLB before handle_ri_rdhwr() for Loongson-3
+ - [mips*el/loongson-3] Add MIPS_CPU_FTLB for Loongson-3A R2
+ - [mips*el/loongson-3] Flush wrong invalid FTLB entry for huge page
+ - [mips*el/loongson-3] c-r4k: Fix Loongson-3's vcache/scache waysize
+ calculation
+ - mm/mempolicy.c: fix error handling in set_mempolicy and mbind
+ (CVE-2017-7616)
+ - random: use chacha20 for get_random_int/long
+ - [armhf] drm/sun4i: tcon: Move SoC specific quirks to a DT matched data
+ structure
+ - [armhf] drm/sun4i: Add compatible strings for A31/A31s display pipelines
+ - [armhf] drm/sun4i: Add compatible string for A31/A31s TCON (timing
+ controller)
+ - HID: i2c-hid: add a simple quirk to fix device defects
+ - usb: dwc3: gadget: delay unmap of bounced requests
+ - [x86] ASoC: Intel: bytct_rt5640: change default capture settings
+ - [armhf,arm64] clocksource/drivers/arm_arch_timer: Don't assume clock runs
+ in suspend
+ - scsi: ufs: introduce UFSHCD_QUIRK_PRDT_BYTE_GRAN quirk
+ - HID: multitouch: do not retrieve all reports for all devices
+ - [arm64] mmc: sdhci-msm: Enable few quirks
+ - scsi: ufs: ensure that host pa_tactivate is higher than device
+ - svcauth_gss: Close connection when dropping an incoming message
+ - scsi: ufs: add quirk to increase host PA_SaveConfigTime
+ - [x86] platform: acer-wmi: Only supports AMW0_GUID1 on acer family
+ - nvme: simplify stripe quirk
+ - ACPI / sysfs: Provide quirk mechanism to prevent GPE flooding
+ - HID: usbhid: Add quirk for the Futaba TOSD-5711BB VFD
+ - [x86] drm/i915: actually drive the BDW reserved IDs
+ - scsi: ufs: issue link starup 2 times if device isn't active
+ - [armhf] serial: 8250_omap: Add OMAP_DMA_TX_KICK quirk for AM437x
+ - ACPI / button: Change default behavior to lid_init_state=open
+ - [x86] ACPI: save NVS memory for Lenovo G50-45
+ - HID: wacom: don't apply generic settings to old devices
+ - [arm64] firmware: qcom: scm: Fix interrupted SCM calls
+ - [armhf] watchdog: s3c2410: Fix infinite interrupt in soft mode
+ - [x86] platform: asus-wmi: Set specified XUSB2PR value for X550LB
+ - [x86] platform: asus-wmi: Detect quirk_no_rfkill from the DSDT
+ - [x86] reboot/quirks: Add ASUS EeeBook X205TA reboot quirk
+ - [x86] reboot/quirks: Add ASUS EeeBook X205TA/W reboot quirk
+ - usb-storage: Add ignore-residue quirk for Initio INIC-3619
+ - [x86] reboot/quirks: Fix typo in ASUS EeeBook X205TA reboot quirk
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.23
+ - [x86] drm/i915/gen9: Increase PCODE request timeout to 50ms
+ - [x86] drm/i915: Nuke debug messages from the pipe update critical section
+ - [x86] drm/i915: Avoid tweaking evaluation thresholds on Baytrail v3
+ - [x86] drm/i915: Only enable hotplug interrupts if the display interrupts
+ are enabled
+ - [x86] drm/i915: Drop support for I915_EXEC_CONSTANTS_* execbuf parameters.
+ - [x86] drm/i915: Stop using RP_DOWN_EI on Baytrail
+ - [x86] drm/i915: Avoid rcu_barrier() from reclaim paths (shrinker)
+ - [armhf,arm64] i2c: bcm2835: Fix hang for writing messages larger than 16
+ bytes
+ - rt2x00usb: fix anchor initialization
+ - rt2x00usb: do not anchor rx and tx urb's
+ - [mips*] Introduce irq_stack
+ - [mips*] Stack unwinding while on IRQ stack
+ - [mips*] Only change $28 to thread_info if coming from user mode
+ - [mips*] Switch to the irq_stack in interrupts
+ - [mips*] Select HAVE_IRQ_EXIT_ON_IRQ_STACK
+ - [mips*] IRQ Stack: Fix erroneous jal to plat_irq_dispatch
+ - [x86] Revert "drm/i915/execlists: Reset RING registers upon resume"
+ - blk-mq: Avoid memory reclaim when remapping queues
+ - usb: hub: Wait for connection to be reestablished after port reset
+ - net/mlx4_en: Fix bad WQE issue
+ - net/mlx4_core: Fix racy CQ (Completion Queue) free
+ - net/mlx4_core: Fix when to save some qp context flags for dynamic VST to
+ VGT transitions
+ - dma-buf: add support for compat ioctl
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.24
+ - cgroup, kthread: close race window where new kthreads can be migrated to
+ non-root cgroups
+ - thp: fix MADV_DONTNEED vs. MADV_FREE race
+ - thp: fix MADV_DONTNEED vs clear soft dirty race
+ - zsmalloc: expand class bit
+ - drm/nouveau/mpeg: mthd returns true on success now
+ - drm/nouveau/mmu/nv4a: use nv04 mmu rather than the nv44 one
+ - [armhf] drm/etnaviv: fix missing unlock on error in etnaviv_gpu_submit()
+ - CIFS: reconnect thread reschedule itself
+ - CIFS: store results of cifs_reopen_file to avoid infinite wait
+ - Input: xpad - add support for Razer Wildcat gamepad
+ - [x86] perf: Avoid exposing wrong/stale data in intel_pmu_lbr_read_32()
+ - [x86] efi: Don't try to reserve runtime regions
+ - [x86] signals: Fix lower/upper bound reporting in compat siginfo
+ - [x86] pmem: fix broken __copy_user_nocache cache-bypass assumptions
+ - [x86] vdso: Ensure vdso32_enabled gets set to valid values only
+ - [x86] vdso: Plug race between mapping and ELF header setup
+ - [x86] acpi, nfit, libnvdimm: fix interleave set cookie calculation
+ (64-bit comparison)
+ - ACPI / scan: Set the visited flag for all enumerated devices
+ - [hppa] fix bugs in pa_memcpy
+ - efi/libstub: Skip GOP with PIXEL_BLT_ONLY format
+ - efi/fb: Avoid reconfiguration of BAR that covers the framebuffer
+ - iscsi-target: Fix TMR reference leak during session shutdown
+ - iscsi-target: Drop work-around for legacy GlobalSAN initiator
+ - scsi: sr: Sanity check returned mode data
+ - scsi: sd: Consider max_xfer_blocks if opt_xfer_blocks is unusable
+ - scsi: qla2xxx: Add fix to read correct register value for ISP82xx.
+ - scsi: sd: Fix capacity calculation with 32-bit sector_t
+ - target: Avoid mappedlun symlink creation during lun shutdown
+ - xen, fbfront: fix connecting to backend
+ - new privimitive: iov_iter_revert()
+ - make skb_copy_datagram_msg() et.al. preserve ->msg_iter on error
+ - [x86] libnvdimm: fix blk free space accounting
+ - [x86] libnvdimm: fix reconfig_mutex, mmap_sem, and jbd2_handle lockdep
+ splat
+ - [armhf] pwm: rockchip: State of PWM clock should synchronize with PWM
+ enabled state
+ - cpufreq: Bring CPUs up even if cpufreq_online() failed
+ - [armhf] irqchip/irq-imx-gpcv2: Fix spinlock initialization
+ - ftrace: Fix removing of second function probe
+ - zram: do not use copy_page with non-page aligned address
+ - ftrace: Fix function pid filter on instances
+ - crypto: algif_aead - Fix bogus request dereference in completion function
+ - crypto: ahash - Fix EINPROGRESS notification callback (CVE-2017-7618)
+ - [hppa] Fix get_user() for 64-bit value on 32-bit kernel
+ - dvb-usb-v2: avoid use-after-free (CVE-2017-8064)
+ - drm/nouveau/disp/mcp7x: disable dptmds workaround (Closes: #850219)
+ - [x86] mm: Tighten x86 /dev/mem with zeroing reads (CVE-2017-7889)
+ - dvb-usb-firmware: don't do DMA on stack (CVE-2017-8061)
+ - cxusb: Use a dma capable buffer also for reading (CVE-2017-8063)
+ - virtio-console: avoid DMA from stack (CVE-2017-8067)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.25
+ - KEYS: Disallow keyrings beginning with '.' to be joined as session
+ keyrings (CVE-2016-9604)
+ - KEYS: Change the name of the dead type to ".dead" to prevent user access
+ (CVE-2017-6951)
+ - KEYS: fix keyctl_set_reqkey_keyring() to not leak thread keyrings
+ (CVE-2017-7472)
+ - tracing: Allocate the snapshot buffer before enabling probe
+ - ring-buffer: Have ring_buffer_iter_empty() return true when empty
+ - mm: prevent NR_ISOLATE_* stats from going negative
+ - cifs: Do not send echoes before Negotiate is complete (Closes: #856843)
+ - CIFS: remove bad_network_name flag
+ - [s390x] mm: fix CMMA vs KSM vs others
+ - Input: elantech - add Fujitsu Lifebook E547 to force crc_enabled
+ - ACPI / power: Avoid maybe-uninitialized warning
+ - [armhf] mmc: sdhci-esdhc-imx: increase the pad I/O drive strength for
+ DDR50 card
+ - ubifs: Fix RENAME_WHITEOUT support
+ - ubifs: Fix O_TMPFILE corner case in ubifs_link()
+ - mac80211: reject ToDS broadcast data frames
+ - mac80211: fix MU-MIMO follow-MAC mode
+ - ubi/upd: Always flush after prepared for an update
+ - [powerpc*] kprobe: Fix oops when kprobed on 'stdu' instruction
+ - [x86] mce/AMD: Give a name to MCA bank 3 when accessed with legacy MSRs
+ - [x86] mce: Make the MCE notifier a blocking one
+ - device-dax: switch to srcu, fix rcu_read_lock() vs pte allocation
+
+ [ Ben Hutchings ]
+ * w1: Really enable W1_MASTER_GPIO as module (Closes: #858975)
+ * debian/rules.real: Undefine $LANGUAGE, which can break debug symbols for
+ vDSOs (Closes: #859807)
+ * Bump ABI to 3
+ * [s390x] Set NR_CPUS=256 (Closes: #858731)
+ * [x86] usbip: Increase USBIP_VHCI_NR_HCS to 8 and USBIP_VHCI_HC_PORTS to 31
+ (Closes: #859641)
+ * [powerpc/powerpc64,ppc64*] target: Enable SCSI_IBMVSCSIS as module
+ * cpupower: Fix turbo frequency reporting for pre-Sandy Bridge cores
+ (Closes: #859978)
+ * udeb: Include all AHCI drivers in sata-modules (Closes: #860335)
+ * [powerpc/powerpc64,ppc64] Set NR_CPUS=2048, matching ppc64el
+ * [powerpc*/*64*] Enable CPUMASK_OFFSTACK to reduce stack usage
+ * [mips*el/loongson-3] Set NR_CPUS=16 to allow for Loongson 3B2000
+ * [mips*/octeon] Set NR_CPUS=64 to allow for Cavium CN7890
+ * [arm64] Set NR_CPUS=256 to allow for multi-SoC systems (Closes: #861209)
+ * [powerpc/powerpc-smp,powerpcspe] Explicitly set NR_CPUS=4
+ * Move debug symbols back to the main archive, to avoid problems with the
+ current handling in dak
+ * linux-image: Disable signing until it's supported in dak
+ * [rt] Update to 4.9.20-rt16:
+ - rtmutex: Make lock_killable work
+ - rtmutex: Provide rt_mutex_lock_state()
+ - rtmutex: Provide locked slowpath
+ - rwsem/rt: Lift single reader restriction
+ * PCI: Enable PCIE_PTM (except on armel/marvell)
+ * 6lowpan: Enable Generic Header Compression modules
+ * net/sched: Enable NET_ACT_SKBMOD as module
+ * ethernet: Enable NFP_NETVF as module
+ * net/phy: Enable MICROSEMI_PHY as module
+ * input/tablet: Enable TABLET_USB_PEGASUS as module
+ * [x86] input/touchscreen: Enable TOUCHSCREEN_SURFACE3_SPI as module
+ * serial/8250: Enable SERIAL_8250_MOXA as module
+ * [x86] gpio: Enable GPIO_AMDPT as module
+ * [x86] thermal: Enable INT3406_THERMAL as module
+ * watchdog: Enable WATCHDOG_SYSFS
+ * integrity: Enable IMA, IMA_DEFAULT_HASH_SHA256, IMA_APPRAISE,
+ IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY, IMA_BLACKLIST_KEYRING
+ (except on armel/marvell) (Closes: #788290)
+ * media: Enable VIDEO_TW5864, VIDEO_TW686X as modules
+ * [x86] amdgpu,sound/soc: Enable DRM_AMD_ACP; enable SND_SOC_AMD_ACP as module
+ * hda: Set SND_HDA_PREALLOC_SIZE=2048 as recommended for PulseAudio
+ * HID: Enable HID_SENSOR_CUSTOM_SENSOR as module
+ * leds,USB: Enable USB_LEDS_TRIGGER_USBPORT as module
+ * usbip: Enable USBIP_VUDC as module
+ * USB/misc: Enable UCSI as module
+ * leds: Enable LEDS_TRIGGER_DISK, LEDS_TRIGGER_MTD, LEDS_TRIGGER_PANIC
+ * IB: Enable INFINIBAND_HFI1, INFINIBAND_I40IW, INFINIBAND_QEDR, RDMA_RXE
+ as modules
+ * [amd64] EDAC: Enable EDAC_SKX as module
+ * [x86] comedi: Enable COMEDI_ADV_PCI1720, COMEDI_ADV_PCI1760 as modules
+ * [x86] platform: Enable INTEL_HID_EVENT as module
+ * [x86] hwtracing: Enable INTEL_TH, INTEL_TH_PCI, INTEL_TH_GTH, INTEL_TH_MSU,
+ INTEL_TH_PTI as modules
+ * [rt] tracing: Enable HWLAT_TRACER
+ * [x86] crypto: Enable CRYPTO_DEV_QAT_C3XXX, CRYPTO_DEV_QAT_C62X,
+ CRYPTO_DEV_QAT_C3XXXVF, CRYPTO_DEV_QAT_C62XVF as modules
+ * crypto: Enable CRYPTO_DEV_CHELSIO as module
+ * [arm64] Enable ARMV8_DEPRECATED, SWP_EMULATION, CP15_BARRIER_EMULATION,
+ SETEND_EMULATION (Closes: #861384)
+ * udeb: Add tifm_7xx1 to mmc-modules (Closes: #861195)
+ * leds: Enable LEDS_GPIO as module for all configurations with GPIOs
+ (Closes: #860569)
+ * selinux: Set SECURITY_SELINUX_CHECKREQPROT_VALUE=0, per default.
+ This may break some old applications if SELinux is enabled, and can be
+ reverted using the kernel parameter: checkreqprot=1
+ * udeb: Move mfd-core to kernel-image, as both input-modules and
+ mmc-modules need it
+ * crypto: Change CRYPTO_SHA256 from module to built-in, as required by IMA
+
+ [ Salvatore Bonaccorso ]
+ * ping: implement proper locking (CVE-2017-2671)
+ * macsec: avoid heap overflow in skb_to_sgvec (CVE-2017-7477)
+ * macsec: dynamically allocate space for sglist
+ * nfsd: check for oversized NFSv2/v3 arguments (CVE-2017-7645)
+ * nfsd4: minor NFSv2/v3 write decoding cleanup
+ * nfsd: stricter decoding of write-like NFSv2/v3 ops (CVE-2017-7895)
+
+ [ Aurelien Jarno ]
+ * [mips*/octeon] Drop obsolete patch adding support for the UBNT E200
+ board.
+ * [mips*el/loongson-3] Disable PAGE_EXTENSION and PAGE_POISONING.
+
+ [ John Paul Adrian Glaubitz ]
+ * [m68k] udeb: Enable suffix for kernel-image (Closes: #859366)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 02 May 2017 16:21:44 +0100
+
+linux (4.9.18-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.17
+ - net/mlx5e: Register/unregister vport representors on interface
+ attach/detach
+ - net/mlx5e: Do not reduce LRO WQE size when not using build_skb
+ - net/mlx5e: Fix wrong CQE decompression
+ - vxlan: correctly validate VXLAN ID against VXLAN_N_VID
+ - vti6: return GRE_KEY for vti6
+ - vxlan: don't allow overwrite of config src addr
+ - ipv4: mask tos for input route
+ - net sched actions: decrement module reference count after table flush.
+ - l2tp: avoid use-after-free caused by l2tp_ip_backlog_recv
+ - net: phy: Avoid deadlock during phy_error()
+ - vxlan: lock RCU on TX path
+ - geneve: lock RCU on TX path
+ - tcp/dccp: block BH for SYN processing
+ - net: bridge: allow IPv6 when multicast flood is disabled
+ - net: don't call strlen() on the user buffer in packet_bind_spkt()
+ - net: net_enable_timestamp() can be called from irq contexts
+ - ipv6: orphan skbs in reassembly unit
+ - dccp: Unlock sock before calling sk_free()
+ - strparser: destroy workqueue on module exit
+ - tcp: fix various issues for sockets morphing to listen state
+ - net: fix socket refcounting in skb_complete_wifi_ack()
+ - net: fix socket refcounting in skb_complete_tx_timestamp()
+ - net/sched: act_skbmod: remove unneeded rcu_read_unlock in tcf_skbmod_dump
+ - dccp: fix use-after-free in dccp_feat_activate_values
+ - vrf: Fix use-after-free in vrf_xmit
+ - net/tunnel: set inner protocol in network gro hooks
+ - act_connmark: avoid crashing on malformed nlattrs with null parms
+ - mpls: Send route delete notifications when router module is unloaded
+ - mpls: Do not decrement alive counter for unregister events
+ - ipv6: make ECMP route replacement less greedy
+ - ipv6: avoid write to a possibly cloned skb
+ - bridge: drop netfilter fake rtable unconditionally
+ - dccp/tcp: fix routing redirect race
+ - tun: fix premature POLLOUT notification on tun devices
+ - dccp: fix memory leak during tear-down of unsuccessful connection request
+ - bpf: Detect identical PTR_TO_MAP_VALUE_OR_NULL registers
+ - bpf: fix state equivalence
+ - bpf: fix regression on verifier pruning wrt map lookups
+ - bpf: fix mark_reg_unknown_value for spilled regs on map value marking
+ - dmaengine: iota: ioat_alloc_chan_resources should not perform sleeping
+ allocations.
+ - xen: do not re-use pirq number cached in pci device msi msg data
+ - igb: Workaround for igb i210 firmware issue
+ - igb: add i211 to i210 PHY workaround
+ - [x86] hyperv: Handle unknown NMIs on one CPU when unknown_nmi_panic
+ - PCI: Separate VF BAR updates from standard BAR updates
+ - PCI: Remove pci_resource_bar() and pci_iov_resource_bar()
+ - PCI: Decouple IORESOURCE_ROM_ENABLE and PCI_ROM_ADDRESS_ENABLE
+ - PCI: Don't update VF BARs while VF memory space is enabled
+ - PCI: Update BARs using property bits appropriate for type
+ - PCI: Ignore BAR updates on virtual functions
+ - PCI: Do any VF BAR updates before enabling the BARs
+ - [powerpc*] ibmveth: calculate gso_segs for large packets
+ - [x86] Drivers: hv: ring_buffer: count on wrap around mappings in
+ get_next_pkt_raw() (v2)
+ - vfio/spapr: Postpone allocation of userspace version of TCE table
+ - [powerpc*] iommu: Stop using @current in mm_iommu_xxx
+ - [powerpc*] vfio/spapr: Reference mm in tce_container
+ - [powerpc*] mm/iommu, vfio/spapr: Put pages on VFIO container shutdown
+ - [powerpc*] vfio/spapr: Add a helper to create default DMA window
+ - [powerpc*] vfio/spapr: Postpone default window creation
+ - drm/nouveau/disp/gp102: fix cursor/overlay immediate channel indices
+ - drm/nouveau/disp/nv50-: split chid into chid.ctrl and chid.user
+ - drm/nouveau/disp/nv50-: specify ctrl/user separately when constructing
+ classes
+ - block: allow WRITE_SAME commands with the SG_IO ioctl
+ - [s390x] zcrypt: Introduce CEX6 toleration
+ - uvcvideo: uvc_scan_fallback() for webcams with broken chain
+ - [x86] ACPI / blacklist: add _REV quirks for Dell Precision 5520 and 3520
+ - [x86] ACPI / blacklist: Make Dell Latitude 3350 ethernet work
+ - serial: 8250_pci: Detach low-level driver during PCI error recovery
+ - [armhf] clk: bcm2835: Fix ->fixed_divider of pllh_aux
+ - [armhf] drm/vc4: Fix race between page flip completion event and clean-up
+ - [armhf] drm/vc4: Fix ->clock_select setting for the VEC encoder
+ - [arm64] KVM: VHE: Clear HCR_TGE when invalidating guest TLBs
+ - [armhf,arm64] irqchip/gicv3-its: Add workaround for QDF2400 ITS erratum
+ 0065
+ - [x86] tsc: Fix ART for TSC_KNOWN_FREQ
+ - [x86] perf: Fix CR4.PCE propagation to use active_mm instead of mm
+ - futex: Fix potential use-after-free in FUTEX_REQUEUE_PI
+ - futex: Add missing error handling to FUTEX_REQUEUE_PI
+ - locking/rwsem: Fix down_write_killable() for
+ CONFIG_RWSEM_GENERIC_SPINLOCK=y
+ - [powerpc*] crypto: Fix initialisation of crc32c context
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.18
+ - [armhf] drm/vc4: Fix termination of the initial scan for branch targets.
+ - [armhf] drm/vc4: Use runtime autosuspend to avoid thrashing V3D power
+ state.
+ - qla2xxx: Fix memory leak for abts processing
+ - qla2xxx: Fix request queue corruption.
+ - [hppa] Optimize flush_kernel_vmap_range and invalidate_kernel_vmap_range
+ - [hppa] Fix system shutdown halt
+ - perf/core: Fix use-after-free in perf_release()
+ - perf/core: Fix event inheritance on fork()
+ - NFS prevent double free in async nfs4_exchange_id
+ - cpufreq: Fix and clean up show_cpuinfo_cur_freq()
+ - [powerpc*] boot: Fix zImage TOC alignment
+ - md/raid1/10: fix potential deadlock
+ - target/pscsi: Fix TYPE_TAPE + TYPE_MEDIMUM_CHANGER export
+ - scsi: lpfc: Add shutdown method for kexec
+ - scsi: libiscsi: add lock around task lists to fix list corruption
+ regression
+ - target: Fix VERIFY_16 handling in sbc_parse_cdb
+ - isdn/gigaset: fix NULL-deref at probe
+ - gfs2: Avoid alignment hole in struct lm_lockname
+ - percpu: acquire pcpu_lock when updating pcpu_nr_empty_pop_pages
+ - cgroup/pids: remove spurious suspicious RCU usage warning
+ - [x86] drm/amdgpu/si: add dpm quirk for Oland
+ - ext4: fix fencepost in s_first_meta_bg validation (Closes: #856808)
+
+ [ Ben Hutchings ]
+ * [powerpc*] Ignore ABI changes in cxl (fixes FTBFS) (Closes: #858530)
+ and IOMMU setup
+ * Ignore ABI changes in bpf, dccp, libiscsi
+ * [x86] Ignore ABI changes in kvm
+ * [rt] Update to 4.9.18-rt14:
+ - lockdep: Fix per-cpu static objects
+ - futex: Cleanup variable names for futex_top_waiter()
+ - futex: Use smp_store_release() in mark_wake_futex()
+ - futex: Remove rt_mutex_deadlock_account_*()
+ - futex,rt_mutex: Provide futex specific rt_mutex API
+ - futex: Change locking rules
+ - futex: Cleanup refcounting
+ - futex: Rework inconsistent rt_mutex/futex_q state
+ - futex: Pull rt_mutex_futex_unlock() out from under hb->lock
+ - futex,rt_mutex: Introduce rt_mutex_init_waiter()
+ - futex,rt_mutex: Restructure rt_mutex_finish_proxy_lock()
+ - futex: Rework futex_lock_pi() to use rt_mutex_*_proxy_lock()
+ - futex: Futex_unlock_pi() determinism
+ - futex: Drop hb->lock before enqueueing on the rtmutex
+ - futex: workaround migrate_disable/enable in different context
+ - Revert "kernel/futex: don't deboost too early"
+ * xfrm_user: validate XFRM_MSG_NEWAE XFRMA_REPLAY_ESN_VAL replay_window
+ (CVE-2017-7184)
+ * xfrm_user: validate XFRM_MSG_NEWAE incoming ESN size harder (CVE-2017-7184)
+ * scsi: sg: check length passed to SG_NEXT_CMD_LEN (CVE-2017-7187)
+ * [x86] vmwgfx: NULL pointer dereference in vmw_surface_define_ioctl()
+ (CVE-2017-7261)
+ * [x86] drm/vmwgfx: fix integer overflow in vmw_surface_define_ioctl()
+ (CVE-2017-7294)
+ * net/packet: Fix integer overflow in various range checks (CVE-2017-7308)
+ * [arm64] rtc: tegra: Implement clock handling (Closes: #858514)
+ * [armhf] sound/soc: Enable SND_SUN4I_SPDIF as module (Closes: #857410)
+ * [arm64,x86] Enable CROS_KBD_LED_BACKLIGHT as module (Closes: #856906)
+ * netfilter: nft_ct: add notrack support (Closes: #845500)
+ * w1: Enable W1_MASTER_GPIO as module (Closes: #858975)
+
+ [ James Clarke ]
+ * [sparc64] udeb: Re-add ufs-modules (Closes: #858049)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 30 Mar 2017 02:16:33 +0100
+
+linux (4.9.16-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.14
+ - [mips*] Fix special case in 64 bit IP checksumming.
+ - [mips*/octeon] Fix copy_from_user fault handling for large buffers
+ - mmc: sdhci-acpi: support deferred probe
+ - uvcvideo: Fix a wrong macro
+ - media: fix dm1105.c build error
+ - lirc_dev: LIRC_{G,S}ET_REC_MODE do not work
+ - media: Properly pass through media entity types in entity enumeration
+ - ext4: fix deadlock between inline_data and ext4_expand_extra_isize_ea()
+ - [x86] ALSA: hda/realtek - Cannot adjust speaker's volume on a Dell AIO
+ - [x86] ALSA: hda - fix Lewisburg audio issue
+ - ALSA: timer: Reject user params with too small ticks
+ - ALSA: ctxfi: Fallback DMA mask to 32bit
+ - ALSA: seq: Fix link corruption by event error handling
+ - [x86] ALSA: hda - Add subwoofer support for Dell Inspiron 17 7000 Gaming
+ - [x86] ALSA: hda - Fix micmute hotkey problem for a lenovo AIO machine
+ - hwmon: (it87) Do not overwrite bit 2..6 of pwm control registers
+ - hwmon: (it87) Ensure that pwm control cache is current before updating
+ values
+ - [x86] staging/lustre/lnet: Fix allocation size for sv_cpt_data
+ - staging: rtl: fix possible NULL pointer dereference
+ - regulator: Fix regulator_summary for deviceless consumers
+ - tpm_tis: fix the error handling of init_tis()
+ - [x86] iommu/vt-d: Fix some macros that are incorrectly specified in
+ intel-iommu
+ - [x86] iommu/vt-d: Tylersburg isoch identity map check is done too late.
+ - CIFS: Fix splice read for non-cached files
+ - [x86] mm, devm_memremap_pages: hold device_hotplug lock over
+ mem_hotplug_{begin, done}
+ - mm/page_alloc: fix nodes for reclaim in fast path
+ - mm: vmpressure: fix sending wrong events on underflow
+ - mm: do not access page->mapping directly on page_endio
+ - mm balloon: umount balloon_mnt when removing vb device
+ - mm, vmscan: cleanup lru size claculations
+ - mm, vmscan: consider eligible zones in get_scan_count
+ - sigaltstack: support SS_AUTODISARM for CONFIG_COMPAT
+ - PM / devfreq: Fix available_governor sysfs
+ - PM / devfreq: Fix wrong trans_stat of passive devfreq device
+ - dm cache: fix corruption seen when using cache > 2TB
+ - dm stats: fix a leaked s->histogram_boundaries array
+ - dm round robin: revert "use percpu 'repeat_count' and 'current_path'"
+ - dm raid: fix data corruption on reshape request
+ - [x86] scsi: storvsc: use tagged SRB requests if supported by the device
+ - [x86] scsi: storvsc: properly handle SRB_ERROR when sense message is
+ present
+ - [x86] scsi: storvsc: properly set residual data length on errors
+ - scsi: aacraid: Reorder Adapter status check
+ - scsi: use 'scsi_device_from_queue()' for scsi_dh
+ - Fix: Disable sys_membarrier when nohz_full is enabled
+ - jbd2: don't leak modified metadata buffers on an aborted journal
+ - block/loop: fix race between I/O and set_status
+ - loop: fix LO_FLAGS_PARTSCAN hang
+ - ext4: Include forgotten start block on fallocate insert range
+ - ext4: do not polute the extents cache while shifting extents
+ - ext4: trim allocation requests to group size
+ - ext4: fix data corruption in data=journal mode
+ - ext4: fix use-after-iput when fscrypt contexts are inconsistent
+ - ext4: fix inline data error paths
+ - ext4: preserve the needs_recovery flag when the journal is aborted
+ - ext4: return EROFS if device is r/o and journal replay is needed
+ - mei: remove support for broken parallel read
+ - ath10k: fix boot failure in UTF mode/testmode
+ - ath5k: drop bogus warning on drv_set_key with unsupported cipher
+ - ath9k: fix race condition in enabling/disabling IRQs
+ - ath9k: use correct OTP register offsets for the AR9340 and AR9550
+ - [x86] PCI: hv: Fix wslot_to_devfn() to fix warnings on device removal
+ - [x86] Drivers: hv: vmbus: Raise retry/wait limits in vmbus_post_msg()
+ - perf callchain: Reference count maps
+ - crypto: testmgr - Pad aes_ccm_enc_tv_template vector
+ - fuse: add missing FR_FORCE
+ - [x86] pkeys: Check against max pkey to avoid overflows
+ - [armhf,arm64] KVM: Enforce unconditional flush to PoC when mapping to
+ stage-2
+ - [arm64] dma-mapping: Fix dma_mapping_error() when bypassing SWIOTLB
+ - [arm64] fix erroneous __raw_read_system_reg() cases
+ - [armhf,arm64] KVM: vgic: Stop injecting the MSI occurrence twice
+ - can: gs_usb: Don't use stack memory for USB transfers
+ - can: usb_8dev: Fix memory leak of priv->cmd_msg_buffer
+ - w1: don't leak refcount on slave attach failure in
+ w1_attach_slave_device()
+ - w1: ds2490: USB transfer buffers need to be DMAable
+ - usb: dwc3: gadget: skip Set/Clear Halt when invalid
+ - usb: host: xhci: plat: check hcc_params after add hcd
+ - usb: gadget: udc-core: Rescan pending list on driver unbind
+ - usb: gadget: f_hid: fix: Free out requests
+ - usb: gadget: f_hid: fix: Prevent accessing released memory
+ - usb: gadget: f_hid: Use spinlock instead of mutex
+ - [x86] hv: allocate synic pages for all present CPUs
+ - [x86] hv: init percpu_list in hv_synic_alloc()
+ - [x86] hv: don't reset hv_context.tsc_page on crash
+ - [x86] Drivers: hv: vmbus: Prevent sending data on a rescinded channel
+ - [x86] Drivers: hv: vmbus: Fix a rescind handling bug
+ - [x86] Drivers: hv: util: kvp: Fix a rescind processing issue
+ - [x86] Drivers: hv: util: Fcopy: Fix a rescind processing issue
+ - [x86] Drivers: hv: util: Backup: Fix a rescind processing issue
+ - RDMA/core: Fix incorrect structure packing for booleans
+ - rdma_cm: fail iwarp accepts w/o connection params
+ - gfs2: Add missing rcu locking for glock lookup
+ - [arm64] remoteproc: qcom: mdt_loader: Don't overwrite firmware object
+ - rtlwifi: Fix alignment issues
+ - rtlwifi: rtl8192c-common: Fix "BUG: KASAN:
+ - [m68k] VME: restore bus_remove function causing incomplete module unload
+ - nfsd: minor nfsd_setattr cleanup
+ - nfsd: special case truncates some more
+ - NFSv4: Fix memory and state leak in _nfs4_open_and_get_state
+ - NFSv4: Fix reboot recovery in copy offload
+ - pNFS/flexfiles: If the layout is invalid, it must be updated before
+ retrying
+ - NFSv4: fix getacl head length estimation
+ - NFSv4: fix getacl ERANGE for some ACL buffer sizes
+ - f2fs: fix a problem of using memory after free
+ - f2fs: fix multiple f2fs_add_link() calls having same name
+ - f2fs: add ovp valid_blocks check for bg gc victim to fg_gc
+ - f2fs: avoid to issue redundant discard commands
+ - [armhf] rtc: sun6i: Disable the build as a module
+ - [armhf] rtc: sun6i: Add some locking
+ - [armhf] rtc: sun6i: Switch to the external oscillator
+ - md linear: fix a race between linear_add() and linear_congested()
+ - bcma: use (get|put)_device when probing/removing device driver
+ - [armhf] dmaengine: ipu: Make sure the interrupt routine checks all
+ interrupts.
+ - xprtrdma: Fix Read chunk padding
+ - xprtrdma: Per-connection pad optimization
+ - xprtrdma: Disable pad optimization by default
+ - xprtrdma: Reduce required number of send SGEs
+ - [powerpc*] xmon: Fix data-breakpoint
+ - [powerpc*] mm: Add MMU_FTR_KERNEL_RO to possible feature mask
+ - [powerpc*] mm/hash: Always clear UPRT and Host Radix bits when setting up
+ CPU
+ - scsi: lpfc: Correct WQ creation for pagesize
+ - ceph: update readpages osd request according to size of pages
+ - netfilter: conntrack: remove GC_MAX_EVICTS break
+ - netfilter: conntrack: refine gc worker heuristics, redux
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.15
+ - tty: n_hdlc: get rid of racy n_hdlc.tbuf (CVE-2017-2636)
+ (Closes: #858122)
+ - serial: 8250_pci: Add MKS Tenta SCOM-0800 and SCOM-0801 cards
+ - [s390x] KVM: Disable dirty log retrieval for UCONTROL guests
+ - [x86] KVM: VMX: use correct vmcs_read/write for guest segment
+ selector/base
+ - Bluetooth: Add another AR3012 04ca:3018 device
+ - [s390x] qdio: clear DSCI prior to scanning multiple input queues
+ - [s390x] dcssblk: fix device size calculation in dcssblk_direct_access()
+ - [s390x] kdump: Use "LINUX" ELF note name instead of "CORE"
+ - [s390x] chsc: Add exception handler for CHSC instruction
+ - [s390x] TASK_SIZE for kernel threads
+ - [s390x] make setup_randomness work
+ - [s390x] use correct input data address for setup_randomness
+ - [armhf] net: mvpp2: fix DMA address calculation in mvpp2_txq_inc_put()
+ - [powerpc*] cxl: Prevent read/write to AFU config space while AFU not
+ configured
+ - [powerpc*] cxl: fix nested locking hang during EEH hotplug
+ - brcmfmac: fix incorrect event channel deduction
+ - mnt: Tuck mounts under others instead of creating shadow/side mounts.
+ - IB/ipoib: Fix deadlock between rmmod and set_mode
+ - IB/IPoIB: Add destination address when re-queue packet
+ - IB/mlx5: Fix out-of-bound access
+ - IB/SRP: Avoid using IB_MR_TYPE_SG_GAPS
+ - IB/srp: Avoid that duplicate responses trigger a kernel bug
+ - IB/srp: Fix race conditions related to task management
+ - fs: Better permission checking for submounts
+ - ceph: remove req from unsafe list when unregistering it
+ - [powerpc*] pci/hotplug/pnv-php: Remove WARN_ON() in pnv_php_put_slot()
+ - [powerpc*] pci/hotplug/pnv-php: Disable surprise hotplug capability on
+ conflicts
+ - target: Fix NULL dereference during LUN lookup + active I/O shutdown
+ - [powerpc*] drivers/pci/hotplug: Handle presence detection change
+ properly
+ - [powerpc*] drivers/pci/hotplug: Fix initial state for empty slot
+ - nlm: Ensure callback code also checks that the files match
+ - nfit, libnvdimm: fix interleave set cookie calculation
+ - mac80211: flush delayed work when entering suspend
+ - mac80211: don't reorder frames with SN smaller than SSN
+ - mac80211: don't handle filtered frames within a BA session
+ - mac80211: use driver-indicated transmitter STA only for data frames
+ - [x86] drm/amdgpu: add more cases to DCE11 possible crtc mask setup
+ - [arm64,powerpc*,x86] drm/ast: Fix test for VGA enabled
+ - [arm64,powerpc*,x86] drm/ast: Call open_key before enable_mmio in POST
+ code
+ - [arm64,powerpc*,x86] drm/ast: Fix AST2400 POST failure without BMC FW or
+ VBIOS
+ - drm/edid: Add EDID_QUIRK_FORCE_8BPC quirk for Rotel RSX-1058
+ - [x86] drm/vmwgfx: Work around drm removal of control nodes
+ - [armhf] dmaengine: imx-sdma - correct the dma transfer residue
+ calculation
+ - drm/atomic: fix an error code in mode_fixup()
+ - [x86] drm/i915/gvt: Disable access to stolen memory as a guest
+ - drm: Cancel drm_fb_helper_dirty_work on unload
+ - drm: Cancel drm_fb_helper_resume_work on unload
+ - [x86] drm/i915: Avoid spurious WARNs about the wrong pipe in the PPS
+ code
+ - [x86] drm/i915: Fix not finding the VBT when it overlaps with
+ OPREGION_ASLE_EXT
+ - libceph: use BUG() instead of BUG_ON(1)
+ - [x86] mm: fix gup_pte_range() vs DAX mappings
+ - [x86] tlb: Fix tlb flushing when lguest clears PGE
+ - thp: fix another corner case of munlock() vs. THPs
+ - mm: do not call mem_cgroup_free() from within mem_cgroup_alloc()
+ - fat: fix using uninitialized fields of fat_inode/fsinfo_inode
+ - [x86] drivers: hv: Turn off write permission on the hypercall page
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.16
+ - USB: serial: digi_acceleport: fix OOB data sanity check
+ - USB: serial: digi_acceleport: fix OOB-event processing
+ - crypto: improve gcc optimization flags for serpent and wp512
+ - ucount: Remove the atomicity from ucount->count (CVE-2017-6874)
+ - dw2102: don't do DMA on stack
+ - i2c: add missing of_node_put in i2c_mux_del_adapters
+ - [ppc64el] Emulation support for load/store instructions on LE
+ - [powerpc*] xics: Work around limitations of OPAL XICS priority handling
+ - PCI: Prevent VPD access for QLogic ISP2722
+ - usb: gadget: dummy_hcd: clear usb_gadget region before registration
+ - usb: dwc3: gadget: make Set Endpoint Configuration macros safe
+ - [armhf] usb: dwc3-omap: Fix missing break in dwc3_omap_set_mailbox()
+ - usb: gadget: function: f_fs: pass companion descriptor along
+ - Revert "usb: gadget: uvc: Add missing call for additional setup data"
+ - usb: host: xhci-plat: Fix timeout on removal of hot pluggable xhci
+ controllers
+ - USB: serial: safe_serial: fix information leak in completion handler
+ - USB: serial: omninet: fix reference leaks at open
+ - USB: iowarrior: fix NULL-deref at probe (CVE-2016-2188)
+ - USB: iowarrior: fix NULL-deref in write
+ - USB: serial: io_ti: fix NULL-deref in interrupt callback
+ - USB: serial: io_ti: fix information leak in completion handler
+ - [armhf] serial: samsung: Continue to work if DMA request fails
+ - [s390x] KVM: Fix guest migration for huge guests resulting in panic
+ - [armhf.arm64] KVM: Let vcpu thread modify its own active state
+ - dm: flush queued bios when process blocks to avoid deadlock
+ - rc: raw decoder for keymap protocol is not loaded on register
+ - ext4: don't BUG when truncating encrypted inodes on the orphan list
+ - IB/mlx5: Verify that Q counters are supported
+
+ [ Ben Hutchings ]
+ * [media] dvb-usb: don't use stack for firmware load or reset
+ (Closes: #853894)
+ * Kbuild.include: addtree: Remove quotes before matching path
+ (regression in 4.8) (Closes: #856474)
+ * [rt] Update to 4.9.13-rt12:
+ - timer/hrtimer: check properly for a running timer
+ * [rt] Refresh one patch that had a textual conflict with 4.9.14
+ * Ignore various ABI changes that shouldn't affect OOT modules
+ * userns: Avoid ABI change for CVE-2017-6874 fix
+ * [amd64] Don't WARN about expected W+X pages on Xen (see #852324)
+ * fjes: Disable auto-loading, as this driver matches a very common ACPI ID
+ (Closes: #853976)
+
+ [ Salvatore Bonaccorso ]
+ * ACPI / EC: Use busy polling mode when GPE is not enabled.
+ Thanks to Jakobus Schurz <jakobus.schurz@gmail.com> (Closes: #846792)
+ * Ignore ABI changes for acpi_ec_{add,remove}_query_handler
+ * Ignore ABI change for first_ec (not declared in public header)
+
+ [ Helge Deller ]
+ * [hppa] Switch to debian default config option for bonding, irda and atalk
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Wed, 22 Mar 2017 17:01:40 +0100
+
+linux (4.9.13-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.11
+ - can: Fix kernel panic at security_sock_rcv_skb
+ - net/mlx5e: Fix update of hash function/key via ethtool
+ - net/sched: matchall: Fix configuration race
+ - ipv6: fix ip6_tnl_parse_tlv_enc_lim()
+ - ipv6: pointer math error in ip6_tnl_parse_tlv_enc_lim()
+ - tcp: fix 0 divide in __tcp_select_window()
+ - stmmac: Discard masked flags in interrupt status register
+ - net: use a work queue to defer net_disable_timestamp() work
+ - netlabel: out of bound access in cipso_v4_validate()
+ - ip6_gre: fix ip6gre_err() invalid reads (CVE-2017-5897)
+ - ipv6: tcp: add a missing tcp_v6_restore_cb()
+ - tcp: avoid infinite loop in tcp_splice_read() (CVE-2017-6214)
+ - tun: read vnet_hdr_sz once
+ - macvtap: read vnet_hdr_size once
+ - rtl8150: Use heap buffers for all register access
+ - catc: Combine failure cleanup code in catc_probe()
+ - catc: Use heap buffer for memory size test
+ - mlx4: Invoke softirqs after napi_reschedule
+ - lwtunnel: valid encap attr check should return 0 when lwtunnel
+ is disabled
+ - sit: fix a double free on error path
+ - net: introduce device min_header_len
+ - packet: round up linear to header len
+ - ping: fix a null pointer dereference
+ - net: dsa: Do not destroy invalid network devices
+ - l2tp: do not use udp_ioctl()
+ - mld: do not remove mld souce list info when set link down
+ - igmp, mld: Fix memory leak in igmpv3/mld_del_delrec()
+ - tcp: fix mark propagation with fwmark_reflect enabled
+ - net/mlx5: Don't unlock fte while still using it
+ - tcp: don't annotate mark on control socket from
+ tcp_v6_send_response()
+ - [x86] fpu/xstate: Fix xcomp_bv in XSAVES header
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.12
+ - vfs: fix uninitialized flags in splice_to_pipe()
+ - siano: make it work again with CONFIG_VMAP_STACK
+ - fuse: fix use after free issue in fuse_dev_do_read()
+ - fuse: fix uninitialized flags in pipe_buffer
+ - mmc: core: fix multi-bit bus width without high-speed mode
+ - [powerpc*/*64*] Disable use of radix under a hypervisor
+ - scsi: don't BUG_ON() empty DMA transfers
+ - Fix missing sanity check in /dev/sg
+ - [x86] Input: elan_i2c - add ELAN0605 to the ACPI table
+ - drm/radeon: Use mode h/vdisplay fields to hide out of bounds HW cursor
+ - drm/dp/mst: fix kernel oops when turning off secondary monitor
+ - futex: Move futex_init() to core_initcall
+ - [armel,armhf] 8658/1: uaccess: fix zeroing of 64-bit get_user()
+ - Revert "i2c: designware: detect when dynamic tar update is possible"
+ - PCI/PME: Restore pcie_pme_driver.remove
+ - printk: use rcuidle console tracepoint
+ - timekeeping: Use deferred printk() in debug code
+ - bcache: Make gc wakeup sane, remove set_task_state()
+ - videodev2.h: go back to limited range Y'CbCr for SRGB and, ADOBERGB
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.13
+ - net/mlx5e: Disable preemption when doing TC statistics upcall
+ - net/llc: avoid BUG_ON() in skb_orphan() (CVE-2017-6345)
+ - net: ethernet: ti: cpsw: fix cpsw assignment in resume
+ (regression in 4.9)
+ - packet: fix races in fanout_add() (CVE-2017-6346)
+ - packet: Do not call fanout_release from atomic contexts
+ (regression in 4.9)
+ - net: neigh: Fix netevent NETEVENT_DELAY_PROBE_TIME_UPDATE notification
+ - dccp: fix freeing skb too early for IPV6_RECVPKTINFO (CVE-2017-6074)
+ - vxlan: fix oops in dev_fill_metadata_dst (regression in 4.6)
+ - irda: Fix lockdep annotations in hashbin_delete(). (CVE-2017-6348)
+ - ptr_ring: fix race conditions when resizing
+ - ip: fix IP_CHECKSUM handling (regression in 4.0) (CVE-2017-6347)
+ - net: socket: fix recvmmsg not returning error from sock_error
+ (regression in 4.6)
+ - USB: serial: mos7840: fix another NULL-deref at open
+ - USB: serial: ftdi_sio: fix modem-status error handling
+ - USB: serial: ftdi_sio: fix extreme low-latency setting
+ - USB: serial: ftdi_sio: fix line-status over-reporting
+ - USB: serial: spcp8x5: fix modem-status handling
+ - USB: serial: opticon: fix CTS retrieval at open
+ - USB: serial: ark3116: fix register-accessor error handling
+ - netfilter: nf_ct_helper: warn when not applying default helper assignment
+ - block: fix double-free in the failure path of cgwb_bdi_init()
+ - rtlwifi: rtl_usb: Fix for URB leaking when doing ifconfig up/down
+ - xfs: clear delalloc and cache on buffered write failure
+
+ [ Ben Hutchings ]
+ * [armel] dts: kirkwood: Fix SATA pinmux-ing for TS419 (Closes: #855017)
+ * [armhf] Enable DRM_OMAP_PANEL_TPO_TD028TTEC1, PWM_OMAP_DMTIMER as modules
+ (Closes: #855472)
+ * net: Ignore ABI changes to can_rx_register(), ip6_xmit()
+ * net: Avoid ABI change for min_header_len
+ * udeb: Add more USB host and dual-role drivers to usb-modules
+ (Closes: #856111)
+ * [x86] kvm: fix page struct leak in handle_vmon (CVE-2017-2596)
+ * ipc/shm: Fix shmat mmap nil-page protection (CVE-2017-5669)
+ * time: Disable TIMER_STATS (CVE-2017-5967)
+ * sctp: deny peeloff operation on asocs with threads sleeping on it
+ (CVE-2017-6353)
+ * [rt] Update to 4.9.13-rt10:
+ - sched/rt: Add a missing rescheduling point
+ - lockdep: Handle statically initialized PER_CPU locks proper
+ - Change export of rt_mutex_destroy() back to GPL-only
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 27 Feb 2017 15:58:07 +0000
+
+linux (4.9.10-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.7
+ - drm: Schedule the output_poll_work with 1s delay if we have delayed event
+ - drm: Fix broken VT switch with video=1366x768 option
+ - [x86] drm/i915: Ignore bogus plane coordinates on SKL when the plane is
+ not visible
+ - [armhf,arm64] drm/vc4: Fix memory leak of the CRTC state.
+ - [armhf,arm64] drm/vc4: fix a bounds check
+ - Revert "drm/radeon: always apply pci shutdown callbacks"
+ - drm/atomic: clear out fence when duplicating state
+ - mm/huge_memory.c: respect FOLL_FORCE/FOLL_COW for thp
+ - mm/mempolicy.c: do not put mempolicy before using its nodemask
+ - mm, page_alloc: fix check for NULL preferred_zone
+ - mm, page_alloc: fix fast-path race with cpuset update or removal
+ - mm, page_alloc: move cpuset seqcount checking to slowpath
+ - mm, page_alloc: fix premature OOM when racing with cpuset mems update
+ - userns: Make ucounts lock irq-safe
+ - sysctl: fix proc_doulongvec_ms_jiffies_minmax()
+ - xfs: prevent quotacheck from overloading inode lru
+ - ISDN: eicon: silence misleading array-bounds warning
+ - Btrfs: remove old tree_root case in btrfs_read_locked_inode()
+ - Btrfs: disable xattr operations on subvolume directories
+ - Btrfs: remove ->{get, set}_acl() from btrfs_dir_ro_inode_operations
+ - RDMA/cma: Fix unknown symbol when CONFIG_IPV6 is not enabled
+ - [s390x] mm: Fix cmma unused transfer from pgste into pte
+ - [s390x] ptrace: Preserve previous registers for short regset write
+ - IB/cxgb3: fix misspelling in header guard
+ - IB/iser: Fix sg_tablesize calculation
+ - IB/srp: fix mr allocation when the device supports sg gaps
+ - IB/srp: fix invalid indirect_sg_entries parameter value
+ - can: c_can_pci: fix null-pointer-deref in c_can_start() - set device
+ pointer
+ - can: ti_hecc: add missing prepare and unprepare of the clock
+ - [hppa] Don't use BITS_PER_LONG in userspace-exported swab.h header
+ - nfs: Don't increment lock sequence ID after NFS4ERR_MOVED
+ - NFSv4.1: Fix a deadlock in layoutget
+ - NFSv4.0: always send mode in SETATTR after EXCLUSIVE4
+ - SUNRPC: cleanup ida information when removing sunrpc module
+ - iw_cxgb4: free EQ queue memory on last deref
+ - pctv452e: move buffer to heap, no mutex
+ - v4l: tvp5150: Reset device at probe time, not in get/set format handlers
+ - v4l: tvp5150: Fix comment regarding output pin muxing
+ - v4l: tvp5150: Don't override output pinmuxing at stream on/off time
+ - [x86] drm/i915: Clear ret before unbinding in i915_gem_evict_something()
+ - [x86] drm/i915: prevent crash with .disable_display parameter
+ - [x86] drm/i915: Don't leak edid in intel_crt_detect_ddc()
+ - [x86] drm/i915: Don't init hpd polling for vlv and chv from
+ runtime_suspend()
+ - [x86] drm/i915: Fix calculation of rotated x and y offsets for planar
+ formats
+ - [x86] drm/i915: Check for NULL atomic state in
+ intel_crtc_disable_noatomic()
+ - IB/umem: Release pid in error and ODP flow
+ - [x86] pinctrl: baytrail: Rectify debounce support
+ - memory_hotplug: make zone_can_shift() return a boolean value
+ - virtio_mmio: Set DMA masks appropriately
+ - mm, memcg: do not retry precharge charges
+ - perf/core: Fix concurrent sys_perf_event_open() vs. 'move_group' race
+ (CVE-2017-6001)
+ - [x86] drm/i915: Remove WaDisableLSQCROPERFforOCL KBL workaround.
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.8
+ - r8152: fix the sw rx checksum is unavailable
+ - [x86] netvsc: add rcu_read locking to netvsc callback
+ - net: lwtunnel: Handle lwtunnel_fill_encap failure
+ - net: ipv4: fix table id in getroute response
+ - tcp: fix tcp_fastopen unaligned access complaints on sparc
+ - openvswitch: maintain correct checksum state in conntrack actions
+ - mlx4: do not call napi_schedule() without care
+ - ip6_tunnel: Account for tunnel header in tunnel MTU
+ - ax25: Fix segfault after sock connection timeout
+ - net sched actions: fix refcnt when GETing of action after bind
+ - virtio: don't set VIRTIO_NET_HDR_F_DATA_VALID on xmit
+ - virtio-net: restore VIRTIO_HDR_F_DATA_VALID on receiving
+ - vxlan: fix byte order of vxlan-gpe port number
+ - net: fix harmonize_features() vs NETIF_F_HIGHDMA
+ - lwtunnel: fix autoload of lwt modules
+ - ipv6: addrconf: Avoid addrconf_disable_change() using RCU read-side lock
+ - tcp: initialize max window for a new fastopen socket
+ - net/mlx5e: Do not recycle pages from emergency reserve
+ - bridge: netlink: call br_changelink() during br_dev_newlink()
+ - net: mpls: Fix multipath selection for LSR use case
+ - r8152: don't execute runtime suspend if the tx is not empty
+ - af_unix: move unix_mknod() out of bindlock
+ - net: Specify the owning module for lwtunnel ops
+ - lwtunnel: Fix oops on state free after encap module unload
+ - [armhf] net: dsa: Bring back device detaching in dsa_slave_suspend()
+ - xfs: bump up reserved blocks in xfs_alloc_set_aside
+ - xfs: fix bogus minleft manipulations
+ - xfs: adjust allocation length in xfs_alloc_space_available
+ - xfs: don't rely on ->total in xfs_alloc_space_available
+ - xfs: don't print warnings when xfs_log_force fails
+ - xfs: make the ASSERT() condition likely
+ - xfs: sanity check directory inode di_size
+ - xfs: add missing include dependencies to xfs_dir2.h
+ - xfs: replace xfs_mode_to_ftype table with switch statement
+ - xfs: sanity check inode mode when creating new dentry
+ - xfs: sanity check inode di_mode
+ - xfs: don't wrap ID in xfs_dq_get_next_id
+ - xfs: fix xfs_mode_to_ftype() prototype
+ - xfs: fix COW writeback race
+ - xfs: verify dirblocklog correctly
+ - xfs: remove racy hasattr check from attr ops
+ - xfs: extsize hints are not unlikely in xfs_bmap_btalloc
+ - xfs: clear _XBF_PAGES from buffers when readahead page
+ - xfs: fix bmv_count confusion w/ shared extents
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.9
+ - PCI/ASPM: Handle PCI-to-PCIe bridges as roots of PCIe hierarchies
+ - ext4: validate s_first_meta_bg at mount time (CVE-2016-10208)
+ - [x86] efi: Always map the first physical page into the EFI pagetables
+ - [arm64] efi/fdt: Avoid FDT manipulation after ExitBootServices()
+ (Closes: #853170)
+ - HID: cp2112: fix sleep-while-atomic
+ - HID: cp2112: fix gpio-callback error handling
+ - [x86] pinctrl: baytrail: Add missing spinlock usage in
+ byt_gpio_irq_handler
+ - [x86] drm/amdgpu/si: fix crash on headless asics
+ - drm/nouveau/disp/gt215: Fix HDA ELD handling (thus, HDMI audio) on gt215
+ - drm/nouveau/nv1a,nv1f/disp: fix memory clock rate retrieval
+ - crypto: api - Clear CRYPTO_ALG_DEAD bit before registering an alg
+ - crypto: arm64/aes-blk - honour iv_out requirement in CBC and CTR modes
+ - perf/core: Fix use-after-free bug
+ - perf/core: Fix PERF_RECORD_MMAP2 prot/flags for anonymous memory
+ - ata: sata_mv:- Handle return value of devm_ioremap.
+ - libata: apply MAX_SEC_1024 to all CX1-JB*-HP devices
+ - libata: Fix ATA request sense
+ - [powerpc*] eeh: Fix wrong flag passed to eeh_unfreeze_pe()
+ - [powerpc*] Add missing error check to prom_find_boot_cpu()
+ - [powerpc*] mm: Use the correct pointer when setting a 2MB pte
+ - NFSD: Fix a null reference case in find_or_create_lock_stateid()
+ - svcrpc: fix oops in absence of krb5 module
+ - zswap: disable changing params if init fails
+ - cifs: initialize file_info_lock
+ - mm/memory_hotplug.c: check start_pfn in test_pages_in_a_zone()
+ - base/memory, hotplug: fix a kernel oops in show_valid_zones()
+ - mm, fs: check for fatal signals in do_generic_file_read()
+ - tracing: Fix hwlat kthread migration
+ - can: bcm: fix hrtimer/tasklet termination in bcm op removal
+ - cgroup: don't online subsystems before cgroup_name/path() are operational
+ - mmc: sdhci: Ignore unexpected CARD_INT interrupts
+ - vhost: fix initialization for vq->is_le
+ - [armhf] regulator: axp20x: AXP806: Fix dcdcb being set instead of dcdce
+ - percpu-refcount: fix reference leak during percpu-atomic transition
+ - [x86] pinctrl: baytrail: Debounce register is one per community
+ - [x86] pinctrl: intel: merrifield: Add missed check in mrfld_config_set()
+ - iwlwifi: fix double hyphen in MODULE_FIRMWARE for 8000
+ - iwlwifi: mvm: avoid crash on restart w/o reserved queues
+ - HID: usbhid: Quirk a AMI virtual mouse and keyboard with ALWAYS_POLL
+ - HID: hid-lg: Fix immediate disconnection of Logitech Rumblepad 2
+ - HID: wacom: Fix poor prox handling in 'wacom_pl_irq'
+ - [x86] perf/intel/uncore: Clean up hotplug conversion fallout
+ - [armhf] dmaengine: cppi41: Fix runtime PM timeouts with USB mass storage
+ - [armhf] dmaengine: cppi41: Fix oops in cppi41_runtime_resume
+ - [x86] KVM: do not save guest-unsupported XSAVE state
+ - USB: Add quirk for WORLDE easykey.25 MIDI keyboard
+ - usb: musb: Fix host mode error -71 regression
+ - usb: gadget: f_fs: Assorted buffer overflow checks.
+ - irqdomain: Avoid activating interrupts more than once
+ - [x86] irq: Make irq activate operations symmetric
+ - iw_cxgb4: set correct FetchBurstMax for QPs
+ - fs: break out of iomap_file_buffered_write on fatal signals
+ - [x86] drm/i915/execlists: Reset RING registers upon resume
+ (Closes: #855055)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.10
+ - [x86] cpufreq: intel_pstate: Disable energy efficiency optimization
+ - acpi, nfit: fix acpi_nfit_flush_probe() crash
+ - [x86] libnvdimm, namespace: do not delete namespace-id 0
+ - [x86] libnvdimm, pfn: fix memmap reservation size versus 4K alignment
+ - dm rq: cope with DM device destruction while in dm_old_request_fn()
+ - crypto: algif_aead - Fix kernel panic on list_del
+ - [x86] crypto: qat - fix bar discovery for c62x
+ - [x86] crypto: qat - zero esram only for DH85x devices
+ - [x86] crypto: ccp - Fix DMA operations when IOMMU is enabled
+ - [x86] crypto: ccp - Fix double add when creating new DMA command
+ - Input: uinput - fix crash when mixing old and new init style
+ - selinux: fix off-by-one in setprocattr (CVE-2017-2618)
+ - [x86] Revert "x86/ioapic: Restore IO-APIC irq_chip retrigger callback"
+ - rtlwifi: rtl8192ce: Fix loading of incorrect firmware (Closes: #853073)
+ - cpumask: use nr_cpumask_bits for parsing functions (Closes: #848682)
+ - [armel,armhf] 8643/3: arm/ptrace: Preserve previous registers for short
+ regset write
+ - [x86] drm/i915: fix use-after-free in page_flip_completed()
+ - [x86] drm/i915/bxt: Add MST support when do DPLL calculation
+ - drm/atomic: Fix double free in drm_atomic_state_default_clear
+ - target: Don't BUG_ON during NodeACL dynamic -> explicit conversion
+ - target: Use correct SCSI status during EXTENDED_COPY exception
+ - target: Fix early transport_generic_handle_tmr abort scenario
+ - target: Fix multi-session dynamic se_node_acl double free OOPs
+ - target: Fix COMPARE_AND_WRITE ref leak for non GOOD status
+ - [armhf] dts: imx6dl: fix GPIO4 range
+ - [armhf] 8642/1: LPAE: catch pending imprecise abort on unmask
+ - [x86] drm/i915: Always convert incoming exec offsets to non-canonical
+ - nl80211: Fix mesh HT operation check
+ - mac80211: Fix adding of mesh vendor IEs
+ - net/mlx5e: Modify TIRs hash only when it's needed
+ - [x86] Drivers: hv: vmbus: Base host signaling strictly on the ring state
+ - [x86] Drivers: hv: vmbus: On write cleanup the logic to interrupt the host
+ - [x86] Drivers: hv: vmbus: On the read path cleanup the logic to interrupt
+ the host
+ - [x86] Drivers: hv: vmbus: finally fix hv_need_to_signal_on_read()
+ - [s390x] scsi: zfcp: fix use-after-free by not tracing WKA port open/close
+ on failed send
+ - scsi: aacraid: Fix INTx/MSI-x issue with older controllers
+ - scsi: mpt3sas: disable ASPM for MPI2 controllers
+ - scsi: qla2xxx: Avoid that issuing a LIP triggers a kernel crash
+ - btrfs: fix btrfs_compat_ioctl failures on non-compat ioctls
+ - [powerpc*] mm/radix: Update ERAT flushes when invalidating TLB
+ - [powerpc*] powernv: Fix CPU hotplug to handle waking on HVI
+ - xen-netfront: Delete rx_refill_timer in xennet_disconnect_backend()
+ - ALSA: hda - adding a new NV HDMI/DP codec ID in the driver
+ - ALSA: seq: Fix race at creating a queue
+ - ALSA: seq: Don't handle loop timeout at snd_seq_pool_done()
+ - Revert "ALSA: line6: Only determine control port properties if needed"
+ - [x86] mm/ptdump: Fix soft lockup in page table walker
+ - [x86] CPU/AMD: Bring back Compute Unit ID
+ - [x86] CPU/AMD: Fix Zen SMT topology
+ - IB/rxe: Fix resid update
+ - IB/rxe: Fix mem_check_range integer overflow (CVE-2016-8636)
+ - stacktrace, lockdep: Fix address, newline ugliness
+ - perf diff: Fix -o/--order option behavior (again)
+ - perf diff: Fix segfault on 'perf diff -o N' option
+ - perf/core: Fix crash in perf_event_read()
+
+ [ Ben Hutchings ]
+ * Bump ABI to 2
+ * [or1k] Remove configuration, as the port has been abandoned
+ * [arm64] Enable KEXEC (Closes: #852747)
+ * [arm64,armhf,x86] usb: gadget: Enable USB_CONFIGFS, USB_ETH, USB_GADGETFS,
+ USB_FUNCTIONFS, USB_G_SERIAL as modules;
+ USB_CONFIGFS_{SERIAL,ACM,OBEX,NCM,ECM,ECM_SUBSET,RNDIS,EEM,PHONET,MASS_STORAGE},
+ USB_CONFIGFS_F_{LB_SS,LS,UAC1,UAC2,MIDI,HID,UVC,PRINTER}, USB_ETH_RNDIS,
+ USB_FUNCTIONFS_{ETH,RNDIS,GENERIC} (thanks to Riku Voipio)
+ * [ppc64el] Disable IBMEBUS; this bus does not exist on POWER8 systems
+ * aufs: Update support patchset to aufs4.9-20170206
+ * [rt] Update to 4.9.9-rt6:
+ - Revert "btrfs: swap free() and trace point in run_ordered_work()"
+ - pinctrl: qcom: Use raw spinlock variants
+ - x86/mm/cpa: avoid wbinvd() for PREEMPT
+ - Revert "radix-tree: Make RT aware"
+ - radix-tree: use local locks
+ - softirq: wake the timer softirq if needed
+ - timers: Don't wake ktimersoftd on every tick
+ - rt: Drop mutex_disable() on !DEBUG configs and the GPL suffix from export
+ symbol
+ - cpuset: Convert callback_lock to raw_spinlock_t
+ * pegasus: Use heap buffers for all register access (Closes: #852556)
+ * test-patches: Use the pkg.linux.notools build profile
+ * test-patches: Set default number of jobs to number of available processors
+ * dccp: Disable auto-loading as mitigation against local exploits
+ * net: ipv6: check route protocol when deleting routes (Closes: #855153)
+ * [arm64] drm: Enable DRM_AST as module (Closes: #820168)
+ - udeb: Add ast to fb-modules
+ * [armel/marvell] hwmon: Enable SENSORS_G762 as module (Closes: #854662)
+ * [m68k] Change MAC8390, MAC_SCSI from built-in to modules (Closes: #826614)
+ - udeb: Add mac8390 to nic-shared-modules
+ * udeb: Add bcache to md-modules (Closes: #718548)
+ * [x86] platform: acer-wmi: setup accelerometer when machine has appropriate
+ notify event (Closes: #853067)
+ * [x86] xen: Fix APIC id mismatch warning on Intel (Closes: #853193)
+ * media: dvb-usb-dibusb-mc-common: Add MODULE_LICENSE (Closes: #853110)
+
+ [ Roger Shimizu ]
+ * [armel] ARM: dts: orion5x-lschl: Fix model name
+ * [armel] ARM: dts: orion5x-lschl: More consistent naming on linkstation
+ series
+ * [armel] ARM: orion5x: fix Makefile for linkstation-lschl.dtb
+
+ [ Salvatore Bonaccorso ]
+ * ipv4: keep skb->dst around in presence of IP options (CVE-2017-5970)
+ * sctp: avoid BUG_ON on sctp_wait_for_sndbuf (CVE-2017-5986)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 17 Feb 2017 13:18:17 +0000
+
+linux (4.9.6-3) unstable; urgency=medium
+
+ * btree,musb,st_sensors: Ignore ABI changes (fixes FTBFS on armel,armhf)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 28 Jan 2017 16:11:16 +0000
+
+linux (4.9.6-2) unstable; urgency=medium
+
+ * linux-cpupower: Use dh-exec architecture filtering for x86-specific files
+ (fixes FTBFS on !x86)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 27 Jan 2017 22:09:50 +0000
+
+linux (4.9.6-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.3
+ - iio: common: st_sensors: fix channel data parsing
+ - [mips] staging: octeon: Call SET_NETDEV_DEV()
+ - ALSA: hda - Fix up GPIO for ASUS ROG Ranger
+ - ALSA: hda - Apply asus-mode8 fixup to ASUS X71SL
+ - ALSA: usb-audio: Fix irq/process data synchronization
+ - fscrypt: fix renaming and linking special files
+ - [hppa/parisc] Add line-break when printing segfault info
+ - [hppa/parisc] Mark cr16 clocksource unstable on SMP systems
+ - HID: sensor-hub: Move the memset to sensor_hub_get_feature()
+ - mac80211: initialize fast-xmit 'info' later
+ - asm-prototypes: Clear any CPP defines before declaring the functions
+ - [x86] drm/i915: Fix oopses in the overlay code due to i915_gem_active
+ stuff
+ - [x86] drm/i915: Fix oops in overlay due to frontbuffer tracking
+ - [x86] drm/i915: Force VDD off on the new power seqeuencer before
+ starting to use it
+ - [x86] drm/i915: Initialize overlay->last_flip properly
+ - [x86] KVM: reset MMU on KVM_SET_VCPU_EVENTS
+ - [armhf] usb: musb: core: add clear_ep_rxintr() to musb_platform_ops
+ - [armhf] usb: musb: dsps: implement clear_ep_rxintr() callback
+ - usb: storage: unusual_uas: Add JMicron JMS56x to unusual device
+ - usb: gadgetfs: restrict upper bound on device configuration size
+ - USB: gadgetfs: fix unbounded memory allocation bug
+ - USB: gadgetfs: fix use-after-free bug
+ - USB: gadgetfs: fix checks of wTotalLength in config descriptors
+ - USB: fix problems with duplicate endpoint addresses
+ - usb: gadget: composite: Test get_alt() presence instead of set_alt()
+ - [arm64, armhf] usb: dwc3: core: avoid Overflow events
+ - usb: xhci: fix possible wild pointer
+ - [x86] usb: xhci: apply XHCI_PME_STUCK_QUIRK to Intel Apollo Lake
+ - xhci: free xhci virtual devices with leaf nodes first
+ - usb: xhci: fix return value of xhci_setup_device()
+ - usb: host: xhci: Fix possible wild pointer when handling abort command
+ - xhci: Handle command completion and timeout race
+ - usb: xhci: hold lock over xhci_abort_cmd_ring()
+ - USB: serial: omninet: fix NULL-derefs at open and disconnect
+ - USB: serial: quatech2: fix sleep-while-atomic in close
+ - USB: serial: pl2303: fix NULL-deref at open
+ - USB: serial: keyspan_pda: verify endpoints at probe
+ - USB: serial: spcp8x5: fix NULL-deref at open
+ - USB: serial: io_ti: fix NULL-deref at open
+ - USB: serial: io_ti: fix another NULL-deref at open
+ - USB: serial: io_ti: fix I/O after disconnect
+ - USB: serial: iuu_phoenix: fix NULL-deref at open
+ - USB: serial: garmin_gps: fix memory leak on failed URB submit
+ - USB: serial: ti_usb_3410_5052: fix NULL-deref at open
+ - USB: serial: io_edgeport: fix NULL-deref at open
+ - USB: serial: oti6858: fix NULL-deref at open
+ - USB: serial: cyberjack: fix NULL-deref at open
+ - USB: serial: kobil_sct: fix NULL-deref in write
+ - USB: serial: mos7840: fix NULL-deref at open
+ - USB: serial: mos7720: fix NULL-deref at open
+ - USB: serial: mos7720: fix use-after-free on probe errors
+ - USB: serial: mos7720: fix parport use-after-free on probe errors
+ - USB: serial: mos7720: fix parallel probe
+ - usb: xhci-mem: use passed in GFP flags instead of GFP_KERNEL
+ - xhci: Use delayed_work instead of timer for command timeout
+ - xhci: Fix race related to abort operation
+ - [armhf] usb: musb: Fix trying to free already-free IRQ 4
+ - usb: hub: Move hub_port_disable() to fix warning if PM is disabled
+ - usb: gadget: udc: core: fix return code of usb_gadget_probe_driver()
+ - ALSA: usb-audio: Fix bogus error return in snd_usb_create_stream()
+ - USB: serial: kl5kusb105: abort on open exception path
+ - usb: gadget: Fix second argument of percpu_ida_alloc()
+ - usb: gadget: fix request length error for isoc transfer
+ - [armhf] dts: sun7i: bananapi-m1-plus: Enable USB PHY for USB host
+ support
+ - dibusb: fix possible memory leak in dibusb_rc_query()
+ - USB: serial: io_ti: bind to interface after fw download
+ - [x86] mei: move write cb to completion on credentials failures
+ - iio: accel: st_accel: fix LIS3LV02 reading and scaling
+ - [arm64, armhf] usb: dwc3: ep0: add dwc3_ep0_prepare_one_trb()
+ - [arm64, armhf] usb: dwc3: ep0: explicitly call
+ dwc3_ep0_prepare_one_trb()
+ - [arm64, armhf] usb: dwc3: gadget: always unmap EP0 requests
+ - [x86] drm/i915/dp: add lane_count check in intel_dp_check_link_status
+ - [x86] drm/i915: tune down the fast link training vs boot fail
+ - mac80211: fix tid_agg_rx NULL dereference
+ - nl80211: Use different attrs for BSSID and random MAC addr in scan req
+ - ath10k: fix failure to send NULL func frame for 10.4
+ - ath10k: use the right length of "background"
+ - efi/efivar_ssdt_load: Don't return success on allocation failure
+ - debugfs: improve DEFINE_DEBUGFS_ATTRIBUTE for !CONFIG_DEBUG_FS
+ - [x86] prctl/uapi: Remove #ifdef for CHECKPOINT_RESTORE
+ - [x86] cpu: Probe CPUID leaf 6 even when cpuid_level == 6
+ - [x86] platform/x86: fujitsu-laptop: use brightness_set_blocking for
+ LED-setting callbacks
+ - hwmon: (amc6821) sign extension temperature
+ - hwmon: (ds620) Fix overflows seen when writing temperature limits
+ - [armhf] hwmon: (g762) Fix overflows and crash seen when writing limit
+ attributes
+ - hwmon: (lm90) fix temp1_max_alarm attribute
+ - Input: synaptics-rmi4 - unlock on error
+ - [armhf] clk: ti: dra7: fix "failed to lookup clock node
+ gmac_gmii_ref_clk_div" boot message
+ - [amd64] iommu/amd: Missing error code in amd_iommu_init_device()
+ - [amd64] iommu/amd: Fix the left value check of cmd buffer
+ - [x86] iommu/vt-d: Fix pasid table size encoding
+ - [x86] iommu/vt-d: Flush old iommu caches for kdump when the device gets
+ context mapped
+ - [x86] ASoC: cht_bsw_rt5645: Fix leftover kmalloc
+ - [x86] ASoC: Intel: Skylake: Fix a shift wrapping bug
+ - scsi: mvsas: fix command_active typo
+ - target/iscsi: Fix double free in lio_target_tiqn_addtpg()
+ - sbp-target: Fix second argument of percpu_ida_alloc()
+ - relay: check array offset before using it
+ - PCI/MSI: Check for NULL affinity mask in pci_irq_get_affinity()
+ - PM / wakeirq: Fix dedicated wakeirq for drivers not using autosuspend
+ - genirq/affinity: Fix node generation from cpumask
+ - mm/hugetlb.c: use the right pte val for compare in hugetlb_cow
+ - docs-rst: fix LaTeX \DURole renewcommand with Sphinx 1.3+
+ - mm: khugepaged: close use-after-free race during shmem collapsing
+ - mm: khugepaged: fix radix tree node leak in shmem collapse error path
+ - mm, compaction: fix NR_ISOLATED_* stats for pfn based migration
+ - [s390x] crypto: unlock on error in prng_tdes_read()
+ - [arm64] crypto: sha2-ce - fix for big endian
+ - [arm64] crypto: ghash-ce - fix for big endian
+ - [arm64] crypto: aes-ccm-ce: fix for big endian
+ - [arm64] crypto: sha1-ce - fix for big endian
+ - [arm64] crypto: aes-xts-ce: fix for big endian
+ - [arm64] crypto: aes-ce - fix for big endian
+ - md: MD_RECOVERY_NEEDED is set for mddev->recovery
+ - md: fix refcount problem on mddev when stopping array.
+ - f2fs: remove percpu_count due to performance regression
+ - f2fs: hide a maybe-uninitialized warning
+ - PCI: Add Mellanox device IDs
+ - PCI: Convert broken INTx masking quirks from HEADER to FINAL
+ - PCI: Convert Mellanox broken INTx quirks to be for listed devices only
+ - PCI: Support INTx masking on ConnectX-4 with firmware x.14.1100+
+ - PCI: Enable access to non-standard VPD for Chelsio devices (cxgb3)
+ - [powerpc/powerpc64,ppc64*] pci/rpadlpar: Fix device reference leaks
+ - [s390x] topology: always use s390 specific sched_domain_topology_level
+ - [s390x] pci: fix dma address calculation in map_sg
+ - drm/radeon: Always store CRTC relative radeon_crtc->cursor_x/y values
+ - [x86] drm/i915: disable PSR by default on HSW/BDW
+ - [x86] drm/i915/gen9: unconditionally apply the memory bandwidth WA
+ - [x86] drm/i915/gen9: fix the WM memory bandwidth WA for Y tiling cases
+ - xfs: don't call xfs_sb_quota_from_disk twice
+ - xfs: check return value of _trans_reserve_quota_nblks
+ - xfs: don't skip cow forks w/ delalloc blocks in cowblocks scan
+ - xfs: don't BUG() on mixed direct and mapped I/O
+ - xfs: provide helper for counting extents from if_bytes
+ - xfs: check minimum block size for CRC filesystems
+ - xfs: fix unbalanced inode reclaim flush locking
+ - xfs: new inode extent list lookup helpers
+ - xfs: factor rmap btree size into the indlen calculations
+ - xfs: always succeed when deduping zero bytes
+ - xfs: remove prev argument to xfs_bmapi_reserve_delalloc
+ - xfs: track preallocation separately in xfs_bmapi_reserve_delalloc()
+ - xfs: use new extent lookup helpers in __xfs_reflink_reserve_cow
+ - xfs: clean up cow fork reservation and tag inodes correctly
+ - xfs: use new extent lookup helpers xfs_file_iomap_begin_delay
+ - xfs: pass post-eof speculative prealloc blocks to bmapi
+ - xfs: Move AGI buffer type setting to xfs_read_agi
+ - xfs: pass state not whichfork to trace_xfs_extlist
+ - xfs: handle cow fork in xfs_bmap_trace_exlist
+ - xfs: forbid AG btrees with level == 0
+ - xfs: check for bogus values in btree block headers
+ - xfs: complain if we don't get nextents bmap records
+ - xfs: don't crash if reading a directory results in an unexpected hole
+ - xfs: error out if trying to add attrs and anextents > 0
+ - xfs: don't allow di_size with high bit set
+ - xfs: don't cap maximum dedupe request length
+ - xfs: ignore leaf attr ichdr.count in verifier during log replay
+ - xfs: use GPF_NOFS when allocating btree cursors
+ - xfs: fix double-cleanup when CUI recovery fails
+ - xfs: use the actual AG length when reserving blocks
+ - xfs: fix crash and data corruption due to removal of busy COW extents
+ - xfs: fix max_retries _show and _store functions
+ - clocksource/dummy_timer: Move hotplug callback after the real timers
+ - tick/broadcast: Prevent NULL pointer dereference
+ - Revert "rtlwifi: Fix enter/exit power_save"
+ - Revert "usb: gadget: composite: always set ep->mult to a sensible value"
+ - usb: gadget: composite: always set ep->mult to a sensible value
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.4
+ - net: vrf: Fix NAT within a VRF
+ - net: vrf: Drop conntrack data after pass through VRF device on Tx
+ - sctp: sctp_transport_lookup_process should rcu_read_unlock when transport
+ is null
+ - inet: fix IP(V6)_RECVORIGDSTADDR for udp sockets
+ - ipv6: handle -EFAULT from skb_copy_bits
+ - net, sched: fix soft lockup in tc_classify
+ - [arm64, armhf] net: stmmac: Fix race between stmmac_drv_probe and
+ stmmac_open
+ - net/sched: cls_flower: Fix missing addr_type in classify
+ - net/mlx5: Check FW limitations on log_max_qp before setting it
+ - net/mlx5: Cancel recovery work in remove flow
+ - net/mlx5: Avoid shadowing numa_node
+ - net/mlx5: Mask destination mac value in ethtool steering rules
+ - net/mlx5: Prevent setting multicast macs for VFs
+ - net/mlx5e: Don't sync netdev state when not registered
+ - net/mlx5e: Disable netdev after close
+ - rtnl: stats - add missing netlink message size checks
+ - net: fix incorrect original ingress device index in PKTINFO
+ - net: ipv4: dst for local input routes should use l3mdev if relevant
+ - drop_monitor: add missing call to genlmsg_end
+ - drop_monitor: consider inserted data in genlmsg_end
+ - flow_dissector: Update pptp handling to avoid null pointer deref.
+ - igmp: Make igmp group member RFC 3376 compliant
+ - ipv4: Do not allow MAIN to be alias for new LOCAL w/ custom rules
+ - net: vrf: Add missing Rx counters
+ - [x86] bpf: change back to orig prog on too many passes
+ - [armhf] net: dsa: bcm_sf2: Do not clobber b53_switch_ops
+ - [armhf] net: dsa: bcm_sf2: Utilize nested MDIO read/write
+ - r8152: split rtl8152_suspend function
+ - r8152: fix rx issue for runtime suspend
+ - [armhf] net: dsa: Ensure validity of dst->ds[0]
+ - net: add the AF_QIPCRTR entries to family name tables
+ - gro: Enter slow-path if there is no tailroom
+ - gro: use min_t() in skb_gro_reset_offset()
+ - gro: Disable frag0 optimization on IPv6 ext headers
+ - net/mlx5e: Remove WARN_ONCE from adaptive moderation code
+ - net: ipv4: Fix multipath selection with vrf
+ - net: vrf: do not allow table id 0
+ - HID: hid-cypress: validate length of report
+ - ALSA: firewire-tascam: Fix to handle error from initialization of stream
+ data
+ - [powerpc] Fix build warning on 32-bit PPC
+ - [arm64] dts: mt8173: Fix auxadc node
+ - [arm64] dts: bcm2837-rpi-3-b: remove incorrect pwr LED
+ - [arm64] dts: bcm2835: Fix bcm2837 compatible string
+ - svcrdma: Clear xpt_bc_xps in xprt_setup_rdma_bc() error exit arm
+ - [armhf] OMAP5: Fix mpuss_early_init
+ - [armhf] OMAP5: Fix build for PM code
+ - [armhf] OMAP4+: Fix bad fallthrough for cpuidle
+ - [armhf] omap2+: am437x: rollback to use omap3_gptimer_timer_init()
+ - [armel/marvell, armhf] spi: mvebu: fix baudrate calculation for armada
+ variant
+ - ALSA: usb-audio: Add a quirk for Plantronics BT600
+ - [x86] drm/i915/gen9: Fix PCODE polling during CDCLK change notification
+ - rtlwifi: Fix enter/exit power_save
+ - rtlwifi: rtl_usb: Fix missing entry in USB driver's private data
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.5
+ - Input: xpad - use correct product id for x360w controllers
+ - Input: i8042 - add Pegatron touchpad to noloop table
+ - [armhf] regulator: axp20x: Fix axp809 ldo_io registration error on cold
+ boot
+ - [arm64, armhf] drm/tegra: dpaux: Fix error handling
+ - [arm64, armhf] drm/vc4: Fix a couple error codes in vc4_cl_lookup_bos()
+ - drm/savage: dereferencing an error pointer
+ - zram: revalidate disk under init_lock
+ - zram: support BDI_CAP_STABLE_WRITES
+ - dax: fix deadlock with DAX 4k holes
+ - mm: pmd dirty emulation in page fault handler
+ - mm: fix devm_memremap_pages crash, use mem_hotplug_{begin, done}
+ - ocfs2: fix crash caused by stale lvb with fsdlm plugin
+ - mm, memcg: fix the active list aging for lowmem requests when memcg is
+ enabled
+ - mm: support anonymous stable page
+ - mm/slab.c: fix SLAB freelist randomization duplicate entries
+ (CVE-2017-5546)
+ - mm/hugetlb.c: fix reservation race when freeing surplus pages
+ - [x86] KVM: fix emulation of "MOV SS, null selector" (CVE-2017-2583)
+ - KVM: eventfd: fix NULL deref irqbypass consumer
+ - jump_labels: API for flushing deferred jump label updates
+ - [x86] KVM: flush pending lapic jump label updates on module unload
+ - [x86] KVM: fix NULL deref in vcpu_scan_ioapic
+ - [x86] KVM: add Align16 instruction flag
+ - [x86] KVM: add asm_safe wrapper
+ - [x86] KVM: emulate FXSAVE and FXRSTOR
+ - [x86] KVM: Introduce segmented_write_std (CVE-2017-2584)
+ - efi/libstub/arm*: Pass latest memory map to the kernel
+ - [x86] efi: Prune invalid memory map entries and fix boot regression
+ - [x86] efi: Don't allocate memmap through memblock after mm_init()
+ (Closes: #851928)
+ - nl80211: fix sched scan netlink socket owner destruction
+ - gpio: Move freeing of GPIO hogs before numbing of the device
+ - xfs: Timely free truncated dirty pages
+ - bridge: netfilter: Fix dropping packets that moving through bridge
+ interface
+ - [x86] cpu/AMD: Clean up cpu_llc_id assignment per topology feature
+ - [x86] bugs: Separate AMD E400 erratum and C1E bug
+ - [x86] CPU/AMD: Fix Bulldozer topology
+ - wusbcore: Fix one more crypto-on-the-stack bug
+ - [armhf] usb: musb: fix runtime PM in debugfs
+ - USB: serial: kl5kusb105: fix line-state error handling (CVE-2017-5549)
+ - USB: serial: ch341: fix initial modem-control state
+ - USB: serial: ch341: fix resume after reset
+ - USB: serial: ch341: fix open error handling
+ - USB: serial: ch341: fix control-message error handling
+ - USB: serial: ch341: fix open and resume after B0
+ - i2c: print correct device invalid address
+ - i2c: fix kernel memory disclosure in dev interface
+ - fix a fencepost error in pipe_advance() (CVE-2017-5550)
+ - xhci: fix deadlock at host remove by running watchdog correctly
+ - btrfs: fix crash when tracepoint arguments are freed by wq callbacks
+ - ASoC: hdmi-codec: use unsigned type to structure members with bit-field
+ - Revert "tty: serial: 8250: add CON_CONSDEV to flags"
+ - pid: fix lockdep deadlock warning due to ucount_lock
+ - mnt: Protect the mountpoint hashtable with mount_lock
+ - drivers: char: mem: Fix thinkos in kmem address checks
+ - [armhf] dmaengine: omap-dma: Fix dynamic lch_map allocation
+ - virtio_blk: avoid DMA to stack for the sense buffer
+ - orinoco: Use shash instead of ahash for MIC calculations
+ - sysrq: attach sysrq handler correctly for 32-bit kernel
+ - [arm64, armhf] extcon: return error code on failure
+ - Clearing FIFOs in RS485 emulation mode causes subsequent transmits to
+ break
+ - sysctl: Drop reference added by grab_header in proc_sys_readdir
+ (CVE-2016-9191)
+ - [s390x] net/af_iucv: don't use paged skbs for TX on HiperSockets
+ - [x86] drm/i915/gen9: Fix PCODE polling timeout in stable backport
+ - drm: Clean up planes in atomic commit helper failure path
+ - drm/radeon: update smc firmware selection for SI
+ - drm/radeon: drop verde dpm quirks
+ - [x86] drm/amdgpu: update si kicker smc firmware
+ - [x86] drm/amdgpu: drop verde dpm quirks
+ - USB: serial: ch341: fix modem-control and B0 handling
+ - net/mlx5: Only cancel recovery work when cleaning up device
+ - i2c: piix4: Avoid race conditions with IMC
+ - [x86] cpu: Fix bootup crashes by sanitizing the argument of the
+ 'clearcpuid=' command-line option
+ - nvme: apply DELAY_BEFORE_CHK_RDY quirk at probe time too
+ - btrfs: fix locking when we put back a delayed ref that's too new
+ - btrfs: fix error handling when run_delayed_extent_op fails
+ - NFS: fix typo in parameter description
+ - pNFS: Fix race in pnfs_wait_on_layoutreturn
+ - NFS: Fix a performance regression in readdir
+ - NFSv4.1: nfs4_fl_prepare_ds must be careful about reporting success.
+ - [armhf] i2c: mux: pca954x: fix i2c mux selection caching
+ - [x86] drm/i915/gen9: Fix PCODE polling during SAGV disabling
+ - drm: avoid uninitialized timestamp use in wait_vblank
+ - [arm64, armhf] drm/panel: simple: Check against num_timings when setting
+ preferred for timing
+ - [x86] drm/i915: Move the min_pixclk[] handling to the end of readout
+ - drm: Initialise drm_mm.head_node.allocated
+ - block: Change extern inline to static inline
+ - block: cfq_cpd_alloc() should use @gfp
+ - [x86] ACPI / APEI: Fix NMI notification handling
+ - [x86] powercap/intel_rapl: fix and tidy up error handling
+ - iw_cxgb4: Fix error return code in c4iw_rdev_open()
+ - [arm64, armhf] power: supply: bq27xxx_battery: Fix register map for
+ BQ27510 and BQ27520
+ - blk-mq: Always schedule hctx->next_cpu
+ - [powerpc] mm: Correct process and partition table max size
+ - [powerpc*] ibmebus: Fix further device reference leaks
+ - [powerpc*] ibmebus: Fix device reference leaks in sysfs interface
+ - [powerpc*] powernv: Don't warn on PE init if unfreeze is unsupported
+ - [arm64] hugetlb: fix the wrong address for several functions
+ - [arm64] hugetlb: remove the wrong pmd check in find_num_contig()
+ - [arm64] hugetlb: fix the wrong return value for
+ huge_ptep_set_access_flags
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.6
+ - IB/core: Release allocated memory in cache setup failure
+ - IB/rxe: Increase max number of completions to 32k
+ - IB/rxe: avoid putting a large struct rxe_qp on stack
+ - IB/mlx5: Avoid system crash when enabling many VFs
+ - IB/mlx5: Fix reported max SGE calculation
+ - IB/mlx5: Assign SRQ type earlier
+ - IB/mlx5: Wait for all async command completions to complete
+ - IB/mlx4: Set traffic class in AH
+ - IB/mlx4: Fix out-of-range array index in destroy qp flow
+ - IB/mlx4: Handle well-known-gid in mad_demux processing
+ - IB/mlx4: Fix port query for 56Gb Ethernet links
+ - IB/mlx4: When no DMFS for IPoIB, don't allow NET_IF QPs
+ - IB/mlx4: Check if GRH is available before using it
+ - IB/IPoIB: Remove can't use GFP_NOIO warning
+ - perf trace: Use the syscall raw_syscalls:sys_enter timestamp
+ - perf mem: Fix --all-user/--all-kernel options
+ - perf trace: Check if MAP_32BIT is defined (again)
+ - perf diff: Do not overwrite valid build id
+ - perf callchain: Fixup help/config for no-unwinding
+ - perf scripting: Avoid leaking the scripting_context variable
+ - perf jit: Enable jitdump support without dwarf
+ - [armhf] dts: bcm283x: fix typo in mailbox address
+ - [armhf] dts: imx6q-cm-fx6: fix fec pinctrl
+ - [armhf] dts: omap3: Add DTS for Logic PD SOM-LV 37xx Dev Kit
+ - tmpfs: clear S_ISGID when setting posix ACLs (CVE-2017-5551)
+ - [x86] PCI: Ignore _CRS on Supermicro X8DTH-i/6/iF/6F
+ - rcu: Narrow early boot window of illegal synchronous grace periods
+ - sunrpc: don't call sleeping functions from the notifier block callbacks
+ - svcrpc: don't leak contexts on PROC_DESTROY
+ - libnvdimm, namespace: fix pmem namespace leak, delete when size set to
+ zero
+ - fuse: clear FR_PENDING flag when moving requests out of pending queue
+ - fuse: fix time_to_jiffies nsec sanity check
+ - PCI: Enumerate switches below PCI-to-PCIe bridges
+ - HID: corsair: fix DMA buffers on stack (CVE-2017-5547)
+ - HID: corsair: fix control-transfer error handling
+ - mmc: sdhci-acpi: Only powered up enabled acpi child devices
+ - ieee802154: atusb: do not use the stack for buffers to make them DMA able
+ (CVE-2017-5548)
+ - [s390x] KVM: do not expose random data via facility bitmap
+ - [armhf,arm64] KVM: vgic: Fix deadlock on error handling
+ - [powerpc*] icp-opal: Fix missing KVM case and harden replay
+ - [powerpc*] perf: Fix PM_BRU_CMPL event code for power9
+ - [powerpc*] ptrace: Preserve previous fprs/vsrs on short regset write
+ - [powerpc*] ptrace: Preserve previous TM fprs/vsrs on short regset write
+ - [powerpc*] Ignore reserved field in DCSR and PVR reads and writes
+ - [x86] ioapic: Restore IO-APIC irq_chip retrigger callback
+ - qla2xxx: Fix crash due to null pointer access
+ - mac80211: implement multicast forwarding on fast-RX path
+ - ubifs: Fix journal replay wrt. xattr nodes
+ - [armhf] clocksource/exynos_mct: Clear interrupt when cpu is shut down
+ - svcrdma: avoid duplicate dma unmapping during error recovery
+ - ceph: fix bad endianness handling in parse_reply_info_extra
+ - [armhf] dts: OMAP5 / DRA7: indicate that SATA port 0 is available.
+ - [arm64] avoid returning from bad_mode
+ - [arm64] ptrace: Preserve previous registers for short regset write
+ - [arm64] ptrace: Avoid uninitialised struct padding in fpr_set()
+ - [arm64] ptrace: Reject attempts to set incomplete hardware breakpoint
+ fields
+ - Input: ALPS - fix TrackStick support for SS5 hardware
+ - libceph: ceph_x_encrypt_buflen() takes in_len
+ - libceph: old_key in process_one_ticket() is redundant
+ - libceph: introduce ceph_x_encrypt_offset()
+ - libceph: introduce ceph_crypt() for in-place en/decryption
+ (CVE-2016-10153)
+ - libceph: rename and align ceph_x_authorizer::reply_buf
+ - libceph: tweak calcu_signature() a little
+ - libceph: switch ceph_x_encrypt() to ceph_crypt()
+ - libceph: switch ceph_x_decrypt() to ceph_crypt()
+ - libceph: remove now unused ceph_*{en,de}crypt*() functions
+ - [armhf] dts: Add an empty chosen node to top level DTSI
+ - [armel,armhf] 8613/1: Fix the uaccess crash on PB11MPCore
+ - ceph: fix scheduler warning due to nested blocking
+ - ceph: fix ceph_get_caps() interruption
+ - ceph: fix endianness of getattr mask in ceph_d_revalidate
+ - ceph: fix endianness bug in frag_tree_split_cmp
+ - libceph: make sure ceph_aes_crypt() IV is aligned
+ - xprtrdma: Make FRWR send queue entry accounting more accurate
+ - xprtrdma: Squelch "max send, max recv" messages at connect time
+ - [arm64] mm: avoid name clash in __page_to_voff()
+ - [arm64] Fix swiotlb fallback allocation
+ - swiotlb: Convert swiotlb_force from int to enum
+ - swiotlb: Add swiotlb=noforce debug option
+ - scsi: ses: Fix SAS device detection in enclosure
+ - scsi: mpt3sas: fix hang on ata passthrough commands
+ - [armhf] PM / devfreq: exynos-bus: Fix the wrong return value
+ - PM / devfreq: Fix the bug of devfreq_add_device when governor is NULL
+ - mtd: spi-nor: Off by one in cqspi_setup_flash()
+ - mtd: spi-nor: Fix some error codes in cqspi_setup_flash()
+ - [x86] ite-cir: initialize use_demodulator before using it
+ - [armhf] dmaengine: pl330: Fix runtime PM support for terminated transfers
+ - [armhf] soc: ti: wkup_m3_ipc: Fix error return code in wkup_m3_ipc_probe()
+ - libceph: uninline ceph_crypto_key_destroy()
+ - libceph: stop allocating a new cipher on every crypto request
+
+ [ Ben Hutchings ]
+ * [armel,armhf,s390x,x86] linux-headers: Fix regression of multilib compiler
+ support (Closes: #851481)
+ * nbd: use loff_t for blocksize and nbd_set_size args (Closes: #851533)
+ * ath9k: fix NULL pointer dereference (Closes: #851621)
+ * cfg80211,memcg,power: Avoid ABI changes
+ * bq27xxx_battery,cpuhp,libceph,orinoco,xhci: Ignore ABI changes
+ * linux-image: Increase minimum version of initramfs-tools (Closes: #808038)
+ * [x86] linux-cpupower: Add turbostat and x86_energy_perf_policy commands
+ (Closes: #778249)
+ * [arm64] Enable ARCH_MESON and related drivers (Closes: #852132)
+ * [arm64] dts: meson-gx: Add firmware reserved memory zones
+ * [x86] ASoC: Intel: select DW_DMAC_CORE since it's mandatory
+ * [x86] sound/soc/intel: Enable SND_SOC_INTEL_BDW_RT5677_MACH as module
+ (Closes: #851916)
+ * [arm64] video/fbdev: Change FB from module to built-in
+ * [arm64,armhf] video/fbdev: Enable FB_EFI (Closes: #851778)
+ * fs: Disable LOGFS, as it is unmaintained and will be removed in 4.10
+ * [rt] genpatch.py: Verify tag and tarball signatures
+ * fbdev: color map copying bounds checking (CVE-2016-8405)
+ * [armhf,arm64] drm/vc4: Fix an integer overflow in temporary allocation
+ layout. (CVE-2017-5576)
+ * [armhf,arm64] drm/vc4: Return -EINVAL on the overflow checks failing.
+ (CVE-2017-5577)
+ * [arm64] ptrace: Avoid ABI change in 4.9.6
+ * [arm64] Enable ARM64_ACPI_PARKING_PROTOCOL, ARCH_THUNDER, GPIO_PL061,
+ GPIO_XGENE, ARM_SMMU, ARM_SMMU_V3, PCI_HOST_THUNDER_PEM, and
+ PCI_HOST_THUNDER_ECAM; PINCTRL_AMD as built-in; SATA_AHCI_SEATTLE,
+ HW_RANDOM_XGENE, HW_RANDOM_CAVIUM, CPUFREQ_DT, K3_DMA, GPIO_XGENE_SB,
+ SENSORS_XGENE, I2C_THUNDERX, KEYBOARD_GPIO, TI_ST, THUNDER_NIC_PF,
+ THUNDER_NIC_VF (Closes: #852493), THUNDER_NIC_BGX, THUNDER_NIC_RGX,
+ MDIO_THUNDER, MDIO_XGENE, SPI_THUNDERX, and SND_SOC_APQ8016_SBC as
+ modules (thanks to Riku Voipio)
+
+ [ Roger Shimizu ]
+ * [armel] Add DT support of Buffalo Linkstation Live v3 (LS-CHL)
+ * drivers/input: Enable TOUCHSCREEN_GOODIX as module (Closes: #851821).
+ * [mips/octeon] hwmon: Enable SENSORS_ADM1031 as module (Closes: #851963).
+ Thanks to James Cowgill.
+ * nbd: fix 64-bit division.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 27 Jan 2017 07:44:54 +0000
+
+linux (4.9.2-2) unstable; urgency=medium
+
+ * [sparc64] Export memcpy and memset to modules again (fixes FTBFS)
+ * Revert "Remove debug symbol packages from debian/control to work around dak
+ bug", which caused most binary uploads to be rejected
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 12 Jan 2017 15:52:37 +0000
+
+linux (4.9.2-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.2
+
+ [ Ben Hutchings ]
+ * abiupdate.py: Use current config instead of downloading previous config
+ * abiupdate.py: Update base URLs
+ * abiupdate.py: Add support for incoming.ports.debian.org
+ * Make the pickled config (config.defines.dump) reproducible
+ * Remove debug symbol packages from debian/control to work around dak bug
+ * udeb: Add switch (DSA) drivers to nic-modules (Closes: #845075)
+ * netfilter: Enable NFT_NUMGEN, NFT_QUOTA as modules
+ * net/sched: Enable NET_ACT_TUNNEL_KEY, NET_IFE_SKBTCINDEX as modules
+ * vsock: Enable VSOCKETS, VHOST_VSOCK, VIRTIO_VSOCKETS as modules
+ * hci_uart: Enable BT_HCIUART_MRVL
+ * rxrpc: Enable AF_RXRPC_IPV6
+ * net: Enable NET_DEVLINK, MACSEC as modules
+ * SCSI: Enable SCSI_SMARTPQI as module
+ * target: Enable ISCSI_TARGET_CXGB4 as module
+ * cxgb4: Enable CHELSIO_T4_FCOE
+ * drm: Enable DRM_LEGACY; re-enable DRM_TDFX, DRM_R128, DRM_MGA, DRM_SIS,
+ DRM_VIA, DRM_SAVAGE as modules for some architectures
+ * 8250: Disable SERIAL_8250_LPSS, since it causes DW_DMAC_CORE to be built-in
+ * Partially revert "usb: Kconfig: using select for USB_COMMON dependency",
+ since it causes USB_COMMON to be built-in
+ * Set ABI to 1
+
+ [ John Paul Adrian Glaubitz ]
+ * [sh3] Build a linux-libc-dev package (Closes: #850732)
+
+ [ Martin Michlmayr ]
+ * [arm64] Enable MV_XOR and MV_XOR_V2.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 11 Jan 2017 04:41:33 +0000
+
+linux (4.9.1-1~exp1) experimental; urgency=medium
+
+ * New upstream release: https://kernelnewbies.org/Linux_4.9
+ - Revert "default exported asm symbols to zero"
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.1
+
+ [ Ben Hutchings ]
+ * Set ABI to trunk
+ * Enable USERFAULTFD (except on armel/marvell)
+ * [x86] PCI: Enable VMD as module
+ * mm: Enable PAGE_POISONING (Closes: #849450), PAGE_POISONING_NO_SANITY
+ (except on armel/marvell)
+ * ieee802154: Enable IEEE802154_FAKELB as module
+ * [armhf] leds,gpio: Enable LEDS_TCA6507 as module (Closes: #847770)
+ * [x86] iio,HID: Enable INTEL_ISH_HID as module
+ * hwmon,watchdog: Enable SENSORS_FTSTEUTATES as module (together with the
+ previous, Closes: #847017)
+ * net: Enable GTP as module (Closes: #846913)
+ * [armhf] gpio: Enable GPIO_MCP23S08 as module (Closes: #845064)
+ * aufs: Update support patchset to aufs4.9-20161219
+ * Use debhelper compatibility level 9
+ * [arm64] Revert "arm64/mm: Limit TASK_SIZE_64 ..." and add breaks on
+ incompatible mozjs
+ * genorig.py: Verify tag signatures (based on work by Yves-Alexis Perez)
+
+ [ Uwe Kleine-König ]
+ * enable `perf data' support; patch by Sebastian Andrzej Siewior
+ (Closes: #846597)
+ * [rt] Update to 4.9-rt1 and reenable
+ * [armhf] Add support for switch hardware on Turris Omnia
+
+ [ Aurelien Jarno ]
+ * [arm64] Enable RTC_DRV_DS1307.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 07 Jan 2017 03:44:26 +0000
+
+linux (4.9~rc8-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * radeon: Update package name in error message for missing firmware
+ * [amd64] Remove xen-linux-system-<version> package
+ * debian/control: Fix build-dependency on flex to work with new versions
+ that have M-A: allowed
+ * Revert "default exported asm symbols to zero"
+ * [arm64] remoteproc: Disable QCOM_WCNSS_PIL (fixes FTBFS)
+ * [sparc64] Don't re-add exports of string functions that are now only
+ defined as macros (fixes FTBFS, after other fixes)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 05 Dec 2016 05:02:30 +0000
+
+linux (4.9~rc7-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate:
+ - [armhf,armel] Revert "arm: move exports to definitions" (Closes: #844530)
+
+ [ Martin Michlmayr ]
+ * [arm64] Enable more QCOM options: BT_QCOMSMD, QCOM_EBI2, QCOM_TSENS,
+ QCOM_WCNSS_PIL and EXTCON_QCOM_SPMI_MISC.
+ * [arm64] Enable ARCH_MVEBU and related options.
+
+ [ Ben Hutchings ]
+ * linux-headers-common: Make these packages architecture-independent by
+ including headers for all architectures that we build a kernel for
+ * Fix exported symbol versions:
+ - Revert upstream changes moving exports to assembly sources
+ - [x86] kbuild: enable modversions for symbols exported from assembly
+ - [powerpc] Remove Mac-on-Linux hooks
+ - [powerpc*] Fix missing CRCs, add yet more asm-prototypes.h declarations
+ - Re-enable CONFIG_MODVERSIONS in a slightly weaker form
+ - module: Disable matching missing version CRC
+ * debian/bin/buildcheck.py: Add check for symbols with version CRC of 0
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 03 Dec 2016 01:46:12 +0000
+
+linux (4.9~rc5-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Aurelien Jarno ]
+ * Enable MAC802154, IEEE802154_ADF7242, IEEE802154_AT86RF230,
+ IEEE802154_ATUSB, IEEE802154_CC2520 and IEEE802154_MRF24J40.
+ * [arm64] Enable VIRTUALIZATION and KVM.
+
+ [ Ben Hutchings ]
+ * [hppa] Update build-dependencies for 64-bit kernel (fixes FTBFS)
+ * linux-perf: Exclude perf-read-vdso* from shared library dependency
+ check (fixes FTBFS on sparc64)
+ * [x86] kexec: add -fno-PIE
+ * wireless: Enable RTL8XXXU as module, replacement for R8723AU
+ * netfilter: Enable NFT_SET_RBTREE and NFT_SET_HASH as modules,
+ renamed from NFT_RBTREE and NFT_HASH
+ * tcp: Enable TCP_CONG_BBR as module
+ * [armel] Drop versatile flavour, which has been broken since version
+ 4.5~rc4-1~exp1
+ * [x86] ethernet: Enable ENA_ETHERNET as module
+ * [x86] efi: Prevent mixed mode boot corruption with CONFIG_VMAP_STACK=y
+ * w1: Disable W1_MASTER_MATROX
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 14 Nov 2016 05:19:31 +0000
+
+linux (4.9~rc3-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [rt] Disable until it is updated for 4.9 or later
+ * kbuild: add -fno-PIE (Closes: #841368)
+ * Compile with gcc-6 on all architectures
+ * debian/control: Fix build-dependency on openssl to work with new
+ versions that have M-A: allowed (Closes: #839145)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 03 Nov 2016 16:51:55 -0600
+
+linux (4.8.15-2) unstable; urgency=medium
+
+ [ Ben Hutchings ]
+ * [x86] Enable INTEL_VBTN as module (Closes: #848967)
+ * debian/control: Change build-dependency on asciidoc to prefer the new
+ asciidoc-base, so we don't pull in LaTeX unnecessarily
+ * [x86] Enable LEDS_DELL_NETBOOKS and DELL_SMBIOS as modules; re-enable
+ DELL_LAPTOP and DELL_WMI as modules (Closes: #849674)
+ * [powerpc*] boot: Request no dynamic linker for boot wrapper
+ (Closes: #848851, FTBFS on ppc6el)
+ * cpufreq: Enable CPU_FREQ_GOV_SCHEDUTIL as module
+ * [x86] ACPI: Enable DPTF_POWER as module
+ * [x86] perf: Enable PERF_EVENTS_AMD_POWER as module
+ * [x86] perf: Change PERF_EVENTS_INTEL_{CSTATE,RAPL,UNCORE} from built-in
+ to modules
+ * PCI: Enable PCIE_DPC (except for armel/versatile)
+ * [amd64] PCI: Enable PCI_HYPERV as module
+ * inet: Enable INET_DIAG_DESTROY
+ * tcp: Enable TCP_CONG_NV as module
+ * ipv6: Enable IPV6_ILA as module
+ * net/sched: Enable NET_CLS_MATCHALL, NET_ACT_IFE, NET_IFE_SKBMARK,
+ NET_IFE_SKBPRIO as modules
+ * hci_uart: Enable BT_HCIUART_AG6XX
+ * nvme: Enable NVME_RDMA, NVME_TARGET, NVME_TARGET_RDMA as modules
+ * [amd64] mic: Enable VOP_BUS and VOP as modules; re-enable INTEL_MIC_HOST as
+ module
+ * debian/control: Add Salvatore Bonaccorso to Uploaders
+ * [rt] Update to 4.8.15-rt10 (no functional change)
+
+ [ Salvatore Bonaccorso ]
+ * sg_write()/bsg_write() is not fit to be called under KERNEL_DS
+ (CVE-2016-10088)
+ * kvm: nVMX: Allow L1 to intercept software exceptions (#BP and #OF)
+ (CVE-2016-9588)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 04 Jan 2017 19:39:36 +0000
+
+linux (4.8.15-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.12
+ - [x86] iommu/vt-d: Fix PASID table allocation
+ - [x86] iommu/vt-d: Fix IOMMU lookup for SR-IOV Virtual Functions
+ - [x86] KVM: fix out-of-bounds access in lapic
+ - [x86] KVM: x86: drop error recovery in em_jmp_far and em_ret_far
+ (CVE-2016-9756)
+ - [x86] KVM: fix out-of-bounds accesses of rtc_eoi map (CVE-2016-9777)
+ - [x86] KVM: check for pic and ioapic presence before use
+ - [arm64, armhf] usb: chipidea: move the lock initialization to core file
+ - USB: serial: cp210x: add ID for the Zone DPMX
+ - USB: serial: ftdi_sio: add support for TI CC3200 LaunchPad
+ - scsi: mpt3sas: Fix secure erase premature termination
+ - cfg80211: limit scan results cache size
+ - apparmor: fix change_hat not finding hat after policy replacement
+ - NFSv4.x: hide array-bounds warning
+ - [x86] fpu: Fix invalid FPU ptrace state after execve()
+ - [x86] traps: Ignore high word of regs->cs in early_fixup_exception()
+ - perf/core: Fix address filter parser
+ - perf/x86/intel: Cure bogus unwind from PEBS entries
+ - [x86] thermal/powerclamp: add back module device table
+ - [hppa/parisc] Fix races in parisc_setup_cache_timing()
+ - [hppa/parisc] Switch to generic sched_clock implementation
+ - [hppa/parisc] Fix race in pci-dma.c
+ - [hppa/parisc] Also flush data TLB in flush_icache_page_asm
+ - mpi: Fix NULL ptr dereference in mpi_powm()
+ - X.509: Fix double free in x509_cert_parse()
+ - xc2028: Fix use-after-free bug properly
+ - [powerpc] Set missing wakeup bit in LPCR on POWER9
+ - [powerpc] mm: Fixup kernel read only mapping
+ - [powerpc] boot: Fix the early OPAL console wrappers
+ - can: bcm: fix support for CAN FD frames
+ - mm, oom: stop pre-mature high-order OOM killer invocations
+ - flow_dissect: call init_default_flow_dissectors() earlier
+ - scsi: mpt3sas: Unblock device after controller reset
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.13
+ - libata-scsi: Fixup ata_gen_passthru_sense()
+ - scsi: hpsa: use bus '3' for legacy HBA devices
+ - scsi: libfc: fix seconds_since_last_reset miscalculation
+ - mm, thp: propagation of conditional compilation in khugepaged.c
+ - thp: fix corner case of munlock() of PTE-mapped THPs
+ - zram: fix unbalanced idr management at hot removal
+ - mm: fix false-positive WARN_ON() in truncate/invalidate for hugetlb
+ - ovl: fix d_real() for stacked fs
+ - Input: change KEY_DATA from 0x275 to 0x277
+ - Input: psmouse - disable automatic probing of BYD touchpads
+ - rcu: Fix soft lockup for rcu_nocb_kthread
+ - mm: workingset: fix NULL ptr in count_shadow_nodes
+ - PCI: Export pcie_find_root_port
+ - PCI: Set Read Completion Boundary to 128 iff Root Port supports it
+ (_HPX)
+ - mwifiex: printk() overflow with 32-byte SSIDs
+ - [arm64] KVM: vgic: Don't notify EOI for non-SPIs
+ - [x86] drm/i915: Don't touch NULL sg on i915_gem_object_get_pages_gtt()
+ error
+ - [x86] drm/i915: drop the struct_mutex when wedged or trying to reset
+ - [x86] drm/amdgpu: fix power state when port pm is unavailable
+ - drm/radeon: fix power state when port pm is unavailable
+ - [x86] drm/amdgpu: fix check for port PM availability
+ - drm/radeon: fix check for port PM availability
+ - [arm64] dts: juno: fix cluster sleep state entry latency on all SoC
+ versions
+ - KVM: use after free in kvm_ioctl_create_device()
+ - pwm: Fix device reference leak
+ - [x86] perf: Restore TASK_SIZE check on frame pointer
+ - [armhf] clk: sunxi: Fix M factor computation for APB1
+ - batman-adv: Detect missing primaryif during tp_send as error
+ - [arm64] cpufeature: Schedule enable() calls instead of calling them via
+ IPI
+ - [arm64] mm: Set PSTATE.PAN from the cpu_enable_pan() call
+ - [arm64] suspend: Reconfigure PSTATE after resume from idle
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.14
+ - gro_cells: mark napi struct as not busy poll candidates
+ - virtio-net: add a missing synchronize_net()
+ - [armhf] net: dsa: b53: Fix VLAN usage and how we treat CPU port
+ - net: check dead netns for peernet2id_alloc()
+ - ip6_tunnel: disable caching when the traffic class is inherited
+ - net: sky2: Fix shutdown crash
+ - af_unix: conditionally use freezable blocking calls in read
+ - rtnetlink: fix FDB size computation
+ - l2tp: fix racy SOCK_ZAPPED flag check in l2tp_ip{,6}_bind()
+ - rtnl: fix the loop index update error in rtnl_dump_ifinfo()
+ - ipv6: bump genid when the IFA_F_TENTATIVE flag is clear
+ - udplite: call proper backlog handlers
+ - [armhf] net: dsa: bcm_sf2: Ensure we re-negotiate EEE during after link
+ change
+ - net, sched: respect rcu grace period on cls destruction
+ - [armhf] net: dsa: fix unbalanced dsa_switch_tree reference counting
+ - net/sched: pedit: make sure that offset is valid
+ - netlink: Call cb->done from a worker thread
+ - netlink: Do not schedule work from sk_destruct
+ - net/dccp: fix use-after-free in dccp_invalid_packet
+ - GSO: Reload iph after pskb_may_pull
+ - packet: fix race condition in packet_set_ring (CVE-2016-8655)
+ - ip6_offload: check segs for NULL in ipv6_gso_segment.
+ - cdc_ether: Fix handling connection notification
+ - tipc: check minimum bearer MTU (CVE-2016-8632)
+ - geneve: avoid use-after-free of skb->data
+ - net: avoid signed overflows for SO_{SND|RCV}BUFFORCE (CVE-2016-9793)
+ - net: ping: check minimum size on ICMP header length (CVE-2016-8399)
+ - ipv4: Restore fib_trie_flush_external function and fix call ordering
+ - ipv4: Fix memory leak in exception case for splitting tries
+ - ipv4: Drop leaf from suffix pull/push functions
+ - ipv4: Drop suffix update from resize code
+ - [sparc64] Fix find_node warning if numa node cannot be found
+ - [sparc64] fix compile warning section mismatch in find_node()
+ - [sparc] Fix inverted invalid_frame_pointer checks on sigreturns
+ - constify iov_iter_count() and iter_is_iovec()
+ - Don't feed anything but regular iovec's to blk_rq_map_user_iov
+ (CVE-2016-9576)
+ - ipv6: Set skb->protocol properly for local output
+ - ipv4: Set skb->protocol properly for local output
+ - Revert: "ip6_tunnel: Update skb->protocol to ETH_P_IPV6 in
+ ip6_tnl_xmit()"
+ - flowcache: Increase threshold for refusing new allocations
+ - esp4: Fix integrity verification when ESN are used
+ - esp6: Fix integrity verification when ESN are used
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.15
+ - [powerpc] eeh: Fix deadlock when PE frozen state can't be cleared
+ - [powerpc] mm: Fix lazy icache flush on pre-POWER5
+ - [powerpc] boot: Fix build failure in 32-bit boot wrapper
+ - fuse: fix clearing suid, sgid for chown()
+ - [hppa/parisc] Purge TLB before setting PTE
+ - [hppa/parisc] Remove unnecessary TLB purges from flush_dcache_page_asm
+ and flush_icache_page_asm
+ - [hppa/parisc] Fix TLB related boot crash on SMP machines
+ - zram: restrict add/remove attributes to root only
+ - locking/rtmutex: Prevent dequeue vs. unlock race
+ - locking/rtmutex: Use READ_ONCE() in rt_mutex_owner()
+ - device-dax: fix private mapping restriction, permit read-only
+ - scsi: lpfc: fix oops/BUG in lpfc_sli_ringtxcmpl_put()
+ - sched/autogroup: Fix 64-bit kernel nice level adjustment
+ - [x86] perf: Fix full width counter, counter overflow
+ - acpi, nfit: fix extended status translations for ACPI DSMs
+ - acpi, nfit, libnvdimm: fix / harden ars_status output length handling
+ - acpi, nfit: validate ars_status output buffer size
+ - acpi, nfit: fix bus vs dimm confusion in xlat_status
+ - [armel, armhf] crypto: marvell - Don't copy hash operation twice into
+ the SRAM
+ - crypto: caam - fix pointer size for AArch64 boot loader, AArch32 kernel
+ - [armel, armhf] crypto: marvell - Don't corrupt state of an STD req for
+ re-stepped ahash
+ - can: raw: raw_setsockopt: limit number of can_filter that can be set
+ - can: peak: fix bad memory access and free sequence
+ - [armel] dts: orion5x: fix number of sata port for linkstation ls-gl
+ (Closes: #845611)
+ - ceph: don't set req->r_locked_dir in ceph_d_revalidate
+ - [m68k] Fix ndelay() macro
+ - batman-adv: Check for alloc errors when preparing TT local data
+ - hotplug: Make register and unregister notifier API symmetric
+
+ [ Uwe Kleine-König ]
+ * [armhf] dts: armada-385: add support for Turris Omnia
+
+ [ Salvatore Bonaccorso ]
+ * Add ABI reference for 4.8.0-2
+ * Ignore ABI changes in KVM
+ * net: handle no dst on skb in icmp6_send (CVE-2016-9919)
+ * [rt] Update to 4.8.11-rt7
+ * [rt] Update to 4.8.14-rt9
+ * netfilter: ipv6: nf_defrag: drop mangled skb on ream error (CVE-2016-9755)
+ * Ignore ABI changes in libnvdimm
+ * docs: sphinx-extensions: make rstFlatTable work with docutils 0.13.
+ Thanks to Dmitry Shachnev <mitya57@debian.org> (Closes: #848349)
+
+ [ Ben Hutchings ]
+ * [amd64] Re-enable LEGACY_VSYSCALL_EMULATE instead of LEGACY_VSYSCALL_NONE.
+ There are still binaries in stable that use vsyscall (via dietlibc).
+ (Closes: #847154)
+ * debian/rules.real: Exclude *.pyc from featureset diffs
+ * debian/control: Fix build-dependency on flex to work with new versions that
+ have M-A: foreign
+ * debian/rules: Use dpkg-parsechangelog -S option to select fields
+ * debian/rules: Tighten binNMU version matching, consistent with linux-latest
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Mon, 19 Dec 2016 12:35:29 +0100
+
+linux (4.8.11-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.8
+ - net: fec: set mac address unconditionally
+ - net: pktgen: fix pkt_size
+ - net/sched: act_vlan: Push skb->data to mac_header prior calling
+ skb_vlan_*() functions
+ - net: Add netdev all_adj_list refcnt propagation to fix panic
+ - packet: call fanout_release, while UNREGISTERING a netdev
+ - netlink: do not enter direct reclaim from netlink_dump()
+ - drivers/ptp: Fix kernel memory disclosure
+ - net_sched: reorder pernet ops and act ops registrations
+ - ipv6: tcp: restore IP6CB for pktoptions skbs
+ - net: phy: Trigger state machine on state change and not polling.
+ - ip6_tunnel: fix ip6_tnl_lookup
+ - ipv6: correctly add local routes when lo goes up
+ - IB/ipoib: move back IB LL address into the hard header
+ - net/mlx4_en: fixup xdp tx irq to match rx
+ - net: pktgen: remove rcu locking in pktgen_change_name()
+ - bridge: multicast: restore perm router ports on multicast enable
+ - switchdev: Execute bridge ndos only for bridge ports
+ - rtnetlink: Add rtnexthop offload flag to compare mask
+ - net: core: Correctly iterate over lower adjacency list
+ - net: add recursion limit to GRO
+ - ipv4: disable BH in set_ping_group_range()
+ - ipv4: use the right lock for ping_group_range
+ - net: fec: Call swap_buffer() prior to IP header alignment
+ - net: sctp, forbid negative length
+ - sctp: fix the panic caused by route update
+ - udp: fix IP_CHECKSUM handling
+ - [x86] netvsc: fix incorrect receive checksum offloading
+ - net: ipv6: Do not consider link state for nexthop validation
+ - net sched filters: fix notification of filter delete with proper handle
+ - sctp: validate chunk len before actually using it (CVE-2016-9555)
+ - ip6_tunnel: Update skb->protocol to ETH_P_IPV6 in ip6_tnl_xmit()
+ - packet: on direct_xmit, limit tso and csum to supported devices
+ - [powerpc] Update parameters for csum_tcpudp_magic & csum_tcpudp_nofold
+ - [arm64, armhf] usb: dwc3: gadget: properly account queued requests
+ - scsi: megaraid_sas: Fix data integrity failure for JBOD (passthrough)
+ devices
+ - scsi: megaraid_sas: fix macro MEGASAS_IS_LOGICAL to avoid regression
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.9
+ - ALSA: info: Return error for invalid read/write
+ - ALSA: info: Limit the proc text input size
+ - dib0700: fix nec repeat handling
+ - mm, frontswap: make sure allocated frontswap map is assigned
+ - shmem: fix pageflags after swapping DMA32 object
+ - swapfile: fix memory corruption via malformed swapfile
+ - mm: hwpoison: fix thp split handling in memory_failure()
+ - mm/hugetlb: fix huge page reservation leak in private mapping error paths
+ - coredump: fix unfreezable coredumping task
+ - [s390x] hypfs: Use get_free_page() instead of kmalloc to ensure page
+ alignment
+ - PCI: Don't attempt to claim shadow copies of ROM
+ - [x86] pinctrl: cherryview: Serialize register access in suspend/resume
+ - [x86] pinctrl: cherryview: Prevent possible interrupt storm on resume
+ - cpupower: Correct return type of cpu_power_is_cpu_online() in cpufreq-set
+ - mmc: sdhci: Fix CMD line reset interfering with ongoing data transfer
+ - mmc: sdhci: Fix unexpected data interrupt handling
+ - mmc: mmc: Use 500ms as the default generic CMD6 timeout
+ - [arm64, armhf] usb: dwc3: Fix error handling for core init
+ - USB: cdc-acm: fix TIOCMIWAIT
+ - usb: gadget: u_ether: remove interrupt throttling
+ - drbd: Fix kernel_sendmsg() usage - potential NULL deref
+ - cdc-acm: fix uninitialized variable
+ - scsi: qla2xxx: Fix scsi scan hang triggered if adapter fails during init
+ - scsi: mpt3sas: Fix for block device of raid exists even after deleting
+ raid disk
+ - scsi: scsi_dh_alua: fix missing kref_put() in alua_rtpg_work()
+ - scsi: scsi_dh_alua: Fix a reference counting bug
+ - [arm64] KVM: vgic: Prevent access to invalid SPIs
+ - drm/radeon: disable runtime pm in certain cases
+ - [x86] drm/i915: Respect alternate_ddc_pin for all DDI ports
+ - [x86] drm/i915/dp: BDW cdclk fix for DP audio
+ - [x86] drm/i915/dp: Extend BDW DP audio workaround to GEN9 platforms
+ - [x86] drm/amdgpu: disable runtime pm in certain cases
+ - xprtrdma: use complete() instead complete_all()
+ - xprtrdma: Fix DMAR failure in frwr_op_map() after reconnect
+ - [amd64] iommu/amd: Free domain id when free a domain of struct
+ dma_ops_domain
+ - [x86] iommu/vt-d: Fix dead-locks in disable_dmar_iommu() path
+ - [x86] agp/intel: Flush chipset writes after updating a single PTE
+ - watchdog: core: Fix devres_alloc() allocation size
+ - perf top: Fix refreshing hierarchy entries on TUI
+ - [x86] mei: bus: fix received data size check in NFC fixup
+ - svcrdma: Skip put_page() when send_reply() fails
+ - svcrdma: Tail iovec leaves an orphaned DMA mapping
+ - nvme: Delete created IO queues on reset
+ - [s390x] dumpstack: restore reliable indicator for call traces
+ - hwrng: core - Don't use a stack buffer in add_early_randomness()
+ - i40e: fix call of ndo_dflt_bridge_getlink()
+ - [arm64] mmc: sdhci-msm: Fix error return code in sdhci_msm_probe()
+ - [x86] ACPI / APEI: Fix incorrect return value of ghes_proc()
+ - ACPI/PCI/IRQ: assign ISA IRQ directly during early boot stages
+ - ACPI/PCI: pci_link: penalize SCI correctly
+ - ACPI/PCI: pci_link: Include PIRQ_PENALTY_PCI_USING for ISA IRQs
+ - batman-adv: Modify neigh_list only with rcu-list functions
+ - [armel, armhf] gpio/mvebu: Use irq_domain_add_linear
+ - ASoC: Intel: Skylake: Always acquire runtime pm ref on unload
+ - [armhf] ASoC: sun4i-codec: return error code instead of NULL when
+ create_card fails
+ - memcg: prevent memcg caches to be both OFF_SLAB & OBJFREELIST_SLAB
+ - libceph: fix legacy layout decode with pool 0
+ - [x86] drm/amdgpu: fix fence slab teardown
+ - [x86] drm/amdgpu: fix a vm_flush fence leak
+ - [x86] drm/i915: Fix mismatched INIT power domain disabling during
+ suspend
+ - netfilter: fix namespace handling in nf_log_proc_dostring
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.10
+ - dctcp: avoid bogus doubling of cwnd after loss
+ - net: clear sk_err_soft in sk_clone_lock()
+ - net: mangle zero checksum in skb_checksum_help()
+ - ip6_tunnel: Clear IP6CB in ip6tunnel_xmit()
+ - tcp: fix potential memory corruption
+ - ipv4: allow local fragmentation in ip_finish_output_gso()
+ - tcp: fix return value for partial writes
+ - dccp: do not release listeners too soon
+ - dccp: do not send reset to already closed sockets
+ - dccp: fix out of bound access in dccp_v4_err()
+ - ipv6: dccp: fix out of bound access in dccp_v6_err()
+ - ipv6: dccp: add missing bind_conflict to dccp_ipv6_mapped
+ - sctp: assign assoc_id earlier in __sctp_connect
+ - bpf: fix htab map destruction when extra reserve is in use
+ - net: icmp6_send should use dst dev to determine L3 domain
+ - fib_trie: Correct /proc/net/route off by one error
+ - sock: fix sendmmsg for partial sendmsg
+ - net: icmp_route_lookup should use rt dev to determine L3 domain
+ - net: __skb_flow_dissect() must cap its return value
+ - ipv4: use new_gw for redirect neigh lookup
+ - tcp: take care of truncations done by sk_filter() (CVE-2016-8645)
+ - Revert "include/uapi/linux/atm_zatm.h: include linux/time.h"
+ (Closes: #844491)
+ - Revert "bnx2: Reset device during driver initialization"
+ - bnx2: Wait for in-flight DMA to complete at probe stage
+ - sctp: change sk state only when it has assocs in sctp_shutdown
+ - [arm64, armhf] net: stmmac: Fix lack of link transition for fixed PHYs
+ - [sparc] Handle negative offsets in arch_jump_label_transform
+ - [sparc64] Handle extremely large kernel TSB range flushes sanely.
+ - [sparc64] Fix illegal relative branches in hypervisor patched TLB code.
+ - [sparc64] Fix instruction count in comment for
+ __hypervisor_flush_tlb_pending.
+ - [sparc64] Fix illegal relative branches in hypervisor patched TLB
+ cross-call code.
+ - [sparc64] Handle extremely large kernel TLB range flushes more
+ gracefully.
+ - [sparc64] Delete __ret_efault.
+ - [sparc64] Prepare to move to more saner user copy exception handling.
+ - [sparc64] Convert copy_in_user to accurate exception reporting.
+ - [sparc64] Convert GENcopy_{from,to}_user to accurate exception
+ reporting.
+ - [sparc64] Convert U1copy_{from,to}_user to accurate exception reporting.
+ - [sparc64] Convert NG4copy_{from,to}_user to accurate exception
+ reporting.
+ - [sparc64] Convert NGcopy_{from,to}_user to accurate exception reporting.
+ - [sparc64] Convert NG2copy_{from,to}_user to accurate exception
+ reporting.
+ - [sparc64] Convert U3copy_{from,to}_user to accurate exception reporting.
+ - [sparc64] Delete now unused user copy assembler helpers.
+ - [sparc64] Delete now unused user copy fixup functions.
+ - usb: gadget: f_fs: edit epfile->ep under lock
+ - usb: gadget: f_fs: stop sleeping in ffs_func_eps_disable
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.11
+ - [x86] cpu/AMD: Fix cpu_llc_id for AMD Fam17h systems
+ - [x86] KVM: fix missed SRCU usage in kvm_lapic_set_vapic_addr
+ - [x86] KVM: Disable irq while unregistering user notifier
+ - ftrace: Ignore FTRACE_FL_DISABLED while walking dyn_ftrace records
+ - ftrace: Add more checks for FTRACE_FL_DISABLED in processing ip records
+ - genirq: Use irq type from irqdata instead of irqdesc
+ - fuse: fix fuse_write_end() if zero bytes were copied
+ - IB/rdmavt: rdmavt can handle non aligned page maps
+ - IB/hfi1: Fix rnr_timer addition
+ - [x86] mfd: intel-lpss: Do not put device in reset state on suspend
+ - [armhf] mfd: stmpe: Fix RESET regression on STMPE2401
+ - can: bcm: fix warning in bcm_connect/proc_register
+ - gpio: do not double-check direction on sleeping chips
+ - [x86] ALSA: usb-audio: Fix use-after-free of usb_device at disconnect
+ - [x86] ALSA: hda - add a new condition to check if it is thinkpad
+ - ALSA: hda - Fix mic regression by ASRock mobo fixup
+ - [armhf] i2c: mux: fix up dependencies
+ - [armhf] i2c: i2c-mux-pca954x: fix deselect enabling for device-tree
+ - kbuild: add -fno-PIE
+ - scripts/has-stack-protector: add -fno-PIE
+ - x86/kexec: add -fno-PIE
+ - kbuild: Steal gcc's pie from the very beginning
+ - ext4: sanity check the block and cluster size at mount time
+ - [armhf] dts: imx53-qsb: Fix regulator constraints
+ - crypto: caam - do not register AES-XTS mode on LP units
+ - [powerpc*] Fix setting of AIL in hypervisor mode
+ - [x86] drm/amdgpu: Attach exclusive fence to prime exported bo's.
+ - [x86] drm/i915: Refresh that status of MST capable connectors in
+ ->detect()
+ - [x86] drm/i915: Assume non-DP++ port if dvo_port is HDMI and there's no
+ AUX ch specified in the VBT
+ - virtio-net: drop legacy features in virtio 1 mode
+ - [armhf] clk: imx: fix integer overflow in AV PLL round rate
+ - [armhf] rtc: omap: Fix selecting external osc
+ - iwlwifi: pcie: fix SPLC structure parsing
+ - iwlwifi: pcie: mark command queue lock with separate lockdep class
+ - iwlwifi: mvm: fix netdetect starting/stopping for unified images
+ - iwlwifi: mvm: fix d3_test with unified D0/D3 images
+ - iwlwifi: mvm: wake the wait queue when the RX sync counter is zero
+ - mfd: core: Fix device reference leak in mfd_clone_cell
+ - sunrpc: svc_age_temp_xprts_now should not call setsockopt non-tcp
+ transports
+ - uwb: fix device reference leaks
+ - PM / sleep: fix device reference leak in test_suspend
+ - PM / sleep: don't suspend parent when async child suspend_{noirq,
+ late} fails
+ - perf hists: Fix column length on --hierarchy
+ - IB/mlx4: Check gid_index return value
+ - IB/mlx4: Fix create CQ error flow
+ - IB/mlx5: Validate requested RQT size
+ - IB/mlx5: Use cache line size to select CQE stride
+ - IB/mlx5: Fix memory leak in query device
+ - IB/mlx5: Fix fatal error dispatching
+ - IB/mlx5: Fix NULL pointer dereference on debug print
+ - IB/core: Avoid unsigned int overflow in sg_alloc_table
+ - IB/hfi1: Remove incorrect IS_ERR check
+ - IB/uverbs: Fix leak of XRC target QPs
+ - IB/cm: Mark stale CM id's whenever the mad agent was unregistered
+ - netfilter: nft_dynset: fix element timeout for HZ != 1000
+ - [arm64, armhf] gpio: pca953x: Move memcpy into mutex lock for set
+ multiple
+ - [arm64, armhf] gpio: pca953x: Fix corruption of other gpios in
+ set_multiple.
+
+ [ Salvatore Bonaccorso ]
+ * Bump ABI to 2 and remove ABI reference for 4.8.0-1
+ * xfs: Propagate dentry down to inode_change_ok()
+ * ceph: Propagate dentry down to inode_change_ok()
+ * fuse: Propagate dentry down to inode_change_ok()
+ * fs: Give dentry to inode_change_ok() instead of inode
+ * fs: Avoid premature clearing of capabilities (CVE-2015-1350)
+ (Closes: #770492)
+ * mpi: Fix NULL ptr dereference in mpi_powm() (CVE-2016-8650)
+ * vfio/pci: Fix integer overflows, bitmask check (CVE-2016-9083
+ CVE-2016-9084)
+ * mnt: Add a per mount namespace limit on the number of mounts
+ (CVE-2016-6213)
+
+ [ Ben Hutchings ]
+ * [arm64] Enable more drivers for X-Gene (Really closes: #840061):
+ - DMA: Enable XGENE_DMA as module
+ - EDAC: Enable EDAC and EDAC_MM_EDAC, EDAC_XGENE as modules
+ * [x86] video: Disable X86_SYSFB, FB_SIMPLE (Closes: #822575)
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Fri, 02 Dec 2016 06:35:22 +0100
+
+linux (4.8.7-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.6
+ - [armhf,arm64] drm/vc4: Fix races when the CS reads from render targets.
+ - [x86] drm/i915/backlight: setup and cache pwm alternate increment value
+ - [x86] drm/i915/backlight: setup backlight pwm alternate increment on
+ backlight enable
+ - [x86] drm/amdgpu: fix IB alignment for UVD
+ - [x86] drm/amdgpu/dce10: disable hpd on local panels
+ - [x86] drm/amdgpu/dce8: disable hpd on local panels
+ - [x86] drm/amdgpu/dce11: disable hpd on local panels
+ - [x86] drm/amdgpu/dce11: add missing drm_mode_config_cleanup call
+ - [x86] drm/amdgpu: initialize the context reset_counter in amdgpu_ctx_init
+ - [x86] drm/amdgpu: change vblank_time's calculation method to reduce
+ computational error.
+ - drm/radeon: narrow asic_init for virtualization
+ - drm/radeon/si/dpm: fix phase shedding setup
+ - drm/radeon: change vblank_time's calculation method to reduce
+ computational error.
+ - [x86] drm/vmwgfx: Limit the user-space command buffer size
+ - [x86] drm/amd/powerplay: fix mclk not switching back after multi-head
+ was disabled
+ - [x86] drm/i915/skl: Fix FIFO underrun (Closes: #844113)
+ + Update plane watermarks atomically during plane updates
+ + Move CRTC updating in atomic_commit into it's own hook
+ + Update DDB values atomically with wms/plane attrs
+ + Don't try to update plane watermarks if they haven't changed
+ - [x86] drm/i915/gen9: only add the planes actually affected by ddb changes
+ - [x86] drm/i915/gen9: fix the WaWmMemoryReadLatency implementation
+ - [x86] drm/i915/gen9: minimum scanlines for Y tile is not always 4
+ - [x86] drm/i915/gen9: fix plane_blocks_per_line on watermarks calculations
+ - [x86] drm/i915/gen9: fix the watermark res_blocks value
+ - [x86] drm/i915: SAGV is not SKL-only, so rename a few things
+ - [x86] drm/i915: introduce intel_has_sagv()
+ - [x86] drm/i915/kbl: KBL also needs to run the SAGV code
+ - [x86] Revert "drm/i915: Check live status before reading edid"
+ - [x86] drm/i915: Account for TSEG size when determining 865G stolen base
+ - [x86] drm/i915/skl: Ensure pipes with changed wms get added to the state
+ - [x86] drm/i915: Allow PCH DPLL sharing regardless of DPLL_SDVO_HIGH_SPEED
+ - [x86] drm/i915: Move long hpd handling into the hotplug work
+ - [x86] drm/i915: Allow DP to work w/o EDID
+ - [x86] drm/i915: Just clear the mmiodebug before a register access
+ - [x86] drm/i915: Unalias obj->phys_handle and obj->userptr
+ - rt2x00usb: Fix error return code
+ - uio: fix dmem_region_start computation
+ - i40e: remove a stray unlock
+ - i40e: fix broken i40e_config_rss_aq function
+ - mwifiex: correct aid value during tdls setup
+ - mwifiex: fix failed to reconnect after interface disabled/enabled
+ - ath10k: Add WMI_SERVICE_PERIODIC_CHAN_STAT_SUPPORT wmi service
+ - ath10k: fix sending frame in management path in push txq logic
+ - ath10k: fix reporting channel survey data
+ - ath10k: fix throughput regression in multi client mode
+ - [armel/marvell,armhf] crypto: marvell - Don't overwrite default
+ creq->state during initialization
+ - crypto: gcm - Fix IV buffer size in crypto_gcm_setkey
+ - [armel/marvell,armhf] crypto: marvell - Update transformation context for
+ each dequeued req
+ - [x86] crypto: ccp - Fix return value check in ccp_dmaengine_register()
+ - [armhf] hwrng: omap - Only fail if pm_runtime_get_sync returns < 0
+ - ASoC: topology: Fix error return code in soc_tplg_dapm_widget_create()
+ - ASoC: dapm: Fix possible uninitialized variable in
+ snd_soc_dapm_get_volsw()
+ - ASoC: dapm: Fix value setting for _ENUM_DOUBLE MUX's second channel
+ - ASoC: dapm: Fix kcontrol creation for output driver widget
+ - staging: r8188eu: Fix scheduling while atomic splat
+ - IB/qib: Remove qpt_mask global
+ - IB/mlx5: Fix steering resource leak
+ - mm/hugetlb: check for reserved hugepages during memory offline
+ - mm/hugetlb: improve locking in dissolve_free_huge_pages()
+ - [x86] drm/vmwgfx: Avoid validating views on view destruction
+ - [s390x] cio: fix accidental interrupt enabling during resume
+ - [s390x] con3270: fix use of uninitialised data
+ - [s390x] con3270: fix insufficient space padding
+ - [armhf,arm64] clk: bcm2835: Skip PLLC clocks when deciding on a new
+ clock parent
+ - [arm64] clk: gcc-msm8996: Fix pcie 2 pipe register offset
+ - [arm64] clk: qcom: select GDSC for msm8996 gcc and mmcc
+ - clk: Return errors from clk providers in __of_clk_get_from_provider()
+ - clk: core: Force setting the phase delay when no change
+ - clk: divider: Fix clk_divider_round_rate() to use clk_readl()
+ - perf hists browser: Fix event group display
+ - perf ui/tui: Reset output width for hierarchy
+ - perf ui/stdio: Always reset output width for hierarchy
+ - perf symbols: Check symbol_conf.allow_aliases for kallsyms loading too
+ - perf symbols: Fixup symbol sizes before picking best ones
+ - iwlwifi: check for valid ethernet address provided by OEM
+ - iwlwifi: mvm: fix pending frames tracking on tx resp
+ - iwlwifi: mvm: call a different txq_enable function
+ - iwlwifi: mvm: free reserved queue on STA removal
+ - iwlwifi: mvm: support BAR in reorder buffer
+ - iwlwifi: mvm: disable P2P queue on mac context release
+ - iwlwifi: mvm: bail out if CTDP start operation fails
+ - [armhf,arm64] pinctrl: qcom: fix masking of pinmux functions
+ - mpt3sas: Don't spam logs if logging level is 0
+ - [powerpc*] Always restore FPU/VEC/VSX if hardware transactional memory
+ in use
+ - [powerpc*] Add check_if_tm_restore_required() to giveup_all()
+ - [powerpc*] nvram: Fix an incorrect partition merge
+ - [powerpc*] Fix usage of _PAGE_RO in hugepage
+ - [armhf] dts: omap3: overo: add missing unit name for lcd35 display
+ - PCI: generic: Fix pci_remap_iospace() failure path
+ - [armhf] PCI: tegra: Fix pci_remap_iospace() failure path
+ - libnvdimm: clear the internal poison_list when clearing badblocks
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.7
+ - [armhf] i2c: rk3x: Give the tuning value 0 during
+ rk3x_i2c_v0_calc_timings
+ - i2c: core: fix NULL pointer dereference under race condition
+ - drm/dp/mst: Clear port->pdt when tearing down the i2c adapter
+ - gpio / ACPI: fix returned error from acpi_dev_gpio_irq_get()
+ - gpio: GPIO_GET_CHIPINFO_IOCTL: Fix line offset validation
+ - gpio: GPIO_GET_CHIPINFO_IOCTL: Fix information leak
+ - gpio: GPIO_GET_LINEHANDLE_IOCTL: Validate line offset
+ - gpio: GPIOHANDLE_GET_LINE_VALUES_IOCTL: Fix information leak
+ - gpio: GPIO_GET_LINEEVENT_IOCTL: Validate line offset
+ - gpio: GPIO_GET_LINEHANDLE_IOCTL: Reject invalid line flags
+ - gpio: GPIO_GET_LINEEVENT_IOCTL: Reject invalid line and event flags
+ - gpio: GPIOHANDLE_GET_LINE_VALUES_IOCTL: Fix another information leak
+ - gpio: GPIO_GET_LINE{HANDLE,EVENT}_IOCTL: Fix file descriptor leak
+ - libxfs: clean up _calc_dquots_per_chunk
+ - mm/list_lru.c: avoid error-path NULL pointer deref
+ - mm/slab: fix kmemcg cache creation delayed issue
+ - mm: memcontrol: do not recurse in direct reclaim
+ - [x86] thermal/powerclamp: correct cpu support check
+ - KEYS: Fix short sprintf buffer in /proc/keys show function
+ - ALSA: usb-audio: Add quirk for Syntek STK1160
+ - ALSA: seq: Fix time account regression
+ - ALSA: hda - allow 40 bit DMA mask for NVidia devices
+ - ALSA: hda - Adding a new group of pin cfg into ALC295 pin quirk table
+ - ALSA: hda - Fix surround output pins for ASRock B150M mobo
+ - ALSA: hda - Fix headset mic detection problem for two Dell laptops
+ - [powerpc*] cxl: Fix leaking pid refs in some error paths
+ - btrfs: fix races on root_log_ctx lists
+ - [powerpc] Convert cmp to cmpd in idle enter sequence
+ - [powerpc] mm/radix: Use tlbiel only if we ever ran on the current cpu
+ - [powerpc] Re-fix race condition between going idle and entering guest
+ - [powerpc] Fix race condition in setting lock bit in idle/wakeup code
+ - [amd64] x86/microcode/AMD: Fix more fallout from
+ CONFIG_RANDOMIZE_MEMORY=y
+ - timers: Prevent base clock rewind when forwarding clock
+ - timers: Prevent base clock corruption when forwarding
+ - timers: Plug locking race vs. timer migration
+ - timers: Lock base for same bucket optimization
+ - mei: txe: don't clean an unprocessed interrupt cause.
+ - USB: serial: fix potential NULL-dereference at probe
+ - USB: serial: cp210x: fix tiocmget error handling
+ - USB: serial: ftdi_sio: add support for Infineon TriBoard TC2X7
+ - xhci: use default USB_RESUME_TIMEOUT when resuming ports.
+ - usb: increase ohci watchdog delay to 275 msec (Closes: #842863)
+ - [powerpc] GenWQE: Fix bad page access during abort of resource
+ allocation
+ - [x86] smpboot: Init apic mapping before usage
+ - vt: clear selection before resizing
+ - [x86] hv: do not lose pending heartbeat vmbus packets
+ - xhci: add restart quirk for Intel Wildcatpoint PCH
+ - xhci: workaround for hosts missing CAS bit
+ - tty: limit terminal size to 4M chars
+ - [arm64] dts: marvell: fix clocksource for CP110 master SPI0
+ - dm: free io_barrier after blk_cleanup_queue call
+ - [x86] KVM: fix wbinvd_dirty_mask use-after-free
+ - [s390] KVM: Fix STHYI buffer alignment for diag224
+ - [armhf] mvebu: Select corediv clk for all mvebu v7 SoC
+ - nfsd: Fix general protection fault in release_lock_stateid()
+ - [mips*] KASLR: Fix handling of NULL FDT
+ - ovl: fix get_acl() on tmpfs
+ - ovl: update S_ISGID when setting posix ACLs
+ - ovl: fsync after copy-up
+ - virtio_ring: Make interrupt suppression spec compliant
+ - virtio_pci: Limit DMA mask to 44 bits for legacy virtio devices
+ - virtio: console: Unlock vqs while freeing buffers
+ - dm mirror: fix read error on recovery after default leg failure
+ - dm table: fix missing dm_put_target_type() in dm_table_add_target()
+ - dm rq: clear kworker_task if kthread_run() returned an error
+ - dm raid: fix compat_features validation (Closes: #843572)
+ - dm raid: fix activation of existing raid4/10 devices
+ - firewire: net: guard against rx buffer overflows (CVE-2016-8633)
+ - firewire: net: fix fragmented datagram_size off-by-one
+ - mac80211: discard multicast and 4-addr A-MSDUs
+ - ath10k: cache calibration data when the core is stopped
+ - scsi: scsi_debug: Fix memory leak if LBP enabled and module is unloaded
+ - scsi: arcmsr: Send SYNCHRONIZE_CACHE command to firmware
+ - [arm64, armhf] mmc: dw_mmc-pltfm: fix the potential NULL pointer
+ dereference
+ - RAID1: ignore discard error
+ - RAID10: ignore discard error
+ - md: be careful not lot leak internal curr_resync value into metadata.
+ - Revert "drm/radeon: fix DP link training issue with second 4K monitor"
+ - [armhf] drm/imx: ipuv3-plane: Switch EBA buffer only when we don't need
+ modeset
+ - [armhf] drm/imx: ipuv3-plane: Access old u/vbo properly in
+ ->atomic_check for YU12/YV12
+ - drm/radeon/si_dpm: Limit clocks on HD86xx part
+ - drm/radeon/si_dpm: workaround for SI kickers
+ - drm/radeon: drop register readback in cayman_cp_int_cntl_setup
+ - drm/nouveau/acpi: fix check for power resources support
+ - drm/fb-helper: Don't call dirty callback for untouched clips
+ - drm/fb-helper: Fix connector ref leak on error
+ - drm/fb-helper: Keep references for the current set of used connectors
+ - drm/i915/gen9: fix DDB partitioning for multi-screen cases
+ - drm/i915/gen9: fix watermarks when using the pipe scaler
+ - drm/dp/mst: Check peer device type before attempting EDID read
+ - drm: Release reference from blob lookup after replacing property
+ - drm/i915: Respect alternate_aux_channel for all DDI ports
+ - drm/i915: Clean up DDI DDC/AUX CH sanitation
+ - drm/i915/fbc: fix CFB size calculation for gen8+
+ - drm: i915: Wait for fences on new fb, not old
+ - i2c: mark device nodes only in case of successful instantiation
+ - netfilter: xt_NFLOG: fix unexpected truncated packet
+ - [arm64, armhf] pwm: Unexport children before chip removal
+ - [arm64, armhf] usb: dwc3: Fix size used in dma_free_coherent()
+ - [arm64, armhf] usb: chipidea: host: fix NULL ptr dereference during
+ shutdown
+ - [armhf] usb: musb: Fix hardirq-safe hardirq-unsafe lock order error
+ - tty: vt, fix bogus division in csi_J
+ - [x86] kvm: Check memopp before dereference (CVE-2016-8630)
+ - btrfs: qgroup: Prevent qgroup->reserved from going subzero
+ - [x86] cpufreq: intel_pstate: Set P-state upfront in performance mode
+ - HID: usbhid: add ATEN CS962 to list of quirky devices
+
+ [ Ben Hutchings ]
+ * debian/control: Fix build-dependency on openssl to work with new
+ versions that have M-A: allowed (Closes: #839145)
+ * [rt] Update to 4.8.6-rt5:
+ - [i386] entry: Fix preempt_lazy_count check in resume_kernel()
+ - sched: Use mmdrop_delayed() in sched_cpu_dying()
+ - Revert "mm/zsmalloc: Use get/put_cpu_light in
+ zs_map_object()/zs_unmap_object()"
+ - mm/zsmalloc: copy with get_cpu_var() and locking
+ - NFSv4: replace seqcount_t with a seqlock_t
+ - ftrace: Fix trace header alignment
+ - connector/cn_proc: Protect send_msg() with a local lock on RT
+ - drivers/zram: Don't disable preemption in zcomp_stream_get/put()
+ * HID: Enable HID_ALPS, HID_ASUS (Closes: #843085), HID_CMEDIA as modules
+ * cpupower: Fix checks for CPU existence (Closes: #843071)
+ * perf: Disable use of libcrypto (Closes: #843199)
+ * IB: Enable INFINIBAND_RDMAVT as module, re-enabling INFINIBAND_HFI1
+ and INFINIBAND_QIB (Closes: #843792)
+ * libcpupower-dev: Depend on libcpupower1 (Closes: #840852)
+ * [arm64] Enable more drivers for X-Gene (Closes: #840061):
+ - ipmi: Enable IPMI_HANDLER, IPMI_DEVICE_INTERFACE, IPMI_SSIF as modules
+ - i2c: Enable I2C_XGENE_SLIMPRO as module
+ - mailbox: Enable XGENE_SLIMPRO_MBOX as module
+ * debian/control: Build-Depend on a recent debhelper instead of dh-systemd
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 13 Nov 2016 04:38:09 +0000
+
+linux (4.8.5-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.5
+ - [x86] boot/smp: Don't try to poke disabled/non-existent APIC
+ (Closes: #841850)
+ - [x86] Input: i8042 - skip selftest on ASUS laptops
+ - [x86] Input: elantech - add Fujitsu Lifebook E556 to force crc_enabled
+ (Closes: #835160)
+
+ [ Ben Hutchings ]
+ * cpufreq: Re-enable CPU_FREQ_STAT, which can no longer be modular
+ * [armhf] dts: imx53: add support for USB armory board (Closes: #840137)
+ * kconfig: Renumber SYMBOL_NEW, fixing regression of allnoconfig
+ (Closes: #841357)
+ * netfilter: xt_NFLOG: fix unexpected truncated packet (Closes: #841261)
+ * Set ABI to 1
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 28 Oct 2016 20:34:09 +0100
+
+linux (4.8.4-1~exp1) experimental; urgency=medium
+
+ * New upstream release: https://kernelnewbies.org/Linux_4.8
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.1
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.2
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.3
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.4
+
+ [ Ben Hutchings ]
+ * [amd64] Enable LEGACY_VSYSCALL_NONE instead of LEGACY_VSYSCALL_EMULATE.
+ This breaks (e)glibc 2.13 and earlier, and can be reverted using the kernel
+ parameter: vsyscall=emulate
+ * [arm*] Enable STRICT_DEVMEM
+ * [arm*,powerpc*,s390x,x86] Enable IO_STRICT_DEVMEM. This breaks dosemu and
+ some old graphics drivers, and can be reverted using the kernel parameter:
+ iomem=relaxed
+ * [mips*] Enable RANDOMIZE_BASE and RELOCATABLE.
+ * Enable SLAB_FREELIST_RANDOM
+ * [arm*,powerpc*,s390x,sparc64,x86] Enable HARDENED_USERCOPY
+ * security,perf: Replace GRKERNSEC_PERF_HARDEN patch with the version
+ submitted upstream
+ * [amd64] Enable RANDOMIZE_MEMORY
+ * [powerpc*/*64*] Enable OPAL_PRD, MTD, MTD_POWERNV_FLASH as modules
+ (Closes: #838604, #838605)
+ * security,printk: Enable SECURITY_DMESG_RESTRICT, preventing non-root users
+ reading the kernel log by default (sysctl: kernel.dmesg_restrict)
+ * bug script: Optionally use sudo to read a restricted kernel log, and fall
+ back to writing a placeholder
+ * [rt] Update to 4.8.2-rt2 and re-enable
+ * aufs: Update support patchest to aufs4.8-20161010 (no functional change)
+
+ [ Aurelien Jarno ]
+ * [arm64] Enable SERIAL_8250_EXTENDED, SERIAL_8250_SHARE_IRQ and
+ SERIAL_8250_BCM2835AUX, needed for Raspberry Pi 3.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 23 Oct 2016 17:21:13 +0100
+
+linux (4.8~rc8-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Héctor Orón ]
+ * [arm64] Enable ACPI, ARM64_VA_BITS_48 (Closes: #834505)
+
+ [ Ben Hutchings ]
+ * Fix some new reproducibility issues:
+ - linux-source: Exclude Python bytecode generated when running Sphinx
+ - Set -fdebug-prefix-map=... in compiler options for kernel and userland
+ - linux-headers: Stop including unused arch/*/kernel/asm-offsets.s files
+ * linux-doc: Exclude Sphinx support code and Makefiles
+ * [arm64] mm: Limit TASK_SIZE_64 for compatibility
+ * [armhf] udeb: Replace dwmac-socfpga with dwmac-altr-socfpga in
+ nic-modules (Closes: #837110, thanks to Vagrant Cascadian)
+ * [armhf] Enable drivers for ASUS Chromebook C201 (veyron-speedy):
+ MFD_RK808, POWER_AVS, POWER_RESET_GPIO_RESTART, RTC_DRV_RK808,
+ ROCKCHIP_PM_DOMAINS as built-in; DRM_PANEL_SIMPLE, ROCKCHIP_ANALOGIX_DP,
+ ROCKCHIP_DW_MIPI_DSI, I2C_CROS_EC_TUNNEL, KEYBOARD_CROS_EC, OUSE_ELAN_I2C,
+ MFD_CROS_EC, MFD_CROS_EC_SPI, MFD_RK808, PHY_ROCKCHIP_EMMC, PHY_ROCKCHIP_DP,
+ BATTERY_SBS, CHARGER_GPIO, REGULATOR_RK808, BACKLIGHT_PWM as modules
+ (Closes: #836251, thanks to Vagrant Cascadian)
+ * [armhf] dsa: Enable drivers for Lamobo R1 (aka BPi-R1): B53,
+ B53_MDIO_DRIVER as modules (Closes: #836231, thanks to Vagrant Cascadian)
+ * [armhf] media: Enable VIDEO_V4L2_SUBDEV_API and VIDEO_OMAP3 as module
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 26 Sep 2016 04:27:06 +0100
+
+linux (4.8~rc5-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Martin Michlmayr ]
+ * [arm64] Enable more Tegra options: TEGRA_ACONNECT.
+ * [arm64] Enable more QCOM options: MSM_GCC_8996, MSM_MMCC_8996, QCOM_HIDMA,
+ QCOM_HIDMA_MGMT, PCIE_QCOM, PINCTRL_MSM8996, QCOM_Q6V5_PIL.
+ * [arm64] Enable support for BCM2837 (Raspberry Pi 3):
+ - Enable ARCH_BCM2835, DMA_BCM2835, BCM2835_MBOX, RASPBERRYPI_FIRMWARE,
+ RASPBERRYPI_POWER
+ - Enable DRM_VC4, I2C_BCM2835, PWM_BCM2835, SPI_BCM2835, SPI_BCM2835AUX,
+ BCM2835_WDT, SND_BCM2835_SOC_I2S, MMC_SDHCI_IPROC, HW_RANDOM_BCM2835
+ as modules
+ * [arm64] Enable USB_DWC2 and USB_DWC3.
+ * [arm64] Enable more HISI options: MFD_HI655X_PMIC, REGULATOR_HI655X,
+ STUB_CLK_HI6220, HI6220_MBOX, COMMON_RESET_HI6220, PHY_HI6220_USB,
+ HW_RANDOM_HISI, DRM_HISI_KIRIN, INPUT_HISI_POWERKEY, PCI_HISI,
+ SPI_HISI_SFC, SCSI_HISI_SAS (Closes: #821027).
+ * [arm64] Enable TI WLAN (WLAN_VENDOR_TI): WL1251, WL12XX, WL18XX
+ * [arm64] Enable Hisilicon Ethernet devices: HIX5HD2_GMAC, HISI_FEMAC,
+ HIP04_ETH, HNS_MDIO, HNS, HNS_DSAF, HNS_ENET, MDIO_HISI_FEMAC
+
+ [ Ben Hutchings ]
+ * Update config for 4.8:
+ - Enable HID_LED as module instead of USB_LED
+ - Enable BH1780 as module instead of SENSORS_BH1780
+ - [alpha] Enable RTC_CLASS and RTC_DRV_ALPHA instead of GEN_RTC
+ - [armhf] Rename omapdrm display config symbols
+ - [armhf] Enable IIO_ST_ACCEL_3AXIS as module instead of LIS3L02DQ
+ - [hppa] Enable RTC_CLASS and RTC_DRV_GENERIC instead of GEN_RTC
+ * liblockdep: Stop trying to build packages, as it failed to build again
+ * linux-doc: Build and install HTML pages from reStructuredText sources
+ - Add python-sphinx and python-sphinx-rtd-theme to Build-Depends-Indep
+ - Install files from both HTML output directories into the package
+ - Exclude RST sources from the package
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 07 Sep 2016 21:52:47 +0100
+
+linux (4.7.8-1) unstable; urgency=high
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.7.7
+ - cpuset: handle race between CPU hotplug and cpuset_hotplug_work
+ - cgroup: fix invalid controller enable rejections with cgroup namespace
+ - scripts/recordmcount.c: account for .softirqentry.text
+ - mm,ksm: fix endless looping in allocating memory when ksm enable
+ - can: dev: fix deadlock reported after bus-off
+ - [x86] init: Fix cr4_init_shadow() on CR4-less machines
+ - drm/udl: fix line iterator in damage handling
+ - drm/nouveau/fifo/nv04: avoid ramht race against cookie insertion
+ - drm/radeon/si/dpm: add workaround for for Jet parts
+ - [armel,armhf] 8616/1: dt: Respect property size when parsing CPUs
+ - [armel,armhf] 8617/1: dma: fix dma_max_pfn()
+ - mwifiex: illegal assignment
+ - i40e: avoid null pointer dereference
+ - pinctrl: Flag strict is a field in struct pinmux_ops
+ - i2c: mux: demux-pinctrl: run properly with multiple instances
+ - rcuperf: Don't treat gp_exp mis-setting as a WARN
+ - [armhf,arm64] drivers/perf: arm_pmu: Fix leak in error path
+ - perf/core: Use this_cpu_ptr() when stopping AUX events
+ - [armhf,arm64] mmc: tegra: Only advertise UHS modes if IO regulator is
+ present
+ - nvmem: Declare nvmem_cell_read() consistently
+ - hwmon: (adt7411) set bit 3 in CFG1 register
+ - sched/cputime: Fix prev steal time accouting during CPU hotplug
+ - iwlwifi: mvm: checksum IPv6 fragmented packet
+ - iwlwifi: mvm: fix txq aggregation bug
+ - iwlwifi: mvm: write the correct internal TXF index
+ - iwlwifi: mvm: unmap the paging memory before freeing it
+ - iwlwifi: pcie: fix access to scratch buffer
+ - iwlwifi: mvm: free RX reorder buffer on restart
+ - iwlwifi: mvm: avoid harmless -Wmaybe-uninialized warning
+ - iwlwifi: mvm: don't use ret when not initialised
+ - [armhf] usb: gadget: fsl_qe_udc: signedness bug in qe_get_frame()
+ - mac80211: check skb_linearize() return value
+ - i40iw: Protect req_resource_num update
+ - i40iw: Add missing check for interface already open
+ - i40iw: Change mem_resources pointer to a u8
+ - i40iw: Fix double free of allocated_buffer
+ - i40iw: Do not set self-referencing pointer to NULL after kfree
+ - i40iw: Avoid writing to freed memory
+ - i40iw: Add missing NULL check for MPA private data
+ - i40iw: Send last streaming mode message for loopback connections
+ - i40iw: Update hw_iwarp_state
+ - i40iw: Receive notification events correctly
+ - batman-adv: Add missing refcnt for last_candidate
+ - batman-adv: fix elp packet data reservation
+ - [armhf,arm64] irqchip/gicv3: Silence noisy DEBUG_PER_CPU_MAPS warning
+ - [armhf] 8618/1: decompressor: reset ttbcr fields to use TTBR0 on ARMv7
+ - [arm64] debug: avoid resetting stepping state machine when TIF_SINGLESTEP
+ - [mips*] uprobes: remove incorrect set_orig_insn
+ - [mips*] fix uretprobe implementation
+ - [mips*/*-malta] Fix IOCU disable switch read for MIPS64
+ - [mips*] uprobes: fix use of uninitialised variable
+ - printk: fix parsing of "brl=" option
+ - Bluetooth: split sk_filter in l2cap_sock_recv_cb
+ - tpm: fix byte-order for the value read by tpm2_get_tpm_pt
+ - regulator: pwm: Fix regulator ramp delay for continuous mode
+ - [arm64] regulator: qcom_spmi: Add support for S4 supply on pm8941
+ - [arm64] regulator: qcom_spmi: Add support for get_mode/set_mode on
+ switches
+ - [arm64] regulator: qcom_spmi: Update mvs1/mvs2 switches on pm8941
+ - [arm64] regulator: qcom_smd: Fix voltage ranges for pm8x41
+ - [arm64] regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and
+ pldo
+ - [armhf] dts: imx6sx-sabreauto: Fix misspelled property
+ - [armhf] sun5i: Fix typo in trip point temperature
+ - pcmcia: ds: fix suspend/resume
+ - [armhf] hwrng: omap - Fix assumption that runtime_get_sync will always
+ succeed
+ - blk-mq: actually hook up defer list when running requests
+ - pstore: drop file opened reference count
+ - fm10k: fix incorrect index calculation in fm10k_write_reta
+ - iwlmvm: mvm: set correct state in smart-fifo configuration
+ - [armhf,arm64] em28xx-i2c: rt_mutex_trylock() returns zero on failure
+ - gspca: avoid unused variable warnings
+ - ath9k: Fix programming of minCCA power threshold
+ - qla2xxx: Fix BBCR offset
+ - fnic: pci_dma_mapping_error() doesn't return an error code
+ - tracing: Have HIST_TRIGGERS select TRACING
+ - NFS/pnfs: Do not clobber existing pgio_done_cb in nfs4_proc_read_setup
+ - svc: Avoid garbage replies when pc_func() returns rpc_drop_reply
+ - NFS: Don't drop CB requests with invalid principals
+ - pNFS/files: Fix layoutcommit after a commit to DS
+ - pNFS/flexfiles: Fix layoutcommit after a commit to DS
+ - watchdog: core: Clear WDOG_HW_RUNNING before calling the stop function
+ - xprtrdma: Remove FMRs from the unmap list after unmapping
+ - [x86] ASoC: Intel: Skylake: Fix error return code in skl_probe()
+ - brcmfmac: Fix glob_skb leak in brcmf_sdiod_recv_chain
+ - brcmsmac: Free packet if dma_mapping_error() fails in dma_rxfill
+ - brcmsmac: Initialize power in brcms_c_stf_ss_algo_channel_get()
+ - [powerpc*] prom: Fix sub-processor option passed to ibm,
+ client-architecture-support
+ - sysctl: handle error writing UINT_MAX to u32 fields
+ - IB/core: Fix possible memory leak in cma_resolve_iboe_route()
+ - kernel/fork: fix CLONE_CHILD_CLEARTID regression in nscd
+ - SUNRPC: Silence WARN_ON when NFSv4.1 over RDMA is in use
+ - pNFS/flexfiles: Fix layoutstat periodic reporting
+ - lib/test_hash.c: fix warning in preprocessor symbol evaluation
+ - [x86] KVM: nVMX: postpone VMCS changes on MSR_IA32_APICBASE write
+ - ceph: do not modify fi->frag in need_reset_readdir()
+ - IB/ipoib: Fix memory corruption in ipoib cm mode connect flow
+ - ath10k: fix get rx_status from htt context
+ - IB/core: Fix use after free in send_leave function
+ - regmap: rbtree: Avoid overlapping nodes
+ - scsi: ses: use scsi_is_sas_rphy instead of is_sas_attached
+ - IB/ipoib: Don't allow MC joins during light MC flush
+ - IB/mlx4: Fix incorrect MC join state bit-masking on SR-IOV
+ - IB/mlx4: Fix code indentation in QP1 MAD flow
+ - IB/mlx4: Use correct subnet-prefix in QP1 mads under SR-IOV
+ - IB/mlx5: Enable MAD_IFC commands for IB ports only
+ - IB/mlx5: Set source mac address in FTE
+ - batman-adv: remove unused callback from batadv_algo_ops struct
+ - aio: mark AIO pseudo-fs noexec
+ - dm log writes: fix bug with too large bios
+ - usb: misc: legousbtower: Fix NULL pointer deference
+ - [x86] usb: usbip: vudc: fix left shift overflow
+ - Revert "usbtmc: convert to devm_kzalloc"
+ - [x86] ALSA: hda - Adding one more ALC255 pin definition for headset
+ problem
+ - [x86] ALSA: hda - Fix headset mic detection problem for several Dell
+ laptops
+ - [x86] ALSA: hda - Add the top speaker pin config for HP Spectre x360
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.7.8
+ - [powerpc*] pseries: use pci_host_bridge.release_fn() to kfree(phb)
+ - [powerpc*] cxl: use pcibios_free_controller_deferred() when removing
+ vPHBs
+ - timekeeping: Fix __ktime_get_fast_ns() regression
+ - ALSA: ali5451: Fix out-of-bound position reporting
+ - ALSA: usb-audio: Extend DragonFly dB scale quirk to cover other variants
+ - mfd: rtsx_usb: Avoid setting ucr->current_sg.status
+ - [x86] xen: Update topology map for PV VCPUs
+ - [powerpc*] KVM: PPC: Book3s PR: Allow access to unprivileged MMCR2
+ register
+ - [arm64] KVM: arm64: Require in-kernel irqchip for PMU support
+ - [arm64] KVM: arm/arm64: vgic: Don't flush/sync without a working vgic
+ - [powerpc*] KVM: PPC: BookE: Fix a sanity check
+ - [arm64] fix dump_backtrace/unwind_frame with NULL tsk
+ - [x86] boot: Fix kdump, cleanup aborted E820_PRAM max_pfn manipulation
+ - [x86] irq: Prevent force migration of irqs which are not in the vector
+ domain
+ - [x86] apic: Get rid of apic_version[] array
+ - [x86] arch/x86: Handle non enumerated CPU after physical hotplug
+ - [x86] dumpstack: Fix x86_32 kernel_stack_pointer() previous stack access
+ - [armhf] dts: mvebu: armada-390: add missing compatibility string and
+ bracket
+ - [arm64] dts: MSM8064 remove flags from SPMI/MPP IRQs
+ - [arm64] cpuidle: Fix error return code
+ - [x86] tpm: fix a race condition in tpm2_unseal_trusted()
+ - [x86] tpm_crb: fix crb_req_canceled behavior
+
+ [ Ben Hutchings ]
+ * net: add recursion limit to GRO (CVE-2016-7039)
+ * posix_acl: Clear SGID bit when setting file permissions (CVE-2016-7097)
+ * scsi: arcmsr: Buffer overflow in arcmsr_iop_message_xfer() (CVE-2016-7425)
+
+ [ Salvatore Bonaccorso ]
+ * KEYS: Fix short sprintf buffer in /proc/keys show function (CVE-2016-7042)
+ * mm: remove gup_flags FOLL_WRITE games from __get_user_pages()
+ (CVE-2016-5195)
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Wed, 19 Oct 2016 17:56:57 +0200
+
+linux (4.7.6-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.7.6
+ - [arm64] crypto: arm64/aes-ctr - fix NULL dereference in tail processing
+ - [armhf] crypto: arm/aes-ctr - fix NULL dereference in tail processing
+ - crypto: skcipher - Fix blkcipher walk OOM crash
+ - crypto: echainiv - Replace chaining with multiplication
+ - ocfs2/dlm: fix race between convert and migration
+ - ocfs2: fix start offset to ocfs2_zero_range_for_truncate()
+ - Revert "ocfs2: bump up o2cb network protocol version"
+ - autofs: use dentry flags to block walks during expire
+ - xfs: prevent dropping ioend completions during buftarg wait
+ - mm: fix the page_swap_info() BUG_ON check
+ - fsnotify: add a way to stop queueing events on group shutdown
+ - fanotify: fix list corruption in fanotify_get_response()
+ - mm: memcontrol: make per-cpu charge cache IRQ-safe for socket accounting
+ - cgroup: duplicate cgroup reference when cloning sockets
+ - fix fault_in_multipages_...() on architectures with no-op access_ok()
+ - KEYS: Fix skcipher IV clobbering
+ - [arm64] Call numa_store_cpu_info() earlier.
+ - configfs: Return -EFBIG from configfs_write_bin_file.
+ - [armhf] mtd: nand: mxc: fix obiwan error in
+ mxc_nand_v[12]_ooblayout_free() functions
+ - mtd: spi-nor: fix wrong "fully unlocked" test
+ - reset: Return -ENOTSUPP when not configured
+ - rtc: ds1307: Fix relying on reset value for weekday
+ - [arm64] power: reset: hisi-reboot: Unmap region obtained by of_iomap
+ - mac80211: reject TSPEC TIDs (TSIDs) for aggregation
+ - fix memory leaks in tracing_buffers_splice_read()
+ - tracing: Move mutex to protect against resetting of seq data
+ - mm: delete unnecessary and unsafe init_tlb_ubc()
+ - iwlwifi: mvm: update TX queue before making a copy of the skb
+ - nl80211: validate number of probe response CSA counters
+ - btrfs: ensure that file descriptor used with subvol ioctls is a dir
+ - [x86] efi: Only map RAM into EFI page tables if in mixed-mode
+ - [x86] i2c-eg20t: fix race between i2c init and interrupt enable
+ - [armhf] i2c: mux: pca954x: retry updating the mux selection on failure
+ - [arm64] i2c: qup: skip qup_i2c_suspend if the device is already runtime
+ suspended
+ - [mips*] SMP: Fix possibility of deadlock when bringing CPUs online
+ - [mips*] Avoid a BUG warning during prctl(PR_SET_FP_MODE, ...)
+ - [mips*] Add a missing ".set pop" in an early commit
+ - [x86] mm/pat: Prevent hang during boot when mapping pages
+ - libceph: add an ONSTACK initializer for oids
+ - ceph: fix symbol versioning for ceph_monc_do_statfs
+ - ceph: Correctly return NXIO errors from ceph_llseek
+ - libceph: fix return value check in alloc_msg_with_page_vector()
+ - PM / hibernate: Restore processor state before using per-CPU variables
+ - PM / hibernate: Fix rtree_next_node() to avoid walking off list ends
+ - ixgbe: Force VLNCTRL.VFE to be set in all VMDq paths
+ - ixgbe: Re-enable ability to toggle VLAN filtering
+ - igb: fix adjusting PTP timestamps for Tx/Rx latency
+ - [armhf,arm64] soc/tegra: pmc: Don't probe PMC if early initialisation
+ fails
+ - qxl: check for kmap failures
+ - hostfs: Freeing an ERR_PTR in hostfs_fill_sb_common()
+ - iw_cxgb4: stop MPA_REPLY timer when disconnecting
+
+ [ Ben Hutchings ]
+ * debian/bin/gencontrol.py: Fix cross-build-dependencies if invoked under
+ dpkg-buildpackage
+ * linux-image: Exclude vmlinux from stripping by dh_strip (fixes FTBFS
+ on hppa)
+ * udeb: Fold core-modules into kernel-image
+ * udeb: Move nls_utf8 from fat-modules to kernel-image, as many other
+ filesystems need it but vfat no longer does
+ * of_mdio: Enable fixed PHY support if driver is a module
+ * of_mdio: select fixed phy support unconditionally
+ * [armhf] Enable driver for SolidRun ClearFog: USB_XHCI_MVEBU as module
+ * mm: memcontrol: use special workqueue for creating per-memcg caches
+
+ [ Cyril Brulebois ]
+ * Add nls_ascii to the fat-modules udeb, following the change of
+ iocharset default in 4.7.2-1. This fixes a regression with EFI-related
+ mounts within the Debian Installer. (Closes: #839552)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 07 Oct 2016 02:11:50 +0100
+
+linux (4.7.5-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.7.5
+ - [armhf] clocksource/drivers/sun4i: Clear interrupts after stopping timer
+ in probe function
+ - fscrypto: require write access to mount to set encryption policy
+ - [arm64] drm/msm: protect against faults from copy_from_user() in submit
+ ioctl
+ - bpf: fix method of PTR_TO_PACKET reg id generation
+ - ipv4: panic in leaf_walk_rcu due to stale node pointer
+ - vti: flush x-netns xfrm cache when vti interface is removed
+ - bpf: fix write helpers with regards to non-linear parts
+ - net/irda: handle iriap_register_lsap() allocation failure
+ - net/sctp: always initialise sctp_ht_iter::start_fail
+ - net: ipv6: Do not keep IPv6 addresses when IPv6 is disabled
+ - tipc: fix NULL pointer dereference in shutdown()
+ - net/mlx5: Fix pci error recovery flow
+ - net/mlx5: Added missing check of msg length in verifying its signature
+ - net/mlx5e: Use correct flow dissector key on flower offloading
+ - net sched: fix encoding to use real length
+ - udp: fix poll() issue with zero sized packets
+ - tcp: properly scale window in tcp_v[46]_reqsk_send_ack()
+ - sctp: fix overrun in sctp_diag_dump_one()
+ - tun: fix transmit timestamp support
+ - [armhf] net: dsa: bcm_sf2: Fix race condition while unmasking interrupts
+ - Revert "phy: IRQ cannot be shared"
+ - net: smc91x: fix SMC accesses
+ - bridge: re-introduce 'fix parsing of MLDv2 reports'
+ - bonding: Fix bonding crash
+ - Revert "af_unix: Fix splice-bind deadlock"
+ - af_unix: split 'u->readlock' into two: 'iolock' and 'bindlock'
+ - ipv6: release dst in ping_v6_sendmsg
+ - [arm64] bnxt_en: Fix TX push operation on ARM64.
+ - ipv6: addrconf: fix dev refcont leak when DAD failed
+ - tcp: fastopen: avoid negative sk_forward_alloc
+ - net/mlx5e: Fix parsing of vlan packets when updating lro header
+ - tcp: cwnd does not increase in TCP YeAH
+ - [powerpc*] tm: do not use r13 for tabort_syscall
+ - [powerpc*] powernv : Drop reference added by kset_find_obj()
+ - [powerpc*] sysdev: cpm: fix gpio save_regs functions
+ - [powerpc*] mm: Don't alias user region to other regions below PAGE_OFFSET
+ - [powerpc*] powernv: Fix corrupted PE allocation bitmap on releasing PE
+ - kernfs: don't depend on d_find_any_alias() when generating notifications
+ - pNFS/flexfiles: Fix an Oopsable condition when connection to the DS fails
+ - pNFS: The client must not do I/O to the DS if it's lease has expired
+ - NFSv4.1: Fix Oopsable condition in server callback races
+ - NFSv4.x: Fix a refcount leak in nfs_callback_up_net
+ - nfsd: Close race between nfsd4_release_lockowner and nfsd4_lock
+ - pNFS: Ensure LAYOUTGET and LAYOUTRETURN are properly serialised
+ - NFSv4.1: Fix the CREATE_SESSION slot number accounting
+ - kexec: fix double-free when failing to relocate the purgatory
+ - mm, mempolicy: task->mempolicy must be NULL before dropping final
+ reference
+ - ahci: disable correct irq for dummy ports
+ - audit: fix exe_file access in audit_exe_compare
+ - dm flakey: fix reads to be issued if drop_writes configured
+ - IB/hfi1,IB/qib: Fix qp_stats sleep with rcu read lock held
+ - IB/uverbs: Fix race between uverbs_close and remove_one
+ - IB/hfi1: Reset QSFP on every run through channel tuning
+ - [amd64] mm: fix cache mode of dax pmd mappings
+ - [x86] paravirt: Do not trace _paravirt_ident_*() functions
+ - [x86] AMD: Apply erratum 665 on machines without a BIOS fix
+ - [s390x] KVM: don't use current->thread.fpu.* when accessing registers
+ - [armhf,arm64] kvm-arm: Unmap shadow pagetables properly
+ - [x86] kvm: correctly reset dest_map->vector when restoring LAPIC state
+ - iio: sw-trigger: Fix config group initialization
+ - [armhf] iio: adc: rockchip_saradc: reset saradc controller before
+ programming it
+ - [armhf] iio: adc: ti_am335x_adc: Protect FIFO1 from concurrent access
+ - [armhf] iio: adc: ti_am335x_adc: Increase timeout value waiting for ADC
+ sample
+ - iio:ti-ads1015: fix a wrong pointer definition.
+ - [x86] iio: accel: bmc150: reset chip at init time
+ - iio: fix pressure data output unit in hid-sensor-attributes
+ - iio:core: fix IIO_VAL_FRACTIONAL sign handling
+ - iio: ensure ret is initialized to zero before entering do loop
+ - serial: 8250_mid: fix divide error bug if baud rate is 0
+ - serial: 8250: added acces i/o products quad and octal serial cards
+ - [armhf,arm64] usb: chipidea: udc: fix NULL ptr dereference in
+ isr_setup_status_phase
+ - USB: change bInterval default to 10 ms
+ - devpts: return NULL pts 'priv' entry for non-devpts nodes
+ - cpuset: make sure new tasks conform to the current config of the cpuset
+ - [armhf] dts: rockchip: add reset node for the exist saradc SoCs
+ - [armhf] imx6: add missing BM_CLPCR_BYP_MMDC_CH0_LPM_HS setting for imx6ul
+ - [armhf] imx6: add missing BM_CLPCR_BYPASS_PMIC_READY setting for imx6sx
+ - [armel] kirkwood: ib62x0: fix size of u-boot environment partition
+ - [armhf] OMAP3: hwmod data: Add sysc information for DSI
+ - [armel] dts: kirkwood: Fix PCIe label on OpenRD
+ - [armhf] dts: imx6qdl: Fix SPDIF regression
+ - [armhf] dts: armada-388-clearfog: number LAN ports properly
+ - dm log writes: fix check of kthread_run() return value
+ - dm crypt: fix free of bad values after tfm allocation failure
+ - dm log writes: move IO accounting earlier to fix error path
+ - dm crypt: fix error with too large bios
+ - [armhf] pinctrl: sunxi: fix uart1 CTS/RTS pins at PG on A23/A33
+ - [armhf] memory: omap-gpmc: allow probe of child nodes to fail
+ - [arm64] spinlocks: implement smp_mb__before_spinlock() as smp_mb()
+ - crypto: cryptd - initialize child shash_desc on import
+ - Btrfs: remove root_log_ctx from ctx list before btrfs_sync_log returns
+ - fuse: direct-io: don't dirty ITER_BVEC pages
+ - xhci: fix null pointer dereference in stop command timeout function
+ - brcmfmac: avoid potential stack overflow in brcmf_cfg80211_start_ap()
+ - md-cluster: make md-cluster also can work when compiled into kernel
+ - ath9k: fix using sta->drv_priv before initializing it
+ - ath9k: bring back direction setting in ath9k_{start_stop}
+ - [x86] perf/intel: Fix PEBSv3 record drain
+ - [x86] perf/intel/cqm: Check cqm/mbm enabled state in event init
+ - [x86] perf/amd: Make HW_CACHE_REFERENCES and HW_CACHE_MISSES measure L2
+ - [x86] perf/intel/pt: Fix an off-by-one in address filter configuration
+ - [x86] perf/intel/pt: Fix kernel address filter's offset validation
+ - [x86] perf/intel/pt: Do validate the size of a kernel address filter
+ - Revert "wext: Fix 32 bit iwpriv compatibility issue with 64 bit Kernel"
+ - sched/core: Fix a race between try_to_wake_up() and a woken up task
+ - ipv6: Don't unset flowi6_proto in ipxip6_tnl_xmit()
+ - efi: Make for_each_efi_memory_desc_in_map() cope with running on Xen
+ - efi/libstub: Allocate headspace in efi_get_memory_map()
+ - efi/libstub: Introduce ExitBootServices helper
+ - efi/libstub: Use efi_exit_boot_services() in FDT
+ - [x86] efi: Use efi_exit_boot_services()
+ - [powerpc,powerpcspe] Fix csum_partial_copy_generic()
+ - [powerpc,powerpcspe] Fix again csum_partial_copy_generic()
+ - [x86] drm/i915: Ignore OpRegion panel type except on select machines
+ - [x86] drm: Only use compat ioctl for addfb2 on X86/IA64
+ - svcauth_gss: Revert 64c59a3726f2 ("Remove unnecessary allocation")
+ - genirq: Provide irq_gc_{lock_irqsave,unlock_irqrestore}() helpers
+ - fix iov_iter_fault_in_readable()
+ - [x86] fix minor infoleak in get_user_ex()
+ - [s390x] get_user() should zero on failure
+ - asm-generic: make get_user() clear the destination on errors
+ - asm-generic: make copy_from_user() zero the destination properly
+ - [alpha,hppa,mips*,powerpc,powerpcspe,sh4] make copy_from_user() zero the
+ destination properly
+
+ [ Ben Hutchings ]
+ * [hppa,mips*,powerpc*] linux-image: Strip debug symbols from vmlinux
+ (really closes: #837588)
+ * [hppa] tracing: Re-enable FTRACE
+ * [powerpc,powerpcspe,ppc64] linux-image: Suppress automatic dbgsym packages
+ * uaccess,uio: Fix ABI changes in 4.7.5
+ * ext4: Fix checksum validation for inodes with small i_extra_isize
+ (Closes: #838544, regression in 4.7.4)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 26 Sep 2016 01:48:21 +0100
+
+linux (4.7.4-2) unstable; urgency=medium
+
+ * [arm64] Revert "arm64: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO"
+ (fixes FTBFS)
+ * [armhf] media: Disable VIDEO_V4L2_SUBDEV_API and VIDEO_OMAP3 to avoid ABI
+ change (fixes FTBFS)
+ * [hppa] Ignore ABI changes caused by disabling CONFIG_FTRACE (fixes FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 19 Sep 2016 22:09:42 +0100
+
+linux (4.7.4-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.7.3
+ - [x86] mm: Disable preemption during CR3 read+write
+ - [x86] uprobes: Fix RIP-relative handling of EVEX-encoded instructions
+ - [x86] platform/uv: Skip UV runtime services mapping in the
+ efi_runtime_disabled case
+ - SUNRPC: Handle EADDRNOTAVAIL on connection failures
+ - SUNRPC: allow for upcalls for same uid but different gss service
+ - [x86] ALSA: hda - Manage power well properly for resume
+ - efi/capsule: Allocate whole capsule into virtual memory
+ - virtio: fix memory leak in virtqueue_add()
+ - vfio/pci: Fix NULL pointer oops in error interrupt setup handling
+ - tracing: Fix tick_stop tracepoint symbols for user export
+ - [x86] perf intel-pt: Fix occasional decoding errors when tracing
+ system-wide
+ - [amd64] libnvdimm, nd_blk: mask off reserved status bits
+ - ACPI: CPPC: Return error if _CPC is invalid on a CPU
+ - ACPI / CPPC: Prevent cpc_desc_ptr points to the invalid data
+ - genirq/msi: Remove unused MSI_FLAG_IDENTITY_MAP
+ - genirq/msi: Make sure PCI MSIs are activated early
+ - usb: ehci: change order of register cleanup during shutdown
+ - usb: devio, do not warn when allocation fails
+ - usb: misc: usbtest: add fix for driver hang
+ - usb: misc: usbtest: usbtest_do_ioctl may return positive integer
+ - usb: dwc3: gadget: increment request->actual once
+ - usb: dwc3: gadget: fix for short pkts during chained xfers
+ - usb: dwc3: gadget: always cleanup all TRBs
+ - usb: hub: Fix unbalanced reference count/memory leak/deadlocks
+ - USB: hub: fix up early-exit pathway in hub_activate
+ - USB: hub: change the locking in hub_activate
+ - USB: validate wMaxPacketValue entries in endpoint descriptors
+ - usb/gadget: fix gadgetfs aio support.
+ - xhci: always handle "Command Ring Stopped" events
+ - usb: xhci: Fix panic if disconnect
+ - xhci: don't dereference a xhci member after removing xhci
+ - USB: serial: fix memleak in driver-registration error path
+ - uprobes: Fix the memcg accounting
+ - perf symbols: Fix annotation of objects with debuginfo files
+ - perf/core: Fix event_function_local()
+ - perf tools mem: Fix -t store option for record command
+ - iommu/dma: Don't put uninitialised IOVA domains
+ - [armhf] iommu/io-pgtable-arm-v7s: Fix attributes when splitting blocks
+ - [armhf,arm64] iommu/arm-smmu: Fix CMDQ error handling
+ - [armhf,arm64] iommu/arm-smmu: Disable stalling faults for all endpoints
+ - [armhf,arm64] iommu/arm-smmu: Don't BUG() if we find aborting STEs with
+ disable_bypass
+ - [x86] pinctrl/amd: Remove the default de-bounce time
+ - i2c: mux: demux-pinctrl: properly roll back when adding adapter fails
+ - [s390x] dasd: fix hanging device after clear subchannel
+ - mac80211: fix purging multicast PS buffer queue
+ - [arm64] kernel: avoid literal load of virtual address with MMU off
+ - [arm64] avoid TLB conflict with CONFIG_RANDOMIZE_BASE
+ - [arm64] dts: rockchip: add reset saradc node for rk3368 SoCs
+ - [arm64] kernel: Fix unmasked debug exceptions when restoring mdscr_el1
+ - of: fix reference counting in of_graph_get_endpoint_by_regs
+ - iio: fix sched WARNING "do not call blocking ops when !TASK_RUNNING"
+ - [x86] drm/amdgpu: Change GART offset to 64-bit
+ - [x86] drm/amdgpu: fix amdgpu_move_blit on 32bit systems
+ - [x86] drm/amdgpu: fix lru size grouping v2
+ - [x86] drm/amdgpu: avoid a possible array overflow
+ - [x86] drm/amdgpu: skip TV/CV in display parsing
+ - [x86] drm/amd/amdgpu: sdma resume fail during S4 on CI
+ - [x86] drm/amd/amdgpu: compute ring test fail during S4 on CI
+ - [x86] drm/amdgpu: record error code when ring test failed
+ - [x86] drm/i915: Fix iboost setting for DDI with 4 lanes on SKL
+ - [x86] drm/i915: Program iboost settings for HDMI/DVI on SKL
+ - [x86] drm/i915: Fix iboost setting for SKL Y/U DP DDI buffer translation
+ entry 2
+ - [x86] drm/i915: Acquire audio powerwell for HD-Audio registers
+ - [x86] drm/i915: fix aliasing_ppgtt leak
+ - [x86] drm/i915/vlv: Make intel_crt_reset() per-encoder
+ - [x86] drm/i915/vlv: Reset the ADPA in vlv_display_power_well_init()
+ - [x86] drm/i915/vlv: Disable HPD in valleyview_crt_detect_hotplug()
+ - [x86] drm/i915: Enable polling when we don't have hpd
+ - [arm64] mfd: cros_ec: Add cros_ec_cmd_xfer_status() helper
+ - [arm64] i2c: cros-ec-tunnel: Fix usage of cros_ec_cmd_xfer()
+ - cdc-acm: fix wrong pipe type on rx interrupt xfers
+ - mpt3sas: Fix resume on WarpDrive flash cards
+ - megaraid_sas: Fix probing cards without io port
+ - dm round robin: do not use this_cpu_ptr() without having preemption
+ disabled
+ - gpio: Fix OF build problem on UM
+ - fs/seq_file: fix out-of-bounds read
+ - soft_dirty: fix soft_dirty during THP split
+ - [amd64] dax: fix device-dax region base
+ - [amd64] mm: silently skip readahead for DAX inodes
+ - btrfs: waiting on qgroup rescan should not always be interruptible
+ - btrfs: properly track when rescan worker is running
+ - btrfs: don't create or leak aliased root while cleaning up orphans
+ - Revert "floppy: fix open(O_ACCMODE) for ioctl-only open"
+ - Input: synaptics-rmi4 - fix register descriptor subpacket map construction
+ - [x86] crypto: qat - fix aes-xts key sizes
+ - USB: avoid left shift by -1
+ - usb: chipidea: udc: don't touch DP when controller is in host mode
+ - USB: fix typo in wMaxPacketSize validation
+ - usb: gadget: udc: core: don't starve DMA resources
+ - USB: serial: mos7720: fix non-atomic allocation in write path
+ - USB: serial: mos7840: fix non-atomic allocation in write path
+ - [x86] staging/lustre/llite: Close atomic_open race with several openers
+ - [x86] staging: comedi: daqboard2000: bug fix board type matching code
+ - [x86] staging: comedi: comedi_test: fix timer race conditions
+ - [x86] staging: comedi: ni_mio_common: fix AO inttrig backwards
+ compatibility
+ - [x86] staging: comedi: ni_mio_common: fix wrong insn_write handler
+ - ACPI / drivers: fix typo in ACPI_DECLARE_PROBE_ENTRY macro
+ - ACPI / drivers: replace acpi_probe_lock spinlock with mutex
+ - ALSA: line6: Remove double line6_pcm_release() after failed acquire.
+ - ALSA: line6: Give up on the lock while URBs are released.
+ - ALSA: line6: Fix POD sysfs attributes segfault
+ - hwmon: (it87) Add missing sysfs attribute group terminator
+ - hwmon: (iio_hwmon) fix memory leak in name attribute
+ - sysfs: correctly handle read offset on PREALLOC attrs
+ - SUNRPC: Fix infinite looping in rpc_clnt_iterate_for_each_xprt
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.7.4
+ - Revert "floppy: refactor open() flags handling"
+ - apparmor: fix refcount race when finding a child profile
+ - fs: Check for invalid i_uid in may_follow_link()
+ - cred: Reject inodes with invalid ids in set_create_file_as()
+ - ext4: validate that metadata blocks do not overlap superblock
+ - ext4: fix xattr shifting when expanding inodes
+ - ext4: fix xattr shifting when expanding inodes part 2
+ - ext4: properly align shifted xattrs when expanding inodes
+ - ext4: avoid deadlock when expanding inode size
+ - ext4: avoid modifying checksum fields directly during checksum
+ verification
+ - block: Fix race triggered by blk_set_queue_dying()
+ - block: make sure a big bio is split into at most 256 bvecs
+ - cgroup: reduce read locked section of cgroup_threadgroup_rwsem during fork
+ - cdc-acm: added sanity checking for probe()
+ - drm/radeon: fix radeon_move_blit on 32bit systems
+ - drm/radeon: only apply the SS fractional workaround to RS[78]80
+ - drm/atomic: Don't potentially reset color_mgmt_changed on successive
+ property updates.
+ - drm: Reject page_flip for !DRIVER_MODESET
+ - [arm64] drm/msm: fix use of copy_from_user() while holding spinlock
+ - [armhf] drm/vc4: Use drm_free_large() on handles to match its allocation.
+ - [armhf] drm/vc4: Fix overflow mem unreferencing when the binner runs dry.
+ - [armhf] drm/vc4: Fix oops when userspace hands in a bad BO.
+ - xfs: fix superblock inprogress check
+ - timekeeping: Cap array access in timekeeping_debug
+ - xenbus: don't look up transaction IDs for ordinary writes
+ - ovl: proper cleanup of workdir
+ - ovl: don't copy up opaqueness
+ - ovl: remove posix_acl_default from workdir
+ - ovl: listxattr: use strnlen()
+ - ovl: fix workdir creation
+ - mei: me: disable driver on SPT SPS firmware
+ - ubifs: Fix xattr generic handler usage
+ - ubifs: Fix assertion in layout_in_gaps()
+ - bdev: fix NULL pointer dereference
+ - bcache: RESERVE_PRIO is too small by one when prio_buckets() is a power
+ of two.
+ - [mips*/*-malta] irqchip/mips-gic: Implement activate op for device domain
+ - vhost/scsi: fix reuse of &vq->iov[out] in response
+ - [x86] apic: Do not init irq remapping if ioapic is disabled
+ - xprtrdma: Create common scatterlist fields in rpcrdma_mw
+ - crypto: caam - fix IV loading for authenc (giv)decryption
+ - fscrypto: add authorization check for setting encryption policy
+ - fscrypto: only allow setting encryption policy on directories
+ - ALSA: firewire-tascam: accessing to user space outside spinlock
+ - ALSA: fireworks: accessing to user space outside spinlock
+ - ALSA: rawmidi: Fix possible deadlock with virmidi registration
+ - ALSA: timer: fix NULL pointer dereference in read()/ioctl() race
+ - ALSA: timer: fix division by zero after SNDRV_TIMER_IOCTL_CONTINUE
+ - ALSA: timer: fix NULL pointer dereference on memory allocation failure
+ - ALSA: timer: Fix zero-division by continue of uninitialized instance
+ - scsi: fix upper bounds check of sense key in scsi_sense_key_string()
+ - cpufreq: dt: Add terminate entry for of_device_id tables
+
+ [ Ben Hutchings ]
+ * [arm64] Add cpu_to_fdt32() when setting Secure Boot flag in FDT
+ * [amd64] Enable SIGNED_PE_FILE_VERIFICATION, KEXEC_FILE,
+ KEXEC_VERIFY_SIG, KEXEC_BZIMAGE_VERIFY_SIG
+ * i8042: Revert ABI break in 4.7.3
+ * mm, oom: prevent premature OOM killer invocation for high order request
+ (regression in 4.7)
+ * [arm64] pinctrl: Enable PINCTRL_SINGLE as built-in, needed for HiKey SoCs
+ * [hppa] Disable FTRACE due to huge size cost (Closes: #837588)
+ * [powerpcspe] xmon: Don't use ld on 32-bit (Closes: #836741)
+ * liblockdep-dev: Add dependency on liblockdep<version> (Closes: #837710)
+ * xen-linux-system: Relax dependency on linux-image to allow for version
+ suffix added by linux-signed
+ * [armhf] Enable drivers for Novena: MFD_STMPE as built-in; DRM_PANEL_SIMPLE,
+ MMA8452, TOUCHSCREEN_STMPE, BATTERY_SBS, BACKLIGHT_PWM, SND_SOC_IMX_ES8328
+ as modules (Closes: #837627, thanks to Vagrant Cascadian)
+ * linux-image: postrm: Make failure of rmdir on purge non-fatal
+ (Closes: #836282)
+ * [armhf] Enable drivers and options for OpenPandora console: POWER_AVS_OMAP
+ as built-in; DISPLAY_CONNECTOR_ANALOG_TV, DISPLAY_PANEL_TPO_TD043MTEA1,
+ SENSORS_TWL4030_MADC, VIDEO_OMAP3, BATTERY_TWL4030_MADC, BACKLIGHT_PANDORA,
+ HDQ_MASTER_OMAP as modules; OMAP2_DSS_DSI (Closes: #835893, thanks to
+ Vagrant Cascadian)
+ * bug script: Stop describing TAINT_UNSIGNED_MODULE as expected
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 18 Sep 2016 14:56:01 +0100
+
+linux (4.7.2-1) unstable; urgency=medium
+
+ * New upstream release: https://kernelnewbies.org/Linux_4.7
+ - media: fix airspy usb probe error path (CVE-2016-5400)
+ - libata: LITE-ON CX1-JB256-HP needs lower max_sectors (Closes: #830971)
+ - tcp: make challenge acks less predictable (CVE-2016-5696)
+ * New stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.7.1
+ - vfs: ioctl: prevent double-fetch in dedupe ioctl (CVE-2016-6516)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.7.2
+ - [powerpc*] KVM: Book3S HV: Save/restore TM state in H_CEDE (CVE-2016-5412)
+ - audit: fix a double fetch in audit_log_single_execve_arg() (CVE-2016-6136)
+
+ [ Ben Hutchings ]
+ * sched: Enable SCHEDSTATS (Closes: #796674)
+ * Re-enable various config options disabled by name and type changes in 4.7:
+ - nfc: NFC_PN533_USB replaced NFC_PN533
+ - [armhf] dsa: NET_DSA_MV88E6XXX replaced NET_DSA_MV88E6{123,131,171}
+ - [x86] ACPI: ACPI_TABLE_UPGRADE replaced ACPI_INITRD_TABLE_OVERRIDE
+ - rxrpc: Enable RXKAD as part of af_rxrpc module
+ - [x86] 8250: Enable SERIAL_8250_FINTEK as built-in
+ * cgroups: Enable memory controller by default
+ * [armfh] udeb: Add efi-modules
+ * linux-kbuild: Include headers_install.sh and unifdef (Closes: #832359)
+ * udeb: Include cdc_ncm in nic-usb-modules (Closes: #833918)
+ * usbip: Use the locally-installed <linux/usbip.h>
+ * Exclude redundant and unreproducible files from binary packages
+ (Closes: #830268)
+ - usbip: Put all autotools-generated files in the build directory
+ - linux-headers: Exclude all .cmd files
+ * [arm*] Enable SECCOMP (Closes: #833183)
+ * [hppa] Fix automatic selection of cr16 clocksource
+ * [hppa] Fix order of EREFUSED define in errno.h
+ * aufs: Update support patches to aufs4.7-20160822 (Closes: #834764)
+ * [powerpc*] ipmi: Enable IPMI_POWERNV as module (Closes: #833861)
+ * kbuild: Do not use hyphen in exported variable name (Closes: #833561)
+ * fat: Mitigate the lack of UTF-8 case folding by enabling
+ FAT_DEFAULT_UTF8 and setting FAT_DEFAULT_IOCHARSET to "ascii"
+ (Closes: #833238)
+ * [arm64] Add support for securelevel and Secure Boot (Closes: #831827,
+ thanks to Linn Crosetto):
+ - efi: Disable secure boot if shim is in insecure mode
+ - Add kernel config option to set securelevel when in Secure Boot mode
+ - Enable EFI_SECURE_BOOT_SECURELEVEL
+ * tcp: fix use after free in tcp_xmit_retransmit_queue() (CVE-2016-6828)
+ * aacraid: Check size values after double-fetch from user (CVE-2016-6480)
+ * liblockdep: Move dummy definition of prandom_u32() to fix missing
+ declaration
+ * debian/rules.real: Avoid error message when usbip's config.h doesn't exist
+
+ [ Martin Michlmayr ]
+ * [armhf] Enable MMC_SDHCI_IPROC and HW_RANDOM_BCM2835 for BCM2835.
+ * [arm64] Add USB support for NVIDIA Jetson TX1 Developer Kit:
+ - pinctrl: max77620: add pincontrol driver for MAX77620/MAX20024
+ - gpio: max77620: add gpio driver for MAX77620/MAX20024
+ - gpio: max77620: Configure interrupt trigger level
+ - gpio: max77620: use the new open drain callback
+ - gpio: max77620: get gpio value based on direction
+ - arm64: tegra: Add PMIC support on Jetson TX1
+ - arm64: tegra: p2597: Add SDMMC power supplies
+ - arm64: tegra: Add DSI panel on Jetson TX1
+ - arm64: tegra: Add Tegra210 XUSB pad controller
+ - arm64: tegra: Add Tegra210 XUSB controller
+ - arm64: tegra: Enable debug serial on Jetson TX1
+ - arm64: tegra: Enable XUSB controller on Jetson TX1
+ - arm64: tegra: Correct Tegra210 XUSB mailbox interrupt
+ * [arm64] Enable REGULATOR_FIXED_VOLTAGE.
+ * [arm64] Enable ARM64_ERRATUM_834220.
+ * [arm64] Build in SERIAL_TEGRA.
+ * [arm64] Enable REGULATOR_PWM, DRM_PANEL_SIMPLE, BACKLIGHT_GENERIC
+ and BACKLIGHT_LP855X for Jetson TX1.
+ * [arm64] Enable BATTERY_BQ27XXX, MFD_CROS_EC_I2C, I2C_CROS_EC_TUNNEL
+ for Google Pixel C.
+ * [arm64] Enable more Qualcomm options: PINCTRL_QCOM_SPMI_PMIC,
+ SPMI_MSM_PMIC_ARB, QCOM_SPMI_IADC, QCOM_SPMI_VADC, MFD_SPMI_PMIC,
+ REGULATOR_QCOM_SPMI, QCOM_SPMI_TEMP_ALARM, CHARGER_QCOM_SMBB,
+ USB_CHIPIDEA, USB_HSIC_USB3503, RTC_DRV_PM8XXX, EXTCON_USB_GPIO,
+ QCOM_COINCELL, and INPUT_PM8941_PWRKEY.
+
+ [ Uwe Kleine-König ]
+ * Fix perf to be able to find debug info based on build-id. (Closes:
+ #833096)
+
+ [ Nicolas LE CAM ]
+ * [amd64] Suggest grub-efi-amd64 instead of grub-efi dummy transitionnal
+ package (Closes: #835459)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 28 Aug 2016 15:56:10 +0100
+
+linux (4.7~rc7-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Aurelien Jarno ]
+ * [mipsel] Remove loongson-2e and loongson-2f flavours (Closes: #827790).
+ * [mipsel/4kc-malta, mipsel/5kc-malta] Build for R2 ISA.
+
+ [ Martin Michlmayr ]
+ * [armhf, arm64] Enable DRM_TEGRA_STAGING.
+
+ [ Ben Hutchings ]
+ * [x86] KASLR, power: Remove x86 hibernation restrictions
+ * fanotify: Enable FANOTIFY_ACCESS_PERMISSIONS (Closes: #690737)
+ - Warn and taint kernel if this feature is actually used
+ * Define Auto-Built-Package field when running dpkg-gencontrol, as dpkg-source
+ doesn't like to see it in debian/control
+ * debian/lib/python/debian_linux/debian.py: Handle packages with only short
+ descriptions
+ * Change names and descriptions of linux-image debug symbol packages to match
+ debhelper
+
+ [ Bastian Blank ]
+ * Mark debug symbols packages to move them into the debug archive.
+ * Build debug symbols for all images.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 14 Jul 2016 13:35:22 +0100
+
+linux (4.7~rc4-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [armel] Disable module signing for all flavours (fixes FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 21 Jun 2016 00:41:23 +0100
+
+linux (4.7~rc3-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * bug script: Put binary package name and version in the info file so
+ linux-signed can easily replace them
+ * Move merge_packages function from debian/bin/gencontrol.py to
+ gencontrol module
+ * udeb: Drop packages for modules that will later be signed
+ * linux-image: Add '-unsigned' suffix to packages with modules that will
+ later be signed
+ - Add Conflicts and Replaces relations to signed packages (Closes: #827618)
+ * [rt] Disable until it is updated for 4.7 or later
+ * cpupower: Bump soname version and rename library package accordingly
+ * debian/rules.d/Makefile: Override architecture detection when building
+ userland headers
+ * linux-cpupower: Define PACKAGE_BUGREPORT to refer to reportbug, not upstream
+ * debian/README.source: Document the supported build profiles
+ * debian/control: Fix build-dependencies for cross-building
+ - Add workaround for libdpkg-perl bugs #827628, #827633
+ * Add support for the nopython build profile, disabling the linux-perf package
+ * Fix build rules for userland tools to support cross-building
+
+ [ Martin Michlmayr ]
+ * [armhf, arm64] Enable PHY_TEGRA_XUSB and USB_XHCI_TEGRA.
+ * [arm64] Enable MAX77620 and PCA9539 which are required by Jetson TX1.
+ * [arm64] Enable TEGRA210_ADMA.
+ * [arm64] Enable THERMAL.
+ * [armhf] Enable TEGRA_SOCTHERM.
+ * [armhf] Enable SPI_TEGRA114.
+ * [arm64] Enable more QCOM options (QCOM_SMP2P, QCOM_SMSM, QCOM_WCNSS_CTRL,
+ PHY_QCOM_UFS, QCOM_QFPROM).
+
+ [ Aurelien Jarno ]
+ * [ppc64*] Enable SPAPR_TCE_IOMMU, VFIO and VFIO_PCI (Closes: #826367).
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 18 Jun 2016 23:50:39 +0100
+
+linux (4.6.4-1) unstable; urgency=medium
+
+ * Team upload.
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.6.4
+ - net_sched: fix pfifo_head_drop behavior vs backlog
+ - act_ipt: fix a bind refcnt leak
+ - net: Don't forget pr_fmt on net_dbg_ratelimited for CONFIG_DYNAMIC_DEBUG
+ - sit: correct IP protocol used in ipip6_err
+ - esp: Fix ESN generation under UDP encapsulation
+ - netem: fix a use after free
+ - ipmr/ip6mr: Initialize the last assert time of mfc entries.
+ - Bridge: Fix ipv6 mc snooping if bridge has no ipv6 address
+ - sock_diag: do not broadcast raw socket destruction
+ - bpf, perf: delay release of BPF prog after grace period
+ - neigh: Explicitly declare RCU-bh read side critical section in neigh_xmit()
+ - AX.25: Close socket connection on session completion
+ - [powerpc] crypto: vmx - Increase priority of aes-cbc cipher
+ - crypto: user - re-add size check for CRYPTO_MSG_GETALG
+ - USB: uas: Fix slave queue_depth not being set
+ - usb: quirks: Fix sorting
+ - usb: quirks: Add no-lpm quirk for Acer C120 LED Projector
+ - [armhf] usb: musb: only restore devctl when session was set in backup
+ - [armhf] usb: musb: Stop bulk endpoint while queue is rotated
+ - [armhf] usb: musb: Ensure rx reinit occurs for shared_fifo endpoints
+ - [armhf] usb: musb: host: correct cppi dma channel for isoch transfer
+ - xhci: Cleanup only when releasing primary hcd
+ - usb: xhci-plat: properly handle probe deferral for devm_clk_get()
+ - USB: xhci: Add broken streams quirk for Frescologic device id 1009
+ - xhci: Fix handling timeouted commands on hosts in weird states.
+ - USB: mos7720: delete parport
+ - usb: gadget: fix spinlock dead lock in gadgetfs
+ - [arm64, armhf] usb: host: ehci-tegra: Grab the correct UTMI pads reset
+ - usb: dwc3: exynos: Fix deferred probing storm.
+
+ [ Uwe Kleine-König ]
+ * Cherry pick patches for rtc-s35390a from next. (Closes: #794266)
+
+ [ Salvatore Bonaccorso ]
+ * apparmor: fix oops, validate buffer size in apparmor_setprocattr()
+ (CVE-2016-6187)
+
+ [ Ben Hutchings ]
+ * bridge: Fix ABI change in 4.6.4
+ * [rt] Update to 4.6.4-rt6 (no functional change)
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Mon, 18 Jul 2016 21:57:31 +0200
+
+linux (4.6.3-1) unstable; urgency=medium
+
+ [ Ben Hutchings ]
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.6.3
+ - scsi_lib: correctly retry failed zero length REQ_TYPE_FS commands
+ - scsi: Add QEMU CD-ROM to VPD Inquiry Blacklist
+ - netlink: Fix dump skb leak/double free
+ - tipc: fix nametable publication field in nl compat
+ - switchdev: pass pointer to fib_info instead of copy
+ - tuntap: correctly wake up process during uninit
+ - bpf: Use mount_nodev not mount_ns to mount the bpf filesystem
+ - udp: prevent skbs lingering in tunnel socket queues
+ - uapi glibc compat: fix compilation when !__USE_MISC in glibc
+ - bpf, inode: disallow userns mounts
+ - [armhf] net: mvneta: Fix lacking spinlock initialization
+ - net: hwbm: Fix unbalanced spinlock in error case
+ - sfc: on MC reset, clear PIO buffer linkage in TXQs
+ - team: don't call netdev_change_features under team->lock
+ - net: alx: use custom skb allocator
+ - net: stmmac: Fix incorrect memcpy source memory
+ - vxlan: Accept user specified MTU value when create new vxlan link
+ - net: nps_enet: Disable interrupts before napi reschedule
+ - bpf, trace: use READ_ONCE for retrieving file ptr
+ - tcp: record TLP and ER timer stats in v6 stats
+ - bridge: Don't insert unnecessary local fdb entry on changing mac address
+ - l2tp: fix configuration passed to setup_udp_tunnel_sock()
+ - ipv6: Skip XFRM lookup if dst_entry in socket cache is valid
+ - [armhf,arm64] KVM: vgic-v2: Clear all dirty LRs
+ - [armhf,arm64] KVM: vgic-v3: Clear all dirty LRs
+ - [x86] KVM: fix OOPS after invalid KVM_SET_DEBUGREGS
+ - KVM: irqfd: fix NULL pointer dereference in kvm_irq_map_gsi
+ - [arm*] drivers/perf: arm_pmu: Defer the setting of __oprofile_cpu_pmu
+ - [x86] ALSA: hda - Add PCI ID for Kabylake
+ - [x86] ALSA: hda - Fix headset mic detection problem for Dell machine
+ - ALSA: hda/realtek - ALC256 speaker noise issue
+ - ALSA: hda/realtek - Add support for new codecs ALC700/ALC701/ALC703
+ - [x86] ALSA: hda/realtek: Add T560 docking unit fixup
+ - [armhf] fix PTRACE_SETVFPREGS on SMP systems
+ - gpio: bail out silently on NULL descriptors
+ - gpiolib: Fix NULL pointer deference
+ - gpiolib: Fix unaligned used of reference counters
+ - [s390x] bpf: fix recache skb->data/hlen for skb_vlan_push/pop
+ - [s390x] bpf: reduce maximum program size to 64 KB
+ - [armhf,arm64] irqchip/gic-v3: Fix ICC_SGI1R_EL1.INTID decoding mask
+ - [x86] crypto: ccp - Fix AES XTS error for request sizes above 4096
+ - [arm64] Provide "model name" in /proc/cpuinfo for PER_LINUX32 tasks
+ - [arm64] mm: always take dirty state from new pte in ptep_set_access_flags
+ - [powerpc*] pseries/eeh: Handle RTAS delay requests in configure_bridge
+ - [powerpc*] Fix definition of SIAR and SDAR registers
+ - [powerpc*] Use privileged SPR number for MMCR2
+ - [powerpc*] pseries: Add POWER8NVL support to
+ ibm,client-architecture-support call
+ - [powerpc*] mm/hash: Fix the reference bit update when handling hash fault
+ - [hppa] Fix pagefault crash in unaligned __get_user() call
+ - memcg: add RCU locking around css_for_each_descendant_pre() in
+ memcg_offline_kmem()
+ - wext: Fix 32 bit iwpriv compatibility issue with 64 bit Kernel
+ - mm: thp: broken page count after commit aa88b68c3b1d
+ - [x86] entry/traps: Don't force in_interrupt() to return true in IST
+ handlers
+ - fix d_walk()/non-delayed __d_free() race
+ - [sparc64] Reduce TLB flushes during hugepte changes
+ - [sparc64] Take ctx_alloc_lock properly in hugetlb_setup().
+ - [sparc64] Harden signal return frame checks.
+ - [sparc64] Fix return from trap window fill crashes.
+ - drm/core: Do not preserve framebuffer on rmfb, v4.
+ - [x86] Revert "drm/i915: Exit cherryview_irq_handler() after one pass"
+ - gpio: make sure gpiod_to_irq() returns negative on NULL desc
+ * [powerpc*] tm: Always reclaim in start_thread() for exec() class syscalls
+ (CVE-2016-5828)
+
+ [ Salvatore Bonaccorso ]
+ * HID: hiddev: validate num_values for HIDIOCGUSAGES, HIDIOCSUSAGES commands
+ (CVE-2016-5829)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 04 Jul 2016 20:10:24 +0200
+
+linux (4.6.2-2) unstable; urgency=medium
+
+ * [mips*] Fix ABI changes in 4.6.2
+ * [rt] Update to 4.6.2-rt5:
+ - mm/memcontrol: mem_cgroup_migrate() - replace another local_irq_disable()
+ w. local_lock_irq()
+ * KEYS: potential uninitialized variable (CVE-2016-4470)
+ * percpu: fix synchronization between chunk->map_extend_work and chunk
+ destruction (CVE-2016-4794)
+ * percpu: fix synchronization between synchronous map extension and
+ chunk destruction (CVE-2016-4794)
+ * netfilter: x_tables: Fix parsing of IPT_SO_SET_REPLACE blobs
+ (CVE-2016-4997, CVE-2016-4998)
+ - don't move to non-existent next rule
+ - validate targets of jumps
+ - add and use xt_check_entry_offsets
+ - kill check_entry helper
+ - assert minimum target size
+ - add compat version of xt_check_entry_offsets
+ - check standard target size too
+ - check for bogus target offset
+ - validate all offsets and sizes in a rule
+ - don't reject valid target size on some
+ - arp_tables: simplify translate_compat_table args
+ - ip_tables: simplify translate_compat_table args
+ - ip6_tables: simplify translate_compat_table args
+ - xt_compat_match_from_user doesn't need a retval
+ - do compat validation via translate_table
+ - introduce and use xt_copy_counters_from_user
+ * Ignore ABI change in x_tables
+ * nfsd: check permissions when setting ACLs (CVE-2016-1237)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 25 Jun 2016 11:22:27 +0200
+
+linux (4.6.2-1) unstable; urgency=medium
+
+ * Team upload.
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.6.2
+ - f2fs: fix deadlock when flush inline data
+ - [mips*] math-emu: Fix jalr emulation when rd == $0
+ - [mips*] Avoid using unwind_stack() with usermode
+ - [mips*] Fix siginfo.h to use strict posix types
+ - [mips*] Fix uapi include in exported asm/siginfo.h
+ - [mips*] Fix watchpoint restoration
+ - [mips*] Flush highmem pages in __flush_dcache_page
+ - [mips*] Handle highmem pages in __update_cache
+ - [mips*] Sync icache & dcache in set_pte_at
+ - [mips*] Reserve nosave data for hibernation
+ - [mips*el/loongson-3] Reserve 32MB for RS780E integrated GPU
+ - [mips*] Use copy_s.fmt rather than copy_u.fmt
+ - [mips*] Prevent "restoration" of MSA context in non-MSA kernels
+ - [mips*] ptrace: Fix FP context restoration FCSR regression
+ - [mips*] ptrace: Prevent writes to read-only FCSR bits
+ - [mips*] lib: Mark intrinsics notrace
+ - [mips*] VDSO: Build with `-fno-strict-aliasing'
+ - affs: fix remount failure when there are no options changed
+ - ASoC: ak4642: Enable cache usage to fix crashes on resume
+ - Input: uinput - handle compat ioctl for UI_SET_PHYS
+ - Input: xpad - move pending clear to the correct location
+ - Input: xpad - prevent spurious input from wired Xbox 360 controllers
+ - [armhf] sun4i: dt: Enable dram gate 5 (tve0 clock) for simplefb TV output
+ - [armhf] sun7i: dt: Enable dram gate 5 (tve0 clock) for simplefb TV output
+ - [armhf] mvebu: fix GPIO config on the Linksys boards
+ - [armhf] dts: exynos: Add interrupt line to MAX8997 PMIC on
+ exynos4210-trats
+ - ath9k: Fix LED polarity for some Mini PCI AR9220 MB92 cards.
+ - ath10k: fix firmware assert in monitor mode
+ - ath10k: fix rx_channel during hw reconfigure
+ - ath10k: fix kernel panic, move arvifs list head init before htt init
+ - ath5k: Change led pin configuration for compaq c700 laptop
+ - [armhf] hwrng: exynos - Fix unbalanced PM runtime put on timeout
+ error path
+ - rtlwifi: Fix logic error in enter/exit power-save mode
+ - rtlwifi: pci: use dev_kfree_skb_irq instead of kfree_skb in
+ rtl_pci_reset_trx_ring
+ - Revert "lpfc: Delete unnecessary checks before the function call
+ mempool_destroy"
+ - aacraid: Start adapter after updating number of MSIX vectors
+ - aacraid: Relinquish CPU during timeout wait
+ - aacraid: Fix for aac_command_thread hang
+ - aacraid: Fix for KDUMP driver hang
+ - regulator: Try to resolve regulators supplies on registration
+ - hwmon: (ads7828) Enable internal reference
+ - [x86] mfd: intel_quark_i2c_gpio: Remove clock tree on error path
+ - [x86] mfd: intel-lpss: Save register context on suspend
+ - [x86] mfd: intel_soc_pmic_core: Terminate panel control GPIO lookup
+ table correctly
+ - PM / Runtime: Fix error path in pm_runtime_force_resume()
+ - cpuidle: Indicate when a device has been unregistered
+ - cpuidle: Fix cpuidle_state_is_coupled() argument in cpuidle_enter()
+ - [armhf] clk: bcm2835: Fix PLL poweron
+ - [armhf] clk: bcm2835: pll_off should only update CM_PLL_ANARST
+ - [armhf] clk: bcm2835: divider value has to be 1 or more
+ - [armhf] clk: bcm2835: correctly enable fractional clock support
+ - [armhf] pinctrl: exynos5440: Use off-stack memory for pinctrl_gpio_range
+ - PCI: Disable all BAR sizing for devices with non-compliant BARs
+ - media: v4l2-compat-ioctl32: fix missing reserved field copy in
+ put_v4l2_create32
+ - PKCS#7: fix missing break on OID_sha224 case
+ - mm: use phys_addr_t for reserve_bootmem_region() arguments
+ - mm/compaction.c: fix zoneindex in kcompactd()
+ - wait/ptrace: assume __WALL if the child is traced
+ - batman-adv: Fix double neigh_node_put in batadv_v_ogm_route_update
+ - [powerpc*] book3s64: Fix branching to OOL handlers in relocatable kernel
+ - [powerpc*] eeh: Don't report error in eeh_pe_reset_and_recover()
+ - [powerpc*] Revert "powerpc/eeh: Fix crash in eeh_add_device_early()
+ on Cell"
+ - [powerpc*] eeh: Restore initial state in eeh_pe_reset_and_recover()
+ - xen/events: Don't move disabled irqs
+ - xen: use same main loop for counting and remapping pages
+ - sunrpc: fix stripping of padded MIC tokens
+ - [x86] drm/gma500: Fix possible out of bounds read
+ - [x86] drm/vmwgfx: Kill some lockdep warnings
+ - [x86] drm/amdgpu: use drm_mode_vrefresh() rather than mode->vrefresh
+ - [x86] drm/amdgpu: Fix hdmi deep color support.
+ - [x86] drm/i915/fbdev: Fix num_connector references in
+ intel_fb_initial_config()
+ - drm/fb_helper: Fix references to dev->mode_config.num_connector
+ - [x86] drm/i915: Discard previous atomic state on resume if connectors
+ change
+ - drm/atomic: Verify connector->funcs != NULL when clearing states
+ - Bluetooth: 6lowpan: Fix memory corruption of ipv6 destination address
+ - [x86] drm/i915/psr: Try to program link training times correctly
+ - [x86] drm/i915: Respect DP++ adaptor TMDS clock limit
+ - [x86] drm/i915: Enable/disable TMDS output buffers in DP++ adaptor
+ as needed
+ - [x86] drm/i915: Don't leave old junk in ilk active watermarks on readout
+ - [x86] drm/i915: Fix watermarks for VLV/CHV
+ - [armhf] drm/imx: Match imx-ipuv3-crtc components using device node in
+ platform data
+ - [x86] drm/i915: Pass the correct crtc state to .update_plane()
+ - ext4: fix data exposure after a crash
+ - ext4: fix hang when processing corrupted orphaned inode list
+ - ext4: clean up error handling when orphan list is corrupted
+ - ext4: fix check of dqget() return value in ext4_ioctl_setproject()
+ - ext4: fix oops on corrupted filesystem
+ - ext4: address UBSAN warning in mb_find_order_for_block()
+ - nfs: avoid race that crashes nfs_init_commit
+ - PM / sleep: Handle failures in device_suspend_late() consistently
+ - mm: thp: avoid false positive VM_BUG_ON_PAGE in page_move_anon_rmap()
+ - xfs: disallow rw remount on fs with unknown ro-compat features
+ - xfs: Don't wrap growfs AGFL indexes
+ - xfs: remove xfs_fs_evict_inode()
+ - xfs: xfs_iflush_cluster fails to abort on error
+ - xfs: fix inode validity check in xfs_iflush_cluster
+ - xfs: skip stale inodes in xfs_iflush_cluster
+ - [armhf] drm: msm: remove unused variable
+ - IB/hfi1: Fix hard lockup due to not using save/restore spin lock
+ - regulator: Fix deadlock during regulator registration
+
+ [ Ben Hutchings ]
+ * [armel,armhf,sh4] linux-image: Do not suggest fdutils
+ * liblockdep: Reduce MAX_LOCK_DEPTH to avoid overflowing lock_chain::depth
+ * liblockdep: Fix 'unused value' warnings
+ * liblockdep: Fix 'set but not used' warnings
+ * liblockdep: Fix 'defined but not used' warning for init_utsname()
+
+ [ Salvatore Bonaccorso ]
+ * Stack overflow via ecryptfs and /proc/$pid/environ (CVE-2016-1583)
+ - proc: prevent stacking filesystems on top
+ - ecryptfs: forbid opening files without mmap handler
+ - sched: panic on corrupted stack end
+ * tipc: fix an infoleak in tipc_nl_compat_link_dump (CVE-2016-5243)
+ * rds: fix an infoleak in rds_inc_info_copy (CVE-2016-5244)
+
+ -- Salvatore Bonaccorso <carnil@debian.org> Wed, 15 Jun 2016 21:32:54 +0200
+
+linux (4.6.1-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.6.1
+
+ [ Ben Hutchings ]
+ * [mips*r6*] Disable these architectures until dak recognises them as valid
+ in the control file
+ * linux-image: Rewrite maintainer scripts in shell, using the new
+ linux-update-symlinks and linux-check-removal commands
+ (Closes: #692333, #815850). Drop support for minimal_swap, no_symlinks,
+ use_hard_links and *_hook parameters in /etc/kernel-img.conf
+ (Closes: #730073). Remove now-redundant debconf templates.
+ * linux-image: postrm: Update default symlinks before running hook scripts
+ * linux-image: Make a newly installed kernel the default if the package
+ was previously removed
+ * mtd: Disable slram and phram when securelevel is enabled
+ * debian/patches/features/all/rt/genpatch.py: Use Python 3
+ * debian/patches/features/all/rt/genpatch.py: Fix mapping of -rt version to
+ upstream version
+ * debian/patches/features/all/rt/genpatch.py: Use upstream tarball directly
+ * debian/patches/features/all/rt/genpatch.py: Use stable URLs in patch Origin
+ headers
+ * [rt] Update to 4.6.1-rt3:
+ - trace: correct off by one while recording the trace-event
+ - sched,preempt: Fix preempt_count manipulations
+ - kernel/rtmutex: only warn once on a try lock from bad
+ - locallock: add local_lock_on()
+ - kernel/printk: Don't try to print from IRQ/NMI region
+ - mm: perform lru_add_drain_all() remotely
+ * debian/control: Drop obsolete versioned Depends and Breaks
+ * linux-libc-dev: Drop obsolete Replaces/Conflicts with linux-kernel-headers
+ * debian/control: Update policy version to 3.9.8; no changes required
+ * Disable MODULE_SIG for architectures not supported by linux-signed
+ * Set ABI to 1
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 06 Jun 2016 18:13:57 +0100
+
+linux (4.6-1~exp2) experimental; urgency=medium
+
+ [ Ben Hutchings ]
+ * [tilegx] Build a linux-libc-dev package (Closes: #824524; thanks to
+ Helmut Grohne)
+ * [tilegx] linux-libc-dev: Install <arch/*> headers in arch-specific
+ directory (Closes: #823632; thanks to Helmut Grohne)
+ * [rt] Update to 4.6-rc7-rt1 and re-enable
+ - Override SYSTEM_TRUSTED_KEYS to work from the source_rt directory
+ * Fold debian/config/README into debian/README.source
+ * debian/README.source: Rewrite and expand explanation of kernel config file
+ construction
+ * aufs: Update support patches to aufs4.6-20160523
+ - mmap: Fix use-after-free in remap_file_pages(2)
+ * [mips*] Change NFS and various storage and network drivers from built-in
+ to modules
+ * 8139too: Use same configuration on all architectures: enable
+ 8139TOO_TUNE_TWISTER, 8139TOO_8129 and disable 8139TOO_PIO
+ * [mipsn32{,r6}{,el}] Build linux-libc-dev and tools packages
+ * [mips{,64}r6{,el}] Add kernel flavours for the Malta platform; build
+ linux-libc-dev and tools packages (Closes: #825024; thanks to YunQiang Su)
+ * [mips*/*-malta] udeb: Add ata-modules package
+ * linux-image: Stop setting $STEM in environment for maintainer script hooks
+ * linux-image: Add workaround for bug #817083 in debconf
+ * linux-image: prerm: Allow removal of running kernel if we can't ask debconf
+ questions (Closes: #825423)
+ * linux-image: prerm: Ignore version of running kernel inside a container or
+ chroot
+ * [s390] udeb: Drop all packages, since s390 no longer has its own kernel
+ * udeb: Drop packages for modules that will later be signed; these packages
+ will be taken over by src:linux-signed
+
+ [ Aurelien Jarno ]
+ * [mips64{,el}] Set CPU to MIPS64 R2.
+ * [mips] Set CPU to MIPS32/64 R2.
+
+ [ Martin Michlmayr ]
+ * [armhf] Enable more NVIDIA Tegra options (TEGRA_IOMMU_SMMU,
+ ARM_TEGRA_DEVFREQ, SND_SOC_TEGRA_*).
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 30 May 2016 04:44:45 +0100
+
+linux (4.6-1~exp1) experimental; urgency=medium
+
+ * New upstream release: http://kernelnewbies.org/Linux_4.6
+
+ [ Ben Hutchings ]
+ * Re-apply "[media] videobuf2-v4l2: Verify planes array in buffer dequeueing",
+ reverted upstream in 4.6
+ * [arm64] Enable RANDOMIZE_BASE (kASLR)
+ * [armhf] dsa: Enable NET_DSA_MV88E6123 as module, replacing
+ NET_DSA_MV88E6123_61_65
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 17 May 2016 02:39:47 +0100
+
+linux (4.6~rc7-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [hppa] Enable MLONGCALLS (fixes FTBFS)
+ * [alpha] fs: Disable BINFMT_EM86 (obsoleted by binfmt_misc; fixes FTBFS)
+
+ [ Aurelien Jarno ]
+ * [mips*/octeon] Enable EDAC, EDAC_MM_EDAC, EDAC_OCTEON_L2C,
+ EDAC_OCTEON_LMC, EDAC_OCTEON_PC, EDAC_OCTEON_PCI.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 09 May 2016 03:39:32 +0100
+
+linux (4.6~rc5-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [armhf] Enable EFI, RTC_DRV_EFI
+ * Update config for renaming/removal/replacement/merging/splitting of various
+ symbols
+ * *lockdep*,linux-perf: Remove '-rcN' from installation paths
+
+ [ Martin Michlmayr ]
+ * [armel, armhf] Use new Marvell CESA driver.
+ * [arm64] Enable support for NVIDIA Tegra.
+ * [arm64] udeb: Create fb-modules.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 29 Apr 2016 10:40:36 +0200
+
+linux (4.6~rc3-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * aufs: Update support patches to aufs4.x-rcN-20160328
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 14 Apr 2016 23:55:15 +0100
+
+linux (4.5.5-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.5.5
+ - decnet: Do not build routes to devices without decnet private data.
+ - route: do not cache fib route info on local routes with oif
+ - packet: fix heap info leak in PACKET_DIAG_MCLIST sock_diag interface
+ - net: sched: do not requeue a NULL skb
+ - bpf/verifier: reject invalid LD_ABS | BPF_DW instruction
+ - cdc_mbim: apply "NDP to end" quirk to all Huawei devices
+ - soreuseport: fix ordering for mixed v4/v6 sockets
+ - net: use skb_postpush_rcsum instead of own implementations
+ - vlan: pull on __vlan_insert_tag error path and fix csum correction
+ - openvswitch: Orphan skbs before IPv6 defrag
+ - openvswitch: use flow protocol when recalculating ipv6 checksums
+ - net/mlx5_core: Fix soft lockup in steering error flow
+ - net/mlx5e: Device's mtu field is u16 and not int
+ - net/mlx5e: Fix minimum MTU
+ - net/mlx5e: Use vport MTU rather than physical port MTU
+ - ipv4/fib: don't warn when primary address is missing if in_dev is dead
+ - net/mlx4_en: fix spurious timestamping callbacks
+ - net: Implement net_dbg_ratelimited() for CONFIG_DYNAMIC_DEBUG case
+ - gre: do not pull header in ICMP error processing
+ - net_sched: introduce qdisc_replace() helper
+ - net_sched: update hierarchical backlog too
+ - sch_htb: update backlog as well
+ - sch_dsmark: update backlog as well
+ - netem: Segment GSO packets on enqueue
+ - ipv6/ila: fix nlsize calculation for lwtunnel
+ - net/mlx4_en: Fix endianness bug in IPV6 csum calculation
+ - [x86] VSOCK: do not disconnect socket when peer has shutdown SEND only
+ - net: bridge: fix old ioctl unlocked net device walk
+ - bridge: fix igmp / mld query parsing
+ - net: fix a kernel infoleak in x25 module (CVE-2016-4580)
+ - net: thunderx: avoid exposing kernel stack
+ - tcp: refresh skb timestamp at retransmit time
+ - net/route: enforce hoplimit max value
+ - ocfs2: revert using ocfs2_acl_chmod to avoid inode cluster lock hang
+ - ocfs2: fix posix_acl_create deadlock
+ - zsmalloc: fix zs_can_compact() integer overflow
+ - mm: thp: calculate the mapcount correctly for THP pages during WP faults
+ - [x86] crypto: qat - fix invalid pf2vf_resp_wq logic
+ - crypto: testmgr - Use kmalloc memory for RSA input
+ - ALSA: usb-audio: Quirk for yet another Phoenix Audio devices (v2)
+ - ALSA: usb-audio: Yet another Phoneix Audio device quirk
+ - ALSA: hda - Fix subwoofer pin on ASUS N751 and N551
+ - ALSA: hda - Fix white noise on Asus UX501VW headset
+ - ALSA: hda - Fix broken reconfig
+ - [armhf] spi: spi-ti-qspi: Fix FLEN and WLEN settings if bits_per_word is
+ overridden
+ - [armhf] spi: spi-ti-qspi: Handle truncated frames properly
+ - perf diff: Fix duplicated output column
+ - perf/core: Disable the event on a truncated AUX record
+ - vfs: rename: check backing inode being equal
+ - workqueue: fix rebind bound workers warning
+ - [armhf] regulator: s2mps11: Fix invalid selector mask and voltages
+ for buck9
+ - [armhf] regulator: axp20x: Fix axp22x ldo_io voltage ranges
+ - atomic_open(): fix the handling of create_error
+ - qla1280: Don't allocate 512kb of host tags
+ - tools lib traceevent: Do not reassign parg after collapse_tree()
+ - [x86] drm/i915: Update CDCLK_FREQ register on BDW after changing cdclk
+ frequency
+ - drm/radeon: fix PLL sharing on DCE6.1 (v2)
+ - [x86] drm/i915: Bail out of pipe config compute loop on LPT
+ - [x86] Revert "drm/i915: start adding dp mst audio"
+ - [x86] drm/i915/bdw: Add missing delay during L3 SQC credit programming
+ - drm/radeon: fix DP link training issue with second 4K monitor
+ - drm/radeon: fix DP mode validation
+ - [x86] drm/amdgpu: fix DP mode validation
+ - btrfs: reada: Fix in-segment calculation for reada
+ - Btrfs: fix truncate_space_check
+ - btrfs: remove error message from search ioctl for nonexistent tree
+ - btrfs: change max_inline default to 2048
+ - Btrfs: fix unreplayable log after snapshot delete + parent dir fsync
+ - Btrfs: fix file loss on log replay after renaming a file and fsync
+ - Btrfs: fix extent_same allowing destination offset beyond i_size
+ - Btrfs: fix deadlock between direct IO reads and buffered writes
+ - Btrfs: fix race when checking if we can skip fsync'ing an inode
+ - Btrfs: do not collect ordered extents when logging that inode exists
+ - btrfs: csum_tree_block: return proper errno value
+ - btrfs: do not write corrupted metadata blocks to disk
+ - Btrfs: fix invalid reference in replace_path
+ - btrfs: handle non-fatal errors in btrfs_qgroup_inherit()
+ - btrfs: fallback to vmalloc in btrfs_compare_tree
+ - Btrfs: don't use src fd for printk
+ - btrfs: Reset IO error counters before start of device replacing
+
+ [ Salvatore Bonaccorso ]
+ * tipc: check nl sock before parsing nested attributes (CVE-2016-4951)
+
+ [ Ben Hutchings ]
+ * aufs: Update support patches to aufs4.5-20160523
+ - mmap: Fix use-after-free in remap_file_pages(2)
+ * Revert "stmmac: Fix 'eth0: No PHY found' regression" (Closes: #823493)
+ * [x86] kvm:vmx: more complete state update on APICv on/off (CVE-2016-4440)
+ * USB: usbfs: fix potential infoleak in devio (CVE-2016-4482)
+ * ALSA: timer: Fix leak in SNDRV_TIMER_IOCTL_PARAMS (CVE-2016-4569)
+ * ALSA: timer: Fix leak in events via snd_timer_user_ccallback or
+ snd_timer_user_tinterrupt (CVE-2016-4578)
+ * dwc3-exynos: Fix deferred probing storm (Closes: #823552; thanks to
+ Steinar H. Gunderson)
+ * Re-apply "[media] videobuf2-v4l2: Verify planes array in buffer dequeueing",
+ reverted upstream in 4.5.5
+
+ [ Roger Shimizu ]
+ * [armhf] Enable SENSORS_PWM_FAN / PWM_SAMSUNG as module, as recommended by
+ Steinar H. Gunderson. (Closes: #824941)
+ * [armhf] For Odroid-U3 (Exynos4) support, enable ARCH_EXYNOS4 / MFD_MAX77686
+ / RTC_DRV_MAX77686 as built-in, and COMMON_CLK_MAX77686
+ / REGULATOR_MAX77686 / MMC_SDHCI_S3C as module. Thanks to
+ Vagrant Cascadian. (Closes: #825139)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 29 May 2016 22:21:11 +0100
+
+linux (4.5.4-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.5.4
+ - RDMA/iw_cxgb4: Fix bar2 virt addr calculation for T4 chips
+ - net/mlx5_core: Fix caching ATOMIC endian mode capability
+ - ipvs: handle ip_vs_fill_iph_skb_off failure
+ - ipvs: correct initial offset of Call-ID header search in SIP persistence
+ engine
+ - ipvs: drop first packet to redirect conntrack
+ - rtlwifi: Fix size of wireless mode variable
+ - [x86] mfd: intel-lpss: Remove clock tree on error path
+ - nbd: ratelimit error msgs after socket close
+ - null_blk: add lightnvm null_blk device to the nullb_list
+ - [arm64] ata: ahci_xgene: dereferencing uninitialized pointer in probe
+ - [armhf] wlcore: fix error handling in wlcore_event_fw_logger
+ - ath10k: fix pktlog in QCA99X0
+ - mwifiex: fix corner case association failure
+ - clk-divider: make sure read-only dividers do not write to their register
+ - [armhf] clk: rockchip: fix wrong mmc phase shift for rk3228
+ - [armhf] clk: rockchip: free memory in error cases when registering clock
+ branches
+ - [armel/versatile] clk: versatile: sp810: support reentrance
+ - [armhf] clk: sunxi: Fix sun8i-a23-apb0-clk divider flags
+ - [arm64] clk: xgene: Add missing parenthesis when clearing divider value
+ - [armhf] clk: bcm2835: fix check of error code returned by
+ devm_ioremap_resource()
+ - [armhf] pwm: omap-dmtimer: Fix inaccurate period and duty cycle
+ calculations
+ - [armhf] pwm: omap-dmtimer: Add sanity checking for load and match values
+ - [armhf] pwm: omap-dmtimer: Round load and match values rather than
+ truncate
+ - lpfc: fix misleading indentation
+ - gpiolib-acpi: Duplicate con_id string when adding it to the crs lookup
+ list
+ - ath9k: ar5008_hw_cmn_spur_mitigate: add missing mask_m & mask_p
+ initialisation
+ - mac80211: fix statistics leak if dev_alloc_name() fails
+ - tracing: Don't display trigger file for events that can't be enabled
+ - MD: make bio mergeable
+ - Minimal fix-up of bad hashing behavior of hash_64()
+ - mm: memcontrol: let v2 cgroups follow changes in system swappiness
+ - [armhf] mm, cma: prevent nr_isolated_* counters from going negative
+ - mm/zswap: provide unique zpool name
+ - propogate_mnt: Handle the first propogated copy being a slave
+ (CVE-2016-4581)
+ - modpost: fix module autoloading for OF devices with generic compatible
+ property
+ - [armhf] EXYNOS: Properly skip unitialized parent clock in power domain on
+ - [armhf] SoCFPGA: Fix secondary CPU startup in thumb2 kernel
+ - xen: Fix page <-> pfn conversion on 32 bit systems
+ - xen/balloon: Fix crash when ballooning on x86 32 bit PAE
+ - xen/evtchn: fix ring resize when binding new events
+ - HID: wacom: Add support for DTK-1651
+ - proc: prevent accessing /proc/<PID>/environ until it's ready
+ - mm: update min_free_kbytes from khugepaged after core initialization
+ - batman-adv: fix DAT candidate selection (must use vid)
+ - batman-adv: Check skb size before using encapsulated ETH+VLAN header
+ - batman-adv: Fix broadcast/ogm queue limit on a removed interface
+ - batman-adv: Reduce refcnt of removed router when updating route
+ - [x86] libnvdimm, pfn: fix memmap reservation sizing
+ - writeback: Fix performance regression in wb_over_bg_thresh()
+ - [x86] tsc: Read all ratio bits from MSR_PLATFORM_INFO
+ - [arm64] cpuidle: Pass on arm_cpuidle_suspend()'s return value
+ - [x86] sysfb_efi: Fix valid BAR address range check
+ - [arm64] dts: apq8064: add ahci ports-implemented mask
+ - ACPICA: Dispatcher: Update thread ID for recursive method calls
+ - [powerpc*] Fix bad inline asm constraint in create_zero_mask()
+ - libahci: save port map for forced port map
+ - ata: ahci-platform: Add ports-implemented DT bindings.
+ - USB: serial: cp210x: add ID for Link ECU
+ - USB: serial: cp210x: add Straizona Focusers device ids
+ - Revert "USB / PM: Allow USB devices to remain runtime-suspended when
+ sleeping"
+ - nvmem: mxs-ocotp: fix buffer overflow in read
+ - [x86] Drivers: hv: vmbus: Fix signaling logic in
+ hv_need_to_signal_on_read()
+ - [armhf] gpu: ipu-v3: Fix imx-ipuv3-crtc module autoloading
+ - [x86] drm/amdgpu: make sure vertical front porch is at least 1
+ - [x86] drm/amdgpu: set metadata pointer to NULL after freeing.
+ - [x86] iio: ak8975: Fix NULL pointer exception on early interrupt
+ - [x86] iio: ak8975: fix maybe-uninitialized warning
+ - drm/radeon: make sure vertical front porch is at least 1
+ - [x86] drm/i915: Avoid stalling on pending flips for legacy cursor updates
+ - [x86] drm/i915/ddi: Fix eDP VDD handling during booting and suspend/resume
+ - [x86] drm/i915: Fix system resume if PCI device remained enabled
+ - [x86] drm/i915: Fix eDP low vswing for Broadwell
+ - [x86] drm/i915: Make RPS EI/thresholds multiple of 25 on SNB-BDW
+ - [x86] drm/i915: Fake HDMI live status
+ - [x86] ACPI / processor: Request native thermal interrupt handling via _OSC
+
+ [ Aurelien Jarno ]
+ * [mips*] Fix PR_SET_FPMODE issues with multi-threaded programs.
+ * [i386] Stop recommending libc6-i686.
+ * [arm,x86] Fix memory corruption in KVM with THP enabled. (Closes: #821225)
+ * [mips*/octeon] Add support for byte swapped initramfs to handle u-boot and
+ kernel running with a different endianness.
+ * [mipsel/octeon] Activate flavour on mipsel.
+
+ [ Roger Shimizu ]
+ * netfilter: Enable NF_DUP_NETDEV / NFT_DUP_NETDEV / NFT_FWD_NETDEV
+ as module, as recommended by Arturo Borrero Gonzalez. (Closes: #824162)
+
+ [ Salvatore Bonaccorso ]
+ * KEYS: Fix ASN.1 indefinite length object parsing (CVE-2016-0758)
+ * net: fix infoleak in llc (CVE-2016-4485)
+ * KVM: MTRR: remove MSR 0x2f8 (CVE-2016-3713)
+
+ [ Ben Hutchings ]
+ * gencontrol.py: Fix implementation of [packages]tools config option,
+ thanks to Yves-Alexis Perez
+ * debian/control: Exclude tools from 'stage1' build profile
+ * debian/control,debian/rules: Support a 'pkg.linux.notools' build profile
+ which does not build tools packages
+ * debian/control,debian/rules,debian/rules.d: Support the 'nodoc' build
+ profile
+ * debian/control: Remove alternate build-dependency on binutils-dev that was
+ used for backports to wheezy
+ * net: fix infoleak in rtnetlink (CVE-2016-4486)
+ * nf_conntrack: avoid kernel pointer value leak in slab name
+ * vfs: do_splice_to(): cap the size before passing to ->splice_read()
+ * crypto: hash - Fix page length clamping in hash walk
+ * isofs: get_rock_ridge_filename(): handle malformed NM entries
+ * uapi glibc compat: fix compile errors when glibc net/if.h included
+ before linux/if.h (Closes: #822393)
+ * videobuf2-core: Fix crash after fixing CVE-2016-4568
+ * [armhf] Enable more Exynos drivers (Closes: #824435):
+ - drm: Enable DRM_EXYNOS as module, DRM_EXYNOS_MIXER, DRM_EXYNOS_FIMD,
+ DRM_EXYNOS_DSI, DRM_EXYNOS_DP, DRM_EXYNOS_HDMI
+ - phy: Enable PHY_EXYNOS_MIPI_VIDEO, PHY_EXYNOS_DP_VIDEO as modules
+ - cpuidle: Enable ARM_EXYNOS_CPUIDLE
+ - iio: Enable EXYNOS_ADC as module
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 16 May 2016 19:17:22 +0100
+
+linux (4.5.3-2) unstable; urgency=medium
+
+ * [s390x] PCI: Ignore zpci ABI changes; these functions are not used by
+ modules
+ * [powerpc*] Fix sstep compile on powerpcspe (Closes: #823526; thanks to
+ Lennart Sorensen)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 08 May 2016 15:03:45 +0100
+
+linux (4.5.3-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.5.3
+ - mmc: block: Use the mmc host device index as the mmcblk device index
+ - block: partition: initialize percpuref before sending out KOBJ_ADD
+ - block: loop: fix filesystem corruption in case of aio/dio
+ - [arm64] efi: Don't apply MEMBLOCK_NOMAP to UEFI memory map mapping
+ - [x86] mce: Avoid using object after free in genpool
+ - [x86] kvm: do not leak guest xcr0 into host interrupt handlers
+ - [arm*] KVM: Handle forward time correction gracefully
+ - [armhf] mvebu: Correct unit address for linksys
+ - [armhf] OMAP2: Fix up interconnect barrier initialization for DRA7
+ - [armhf] OMAP2+: hwmod: Fix updating of sysconfig register
+ - assoc_array: don't call compare_object() on a node
+ - [x86] usb: xhci: applying XHCI_PME_STUCK_QUIRK to Intel BXT B0 host
+ - xhci: resume USB 3 roothub first
+ - usb: host: xhci: add a new quirk XHCI_NO_64BIT_SUPPORT
+ - usb: xhci: fix wild pointers in xhci_mem_cleanup
+ - xhci: fix 10 second timeout on removal of PCI hotpluggable xhci
+ controllers
+ - usb: host: xhci-plat: Make enum xhci_plat_type start at a non zero value
+ - usb: hcd: out of bounds access in for_each_companion
+ - usb: gadget: f_fs: Fix use-after-free
+ - dm cache metadata: fix READ_LOCK macros and cleanup WRITE_LOCK macros
+ - dm cache metadata: fix cmd_read_lock() acquiring write lock
+ - lib: lz4: fixed zram with lz4 on big endian machines
+ - debugfs: Make automount point inodes permanently empty
+ - dmaengine: dw: fix master selection
+ - [armhf] dmaengine: omap-dma: Fix polled channel completion detection
+ and handling
+ - dmaengine: edma: Remove dynamic TPTC power management feature
+ - mtd: nand: pxa3xx_nand: fix dmaengine initialization
+ - sched/cgroup: Fix/cleanup cgroup teardown/init
+ - [x86] EDAC, sb_edac.c: Repair damage introduced when "fixing"
+ channel address
+ - [x86] EDAC, sb_edac.c: Take account of channel hashing when needed
+ - ALSA: hda - Don't trust the reported actual power state
+ - [x86] ALSA: hda/realtek - Add ALC3234 headset mode for Optiplex 9020m
+ - ALSA: hda - Keep powering up ADCs on Cirrus codecs
+ - [x86] ALSA: hda - add PCI ID for Intel Broxton-T
+ - ALSA: pcxhr: Fix missing mutex unlock
+ - [x86] ALSA: hda - Add dock support for ThinkPad X260
+ - [x86] ALSA: hda - Update BCLK also at hotplug for i915 HSW/BDW
+ - asm-generic/futex: Re-enable preemption in futex_atomic_cmpxchg_inatomic()
+ - futex: Handle unlock_pi race gracefully
+ - futex: Acknowledge a new waiter in counter before plist
+ - drm/nouveau/core: use vzalloc for allocating ramht
+ - drm/qxl: fix cursor position with non-zero hotspot
+ - [x86] drm/i915: Fix race condition in intel_dp_destroy_mst_connector()
+ - Revert "drm/radeon: disable runtime pm on PX laptops without dGPU
+ power control"
+ - [armhf] Revert "PCI: imx6: Add support for active-low reset GPIO"
+ - usbvision: revert commit 588afcc1
+ - [x86] Revert "drm/amdgpu: disable runtime pm on PX laptops without dGPU
+ power control"
+ - cpufreq: intel_pstate: Fix processing for turbo activation ratio
+ - [s390x] pci: add extra padding to function measurement block
+ - iwlwifi: pcie: lower the debug level for RSA semaphore access
+ - iwlwifi: mvm: fix memory leak in paging
+ - crypto: rsa-pkcs1pad - fix dst len
+ - [x86] crypto: ccp - Prevent information leakage on export
+ - crypto: sha1-mb - use corrcet pointer while completing jobs
+ - [powerpc*] scan_features() updates incorrect bits for REAL_LE
+ - [powerpc*] Update cpu_user_features2 in scan_features()
+ - [powerpc*] Update TM user feature bits in scan_features()
+ - nl80211: check netlink protocol in socket release notification
+ - netlink: don't send NETLINK_URELEASE for unbound sockets
+ - pinctrl: single: Fix pcs_parse_bits_in_pinctrl_entry to use __ffs than ffs
+ - [x86] iommu/amd: Fix checking of pci dma aliases
+ - iommu/dma: Restore scatterlist offsets correctly
+ - [x86] drm/amdgpu: when suspending, if uvd/vce was running. need to cancel
+ delay work.
+ - [x86] drm/amdgpu: use defines for CRTCs and AMFT blocks
+ - [x86] drm/amdgpu: bump the afmt limit for CZ, ST, Polaris
+ - [x86] amdgpu/uvd: add uvd fw version for amdgpu
+ - [x86] drm/amdgpu: fix regression on CIK (v2)
+ - drm/radeon: add a quirk for a XFX R9 270X
+ - drm/radeon: fix initial connector audio value
+ - drm/radeon: forbid mapping of userptr bo through radeon device file
+ - drm/radeon: fix vertical bars appear on monitor (v2)
+ - [mips*el/loongson-3] drm: Loongson-3 doesn't fully support wc memory
+ - drm/nouveau/gr/gf100: select a stream master to fixup tfb offset queries
+ - drm/dp/mst: Validate port in drm_dp_payload_send_msg()
+ - drm/dp/mst: Restore primary hub guid on resume
+ - drm/dp/mst: Get validated port ref in drm_dp_update_payload_part1()
+ - [x86] drm/i915: Pass the correct encoder to intel_ddi_clk_select()
+ with MST
+ - [x86] drm/i915: Cleanup phys status page too
+ - [x86] drm/i915: Use the active wm config for merging on ILK-BDW
+ - [x86] drm/i915: Start WM computation from scratch on ILK-BDW
+ - [x86] drm/i915: skl_update_scaler() wants a rotation bitmask instead of
+ bit number
+ - [x86] drm/amdkfd: uninitialized variable in
+ dbgdev_wave_control_set_registers()
+ - [x86] drm/i915/skl: Fix DMC load on Skylake J0 and K0
+ - [x86] drm/i915/skl: Fix spurious gpu hang with gt3/gt4 revs
+ - [x86] drm/i915: Fixup the free space logic in ring_prepare
+ - [x86] drm/i915: Force ringbuffers to not be at offset 0
+ - [x86] drm/i915: Use fw_domains_put_with_fifo() on HSW
+ - drm/ttm: fix kref count mess in ttm_bo_move_to_lru_tail
+ - [x86] perf intel-pt: Fix segfault tracing transactions
+ - [armhf] i2c: exynos5: Fix possible ABBA deadlock by keeping I2C
+ clock prepared
+ - ACPICA / Interpreter: Fix a regression triggered because of wrong Linux
+ ECDT support
+ - [x86] mmc: sdhci-acpi: Reduce Baytrail eMMC/SD/SDIO hangs
+ - [x86] toshiba_acpi: Fix regression caused by hotkey enabling value
+ - [x86] EDAC: i7core, sb_edac: Don't return NOTIFY_BAD from mce_decoder
+ callback
+ - [x86] ASoC: ssm4567: Reset device before regcache_sync()
+ - [x86] ASoC: rt5640: Correct the digital interface data select
+ - vb2-memops: Fix over allocation of frame vectors
+ - media: vb2: Fix regression on poll() for RW mode
+ - videobuf2-core: Check user space planes array in dqbuf
+ - videobuf2-v4l2: Verify planes array in buffer dequeueing (CVE-2016-4568)
+ - v4l2-dv-timings.h: fix polarity for 4k formats
+ - IB/core: Fix oops in ib_cache_gid_set_default_gid
+ - mwifiex: fix IBSS data path issue.
+ - IB/mlx5: Expose correct max_sge_rd limit
+ - IB/security: Restrict use of the write() interface (CVE-2016-4565)
+ - efi: Fix out-of-bounds read in variable_matches()
+ - efi: Expose non-blocking set_variable() wrapper to efivars
+ - [x86] apic: Handle zero vector gracefully in clear_vector_irq()
+ - workqueue: fix ghost PENDING flag while doing MQ IO
+ - slub: clean up code for kmem cgroup support to kmem_cache_free_bulk
+ - cgroup, cpuset: replace cpuset_post_attach_flush() with
+ cgroup_subsys->post_attach callback
+ - memcg: relocate charge moving from ->attach to ->post_attach
+ - mm: exclude HugeTLB pages from THP page_mapped() logic
+ - mm/huge_memory: replace VM_NO_THP VM_BUG_ON with actual VMA check
+ - numa: fix /proc/<pid>/numa_maps for THP
+ - mm: vmscan: reclaim highmem zone if buffer_heads is over limit
+ - mm/hwpoison: fix wrong num_poisoned_pages accounting
+ - locking/mcs: Fix mcs_spin_lock() ordering
+ - [armhf] spi/rockchip: Make sure spi clk is on in rockchip_spi_set_cs
+ - [armhf] irqchip/sunxi-nmi: Fix error check of of_io_request_and_map()
+ - [armhf] regulator: s5m8767: fix get_register() error handling
+ - scsi_dh: force modular build if SCSI is a module
+ - lib/mpi: Endianness fix
+ - [x86] misc: mic/scif: fix wrap around tests
+ - PM / OPP: Initialize u_volt_min/max to a valid value
+ - PM / Domains: Fix removal of a subdomain
+ - drivers/misc/ad525x_dpot: AD5274 fix RDAC read back errors
+ - perf evlist: Reference count the cpu and thread maps at set_maps()
+ - perf tools: Fix perf script python database export crash
+ - [x86] mm/kmmio: Fix mmiotrace for hugepages
+ - ext4: fix NULL pointer dereference in ext4_mark_inode_dirty()
+ - f2fs crypto: fix corrupted symlink in encrypted case
+ - f2fs: slightly reorganize read_raw_super_block
+ - f2fs: cover large section in sanity check of super
+ - ext4/fscrypto: avoid RCU lookup in d_revalidate
+ - f2fs: do f2fs_balance_fs when block is allocated
+ - f2fs: don't need to call set_page_dirty for io error
+ - f2fs crypto: handle unexpected lack of encryption keys
+ - f2fs crypto: make sure the encryption info is initialized on opendir(2)
+ - bus: uniphier-system-bus: fix condition of overlap check
+ - mtd: spi-nor: remove micron_quad_enable()
+ - mtd: brcmnand: Fix v7.1 register offsets
+ - mtd: nand: Drop mtd.owner requirement in nand_scan
+ - perf hists browser: Only offer symbol scripting when a symbol is under
+ the cursor
+ - perf hists browser: Fix dump to show correct callchain style
+ - perf tools: handle spaces in file names obtained from /proc/pid/maps
+ - NTB: Remove _addr functions from ntb_hw_amd
+ - perf/core: Don't leak event in the syscall error path
+ - perf/core: Fix time tracking bug with multiplexing
+ - perf hists: Fix determination of a callchain node's childlessness
+ - [armhf] OMAP3: Add cpuidle parameters table for omap3430
+ - [armhf] dts: armada-375: use armada-370-sata for SATA
+ - [armhf] dts: am33xx: Fix GPMC dma properties
+ - btrfs: fix memory leak of fs_info in block group cache
+ - btrfs: cleaner_kthread() doesn't need explicit freeze
+ - [armhf] thermal: rockchip: fix a impossible condition caused by the
+ warning
+ - sunrpc/cache: drop reference when sunrpc_cache_pipe_upcall() detects
+ a race
+ - megaraid_sas: add missing curly braces in ioctl handler
+ - tpm: fix checks for policy digest existence in tpm2_seal_trusted()
+ - tpm: fix: set continueSession attribute for the unseal operation
+
+ [ Uwe Kleine-König ]
+ * [armhf] enable I2C_MUX_PCA954x, MMC_SDHCI_PXAV3, AHCI_MVEBU
+
+ [ Ben Hutchings ]
+ * bug control: Update list of related firmware packages
+ * Revert "sp5100_tco: fix the device check for SB800 and later chipsets"
+ (Closes: #823146; probably fixes #822651)
+ * bpf: fix double-fdput in replace_map_fd_with_map_ptr() (CVE-2016-4557)
+ (Closes: #823603)
+ * bpf: fix refcnt overflow (CVE-2016-4558)
+ * bpf: fix check_map_func_compatibility logic
+ * stable-update: Rewrite stable-update.sh in Python
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 07 May 2016 21:59:15 +0100
+
+linux (4.5.2-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.5.2
+ - hwmon: (max1111) Return -ENODEV from max1111_read_channel if not
+ instantiated
+ - PKCS#7: pkcs7_validate_trust(): initialize the _trusted output argument
+ - [hppa] Fix SIGSYS signals in compat case
+ - [hppa] Fix and enable seccomp filter support
+ - [hppa] Avoid function pointers for kernel exception routines
+ - [hppa] Fix kernel crash with reversed copy_from_user()
+ - [hppa] Unbreak handling exceptions from kernel modules
+ - ALSA: timer: Use mod_timer() for rearming the system timer
+ - mm: fix invalid node in alloc_migrate_target()
+ - [powerpc*] mm: Fixup preempt underflow with huge pages
+ - [s390x] /mm: handle PTE-mapped tail pages in fast gup
+ - [x86] libnvdimm: fix smart data retrieval
+ - [x86] libnvdimm, pfn: fix uuid validation
+ - [powerpc*] process: Fix altivec SPR not being saved
+ - compiler-gcc: disable -ftracer for __noclone functions
+ - drm/dp: move hw_mutex up the call stack
+ - drm/udl: Use unlocked gem unreferencing
+ - [x86] drm/amd/powerplay: fix segment fault issue in multi-display case.
+ - [x86] drm/amdgpu/gmc: move vram type fetching into sw_init
+ - [x86] drm/amdgpu/gmc: use proper register for vram type on Fiji
+ - xen/events: Mask a moving irq
+ - net: validate variable length ll headers
+ - ax25: add link layer header validation function
+ - packet: validate variable length ll headers
+ - bpf: avoid copying junk bytes in bpf_get_current_comm()
+ - qlcnic: Remove unnecessary usage of atomic_t
+ - qlcnic: Fix mailbox completion handling during spurious interrupt
+ - macvtap: always pass ethernet header in linear
+ - bridge: allow zero ageing time
+ - ipv4: Don't do expensive useless work during inetdev destroy.
+ - net: Fix use after free in the recvmmsg exit path
+ - mlx4: add missing braces in verify_qp_parameters
+ - farsync: fix off-by-one bug in fst_add_one
+ - ath9k: fix buffer overrun for ar9287
+ - [armhf] net: mvneta: Fix spinlock usage
+ - ppp: ensure file->private_data can't be overridden
+ - tcp/dccp: remove obsolete WARN_ON() in icmp handlers
+ - qlge: Fix receive packets drop.
+ - bonding: fix bond_get_stats()
+ - ipv4: fix broadcast packets reception
+ - ipv4: initialize flowi4_flags before calling fib_lookup()
+ - ppp: take reference on channels netns
+ - xfrm: Fix crash observed during device unregistration and decryption
+ - ipv6: udp: fix UDP_MIB_IGNOREDMULTI updates
+ - bridge: Allow set bridge ageing time when switchdev disabled
+ - rtnl: fix msg size calculation in if_nlmsg_size()
+ - tun, bpf: fix suspicious RCU usage in tun_{attach, detach}_filter
+ - tuntap: restore default qdisc
+ - ipv4: l2tp: fix a potential issue in l2tp_ip_recv
+ - ipv6: l2tp: fix a potential issue in l2tp_ip6_recv
+ - ip6_tunnel: set rtnl_link_ops before calling register_netdevice
+ - ipv6: Count in extension headers in skb->network_header
+ - mpls: find_outdev: check for err ptr in addition to NULL check
+ - USB: uas: Limit qdepth at the scsi-host level
+ - USB: uas: Add a new NO_REPORT_LUNS quirk
+ - [x86] KVM: Inject pending interrupt even if pending nmi exist
+ - [x86] KVM: reduce default value of halt_poll_ns parameter
+ - pinctrl: pistachio: fix mfio84-89 function description and pinmux.
+ - pinctrl: sunxi: Fix A33 external interrupts not working
+ - pinctrl: freescale: imx: fix bogus check of of_iomap() return value
+ - au0828: fix au0828_v4l2_close() dev_state race condition
+ - au0828: Fix dev_state handling
+ - coda: fix error path in case of missing pdata on non-DT platform
+ - v4l: vsp1: Set the SRU CTRL0 register when starting the stream
+ - pcmcia: db1xxx_ss: fix last irq_to_gpio user
+ - rbd: use GFP_NOIO consistently for request allocations
+ - mac80211: properly deal with station hashtable insert errors
+ - mac80211: avoid excessive stack usage in sta_info
+ - mac80211: fix ibss scan parameters
+ - mac80211: fix unnecessary frame drops in mesh fwding
+ - mac80211: fix txq queue related crashes
+ - [armhf] gpio: pca953x: Use correct u16 value for register word write
+ - scsi: Do not attach VPD to devices that don't support it
+ - [armel,armhf]: 8550/1: protect idiv patching against undefined
+ gcc behavior
+ - iio: fix config watermark initial value
+ - iio: st_magn: always define ST_MAGN_TRIGGER_SET_STATE
+ - iio: accel: bmc150: fix endianness when reading axes
+ - iio: gyro: bmg160: fix buffer read values
+ - iio: gyro: bmg160: fix endianness when reading axes
+ - sd: Fix excessive capacity printing on devices with blocks bigger than
+ 512 bytes
+ - fs: add file_dentry() (Closes: #821442)
+ + nfs: use file_dentry()
+ + ext4 crypto: use dget_parent() in ext4_d_revalidate()
+ + ext4: use dget_parent() in ext4_file_open()
+ + ext4: use file_dentry()
+ - btrfs: fix crash/invalid memory access on fsync when using overlayfs
+ - ext4: ignore quota mount options if the quota feature is enabled
+ - iommu: Don't overwrite domain pointer when there is no default_domain
+ - Btrfs: fix file/data loss caused by fsync after rename and new inode
+ - [arm64] replace read_lock to rcu lock in call_step_hook
+ - mmc: sdhci: Fix regression setting power on Trats2 board
+ - ALSA: hda - Fix regression of monitor_present flag in eld proc file
+ - [x86] ALSA: usb-audio: Skip volume controls triggers hangup on Dell
+ USB Dock
+ - HID: wacom: fix Bamboo ONE oops
+ - HID: usbhid: fix inconsistent reset/resume/reset-resume behavior
+
+ [ Salvatore Bonaccorso ]
+ * [x86] xen: suppress hugetlbfs in PV guests (CVE-2016-3961)
+ * [x86] USB: usbip: fix potential out-of-bounds write (CVE-2016-3955)
+
+ [ Ben Hutchings ]
+ * fs: Consolidate softdep declarations in each module
+ * Bump ABI to 2
+ * [armel/marvell] dts: kirkwood: fix SD slot default configuration for OpenRD
+ (Closes: #811351)
+ * atl2: Disable unimplemented scatter/gather feature (CVE-2016-2117)
+ * [x86] sound/soc/intel: Enable SND_SOC_INTEL_BYTCR_RT5640_MACH (replacing
+ SND_SOC_INTEL_BYT_RT5640_MACH; closes: #822267),
+ SND_SOC_INTEL_BYTCR_RT5651_MACH, SND_SOC_INTEL_CHT_BSW_RT5672_MACH,
+ SND_SOC_INTEL_CHT_BSW_RT5645_MACH, SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH,
+ SND_SOC_INTEL_SKL_RT286_MACH, SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH,
+ SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH as modules
+ * module: Invalidate signatures on force-loaded modules
+ * linux-source: Fix up module signing configuration in included kernel
+ config files
+ * README.Debian: Change more URLs to use https: scheme
+ * [sparc] Implement and wire up hotplug and modalias_show for vio, thanks to
+ Adrian Glaubitz (Closes: #815977)
+ * linux-headers: Avoid mixed implicit and normal rules in Makefile, thanks to
+ Thierry Herbelot (Closes: #822666)
+ * memcg: remove lru_add_drain_all() invocation from mem_cgroup_move_charge()
+ (Closes: #822084)
+ * linux-perf: Add build-time check for unversioned files that are likely to
+ result in file conflicts
+ * linux-perf: Move tips.txt to /usr/share/doc/linux-perf-<version>
+ (Closes: #821741)
+ * tools/build: Fix bpf(2) feature test (fixes FTBFS on alpha, sh4;
+ closes: #822364)
+ * [armhf] Disable FB_OMAP2; it is redundant and conflicting with DRM_OMAP
+ * [armhf] mm: Enable CMA, DMA_CMA
+ * Input: gtco - fix crash on detecting device without endpoints
+ (CVE-2016-2187)
+
+ [ Aurelien Jarno ]
+ * [mips*] Emulate unaligned LDXC1 and SDXC1 instructions.
+
+ [ Uwe Kleine-König ]
+ * [armhf] enable NET_DSA and available switch drivers as modules.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 28 Apr 2016 18:03:18 +0200
+
+linux (4.5.1-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.5.1
+ - [x86] entry/compat: Keep TS_COMPAT set during signal delivery
+ - [x86] perf/intel: Add definition for PT PMI bit
+ - [x86] KVM: fix missed hardware breakpoints
+ - [x86] KVM: i8254: change PIT discard tick policy
+ - [x86] KVM: fix spin_lock_init order on x86
+ - [x86] KVM: VMX: avoid guest hang on invalid invept instruction
+ - [x86] KVM: VMX: avoid guest hang on invalid invvpid instruction
+ - [x86] KVM: VMX: fix nested vpid for old KVM guests
+ - perf/core: Fix perf_sched_count derailment
+ - perf tools: Fix checking asprintf return value
+ - Thermal: Ignore invalid trip points
+ - sched/cputime: Fix steal_account_process_tick() to always return jiffies
+ - sched/fair: Avoid using decay_load_missed() with a negative value
+ - [x86] EDAC/sb_edac: Fix computation of channel address
+ - [x86] EDAC, amd64_edac: Shift wrapping issue in f1x_get_norm_dct_addr()
+ - [s390x] fix floating pointer register corruption (again)
+ - [s390x] cpumf: add missing lpp magic initialization
+ - [s390x] pci: enforce fmb page boundary rule
+ - [armhf] pinctrl-bcm2835: Fix cut-and-paste error in "pull" parsing
+ - [x86] irq: Cure live lock in fixup_irqs() (Closes: #817816)
+ - [x86] apic: Fix suspicious RCU usage in
+ smp_trace_call_function_interrupt()
+ - [amd64] iopl: Properly context-switch IOPL on Xen PV (CVE-2016-3157)
+ - [x86] mm: TLB_REMOTE_SEND_IPI should count pages
+ - sg: fix dxferp in from_to case
+ - aacraid: Fix RRQ overload
+ - aacraid: Fix memory leak in aac_fib_map_free
+ - aacraid: Set correct msix count for EEH recovery
+ - sd: Fix discard granularity when LBPRZ=1
+ - ncr5380: Correctly clear command pointers and lists after bus reset
+ - ncr5380: Dont release lock for PIO transfer
+ - ncr5380: Dont re-enter NCR5380_select()
+ - ncr5380: Forget aborted commands
+ - ncr5380: Fix NCR5380_select() EH checks and result handling
+ - ncr5380: Call scsi_eh_prep_cmnd() and scsi_eh_restore_cmnd() as and when
+ appropriate
+ - scsi: storvsc: fix SRB_STATUS_ABORTED handling
+ - be2iscsi: set the boot_kset pointer to NULL in case of failure
+ - aic7xxx: Fix queue depth handling
+ - libnvdimm: Fix security issue with DSM IOCTL.
+ - libnvdimm, pmem: fix kmap_atomic() leak in error path
+ - dm snapshot: disallow the COW and origin devices from being identical
+ - dm: fix excessive dm-mq context switching
+ - dm thin metadata: don't issue prefetches if a transaction abort
+ has failed
+ - dm cache: make sure every metadata function checks fail_io
+ - dm: fix rq_end_stats() NULL pointer in dm_requeue_original_request()
+ - usb: retry reset if a device times out
+ - usb: hub: fix a typo in hub_port_init() leading to wrong logic
+ - USB: cdc-acm: more sanity checking (CVE-2016-3138)
+ - USB: iowarrior: fix oops with malicious USB descriptors (incomplete fix
+ for CVE-2016-2188)
+ - USB: usb_driver_claim_interface: add sanity checking
+ - USB: mct_u232: add sanity checking in probe (CVE-2016-3136)
+ - USB: digi_acceleport: do sanity checking for the number of ports
+ (CVE-2016-3140)
+ - USB: cypress_m8: add endpoint sanity check (CVE-2016-3137)
+ - Input: powermate - fix oops with malicious USB descriptors
+ (CVE-2016-2186)
+ - ALSA: usb-audio: Fix NULL dereference in create_fixed_stream_quirk()
+ (CVE-2016-2184)
+ - ALSA: usb-audio: Add sanity checks for endpoint accesses (CVE-2016-2184)
+ - ALSA: usb-audio: Minor code cleanup in create_fixed_stream_quirk()
+ - ALSA: usb-audio: Fix double-free in error paths after
+ snd_usb_add_audio_stream() call
+ - crypto: ccp - Add hash state import and export support
+ - crypto: ccp - Limit the amount of information exported
+ - crypto: ccp - Don't assume export/import areas are aligned
+ - crypto: ccp - memset request context to zero during import
+ - crypto: keywrap - memzero the correct memory
+ - [armel/marvell,armhf] crypto: marvell/cesa - forward
+ devm_ioremap_resource() error code
+ - [x86] mei: bus: check if the device is enabled before data transfer
+ - tpm: fix the rollback in tpm_chip_register()
+ - tpm_crb: tpm2_shutdown() must be called before tpm_chip_unregister()
+ - tpm_eventlog.c: fix binary_bios_measurements
+ - tpm: fix the cleanup of struct tpm_chip
+ - HID: logitech: fix Dual Action gamepad support
+ - HID: i2c-hid: fix OOB write in i2c_hid_set_or_send_report()
+ - HID: multitouch: force retrieving of Win8 signature blob
+ - HID: fix hid_ignore_special_drivers module parameter
+ - staging: comedi: ni_tiocmd: change mistaken use of start_src for start_arg
+ - staging: comedi: ni_mio_common: fix the ni_write[blw]() functions
+ - tty: Fix GPF in flush_to_ldisc(), part 2
+ - net: irda: Fix use-after-free in irtty_open()
+ - 8250: use callbacks to access UART_DLL/UART_DLM
+ - saa7134: Fix bytesperline not being set correctly for planar formats
+ - adv7511: TX_EDID_PRESENT is still 1 after a disconnect
+ - bttv: Width must be a multiple of 16 when capturing planar formats
+ - coda: fix first encoded frame payload
+ - media: v4l2-compat-ioctl32: fix missing length copy in put_v4l2_buffer32
+ - mtip32xx: Avoid issuing standby immediate cmd during FTL rebuild
+ - mtip32xx: Fix broken service thread handling
+ - mtip32xx: Remove unwanted code from taskfile error handler
+ - mtip32xx: Fix for rmmod crash when drive is in FTL rebuild
+ - mtip32xx: Handle safe removal during IO
+ - mtip32xx: Handle FTL rebuild failure state during device initialization
+ - mtip32xx: Implement timeout handler
+ - mtip32xx: Cleanup queued requests after surprise removal
+ - ALSA: hda - Fix unexpected resume through regmap code path
+ - ALSA: hda - Apply reboot D3 fix for CX20724 codec, too
+ - [x86] ALSA: intel8x0: Add clock quirk entry for AD1981B on IBM
+ ThinkPad X41.
+ - ALSA: hda - Don't handle ELD notify from invalid port
+ - [x86] ALSA: hda - fix the mic mute button and led problem for a Lenovo AIO
+ - ALSA: hda - Fix unconditional GPIO toggle via automute
+ - [x86] ALSA: hda - Limit i915 HDMI binding only for HSW and later
+ - [x86] ALSA: hda - Fix spurious kernel WARNING on Baytrail HDMI
+ - [x86] ALSA: hda - Really restrict i915 notifier to HSW+
+ - ALSA: hda - Fix forgotten HDMI monitor_present update
+ - [x86] ALSA: hda - Workaround for unbalanced i915 power refcount by
+ concurrent probe
+ - ALSA: hda - Fix missing ELD update at unplugging
+ - jbd2: fix FS corruption possibility in jbd2_journal_destroy() on
+ umount path
+ - [arm64] Update PTE_RDONLY in set_pte_at() for PROT_NONE permission
+ - brd: Fix discard request processing
+ - IB/srpt: Simplify srpt_handle_tsk_mgmt()
+ - bcache: cleaned up error handling around register_cache()
+ - bcache: fix race of writeback thread starting before complete
+ initialization
+ - bcache: fix cache_set_flush() NULL pointer dereference on OOM
+ - mm: memcontrol: reclaim when shrinking memory.high below usage
+ - mm: memcontrol: reclaim and OOM kill when shrinking memory.max below usage
+ - watchdog: don't run proc_watchdog_update if new value is same as old
+ - Bluetooth: Fix potential buffer overflow with Add Advertising
+ - cgroup: ignore css_sets associated with dead cgroups during migration
+ - [amrhf] net: mvneta: enable change MAC address when interface is up
+ - brcmfmac: Increase nr of supported flowrings.
+ - of: alloc anywhere from memblock if range not specified
+ - vfs: show_vfsstat: do not ignore errors from show_devname method
+ - splice: handle zero nr_pages in splice_to_pipe()
+ - quota: Fix possible GPF due to uninitialised pointers
+ - xfs: fix two memory leaks in xfs_attr_list.c error paths
+ - raid1: include bio_end_io_list in nr_queued to prevent freeze_array hang
+ - md/raid5: Compare apples to apples (or sectors to sectors)
+ - RAID5: check_reshape() shouldn't call mddev_suspend
+ - RAID5: revert e9e4c377e2f563 to fix a livelock
+ - raid10: include bio_end_io_list in nr_queued to prevent freeze_array hang
+ - md/raid5: preserve STRIPE_PREREAD_ACTIVE in break_stripe_batch_list
+ - md: multipath: don't hardcopy bio in .make_request path
+ - fuse: do not use iocb after it may have been freed
+ - fuse: Add reference counting for fuse_io_priv
+ - fs/coredump: prevent fsuid=0 dumps into user-controlled directories
+ - [armhf] drm/vc4: Return -EFAULT on copy_from_user() failure
+ - [x86] drm/radeon: disable runtime pm on PX laptops without dGPU
+ power control
+ - drm/radeon: Don't drop DP 2.7 Ghz link setup on some cards.
+ - drm/radeon: rework fbdev handling on chips with no connectors
+ - drm/radeon/mst: fix regression in lane/link handling.
+ - [x86] drm/amdgpu: disable runtime pm on PX laptops without dGPU
+ power control
+ - drm/amdgpu: include the right version of gmc header files for iceland
+ - drm/amd/powerplay: add uvd/vce dpm enabling flag to fix the performance
+ issue for CZ
+ - tracing: Have preempt(irqs)off trace preempt disabled functions
+ - tracing: Fix crash from reading trace_pipe with sendfile
+ - tracing: Fix trace_printk() to print when not using bprintk()
+ - bitops: Do not default to __clear_bit() for __clear_bit_unlock()
+ - [x86] ideapad-laptop: Add ideapad Y700 (15) to the no_hw_rfkill DMI list
+ - mmc: block: fix ABI regression of mmc_blk_ioctl
+ - mmc: mmc_spi: Add Card Detect comments and fix CD GPIO case
+ - mmc: sdhci: move initialisation of command error member
+ - mmc: sdhci: clean up command error handling
+ - mmc: sdhci: fix command response CRC error handling
+ - mmc: sdhci: further fix for DMA unmapping in sdhci_post_req()
+ - mmc: sdhci: avoid unnecessary mapping/unmapping of align buffer
+ - mmc: sdhci: plug DMA mapping leak on error
+ - mmc: sdhci: fix data timeout
+ - [armhf] mmc: tegra: Disable UHS-I modes for tegra114
+ - [armhf] mmc: tegra: properly disable card clock
+ - mmc: sdhci: Fix override of timeout clk wrt max_busy_timeout
+ - [armhf] clk: rockchip: rk3368: fix cpuclk mux bit of big cpu-cluster
+ - [armhf] clk: rockchip: rk3368: fix cpuclk core dividers
+ - [armhf] clk: rockchip: rk3368: fix parents of video encoder/decoder
+ - [armhf] clk: rockchip: rk3368: fix hdmi_cec gate-register
+ - [armhf] clk: rockchip: add hclk_cpubus to the list of rk3188
+ critical clocks
+ - [armhf] clk: bcm2835: Fix setting of PLL divider clock rates
+ - target: Fix target_release_cmd_kref shutdown comp leak
+ - iser-target: Fix identification of login rx descriptor type
+ - iser-target: Separate flows for np listeners and connections cma events
+ - iser-target: Rework connection termination
+ - nfsd4: fix bad bounds checking
+ - nfsd: fix deadlock secinfo+readdir compound
+ - ACPI / PM: Runtime resume devices when waking from hibernate
+ - writeback, cgroup: fix premature wb_put() in
+ locked_inode_to_wb_and_lock_list()
+ - writeback, cgroup: fix use of the wrong bdi_writeback which mismatches
+ the inode
+ - Input: synaptics - handle spurious release of trackstick buttons, again
+ - Input: ati_remote2 - fix crashes on detecting device with invalid
+ descriptor (CVE-2016-2185)
+ - ocfs2: o2hb: fix double free bug
+ - ocfs2/dlm: fix race between convert and recovery
+ - ocfs2/dlm: fix BUG in dlm_move_lockres_to_recovery_list
+ - mm/page_alloc: prevent merging between isolated and other pageblocks
+ - mtd: onenand: fix deadlock in onenand_block_markbad
+ - [x86] intel_idle: prevent SKL-H boot failure when C8+C9+C10 enabled
+ - PM / sleep: Clear pm_suspend_global_flags upon hibernate
+ - scsi_common: do not clobber fixed sense information
+ - sched/cputime: Fix steal time accounting vs. CPU hotplug
+ - [x86] perf/pebs: Add workaround for broken OVFL status on HSW+
+ - [x86] perf/intel/uncore: Remove SBOX support for BDX-DE
+ - [x86] perf/intel: Fix PEBS warning by only restoring active PMU in pmi
+ - [x86] perf/intel: Use PAGE_SIZE for PEBS buffer size on Core2
+ - [x86] perf/intel: Fix PEBS data source interpretation on Nehalem/Westmere
+
+ [ Ben Hutchings ]
+ * mm: exclude ZONE_DEVICE from GFP_ZONE_TABLE
+ * mm: ZONE_DEVICE depends on SPARSEMEM_VMEMMAP
+ * [amd64] Re-enable ZONE_DMA and sound drivers that depend on it
+ (Closes: #814855, #819385, #820890)
+ * ntfs: Disable NTFS_RW (Closes: #566356); ntfs-3g has much more complete
+ write support
+ * Merge linux-tools source package into linux
+ (Closes: #550379, #573483, #816500)
+ * Add support for securelevel and prepare for Secure Boot (Closes: #820008):
+ - Add Matthew Garrett's securelevel patchset (see
+ Documentation/security/securelevel.txt)
+ - modules: Enable MODULE_SIG and MODULE_SIG_SHA256, but not MODULE_SIG_ALL
+ as signatures will be packaged separately
+ - debian/control: Add build-dependencies on libssl-dev, openssl
+ - debian/copyright: Note that extract-cert and sign-file are under LGPL 2.1
+ - linux-kbuild: Add extract-cert and sign-file programs
+ - scripts: Fix X.509 PEM support in sign-file
+ - certs: Set SYSTEM_TRUSTED_KEYS to my own personal certificate to support
+ initial testing of signed modules
+ * Disable UNUSED_SYMBOLS; it is now itself unused
+ * linux-support: Include udeb configuration from debian/installer for use
+ by the linux-signed package
+ * Set ABI to 1
+ * netfilter: x_tables: Fix parsing of IPT_SO_SET_REPLACE blobs (CVE-2016-3134)
+ - validate e->target_offset early
+ - make sure e->next_offset covers remaining blob size
+ * ipv4: Don't do expensive useless work during inetdev destroy (CVE-2016-3156)
+ * [x86] mm/32: Enable full randomization on i386 and X86_32 (CVE-2016-3672)
+ * fs: Add MODULE_SOFTDEP declarations for hard-coded crypto drivers
+ (Closes: #819725)
+ * aufs: Update support patches to aufs4.5-20160328 (Closes: #819748)
+ * [x86] ACPI / processor: Request native thermal interrupt handling via _OSC
+ (Closes: #817016, #819336)
+ * [armhf] Add support for octa-core big.LITTLE systems including Exynos
+ (Closes: #819379)
+ * [armhf] watchdog: Enable S3C2410_WATCHDOG as module (Closes: #819377)
+ * nbd: Create size change events for userspace (Closes: #812487)
+ * [armhf] usb-modules: Add modules required for BeagleBoard-X15, thanks to
+ Vagrant Cascadian (Closes: #815848)
+
+ [ Aurelien Jarno ]
+ * [mipsel/mips/config.loongson-2f] Disable VIDEO_CX23885, VIDEO_IVTV,
+ VIDEO_CX231XX, VIDEO_PVRUSB2 (fixes FTBFS).
+ * [mips*/octeon] Backport OCTEON SATA controller support from 4.6-rc1.
+ Enable AHCI_OCTEON and SATA_AHCI_PLATFORM.
+ * [mips*/octeon] Backport Octeon III CN7xxx interface detection from
+ 4.7 queue.
+ * [mips*/octeon] Enable SPI_OCTEON.
+ * [mips*/octeon] udeb: Add ahci_octeon and ahci_platform modules to
+ sata-modules.
+ * [mips*/octeon] Bump CONFIG_NR_CPUS to 32 to accomodate recent Octeon
+ III SoCs.
+ * [mips*/octeon] Enable CRYPTO_MD5_OCTEON, CRYPTO_SHA1_OCTEON, CRYPTO_SHA256
+ and CRYPTO_SHA512_OCTEON.
+
+ [ Roger Shimizu ]
+ * [armel/marvell] Change MTD_CFI_AMDSTD from module to built-in
+ because orion5x-based Buffalo Linkstation devices still need it
+ (Closes: #818598)
+ * [armel/marvell] Add DT support for "Synology DS112" and "Zyxel NSA320".
+ Thanks to Heinrich Schuchardt. (Closes: #819393)
+ * [armel/marvell] Add DT support for "Buffalo/Revogear Kurobox Pro"
+ * [armhf/armmp] Enable DW_WATCHDOG as module, used on Firefly-RK3288.
+ Patch by Vagrant Cascadian. (Closes: #820834)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 14 Apr 2016 09:49:24 +0100
+
+linux-tools (4.5-1~exp1) experimental; urgency=medium
+
+ * New upstream release
+
+ [ Ben Hutchings ]
+ * linux-perf: Fix use of uninitialized variables
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 20 Mar 2016 21:20:22 +0000
+
+linux (4.5-1~exp1) experimental; urgency=medium
+
+ * New upstream release: http://kernelnewbies.org/Linux_4.5
+
+ [ Martin Michlmayr ]
+ * [arm64] Enable LEDS_GPIO.
+ * [arm64] Enable more QCOM options. (Closes: #815627)
+ * [arm64] udeb: Add leds-modules package containing leds-gpio driver.
+ * [arm64] udeb: Add regulators and SoC modules to core-modules.
+
+ [ Uwe Kleine-König ]
+ * [armhf] Enable DRM_ETNAVIV.
+
+ [ Ben Hutchings ]
+ * [armel/versatile] Enable GPIOLIB, new dependency of SMC91X (fixes FTBFS)
+ * [x86] input: Enable ASUS_WIRELESS as module (Closes: #818487)
+ * [x86] amdgpu: Enable DRM_AMD_POWERPLAY (Closes: #818174)
+ * [x86] Enable RANDOMIZE_BASE (kASLR). This is incompatible with hibernation,
+ so you must use the kernel parameter "kaslr" to enable kASLR and disable
+ hibernation at boot time. (Closes: #816067)
+ * [x86] vmxnet3: fix lock imbalance in vmxnet3_tq_xmit() (regression in 4.5)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 20 Mar 2016 12:06:57 +0000
+
+linux (4.5~rc7-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 07 Mar 2016 22:20:48 +0000
+
+linux-tools (4.5~rc7-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * Makefile.inc: Add support for wildcards in $(SCRIPTS) and $(DATA)
+ * linux-kbuild: Include scripts/Makefile.* (Closes: #815593)
+ * Makefile.inc, rules.real: Fix conflation of $(DESTDIR) and $(prefix)
+ * hyperv-daemons: Fix rule redefinition that 'make' warns about
+ * debian/control: Build-Depend on dh-python, as dh_python2 warns we should
+ * lockdep: Add '+' prefix to make invocation, so it can be parallelised
+ * tools/build: Fix 'unused variable' warning in the bpf() feature check
+ * lockdep: Add more missing macros
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 07 Mar 2016 03:07:00 +0000
+
+linux-tools (4.5~rc5-1~exp3) experimental; urgency=medium
+
+ * Adjust build fix from unstable
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 21 Feb 2016 23:45:04 +0000
+
+linux-tools (4.5~rc5-1~exp2) experimental; urgency=medium
+
+ * Merge build fix from unstable
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 21 Feb 2016 17:40:52 +0000
+
+linux-tools (4.5~rc5-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * lockdep: Add missing macros
+ * Adjust VPATH to work for check-hyperv (and simplify the modpost wrapper)
+ * tools/build: Remove bpf() run-time check at build time
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 21 Feb 2016 16:45:52 +0000
+
+linux (4.5~rc5-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [armel/versatile] Enable GPIOLIB, needed to build smc91x driver with
+ OF enabled (fixes FTBFS)
+ * [powerpc] mm: Fix HAVE_ARCH_SOFT_DIRTY dependencies (fixes FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 21 Feb 2016 13:17:27 +0000
+
+linux (4.5~rc4-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Roger Shimizu ]
+ * Enable TTY_PRINTK as module (Closes: #814540).
+
+ [ Ben Hutchings ]
+ * [rt] Disable until it is updated for 4.5 or later
+ * aufs: Update support patches to aufs4.x-rcN-20160215
+ * Compile with gcc-5 on all architectures
+ * [hppa] Update build-dependencies for renaming of binutils-hppa64
+ * [x86] udeb: Move scsi_transport_fc to scsi-core-modules, since hv_storvsc
+ now depends on it
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 18 Feb 2016 01:57:20 +0000
+
+linux-tools (4.4.6-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ - tools lib traceevent: Fix output of %llu for 64 bit values read on
+ 32 bit machines
+ - perf tools: tracepoint_error() can receive e=NULL, robustify it
+ - perf kvm record/report: 'unprocessable sample' error while
+ recording/reporting guest data
+ - tools: hv: vss: fix the write()'s argument: error -> vss_msg
+ - uapi: update install list after nvme.h rename
+ - perf stat: Do not clean event's private stats
+
+ [ Mattia Dongili ]
+ * Build linux-cpupower.
+
+ [ Ben Hutchings ]
+ * debian/control: Update policy version to 3.9.7; no changes required
+ * linux-perf: Override lintian errors for perf-read-vdso{,x}32 in
+ 64-bit packages
+ * debian/copyright: Move GPL-2 boilerplate to its own paragraph
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 20 Mar 2016 16:23:48 +0000
+
+linux (4.4.6-1) unstable; urgency=medium
+
+ [ Salvatore Bonaccorso ]
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.4.5
+ - Btrfs: fix deadlock running delayed iputs at transaction commit time
+ (regression in 4.1)
+ - btrfs: Fix no_space in write and rm loop
+ (regression in 4.4)
+ - btrfs: async-thread: Fix a use-after-free error for trace
+ - [x86] drm/amdgpu: mask out WC from BO on unsupported arches
+ - block: Initialize max_dev_sectors to 0
+ - [hppa] Fix ptrace syscall number and return value modification
+ - [x86] kvm: Update tsc multiplier on change.
+ (regression in 4.4)
+ - fbcon: set a default value to blink interval
+ - cifs: fix out-of-bounds access in lease parsing
+ - CIFS: Fix SMB2+ interim response processing for read requests
+ - [x86] vfio: fix ioctl error handling
+ - [x86] KVM: fix root cause for missed hardware breakpoints
+ - [arm*] KVM: Fix ioctl error handling
+ - [amd64] iommu: Apply workaround for ATS write permission check
+ - [amd64] iommu: Fix boot warning when device 00:00.0 is not iommu covered
+ - [x86] iommu/vt-d: Use BUS_NOTIFY_REMOVED_DEVICE in hotplug path
+ - target: Fix WRITE_SAME/DISCARD conversion to linux 512b sectors
+ - [x86,powerpc*] drm/ast: Fix incorrect register check for DRAM width
+ - drm/radeon/pm: update current crtc info after setting the powerstate
+ - [x86] drm/amdgpu/pm: update current crtc info after setting the powerstate
+ - [x86] drm/amdgpu: apply gfx_v8 fixes to gfx_v7 as well
+ - [x86] drm/amdgpu/gfx8: specify which engine to wait before vm flush
+ - [x86] drm/amdgpu: return from atombios_dp_get_dpcd only when error
+ - libata: fix HDIO_GET_32BIT ioctl
+ - writeback: flush inode cgroup wb switches instead of pinning super_block
+ - Adding Intel Lewisburg device IDs for SATA
+ - [arm64] vmemmap: use virtual projection of linear region
+ (regression in 4.1)
+ - ata: ahci: don't mark HotPlugCapable Ports as external/removable
+ - tracing: Do not have 'comm' filter override event 'comm' field
+ (regression in 4.3)
+ - Btrfs: fix loading of orphan roots leading to BUG_ON
+ - Revert "jffs2: Fix lock acquisition order bug in jffs2_write_begin"
+ - jffs2: Fix page lock / f->sem deadlock
+ - jffs2: Fix directory hardlinks from deleted directories
+ - ALSA: usb-audio: Add a quirk for Plantronics DA45
+ - [amd64] ALSA: ctl: Fix ioctls for X32 ABI
+ - [x86] ALSA: hda - Fix mic issues on Acer Aspire E1-472
+ - [amd64] ALSA: rawmidi: Fix ioctls X32 ABI
+ - [amd64] ALSA: timer: Fix ioctls for X32 ABI
+ - [amd64] ALSA: pcm: Fix ioctls for X32 ABI
+ - ALSA: seq: oss: Don't drain at closing a client
+ - ALSA: hdspm: Fix wrong boolean ctl value accesses
+ - ALSA: hdsp: Fix wrong boolean ctl value accesses
+ - ALSA: hdspm: Fix zero-division
+ - ALSA: timer: Fix broken compat timer user status ioctl
+ - [armhf] usb: chipidea: otg: change workqueue ci_otg as freezable
+ - USB: cp210x: Add ID for Parrot NMEA GPS Flight Recorder
+ - USB: qcserial: add Dell Wireless 5809e Gobi 4G HSPA+ (rev3)
+ - USB: qcserial: add Sierra Wireless EM74xx device ID
+ - USB: serial: option: add support for Telit LE922 PID 0x1045
+ - USB: serial: option: add support for Quectel UC20
+ - [mips*] scache: Fix scache init with invalid line size.
+ - [mips*] traps: Fix SIGFPE information leak from `do_ov' and
+ `do_trap_or_bp'
+ - ubi: Fix out of bounds write in volume update code
+ - thermal: cpu_cooling: fix out of bounds access in time_in_idle
+ - [x86] drm/amdgpu: Use drm_calloc_large for VM page_tables array
+ - block: check virt boundary in bio_will_gap()
+ - [x86] drm/i915: more virtual south bridge detection
+ - [x86] drm/i915: refine qemu south bridge detection
+ - modules: fix longstanding /proc/kallsyms vs module insertion race.
+ - [x86] drm/amdgpu: fix topaz/tonga gmc assignment in 4.4 stable
+
+ [ Ben Hutchings ]
+ * [x86] drm/i915: Fix oops caused by fbdev initialization failure
+ * module: Fix ABI change in 4.4.5
+ * Revert "libata: Align ata_device's id on a cacheline" to avoid ABI change
+ * [amd64] Fix more regressions due to "efi: Build our own page table
+ structure":
+ - efi: Fix boot crash by always mapping boot service regions into new EFI
+ page tables (Closes: #815125)
+ - mm/pat: Fix boot crash when 1GB pages are not supported by cpu
+ * [armhf] gpio: Enable GPIO_PCF857X as module, needed by TI DRA7xx EVMs
+ (Closes: #818386)
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.4.6
+ - [arm64] account for sparsemem section alignment when choosing vmemmap
+ offset
+ - [armel,armhf] mvebu: fix overlap of Crypto SRAM with PCIe memory window
+ - [armhf] dts: dra7: do not gate cpsw clock due to errata i877
+ - [armhf] OMAP2+: hwmod: Introduce ti,no-idle dt property
+ - PCI: Allow a NULL "parent" pointer in pci_bus_assign_domain_nr()
+ - kvm: cap halt polling at exactly halt_poll_ns
+ - [x86] KVM: VMX: disable PEBS before a guest entry
+ - [s390x] KVM: correct fprs on SIGP (STOP AND) STORE STATUS
+ - [powerpc*] KVM: Book3S HV: Sanitize special-purpose register values on
+ guest exit
+ - [x86] KVM: MMU: fix ept=0/pte.u=1/pte.w=0/CR0.WP=0/CR4.SMEP=1/EFER.NX=0
+ combo
+ - [x86] KVM: MMU: fix reserved bit check for
+ ept=0/CR0.WP=0/CR4.SMEP=1/EFER.NX=0
+ - [s390x] mm: four page table levels vs. fork (CVE-2016-2143)
+ - [s390x] dasd: fix diag 0x250 inline assembly
+ - tracing: Fix check for cpu online when event is disabled
+ - jffs2: reduce the breakage on recovery from halfway failed rename()
+ - ncpfs: fix a braino in OOM handling in ncp_fill_cache()
+ - ASoC: dapm: Fix ctl value accesses in a wrong type
+ - ovl: ignore lower entries when checking purity of non-directory entries
+ - ovl: fix working on distributed fs as lower layer
+ - wext: fix message delay/ordering
+ - cfg80211/wext: fix message ordering
+ - can: gs_usb: fixed disconnect bug by removing erroneous use of kfree()
+ - iwlwifi: mvm: inc pending frames counter also when txing non-sta
+ - mac80211: minstrel: Change expected throughput unit back to Kbps
+ - mac80211: fix use of uninitialised values in RX aggregation
+ - mac80211: minstrel_ht: set default tx aggregation timeout to 0
+ - mac80211: minstrel_ht: fix a logic error in RTS/CTS handling
+ - mac80211: check PN correctly for GCMP-encrypted fragmented MPDUs
+ - mac80211: Fix Public Action frame RX in AP mode
+ - [armhf] gpu: ipu-v3: Do not bail out on missing optional port nodes
+ - [i386/686-pae] mm: Fix slow_virt_to_phys() for X86_PAE again
+ - Revert "drm/radeon: call hpd_irq_event on resume"
+ - [x86] drm/amdgpu: Fix error handling in amdgpu_flip_work_func.
+ - drm/radeon: Fix error handling in radeon_flip_work_func.
+ - Revert "drm/radeon/pm: adjust display configuration after powerstate"
+ - [powerpc*] powernv: Add a kmsg_dumper that flushes console output on panic
+ - [powerpc*] powernv: Fix OPAL_CONSOLE_FLUSH prototype and usages
+ - userfaultfd: don't block on the last VM updates at exit time
+ - ovl: copy new uid/gid into overlayfs runtime inode
+ - ovl: fix getcwd() failure after unsuccessful rmdir
+ - [mips*] smp.c: Fix uninitialised temp_foreign_map
+ - block: don't optimize for non-cloned bio in bio_get_last_bvec()
+ - target: Drop incorrect ABORT_TASK put for completed commands
+ * netfilter: x_tables: check for size overflow (CVE-2016-3135)
+
+ [ Ian Campbell ]
+ * [arm64] Enable ARCH_HISI (Hisilicon) and the set of currently available
+ drivers (Power, Thermal, MMC) (Closes: #812540)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 17 Mar 2016 01:25:23 +0000
+
+linux (4.4.4-2) unstable; urgency=medium
+
+ * Ignore ABI changes in sdhci* modules (fixes FTBFS on armhf)
+ * udeb: Add dependency from mmc-modules to crc-modules (fixes FTBFS on arm64)
+ * [hppa] Ignore ABI changes in built-in drm_kms_helper code (fixes FTBFS)
+ * [powerpc*] Revert "powerpc: Simplify module TOC handling"; it is not needed
+ to fix #808043 and causes a regression on ppc64el
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 09 Mar 2016 02:15:48 +0000
+
+linux (4.4.4-1) unstable; urgency=medium
+
+ [ Salvatore Bonaccorso ]
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.4.3
+ - [x86] mm: Fix types used in pgprot cacheability flags translations
+ - [x86] mm/pat: Avoid truncation when converting cpa->numpages to address
+ - [x86] uaccess/64: Make the __copy_user_nocache() assembly code
+ more readable
+ - [x86] uaccess/64: Handle the caching of 4-byte nocache copies
+ properly in __copy_user_nocache()
+ - [x86] mm: Fix vmalloc_fault() to handle large pages properly
+ - ALSA: hda - Cancel probe work instead of flush at remove
+ - ALSA: pcm: Fix rwsem deadlock for non-atomic PCM stream
+ - ALSA: seq: Fix leak of pool buffer at concurrent writes
+ - ALSA: seq: Fix double port list deletion
+ - [armhf] phy: twl4030-usb: Relase usb phy on unload
+ - [armhf] phy: twl4030-usb: Fix unbalanced pm_runtime_enable on
+ module reload
+ - staging/speakup: Use tty_ldisc_ref() for paste kworker
+ - pty: fix possible use after free of tty->driver_data
+ - pty: make sure super_block is still valid in final /dev/tty close
+ - tty: Add support for PCIe WCH382 2S multi-IO card
+ - [x86] serial: 8250_pci: Add Intel Broadwell ports
+ - [armhf] serial: omap: Prevent DoS using unprivileged ioctl(TIOCSRS485)
+ - ext4: fix scheduling in atomic on group checksum failure
+ - ext4: fix potential integer overflow
+ - ext4: don't read blocks from disk after extents being swapped
+ - btrfs: handle invalid num_stripes in sys_array
+ - Btrfs: fix fitrim discarding device area reserved for boot loader's use
+ - Revert "btrfs: clear PF_NOFREEZE in cleaner_kthread()"
+ - btrfs: properly set the termination value of ctx->pos in readdir
+ - Btrfs: fix invalid page accesses in extent_same (dedup) ioctl
+ - Btrfs: fix page reading in extent_same ioctl leading to csum errors
+ - Btrfs: fix hang on extent buffer lock caused by the inode_paths ioctl
+ - Btrfs: fix direct IO requests not reporting IO error to user space
+ - ptrace: use fsuid, fsgid, effective creds for fs access checks
+ - tracing: Fix freak link error caused by branch tracer
+ - tracepoints: Do not trace when cpu is offline
+ - klist: fix starting point removed bug in klist iterators
+ - scsi: add Synology to 1024 sector blacklist
+ - iscsi-target: Fix potential dead-lock during node acl delete
+ - SCSI: fix crashes in sd and sr runtime PM
+ - drivers/scsi/sg.c: mark VMA as VM_IO to prevent migration
+ - scsi_dh_rdac: always retry MODE SELECT on command lock violation
+ - SCSI: Add Marvell Console to VPD blacklist
+ - scsi: fix soft lockup in scsi_remove_target() on module removal
+ - iio: adis_buffer: Fix out-of-bounds memory access
+ - iio:adc:ti_am335x_adc Fix buffered mode by identifying as software buffer.
+ - iio-light: Use a signed return type for ltr501_match_samp_freq()
+ - iio: add HAS_IOMEM dependency to VF610_ADC
+ - iio: add IIO_TRIGGER dependency to STK8BA50
+ - iio: dac: mcp4725: set iio name property in sysfs
+ - iio: light: acpi-als: Report data as processed
+ - iio: pressure: mpl115: fix temperature offset sign
+ - iio: inkern: fix a NULL dereference on error
+ - cifs: Ratelimit kernel log messages
+ - cifs: fix race between call_async() and reconnect()
+ - cifs_dbg() outputs an uninitialized buffer in cifs_readdir()
+ - cifs: fix erroneous return value
+ - NFS: Fix attribute cache revalidation
+ - pNFS/flexfiles: Fix an Oopsable typo in ff_mirror_match_fh()
+ - nfs: Fix race in __update_open_stateid()
+ - pNFS/flexfiles: Fix an XDR encoding bug in layoutreturn
+ - udf: limit the maximum number of indirect extents in a row
+ - udf: Prevent buffer overrun with multi-byte characters
+ - udf: Check output buffer length when converting name to CS0
+ - SUNRPC: Fixup socket wait for memory
+ - [powerpc] eeh: Fix PE location code
+ - [powerpc] eeh: Fix stale cached primary bus
+ - [powerpc] powernv: Fix stale PE primary bus
+ - [powerpc] ioda: Set "read" permission when "write" is set
+ - [armhf] mvebu: remove duplicated regulator definition in Armada 388 GP
+ - [arm64] mm: avoid calling apply_to_page_range on empty range
+ - [armel,armhf] 8519/1: ICST: try other dividends than 1
+ - [armel,armhf] 8517/1: ICST: avoid arithmetic overflow in icst_hz()
+ - [armhf] dts: Fix wl12xx missing clocks that cause hangs
+ - [armhf] dts: Fix omap5 PMIC control lines for RTC writes
+ - [armhf] dts: omap5-board-common: enable rtc and charging of backup battery
+ - [armhf] OMAP2+: Fix wait_dll_lock_timed for rodata
+ - [armhf] OMAP2+: Fix l2_inv_api_params for rodata
+ - [armhf] OMAP2+: Fix l2dis_3630 for rodata
+ - [armhf] OMAP2+: Fix save_secure_ram_context for rodata
+ - [armhf] OMAP2+: Fix ppa_zero_params and ppa_por_params for rodata
+ - [arm64] dma-mapping: fix handling of devices registered before
+ arch_initcall
+ - [arm,arm64] KVM: Fix reference to uninitialised VGIC
+ - [powerpc*] KVM: PPC: Fix emulation of H_SET_DABR/X on POWER8
+ - [powerpc*] KVM: PPC: Fix ONE_REG AltiVec support
+ - mm: soft-offline: check return value in second __get_any_page() call
+ - libnvdimm: fix namespace object confusion in is_uuid_busy()
+ - mm: fix mlock accouting
+ - mm: replace vma_lock_anon_vma with anon_vma_lock_read/write
+ - mm: fix regression in remap_file_pages() emulation
+ - Input: elantech - mark protocols v2 and v3 as semi-mt
+ - [x86] Input: i8042 - add Fujitsu Lifebook U745 to the nomux list
+ - string_helpers: fix precision loss for some inputs
+ - Input: vmmouse - fix absolute device registration
+ - [x86] iommu/vt-d: Don't skip PCI devices when disabling IOTLB
+ - [x86] iommu/amd: Correct the wrong setting of alias DTE in do_attach
+ - [x86] iommu/vt-d: Fix mm refcounting to hold mm_count not mm_users
+ - [x86] iommu/vt-d: Fix 64-bit accesses to 32-bit DMAR_GSTS_REG
+ - [x86] iommu/vt-d: Clear PPR bit to ensure we get more page
+ request interrupts
+ - Revert "xhci: don't finish a TD if we get a short-transfer event mid TD"
+ - xhci: Fix list corruption in urb dequeue at host removal
+ - fs/hugetlbfs/inode.c: fix bugs in hugetlb_vmtruncate_list()
+ - [s390x] numa: fix /proc/<pid>/numa_maps for hugetlbfs on s390
+ - memcg: only free spare array when readers are done
+ - radix-tree: fix race in gang lookup
+ - drivers/hwspinlock: fix race between radix tree insertion and lookup
+ - radix-tree: fix oops after radix_tree_iter_retry
+ - dump_stack: avoid potential deadlocks
+ - mm,thp: khugepaged: call pte flush at the time of collapse
+ - [x86] intel_scu_ipcutil: underflow in scu_reg_access()
+ - ipc/shm: handle removed segments gracefully in shm_mmap()
+ - devm_memremap_release(): fix memremap'd addr handling
+ - futex: Drop refcount if requeue_pi() acquired the rtmutex
+ - ovl: allow zero size xattr
+ - ovl: use a minimal buffer in ovl_copy_xattr
+ - ovl: check dentry positiveness in ovl_cleanup_whiteouts()
+ - ovl: root: copy attr
+ - ovl: setattr: check permissions before copy-up
+ - libxfs: pack the agfl header structure so XFS_AGFL_SIZE is correct
+ - xfs: inode recovery readahead can race with inode buffer creation
+ - Revert "xfs: clear PF_NOFREEZE for xfsaild kthread"
+ - xfs: log mount failures don't wait for buffers to be released
+ - prctl: take mmap sem for writing to protect against others
+ - timerfd: Handle relative timers with CONFIG_TIME_LOW_RES proper
+ - posix-timers: Handle relative timers with CONFIG_TIME_LOW_RES proper
+ - itimers: Handle relative timers with CONFIG_TIME_LOW_RES proper
+ - modules: fix modparam async_probe request
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.4.4
+ - af_iucv: Validate socket address length in iucv_sock_bind()
+ - gro: Make GRO aware of lightweight tunnels.
+ - tunnels: Allow IPv6 UDP checksums to be correctly controlled.
+ - lwt: fix rx checksum setting for lwt devices tunneling over ipv6
+ - tcp: fix NULL deref in tcp_v4_send_ack()
+ - af_unix: fix struct pid memory leak
+ - pptp: fix illegal memory access caused by multiple bind()s
+ - sctp: allow setting SCTP_SACK_IMMEDIATELY by the application
+ - tipc: fix connection abort during subscription cancel
+ - inet: frag: Always orphan skbs inside ip_defrag()
+ - tcp: beware of alignments in tcp_get_info()
+ - ipv6: enforce flowi6_oif usage in ip6_dst_lookup_tail()
+ - ipv6/udp: use sticky pktinfo egress ifindex on connect()
+ - ipv6: addrconf: Fix recursive spin lock call
+ - ipv6: fix a lockdep splat
+ - unix: correctly track in-flight fds in sending process user_struct
+ (regression in 4.3.3-6; CVE-2016-2550)
+ - tcp: do not drop syn_recv on all icmp reports
+ - net:Add sysctl_max_skb_frags
+ - tg3: Fix for tg3 transmit queue 0 timed out when too many gso_segs
+ - enic: increment devcmd2 result ring in case of timeout
+ - sctp: translate network order to host order when users get a hmacid
+ - net: Copy inner L3 and L4 headers as unaligned on GRE TEB
+ - flow_dissector: Fix unaligned access in __skb_flow_dissector when used by
+ eth_get_headlen
+ - bpf: fix branch offset adjustment on backjumps after patching
+ ctx expansion
+ - bonding: Fix ARP monitor validation
+ - ipv4: fix memory leaks in ip_cmsg_send() callers
+ - af_unix: Don't set err in unix_stream_read_generic unless there was
+ an error
+ - af_unix: Guard against other == sk in unix_dgram_sendmsg
+ - tipc: fix premature addition of node to lookup table
+ - tcp: md5: release request socket instead of listener
+ - qmi_wwan: add "4G LTE usb-modem U901"
+ - net/mlx4_en: Count HW buffer overrun only once
+ - net/mlx4_en: Choose time-stamping shift value according to HW frequency
+ - net/mlx4_en: Avoid changing dev->features directly in run-time
+ - l2tp: Fix error creating L2TP tunnels
+ - pppoe: fix reference counting in PPPoE proxy
+ - net_sched fix: reclassification needs to consider ether protocol changes
+ - route: check and remove route cache when we get route
+ - tcp/dccp: fix another race at listener dismantle
+ - IFF_NO_QUEUE: Fix for drivers not calling ether_setup()
+ - rtnl: RTM_GETNETCONF: fix wrong return value
+ - tipc: unlock in error path
+ - unix_diag: fix incorrect sign extension in unix_lookup_by_ino
+ - sctp: Fix port hash table size computation
+ - ext4: fix bh->b_state corruption
+ - [s390x] KVM: fix guest fprs memory leak
+ - devm_memremap: Fix error value when memremap failed
+ - efi: Make efivarfs entries immutable by default
+ - efi: Add pstore variables to the deletion whitelist
+ - bcache: fix a livelock when we cause a huge number of cache misses
+ - bcache: Add a cond_resched() call to gc
+ - bcache: clear BCACHE_DEV_UNLINK_DONE flag when attaching a backing device
+ - bcache: fix a leak in bch_cached_dev_run()
+ - bcache: unregister reboot notifier if bcache fails to unregister device
+ - bcache: allows use of register in udev to avoid "device_busy" error.
+ - bcache: prevent crash on changing writeback_running
+ - bcache: Change refill_dirty() to always scan entire disk if necessary
+ - dm thin: fix race condition when destroying thin pool workqueue
+ - can: ems_usb: Fix possible tx overflow
+ - usb: dwc3: Fix assignment of EP transfer resources
+ - USB: cp210x: add IDs for GE B650V3 and B850V3 boards
+ - USB: option: add support for SIM7100E
+ - USB: option: add "4G LTE usb-modem U901"
+ - [armhf] spi: omap2-mcspi: Prevent duplicate gpio_request
+ - iw_cxgb3: Fix incorrectly returning error on success
+ - [x86] drm/i915: shut up gen8+ SDE irq dmesg noise
+ - ocfs2: unlock inode if deleting inode from orphan fails
+ - mm: thp: fix SMP race condition between THP page fault and MADV_DONTNEED
+ - mm: numa: quickly fail allocations for NUMA balancing on full nodes
+ - genirq: Validate action before dereferencing it in
+ handle_irq_event_percpu()
+ - [s390x] KVM: fix memory overwrites when vx is disabled
+ - Btrfs: add missing brelse when superblock checksum fails
+ - Btrfs: igrab inode in writepage
+ - btrfs: statfs: report zero available if metadata are exhausted
+ - Btrfs: send, don't BUG_ON() when an empty symlink is found
+ - Btrfs: fix number of transaction units required to create symlink
+ - Btrfs: fix transaction handle leak on failure to create hard link
+ - Btrfs: Initialize btrfs_root->highest_objectid when loading tree root and
+ subvolume roots
+ - btrfs: initialize the seq counter in struct btrfs_device
+ - [s390x] fix normalization bug in exception table sorting
+ - [s390x] dasd: prevent incorrect length error under z/VM after PAV changes
+ - [s390x] dasd: fix refcount for PAV reassignment
+ - [s390x] dasd: fix performance drop
+ - [s390x] compat: correct restore of high gprs on signal return
+ - [s390x] fpu: signals vs. floating point control register
+ - locks: fix unlock when fcntl_setlk races with a close
+ - rtlwifi: rtl8192cu: Add missing parameter setup
+ - rtlwifi: rtl8192ce: Fix handling of module parameters
+ - rtlwifi: rtl8192de: Fix incorrect module parameter descriptions
+ - rtlwifi: rtl8723ae: Fix initialization of module parameters
+ - rtlwifi: rtl8192se: Fix module parameter initialization
+ - rtlwifi: rtl8188ee: Fix module parameter initialization
+ - rtlwifi: rtl8723be: Fix module parameter initialization
+ - [x86] mei: fix fasync return value on error
+ - [x86] mei: validate request value in client notify request ioctl
+ - namei: ->d_inode of a pinned dentry is stable only for positives
+ - [armhf] rc: sunxi-cir: Initialize the spinlock properly
+ - gspca: ov534/topro: prevent a division by 0
+ - vb2: fix a regression in poll() behavior for output,streams
+ - tda1004x: only update the frontend properties if locked
+ - dm snapshot: fix hung bios when copy error occurs
+ - dm: fix dm_rq_target_io leak on faults with .request_fn DM w/ blk-mq paths
+ - posix-clock: Fix return code on the poll method's error path
+ - mmc: sdhci-pci: Do not default to 33 Ohm driver strength for Intel SPT
+ - mmc: sdhci: Fix DMA descriptor with zero data length
+ - mmc: sdio: Fix invalid vdd in voltage switch power cycle
+ - mmc: mmc: Fix incorrect use of driver strength switching HS200 and HS400
+ - mmc: sdhci: Fix sdhci_runtime_pm_bus_on/off()
+ - mmc: core: Enable tuning according to the actual timing
+ - [armhf, arm64] mmc: mmci: fix an ages old detection error
+ - [x86] mmc: sdhci-acpi: Fix card detect race for Intel BXT/APL
+ - [x86] mmc: sdhci-pci: Fix card detect race for Intel BXT/APL
+ - mmc: sdhci: Allow override of mmc host operations
+ - mmc: sdhci: Allow override of get_cd() called from sdhci_request()
+ - [x86] Drivers: hv: vmbus: Fix a Host signaling bug
+ - Bluetooth: Use continuous scanning when creating LE connections
+ - Bluetooth: Add support of Toshiba Broadcom based devices
+ - Bluetooth: Fix incorrect removing of IRKs
+ - Bluetooth: 6lowpan: Fix kernel NULL pointer dereferences
+ - Bluetooth: 6lowpan: Fix handling of uncompressed IPv6 packets
+ - time: Avoid signed overflow in timekeeping_get_ns()
+ - cputime: Prevent 32bit overflow in time[val|spec]_to_cputime()
+ - [mips*] Revert "MIPS: Fix PAGE_MASK definition"
+ - [mips*el/loongson-3] Loongson-3: Fix SMP_ASK_C0COUNT IPI handler
+ - [mips*] hpet: Choose a safe value for the ETIME check
+ - [mips*] Fix buffer overflow in syscall_get_arguments()
+ - EDAC: Robustify workqueues destruction
+ - EDAC, mc_sysfs: Fix freeing bus' name
+ - [sparc64] fix incorrect sign extension in sys_sparc64_personality
+ - [armhf] clk: exynos: use irqsave version of spin_lock to avoid deadlock
+ with irqs
+ - [armhf] regulator: axp20x: Fix GPIO LDO enable value for AXP22x
+ - virtio_balloon: fix race by fill and leak
+ - virtio_balloon: fix race between migration and ballooning
+ - virtio_pci: fix use after free on release
+ - [x86] drm/vmwgfx: Fix an incorrect lock check
+ - [x86] drm/vmwgfx: Fix a width / pitch mismatch on framebuffer updates
+ - [x86] drm/vmwgfx: respect 'nomodeset'
+ - [x86] drm/amdgpu: Fix off-by-one errors in amdgpu_vm_bo_map
+ - [x86] drm/amdgpu: call hpd_irq_event on resume
+ - [x86] drm/amdgpu: fix lost sync_to if scheduler is enabled.
+ - [x86] drm/amdgpu: fix tonga smu resume
+ - [x86] drm/amdgpu: fix amdgpu_bo_pin_restricted VRAM placing v2
+ - [x86] drm/amdgpu: no need to load MC firmware on fiji
+ - [x86] drm/amdgpu: move gmc7 support out of CIK dependency
+ - [x86] drm/amdgpu: iceland use CI based MC IP
+ - [x86] drm/amdgpu: The VI specific EXE bit should only apply to GMC
+ v8.0 above
+ - [x86] drm/amdgpu: pull topaz gmc bits into gmc_v7
+ - [x86] drm/amdgpu: drop topaz support from gmc8 module
+ - [x86] drm/amdgpu: don't load MEC2 on topaz
+ - [x86] drm/amdgpu: remove exp hardware support from iceland
+ - [x86] drm/amdgpu: fix s4 resume
+ - [x86] drm/amdgpu: remove unnecessary forward declaration
+ - [x86] drm/amdgpu: hold reference to fences in amdgpu_sa_bo_new (v2)
+ - [x86] drm/amdgpu: fix issue with overlapping userptrs
+ - [x86] drm/amdgpu: use post-decrement in error handling
+ - [x86] drm/amdgpu: Don't hang in amdgpu_flip_work_func on disabled crtc.
+ - [x86] drm/amdgpu/pm: adjust display configuration after powerstate
+ - drm/nouveau/kms: take mode_config mutex in connector hotplug path
+ - drm/nouveau/display: Enable vblank irqs after display engine is on again.
+ (regression in 4.4)
+ - drm/nouveau/disp/dp: ensure sink is powered up before attempting
+ link training
+ - drm/nouveau: platform: Fix deferred probe
+ - drm/radeon: Fix off-by-one errors in radeon_vm_bo_set_addr
+ - drm/radeon: Fix "slow" audio over DP on DCE8+
+ - drm/radeon: clean up fujitsu quirks
+ - drm/radeon: properly byte swap vce firmware setup
+ - drm/radeon: cleaned up VCO output settings for DP audio
+ - drm/radeon: Add a common function for DFS handling
+ - drm/radeon: fix DP audio support for APU with DCE4.1 display engine
+ - drm/radeon: mask out WC from BO on unsupported arches
+ - drm/radeon: hold reference to fences in radeon_sa_bo_new
+ - drm: fix missing reference counting decrease
+ - [x86] drm/i915: Restore inhibiting the load of the default context
+ - [x86] drm/i915: intel_hpd_init(): Fix suspend/resume reprobing
+ - [x86] drm/i915: Init power domains early in driver load
+ - [x86] drm/i915: Make sure DC writes are coherent on flush.
+ - [x86] drm/i915/dp: fall back to 18 bpp when sink capability is unknown
+ - [x86] drm/i915: Don't reject primary plane windowing with color keying
+ enabled on SKL+
+ - [x86] drm/i915/skl: Don't skip mst encoders in skl_ddi_pll_select()
+ - [x86] drm/i915/dsi: defend gpio table against out of bounds access
+ - [x86] drm/i915/dsi: don't pass arbitrary data to sideband
+ - [x86] drm/i915: fix error path in intel_setup_gmbus()
+ - drm/qxl: use kmalloc_array to alloc reloc_info in
+ qxl_process_single_command
+ - drm/radeon: use post-decrement in error handling
+ - drm: No-Op redundant calls to drm_vblank_off() (v2)
+ - drm: Prevent vblank counter bumps > 1 with active vblank clients. (v2)
+ (regression in 4.4)
+ - drm: Fix drm_vblank_pre/post_modeset regression from Linux 4.4
+ - drm: Fix treatment of drm_vblank_offdelay in drm_vblank_on() (v2)
+ - drm/radeon: Don't hang in radeon_flip_work_func on disabled crtc. (v2)
+ - drm/radeon/pm: adjust display configuration after powerstate
+ - make sure that freeing shmem fast symlinks is RCU-delayed
+ - [x86] toshiba_acpi: Fix blank screen at boot if transflective backlight is
+ supported
+ - [x86] ideapad-laptop: Add Lenovo ideapad Y700-17ISK to no_hw_rfkill
+ dmi list
+ - [x86] ideapad-laptop: Add Lenovo Yoga 700 to no_hw_rfkill dmi list
+ - [x86] ACPI / video: Add disable_backlight_sysfs_if quirk for the Toshiba
+ Portege R700
+ - [x86] ACPI / video: Add disable_backlight_sysfs_if quirk for the Toshiba
+ Satellite R830
+ - [x86] ACPI: Revert "ACPI / video: Add Dell Inspiron 5737 to the blacklist"
+ - [x86] ACPI / PCI / hotplug: unlock in error path in acpiphp_enable_slot()
+ - nfit: fix multi-interface dimm handling, acpi6.1 compatibility
+ - dmaengine: dw: fix cyclic transfer setup
+ - dmaengine: dw: fix cyclic transfer callbacks
+ - dmaengine: dw: disable BLOCK IRQs for non-cyclic xfer
+ - IB/cm: Fix a recently introduced deadlock
+ - IB/qib: fix mcast detach when qp not attached
+ - IB/qib: Support creating qps with GFP_NOIO flag
+ - IB/mlx5: Expose correct maximum number of CQE capacity
+ - Thermal: initialize thermal zone device correctly
+ - Thermal: handle thermal zone device properly during system sleep
+ - Thermal: do thermal zone update after a cooling device registered
+ - hwmon: (dell-smm) Blacklist Dell Studio XPS 8000
+ - hwmon: (gpio-fan) Remove un-necessary speed_index lookup for thermal hook
+ - hwmon: (ads1015) Handle negative conversion values correctly
+ - cpufreq: pxa2xx: fix pxa_cpufreq_change_voltage prototype
+ - cpufreq: Fix NULL reference crash while accessing policy->governor_data
+ - seccomp: always propagate NO_NEW_PRIVS on tsync
+ - libceph: fix ceph_msg_revoke()
+ - libceph: don't bail early from try_read() when skipping a message
+ - libceph: use the right footer size when skipping a message
+ - libceph: don't spam dmesg with stray reply warnings
+ - sd: Optimal I/O size is in bytes, not sectors
+ - Staging: speakup: Fix getting port information
+ - cdc-acm:exclude Samsung phone 04e8:685d
+ - tick/nohz: Set the correct expiry when switching to nohz/lowres mode
+ - rfkill: fix rfkill_fop_read wait_event usage
+ - mac80211: Requeue work after scan complete for all VIF types.
+ - workqueue: handle NUMA_NO_NODE for unbound pool_workqueue lookup
+ - Revert "workqueue: make sure delayed work run in local cpu"
+ - ALSA: hda - Apply clock gate workaround to Skylake, too
+ - ALSA: hda - Fixing background noise on Dell Inspiron 3162
+ - target: Fix LUN_RESET active I/O handling for ACK_KREF
+ - target: Fix LUN_RESET active TMR descriptor handling
+ - target: Fix TAS handling for multi-session se_node_acls
+ - target: Fix remote-port TMR ABORT + se_cmd fabric stop
+ - target: Fix race with SCF_SEND_DELAYED_TAS handling
+ - qla2xxx: Fix stale pointer access.
+ - libata: fix sff host state machine locking while polling
+ - PCI/AER: Flush workqueue on device remove to avoid use-after-free
+ - cpuset: make mm migration asynchronous
+ - cgroup: make sure a parent css isn't offlined before its children
+ - writeback: keep superblock pinned during cgroup writeback
+ association switches
+ - phy: core: fix wrong err handle for phy_power_on
+ - [x86] i2c: i801: Adding Intel Lewisburg support for iTCO
+ - bio: return EINTR if copying to user space got interrupted
+ - block: fix use-after-free in dio_bio_complete
+ - nfs: fix nfs_size_to_loff_t
+ - NFSv4: Fix a dentry leak on alias use
+ - KVM: async_pf: do not warn on page allocation failures
+ - [armhf,arm64] KVM: vgic: Ensure bitmaps are long enough
+ - [x86] KVM: fix missed hardware breakpoints
+ - [x86] KVM: fix conversion of addresses to linear in 32-bit protected mode
+ - [x86] KVM: MMU: fix ubsan index-out-of-range warning
+ - [powerpc] eeh: Fix partial hotplug criterion
+ - tracing: Fix showing function event in available_events
+ - sunrpc/cache: fix off-by-one in qword_get()
+ - kernel/resource.c: fix muxed resource handling in __request_region()
+ - do_last(): don't let a bogus return value from ->open() et.al. to
+ confuse us
+ - [armhf] OMAP2+: Fix onenand initialization to avoid filesystem corruption
+ - [armhf] xen: correctly handle DMA mapping of compound pages
+ - xen/scsiback: correct frontend counting
+ - xen/pciback: Check PF instead of VF for PCI_COMMAND_MEMORY
+ - xen/pciback: Save the number of MSI-X entries to be copied later.
+ - xen/pcifront: Fix mysterious crashes when NUMA locality information
+ was extracted.
+ - should_follow_link(): validate ->d_seq after having decided to follow
+ - do_last(): ELOOP failure exit should be done after leaving RCU mode
+ - [x86] mpx: Fix off-by-one comparison with nr_registers
+ - [x86] entry/compat: Add missing CLAC to entry_INT80_32
+ - [x86] irq: Call chip->irq_set_affinity in proper context
+ - [x86] irq: Fix a race in x86_vector_free_irqs()
+ - [x86] irq: Validate that irq descriptor is still active
+ - [x86] irq: Do not use apic_chip_data.old_domain as temporary buffer
+ - [x86] irq: Reorganize the return path in assign_irq_vector
+ - [x86] irq: Reorganize the search in assign_irq_vector
+ - [x86] irq: Check vector allocation early
+ - [x86] irq: Copy vectormask instead of an AND operation
+ - [x86] irq: Remove offline cpus from vector cleanup
+ - [x86] irq: Clear move_in_progress before sending cleanup IPI
+ - [x86] irq: Remove the cpumask allocation from send_cleanup_vector()
+ - [x86] irq: Remove outgoing CPU from vector cleanup mask
+ - [x86] irq: Call irq_force_move_complete with irq descriptor
+ - [x86] irq: Plug vector cleanup race
+ - IB/cma: Fix RDMA port validation for iWarp
+ - security: let security modules use PTRACE_MODE_* with bitmasks
+ - iwlwifi: dvm: fix WoWLAN
+ - iwlwifi: pcie: properly configure the debug buffer size for 8000
+ - iwlwifi: update and fix 7265 series PCI IDs
+ - iwlwifi: mvm: don't allow sched scans without matches to be started
+
+ [ Roger Shimizu ]
+ * [armhf] dts: imx6dlq-wandboard-revb1: use unique model id
+ (Closes: #813881).
+ * [armel] dts: Add various device-tree fixes and improvements for
+ Buffalo Linkstation devices.
+
+ [ Ben Hutchings ]
+ * udeb: Include more modules, including those needed on Firefly-RK3288,
+ thanks to Vagrant Cascadian (Closes: #815476)
+ - [armhf] core-modules: Include regulator drivers by default
+ - mmc-modules: Include MMC controller drivers by default
+ - mmc-modules: Depends on usb-modules
+ - usb-modules: Include USB PHY drivers by default
+ * uas: Fix high-order alloc
+ * Fix/ignore module ABI changes in 4.4.4 as appropriate
+ * Revert "drm/radeon: call hpd_irq_event on resume", reported to cause
+ regressions (crash/hang) on some systems
+ * [powerpc*] Fix module linking to work with binutils 2.26 (Closes: #808043):
+ - Simplify module TOC handling
+ - Fix dedotify for binutils >= 2.26
+
+ [ Ian Campbell ]
+ * [armhf] dts: Add DTB for Novena, patches from Vagrant Cascadian
+ (Closes: #815324)
+
+ [ Uwe Kleine-König ]
+ * [armhf] enable AXP20X_POWER (Closes: #815971)
+ * [rt] Update to 4.4.3-rt9
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 07 Mar 2016 19:27:18 +0000
+
+linux-tools (4.4-4) unstable; urgency=medium
+
+ * hyperv-daemons: Only build the progarams on x86 (fixes FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 21 Feb 2016 16:57:55 +0000
+
+linux-tools (4.4-3) unstable; urgency=medium
+
+ * hyperv-daemons: Add init scripts
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 21 Feb 2016 15:07:55 +0000
+
+linux (4.4.2-3) unstable; urgency=medium
+
+ * [x86] efi-bgrt: Fix kernel panic when mapping BGRT data (Closes: #815125)
+ * [x86] efi-bgrt: Replace early_memremap() with memremap()
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 21 Feb 2016 13:11:18 +0000
+
+linux-tools (4.4-2) unstable; urgency=medium
+
+ * linux-perf: Include version number in strace groups installation directory
+ (Closes: #813080)
+ * [alpha,sh4] Attempt to fix build failures
+ * Build fixdep under debian/build and clean it up properly
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 19 Feb 2016 17:11:29 +0000
+
+linux (4.4.2-2) unstable; urgency=medium
+
+ [ Ben Hutchings ]
+ * udeb: Make DAC960 and cciss optional in scsi-modules again
+ (fixes FTBFS on armhf, arm64)
+ * [armel,armhf] net: mv643xx_eth: fix packet corruption with TSO and tiny
+ unaligned packets. (Closes: #814681)
+ * [mipsel/loongson-2f] udeb: Add i2c-modules to avoid duplicate modules
+
+ [ Martin Michlmayr ]
+ * [arm64] Create i2c-modules udeb to avoid duplicate modules.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 19 Feb 2016 14:48:52 +0000
+
+linux-tools (4.4-1) unstable; urgency=medium
+
+ * Upload to unstable
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 18 Feb 2016 01:30:50 +0000
+
+linux (4.4.2-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.4.2
+ - ALSA: usb-audio: avoid freeing umidi object twice (CVE-2016-2384)
+
+ [ Ben Hutchings ]
+ * Set ABI to 1
+ * iw_cxgb3: Fix incorrectly returning error on success (CVE-2015-8812)
+ * fs/hugetlbfs/inode.c: fix bugs in hugetlb_vmtruncate_list() (CVE-2016-0617)
+ (regression in 4.3)
+ * af_unix: Guard against other == sk in unix_dgram_sendmsg
+ (regression in 4.2.6-2)
+ * Revert "workqueue: make sure delayed work run in local cpu"
+ (regression in 4.3)
+ * af_unix: Don't set err in unix_stream_read_generic unless there was an error
+ (regression in 4.4, 4.3.4)
+ * bpf: fix branch offset adjustment on backjumps after patching ctx expansion
+ (CVE-2016-2383)
+ * udeb: Combine scsi-{common,extra}-modules with scsi-modules
+ * udeb: Use wildcards to include entire classes of drivers:
+ - input-modules: Include HID drivers by default
+ - nic{,-pcmcia,-usb,-wireless}-modules: Include Ethernet, USB and wireless
+ drivers by default
+ - {pata,sata}-modules: Include ATA drivers by default
+ - sound-modules: Include sound drivers by default
+ - scsi-modules: Include SCSI drivers by default
+ - usb-modules: Include USB host drivers by default
+ - usb-serial-modules: Include USB serial drivers by default
+ - usb-storage-modules: Include USB storage drivers by default
+ * udeb: Remove some obsolete drivers:
+ - nic-modules: Remove FDDI and HIPPI drivers, and inet_lro module
+ - nic-pcmcia-modules: Remove Arcnet drivers
+ * udeb: Move most USB wireless drivers from nic-usb-modules to
+ nic-wireless-modules
+ * udeb: Really add virtio_input to virtio-modules (not input-modules)
+ * [x86] Fix issues resulting in W+X pages:
+ - [amd64] efi: Build our own page table structure
+ - [i386/686-pae] mm: Fix types used in pgprot cacheability flags
+ translations
+ - [i386/686-pae] PCI: Set pci=nobios by default
+ * IFF_NO_QUEUE: Fix for drivers not calling ether_setup() (regression in 4.3)
+ * udeb: Fix issues with wildcards that caused FTBFS on armhf, thanks to
+ Karsten Merker
+
+ [ Roger Shimizu ]
+ * Enable TTY_PRINTK as module (Closes: #814540).
+
+ [ Uwe Kleine-König ]
+ * [rt] Update to 4.4.1-rt6
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 17 Feb 2016 21:20:12 +0000
+
+linux (4.4.1-1~exp1) experimental; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.4.1
+
+ [ Ricardo Salveti ]
+ * Extending ARM64 support:
+ - config: enabling support for the AMD Seattle platform
+ - nic-modules: adding amd-xgbe
+ - sata-modules: adding ahci_platform, required by AMD Overdrive
+ - config: enabling the cpuidle ARM driver
+ - config: enable multi-core scheduler support by default
+ - config: enable PCI generic host bridge by default
+ - config: enable CRYPTO_CRC32_ARM64 by default
+
+ [ Ian Campbell ]
+ * [arm64] Enabled support for QCOM platforms, options recommended by Martin
+ Michlmayr. (Closes: #812386)
+ * [armel/marvell] Declare breaks against flash-kernel << 3.57~ in order to
+ force a version which understands about the merge of kirkwood and orion5x
+ flavours into marvell.
+
+ [ Ben Hutchings ]
+ * linux-image: Make failure of depmod fatal, rather than asking what to do
+ * [mips*] linux-image: Remove debconf question for requirement of initramfs
+ * linux-image: Remove unnecessary debconf initialisations
+ * linux-{headers,image}: Remove support for version-specific hooks
+ * linux-headers: Make postinst script less verbose (see: #734266)
+ * [armel] Replace kirkwood and orion5x flavours with a 'marvell' flavour
+ * [armel/marvell] Adjust configuration to reduce image size:
+ - Disable support for DNS-323 as the kernel image was already too large
+ for this machine
+ + Disable MACH_DNS323
+ + Change MTD_CFI_AMDSTD from built-in to module
+ - input: Disable KEYBOARD_ATKBD
+ - mtd: Change JFFS2_FS, MTD_SPI_NOR, and M25P80 from built-in to modules
+ * [rt] Update to 4.4.1-rt5:
+ - genirq: Add default affinity mask command line option
+ - latencyhist: disable jump-labels
+ - kernel/perf: mark perf_cpu_context's timer as irqsafe
+ * bnx2x: Enable BNX2X_VXLAN
+ * cgroups: Enable CGROUP_PIDS
+ * crypto: Enable CRYPTO_CHACHA20, CRYPTO_POLY1305, CRYPTO_CHACHA20POLY1305,
+ CRYPTO_USER_API_AEAD as modules
+ * [x86] crypto: Enable CRYPTO_DEV_QAT_DH895xCC, CRYPTO_DEV_QAT_DH895xCCVF
+ as modules
+ * [amd64] crypto: Enable CRYPTO_CHACHA20_X86_64, CRYPTO_DES3_EDE_X86_64,
+ CRYPTO_POLY1305_X86_64 as modules
+ * [x86] dmaengine: Enable INTEL_IDMA64 as module
+ * debug: Enable SCHED_STACK_END_CHECK
+ * dm-cache: Enable DM_CACHE_SMQ as module
+ * ethernet: Enable BNXT, QED, QEDE as modules
+ * hci_uart: Enable BT_HCIUART_QCA
+ * HID: Enable HID_CORSAIR, HID_GEMBIRD as modules
+ * [x86] hwmon: Enable SENSORS_I5500 as module
+ * [x86] IB: Enable INFINIBAND_USNIC as module
+ * iio/light: Enable ACPI_ALS as module
+ * [x86] input: Enable SURFACE_PRO3_BUTTON as module
+ * [x86] iommu: Enable INTEL_IOMMU_SVM
+ * ipvs: Enable IP_VS_OVF as module
+ * media: Enable DVB_NETUP_UNIDVB, USB_GSPCA_TOUPTEK,_VIDEO_DT3155 as modules
+ * [x86] mfd: Enable MFD_INTEL_LPSS_ACPI, MFD_INTEL_LPSS_PCI as modules
+ * [amd64] mic: Enable INTEL_MIC_X100_DMA, MIC_COSM, SCIF, SCIF_BUS as modules
+ * [powerpc*/*64*] misc: Enable GENWQE as module
+ * net: Enable LWTUNNEL, NET_L3_MASTER_DEV; and MPLS_IPTUNNEL, NET_VRF
+ as modules
+ * [amd64] net: Enable FUJITSU_ES as module
+ * netfilter: Really enable NF_TABLES_NETDEV, NFT_REDIR_IPV4, NFT_REDIR_IPV6
+ as modules
+ * net/phy: Enable AQUANTIA_PHY, DP83848_PHY, MICROCHIP_PHY, TERANETICS_PHY
+ as modules
+ * net/sched: Really enable NET_CLS_FLOWER as module
+ * net/usb: Enable USB_LAN78XX, USB_NET_CH9200 as modules
+ * nfsd: Enable NFSD_PNFS
+ * [x86] pinctrl: Enable PINCTRL_BROXTON, PINCTRL_SUNRISEPOINT
+ * [x86] rfkill: Enable DELL_RBTN as module
+ * serial: Enable SERIAL_OF_PLATFORM as module
+ * sound/firewire: Enable SND_FIREWIRE_DIGI00X, SND_FIREWIRE_TASCAM as modules
+ * [x86] thermal: Enable INTEL_PCH_THERMAL, INTEL_SOC_DTS_THERMAL as modules;
+ disable THERMAL_OF
+ * [x86] Enable INTEL_PMC_IPC as module
+ * vfs,nvdimm: Really enable FS_DAX
+ * [amd64] mm,nvdimm: Disable ZONE_DMA; enable ZONE_DEVICE, NVDIMM_PFN
+ - This disables drivers for some AC'97 sound cards
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 10 Feb 2016 02:02:14 +0000
+
+linux (4.4-1~exp1) experimental; urgency=medium
+
+ * New upstream release: http://kernelnewbies.org/Linux_4.4
+
+ [ Ben Hutchings ]
+ * [armhf] Enable EXTCON_USB_GPIO, ENSORS_GPIO_FAN as modules, and
+ USB_DWC3_DUAL_ROLE instead of USB_DWC3_HOST (Closes: #810048)
+ * [rt] Update to 4.4-rt2
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 19 Jan 2016 22:25:06 +0000
+
+linux-tools (4.4-1~exp2) experimental; urgency=medium
+
+ * linux-perf: Fix FTBFS with gcc 6 (used on hppa, sparc64)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 19 Jan 2016 22:11:13 +0000
+
+linux-tools (4.4-1~exp1) experimental; urgency=medium
+
+ * New upstream release
+
+ [ Ben Hutchings ]
+ * linux-perf: Fix reading of build-id from vDSO
+ * linux-perf: Leave -rc suffix out of version in package description
+ * debian.py: Implement stable order of fields not in the predefined order
+ * genorig.py: Make orig tarballs really reproducible:
+ - Override umask while extracting/exporting files
+ - Override user and group names in tarball
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 19 Jan 2016 00:31:02 +0000
+
+linux (4.4~rc8-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [rt] Update to 4.4-rc6-rt1 and re-enable
+ * [rt] Fix build error in kernel/time/hrtimer.c
+ * [rt] latency_hist: Update sched_switch probe
+ * [armhf] Add support for BCM2836 and Raspberry Pi 2:
+ - pwm: bcm2835: Calculate scaler in ->config()
+ - pwm: bcm2835: Prevent division by zero
+ - drm: Create a driver hook for allocating GEM object structs
+ - drm/vc4: Add a BO cache
+ - drm/vc4: Add create and map BO ioctls
+ - drm/vc4: Add an API for creating GPU shaders in GEM BOs
+ - drm/vc4: Fix a typo in a V3D debug register
+ - drm/vc4: Bind and initialize the V3D engine
+ - drm/vc4: Add support for drawing 3D frames
+ - drm/vc4: Add support for async pageflips
+ - drm/vc4: Add an interface for capturing the GPU state after a hang
+ - drm/vc4: copy_to_user() returns the number of bytes remaining
+ - drm/vc4: allocate enough memory in vc4_save_hang_state()
+ - drm/vc4: fix an error code
+ - bcm2835: Add a compat string for bcm2836 machine probe
+ - bcm2835: Add Kconfig support for bcm2836
+ - bcm2835: Define two new packets from the latest firmware
+ - bcm2835: add rpi power domain driver
+ - bcm2835: Split the DT for peripherals from the DT for the CPU
+ - bcm2835: Move the CPU/peripheral include out of common RPi DT
+ - bcm2835: Add devicetree for bcm2836 and Raspberry Pi 2 B
+ - bcm2835: Add the auxiliary clocks to the device tree
+ - Enable ARCH_BCM, ARCH_BCM2835, DMA_BCM2835, BCM2835_MBOX,
+ RASPBERRYPI_FIRMWARE, RASPBERRYPI_POWER
+ - Enable DRM_VC4, I2C_BCM2835, MMC_SDHCI_BCM2835, PWM_BCM2835, SPI_BCM2835,
+ SPI_BCM2835AUX, USB_DWC2, BCM2835_WDT, SND_BCM2835_SOC_I2S as modules
+ - udeb: Add sdhci-bcm2835 to mmc-modules, dwc2 to usb-modules
+ * [armhf] Enable INPUT_AXP20X_PEK, CAN_SUN4I, SND_SUN4I_CODEC as modules
+ (Closes: #808623)
+ * [x86] nvdimm: Change X86_PMEM_LEGACY from built-in to module
+ * [x86] Enable DEBUG_WX, X86_INTEL_MPX
+
+ [ Ian Campbell ]
+ * [armel/kirkwood] Updates/clarifications to kernel size limitations from
+ Martin Michlmayr. (Closes: #809528)
+ * [armhf] Enable support for Rockchip devices. (Closes: #809083)
+ * [armhf] Enable basic support for DRA7XX systems, such as Beagle-x15.
+ (Closes: #807624)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 04 Jan 2016 17:23:28 +0000
+
+linux (4.4~rc6-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+ - include/linux/mmdebug.h: should include linux/bug.h
+ (fixes FTBFS on arm64)
+
+ [ Ben Hutchings ]
+ * [sparc64] udeb: Replace mpt2sas with mpt3sas in scsi-common-modules
+ (fixes FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 21 Dec 2015 17:30:10 +0000
+
+linux (4.4~rc5-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [arm64] Drop now-redundant patches for X-Gene (fixes FTBFS)
+ * [s390x] udeb: Add crc-modules package (fixes FTBFS)
+ * cirrus,mgag200: Drop patches for compatibility with wheezy userland
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 16 Dec 2015 17:16:09 +0000
+
+linux-tools (4.4~rc4-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 14 Dec 2015 01:28:50 +0000
+
+linux (4.4~rc4-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * aufs: Update support patches to aufs4.x-rcN-20151123
+ * udeb: Make md-modules depend on crc-modules (Closes: #807661)
+ * [armel/kirkwood,armhf] crypto: Enable CRYPTO_DEV_MARVELL_CESA as module
+ (Closes: #807634)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 13 Dec 2015 16:25:45 +0000
+
+linux (4.3.5-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.3.4
+ - toshiba_acpi: Initialize hotkey_event_type variable (regression in 4.3)
+ - USB: add quirk for devices with broken LPM
+ - usb: core : hub: Fix BOS 'NULL pointer' kernel panic
+ - pppoe: fix memory corruption in padt work structure (regression in 4.1)
+ - ipv6: keep existing flags when setting IFA_F_OPTIMISTIC
+ (regression in 4.1)
+ - vxlan: fix incorrect RCO bit in VXLAN header (regression in 4.0)
+ - sctp: update the netstamp_needed counter when copying sockets
+ - sctp: also copy sk_tsflags when copying the socket (regression in 3.17)
+ - r8152: fix lockup when runtime PM is enabled (regression in 4.2)
+ - ipv6: sctp: clone options to avoid use after free
+ - phy: micrel: Fix finding PHY properties in MAC node. (regression in 4.2)
+ - openvswitch: Fix helper reference leak
+ - openvswitch: Respect conntrack zone even if invalid
+ - net: fix IP early demux races
+ - vlan: Fix untag operations of stacked vlans with REORDER_HEADER off
+ - skbuff: Fix offset error in skb_reorder_vlan_header
+ - net: check both type and procotol for tcp sockets
+ - net_sched: make qdisc_tree_decrease_qlen() work for non mq
+ (regression in 4.3.3)
+ - net: fix uninitialized variable issue
+ - ipv6: automatically enable stable privacy mode if stable_secret set
+ - inet: tcp: fix inetpeer_set_addr_v4() (regression in 4.3)
+ - rhashtable: Enforce minimum size on initial hash table (regression in 4.1)
+ - fou: clean up socket with kfree_rcu
+ - af_unix: Revert 'lock_interruptible' in stream receive code
+ - tcp: restore fastopen with no data in SYN packet (regression in 4.0)
+ - rhashtable: Fix walker list corruption (regression in 4.1)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.3.5
+ - [x86] mpx: Fix instruction decoder condition
+ - [x86] signal: Fix restart_syscall number for x32 tasks
+ - [x86] paravirt: Prevent rtc_cmos platform device init on PV guests
+ (regression in 4.2)
+ - [powerpc*] KVM: Book3S HV: Don't dynamically split core when already split
+ (regression in 4.3)
+ - [powerpc*] KVM: Book3S HV: Prohibit setting illegal transaction state
+ in MSR
+ - [x86] boot: Double BOOT_HEAP_SIZE to 64KB
+ - [x86] mm: Add barriers and document switch_mm()-vs-flush synchronization
+ (CVE-2016-2069)
+ - timers: Use proper base migration in add_timer_on()
+ - ipmi: move timer init to before irq is setup
+ - ALSA: hda - Disable 64bit address for Creative HDA controllers
+ - ALSA: hda - Fix lost 4k BDL boundary workaround (regression in 4.2)
+ - [x86] ALSA: hda - Fix noise on Dell Latitude E6440 (regression in 4.1)
+ - ALSA: hda - Skip ELD notification during system suspend
+ (regression in 4.3)
+ - ALSA: seq: Fix missing NULL check at remove_events ioctl
+ - ALSA: usb-audio: Avoid calling usb_autopm_put_interface() at disconnect
+ - ALSA: seq: Fix race at timer setup and close
+ - [x86] ALSA: hda - Fix white noise on Dell Latitude E5550
+ (regression in 4.1)
+ - ALSA: usb-audio: Fix mixer ctl regression of Native Instrument devices
+ (regression in 3.19)
+ - ALSA: timer: Harden slave timer list handling
+ - ALSA: timer: Fix race among timer ioctls
+ - ALSA: timer: Fix double unlink of active_list
+ - [x86] ALSA: hda - Add fixup for Dell Latitidue E6540 (regression in 4.1)
+ - ALSA: seq: Fix snd_seq_call_port_info_ioctl in compat mode
+ - ALSA: pcm: Fix snd_pcm_hw_params struct copy in compat mode
+ - ALSA: control: Avoid kernel warnings from tlv ioctl with numid 0
+ - ALSA: timer: Handle disconnection more safely
+ - ASoC: rt286: Fix run time error while modifying const data
+ (regression in 4.3)
+ - airspy: increase USB control message buffer size (regression in 3.17)
+ - USB: fix invalid memory access in hub_activate()
+ - openvswitch: correct encoding of set tunnel action attributes
+ (regression in 4.3)
+ - veth: don’t modify ip_summed; doing so treats packets with bad checksums
+ as good.
+ - ipv6/addrlabel: fix ip6addrlbl_get()
+ - addrconf: always initialize sysctl table data
+ - connector: bump skb->users before callback invocation
+ - af_unix: Fix splice-bind deadlock
+ - bridge: Only call /sbin/bridge-stp for the initial network namespace
+ - net: filter: make JITs zero A for SKF_AD_ALU_XOR_X (regression in 3.16)
+ - net: sched: fix missing free per cpu on qstats (regression in 3.18)
+ - net: possible use after free in dst_release
+ - tcp: fix zero cwnd in tcp_cwnd_reduction (CVE-2016-2070)
+ (regression in 4.3)
+ - net: sctp: prevent writes to cookie_hmac_alg from accessing invalid memory
+ - ipv6: tcp: add rcu locking in tcp_v6_send_synack()
+ - tcp_yeah: don't set ssthresh below 2
+ - udp: disallow UFO for sockets with SO_NO_CHECK option (regression in 4.0)
+ - net: preserve IP control block during GSO segmentation
+ - phonet: properly unshare skbs in phonet_rcv() (regression in 4.0)
+ - net: bpf: reject invalid shifts
+ - ipv6: update skb->csum when CE mark is propagated
+ - batman-adv: Avoid recursive call_rcu for batadv_bla_claim
+ - batman-adv: Avoid recursive call_rcu for batadv_nc_node
+ - batman-adv: Drop immediate batadv_orig_ifinfo free function
+ - batman-adv: Drop immediate batadv_neigh_node free function
+ - batman-adv: Drop immediate neigh_ifinfo free function
+ - batman-adv: Drop immediate batadv_hard_iface free function
+ - batman-adv: Drop immediate orig_node free function
+ - team: Replace rcu_read_lock with a mutex in team_vlan_rx_kill_vid
+ - xfrm: dst_entries_init() per-net dst_ops
+ - [powerpc*] tm: Block signal return setting invalid MSR state
+ - [powerpc*] tm: Check for already reclaimed tasks
+ - [ppc64el] opal-irqchip: Fix double endian conversion (regression in 4.2)
+ - [powerpc*] opal-irqchip: Fix deadlock introduced by "Fix double endian
+ conversion"
+ - [powerpc*] powernv: pr_warn_once on unsupported OPAL_MSG type
+ - [powerpc*] Make value-returning atomics fully ordered
+ - [powerpc*] Make {cmp}xchg* and their atomic_ versions fully ordered
+ - [arm64] bpf: fix div-by-zero case
+ - [arm64] bpf: fix mod-by-zero case
+ - [arm64] cmpxchg_dbl: fix return value type (regression in 4.3)
+ - [arm*] KVM: test properly for a PTE's uncachedness
+ - [arm64] KVM: Fix AArch32 to AArch64 register mapping
+ - [arm*] KVM: correct PTE uncachedness check
+ - [arm64] kernel: enforce pmuserenr_el0 initialization and restore
+ - [arm*] iommu/arm-smmu: Fix error checking for ASID and VMID allocation
+ - HID: wacom: Tie cached HID_DG_CONTACTCOUNT indices to report ID
+ (regression in 4.3)
+ - HID: wacom: Expect 'touch_max' touches if HID_DG_CONTACTCOUNT not present
+ (regression in 4.3)
+ - HID: core: Avoid uninitialized buffer access
+ - staging: lustre: echo_copy.._lsm() dereferences userland pointers directly
+ - direct-io: Fix negative return from dio read beyond eof
+ - fix the regression from "direct-io: Fix negative return from dio read
+ beyond eof"
+ - [arm64] KVM: Add workaround for Cortex-A57 erratum 834220
+ - [arm64] kernel: fix architected PMU registers unconditional access
+
+ [ Ben Hutchings ]
+ * fuse: break infinite loop in fuse_fill_write_pages() (CVE-2015-8785)
+ * SCSI: fix crashes in sd and sr runtime PM (Closes: #801925)
+ * rt2x00: fix monitor mode regression (regression in 4.2)
+ * pipe: limit the per-user amount of pages allocated in pipes (CVE-2013-4312)
+ [Original reference is incorrect; should be CVE-2016-2847.]
+ * [powerpc*] Enable CRYPTO_DEV_VMX and enable CRYPTO_DEV_VMX_ENCRYPT as
+ module (Closes: #813640)
+ * debian/copyright: Add licence information for drivers/crypto/vmx/*.pl
+ * udeb: Add hid-logitech-hidpp to input-modules (Closes: #796096)
+ * hwrng: n2 - Attach on T5/M5, T7/M7 SPARC CPUs (Closes: #809815)
+
+ [ Salvatore Bonaccorso ]
+ * netfilter: nf_nat_redirect: add missing NULL pointer check (CVE-2015-8787)
+
+ [ Aurelien Jarno ]
+ * [mips*] Backport math emulation fix from 4.5.
+ * [arm64] Enable RTC_DRV_EFI.
+
+ [ Hendrik Brueckner ]
+ * [s390x] udeb: include modules to mount ISOs (loop device)
+ (Closes: #812336)
+ * [s390x] udeb: include btrfs-modules (Closes: #812340)
+
+ [ Martin Michlmayr ]
+ * Include Device Tree model in reportbug script
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 06 Feb 2016 23:25:14 +0000
+
+linux (4.3.3-7) unstable; urgency=medium
+
+ * linux-image-dbg: Don't rely on upstream makefile to make .build-id
+ links to vDSO debuginfo (fixes FTBFS on arm64, s390)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 19 Jan 2016 17:29:21 +0000
+
+linux (4.3.3-6) unstable; urgency=medium
+
+ [ Ben Hutchings ]
+ * debian.py: Implement stable order of fields in debian/tests/control
+ * debian.py: Implement stable order of fields not in the predefined order
+ * genorig.py: Make orig tarballs really reproducible:
+ - Override umask while extracting/exporting files
+ - Override user and group names in tarball
+ * xen/gntdev: Grant maps should not be subject to NUMA balancing
+ (Closes: #810472)
+ * gpio: Enable GPIO_SYSFS wherever GPIOLIB is enabled (Closes: #810085)
+ * [armhf] udeb: Include usbhid in input-modules (Closes: #809521)
+ * linux-image-dbg: Include debugging symbols for VDSOs
+ * [armel/kirkwood] power/reset: Re-enable POWER_RESET, POWER_RESET_GPIO
+ (regression in 3.17~rc5-1~exp1)
+ * usb: serial: visor: fix crash on detecting device without write_urbs
+ (CVE-2015-7566)
+ * tty: Fix unsafe ldisc reference via ioctl(TIOCGETD) (CVE-2016-0723)
+ * [x86] drm/vmwgfx: Fix a width / pitch mismatch on framebuffer updates
+ * bcache: Add upstream fixes marked for stable:
+ - fix a livelock when we cause a huge number of cache misses
+ - Add a cond_resched() call to gc
+ - clear BCACHE_DEV_UNLINK_DONE flag when attaching a backing device
+ - fix a leak in bch_cached_dev_run()
+ - unregister reboot notifier if bcache fails to unregister device
+ - allows use of register in udev to avoid "device_busy" error.
+ - prevent crash on changing writeback_running
+ - Change refill_dirty() to always scan entire disk if necessary
+ * KEYS: Fix keyring ref leak in join_session_keyring() (CVE-2016-0728)
+
+ [ Salvatore Bonaccorso ]
+ * unix: properly account for FDs passed over unix sockets (CVE-2013-4312)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 19 Jan 2016 00:41:31 +0000
+
+linux (4.3.3-5) unstable; urgency=medium
+
+ * [armhf] udeb: Fix duplication and circular dependency between core-modules
+ and usb-modules (really fixes FTBFS)
+ - Add core-modules as a dependency of usb-modules
+ - Remove gpio-viperboard from core-modules as it is unlikely to be needed
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 04 Jan 2016 00:45:27 +0000
+
+linux (4.3.3-4) unstable; urgency=medium
+
+ * [armhf] udeb: Remove pbias-regulator module from mmc-modules as it's now
+ in core-modules (fixes FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 03 Jan 2016 01:50:52 +0000
+
+linux (4.3.3-3) unstable; urgency=medium
+
+ [ Ben Hutchings ]
+ * [ppc64*] drm: Enable DRM_AST as module (Closes: #808338)
+ * block: ensure to split after potentially bouncing a bio (Closes: #809082)
+ * pptp: verify sockaddr_len in pptp_bind() and pptp_connect() (CVE-2015-8569)
+ * bluetooth: Validate socket address length in sco_sock_bind() (CVE-2015-8575)
+ * [xen] Fix race conditions in back-end drivers (CVE-2015-8550, XSA-155)
+ * [xen] pciback: Fix state validation in MSI control operations
+ (CVE-2015-8551, CVE-2015-8852, XSA-157)
+ * ptrace: being capable wrt a process requires mapped uids/gids
+ (CVE-2015-8709)
+ * KEYS: Fix race between read and revoke (CVE-2015-7550)
+ * [armhf] udeb: Add modular clock, GPIO, PCIe PHY and regulator drivers to
+ core-modules (Closes: #809521)
+ * [armhf] udeb: Add more USB PHY drivers to usb-modules
+ * drm/nouveau/pmu: do not assume a PMU is present (Closes: #809481)
+ * [x86] drm/i915: Don't compare has_drrs strictly in pipe config
+ (Closes: #808720)
+ * [armhf] crypto: sun4i-ss - add missing statesize (Closes: #808625)
+ * Revert "xhci: don't finish a TD if we get a short transfer event mid TD"
+ (Closes: #808602, #808953, regression in 4.3-rc7)
+ * [x86] pinctrl: Enable PINCTRL_CHERRYVIEW (Closes: #808044)
+ * [s390x] udeb: Add crc-modules package (Closes: #808051)
+
+ [ Salvatore Bonaccorso ]
+ * ovl: fix permission checking for setattr (CVE-2015-8660)
+ * [x86] kvm: Reload pit counters for all channels when restoring state
+ (CVE-2015-7513)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 02 Jan 2016 16:45:46 +0000
+
+linux-tools (4.3.1-2) unstable; urgency=medium
+
+ * Upload for Perl 5.22 transition (Closes: #808329)
+ * debian/rules: Fix check for binNMU, broken since 4.1.4-1
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 19 Dec 2015 03:47:10 +0000
+
+linux (4.3.3-2) unstable; urgency=medium
+
+ * [armhf,sparc64] Force ZONE_DMA to be enabled, reversing ABI change in
+ 4.3.3 (fixes FTBFS)
+ * [sh4] Disable CC_STACKPROTECTOR_STRONG temporarily (fixes FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 17 Dec 2015 18:21:52 +0000
+
+linux (4.3.3-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.3.2
+ - X.509: Fix the time validation [ver #2]
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.3.3
+ - r8169: fix kasan reported skb use-after-free. (regression in 4.3)
+ - af-unix: fix use-after-free with concurrent readers while splicing
+ (regression in 4.2)
+ - af_unix: don't append consumed skbs to sk_receive_queue
+ (regression in 4.2)
+ - af_unix: take receive queue lock while appending new skb
+ (regression in 4.2)
+ - af-unix: passcred support for sendpage (regression in 4.2)
+ - ipv6: Avoid creating RTF_CACHE from a rt that is not managed by fib6 tree
+ (regression in 4.2)
+ - ipv6: Check expire on DST_NOCACHE route
+ - ipv6: Check rt->dst.from for the DST_NOCACHE route (regression in 4.3)
+ - Revert "ipv6: ndisc: inherit metadata dst when creating ndisc requests"
+ (regression in 4.3)
+ - packet: only allow extra vlan len on ethernet devices
+ - packet: infer protocol from ethernet header if unset
+ - packet: fix tpacket_snd max frame len
+ - sctp: translate host order to network order when setting a hmacid
+ - net/mlx5e: Added self loopback prevention (regression in 4.3)
+ - net/mlx4_core: Fix sleeping while holding spinlock at rem_slave_counters
+ (regression in 4.2)
+ - ip_tunnel: disable preemption when updating per-cpu tstats
+ - net/ip6_tunnel: fix dst leak (regression in 4.3)
+ - tcp: disable Fast Open on timeouts after handshake
+ - tcp: fix potential huge kmalloc() calls in TCP_REPAIR
+ - tcp: initialize tp->copied_seq in case of cross SYN connection
+ - net, scm: fix PaX detected msg_controllen overflow in scm_detach_fds
+ - net: ipmr: fix static mfc/dev leaks on table destruction
+ - net: ip6mr: fix static mfc/dev leaks on table destruction
+ - vrf: fix double free and memory corruption on register_netdevice failure
+ - tipc: fix error handling of expanding buffer headroom (regression in 4.3)
+ - ipv6: distinguish frag queues by device for multicast and link-local
+ packets
+ - bpf, array: fix heap out-of-bounds access when updating elements
+ - ipv6: add complete rcu protection around np->opt
+ - net/neighbour: fix crash at dumping device-agnostic proxy entries
+ - ipv6: sctp: implement sctp_v6_destroy_sock()
+ - openvswitch: fix hangup on vxlan/gre/geneve device deletion
+ - net_sched: fix qdisc_tree_decrease_qlen() races
+ - btrfs: fix resending received snapshot with parent (regression in 4.2)
+ - Btrfs: fix file corruption and data loss after cloning inline extents
+ - Btrfs: fix regression when running delayed references (regression in 4.2)
+ - Btrfs: fix race leading to incorrect item deletion when dropping extents
+ - Btrfs: fix race leading to BUG_ON when running delalloc for nodatacow
+ - Btrfs: fix race when listing an inode's xattrs
+ - rbd: don't put snap_context twice in rbd_queue_workfn()
+ - ext4 crypto: fix memory leak in ext4_bio_write_page()
+ - ext4 crypto: fix bugs in ext4_encrypted_zeroout()
+ - ext4: fix potential use after free in __ext4_journal_stop
+ (regression in 4.2)
+ - ext4, jbd2: ensure entering into panic after recording an error in
+ superblock
+ - nfsd: serialize state seqid morphing operations
+ - nfsd: eliminate sending duplicate and repeated delegations
+ - nfs4: start callback_ident at idr 1
+ - nfs4: resend LAYOUTGET when there is a race that changes the seqid
+ - nfs: if we have no valid attrs, then don't declare the attribute cache
+ valid
+ - ocfs2: fix umask ignored issue
+ - block: fix segment split (regression in 4.3)
+ - ceph: fix message length computation
+ - Btrfs: fix regression running delayed references when using qgroups
+ (regression in 4.2)
+
+ [ Ben Hutchings ]
+ * net: add validation for the socket syscall protocol argument (CVE-2015-8543)
+ * [armel/kirkwood] udeb: Override inclusion of gpio_keys in input-modules
+ (fixes FTBFS)
+ * vrf: Fix broken backport of "vrf: fix double free and memory corruption on
+ register_netdevice failure" in 4.3.3
+ * net: Ignore ABI changes due to "ipv6: add complete rcu protection around
+ np->opt", which don't appear to affect out-of-tree modules
+ * tipc: Fix kfree_skb() of uninitialised pointer (regression in 4.3.3)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 15 Dec 2015 21:25:26 +0000
+
+linux-tools (4.3.1-1) unstable; urgency=medium
+
+ * New upstream stable update
+ - [x86] Add #AC to SVM_EXIT_REASONS
+
+ [ Ben Hutchings ]
+ * debian/bin/genorig.py: Add more files under arch/*/include/asm to file list
+ (fixes FTBFS on several architectures)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 14 Dec 2015 00:43:39 +0000
+
+linux-tools (4.3-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 13 Dec 2015 03:47:05 +0000
+
+linux (4.3.1-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.3.1
+
+ [ Ben Hutchings ]
+ * Set ABI to 1
+ * [armhf] rtc: Enable RTC_DRV_DS1307, RTC_DRV_PCF8563, RTC_DRV_ARMADA38X
+ (Closes: #807632)
+ * [armhf] Enable MACH_ARMADA_375, MACH_ARMADA_38X, MACH_ARMADA_39X
+ (Closes: #807633)
+ * [armhf] net: Enable MVPP2 as module
+ * [armel/kirkwood] dts: Fix QNAP TS219 power-off (Closes: #807696)
+ * [armhf] udeb: Add leds-modules package containing leds-gpio driver
+ (Closes: #807721)
+ * [x86] drm/i915: Mark uneven memory banks on gen4 desktop as unknown
+ swizzling (Closes: #780363)
+ * Enable CC_STACKPROTECTOR_STRONG (Closes: #805652)
+ * [x86] input: Enable KEYBOARD_GPIO, INPUT_SOC_BUTTON_ARRAY (Closes: #804864)
+ * [x86] nouveau: bios: return actual size of the buffer retrieved via _ROM
+ (Closes: #772716)
+ * [armhf] Add support for Odroid-XU4 (Closes: #804850)
+ - mfd: s2mps11: Add manual shutdown method for Odroid XU3
+ - dts: Fix power off method for exynos5422-odroidxu3-common
+ - dts: Split audio configuration to separate exynos5422-odroidxu3-audio
+ - dts: Add support Odroid XU4 board for exynos5422-odroidxu4
+ * udeb: Add hid-chicony to input-modules (Closes: #766570)
+ * sched: Enable CFS_BANDWIDTH (Closes: #802746)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 13 Dec 2015 00:38:54 +0000
+
+linux (4.3-1~exp2) experimental; urgency=medium
+
+ [ Ben Hutchings ]
+ * mv643xx_eth: Re-enable TSO, fixed upstream in 4.3
+ * debian/control: Move patchutils from Build-Depends to Build-Depends-Indep,
+ as we only use filterdiff when building linux-source-<version>
+ * debian/control,debian/rules: Support a 'stage1' build profile which
+ builds only linux-libc-dev (Closes: #695243)
+ * debian/control: Add ':any' to Build-Depends on python3, to support cross-
+ bootstrap
+ * [armhf] Enable new drivers for Allwinner chips (Closes: #804856)
+ - crypto: Enable CRYPTO_DEV_SUN4I_SS as module
+ - musb: Enable USB_MUSB_SUNXI as module
+ * aufs: Update support patches to aufs4.3-20151116
+ * [armhf] USB: Change USB, USB_GADGET, and various drivers from built-in to
+ modules
+ - musb: Enable USB_MUSB_DUAL_ROLE
+ * [armhf] musb: Disable MUSB_PIO_ONLY and enable USB_INVENTRA_DMA,
+ USB_TI_CPPI41_DMA, USB_TUSB_OMAP_DMA
+
+ [ Ian Campbell ]
+ * [armel/orion5x] Enable Device Tree for orion5x. Patch from Roger Shimizu
+ (Closes: #803159)
+ * [armel/orion5x] Enable CONFIG_DEBUG_LL_UART_8250.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 04 Dec 2015 19:36:10 +0000
+
+linux (4.3-1~exp1) experimental; urgency=medium
+
+ * New upstream release
+
+ [ Ben Hutchings ]
+ * netfilter: Enable NFT_DUP_IPV4, NFT_DUP_IPV6 as modules (Closes: #803370)
+ * tests: Add autopkgtest support
+ * [x86] Compile with gcc-5
+ * [x86] Enable PINCTRL_BAYTRAIL (Closes: #797949)
+
+ [ Salvatore Bonaccorso ]
+ * Fix typo in image.plain.postinst template.
+ Add missing space in warn message causing typo "dangling linkto".
+ Thanks to Jakub Wilk <jwilk@debian.org> (Closes: #803323)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 04 Nov 2015 07:45:13 +0000
+
+linux (4.3~rc7-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+ - [x86] smpboot: Fix CPU #1 boot timeout (Closes: #802464)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 28 Oct 2015 11:04:27 +0900
+
+linux-tools (4.3~rc5-1~exp2) experimental; urgency=medium
+
+ * Fix the build-indep and binary-indep targets (fixes FTBFS for arch:all)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 14 Oct 2015 02:08:09 +0100
+
+linux-tools (4.3~rc5-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+ - perf: Fix build on architectures without CONFIG_PERF_REGS
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 14 Oct 2015 00:49:38 +0100
+
+linux (4.3~rc5-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 14 Oct 2015 00:48:41 +0100
+
+linux-tools (4.3~rc4-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 07 Oct 2015 01:15:46 +0100
+
+linux (4.3~rc4-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [armhf] dts: Fix Makefile target for sun4i-a10-itead-iteaduino-plus
+ (fixes FTBFS)
+ * [mips*] io: Define ioremap_uc (fixes FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 06 Oct 2015 23:27:45 +0100
+
+linux (4.3~rc3-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * Disable CRAMFS; it was obsoleted by squashfs and initramfs
+ * [i386] Replace 586 flavour with 686
+ - Enable support for OLPC and other Geode-based systems in the 686 flavour
+ - udeb: Update kernel-versions
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 27 Sep 2015 21:02:54 +0100
+
+linux (4.2.6-3) unstable; urgency=medium
+
+ * Ignore some gpiochip ABI changes (fixes FTBFS on i386)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 06 Dec 2015 02:12:41 +0000
+
+linux (4.2.6-2) unstable; urgency=medium
+
+ [ Salvatore Bonaccorso ]
+ * [x86] KVM: svm: unconditionally intercept #DB (CVE-2015-8104)
+ * [x86] KVM: rename update_db_bp_intercept to update_bp_intercept
+
+ [ Ian Campbell ]
+ * [x86] Xen: expose a more realistic max p2m size in the shared info, fixes
+ migration (Closes: #797205)
+
+ [ Ben Hutchings ]
+ * media: usbvision: fix crash on detecting device with invalid configuration
+ (CVE-2015-7833, partly fixed in 4.2.6-1)
+ * udeb: Add dm-service-time to multipath-modules (Closes: #806131)
+ * unix: avoid use-after-free in ep_remove_wait_queue (CVE-2013-7446)
+ * isdn_ppp: Add checks for allocation failure in isdn_ppp_open()
+ * ppp, slip: Validate VJ compression slot parameters completely
+ (CVE-2015-7799)
+ * Btrfs: fix truncation of compressed and inlined extents (CVE-2015-8374)
+ * netfilter: Enable NFT_DUP_IPV4, NFT_DUP_IPV6 as modules (Closes: #803370)
+ * [x86] Enable PINCTRL_BAYTRAIL (Closes: #797949)
+ * qxl: Enable by default (Closes: #779515)
+ * [s390*] Update linux-compiler metapackage to gcc-4.9
+ * firmware_class: Fix condition in directory search loop (Closes: #804862)
+ * [x86] input: Enable MOUSE_ELAN_I2C as module, MOUSE_ELAN_I2C_I2C and
+ MOUSE_ELAN_I2C_SMBUS (Closes: #791631)
+ * [armhf] hsi: Enable CMT_SPEECH as module (Closes: #791819)
+ * [armhf] power: Enable BATTERY_RX51 as module (Closes: #791820)
+ * [x86] psmouse: Enable MOUSE_PS2_VMMOUSE (Closes: #802929)
+ - linux-image: Add versioned Breaks on xserver-xorg-input-vmmouse to
+ avoid driver conflicts
+ * [armhf] udeb: Add stmmac platform modules dwmac-generic, dwmac-socfpga
+ and dwmac-sunxi to nic-modules (Closes: #805098)
+ * wireless: Enable WL_MEDIATEK, MT7601U as module
+ * [x86] drm/i915: shut up gen8+ SDE irq dmesg noise (Closes: #806304)
+ * [armhf] regulator: Enable REGULATOR_PFUZE100 as module (Closes: #806284)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 04 Dec 2015 02:26:51 +0000
+
+linux (4.2.6-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.6
+ - mmc: core: Fix init_card in 52Mhz (regression in 4.2)
+ - rtlwifi: rtl8821ae: Fix system lockups on boot (regression in 4.2)
+ - iwlwifi: mvm: init card correctly on ctkill exit check
+ (regression in 3.18)
+ - iwlwifi: mvm: flush fw_dump_wk when mvm fails to start
+ (regression in 3.18)
+ - [x86] iommu/vt-d: fix range computation when making room for large pages
+ - [x86] iommu/amd: Fix BUG when faulting a PROT_NONE VMA
+ - [x86] iommu/amd: Don't clear DTE flags when modifying it
+ - drm: fix mutex leak in drm_dp_get_mst_branch_device
+ - drm: Correct arguments to list_tail_add in create blob ioctl
+ - drm: crtc: integer overflow in drm_property_create_blob()
+ - rtl28xxu: fix control message flaws (regression in 4.0)
+ - ALSA: hda - Fix deadlock at error in building PCM
+ - [x86] ioapic: Prevent NULL pointer dereference in setup_ioapic_dest()
+ (regression in 4.2.4)
+ - mm: make sendfile(2) killable
+ - drm/radeon/dpm: don't add pwm attributes if DPM is disabled
+ (regression in 4.0)
+ - [x86] drm/i915: Restore lost DPLL register write on gen2-4
+ (regression in 3.18)
+ - [x86] drm/i915: Deny wrapping an userptr into a framebuffer
+ - drm/radeon: don't try to recreate sysfs entries on resume
+ (regression in 4.2.5)
+ - drm/radeon: fix dpms when driver backlight control is disabled
+ (regression in 4.2.4)
+ - drm/radeon: move bl encoder assignment into bl init
+ - rbd: require stable pages if message data CRCs are enabled
+ - rbd: don't leak parent_spec in rbd_dev_probe_parent()
+ - rbd: prevent kernel stack blow up on rbd map
+ - [armhf] EXYNOS: Fix double of_node_put() when parsing child power domains
+ (regression in 4.2)
+ - [armhf] dts: Fix audio card detection on Peach boards (regression in 4.1)
+ - [arm64] Revert "ARM64: unwind: Fix PC calculation"
+ - block: don't release bdi while request_queue has live references
+ (regression in 4.2)
+ - dm btree remove: fix a bug when rebalancing nodes after removal
+ - dm cache: the CLEAN_SHUTDOWN flag was not being set
+ - dm btree: fix leak of bufio-backed block in btree_split_beneath error path
+ - Revert "serial: 8250_dma: don't bother DMA with small transfers"
+ (regression in 4.0)
+ - [armel] i2c: mv64xxx: really allow I2C offloading (regression in 3.19)
+ - clkdev: fix clk_add_alias() with a NULL alias device name
+ (regression in 4.2)
+ - fbcon: initialize blink interval before calling fb_set_par
+ (regression in 4.2)
+ - PCI: Prevent out of bounds access in numa_node override
+ - ovl: free stack of paths in ovl_fill_super (regression in 4.0)
+ - ovl: free lower_mnt array in ovl_put_super (regression in 4.0)
+ - ovl: fix dentry reference leak
+ - ovl: fix open in stacked overlay (regression in 4.2)
+ - [x86] Input: alps - only the Dell Latitude D420/430/620/630 have separate
+ stick button bits (regression in 4.1)
+ - crypto: api - Only abort operations on fatal signal
+ - md/raid1: submit_bio_wait() returns 0 on success (regression in 3.10)
+ - md/raid10: submit_bio_wait() returns 0 on success (regression in 3.10)
+ - md/raid5: fix locking in handle_stripe_clean_event() (regression in 3.13)
+ - Revert "md: allow a partially recovered device to be hot-added to an
+ array." (regression in 3.14)
+ - [amd64] EDAC, sb_edac: Fix TAD presence check for sbridge_mci_bind_devs()
+ (regression in 4.2)
+ - mvsas: Fix NULL pointer dereference in mvs_slot_task_free
+ - netfilter: ipset: Fix sleeping memory allocation in atomic context
+ (regression in 4.2)
+ - btrfs: fix possible leak in btrfs_ioctl_balance() (regression in 4.2.5)
+ - kvm: irqchip: fix memory leak (regression in 4.2)
+ - [armhf] thermal: exynos: Fix register read in TMU (regression in 4.2)
+ - blk-mq: fix use-after-free in blk_mq_free_tag_set() (regression in 4.2)
+ - IB/cm: Fix rb-tree duplicate free and use-after-free
+ - sched/deadline: Fix migration of SCHED_DEADLINE tasks (regression in 4.2)
+ - [arm64] compat: fix stxr failure case in SWP emulation
+ - NVMe: Fix memory leak on retried commands
+ - [x86] drm/vmwgfx: Fix up user_dmabuf refcounting
+ - thp: use is_zero_pfn() only after pte_present() check (regression in 4.1)
+ - xen: fix backport of previous kexec patch
+
+ [ Ben Hutchings ]
+ * usbvision: fix overflow of interfaces array (CVE-2015-7833)
+ * RDS: fix race condition when sending a message on unbound socket
+ (CVE-2015-7990)
+ * media/vivid-osd: fix info leak in ioctl (CVE-2015-7884)
+ * [x86] KVM: Intercept #AC to avoid guest->host denial-of-service
+ (CVE-2015-5307)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 10 Nov 2015 14:35:05 +0000
+
+linux (4.2.5-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.4
+ - [armhf] KVM: Fix incorrect device to IPA mapping
+ - [x86] KVM: vmx: fix VPID is 0000H in non-root operation
+ - kvm: don't try to register to KVM_FAST_MMIO_BUS for non mmio eventfd
+ - kvm: fix zero length mmio searching
+ - kvm: factor out core eventfd assign/deassign logic
+ - kvm: fix double free for fast mmio eventfd
+ - [armhf] KVM: Disable virtual timer even if the guest is not using it
+ - kvm: svm: reset mmu on VCPU reset
+ - [x86] KVM: trap AMD MSRs for the TSeg base and mask
+ - [powerpc*] KVM: Book3S: Take the kvm->srcu lock in
+ kvmppc_h_logical_ci_load/store()
+ - [powerpc*] KVM: Book3S HV: Pass the correct trap argument to
+ kvmhv_commence_exit
+ - [x86] Revert "KVM: x86: apply guest MTRR virtualization on host reserved
+ pages"
+ - [x86] Revert "KVM: SVM: use NPT page attributes"
+ - [x86] Revert "KVM: SVM: Sync g_pat with guest-written PAT value"
+ - time: Fix timekeeping_freqadjust()'s incorrect use of abs() instead of
+ abs64()
+ - target/iscsi: Fix np_ip bracket issue by removing np_ip
+ - scsi: fix scsi_error_handler vs. scsi_host_dev_release race
+ - target: Attach EXTENDED_COPY local I/O descriptors to xcopy_pt_sess
+ - target: Fix PR registration + APTPL RCU conversion regression
+ - iser-target: remove command with state ISTATE_REMOVE
+ - iser-target: Put the reference on commands waiting for unsol data
+ - toshiba_acpi: Fix hotkeys registration on some toshiba models
+ - [x86] perf/intel: Fix constraint access
+ - [x86] locking/qspinlock: Fix performance regression under unaccelerated
+ VMs
+ - [x86] locking/qspinlock: Only emit the test-and-set fallback when
+ building guest support
+ - [armhf] 8401/1: perf: Set affinity for PPI based PMUs
+ - perf hists: Update the column width for the "srcline" sort key
+ - perf stat: Get correct cpu id for print_aggr
+ - perf tools: Add missing forward declaration of struct map to probe-event.h
+ - perf tools: Add empty Build files for architectures lacking them
+ - perf tools: Fix parse_events_add_pmu caller
+ - perf header: Fixup reading of HEADER_NRCPUS feature
+ - perf probe: Use existing routine to look for a kernel module by
+ dso->short_name
+ - watchdog: sunxi: fix activation of system reset
+ - watchdog: imgpdc: Unregister restart handler on remove
+ - sched: access local runqueue directly in single_task_running
+ - hwmon: (nct6775) Swap STEP_UP_TIME and STEP_DOWN_TIME registers for most
+ chips
+ - [armhf] fix Thumb2 signal handling when ARMv6 is enabled
+ - [armel,armhf] 8429/1: disable GCC SRA optimization
+ - [powerpc*] windfarm: decrement client count when unregistering
+ - [armhf] dts: omap5-uevm.dts: fix i2c5 pinctrl offsets
+ - [armhf] dts: omap3-beagle: make i2c3, ddc and tfp410 gpio work again
+ - [armhf] EXYNOS: reset Little cores when cpu is up
+ - [armhf] dts: sunxi: Raise minimum CPU voltage for sun7i-a20 to meet SoC
+ specifications
+ - [armhf] dts: Fix wrong clock binding for sysmmu_fimd1_1 on exynos5420
+ - [armhf] dts: fix usb pin control for imx-rex dts
+ - dax: fix O_DIRECT I/O to the last block of a blockdev
+ - blockdev: don't set S_DAX for misaligned partitions
+ - block: blkg_destroy_all() should clear q->root_blkg and ->root_rl.blkg
+ - dmaengine: at_xdmac: change block increment addressing mode
+ - dmaengine: at_xdmac: clean used descriptor
+ - dmaengine: dw: properly read DWC_PARAMS register
+ - dmaengine: at_xdmac: fix bug in prep_dma_cyclic
+ - pmem: add proper fencing to pmem_rw_page()
+ - [x86] apic: Serialize LVTT and TSC_DEADLINE writes
+ - [x86] alternatives: Make optimize_nops() interrupt safe and synced
+ - [i386] platform: Fix Geode LX timekeeping in the generic x86 build
+ - [x86] ioapic: Force affinity setting in setup_ioapic_dest()
+ - [x86] pci/intel_mid_pci: Work around for IRQ0 assignment
+ - [x86] paravirt: Replace the paravirt nop with a bona fide empty function
+ - [amd64] nmi: Fix a paravirt stack-clobbering bug in the NMI code
+ - [x86] Use WARN_ON_ONCE for missing X86_FEATURE_NRIPS
+ - [x86] efi: Fix boot crash by mapping EFI memmap entries bottom-up at
+ runtime, instead of top-down
+ - [x86] kexec: Fix kexec crash in syscall kexec_file_load()
+ - [x86] process: Add proper bound checks in 64bit get_wchan()
+ - [x86] mm: Set NX on gap between __ex_table and rodata
+ - [x86] xen: Support kexec/kdump in HVM guests by doing a soft reset
+ - leds:lp55xx: Correct Kconfig dependency for f/w user helper
+ - leds/led-class: Add missing put_device()
+ - sched/core: Fix TASK_DEAD race in finish_task_switch()
+ - [s390x] compat: correct uc_sigmask of the compat signal frame
+ - [s390x] boot/decompression: disable floating point in decompressor
+ - Revert "cgroup: simplify threadgroup locking"
+ - Revert "sched, cgroup: replace signal_struct->group_rwsem with a global
+ percpu_rwsem"
+ - memcg: make mem_cgroup_read_stat() unsigned
+ - spi: Fix documentation of spi_alloc_master()
+ - spi: bcm2835: BUG: fix wrong use of PAGE_MASK
+ - spi: spidev: fix possible NULL dereference
+ - mm: migrate: hugetlb: putback destination hugepage to active list
+ - lib/iommu-common.c: do not try to deref a null iommu->lazy_flush()
+ pointer when n < pool->hint
+ - ocfs2/dlm: fix deadlock when dispatch assert master
+ - mm: hugetlbfs: skip shared VMAs when unmapping private pages to satisfy a
+ fault
+ - memcg: fix dirty page migration
+ - [armhf] ALSA: hda/tegra - async probe for avoiding module loading deadlock
+ - ALSA: synth: Fix conflicting OSS device registration on AWE32
+ - ALSA: hda: Add dock support for ThinkPad T550
+ - ALSA: hda - Apply SPDIF pin ctl to MacBookPro 12,1
+ - ALSA: hda - Disable power_save_node for IDT 92HD73xx chips
+ - ASoC: pxa: pxa2xx-ac97: fix dma requestor lines
+ - ASoC: dwc: correct irq clear method
+ - ASoC: db1200: Fix DAI link format for db1300 and db1550
+ - ASoC: sgtl5000: fix wrong register MIC_BIAS_VOLTAGE setup on probe
+ - ASoC: tas2552: fix dBscale-min declaration
+ - btrfs: skip waiting on ordered range for special files
+ - Btrfs: fix read corruption of compressed and shared extents
+ - Btrfs: update fix for read corruption of compressed and shared extents
+ - PCI: Fix devfn for VPD access through function 0
+ - PCI: Use function 0 VPD for identical functions, regular VPD for others
+ - PCI: Clear IORESOURCE_UNSET when clipping a bridge window
+ - dm thin: disable discard support for thin devices if pool's is disabled
+ - dm crypt: constrain crypt device's max_segment_size to PAGE_SIZE
+ - ath10k: fix dma_mapping_error() handling
+ - svcrdma: Fix send_reply() scatter/gather set-up
+ - md/raid0: update queue parameter in a safer location.
+ - md/raid0: apply base queue limits *before* disk_stack_limits
+ - dm raid: fix round up of default region size
+ - netfilter: nfnetlink: work around wrong endianess in res_id field
+ - netfilter: nf_tables: Use 32 bit addressing register from
+ nft_type_to_reg()
+ - netfilter: ipset: Out of bound access in hash:net* types fixed
+ - netfilter: ipset: Fixing unnamed union init
+ - netfilter: nf_log: wait for rcu grace after logger unregistration
+ - netfilter: nft_compat: skip family comparison in case of NFPROTO_UNSPEC
+ - netfilter: nf_log: don't zap all loggers on unregister
+ - regulator: core: Correct return value check in regulator_resolve_supply
+ - regulator: axp20x: Fix enable bit indexes for DCDC4 and DCDC5
+ - regulator: core: Handle probe deferral from DT when resolving supplies
+ - Bluetooth: Delay check for conn->smp in smp_conn_security()
+ - nfs: fix v4.2 SEEK on files over 2 gigs
+ - NFS: Do cleanup before resetting pageio read/write to mds
+ - NFSv4: Recovery of recalled read delegations is broken
+ - nfs: fix pg_test page count calculation
+ - NFS: Fix a write performance regression
+ - cifs: Fix sec=krb5 on smb3 mounts
+ - cifs: disabling oplocks/leases via module parm enable_oplocks broken for
+ SMB3
+ - cifs: Do not fall back to SMBWriteX in set_file_size error cases
+ - drm/qxl: only report first monitor as connected if we have no state
+ - drm/qxl: recreate the primary surface when the bo is not primary
+ - drm/amdgpu: fix overflow on 32bit systems
+ - drm/amdgpu: Disable UVD PG
+ - drm/amdgpu: fix the UVD suspend sequence order
+ - drm/amdgpu: make UVD handle checking more strict
+ - drm/amdgpu: Fix max_vblank_count value for current display engines
+ - drm/amdgpu: Restore LCD backlight level on resume
+ - [x86] drm/i915/bios: handle MIPI Sequence Block v3+ gracefully
+ - drm: Reject DRI1 hw lock ioctl functions for kms drivers
+ - drm/radeon: Restore LCD backlight level on resume (>= R5xx)
+ - drm/dp/mst: fixup handling hotplug on port removal.
+ - drm/dp/mst: drop cancel work sync in the mstb destroy path (v2)
+ - xhci: give command abortion one more chance before killing xhci
+ - xhci: Move xhci_pme_quirk() behind #ifdef CONFIG_PM
+ - usb: xhci: lock mutex on xhci_stop
+ - usb: xhci: Clear XHCI_STATE_DYING on start
+ - usb: xhci: stop everything on the first call to xhci_stop
+ - usb: xhci: exit early in xhci_setup_device() if we're halted or dying
+ - xhci: change xhci 1.0 only restrictions to support xhci 1.1
+ - xhci: init command timeout timer earlier to avoid deleting it
+ uninitialized
+ - usb: xhci: Add support for URB_ZERO_PACKET to bulk/sg transfers
+ - batman-adv: Make DAT capability changes atomic
+ - thermal: cpu_cooling: don't call kcalloc() under rcu_read_lock
+ - thermal: cpu_cooling: free power table on error or when unregistering
+ - [x86] hv: util: checking the wrong variable
+ - mmc: dw_mmc: handle data blocks > than 4kB if IDMAC is used
+ - usb: chipidea: imx: fix a typo for imx6sx
+ - cifs: use server timestamp for ntlmv2 authentication
+ - [armhf] irqchip/gic-v3-its: Add missing cache flushes
+ - docs: update HOWTO for 3.x -> 4.x versioning
+ - extcon: Fix signedness bugs about break error handling
+ - extcon: Fix attached value returned by is_extcon_changed
+ - [armhf] mtd: pxa3xx_nand: add a default chunk size
+ - mtd: nand: sunxi: fix sunxi_nand_chips_cleanup()
+ - mtd: nand: sunxi: fix OOB handling in ->write_xxx() functions
+ - hpsa: fix an sprintf() overflow in the reset handler
+ - PM / AVS: rockchip-io: depend on CONFIG_POWER_AVS
+ - device property: fix potential NULL pointer dereference
+ - ath10k: fix per-vif queue locking
+ - ath10k: reject 11b tx fragmentation configuration
+ - ath10k: fix peer limit enforcement
+ - ath10k: wake up offchannel queue properly
+ - ath10k: wake up queue upon vif creation
+ - pcmcia: sa11x0: fix missing clk_put() in sa11x0 socket drivers
+ - ipr: Enable SIS pipe commands for SIS-32 devices.
+ - regmap: debugfs: Ensure we don't underflow when printing access masks
+ - regmap: debugfs: Don't bother actually printing when calculating max
+ length
+ - security: fix typo in security_task_prctl
+ - usb: musb: dsps: fix polling in device-only mode
+ - usb: chipidea: udc: using the correct stall implementation
+ - usb: Use the USB_SS_MULT() macro to get the burst multiplier.
+ - usb: phy: phy-generic: Fix reset behaviour on legacy boot
+ - usb: musb: cppi41: allow it to work again
+ - USB: chaoskey read offset bug
+ - usb: Add device quirk for Logitech PTZ cameras
+ - USB: Add reset-resume quirk for two Plantronics usb headphones.
+ - [armel,armhf] crypto: marvell - properly handle
+ CRYPTO_TFM_REQ_MAY_BACKLOG-flagged requests
+ - cpu/cacheinfo: Fix teardown path
+ - cpufreq: dt: Tolerance applies on both sides of target voltage
+ - [mips*] Fix console output for Fulong2e system
+ - [mips*] bootmem: Fix mapstart calculation for contiguous maps
+ - [mips*] dma-default: Fix 32-bit fall back to GFP_DMA
+ - [mips*] CPS: Stop dangling delay slot from has_mt.
+ - [mips*] CPS: Don't include MT code in non-MT kernels.
+ - [mips*] CPS: #ifdef on CONFIG_MIPS_MT_SMP rather than CONFIG_MIPS_MT
+ - batman-adv: Make NC capability changes atomic
+ - batman-adv: Make TT capability changes atomic
+ - batman-adv: Make MCAST capability changes atomic
+ - batman-adv: Fix potential synchronization issues in mcast tvlv handler
+ - batman-adv: Fix potentially broken skb network header access
+ - [powerpc*] MSI: Fix race condition in tearing down MSI interrupts
+ - rsi: Fix possible leak when loading firmware
+ - UBIFS: Kill unneeded locking in ubifs_init_security
+ - UBI: Validate data_size
+ - UBI: return ENOSPC if no enough space available
+ - net: via/Kconfig: GENERIC_PCI_IOMAP required if PCI not selected
+ - iscsi-target: Avoid OFMarker + IFMarker negotiation
+ - mmc: core: Don't return an error for CD/WP GPIOs when GPIOLIB is unset
+ - mmc: core: fix dead loop of mmc_retune
+ - [arm64] efi: Fix boot crash by not padding between EFI_MEMORY_RUNTIME
+ regions
+ - [arm64] ftrace: fix function_graph tracer panic
+ - [arm64] readahead: fault retry breaks mmap file read random detection
+ - [m68k] Define asmlinkage_protect
+ - xen/blkback: free requests on disconnection
+ - net/xen-netfront: only napi_synchronize() if running
+ - igb: do not re-init SR-IOV during probe
+ - genirq: Fix race in register_irq_proc()
+ - clocksource: Fix abs() usage w/ 64bit values
+ - md/bitmap: don't pass -1 to bitmap_storage_alloc.
+ - nfs/filelayout: Fix NULL reference caused by double freeing of fh_array
+ - cpufreq: acpi_cpufreq: prevent crash on reading freqdomain_cpus
+ - [armhf] clk: ti: fix dual-registration of uart4_ick
+ - [armhf] clk: ti: clk-7xx: Remove hardwired ABE clock configuration
+ - [armhf] clk: samsung: fix cpu clock's flags checking
+ - namei: results of d_is_negative() should be checked after dentry
+ revalidation
+ - dm: fix AB-BA deadlock in __dm_destroy()
+ - dm cache: fix NULL pointer when switching from cleaner policy
+ - staging: speakup: fix speakup-r regression
+ - tty: fix stall caused by missing memory barrier in drivers/tty/n_tty.c
+ - drivers/tty: require read access for controlling terminal
+ - serial: 8250: add uart_config entry for PORT_RT2880
+ - serial: atmel: fix error path of probe function
+ - mm/slab: fix unexpected index mapping result of kmalloc_size(INDEX_NODE+1)
+ - blk-mq: avoid setting hctx->tags->cpumask before allocation
+ - sched/preempt: Fix cond_resched_lock() and cond_resched_softirq()
+ - 3w-9xxx: don't unmap bounce buffered commands
+ - sched/preempt, xen: Use need_resched() instead of should_resched()
+ - sched/preempt, powerpc, kvm: Use need_resched() instead of
+ should_resched()
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.5
+ - [powerpc*] net/ibm/emac: bump version numbers for correct work with
+ ethtool
+ - l2tp: protect tunnel->del_work by ref_count
+ - af_unix: Convert the unix_sk macro to an inline function for type safety
+ - af_unix: return data from multiple SKBs on recv() with MSG_PEEK flag
+ - net/unix: fix logic about sk_peek_offset
+ - skbuff: Fix skb checksum flag on skb pull
+ - skbuff: Fix skb checksum partial check.
+ - inet: fix races in reqsk_queue_hash_req()
+ - net: add pfmemalloc check in sk_add_backlog()
+ - ppp: don't override sk->sk_state in pppoe_flush_dev()
+ - inet: fix race in reqsk_queue_unlink()
+ - bpf: fix panic in SO_GET_FILTER with native ebpf programs
+ - ovs: do not allocate memory from offline numa node
+ - act_mirred: clear sender cpu before sending to tx
+ - bpf: clear sender_cpu before xmit
+ - ipv6: Don't call with rt6_uncached_list_flush_dev
+ - ethtool: Use kcalloc instead of kmalloc for ethtool_get_strings
+ - tipc: move fragment importance field to new header position
+ - netlink: Trim skb to alloc size to avoid MSG_TRUNC
+ - drm: Fix locking for sysfs dpms file
+ - [sparc*] crypto: initialize blkcipher.ivsize
+ - crypto: ahash - ensure statesize is non-zero
+ - memcg: convert threshold to bytes
+ - btrfs: check unsupported filters in balance arguments
+ - btrfs: fix use after free iterating extrefs
+ - [arm64] errata: use KBUILD_CFLAGS_MODULE for erratum #843419
+ - nfsd/blocklayout: accept any minlength
+ - [armhf] i2c: s3c2410: enable RuntimePM before registering to the core
+ - i2c: designware: Do not use parameters from ACPI on Dell Inspiron 7348
+ - i2c: designware-platdrv: enable RuntimePM before registering to the core
+ - workqueue: make sure delayed work run in local cpu
+ - [x86] KVM: fix SMI to halted VCPU
+ - [x86] KVM: fix RSM into 64-bit protected mode
+ - drm/qxl: fix framebuffer dirty rectangle tracking.
+ - drm/nouveau/fbcon: take runpm reference when userspace has an open fd
+ - drm/dp/mst: make mst i2c transfer code more robust.
+ - drm/radeon: attach tile property to mst connector
+ - drm/radeon: add pm sysfs files late
+ - dm thin: fix missing pool reference count decrement in pool_ctr error
+ path
+ - rbd: fix double free on rbd_dev->header_name
+ - timekeeping: Increment clock_was_set_seq in timekeeping_init()
+ - [arm64] Fix THP protection change logic
+ - svcrdma: handle rdma read with a non-zero initial page offset
+
+ [ Salvatore Bonaccorso ]
+ * KEYS: Fix race between key destruction and finding a keyring by name
+ * KEYS: Fix crash when attempt to garbage collect an uninstantiated keyring
+ (CVE-2015-7872)
+ * KEYS: Don't permit request_key() to construct a new keyring
+
+ [ Ben Hutchings ]
+ * [x86] drm: Enable DRM_AMDGPU and HSA_AMD as modules (Closes: #797752)
+ * media: Enable DVB_AS102, VIDEO_GO7007, VIDEO_GO7007_USB,
+ VIDEO_GO7007_LOADER, VIDEO_GO7007_USB_S2250_BOARD as modules
+ * net: Enable LIQUIDIO and MLX5_CORE as modules; enable MLX5_CORE_EN
+ * [x86] Enable X86_AMD_PLATFORM_DEVICE
+ * linux-manual: Fix regression in reproducibility in 4.2~rc8-1~exp1
+ * net: Enable GENEVE_CORE as module
+ - Re-enable GENEVE and OPENVSWITCH_GENEVE
+ * bpf: Enable BPF_SYSCALL
+ * ACPI: Enable ACPI_NFIT as module
+ * tcp: Enable TCP_CONG_CDG as module
+ * nftables: Enable NF_TABLES_NETDEV, NFT_REDIR_IPV4, NFT_REDIR_IPV6 as
+ modules
+ [This change was accidentally omitted]
+ * net/sched: Enable NET_CLS_FLOWER as module
+ [This change was accidentally omitted]
+ * SCSI: Enable SCSI_SNIC as module
+ * target: Enable TCM_USER2 as module
+ * net/phy: Enable DP83867_PHY as module
+ * drm: Enable DRM_VIRTIO_GPU as module
+ * HID: Enable HID_BETOP_FF, HID_PLANTRONICS as modules
+ * hwrng: Enable USB_CHAOSKEY as module
+ * ext4: Enable EXT4_ENCRYPTION
+ * f2fs: Enable F2FS_FS_ENCRYPTION
+ * vfs,nvdimm: Enable FS_DAX
+ [This change was accidentally omitted]
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 28 Oct 2015 05:46:49 +0900
+
+linux (4.2.3-2) unstable; urgency=medium
+
+ * nbd: Restore request timeout detection (Closes: #770479)
+ * Ignore ABI changes in all mmc host drivers (fixes FTBFS on armhf)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 14 Oct 2015 19:09:49 +0100
+
+linux (4.2.3-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.2
+ - nfc: netlink: Add check on NFC_ATTR_VENDOR_DATA
+ - nfc: nci: hci: Add check on skb nci_hci_send_cmd parameter
+ - blk-mq: fix buffer overflow when reading sysfs file of 'pending'
+ - blk-mq: fix race between timeout and freeing request
+ - mac80211: enable assoc check for mesh interfaces
+ - [powerpc*] cxl: Allow release of contexts which have been OPENED but not
+ STARTED (regression in 4.2)
+ - ext4: don't manipulate recovery flag when freezing no-journal fs
+ (regression in 3.18)
+ - Revert "ext4: remove block_device_ejected" (regression in 4.1)
+ - [arm64] kconfig: Move LIST_POISON to a safe value
+ - [arm64] entry: always restore x0 from the stack on syscall return
+ - [arm64] flush FP/SIMD state correctly after execve()
+ - [arm64] head.S: initialise mdcr_el2 in el2_setup
+ - [armhf,arm64] KVM: vgic: Check for !irqchip_in_kernel() when mapping
+ resources (regression in 4.0)
+ - [arm64] KVM: add workaround for Cortex-A57 erratum #852523
+ - [powerpc*] pseries: Fix corrupted pdn list (regression in 4.1)
+ - [powerpc*] eeh: Probe after unbalanced kref check (regression in 4.1)
+ - [powerpc*] eeh: Fix fenced PHB caused by eeh_slot_error_detail()
+ (regression in 3.18)
+ - [powerpc*] powernv/pci-ioda: fix 32-bit TCE table init in kdump kernel
+ (regression in 4.2)
+ - [powerpc*] powernv/pci-ioda: fix kdump with non-power-of-2 crashkernel=
+ (regression in 4.2)
+ - [powerpc*] pseries: Release DRC when configure_connector fails
+ (regression in 4.1)
+ - [powerpc*] mm: Recompute hash value after a failed update
+ - CIFS: fix type confusion in copy offload ioctl
+ - mm: check if section present during memory block registering
+ (regression in 3.19)
+ - [i386] mm: Initialize pmd_idx in page_table_range_init_count()
+ - [x86] i915: Set ddi_pll_sel in DP MST path (regression in 4.2)
+ - Btrfs: check if previous transaction aborted to avoid fs corruption
+ - nfsd: Fix an FS_LAYOUT_TYPES/LAYOUT_TYPES encode bug
+ - nfsd: ensure that the ol stateid hash reference is only put once
+ - nfsd: ensure that delegation stateid hash references are only put once
+ - NFSv4.1/pnfs: Fix atomicity of commit list updates (regression in 4.0)
+ - NFSv4: don't set SETATTR for O_RDONLY|O_EXCL
+ - NFSv4.1/pNFS: Fix borken function _same_data_server_addrs_locked()
+ - NFS: Fix a NULL pointer dereference of migration recovery ops for v4.2
+ client
+ - NFS: nfs_set_pgio_error sometimes misses errors
+ - NFS41/flexfiles: update inode after write finishes
+ - NFSv4: Force a post-op attribute update when holding a delegation
+ - NFS41/flexfiles: zero out DS write wcc
+ - NFSv4.1/flexfiles: Fix a protocol error in layoutreturn
+ - NFSv4.1: Fix a protocol issue with CLOSE stateids
+ - nfs: Fix truncated client owner id without proto type (regression in 4.2)
+ - Revert "NFSv4: Remove incorrect check in can_open_delegated()"
+ (regression in 3.19)
+ - svcrdma: Change maximum server payload back to RPCSVC_MAXPAYLOAD
+ (regression in 4.2)
+ - SUNRPC: Ensure that we wait for connections to complete before retrying
+ (regression in 4.0)
+ - SUNRPC: Lock the transport layer on shutdown
+ - [hppa] PCI: Enable 64-bit bus addresses on PA-RISC (regression in 4.2)
+ - [hppa] Use double word condition in 64bit CAS operation
+ - fs: if a coredump already exists, unlink and recreate with O_EXCL
+ - fs: Don't dump core if the corefile would become world-readable.
+ - mmc: sdhci-of-esdhc: add workaround for pre divider initial value
+ (regression in 4.2)
+ - mmc: sdhci: also get preset value and driver type for MMC_DDR52
+ (regression in 3.16)
+ - mmc: sdhci: fix dma memory leak in sdhci_pre_req() (regression in 4.0)
+ - mmc: core: fix race condition in mmc_wait_data_done
+ - [armhf] iommu/fsl: Really fix init section(s) content (regression in 4.0)
+ - [armhf] iommu/io-pgtable-arm: Unmap and free table when overwriting with
+ block
+ - [x86] iommu/vt-d: Really use upper context table when necessary
+ (regression in 4.1)
+ - eCryptfs: Invalidate dcache entries when lower i_nlink is zero
+ - hfs: fix B-tree corruption after insertion at position 0
+ - IB/srp: Handle partial connection success correctly
+ - IB/srp: Stop the scsi_eh_<n> and scsi_tmf_<n> threads if login fails
+ (regression in 4.2)
+ - IB/uverbs: reject invalid or unknown opcodes
+ - IB/uverbs: Fix race between ib_uverbs_open and remove_one
+ - IB/iser: Fix missing return status check in iser_send_data_out
+ (regression in 3.19)
+ - IB/iser: Fix possible bogus DMA unmapping (regression in 3.19)
+ - IB/mlx5: avoid destroying a NULL mr in reg_user_mr error flow
+ (regression in 3.19)
+ - IB/mlx4: Fix incorrect cq flushing in error state (regression in 4.0)
+ - hfs,hfsplus: cache pages correctly between bnode_create and bnode_free
+ - jbd2: avoid infinite loop when destroying aborted journal
+ (regression in 4.2)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.3
+ - phylib: fix device deletion order in mdiobus_unregister()
+ (regression in 4.2)
+ - sock, diag: fix panic in sock_diag_put_filterinfo
+ (regression in 3.19)
+ - net/ipv6: Correct PIM6 mrt_lock handling
+ - ipv6: fix multipath route replace error recovery (regression in 4.1)
+ - netlink, mmap: transform mmap skb into full skb on taps
+ - bridge: fix igmpv3 / mldv2 report parsing (regression in 4.2)
+ - [armhf] net: mvneta: fix DMA buffer unmapping in mvneta_rx()
+ (regression in 4.2)
+ - rtnetlink: catch -EOPNOTSUPP errors from ndo_bridge_getlink
+ (regression in 4.2)
+ - macvtap: fix TUNSETSNDBUF values > 64k (regression in 3.19)
+ - netlink: Fix autobind race condition that leads to zero port ID
+ (regression in 4.1)
+ - netlink: Replace rhash_portid with bound
+ - openvswitch: Zero flows on allocation.
+ - tcp: add proper TS val into RST packets (regression in 3.18)
+ - packet: Fix AF_PACKET ABI breakage in 4.2
+ - net: revert "net_sched: move tp->root allocation into fw_init()"
+ (regression in 4.1)
+ - fib_rules: fix fib rule dumps across multiple skbs
+ - ppp: fix lockdep splat in ppp_dev_uninit() (regression in 4.2)
+ - [armhf] mvneta: use inband status only when explicitly enabled
+ (regression in 4.1)
+ - net/mlx4_core: Capping number of requested MSIXs to MAX_MSIX
+ - zram: fix possible use after free in zcomp_create()
+ - [x86] hp-wmi: limit hotkey enable
+
+ [ Ben Hutchings ]
+ * ovl: conditionally use O_LARGEFILE in ovl_copy_up() (Closes: #800724)
+ * [x86] ALSA: hda - Disable power_save_node for Thinkpads (Closes: #800694)
+ * i2c: Enable I2C_CHARDEV as a module in all configurations with I2C
+ support (Closes: #800597)
+ * [mips*/octeon] Enable CAVIUM_CN63XXP1 (Closes: #800595)
+ * [mips*/octeon] Enable MMC, MMC_BLOCK, OCTEON_MMC and other drivers as
+ modules (Closes: #800594)
+ * ath10k: add qca6164 support (Closes: #800703)
+ * [!x86] net: Disable VMXNET3, only useful in VMware x86 virtual machines
+ * netfilter: conntrack: use nf_ct_tmpl_free in CT/synproxy error paths
+ (Closes: #800445)
+ * [arm64] Defer workaround for erratum #843419
+ * [x86] crypto camellia_aesni_avx: Fix CPU feature checks (Closes: #800934)
+
+ [ Salvatore Bonaccorso ]
+ * ipc: Initialize msg/shm IPC objects before doing ipc_addid()
+ (CVE-2015-7613)
+
+ [ Ian Campbell ]
+ * [armel] Update breaks on flash-kernel to anything earlier than 3.37 since
+ that version adds the knowledge that various additional kirkwood systems
+ need a DTB appending as of v3.17-rc1. (Closes: #797878)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 06 Oct 2015 17:44:55 +0100
+
+linux-tools (4.2-2) unstable; urgency=medium
+
+ * [x32] Don't attempt to build linux-perf (fixes FTBFS)
+ * [x32] Build hyperv-daemons package
+ * [alpha] uapi: Add support for __SANE_USERSPACE_TYPES__(fixes FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 02 Oct 2015 18:41:22 +0100
+
+linux (4.2.1-2) unstable; urgency=medium
+
+ * media: uvcvideo: Disable hardware timestamps by default (Closes: #794327)
+ * [mips*] udeb: Remove 'Provides: ata-modules' from kernel-image
+ * [hppa/parisc64-smp,mips*el/loongson-3] udeb: Remove i2c-modules again, as
+ the drivers that belong in it are actually built-in (fixes FTBFS)
+ * sctp: fix race on protocol/netns initialization (CVE-2015-5283)
+ * [mips*] pgtable-bits.h: Correct _PAGE_GLOBAL_SHIFT build failure
+ (regression in 4.0, but not a build failure for us)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 27 Sep 2015 14:17:34 +0100
+
+linux-tools (4.2-1) unstable; urgency=medium
+
+ * New upstream release
+
+ [ Ben Hutchings ]
+ * debian/bin,debian/control,debian/lib/python,debian/rules: Use Python 3
+ - debian/lib/python: Sync with linux package
+ * debian/bin/genorig.py: Make orig tarballs reproducible
+ * linux-perf: Fix installation directory for bash completions
+ * linux-perf: Remove shebang lines from perf scripts
+ * Set compiler flags according to dpkg-buildflags
+ * hyperv-daemons: Fix fortify format warning
+ * debian/rules: Add support for DEB_BUILD_OPTIONS=parallel=N
+ * debian/control: Update policy version to 3.9.6; no changes required
+ * linux-perf: Revert "perf build: Fix libunwind feature detection on 32-bit
+ x86", which was a regression for us
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 25 Sep 2015 22:55:41 +0100
+
+linux (4.2.1-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.1
+
+ [ Ben Hutchings ]
+ * [mips*el/loongson-3] udeb: Add fb-modules containing radeon driver
+ (Closes: #776274)
+ * [hppa/parisc64-smp,[mips*el/loongson-3] udeb: Add i2c-modules and
+ make fb-modules depend on it rather than including I2C modules
+ directly
+ * workqueue: Make flush_workqueue() available again to non GPL modules
+ (Closes: #798311)
+ * vfs: Fix possible escape from mount namespace (CVE-2015-2925):
+ - dcache: Handle escaped paths in prepend_path
+ - dcache: Reduce the scope of i_lock in d_splice_alias
+ - vfs: Test for and handle paths that are unreachable from their mnt_root
+ * aufs: Update support patches to aufs4.x-rcN-20150921
+ - mmap: Fix races in madvise_remove() and sys_msync() (Closes: #796036)
+ * RDS: verify the underlying transport exists before creating a connection
+ (CVE-2015-6937)
+ * Set ABI to 1
+ * e1000e: Fix tight loop implementation of systime read algorithm
+ * mmc: Drop "eMMC: Don't initialize partitions on RPMB flagged areas", as
+ upstream commit 4e93b9a6abc0 ("mmc: card: Don't access RPMB partitions for
+ normal read/write") looks like a cleaner solution
+ * mm: Change ZBUD back to built-in, as it's not really useful as a module
+ * USB: whiteheat: fix potential null-deref at probe (CVE-2015-5257)
+
+ [ Aurelien Jarno ]
+ * [mips*el] Fix BPF assembly code for pre-R2 CPUs. (fixes FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 25 Sep 2015 18:18:01 +0100
+
+linux (4.2-1~exp1) experimental; urgency=medium
+
+ * New upstream release: http://kernelnewbies.org/Linux_4.2
+
+ [ Ben Hutchings ]
+ * Remove all support for ia64 (Closes: #679545, #691576, #728706)
+ * [s390x] Compile with gcc-4.9 (Closes: #796845)
+ * linux-source: Depend on xz-utils, not bzip2 (Closes: #796940)
+ * gfs2: Make statistics unsigned, suitable for use with do_div()
+ (fixes FTBFS on mipsel,m68k)
+ * [amd64] Enable KALLSYMS_ALL (Closes: #660288), LIVEPATCH
+ * Re-enable various config options disabled by name changes in 4.2:
+ - SUNRPC_XPRT_RDMA replaced SUNRPC_XPRT_RDMA_{CLIENT,SERVER}
+ - [mips*el/loongson*] LOONGSON64 replaced LOONGSON
+ - [x86] COMEDI_8255_SA replaced COMEDI_8255
+ * [sparc] Remove linux-image, linux-header and udeb packages, as they
+ are redundant with sparc64 and neither is an official port
+ * Fix last issue that prevents a reproducible build (Closes: #769844):
+ - DocBook: Use a fixed encoding for output
+ * debian/bin,debian/control,debian/lib/python,debian/rules.real,
+ linux-support: Use Python 3
+ * debian/bin/genorig.py: Make orig tarballs reproducible
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 31 Aug 2015 02:08:19 +0100
+
+linux (4.2~rc8-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Aurelien Jarno ]
+ * [mips*] Build ext4 as module. Add core-modules and ext4-modules udeb.
+ Fixes FTBFS.
+ * [mips,mips64] Remove r4k-ip22, r5k-ip32 and sb1-bcm91250a flavours.
+ * [mipsel,mips64el] Remove sb1-bcm91250a flavour.
+
+ [ Ben Hutchings ]
+ * debian/control: Correct build-dependency on xz-utils, needed on all arches
+ * Fix more issues that prevent a reproducible build:
+ - Set LC_ALL=C.UTF-8
+ - Avoid creating man pages in source tree
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 24 Aug 2015 12:00:54 +0100
+
+linux-tools (4.2~rc7-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * genorig: Include more mips makefiles (fixes FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 17 Aug 2015 10:42:08 +0200
+
+linux-tools (4.2~rc6-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * Adjust for migration to git:
+ - Update .gitignore files
+ - debian/control: Update Vcs-* fields
+ - debian/rules: Exclude .git from maintainerclean rule
+ * Add packages of liblockdep (lockdep, liblockdep<version>, liblockdep-dev)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 14 Aug 2015 14:58:57 +0200
+
+linux (4.2~rc6-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * Adjust for migration to git:
+ - Update .gitignore files
+ - debian/control: Update Vcs-* fields
+ - README.Debian, README.source: Update references to svn
+ * [rt] Disable until it is updated for 4.2 or later
+ * debian/control: Drop Frederik Schüler from Uploaders
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 12 Aug 2015 20:48:00 +0200
+
+linux (4.1.6-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.6
+ - [mips*/*-malta] Don't reinitialise RTC (regression in 3.14)
+ - [mips*] Make set_pte() SMP safe.
+ - fsnotify: fix oops in fsnotify_clear_marks_by_group_flags()
+ - [x86] drm/i915: Declare the swizzling unknown for L-shaped configurations
+ - [x86] drm/i915: Replace WARN inside I915_READ64_2x32 with retry loop
+ - drm/radeon: rework audio detect (v4) (regression in 4.0)
+ - drm/radeon/combios: add some validation of lvds values
+ (regression in 4.0)
+ - ipr: Fix incorrect trace indexing
+ - ipr: Fix invalid array indexing for HRRQ
+ - Bluetooth: Fix NULL pointer dereference in smp_conn_security
+ - [armhf] dmaengine: pl330: Fix overflow when reporting residue in memcpy
+ (regression in 4.0)
+ - [armhf] dmaengine: pl330: Really fix choppy sound because of wrong residue
+ calculation (regression in 4.0)
+ - xhci: fix off by one error in TRB DMA address boundary check
+ - ath10k: fix qca61x4 hw2.1 support
+ - [sparc*] Fix userspace FPU register corruptions. (Closes: #789180)
+ - ASoC: dapm: Lock during userspace access
+ - ASoC: dapm: Don't add prefix to widget stream name (regression in 4.1)
+ - [x86] xen: Probe target addresses in set_aliased_prot() before the
+ hypercall
+ - xen/gntdevt: Fix race condition in gntdev_release()
+ - hwrng: core - correct error check of kthread_run call
+ - [x86] crypto: qat - Fix invalid synchronization between
+ register/unregister sym algs
+ - rbd: fix copyup completion race
+ - [armhf] OMAP2+: hwmod: Fix _wait_target_ready() for hwmods without sysc
+ - [x86] hwmon: (dell-smm) Blacklist Dell Studio XPS 8100
+ - ocfs2: fix BUG in ocfs2_downconvert_thread_do_work()
+ - ocfs2: fix shift left overflow
+ - nfsd: Drop BUG_ON and ignore SECLABEL on absent filesystem
+ - md/raid1: extend spinlock to protect raid1_end_read_request against
+ inconsistencies
+ - dm: fix dm_merge_bvec regression on 32 bit systems (regression in 3.19
+ - [x86] Input: alps - only Dell laptops have separate button bits for v2
+ dualpoint sticks (regression in 4.1)
+ - mm, vmscan: Do not wait for page writeback for GFP_NOFS allocations
+ - signalfd: fix information leak in signalfd_copyinfo
+ - signal: fix information leak in copy_siginfo_to_user
+ - signal: fix information leak in copy_siginfo_from_user32
+ - nfsd: do nfs4_check_fh in nfs4_check_file instead of nfs4_check_olstateid
+
+ [ Aurelien Jarno ]
+ * [mips*] Build ext4 as module. Add core-modules and ext4-modules udeb.
+ Fixes FTBFS.
+
+ [ Ben Hutchings ]
+ * [i386] udeb: Make gpio_keys_polled and leds-gpio optional in input-modules
+ as they are not built for the 686-pae flavour (fixes FTBFS)
+ * perf: Fix AUX buffer refcounting
+ * ovl: Revert changes in 4.1.5-1 due to regression (Reopens: #786925)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 23 Aug 2015 12:19:22 +0200
+
+linux (4.1.5-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.4
+ - Bluetooth: btbcm: allow btbcm_read_verbose_config to fail on Apple
+ (regression in 4.1)
+ - ath9k_htc: memory corruption calling set_bit()
+ - ieee802154: Fix sockaddr_ieee802154 implicit padding information leak.
+ - staging: vt6656: check ieee80211_bss_conf bssid not NULL
+ - staging: vt6655: check ieee80211_bss_conf bssid not NULL
+ - staging: vt6655: device_rx_srv check sk_buff is NULL
+ - staging: rtl8712: prevent buffer overrun in recvbuf2recvframe
+ - hid-sensor: Fix suspend/resume delay (regression in 4.0)
+ - ext4: fix race between truncate and __ext4_journalled_writepage()
+ - ext4: call sync_blockdev() before invalidate_bdev() in put_super()
+ - ext4: don't retry file block mapping on bigalloc fs with non-extent file
+ - ext4: fix fencepost error in lazytime optimization
+ - ext4: avoid deadlocks in the writeback path by using sb_getblk_gfp
+ - ext4: fix reservation release on invalidatepage for delalloc fs
+ - ext4: be more strict when migrating to non-extent based file
+ - ext4: correctly migrate a file with a hole at the beginning
+ - jbd2: use GFP_NOFS in jbd2_cleanup_journal_tail()
+ - jbd2: fix ocfs2 corrupt when updating journal superblock fails
+ - [armhf] rtc: snvs: fix wakealarm by call enable_irq_wake earlier
+ (regression in 3.19)
+ - i2c: mux: Use __i2c_transfer() instead of calling parent's master_xfer()
+ (regression in 4.1)
+ - i2c: use parent adapter quirks in mux (regression in 4.1)
+ - vb2: Don't WARN when v4l2_buffer.bytesused is 0 for multiplanar buffers
+ (regression in 4.1)
+ - media: Fix regression in some more dib0700 based devices
+ (regression in 3.17)
+ - rc-core: fix dib0700 scancode generation for RC5 (regression in 3.17)
+ - cx24117: fix a buffer overflow when checking userspace params
+ - af9013: Don't accept invalid bandwidth
+ - s5h1420: fix a buffer overflow when checking userspace params
+ - cx24116: fix a buffer overflow when checking userspace params
+ - libata: Fall back to unqueued READ LOG EXT if the DMA variant fails
+ (regression in 4.1)
+ - libata: Expose TRIM capability in sysfs
+ - libata: add ATA_HORKAGE_NOTRIM
+ - libata: add ATA_HORKAGE_MAX_SEC_1024 to revert back to previous
+ max_sectors limit (regression in 3.19)
+ - libata: force disable trim for SuperSSpeed S238
+ - [armhf] usb: dwc3: gadget: don't clear EP_BUSY too early
+ (regression in 3.15)
+ - USB: devio: fix a condition in async_completed()
+ - [armhf] phy: twl4030-usb: remove incorrect pm_runtime_get_sync() in
+ probe function. (regression in 3.17)
+ - usb: gadget: composite: Fix NULL pointer dereference (regression in 4.1)
+ - usb: gadget: f_fs: do not set cancel function on synchronous {read,write}
+ (regression in 4.0)
+ - USB: OHCI: Fix race between ED unlink and URB submission
+ (regression in 3.17)
+ - usb: core: lpm: set lpm_capable for root hub device (regression in 3.15)
+ - usb: xhci: Bugfix for NULL pointer deference in xhci_endpoint_init()
+ function
+ - dm cache: fix race when issuing a POLICY_REPLACE operation
+ - dm btree remove: fix bug in redistribute3
+ - block: loop: convert to per-device workqueue (regression in 4.0)
+ - block: loop: avoiding too many pending per work I/O (regression in 4.0)
+ - block: Do a full clone when splitting discard bios (Closes: #793326)
+ (regression in 3.14)
+ - [armhf] drm/tegra: dpaux: Fix transfers larger than 4 bytes
+ (regression in 3.15)
+ - drm/qxl: Do not cause spice-server to clean our objects
+ - drm/atomic: fix out of bounds read in for_each_*_in_state helpers
+ (regression in 4.1)
+ - drm/radeon: take the mode_config mutex when dealing with hpds (v2)
+ - [x86] drm/i915/ppgtt: Break loop in gen8_ppgtt_clear_range failure path
+ (regression in 4.1)
+ - [x86] drm/i915: fix backlight after resume on 855gm (regression in 3.19)
+ - [x86] drm/i915: Snapshot seqno of most recently submitted request.
+ (regression in 4.0)
+ - Revert "drm/radeon: dont switch vt on suspend" (regression in 4.1)
+ - drm/radeon: unpin cursor BOs on suspend and pin them again on resume (v2)
+ (regression in 4.1)
+ - drm/radeon: fix user ptr race condition
+ - drm/radeon/ci: silence a harmless PCC warning
+ - drm: add a check for x/y in drm_mode_setcrtc
+ - drm: Stop resetting connector state to unknown (regression in 4.1)
+ - libata: Fix regression when the NCQ Send and Receive log page is absent
+ - xfs: fix remote symlinks on V5/CRC filesystems
+ - xfs: don't truncate attribute extents if no extents exist
+ (regression in 4.1)
+ - tpm: Fix initialization of the cdev (regression in 4.0)
+ - tpm, tpm_crb: fail when TPM2 ACPI table contents look corrupted
+ (regression in 4.1)
+ - [armel,armhf] dmaengine: mv_xor: bug fix for racing condition in
+ descriptors cleanup
+ - md: clear mddev->private when it has been freed. (regression in 4.0)
+ - md: unlock mddev_lock on an error path. (regression in 4.0)
+ - md: Skip cluster setup for dm-raid (regression in 4.1)
+ - Btrfs: don't invalidate root dentry when subvolume deletion fails
+ (regression in 3.18)
+ - Btrfs: use kmem_cache_free when freeing entry in inode cache
+ - Btrfs: fix race between caching kthread and returning inode to inode
+ cache (regression in 3.15)
+ - Btrfs: fix fsync data loss after append write
+ - Btrfs: fix list transaction->pending_ordered corruption
+ (regression in 3.19)
+ - Btrfs: fix file corruption after cloning inline extents
+ - selinux: fix mprotect PROT_EXEC regression caused by mm change
+ (regression in 4.1)
+ - ceph/crush: fix a bug in tree bucket decode
+ - ACPI / PNP: Reserve ACPI resources at the fs_initcall_sync stage
+ (regression in 4.1)
+ - ACPI / LPSS: Fix up acpi_lpss_create_device() (regression in 4.0)
+ - ACPICA: Tables: Enable both 32-bit and 64-bit FACS (regression in 3.14)
+ - ACPICA: Tables: Enable default 64-bit FADT addresses favor
+ - ACPI / PCI: Fix regressions caused by resource_size_t overflow with
+ 32-bit kernel (regression in 4.0)
+ - mmc: sdhci: Restore behavior while creating OCR mask (regression in 3.17)
+ - PM / clk: Fix clock error check in __pm_clk_add() (regression in 3.19)
+ - RDMA/ocrdma: fix double free on pd (regression in 4.0)
+ - mm/hugetlb: introduce minimum hugepage order (regression in 3.12)
+ - PM / sleep: Increase default DPM watchdog timeout to 60
+ (regression in 3.13)
+ - firmware: dmi_scan: Only honor end-of-table for 64-bit tables
+ (regression in 3.19)
+ - mac80211: fix the beacon csa counter for mesh and ibss
+ (regression in 3.17)
+ - iwlwifi: mvm: fix ROC reference accounting (regression in 3.17)
+ - cfg80211: ignore netif running state when changing iftype
+ - e1000e: Cleanup handling of VLAN_HLEN as a part of max frame size
+ (regression in 3.15)
+ - ovl: lookup whiteouts outside iterate_dir() (regression in 4.0)
+ - pNFS: Fix a memory leak when attempted pnfs fails
+ - pNFS/flexfiles: Fix the reset of struct pgio_header when resending
+ - nfs: fixing infinite OPEN loop in 4.0 stateid recovery
+ - NFS: Ensure we set NFS_CONTEXT_RESEND_WRITES when requeuing writes
+ - nfs: fix potential credential leak in ff_layout_update_mirror_cred
+ - nfs: always update creds in mirror, even when we have an already
+ connected ds
+ - 9p: forgetting to cancel request on interrupted zero-copy RPC
+ - 9p: don't leave a half-initialized inode sitting around
+ - p9_client_write(): avoid double p9_free_req()
+ - [arm64] bpf: fix out-of-bounds read in bpf2a64_offset()
+ - [arm64] bpf: fix endianness conversion bugs
+ - [arm64] Don't report clear pmds and puds as huge
+ - mm: avoid setting up anonymous pages into file mapping
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.5
+ - [powerpc*] powernv: Fix race in updating core_idle_state
+ (regression in 3.19)
+ - Revert "Input: synaptics - allocate 3 slots to keep stability in image
+ sensors" (regression in 4.1)
+ - [hppa] Fix some PTE/TLB race conditions and optimize __flush_tlb_range
+ based on timing results
+ - [hppa] mm: Fix a memory leak related to pmd not attached to the pgd
+ (regression in 4.0)
+ - [armel,armhf] 8404/1: dma-mapping: fix off-by-one error in bitmap size
+ check (regression in 3.15)
+ - [mips*] c-r4k: Fix cache flushing for MT cores
+ - can: replace timestamp as unique skb attribute (regression in 4.1)
+ - vfs: freeing unlinked file indefinitely delayed
+ - [armhf] crypto: omap-des - Fix unmapping of dma channels
+ - [s390x] nmi: fix vector register corruption
+ - [s390x] bpf: clear correct BPF accumulator register
+ - genirq: Prevent resend to interrupts marked IRQ_NESTED_THREAD
+ - [x86] perf: Fix static_key bug in load_mm_cr4() (regression in 4.0)
+ - Revert "dm: only run the queue on completion if congested or no requests
+ pending" (regression in 4.1)
+ - scsi: fix host max depth checking for the 'queue_depth' sysfs interface
+ (regression in 3.19)
+ - scsi: fix memory leak with scsi-mq (regression in 3.17)
+ - mnt: Clarify and correct the disconnect logic in umount_tree
+ (regressions in 4.0.2, 4.1)
+ - mnt: In detach_mounts detach the appropriate unmounted mount
+ (regression in 4.1)
+ - ftrace: Fix breakage of set_ftrace_pid (regression in 3.16)
+ - [x86] iommu/vt-d: Fix VM domain ID leak (regression in 3.17)
+ - mmc: sdhci check parameters before call dma_free_coherent
+ (regression in 3.16)
+ - iwlwifi: mvm: fix antenna selection when BT is active
+ (regression in 3.17)
+ - md/raid1: fix test for 'was read error from last working device'.
+ - [armhf] spi: imx: Fix small DMA transfers (regression in 3.18)
+ - [armhf] regulator: s2mps11: Fix GPIO suspend enable shift wrapping bug
+ - usb-storage: ignore ZTE MF 823 card reader in mode 0x1225
+ - [armhf] Revert "serial: imx: initialized DMA w/o HW flow enabled"
+ (regression in 4.0)
+ - serial: core: Fix crashes while echoing when closing (regression in 3.19)
+ - efi: Handle memory error structures produced based on old versions of
+ standard (regression in 3.13)
+ - [x86] efi: Use all 64 bit of efi_memmap in setup_e820()
+ - rds: rds_ib_device.refcount overflow
+ - n_tty: signal and flush atomically (regression in 4.0)
+ - [x86] perf/intel/cqm: Return cached counter value from IRQ context
+ (regression in 4.1)f
+ - NFS: Don't revalidate the mapping if both size and change attr are up to
+ date (regression in 3.16)
+ - NFSv4: We must set NFS_OPEN_STATE flag in nfs_resync_open_stateid_locked
+ (regression in 4.0)
+ - NFS: Fix a memory leak in nfs_do_recoalesce (regression in 4.0)
+ - iscsi-target: Fix use-after-free during TPG session shutdown
+ - iscsi-target: Fix iscsit_start_kthreads failure OOPs (regression in 4.0)
+ - iscsi-target: Fix iser explicit logout TX kthread leak
+ (regression in 4.0)
+ - qla2xxx: Fix hardware lock/unlock issue causing kernel panic.
+ (regression in 3.18)
+ - qla2xxx: release request queue reservation. (regression in 3.18)
+ - qla2xxx: Remove msleep in qlt_send_term_exchange (regression in 3.18)
+ - qla2xxx: fix command initialization in target mode. (regression in 3.18)
+ - qla2xxx: kill sessions/log out initiator on RSCN and port down efvents
+ (regression in 3.18)
+ - drm/nouveau/fbcon/nv11-: correctly account for ring space usage
+ - drm/nouveau/kms/nv50-: guard against enabling cursor on disabled heads
+ - drm/nouveau: hold mutex when calling nouveau_abi16_fini()
+ - drm/nouveau/drm/nv04-nv40/instmem: protect access to priv->heap by mutex
+ - xfs: remote attribute headers contain an invalid LSN
+ - xfs: remote attributes need to be considered data
+
+ [ Ian Campbell ]
+ * [armhf] Enable cpufreq on some sunxi platforms (Closes: #793185)
+ - Enable autoloading of the cpufreq-dt driver.
+ - Enable autoloading of AXP20x regulator driver.
+
+ [ Ben Hutchings ]
+ * [x86] iio: Enable drivers for ACPI-discoverable devices as modules:
+ AK8975, BMC150_ACCEL, BMG160, BMP280, INV_MPU6050_IIO, JSA1212, KMX61,
+ KXCJK1013, MMA9551, MMA9553, SX9500
+ * Adjust for migration to git:
+ - Update .gitignore files
+ - debian/control: Update Vcs-* fields
+ - README.Debian, README.source: Update references to svn
+ * Bump ABI to 2
+ * virtio-net: drop NETIF_F_FRAGLIST (CVE-2015-5156)
+ * ovl: Add support for NFS as lower filesystem (Closes: #786925)
+ * perf: Fix double-free of the AUX buffer
+ * linux-source: Fix compression of the source tarball (Closes: #795199)
+ * udeb: Add newly enabled drivers:
+ - [i386] Add gpio_keys_polled, leds-gpio to input-modules
+ - Add virtio-input to input-modules
+ - Add toshsd to mmc-modules
+ - Add wd719x to scsi-extra-modules
+ - Move eeprom_93cx6 to core-modules; make scsi-extra-modules depend on it
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 15 Aug 2015 23:37:20 +0200
+
+linux-tools (4.1.4-2) unstable; urgency=medium
+
+ * [mips*,alpha,hppa] linux-perf: Add empty Build files for these architectures
+ (fixes FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 04 Aug 2015 17:11:46 +0100
+
+linux-tools (4.1.4-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.4
+ - perf bench numa: Fix to show proper convergence stats
+
+ [ Ben Hutchings ]
+ * linux-tools: Set $KBUILD_BUILD_TIMESTAMP from changelog and use it as man
+ page date
+ * hyperv-daemons: Only attempt to build package on i386, amd64
+ (fixes FTBFS on other architectures)
+ * linux-tools: Rename to linux-perf-<version>, since other tools are
+ in other binary packages
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 04 Aug 2015 00:47:58 +0100
+
+linux (4.1.3-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.3
+
+ [ Ben Hutchings ]
+ * [armel/kirkwood] ubi: Change UBIFS_FS and MTD_UBI from built-in to
+ modules, to reduce kernel image size (fixes FTBFS)
+ * debian/rules.real: Use dpkg-parsechangelog -S
+ * [rt] Update to 4.1.3-rt3 and re-enable
+ * KEYS: ensure we free the assoc array edit if edit is valid (CVE-2015-1333)
+ * [armel,sh4] linux-image: Recommend u-boot-tools rather than the obsolete
+ uboot-mkimage package (Closes: #793608)
+ * [i386/586] Enable KEYBOARD_GPIO_POLLED and LEDS_GPIO as modules, and
+ ALIX, NET5501, GEOS (Closes: #734204)
+ * [s390x] cachinfo: add missing facility check to init_cache_level()
+ (Closes: #793929)
+ * md: use kzalloc() when bitmap is disabled (CVE-2015-5697)
+ * inet: Enable IPVLAN, NET_FOU as modules; enable NET_FOU_IP_TUNNELS
+ * netfilter: Enable NFT_REDIR as module
+ * net/sched: Enable NET_ACT_VLAN, NET_ACT_BPF, NET_ACT_CONNMARK as modules
+ * mpls: Enable MPLS_ROUTING as module
+ * hci_uart: Enable BT_HCIUART_INTEL, BT_HCIUART_BCM
+ * SCSI: Enable SCSI_WD719X as module
+ * dm: Enable DM_LOG_WRITES as module
+ * cxgb4: Enable CHELSIO_T4_DCB
+ * ixgbe: Enable IXGBE_VXLAN
+ * i40e: Enable I40E_FCOE
+ * drm: Enable DRM_VGEM as module
+ * virtio: Enable VIRTIO_INPUT as module
+ * mmc: Enable MMC_TOSHIBA_PCI as module
+ * [x86] block: Enable BLK_DEV_PMEM as module; enable X86_PMEM_LEGACY
+ * [x86] tpm: Enable TCG_CRB as module
+ * debug: Enable DEBUG_LIST
+ * security: Apply and enable GRKERNSEC_PERF_HARDEN feature from Grsecurity,
+ disabling use of perf_event_open() by unprivileged users by default
+ (sysctl: kernel.perf_event_paranoid)
+ * Set ABI to 1
+
+ [ Ian Campbell ]
+ * [armhf] Set CONFIG_ARM_TEGRA_CPUFREQ as builtin.
+ * [armhf] Enable new drivers for sunxi platforms (Closes: #792388)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 03 Aug 2015 22:17:15 +0100
+
+linux-tools (4.1.2-1~exp1) experimental; urgency=medium
+
+ * New upstream release
+
+ [ Bastian Blank ]
+ * Add hyperv-daemons package, thanks to Hideki Yamane (closes: #782761)
+
+ [ Ben Hutchings ]
+ * hyperv-daemons: Rewrite description
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 13 Jul 2015 01:33:27 +0100
+
+linux (4.1.2-1~exp1) experimental; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.2
+
+ [ Ben Hutchings ]
+ * Fix more issues that prevent a reproducible build:
+ - linux-doc: DocBook: generate consistent IDs
+ - linux-manual: DocBook: Fix duplicate man pages
+ - linux-manual: kernel-doc: Use $KBUILD_BUILD_TIMESTAMP as man page date
+ * [i386] Disable VM86 (Closes: #792003)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 11 Jul 2015 18:01:42 +0100
+
+linux (4.1.1-1~exp1) experimental; urgency=medium
+
+ * New upstream release: http://kernelnewbies.org/Linux_4.1
+ - i40e: start up in VEPA mode by default (Closes: #790953)
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.1
+
+ [ Ben Hutchings ]
+ * Fix some issues that prevent a reproducible build (thanks to
+ Jérémy Bobbio):
+ - linux-image: Fix timestamps in the built-in initramfs
+ - linux-source: Fix timestamps and sort files in the tarball
+ - linux-doc,linux-manual: Drop original timestamp (and name) when
+ compressing
+ - linux-doc: Parse kernel-doc deterministically
+ * aufs: Apply patches to enable building aufs out-of-tree
+ * [x86] Enable MMIOTRACE (Closes: #790808)
+
+ [ maximilian attems ]
+ * [x86] Enable SND_SOC_INTEL_BROADWELL_MACH. (closes: #785422)
+
+ [ Ian Campbell ]
+ * [arm64+armhf] Enable SYSCON poweroff driver.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 07 Jul 2015 09:15:45 +0100
+
+linux (4.0.8-2) unstable; urgency=high
+
+ [ Uwe Kleine-König ]
+ * [rt] Update to 4.0.8-rt6
+
+ [ Ben Hutchings ]
+ * [amd64] Fix nested NMI handling (CVE-2015-3290, CVE-2015-3291,
+ CVE-2015-5157)
+ - Enable nested do_nmi handling for 64-bit kernels
+ - Remove asm code that saves cr2
+ - Switch stacks on userspace NMI entry
+ - Reorder nested NMI checks
+ - Use DF to avoid userspace RSP confusing nested NMI detection
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 22 Jul 2015 21:45:07 +0100
+
+linux (4.0.8-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.0.8
+ - netfilter: nft_rbtree: fix locking
+ - [armhf] clk-imx6q: refine sata's parent
+ - KVM: nSVM: Check for NRIPS support before updating control field
+ - [sparc*] Use GFP_ATOMIC in ldc_alloc_exp_dring() as it can be called in
+ softirq context
+ - bridge: fix multicast router rlist endless loop
+ - net: igb: fix the start time for periodic output signals
+ - net: don't wait for order-3 page allocation
+ - sctp: fix ASCONF list handling (CVE-2015-3212)
+ - bridge: fix br_stp_set_bridge_priority race conditions
+ - packet: read num_members once in packet_rcv_fanout()
+ - packet: avoid out of bounds read in round robin fanout
+ - neigh: do not modify unlinked entries
+ - tcp: Do not call tcp_fastopen_reset_cipher from interrupt context
+ - ip: report the original address of ICMP messages
+ - net/mlx4_en: Release TX QP when destroying TX ring
+ - net/mlx4_en: Wake TX queues only when there's enough room
+ - net/mlx4_en: Fix wrong csum complete report when rxvlan offload is
+ disabled
+ - mlx4: Disable HA for SRIOV PF RoCE devices
+ - net: phy: fix phy link up when limiting speed via device tree
+ - bnx2x: fix lockdep splat
+ - sctp: Fix race between OOTB responce and route removal
+ - [armhf] net: mvneta: introduce compatible string "marvell, armada-xp-neta"
+ - [armhf] mvebu: update Ethernet compatible string for Armada XP
+ - [armhf] net: mvneta: disable IP checksum with jumbo frames for Armada 370
+ - usb: gadget: f_fs: fix check in read operation
+ - usb: gadget: f_fs: add extra check before unregister_gadget_item
+ - crypto: talitos - avoid memleak in talitos_alg_alloc()
+ - Revert "crypto: talitos - convert to use be16_add_cpu()"
+ - [armhf/armmp-lpae] iommu/arm-smmu: Fix broken ATOS check
+ - [x86] iommu/amd: Handle large pages correctly in free_pagetable
+ - mmc: sdhci: fix low memory corruption
+ - [x86] intel_pstate: set BYT MSR with wrmsrl_on_cpu()
+ - selinux: fix setting of security labels on NFS
+ - [armhf] KVM: force execution of HCPTR access on VM exit
+ - [armhf] kvm: psci: fix handling of unimplemented functions
+ - [armhf] tegra20: Store CPU "resettable" status in IRAM
+ - [powerpc*] tick/idle: Do not register idle states with
+ CPUIDLE_FLAG_TIMER_STOP set in periodic mode
+ - [powerpc*] perf: Fix book3s kernel to userspace backtraces
+ - [x86] PCI: Use host bridge _CRS info on systems with >32 bit addressing
+ - [x86] PCI: Use host bridge _CRS info on Foxconn K8M890-8237A
+ - [s390x] KVM: fix external call injection without sigp interpretation
+ - [s390x] kdump: fix REGSET_VX_LOW vector register ELF notes
+ - [s390x] KVM: virtio-ccw: don't overwrite config space values
+ - [x86] KVM: properly restore LVT0
+ - [x86] KVM: make vapics_in_nmi_mode atomic
+ - fs: Fix S_NOSEC handling
+ - fs/ufs: revert "ufs: fix deadlocks introduced by sb mutex merge"
+ - fs/ufs: restore s_lock mutex
+ - vfs: Remove incorrect debugging WARN in prepend_path
+ - vfs: Ignore unlocked mounts in fs_fully_visible
+ - ufs: Fix warning from unlock_new_inode()
+ - ufs: Fix possible deadlock when looking up directories
+ - fs/ufs: restore s_lock mutex_init()
+
+ [ Ben Hutchings ]
+ * [ppc64el] Ignore ABI changes due to disabling HIBERNATION (fixes FTBFS)
+ * [x86] kvm: fix kvm_apic_has_events to check for NULL pointer (CVE-2015-4692)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 11 Jul 2015 04:58:05 +0100
+
+linux (4.0.7-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.0.6
+ - crush: ensuring at most num-rep osds are selected
+ - aio: fix serial draining in exit_aio()
+ - net: core: Correct an over-stringent device loop detection.
+ - [x86] bpf_jit: fix FROM_BE16 and FROM_LE16/32 instructions
+ - [x86] bpf_jit: fix compilation of large bpf programs
+ - net: phy: Allow EEE for all RGMII variants
+ - netlink: Reset portid after netlink_insert failure
+ - rtnl/bond: don't send rtnl msg for unregistered iface
+ - tcp/ipv6: fix flow label setting in TIME_WAIT state
+ - net/ipv6/udp: Fix ipv6 multicast socket filter regression
+ - net: sched: fix call_rcu() race on classifier module unloads
+ - ipv4: Avoid crashing in ip_error
+ - cdc_ncm: Fix tx_bytes statistics
+ - bridge: fix parsing of MLDv2 reports
+ - net: dp83640: fix broken calibration routine.
+ - net: dp83640: reinforce locking rules.
+ - net: dp83640: fix improper double spin locking.
+ - unix/caif: sk_socket can disappear when state is unlocked
+ - xen/netback: Properly initialize credit_bytes
+ - net_sched: invoke ->attach() after setting dev->qdisc
+ - sctp: Fix mangled IPv4 addresses on a IPv6 listening socket
+ - bridge: fix br_multicast_query_expired() bug
+ - udp: fix behavior of wrong checksums (CVE-2015-5364)
+ - tcp: fix child sockets to use system default congestion control if not set
+ - xen: netback: read hotplug script once at start of day.
+ - ipv4/udp: Verify multicast group is ours in upd_v4_early_demux()
+ - be2net: Replace dma/pci_alloc_coherent() calls with dma_zalloc_coherent()
+ - bridge: disable softirqs around br_fdb_update to avoid lockup
+ - netlink: Disable insertions/removals during rehash
+ - drivers/base: cacheinfo: handle absence of caches
+ - n_tty: Fix auditing support for cannonical mode
+ - [x86] iommu/vt-d: Allow RMRR on graphics devices too
+ - [x86] iommu/vt-d: Fix passthrough mode with translation-disabled devices
+ - ALSA: hda/realtek - Add a fixup for another Acer Aspire 9420
+ - ALSA: usb-audio: Add mic volume fix quirk for Logitech Quickcam Fusion
+ - ALSA: usb-audio: don't try to get Outlaw RR2150 sample rate
+ - ALSA: usb-audio: add MAYA44 USB+ mixer control names
+ - ALSA: usb-audio: fix missing input volume controls in MAYA44 USB(+)
+ - ALSA: usb-audio: add native DSD support for JLsounds I2SoverUSB
+ - [armhf] dmaengine: pl330: Fix hang on dmaengine_terminate_all on certain
+ boards
+ - dmaengine: Fix choppy sound because of unimplemented resume
+ - Input: alps - do not reduce trackpoint speed by half
+ - Input: synaptics - add min/max quirk for Lenovo S540
+ - Input: elantech - fix detection of touchpads where the revision matches
+ a known rate
+ - Input: elantech - add new icbody type
+ - block: fix ext_dev_lock lockdep report
+ - block: discard bdi_unregister() in favour of bdi_destroy()
+ - USB: cp210x: add ID for HubZ dual ZigBee and Z-Wave dongle
+ - USB: serial: ftdi_sio: Add support for a Motion Tracker Development Board
+ - usb: host: xhci: add mutex for non-thread-safe data
+ - usb: make module xhci_hcd removable
+ - [x86] asm/irq: Stop relying on magic JMP behavior for early_idt_handlers
+ - [armhf] dts: am335x-boneblack: disable RTC-only sleep to avoid hardware
+ damage
+ - [x86] drm/amdkfd: fix topology bug with capability attr.
+ - drm/radeon: use proper ACR regisiter for DCE3.2
+ - [x86] drm/i915/hsw: Fix workaround for server AUX channel clock divisor
+ - [x86] drm/i915: Don't skip request retirement if the active list is empty
+ - [x86] drm/i915: Fix DDC probe for passive adapters
+ - drm/radeon: fix freeze for laptop with Turks/Thames GPU.
+ - Revert "drm/radeon: don't share plls if monitors differ in audio support"
+ - Revert "drm/radeon: adjust pll when audio is not enabled"
+ - drm/radeon: Make sure radeon_vm_bo_set_addr always unreserves the BO
+ - serial: imx: Fix DMA handling for IDLE condition aborts
+ - [powerpc*] of/dynamic: Fix test for PPC_PSERIES
+ - virtio_pci: Clear stale cpumask when setting irq affinity
+ - [armel,armhf] bus: mvebu-mbus: do not set WIN_CTRL_SYNCBARRIER on non
+ io-coherent platforms.
+ - [armel,armhf] Revert "bus: mvebu-mbus: make sure SDRAM CS for DMA don't
+ overlap the MBus bridge window"
+ - [arm64] dts: mt8173-evb: fix model name
+ - mm/memory_hotplug.c: set zone->wait_table to null after freeing it
+ - md: Close race when setting 'action' to 'idle'.
+ - md: don't return 0 from array_state_store
+ - sched, numa: do not hint for NUMA balancing on VM_MIXEDMAP mappings
+ - blk-mq: free hctx->ctxs in queue's release handler
+ - cfg80211: wext: clear sinfo struct before calling driver
+ - [armhf] irqchip: sunxi-nmi: Fix off-by-one error in irq iterator
+ - Btrfs: send, add missing check for dead clone root
+ - Btrfs: send, don't leave without decrementing clone root's send_progress
+ - btrfs: incorrect handling for fiemap_fill_next_extent return
+ - btrfs: cleanup orphans while looking up default subvolume
+ - Btrfs: fix range cloning when same inode used as source and destination
+ - Btrfs: fix uninit variable in clone ioctl
+ - Btrfs: fix regression in raid level conversion
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.0.7
+ - crypto: caam - improve initalization for context state saves
+ - crypto: caam - fix RNG buffer cache alignment
+ - [x86] KVM: fix lapic.timer_mode on restore
+ - ALSA: hda - adding a DAC/pin preference map for a HP Envy TS machine
+ - tracing: Have filter check for balanced ops
+ - iser-target: Fix variable-length response error completion
+ - iser-target: Fix possible use-after-free
+ - drm/mgag200: Reject non-character-cell-aligned mode widths
+ - [x86] drm/i915: Always reset vma->ggtt_view.pages cache on unbinding
+ - [x86] Revert "drm/i915: Don't skip request retirement if the active list
+ is empty"
+ - drm/radeon: Add RADEON_INFO_VA_UNMAP_WORKING query
+ - ath3k: Add support of 0489:e076 AR3012 device
+ - ath3k: add support of 13d3:3474 AR3012 device
+ - b43: fix support for 14e4:4321 PCI dev with BCM4321 chipset
+ - cdc-acm: Add support of ATOL FPrint fiscal printers
+ - [armhf] EXYNOS: Fix failed second suspend on Exynos4
+ - [x86] kprobes: Return correct length in __copy_instruction()
+ - dm: fix NULL pointer when clone_and_map_rq returns !DM_MAPIO_REMAPPED
+ - [x86] drm/i915: Avoid GPU hang when coming out of s3 or s4
+ - [powerpc*] powernv: Restore non-volatile CRs after nap
+
+ [ Ben Hutchings ]
+ * mm: Re-enable ZBUD as module (Closes: #789094)
+ * mm: Change ZSMALLOC from built-in to module
+ * Revert "tcp: fix child sockets to use system default congestion control if
+ not set" to avoid ABI change
+ * [ppc64el] Disable HIBERNATION (Closes: #789070)
+ * [mips*] Correct FP ISA requirements (Closes: #781892)
+ * udeb: Add more drivers to sound-modules, thanks to Samuel Thibault
+ (Closes: #782495)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 06 Jul 2015 02:57:42 +0100
+
+linux (4.0.5-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.0.5
+ - [x86] iommu/amd: Fix bug in put_pasid_state_wait (regression in 4.0)
+ - [x86] fpu: Disable XSAVES* support for now (regression in 3.17)
+ - [x86] KVM: MMU: fix smap permission check
+ - [x86] kvm: fix crash in kvm_vcpu_reload_apic_access_page
+ - [x86] KVM: MMU: fix SMAP virtualization
+ - ktime: Fix ktime_divns to do signed division (regression in 3.17)
+ - omfs: fix sign confusion for bitmap loop counter (regression in 3.18)
+ - xfs: xfs_attr_inactive leaves inconsistent attr fork state behind
+ - xfs: xfs_iozero can return positive errno (regression in 3.17)
+ - ovl: don't remove non-empty opaque directory (regression in 4.0)
+ - [armhf] mfd: da9052: Fix broken regulator probe (regression in 3.19)
+ - libceph: request a new osdmap if lingering request maps to no osd
+ - Revert "libceph: clear r_req_lru_item in __unregister_linger_request()"
+ (regression in 3.18)
+ - Btrfs: fix racy system chunk allocation when setting block group ro
+ (regression in 4.0)
+ - xen/events: don't bind non-percpu VIRQs with percpu chip
+ - hwmon: (tmp401) Do not auto-detect chip on I2C address 0x37
+ - clk: add missing lock when call clk_core_enable in clk_set_parent
+ (regression in 4.0)
+ - brcmfmac: avoid null pointer access when brcmf_msgbuf_get_pktid() fails
+ - lib: Fix strnlen_user() to not touch memory after specified maximum
+ - vfs: d_walk() might skip too much
+ - module: Call module notifier on failure after complete_formation()
+ (regression in 3.16)
+ - Revert "ALSA: hda - Add mute-LED mode control to Thinkpad"
+ (regression in 4.0.3)
+ - xhci: Solve full event ring by increasing TRBS_PER_SEGMENT to 256
+ - [powerpc*] mce: fix off by one errors in mce event handling
+ (regression in 3.19)
+ - pty: Fix input race when closing (regression in 3.19)
+ - ext4: fix lazytime optimization
+ - ext4: fix NULL pointer dereference when journal restart fails
+ - ext4: check for zero length extent explicitly
+ - jbd2: fix r_count overflows leading to buffer overflow in journal recovery
+ - libata: Ignore spurious PHY event on LPM policy change
+ - libata: Blacklist queued TRIM on all Samsung 800-series
+ - [arm64] bpf: fix signedness bug in loading 64-bit immediate
+ (regression in 3.18)
+ - [x86] gpio: gpio-kempld: Fix get_direction return value
+ - [s390x] crypto: ghash - Fix incorrect ghash icv buffer handling.
+ - mac80211: move WEP tailroom size check
+ - mac80211: don't use napi_gro_receive() outside NAPI context
+ - [s390x] mm: correct return value of pmd_pfn (regression in 3.17)
+ - [armhf] EXYNOS: Fix dereference of ERR_PTR returned by
+ of_genpd_get_from_provider (regression in 4.0)
+ - [arm*] fix missing syscall trace exit
+ - [hppa] Fix crashes due to stack randomization on stack-grows-upwards
+ architectures
+ - kernfs: do not account ino_ida allocations to memcg
+ - nfsd: fix the check for confirmed openowner in nfs4_preprocess_stateid_op
+ - md/raid5: don't record new size if resize_stripes fails.
+ - Revert "HID: logitech-hidpp: support combo keyboard touchpad TK820"
+ (regression in 3.19)
+ - [mips*] fix FP mode selection in lieu of .MIPS.abiflags data
+ (regression in 4.0)
+ - ACPI / init: Fix the ordering of acpi_reserve_resources()
+ - iwlwifi: mvm: Free fw_status after use to avoid memory leak
+ (regression in 3.19)
+ - iwlwifi: pcie: prevent using unmapped memory in fw monitor
+ - drm/plane-helper: Adapt cursor hack to transitional helpers
+ (regression in 4.0)
+ - drm/radeon/audio: make sure connector is valid in hotplug case
+ - Revert "drm/radeon: only mark audio as connected if the monitor supports
+ it (v3)" (regression in 4.0.3)
+ - dm: fix casting bug in dm_merge_bvec() (regression in 3.19)
+ - dm: fix reload failure of 0 path multipath mapping on blk-mq devices
+ (regression in 4.0)
+ - UBI: block: Add missing cache flushes
+ - md: fix race when unfreezing sync_action (regression in 4.0)
+ - fs/binfmt_elf.c:load_elf_binary(): return -EINVAL on zero-length mappings
+ (regression in 4.0.2)
+
+ [ Ben Hutchings ]
+ * udeb: Remove i2o modules (fixes FTBFS on amd64) (Closes: #787004)
+ * Revert "libata: Ignore spurious PHY event on LPM policy change" to avoid
+ ABI change
+
+ [ Ian Campbell ]
+ * [armhf] Enable PCIe support for IMX6 boards. Patch from Vagrant
+ Cascadian (Closes: #787029)
+ * [armhf] Add stmmac-platform module to nic-modules udeb. (Closes: #786716)
+ * [arm] Fix mvebu-mbus for non-io-coherent platforms. In particular
+ armel/{orion5x,kirkwood}.
+ * [armel/kirkwood]: Enable CONFIG_ARM_KIRKWOOD_CPUIDLE. (Closes: #787716)
+
+ [ Uwe Kleine-König ]
+ * [rt] Update to 4.0.5-rt3
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 16 Jun 2015 15:40:49 +0100
+
+linux (4.0.4-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.0.3
+ - bpf: fix 64-bit divide
+ - route: Use ipv4_mtu instead of raw rt_pmtu (regression in 3.19)
+ - cxgb4: Fix MC1 memory offset calculation (regression in 3.19)
+ - [mips*] Revert "MIPS: Remove race window in page fault handling"
+ (regression in 3.17)
+ - [mips*] Fix race condition in lazy cache flushing.
+ - [mips*/octeon] Remove udelay() causing huge IRQ latency
+ - [mips*] Fix cpu_has_mips_r2_exec_hazard.
+ - [mips*] asm: elf: Set O32 default FPU flags (regression in 4.0)
+ - ALSA: emux: Fix mutex deadlock in OSS emulation
+ - cdc-acm: prevent infinite loop when parsing CDC headers.
+ (regression in 4.0)
+ - [arm64] dma-mapping: always clear allocated buffers
+ - [arm64] add missing PAGE_ALIGN() to __dma_free()
+ - [armhf] usb: chipidea: otg: remove mutex unlock and lock while stop and
+ start role (regression in 3.16)
+ - btrfs: unlock i_mutex after attempting to delete subvolume during send
+ (regression in 3.16)
+ - [x86] ACPI / SBS: Enable battery manager when present (regression in 3.18)
+ - rbd: end I/O the entire obj_request on error
+ - ext4: fix data corruption caused by unwritten and delayed extents
+ (Closes: #785672)
+ - ext4: move check under lock scope to close a race.
+ - SCSI: add 1024 max sectors black list flag (regression in 3.19)
+ - 3w-xxxx: fix command completion race
+ - 3w-9xxx: fix command completion race
+ - 3w-sas: fix command completion race
+ - drm/radeon: fix lockup when BOs aren't part of the VM on release
+ - drm/radeon: reset BOs address after clearing it.
+ - drm/radeon: check new address before removing old one
+ - hfsplus: don't store special "osx" xattr prefix on-disk
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.0.4
+ - [x86] spinlocks: Fix regression in spinlock contention detection
+ (regression in 4.0)
+ - [x86] ACPI / SBS: Add 5 us delay to fix SBS hangs on MacBook
+ (regression in 3.18)
+ - [x86] PCI/ACPI: Make all resources except [io 0xcf8-0xcff] available on
+ PCI bus (regression in 4.0)
+ - ACPI / PNP: add two IDs to list for PNPACPI device enumeration
+ (regression in 3.16)
+ - ocfs2: dlm: fix race between purge and get lock resource
+ - nilfs2: fix sanity check of btree level in nilfs_btree_root_broken()
+ - mnt: Fix fs_fully_visible to verify the root directory is visible
+ - mm/memory-failure: call shake_page() when error hits thp tail page
+ - vfio: Fix runaway interruptible timeout (regression in 4.0)
+ - Revert "dm crypt: fix deadlock when async crypto algorithm returns -EBUSY"
+ (regression in 4.0.2)
+ - block: destroy bdi before blockdev is unregistered. (regression in 4.0)
+ - blk-mq: fix race between timeout and CPU hotplug
+ - blk-mq: fix CPU hotplug handling
+ - [armhf] dts: imx6: phyFLEX: USB VBUS control is active-high
+ (regression in 3.16)
+ - [armhf] mvebu: armada-xp-openblocks-ax3-4: Disable internal RTC
+ - [armhf] OMAP2+: Fix omap off idle power consumption creeping up
+ (regression in 3.16)
+ - [armel,armhf] net fix emit_udiv() for BPF_ALU | BPF_DIV | BPF_K
+ intruction.
+ - drm: Zero out invalid vblank timestamp in drm_update_vblank_count.
+ (regression in 3.17)
+ - [x86] drm/i915/dp: there is no audio on port A
+ - [x86] drm/amdkfd: allow unregister process with queues
+ - drm/radeon: disable semaphores for UVD V1 (v2)
+ - drm/radeon: don't setup audio on asics that don't support it
+ - drm/radeon: fix userptr BO unpin bug v3
+ - drm/radeon: make VCE handle check more strict
+ - drm/radeon: make UVD handle checking more strict
+ - drm/radeon: more strictly validate the UVD codec
+ - pinctrl: Don't just pretend to protect pinctrl_maps, do it for real
+ - mmc: card: Don't access RPMB partitions for normal read/write
+
+ [ Ben Hutchings ]
+ * Fix error messages at boot on systems without an RTC (Closes: #784146):
+ - rtc: hctosys: do not treat lack of RTC device as error
+ - rtc: hctosys: use function name in the error log
+ * [rt] Update to 4.0.4-rt1 and re-enable
+ * linux-image: Depend on kmod without an alternative of module-init-tools
+ * linux-image: Add versioned Breaks on udev (<< 208-8~) due to #752742 and
+ #756312
+ * [i386] pnp: Disable PNPBIOS_PROC_FS
+ * [arm64] USB: Add support for XHCI on APM Mustang (Closes: #785707)
+ - Change USB_XHCI_HCD to built-in and enable USB_XHCI_PLATFORM as built-in
+ - Make xhci platform driver use 64 bit or 32 bit DMA
+ - Add support for ACPI identification to xhci-platform
+ * md/raid0: fix restore to sector variable in raid0_make_request
+ (Closes: #786372) (regression in 4.0.2)
+ * [x86] e1000e: Add support for Sunrise Point (i219) (Closes: #784546)
+ * [x86] config: Enable NEED_DMA_MAP_STATE by default when SWIOTLB is selected
+ (Closes: #786551)
+ * cdc_ncm: Fix tx_bytes statistics (regression in 4.0)
+ * [armhf] USB: musb: Fix order of conditions for assigning end point
+ operations (regression in 3.19)
+ * [armel/{kirkwood,orion5x}] Disable PM again to reduce kernel image size
+ * [armel/kirkwood] Enable DEBUG_MVEBU_UART0_ALTERNATE, replacing
+ DEBUG_MVEBU_UART_ALTERNATE
+ * i2o: Disable I2O
+ * [x86] vmwgfx: Enable DRM_VMWGFX_FBCON (Closes: #714929)
+ * media: Enable DVB_SMIPCIE as module (Closes: #785153)
+ * Bump ABI to 2
+ * [x86] i2c: Change I2C to built-in and enable ACPI_I2C_OPREGION
+ (Closes: #778896)
+ * usb-storage: Enable USB_UAS for the third time, hoping that it's finally
+ robust enough (Closes: #749014)
+ * zram: Enable ZRAM_LZ4_COMPRESS (Closes: #770958)
+ * HID: Enable HID_BATTERY_STRENGTH (Closes: #783214)
+ * [x86] ALSA: Enable SND_SOC_INTEL_BROADWELL_MACH as module (Closes: #785422)
+
+ [ Ian Campbell ]
+ * [armhf+arm64] Enabled generic SYSCON regmap reset driver
+ * [arm64] Enable PCI support and related modules, adjusting udeb module lists
+ for new modules.
+ * [arm64] Build XHCI platform drivers as a module.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 26 May 2015 02:30:06 +0100
+
+linux (4.0.2-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.0.1
+ - udptunnels: Call handle_offloads after inserting vlan tag.
+ - tcp: tcp_make_synack() should clear skb->tstamp
+ - bnx2x: Fix busy_poll vs netpoll
+ - bpf: fix verifier memory corruption
+ - Revert "net: Reset secmark when scrubbing packet"
+ - skbuff: Do not scrub skb mark within the same name space
+ - fs: take i_mutex during prepare_binprm for set[ug]id executables
+ (CVE-2015-3339)
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.0.2
+ - tcp: fix possible deadlock in tcp_send_fin()
+ - tcp: avoid looping in tcp_send_fin() (regression in 4.0)
+ - net: do not deplete pfmemalloc reserve
+ - net: fix crash in build_skb()
+ - net: rfs: fix crash in get_rps_cpus() (regression in 4.0)
+ - md: fix md io stats accounting broken (regression in 3.19)
+ - [x86] perf/intel: Fix Core2,Atom,NHM,WSM cycles:pp events
+ (regression in 3.19)
+ - [x86] fix special __probe_kernel_write() tail zeroing case
+ (regression in 4.0)
+ - Btrfs: fix log tree corruption when fs mounted with -o discard
+ - btrfs: don't accept bare namespace as a valid xattr
+ - Btrfs: fix inode eviction infinite loop after cloning into it
+ - Btrfs: fix inode eviction infinite loop after extent_same ioctl
+ - mm/hugetlb: use pmd_page() in follow_huge_pmd() (regression in 4.0)
+ - [powerpc] hugetlb: Call mm_dec_nr_pmds() in hugetlb_free_pmd_range()
+ (regression in 4.0)
+ - [s390x] KVM: fix handling of write errors in the tpi handler
+ - [s390x] KVM: reinjection of irqs can fail in the tpi handler
+ - [s390x] KVM: fix get_all_floating_irqs (regression in 3.15)
+ - [s390x] hibernate: fix save and restore of kernel text section
+ - KVM: use slowpath for cross page cached accesses
+ - [arm*] KVM: check IRQ number on userland injection
+ - [x86] KVM: VMX: Preserve host CR4.MCE value while in guest mode.
+ - [mips*el] Loongson-3: Add IRQF_NO_SUSPEND to Cascade irqaction
+ (regression in 3.19)
+ - [mips*] Hibernate: flush TLB entries earlier
+ - md/raid0: fix bug with chunksize not a power of 2.
+ - [armhf] spi: imx: read back the RX/TX watermark levels earlier
+ (regression in 3.18)
+ - ring-buffer: Replace this_cpu_*() with __this_cpu_*()
+ - NFS: fix BUG() crash in notify_change() with patch to chown_common()
+ - [armhf] fix broken hibernation (regression in 3.16)
+ - [armel,armhf] 8320/1: fix integer overflow in ELF_ET_DYN_BASE
+ - ALSA: emu10k1: don't deadlock in proc-functions
+ - Input: alps - fix touchpad buttons getting stuck when used with trackpoint
+ (regression in 4.0)
+ - mfd: core: Fix platform-device name collisions (regression in 3.19)
+ - fs/binfmt_elf.c: fix bug in loading of PIE binaries
+ - ptrace: fix race between ptrace_resume() and wait_task_stopped()
+ - ext4: make fsync to sync parent dir in no-journal for real this time
+ - mnt: Prevent circumvention of locked mounts using umount(MNT_DETACH)
+ (CVE-2014-9717)
+ - tpm: fix: sanitized code paths in tpm_chip_register() (regression in 4.0)
+ - [powerpc/powerpc64,ppc64*] perf: Cap 64bit userspace backtraces to
+ PERF_MAX_STACK_DEPTH (Closes: #784278)
+ - UBI: account for bitflips in both the VID header and data
+ - UBI: fix out of bounds write
+ - UBI: fix check for "too many bytes"
+ - target: Fix COMPARE_AND_WRITE with SG_TO_MEM_NOALLOC handling
+ - target/file: Fix SG table for prot_buf initialization
+ - [arm64] head.S: ensure visibility of page tables (regression in 3.15)
+ - [arm64] errata: add workaround for cortex-a53 erratum #845719
+ - [powerpc/powerpc64,ppc64*] powernv: Don't map M64 segments using M32DT
+ (regression in 3.17)
+ - [powerpc/powerpc64,ppc64] cell: Fix crash in iic_setup_cpu() after per_cpu
+ changes (regression in 3.19)
+ - [powerpc/powerpc64,ppc64] cell: Fix cell iommu after it_page_shift changes
+ - [i386/686-pae] ACPICA: Utilities: split IO address types from data type
+ models.
+ - ACPICA: Store GPE register enable masks upfront (regression in 3.19)
+ - [armhf] clk: samsung: exynos4: Disable ARMCLK down feature on Exynos4210
+ SoC (regression in 3.17)
+ - [armhf] clk: tegra: Use the proper parent for plld_dsi (regression in 4.0)
+ - [armhf] serial: imx: Fix clearing of receiver overrun flag
+ - serial: 8250: Check UART_SCR is writable (regression in 4.0)
+ - sd: Unregister integrity profile (regression in 3.18)
+ - sd: Fix missing ATO tag check (regression in 3.18)
+ - [x86] Drivers: hv: vmbus: Fix a bug in the error path in vmbus_open()
+ - IB/core: disallow registering 0-sized memory region
+ - IB/iser: Fix wrong calculation of protection buffer length
+ (regression in 3.16)
+ - i2c: Mark adapter devices with pm_runtime_no_callbacks (regression in 4.0)
+ - [armhf] drm/exynos: Enable DP clock to fix display on Exynos5250 and other
+ (regression in 4.0)
+ - [x86] drm/i915: vlv: fix save/restore of GFX_MAX_REQ_COUNT reg
+ (regression in 3.16)
+ - [x86] drm/i915: cope with large i2c transfers
+ - vfs: RCU pathwalk breakage when running into a symlink overmounting
+ something
+ - Revert "nfs: replace nfs_add_stats with nfs_inc_stats when add one"
+ (regression in 3.19)
+ - nfsd4: disallow ALLOCATE with special stateids (regression in 3.19)
+ - nfsd4: fix READ permission checking (regression in 3.16)
+ - nfsd4: disallow SEEK with special stateids (regression in 3.18)
+ - nfsd: eliminate NFSD_DEBUG (regression of linux-libc-dev in 3.19)
+ - nfs: fix high load average due to callback thread sleeping
+ (regression in 4.0)
+ - nfs: fix DIO good bytes calculation (regression in 4.0)
+ - nfs: remove WARN_ON_ONCE from nfs_direct_good_bytes
+ - NFS: Add a stub for GETDEVICELIST (regression in 3.18)
+ - sched/deadline: Always enqueue on previous rq when dl_task_timer() fires
+ (regression in 4.0)
+ - mac80211: send AP probe as unicast again (regression in 3.19)
+ - lib: memzero_explicit: use barrier instead of OPTIMIZER_HIDE_VAR
+ - [armhf] crypto: omap-aes - Fix support for unequal lengths
+ - memstick: mspro_block: add missing curly braces
+ - drivers: platform: parse IRQ flags from resources (regression in 3.18)
+
+ [ Ben Hutchings ]
+ * debian.py,gencontrol.py: Fix the version sanity checks for backports and
+ security/LTS uploads
+ * ipv4: Missing sk_nulls_node_init() in ping_unhash() (CVE-2015-3636)
+ * [armel/orion5x] Increase maximum kernel image size to ~2 MB, removing
+ support for DNS-323 (fixes FTBFS)
+ - Re-enable BLK_DEV_INTEGRITY, SCSI_UFSHCD, TCM_IBLOCK, AUDIT, USER_NS,
+ PCI_QUIRKS, FTRACE, DEBUG_BUGVERBOSE, SECURITY
+ - Enable DYNAMIC_DEBUG, FRONTSWAP
+ * [arm64,armhf,powerpcspe,x86] gpio: Explicitly enable GPIOLIB, as some
+ drivers now depend on rather than selecting it (fixes FTBFS on i386)
+ * [x86] thermal: Enable INT340X_THERMAL as module, replacing
+ ACPI_INT3403_THERMAL
+ * [x86] Re-enable IOSF_MBI and INTEL_RAPL as modules
+ * sound: Enable SND_USB_POD, SND_USB_PODHD, SND_USB_TONEPORT,
+ SND_USB_VARIAX as modules, replacing LINE6_USB
+ * media/rc: Enable IR_IGORPLUGUSB as module, replacing LIRC_IGORPLUGUSB
+ * [amd64] misc: Enable INTEL_MIC_BUS and re-enable INTEL_MIC_HOST as modules
+ * sound/firewire: Enable SND_OXFW as module, replacing SND_FIREWIRE_SPEAKERS
+ * [x86] Enable DW_DMAC and re-enable SND_SOC_INTEL_HASWELL_MACH,
+ SND_SOC_INTEL_BYT_RT5640_MACH, SND_SOC_INTEL_BYT_MAX98090_MACH as modules
+ * [x86] tpm: Enable TCG_TIS_I2C_ST33 as module, replacing TCG_ST33_I2C
+ * [armel/kirkwood] regulator: Re-enable REGULATOR, REGULATOR_FIXED_VOLTAGE
+ * [armel/kirkwood] sound: Enable SND_SIMPLE_CARD as module, replacing
+ SND_KIRKWOOD_SOC_OPENRD, SND_KIRKWOOD_SOC_T5325; re-enable
+ SND_SOC_ALC5623, SND_SOC_CS42L51_I2C as modules
+ * [alpha,armel/kirkwood,hppa,ia64,mips*/{octeon,sb1-bcm91250a}] Re-enable PM
+ * [armel/orion5x] Enable PM
+ * [armhf] sound: Enable SND_SIMPLE_CARD as module
+ * path_openat(): fix double fput()
+ * [x86] serial: Enable SERIAL_8250_DW as built-in
+ * [armhf] Enable ARM_ERRATA_430973 (Closes: #768890), ARM_ERRATA_643719,
+ ARM_ERRATA_754327, ARM_ERRATA_773022
+ * [x86] nfc: Enable NFC_HCI, NFC_MEI_PHY, NFC_PN544, NFC_PN544_MEI as
+ modules (Closes: #770323)
+ * Set ABI to 1
+ * mnt: Add missing pieces of fix for CVE-2014-9717:
+ - mnt: Fail collect_mounts when applied to unmounted mounts
+ - fs_pin: Allow for the possibility that m_list or s_list go unused.
+
+ [ Ian Campbell ]
+ * [armhf] Enable support for Freescale SNVS RTC. (Closes: #782364)
+ * [armhf] Add ehci-orion module to usb-modules udeb. (Closes: #783324)
+ * [armhf] imx-hdmi module is now called dw_hdmi-imx, so update fb-modules
+ udeb. Patches from both Vagrant Cascadian and Wookey. (Closes: #783275)
+ * [arm*] Install DTBS using dtbs_install target. (Closes: #784761)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 11 May 2015 04:29:06 +0100
+
+linux-tools (4.0.2-1) unstable; urgency=medium
+
+ * New upstream release
+ * Thanks to Luca Boccassi and Lukas Wunner for some hints on upgrading
+ to 4.0 (Closes: #778588)
+ * debian/control: Add gcc-multilib to Build-Depends in order to build
+ perf-read-vdso{,x}32
+ * linux-tools: Install perf-read-vdso{,x}32 in versioned directory
+ under /usr/lib
+ * linux-tools: Set ARCH=x86 when building perf for amd64, i386 or x32
+ * linux-kbuild: Include Makefile.kasan (Closes: #783681)
+ * linux-kbuild: Enable Large File Support (Closes: #778942)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 11 May 2015 03:53:12 +0100
+
+linux (4.0-1~exp1) experimental; urgency=medium
+
+ * New upstream release: http://kernelnewbies.org/Linux_4.0
+
+ [ Ben Hutchings ]
+ * [i386,s390] Remove 64-bit kernel flavours, which are also available
+ through multiarch
+ * [x86] Enable PARAVIRT_SPINLOCKS
+
+ -- maximilian attems <maks@debian.org> Tue, 21 Apr 2015 21:46:47 +0200
+
+linux (3.19.3-1~exp1) experimental; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.19.2
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.19.3
+
+ -- maximilian attems <maks@debian.org> Sun, 29 Mar 2015 20:14:33 +0200
+
+linux (3.19.1-1~exp1) experimental; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.19.1
+ - Bluetooth: ath3k: workaround the compatibility issue with xHCI controller
+ (Closes: #778463)
+ - random: Fix fast_mix() function (regression in 3.17)
+ - xfs: inode unlink does not set AGI buffer type
+ - xfs: set buf types when converting extent formats
+ - xfs: set superblock buffer type correctly
+ - iwlwifi: mvm: validate tid and sta_id in ba_notif
+ - iwlwifi: mvm: fix failure path when power_update fails in add_interface
+ (regression in 3.15)
+ - HID: i2c-hid: Limit reads to wMaxInputLength bytes for input events
+ (regression in 3.19)
+ - cpufreq: Set cpufreq_cpu_data to NULL before putting kobject
+ - [xen] manage: Fix USB interaction issues when resuming (regression in
+ 3.17)
+ - [xen] xen-scsiback: mark pvscsi frontend request consumed only after last
+ read
+ - megaraid_sas: endianness related bug fixes and code optimization
+ - rc-main: Re-apply filter for no-op protocol change (regression in 3.17)
+ - proc/pagemap: walk page tables under pte lock
+ - NFS: struct nfs_commit_info.lock must always point to inode->i_lock
+ (regression in 3.17)
+ - [mips*] asm: asmmacro: Replace "add" instructions with "addu"
+ - mm/hugetlb: pmd_huge() returns true for non-present hugepage
+ - blk-mq: fix double-free in error path
+ - nfs41: .init_read and .init_write can be called with valid pg_lseg
+ (regression in 3.15)
+ - SUNRPC: NULL utsname dereference on NFS umount during namespace cleanup
+ - NFSv4: Ensure we reference the inode for return-on-close in delegreturn
+ - NFSv4.1: Fix a kfree() of uninitialised pointers in
+ decode_cb_sequence_args
+ - sg: fix unkillable I/O wait deadlock with scsi-mq
+ - sg: fix EWOULDBLOCK errors with scsi-mq
+ - iscsi-target: Drop problematic active_ts_list usage
+ - cipso: don't use IPCB() to locate the CIPSO IP option (regression in 3.18)
+ - ring-buffer: Do not wake up a splice waiter when page is not full
+ (regression in 3.18)
+ - tty: Remove warning in tty_lock_slave() (regression in 3.19)
+ - tty: Prevent untrappable signals from malicious program
+ - USB: fix use-after-free bug in usb_hcd_unlink_urb()
+ - [armhf] usb: dwc3: gadget: add missing spin_lock() (regression in 3.19)
+ - usb: core: buffer: smallest buffer should start at ARCH_DMA_MINALIGN
+ - cdc-acm: add sanity checks
+ - ntp: Fixup adjtimex freq validation on 32-bit systems (regression in 3.19)
+ - udf: Check length of extended attributes and allocation descriptors
+ - [s390*] KVM: forward hrtimer if guest ckc not pending yet
+ (regression in 3.17)
+ - [s390*] KVM: base hrtimer on a monotonic clock
+ - [s390*] KVM: floating irqs: fix user triggerable endless loop
+ - [s390*] KVM: avoid memory leaks if __inject_vm() fails
+ - gpiolib: of: allow of_gpiochip_find_and_xlate to find more than one chip
+ per node (regression in 3.19)
+ - sb_edac: Fix detection on SNB machines (regression in 3.18)
+ - jffs2: fix handling of corrupted summary length
+ - samsung-laptop: Add use_native_backlight quirk, and enable it on some
+ models (regression in 3.16)
+ - libceph: fix double __remove_osd() problem
+ - btrfs: fix leak of path in btrfs_find_item
+ - Btrfs: fix fsync data loss after adding hard link to inode
+ - blk-throttle: check stats_cpu before reading it from sysfs
+ - [x86] efi: Avoid triple faults during EFI mixed mode calls
+ - [x86][xen] irq: Fix regression in 3.19
+ - Replace ACCESS_ONCE of non-scalar types with READ_ONCE
+ - kernel: tighten rules for ACCESS_ONCE
+ - [x86] spinlocks/paravirt: Fix memory corruption on unlock
+ - quota: Store maximum space limit in bytes
+
+ [ Ben Hutchings ]
+ * [armhf] Drop sun7i device tree patches which are included in 3.19
+ (fixes FTBFS) (Closes: #779799)
+ * nfsd: Enable NFSD_V4_SECURITY_LABEL
+
+ [ Helge Deller ]
+ * [hppa] Add virtio udeb modules
+ * [alpha] Add debian-installer udeb packages
+ * [alpha] Drop alpha-legacy kernel image
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 08 Mar 2015 15:29:45 +0000
+
+linux (3.19-1~exp1) experimental; urgency=medium
+
+ * New upstream release: http://kernelnewbies.org/Linux_3.19
+ * Enable SCSI_AM53C974 where tmscim was enabled.
+
+ -- maximilian attems <maks@debian.org> Thu, 12 Feb 2015 23:41:05 +0100
+
+linux (3.18.6-1~exp1) experimental; urgency=medium
+
+ [ Ben Hutchings ]
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.6
+
+ -- maximilian attems <maks@debian.org> Sat, 07 Feb 2015 22:38:37 +0100
+
+linux-tools (3.18.5-1~exp1) experimental; urgency=medium
+
+ * New upstream release
+ * linux-tools: Fix build configuration to avoid linking perf with libbfd
+ (Closes: #763002)
+ * linux-tools: Add a check that perf is not linked with libbfd
+ * [arm64] Enable building linux-tools, thanks to Steve Capper
+ (Closes: #771340)
+ * [armel,armhf] linux-tools: Enable use of libunwind
+ * [hppa,sparc] linux-tools: Enable use of libnuma
+ * [mips*,powerpcspe,x32] Enable building linux-tools
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 01 Feb 2015 02:53:07 +0100
+
+linux (3.18.5-1~exp1) experimental; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.4
+ - [hppa] fix out-of-register compiler error in ldcw inline assembler
+ function
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.5
+
+ [ Helge Deller ]
+ * [hppa] Enable CONFIG_PPDEV to avoid CUPS complaining with systemd
+
+ -- maximilian attems <maks@debian.org> Sat, 31 Jan 2015 22:20:40 +0100
+
+linux (3.18.3-1~exp1) experimental; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.1
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.2
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.3
+
+ [ Ian Campbell ]
+ * [armel/kirkwood]: Enable DEBUG_MVEBU_UART_ALTERNATE to match the behaviour
+ of previous boardfile based kirkwood kernels. Otherwise the kernel silently
+ crashes during boot.
+ * [armel/kirkwood]: Add versioned breaks on flash-kernel << 3.30~, versions
+ before this do not append a DTB on all platforms. This is required now that
+ board file support is removed.
+ * Add xhci-pci and xhci-plat-hcd to usb-modules udeb. (Inspired by #770912).
+ * [armhf/armmp]: Enable support for Tegra124 based platforms.
+
+ [ Helge Deller ]
+ * [hppa] udeb: Fix duplicate modules in ata-modules, pata-modules
+ (Closes: #770102)
+ * [hppa] Create build-dependencies on binutils-hppa64 and gcc-4.9-hppa64
+
+ [ Ben Hutchings ]
+ * [sh4] ftrace: Remove -m32 option from recordmcount.pl (Closes: #775611)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 18 Jan 2015 20:48:06 +0000
+
+linux (3.18-1~exp1) experimental; urgency=medium
+
+ * New upstream release: http://kernelnewbies.org/Linux_3.18
+
+ [ Ben Hutchings ]
+ * Remove aufs
+ * vfs: Enable OVERLAY_FS as module
+ * drivers/base: Disable UEVENT_HELPER, only needed for compatibility
+ with wheezy's udev package
+ * net: Enable 6LOWPAN as module; re-enable BT_6LOWPAN and
+ IEEE802154_6LOWPAN as modules
+ * net: Enable GENEVE as module; enable OPENVSWITCH_GENEVE
+ * ipv4: Enable TCP_CONG_DCTCP as module
+ * netfilter: Enable IP6_NF_NAT, IP_SET_HASH_MAC, IP_VS_FO, NF_LOG_ARP,
+ NF_LOG_BRIDGE, NFT_BRIDGE_REJECT, NFT_MASQ, NFT_MASQ_IPV4, NFT_MASQ_IPV6
+ as modules
+ * SCSI,xen: Enable XEN_SCSI_FRONTEND, XEN_SCSI_BACKEND as modules
+ * SCSI: Re-enable LIBFCOE, FCOE, FCOE_FNIC, SCSI_BNX2X_FCOE as modules
+ * drivers/net: Enable ET131X as module for all architectures
+ * wireless: Enable BRCMFMAC as module for all architectures;
+ enable BRCMFMAC_USB and BRCMFMAC_PCIE
+ * wireless: Enable RTL8192EE, RTL8821AE as modules for all architectures
+ (replacing R8192EE, R8821AE for x86 only)
+ * media: Enable VIDEO_VIVID as module (replacing VIDEO_VIVI)
+ * [armel/kirkwood] Enable ARCH_MULTI_V5, ARCH_MVEBU, MACH_KIRKWOOD and
+ MACH_NETXBIG, replacing ARCH_KIRKWOOD etc.
+ * [powerpc/powerpc64,ppc64*] Enable SCSI_IBMVFC as module, replacing
+ SCSI_IBMVSCSIS
+ * input/tablet: Enable TABLET_SERIAL_WACOM4 as module
+ * media: Enable MEDIA_SDR_SUPPORT; enable DVB_PT3, DVB_USB_DVBSKY,
+ USB_AIRSPY, USB_HACKRF, VIDEO_TW68 as modules; enable VIDEO_SOLO6X10 as
+ module on all architectures (replacing SOLO6X10 on x86);
+ enable USB_MSI2500 on all architectures (replacing USB_MSI3101 on x86)
+ * au0828: Enable VIDEO_AU0828_RC
+ * HID,gpio,i2c: Enable HID_CP2112 as module
+ * HID: Enable HID_PENMOUNT as module
+ * USB,leds: Enable USB_LED_TRIG
+ * leds: Disable LEDS_PCA9532, apparently only needed on armel/iop32x
+ * [x86] platform: Enable TOSHIBA_HAPS as module
+ * [x86] serial: Enable SERIAL_8250_FINTEK as module
+ * [x86] Enable MFD_MENF21BMC, LEDS_MENF21BMC, SENSORS_MENF21BMC_HWMON,
+ MENF21BMC_WATCHDOG as modules
+ * [x86] edac: Enable EDAC_IE31200 as module
+ * [x86] drivers/crypto: Enable CRYPTO_DEV_QAT_DH895xCC as module
+ * [x86] comedi: Enable COMEDI_NI_USB6501 as module
+ * [armel] Change configuration to reduce kernel image size (fixes FTBFS)
+ - [/kirkwood] netlink: Disable NETLINK_MMAP
+ - [/kirkwood] cgroups: Disable MEMCG
+ - [/kirkwood] Disable CHECKPOINT_RESTORE
+ - [/kirkwood] mm: Disable COMPACTION, KSM
+ - [/kirkwood] crypto: Disable CRYPTO_FIPS
+ - [/kirkwood] power: Disable HIBERNATION, PM_RUNTIME
+ - [/orion5x] mm: Disable COMPACTION, MIGRATION
+ - [/orion5x] block: Disable BLK_DEV_INTEGRITY
+ - [/orion5x] SCSI: Disable SCSI_UFSHCD
+ - [/orion5x] target: Disable TCM_IBLOCK
+ - [/orion5x] Disable AUDIT, DEBUG_BUGVERBOSE, PROFILING, OPROFILE, RD_LZO
+ * [armel] Include size of appended DTBs in image size check
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 11 Dec 2014 00:43:21 +0000
+
+linux (3.17.4-1~exp1) experimental; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.17.1
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.17.2
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.17.3
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.17.4
+
+ [ Ben Hutchings ]
+ * Set ABI to trunk
+ * aufs: Update to aufs3.17-20141020:
+ - support for AT_EMPTY_PATH/LOOKUP_EMPTY
+ - Show union filesystem paths in /proc/*/map_files/*
+ - bugfix, fix the returning size of the branch attr
+ * Compile with gcc-4.9 (except for ia64,m68k,s390*,sh4)
+
+ -- maximilian attems <maks@debian.org> Mon, 24 Nov 2014 00:00:27 +0100
+
+linux-tools (3.17-1~exp1) experimental; urgency=medium
+
+ * New upstream release
+ - usbip userspace moved to tools/usb/usbip
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 17 Oct 2014 14:58:51 +0200
+
+linux (3.17-1~exp1) experimental; urgency=medium
+
+ * New upstream release: http://kernelnewbies.org/Linux_3.17
+
+ * armel: Drop ixp4xx image.
+ * topconfig: Reenable renamed IP_NF_NAT. (closes #762458)
+ * udeb: refix renamed i2c-core.
+
+ -- maximilian attems <maks@debian.org> Tue, 14 Oct 2014 23:01:39 +0200
+
+linux (3.17~rc5-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * aufs: Update to aufs3.x-rcN-20140908
+
+ [ maximilian attems ]
+ * udeb: fix renamed i2ccore.
+
+ -- maximilian attems <maks@debian.org> Thu, 18 Sep 2014 23:50:00 +0200
+
+linux (3.16.7-ckt9-3) unstable; urgency=high
+
+ [ Ben Hutchings ]
+ * [x86] crypto: aesni - fix memory usage in GCM decryption (Closes: #782561)
+ (CVE-2015-3331)
+ * tcp: Fix crash in TCP Fast Open (Closes: #782515) (CVE-2015-3332)
+ * kernel: Provide READ_ONCE and ASSIGN_ONCE
+ * Replace use of ACCESS_ONCE on non-scalar types with READ_ONCE or barriers
+ as appropriate
+ * kernel: tighten rules for ACCESS ONCE
+ * kernel: Change ASSIGN_ONCE(val, x) to WRITE_ONCE(x, val)
+ * fs: take i_mutex during prepare_binprm for set[ug]id executables
+ (CVE-2015-3339)
+
+ [ Ian Campbell ]
+ * [xen] release per-queue Tx and Rx resource when disconnecting, fixing
+ network after save/restore or migration. (Closes: #782698)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 23 Apr 2015 16:41:27 +0100
+
+linux (3.16.7-ckt9-2) unstable; urgency=medium
+
+ * btrfs: simplify insert_orphan_item (Closes: #782362)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 13 Apr 2015 02:01:54 +0100
+
+linux (3.16.7-ckt9-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt8
+ - usb: core: buffer: smallest buffer should start at ARCH_DMA_MINALIGN
+ - btrfs: fix leak of path in btrfs_find_item
+ - tpm_tis: verify interrupt during init
+ - xfs: ensure buffer types are set correctly
+ - xfs: inode unlink does not set AGI buffer type
+ - xfs: set buf types when converting extent formats
+ - xfs: set superblock buffer type correctly
+ - [s390*] KVM: avoid memory leaks if __inject_vm() fails
+ - samsung-laptop: Add use_native_backlight quirk, and enable it on some
+ models (regression in 3.14)
+ - staging: comedi: comedi_compat32.c: fix COMEDI_CMD copy back
+ - nfs: don't call blocking operations while !TASK_RUNNING
+ - cdc-acm: add sanity checks
+ - USB: fix use-after-free bug in usb_hcd_unlink_urb()
+ - iwlwifi: mvm: fix failure path when power_update fails in add_interface
+ - tty: Prevent untrappable signals from malicious program
+ - cpufreq: Set cpufreq_cpu_data to NULL before putting kobject
+ - nfs41: .init_read and .init_write can be called with valid pg_lseg
+ (regression in 3.15)
+ - mei: mask interrupt set bit on clean reset bit (regression in
+ 3.16.7-ckt5)
+ - [s390*] KVM: floating irqs: fix user triggerable endless loop
+ - cfq-iosched: handle failure of cfq group allocation
+ - tracing: Fix unmapping loop in tracing_mark_write
+ - fsnotify: fix handling of renames in audit
+ - blk-mq: fix double-free in error path
+ - NFSv4.1: Fix a kfree() of uninitialised pointers in
+ decode_cb_sequence_args
+ - mm/hugetlb: pmd_huge() returns true for non-present hugepage
+ - mm/hugetlb: take page table lock in follow_huge_pmd()
+ - mm/hugetlb: fix getting refcount 0 page in hugetlb_fault()
+ - mm/hugetlb: add migration/hwpoisoned entry check in
+ hugetlb_change_protection
+ - mm/hugetlb: add migration entry check in __unmap_hugepage_range
+ - iscsi-target: Drop problematic active_ts_list usage
+ - mm/memory.c: actually remap enough memory
+ - mm: hwpoison: drop lru_add_drain_all() in __soft_offline_page()
+ (regression in 3.11)
+ - jffs2: fix handling of corrupted summary length
+ - dm mirror: do not degrade the mirror on discard error
+ - dm io: reject unsupported DISCARD requests with EOPNOTSUPP
+ - NFS: struct nfs_commit_info.lock must always point to inode->i_lock
+ (regression in 3.16.4)
+ - target: Add missing WRITE_SAME end-of-device sanity check
+ - target: Check for LBA + sectors wrap-around in sbc_parse_cdb
+ - Btrfs: fix fsync data loss after adding hard link to inode
+ - sg: fix read() error reporting
+ - IB/qib: Do not write EEPROM
+ - [amd64] EDAC, amd64_edac: Prevent OOPS with >16 memory controllers
+ (regression in 3.11)
+ - md/raid5: Fix livelock when array is both resyncing and degraded.
+ - locking/rtmutex: Avoid a NULL pointer dereference on deadlock
+ (regression in 3.16)
+ - time: adjtimex: Validate the ADJ_FREQUENCY values
+ - ntp: Fixup adjtimex freq validation on 32-bit systems
+ - dm: fix a race condition in dm_get_md
+ - dm snapshot: fix a possible invalid memory access on unload
+ - libceph: fix double __remove_osd() problem
+ - blk-throttle: check stats_cpu before reading it from sysfs
+ - debugfs: leave freeing a symlink body until inode eviction
+ - procfs: fix race between symlink removals and traversals
+ - autofs4 copy_dev_ioctl(): keep the value of ->size we'd used for
+ allocation
+ - clk-gate: fix bit # check in clk_register_gate() (regression in 3.11)
+ - [powerpc*] kernel: Avoid memory corruption at early stage
+ (regression in 3.14)
+ - GFS2: Fix crash during ACL deletion in acl max entry check in
+ gfs2_set_acl() (regression in 3.14)
+ - net: llc: use correct size for sysctl timeout entries (CVE-2015-2041)
+ - net: rds: use correct size for max unacked packets and bytes
+ (CVE-2015-2042)
+ - HID: i2c-hid: Limit reads to wMaxInputLength bytes for input events
+ (regression in 3.16.7-ckt4)
+ - net: sctp: fix race for one-to-many sockets in sendmsg's auto associate
+ - ipv6: mld: fix add_grhead skb_over_panic for devs with large MTUs
+ - IB/core: When marshaling ucma path from user-space, clear unused fields
+ (regression in 3.14)
+ - IB/core: Fix deadlock on uverbs modify_qp error flow (regression in 3.14)
+ - IB/mlx4: Fix wrong usage of IPv4 protocol for multicast attach/detach
+ (regression in 3.14)
+ - IB/iser: Use correct dma direction when unmapping SGs
+ (regression in 3.15)
+ - staging: comedi: cb_pcidas64: fix incorrect AI range code handling
+ - target: Fix R_HOLDER bit usage for AllRegistrants
+ - target: Avoid dropping AllRegistrants reservation during unregister
+ - target: Allow AllRegistrants to re-RESERVE existing reservation
+ - target: Allow Write Exclusive non-reservation holders to READ
+ - vhost/scsi: potential memory corruption
+ - mm: softdirty: unmapped addresses between VMAs are clean
+ - proc/pagemap: walk page tables under pte lock
+ http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt9
+ - netfilter: nft_compat: fix module refcount underflow
+ - netfilter: xt_socket: fix a stack corruption bug
+ - ipvs: add missing ip_vs_pe_put in sync code
+ - flowcache: Fix kernel panic in flow_cache_flush_task (regression in 3.15)
+ - tcp: make sure skb is not shared before using skb_get()
+ (regression in 3.16)
+ - gen_stats.c: Duplicate xstats buffer for later use
+ - ematch: Fix auto-loading of ematch modules.
+ - openvswitch: Fix net exit.
+ - net: reject creation of netdev names with colons
+ - macvtap: make sure neighbour code can push ethernet header
+ - udp: only allow UFO for packets from SOCK_DGRAM sockets
+ - gpiolib: of: allow of_gpiochip_find_and_xlate to find more than one chip
+ per node (regression in 3.16.7-ckt6)
+ - [x86] drm/i915: Check obj->vma_list under the struct_mutex
+ (regression in 3.15)
+ - ALSA: hda - Disable runtime PM for Panther Point again
+ (regression in 3.14)
+ - nilfs2: fix potential memory overrun on inode
+ - [armhf] usb: dwc3: dwc3-omap: Fix disable IRQ
+ - [i386] KVM: emulate: fix CMPXCHG8B on 32-bit hosts
+ - xhci: Allocate correct amount of scratchpad buffers
+ - USB: usbfs: don't leak kernel data in siginfo
+ - efi/libstub: Fix boundary checking in efi_high_alloc()
+ - USB: serial: fix potential use-after-free after failed probe
+ - USB: serial: fix tty-device error handling at probe
+ - staging: comedi: adv_pci1710: fix AI INSN_READ for non-zero channel
+ - mei: make device disabled on stop unconditionally
+ - NFSv4: Don't call put_rpccred() under the rcu_read_lock()
+ - btrfs: fix lost return value due to variable shadowing
+ - eCryptfs: don't pass fs-specific ioctl commands through
+ - drm/radeon: fix DRM_IOCTL_RADEON_CS oops
+ - [armhf] ASoC: omap-pcm: Correct dma mask
+ - [amd64] x86/asm/entry/64: Remove a bogus 'ret_from_fork' optimization
+ (CVE-2015-2830)
+ - Btrfs: fix data loss in the fast fsync path
+ - Btrfs:__add_inode_ref: out of bounds memory read when looking for
+ extended ref.
+ - svcrpc: fix memory leak in gssp_accept_sec_context_upcall
+ (regression in 3.12)
+ - SUNRPC: Always manipulate rpc_rqst::rq_bc_pa_list under xprt->bc_pa_lock
+ (regression in 3.15)
+ - net: cls_bpf: fix size mismatch on filter preparation
+ - net: cls_bpf: fix auto generation of per list handles
+ - qlge: Fix qlge_update_hw_vlan_features to handle if interface is down
+ (regression in 3.13)
+ - libsas: Fix Kernel Crash in smp_execute_task
+ - ALSA: hda - Fix regression of HD-audio controller fallback modes
+ (regression in 3.11)
+ - can: add missing initialisations in CAN related skbuffs
+ - ftrace: Fix en(dis)able graph caller when en(dis)abling record via sysctl
+ - ftrace: Fix ftrace enable ordering of sysctl ftrace_enabled
+ - [armhf] imx6qdl-sabresd: set swbst_reg as vbus's parent reg
+ - [armhf] imx6sl-evk: set swbst_reg as vbus's parent reg
+ - xen-pciback: limit guest control of command register (CVE-2015-2150)
+ - drm/vmwgfx: Reorder device takedown somewhat
+ - ALSA: control: Add sanity checks for user ctl id name string
+ - Revert "i2c: core: Dispose OF IRQ mapping at client removal time"
+ (regression in 3.16.7-ckt2)
+ - nilfs2: fix deadlock of segment constructor during recovery
+ (regression in 3.16.7-ckt7)
+ - clk: divider: fix calculation of maximal parent rate for a given divider
+ (regression in 3.15)
+ - [sparc*] Fix several bugs in memmove().
+ - net: sysctl_net_core: check SNDBUF and RCVBUF for min length
+ - inet_diag: fix possible overflow in inet_diag_dump_one_icsk()
+ - caif: fix MSG_OOB test in caif_seqpkt_recvmsg()
+ - rxrpc: bogus MSG_PEEK test in rxrpc_recvmsg()
+ - tcp: fix tcp fin memory accounting
+ - net: compat: Update get_compat_msghdr() to match copy_msghdr_from_user()
+ behaviour (regression in 3.13)
+ - tcp: make connect() mem charging friendly
+
+ [ Ian Campbell ]
+ * Initialise framebuffer console earlier. (Closes: #779935)
+ * [xen] Enable Xen MCE log support. (Closes: #779698)
+ * [armhf] mvebu: do not register custom DMA operations when coherency is
+ disabled (Closes: #780858)
+ * [armhf] Enable power control on various sunxi platforms, enable MFD_AXP20X
+ and REGULATOR_AXP20X and adding the necessary DTB nodes. (Closes: #781576)
+
+ [ Ben Hutchings ]
+ * [armel/kirkwood] linux-image: Add versioned Breaks against flash-kernel,
+ to ensure that an FDT is appended to the image if needed (Closes: #781193)
+ * Revert "quota: Store maximum space limit in bytes" to avoid ABI change
+ * IB/core: Prevent integer overflow in ib_umem_get address arithmetic
+ (CVE-2014-8159)
+ * Btrfs: make xattr replace operations atomic (CVE-2014-9710)
+ * ext4: fix ZERO_RANGE bug hidden by flag aliasing
+ * ext4: fix accidental flag aliasing in ext4_map_blocks flags
+ * ext4: allocate entire range in zero range (CVE-2015-0275)
+ * [x86] microcode/intel: Guard against stack overflow in the loader
+ (CVE-2015-2666)
+ * ipv6: Don't reduce hop limit for an interface (CVE-2015-2922)
+ * [powerpc/powerpc64,ppc64] Disable THERM_PM72 and enable its replacements
+ WINDFARM_PM72 and WINDFARM_RM31 as modules. Update the udeb config
+ accordingly. Thanks to Milan Kupcevic. (Closes: #781934)
+ * psmouse: Add support for FocalTech touchpads, thanks to Rafal Ramocki
+ (Closes: #780971)
+ * [x86] drm/i915: Add limited color range readout for HDMI/DP ports on
+ g4x/vlv/chv (Closes: #775217)
+ * HID: thingm: fix workqueue race on remove (Closes: #780055)
+ * [x86] Disable X86_VERBOSE_BOOTUP (Closes: #781953)
+ * eMMC: Don't initialize partitions on RPMB flagged areas (Closes: #782038)
+ * [x86] powercap / RAPL: change domain detection message (Closes: #781418)
+ * procfs: Avoid ABI change in 3.16.7-ckt8
+ * [powerpc/powerpc] udeb: Add fb-modules package containing radeonfb driver
+ (Closes: #782058)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 08 Apr 2015 01:03:08 +0100
+
+linux (3.16.7-ckt7-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt5
+ - [x86] vdso: Use asm volatile in __getcpu
+ - SCSI: fix regression in scsi_send_eh_cmnd() (regression in 3.16)
+ - Btrfs: don't delay inode ref updates during log replay
+ (regression in 3.16.7)
+ - mm: propagate error from stack expansion even for guard page
+ - vfio-pci: Fix the check on pci device type in vfio_pci_probe()
+ - rpc: fix xdr_truncate_encode to handle buffer ending on page boundary
+ (regression in 3.16)
+ - [arm64] efi: add missing call to early_ioremap_reset()
+ (regression in 3.16)
+ - exit: fix race between wait_consider_task() and wait_task_zombie()
+ (regression in 3.15)
+ - mm: prevent endless growth of anon_vma hierarchy
+ - mm: protect set_page_dirty() from ongoing truncation
+ - mm, vmscan: prevent kswapd livelock due to pfmemalloc-throttled process
+ being killed
+ - sched/deadline: Fix migration of SCHED_DEADLINE tasks
+ - HID: roccat: potential out of bounds in pyra_sysfs_write_settings()
+ - mm: Don't count the stack guard page towards RLIMIT_STACK
+ - mm: fix corner case in anon_vma endless growing prevention
+ - [arm*][xen] introduce xen_arch_need_swiotlb
+ - fsnotify: next_i is freed during fsnotify_unmount_inodes.
+ - [armhf] ASoC: eukrea-tlv320: Fix of_node_put() call with uninitialized
+ object (regression in 3.15)
+ - HID: i2c-hid: Do not free buffers in i2c_hid_stop() (regression in 3.15)
+ - ALSA: fireworks: fix an endianness bug for transaction length
+ (regression in 3.16)
+ - [armhf] mtd: nand: omap: Fix NAND enumeration on 3430 LDP
+ (regression in 3.13)
+ - ocfs2: fix the wrong directory passed to ocfs2_lookup_ino_from_name()
+ when link file (regression in 3.14)
+ - [powerpc*] Fix bad NULL pointer check in udbg_uart_getc_poll()
+ (regression in 3.12)
+ - nilfs2: fix the nilfs_iget() vs. nilfs_new_inode() races
+ - [armhf] OMAP4: PM: Only do static dependency configuration in
+ omap4_init_static_deps (regression in 3.11)
+ - [armel,armhf] Revert "ARM: 7830/1: delay: don't bother reporting bogomips
+ in /proc/cpuinfo" (regression in 3.12)
+ - gre: fix the inner mac header in nbma tunnel xmit path
+ (regression in 3.16.7-ckt3)
+ - netlink: Always copy on mmap TX.
+ - netlink: Don't reorder loads/stores before marking mmap netlink frame as
+ available
+ - batman-adv: Unify fragment size calculation (regression in 3.13)
+ - batman-adv: avoid NULL dereferences and fix if check (regression in 3.13)
+ - net: Fix stacked vlan offload features computation
+ - net: Reset secmark when scrubbing packet
+ - xen-netback: fixing the propagation of the transmit shaper timeout
+ (regression in 3.16)
+ - team: avoid possible underflow of count_pending value for notify_peers
+ and mcast_rejoin (regression in 3.12)
+ - usb: gadget: gadgetfs: Free memory allocated by memdup_user()
+ (regression in 3.15)
+ - iwlwifi: mvm: fix Rx with both chains (regression in 3.16)
+ - LOCKD: Fix a race when initialising nlmsvc_timeout (regression in 3.11)
+ - NFSv4.1: Fix client id trunking on Linux
+ - vhost-scsi: Add missing virtio-scsi -> TCM attribute conversion
+ - xhci: Check if slot is already in default state before moving it there
+ (regression in 3.14)
+ - USB: console: fix uninitialised ldisc semaphore (regression in 3.12)
+ - USB: console: fix potential use after free
+ - [armhf] usb: dwc3: gadget: Fix TRB preparation during SG
+ - [x86] ftrace/jprobes: Fix conflict between jprobes and function graph
+ tracing
+ - clk: Don't try to use a struct clk* after it could have been freed
+ - [x86] drm/i915: Evict CS TLBs between batches
+ - [xen] Revert "swiotlb-xen: pass dev_addr to swiotlb_tbl_unmap_single"
+ (regression in 3.16.7-ckt4)
+ http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt6
+ - ipvs: uninitialized data with IP_VS_IPV6
+ - netfilter: nfnetlink: validate nfnetlink header from batch
+ - time: settimeofday: Validate the values of tv from user
+ - drm/radeon: fix VM flush on cayman/aruba (v3)
+ - drm/radeon: fix VM flush on SI (v3)
+ - drm/radeon: fix VM flush on CIK (v3)
+ - drm/radeon: add a dpm quirk list (regression around 3.14)
+ - can: dev: fix crtlmode_supported check
+ - can: kvaser_usb: Don't free packets when tight on URBs
+ - drm/radeon: use rv515_ring_start on r5xx (regression in 3.12)
+ - PCI: Mark Atheros AR93xx to avoid bus reset (regression in 3.14)
+ - [x86] PCI: Clip bridge windows to fit in upstream windows
+ (regression in 3.16)
+ - [armhf] mvebu: completely disable hardware I/O coherency
+ - cifs: fix deadlock in cifs_ioctl_clone()
+ - ipr: wait for aborted command responses
+ - libata: allow sata_sil24 to opt-out of tag ordered submission
+ (regression in 3.14.4, 3.15)
+ - [media] vb2: fix vb2_thread_stop race conditions
+ - [i386/586] apic: Re-enable PCI_MSI support for non-SMP X86_32
+ (regression in 3.12)
+ - dm cache: share cache-metadata object across inactive and active DM
+ tables
+ - dm cache: fix problematic dual use of a single migration count variable
+ - Input: evdev - fix EVIOCG{type} ioctl
+ - tty: Fix pty master poll() after slave closes v2 (regression in 3.12)
+ - [armhf] bus: omap_l3_noc: Add resume hook to restore context
+ (regression in 3.16)
+ - decompress_bunzip2: off by one in get_next_block()
+ - kbuild: Fix removal of the debian/ directory (regression in 3.16)
+ - mm: get rid of radix tree gfp mask for pagecache_get_page
+ (regression in 3.16)
+ - regulator: core: fix race condition in regulator_put()
+ - ASoC: simple-card: Fix crash in asoc_simple_card_unref()
+ (regression in 3.15)
+ - [ppc64el] xmon: Fix another endiannes issue in RTAS call from xmon
+ - nfs: fix dio deadlock when O_DIRECT flag is flipped
+ - mac80211: properly set CCK flag in radiotap (regression in 3.12)
+ - [x86] drm/i915: Only fence tiled region of object.
+ - can: kvaser_usb: Do not sleep in atomic context
+ - can: kvaser_usb: Send correct context to URB completion
+ - rbd: fix rbd_dev_parent_get() when parent_overlap == 0
+ - rbd: drop parent_ref in rbd_dev_unprobe() unconditionally
+ - dm cache: fix missing ERR_PTR returns and handling
+ - dm thin: don't allow messages to be sent to a pool target in READ_ONLY
+ or FAIL mode
+ - [armhf] mvebu: don't set the PL310 in I/O coherency mode when I/O
+ coherency is disabled
+ - vm: add VM_FAULT_SIGSEGV handling support
+ - vm: make stack guard page errors return VM_FAULT_SIGSEGV rather than
+ SIGBUS
+ - perf: Tighten (and fix) the grouping condition
+ - iwlwifi: mvm: drop non VO frames when flushing (regression in 3.16)
+ - memcg: remove extra newlines from memcg oom kill log (regression in 3.15)
+ - ipv4: try to cache dst_entries which would cause a redirect
+ (regression in 3.16) (CVE-2015-1465)
+ http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt7
+ - [ppc64el] powerpc: add little endian flag to syscall_get_arch()
+ - [arm64] Fix up /proc/cpuinfo
+ - cifs: Complete oplock break jobs before closing file handle
+ (regression in 3.15)
+ - [arm64,or1k] lib/checksum.c: fix carry in csum_tcpudp_nofold
+ - [mips*] Fix kernel lockup or crash after CPU offline/online
+ - md/raid5: fix another livelock caused by non-aligned writes.
+ (regression in 3.16)
+ - drm/radeon: fix PLLs on RS880 and older v2 (regression in 3.15)
+ (Closes: #770790)
+ - [armhf/armmp-lpae] 8299/1: mm: ensure local active ASID is marked as
+ allocated on rollover
+ - PCI: Handle read-only BARs on AMD CS553x devices
+ (regression in 3.16.7-ckt4)
+ - mm: pagewalk: call pte_hole() for VM_PFNMAP during walk_page_range
+ - nilfs2: fix deadlock of segment constructor over I_SYNC flag
+ - ip: zero sockaddr returned on error queue
+ - net: rps: fix cpu unplug
+ - ipv6: stop sending PTB packets for MTU < 1280
+ - udp_diag: Fix socket skipping within chain
+ - ping: Fix race in free in receive path
+ - net: don't OOPS on socket aio
+ - ipv4: tcp: get rid of ugly unicast_sock
+ - ppp: deflate: never return len larger than output buffer
+ - [x86] hyperv: Fix the error processing in netvsc_send()
+ - Bluetooth: ath3k: workaround the compatibility issue with xHCI controller
+ - ceph: introduce global empty snap context
+ - drm/vmwgfx: Don't use memory accounting for kernel-side fence objects
+ - net:socket: set msg_namelen to 0 if msg_name is passed as NULL in msghdr
+ struct from userland.
+ - virtio_pci: defer kfree until release callback
+
+ [ Ian Campbell ]
+ * [armhf] Add DTB for Olimex A20-OLinuXino-LIME2. (Closes: #777455)
+ * [armhf] Enable CONFIG_BACKLIGHT_GPIO as a module. (Closes: #778783)
+ * [armhf] Enable FB_SIMPLE on sunxi platform, backporting fixes and DTS
+ entries.
+
+ [ Ben Hutchings ]
+ * shm: add memfd.h to UAPI export list, so kdbus will build
+ * [x86] HPET force enable for e6xx based systems (Closes: #772951)
+ * vfs: read file_handle only once in handle_to_path (CVE-2015-1420)
+ * ASLR: fix stack randomization on 64-bit systems (CVE-2015-1593)
+ * Revert "quota: Switch ->get_dqblk() and ->set_dqblk() to use bytes as
+ space units" to avoid ABI change
+ * rmap: Fix ABI change in 3.16.7-ckt5
+ * perf: Fix ABI change in 3.16.7-ckt6
+ * mm: Fix pagecache_get_page() ABI change in 3.16.7-ckt6
+ * tcp: Fix ABI change in 3.16.7-ckt7
+ * [x86] ACPI / video: Add disable_native_backlight quirk for various
+ Samsung models and Dell XPS15 L521X (Closes: #772440)
+ * [x86] ALSA: Enable SND_SOC, SND_SOC_INTEL_SST, SND_SOC_INTEL_HASWELL_MACH,
+ SND_SOC_INTEL_BYT_RT5640_MACH, SND_SOC_INTEL_BYT_MAX98090_MACH as modules
+ (Closes: #773835)
+ * arcmsr: Backport changes up to Linux 3.18 (Closes: #698821)
+ * [x86] drm/i915: Quietly reject attempts to create non-pagealigned stolen
+ objects (Closes: #763155)
+ * KEYS: request_key() should reget expired keys rather than give EKEYEXPIRED
+ (Closes: #758870)
+ * drm: Enable DRM_BOCHS, DRM_QXL as modules
+ - qxl: Disable by default, as it is incompatible with wheezy's
+ xserver-xorg-video-qxl. It can be forced to load with module
+ parameter modeset=1.
+ * of.h: Keep extern declaration of of_* variables when !CONFIG_OF
+ (for simplefb)
+
+ [ Helge Deller ]
+ * [alpha] build debian-installer udeb packages
+ * [hppa] build virtio udeb packages
+
+ [ Uwe Kleine-König ]
+ * Add support for Bananapro board, thanks Karsten Merker for the patch.
+ (Closes: 779311)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 01 Mar 2015 15:13:40 +0000
+
+linux (3.16.7-ckt4-3) unstable; urgency=medium
+
+ [ Ben Hutchings ]
+ * [sh4] ftrace: Remove -m32 option from recordmcount.pl (Closes: #775611)
+ * [x86] Revert "KVM: Fix of previously incomplete fix for CVE-2014-8480"
+ as that issue does not affect 3.16
+ * [amd64] tls, ldt: Stop checking lm in LDT_empty (regression in 3.16.7-ckt4)
+ * [x86] tls: Interpret an all-zero struct user_desc as "no segment"
+ (regression in 3.16.7-ckt4)
+ * net: sctp: fix slab corruption from use after free on INIT collisions
+ (CVE-2015-1421)
+
+ [ Ian Campbell ]
+ * [xen] cancel ballooning if adding new memory failed (Closes: #776448)
+ * [arm64] Only use the virtual counter (CNTVCT) on arm64. (Closes: #776957)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 03 Feb 2015 20:07:06 +0000
+
+linux-tools (3.16-3) unstable; urgency=medium
+
+ * linux-tools: Fix build configuration to avoid linking perf with libbfd
+ (Closes: #763002)
+ * linux-tools: Add a check that perf is not linked with libbfd
+ * [arm64] Enable building linux-tools, thanks to Steve Capper
+ (Closes: #771340)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 02 Feb 2015 22:05:59 +0000
+
+linux (3.16.7-ckt4-2) unstable; urgency=medium
+
+ [ Ian Campbell ]
+ * [arm64] udeb: Remove zlib-modules, as ZLIB_DEFLATE is now
+ built-in (fixes FTBFS)
+ * [xen] Revert "swiotlb-xen: pass dev_addr to swiotlb_tbl_unmap_single"
+ (Closes: #776237)
+
+ [ Helge Deller ]
+ * [hppa] udeb: Fix duplicate modules in ata-modules, pata-modules
+ (Closes: #770102)
+ * [hppa] Enable CONFIG_PPDEV to avoid CUPS complaining with systemd
+
+ [ Ben Hutchings ]
+ * crypto: Fix unprivileged arbitrary module loading (CVE-2013-7421,
+ CVE-2014-9644)
+ - prefix module autoloading with "crypto-"
+ - include crypto- module prefix in template
+ - add missing crypto module aliases
+ * [x86] KVM: Fix of previously incomplete fix for CVE-2014-8480
+ * [x86] KVM: SYSENTER emulation is broken (CVE-2015-0239)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 27 Jan 2015 03:57:26 +0000
+
+linux (3.16.7-ckt4-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt3
+ - [x86] kvm: use alternatives for VMCALL vs. VMMCALL if kernel text is
+ read-only
+ - [sparc*] Fix constraints on swab helpers.
+ - inetdevice: fixed signed integer overflow
+ - ieee802154: fix error handling in ieee802154fake_probe()
+ - bonding: fix curr_active_slave/carrier with loadbalance arp monitoring
+ (regression in 3.14)
+ - pptp: fix stack info leak in pptp_getname()
+ - ipx: fix locking regression in ipx_sendmsg and ipx_recvmsg
+ - net/mlx4_en: Add VXLAN ndo calls to the PF net device ops too
+ (regression in 3.15)
+ - net/mlx4_en: Advertize encapsulation offloads features only when VXLAN
+ tunnel is set (regression in 3.15)
+ - target: Don't call TFO->write_pending if data_length == 0
+ - vhost-scsi: Take configfs group dependency during VHOST_SCSI_SET_ENDPOINT
+ - iser-target: Handle DEVICE_REMOVAL event on network portal listener
+ correctly
+ - ASoC: dpcm: Fix race between FE/BE updates and trigger
+ - mac80211: Fix regression that triggers a kernel BUG with CCMP
+ (regression in 3.13)
+ - rt2x00: do not align payload on modern H/W
+ - bitops: Fix shift overflow in GENMASK macros
+ - [x86] Require exact match for 'noxsave' command line option
+ - [x86] drm/i915: Kick fbdev before vgacon (regression in 3.16)
+ - can: dev: avoid calling kfree_skb() from interrupt context
+ - [x86] mm: Set NX across entire PMD at boot
+ - of: Fix crash if an earlycon driver is not found
+ - btrfs: fix lockups from btrfs_clear_path_blocking
+ - [i386/686-pae,armhf/armmp-lpae] PCI: Support 64-bit bridge windows if we
+ have 64-bit dma_addr_t (regression in 3.14)
+ - ACPI / PM: Ignore wakeup setting if the ACPI companion can't wake up
+ (regression in 3.13)
+ - drm/radeon: fix endian swapping in vbios fetch for tdp table
+ - Bluetooth: Fix endian and alignment issue with ath3k version handling
+ - nfs: Don't busy-wait on SIGKILL in __nfs_iocounter_wait
+ - [armhf] 8109/1: mm: Modify pte_write and pmd_write logic for LPAE
+ - aio: fix incorrect dirty pages accouting when truncating AIO ring buffer
+ (regression in 3.12)
+ - [armel,armhf] mvebu: add missing of_node_put() call in coherency.c
+ (regression in 3.16)
+ - iio: Fix IIO_EVENT_CODE_EXTRACT_DIR bit mask
+ - spi: Fix mapping from vmalloc-ed buffer to scatter list
+ - SUNRPC: Fix locking around callback channel reply receive
+ - nfsd: Fix slot wake up race in the nfsv4.1 callback code
+ - bnx2fc: do not add shared skbs to the fcoe_rx_list
+ - Revert "xhci: clear root port wake on bits if controller isn't wake-up
+ capable" (regression in 3.16)
+ - usb: xhci: rework root port wake bits if controller isn't allowed to
+ wakeup
+ - ixgbe: Correctly disable VLAN filter in promiscuous mode
+ (regression in 3.16)
+ - ixgbe: fix use after free adapter->state test in ixgbe_remove/ixgbe_probe
+ (regression in 3.15)
+ - ALSA: hda - Limit 40bit DMA for AMD HDMI controllers
+ - PCI/MSI: Add device flag indicating that 64-bit MSIs don't work
+ - gpu/radeon: Set flag to indicate broken 64-bit MSI
+ - sound/radeon: Move 64-bit MSI quirk from arch to driver
+ - [powerpc*] pseries: Honor the generic "no_64bit_msi" flag
+ - [mips*] fix EVA & non-SMP non-FPU FP context signal handling
+ (regression in 3.15)
+ - [x86] drm/i915: Ignore SURFLIVE and flip counter when the GPU gets reset
+ (regression in 3.16)
+ - [powerpc*] 32 bit getcpu VDSO function uses 64 bit instructions
+ - [armhf] 8222/1: mvebu: enable strex backoff delay
+ - [armel,armhf] 8226/1: cacheflush: get rid of restarting block
+ - btrfs: zero out left over bytes after processing compression streams
+ - [armhf] net: sun4i-emac: fix memory leak on bad packet
+ - [armhf] i2c: omap: fix NACK and Arbitration Lost irq handling
+ - [media] s2255drv: fix payload size for JPG, MJPEG (regression in 3.15)
+ - nouveau: move the hotplug ignore to correct place. (regression in 3.16.4)
+ - mm: frontswap: invalidate expired data on a dup-store failure
+ - mm/vmpressure.c: fix race in vmpressure_work_fn()
+ - xen-netfront: Remove BUGs on paged skb data which crosses a page boundary
+ - drivers/input/evdev.c: don't kfree() a vmalloc address
+ (regression in 3.13)
+ - mm: fix anon_vma_clone() error treatment (regression in 3.12)
+ - ip_tunnel: the lack of vti_link_ops' dellink() cause kernel panic
+ - vxlan: Fix race condition between vxlan_sock_add and vxlan_sock_release
+ - bond: Check length of IFLA_BOND_ARP_IP_TARGET attributes
+ - gre: Set inner mac header in gro complete (regression in 3.16.7-ckt1)
+ - [mips*] bpf: Fix broken BPF_MOD
+ http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt4
+ - [x86] drm/i915: don't warn if backlight unexpectedly enabled
+ (Closes: #757805)
+ - [x86] drm/i915/dp: only use training pattern 3 on platforms that
+ support it (regression in 3.15)
+ - btrfs: don't go readonly on existing qgroup items
+ - writeback: fix a subtle race condition in I_DIRTY clearing
+ - [s390*] KVM: flush CPU on load control
+ - UBI: Fix double free after do_sync_erase()
+ - [x86] Drivers: hv: util: make struct hv_do_fcopy match Hyper-V host
+ messages (regression for amd64 in 3.16.7)
+ - Drivers: hv: vmbus: Fix a race condition when unregistering a device
+ - misc: genwqe: check for error from get_user_pages_fast()
+ - drbd: merge_bvec_fn: properly remap bvm->bi_bdev
+ - PCI: Restore detection of read-only BARs
+ - scsi: correct return values for .eh_abort_handler implementations
+ - genhd: check for int overflow in disk_expand_part_tbl()
+ - Btrfs: make sure we wait on logged extents when fsycning two subvols
+ - Btrfs: make sure logged extents complete in the current transaction V3
+ - Btrfs: do not move em to modified list when unpinning
+ - [armhf] mvebu: disable I/O coherency on non-SMP situations on
+ Armada 370/375/38x/XP
+ - nfs41: fix nfs4_proc_layoutget error handling
+ - USB: cdc-acm: check for valid interfaces
+ - HID: i2c-hid: fix race condition reading reports
+ - [armhf] mfd: twl4030-power: Fix regression with missing compatible flag
+ (regression in 3.16)
+ - [armhf] serial: samsung: wait for transfer completion before clock
+ disable
+ - n_tty: Fix read_buf race condition, increment read_head after pushing
+ data (regression in 3.12)
+ - dm cache: only use overwrite optimisation for promotion when in
+ writeback mode
+ - dm cache: dirty flag was mistakenly being cleared when promoting via
+ overwrite
+ - dm bufio: fix memleak when using a dm_buffer's inline bio
+ - iwlwifi: dvm: fix flush support for old firmware (regression in
+ 3.16.7-ckt1)
+ - iwlwifi: mvm: update values for Smart Fifo (regression in 3.14)
+ - iommu/vt-d: Fix an off-by-one bug in __domain_mapping()
+ - dm crypt: use memzero_explicit for on-stack buffer
+ - mnt: Implicitly add MNT_NODEV on remount when it was implicitly added by
+ mount (regression in 3.16.3)
+ - umount: Disallow unprivileged mount force
+ - md/raid5: fetch_block must fetch all the blocks handle_stripe_dirtying
+ wants.
+ - [x86] drm/i915: Only warn the first time we attempt to mmio whilst
+ suspended (regression in 3.15)
+ - drm/vmwgfx: Fix error printout on signals pending
+ - drm/radeon: check the right ring in radeon_evict_flags()
+ - swiotlb-xen: pass dev_addr to xen_dma_unmap_page and
+ xen_dma_sync_single_for_cpu
+ - [armhf/armmp] swiotlb-xen: remove BUG_ON in xen_bus_to_phys
+ - swiotlb-xen: call xen_dma_sync_single_for_device when appropriate
+ - swiotlb-xen: pass dev_addr to swiotlb_tbl_unmap_single
+ - [powerpc] book3s: Fix partial invalidation of TLBs in MCE code.
+ - [armhf] clocksource: arch_timer: Fix code to use physical timers when
+ requested (regression in 3.11)
+ - userns: Prevent evasion of group negative permissions through a userns
+ (CVE-2014-8989):
+ + Don't allow setgroups until a gid mapping has been setablished
+ + Don't allow unprivileged creation of gid mappings
+ + Add a knob to disable setgroups on a per user namespace basis
+ + Allow setting gid_maps without privilege when setgroups is disabled
+ - KEYS: Fix stale key registration at error path
+ - blk-mq: Fix a use-after-free
+ - blk-mq: Fix a race between bt_clear_tag() and bt_get()
+ - nfsd4: fix xdr4 count of server in fs_location4 (regression in 3.16)
+ - [x86] drm/i915: Don't complain about stolen conflicts on gen3
+ (regression in 3.12)
+ - [x86] kvm: Clear paravirt_enabled on KVM guests for espfix32's benefit
+ (CVE-2014-8134)
+ - blk-mq: Fix uninitialized kobject at CPU hotplugging
+ - ncpfs: return proper error from NCP_IOC_SETROOT ioctl
+ - [armhf] rtc: omap: fix clock-source configuration (regression in 3.16)
+ - exit: pidns: alloc_pid() leaks pid_namespace if child_reaper is exiting
+ - [amd64] switch_to(): Load TLS descriptors before switching DS and ES
+ (CVE-2014-9419)
+ - [x86] KVM: nVMX: Disable unrestricted mode if ept=0 (regression in 3.13)
+ - [x86] KVM: em_ret_far overrides cpl (follow-up to CVE-2014-3647 fix)
+ - pstore-ram: Fix hangs by using write-combine mappings
+ - HID: i2c-hid: prevent buffer overflow in early IRQ
+ - mac80211: fix multicast LED blinking and counter (regression in
+ 3.16.7-ckt2)
+ - cfg80211: avoid mem leak on driver hint set
+ - nl80211: check matches array length before acessing it
+ - cfg80211: don't WARN about two consecutive Country IE hint
+ (regression in 3.14)
+ - tracing/sched: Check preempt_count() for current when reading task->state
+ (regression in 3.13)
+ - [x86] tls: Validate TLS entries to protect espfix (CVE-2014-8133)
+ - [x86] tls: Disallow unusual TLS segments
+ - isofs: Fix infinite looping over CE entries (CVE-2014-9420)
+ - mac80211: free management frame keys when removing station
+ - ceph: do_sync is never initialized (regression in 3.12)
+ - mnt: Fix a memory stomp in umount (regression in 3.14)
+ - ocfs2: fix journal commit deadlock
+ - md/bitmap: always wait for writes on unplug.
+ - [armhf] mmc: omap_hsmmc: Fix UHS card with DDR50 support (regression in
+ 3.16)
+ - [x86] mmc: sdhci-pci-o2micro: Fix Dell E5440 issue (regression in 3.14)
+ - dm space map metadata: fix sm_bootstrap_get_nr_blocks()
+ - dm thin: fix a race in thin_dtr
+ - eCryptfs: Force RO mount when encrypted view is enabled
+ - eCryptfs: Remove buggy and unnecessary write in file name decode routine
+ - tcm_loop: Fix wrong I_T nexus association
+ - Btrfs: fix fs corruption on transaction abort if device supports discard
+ - [x86] perf/intel/uncore: Make sure only uncore events are collected
+ - perf: Fix events installation during moving group
+ - iscsi,iser-target: Initiate termination only once (regression in 3.16.4)
+ - iser-target: Fix flush + disconnect completion handling
+ - iser-target: Parallelize CM connection establishment
+ - iser-target: Fix connected_handler + teardown flow race
+ - iser-target: Handle ADDR_CHANGE event for listener cm_id
+ - iser-target: Fix implicit termination of connections
+ - iser-target: Allocate PI contexts dynamically
+ - iser-target: Fix NULL dereference in SW mode DIF
+ - iscsi,iser-target: Expose supported protection ops according to t10_pi
+ - genirq: Prevent proc race against freeing of irq descriptors
+ - [powerpc] powernv: Switch off MMU before entering nap/sleep/rvwinkle mode
+ - [x86] storvsc: ring buffer failures may result in I/O freeze
+ - iscsi-target: Fail connection on short sendmsg writes
+ - [x86] drm/i915: Invalidate media caches on gen7
+ - [x86] drm/i915: Force the CS stall for invalidate flushes
+ - dm thin: fix inability to discard blocks when in out-of-data-space mode
+ - dm thin: fix missing out-of-data-space to write mode transition if blocks
+ are released
+ - dm: fix missed error code if .end_io isn't implemented by target_type
+ - [armhf] i2c: mv64xxx: rework offload support to fix several problems
+ (regression in 3.12)
+ - [x86] tls: Don't validate lm in set_thread_area() after all
+ - ALSA: usb-audio: extend KEF X300A FU 10 tweak to Arcam rPAC
+ - tick/powerclamp: Remove tick_nohz_idle abuse
+ - audit: don't attempt to lookup PIDs when changing PID filtering audit
+ rules (regression in 3.15)
+ - audit: use supplied gfp_mask from audit_buffer in
+ kauditd_send_multicast_skb (regression in 3.16)
+ - [arm64] kernel: fix __cpu_suspend mm switch on warm-boot
+ - audit: restore AUDIT_LOGINUID unset ABI (regression in 3.10)
+ - Btrfs: fix loop writing of async reclaim
+ - isofs: Fix unchecked printing of ER records (CVE-2014-9584)
+ - crypto: af_alg - fix backlog handling
+ - udf: Check path length when reading symlink
+ - udf: Verify i_size when loading inode
+ - udf: Verify symlink size before loading it
+ - udf: Check component length before reading it
+ - [x86] platform/chrome: chromeos_laptop - Add support for Acer C720
+ (Closes: #774209)
+ - batman-adv: Calculate extra tail size based on queued fragments
+ (Closes: #774155) (CVE-2014-9428)
+ - vfs: move d_rcu from overlapping d_child to overlapping d_alias
+ - vfs: deal with deadlock in d_walk() (CVE-2014-8559)
+ - KEYS: close race between key lookup and freeing (CVE-2014-9529)
+
+ [ Ben Hutchings ]
+ * [sh4] Build with gcc-4.8 (Closes: #772602)
+ * Fix inconsistent ABI name generation in
+ debian/bin/{abiupdate,buildcheck,gencontrol}.py (Closes: #773233)
+ * iov: Revert unwanted ABI 'fix' in 3.16.7-ckt2-1
+ * [armel,armhf] thread_info: Fix ABI change in 3.16.7-ckt3
+ * PCI: Fix ABI change in 3.16.7-ckt3
+ * Ignore some ABI changes that don't appear to affect OOT modules:
+ - Removal of __add_pages(), __remove_pages(), of_device_is_stdout_path(),
+ clk_divider_ro_ops, tick_nohz_idle_enter, tick_nohz_idle_exit
+ - Changes to ASoC functions
+ * [arm64] Enable PSTORE as built-in and EFI_VARS_PSTORE as module;
+ ensure efivars and efi-pstore are loaded on EFI systems (Closes: #773309)
+ * hwmon: Enable SENSORS_NCT6683 as module (Closes: #774372)
+ * udeb: Add i2c-designware-{core,platform} to i2c-modules and i2c-hid to
+ input-modules (Closes: #772578)
+ * [x86] ACPI / video: Run _BCL before deciding registering backlight
+ (regression in 3.16) (Closes: #762285)
+ * [amd64] Enable EFI_MIXED to support Bay Trail systems
+ * efi: Expose underlying UEFI firmware platform size to userland, to
+ support installation on Bay Trail systems (Closes: #775191)
+ * vfs: Changes for compatibility with CVE-2014-8559 fix:
+ - aufs: move d_rcu from overlapping d_child to overlapping d_alias
+ - vfs: Avoid ABI change for dentry union changes
+ * [powerpc/powerpc{,-smp}] video/fb: Change FB_RADEON back to module
+ (Closes: #748398) (thanks to John Paul Adrian Glaubitz for thoroughly
+ testing this change)
+ * userns: Fix ABI change in 3.16.7-ckt4
+ * netfilter: conntrack: disable generic tracking for known protocols
+ (CVE-2014-8160)
+ * [amd64] vdso: Fix the vdso address randomization algorithm (CVE-2014-9585)
+
+ [ Ian Campbell ]
+ * [armhf] Enable support for support OMAP5432 uEVM by enabling:
+ TI_SOC_THERMAL, MFD_PALMAS, REGULATOR_PALMAS, REGULATOR_PBIAS,
+ REGULATOR_TI_ABB, PINCTRL_PALMAS, GPIO_PALMAS, RTC_DRV_PALMAS,
+ OMAP5_DSS_HDMI, DISPLAY_ENCODER_TPD12S015, DISPLAY_CONNECTOR_HDMI,
+ USB_DWC3_OMAP, EXTCON_PALMAS, TI_EMIF and DDR.
+ Based on a patch from Chen Baozi (Closes: #772953)
+ * [armel] Change configuration to reduce kernel image size
+ - Warn if image size leaves less than 1% spare capacity in the flash. This
+ allows some slack for growth over the lifetime of a stable release.
+ - [/kirkwood] Disable RD_LZO and RD_LZ4
+ - [/kirkwood] mm: Disable KSM
+ - [/kirkwood] Disable CHECKPOINT_RESTORE
+ - [/kirkwood] Disable ZSMALLOC
+ - [/kirkwood] Disable CRYPTO_FIPS
+ - [/kirkwood] Disable NET_MPLS_GSO
+ - [/kirkwood] Disable NETLINK_MMAP
+ - [/kirkwood] Disable PROFILING
+ - [/kirkwood] Disable BPF_JIT
+ - [/kirkwood] Disable KPROBES
+ - [/ixp4xx,orion5x]: Disable RD_LZO
+ - [/ixp4xx,orion5x]: Disable PROFILING
+ - [/orion5x]: Make SERIO and dependants modular
+ * [arhmf] Add device-tree for LinkSprite pcDuino V3. Patch from Karsten
+ Merker (Closes: #774067)
+ * [xen] More netback fixes (including reintroducing support for
+ feature-rx-notify, which was regressed by the fix to #767261).
+ * Disable TSO in mv643xx_eth driver by default again, since previous fix
+ appears to not work on all platforms (Closes: #764162).
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 16 Jan 2015 00:15:12 +0000
+
+linux (3.16.7-ckt2-1) unstable; urgency=high
+
+ * New upstream stable update:
+ http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt1
+ - drm/tilcdc: Fix the error path in tilcdc_load()
+ - usb: phy: return -ENODEV on failure of try_module_get
+ - PM / clk: Fix crash in clocks management code if !CONFIG_PM_RUNTIME
+ - rt2x00: support Ralink 5362.
+ - wireless: rt2x00: add new rt2800usb devices
+ - NFS: Fix /proc/fs/nfsfs/servers and /proc/fs/nfsfs/volumes
+ - nfs: fix duplicate proc entries
+ - mm: page_alloc: fix zone allocation fairness on UP
+ - ext4: check EA value offset when loading
+ - jbd2: free bh when descriptor block checksum fails
+ - ext4: don't check quota format when there are no quota files
+ - target: Fix queue full status NULL pointer for SCF_TRANSPORT_TASK_SENSE
+ - vfs: fix data corruption when blocksize < pagesize for mmaped data
+ - ext4: fix mmap data corruption when blocksize < pagesize
+ - ext4: grab missed write_count for EXT4_IOC_SWAP_BOOT
+ - qla_target: don't delete changed nacls
+ - target: Fix APTPL metadata handling for dynamic MappedLUNs
+ - iser-target: Disable TX completion interrupt coalescing
+ - ext4: don't orphan or truncate the boot loader inode
+ - ext4: add ext4_iget_normal() which is to be used for dir tree lookups
+ - ext4: fix reservation overflow in ext4_da_write_begin
+ - ext4: Replace open coded mdata csum feature to helper function
+ - ext4: move error report out of atomic context in ext4_init_block_bitmap()
+ - ext4: check s_chksum_driver when looking for bg csum presence
+ - drm/radeon: fix speaker allocation setup
+ - drm/radeon: use gart memory for DMA ring tests
+ - random: add and use memzero_explicit() for clearing data
+ - freezer: Do not freeze tasks killed by OOM killer
+ - OOM, PM: OOM killed task shouldn't escape PM suspend
+ - [mips*/loongson-2f] loongson2_cpufreq: Fix CPU clock rate setting mismerge
+ - drm/cirrus: bind also to qemu-xen-traditional
+ - cpufreq: intel_pstate: Fix setting max_perf_pct in performance policy
+ - cpufreq: expose scaling_cur_freq sysfs file for set_policy() drivers
+ - cpufreq: intel_pstate: Reflect current no_turbo state correctly
+ - [x86] intel_pstate: Don't lose sysfs settings during cpu offline
+ - [x86] intel_pstate: Fix BYT frequency reporting
+ - [x86] intel_pstate: Correct BYT VID values.
+ - [x86] kvm: don't kill guest on unknown exit reason
+ - kvm: fix excessive pages un-pinning in kvm_iommu_map error path.
+ (CVE-2014-8369)
+ - vfs: be careful with nd->inode in path_init() and follow_dotdot_rcu()
+ - pstore: Fix duplicate {console,ftrace}-efi entries
+ - [x86] bpf_jit: fix two bugs in eBPF JIT compiler (regression in 3.16)
+ - vxlan: fix a use after free in vxlan_encap_bypass
+ - vxlan: using pskb_may_pull as early as possible
+ - vxlan: fix a free after use
+ - ipv4: dst_entry leak in ip_send_unicast_reply()
+ - ipv4: fix a potential use after free in ip_tunnel_core.c
+ (regression in 3.11)
+ - net: tso: fix unaligned access to crafted TCP header in helper API
+ - [x86] hyperv: Fix the total_data_buflen in send path
+ - tcp: md5: do not use alloc_percpu()
+ - macvlan: fix a race on port dismantle and possible skb leaks
+ (regression in 3.16)
+ - net/mlx4_en: Don't attempt to TX offload the outer UDP checksum for VXLAN
+ (regression in 3.14)
+ - gre: Use inner mac length when computing tunnel length
+ (regression in 3.14)
+ - [armhf] spi: pl022: Fix incorrect dma_unmap_sg
+ - mac80211: fix typo in starting baserate for rts_cts_rate_idx
+ - staging: comedi: (regression) channel list must be set for COMEDI_CMD
+ ioctl (regression in 3.15)
+ - nfsd4: fix response size estimation for OP_SEQUENCE (regression in 3.16)
+ - quota: Properly return errors from dquot_writeback_dquots()
+ - i3200_edac: Report CE events properly
+ - i82860_edac: Report CE events properly
+ - cpc925_edac: Report UE events properly
+ - e7xxx_edac: Report CE events properly
+ - scsi: Fix error handling in SCSI_IOCTL_SEND_COMMAND
+ - usb: serial: ftdi_sio: add "bricked" FTDI device PID
+ - [armhf] Revert "usb: dwc3: dwc3-omap: Disable/Enable only wrapper
+ interrupts in prepare/complete" (regression in 3.16)
+ - usb: gadget: f_fs: remove redundant ffs_data_get() (regression in 3.14)
+ - [armhf] usb: ffs: fix regression when quirk_ep_out_aligned_size flag is
+ set (regression in 3.15)
+ - [armhf] usb: musb: dsps: start OTG timer on resume again
+ (regression in 3.16.6)
+ - usb: gadget: udc: core: fix kernel oops with soft-connect
+ - nfsd4: fix crash on unknown operation number
+ - Revert "iwlwifi: mvm: treat EAPOLs like mgmt frames wrt rate"
+ (regression in 3.16.4)
+ - [armhf] usb: dwc3: gadget: Properly initialize LINK TRB
+ - posix-timers: Fix stack info leak in timer_create()
+ - futex: Fix a race condition between REQUEUE_PI and task death
+ - ALSA: bebob: Uninitialized id returned by saffirepro_both_clk_src_get
+ - PM / Sleep: fix async suspend_late/freeze_late error handling
+ (regression in 3.15)
+ - Revert "block: all blk-mq requests are tagged" (regression in 3.16)
+ - ALSA: pcm: Zero-clear reserved fields of PCM status ioctl in compat mode
+ - zap_pte_range: update addr when forcing flush after TLB batching faiure
+ - staging: comedi: fix memory leak / bad pointer freeing for chanlist
+ (regression in 3.15)
+ - [x86] drm/i915: Ignore VBT backlight check on Macbook 2, 1
+ (regression in 3.15)
+ - [i386/686-pae] pageattr: Prevent overflow in slow_virt_to_phys() for
+ X86_PAE
+ - [x86] ACPI / EC: Fix regression due to conflicting firmware behavior
+ between Samsung and Acer. (regression in 3.16.3)
+ - mm: free compound page with correct order
+ - lib/bitmap.c: fix undefined shift in __bitmap_shift_{left|right}()
+ - ext4: fix overflow when updating superblock backups after resize
+ - ext4: fix oops when loading block bitmap failed
+ - ext4: enable journal checksum when metadata checksum feature enabled
+ - ext4: prevent bugon on race between write/fcntl
+ - ext4: bail out from make_indexed_dir() on first error
+ - PCI: Rename sysfs 'enabled' file back to 'enable' (regression in 3.13)
+ - fs: allow open(dir, O_TMPFILE|..., 0) with mode 0
+ - [arm*] tracing/syscalls: Ignore numbers outside NR_syscalls' range
+ - nfs: fix kernel warning when removing proc entry
+ http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt2
+ - rbd: Fix error recovery in rbd_obj_read_sync()
+ - regulator: max77693: Fix use of uninitialized regulator config
+ - xhci: no switching back on non-ULT Haswell (regression in 3.12)
+ - Btrfs: fix kfree on list_head in btrfs_lookup_csums_range error cleanup
+ - ocfs2: fix breakage in o2net_send_tcp_msg() (regression in 3.15)
+ - [armhf] phy: omap-usb2: Enable runtime PM of omap-usb2 phy properly
+ (regression in 3.16)
+ - USB: cdc-acm: add quirk for control-line state requests
+ (regression in 3.16)
+ - sysfs: driver core: Fix glue dir race condition by gdp_mutex
+ - drm/nouveau: make sure display hardware is reinitialised on runtime
+ resume (regression in 3.15)
+ - drm/nv50/disp: fix dpms regression on certain boards
+ - drm/nouveau/bios: memset dcb struct to zero before parsing
+ - GFS2: Make rename not save dirent location (regression in 3.14)
+ - netfilter: ipset: off by one in ip_set_nfnl_get_byindex()
+ - netfilter: nf_tables: check for NULL in nf_tables_newchain pcpu stats
+ allocation (regression in 3.16)
+ - netfilter: nfnetlink_log: fix maximum packet length logged to userspace
+ - netfilter: nft_compat: fix wrong target lookup in nft_target_select_ops()
+ - mmc: core: sdio: Fix unconditional wake_up_process() on sdio thread
+ (regression in 3.16)
+ - mmc: don't request CD IRQ until mmc_start_host()
+ - fs: make cont_expand_zero interruptible
+ - UBIFS: fix a race condition
+ - [x86] fpu: __restore_xstate_sig()->math_state_restore() needs
+ preempt_disable()
+ - [x86] fpu: shift drop_init_fpu() from save_xstate_sig() to
+ handle_signal()
+ - perf: Fix unclone_ctx() vs. locking
+ - evm: properly handle INTEGRITY_NOXATTRS EVM status
+ - [alpha] vfs: missing data dependency barrier in prepend_name()
+ - jffs2: kill wbuf_queued/wbuf_dwork_lock
+ - fix misuses of f_count() in ppp and netlink
+ - sched: Use dl_bw_of() under RCU read lock
+ - [s390*] topology: call set_sched_topology early
+ - [armhf] mfd: ti_am335x_tscadc: Fix TSC operation after ADC continouous
+ mode (regression in 3.14)
+ - [armhf] mfd: ti_am335x_tscadc: Fix TSC resume (regression in 3.14)
+ - selinux: fix inode security list corruption
+ - blk-mq: fix potential hang if rolling wakeup depth is too high
+ (regression in 3.16)
+ - block: fix alignment_offset math that assumes io_min is a power-of-2
+ - drm/nouveau/gpio: rename g92 class to g94 (regression in 3.16)
+ - [x86] drm/i915: Do not leak pages when freeing userptr objects
+ - media: v4l2-common: fix overflow in v4l_bound_align_image()
+ - sched: Use rq->rd in sched_setaffinity() under RCU read lock
+ - [powerpc*] use device_online/offline() instead of cpu_up/down()
+ (regression in 3.11)
+ - xen-blkback: fix leak on grant map error path
+ - net: skb_fclone_busy() needs to detect orphaned skb (regression in 3.16)
+ - rbd: avoid format-security warning inside alloc_workqueue()
+ - rbd: fix error return code in rbd_dev_device_setup()
+ - media: ttusb-dec: buffer overflow in ioctl (CVE-2014-8884)
+ - dm raid: ensure superblock's size matches device's logical block size
+ - ahci: disable MSI instead of NCQ on Samsung pci-e SSDs on macbooks
+ (Closes: #772435)
+ - mac80211: properly flush delayed scan work on interface removal
+ - [i386] microcode, AMD: Fix early ucode loading on 32-bit
+ (regression in 3.14)
+ - [armhf] mvebu: armada xp: Generalize use of i2c quirk
+ (regression in 3.12)
+ - mac80211: fix use-after-free in defragmentation
+ - iwlwifi: fix RFkill while calibrating (regression in 3.16)
+ - tun: Fix csum_start with VLAN acceleration (regression in 3.12)
+ - macvtap: Fix csum_start when VLAN tags are present
+ - dm thin: grab a virtual cell before looking up the mapping
+ - [x86] KVM: Fix uninitialized op->type for some immediate values
+ - [powerpc*] hwrng: pseries - port to new read API and fix stack corruption
+ - drm/radeon: set correct CE ram size for CIK
+ - drm/radeon: make sure mode init is complete in bandwidth_update
+ - cpufreq: Avoid crash in resume on SMP without OPP (regresion in 3.12)
+ - [i386] microcode, AMD: Fix ucode patch stashing on 32-bit
+ (regression in 3.14)
+ - [armhf] mfd: twl4030-power: Fix poweroff with PM configuration enabled
+ (regression in 3.16)
+ - [hppa] Use compat layer for msgctl, shmat, shmctl and semtimedop syscalls
+ - tracing: Do not busy wait in buffer splice (regresion in 3.16)
+ - param: fix crash on bad kernel arguments (regression in 3.16)
+ - audit: keep inode pinned
+ - drm/radeon: add locking around atombios scratch space usage
+ - nfs: fix pnfs direct write memory leak
+ - nfs: Fix use of uninitialized variable in nfs_getattr()
+ - NFSv4: Ensure that we remove NFSv4.0 delegations when state has expired
+ - NFSv4.1: nfs41_clear_delegation_stateid shouldn't trust
+ NFS_DELEGATED_STATE
+ - NFSv4: Fix races between nfs_remove_bad_delegation() and delegation
+ return
+ - NFSv4: Ensure that we call FREE_STATEID when NFSv4.x stateids are revoked
+ - NFS: Don't try to reclaim delegation open state if recovery failed
+ - [arm64] efi: Fix stub cache maintenance
+ - [arm64] __clear_user: handle exceptions on strb (CVE-2014-7843)
+ - [arm64] Correct the race condition in aarch64_insn_patch_text_sync()
+ - Fix thinko in iov_iter_single_seg_count
+ - libceph: do not crash on large auth tickets
+ - [armel,armhf] 8191/1: decompressor: ensure I-side picks up relocated code
+ - zram: avoid kunmap_atomic() of a NULL pointer
+ - firewire: cdev: prevent kernel stack leaking into ioctl arguments
+ - md: Always set RECOVERY_NEEDED when clearing RECOVERY_FROZEN
+ (regression in 3.13)
+ - vxlan: Do not reuse sockets for a different address family
+ - net: sctp: fix NULL pointer dereference in af->from_addr_param on
+ malformed packet (CVE-2014-7841)
+ - net: sctp: fix memory leak in auth key management
+ - [armel,m68k] ipv6: fix IPV6_PKTINFO with v4 mapped (regression in 3.15)
+ - netlink: Properly unbind in error conditions. (regression in 3.16)
+ - smsc911x: power-up phydev before doing a software reset.
+ (regression in 3.14)
+ - [sparc*] sunvdc: limit each sg segment to a page
+ - [sparc*] vio: fix reuse of vio_dring slot
+ - drm/radeon: initialize sadb to NULL in the audio code
+ - [x86] KVM: Don't report guest userspace emulation error to userspace
+ - crypto: caam - remove duplicated sg copy functions
+ - audit: correct AUDIT_GET_FEATURE return message type
+ - memory-hotplug: Remove "weak" from memory_block_size_bytes() declaration
+ (regression in 3.14)
+ - [s390*] vmcore: Remove "weak" from function declarations
+ - [s390*] clocksource: Remove "weak" from clocksource_default_clock()
+ declaration
+ - IB/core: Clear AH attr variable to prevent garbage data
+ - [amd64] x32, audit: Fix x32's AUDIT_ARCH wrt audit
+ - [armhf] dts: am335x-evm: Fix 5th NAND partition's name
+ (regression in 3.15)
+ - dell-wmi: Fix access out of memory
+
+ [ Ben Hutchings ]
+ * [x86] Complete Thunderbolt support on Apple computers (Closes: #768653)
+ - PCI: Add pci_fixup_suspend_late quirk pass
+ - PCI: Suspend/resume quirks for Apple thunderbolt
+ - Enable THUNDERBOLT as module
+ * [amd64] traps: Stop using IST for #SS (CVE-2014-9090)
+ * [amd64] traps: Fix the espfix64 #DF fixup and rewrite it in C
+ * [amd64] traps: Rework bad_iret
+ * [amd64] asm/traps: Disable tracing and kprobes in fixup_bad_iret and
+ sync_regs
+ * Fix ABI changes in iovec, of, perf and truncate
+ * Ignore ABI changes in iwlwifi, KVM and spi-nor
+ * Revert "drivers/net: Disable UFO through virtio" in macvtap and tun.
+ This removes the need to shut down VMs if migrating to a patched
+ host.
+
+ [ Ian Campbell ]
+ * [xen] Backport various netback fixes (Closes: #767261).
+ * Backport fix for TSO with mv643xx_eth driver, replacing previous workaround
+ (#764162)
+ * [armhf] Increase Ethernet phy startup delay on Banana-Pi. Patch from
+ Karsten Merker (Closes: #767042)
+ * [armhf] Enable FB_SIMPLE, used on some Exynos platforms and elsewhere.
+ * [arm64] Backport various upstream fixes and improvements to the APM X-gene
+ Ethernet driver.
+ * Honour stdout-path from Device Tree, along with supporting any supplied
+ options. (Closes: #770212)
+ * [armhf] Add udeb modules to support video and keyboard for imx6. Patch from
+ Vagrant Cascadian (Closes: #770635)
+ * [device-tree] Reserve memreserve regions even if they partially overlap
+ with an existing reservation. Fixes boot on Midway.
+ * [arm64] Enable reboot on the Xgene platform.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 08 Dec 2014 20:03:18 +0000
+
+linux (3.16.7-2) unstable; urgency=medium
+
+ [ Ian Campbell ]
+ * Disable TSO in mv643xx_eth driver by default (Closes: #764162).
+
+ [ Aurelien Jarno ]
+ * [i386] Rename 486 flavour to 586 for udebs. (Closes: #768288)
+
+ [ Ben Hutchings ]
+ * [hppa] udeb: Fix modules in multiple packages (Closes: 768297)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 06 Nov 2014 17:42:26 +0000
+
+linux (3.16.7-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.16.6
+ - rtnetlink: fix VF info size (regression in 3.11)
+ - myri10ge: check for DMA mapping errors
+ - Revert "macvlan: simplify the structure port" (regression in 3.16)
+ - tcp: don't use timestamp from repaired skb-s to calculate RTT (v2)
+ (regression in 3.15)
+ - tcp: fix tcp_release_cb() to dispatch via address family for
+ mtu_reduced()
+ - tipc: fix message importance range check (regression in 3.15)
+ - packet: handle too big packets for PACKET_V3
+ - bnx2x: Revert UNDI flushing mechanism (regression in 3.14)
+ - net: ipv6: fib: don't sleep inside atomic lock (regression in 3.15)
+ - openvswitch: fix panic with multiple vlan headers
+ - ipv6: fix rtnl locking in setsockopt for anycast and multicast
+ - l2tp: fix race while getting PMTU on PPP pseudo-wire (regression in 3.15)
+ - ipv6: restore the behavior of ipv6_sock_ac_drop()
+ - bonding: fix div by zero while enslaving and transmitting
+ (regression in 3.12)
+ - net: filter: fix possible use after free (regression in 3.15)
+ - net: allow macvlans to move to net namespace (regression in 3.13)
+ - macvlan: allow to enqueue broadcast pkt on virtual device
+ (regression in 3.16)
+ - xfrm: Generate blackhole routes only from route lookup functions
+ - xfrm: Generate queueing routes only from route lookup functions
+ - macvtap: Fix race between device delete and open.
+ - net/mlx4_core: Allow not to specify probe_vf in SRIOV IB mode
+ (regression in 3.15)
+ - net/mlx4: Correctly configure single ported VFs from the host
+ (regression in 3.15)
+ - gro: fix aggregation for skb using frag_list (regression in 3.13)
+ - hyperv: Fix bug in netvsc_start_xmit() (potential use-after-free)
+ - team: avoid race condition in scheduling delayed work
+ - hyperv: Fix bug in netvsc_send() (potential use-after-free)
+ - sctp: handle association restarts when the socket is closed.
+ - net_sched: copy exts->type in tcf_exts_change() (regression in 3.14)
+ - crypto: caam - fix addressing of struct member
+ - driver/base/node: remove unnecessary kfree of node struct from
+ unregister_one_node (regression in 3.15)
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.16.7
+ - btrfs: wake up transaction thread from SYNC_FS ioctl
+ - Btrfs: fix up bounds checking in lseek
+ - Btrfs: don't do async reclaim during log replay
+ - Btrfs: cleanup error handling in build_backref_tree
+ - Btrfs: fix build_backref_tree issue with multiple shared blocks
+ - Btrfs: fix race in WAIT_SYNC ioctl
+ - fs: Add a missing permission check to do_umount (CVE-2014-7975)
+ - kvm: fix potentially corrupt mmio cache
+ - [x86] kvm,vmx: Preserve CR4 across VM entry (CVE-2014-3690)
+ - be2iscsi: check ip buffer before copying (stack buffer overflow)
+ - mptfusion: enable no_write_same for vmware scsi disks
+ - qla2xxx: fix kernel NULL pointer access (regression in 3.16)
+ (Closes: #764804)
+ - qla2xxx: Fix shost use-after-free on device removal (regression in 3.14)
+ - dmaengine: fix xor sources continuation
+ - [arm64] debug: don't re-enable debug exceptions on return from el1_dbg
+ - mei: bus: fix possible boundaries violation
+ - nfsv4: Fixing lease renewal (regression in 3.13)
+ - lzo: check for length overrun in variable length encoding.
+ - [armhf] tty: omap-serial: fix division by zero
+ - NFSv4: Fix lock recovery when CREATE_SESSION/SETCLIENTID_CONFIRM fails
+ - NFSv4: fix open/lock state recovery error handling
+ - NFSv4.1: Fix an NFSv4.1 state renewal regression
+ - nfsd4: reserve adequate space for LOCK op (regression in 3.16)
+ - NFS: Fix an uninitialised pointer Oops in the writeback error path
+ - NFS: Fix a bogus warning in nfs_generic_pgio (regression in 3.16.4)
+ - iwlwifi: mvm: disable BT Co-running by default
+ - [armel,armhf] PCI: mvebu: Fix uninitialized variable in
+ mvebu_get_tgt_attr()
+ - Revert "ath9k_hw: reduce ANI firstep range for older chips"
+ (regression in 3.15)
+ - fanotify: enable close-on-exec on events' fd when requested in
+ fanotify_init()
+ - futex: Ensure get_futex_key_refs() always implies a barrier
+ (regression in 3.14)
+ - [ppc64el] iommu/ddw: Fix endianness
+ - [arm64] compat: fix compat types affecting struct compat_elf_prpsinfo
+ - ALSA: emu10k1: Fix deadlock in synth voice lookup
+ - ALSA: hda - Add missing terminating entry to SND_HDA_PIN_QUIRK macro
+ - [armhf] mvebu: Netgear RN104: Use Hardware BCH ECC
+ - [armhf] mvebu: Netgear RN2120: Use Hardware BCH ECC
+ - [armhf] mvebu: Netgear RN102: Use Hardware BCH ECC
+ - ecryptfs: avoid to access NULL pointer when write metadata in xattr
+ - xfs: ensure WB_SYNC_ALL writeback handles partial pages correctly
+ - [sparc*] Do not disable interrupts in nmi_cpu_busy()
+ - [sparc*] Fix pcr_ops initialization and usage bugs.
+ - [sparc*] sun4v TLB error power off events
+ - [sparc*] Fix corrupted thread fault code.
+ - [sparc*] find_node adjustment
+ - [sparc*] Let memset return the address argument
+ - [sparc*] bpf_jit: fix support for ldx/stx mem and SKF_AD_VLAN_TAG
+ - [sparc*] bpf_jit: fix loads from negative offsets
+ - [sparc*] Fix FPU register corruption with AES crypto offload.
+ - [sparc*] Do not define thread fpregs save area as zero-length array.
+ - [sparc*] Fix hibernation code refrence to PAGE_OFFSET.
+ - [sparc*] correctly recognise M6 and M7 cpu type
+ - [sparc*] T5 PMU
+ - [sparc*] Switch to 4-level page tables.
+ - [sparc*] Adjust KTSB assembler to support larger physical addresses.
+ - [sparc*] Fix physical memory management regressions with large
+ max_phys_bits.
+ - [sparc*] Use kernel page tables for vmemmap.
+ - [sparc*] Increase MAX_PHYS_ADDRESS_BITS to 53.
+ - [sparc*] sparse irq
+ - [sparc*] Fix register corruption in top-most kernel stack frame during
+ boot.
+ - [sparc*] Implement __get_user_pages_fast().
+
+ [ Ben Hutchings ]
+ * [i386] Rename 486 flavour to 586, as it has not worked on 486 processors
+ since we enabled CC_STACKPROTECTOR (Closes: #766105)
+ - Select M586TSC instead of M486
+ * [x86] r8723au: Backport changes up to Linux 3.17 (Closes: #765685)
+ * mmc_block: Increase max_devices and set MMC_BLOCK_MINORS to 256
+ (Closes: #765621)
+ * [x86] drm/i915: Initialise userptr mmu_notifier serial to 1
+ (Closes: #765590)
+ * rtsx_usb_ms: Use msleep_interruptible() in polling loop (Closes: #765717)
+ * Bump ABI to 4
+ * Add '.0' to the kernel version string (Closes: #742226, #745984)
+ * vfs,fuse: Change iov_iter_get_pages() to take both maxsize and maxpages
+ parameters (Closes: #764285)
+ * lockd: Try to reconnect if statd has moved (Closes: #767219)
+ * m25p80: Fix module device ID table
+ * HID: i2c-hid: call the hid driver's suspend and resume callbacks
+ (Closes: #767204)
+ * [x86] drm/i915: Add some L3 registers to the parser whitelist
+ (Closes: #767148)
+ * wireless: rt2x00: add new rt2800usb device (thanks to Cyril Brulebois)
+ (Closes: #766802)
+ * drivers/net,ipv6: Fix virtio/IPv6 regression in 3.16:
+ - drivers/net: Disable UFO through virtio
+ - drivers/net,ipv6: Select IPv6 fragment idents for virtio UFO packets
+ * [x86] KVM: Check non-canonical addresses upon WRMSR (CVE-2014-3610)
+ * [x86] KVM: Prevent host from panicking on shared MSR writes.
+ (CVE-2014-3610)
+ * [x86] KVM: Improve thread safety in pit (CVE-2014-3611)
+ * [x86] kvm: vmx: handle invvpid vm exit gracefully (CVE-2014-3646)
+ * [x86] KVM: Fix wrong masking on relative jump/call
+ * [x86] KVM: Emulator fixes for eip canonical checks on near branches
+ (CVE-2014-3647)
+ * [x86] KVM: Handle errors when RIP is set during far jumps (CVE-2014-3647)
+ * [x86] KVM: Fix far-jump to non-canonical check
+ * net: sctp: fix skb_over_panic when receiving malformed ASCONF chunks
+ (CVE-2014-3673)
+ * net: sctp: fix panic on duplicate ASCONF chunks (CVE-2014-3687)
+ * net: sctp: fix remote memory pressure from excessive queueing
+ (CVE-2014-3688)
+ * mnt: Prevent pivot_root from creating a loop in the mount tree
+ (CVE-2014-7970)
+ * linux-image: Recommend irqbalance if CONFIG_SMP is enabled
+ (Closes: #577788)
+ * [armhf] leds: Enable LEDS_PWM as module (for Cubox-i)
+ * [x86] Backport Thunderbolt support on Apple computers from 3.17
+ * [x86] linux-image: Remove lilo from suggested boot loaders
+ * [amd64] linux-image: Add grub-efi to suggested boot loaders
+ * [hppa] Reduce SIGRTMIN from 37 to 32 to behave like other Linux
+ architectures (Closes: #766635)
+ * [hppa] udeb: Add many more module packages (Closes: #766793)
+ * iwlwifi: Backport firmware monitor from 3.17 (Closes: #767088)
+ * bug script: Warn if the running kernel matches the ABI name of the
+ package but is not the installed version
+
+ [ Mauricio Faria de Oliveira ]
+ * [ppc64el] Disable CONFIG_CMDLINE{,_BOOL} usage for setting consoles
+ (Closes: #764745)
+
+ [ Uwe Kleine-König ]
+ * [armhf] enable rtc driver for i.MX6
+ * [armhf] add chipidea usb host driver to usb-modules-$version-armmmp-di
+ for i.MX6
+ * [armhf] enable PCI and NAND driver for Armada 370
+ * [armhf] enable RTC, GPIO_PCA953X, SENSORS_G762 and watchdog driver for
+ Netgear ReadyNAS 102/104
+
+ [ Ian Campbell ]
+ * [armhf] Build i2c-s3c2410 statically, it is used by the arndale power
+ controller.
+ * [armhf] Backport device tree file for Olimex A20-OLinuXino-LIME. (Closes: #764967)
+ * [armhf] Enable various drivers for the Nokia N900. Patch from Sebastian
+ Reichel. (Closes: #766070)
+ * [arm64] Enable EHCI and OHCI platform USB HCD drivers.
+ * Enable MTD and MTDBLOCK in top-level config.
+ * [armhf] Add mtd-modules udeb. Patch from Uwe Kleine-Koenig.
+
+ [ Aurelien Jarno ]
+ * [mips*] Backport a hugetlb fix for Octeon from 3.18.
+ * [mips*] Backport math emulation fix for MIPS32r2 from 3.18.
+ * [mips*] Only define MAX_PHYSMEM_BITS on Loongson-3, until a better fix
+ is committed upstream. Fixes Loongson-2 kernel and maybe more. Closes:
+ #764223.
+ * [mips*/octeon] Add support for the UBNT E200 board (EdgeRouter/EdgeRouter
+ Pro 8 port).
+ * [mips*/octeon] Enable SERIAL_8250_DW. Disable KEYBOARD_ATKBD, MOUSE_PS2,
+ SERIO_I8042.
+ * [mips*/octeon] Really enable USB_OCTEON_EHCI and USB_OCTEON_OHCI. Closes:
+ Closes: #762066.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 04 Nov 2014 09:47:27 +0000
+
+linux (3.16.5-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.16.4
+ - module: Clean up ro/nx after early module load failures
+ (regression in 3.16)
+ - [armhf] cpufreq: OPP: Avoid sleeping while atomic
+ - [armhf] drm/tilcdc: Fix various bugs in removal path
+ - drm/ttm: Fix possible stack overflow by recursive shrinker calls.
+ - [x86] drm/i915: Fix crash when failing to parse MIPI VBT
+ (regression in 3.16)
+ - [x86] drm/i915: read HEAD register back in init_ring_common() to enforce
+ ordering (Closes: #763583)
+ - libata: widen Crucial M550 blacklist matching
+ - pata_scc: propagate return value of scc_wait_after_reset
+ - pwm: Fix period and polarity in pwm_get() for non-perfect matches
+ - aio: add missing smp_rmb() in read_events_ring
+ - [arm64] flush TLS registers during exec
+ - [arm64] use irq_set_affinity with force=false when migrating irqs
+ (regression in 3.15)
+ - [arm*] KVM: Nuke Hyp-mode tlbs before enabling MMU
+ - [x86] i2c: ismt: use correct length when copy buffer
+ - ftrace: Use current addr when converting to nop in
+ __ftrace_replace_code() (regression in 3.16)
+ - ALSA: core: fix buffer overflow in snd_info_get_line()
+ - ALSA: firewire-lib/dice: add arrangements of PCM pointer and interrupts
+ for Dice quirk (regression in 3.16)
+ - HID: picolcd: sanity check report size in raw_event() callback
+ (CVE-2014-3186)
+ - HID: magicmouse: sanity check report size in raw_event() callback
+ (CVE-2014-3181)
+ - HID: logitech-dj: prevent false errors to be shown (regression in 3.16.2)
+ - [x86] drm/i915: Skip load detect when intel_crtc->new_enable==true
+ (regression in 3.16)
+ - [x86] drm/i915: fix plane/cursor handling when runtime suspended
+ (regression in 3.14)
+ - [x86] drm/i915: Ignore VBT backlight presence check on Acer C720 (4005U)
+ (regression in 3.15)
+ - [x86] drm/i915: Wait for vblank before enabling the TV encoder
+ (regression in 3.16)
+ - [x86] drm/i915/hdmi: fix hdmi audio state readout (regression in 3.16)
+ - drm/radeon: Add ability to get and change dpm state when radeon PX card
+ is turned off (regression in 3.15)
+ - locks: pass correct "before" pointer to locks_unlink_lock in
+ generic_add_lease
+ - ufs: fix deadlocks introduced by sb mutex merge (regression in 3.16)
+ - USB: serial: fix potential stack buffer overflow
+ - USB: serial: fix potential heap buffer overflow
+ - USB: option: reduce interrupt-urb logging verbosity (regression in 3.16)
+ - [armhf] usb: phy: twl4030-usb: Fix lost interrupts after ID pin goes down
+ (regression in 3.13)
+ - [armhf] usb: phy: twl4030-usb: Fix regressions to runtime PM on omaps
+ (regressions in 3.14, 3.15)
+ - uwb: init beacon cache entry before registering uwb device
+ - usb: hub: take hub->hdev reference when processing from eventlist
+ - USB: EHCI: unlink QHs even after the controller has stopped
+ - Revert "ACPI / battery: fix wrong value of capacity_now reported when
+ fully charged" (regression in 3.16)
+ - [x86] iommu/vt-d: Check return value of acpi_bus_get_device()
+ (regression in 3.15)
+ - [armhf/armmp-lpae] iommu/arm-smmu: fix programming of SMMU_CBn_TCR for
+ stage 1
+ - cgroup: check cgroup liveliness before unbreaking kernfs
+ (regression in 3.15)
+ - NFSv4: Fix another bug in the close/open_downgrade code
+ (regression in 3.16.2)
+ - nfsd4: fix corruption of NFSv4 read data (regression in 3.16)
+ - nfs: check wait_on_bit_lock err in page_group_lock
+ - nfs: clear_request_commit while holding i_lock
+ - nfs: fix nonblocking calls to nfs_page_group_lock
+ - nfs: use blocking page_group_lock in add_request
+ - nfs: fix error handling in lock_and_join_requests
+ - nfs: don't sleep with inode lock in lock_and_join_requests
+ - nfs: disallow duplicate pages in pgio page vectors
+ - nfs: can_coalesce_requests must enforce contiguity
+ - [armhf] 8129/1: errata: work around Cortex-A15 erratum 830321 using dummy
+ strex
+ - [armhf] 8133/1: use irq_set_affinity with force=false when migrating irqs
+ (regression in 3.15)
+ - [armel,armhf] 8148/1: flush TLS and thumbee register state during exec
+ - [armel,armhf] 8149/1: perf: Don't sleep while atomic when enabling
+ per-cpu interrupts (regression in 3.15)
+ - [armhf] imx: fix .is_enabled() of shared gate clock (regression in 3.16)
+ - [armhf] 8165/1: alignment: don't break misaligned NEON load/store
+ - [mips*] Fix MFC1 & MFHC1 emulation for 64-bit MIPS systems
+ (regression in 3.15)
+ - ACPICA: Update to GPIO region handler interface.
+ - gpio / ACPI: Use pin index and bit length
+ - ACPI / platform / LPSS: disable async suspend/resume of LPSS devices
+ (regression in 3.16)
+ - ACPI / hotplug: Generate online uevents for ACPI containers
+ (regression in 3.14)
+ - ACPI / video: disable native backlight for ThinkPad X201s
+ (regression in 3.16)
+ - regmap: Fix regcache debugfs initialization (regression in 3.15)
+ - regmap: Fix handling of volatile registers for format_write() chips
+ - regmap: Don't attempt block writes when syncing cache on single_rw
+ devices
+ - cgroup: reject cgroup names with '\n'
+ - cgroup: delay the clearing of cgrp->kn->priv
+ - cgroup: fix unbalanced locking (regression in 3.14)
+ - [s390*] KVM: Fix user triggerable bug in dead code
+ - [s390*] KVM: mm: try a cow on read only pages for key ops
+ - [s390*] KVM: mm: Fix storage key corruption during swapping
+ - [s390*] KVM: mm: Fix guest storage key corruption in
+ ptep_set_access_flags
+ - [x86] xen: don't copy bogus duplicate entries into kernel page tables
+ - [x86] early_ioremap: Increase FIX_BTMAPS_SLOTS to 8 (regression in 3.16)
+ - shmem: fix nlink for rename overwrite directory
+ - SMB3: Fix oops when creating symlinks on smb3
+ - iio: Fix indio_dev->trig assignment in several drivers
+ - Target/iser: Don't put isert_conn inside disconnected handler
+ - target: Fix inverted logic in SE_DEV_ALUA_SUPPORT_STATE_STORE
+ (regression in 3.13)
+ - iscsi-target: Fix memory corruption in iscsit_logout_post_handler_diffcid
+ - SCSI: libiscsi: fix potential buffer overrun in __iscsi_conn_send_pdu
+ - Revert "iwlwifi: dvm: don't enable CTS to self" (regression in 3.16)
+ - iwlwifi: mvm: fix endianity issues with Smart Fifo commands
+ (regression in 3.14)
+ - iwlwifi: mvm: set MAC_FILTER_IN_BEACON correctly for STA/P2P client
+ (regression in 3.16)
+ - workqueue: apply __WQ_ORDERED to create_singlethread_workqueue()
+ (regression in 3.10)
+ - futex: Unlock hb->lock in futex_wait_requeue_pi() error path
+ - block: Fix dev_t minor allocation lifetime
+ - dm cache: fix race causing dirty blocks to be marked as clean
+ - percpu: fix pcpu_alloc_pages() failure path
+ - percpu: perform tlb flush after pcpu_map_pages() failure
+ - regulatory: add NUL to alpha2
+ - lockd: fix rpcbind crash on lockd startup failure (regression in 3.15)
+ - genhd: fix leftover might_sleep() in blk_free_devt()
+ - eventpoll: fix uninitialized variable in epoll_ctl
+ - kcmp: fix standard comparison bug
+ - fs/notify: don't show f_handle if exportfs_encode_inode_fh failed
+ - nilfs2: fix data loss with mmap()
+ - mm, slab: initialize object alignment on cache creation
+ - fs/cachefiles: add missing \n to kerror conversions (regression in 3.16)
+ - mm: softdirty: keep bit when zapping file pte
+ - sched: Fix unreleased llc_shared_mask bit during CPU hotplug
+ - brcmfmac: handle IF event for P2P_DEVICE interface (regression in 3.12)
+ - ath9k_htc: fix random decryption failure (regression in 3.15)
+ - [powerpc,ppc*] Add smp_mb() to arch_spin_is_locked()
+ - [powerpc,ppc*] Add smp_mb()s to arch_spin_unlock_wait()
+ - [hppa] Implement new LWS CAS supporting 64 bit operations.
+ - alarmtimer: Return relative times in timer_gettime
+ - alarmtimer: Do not signal SIGEV_NONE timers
+ - alarmtimer: Lock k_itimer during timer callback
+ - GFS2: fix d_splice_alias() misuses
+ - IB/qib: Correct reference counting in debugfs qp_stats
+ - IB/mlx4: Avoid null pointer dereference in mlx4_ib_scan_netdevs()
+ (regression in 3.14)
+ - IB/mlx4: Don't duplicate the default RoCE GID (regression in 3.14)
+ - IB/core: When marshaling uverbs path, clear unused fields
+ (regression in 3.14)
+ - mm: Fix unbalanced mutex in dma_pool_create(). (regression in 3.16)
+ - PCI: Add pci_ignore_hotplug() to ignore hotplug events for a device
+ (regression in 3.15)
+ - Revert "PCI: Don't scan random busses in pci_scan_bridge()"
+ (regression in 3.15)
+ - drm/nouveau/runpm: fix module unload
+ - drm/radeon/px: fix module unload
+ - fs: Fix nasty 32-bit overflow bug in buffer i/o code.
+ - blk-mq: Avoid race condition with uninitialized requests
+ - [x86] crypto: ccp - Check for CCP before registering crypto algs
+ - nl80211: clear skb cb before passing to netlink
+ - Revert "PCI: Make sure bus number resources stay within their parents
+ bounds" (regression in 3.15)
+ - cpufreq: release policy->rwsem on error (regression in 3.14)
+ - cpufreq: fix cpufreq suspend/resume for intel_pstate (regression in 3.15)
+ - media: it913x: init tuner on attach (regression in 3.15)
+ - media: videobuf2-dma-sg: fix for wrong GFP mask to
+ sg_alloc_table_from_pages (regression in 3.13)
+ - media: vb2: fix vb2 state check when start_streaming fails
+ (regression in 3.16.3)
+ - media: vb2: fix plane index sanity check in vb2_plane_cookie()
+ - md/raid1: clean up request counts properly in close_sync()
+ (regression in 3.13)
+ - md/raid1: be more cautious where we read-balance during resync.
+ (regression in 3.13)
+ - md/raid1: make sure resync waits for conflicting writes to complete.
+ (regression in 3.13)
+ - md/raid1: Don't use next_resync to determine how far resync has
+ progressed (regression in 3.13)
+ - md/raid1: update next_resync under resync_lock. (regression in 3.13)
+ - md/raid1: count resync requests in nr_pending. (regression in 3.13)
+ - md/raid1: fix_read_error should act on all non-faulty devices.
+ - md/raid1: intialise start_next_window for READ case to avoid hang
+ (regression in 3.13)
+ - netfilter: xt_hashlimit: perform garbage collection from process context
+ - mmc: mmci: Reverse IRQ handling for the arm_variant (regression in 3.15)
+ - partitions: aix.c: off by one bug (regression in 3.11)
+ - cpufreq: update 'cpufreq_suspended' after stopping governors
+ - aio: block exit_aio() until all context requests are completed
+ - ext4: propagate errors up to ext4_find_entry()'s callers
+ - ext4: avoid trying to kfree an ERR_PTR pointer
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.16.5
+ - udf: Avoid infinite loop when processing indirect ICBs (CVE-2014-6410)
+ - ASoC: core: fix possible ZERO_SIZE_PTR pointer dereferencing error.
+ - perf: fix perf bug in fork()
+ - mm: memcontrol: do not iterate uninitialized memcgs (regression in 3.14)
+ - mm: migrate: Close race between migration completion and mprotect
+ - [x86] ACPI / i915: Update the condition to ignore firmware backlight
+ change request (regression in 3.16)
+ - [x86] cpufreq: pcc-cpufreq: Fix wait_event() under spinlock
+ (regression in 3.15)
+ - md/raid5: disable 'DISCARD' by default due to safety concerns.
+ - [x86] drm/i915: Flush the PTEs after updating them before suspend
+ (regression in 3.12)
+ - cifs: Fix problem recognizing symlinks (regression in 3.13)
+ - ring-buffer: Fix infinite spin in reading buffer (regression in 3.16.3)
+ - mm: numa: Do not mark PTEs pte_numa when splitting huge pages
+ - media: vb2: fix VBI/poll regression
+
+ [ Ian Campbell ]
+ * [armhf] Add Exynos5 disk/usb/nic modules to udebs.
+ * [armhf] Backport BananaPi device tree files. Patch from Karsten
+ Merker (Closes: #763897).
+
+ [ Ben Hutchings ]
+ * [hppa/parisc64-smp] Work around gcc 4.8 miscompilation (Closes: #762390)
+ * [powerpc/powerpc64,ppc64*] video/fb: Change FB_MATROX, FB_RADEON, FB_ATY,
+ FB_SIS, FB_3DFX, FB_VOODOO1 back to modules (Closes: #748398)
+ * udeb: Add pata_rdc to pata-modules (Closes: #633128)
+ * [s390*] 3215: fix tty output containing tabs (Closes: #758264)
+ * radeon: Don't check for installed firmware if driver is built-in
+ (Closes: #763305)
+ * Bump ABI to 3
+ * vfs: fold swapping ->d_name.hash into switch_names()
+ * vfs: Don't exchange "short" filenames unconditionally. (Closes: #763700)
+ * [hppa,m68k,mips/r4k-ip22,sparc*] bluetooth: Enable BT as module
+ (Closes: #764524)
+
+ [ Aurelien Jarno ]
+ * [arm64] Change RTC_DRV_PL031 and RTC_DRV_XGENE from modules to built-ins
+ as the kernel isn't able to initialize the system clock from a hardware
+ clock whose driver is a module, and as there is no initramfs mechanism
+ to do that.
+ * [armhf] Change RTC_DRV_DA9052, RTC_DRV_IMXDI, RTC_DRV_MC13XXX,
+ RTC_DRV_MV, RTC_DRV_MXC, RTC_DRV_OMAP, RTC_DRV_PL030, RTC_DRV_PL031,
+ RTC_DRV_S5M, RTC_DRV_SUNXI, RTC_DRV_VT8500 from modules to built-ins for
+ the same reason as above.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 10 Oct 2014 09:15:17 +0100
+
+linux (3.16.3-2) unstable; urgency=medium
+
+ [ Ben Hutchings ]
+ * [s390*] syscall: Fix unimplented-syscall entries added before
+ memfd_create() (fixes FTBFS) (Closes: #762221)
+ * [armel/kirkwood] Change configuration to reduce kernel image size
+ (fixes FTBFS) (Closes: #762219)
+ - block: Change IOSCHED_DEADLINE to module
+ - gpu: Disable VGA_ARB
+
+ [ Aurelien Jarno ]
+ * [mips*/octeon] Enable OCTEON_USB, USB_EHCI_HCD, USB_OHCI_HCD,
+ and USB_OCTEON_EHCI, USB_OCTEON_OHCI (Closes: #762066).
+
+ -- Bastian Blank <waldi@debian.org> Sat, 20 Sep 2014 11:43:05 +0200
+
+linux (3.16.3-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.16.3
+ - reiserfs: fix corruption introduced by balance_leaf refactor
+ (regression in 3.16) (Closes: #761457)
+ - reiserfs: Fix use after free in journal teardown
+ - media: v4l: vb2: Fix stream start and buffer completion race
+ - [x86] iommu/vt-d: Exclude devices using RMRRs from IOMMU API domains
+ - [powerpc*] powerpc/powernv: Fix IOMMU group lost (regression in 3.15)
+ - [x86] iommu/vt-d: Defer domain removal if device is assigned to a driver
+ - [x86] iommu/amd: Fix cleanup_domain for mass device removal
+ - [s390*] locking: Reenable optimistic spinning
+ - firmware: Do not use WARN_ON(!spin_is_locked())
+ - CAPABILITIES: remove undefined caps from all processes
+ - fanotify: fix double free of pending permission events
+ - ocfs2: do not write error flag to user structure we cannot copy from/to
+ - [powerpc*] mm: fix potential infinite loop in dissolve_free_huge_pages()
+ - drivers/mfd/rtsx_usb.c: export device table (Closes: #761428)
+ - [powerpc*] mm: Use read barrier when creating real_pte
+ - [powerpc*] thp: Add write barrier after updating the valid bit
+ - [powerpc*] thp: Invalidate old 64K based hash page mapping before insert
+ of 4k pte
+ - [powerpc*] thp: Handle combo pages in invalidate
+ - [powerpc*] thp: Invalidate with vpn in loop
+ - [powerpc*] thp: Use ACCESS_ONCE when loading pmdp
+ - SCSI: save command pool address of Scsi_Host (regression in 3.15)
+ - fix regression in SCSI_IOCTL_SEND_COMMAND (regression in 3.16)
+ - [mips*] GIC: Prevent array overrun
+ - [mips*] ptrace: Test correct task's flags in task_user_regset_view()
+ - [mips*] ptrace: Change GP regset to use correct core dump register layout
+ - [mips*] ptrace: Avoid smp_processor_id() when retrieving FPU IR
+ - [mips*] syscall: Fix AUDIT value for O32 processes on MIPS64
+ - [mips*] scall64-o32: Fix indirect syscall detection
+ - [mips,powerpc] bfa: Fix undefined bit shift on big-endian architectures
+ with 32-bit DMA address
+ - ACPI / hotplug: Check scan handlers in acpi_scan_hot_remove()
+ (regression in 3.14)
+ - ACPI: Run fixed event device notifications in process context
+ (regression in 3.15)
+ - ACPI / scan: Allow ACPI drivers to bind to PNP device objects
+ (regression in 3.16)
+ - ACPI / EC: Add support to disallow QR_EC to be issued when SCI_EVT isn't
+ set (regression in 3.14.13, 3.16)
+ - ACPI / EC: Add support to disallow QR_EC to be issued before completing
+ previous QR_EC (regression in 3.14.13, 3.16)
+ - ACPI / scan: not cache _SUN value in struct acpi_device_pnp
+ (regression in 3.14)
+ - ACPI / video: Add a disable_native_backlight quirk
+ - ACPI / video: Disable native_backlight on HP ENVY 15 Notebook PC
+ - ring-buffer: Always reset iterator to reader page
+ - ring-buffer: Up rb_iter_peek() loop count to 3
+ - vfs: get rid of propagate_umount() mistakenly treating slaves as busy.
+ (regression in 3.15)
+ - Bluetooth: Fix tracking local SSP authentication requirement
+ - Bluetooth: Avoid use of session socket after the session gets freed
+ - vfs: __generic_file_write_iter(): fix handling of sync error after DIO
+ (regression in 3.16)
+ - rbd: rework rbd_request_fn() (regression in 3.15)
+ - vfs: fix copy_tree() regression (regression in 3.14)
+ - md/raid1,raid10: always abort recover on write error.
+ - md/raid5: avoid livelock caused by non-aligned writes.
+ (regression in 3.16)
+ - md/raid6: avoid data corruption during recovery of double-degraded RAID6
+ - md/raid10: fix memory leak when reshaping a RAID10.
+ - xfs: ensure verifiers are attached to recovered buffers
+ - xfs: quotacheck leaves dquot buffers without verifiers
+ - xfs: don't dirty buffers beyond EOF
+ - xfs: don't zero partial page cache pages during O_DIRECT writes
+ - xfs: don't zero partial page cache pages during O_DIRECT reads
+ - libceph: set last_piece in ceph_msg_data_pages_cursor_init() correctly
+ - libceph: gracefully handle large reply messages from the mon
+ - libceph: do not hard code max auth ticket len (CVE-2014-6416,
+ CVE-2014-6417, CVE-2014-6418)
+ - CIFS: Fix async reading on reconnects
+ - CIFS: Possible null ptr deref in SMB2_tcon
+ - CIFS: Fix wrong directory attributes after rename
+ - mtd/ftl: fix the double free of the buffers allocated in build_maps()
+ - mtd: nand: omap: Fix 1-bit Hamming code scheme, omap_calculate_ecc()
+ - dm table: propagate QUEUE_FLAG_NO_SG_MERGE (regression in 3.16)
+ - KEYS: Fix use-after-free in assoc_array_gc()
+ - KEYS: Fix termination condition in assoc array garbage collection
+ (CVE-2014-3631)
+
+ [ Ben Hutchings ]
+ * sfc: Adding PCI ID for Solarflare 7000 series 40G network adapter.
+ * sfc: Add 40G link capability decoding
+ * Bump ABI to 2 (Closes: #761874)
+ * ata: Enable SATA_ZPODD
+ * tracing: Enable TRACER_SNAPSHOT
+ * Add memfd_create() and shared memory sealing (Closes: #760702):
+ - mm: allow drivers to prevent new writable mappings
+ - shm: add sealing API
+ - shm: add memfd_create() syscall
+ - shm: wait for pins to be released when sealing
+ - mm: Add memfd_create() system call
+ - [arm*,m68k,mips*,powerpc*,s390*,sparc*] Wire up memfd_create()
+ * udeb: Add ccm, ctr to crypto-modules (Closes: #761902)
+ * [armhf] udeb: Add ehci-platform, ohci-platform and phy-sun4i-usb to
+ usb-modules (Closes: #761591)
+
+ [ Ian Campbell ]
+ * [armhf] Enable support for Exynos5 systems. (Closes: #759291)
+ * [arm64] Enable crypto accelerator modules
+ * [arm64] Add cdrom-core-modules udeb
+
+ [ Aurelien Jarno ]
+ * [powerpc/powerpc64,ppc64el] Backport more KVM patches from 3.17. Enable
+ KVM_BOOK3S_64, KVM_BOOK3S_64_HV, KVM_BOOK3S_64_PR and KVM_XICS. (Closes:
+ #761656).
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 18 Sep 2014 03:32:47 +0100
+
+linux (3.16.2-3) unstable; urgency=medium
+
+ [ Ben Hutchings ]
+ * [armhf] udeb: Remove efi-modules, as EFI is not yet supported on ARM!
+ * [arm64] ata: Enable PHY_XYGENE, AHCI_XGENE as modules
+ - udeb: Add ahci_xgene to sata-modules (fixes FTBFS)
+ * [arm64] rtc: Enable RTC_DRV_XGENE as module
+ * mfd,mmc,memstick: Enable MFD_RTSX_USB, MMC_REALTEK_USB,
+ MEMSTICK_REALTEK_USB as modules (Closes: #761099)
+ * [mips64,mips64el] Properly add the 5kc-malta flavour (should fix FTBFS)
+ * batman-adv: Enable BATMAN_ADV_MCAST
+ * can: Enable CAN_GS_USB as module
+ * bluetooth: Enable BT_6LOWPAN
+ * ubi: Enable MTD_UBI_BLOCK
+ * md: Enable DM_ERA as module
+ * qlcnic: Enable QLCNIC_VXLAN
+ * net/wireless: Enable RSI_91X, RSI_USB as modules
+ - udeb: Add rsi_usb to nic-wireless-modules
+ * i2c: Enable I2C_ROBOTFUZZ_OSIF as module
+ * mfd,gpio,i2c,iio: Enable MFD_VIPERBOARD, GPIO_VIPERBOARD, I2C_VIPERBOARD,
+ VIPERBOARD_ADC as modules
+ * media/usb/gspca: Enable USB_GSPCA_DTCS033 as module
+ * media/pci/cx23885: Enable MEDIA_ALTERA_CI as module
+ * sound/usb: Enable SND_USB_HIFACE, SND_BCD2000 as modules
+ * usb/misc: Enable USB_EHSET_TEST_FIXTURE as module
+ * usb/gadget: Enable USB_NET2280 as module
+ * leds: Enable LEDS_TRIGGER_CPU as built-in and LEDS_TRIGGER_ONESHOT,
+ LEDS_TRIGGER_GPIO, LEDS_TRIGGER_TRANSIENT, LEDS_TRIGGER_CAMERA as modules
+ * uio: Enable UIO_MF624 as module
+ * iio: Enable HID_SENSOR_PROX, HID_SENSOR_DEVICE_ROTATION, HID_SENSOR_PRESS
+ as modules
+ * ecryptfs: Enable ECRYPT_FS_MESSAGING
+ * ceph: Enable CEPH_FSCACHE
+ * crypto: Enable CRYPTO_LZ4, CRYPTO_LZ4HC as modules
+ * [x86] mfd,gpio,i2c,watchdog: Enable KEMPLD_MFD, GPIO_KEMPLD, I2C_KEMPLD,
+ KEMPLD_WDT as modules
+ * [x86] staging: Enable R8723AU as module
+ * [x86] staging: Enable WIMAX_GDM72XX as modules
+ - gdmwm: Enable WIMAX_GDM72XX_USB, WIMAX_GDM72XX_USB_PM
+ * [x86] staging/media: Enable DVB_AS102, USB_MSI3101, MEDIA_TUNER_MSI001,
+ SOLO6X10 as modules
+ * [x86] dvb-usb-rtl28xxu: Enable DVB_RTL2832_SDR
+ * [x86] platform: Enable ALIENWARE_WMI, DELL_SMO8800, IBM_RTL,
+ SAMSUNG_Q10, INTEL_RST, INTEL_SMARTCONNECT (Closes: #749273), PVPANIC
+ as modules
+ * [x86] sony-laptop: Enable SONYPI_COMPAT
+ * [x86,ia64] firmware: Enable DMI_SYSFS
+ * [x86] Disable USB_SN9C102; this driver is deprecated in favour of the
+ gspca drivers
+ * [i386] usb/gadget: Enable USB_AMD5536UDC as module
+ * [i386] comedi: Enable COMEDI_AMPLC_DIO200_ISA, COMEDI_AMPLC_PC236_ISA,
+ COMEDI_AMPLC_PC263_ISA, COMEDI_DAS08_ISA, COMEDI_NI_LABPC_ISA as modules
+ * [i386] speakup: Enable SPEAKUP_SYNTH_DECPC as module
+ * [!x86] staging: Enable R8712U, R8188EU as modules (Closes: #742055, #760859)
+ * i2o: Disable I2O_EXT_ADAPTEC on 64-bit, as it assumes 32-bit virtual
+ addresses
+ * SCSI: aic94xx: Remove broken fallback for missing 'Ctrl-A' user settings
+ * udeb: Add ath6kl_sdio, libertas_cs, libertas_sdio, mwifiex_sdio,
+ r8192u_usb, r8723au, rtl8188eu, rtl818x_pci, rtl8723be, rtl8821ae,
+ spectrum_cs to nic-wireless-modules
+ * builddeb: put the dbg files into the correct directory
+ * [ppc64el] deb-pkg: Add support for powerpc little endian
+ * [armhf] deb-pkg: Add automatic support for armhf architecture
+ * debian/rules.real: Never make kernel-wedge errors non-fatal, as in
+ practice this meant we didn't see them until they appeared in unstable
+ * udeb: Fix typo in dependencies of speakup-modules (fixes FTBFS on
+ mips64el due to interaction with another bug in kernel-wedge)
+ * libceph: Apply critical fixes:
+ - set last_piece in ceph_msg_data_pages_cursor_init() correctly
+ - gracefully handle large reply messages from the mon
+ - add process_one_ticket() helper
+ - do not hard code max auth ticket len
+
+ [ Ian Campbell ]
+ * [armel/orion5x] udeb: Include mvmdio in nic-modules udeb.
+ * [arm64] Backport X-GENE Ethernet driver from v3.17-rcs
+ * [arm64] Including phy-xgene in sata-modules udeb since it is needed by
+ ahci_xgene.
+
+ [ Aurelien Jarno ]
+ * [mips64el] Drop loongson-2e and loongson-2f flavour as the minimum
+ supported ISA will be at least MIPS64.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 13 Sep 2014 03:49:53 +0100
+
+linux-tools (3.16-2) unstable; urgency=medium
+
+ * linux-kbuild: Change the type headers used for devicetable-offsets.c
+ to avoid depending on UAPI headers or <linux/types.h>. This really
+ closes: #754213. It also fixes modpost handling of input device IDs
+ when host and target have differing word size.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 09 Sep 2014 13:21:05 +0100
+
+linux-tools (3.16-1) unstable; urgency=medium
+
+ * New upstream release
+
+ [ Mauricio Faria de Oliveira ]
+ * [ppc64el] Build linux-tools binary package (Closes: #754213)
+
+ [ Ben Hutchings ]
+ * linux-kbuild: Build and install recordmcount and recordmcount.pl,
+ needed for kernels with DYNAMIC_FTRACE enabled
+ * linux-kbuild: Fix recordmcount dependency for OOT modules
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 08 Sep 2014 18:45:06 +0100
+
+linux (3.16.2-2) unstable; urgency=medium
+
+ [ Ben Hutchings ]
+ * [armel,mips*] udeb: Remove lzo-modules, as LZO_COMPRESS is now built-in
+ (fixes FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 08 Sep 2014 18:39:25 +0100
+
+linux (3.16.2-1) unstable; urgency=medium
+
+ * New upstream stable update (closes: #748615):
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.16.1
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.16.2
+ - isofs: Fix unbounded recursion when processing relocated directories
+ (CVE-2014-5471, CVE-2014-5472)
+ - kvm: iommu: fix the third parameter of kvm_iommu_put_pages
+ (CVE-2014-3601)
+
+ [ Ben Hutchings ]
+ * HID: Enable HID_RMI as module (Closes: #754519)
+ * Set ABI to 1
+ * [armhf,arm64] udeb: Add efi-modules
+ * ftrace: Enable more tracers (Closes: #563847, #758469):
+ - Enable FUNCTION_TRACER and DYNAMIC_FTRACE
+ - Enable FUNCTION_GRAPH_TRACER, FTRACE_SYSCALLS and STACK_TRACER
+ (except on armel/kirkwood)
+ * [powerpc] drm: Disable DRM_RADEON_UMS, as radeon X driver now requires KMS
+ * aio: fix reqs_available handling (regression in 3.14.10)
+ * mm: Enable FRONTSWAP, ZSWAP (except armel/{ixp4xx,orion5x})
+ (Closes: #725703)
+ * [x86] mgag200: Enable auto-loading, but require mode-setting to be
+ explicitly enabled (as xserver-xorg-video-modesetting does)
+ * [armel] Remove obsolete mv78xx0 flavour
+ * virtio-scsi: Implement change_queue_depth for virtscsi targets
+ (Closes: #760324)
+ * sound/firewire: Enable SND_DICE, SND_FIREWORKS, SND_BEBOB as modules
+ (Closes: #756842)
+ * hid-sony: Enable SONY_FF (Closes: #760684)
+ * mtd: Enable MTD_SPI_NOR as module, since M25P80 now depends on it
+ * [m68k] Enable CGROUPS, required by systemd
+ * [armhf] Re-enable SPI_IMX as module
+ * [i386] comedi: Enable COMEDI_DAC02 as module, replacing COMEDI_POC
+ * sound: Disable SND_CS5535AUDIO on all but i386 and mips*/loongson-2f
+ * [mips*/loongson-2f] video: Re-add and enable sm7xxfb driver, removed
+ upstream in 3.15
+ * mnt: Fix flag handling on remount (CVE-2014-5206, CVE-2014-5207)
+ - mnt: Only change user settable mount flags in remount
+ - mnt: Move the test for MNT_LOCK_READONLY from change_mount_flags into
+ do_remount
+ - mnt: Correct permission checks in do_remount
+ - mnt: Change the default remount atime from relatime to the existing value
+ - mnt: Add tests for unprivileged remount cases that have found to be
+ faulty
+ * [armel/kirkwood] mm: Enable HIGHMEM (Closes: #760786)
+ * aufs: Update to aufs3.16-20140908:
+ - bugfix, missing mnt_want_write in moo
+ - new ioctl BRINFO
+ - bugfix, restore the lost unlock in an error path
+ - allow deleting a branch who has an opened dir
+ - bugfix, stop passing an error code to dput()
+ - possible bugfix, ptr in an array
+ - implement fhsm (not enabled)
+ - si_files has all opened files
+ - bugfix, use id instead of index to identify a branch
+ - new move-down flag AUFS_MVDOWN_FHSM_LOWER
+ - branch attr 'fhsm' is independent from rw/ro attrib
+ - support for a branch ro+fhsm
+ - fhsm notify after fixing inode attrib
+ - bugfix, hfile test in br_del_file()
+ - bugfix, pinning in mvdown
+ - bugfix, instantiate-revalidate race
+ - possible bugfix, temporary d_inode
+ - fhsm and br_del, allow the root dir only
+ - bugfix, get a removed dentry from an inode
+ * MAINTAINERS: Change aufs entry to say it's not upstream
+
+ [ Vagrant Cascadian ]
+ * [armmp] Enable IMX_IPUV3_CORE (closes: #756810).
+
+ [ Aurelien Jarno ]
+ * [mips*] Fix FP emulation for unaligned accesses.
+ * Update Spanish debconf template translations (Matias A. Bellone)
+ (Closes: #758591).
+ * [mips*/loongson3] Backport Loongson 3B support from 3.17.
+ * [powerpc,ppc64el] Backport KVM little endian support from 3.17.
+
+ [ maximilian attems ]
+ * Redisable UAS due to trouble with Seagate expansion drives
+ (closes: #755995, #759662), (reopen: #749014).
+
+ [ Ian Campbell ]
+ * [armhf] Remove incomplete list of hardware from image description. See
+ https://wiki.debian.org/DebianKernel/ARMMP for details.
+ * [armel/kirkwood] Enable CONFIG_MTD_SPI_NOR for flash access.
+
+ * [ppc64el] debian/patches/debian/ppc64el-disable-zImage.patch: remove patch.
+ The 'powerpc/boot: 64bit little endian wrapper' patch-set is in linux 3.16,
+ thus the default make/image-y target is OK now.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 08 Sep 2014 03:17:11 +0100
+
+linux (3.16-1~exp1) experimental; urgency=medium
+
+ * New upstream release: http://kernelnewbies.org/Linux_3.16
+
+ [ Aurelien Jarno ]
+ * [x86] vfio: Enable VFIO_PCI_VGA.
+ * udeb: rename crc32c.ko into crc32c_generic.ko in crc-modules.
+ * [mips*] Fix FP emulation.
+ * [mips*/loongson3] Enable TRANSPARENT_HUGEPAGE.
+
+ [ Bastian Blank ]
+ * [x86] Enable Xen PVH support.
+ * Enable more Nftables modules.
+ * [x86] Enable EARLY_PRINTK_EFI.
+ * Enable stack protector on all supported architectures. (closes: #756898)
+ * [powerpc64, s390x] Enable PCI hotplug.
+ * Enable RTL8723BE.
+ * Enable OPROFILE.
+ * [ppc64] Enable 64KiB pages.
+
+ [ Ben Hutchings ]
+ * udeb: Add new sound drivers to sound-modules (thanks to Samuel Thibault)
+ (Closes: #756998)
+ * [armhf] touchscreen: Enable TOUCHSCREEN_SUN4I as module (Closes: #757086)
+ * [!alpha,m68k,x86] Disable USELIB, only needed by libc5
+ * [arm*,ia64,ppc64el,s390*,sh4] Disable SYSFS_SYSCALL, only needed for
+ SVR4 compatibility
+ * [armel] Disable BINFMT_AOUT
+ * [armel] Re-enable ixp4xx flavour
+ * [armel] Change configuration to reduce kernel image size
+ - [/kirkwood] Change IPV6 to module
+ - [/ixp4xx,orion5x] Change IOSCHED_DEADLINE to module
+ - [/ixp4xx,orion5x] Disable SECURITY (i.e. Linux Security Modules,
+ including SELinux)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 09 Aug 2014 21:58:12 +0100
+
+linux-tools (3.16~rc7-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * genorig: Include new directory for usbip UAPI header
+ * debian/control: Update Build-Depends for usbip switching from
+ libsysfs to libudev
+ * perf: Build with V=1 as V=2 no longer works
+ * perf: Change build command to avoid a rebuild during 'make install'
+ * linux-tools: Install traceevent plugins in
+ /usr/lib/traceevent_<version>/plugins (Closes: #756429)
+ * linux-kbuild: Install scripts/Makefile.extrawarn
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 29 Jul 2014 21:11:10 +0100
+
+linux (3.16~rc6-1~exp1) experimental; urgency=medium
+
+ * New upstream rc
+
+ [ Aurelien Jarno ]
+ * [mipsel/loongson3] Enable SND_HDA_INTEL.
+ * [mips/4kc-malta, mips/5kc-malta] Cleanup configuration file.
+ * [mips/sb1-bcm91250a] Cleanup configuration file.
+ * [mips/r4k-ip22] Cleanup configuration file.
+ * [mips/r5k-ip32] Cleanup configuration file.
+ * [mips64,mips64el] Add a 5kc-malta flavour.
+
+ [ Ben Hutchings ]
+ * [x86] wireless: Enable R8192EE as module (Closes: #755310)
+ * net: Re-enable CGROUP_NET_PRIO as builtin
+
+ -- maximilian attems <maks@debian.org> Mon, 21 Jul 2014 21:51:45 +0200
+
+linux (3.16~rc5-1~exp1) experimental; urgency=medium
+
+ [ maximilian attems ]
+ * New upstream rc
+
+ [ Ben Hutchings ]
+ * aufs: Update to aufs3.x-rcN-20140714:
+ - tiny, no msg in spinlock regeion
+ - minor bugfix, correct error value in link(2)
+ - O_TMPFILE support
+ - bugfix, handling an error in opening a FIFO
+ - propagate aufs file references to new vmas created by remap_file_pages()
+ - begin supporting fallocate(2)
+ - linux-3.16, convert iovec into iov_iter
+ - allow an unprivileged mount under user_ns (enabled by module parameter)
+ - simply handing attribute string
+ - add mount option for copy-up on open
+ - add mount option for move-up on open
+ - add dirperm1 mount option
+ - mvdown, return a subset of statfs(2) optionally
+ - mvdown, tell about the branch is at the bottom
+
+ -- maximilian attems <maks@debian.org> Tue, 15 Jul 2014 22:57:31 +0200
+
+linux (3.15.5-1~exp1) experimental; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.15.4
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.15.5
+
+ -- maximilian attems <maks@debian.org> Thu, 10 Jul 2014 16:02:29 +0200
+
+linux (3.15.3-1~exp1) experimental; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.15.2
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.15.3
+
+ [ Yunqiang Su ]
+ * [mips,mipsel] Move common MIPS kernel config files to kernelarch-mips.
+ * [mips,mipsel] Clean mipsel installer by using symlinks to the mips
+ versions.
+ * [mips,mipsel] Add mips64 and mips64el support (Closes: #749688).
+
+ -- maximilian attems <maks@debian.org> Wed, 02 Jul 2014 20:30:41 +0200
+
+linux (3.15.1-1~exp1) experimental; urgency=medium
+
+ * New upstream release: http://kernelnewbies.org/Linux_3.15
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.15.1
+
+ [ maximilian attems ]
+ * Update policy version to 3.9.5 without changes
+
+ [ Ian Campbell ]
+ * [armhf] Enable HDMI on imx6qdl-wandboard, SolidRun HummingBoard and
+ Cubox -i. (Closes: #750406)
+
+ [ Ben Hutchings ]
+ * [powerpc] Build-depend on gcc-4.8 (>= 4.8.2-1) to ensure that
+ JUMP_LABEL works
+
+ -- maximilian attems <maks@debian.org> Fri, 20 Jun 2014 23:13:13 +0200
+
+linux (3.15~rc8-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ian Campbell ]
+ * [armhf] Enable Broadcom IEEE802.11n embedded FullMAC WLAN driver
+ (Closes: #734430)
+ * [armhf] Backport and enable sunxi MMC driver (Closes: #749484)
+
+ -- maximilian attems <maks@debian.org> Tue, 03 Jun 2014 11:43:26 +0200
+
+linux (3.15~rc7-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ maximilian attems ]
+ * Enable USB_UAS in topconfig (closes: #749014)
+
+ [ Ian Campbell ]
+ * [armhf] Enable SERIAL_OF_PLATFORM.
+ * [armhf] Enable DRM drivers DRM_IMX_* for IMX platform (Closes: #748406)
+ * [armhf] Enable SND_SOC_IMX_SPDIF (Closes: #748890)
+
+ -- maximilian attems <maks@debian.org> Tue, 27 May 2014 10:55:32 +0200
+
+linux (3.15~rc5-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * aufs: Update to aufs3.x-rcN-20140421
+ * [rt] Disable until it is updated for 3.15 or later
+
+ [ Aurelien Jarno ]
+ * [mipsel] Add a loongson-3 flavour to support Loongson 3A/3B machines.
+ * [mips/mipsel] Remove the sb1a-bcm91480b flavour.
+
+ [ Ian Campbell ]
+ * [armel/orion5x] Disable BPF_JIT, MEMCG, USER_NS to reduce kernel
+ size.
+ * [armel/kirkwood] Enable PCI_MVEBU for PCI support when booted via Device
+ Tree.
+
+ -- maximilian attems <maks@debian.org> Fri, 16 May 2014 14:33:57 +0200
+
+linux (3.14.15-2) unstable; urgency=medium
+
+ [ Aurelien Jarno ]
+ * [mips*/4kc-malta] Remove ABI reference as previous kernels were not
+ really usable, and the fix changes the ABI.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 09 Aug 2014 01:09:38 +0100
+
+linux (3.14.15-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.14
+ - Bluetooth: Ignore H5 non-link packets in non-active state
+ - fuse: timeout comparison fix
+ - tracing: instance_rmdir() leaks ftrace_event_file->filter
+ (regression in 3.11)
+ - xen/balloon: set ballooned out pages as invalid in p2m
+ (regression in 3.12)
+ - quota: missing lock in dqcache_shrink_scan() (regression in 3.12)
+ - shmem: fix faulting into a hole, not taking i_mutex (CVE-2014-4171)
+ - shmem: fix splicing from a hole while it's punched (CVE-2014-4171)
+ - e1000e: Fix SHRA register access for 82579 (regression in 3.12)
+ - ip_tunnel: fix ip_tunnel_lookup
+ - net: sctp: check proc_dointvec result in proc_sctp_do_auth
+ - 8021q: fix a potential memory leak
+ - net: fix UDP tunnel GSO of frag_list GRO packets
+ - ipv4: fix dst race in sk_dst_get()
+ - ipv4: irq safe sk_dst_[re]set() and ipv4_sk_update_pmtu() fix
+ - bnx2x: fix possible panic under memory stress
+ - tcp: Fix divide by zero when pushing during tcp-repair
+ - ipv4: icmp: Fix pMTU handling for rare case
+ - net: Fix NETDEV_CHANGE notifier usage causing spurious arp flush
+ (regression in 3.11)
+ - igmp: fix the problem when mc leave group
+ - appletalk: Fix socket referencing in skb
+ - netlink: Fix handling of error from netlink_dump().
+ - tipc: clear 'next'-pointer of message fragments before reassembly
+ (regression in 3.13)
+ - net: sctp: fix information leaks in ulpevent layer
+ - bonding: fix ad_select module param check (regression in 3.14)
+ - net-gre-gro: Fix a bug that breaks the forwarding path
+ (regression in 3.14)
+ - perf/x86/intel: ignore CondChgd bit to avoid false NMI handling
+ - mwifiex: fix Tx timeout issue
+ - [x86] tsc: Fix cpufreq lockup (regression in 3.14)
+ - dm thin metadata: do not allow the data block size to change
+ - dm cache metadata: do not allow the data block size to change
+ - locking/mutex: Disable optimistic spinning on some architectures
+ - sched: Fix possible divide by zero in avg_atom() calculation
+ - aio: protect reqs_available updates from changes in interrupt handlers
+ (regression in 3.14.10)
+ - Don't trigger congestion wait on dirty-but-not-writeout pages
+ (regression in 3.11)
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.15
+ - nfs: only show Posix ACLs in listxattr if actually present
+ (regression in 3.14)
+ - block: don't assume last put of shared tags is for the host
+ - libata: support the ata host which implements a queue depth less than 32
+ (regression in 3.14.4)
+ - libata: introduce ata_host->n_tags to avoid oops on SAS controllers
+ - blkcg: don't call into policy draining if root_blkg is already gone
+ - coredump: fix the setting of PF_DUMPCORE
+ - [hppa] Remove SA_RESTORER define
+ - hwmon: (smsc47m192) Fix temperature limit and vrm write operations
+ - fs: umount on symlink leaks mnt count (CVE-2014-5045)
+ - [x86] x86_32, entry: Store badsys error code in %eax
+ (regression in 3.14.10)
+ - drm/radeon: fix irq ring buffer overflow handling (regression in 3.14)
+ - mm: hugetlb: fix copy_hugetlb_page_range() (regression in 3.14.12)
+ - [x86] efi: Include a .bss section within the PE/COFF headers
+ - nl80211: move set_qos_map command into split state (regression in 3.14)
+ - platform_get_irq: Revert to platform_get_resource if of_irq_get fails
+ (regression in 3.14.6)
+
+ [ Aurelien Jarno ]
+ * Update German debconf template translations (Holger Wansing) (Closes:
+ #756049).
+ * Update French debconf template translations (David Prévot) (Closes:
+ #756134).
+ * Rewrite postinst to not require File::stat perl module (Closes: #756207).
+ * [mips*] Avoid smp_processor_id() in preemptible code.
+ * [mips*/octeon] Fix /proc/cpuinfo issues.
+ * [mips,mipsel/4kc-malta] Fix bug which can cause incorrect system call
+ restarts (fix hang on boot).
+ * [mips*] Fix hugepage support on machines with R4K like TLB.
+ * [mips*] Prevent user from setting FCSR cause bits and cause possible
+ kernel oops.
+ * Update Japanese debconf template translations (Victory).
+
+ [ Ben Hutchings ]
+ * [amd64] Reject x32 executables if x32 ABI not supported
+ * [amd64] Make x32 syscall support conditional on a kernel parameter
+ * [amd64] Enable X86_X32 (Closes: #708070) and X86_X32_DISABLED.
+ Use the kernel parameter "syscall.x32=y" to enable support for x32.
+ * [s390,s390x] 3215: fix hanging console issue (Closes: #747922)
+ * [armhf] Enable BRCMFMAC, BRCMFMAC_SDIO as modules (Closes: #734430)
+ * net: sctp: inherit auth_capable on INIT collisions (CVE-2014-5077)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 07 Aug 2014 16:47:21 +0100
+
+linux (3.14.13-2) unstable; urgency=medium
+
+ [ Aurelien Jarno ]
+ * [mips64,mips64el] Really enable mips64 and mips64el architectures.
+ * [mips64,mips64el] Build udebs for 5kc-malta flavour.
+ * [mipsel,mips64el/loongson-3] Disable not built modules in nic-modules,
+ scsi-common-modules, scsi-extra-modules, scsi-modules (fixes FTBFS).
+ * Add scsi_transport_sas and scsi_transport_spi to scsi-core-modules udeb
+ as optional so that these modules do not end up in two different udebs
+ as dependencies. Remove them from the i386, ia64, powerpc and sparc
+ definition.
+ * [mipsel,mips64el/loongson-2e,2f] Enable CONFIG_RTC_DRV_CMOS as built-in.
+ * [mips*] Add few new udebs and use standard udebs configuration when
+ possible.
+ * [s390,s390x] ptrace: fix PSW mask check (CVE-2014-3534).
+ * [mipsel,mips64el/loongson-3] Enable PREEMPT instead of PREEMPT_VOLUNTARY
+ as it workarounds SMP issues.
+
+ -- Aurelien Jarno <aurel32@debian.org> Thu, 24 Jul 2014 21:05:08 +0200
+
+linux (3.14.13-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.13
+ - iio: ti_am335x_adc: Fix: Use same step id at FIFOs both ends
+ (regression in 3.11)
+ - [hppa] Do not hardcode maximum userspace stack size (regression in 3.14)
+ - workqueue: fix dev_set_uevent_suppress() imbalance (regression in 3.10)
+ - workqueue: zero cpumask of wq_numa_possible_cpumask on init
+ (regression in 3.10)
+ - i8k: Fix non-SMP operation (regression in 3.14)
+ - Revert "ACPI / AC: Remove AC's proc directory." (regression in 3.13)
+ - ACPI / resources: only reject zero length resources based at address zero
+ (regression in 3.14)
+ - ACPI / EC: Avoid race condition related to advance_transaction()
+ - ACPI / EC: Fix race condition in ec_transaction_completed()
+ - [x86] crypto: sha512_ssse3 - fix byte count to bit count conversion
+ - [arm64] implement TASK_SIZE_OF
+ - phy: core: Fix error path in phy_create()
+ - dm io: fix a race condition in the wake up code for sync_io
+ - [x86] intel_pstate: Fix setting VID (regression in 3.14.6)
+ - PCI: Fix unaligned access in AF transaction pending test
+ (regression in 3.14)
+ - ext4: fix unjournalled bg descriptor while initializing inode bitmap
+ - ext4: fix a potential deadlock in __ext4_es_shrink()
+ - drm/radeon: stop poisoning the GART TLB
+ - [x86] drm/i915: Don't clobber the GTT when it's within stolen memory
+
+ [ Ian Campbell ]
+ * [armel] Remove drivers/net/phy configs which are redundant with toplevel.
+ * [armhf] Add MMC and NIC modules for BeagleBone Black to udebs.
+ (Closes: #754491)
+ * [arm64] Add xfs-modules udeb and add xen-netfront to nic-modules udeb.
+ * aufs: Fix build on arm64.
+
+ [ Aurelien Jarno ]
+ * [mips,mipsel] Add a debconf note to warn users that they have to
+ configure the system bootloader to load initramfs.
+ * Update Polish debconf template translations (Łukasz Dulny).
+ * Update Czech debconf template translations (Michal Simunek) (Closes:
+ #755060).
+ * Update Russian debconf template translations (Yuri Kozlov) (Closes:
+ #755085).
+ * Update Portuguese debconf template translations (Américo Monteiro)
+ (Closes: #755100).
+ * Update Swedish debconf template translations (Martin Bagge) (Closes:
+ #755145).
+ * Update Slovak debconf template translation (Slavko) (Closes: #755152).
+ * Update Turkish debconf template translation (Mert Dirik) (Closes:
+ #755223).
+ * Update Danish debconf template translation (Joe Dalton) (Closes:
+ #755400).
+ * [mips,mipsel] Cleanup configuration files.
+ * [mips,mipsel] Move common MIPS kernel config files to kernelarch-mips.
+ * [mips,mipsel] Clean mipsel installer by using symlinks to the mips
+ versions.
+ * [mipsel] Backport Loongson 3A/3B support from 3.15 and add the
+ corresponding flavour.
+ * [mips,mipsel] Remove the sb1a-bcm91480b flavour.
+ * [mips,mipsel] Add mips64 and mips64el support (Closes: #749688).
+ * [mips/octeon] Backport from upstream PCIe2 support and interface
+ mode detection for Octeon.
+ * [mips/sb1-91250a] Backport from upstream additional build flags
+ to fix excessive kernel warnings.
+ * [mips/malta] Backport from upstream power management support for
+ Malta.
+ * [mipsel/loongson3] Add support for Loongson 3 LS3A RS780E 1-way
+ boards.
+
+ [ Ben Hutchings ]
+ * net/l2tp: don't fall back on UDP [get|set]sockopt (CVE-2014-4943)
+ * Bump ABI to 2 (Closes: #754902)
+ * [powerpc/powerpc64] Re-enable JUMP_LABEL
+ * [powerpc/powerpc64,ppc64] Enable PPC_TRANSACTIONAL_MEM
+ * Enable DYNAMIC_DEBUG (except for armel/orion5x) (Closes: #694884)
+ * [rt] Update to 3.14.12-rt9 (no functional changes)
+ * udeb: Add sdhci-acpi to mmc-modules (Closes: #747284)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 21 Jul 2014 14:02:14 +0100
+
+linux (3.14.12-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.11
+ - iscsi-target: Avoid rejecting incorrect ITT for Data-Out
+ - iscsi-target: Explicily clear login response PDU in exception path
+ (regression in 3.10)
+ - iscsi-target: fix iscsit_del_np deadlock on unload (regression in 3.13)
+ - Input: synaptics - fix resolution for manually provided min/max
+ (regression in 3.14)
+ - [mips] MSC: Prevent out-of-bounds writes to MIPS SC ioremap'd region
+ - UBIFS: fix an mmap and fsync race condition
+ - UBIFS: Remove incorrect assertion in shrink_tnc()
+ - IB/ipath: Translate legacy diagpkt into newer extended diagpkt
+ - IB/srp: Fix a sporadic crash triggered by cable pulling
+ - IB/umad: Fix error handling
+ - IB/umad: Fix use-after-free on close
+ - nfsd4: fix FREE_STATEID lockowner leak (regression in 3.14.6)
+ - nfsd: getattr for FATTR4_WORD0_FILES_AVAIL needs the statfs buffer
+ - NFS: Don't declare inode uptodate unless all attributes were checked
+ - nfs: Fix cache_validity check in nfs_write_pageuptodate()
+ - [powerpc] mm: Check paca psize is up to date for huge mappings
+ - [powerpc] perf: Ensure all EBB register state is cleared on fork()
+ - xfs: xfs_readsb needs to check for magic numbers (regression in 3.14)
+ - reiserfs: call truncate_setsize under tailpack mutex
+ - ipvs: Fix panic due to non-linear skb
+ - tracing: Fix syscall_*regfunc() vs copy_process() race
+ - ALSA: usb-audio: Fix races at disconnection and PCM closing
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.12
+ - [powerpc] ibmvscsi: Abort init sequence during error recovery
+ - [powerpc] ibmvscsi: Add memory barriers for send / receive
+ - virtio-scsi: avoid cancelling uninitialized work items
+ - scsi_error: fix invalid setting of host byte
+ - virtio-scsi: fix various bad behavior on aborted requests
+ - xhci: Use correct SLOT ID when handling a reset device command
+ (regression in 3.13)
+ - usb: chipidea: udc: delete td from req's td list at ep_dequeue
+ - mtd: eLBC NAND: fix subpage write support (regression in 3.10)
+ - mtd: nand: omap: fix BCHx ecc.correct to return detected bit-flips in
+ erased-page
+ - [x86] drm/i915: Avoid div-by-zero when pixel_multiplier is zero
+ (regression in 3.13)
+ - [x86] drm/i915: set backlight duty cycle after backlight enable for gen4
+ (regression in 3.14)
+ - Bluetooth: Fix SSP acceptor just-works confirmation without MITM
+ - Bluetooth: Fix check for connection encryption
+ - rbd: use reference counts for image requests
+ - rbd: handle parent_overlap on writes correctly
+ - mac80211: fix a memory leak on sta rate selection table
+ (regression in 3.10)
+ - hugetlb: fix copy_hugetlb_page_range() to handle migration/hwpoisoned
+ entry
+ - [arm64] mm: Make icache synchronisation logic huge page aware
+ - [arm64] Bug fix in stack alignment exception
+ - fs/cifs: fix regression in cifs_create_mf_symlink() (regression in 3.14)
+ - blkcg: fix use-after-free in __blkg_release_rcu() by making
+ blkcg_gq refcnt an atomic_t
+ - ext4: Fix buffer double free in ext4_alloc_branch()
+ - ext4: Fix hole punching for files with indirect blocks
+ - [x86] KVM: preserve the high 32-bits of the PAT register
+ - [x86] kvm: fix wrong address when writing Hyper-V tsc page
+ - nfsd: fix rare symlink decoding bug
+ - tracing: Remove ftrace_stop/start() from reading the trace file
+ - md: flush writes before starting a recovery.
+ - mlx4_core: Fix incorrect FLAGS1 bitmap test in mlx4_QUERY_FUNC_CAP
+ (regression in 3.14)
+ - netfilter: nf_nat: fix oops on netns removal
+ - brcmfmac: Fix brcmf_chip_ai_coredisable not applying reset bits to
+ BCMA_IOCTL (regression in 3.14)
+ - mmc: rtsx: add R1-no-CRC mmc command type handle (regression in 3.13)
+ - aio: block io_destroy() until all context requests are completed
+ (regression in 3.11)
+ - audit: remove superfluous new- prefix in AUDIT_LOGIN messages
+ (regression in 3.14)
+ - mm/numa: Remove BUG_ON() in __handle_mm_fault() (regression in 3.13)
+ - slab: fix oops when reading /proc/slab_allocators
+ - sym53c8xx_2: Set DID_REQUEUE return code when aborting squeue
+ - mm: fix crashes from mbind() merging vmas
+
+ [ Ben Hutchings ]
+ * [rt] Update to 3.14.10-rt7:
+ - rtmutex: Resolve conflicts with changes in 3.14.10
+ - sched: Do not clear PF_NO_SETAFFINITY flag in select_fallback_rq()
+ - workqueue: Prevent deadlock/stall on RT
+ * [rt] random: Restore interrupt randomness dropped in 3.14.10-rt6
+ * [s390,s390x] Ignore ABI change in lowcore structure (fixes FTBFS)
+ * [m68k] block: Change IOSCHED_CFQ to built-in and make it the default
+ I/O scheduler, consistent with other architectures
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 11 Jul 2014 17:56:20 +0100
+
+linux (3.14.10-1) unstable; urgency=high
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.10
+ - [s390] af_iucv: wrong mapping of sent and confirmed skbs
+ - Staging: rtl8188eu: overflow in update_sta_support_rate()
+ - USB: option: fix runtime PM handling
+ - hugetlb: restrict hugepage_migration_support() to x86_64
+ - kthread: fix return value of kthread_create() upon SIGKILL.
+ - mm/memory-failure.c-failure: send right signal code to correct thread
+ - mm/memory-failure.c: don't let collect_procs() skip over processes for
+ MF_ACTION_REQUIRED
+ - ptrace: fix fork event messages across pid namespaces
+ - idr: fix overflow bug during maximum ID calculation at maximum height
+ - [s390] time: cast tv_nsec to u64 prior to shift in update_vsyscall
+ (regression in 3.13)
+ - [s390] lowcore: reserve 96 bytes for IRB in lowcore
+ - ext4: fix data integrity sync in ordered mode
+ - ext4: fix zeroing of page during writeback
+ - ext4: fix wrong assert in ext4_mb_normalize_request()
+ - USB: usb_wwan: fix race between write and resume
+ - USB: usb_wwan: fix write and suspend race
+ - USB: usb_wwan: fix urb leak at shutdown
+ - USB: sierra: fix use after free at suspend/resume
+ - USB: sierra: fix remote wakeup
+ - USB: serial: fix potential runtime pm imbalance at device remove
+ - media: stk1160: Avoid stack-allocated buffer for control URBs
+ - rtmutex: Detect changes in the pi lock chain
+ - rtmutex: Handle deadlock detection smarter
+ - rtmutex: Plug slow unlock race
+ - media: uvcvideo: Fix clock param realtime setting
+ - media: saa7134: fix regression with tvtime (regression in 3.14)
+ - Bluetooth: Fix L2CAP deadlock
+ - Target/iser: Wait for proper cleanup before unloading
+ - target: Set CMD_T_ACTIVE bit for Task Management Requests
+ - target: Use complete_all for se_cmd->t_transport_stop_comp
+ - iscsi-target: Fix ABORT_TASK + connection reset iscsi_queue_req memory
+ leak
+ - target: Explicitly clear ramdisk_mcp backend pages
+ - [x86] x86-32, espfix: Remove filter for espfix32 due to race
+ - aio: fix aio request leak when events are reaped by userspace
+ - aio: fix kernel memory disclosure in io_getevents() introduced in v3.10
+ (CVE-2014-0206)
+ - CIFS: Fix memory leaks in SMB2_open
+ - Btrfs: fix double free in find_lock_delalloc_range
+ - Btrfs: make sure there are not any read requests before stopping workers
+ - Btrfs: mark mapping with error flag to report errors to userspace
+ - Btrfs: set right total device count for seeding support
+ - fs: btrfs: volumes.c: Fix for possible null pointer dereference
+ - Btrfs: don't check nodes for extent items
+ - Btrfs: fix scrub_print_warning to handle skinny metadata extents
+ - btrfs: fix use of uninit "ret" in end_extent_writepage()
+ - btrfs: allocate raid type kobjects dynamically
+ - lz4: fix another possible overrun
+ - epoll: fix use-after-free in eventpoll_release_file
+ - builddeb: use $OBJCOPY variable instead of objcopy (regression in 3.12)
+ - [i386] efi-pstore: Fix an overflow on 32-bit builds
+
+ [ Ben Hutchings ]
+ * [amd64] ptrace,x86: force IRET path after a ptrace_stop() (CVE-2014-4699)
+ * shmem: fix faulting into a hole while it's punched (CVE-2014-4171)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 07 Jul 2014 09:54:10 +0100
+
+linux (3.14.9-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.8
+ - Target/iscsi,iser: Avoid accepting transport connections during stop
+ stage
+ - iser-target: Fix multi network portal shutdown regression
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.9
+ - target: Fix NULL pointer dereference for XCOPY in target_put_sess_cmd
+ (regression in 3.14.6)
+ - iscsi-target: Reject mutual authentication with reflected CHAP_C
+ - ima: audit log files opened with O_DIRECT flag
+ - ima: introduce ima_kernel_read() (regression in 3.10)
+ - evm: prohibit userspace writing 'security.evm' HMAC value
+ - net: Use netlink_ns_capable to verify the permisions of netlink messages
+ (CVE-2014-0181)
+ - netlink: Only check file credentials for implicit destinations
+ - qlcnic: info leak in qlcnic_dcb_peer_app_info()
+ - ipv6: Fix regression caused by efe4208 in udp_v6_mcast_next()
+ (regression in 3.13)
+ - netlink: rate-limit leftover bytes warning and print process name
+ - bridge: Prevent insertion of FDB entry with disallowed vlan
+ - net: tunnels - enable module autoloading
+ - [sparc] net: filter: fix typo in sparc BPF JIT
+ - sfc: PIO:Restrict to 64bit arch and use 64-bit writes.
+ (regression in 3.13)
+ - ipv4: fix a race in ip4_datagram_release_cb()
+ - sctp: Fix sk_ack_backlog wrap-around problem
+ - udp: ipv4: do not waste time in __udp4_lib_mcast_demux_lookup
+ (regression in 3.13)
+ - USB: cdc-acm: Fix various bugs in power management
+ - USB: cdc-acm: fix I/O after failed open
+ - [x86] hv: use correct order when freeing monitor_pages
+ - ASoC: dapm: Make sure to always update the DAPM graph in _put_volsw()
+ (regression in 3.12)
+ - lzo: properly check for overruns (CVE-2014-4608)
+ - lz4: ensure length does not wrap (CVE-2014-4608)
+ - ALSA: compress: Cancel the optimization of compiler and fix the size of
+ struct for all platform.
+ - ALSA: control: Protect user controls against concurrent access
+ (CVE-2014-4652)
+ - ALSA: control: Fix replacing user controls (CVE-2014-4654, CVE-2014-4655)
+ - ALSA: control: Don't access controls outside of protected regions
+ (CVE-2014-4653)
+ - ALSA: control: Make sure that id->index does not overflow;
+ Handle numid overflow (CVE-2014-4656)
+
+ [ Ben Hutchings ]
+ * aufs: Update to aufs3.14-20140616:
+ - tiny, no msg in spinlock regeion
+ - minor bugfix, correct error value in link(2)
+ - O_TMPFILE support
+ - bugfix, handling an error in opening a FIFO
+ - propagate aufs file references to new vmas created by remap_file_pages()
+ * linux-image: Make initramfs support unconditional
+ * [x86] x86_32, entry: Do syscall exit work on badsys (CVE-2014-4508)
+ * [rt] Fix latency histogram after "hrtimer: Set expiry time before
+ switch_hrtimer_base()" in 3.14.6
+
+ [ Aurelien Jarno ]
+ * [arm64] Enable COMPAT to support 32-bit binaries.
+ * [mips,mipsel] Enable initramfs for all flavours, but keep the disk
+ related drivers built-in for now.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 30 Jun 2014 13:57:11 +0100
+
+linux (3.14.7-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.6
+ - [mipsel] loongson2_cpufreq: Fix CPU clock rate setting
+ (regression in 3.14)
+ - rtmutex: Fix deadlock detector for real
+ - kernfs: add back missing error check in kernfs_fop_mmap()
+ (regression in 3.14)
+ - coredump: fix va_list corruption (regression in 3.11)
+ - mm: make fixup_user_fault() check the vma access rights too
+ - serial: 8250: Fix thread unsafe __dma_tx_complete function
+ - 8250_core: Fix unwanted TX chars write
+ - iwlwifi: 7000: bump API to 9
+ - timer: Prevent overflow in apply_slack
+ - cfg80211: free sme on connection failures (regression in 3.11)
+ - cfg80211: add cfg80211_sched_scan_stopped_rtnl (regression in 3.14)
+ - mac80211: fix nested rtnl locking on ieee80211_reconfig
+ (regression in 3.14)
+ - mm, thp: close race between mremap() and split_huge_page()
+ - [x86] mm, hugetlb: Add missing TLB page invalidation for hugetlb_cow()
+ - hwpoison, hugetlb: lock_page/unlock_page does not match for handling a
+ free hugepage
+ - iwlwifi: mvm: delay enabling smart FIFO until after beacon RX
+ (regression in 3.14)
+ - aio: fix potential leak in aio_run_iocb().
+ - Revert "hwmon: (coretemp) Refine TjMax detection"
+ - hrtimer: Prevent remote enqueue of leftmost timers
+ - hrtimer: Set expiry time before switch_hrtimer_base()
+ - dm verity: fix biovecs hash calculation regression (regression in 3.14)
+ - dm cache: fix writethrough mode quiescing in cache_map
+ (regression in 3.13)
+ - md/raid10: call wait_barrier() for each request submitted.
+ (regression in 3.14)
+ - PNP / ACPI: Do not return errors if _DIS or _SRS are not present
+ (regression in 3.14)
+ - ACPI / EC: Process rather than discard events in acpi_ec_clear
+ (regression in 3.13.7, 3.14)
+ - irqchip: armada-370-xp: fix invalid cast of signed value into unsigned
+ variable (regression in 3.13)
+ - irqchip: armada-370-xp: implement the ->check_device() msi_chip
+ operation (regression in 3.13)
+ - irqchip: armada-370-xp: Fix releasing of MSIs (regression in 3.13)
+ - [x86] drm/i915: Allow user modes to exceed DVI 165MHz limit
+ (regression in 3.14)
+ - [x86] drm/i915: Don't check gmch state on inherited configs
+ (regression in 3.13?)
+ - [x86] drm/i915: Don't WARN nor handle unexpected hpd interrupts on gmch
+ platforms (regression in 3.13)
+ - [x86] drm/radeon: fix runpm handling on APUs (v4) (regression in 3.13)
+ - drm/radeon: disable mclk dpm on R7 260X (regression in 3.14)
+ - drm/radeon: add support for newer mc ucode on SI (v2)
+ - drm/radeon: add support for newer mc ucode on CI (v2)
+ - drm/radeon: re-enable mclk dpm on R7 260X asics
+ - drm/radeon/uvd: use lower clocks on old UVD to boot v2
+ (regression in 3.13)
+ - drm/radeon: check buffer relocation offset
+ - USB: Nokia 305 should be treated as unusual dev
+ - USB: Nokia 5300 should be treated as unusual dev
+ - Revert "Bluetooth: Enable autosuspend for Intel Bluetooth device"
+ (regression in 3.14)
+ - posix_acl: handle NULL ACL in posix_acl_equiv_mode
+ - fs/affs/super.c: bugfix / double free (regression in 3.14)
+ - [armel/orion5x] fix target ID for crypto SRAM window
+ (regression in 3.12)
+ - [armel/kirkwood]: dts: fix mislocated pcie-controller nodes
+ (regression in 3.12)
+ - [armhf/armmp-lpae] 8012/1: kdump: Avoid overflow when converting pfn to
+ physaddr
+ - drm/nouveau: fix another lock unbalance in nouveau_crtc_page_flip
+ (regression in 3.11)
+ - drm/i915/vlv: reset VLV media force wake request register
+ (regression in 3.14?)
+ - i40e: potential array underflow in i40e_vc_process_vf_msg()
+ - igb: Fix Null-pointer dereference in igb_reset_q_vector
+ (regression in 3.14)
+ - igb: Unset IGB_FLAG_HAS_MSIX-flag when falling back to msi-only
+ (regression in 3.14)
+ - leds: leds-pwm: properly clean up after probe failure
+ - device_cgroup: rework device access check and exception checking
+ - device_cgroup: check if exception removal is allowed
+ - media: media-device: fix infoleak in ioctl media_enum_entities()
+ (CVE-2014-1739)
+ - Input: Add INPUT_PROP_TOPBUTTONPAD device property
+ - Input: synaptics - report INPUT_PROP_TOPBUTTONPAD property
+ - e1000e: Fix no connectivity when driver loaded with cable out
+ (regression in 3.12)
+ - autofs: fix lockref lookup
+ - vfs: fix races between __d_instantiate() and checks of dentry flags
+ - ALSA: hda - hdmi: Set converter channel count even without sink
+ (regression in 3.13)
+ - NFSd: Move default initialisers from create_client() to alloc_client()
+ - NFSd: call rpc_destroy_wait_queue() from free_client()
+ - NFSD: Call ->set_acl with a NULL ACL structure if no entries
+ - nfsd4: remove lockowner when removing lock stateid
+ - workqueue: fix bugs in wq_update_unbound_numa() failure path
+ - workqueue: fix a possible race condition between rescuer and pwq-release
+ - [arm] mvebu: mvebu-soc-id: add missing clk_put() call
+ (regression in 3.14)
+ - [arm] mvebu: mvebu-soc-id: keep clock enabled if PCIe unit is enabled
+ (regression in 3.14)
+ - ASoC: dapm: Skip CODEC<->CODEC links in connect_dai_link_widgets()
+ (regression in 3.14)
+ - [hppa] ratelimit userspace segfault printing
+ - [amd64] modify_ldt: Make support for 16-bit segments a runtime option
+ - sysfs: make sure read buffer is zeroed (possible regression in 3.13)
+ - Target/iser: Fix wrong connection requests list addition
+ - Target/iser: Fix iscsit_accept_np and rdma_cm racy flow
+ - iscsi-target: Change BUG_ON to REJECT in iscsit_process_nop_out
+ (regression in 3.11)
+ - target: fix memory leak on XCOPY
+ - [x86] drm/i915: Disable self-refresh for untiled fbs on i915gm
+ (regression in 3.14)
+ - [x86] drm/i915: move power domain init earlier during system resume
+ (regression in 3.14?)
+ - [x86] drm/i915: Fix unsafe loop iteration over vma whilst unbinding them
+ (regression in 3.12)
+ - iwlwifi: mvm: BT Coex - fix Look Up Table (regression in 3.13)
+ - PCI: Wrong register used to check pending traffic (regression in 3.14)
+ - dm crypt: fix cpu hotplug crash by removing per-cpu structure
+ - dm thin: allow metadata commit if pool is in PM_OUT_OF_DATA_SPACE mode
+ (regression in 3.14)
+ - dm thin: add timeout to stop out-of-data-space mode holding IO forever
+ - dmaengine: fix dmaengine_unmap failure
+ - dma: mv_xor: Flush descriptors before activating a channel
+ - tcm_fc: Fix free-after-use regression in ft_free_cmd
+ (regression in 3.13)
+ - ACPICA: Tables: Restore old behavor to favor 32-bit FADT addresses.
+ (regression in 3.14)
+ - ACPI: Revert "ACPI: Remove CONFIG_ACPI_PROCFS_POWER and cm_sbsc.c"
+ (regression in 3.13)
+ - ACPI: Revert "ACPI / Battery: Remove battery's proc directory"
+ (regression in 3.13)
+ - [x86] ACPI / video: Add use_native_backlight quirks for more systems
+ - ACPI: Revert "ACPI / AC: convert ACPI ac driver to platform bus"
+ (regression in 3.13)
+ - [x86] ACPI / TPM: Fix resume regression on Chromebooks
+ (regression in 3.14)
+ - i2c: s3c2410: resume race fix
+ - [x86] intel_pstate: Set turbo VID for BayTrail
+ - [s390] crypto: fix aes,des ctr mode concurrency finding.
+ - clk: Fix double free due to devm_clk_register()
+ - clk: Fix slab corruption in clk_unregister()
+ - [powerpc] powernv: Reset root port in firmware (regression in 3.14)
+ - [powerpc] irq work racing with timer interrupt can result in timer
+ interrupt hang (regression in 3.14)
+ - [powerpc] kexec: Fix "Processor X is stuck" issue during kexec from ST
+ mode (regression in 3.13)
+ - spi: core: Ignore unsupported Dual/Quad Transfer Mode bits
+ (regression in 3.12)
+ - libceph: fix corruption when using page_count 0 page in rbd
+ - media: V4L2: ov7670: fix a wrong index, potentially Oopsing the kernel
+ from user-space
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.7
+ - perf: Limit perf_event_attr::sample_period to 63 bits
+ - perf: Fix race in removing an event
+ - SCSI: scsi_transport_sas: move bsg destructor into sas_rphy_remove
+ (regression in 3.13)
+ - [arm] 8051/1: put_user: fix possible data corruption in put_user
+ - [arm] 8064/1: fix v7-M signal return (regression in 3.11)
+ - cpufreq: remove race while accessing cur_policy
+ - firewire: revert to 4 GB RDMA, fix protocols using Memory Space
+ (regression in 3.14)
+ - [mips] Fix typo when reporting cache and ftlb errors for ImgTec cores
+ (regression in 3.14)
+ - dm cache: always split discards on cache block boundaries
+ - virtio_blk: fix race between start and stop queue
+ - sched/deadline: Restrict user params max value to 2^63 ns
+ - sched/dl: Fix race in dl_task_timer()
+ - drm/radeon: avoid crash if VM command submission isn't available
+ - [x86] drm/i915: Only copy back the modified fields to userspace from
+ execbuffer
+ - drm/radeon/dpm: resume fixes for some systems (regression in 3.14)
+ - libata: Blacklist queued trim for Crucial M500 (regression in 3.14.4)
+ - md: always set MD_RECOVERY_INTR when aborting a reshape or other
+ "resync".
+ - md: always set MD_RECOVERY_INTR when interrupting a reshape thread.
+ (regression in 3.12.9, 3.13)
+ - xhci: delete endpoints from bandwidth list before freeing whole device
+ - staging: comedi: ni_daq_700: add mux settling delay
+ - staging: r8192e_pci: fix htons error (regression in 3.14)
+ - ALSA: hda/analog - Fix silent output on ASUS A8JN (regression in 3.12)
+ - USB: io_ti: fix firmware download on big-endian machines (part 2)
+ - usb: pci-quirks: Prevent Sony VAIO t-series from switching usb ports
+ (regression in 3.12)
+ - percpu-refcount: fix usage of this_cpu_ops
+ - [x86] intel_pstate: Remove C0 tracking (regression in 3.14)
+ - [x86] intel_pstate: Correct rounding in busy calculation
+ (regression in 3.14)
+ - [x86] intel_pstate: add sample time scaling
+ - [x86] intel_pstate: Improve initial busy calculation
+ - mm: add !pte_present() check on existing hugetlb_entry callbacks
+ (CVE-2014-3940)
+ - mm: rmap: fix use-after-free in __put_anon_vma
+ - iser-target: Add missing target_put_sess_cmd for ImmedateData failure
+ - iscsi-target: Fix wrong buffer / buffer overrun in
+ iscsi_change_param_value()
+ - target: Fix alua_access_state attribute OOPs for un-configured devices
+ - netfilter: Fix potential use after free in ip6_route_me_harder()
+ - netfilter: nfnetlink: Fix use after free when it fails to process batch
+ - [x86] iommu/vt-d: Fix missing IOTLB flush in intel_iommu_unmap()
+
+ [ Ian Campbell ]
+ * [armhf] Enable VIRTIO_BALLOON and VIRTIO_PCI (Closes: #750742)
+ * [arm64] Update modules included in installer udebs.
+ * Include virtio_mmio in virtio-modules udeb when available.
+
+ [ Aurelien Jarno ]
+ * topconfig: Enable modular HW_RANDOM.
+ * [kernelarch-powerpc] Remove HW_RANDOM.
+ * [kernelarch-x86] Remove HW_RANDOM.
+ * [mips/4kc-malta] Remove HW_RANDOM.
+ * [mips/5kc-malta] Remove HW_RANDOM.
+ * [mips/octeon] Remove HW_RANDOM.
+ * [arm64] Enable modular RTC_DRV_PL031.
+
+ [ Ben Hutchings ]
+ * [ppc64el] Add kernel image, thanks to Mauricio Faria de Oliveira:
+ - Split common/big-endian powerpc64 options
+ - Add little-endian powerpc64 options
+ - Temporarily disable zImage
+ - powerpc/powernv: Add calls to support little endian host
+ - Add 'ppc64le' (uname output) to bug/include-model script
+ - udeb: Add packages based on ppc64 configuration
+ * netfilter: ipv4: defrag: set local_df flag on defragmented skb
+ (regression in 3.14.5)
+ * [mips] seccomp: Check system calls whenever seccomp is enabled,
+ even if audit and trace are disabled (Closes: #751417)
+ * auditsc: audit_krule mask accesses need bounds checking (CVE-2014-3917)
+ * fs,userns: Change inode_capable to capable_wrt_inode_uidgid
+ (CVE-2014-4014)
+ * SCSI: Fix spurious request sense in error handling (regression in 3.14)
+ * PCI/MSI: Fix memory leak in free_msi_irqs() (regression in 3.14)
+ * [rt] hrtimer: Disable MISSED_TIMER_OFFSETS_HIST as it will currently
+ result in a panic
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 16 Jun 2014 09:51:49 +0100
+
+linux (3.14.5-1) unstable; urgency=high
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.5
+ - SCSI: dual scan thread bug fix
+ - SCSI: megaraid: missing bounds check in mimd_to_kioc()
+ - [x86] KVM: remove WARN_ON from get_kernel_ns()
+ - audit: convert PPIDs to the inital PID namespace.
+ - netfilter: nf_tables: fix nft_cmp_fast failure on big endian for size < 4
+ - netfilter: nf_conntrack: reserve two bytes for nf_ct_ext->len
+ (Closes: #741667)
+ - netfilter: Can't fail and free after table replacement
+ - [i386] x86,preempt: Fix preemption for i386
+ - rbd: fix error paths in rbd_img_request_fill()
+ - [x86] drm/i915: restore QUIRK_NO_PCH_PWM_ENABLE (regression in 3.14)
+ - tick-sched: Don't call update_wall_time() when delta is lesser than
+ tick_period (regression in 3.14)
+ - tick-sched: Check tick_nohz_enabled in tick_nohz_switch_to_nohz()
+ (regression in 3.13)
+ - [hppa] change value of SHMLBA from 0x00400000 to PAGE_SIZE
+ - [hppa] fix epoll_pwait syscall on compat kernel
+ - [hppa] remove _STK_LIM_MAX override
+ - vfs: don't bother with {get,put}_write_access() on non-regular files
+ - cifs: Wait for writebacks to complete before attempting write.
+ - xen/spinlock: Don't enable them unconditionally. (regression in 3.12)
+ - thp: close race between split and zap huge pages (regression in 3.13)
+ - mm/hugetlb.c: add cond_resched_lock() in return_unused_surplus_pages()
+ - mm: use paravirt friendly ops for NUMA hinting ptes
+ - USB: io_ti: fix firmware download on big-endian machines
+ - fs: Don't return 0 from get_anon_bdev (regression in 3.14)
+ - [x86] drm/vmwgfx: Make sure user-space can't DMA across buffer object
+ boundaries v2
+ - [x86] drm/i915: Do not dereference pointers from ring buffer in evict
+ event (regression in 3.13)
+ - net: core: don't account for udp header size when computing seglen
+ (regression in 3.14)
+ - bridge: Fix double free and memory leak around br_allowed_ingress
+ - filter: prevent nla extensions to peek beyond the end of the message
+ (CVE-2014-3144, CVE-2014-3145)
+ - Revert "net: sctp: Fix a_rwnd/rwnd management to reflect real state of
+ the receiver's buffer" (regression in 3.14)
+ - ip6_gre: don't allow to remove the fb_tunnel_dev
+ - net: sctp: cache auth_enable per endpoint
+ - net: Fix ns_capable check in sock_diag_put_filterinfo
+ - rtnetlink: Warn when interface's information won't fit in our packet
+ - rtnetlink: Only supply IFLA_VF_PORTS information when RTEXT_FILTER_VF
+ is set
+ - tcp_cubic: fix the range of delayed_ack
+ - net: cdc_ncm: fix buffer overflow (regression in 3.13)
+ - ip_tunnel: Set network header properly for IP_ECN_decapsulate()
+ (regression in 3.11)
+ - ipv4: ip_tunnels: disable cache for nbma gre tunnels (regression in 3.14)
+ - net: cdc_mbim: __vlan_find_dev_deep need rcu_read_lock
+ (regression in 3.13)
+ - net: ipv4: ip_forward: fix inverted local_df test (regression in 3.14)
+ - net: ipv6: send pkttoobig immediately if orig frag size > mtu
+ (regression in 3.14)
+ - ip6_tunnel: fix potential NULL pointer dereference
+ - neigh: set nud_state to NUD_INCOMPLETE when probing router reachability
+ (regression in 3.14)
+ - batman-adv: fix neigh_ifinfo imbalance (regression in 3.14)
+ - batman-adv: fix neigh reference imbalance (regression in 3.14)
+ - batman-adv: always run purge_orig_neighbors (regression in 3.14)
+ - batman-adv: fix removing neigh_ifinfo (regression in 3.14)
+ - [s390,x86] net: filter: fix JIT address randomization
+ - net: avoid dependency of net_get_random_once on nop patching
+ (regression in 3.13)
+ - ipv6: fix calculation of option len in ip6_append_data
+ (regression in 3.13)
+ - rtnetlink: wait for unregistering devices in rtnl_link_unregister()
+ - bonding: fix out of range parameters for bond_intmax_tbl
+ (regression in 3.14)
+ - net: gro: make sure skb->cb[] initial content has not to be zero
+ (regression in 3.13)
+ - batman-adv: fix indirect hard_iface NULL dereference (regression in 3.14)
+ - batman-adv: fix reference counting imbalance while sending fragment
+ (regression in 3.14)
+ - batman-adv: increase orig refcount when storing ref in gw_node
+ - batman-adv: fix local TT check for outgoing arp requests in DAT
+ (regression in 3.13)
+ - net_sched: fix an oops in tcindex filter (regression in 3.14)
+ - ipv6: gro: fix CHECKSUM_COMPLETE support (regression in 3.14)
+ - ipv4: initialise the itag variable in __mkroute_input
+ - net-gro: reset skb->truesize in napi_reuse_skb()
+
+ [ Ben Hutchings ]
+ * [x86] ACPICA: Tables: Fix invalid pointer accesses in
+ acpi_tb_parse_root_table(). (Closes: #748574)
+ * net: Revert lockdep changes in 3.14.5 to avoid an ABI change
+ * futex: Add another early deadlock detection check
+ * futex: Prevent attaching to kernel threads
+ * futex: Forbid uaddr == uaddr2 in futex_requeue(..., requeue_pi=1)
+ (CVE-2014-3153)
+ * futex: Validate atomic acquisition in futex_lock_pi_atomic()
+ * futex: Always cleanup owner tid in unlock_pi
+ * futex: Make lookup_pi_state more robust
+
+ [ Ian Campbell ]
+ * [arm64] Initial kernel configuration and packaging (Closes: #745349).
+ * [armhf] Add virtio-modules udeb.
+
+ [ Aurelien Jarno ]
+ * [mips,mipsel] Fix branch emulation of branch likely instructions.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 05 Jun 2014 13:49:15 +0100
+
+linux (3.14.4-1) unstable; urgency=high
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.3
+ - ASoC: pcm: Drop incorrect double/extra frees
+ - [s390] KVM: Optimize ucontrol path (regression in 3.11)
+ - [s390] bitops,atomic: add missing memory barriers
+ - [s390] fix control register update (regression in 3.14)
+ - mei: me: do not load the driver if the FW doesn't support MEI interface
+ - staging: comedi: usbdux: bug fix for accessing 'ao_chanlist' in private
+ data
+ - [x86] AVX-512: AVX-512 Feature Detection
+ - [x86] AVX-512: Enable AVX-512 States Context Switch
+ - [x86] ftrace: One more missing sync after fixup of function modification
+ failure
+ - [amd64] modify_ldt: Ban 16-bit segments on 64-bit kernels
+ - [armhf] PCI: imx6: Wait for retraining (regression in 3.14)
+ - [arm] PCI: mvebu: Fix potential issue in range parsing
+ (regression in 3.12)
+ - NFSv4: Fix a use-after-free problem in open()
+ - nfsd: revert v2 half of "nfsd: don't return high mode bits"
+ (regression in 3.14)
+ - nfsd4: buffer-length check for SUPPATTR_EXCLCREAT
+ - nfsd4: fix test_stateid error reply encoding
+ - nfsd: notify_change needs elevated write count
+ - nfsd: check passed socket's net matches NFSd superblock's one
+ - nfsd4: fix memory leak in nfsd4_encode_fattr()
+ - nfsd4: fix setclientid encode size
+ - NFSD: Traverse unconfirmed client through hash-table
+ - IB/ipath: Fix potential buffer overrun in sending diag packet routine
+ - IB/nes: Return an error on ib_copy_from_udata() failure instead of NULL
+ - IB/mthca: Return an error on ib_copy_to_udata() failure
+ - IB/ehca: Returns an error on ib_copy_to_udata() failure
+ - IB/core: Don't resolve passive side RoCE L2 address in CMA REQ handler
+ (regression in 3.14)
+ - ib_srpt: Use correct ib_sg_dma primitives
+ - SCSI: arcmsr: upper 32 of dma address lost
+ - iscsi-target: Fix ERL=2 ASYNC_EVENT connection pointer bug
+ - target/iblock: Fix double bioset_integrity_free bug
+ - target/tcm_fc: Fix use-after-free of ft_tpg
+ - [x86] efi: Correct EFI boot stub use of code32_start
+ - efi: Pass correct file handle to efi_file_{read,close}
+ - reiserfs: fix race in readdir
+ - media: v4l2-dv-timings: add module name, description, license
+ - media: em28xx-audio: fix user counting in snd_em28xx_capture_open()
+ - [armhf] usb: musb: fix PHY power on/off (regression in 3.14)
+ - mtip32xx: Unmap the DMA segments before completing the IO request
+ - mtip32xx: mtip_async_complete() bug fixes
+ - iser-target: Match FRMR descriptors to available session tags
+ - iser-target: Add missing se_cmd put for WRITE_PENDING in tx_comp_err
+ - [sh] fix format string bug in stack tracer
+ - mm: page_alloc: spill to remote nodes before waking kswapd
+ (regression in 3.12/3.13)
+ - mm: try_to_unmap_cluster() should lock_page() before mlocking
+ (CVE-2014-3122) (Closes: #747326)
+ - xattr: guard against simultaneous glibc header inclusion
+ - ocfs2: do not put bh when buffer_uptodate failed
+ - ocfs2: fix panic on kfree(xattr->name)
+ - vfs: smarter propagate_mnt()
+ - block: Fix for_each_bvec()
+ - ext4: FIBMAP ioctl causes BUG_ON due to handle EXT_MAX_BLOCKS
+ - ext4: note the error in ext4_end_bio()
+ - ext4: move ext4_update_i_disksize() into mpage_map_and_submit_extent()
+ - ext4: use i_size_read in ext4_unaligned_aio()
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.4
+ - tty: Fix lockless tty buffer race
+ - n_tty: Fix n_tty_write crash when echoing in raw mode (CVE-2014-0196)
+ (Closes: #747166)
+ - floppy: ignore kernel-only members in FDRAWCMD ioctl input (CVE-2014-1737)
+ - floppy: don't write kernel-only members to FDRAWCMD ioctl output
+ (CVE-2014-1738)
+ - KVM: async_pf: mm->mm_users can not pin apf->mm
+ - KVM: ioapic: fix assignment of ioapic->rtc_status.pending_eoi
+ (CVE-2014-0155)
+ - [powerpc] KVM: Book3S HV: Fix KVM hang with CONFIG_KVM_XICS=n
+ (regression in 3.14)
+ - [mips] Hibernate: Flush TLB entries in swsusp_arch_resume()
+ - [powerpc] Fix Oops in rtas_stop_self() (regression in 3.14)
+ - [s390] bpf,jit: initialize A register if 1st insn is BPF_S_LDX_B_MSH
+ - SUNRPC: Ensure that call_connect times out correctly (regression in 3.13)
+ - SUNRPC: Ensure call_connect_status() deals correctly with SOFTCONN tasks
+ (regression in 3.13)
+ - Revert "net: mvneta: fix usage as a module on RGMII configurations"
+ (regression in 3.14)
+ - iwlwifi: dvm: take mutex when sending SYNC BT config command
+ - mac80211: fix potential use-after-free
+ - mac80211: fix WPA with VLAN on AP side with ps-sta again
+ - locks: allow __break_lease to sleep even when break_time is 0
+ - rtlwifi: rtl8192se: Fix regression due to commit 1bf4bbb
+ (regression in 3.13)
+ - dm cache: prevent corruption caused by discard_block_size >
+ cache_block_size
+ - dm transaction manager: fix corruption due to non-atomic transaction
+ commit
+ - dm: take care to copy the space map roots before locking the superblock
+ - dm thin: fix dangling bio in process_deferred_bios error path
+ - aio: v4 ensure access to ctx->ring_pages is correctly serialised for
+ migration
+ - cpufreq: loongson2_cpufreq: don't declare local variable as static
+ (regression in 3.14)
+
+ [ Ben Hutchings ]
+ * [or1k] Build a linux-libc-dev package (Closes: #746309)
+ * net: Start with correct mac_len in skb_network_protocol (Closes: #746453)
+ * [x86] ACPI/Processor: Fix failure of loading acpi-cpufreq driver
+ (Closes: #746448)
+ * [armhf] ARM: sun4i: dt: Add bindings for USB clocks (fixes FTBFS,
+ Closes: #746420)
+ * [x86] udeb: Add hyperv-keyboard to hyperv-modules
+ * drm: Enable auto-loading of ast, udl
+ * [ppc64el] Build a linux-libc-dev package (Closes: #747367)
+ * net: ipv4: current group_info should be put after using. (CVE-2014-2851)
+ * filter: prevent nla extensions to peek beyond the end of the message
+ (CVE-2014-3144, CVE-2014-3145)
+ * [powerpc,ppc64] Add versioned build-dependency on gcc-4.8, as compiler
+ changes have resulted in a different kernel module ABI
+ - [powerpc] Bump ABI to 1a as 3.14.2-1 was built with an older compiler
+ * [armhf] Enable IR_GPIO_CIR as module (Closes: #747762)
+ * [hppa/parisc64-smp] ipmi: Enable IPMI_HANDLER, IPMI_DEVICE_INTERFACE,
+ IPMI_SI, IPMI_WATCHDOG, IPMI_POWEROFF as modules (Closes: #747482)
+ * [armhf] Enable various drivers to support BeagleBone Black
+ (Closes: #747364)
+ * [hppa] udeb: Add xfs-modules (Closes: #746506)
+ * udeb: Add mtip32xx, nvme to sata-modules
+ * [rt] Update to 3.14.3-rt5:
+ - tracing: use migrate_disable() to prevent beeing pushed off the cpu
+ - rwsem-rt: Do not allow readers to nest
+ - Revert "migrate_disable pushd down in atomic_dec_and_spin_lock"
+ - rwlock: disable migration before taking a lock
+ - timer: do not spin_trylock() on UP
+ - stomp-machine: Fix wait for completion
+ - stomp-machine: create lg_global_trylock_relax() primitive
+ - stomp-machine: use lg_global_trylock_relax() to dead with
+ stop_cpus_lock lglock
+ - blk-mq: revert raw locks, post pone notifier to POST_DEAD
+ - use EXPORT_SYMBOL() on __rt_mutex_init() and rt_down_write_nested_lock()
+ - netconsole: Allow use with PREEMPT_RT_FULL
+ * aufs: Update to aufs3.14-20140512:
+ - bugfix, stop calling security_mmap_file() again
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 14 May 2014 00:46:05 +0100
+
+linux-tools (3.14-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 28 Apr 2014 17:46:24 +0100
+
+linux (3.14.2-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.2
+
+ [ Ian Campbell ]
+ * [armhf] Drop suffix from kernel udeb.
+ * [armhf] Backport sunxi AHCI and GMAC drivers from v3.15-rc1
+
+ [ Ben Hutchings ]
+ * [x86] Enable X86_INTEL_LPSS (Closes: #745331)
+ * [x86] thinkpad_acpi: Add support for X1 Carbon 2nd generation's adaptive
+ keyboard (Closes: #745252)
+ * [armhf] Enable more Allwinner/sunxi drivers (Closes: #745972):
+ - spi: sunxi: Add Allwinner A31 SPI controller driver
+ - ARM: dt: sun4i: Add A10 SPI controller nodes
+ - PHY: sunxi: Add driver for sunxi usb phy
+ - ARM: sun4i: dt: Add USB host bindings
+ - Enable PHY_SUN4I_USB, RTC_DRV_SUNXI, SPI_SUN6I, USB_EHCI_HCD_PLATFORM,
+ USB_OHCI_HCD_PLATFORM and CONFIG_SUNXI_WATCHDOG as modules
+ * Set ABI to 1
+ * Staging: speakup: Move pasting into a work item and update it to match vt
+ (Closes: #735202, #744015)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 28 Apr 2014 17:12:03 +0100
+
+linux (3.14.1-1~exp1) experimental; urgency=medium
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.1
+
+ [ Ben Hutchings ]
+ * [armel] Disable ixp4xx flavour (fixes FTBFS)
+ * [armhf] Enable SECURITY_APPARMOR, SECURITY_TOMOYO
+ * [rt] Update to 3.14.0-rt1 and reenable
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 17 Apr 2014 13:17:18 +0100
+
+linux (3.14-1~exp1) experimental; urgency=medium
+
+ * New upstream release: http://kernelnewbies.org/Linux_3.14
+
+ [ Ben Hutchings ]
+ * nftables: Enable NF_TABLES_BRIDGE, NF_TABLES_IPV4, NFT_CHAIN_ROUTE_IPV4,
+ NFT_CHAIN_NAT_IPV4, NF_TABLES_ARP, NF_TABLES_IPV6, NFT_CHAIN_ROUTE_IPV6,
+ NFT_CHAIN_NAT_IPV6 as modules (Closes: #742763)
+ * udeb: Update sound-modules, thanks to Samuel Thibault (Closes: #743319)
+ * aufs: Update to aufs3.14-20140407 (no functional changes)
+ * mtd: Enable MTD_NAND_ECC_BCH (Closes: #743933)
+ * drm: Enable DRM_LOAD_EDID_FIRMWARE (Closes: #728275)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 09 Apr 2014 09:53:05 +0100
+
+linux-tools (3.14~rc7-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 17 Mar 2014 19:31:14 +0000
+
+linux (3.14~rc7-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * bfa,bna: Replace large udelay() with mdelay() (fixes FTBFS on arm)
+ (Closes: #741142)
+ * aufs: Update to aufs3.x-rcN-20140310
+ - bugfix, Fix unmount to properly free anonymous block devices
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 17 Mar 2014 13:30:03 +0000
+
+linux (3.14~rc5-1~exp1) experimental; urgency=medium
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * mm: Enable ZSMALLOC as built-in, ZRAM as module (except for
+ armel/{ixp4xx,orion5x}) (Closes: #676779)
+ * iio,HID: Enable HID_SENSOR_INCLINOMETER_3D as module
+ * media/radio: Enable USB_RAREMONO as module
+ * i40e: Enable I40E_VXLAN, I40E_DCB
+ * net: Enable I40EVF, USB_NET_SR9800 as modules
+ * serial: Enable USB_SERIAL_MXUPORT as module
+ * ceph: Enable CEPH_FS_POSIX_ACL
+ * netfilter: Enable NF_TABLES_INET, NFT_QUEUE, NFT_REJECT,
+ NETFILTER_XT_MATCH_CGROUP, NETFILTER_XT_MATCH_IPCOMP as modules
+ * net/sched: Enable NET_SCH_HHF, NET_SCH_PIE as modules
+ * [x86] crypto: Enable CRYPTO_DEV_CCP, CRYPTO_DEV_CCP_DD,
+ CRYPTO_DEV_CCP_CRYPTO as modules
+ * [x86] platform: Enable CHROMEOS_PSTORE, HP_WIRELESS as modules
+ * [x86] comedi: Enable COMEDI_MF6X4 as modules
+ * [x86] staging: Enable R8821AE, RTS5208 as modules
+ * [x86] thermal: Enable ACPI_INT3403_THERMAL as module
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 07 Mar 2014 03:36:35 +0000
+
+linux (3.13.10-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.8
+ - ALSA: compress: Pass through return value of open ops callback
+ - [hppa] partly revert commit 8a10bc9: parisc/sti_console: prefer Linux
+ fonts over built-in ROM fonts (regression in 3.13.2)
+ - [armhf] net: davinci_emac: Replace devm_request_irq with request_irq
+ (regression in 3.11)
+ - NFSv4: Use the correct net namespace in nfs4_update_server
+ - media: cxusb: unlock on error in cxusb_i2c_xfer() (regression in 3.13)
+ - media: dw2102: some missing unlocks on error (regression in 3.13)
+ - libceph: block I/O when PAUSE or FULL osd map flags are set
+ - libceph: resend all writes after the osdmap loses the full flag
+ - stop_machine: Fix^2 race between stop_two_cpus() and stop_cpus()
+ - [arm] 7941/2: Fix incorrect FDT initrd parameter override
+ (regression in 3.13)
+ - [x86] bpf_jit: support negative offsets
+ - printk: fix syslog() overflowing user buffer
+ - Fix uses of dma_max_pfn() when converting to a limiting address
+ - deb-pkg: Fix building for MIPS big-endian or ARM OABI
+ - deb-pkg: Fix cross-building linux-headers package
+ - fs/proc/proc_devtree.c: remove empty /proc/device-tree when no
+ openfirmware exists.
+ - KVM: MMU: handle invalid root_hpa at __direct_map
+ - [x86] KVM: x86: handle invalid root_hpa everywhere
+ - KVM: VMX: fix use after free of vmx->loaded_vmcs
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.9
+ - ext4: atomically set inode->i_flags in ext4_set_inode_flags()
+ - rcuwalk: recheck mount_lock after mountpoint crossing attempts
+ - Input: mousedev - fix race when creating mixed device
+ - xen/balloon: flush persistent kmaps in correct position
+ - Revert "xen: properly account for _PAGE_NUMA during xen pte translations"
+ (regression in 3.13.5)
+ - drm/i915: Undo gtt scratch pte unmapping again (regression in 3.12)
+ - [i386/486] fix boot on uniprocessor systems
+ - random32: avoid attempt to late reseed if in the middle of seeding
+ - rcuwalk: switch mnt_hash to hlist
+ - mm: close PageTail race
+ - cgroup: protect modifications to cgroup_idr with cgroup_mutex
+ - netfilter: nf_conntrack_dccp: fix skb_header_pointer API usages
+ (CVE-2014-2523)
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.10
+ - selinux: correctly label /proc inodes in use before the policy is loaded
+ - net: sctp: fix skb leakage in COOKIE ECHO path of chunk->auth_chunk
+ - bridge: multicast: add sanity check for query source addresses
+ - tipc: allow connection shutdown callback to be invoked in advance
+ - tipc: fix connection refcount leak
+ - tipc: drop subscriber connection id invalidation
+ - inet: frag: make sure forced eviction removes all frags
+ - vlan: Set correct source MAC address with TX VLAN offload enabled
+ (regression in 3.13)
+ - tcp: tcp_release_cb() should release socket ownership
+ - bridge: multicast: add sanity check for general query destination
+ - bridge: multicast: enable snooping on general queries only
+ - net: socket: error on a negative msg_namelen (regression in 3.11.10)
+ - bonding: set correct vlan id for alb xmit path (regression in 3.12)
+ - ipv6: Avoid unnecessary temporary addresses being generated
+ - net: cdc_ncm: fix control message ordering (regression in 3.13)
+ - tcp: syncookies: do not use getnstimeofday() (regression in 3.13)
+ - tipc: fix spinlock recursion bug for failed subscriptions
+ - ip_tunnel: Fix dst ref-count. (regression in 3.13.7)
+ - tg3: Do not include vlan acceleration features in vlan_features
+ - virtio-net: correct error handling of virtqueue_kick()
+ (regression in 3.13)
+ - usbnet: include wait queue head in device structure
+ - vhost: fix total length when packets are too short (CVE-2014-0077)
+ - vhost: validate vhost_get_vq_desc return value (CVE-2014-0055)
+ - tcp: fix get_timewait4_sock() delay computation on 64bit
+ (regression in 3.13)
+ - xen-netback: remove pointless clause from if statement
+ - netlink: don't compare the nul-termination in nla_strcmp
+ - xen-netback: disable rogue vif in kthread context
+ - net: vxlan: fix crash when interface is created with no group
+ - rds: prevent dereference of a NULL device in rds_iw_laddr_check
+ (CVE-2014-2678)
+ - powernow-k6: disable cache when changing frequency
+ - [m68k] Skip futex_atomic_cmpxchg_inatomic() test
+ - crypto: ghash-clmulni-intel - use C implementation for setkey()
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 15 Apr 2014 22:12:38 +0100
+
+linux (3.13.7-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.7
+ - mm: page_alloc: exempt GFP_THISNODE allocations from zone fairness
+ (regression in 3.12)
+ - mm: include VM_MIXEDMAP flag in the VM_SPECIAL list to avoid m(un)locking
+ (regression in 3.12)
+ - ocfs2: fix quota file corruption
+ - ocfs2 syncs the wrong range...
+ - memcg: fix endless loop in __mem_cgroup_iter_next()
+ (regression in 3.13.3)
+ - net-tcp: fastopen: fix high order allocations
+ - ipv6: reuse ip6_frag_id from ip6_ufo_append_data
+ - ipv4: ipv6: better estimate tunnel header cut for correct ufo handling
+ - ip_tunnel:multicast process cause panic due to skb->_skb_refdst NULL
+ pointer
+ - mac80211: clear sequence/fragment number in QoS-null frames
+ - ath9k: Fix ETSI compliance for AR9462 2.0
+ - ath9k: protect tid->sched check
+ - cpuset: fix a locking issue in cpuset_migrate_mm()
+ - cpuset: fix a race condition in __cpuset_node_allowed_softwall()
+ - firewire: net: fix use after free
+ - firewire: don't use PREPARE_DELAYED_WORK
+ - libata: disable queued TRIM for Crucial M500 mSATA SSDs
+ - libata: use wider match for blacklisting Crucial M500
+ - NFSv4: Fix another nfs4_sequence corruptor (Closes: #734268)
+ - cpufreq: use cpufreq_cpu_get() to avoid cpufreq_get() race conditions
+ - cpufreq: Skip current frequency initialization for ->setpolicy drivers
+ (regression in 3.13)
+ - iscsi/iser-target: Use list_del_init for ->i_conn_node
+ - iser-target: Ignore completions for FRWRs in isert_cq_tx_work
+ - iser-target: Fix post_send_buf_count for RDMA READ/WRITE
+ - mm/readahead.c: fix do_readahead() for no readpage(s)
+ (regression in 3.13)
+ - fs/proc/base.c: fix GPF in /proc/$PID/map_files
+ - drm/i915: fix pch pci device enumeration (regression in 3.11)
+ - drm/i915: Reject >165MHz modes w/ DVI monitors (regression in 3.11)
+ - drm/radeon: fix runpm disabling on non-PX harder
+ (may fix #741619, #742507)
+ - PCI: Enable INTx in pci_reenable_device() only when MSI/MSI-X not enabled
+ (fixes regression in 3.13.6)
+ - [x86] vmxnet3: fix netpoll race condition
+ - mm/compaction: break out of loop on !PageBuddy in isolate_freepages_block
+ - dm space map metadata: fix refcount decrement below 0 which caused
+ corruption
+ - dm cache: fix truncation bug when copying a block to/from >2TB fast
+ device
+ - net: unix socket code abuses csum_partial
+ - SCSI: qla2xxx: Fix multiqueue MSI-X registration.
+ - [x86] fpu: Check tsk_used_math() in kernel_fpu_end() for eager FPU
+ - Btrfs: fix tree mod logging
+ - Btrfs: fix data corruption when reading/updating compressed extents
+ - intel_pstate: Add setting voltage value for baytrail P states.
+ - Fix mountpoint reference leakage in linkat
+ - bio-integrity: Fix bio_integrity_verify segment start bug
+ - memcg: reparent charges of children before processing parent
+
+ [ Ben Hutchings ]
+ * [arm] mm: Avoid ABI change in 3.13.6 (fixes FTBFS)
+ * nfqueue: Orphan frags in nfqnl_zcopy() and handle errors (CVE-2014-2568)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 25 Mar 2014 17:23:31 +0000
+
+linux-tools (3.13.6-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.5
+ - Modpost: fixed USB alias generation for ranges including 0x9 and 0xA
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.6
+ - perf trace: Fix ioctl 'request' beautifier build problems on
+ !(i386 || x86_64) arches
+
+ [ Ben Hutchings ]
+ * linux-tools: Remove the 'trace_3.13' link to perf
+ * Clean another autoconf-generated file so double-builds work
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 19 Mar 2014 22:33:21 +0000
+
+linux (3.13.6-1) unstable; urgency=high
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.6
+ - drm/nouveau/fb: use correct ram oclass for nv1a hardware
+ (regression in 3.13)
+ - ext4: fix xfstest generic/299 block validity failures
+ - ext4: fix error paths in swap_inode_boot_loader()
+ - ext4: don't try to modify s_flags if the the file system is read-only
+ - ext4: fix online resize with a non-standard blocks per group setting
+ - [arm] 7950/1: mm: Fix stage-2 device memory attributes
+ - [arm] 7953/1: mm: ensure TLB invalidation is complete before enabling MMU
+ - [arm] 7957/1: add DSB after icache flush in __flush_icache_all()
+ - powerpc: Set the correct ksp_limit on ppc32 when switching to irq stack
+ (regression in 3.12)
+ - jbd2: fix use after free in jbd2_journal_start_reserved()
+ - cifs: ensure that uncached writes handle unmapped areas correctly
+ (CVE-2014-0069)
+ - NFS: Do not set NFS_INO_INVALID_LABEL unless server supports labeled NFS
+ (regression in 3.11)
+ - NFS fix error return in nfs4_select_rw_stateid (regression in 3.12)
+ - bridge: fix netconsole setup over bridge (regression in 3.12)
+ - net: fix 'ip rule' iif/oif device rename
+ - net: asix: add missing flag to struct driver_info
+ - gre: add link local route when local addr is any (regression in 3.13)
+ - ipv4: fix counter in_slow_tot
+ - net: use __GFP_NORETRY for high order allocations
+ - batman-adv: fix soft-interface MTU computation (regression in 3.13)
+ - batman-adv: fix TT-TVLV parsing on OGM reception
+ - batman-adv: release vlan object after checking the CRC
+ - batman-adv: properly check pskb_may_pull return value
+ - batman-adv: avoid potential race condition when adding a new neighbour
+ - batman-adv: fix TT CRC computation by ensuring byte order
+ (regression in 3.13)
+ - batman-adv: free skb on TVLV parsing success
+ - batman-adv: avoid double free when orig_node initialization fails
+ - batman-adv: fix potential kernel paging error for unicast transmissions
+ - cgroup: fix error return value in cgroup_mount()
+ - cgroup: fix error return from cgroup_create()
+ - cgroup: fix locking in cgroup_cfts_commit()
+ - cgroup: update cgroup_enable_task_cg_lists() to grab siglock
+ - fs: fix iversion handling
+ - kvm: x86: fix emulator buffer overflow (CVE-2014-0049)
+ - kvm, vmx: Really fix lazy FPU on nested guest
+ - SUNRPC: Ensure that gss_auth isn't freed before its upcall messages
+ - powerpc/powernv: Fix opal_xscom_{read,write} prototype
+ - powerpc/powernv: Fix indirect XSCOM unmangling
+ - perf/x86: Fix event scheduling
+ - sata_sil: apply MOD15WRITE quirk to TOSHIBA MK2561GSYN
+ - cpufreq: powernow-k8: Initialize per-cpu data-structures properly
+ (regression in 3.12)
+ - Revert "writeback: do not sync data dirtied after sync start"
+ (regression in 3.13)
+ - [arm] PCI: mvebu: Use Device ID and revision from underlying endpoint
+ - PCI: Enable INTx if BIOS left them disabled
+ - i7core_edac: Fix PCI device reference count
+ - can: kvaser_usb: check number of channels returned by HW
+ - usb: chipidea: need to mask when writting endptflush and endptprime
+ - mei: set client's read_cb to NULL when flow control fails
+ - workqueue: ensure @task is valid across kthread_stop()
+ - regulator: da9063: Bug fix when setting max voltage on LDOs 5-11
+ - [armhf] mtd: nand: omap: fix ecclayout to be in sync with u-boot NAND
+ driver (regression in 3.13)
+ - [armhf] mtd: nand: omap: fix ecclayout->oobfree->offset
+ - [armhf] mtd: nand: omap: fix ecclayout->oobfree->length
+ - [armhf/armmp-lpae] iommu/arm-smmu: fix pud/pmd entry fill sequence
+ - [armhf/armmp-lpae] iommu/arm-smmu: really fix page table locking
+ - [armhf/armmp-lpae] iommu/arm-smmu: fix table flushing during initial
+ allocations
+ - [armhf/armmp-lpae] iommu/arm-smmu: set CBARn.BPSHCFG to NSH for
+ s1-s2-bypass contexts
+ - perf: Fix hotplug splat
+ - quota: Fix race between dqput() and dquot_scan_active()
+ - ipc,mqueue: remove limits for the amount of system-wide queues
+ - mm, thp: fix infinite loop on memcg OOM
+ - qla2xxx: Fix kernel panic on selective retransmission request
+ - i7300_edac: Fix device reference count
+ - dm cache: move hook_info into common portion of per_bio_data structure
+ (regression in 3.13)
+ - drm/radeon: fix missing bo reservation
+ - drm/radeon: free uvd ring on unload
+
+ [ Ben Hutchings ]
+ * xhci: Revert more sg changes (Closes: #741989; also see #738113):
+ - Revert "xhci 1.0: Limit arbitrarily-aligned scatter gather."
+ - Revert "USBNET: ax88179_178a: enable tso if usb host supports sg dma"
+ * aufs: Update to aufs3.13-20140303
+ - bugfix, Fix unmount to properly free anonymous block devices
+ * net: fix for a race condition in the inet frag code (CVE-2014-0100)
+ * net: sctp: fix sctp_sf_do_5_1D_ce to verify if we/peer is AUTH capable
+ (CVE-2014-0101)
+ * KEYS: Make the keyring cycle detector ignore other keyrings of the
+ same name (CVE-2014-0102)
+ * skbuff: skb_segment: orphan frags before copying (CVE-2014-0131)
+ * ipv6: don't set DST_NOCOUNT for remotely added routes (CVE-2014-2309)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 19 Mar 2014 16:18:42 +0000
+
+linux (3.13.5-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.5
+ - xen: properly account for _PAGE_NUMA during xen pte translations
+ - mm: fix page leak at nfs_symlink()
+ - mm/memory-failure.c: move refcount only in !MF_COUNT_INCREASED
+ - CIFS: Fix SMB2 mounts so they don't try to set or get xattrs via cifs
+ - CIFS: Add protocol specific operation for CIFS xattrs
+ - CIFS: retrieving CIFS ACLs when mounted with SMB2 fails dropping session
+ - mac80211: release the channel in error path in start_ap
+ - mac80211: Fix IBSS disconnect
+ - mac80211: fix fragmentation code, particularly for encryption
+ - ath9k_htc: Do not support PowerSave by default
+ - ath9k: Do not support PowerSave by default
+ - [s390x] fix kernel crash due to linkage stack instructions
+ - raw: test against runtime value of max_raw_minors
+ - hwmon: (ntc_thermistor) Avoid math overflow
+ - lockd: send correct lock when granting a delayed lock.
+ - drm/i915: Pair va_copy with va_end in i915_error_vprintf
+ - vt: Fix secure clear screen
+ - staging: lustre: fix quotactl permission denied (LU-4530)
+ - staging: comedi: adv_pci1710: fix analog output readback value
+ - iio: adis16400: Set timestamp as the last element in chan_spec
+ - iio: ak8975: Fix calculation formula for convert micro tesla to gauss
+ unit
+ - usb-storage: add unusual-devs entry for BlackBerry 9000
+ - usb-storage: restrict bcdDevice range for Super Top in Cypress ATACB
+ - xhci 1.0: Limit arbitrarily-aligned scatter gather.
+ - Revert "usbcore: set lpm_capable field for LPM capable root hubs"
+ (regression in 3.12.1)
+ - block: __elv_next_request() shouldn't call into the elevator if bypassing
+ - block: Fix nr_vecs for inline integrity vectors
+ - block: add cond_resched() to potentially long running ioctl discard loop
+ - compiler/gcc4: Make quirk for asm_volatile_goto() unconditional
+ - misc: mic: fix possible signed underflow (undefined behavior) in
+ userspace API
+ - KVM: return an error code in kvm_vm_ioctl_register_coalesced_mmio()
+ - md/raid1: restore ability for check and repair to fix read errors.
+ (regression in 3.10.5)
+ - i2c: mv64xxx: refactor message start to ensure proper initialization
+ - target: Fix free-after-use regression in PR unregister
+ - drivers/edac/edac_mc_sysfs.c: poll timeout cannot be zero
+ - EDAC: Poll timeout cannot be zero, p2
+ - EDAC: Correct workqueue setup path
+
+ [ Ben Hutchings ]
+ * [armhf] net/wireless: Really enable WL_TI and dependent modules
+ * aufs: Update to aufs3.13-20140127 (no functional changes)
+ * [powerpc] Change I2C_POWERMAC from module to built-in (Closes: #713943)
+ * [mips] rtl8187: fix regression on MIPS without coherent DMA
+ (Closes: #739978)
+ * [x86] Enable CHROME_PLATFORMS and re-enable CHROMEOS_LAPTOP as module
+ (Closes: #740042)
+ * [armel/!kirkwood] udeb: Re-add lzo-modules udeb as lzo_compress is a
+ module again (Closes: #740219)
+ * debian/control: Simplify build-dependencies:
+ - Remove versions for debhelper, python, kernel-wedge that are
+ satisfied by stable
+ - Remove module-init-tools as alternative to kmod, which is in stable
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 04 Mar 2014 19:49:27 +0000
+
+linux-tools (3.13.4-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.2
+ - perf kvm: Fix kvm report without guestmount.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 22 Feb 2014 15:39:27 +0000
+
+linux (3.13.4-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.1
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.2
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.3
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.4
+
+ [ Ben Hutchings ]
+ * [x86] Enable POWERCAP, INTEL_RAPL as module (Closes: #736399)
+ * [arm] Disable OABI_COMPAT and enable AUDITSYSCALL (except for
+ armel/{ixp4xx,orion5x}) (Closes: #728975, #736843)
+ * [x86] Enable R8188EU as module, 88EU_AP_MODE and 88EU_P2P (Closes: #736905)
+ * [x86] Enable I2C_DESIGNWARE_PLATFORM as module (Closes: #737163)
+ * [x86] snd-pcsp: Disable autoload (Closes: #697709)
+ * DFSG: Remove the af9005 initialisation script and vs6624 driver again
+ (they were renamed in 3.7)
+ * linux-image.postinst: Use lstat() to check symlink existence
+ (Closes: #738707)
+ * [hppa] Update configuration, thanks to Helge Deller (Closes: #738487)
+ - megaraid: Enable MEGARAID_NEWGEN as module; disable MEGARAID_LEGACY
+ - drm: Change DRM from module to built-in
+ - [/parisc64-smp] udeb: Add fb-modules package containing radeon driver
+ * udeb: Add various recently enabled drivers
+ - Add i40e to nic-modules
+ - Add r815x to nic-usb-modules
+ - Add ath10k_core, ath10k_pci, brcmfmac to nic-wireless-modules
+ - Add esas2r to scsi-modules
+ * Bluetooth: allocate static minor for vhci (fixes depmod error)
+ * Set ABI to 1
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 22 Feb 2014 11:54:57 +0000
+
+linux-tools (3.13-1~exp3) experimental; urgency=medium
+
+ * linux-tools: Fix/revert unportable code in perf trace (fixes FTBFS
+ on powerpc, sparc)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 07 Feb 2014 20:36:29 +0000
+
+linux-tools (3.13-1~exp2) experimental; urgency=medium
+
+ * Merge changes from sid up to 3.12.6-3
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 02 Feb 2014 16:57:49 +0100
+
+linux-tools (3.13-1~exp1) experimental; urgency=low
+
+ * New upstream release
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 02 Feb 2014 12:02:29 +0100
+
+linux (3.13-1~exp1) experimental; urgency=low
+
+ * New upstream release: http://kernelnewbies.org/Linux_3.13
+
+ [ Ben Hutchings ]
+ * [armhf] xen/pci: Fix build on non-x86
+ * [hppa/parisc64-smp] Disable MLONGCALLS (Closes: #733897)
+ * [armel] Remove iop32x flavour (fixes FTBFS)
+ * aufs: Update to aufs3.x-rcN-20140120
+ - bugfix, removed /proc/PID/fd/N
+
+ [ Bastian Blank ]
+ * Initial Python 3 support:
+ - Build-depend on python-six.
+
+ [ Aurelien Jarno ]
+ * [mipsel] Remove cobalt d-i files.
+ * [mipsel] Enable KEXEC like on mips.
+ * [mipsel] Explicitly unset RAPIDIO like on mips.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 20 Jan 2014 05:43:51 +0000
+
+linux (3.13~rc6-1~exp1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [rt] Disable until it is updated for 3.13 or later
+ * aufs: Update to aufs3.x-rcN-20131223
+ * [x86] staging: lustre: Make LUSTRE_LLITE_LLOOP tristate
+ * mm: Enable MEM_SOFT_DIRTY, NUMA_BALANCING but not
+ NUMA_BALANCING_DEFAULT_ENABLED
+ * ipv6: Enable IPV6_VTI as module
+ * netfilter: Enable NF_TABLES, NFT_EXTHDR, NFT_META, NFT_CT, NFT_RBTREE,
+ NFT_HASH, NFT_COUNTER, NFT_LOG, NFT_LIMIT, NFT_NAT, NFT_COMPAT,
+ IP_SET_HASH_NETPORTNET, IP_SET_HASH_NETNET, IP_NF_TARGET_SYNPROXY,
+ IP6_NF_TARGET_SYNPROXY as modules
+ * net/sched: Enable NET_CLS_BPF as module
+ * nfc: Enable NFC_DIGITAL, NFC_PORT100 as modules
+ * block: Enable BLK_DEV_NULL_BLK, BLK_DEV_SKD as modules
+ * SCSI: Enable SCSI_ESAS2R as module
+ * net/usb: Enable USB_NET_HUAWEI_CDC_NCM as module
+ * touchscreen: Enable TOUCHSCREEN_SUR40 as module
+ * [x86] video: Enable X86_SYSFB, FB_SIMPLE
+ * [x86] ACPI: Enable ACPI_EXTLOG
+ * [x86] touchscreen: Enable TOUCHSCREEN_TSC_SERIO as module
+ * [x86] tpm: Enable TCG_TIS_I2C_ATMEL, TCG_TIS_I2C_INFINEON,
+ TCG_TIS_I2C_NUVOTON, TCG_ST33_I2C, TCG_XEN as modules
+ * [amd64] misc: Enable INTEL_MIC_HOST as module
+ * [powerpc/powerpc64] block: Enable AIX_PARTITION
+ * net/sched: Change NET_CLS_CGROUP from built-in to module
+ * nfc: Disable NFC_NCI as no enabled drivers need it
+ * misc: Disable BMP085_I2C as unlikely to be useful
+
+ [ Aurelien Jarno ]
+ * [mipsel] Remove r5k-cobalt flavour.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 30 Dec 2013 02:36:11 +0100
+
+linux-tools (3.12.6-3) unstable; urgency=medium
+
+ * linux-tools: Explicitly enable/disable libunwind usage for all
+ architectures (fixes FTBFS on s390x and sparc)
+ * linux-tools: Only use libunwind on x86, as perf needs additional
+ porting work for other architectures (fixes FTBFS on arm and powerpc)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 02 Feb 2014 16:46:44 +0100
+
+linux-tools (3.12.6-2) unstable; urgency=medium
+
+ * linux-tools: Replace build-dependency on libunwind7-dev with
+ libunwind8-dev
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 02 Feb 2014 11:51:18 +0100
+
+linux (3.12.9-1) unstable; urgency=high
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.12.9
+ - Revert "ACPI: Add BayTrail SoC GPIO and LPSS ACPI IDs"
+ (regression in 3.12.7)
+ - GFS2: Increase i_writecount during gfs2_setattr_chown
+ - vfs: Fix a regression in mounting proc (regression in 3.12)
+ - fork: Allow CLONE_PARENT after setns(CLONE_NEWPID) (regression in 3.12)
+ - i2c: Re-instate body of i2c_parent_is_i2c_adapter() (regression in 3.12)
+ - writeback: Fix data corruption on NFS
+ - thp: fix copy_page_rep GPF by testing is_huge_zero_pmd once only
+ - [x86] ftrace: Load ftrace_ops in parameter not the variable holding it
+ - nilfs2: fix segctor bug that causes file system corruption
+ - md: fix problem when adding device to read-only array with bitmap.
+ - md/raid10: fix bug when raid10 recovery fails to recover a block.
+ - md/raid10: fix two bugs in handling of known-bad-blocks.
+ - md/raid5: Fix possible confusion when multiple write errors occur.
+ - mm: Make {,set}page_address() static inline if WANT_PAGE_VIRTUAL
+ (fixes FTBFS on sparc and m68k)
+ - [x86] drm/i915: Don't grab crtc mutexes in intel_modeset_gem_init()
+ (regression in 3.12.7)
+ - [arm] 7938/1: OMAP4/highbank: Flush L2 cache before disabling
+
+ [ Ben Hutchings ]
+ * HID: Enable HID_ELO, HID_XINMO as modules (Closes: #736369)
+ * xhci: Revert generalised sg support (Closes: #733826, #736274)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 01 Feb 2014 18:50:01 +0100
+
+linux (3.12.8-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.12.7
+ - [powerpc] kvm: fix rare but potential deadlock scene
+ - [m68k] TTY: pmac_zilog, check existence of ports in pmz_console_init()
+ - xhci: Limit the spurious wakeup fix only to HP machines (fixes
+ regression in 3.12)
+ - usb: chipidea: host: Only disable the vbus regulator if it is not NULL
+ (fixes regression in 3.12)
+ - aio: fix kioctx leak introduced by "aio: Fix a trinity splat"
+ - iser-target: Move INIT_WORK setup into isert_create_device_ib_res
+ - [x86] idle: Repair large-server 50-watt idle-power regression
+ (fixes regression in 3.10)
+ - ext4: call ext4_error_inode() if jbd2_journal_dirty_metadata() fails
+ - ext4: fix use-after-free in ext4_mb_new_blocks
+ - ext4: fix del_timer() misuse for ->s_err_report
+ - ext4: add explicit casts when masking cluster sizes
+ - ext4: fix bigalloc regression
+ - sched/rt: Fix rq's cpupri leak while enqueue/dequeue child RT entities
+ - net_dma: mark broken (fixes potential data loss)
+ - drm/i915: Take modeset locks around intel_modeset_setup_hw_state()
+ - drm/i915: Hold mutex across i915_gem_release
+ - drm/i915: Fix use-after-free in do_switch
+ - drm/i915: don't update the dri1 breadcrumb with modesetting
+ - drm/i915: Fix erroneous dereference of batch_obj inside reset_status
+ - ceph: Avoid data inconsistency due to d-cache aliasing in readpage()
+ - tg3: Expand 4g_overflow_test workaround to skb fragments of any size.
+ - cgroup: fix cgroup_create() error handling path
+ - [powerpc] auxvec.h: account for AT_HWCAP2 in AT_VECTOR_SIZE_BASE
+ - ath9k_htc: properly set MAC address and BSSID mask (CVE-2013-4579)
+ (Closes: #729573)
+ - KVM: nVMX: Unconditionally uninit the MMU on nested vmexit
+ - [x86] KVM: Fix APIC map calculation after re-enabling
+ - [powerpc] Fix bad stack check in exception entry
+ - libata: implement ATA_HORKAGE_NO_NCQ_TRIM and apply it to Micro M500 SSDs
+ (fixes potential data loss)
+ - radiotap: fix bitmap-end-finding buffer overrun
+ - mm: numa: serialise parallel get_user_page against THP migration
+ - mm: numa: call MMU notifiers on THP migration
+ - mm: clear pmd_numa before invalidating
+ - mm: numa: do not clear PTE for pte_numa update
+ - mm: numa: ensure anon_vma is locked to prevent parallel THP splits
+ - sched: numa: skip inaccessible VMAs
+ - mm: numa: clear numa hinting information on mprotect
+ - mm: fix TLB flush race between migration, and change_protection_range
+ - mm: numa: guarantee that tlb_flush_pending updates are visible before
+ page table updates
+ - mm/mempolicy: correct putback method for isolate pages if failed
+ - mm/compaction: respect ignore_skip_hint in update_pageblock_skip
+ - mm/hugetlb: check for pte NULL pointer in __page_check_address()
+ - mm: munlock: fix a bug where THP tail page is encountered
+ - mm: munlock: fix deadlock in __munlock_pagevec()
+ - mm: fix use-after-free in sys_remap_file_pages
+ - Input: allocate absinfo data when setting ABS capability
+ - GFS2: Fix use-after-free race when calling gfs2_remove_from_ail
+ - GFS2: Fix slab memory leak in gfs2_bufdata
+ - GFS2: Fix incorrect invalidation for DIO/buffered I/O
+ - [s390] 3270: fix allocation of tty3270_screen structure
+ - [sh] always link in helper functions extracted from libgcc
+ - selinux: look for IPsec labels on both inbound and outbound packets
+ - selinux: process labeled IPsec TCP SYN-ACK packets properly in
+ selinux_ip_postroute()
+ - aio: clean up and fix aio_setup_ring page mapping
+ - aio/migratepages: make aio migrate pages sane
+ - ACPIPHP / radeon / nouveau: Fix VGA switcheroo problem related to hotplug
+ (regression in 3.12)
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.12.8
+ - IPv6: Fixed support for blackhole and prohibit routes
+ - net: do not pretend FRAGLIST support
+ - tun: unbreak truncated packet signalling
+ - macvtap: signal truncated packets
+ - br: fix use of ->rx_handler_data in code executed on non-rx_handler path
+ - inet: fix NULL pointer Oops in fib(6)_rule_suppress
+ - vxlan: release rt when found circular route
+ - ipv6: fix illegal mac_header comparison on 32bit
+ - ip_gre: fix msg_name parsing for recvfrom/recvmsg
+ - net: inet_diag: zero out uninitialized idiag_{src,dst} fields
+ - drivers/net/hamradio: Integer overflow in hdlcdrv_ioctl()
+ - hamradio/yam: fix info leak in ioctl
+ - net: fec: fix potential use after free
+ - rds: prevent dereference of a NULL device
+ - arc_emac: fix potential use after free
+ - net: rose: restore old recvmsg behavior (regression in 3.12.4)
+ - vlan: Fix header ops passthru when doing TX VLAN offload.
+ - virtio-net: fix refill races during restore
+ - net: llc: fix use after free in llc_ui_recvmsg
+ - netpoll: Fix missing TXQ unlock and and OOPS.
+ - bridge: use spin_lock_bh() in br_multicast_set_hash_max
+ - sfc: Add length checks to efx_xmit_with_hwtstamp() and
+ efx_ptp_is_ptp_tx()
+ - sfc: PTP: Moderate log message on event queue overflow
+ - sfc: Rate-limit log message for PTP packets without a matching timestamp
+ event
+ - [arm] fix "bad mode in ... handler" message for undefined instructions
+ - [arm] 7923/1: mm: fix dcache flush logic for compound high pages
+ - [hppa] Ensure full cache coherency for kmap/kunmap
+ - clk: clk-divider: fix divisor > 255 bug
+ - mfd: rtsx_pcr: Disable interrupts before cancelling delayed works
+ - netfilter: fix wrong byte order in nf_ct_seqadj_set internal information
+ (regression in 3.12)
+ - netfilter: nf_nat: fix access to uninitialized buffer in IRC NAT helper
+ - x86, fpu, amd: Clear exceptions in AMD FXSAVE workaround
+ (CVE-2014-1438) (Closes: #733551)
+ - sched: Fix race on toggling cfs_bandwidth_used
+ - sched: Fix cfs_bandwidth misuse of hrtimer_expires_remaining
+ - sched: Fix hrtimer_cancel()/rq->lock deadlock
+
+ [ Ben Hutchings ]
+ * [hppa] Update configuration, thanks to Helge Deller (Closes: #733895)
+ - Change AGP, AGP_PARISC from modules to built-in, to work around
+ race condition between DRM and AGP
+ - Enable DEBUG_STACKOVERFLOW
+ - udeb: Build packages for the parisc64-smp flavour instead of the
+ removed parisc flavour (fixes FTBFS)
+ * linux-image: Make maintainer scripts less verbose (Closes: #734266)
+ * [m68k] Enable EARLY_PRINTK (Closes: #734289)
+ * crypto: Enable more processor-specific algorithms and drivers:
+ - [amd64] Enable CRYPTO_CRCT10DIF_PCLMUL, CRYPTO_SHA256_SSSE3,
+ CRYPTO_SHA512_SSSE3, CRYPTO_GHASH_CLMUL_NI_INTEL,
+ CRYPTO_CAMELLIA_AESNI_AVX_X86_64, CRYPTO_CAMELLIA_AESNI_AVX2_X86_64,
+ CRYPTO_CAST5_AVX_X86_64, CRYPTO_CAST6_AVX_X86_64,
+ CRYPTO_SERPENT_AVX2_X86_64 as modules (Closes: #734376)
+ - [arm] Enable CRYPTO_SHA1_ARM, CRYPTO_AES_ARM as modules
+ - [powerpc] Enable CRYPTO_SHA1_PPC as module
+ - [sparc] Enable CRYPTO_CRC32C_SPARC64, CRYPTO_MD5_SPARC64,
+ CRYPTO_SHA1_SPARC64, CRYPTO_SHA256_SPARC64, CRYPTO_SHA512_SPARC64,
+ CRYPTO_AES_SPARC64, CRYPTO_CAMELLIA_SPARC64, CRYPTO_DES_SPARC64,
+ CRYPTO_DEV_NIAGARA2 as modules
+ - [x86] Enable CRYPTO_CRC32_PCLMUL as module
+ * [powerpc] Remove AT_HWCAP2 from auxv to avoid module ABI change
+ * [rt] Update to 3.12.6-rt9:
+ - rcu: Don't activate RCU core on NO_HZ_FULL CPUs
+ - timers: do not raise softirq unconditionally
+ - rcutree/rcu_bh_qs: disable irq while calling rcu_preempt_qs()
+ * Revert "net: unix: allow set_peek_off to fail", included in 3.12.8,
+ as it would cause an ABI change
+ * media: Enable VIDEO_STK1160_COMMON (new dependency of VIDEO_STK1160)
+ as module (Closes: #735870)
+ * [x86] brcm80211: Enable BRCMFMAC as module, and BRCMFMAC_SDIO
+ (Closes: #735245)
+ * [x86] staging: lustre: Make LUSTRE_LLITE_LLOOP tristate
+
+ [ Ian Campbell ]
+ * [armel/kirkwood] Fix interrupt handling on non-DT platforms (Closes: #735172)
+ * [armhf/armmp] Add mmci driver to mmc-module udeb.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 19 Jan 2014 19:22:22 +0000
+
+linux (3.12.6-2) unstable; urgency=medium
+
+ [ Bastian Blank ]
+ * [x86] Make MICROCODE built-in for early microcode loading.
+
+ [ Ben Hutchings ]
+ * [armhf] linux-headers: Fix typo in compiler dependency
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 29 Dec 2013 16:56:20 +0100
+
+linux (3.12.6-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.12.4
+ - net: x86: bpf: don't forget to free sk_filter (v2)
+ - net: Fix "ip rule delete table 256" (Closes: #724783)
+ - net-tcp: fix panic in tcp_fastopen_cache_set()
+ - inet: prevent leakage of uninitialized memory to user in recv syscalls
+ (CVE-2013-6405)
+ - ping: prevent NULL pointer dereference on write to msg_name
+ (CVE-2013-6432)
+ - ipv6: fix leaking uninitialized port number of offender sockaddr
+ - netfilter: push reasm skb through instead of original frag skbs
+ - packet: fix use after free race in send path when dev is released
+ - gso: handle new frag_list of frags GRO packets
+ - net: update consumers of MSG_MORE to recognize MSG_SENDPAGE_NOTLAST
+ - xfs: add capability check to free eofblocks ioctl
+ - iommu/vt-d: Fixed interaction of VFIO_IOMMU_MAP_DMA with IOMMU address
+ limits
+ - aio: Fix a trinity splat
+ - aio: prevent double free in ioctx_alloc
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.12.5
+ - [s390,s390x] crypto: Fix aes-xts parameter corruption
+ - crypto: scatterwalk - Set the chain pointer indication bit
+ - crypto: ccm - Fix handling of zero plaintext when computing mac
+ - crypto: authenc - Find proper IV address in ablkcipher callback
+ - [armhf] mvebu: use the virtual CPU registers to access coherency
+ registers
+ - vfs: fix subtle use-after-free of pipe_inode_info
+ - SCSI: bfa: Fix crash when symb name set for offline vport
+ - SCSI: hpsa: do not discard scsi status on aborted commands
+ - [hppa] fix mmap(MAP_FIXED|MAP_SHARED) to already mmapped address
+ - net: update consumers of MSG_MORE to recognize MSG_SENDPAGE_NOTLAST
+ - SCSI: Disable WRITE SAME for RAID and virtual host adapter drivers
+ - tg3: avoid double-freeing of rx data memory
+ - crypto: scatterwalk - Use sg_chain_ptr on chain entries
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.12.6
+ - ALSA: memalloc.h - fix wrong truncation of dma_addr_t
+ - [arm] 7912/1: check stack pointer in get_wchan
+ - [arm] 7913/1: fix framepointer check in unwind_frame
+ - KVM: Improve create VCPU parameter (CVE-2013-4587)
+ - [x86] KVM: Fix potential divide by 0 in lapic (CVE-2013-6367)
+ - [x86] KVM: Convert vapic synchronization to _cached functions
+ (CVE-2013-6368)
+ - [x86] KVM: fix guest-initiated crash with x2apic (CVE-2013-6376)
+ - xfs: growfs overruns AGFL buffer on V4 filesystems
+ - futex: fix handling of read-only-mapped hugepages
+ - nfsd: when reusing an existing repcache entry, unhash it first
+ - [armhf] usb: musb: musb_cppi41: handle pre-mature TX complete interrupt
+ - powerpc: Fix PTE page address mismatch in pgtable ctor/dtor
+ - mm: memcg: do not allow task about to OOM kill to bypass the limit
+ - mm: memcg: fix race condition between memcg teardown and swapin
+ - cfg80211: disable 5/10 MHz support for all drivers
+ - Revert "mac80211: allow disable power save in mesh"
+ - mac80211: fix scheduled scan rtnl deadlock
+ - iwlwifi: mvm: check sta_id/drain values in debugfs
+ - Btrfs: fix access_ok() check in btrfs_ioctl_send()
+ - dm snapshot: avoid snapshot space leak on crash
+ - dm array: fix a reference counting bug in shadow_ablock
+ - dm space map metadata: return on failure in sm_metadata_new_block
+ - dm space map: disallow decrementing a reference count below zero
+ - dm table: fail dm_table_create on dm_round_up overflow
+ - dm thin: switch to read only mode if a mapping insert fails
+ - dm thin: switch to read-only mode if metadata space is exhausted
+ - dm thin: always fallback the pool mode if commit fails
+ - dm thin: re-establish read-only state when switching to fail mode
+ - dm thin: allow pool in read-only mode to transition to read-write mode
+ - media/cxd2820r_core: Fix regression in 3.12.3
+ - sched: Avoid throttle_cfs_rq() racing with period_timer stopping
+ - Btrfs: do a full search everytime in btrfs_search_old_slot
+ - Btrfs: reset intwrite on transaction abort
+ - Btrfs: fix memory leak of chunks' extent map
+ - Btrfs: fix hole check in log_one_extent
+ - Btrfs: fix incorrect inode acl reset
+ - Btrfs: take ordered root lock when removing ordered operations inode
+ - Btrfs: do not run snapshot-aware defragment on error
+ - Btrfs: fix a crash when running balance and defrag concurrently
+ - Btrfs: fix lockdep error in async commit
+
+ [ Ben Hutchings ]
+ * udeb: Add ohci-pci to usb-modules (Closes: #730789)
+ * cifs: Enable CIFS_SMB2
+ * [hppa] Update flavours and configuration, thanks to Helge Deller
+ (Closes: #721191)
+ - Remove parisc-smp and parisc64 (UP) flavours
+ - Build with gcc-4.8
+ - rtc: Enable HP_SDC_RTC as module
+ - megaraid: Enable MEGARAID_NEWGEN
+ - [/parisc64-smp] Enable MLONGCALLS, DISCONTIGMEM_MANUAL
+ - [/parisc64-smp] Enable PATA_SIL680, AGP, AGP_PARISC, DRM,
+ DRM_RADEON as modules
+ * firmware: Disable FW_LOADER_USER_HELPER (see #725714)
+ * firmware: Improve logging of success/failure for direct file loading
+ * media: az6007: support Technisat Cablestar Combo HDCI (minus remote)
+ (Closes: #732106)
+ * linux-source: Compress with gzip -1 (Closes: #725492)
+ * [alpha] Prevent a NULL ptr dereference in csum_partial_copy
+ * Set ABI to 1
+ * [ia64] Enable PSTORE, EFI_VARS_PSTORE
+ * [x86,ia64] udeb: Remove zlib-modules as zlib is now built-in
+ * [rt] Update to 3.12.5-rt7:
+ - ptrace: fix ptrace vs tasklist_lock race
+ - migrate_disable pushd down in atomic_dec_and_spin_lock
+ - migrate_disable pushd down in rt_spin_trylock_irqsave
+ - migrate_disable pushd down in rt_write_trylock_irqsave
+ - Revert "sched/rt: Fix wait_task_interactive() to test rt_spin_lock state"
+ - seqlock: consolidate spin_lock/unlock waiting with spin_unlock_wait
+ - softirq: make migrate disable/enable conditioned on softirq_nestcnt
+
+ [ Ian Campbell ]
+ * [armel/kirkwood+orion] Reenable MARVELL_PHY (Closes: #723177)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 21 Dec 2013 03:12:38 +0000
+
+linux (3.12.3-1~exp1) experimental; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.12.1
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.12.2
+ - libertas: potential oops in debugfs (CVE-2013-6378)
+ - exec/ptrace: fix get_dumpable() incorrect tests (CVE-2013-2929)
+ https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.12.3
+
+ [ Ben Hutchings ]
+ * [rt] Update to 3.12.0-rt2 and reenable
+ * HID: Enable UHID as module (Closes: #729338)
+ * [sh4] Remove some accidental inconsistencies in config
+ * Enable CHECKPOINT_RESTORE (Closes: #682700)
+ * Enable JUMP_LABEL (Closes: #730071)
+ * [x86] staging: Enable CRYSTALHD as module (Closes: #730832)
+ * aufs: Update to aufs3.12-20131111 (no functional change)
+ * [rt] Update to 3.12.1-rt4
+ * udeb: Add snd-usb-hiface to sound-modules, thanks to Samuel Thibault
+ (Closes: #730418)
+ * linux-image-dbg: Use correct objcopy command when cross-compiling,
+ thanks to Jon Severinsson
+
+ [ Bastian Blank ]
+ * Use compiler name instead of Linux version in compiler meta-packages.
+
+ [ Ian Campbell ]
+ * [armhf]: Enable AHCI_IMX in armmp+lpae flavours.
+
+ [ Aurelien Jarno ]
+ * [mips/octeon] Add kernel udebs.
+ * [mipsel] Add a loongson-2e flavour.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 05 Dec 2013 14:34:39 +0000
+
+linux-tools (3.12.6-1) unstable; urgency=medium
+
+ * New upstream stable update
+ - perf tools: Remove cast of non-variadic function to variadic
+ - perf tools: Synthesize anon MMAP records again
+
+ [ Ben Hutchings ]
+ * linux-tools: Replace build-dependency on binutils-dev with
+ libiberty-dev (or old binutils-dev, for ease of backporting)
+ (Closes: #730883)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 30 Nov 2013 23:48:32 +0000
+
+linux-tools (3.12-1~exp1) experimental; urgency=low
+
+ * New upstream release (Closes: #729197)
+ * [x86, powerpc, ppc64] linux-tools: Build perf with libnuma
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 18 Nov 2013 05:14:34 +0000
+
+linux (3.12-1~exp1) experimental; urgency=low
+
+ * New upstream release: http://kernelnewbies.org/Linux_3.12
+
+ [ Ben Hutchings ]
+ * namespaces: Enable USER_NS (Closes: #712870)
+ - Restrict creation of user namespaces to root (CAP_SYS_ADMIN) by
+ default (sysctl: kernel.unprivileged_userns_clone)
+ * aufs: Update to aufs3.x-rcN-20131104
+ - mmap() holds a reference to the union file as well as the branch file
+ * [armel/{iop32x,ixp4xx}] Disable BPF_JIT, MEMCG, USER_NS to reduce kernel
+ size
+ * [arm,x86,s390,s390x] Introduce linux-compiler meta-packages to allow use
+ of foreign linux-headers packages with a native multilib compiler
+ * perf/ftrace: Fix paranoid level for enabling function tracer
+ (CVE-2013-2930)
+ * media/usb/gspca: Enable USB_GSPCA_STK1135 as module
+ * net/ethernet: Enable I40E as module
+ * net/usb: Enable USB_NET_SR9700 as module
+ * net/wireless/rt2x00: Enable RT2800USB_RT3573
+ * openvswitch: Enable OPENVSWITCH_VXLAN
+ * net/sched: Enable NET_SCH_FQ as module
+ * [x86] HID: Enable I2C_HID as module (Closes: #729801)
+ * [x86] input/misc: Enable INPUT_IDEAPAD_SLIDEBAR as module
+ * [x86] fs: Enable LUSTRE_FS, LUSTRE_LLITE_LOOP, LNET_XPRT_IB as modules
+ * [x86] thermal: Enable INTEL_POWERCLAMP, X86_PKG_TEMP_THERMAL as modules
+ * [armhf/armmp] udeb: Add zlib-modules
+
+ [ Thorsten Glaser ]
+ * Update m68k config (Closes: #728392):
+ - enable COMPAT_BRK by explicit upstream (m68k maintainer) request
+ - re-enable FPU emulation after discussion upstream, by popular request
+ - disable ADB_MACIISI by upstream (Mac68k maintainer) request
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 17 Nov 2013 22:41:26 +0000
+
+linux (3.12~rc7-1~exp1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * aufs: Update to aufs3.x-rcN-20131014
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 28 Oct 2013 04:12:20 +0000
+
+linux (3.11.10-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.11.9
+ - net/mlx4_core: Fix call to __mlx4_unregister_mac
+ - net: sctp: do not trigger BUG_ON in sctp_cmd_delete_tcb
+ - cxgb3: Fix length calculation in write_ofld_wr() on 32-bit architectures
+ - tcp: gso: fix truesize tracking
+ - xen-netback: Handle backend state transitions in a more robust way
+ - xen-netback: transition to CLOSED when removing a VIF
+ - [x86] hyperv-fb: add pci stub
+ - tracing: Fix potential out-of-bounds in trace_get_user()
+ - perf: Fix perf ring buffer memory ordering
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.11.10
+ - ACPICA: DeRefOf operator: Update to fully resolve FieldUnit and
+ BufferField refs.
+ - libertas: potential oops in debugfs (CVE-2013-6378)
+ - aacraid: prevent invalid pointer dereference
+ - ACPICA: Return error if DerefOf resolves to a null package element.
+ - ACPICA: Fix for a Store->ArgX when ArgX contains a reference to a field.
+ - USB: mos7840: fix tiocmget error handling
+ - Btrfs: relocate csums properly with prealloc extents
+ - [s390,s390x] crypto: s390 - Fix aes-cbc IV corruption
+ - can: c_can: Fix RX message handling, handle lost message before EOB
+ - ipc,shm: correct error return value in shmctl (SHM_UNLOCK)
+ - ipc,shm: fix shm_file deletion races
+ - drm/nvc0-/gr: fix a number of missing explicit array terminators...
+ - sched, idle: Fix the idle polling state logic
+ - [x86] ACPI / EC: Ensure lock is acquired before accessing ec struct
+ members
+ - [x86] ACPI / video: Quirk initial backlight level 0
+ - Staging: zram: Fix access of NULL pointer
+ - Drivers: hv: vmbus: Fix a bug in channel rescind code
+ - rt2x00: fix a crash bug in the HT descriptor handling fix
+ - Bluetooth: revert: "Bluetooth: Add missing reset_resume dev_pm_ops"
+ - exec/ptrace: fix get_dumpable() incorrect tests (CVE-2013-2929)
+
+ [ Ben Hutchings ]
+ * net: clamp ->msg_namelen instead of returning an error
+ * tcp: tsq: restore minimal amount of queueing
+ * rds: prevent BUG_ON triggered on congestion update to loopback
+ (CVE-2012-2372)
+ * ipv6: fix headroom calculation in udp6_ufo_fragment (CVE-2013-4563)
+ * [s390,s390x] qeth: avoid buffer overflow in snmp ioctl (CVE-2013-6381)
+ * xfs: underflow bug in xfs_attrlist_by_handle() (CVE-2013-6382)
+ * [x86] Enable CHROMEOS_LAPTOP as module (Closes: #731271)
+ - iio/light: Enable SENSORS_TSL2563, SENSORS_ISL29018, TSL2583 as modules
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 04 Dec 2013 14:49:01 +0000
+
+linux (3.11.8-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.11.8
+ - bcache: Fixed incorrect order of arguments to bio_alloc_bioset()
+ - cgroup: fix to break the while loop in cgroup_attach_task() correctly
+ - mac80211: drop spoofed packets in ad-hoc mode
+ - mac80211: fix crash if bitrate calculation goes wrong
+ - rtlwifi: rtl8192cu: Fix error in pointer arithmetic
+ - jfs: fix error path in ialloc
+ - SCSI: sd: call blk_pm_runtime_init before add_disk
+ - ecryptfs: Fix memory leakage in keystore.c
+ - eCryptfs: fix 32 bit corruption issue
+ - raid5: set bio bi_vcnt 0 for discard request
+ - raid5: avoid finding "discard" stripe
+ - libata: make ata_eh_qc_retry() bump scmd->allowed on bogus failures
+ - Revert "epoll: use freezable blocking call"
+ - Revert "select: use freezable blocking call"
+ - md: Fix skipping recovery for read-only arrays.
+ - vhost/scsi: Fix incorrect usage of get_user_pages_fast write parameter
+ - Fix a few incorrectly checked [io_]remap_pfn_range() calls
+ - lib/scatterlist.c: don't flush_kernel_dcache_page on slab page
+ - aacraid: missing capable() check in compat ioctl
+ - mm: Wait for THP migrations to complete during NUMA hinting faults
+ - mm: Prevent parallel splits during THP migration
+ - mm: Close races between THP migration and PMD numa clearing
+ - mm/pagewalk.c: fix walk_page_range() access of wrong PTEs
+ - drm: Prevent overwriting from userspace underallocating core ioctl
+ structs
+ - seq_file: always update file->f_pos in seq_lseek()
+
+ [ Ben Hutchings ]
+ * perf/ftrace: Fix paranoid level for enabling function tracer
+ (CVE-2013-2930)
+ * [armhf] Bump ABI to 2
+ * [armhf/armmp] udeb: Add zlib-modules (fixes FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 13 Nov 2013 05:36:36 +0000
+
+linux (3.11.7-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.11.7
+ - tcp: TSO packets automatic sizing
+ - tcp: TSQ can use a dynamic limit
+ - tcp: must unclone packets before mangling them
+ - tcp: fix incorrect ca_state in tail loss probe (Closes: #728726)
+
+ [ Ben Hutchings ]
+ * [armel] udeb: Re-enable iop32x flavour
+ * Bump ABI to 2 due to TCP changes
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 09 Nov 2013 20:18:02 +0000
+
+linux (3.11.6-2) unstable; urgency=medium
+
+ [ Ben Hutchings ]
+ * [sh4] Reduce compiler version to gcc-4.7, as gcc-4.8 is not yet
+ available
+ * [ia64] Reduce compiler version to gcc-4.6, matching gcc-defaults
+ (fixes FTBFS)
+ * [armhf] Bump ABI to 1a, as enabling Xen and KVM support changes ABI
+ * net: Fix infinite loop in in skb_flow_dissect() (CVE-2013-4348)
+ * net: do not call sock_put() on TIMEWAIT sockets
+ * l2tp: fix kernel panic when using IPv4-mapped IPv6 addresses
+ * net: heap overflow in __audit_sockaddr()
+ * proc connector: fix info leaks
+ * bridge: update mdb expiration timer upon reports.
+ * Revert "bridge: only expire the mdb entry when query is received"
+ * unix_diag: fix info leak
+ * be2net: pass if_id for v1 and V2 versions of TX_CREATE cmd
+ * net: fix cipso packet validation when !NETLABEL
+ * inet: fix possible memory corruption with UDP_CORK and UFO
+ * [arm] 7851/1: check for number of arguments in syscall_get/set_arguments()
+ * ext[34]: fix double put in tmpfile
+ * dm snapshot: fix data corruption (CVE-2013-4299)
+ * i2c: ismt: initialize DMA buffer
+ * mm: fix BUG in __split_huge_page_pmd
+ * writeback: fix negative bdi max pause
+
+ [ Aurelien Jarno ]
+ * UAPI: include <asm/byteorder.h> in linux/raid/md_p.h.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 01 Nov 2013 05:23:13 +0000
+
+linux-tools (3.11-3) unstable; urgency=low
+
+ * linux-tools: Replace build-dependency on libunwind8-dev with
+ libunwind7-dev, as the new libunwind will not enter testing soon
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 29 Oct 2013 02:12:36 +0000
+
+linux (3.11.6-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.11.6
+ - random: run random_int_secret_init() run after all late_initcalls
+ - ext4: fix memory leak in xattr
+ - KVM: PPC: Book3S HV: Fix typo in saving DSCR
+ - ipc: Apply mainline changes up to 3.12-rc5
+
+ [ Ian Campbell ]
+ * [armhf] Enable Xen and virtio for armmp and armmp-lpae as well as KVM for
+ armmp-lpae only.
+
+ [ Ben Hutchings ]
+ * kbuild: Use -nostdinc in compile tests (Closes: #726861, workaround
+ for #717557)
+ * Disable CC_OPTIMIZE_FOR_SIZE (Closes: #635899, fixes FTBFS on mips,
+ mipsel, powerpc) [!armel/{iop32x,ixp4xx,kirkwood,orion5x},m68k]
+ * aufs: Update to aufs3.11-20131014
+ - Remove dependency on loop module (Closes: #727243)
+ * [armhf/armmp] udeb: Add ppp-modules
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 27 Oct 2013 19:02:04 +0000
+
+linux-tools (3.11-2) unstable; urgency=low
+
+ * linux-tools: Limit build-dependency on libunwind8-dev to architectures
+ where it is available and needed
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 27 Oct 2013 18:01:37 +0000
+
+linux-tools (3.11-1) unstable; urgency=low
+
+ * New upstream release
+ * linux-tools: Build perf with libaudit and libunwind
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 19 Oct 2013 02:38:59 +0100
+
+linux (3.11.5-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.11.1
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.11.2
+ - media: siano: fix divide error on 0 counters (Closes: #719623)
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.11.3
+ - HID: multitouch: validate indexes details (CVE-2013-2897)
+ - HID: LG: validate HID output report details (CVE-2013-2893)
+ - HID: zeroplus: validate output report details (CVE-2013-2889)
+ - HID: lenovo-tpkbd: fix leak if tpkbd_probe_tp fails (CVE-2013-2894)
+ - HID: steelseries: validate output report details (CVE-2013-2891)
+ - HID: logitech-dj: validate output report details (CVE-2013-2895)
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.11.4
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.11.5
+ - cpqarray: fix info leak in ida_locked_ioctl() (CVE-2013-2147)
+ - cciss: fix info leak in cciss_ioctl32_passthru() (CVE-2013-2147)
+ - tuntap: correctly handle error in tun_set_iff() (CVE-2013-4343)
+ - net: sctp: fix ipv6 ipsec encryption bug in sctp_v6_xmit (CVE-2013-4350)
+ - ipv6: udp packets following an UFO enqueued packet need also be handled
+ by UFO (CVE-2013-4387)
+
+ [ Ben Hutchings ]
+ * udeb: Update config to match previous kernel config changes:
+ - Remove ext{2,3}-modules
+ - Update description of ext4-modules and let it provide ext{2,3}-modules
+ - Remove aic7xxx_old, enc28j60 and imm from module lists
+ - [sh4] kernel-image no longer provides ext3-modules
+ * [hppa] udeb: kernel-image does not provide ext2-modules (since 3.2.7-1)
+ * [arm] thermal: Re-enable CPU_THERMAL as built-in (regression in
+ 3.10~rc4-1~exp1)
+ * Stop providing virtual packages linux-image (Closes: #724569),
+ linux-headers and linux-source
+ * hwmon: Enable SENSORS_JC42, SENSORS_NCT6775 as modules (Closes: #722062)
+ * compiler/gcc4: Add quirk for 'asm goto' miscompilation bug
+ * [arm64] Build a linux-libc-dev package (Closes: #695241)
+ * crypto: ansi_cprng - Fix off by one error in non-block size request
+ (CVE-2013-4345)
+ * mvsas: Recognise device/subsystem 9485/9485 as 88SE9485
+ * Set ABI to 1
+ * [i386] Remove xen-linux-system-<version> packages (Closes: #726010)
+
+ [ Ian Campbell ]
+ * [armhf] Enable CONFIG_PCI for multiplatform flavour.
+ - Enable standard NIC and SCSI modules and include in udebs.
+ * [armhf] Add multiplatform + LPAE flavour (armmp-lpae).
+ * [armhf] Remove mx5, omap and vexpress flavours. These are all supported
+ by the multiplatform flavour.
+ * [armel/kirkwood] Add orion-ehci, mvmdio and of_mdio modules to udebs.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 17 Oct 2013 14:46:41 +0100
+
+linux (3.11-1~exp1) experimental; urgency=low
+
+ * New upstream release: http://kernelnewbies.org/Linux_3.11
+
+ [ Ben Hutchings ]
+ * Disable drivers for various platform/undetectable devices by default:
+ - ata: Disable PATA_ARASAN_CF
+ - hwrng: Disable HW_RANDOM_TIMERIOMEM
+ - mdio: Disable MDIO_BITBANG
+ - media: Disable SOC_CAMERA
+ - media/radio: Disable I2C_SI470X, RADIO_SAA7706H, RADIO_SI4713,
+ RADIO_TEA5764, RADIO_TEF6862, RADIO_WL1273
+ - mfd: Disable HTC_PASIC3, MFD_PCF50633, MFD_SM501, TPS65010
+ - mtd: Disable MTD_ONENAND_GENERIC
+ - mmc: Disable MMC_SPI, MMC_SDHCI_PLTFM
+ - net/can: Disable CAN_MCP251X
+ - net/ethernet: Disable DNET, ENC28J60, ETHOC, KS8842, KS8851, KS8851_MLL,
+ WIZNET_W5100, WIZNET_W5300
+ - net/wireless: Disable LIBERTAS_SPI, P54_SPI
+ - parport: Disable PARPORT_AX88796
+ - power: Disable BATTERY_BQ27x00, BATTERY_DS2760, BATTERY_DS2782,
+ BATTERY_MAX17040
+ - regulator: Disable all drivers
+ - rtc: Disable all drivers except RTC_DRV_CMOS
+ - serial: Disable SERIAL_MAX3100
+ - spi: Disable SPI_TLE62X0
+ - uio: Disable UIO_PDRV, UIO_PDRV_GENIRQ
+ - USB: Disable USB_C67X00_HCD, USB_ISP116X_HCD, USB_R8A66597_HCD
+ - video: Disable FB_METRONOME
+ - w1: Disable W1_SLAVE_DS2760
+ * [x86] mtd: Disable MTD_NAND_PLATFORM
+ * [x86] power: Disable PDA_POWER
+ * [x86] video: Disable FB_S1D13XXX
+ * Disable some old non-hotplug PCI drivers:
+ - SCSI: Disable SCSI_AIC7XXX_OLD
+ - [x86] mtd: Disable MTD_PMC551
+ - [x86] net/wan: Disable SBNI
+ * Disable parport drivers that are no longer likely to be useful:
+ - block: Disable PARIDE
+ - media: Disable VIDEO_BWQCAM, VIDEO_CQCAM, VIDEO_W9966
+ - SCSI: Disable SCSI_IMM, SCSI_PPA
+ - [x86] net/ethernet: Disable ATP
+ * bluetooth: Disable BT_HCIBTUART; the serial_cs and hci_uart drivers
+ should be used instead
+ * PCI: Disable PCIEPORTBUS in configurations for systems without PCI
+ Express: armel/{iop32x,ixp4xx}, mips/!octeon, mipsel/*, sh4/*
+ * [armhf/{armmp,mx5}] cpufreq: Enable GENERIC_CPUFREQ_CPU0 as module,
+ replacing CPU_FREQ_IMX
+ * [armhf/armmp] Enable PINCTRL_WM8850, replacing GPIO_VT8500
+ * [powerpc/powerpc64] Enable CPU_FREQ_CBE (previously CBE_CPUFREQ) as module
+ * [armel] Re-enable iop32x and ixp4xx flavours
+ * aufs: Update to aufs3.x-rcN-20130909
+
+ [ Bastian Blank ]
+ * Symlink doc directory in linux-headers packages.
+ * Make gcc-4.8 the default compiler.
+ * Use default font selection.
+ * Enable NFS 4.2 client support.
+ * Use ext4 for all ext-variants.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 12 Sep 2013 03:57:27 +0100
+
+linux (3.11~rc7-1~exp1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [arm,mips,s390,sh4] Enable KPROBES
+ * trace: Enable KPROBE_EVENT (Closes: #640953)
+ * trace: Enable UPROBES, UPROBE_EVENT (Closes: #691167)
+ * irq: Always define devm_{request_threaded,free}_irq() (fixes FTBFS on
+ s390,s390x)
+ * [armel] Disable iop32x and ixp4xx flavours (fixes FTBFS)
+ * Clean up maintainer scripts and templating system
+ - Move all templates under debian/templates
+ - linux-image: Remove undocumented $KERNEL_ARCH variable from hook
+ environment
+ - Use only one template syntax (@keyword@) and do all substitutions
+ in gencontrol.py
+ - linux-image.postinst: Remove debconf warning about ramdisk variable in
+ /etc/kernel-img.conf
+ - linux-image.postinst: Remove debconf warning about missing firmware;
+ this should now be redundant and it annoys users that don't need the
+ files (Closes: #612822)
+ * Update Brazilian Portugese debconf template translations
+ (Fernando Ike de Oliveira) (Closes: #719725)
+ * hid: Enable HID_HUION as module (Closes: #721002)
+ * [powerpc,x86] hid: Enable HID_APPLEIR as module
+ * ACPI: Enable ACPI_INITRD_TABLE_OVERRIDE (Closes: #721310)
+ * net: Enable NET_MPLS_GSO
+ * nfc: Enable NFC_SIM as module
+ * md: Enable DM_SWITCH as module
+ * net: Enable NLMON as module
+ * wireless: Enable ATH10K, ATH10K_PCI as modules
+ * media: Enable VIDEO_USBTV as module
+ * video: Enable FB_SMSCUFX as module
+ * usb/serial: Enable USB_SERIAL_WISHBONE, USB_SERIAL_FLASHLOADER,
+ USB_SERIAL_SUUNTO as modules
+ * infiniband: Enable INFINIBAND_ISERT as module
+ * xen: Enable XEN_BALLOON_MEMORY_HOTPLUG
+ * fs: Enable QNX6FS_FS as module
+ * f2fs: Enable F2FS_FS_SECURITY
+ * 9p: Enable 9P_FS_SECURITY
+ * sunrpc: Enable SUNRPC_DEBUG
+ * vhost: Enable VHOST_SCSI as module
+ * [x86] video: Enable FB_HYPERV as module
+ * [x86] snd-hda-intel: Enable SND_HDA_I915
+ * [x86] mmc: Enable MMC_SDHCI_ACPI as module
+ * [x86] comedi: Enable COMEDI_ADV_PCI1724, COMEDI_NI_LABPC_PCI (formerly
+ COMEDI_NI_LABPC) as modules
+ * [x86] Enable MLX5_INFINIBAND as module
+ * [amd64] iommu: Enable AMD_IOMMU_V2
+ * [x86,ia64] fs: Enable EFIVAR_FS as module
+ * wireless/ti: Disable WL_TI on all configurations except armhf/armmp
+ * [hppa,mips,mipsel,sh4,sparc] ehci-hcd: Enable USB_EHCI_ROOT_HUB_TT and
+ USB_EHCI_TT_NEWSCHED in all configurations, consistent with other
+ architectures
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 01 Sep 2013 05:15:57 +0100
+
+linux-tools (3.11~rc4-1~exp1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * linux-tools: Build perf documentation out-of-tree, as this now works
+ and our previous workaround does not
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 08 Aug 2013 16:21:00 +0200
+
+linux (3.11~rc4-1~exp1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * aufs: Update to aufs3.x-rcN-20130805
+
+ [ Hector Oron ]
+ * [armhf/armmp] Enable NET_CALXEDA_XGMAC as module (Closes: #717269)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 08 Aug 2013 13:09:47 +0200
+
+linux (3.10.11-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.8
+ - [arm] perf/arm: Fix armpmu_map_hw_event()
+ - memcg: don't initialize kmem-cache destroying work for root caches
+ - fs/proc/task_mmu.c: fix buffer overflow in add_page_map()
+ - elevator: Fix a race in elevator switching
+ - mac80211: fix infinite loop in ieee80211_determine_chantype
+ - can: pcan_usb: fix wrong memcpy() bytes length
+ - cfg80211: fix P2P GO interface teardown
+ - ASoC: dapm: Fix empty list check in dapm_new_mux()
+ - ALSA: 6fire: make buffers DMA-able (pcm)
+ - ALSA: 6fire: make buffers DMA-able (midi)
+ - USB: ti_usb_3410_5052: fix big-endian firmware handling
+ - USB: mos7720: fix broken control requests
+ - Fix TLB gather virtual address range invalidation corner cases
+ - [arm] 7809/1: perf: fix event validation for software group leaders
+ (CVE-2013-4254)
+ - jbd2: Fix use after free after error in jbd2_journal_dirty_metadata()
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.9
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.10
+ - [s390] KVM: s390: move kvm_guest_enter,exit closer to sie
+ - mac80211: don't wait for TX status forever
+ - tracing/kprobe: Wait for disabling all running kprobe handlers
+ - tracing: Fix many race conditions including potential use-after-free
+ - tracing/kprobes: Fail to unregister if probe event files are in use
+ - tracing/uprobes: Fail to unregister if probe event files are in use
+ - ftrace: Check module functions being traced on reload
+ - zd1201: do not use stack as URB transfer_buffer
+ - VFS: collect_mounts() should return an ERR_PTR
+ - [arm] davinci: nand: specify ecc strength
+ - drm/radeon/r7xx: fix copy paste typo in golden register setup
+ - drm/radeon: fix UVD message buffer validation
+ - drm/i915: Invalidate TLBs for the rings after a reset
+ - nilfs2: remove double bio_put() in nilfs_end_bio_write() for
+ BIO_EOPNOTSUPP error
+ - Hostap: copying wrong data prism2_ioctl_giwaplist()
+ - SCSI: zfcp: fix lock imbalance by reworking request queue locking
+ - SCSI: zfcp: fix schedule-inside-lock in scsi_device list loops
+ - SCSI: sg: Fix user memory corruption when SG_IO is interrupted by a
+ signal
+ - [x86] get_unmapped_area: Access mmap_legacy_base through mm_struct member
+ - bcache: FUA fixes
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.11
+ - drm/nouveau/mc: fix race condition between constructor and request_irq()
+ - jfs: fix readdir cookie incompatibility with NFSv4 (Closes: #714974)
+ - [powerpc] Work around gcc miscompilation of __pa() on 64-bit
+ - [powerpc] Don't Oops when accessing /proc/powerpc/lparcfg without
+ hypervisor
+ - timer_list: correct the iterator for timer_list
+ - drivers/base/memory.c: fix show_mem_removable() to handle missing sections
+ - memcg: check that kmem_cache has memcg_params before accessing it
+ - SUNRPC: Fix memory corruption issue on 32-bit highmem systems
+ - ath9k_htc: Restore skb headroom when returning skb to mac80211
+ - iscsi-target: Fix ImmediateData=Yes failure regression in >= v3.10
+ - iscsi-target: Fix potential NULL pointer in solicited NOPOUT reject
+ - ACPI / EC: Add ASUSTEK L4R to quirk list in order to validate ECDT
+ - regmap: rbtree: Fix overlapping rbnodes.
+
+ [ Ben Hutchings ]
+ * [rt] Update to 3.10.10-rt7:
+ - hwlat-detector: Update hwlat_detector to add outer loop detection
+ - hwlat-detector: Use thread instead of stop machine
+ - hwlat-detector: Use trace_clock_local if available
+ - genirq: do not invoke the affinity callback via a workqueue
+ - simple-wait: rename and export the equivalent of waitqueue_active()
+ - simple-wait: Fix a race condition with swait wakeups vs adding items
+ to the list
+ - rcu: Use swait_wake_all() in rcu_nocb_gp_cleanup()
+ * aufs: Update to aufs3.10-20130826
+ * aufs: mvdown, don't let unprivileged users provoke a WARNING
+ * [x86] ACPI: Re-enable ACPI_HOTPLUG_MEMORY as built-in
+ * [x86] amd64_edac: Fix single-channel setups (Closes: #717473)
+ * [x86] efi: Ensure efi-pstore is loaded on EFI systems
+ * bug script: Prompt to include crash logs from pstore
+ * ipv6: remove max_addresses check from ipv6_create_tempaddr (CVE-2013-0343)
+ * HID: validate HID report id size (CVE-2013-2888)
+ * HID: pantherlord: validate output report details (CVE-2013-2892)
+ * HID: ntrig: validate feature report details (CVE-2013-2896)
+ * HID: sensor-hub: validate feature report details (CVE-2013-2898)
+ * HID: picolcd_core: validate output report details (CVE-2013-2899)
+ * HID: check for NULL field when setting values
+
+ [ Ian Campbell ]
+ * [armel]: Enable MVMDIO and USB_EHCI_HCD_ORION on Kirkwood and Orion
+ (Closes: #719680)
+ * Bump ABI to 3
+ * [armhf]: Add udebs for armmp flavour
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 10 Sep 2013 14:13:16 +0100
+
+linux-tools (3.10-4) unstable; urgency=low
+
+ * Sourceful upload for the perl 5.18 transition
+ * usbip: Fix package version override to be binNMU-safe
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 30 Aug 2013 12:44:56 +0100
+
+linux (3.10.7-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.6
+ - [arm] Modify vectors page to defend against ROP buffer overflow attacks
+ - [armel] 7790/1: Fix deferred mm switch on VIVT processors
+ - [armel] 7791/1: a.out: remove partial a.out support
+ - [powerpc] VPHN topology change updates all siblings
+ - hwmon: (max6697) fix MAX6581 ideality
+ - USB: mos7840: fix race in register handling
+ - USB: mos7840: fix race in led handling
+ - mac80211: fix duplicate retransmission detection
+ - mac80211: fix ethtool stats for non-station interfaces
+ - ixgbe: Fix Tx Hang issue with lldpad on 82598EB
+ - Bluetooth: ath3k: don't use stack memory for DMA
+ - Bluetooth: fix wrong use of PTR_ERR() in btusb
+ - svcrpc: fix gss-proxy xdr decoding oops
+ - svcrpc: fix gss_rpc_upcall create error
+ - svcrpc: fix kfree oops in gss-proxy code
+ - zram: avoid invalid memory access in zram_exit()
+ - zram: use zram->lock to protect zram_free_page() in swap free notify path
+ - zram: avoid double free in function zram_bvec_write()
+ - zram: avoid access beyond the zram device
+ - zram: protect sysfs handler from invalid memory access
+ - Revert "cpuidle: Quickly notice prediction failure in general case"
+ - cpufreq: Fix cpufreq driver module refcount balance after suspend/resume
+ - Revert "cpuidle: Quickly notice prediction failure for repeat mode"
+ - drm/radeon: Disable dma rings for bo moves on r6xx
+ - xen-blkfront: use a different scatterlist for each request
+ - drm/radeon: never unpin UVD bo v3
+ - Btrfs: fix crash regarding to ulist_add_merge
+ - [s390] bitops: fix find_next_bit_left
+ - userns: unshare_userns(&cred) should not populate cred on failure
+ (CVE-2013-4205)
+ - ipv6: take rtnl_lock and mark mrt6 table as freed on namespace cleanup
+ - usbnet: do not pretend to support SG/TSO
+ - net_sched: Fix stack info leak in cbq_dump_wrr().
+ - af_key: more info leaks in pfkey messages
+ - net_sched: info leak in atm_tc_dump_class()
+ - 8139cp: Add dma_mapping_error checking
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.7
+ - [powerpc] Save the TAR register earlier
+ - [powerpc] tm: Fix context switching TAR, PPR and DSCR SPRs
+ - ext4: make sure group number is bumped after a inode allocation race
+ - regmap: cache: Make sure to sync the last register in a block
+ - hwmon: (adt7470) Fix incorrect return code check
+ - media: em28xx: fix assignment of the eeprom data
+ - ACPI / PM: Walk physical_node_list under physical_node_lock
+ - ALSA: 6fire: fix DMA issues with URB transfer_buffer usage
+ - Btrfs: release both paths before logging dir/changed extents
+ - LOCKD: Don't call utsname()->nodename from nlmclnt_setlockargs
+ - SUNRPC: Don't auto-disconnect from the local rpcbind socket
+ - SUNRPC: If the rpcbind channel is disconnected, fail the call to
+ unregister
+ - virtio/console: Quit from splice_write if pipe->nrbufs is 0
+ - virtio/console: Add pipe_lock/unlock for splice_write
+ - virtio: console: fix race with port unplug and open/close
+ - virtio: console: fix race in port_fops_open() and port unplug
+ - virtio: console: clean up port data immediately at time of unplug
+ - virtio: console: fix raising SIGIO after port unplug
+ - virtio: console: return -ENODEV on all read operations after unplug
+ - drm/radeon: stop sending invalid UVD destroy msg
+ - ext4: flush the extent status cache during EXT4_IOC_SWAP_BOOT
+ - cifs: extend the buffer length enought for sprintf() using
+ - zram: allow request end to coincide with disksize
+ - reiserfs: fix deadlock in umount
+ - [x86] drm/i915: initialize gt_lock early with other spin locks
+
+ [ Ben Hutchings ]
+ * [x86] Enable ASUS_OLED as module (Closes: #680016)
+ * [armel/orion5x] I2C: mv64xxx: fix race between FSM/interrupt and process
+ context (Closes: #622325)
+ * [rt] Update to 3.10.6-rt3
+ - hpsa: fix warning with smp_processor_id() in preemptible
+ * [arm] Change SERIAL_8250_PCI from built-in to module
+ * net: Change WIZNET_W5{1,3}00 from built-in(!) to module
+ * net: Change DROP_MONITOR from built-in to module
+ * netlink: Change NETLINK_DIAG from built-in to module; enable on
+ armel/{iop32x,ixp4xx,orion5x}
+
+ [ Thorsten Glaser ]
+ * [m68k] debian/patches/bugfix/m68k/atari-irqs.patch: patch from mailing list
+ to silence IRQ problems on Atari platforms with multi-platform kernel
+ * [m68k] debian/patches/bugfix/m68k/type-fix-div64.patch: patch from Andreas
+ Schwab to handle do_div being called with a non-u32 second argument
+ * [m68k] begin working on d-i kernel configs (just enough to not FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 17 Aug 2013 22:35:15 +0200
+
+linux-tools (3.10-3) unstable; urgency=low
+
+ * linux-kbuild: Fix no-modules case in modpost wrapper (Closes: #719129)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 08 Aug 2013 21:49:02 +0200
+
+linux (3.10.5-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.4
+ - ipv6,mcast: always hold idev->lock before mca_lock
+ - ipv6: call udp_push_pending_frames when uncorking a socket with AF_INET
+ pending data (CVE-2013-4162)
+ - ipv6: ip6_append_data_mtu did not care about pmtudisc and frag_size
+ (CVE-2013-4163)
+ - sunvnet: vnet_port_remove must call unregister_netdev
+ - ipv6: only static routes qualify for equal cost multipathing
+ (CVE-2013-4125)
+ - atl1e: fix dma mapping warnings
+ - atl1e: unmap partially mapped skb on dma error and free skb
+ - vlan: mask vlan prio bits
+ - vlan: fix a race in egress prio management
+ - fuse: readdirplus: fix dentry leak
+ - fuse: readdirplus: fix instantiate
+ - fuse: readdirplus: sanity checks
+ - bcache: Fix a dumb race
+ - bcache: Advertise that flushes are supported
+ - bcache: Shutdown fix (possibly fixes #715019)
+ - bcache: Fix a sysfs splat on shutdown
+ - bcache: Journal replay fix
+ - ext4: fix error handling in ext4_ext_truncate()
+ - media: saa7134: Fix unlocked snd_pcm_stop() call
+ - media: dmxdev: remove dvb_ringbuffer_flush() on writer side
+ - lockd: protect nlm_blocked access in nlmsvc_retry_blocked
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.5
+ - mm: fix the TLB range flushed when __tlb_remove_page() runs out of slots
+ - iscsi-target: Fix tfc_tpg_nacl_auth_cit configfs length overflow
+ - iser-target: Fix session reset bug with RDMA_CM_EVENT_DISCONNECTED
+ - iscsi-target: Fix ISCSI_OP_SCSI_TMFUNC handling for iser
+ - firewire: fix libdc1394/FlyCap2 iso event regression
+ - SCSI: sd: fix crash when UA received on DIF enabled device
+ - tracing: Remove locking trace_types_lock from
+ tracing_reset_all_online_cpus()
+ - usb: host: xhci: Enable XHCI_SPURIOUS_SUCCESS for all controllers with
+ xhci 1.0
+ - xhci: fix null pointer dereference on ring_doorbell_for_active_rings
+ - xhci: Avoid NULL pointer deref when host dies.
+ - staging: comedi: fix a race between do_cmd_ioctl() and read/write
+ - Btrfs: fix wrong write offset when replacing a device
+ - Btrfs: fix lock leak when resuming snapshot deletion
+ - Btrfs: re-add root to dead root list if we stop dropping it
+ - xen-netfront: pull on receive skb may need to happen earlier
+ - md: Remove recent change which allows devices to skip recovery.
+ - md/raid1: fix bio handling problems in process_checks()
+ - md/raid5: fix interaction of 'replace' and 'recovery'.
+ - md/raid10: remove use-after-free bug.
+ - svcrdma: underflow issue in decode_write_list()
+ - nfsd: nfsd_open: when dentry_open returns an error do not propagate as
+ struct file
+ - ACPI / scan: Do not try to attach scan handlers to devices having them
+ - drm/radeon: fix endian issues with DP handling (v3)
+ - drm/radeon: fix combios tables on older cards
+ - drm/i915: fix up ring cleanup for the i830/i845 CS tlb w/a
+ - drm/i915: Fix write-read race with multiple rings
+ - Partially revert "drm/i915: unconditionally use mt forcewake on hsw/ivb"
+ - drm/i915: Fix incoherence with fence updates on Sandybridge+
+ - drm/i915: fix long-standing SNB regression in power consumption after resume v2
+ - drm/i915: Fix dereferencing invalid connectors in is_crtc_connector_off()
+ - drm/i915: correctly restore fences with objects attached
+ - drm/i915: Serialize almost all register access
+ - drm/radeon/atom: initialize more atom interpretor elements to 0
+ - mm: mempolicy: fix mbind_range() && vma_adjust() interaction
+ - tty_port: Fix refcounting leak in tty_port_tty_hangup()
+ - vfs: livelock avoidance in sget()
+ - iscsi-target: Fix iscsit_add_reject* usage for iser
+ - drm/i915: Correct obj->mm_list link to
+ dev_priv->dev_priv->mm.inactive_list
+
+ [ Ben Hutchings ]
+ * [hppa] udeb: Add core-modules package (Closes: #718270)
+ * nl80211: fix another nl80211_fam.attrbuf race
+ * Bump ABI to 2
+ * ext4: fix retry handling in ext4_ext_truncate()
+ * atl1c: Fix misuse of netdev_alloc_skb in refilling rx ring
+ (Closes: #718505)
+ * [rt] genpatch.py: Accept missing series-rt
+ * [rt] Update to 3.10.4-rt1 and reenable
+ * [rt] genpatch.py: Fix parsing of upstream patches with no header
+ * aufs: Update to aufs3.10-20130805
+ * [rt] md: Disable BCACHE, as it fails to build
+ * SCSI: Don't attempt to send extended INQUIRY command if skip_vpd_pages is
+ set (Closes: #719002)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 07 Aug 2013 22:38:45 +0200
+
+linux (3.10.3-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.2
+ - CIFS: Fix a deadlock when a file is reopened
+ - jbd2: move superblock checksum calculation to jbd2_write_superblock()
+ - jbd2: fix theoretical race in jbd2__journal_restart
+ - ext4: fix corruption when online resizing a fs with 1K block size
+ - ext3,ext4: don't mess with dir_file->f_pos in htree_dirblock_to_tree()
+ - ext4: check error return from ext4_write_inline_data_end()
+ - xhci: check for failed dma pool allocation
+ - [x86] drivers: hv: switch to use mb() instead of smp_mb()
+ - cgroup: fix umount vs cgroup_event_remove() race
+ - cgroup: fix RCU accesses to task->cgroups
+ - [hppa] Fix gcc miscompilation in pa_memcpy()
+ - [hppa] Ensure volatile space register %sr1 is not clobbered
+ - genirq: Fix can_request_irq() for IRQs without an action
+ (Closes: #709647)
+ - [x86] ACPI: Fix HP Folio 13 EC register access (Closes: #684186)
+ + ACPI: Add CMOS RTC Operation Region handler support
+ + ACPI / EC: Add HP Folio 13 to ec_dmi_table in order to skip DSDT scan
+ - ocfs2: xattr: fix inlined xattr reflink
+ - iwlwifi: pcie: fix race in queue unmapping
+ - Btrfs: fix estale with btrfs send
+ - Btrfs: hold the tree mod lock in __tree_mod_log_rewind
+ - Btrfs: only do the tree_mod_log_free_eb if this is our last ref
+ - ext4: fix data offset overflow on 32-bit archs in
+ ext4_inline_data_fiemap()
+ - ext4: fix overflows in SEEK_HOLE, SEEK_DATA implementations
+ - ext4: fix data offset overflow in ext4_xattr_fiemap() on 32-bit archs
+ - ext4: fix overflow when counting used blocks on 32-bit architectures
+ - ext4: fix ext4_get_group_number()
+ - ext4: don't allow ext4_free_blocks() to fail due to ENOMEM
+ - [arm] 7767/1: let the ASID allocator handle suspended animation
+ - [arm] 7768/1: prevent risks of out-of-bound access in ASID allocator
+ - [arm] 7769/1: Cortex-A15: fix erratum 798181 implementation
+ - [arm] 7778/1: smp_twd: twd_update_frequency need be run on all online CPUs
+ - [armhf] dts: imx: cpus/cpu nodes dts updates
+ - [armhf] drivers/dma/pl330.c: fix locking in pl330_free_chan_resources()
+ - memcg, kmem: fix reference count handling on the error path
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.3
+ - cpufreq: Revert commit a66b2e to fix suspend/resume regression
+ - iio: Fix iio_channel_has_info
+ - iio: inkern: fix iio_convert_raw_to_processed_unlocked
+ - ALSA: seq-oss: Initialize MIDI clients asynchronously
+ - ALSA: Fix unlocked snd_pcm_stop() calls in various drivers
+ - libata-zpodd: Use ata_tf_init() to select the right device
+ - md/raid10: fix bug which causes all RAID10 reshapes to move no data.
+ - md/raid10: fix two bugs affecting RAID10 reshape.
+ - md/raid10: fix two problems with RAID10 resync. (Closes: #717681)
+ - mac80211: close AP_VLAN interfaces before unregistering all
+ - svcrpc: fix failures to handle -1 uid's
+ - svcrpc: fix handling of too-short rpc's
+ - drm/i915: Fix context sizes on HSW
+ - drm/i915: Only clear write-domains after a successful wait-seqno
+ - drm/gem: fix not to assign error value to gem name
+ - drm/nv50-/disp: Use output specific mask in interrupt (Closes: #717590)
+ - iommu/amd: Only unmap large pages from the first pte
+ - MIPS: Octeon: Don't clobber bootloader data structures.
+ - perf: Clone child context from parent context pmu
+ - perf: Remove WARN_ON_ONCE() check in __perf_event_enable() for valid
+ scenario
+ - perf: Fix perf_lock_task_context() vs RCU
+ - tracing: Protect ftrace_trace_arrays list in trace_events.c
+ - tracing: Fix race between deleting buffer and setting events
+
+ [ Arnaud Patard ]
+ * udeb: add ehci-pci to usb-modules
+
+ [ Ben Hutchings ]
+ * udeb: Add snd-cmi8328 and snd-scs1x to sound-modules, thanks to
+ Samuel Thibault (Closes: #717183)
+ * be2net: Fix to avoid hardware workaround when not needed
+ * iwlwifi: Update 3160 and 7260 support to work with production firmware
+ * rtlwifi: rtl8723ae: Fix typo in firmware names
+ * [x86] Change INTEL_MEI_ME back to a module (Closes: #717383)
+ * [armhf/armmp] Enable NET_CALXEDA_XGMAC as module (Closes: #717269)
+ * linux-source: Switch compression of tarball and patch to xz. Disable
+ compression of package (but use gzip, to keep old tools happy).
+ * linux-source: Install kernel config files for linux-image packages in
+ /usr/src/linux-config-$UPSTREAMVERSION directory
+ * ata: Disable SATA_INIC162X - this driver corrupts data and is not
+ expected to be fixed (Closes: #714295)
+ * writeback: Fix periodic writeback after fs mount
+ * sfc: Fix memory leak when discarding scattered packets
+ * neighbour: fix a race in neigh_destroy()
+ * virtio: support unlocked queue poll
+ * virtio_net: fix race in RX VQ processing
+ * vhost-net: fix use-after-free in vhost_net_flush
+ * tuntap: correctly linearize skb when zerocopy is used
+ * macvtap: correctly linearize skb when zerocopy is used
+ * ipv6: in case of link failure remove route directly instead of
+ letting it expire
+ * 9p: fix off by one causing access violations and memory corruption
+
+ [ Thorsten Glaser ]
+ * Update m68k configs (Closes: #717689):
+ - disable some functionality due to size constraints
+ - switch to using initrd
+ - drop all flavours; build a generic image that runs on
+ multiple subarchitectores (old Amiga, Atari, Macintosh tested;
+ old BVME6000, MVME147, MVME16x, new Apollo, Q40/Q60 untested)
+ - use gcc-4.8
+ - add patch to make Atari EtherNAT actually selectable
+ * nfs: Enable swap on NFS
+ * fs/nls: Enable Macintosh HFS+ codepage modules
+ * debian/control: Fix Vcs-Svn: use anonscm.debian.org
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 28 Jul 2013 00:33:32 +0100
+
+linux-tools (3.10-2) unstable; urgency=low
+
+ * linux-kbuild: Fix use of getline() in modpost wrapper (Closes: #717195)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 18 Jul 2013 04:02:11 +0100
+
+linux-tools (3.10-1) unstable; urgency=low
+
+ * New upstream release
+
+ [ Chris Boot ]
+ * Update modpost-symbol-prefix.patch for 3.10
+
+ [ Ben Hutchings ]
+ * debian/patches: Add DEP-3 headers (From, Subject, Forwarded) to all patches
+ * debian/copyright: Convert to machine-readable format (fka DEP-5)
+ * debian/copyright: Add explanation of indirect linking of perf to OpenSSL
+ * debian/rules.real: Remove support for pre-multiarch dpkg
+ * Update policy version to 3.9.4
+ - debian/rules: Implement build-arch and build-indep targets
+ * linux-kbuild: Update modpost wrapper for 3.10
+ - Implement the -T option
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 16 Jul 2013 13:29:22 +0100
+
+linux (3.10.1-1) unstable; urgency=low
+
+ * New upstream release: http://kernelnewbies.org/Linux_3.10
+ - netfilter: nf_nat_sip: fix mangling (Closes: #715822)
+ - drm/i915: Add HPD IRQ storm detection (Closes: #572537)
+ - ipv6: ip6_sk_dst_check() must not assume ipv6 dst (CVE-2013-2232)
+ - af_key: fix info leaks in notify messages (CVE-2013-2234)
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.1
+ - libceph: Fix NULL pointer dereference in auth client code (CVE-2013-1059)
+ - ceph: fix sleeping function called from invalid context.
+ - libceph: fix invalid unsigned->signed conversion for timespec encoding
+ - module: do percpu allocation after uniqueness check. No, really!
+ - charger-manager: Ensure event is not used as format string
+ - hpfs: better test for errors
+ - crypto: sanitize argument for format string
+ - MAINTAINERS: add stable_kernel_rules.txt to stable maintainer information
+ - futex: Take hugepages into account when generating futex_key
+ - tty: Reset itty for other pty
+ - Revert "serial: 8250_pci: add support for another kind of NetMos
+ Technology PCI 9835 Multi-I/O Controller"
+ - NFSv4.1 end back channel session draining
+ - nfsd4: fix decoding of compounds across page boundaries
+ - KVM: VMX: mark unusable segment as nonpresent
+ - SCSI: sd: Fix parsing of 'temporary ' cache mode prefix
+ - cpufreq: Fix cpufreq regression after suspend/resume
+ - Revert "memcg: avoid dangling reference count in creation failure"
+
+ [ Ben Hutchings ]
+ * cassini: Make missing firmware non-fatal (Closes: #714128)
+ * debian/patches: Add DEP-3 headers (From/Author, Subject/Description,
+ Forwarded/Origin) to all patches
+ * aufs: Add DEP-3 headers to generated/copied patches
+ * [rt] genpatch.py: Work with upstream patch series as well as git
+ - Fold convert-series into genpatch.py
+ * [rt] genpatch.py: Add Origin header to all patches
+ * debian/bin/check-patches.sh: Report missing DEP-3 headers
+ * alx: Use upstream minimal driver
+ - Update to 3.11-rc1
+ * [x86] efivars: Reenable 'paranoid' size check by default, as it should
+ no longer have false positives
+ * debian/patches: Reorder and group patches in series
+ * debian/rules.real: Remove support for pre-multiarch dpkg
+ * Update policy version to 3.9.4
+ - debian/control: Put xen-linux-system-* in the 'metapackages' section
+ * linux-source: Add bc to recommended packages (Closes: #715413)
+ * udeb: Add ath6kl_usb and mwifiex_usb to nic-wireless-modules
+ * udeb: Add pm80xx (previously pm8001) to scsi-extra-modules
+ * udeb: Add virtio_scsi to virtio-modules
+ * Set ABI to 1
+ * xen/blkback: Check device permissions before allowing OP_DISCARD
+ (CVE-2013-2140)
+ * udeb: Remove obsolete and unsupported drivers and filesystems
+ - Remove ppa from scsi-modules
+ - Remove floppy-modules, irda-modules, parport-modules, plip-modules,
+ qnx4-modules, reiserfs-modules, ufs-modules
+ * [x86] efivars: Re-enable pstore support by default. It can be disabled
+ by setting module parameter pstore_disable=Y.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 16 Jul 2013 02:06:53 +0100
+
+linux (3.10~rc7-1~exp1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [armhf/armmp] Add EMAC ethernet driver found on Allwinner A10 SoCs,
+ thanks to Niall Walsh (Closes: #711998)
+ - Add MDIO bus driver for the Allwinner EMAC
+ - Add EMAC controller node to sun4i DTSI
+ - cubieboard: Enable ethernet (EMAC) support in dts
+ - Add EMAC Controller to Hackberry dt
+ * [x86] cpufreq: Enable X86_INTEL_PSTATE (Closes: #712062)
+ * debian/control: Add Homepage field
+ * debian/watch: Add watch file and update script
+ * misc/bmp085: Enable building as a module
+ * misc: Enable BMP085_I2C as module
+ * team: Enable NET_TEAM_MODE_RANDOM as module
+ * 8021q: Enable VLAN_8021Q_MVRP
+ * batman: Enable BATMAN_ADV_NC
+ * netlink: Enable NETLINK_MMAP, NETLINK_DIAG [!armel/{iop32x,ixp4xx,orion5x}]
+ * sctp: Enable SCTP_COOKIE_HMAC_SHA1
+ * tipc: Enable TIPC_MEDIA_IB
+ * [x86] cpufreq: Enable X86_AMD_FREQ_SENSITIVITY as module
+ * [x86] i2c: Enable I2C_ISMT, I2C_DESIGNWARE_PCI as modules
+ * [x86] mouse: Enable MOUSE_CYAPA as modules
+ * [armel/{iop32x,ixp4xx,orion5x}] Disable features to reduce kernel size
+ - Disable KSM, YAMA
+ - [armel/orion5x] Disable FTRACE
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 24 Jun 2013 14:55:23 +0100
+
+linux (3.10~rc5-1~exp1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [x86] Enable HYPERVISOR_GUEST
+ * udeb: Clean up configuration:
+ - Move i2c-algo-bit to i2c-modules
+ - Remove redundant control file overrides
+ - [s390] Use symlinks to follow s390x configuration
+ - [sparc64] Use symlinks to follow sparc configuration
+ - Only list the 'new' firewire modules in firewire-core-modules
+ - Remove obsolete eth1394 and firewire-core-modules dependency from
+ nic-modules
+ - Move ide-modules and ide-core-modules into ia64 configuration
+ - [powerpc,x86] Fold nic-extra-modules into nic-modules
+ * iwlegacy: Use consistent condition for il_pm_ops (fixes FTBFS on ia64)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 11 Jun 2013 04:44:05 +0100
+
+linux (3.10~rc4-1~exp1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * aufs: Update to aufs3.x-rcN-20130520
+ * alx: Update VLAN tag handling for 3.10
+ * md: Enable BCACHE as module
+ * net/usb: Enable USB_RTL8152 as module
+ - udeb: Add r8152 to nic-usb-modules
+ * rt2800usb: Enable RT2800USB_RT55XX
+ * net/wireless: Enable RTL8188EE
+ - udeb: Add rtl8188ee to nic-wireless-modules
+ * linux-image: Restore package date (in ISO format) to utsname version
+ string ('uname -v' output)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 03 Jun 2013 02:43:51 +0100
+
+linux (3.9.8-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.9.7
+ - b43: stop format string leaking into error msgs (CVE-2013-2852)
+ - ACPI / video: Do not bind to device objects with a scan handler
+ - libceph: must hold mutex for reset_changed_osds()
+ - ceph: ceph_pagelist_append might sleep while atomic
+ - rbd: don't destroy ceph_opts in rbd_add()
+ - Bluetooth: Fix missing length checks for L2CAP signalling PDUs
+ - kmsg: honor dmesg_restrict sysctl on /dev/kmsg
+ - memcg: don't initialize kmem-cache destroying work for root caches
+ - md/raid1: consider WRITE as successful only if at least one non-Faulty
+ and non-rebuilding drive completed it.
+ - md/raid1,5,10: Disable WRITE SAME until a recovery strategy is in place
+ - [x86] Modify UEFI anti-bricking code
+ - powerpc: Fix stack overflow crash in resume_kernel when ftracing
+ - USB: pl2303: fix device initialisation at open
+ - USB: f81232: fix device initialisation at open
+ - USB: spcp8x5: fix device initialisation at open
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.9.8
+ - ARM: 7752/1: errata: LoUIS bit field in CLIDR register is incorrect
+ - clk: remove notifier from list before freeing it
+ - [hppa] make interrupt and interruption stack allocation reentrant
+ - ACPI / dock: Take ACPI scan lock in write_undock()
+ - net: fec: fix kernel oops when plug/unplug cable many times
+ - tcp: fix tcp_md5_hash_skb_data()
+ - net/802/mrp: fix lockdep splat
+ - ipv6: fix possible crashes in ip6_cork_release()
+ - r8169: fix offloaded tx checksum for small packets.
+ - xfrm: properly handle invalid states as an error
+ - ip_tunnel: fix kernel panic with icmp_dest_unreach
+ - net: Block MSG_CMSG_COMPAT in send(m)msg and recv(m)msg
+ - net: force a reload of first item in hlist_nulls_for_each_entry_rcu
+ - vhost_net: clear msg.control for non-zerocopy case during tx
+ - net: sctp: fix NULL pointer dereference in socket destruction
+ - team: check return value of team_get_port_by_index_rcu() for NULL
+ - team: move add to port list before port enablement
+ - l2tp: Fix PPP header erasure and memory leak
+ - sctp: fully initialize sctp_outq in sctp_outq_init
+ - macvtap: set transport header before passing skb to lower device
+ - tuntap: set transport header before passing it to kernel
+ - packet: set transport header before doing xmit
+ - netback: set transport header before passing it to kernel
+ - net_sched: better precise estimation on packet length for untrusted
+ packets
+ - firmware loader: fix use-after-free by double abort
+ - target/iscsi: don't corrupt bh_count in iscsit_stop_time2retain_timer()
+ - rbd: use the correct length for format 2 object names
+ - perf: Fix perf mmap bugs
+ - perf: Fix mmap() accounting hole
+
+ [ Ben Hutchings ]
+ * yama: Disable ptrace restrictions by default, and change boot message
+ to indicate this (Closes: #712740)
+ * fanotify: info leak in copy_event_to_user() (CVE-2013-2148)
+ * drivers/cdrom/cdrom.c: use kzalloc() for failing hardware (CVE-2013-2164)
+ * block: do not pass disk names as format strings (CVE-2013-2851)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 29 Jun 2013 18:44:21 +0100
+
+linux (3.9.6-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.9.6
+ - xhci - correct comp_mode_recovery_timer on return from hibernate
+ - usb: musb: make use_sg flag URB specific
+ - USB: keyspan: fix bogus array index
+ - [arm] 7747/1: pcpu: ensure __my_cpu_offset cannot be re-ordered across
+ barrier()
+ - hpfs: fix warnings when the filesystem fills up
+ - cifs: fix off-by-one bug in build_unc_path_to_root
+ - ecryptfs: fixed msync to flush data
+ - eCryptfs: Check return of filemap_write_and_wait during fsync
+ - hwmon: (adm1021) Strengthen chip detection for ADM1021, LM84 and MAX1617
+ - drm: fix a use-after-free when GPU acceleration disabled
+ - [powerpc] pseries: Force 32 bit MSIs for devices that require it
+ - [powerpc] pseries: Make 32-bit MSI quirk work on systems lacking firmware
+ support
+
+ [ Ben Hutchings ]
+ * [armel/orion5x] Enable EXPERT; disable FIPS, OABI_COMPAT, PCI_QUIRKS,
+ VGA_ARB to reduce kernel size (really fixes FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 15 Jun 2013 04:53:13 +0100
+
+linux (3.9.5-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.9.5
+ - [arm] 7723/1: crypto: sha1-armv4-large.S: fix SP handling
+ - mac80211: use just spin_lock() in ieee80211_get_tkip_p2k()
+ - USB: cxacru: potential underflow in cxacru_cm_get_array()
+ - TTY: Fix tty miss restart after we turn off flow-control
+ (Closes: #465823)
+ - cifs: only set ops for inodes in I_NEW state
+ - drivers/char/random.c: fix priming of last_data
+ - random: fix accounting race condition with lockless irq entropy_count
+ update
+ - fat: fix possible overflow for fat_clusters
+ - tg3: Fix data corruption on 5725 with TSO
+ - ocfs2: goto out_unlock if ocfs2_get_clusters_nocache() failed in
+ ocfs2_fiemap()
+ - mm compaction: fix of improper cache flush in migration code
+ - klist: del waiter from klist_remove_waiters before wakeup waitting process
+ - wait: fix false timeouts when using wait_event_timeout()
+ - nilfs2: fix issue of nilfs_set_page_dirty() for page at EOF boundary
+ - mm: mmu_notifier: re-fix freed page still mapped in secondary MMU
+ - mm: memcg: remove incorrect VM_BUG_ON for swap cache pages in uncharge
+ - mm/pagewalk.c: walk_page_range should avoid VM_PFNMAP areas
+ - mm/THP: use pmd_populate() to update the pmd with pgtable_t pointer
+ - module: don't unlink the module until we've removed all exposure.
+ - xfs: kill suid/sgid through the truncate path.
+ - SUNRPC: Prevent an rpc_task wakeup race
+ - cifs: fix potential buffer overrun when composing a new options string
+ - cgroup: initialize xattr before calling d_instantiate()
+ - [powerpc] 32bit:Store temporary result in r0 instead of r8
+ - [powerpc] tm: Fix userspace stack corruption on signal delivery for active
+ transactions
+ - [powerpc] tm: Abort on emulation and alignment faults
+ - iscsi-target: fix heap buffer overflow on error
+ - KVM: fix sil/dil/bpl/spl in the mod/rm fields
+ - reiserfs: fix deadlock with nfs racing on create/lookup
+ - reiserfs: fix problems with chowning setuid file w/ xattrs
+ - reiserfs: fix spurious multiple-fill in reiserfs_readdir_dentry
+ - jfs: fix a couple races
+ - IB/iser: Return error to upper layers on EAGAIN registration failures
+ - fuse: fix readdirplus Oops in fuse_dentry_revalidate
+ - target: Re-instate sess_wait_list for target_wait_for_sess_cmds
+ - xen-netback: Fix regressions caused by fix for CVE-2013-0216
+ + coalesce slots in TX path and fix regressions
+ + don't disconnect frontend when seeing oversize packet
+
+ [ Ben Hutchings ]
+ * [powerpcspe] Remove installer udebs (really fixes FTBFS)
+ * [s390] Add pgste to ptep_modify_prot_start()
+ * [s390] Enable PCI, PCI and USB drivers
+ * [powerpc] Fix build error in stable/3.9
+ * [armel/iop32x,armel/ixp4xx] Disable OABI_COMPAT, PCI_QUIRKS to reduce
+ kernel size (fixes FTBFS)
+ * ath9k: Disable PowerSave by default (Closes: #695968)
+ * [i386] udeb: Add viafb to fb-modules (Closes: #705788)
+ - [i386] udeb: Move i2c-algo-bit to i2c-modules and make fb-modules
+ depend on it
+ - viafb: Autoload on OLPC XO 1.5 only
+ * fs: Enable F2FS_FS as module (Closes: #711342)
+ * iio,HID: Enable IIO, HID_SENSOR_HUB, HID_SENSOR_ACCEL_3D,
+ HID_SENSOR_ALS, HID_SENSOR_GYRO_3D, HID_SENSOR_MAGNETOMETER_3D
+ as modules (Closes: #711690)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 10 Jun 2013 02:41:53 +0100
+
+linux-tools (3.9.4-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 03 Jun 2013 13:45:52 +0100
+
+linux (3.9.4-1) unstable; urgency=low
+
+ * New upstream release: http://kernelnewbies.org/Linux_3.9
+ - ALSA: hda - Add generic parser support to Analog Device codec driver
+ (Closes: #659033)
+ - Input: add support for Cypress PS/2 Trackpads (Closes: #703607)
+ - [armel] media: VIDEO_ZORAN is disabled as it requires virt_to_bus()
+ - [armhf/omap] OMAP_MBOX_FWK and TIDSPBRIDGE is disabled as they are
+ not yet compatible with ARM multiplatform
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.9.1
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.9.2
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.9.3
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.9.4
+
+ [ Ben Hutchings ]
+ * [rt] Disable until it is updated for Linux 3.9 or later
+ * Build-Depend on bc, needed to build kernel/timeconst.h
+ * [x86] Enable VMWARE_VMCI, VSOCKETS, VMWARE_VMCI_VSOCKETS as modules
+ (Closes: #707676)
+ * README.Debian: Correct reference to Berkeley Database development package
+ * aufs: Update to aufs3.9-20130506
+ * [powerpcspe] Prevent building uImage with missing mkimage, thanks to
+ Roland Stigge (Closes: #708094)
+ * udeb: Fix yet more configuration errors causing FTBFS:
+ - [powerpc/powerpc64] Replace ibmvscsic with ibmvscsi in scsi-modules
+ - [ppc64] Use symlinks to follow powerpc/powerpc64 configuration
+ - [powerpcspe] Use symlinks to follow powerpc configuration
+ (Closes: #708336, #708662)
+ - Add raid6_pq to md-modules, and make btrfs-modules depend on it
+ * netfilter: Enable NETFILTER_XT_MATCH_BPF, NETFILTER_XT_MATCH_CONNLABEL
+ as modules
+ * bridge: Enable BRIDGE_VLAN_FILTERING
+ * batman: Enable BATMAN_ADV_DAT
+ * nfc: Enable NFC_LLCP
+ * can: Enable CAN_PEAK_USB, CAN_8DEV_USB as modules
+ * hci_uart: Enable BT_HCIUART_3WIRE
+ * [amd64,powerpc/powerpc64,ppc64] block: Enable BLK_DEV_RSXX as module
+ * SCSI: Enable SCSI_CHELSIO_FCOE, SCSI_MPT3SAS, SCSI_UFSHCD as modules
+ - udeb: Add csiostor, mpt3sas, ufshcd, ufshcd-pci to scsi-extra-modules
+ * md: Enable DM_CACHE as module
+ * net/usb: Enable USB_NET_AX88179_178A as module (Closes: #704129)
+ - udeb: Add ax88179_178a to nic-usb-modules
+ * net/wireless: Enable AR5523 (Closes: #701777), IWLMVM,
+ RTL8723AE (Closes: #708348), WIL6210 as modules
+ - udeb: Add ar5523, iwldvm, iwlmvm, rtl8723ae, wil6210 to
+ nic-wireless-modules
+ * serial: Enable SERIAL_RP2 as module
+ - udeb: Add rp2 to serial-modules
+ * hw_random: Enable HW_RANDOM_TPM as module
+ * [x86] watchdog: Enable IE6XX_WDT, VIA_WDT as modules
+ * media/usb: Enable DVB_USB_AZ6007, USB_GSPCA_JL2005BCD as modules
+ * stk1160: Enable VIDEO_STK1160_AC97
+ * ivtv: Enable VIDEO_IVTV_ALSA as module
+ * radio: Enable RADIO_SHARK, RADIO_SHARK2, USB_KEENE, USB_MA901 as modules
+ * hda: Enable SND_HDA_CODEC_CA0132_DSP
+ * sound/firewire: Enable SND_SCS1X as module
+ * hid-holtek: Enable HOLTEK_FF
+ * hid: Enable HID_ICADE, HID_PS3REMOTE, HID_STEELSERIES, HID_THINGM as
+ modules
+ * usb/serial: Enable USB_SERIAL_F81232, USB_SERIAL_METRO, USB_SERIAL_QT2,
+ USB_SERIAL_XSENS_MT, USB_SERIAL_ZTE as modules
+ - udeb: Add f81232, quatech2, zte_ev to usb-serial-modules
+ * infiniband: Enable INFINIBAND_OCRDMA as module
+ * [x86] vfio: Enable VFIO, VFIO_PCI as modules
+ * [x86] hv: Enable HYPERV_BALLOON as module
+ * security: Enable SECURITY_YAMA, SECURITY_YAMA_STACKED (Closes: #704750)
+ * iscsi-target: fix heap buffer overflow on error (CVE-2013-2850)
+
+ [ Aurelien Jarno ]
+ * [mips] Enable KEXEC.
+
+ [ Arnaud Patard ]
+ * [armhf] Add armmp flavour
+ * [armhf] backport usb support for imx53 through chipidea and usb phy nop fixes
+ * [armhf] backport armada 370/xp thermal support
+ * [armhf] fix hard freeze when mvneta is used as module
+ * [arm] backport ehci split patches for omap and orion
+ * [armel] enable thermal
+ * [armel] kirkwood: enable more DT configs, thermal, POWER_RESET_*
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 01 Jun 2013 23:13:01 +0100
+
+linux (3.8.13-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.13
+ - autofs - remove autofs dentry mount check
+ - hugetlbfs: fix mmap failure in unaligned size request
+ (fixes regression in 3.4)
+ - perf/x86/intel/lbr: Fix LBR filter
+ - perf/x86/intel/lbr: Demand proper privileges for PERF_SAMPLE_BRANCH_KERNEL
+ - ipvs: ip_vs_sip_fill_param() BUG: bad check of return value
+ - netfilter: ctnetlink: don't permit ct creation with random tuple
+ - ext4: add check for inodes_count overflow in new resize ioctl
+ - r8169: fix 8168evl frame padding.
+ - drm/prime: keep a reference from the handle to exported dma-buf (v6)
+ - Btrfs: compare relevant parts of delayed tree refs
+ - Btrfs: fix extent logging with O_DIRECT into prealloc
+ - kernel/audit_tree.c: tree will leak memory when failure occurs in
+ audit_trim_trees()
+
+ [ Ben Hutchings ]
+ * udeb: Fix more configuration errors causing FTBFS:
+ - [m68k,mips,mipsel,ppc64,sparc64] Add crc-modules as common dependency
+ of btrfs-modules and xfs-modules (and others)
+ - [powerpc] Add llc to nic-shared-modules
+ * Bump ABI to 2
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 16 May 2013 00:28:04 +0100
+
+linux (3.8.12-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.12
+ - [powerpc] spufs: Initialise inode->i_ino in spufs_new_inode()
+ (possibly fixes: #707175)
+ - iwlwifi: fix freeing uninitialized pointer
+ - tty: fix up atime/mtime mess, take three
+ - sysfs: fix use after free in case of concurrent read/write and readdir
+ - [ia64] Fix initialization of CMCI/CMCP interrupts
+ - [ia64] Wrong asm register contraints in the futex implementation
+ (Closes: #702641)
+ - [ia64] Wrong asm register contraints in the kvm implementation
+ (Closes: #702639)
+ - fs/fscache/stats.c: fix memory leak
+ - hrtimer: Fix ktime_add_ns() overflow on 32bit architectures
+ - swap: redirty page if page write fails on swap file
+ - mm: swap: mark swap pages writeback before queueing for direct IO
+ - ACPI: Fix wrong parameter passed to memblock_reserve
+ - cgroup: fix an off-by-one bug which may trigger BUG_ON()
+ - cgroup: fix broken file xattrs
+ - clockevents: Set dummy handler on CPU_DEAD shutdown (Closes: #700333)
+ - inotify: invalid mask should return a error number but not set it
+ (fixes regression in 3.8.1)
+ - exec: do not abuse ->cred_guard_mutex in threadgroup_lock()
+ - md: bad block list should default to disabled.
+ - MD: ignore discard request for hard disks of hybid raid1/raid10 array
+ (fixes regression in 3.6)
+ - nfsd4: don't close read-write opens too soon
+ - wireless: regulatory: fix channel disabling race condition
+ - ext4/jbd2: don't wait (forever) for stale tid caused by wraparound
+ - jbd2: fix race between jbd2_journal_remove_checkpoint and
+ ->j_commit_callback
+ - ext4: fix journal callback list traversal
+ - ext4: fix big-endian bug in metadata checksum calculations
+ - [x86] KVM: X86 emulator: fix source operand decoding for 8bit mov[zs]x
+ instructions
+
+ [ Ben Hutchings ]
+ * [rt] Remove xen-linux-system packages and references to Xen support,
+ as Xen does not support real-time scheduling
+ * udeb: Fix configuration errors causing FTBFS:
+ - [armhf/vexpress] Remove ipv6-modules; ipv6 is now built-in
+ - [mipsel/sb1-bcm91250a,sparc] Add crc-modules as common dependency of
+ btrfs-modules and xfs-modules (and others)
+ - [powerpc] Add nic-shared-modules as common dependency of nic-modules
+ and nic-extra-modules
+ - Unify module list for nic-shared-modules across architectures [!m68k]
+ * [rt] Update to 3.8.11-rt8:
+ - time/timekeeping: shadow tk->cycle_last together with clock->cycle_last
+ - sched/workqueue: Only wake up idle workers if not blocked on sleeping
+ spin lock
+ * aufs: Update to aufs3.8-20130506
+ - for linux-3.7, btrfs limits the link count explicitly
+ - for linux-3.6, push mnt_want_write() outside of i_mutex
+ - possible bugfix, make sure the target branch is upper
+ - possible bugfix, error handling in reopen_nondir()
+ - new copyup implementation
+ - pin the branch dir
+ - convert the plink list into hlist
+ * linux-doc: Include aufs documentation
+ * [x86] zsmalloc: Change to built-in, as it can no longer be modular
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 10 May 2013 04:46:36 +0100
+
+linux-tools (3.8.11-1) unstable; urgency=low
+
+ * New upstream stable update
+
+ [ Ben Hutchings ]
+ * Upload to unstable (Closes: #707023)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 07 May 2013 02:11:16 +0100
+
+linux (3.8.11-1) unstable; urgency=high
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.6
+ - sysfs: fix race between readdir and lseek
+ - sysfs: handle failure path correctly for readdir()
+ - rtlwifi: usb: add missing freeing of skbuff
+ - b43: A fix for DMA transmission sequence errors
+ - tg3: fix length overflow in VPD firmware parsing (CVE-2013-1929)
+ - xen-blkback: fix dispatch_rw_block_io() error path
+ - net/irda: add missing error path release_sock call
+ - usb: xhci: Fix TRB transfer length macro used for Event TRB.
+ - Btrfs: fix locking on ROOT_REPLACE operations in tree mod log
+ - Btrfs: fix race between mmap writes and compression
+ - USB: serial: fix use-after-free in TIOCMIWAIT
+ - loop: prevent bdev freeing while device in use
+ - virtio: console: add locking around c_ovq operations
+ - nfsd4: reject "negative" acl lengths
+ - Btrfs: fix space leak when we fail to reserve metadata space
+ - net: remove a WARN_ON() in net_enable_timestamp()
+ - 8021q: fix a potential use-after-free
+ - unix: fix a race condition in unix_release()
+ - atl1e: drop pci-msi support because of packet corruption
+ (possibly fixes: #577747)
+ - ipv6: fix bad free of addrconf_init_net
+ - ipv6: don't accept multicast traffic with scope 0
+ - ipv6: don't accept node local multicast traffic from the wire
+ - pch_gbe: fix ip_summed checksum reporting on rx
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.7
+ - drm/nouveau: fix handling empty channel list in ioctl's
+ - drm/i915: Be sure to turn hsync/vsync back on at crt enable (v2)
+ (fixes regression in 3.8.3)
+ - drm: correctly restore mappings if drm_open fails
+ - mm: prevent mmap_cache race in find_vma()
+ - mwifiex: limit channel number not to overflow memory
+ - spinlocks and preemption points need to be at least compiler barriers
+ - crypto: gcm - fix assumption that assoc has one segment
+ - NFSv4/4.1: Fix bugs in nfs4[01]_walk_client_list
+ - vfio-pci: Fix possible integer overflow
+ - can: gw: use kmem_cache_free() instead of kfree()
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.8
+ - ipc: set msg back to -EAGAIN if copy wasn't performed
+ - GFS2: Fix unlock of fcntl locks during withdrawn state
+ - cifs: Allow passwords which begin with a delimitor (fixes
+ regression in 3.8)
+ - [i386] Fix possible incomplete TLB invalidate with PAE pagetables
+ - sched_clock: Prevent 64bit inatomicity on 32bit systems
+ - [x86] mm, paravirt: Fix vmalloc_fault oops during lazy MMU updates
+ - tty: don't deadlock while flushing workqueue
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.9
+ - [powerpc] add a missing label in resume_kernel
+ - [powerpc] kvm/powerpc/e500mc: fix tlb invalidation on cpu migration
+ - kthread: Prevent unpark race which puts threads on the wrong cpu
+ - hrtimer: Don't reinitialize a cpu_base lock on CPU_UP
+ - hugetlbfs: add swap entry check in follow_hugetlb_page()
+ - kernel/signal.c: stop info leak via the tkill and the tgkill syscalls
+ - hfsplus: fix potential overflow in hfsplus_file_truncate()
+ - md: raid1,10: Handle REQ_WRITE_SAME flag in write bios
+ - [x86] KVM: Allow cross page reads and writes from cached translations.
+ (fixes regression in fix for CVE-2013-1796)
+ - hsched: Convert BUG_ON()s in try_to_wake_up_local() to WARN_ON_ONCE()s
+ - [armel] Fix kexec by setting outer_cache.inv_all for Feroceon
+ - ath9k_htc: accept 1.x firmware newer than 1.3
+ - mac80211: fix cfg80211 interaction on auth/assoc request
+ - crypto: algif - suppress sending source address information in recvmsg
+ (CVE-2013-3076)
+ - vm: add and use vm_iomap_memory() helper function
+ - Btrfs: make sure nbytes are right after log replay
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.10
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.11
+ - TTY: do not update atime/mtime on read/write
+ - TTY: fix atime/mtime regression
+ - [sparc] sparc64: Fix race in TLB batch processing.
+ - atm: update msg_namelen in vcc_recvmsg() (CVE-2013-3222)
+ - ax25: fix info leak via msg_name in ax25_recvmsg() (CVE-2013-3223)
+ - Bluetooth: fix possible info leak in bt_sock_recvmsg() (CVE-2013-3224)
+ - Bluetooth: RFCOMM - Fix missing msg_namelen update in
+ rfcomm_sock_recvmsg() (CVE-2013-3225)
+ - Bluetooth: SCO - Fix missing msg_namelen update in sco_sock_recvmsg()
+ - caif: Fix missing msg_namelen update in caif_seqpkt_recvmsg()
+ (CVE-2013-3227)
+ - irda: Fix missing msg_namelen update in irda_recvmsg_dgram()
+ (CVE-2013-3228)
+ - [s390] iucv: Fix missing msg_namelen update in iucv_sock_recvmsg()
+ (CVE-2013-3229)
+ - l2tp: fix info leak in l2tp_ip6_recvmsg()
+ - llc: Fix missing msg_namelen update in llc_ui_recvmsg() (CVE-2013-3231)
+ - netrom: fix info leak via msg_name in nr_recvmsg()
+ - NFC: llcp: fix info leaks via msg_name in llcp_sock_recvmsg()
+ - rose: fix info leak via msg_name in rose_recvmsg() (CVE-2013-3234)
+ - tipc: fix info leaks via msg_name in recv_msg/recv_stream
+ (CVE-2013-3235)
+ - atl1e: limit gso segment size to prevent generation of wrong ip length
+ fields (Closes: #565404)
+ - af_unix: If we don't care about credentials coallesce all messages
+ - ipv6/tcp: Stop processing ICMPv6 redirect messages
+ - rtnetlink: Call nlmsg_parse() with correct header length
+ - tcp: incoming connections might use wrong route under synflood
+ - tcp: Reallocate headroom if it would overflow csum_start
+ - net: cdc_mbim: remove bogus sizeof()
+ - net: fix incorrect credentials passing (CVE-2013-1979)
+ - net: drop dst before queueing fragments
+
+ [ Ben Hutchings ]
+ * [rt] Update to 3.8.10-rt6
+ * aufs: Update to aufs3.8-20130325
+ - ftruncate() supports sb_{start,end}_write()
+ - replace mnt_drop_write_file() by __mnt_drop_write()
+ - support for vfs_truncate()
+ * udeb: Move modules and adjust dependencies to avoid duplicates
+ (Closes: #706646)
+ - Move crc16 to crc-modules; make ext4-modules and nic-usb-modules depend
+ on it
+ - Make xfs-modules depends on crc-modules
+ - Move pps_core and ptp to nic-common-modules or nic-modules as appropriate
+ * udeb: Merge redundant configuration for ext{2,3} dependency on mbcache
+ * Set ABI to 1
+ * bug script: Remove broken sound functions (Closes: #705619)
+ * [i386/486] udeb: Add lxfb to fb-modules (Closes: #705780)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 04 May 2013 21:45:23 +0100
+
+linux (3.8.5-1~experimental.1) experimental; urgency=high
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.4
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.5
+
+ [ Ben Hutchings ]
+ * signal: Fix use of missing sa_restorer field (build regression
+ introduced by fix for CVE-2013-0914)
+ * udeb: Add hid-generic, hid-holtek-kbd, hid-lenovo-tpkbd,
+ hid-roccat-isku, hid-roccat-lua, hid-roccat-savu to input-modules
+ * cdc_ncm,cdc_mbim: Use NCM by default
+ * [rt] Update to 3.8.4-rt2 and reenable
+ * [rt] wireless: orinoco_usb is BROKEN
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 31 Mar 2013 07:35:31 +0100
+
+linux (3.8.3-1~experimental.1) experimental; urgency=high
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.3
+
+ [ Ben Hutchings ]
+ * aufs: Update to aufs3.8-20130311
+ * USB: cdc-wdm: fix buffer overflow (CVE-2013-1860)
+ * signal: always clear sa_restorer on execve (CVE-2013-0914)
+ * ext3: Fix format string issues (CVE-2013-1848)
+ * net/sctp: Validate parameter size for SCTP_GET_ASSOC_STATS (CVE-2013-1828)
+ * bridge: fix mdb info leaks
+ * rtnl: fix info leak on RTM_GETLINK request for VF devices
+ * dcbnl: fix various netlink info leaks
+ * ALSA: seq: Fix missing error handling in snd_seq_timer_open()
+
+ [ Ian Campbell ]
+ * arm: correct path to DTB files. Patch from Nobuhiro Iwamatsu.
+ (Closes: #703082)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 19 Mar 2013 04:52:46 +0000
+
+linux-tools (3.8.2-1~experimental.1) experimental; urgency=low
+
+ * New upstream release (Closes: #702450)
+
+ [ Ben Hutchings ]
+ * linux-tools: Install bash_completion script for perf with a version-
+ dependent name (Closes: #701790)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 07 Mar 2013 05:32:40 +0000
+
+linux (3.8.2-1~experimental.1) experimental; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.1
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.2
+
+ [ Ben Hutchings ]
+ * linux-image: Increase minimum version of initramfs-tools to 0.110~
+ which copes with the recently renamed EHCI and NFS modules
+ * genorig: Accept xz-compressed upstream tarballs and patches,
+ thanks to Sedat Dilek
+ * net: Enable USB_NET_CDC_MBIM as module (Closes: #701869)
+ * mfd,mmc,memstick: Enable MFD_RTSX_PCI, MMC_REALTEK_PCI and
+ MEMSTICK_REALTEK_PCI as modules, replacing RTS_PSTOR (Closes: #702108)
+ * [mips,mipsel] Add dependencies for HAVE_ARCH_TRANSPARENT_HUGEPAGE
+ (fixes FTBFS)
+
+ [ Aurelien Jarno ]
+ * [mips/octeon] Change HW_RANDOM and HW_RANDOM_OCTEON to modules.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 07 Mar 2013 04:00:04 +0000
+
+linux (3.8-1~experimental.1) experimental; urgency=low
+
+ * New upstream release: http://kernelnewbies.org/Linux_3.8
+ - pidns: Support unsharing the pid namespace. (Closes: #595920)
+ - fsnotify: Rework locking and reference counting (Closes: #602966)
+
+ [ Ben Hutchings ]
+ * aufs: Update to aufs3.x-rcN-20130204
+ * sock_diag: Fix out-of-bounds access to sock_diag_handlers[]
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 25 Feb 2013 05:29:53 +0000
+
+linux (3.7.8-1~experimental.1) experimental; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.7.4
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.7.5
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.7.6
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.7.7
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.7.8
+
+ [ Ben Hutchings ]
+ * Add powerpcspe architecture, thanks to Roland Stigge (Closes: #693042)
+ * aufs: Hide CONFIG_AUFS_PROC_MAP, which requires a patch we don't apply
+ (Closes: #693332)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 15 Feb 2013 00:42:03 +0000
+
+linux (3.7.3-1~experimental.1) experimental; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.7.2
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.7.3
+
+ [ Ben Hutchings ]
+ * [ia64] nouveau: Disable another bit of ACPI support (fixes FTBFS)
+ * [armhf/omap] Make OMAP_DMA built-in (fixes FTBFS)
+ * ath6kl: Do not use virt_addr_valid() (fixes FTBFS on mips,mipsel)
+ * [armel/iop32x,armel/ixp4xx,armel/orion5x] Make IPV6 a module again due
+ to kernel size limit (fixes FTBFS)
+ * ALSA: usb-audio: Avoid autopm calls after disconnection; Fix missing
+ autopm for MIDI input (Closes: #664068)
+ * [!x86] Disable ZRAM, ZSMALLOC as modules (Reopens: #676779), as they
+ really aren't portable yet.
+ * udeb: Remove ipv6-modules on all architectures/flavours where it's
+ now built-in (fixes FTBFS)
+
+ [ Ian Campbell ]
+ * [x86/xen] Update microcode driver to use new API.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 18 Jan 2013 01:36:15 +0000
+
+linux (3.7.1-1~experimental.2) experimental; urgency=low
+
+ [ Ben Hutchings ]
+ * linux-headers-common: Include the include/uapi/asm-generic directory
+ (Closes: #696664)
+ * linux-headers-common: Do not use link-vmlinux.sh when cleaning external
+ modules (Closes: #696775)
+ * Enable ZRAM, ZSMALLOC as modules on all architectures (Closes: #676779)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 05 Jan 2013 17:48:05 +0000
+
+linux-tools (3.7.1-1~experimental.1) experimental; urgency=low
+
+ * New upstream release
+
+ [ Ben Hutchings ]
+ * [amd64] linux-tools: Enable optimisations and special-casing of x86_64
+ (Closes: #694759)
+
+ [ Uwe Kleine-König ]
+ * linux-kbuild: debian/control: Use Section: kernel (Closes: #545017)
+
+ -- Jonathan Nieder <jrnieder@gmail.com> Fri, 28 Dec 2012 09:29:53 -0800
+
+linux (3.7.1-1~experimental.1) experimental; urgency=low
+
+ * New upstream release: http://kernelnewbies.org/Linux_3.7
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.7.1
+
+ [ maximilian attems ]
+ * Enable WIZNET_W5100, WIZNET_W5300, AMD_PHY, BCM87XX_PHY.
+
+ [ Ben Hutchings ]
+ * aufs: Update to aufs3.x-rcN-20121210
+ * [rt] Disable until it is updated for Linux 3.7 or later
+ * Make gcc-4.7 the default compiler
+ * [mips,mipsel,sparc] media/parpot: Disable VIDEO_PMS in all
+ configurations where the other parport video drivers are disabled
+ * [x86] fs: Re-enable PSTORE_RAM (formerly known as RAMOOPS) as module
+ * net/wireless: Enable WL_TI; re-enable WL1251 and WL12XX as modules
+ * staging: Enable RTLLIB; re-enable RTL8192E as module
+ * media: Enable IR_TTUSBIR as module, replacing LIRC_TTUSBIR
+ * media: Enable VIDEO_STK1160 as module, replacing EASYCAP
+ * [armhf/mx5] Update configuration:
+ - Enable MACH_IMX51_DT, replacing MACH_MX51_EFIKAMX (but not fully
+ working in this kernel version)
+ - Enable SOC_IMX53, replacing MACH_MX53_{EVK,SMD,LOCO,ARD}
+ - Re-enable MFD_MC13XXX_SPI (formerly included in MFD_MC13XXX)
+ - Enable PWM and re-enable PWM_IMX (formerly known as MXC_PWM)
+ * [i386] comedi: Re-enable COMEDI_ISA_DRIVERS
+ * [i386,alpha] media/radio: Enable V4L_RADIO_ISA_DRIVERS and re-enable
+ the ISA drivers
+ * PCI: Enable PCI_REALLOC_ENABLE_AUTO
+ * [x86] PCI: Enable PCI_PRI, PCI_PASID, PCI_IOAPIC
+ * [amd64] ACPI: Enable ACPI_BGRT
+ * net: Enable INET_UDP_DIAG, NET_IPVTI, PACKET_DIAG, UNIX_DIAG as modules
+ * netfilter: Enable NF_NAT_IPV6, IP6_NF_TARGET_MASQUERADE, IP6_NF_TARGET_NPT,
+ NF_CT_NETLINK_HELPER as modules
+ * net/sched: Enable NET_EMATCH_CANID, NET_EMATCH_IPSET as modules
+ * can: Enable CAN_PEAK_PCIEC, CAN_PEAK_PCMCIA, CAN_PEAK_USB as modules
+ * [i386] can: Enable CAN_CC770, CAN_CC770_ISA as module
+ * block: Enable BLK_DEV_NVME, BLK_DEV_PCIESSD_MTIP32XX as modules
+ * qla2xxx: Enable TCM_QLA2XXX as module
+ * team: Enable NET_TEAM_MODE_BROADCAST as module
+ * net: Enable VXLAN as module
+ * phy: Enable AT803X_PHY as module
+ * rt2800pci: Enable RT2800PCI_RT3290
+ * wireless/ti: Enable WL18XX as module
+ * ptp: Enable clock drivers along with associated net/PHY drivers
+ * [!x86] drm: Disable DRM_VMWGFX
+ * drm: Enable DRM_UDL as module
+ - Disable autoloading as it is incompatible with older versions of
+ xserver-xorg-video-displaylink
+ * [x86] drm: Enable DRM_AST, DRM_MGAG200 as modules
+ - Disable autoloading as they are incompatible with older versions of
+ xserver-xorg-video-ast and xserver-xorg-video-mga
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 24 Dec 2012 02:50:21 +0000
+
+linux (3.6.9-1~experimental.1) experimental; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.6.9
+
+ [ maximilian attems ]
+ * Enable NETFILTER_XT_TARGET_HMARK, NET_EMATCH_IPSET, USB_NET_QMI_WWAN.
+ * Enable more HID drivers.
+ * [x86] Enable INTEL_MEI.
+ * [ARM]: 7492/1: add strstr declaration for decompressors.
+
+ [ Ben Hutchings ]
+ * HID: Add Apple wireless keyboard 2011 ANSI to special driver list
+ (Closes: #694546)
+
+ [ Arnaud Patard ]
+ * [ARM]: add patch from staging-next to fix lis3l02dq on omap
+ * [ARM]: backport omap usb fixes to make it build again.
+ * Change musb Kconfig so that our configuration of USB_MUSB_OMAP2PLUS
+ is used and not set to 'm'.
+
+ -- maximilian attems <maks@debian.org> Wed, 05 Dec 2012 16:16:50 +0100
+
+linux (3.6.8-1~experimental.1) experimental; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.6.7
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.6.8
+
+ [ Bastian Blank ]
+ * Enable POWER_SUPPLY, BLK_DEV_THROTTLING and NETPRIO_CGROUP.
+ * [amd64] Enable CRYPTO_CAMELLIA_X86_64, CRYPTO_SERPENT_AVX_X86_64 and
+ CRYPTO_TWOFISH_AVX_X86_64.
+ * [x86] Enable more platform drivers.
+ * [s390/s390x-tape, s390x/s390x-tape] Remove not longer supported image
+ variant.
+ * [s390, s390x] Enable support for transparent hugepages.
+ * Use XZ for kernel images if supported.
+
+ [ maximilian attems ]
+ * Enable DVB_USB_RTL28XXU. (closes: #692749)
+ * Enable SBP_TARGET. (closes: #685341)
+
+ -- maximilian attems <maks@debian.org> Wed, 28 Nov 2012 18:35:41 +0100
+
+linux-tools (3.6-1~experimental.1) experimental; urgency=low
+
+ * New upstream release (Closes: #690011)
+
+ [ Ben Hutchings ]
+ * genorig: Accept xz-compressed upstream tarballs and patches, and
+ generate an xz-compressed orig tarball, thanks to Sedat Dilek
+ * source: Enable xz-compression for debian directory tarball
+
+ [ Jonathan Nieder ]
+ * Add myself to uploaders list.
+
+ -- Jonathan Nieder <jrnieder@gmail.com> Sat, 24 Nov 2012 13:40:28 -0800
+
+linux (3.6.6-1~experimental.1) experimental; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.6.5
+ - [x86] mm: Find_early_table_space based on ranges that are actually
+ being mapped (Closes: #692067)
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.6.6
+ - ext4: fix unjournaled inode bitmap modification (Closes: #692411)
+
+ [ Uwe Kleine-König ]
+ * [rt] bump to 3.6.4-rt10
+
+ [ Ben Hutchings ]
+ * [x86] staging: Re-enable ZSMALLOC as module, previously selected by
+ ZRAM but now a dependency (Closes: #692024)
+ * fs: Re-enable link security restrictions that are disabled by default
+ in 3.6.5
+ * [rt] Update to 3.6.6-rt17
+ * rc: Enable RC_DEVICES; re-enable LIRC; re-enable the drivers that
+ depend on those; enable IR_SANYO_DECODER and IR_IGUANA as modules
+
+ [ Bastian Blank ]
+ * [sparc] Remove IP_PNP, IP_PNP_RARP, NET_IPGRE and ARPD overrides.
+ * Enable IPv6 globally.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 15 Nov 2012 04:49:50 +0000
+
+linux (3.6.4-1~experimental.1) experimental; urgency=low
+
+ * New upstream release: http://kernelnewbies.org/Linux_3.6
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.6.1
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.6.2
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.6.3
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.6.4
+
+ [ Ben Hutchings ]
+ * aufs: Update to aufs3.6-20121015
+ * cirrus: Disable by default, as it is currently incompatible with
+ xserver-xorg-video-cirrus. It can be forced to load with module
+ parameter modeset=1.
+
+ [ Uwe Kleine-König ]
+ * reenable the rt featureset using 3.6.3-rt8
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 29 Oct 2012 04:22:02 +0000
+
+linux (3.5.5-1~experimental.1) experimental; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.5.3
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.5.4
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.5.5
+
+ [ Ben Hutchings ]
+ * mfd: lpc_ich: Fix a 3.5 kernel regression for iTCO_wdt driver
+ (Closes: #686040)
+ * drm: Enable various drivers (Closes: #685479):
+ - [x86] Enable DRM_GMA500 (previously DRM_PSB) as module
+ - Enable DRM_CIRRUS_QEMU as module
+ * media/dvb: Enable DVB_USB_AF9035 as module (Closes: #687050)
+
+ [ Bastian Blank ]
+ * Remove superfluous dependency in debugging packages.
+
+ -- Bastian Blank <waldi@debian.org> Thu, 04 Oct 2012 15:19:30 +0200
+
+linux-tools (3.5-1~experimental.1) experimental; urgency=low
+
+ * New upstream release
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 20 Aug 2012 00:57:12 +0100
+
+linux (3.5.2-1~experimental.1) experimental; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.5.1
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.5.2
+
+ [ Ben Hutchings ]
+ * genorig: Fix linux_upstream_full compute for version with modifier,
+ thanks to Julien Danjou (Closes: #683824)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 19 Aug 2012 21:36:04 +0100
+
+linux (3.5-1~experimental.1) experimental; urgency=low
+
+ * New upstream release: http://kernelnewbies.org/Linux_3.5
+
+ [ Ben Hutchings ]
+ * net: Enable OPENVSWITCH as module (Closes: #675010)
+ * aufs: Update to aufs3.5-20120730
+ * rt: Disable until it is updated for Linux 3.5 or later
+ * debian/copyright: Convert to machine-readable format (fka DEP-5)
+ * debian/copyright: Add copyright notice for newly-added Unicode data
+ * [x86] seccomp: Enable SECCOMP_FILTER
+ * [x86] applesmc: Update to Linux 3.6, including fixes for new MacBook models
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 01 Aug 2012 14:08:55 +0100
+
+linux (3.4.4-1~experimental.1) experimental; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.4.2
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.4.3
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.4.4
+
+ [ Ben Hutchings ]
+ * [ia64] Export <asm/cmpxchg.h> to userland (fixes FTBFS)
+ * [x86] Enable BATTERY_SBS as module (Closes: #662902)
+ * team: Enable NET_TEAM_MODE_LOADBALANCE as module
+ * [x32] Build a linux-libc-dev package
+ * input: Enable MOUSE_SYNAPTICS_USB (Closes: #678071)
+ * [x86] staging: zsmalloc: Finish conversion to a separate module
+ (Closes: #677273)
+ * [rt] Update to 3.4.4-rt13
+
+ [ Arnaud Patard ]
+ * [armel] disable FIPS, VGA_ARB, FTRACE on iop32x and ixp4xx to reduce
+ kernel size.
+ * [armel] disable virtio modules on all platforms except versatile
+ * [armel] enable PHYSMAP on all platforms except ixp4xx
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 26 Jun 2012 07:28:41 +0100
+
+linux-tools (3.4-1~experimental.1) experimental; urgency=low
+
+ * New upstream release
+ * Build-Depend on bison and flex, now required to build perf
+ * Fix version insertion in perf man pages
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 09 Jun 2012 20:51:12 +0100
+
+linux-2.6 (3.4.1-1~experimental.1) experimental; urgency=low
+
+ * New upstream release: http://kernelnewbies.org/Linux_3.4
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.4.1
+
+ [ maximilian attems ]
+ * Enable DM_VERITY, NF_CONNTRACK_TIMEOUT, NF_CT_NETLINK_TIMEOUT,
+ IP_NF_MATCH_RPFILTER, IP6_NF_MATCH_RPFILTER, NETFILTER_NETLINK_ACCT,
+ NETFILTER_XT_MATCH_NFACCT, NET_SCH_PLUG, SCSI_UFSHCD, SCSI_VIRTIO,
+ NET_TEAM, ATH6KL.
+
+ [ Ben Hutchings ]
+ * DFSG: Remove the new vs6624 driver, which contains non-free firmware
+ * aufs: Update to aufs3.4-20120521
+ * [rt] Update to 3.4-rt8 and reenable
+
+ -- maximilian attems <maks@debian.org> Wed, 06 Jun 2012 10:25:57 +0200
+
+linux-2.6 (3.3.6-1~experimental.1) experimental; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.3.5
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.3.6
+ - USB: cdc-wdm: fix race leading leading to memory corruption
+ - autofs: make the autofsv5 packet file descriptor use a packetized pipe
+ (Closes: #633423)
+ - PM / Hibernate: fix the number of pages used for hibernate/thaw buffering
+ (Closes: #659363)
+ - efi: Validate UEFI boot variables
+ - efivars: Improve variable validation
+ - fs/cifs: fix parsing of dfs referrals
+ - hfsplus: Fix potential buffer overflows (CVE-2012-2319)
+ - exit_signal: fix the "parent has changed security domain" logic
+ - net: l2tp: unlock socket lock before returning from l2tp_ip_sendmsg
+ - sky2: fix receive length error in mixed non-VLAN/VLAN traffic
+ (Closes: #492853)
+ - [s390] KVM: do store status after handling STOP_ON_STOP bit
+ - [s390] KVM: Sanitize fpc registers for KVM_SET_FPU
+ - KVM: Fix write protection race during dirty logging
+ - KVM: mmu_notifier: Flush TLBs before releasing mmu_lock
+ - KVM: Ensure all vcpus are consistent with in-kernel irqchip settings
+ (CVE-2012-1601)
+ - KVM: nVMX: Fix erroneous exception bitmap check
+ - KVM: VMX: Fix kvm_set_shared_msr() called in preemptible context
+ - KVM: lock slots_lock around device assignment
+ - hugepages: fix use after free bug in "quota" handling
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 18 May 2012 03:53:16 +0100
+
+linux-2.6 (3.3.4-1~experimental.1) experimental; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.3.3
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.3.4
+
+ [ Ben Hutchings ]
+ * [x86] dell-laptop: Terminate quirks list properly
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 01 May 2012 01:23:59 +0100
+
+linux-2.6 (3.3.2-1~experimental.1) experimental; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.3.1
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.3.2
+
+ [ Ben Hutchings ]
+ * [armel/iop32x] Add missing #includes (fixes FTBFS)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 15 Apr 2012 16:36:13 +0100
+
+linux-tools (3.3-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+ * linux-kbuild: debian/control: Set Multi-Arch: foreign
+ * linux-tools: Build perf on alpha and hppa (Closes: #664834)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 24 Mar 2012 23:15:59 +0000
+
+linux-2.6 (3.3-1~experimental.1) experimental; urgency=low
+
+ * New upstream release: http://kernelnewbies.org/Linux_3.3
+
+ [ Ben Hutchings ]
+ * [x86] crypto: Enable CRYPTO_SERPENT_SSE2_586, CRYPTO_SERPENT_SSE2_X86_64
+ * aufs: Update to aufs3.x-rcN-20120312
+ * IB: Enable INFINIBAND_SRPT as module (Closes: #663041)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 21 Mar 2012 03:08:36 +0000
+
+linux-2.6 (3.3~rc6-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * aufs: Update to aufs3.x-rcN-20120123
+ * rt: Disable until it is updated for Linux 3.3 or later
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 04 Mar 2012 20:27:42 +0000
+
+linux (3.2.41-2) unstable; urgency=low
+
+ * [ia64] udeb: Remove efi-modules package; make kernel-image provide
+ efi-modules (fixes FTBFS)
+ * linux-headers: Fix file installation on architectures without
+ Kbuild.platforms (Closes: #703800)
+ * [x86] drm/i915: bounds check execbuffer relocation count (CVE-2013-0913)
+ * [x86] drm: Enable DRM_GMA500 as module, replacing DRM_PSB (Closes: #703506)
+ - Enable DRM_GMA600, DRM_GMA3600, DRM_MEDFIELD
+ * [x86] KVM: x86: fix for buffer overflow in handling of MSR_KVM_SYSTEM_TIME
+ (CVE-2013-1796)
+ * [x86] KVM: x86: Convert MSR_KVM_SYSTEM_TIME to use gfn_to_hva_cache
+ functions (CVE-2013-1797)
+ * KVM: Fix bounds checking in ioapic indirect register reads (CVE-2013-1798)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 25 Mar 2013 15:17:44 +0000
+
+linux (3.2.41-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.40
+ - ext4: return ENOMEM if sb_getblk() fails
+ - ext4: fix possible use-after-free with AIO
+ - s390/kvm: Fix store status for ACRS/FPRS
+ - staging: comedi: disallow COMEDI_DEVCONFIG on non-board minors
+ - ext4: fix race in ext4_mb_add_n_trim()
+ - UBIFS: fix double free of ubifs_orphan objects
+ - hrtimer: Prevent hrtimer_enqueue_reprogram race
+ - nfsd: Fix memleak
+ - x86: Do not leak kernel page mapping locations
+ - USB: usb-storage: unusual_devs update for Super TOP SATA bridge
+ - posix-cpu-timers: Fix nanosleep task_struct leak
+ - NFSv4.1: Don't decode skipped layoutgets
+ - cgroup: fix exit() vs rmdir() race
+ - cpuset: fix cpuset_print_task_mems_allowed() vs rename() race
+ - ext4: fix xattr block allocation/release with bigalloc
+ - mm: fix pageblock bitmap allocation
+ - target: Add missing mapped_lun bounds checking during make_mappedlun
+ setup
+ - b43: Increase number of RX DMA slots
+ - posix-timer: Don't call idr_find() with out-of-range ID
+ - fs: Fix possible use-after-free with AIO
+ - powerpc/kexec: Disable hard IRQ before kexec
+ - mmu_notifier_unregister NULL Pointer deref and multiple ->release()
+ callouts
+ - tmpfs: fix use-after-free of mempolicy object (CVE-2013-1767)
+ - ocfs2: fix possible use-after-free with AIO
+ - ocfs2: fix ocfs2_init_security_and_acl() to initialize acl correctly
+ - ocfs2: ac->ac_allow_chain_relink=0 won't disable group relink
+ - idr: fix a subtle bug in idr_get_next()
+ - idr: make idr_get_next() good for rcu_read_lock()
+ - idr: fix top layer handling
+ - sysctl: fix null checking in bin_dn_node_address()
+ - nbd: fsync and kill block device on shutdown
+ - s390/timer: avoid overflow when programming clock comparator
+ (regression in 3.2.38)
+ - xen-pciback: rate limit error messages from xen_pcibk_enable_msi{,x}()
+ (CVE-2013-0231)
+ - xen-netback: correctly return errors from netbk_count_requests()
+ - xen-netback: cancel the credit timer when taking the vif down
+ - ipv6: use a stronger hash for tcp
+ - staging: comedi: ni_labpc: correct differential channel sequence for
+ AI commands
+ - staging: comedi: ni_labpc: set up command4 register *after* command3
+ - vhost: fix length for cross region descriptor (CVE-2013-0311)
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.41
+ - NFS: Don't allow NFS silly-renamed files to be deleted, no signal
+ - ARM: VFP: fix emulation of second VFP instruction
+ - md: fix two bugs when attempting to resize RAID0 array.
+ - proc connector: reject unprivileged listener bumps
+ - cifs: ensure that cifs_get_root() only traverses directories
+ - dm: fix truncated status strings
+ - hw_random: make buffer usable in scatterlist. (real fix for #701784)
+ - efi_pstore: Check remaining space with QueryVariableInfo() before
+ writing data
+ - efi: be more paranoid about available space when creating variables
+ (Closes: #703574)
+ - vfs: fix pipe counter breakage
+ - xen/pciback: Don't disable a PCI device that is already disabled.
+ - ALSA: seq: Fix missing error handling in snd_seq_timer_open()
+ - ext3: Fix format string issues (CVE-2013-1848)
+ - keys: fix race with concurrent install_user_keyrings() (CVE-2013-1792)
+ - USB: cdc-wdm: fix buffer overflow (CVE-2013-1860)
+ - signal: always clear sa_restorer on execve (CVE-2013-0914)
+ - crypto: user - fix info leaks in report API (CVE-2013-2546,
+ CVE-2013-2547, CVE-2013-2548)
+ - Fix: compat_rw_copy_check_uvector() misuse in aio, readv, writev, and
+ security keys
+ - batman-adv: bat_socket_read missing checks
+ - batman-adv: Only write requested number of byte to user buffer
+ - mm/hotplug: correctly add new zone to all other nodes' zone lists
+ (CVE-2012-5517)
+ - btrfs: use rcu_barrier() to wait for bdev puts at unmount
+
+ [ Aurelien Jarno]
+ * [mips,mipsel] Disable VGA_CONSOLE and ignore the corresponding ABI
+ change. It is completely broken on MIPS.
+ * headers: Include Kbuild.platforms and Platform files in -common to
+ fix out-of-tree building on mips and mipsel.
+ * [{mips,mipsel}/{4,5}kc-malta] Enable HW_RANDOM as module so that both
+ flavours have a consistent configuration.
+
+ [ Ben Hutchings ]
+ * [x86] ata_piix: reenable MS Virtual PC guests (fixes regression in
+ 3.2.19-1)
+ * test-patches: Clean up all previous test patches, whether or not they
+ were applied
+ * test-patches: Add --fuzz option to allow testing patches that have fuzz
+ * [x86] efi: Fix processor-specific memcpy() build error (Closes: #698581)
+ * udeb: Add hid-topseed to input-modules (Closes: #702611)
+ * [x86] drm/i915: Unconditionally initialise the interrupt workers,
+ thanks to Bjørn Mork (Closes: #692607)
+ * efi: Ensure efivars is loaded on EFI systems (Closes: #703363)
+ - [x86] Use a platform device to trigger loading of efivars
+ - [ia64] Change EFI_VARS from module to built-in
+ * efivars: Work around serious firmware bugs
+ - Allow disabling use as a pstore backend
+ - Add module parameter to disable use as a pstore backend
+ * [x86] Set EFI_VARS_PSTORE_DEFAULT_DISABLE=y
+ - explicitly calculate length of VariableName
+ - Handle duplicate names from get_next_variable()
+ * efi_pstore: Introducing workqueue updating sysfs
+ * efivars: pstore: Do not check size when erasing variable
+ * efivars: Remove check for 50% full on write
+ * kmsg_dump: Only dump kernel log in error cases (Closes: #703386)
+ - kexec: remove KMSG_DUMP_KEXEC
+ - kmsg_dump: don't run on non-error paths by default
+ * [x86] i915: initialize CADL in opregion (Closes: #703271)
+ * drm, agp: Update to 3.4.37:
+ - drm/radeon/dce6: fix display powergating
+ - drm: don't add inferred modes for monitors that don't support them
+ - drm/i915: Increase the RC6p threshold.
+ * signal: Fix use of missing sa_restorer field (build regression
+ introduced by fix for CVE-2013-0914)
+ * rds: limit the size allocated by rds_message_alloc()
+ * rtnl: fix info leak on RTM_GETLINK request for VF devices
+ * dcbnl: fix various netlink info leaks
+ * [s390] mm: fix flush_tlb_kernel_range()
+ * [powerpc] Fix cputable entry for 970MP rev 1.0
+ * vhost/net: fix heads usage of ubuf_info
+ * udf: avoid info leak on export (CVE-2012-6548)
+ * isofs: avoid info leak on export (CVE-2012-6549)
+ * [x86,powerpc/powerpc64] random: Change HW_RANDOM back from built-in to
+ module, as we now have a real fix for #701784
+ * [rt] Update to 3.2.40-rt60
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 23 Mar 2013 03:54:34 +0000
+
+linux (3.2.39-2) unstable; urgency=high
+
+ * [s390,s390x] virtio: Ignore ABI changes in 3.2.39 (fixes FTBFS)
+ * [sparc] drm: Ignore ABI changes in 3.2.39 (fixes FTBFS)
+ * [sparc] drm: Change from built-in to module
+ * [rt] Update to 3.2.39-rt59:
+ - acpi/rt: Convert acpi_gbl_hardware lock back to a raw_spinlock_t
+ - printk: Fix rq->lock vs logbuf_lock unlock lock inversion
+ - wait-simple: Simple waitqueue implementation
+ - rcutiny: Use simple waitqueue
+ * [x86] efi: Fix ABI change for introduction of efi_enabled() function
+ in 3.2.38 (Closes: #701690)
+ * [armel/versatile] i2c: Re-enable I2C_PCA_PLATFORM as module, erroneously
+ disabled in 3.2.39-1 (fixes FTBFS)
+ * [x86,powerpc/powerpc64] random: Change HW_RANDOM from module to built-in,
+ to work around virtio-rng bug (Closes: #701784)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 27 Feb 2013 03:48:30 +0000
+
+linux (3.2.39-1) unstable; urgency=high
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.36
+ - freezer: PF_FREEZER_NOSIG should be cleared along with PF_NOFREEZE
+ (Closes: #697077)
+ - tmpfs: fix shared mempolicy leak
+ - virtio: 9p: correctly pass physical address to userspace for high pages
+ - virtio: force vring descriptors to be allocated from lowmem
+ - USB: EHCI: bugfix: urb->hcpriv should not be NULL
+ - rcu: Fix batch-limit size problem
+ - Bluetooth: ath3k: Add support for VAIO VPCEH [0489:e027]
+ (Closes: #700550)
+ - mvsas: fix undefined bit shift
+ - ALSA: usb-audio: Avoid autopm calls after disconnection; Fix missing
+ autopm for MIDI input (Closes: #664068)
+ - target/file: Fix 32-bit highmem breakage for SGL -> iovec mapping
+ - SCSI: fix Null pointer dereference on disk error
+ - proc: pid/status: show all supplementary groups
+ - nfsd4: fix oops on unusual readlike compound
+ - ARM: missing ->mmap_sem around find_vma() in swp_emulate.c
+ - sctp: fix memory leak in sctp_datamsg_from_user() when copy from user
+ space fails
+ - ne2000: add the right platform device
+ - irda: sir_dev: Fix copy/paste typo
+ - ipv4: ip_check_defrag must not modify skb before unsharing
+ - telephony: ijx: buffer overflow in ixj_write_cid()
+ - udf: fix memory leak while allocating blocks during write
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.37
+ - ext4: fix extent tree corruption caused by hole punch
+ - jbd2: fix assertion failure in jbd2_journal_flush()
+ - tmpfs mempolicy: fix /proc/mounts corrupting memory
+ - sparc: huge_ptep_set_* functions need to call set_huge_pte_at()
+ - inet: Fix kmemleak in tcp_v4/6_syn_recv_sock and
+ dccp_v4/6_request_recv_sock
+ - net: sched: integer overflow fix
+ - tcp: implement RFC 5961 3.2
+ - tcp: implement RFC 5961 4.2
+ - tcp: refine SYN handling in tcp_validate_incoming
+ - tcp: tcp_replace_ts_recent() should not be called from
+ tcp_validate_incoming()
+ - tcp: RFC 5961 5.2 Blind Data Injection Attack Mitigation
+ - RDMA/nes: Fix for crash when registering zero length MR for CQ
+ - ACPI : do not use Lid and Sleep button for S5 wakeup
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.38
+ - staging: comedi: comedi_test: fix race when cancelling command
+ - mm: use aligned zone start for pfn_to_bitidx calculation
+ - [s390] s390/time: fix sched_clock() overflow (Closes: #698382)
+ - [i386] xen: Fix stack corruption in xen_failsafe_callback for 32bit
+ PVOPS guests. (CVE-2013-0190)
+ - KVM: PPC: Emulate dcbf
+ - evm: checking if removexattr is not a NULL
+ - ath9k_htc: Fix memory leak
+ - ath9k: do not link receive buffers during flush
+ - ath9k: fix double-free bug on beacon generate failure
+ - x86/msr: Add capabilities check
+ - can: c_can: fix invalid error codes
+ - can: ti_hecc: fix invalid error codes
+ - can: pch_can: fix invalid error codes
+ - smp: Fix SMP function call empty cpu mask race
+ - xfs: Fix possible use-after-free with AIO
+ - EDAC: Test correct variable in ->store function
+ - samsung-laptop: Disable on EFI hardware, to avoid damaging it
+ - NFS: Don't silently fail setattr() requests on mountpoints
+ - intel-iommu: Prevent devices with RMRRs from being placed into SI Domain
+ - ALSA: usb-audio: Fix regression by disconnection-race-fix patch
+ (Closes: #696321)
+ - printk: fix buffer overflow when calling log_prefix function from
+ call_console_drivers
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.39
+ - USB: XHCI: fix memory leak of URB-private data
+ - sched/rt: Use root_domain of rt_rq not current processor
+ - mwifiex: fix incomplete scan in case of IE parsing error
+ - x86-64: Replace left over sti/cli in ia32 audit exit code
+ - Bluetooth: Fix handling of unexpected SMP PDUs
+ - ptrace/x86: Partly fix set_task_blockstep()->update_debugctlmsr() logic
+ - Fix race condition with PTRACE_SETREGS and fatal signal (CVE-2013-0871)
+ + ptrace: introduce signal_wake_up_state() and ptrace_signal_wake_up()
+ + ptrace: ensure arch_ptrace/ptrace_request can never race with SIGKILL
+ + wake_up_process() should be never used to wakeup a TASK_STOPPED/TRACED
+ task
+ - net: prevent setting ttl=0 via IP_TTL
+ - ipv6: fix header length calculation in ip6_append_data()
+ - netxen: fix off by one bug in netxen_release_tx_buffer()
+ - r8169: remove the obsolete and incorrect AMD workaround
+ - net: loopback: fix a dst refcounting issue
+ - packet: fix leakage of tx_ring memory
+ - net: sctp: sctp_setsockopt_auth_key: use kzfree instead of kfree
+ - net: sctp: sctp_endpoint_free: zero out secret key data
+ - xen/netback: shutdown the ring if it contains garbage. (CVE-2013-0216)
+ - xen/netback: don't leak pages on failure in xen_netbk_tx_check_gop.
+ - xen/netback: free already allocated memory on failure in
+ xen_netbk_get_requests
+ - netback: correct netbk_tx_err to handle wrap around. (CVE-2013-0217)
+ - tcp: frto should not set snd_cwnd to 0
+ - tcp: fix for zero packets_in_flight was too broad
+ - tcp: fix MSG_SENDPAGE_NOTLAST logic
+ - bridge: Pull ip header into skb->data before looking into ip header.
+ (Closes: #697903)
+ - x86/xen: don't assume %ds is usable in xen_iret for 32-bit PVOPS.
+ (CVE-2013-0228)
+
+ [ Aurelien Jarno ]
+ * [armhf/vexpress] Add kernel udebs.
+
+ [ Julien Cristau ]
+ * Backport drm and agp subsystems from Linux 3.4.29 (closes: #687442)
+ - [x86] i915: Fixes freezes on Ivy Bridge (Closes: #689268)
+ - nouveau: Support for newer nvidia chipsets (Closes: #690284)
+ - radeon: Support for HD7000 'Southern Islands' chips
+ - [x86] drm/i915: add Ivy Bridge GT2 Server entries (Closes: #684767)
+ - [x86] drm/i915: Close race between processing unpin task and queueing
+ the flip
+
+ [ Ben Hutchings ]
+ * Input: wacom - fix touch support for Bamboo Fun CTH-461
+ * media/rc: Add iguanair driver from Linux 3.7 (Closes: #696925)
+ * rt2800: add chipset revision RT5390R support (Closes: #696592)
+ * [armhf/mx5] mtd: Enable MTD_BLOCK as module
+ * [armhf/mx5] udeb: Add missing storage drivers (Closes: #697128)
+ - Add ata-modules including libata, pata-modules including pata_imx,
+ sata-modules including ahci_platform
+ - Add sdhci-esdhc-imx to mmc-modules
+ - Add mtd-modules including mtd, mtdblock and m25p80
+ * [armhf] udeb: Fix network driver selection
+ - [armhf/mx5] Remove nic-modules
+ - [armhf/vexpress] Add usb-modules
+ - Add standard set of USB drivers to nic-usb-modules
+ - Add nic-wireless-modules
+ * be2net: Apply backported fixes requested by Emulex (Closes: #697479)
+ - be2net: do not modify PCI MaxReadReq size
+ - be2net: fix reporting number of actual rx queues
+ - be2net: do not use SCRATCHPAD register
+ - be2net: reduce gso_max_size setting to account for ethernet header.
+ - be2net: Increase statistics structure size for skyhawk.
+ - be2net: Explicitly clear the reserved field in the Tx Descriptor
+ - be2net: Regression bug wherein VFs creation broken for multiple cards.
+ - be2net: Fix to trim skb for padded vlan packets to workaround an ASIC Bug
+ - be2net: Fix Endian
+ - be2net: Enable RSS UDP hashing for Lancer and Skyhawk
+ - be2net: dont pull too much data in skb linear part
+ - be2net: Fix to parse RSS hash from Receive completions correctly.
+ - be2net: Avoid disabling BH in be_poll()
+ * udeb: Add specialised USB keyboard/mouse drivers to input-modules:
+ hid-a4tech, hid-cypress, hid-ezkey (Closes: #697035), hid-kensington,
+ hid-keytouch, hid-kye, hid-multitouch, hid-ortek, hid-primax,
+ hid-quanta, hid-samsung, hid-speedlink
+ * radeon: Firmware is required for DRM and KMS on R600 onward, but not
+ for KMS on earlier chips (Closes: #697229)
+ * [!powerpc] radeon: Reenable DRM_RADEON_KMS, as it apparently works on
+ most non-PowerMac systems
+ * fs: cachefiles: add support for large files in filesystem caching
+ (Closes: #698376)
+ * [rt] Update to 3.2.38-rt57:
+ - sched: Adjust sched_reset_on_fork when nothing else changes
+ - sched: Queue RT tasks to head when prio drops
+ - sched: Consider pi boosting in setscheduler
+ - sched: Init idle->on_rq in init_idle()
+ - sched: Check for idle task in might_sleep()
+ - mm: swap: Initialize local locks early
+ * [armel/versatile,armhf/vexpress] i2c: Enable I2C, I2C_VERSATILE as modules
+ (Closes: #696182)
+ * ext4: Fix corruption by hole punch in large files (Closes: #685726)
+ - rewrite punch hole to use ext4_ext_remove_space()
+ - fix hole punch failure when depth is greater than 0
+ - fix kernel BUG on large-scale rm -rf commands
+ * md: protect against crash upon fsync on ro array (Closes: #696650)
+ * net: Add alx driver for Atheros AR8161 and AR8162 (Closes: #699129)
+ - Mark as staging, since it has not been accepted upstream
+ * [armel/kirkwood] rtc-s35390a: add wakealarm support (Closes: #693997)
+ * [x86] i915: Invert backlight brightness control for various models
+ including Packard Bell NCL20 (Closes: #627372) and eMachines G725
+ (Closes: #680737)
+ - Also allow this behaviour to be enabled via module parameter
+ invert_brightness=1
+ * [amd64] edac: Enable EDAC_SBRIDGE as module (Closes: #699283)
+ * SCSI: Add virtio_scsi driver (Closes: #686636)
+ * [x86] sound: Enable LINE6_USB as module (Closes: #700211)
+ - Apply upstream changes up to Linux 3.8-rc1
+ * [armhf/mx5] Update description to mention i.MX53
+ * mm: Try harder to allocate vmemmap blocks (Closes: #699913)
+ * aufs: Update to aufs3.2-20130204:
+ - support for syncfs(2)
+ - possible bugfix, race in lookup
+ - bugfix, half refreshed iinfo
+ - possible bugfix, au_lkup_by_ino() returns ESTALE
+ * [x86] efi: Clear EFI_RUNTIME_SERVICES rather than EFI_BOOT by "noefi" boot
+ parameter
+ * [x86] efi: Make "noefi" really disable EFI runtime serivces
+ * drm, agp: Update to 3.4.32
+ - drm/radeon: add WAIT_UNTIL to the non-VM safe regs list for cayman/TN
+ - drm/radeon: prevent crash in the ring space allocation
+ * linux-image-dbg: Add symlinks to vmlinux from the locations expected by
+ kdump-tools (Closes: #700418), systemtap and others
+ * mm: fix pageblock bitmap allocation (fixes regression in 3.2.38)
+ * USB: usb-storage: unusual_devs update for Super TOP SATA bridge
+
+ [ Cyril Brulebois ]
+ * Bump python build-dep, needed since the switch from local SortedDict
+ to collections.OrderedDict (new in version 2.7). (Closes: #697740)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 25 Feb 2013 00:36:51 +0000
+
+linux (3.2.35-2) unstable; urgency=low
+
+ * [ia64] Make IPV6 built-in (fixes FTBFS)
+ * [rt] Update to 3.2.35-rt52
+ * audit: Increase maximum number of names logged per syscall to 30
+ (Closes: #631799)
+ * asix: Add support for Lenovo 10/100 USB dongle (Closes: #696248)
+ * udeb: Add ums-eneub6250, ums-realtek (Closes: #694348) to
+ usb-storage-modules
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 19 Dec 2012 03:41:35 +0000
+
+linux (3.2.35-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.33
+ - samsung-laptop: don't handle backlight if handled by acpi/video
+ (Closes: #693190)
+ - e1000: fix vlan processing regression (Closes: #690956)
+ - [x86] drm/i915: no lvds quirk for Zotac ZDBOX SD ID12/ID13
+ (Closes: #691122)
+ - au0828: fix case where STREAMOFF being called on stopped stream
+ causes BUG()
+ - net: Fix skb_under_panic oops in neigh_resolve_output
+ - vlan: don't deliver frames for unknown vlans to protocols
+ - RDS: fix rds-ping spinlock recursion
+ - tcp: resets are misrouted
+ - nfsd4: fix nfs4 stateid leak
+ - [arm] vfp: fix saving d16-d31 vfp registers on v6+ kernels
+ - scsi_debug: Fix off-by-one bug when unmapping region
+ - storvsc: Account for in-transit packets in the RESET path
+ - tmpfs,ceph,gfs2,isofs,reiserfs,xfs: fix fh_len checking
+ - ext4: race-condition protection for ext4_convert_unwritten_extents_endio
+ (CVE-2012-4508)
+ - md/raid10: use correct limit variable
+ - net/wireless: ipw2200: Fix panic occurring in ipw_handle_promiscuous_tx()
+ - USB: cdc-acm: fix pipe type of write endpoint
+ - [x86] xen: don't corrupt %eip when returning from a signal handler
+ - sysfs: sysfs_pathname/sysfs_add_one: Use strlcat() instead of strcat()
+ - fs/compat_ioctl.c: VIDEO_SET_SPU_PALETTE missing error check
+ - netfilter: nf_conntrack: fix racy timer handling with reliable events
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.34
+ - x86: Remove the ancient and deprecated disable_hlt() and enable_hlt()
+ facility (Closes: #667501)
+ - ALSA: PCM: Fix some races at disconnection
+ - ALSA: usb-audio: Fix races at disconnection
+ - crypto: cryptd - disable softirqs in cryptd_queue_worker to prevent
+ data corruption
+ - mac80211: Only process mesh config header on frames that RA_MATCH
+ - mac80211: fix SSID copy on IBSS JOIN
+ - mac80211: check management frame header length
+ - mac80211: verify that skb data is present
+ - mac80211: make sure data is accessible in EAPOL check
+ - ath9k: Test for TID only in BlockAcks while checking tx status
+ - nfs: Show original device name verbatim in /proc/*/mount{s,info}
+ (Closes: #669314)
+ - target: Avoid integer overflow in se_dev_align_max_sectors()
+ - hwmon: (w83627ehf) Force initial bank selection
+ - xfs: fix reading of wrapped log data
+ - fanotify: fix missing break
+ - drm/vmwgfx: Fix a case where the code would BUG when trying to pin
+ GMR memory
+ - sctp: fix call to SCTP_CMD_PROCESS_SACK in sctp_cmd_interpreter()
+ - netlink: use kfree_rcu() in netlink_release()
+ - tcp: fix FIONREAD/SIOCINQ
+ - net: fix divide by zero in tcp algorithm illinois (CVE-2012-4565)
+ - af-packet: fix oops when socket is not present
+ - r8169: Fix WoL on RTL8168d/8111d. (Closes: #674154)
+ - sky2: Fix for interrupt handler (Closes: #681280)
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.35
+ - UBIFS: fix mounting problems after power cuts
+ - [s390] gup: add missing TASK_SIZE check to get_user_pages_fast()
+ - [x86] Exclude E820_RESERVED regions and memory holes above 4 GB from
+ direct mapping.
+ - netfilter: Mark SYN/ACK packets as invalid from original direction
+ - netfilter: Validate the sequence number of dataless ACK packets as well
+ - ipv4: avoid undefined behavior in do_ip_setsockopt()
+ - Input: i8042 - also perform controller reset when suspending
+ (Closes: #693934)
+ - brcm80211: smac: only print block-ack timeout message at trace level
+ (Closes: #674430)
+ - GFS2: Test bufdata with buffer locked and gfs2_log_lock held
+ - [x86] mce, therm_throt: Don't report power limit and package level
+ thermal throttle events in mcelog (Closes: #695209)
+ - [hppa] fix virtual aliasing issue in get_shared_area()
+ - xfs: drop buffer io reference when a bad bio is built
+ - reiserfs: Protect reiserfs_quota_{on,write}() with write lock
+ - md: Reassigned the parameters if read_seqretry returned true in func
+ md_is_badblock.
+ - md: Avoid write invalid address if read_seqretry returned true.
+ - [i386] Fix invalid stack address while in softirq
+ - selinux: fix sel_netnode_insert() suspicious rcu dereference
+ - [hppa] fix user-triggerable panic on parisc
+ - block: Don't access request after it might be freed
+ - futex: avoid wake_futex() for a PI futex_q
+
+ [ Ben Hutchings ]
+ * [x86] udeb: Re-add isci to scsi-extra-modules (Closes: #690886;
+ regression of #652897 in version 3.2~rc7-1~experimental.1 due to
+ mis-merge)
+ * udeb: Add missing net drivers:
+ - Add 8021q (Closes: #689159), cxgb4, cxgb4vf, igbvf, ixgbevf, micrel,
+ mlx4_en, pch_gbe, qlge, smsc9420, tehuti, vxge to nic-extra-modules
+ - Add int51x1, smsc75xx, smsc95xx to nic-usb-modules
+ - Add adm8211, at76c50x-usb, b43legacy, iwl4965, libertas_tf_usb,
+ mwifiex_pcie, mwl8k, orinoco_usb, prism2_usb, r8187se, r8192e_pci,
+ r8712u, rtl8192ce (Closes: #686605), rtl8192cu, rtl8192de, rtl8192se
+ vt6656_stage to nic-wireless-modules
+ - Move broadcom to nic-modules, as it may be needed by tg3
+ * udeb: Add bnx2fc, fnic, pmcraid to scsi-extra-modules
+ * udeb: Move rtl8180 to nic-wireless-modules
+ * [x86] asus-laptop: Do not call HWRS on init (Closes: #692436)
+ * [x86] drm/i915: Only kick out vesafb if we takeover the fbcon with KMS
+ (Closes: #686284)
+ * [!x86] radeon: Disable DRM_RADEON_KMS, as this is still not expected to
+ work (Closes: #628972)
+ * radeon: Disable KMS earlier if firmware is not installed (Closes: #607194)
+ * [amd64] linux-image: Include VIA Nano in package description
+ * linux-image-dbg: Change package description to use the phrase
+ 'debugging symbols' and correct grammar
+ * usb: Disable UAS; it is known to be broken, and the supported devices
+ can also work with usb-storage
+ * ipv6: Treat ND option 31 as userland (DNSSL support) (Closes: #694522)
+ * rt2x00: Add device IDs 5362, 5392, 539b (Closes: #694312)
+ * udeb: Add pata_piccolo to pata-modules (Closes: #695437)
+ * firmware_class: Log every success and failure against given device
+ * firmware: Remove redundant log messages from drivers
+ * [x86] ACPI / video: ignore BIOS initial backlight value for
+ HP Folio 13-2000 (Closes: #692361)
+ * [x86] KVM: x86: invalid opcode oops on SET_SREGS with OSXSAVE bit set
+ (CVE-2012-4461)
+ * kmod: make __request_module() killable (CVE-2012-4398)
+ * exec: do not leave bprm->interp on stack (CVE-2012-4530)
+ * exec: use -ELOOP for max recursion depth
+ * [rt] Update to 3.2.34-rt51:
+ - hrtimer: Raise softirq if hrtimer irq stalled
+ - rcu: Disable RCU_FAST_NO_HZ on RT
+ - net: netfilter: Serialize xt_write_recseq sections on RT
+ * megaraid_sas: fix memory leak if SGL has zero length entries
+ (Closes: #688198)
+
+ [ Ian Campbell ]
+ * [xen] add support for microcode updating. (Closes: #693053)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 10 Dec 2012 00:14:55 +0000
+
+linux (3.2.32-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.31
+ - target: Fix ->data_length re-assignment bug with SCSI overflow
+ - hpsa: fix handling of protocol error
+ - cifs: fix return value in cifsConvertToUTF16
+ - asix: Support DLink DUB-E100 H/W Ver C1 (Closes: #687567)
+ - dj: memory scribble in logi_dj
+ - dm: handle requests beyond end of device instead of using BUG_ON
+ - md/raid10: fix "enough" function for detecting if array is failed.
+ - libata: Prevent interface errors with Seagate FreeAgent GoFlex
+ - vfs: dcache: fix deadlock in tree traversal
+ - Revert "drm/radeon: rework pll selection (v3)" (regression in 3.2.30)
+ - HID: hidraw: don't deallocate memory when it is in use
+ - xfrm: Workaround incompatibility of ESN and async crypto
+ - xfrm_user: fix various information leaks
+ - xfrm_user: ensure user supplied esn replay window is valid
+ - net: guard tcp_set_keepalive() to tcp sockets
+ - ipv4: raw: fix icmp_filter()
+ - ipv6: raw: fix icmpv6_filter()
+ - ipv6: mip6: fix mip6_mh_filter()
+ - netrom: copy_datagram_iovec can fail
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.32
+ - mtd: nand: Use the mirror BBT descriptor when reading its version
+ - TTY: ttyprintk, don't touch behind tty->write_buf
+ - n_gsm: fix various serious bugs
+ - hpsa: Use LUN reset instead of target reset
+ - staging: comedi: don't dereference user memory for INSN_INTTRIG
+ - ext4: fix potential deadlock in ext4_nonda_switch()
+ - staging: comedi: fix memory leak for saved channel list
+ - scsi_remove_target: fix softlockup regression on hot remove
+ (Closes: #690990)
+ - usb: host: xhci: Fix Null pointer dereferencing with 71c731a for
+ non-x86 systems (regression in 3.2.30)
+ - ext4: online defrag is not supported for journaled files
+ - staging: comedi: s626: don't dereference insn->data
+ - serial: pl011: handle corruption at high clock speeds
+ - ext4: always set i_op in ext4_mknod()
+ - ext4: fix fdatasync() for files with only i_size changes
+ - [x86] drm/i915: use adjusted_mode instead of mode for checking the
+ 6bpc force flag (regression in 3.2.29)
+ - staging: comedi: jr3_pci: fix iomem dereference
+ - JFFS2: don't fail on bitflips in OOB
+ - mtd: nandsim: bugfix: fail if overridesize is too big
+ - pnfsblock: fix partial page buffer wirte
+ - target/file: Re-enable optional fd_buffered_io=1 operation
+ - iscsit: remove incorrect unlock in iscsit_build_sendtargets_resp
+ - rapidio/rionet: fix multicast packet transmit logic
+ - ALSA: aloop - add locking to timer access
+ - [armhf/omap] counter: add locking to read_persistent_clock
+ - mm: fix invalidate_complete_page2() lock ordering
+ - mm: thp: fix pmd_present for split_huge_page and PROT_NONE with THP
+ - mm: hugetlb: fix pgoff computation when unmapping page from vma
+ - hugetlb: do not use vma_hugecache_offset() for vma_prio_tree_foreach
+ - [x86] firewire: cdev: fix user memory corruption (i386 userland on
+ amd64 kernel)
+ - udf: fix retun value on error path in udf_load_logicalvol
+ - eCryptfs: Unlink lower inode when ecryptfs_create() fails
+ - eCryptfs: Initialize empty lower files when opening them
+ - eCryptfs: Revert to a writethrough cache model
+ - eCryptfs: Write out all dirty pages just before releasing the lower file
+ - eCryptfs: Call lower ->flush() from ecryptfs_flush()
+ - mempolicy: remove mempolicy sharing
+ - mempolicy: fix a race in shared_policy_replace()
+ - mempolicy: fix refcount leak in mpol_set_shared_policy()
+ - mempolicy: fix a memory corruption by refcount imbalance in
+ alloc_pages_vma()
+ - hpsa: dial down lockup detection during firmware flash
+ - netfilter: nf_ct_ipv4: packets with wrong ihl are invalid
+ - netfilter: nf_nat_sip: fix incorrect handling of EBUSY for RTCP
+ expectation
+ - netfilter: nf_ct_expect: fix possible access to uninitialized timer
+ - ipvs: fix oops on NAT reply in br_nf context
+
+ [ Ben Hutchings ]
+ * codel: refine one condition to avoid a nul rec_inv_sqrt
+ * [mips,mipsel] Ignore NFS/SunRPC ABI changes in 3.2.30 (fixes FTBFS)
+ * tg3: Fix TSO CAP for 5704 devs w / ASF enabled
+ * SUNRPC: Set alloc_slot for backchannel tcp ops (regression in 3.2.30)
+ * iwlwifi: Do not request unreleased firmware for IWL6000 (Closes: #689416)
+ * aufs: Update to aufs3.2-20120827:
+ - Fix statfs() values when different block sizes are in use
+ * udeb: Add hid-logitech-dj to input-modules (Closes: #661379)
+ * connector: Make CONNECTOR built-in; enable PROC_EVENTS (Closes: #588200)
+ * e1000e: Change wthresh to 1 to avoid possible Tx stalls
+ * [x86] efi: Build EFI stub with EFI-appropriate options
+ * [rt] Update to 3.2.32-rt48:
+ - random: Make add_interrupt_randomness() work on rt
+ - softirq: Init softirq local lock after per cpu section is set up
+ - mm: slab: Fix potential deadlock
+ - mm: page_alloc: Use local_lock_on() instead of plain spinlock
+ - rt: rwsem/rwlock: lockdep annotations
+ - sched: Better debug output for might sleep
+ - stomp_machine: Use mutex_trylock when called from inactive cpu
+ * [x86] storvsc: Account for in-transit packets in the RESET path
+ * fs: handle failed audit_log_start properly
+ * fs: prevent use after free in auditing when symlink following was denied
+ * kernel/sys.c: fix stack memory content leak via UNAME26 (CVE-2012-0957)
+ * ALSA: hda: Fix oops caused by "Fix internal mic for Lenovo Ideapad U300s"
+ in 3.2.32
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 22 Oct 2012 06:25:37 +0100
+
+linux (3.2.30-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.30
+ - ext3: Fix fdatasync() for files with only i_size changes
+ - UBI: fix a horrible memory deallocation bug
+ - fuse: fix retrieve length
+ - mmc: card: Skip secure erase on MoviNAND; causes unrecoverable corruption
+ - udf: Fix data corruption for files in ICB
+ - xen: Use correct masking in xen_swiotlb_alloc_coherent.
+ - CIFS: Fix error handling in cifs_push_mandatory_locks
+ - [x86] drm/i915: Wait for all pending operations to the fb before
+ disabling the pipe
+ - xhci: Fix bug after deq ptr set to link TRB
+ - NFS: Fix the initialisation of the readdir 'cookieverf' array
+ - staging: comedi: das08: Correct AI encoding for das08jr-16-ao
+ - staging: comedi: das08: Correct AO output for das08jr-16-ao
+ - rt2800usb: Added rx packet length validity check
+ - staging: zcache: fix cleancache race condition with shrinker
+ - NFS: return error from decode_getfh in decode open
+ - ARM: 7526/1: traps: send SIGILL if get_user fails on undef handling path
+ - ahci: Add alternate identifier for the 88SE9172
+
+ [ Ben Hutchings ]
+ * [s390/s390x-tape] udeb: Remove fuse-modules configuration (fixes FTBFS)
+
+ -- dann frazier <dannf@debian.org> Wed, 26 Sep 2012 16:00:58 +0900
+
+linux (3.2.29-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.24
+ - sched/nohz: Rewrite and fix load-avg computation -- again
+ (Closes: #674153)
+ - libsas: fix taskfile corruption in sas_ata_qc_fill_rtf
+ - md/raid1: fix use-after-free bug in RAID1 data-check code.
+ - PCI: EHCI: fix crash during suspend on ASUS computers
+ - cpufreq / ACPI: Fix not loading acpi-cpufreq driver (regression in 3.2.2)
+ - block: fix infinite loop in __getblk_slow (regression in 3.2.19)
+ (Closes: #684293)
+ - PM / Hibernate: Hibernate/thaw fixes/improvements
+ - tcm_fc: Fix crash seen with aborts and large reads
+ - fifo: Do not restart open() if it already found a partner
+ - cifs: on CONFIG_HIGHMEM machines, limit the rsize/wsize to the kmap space
+ - UBIFS: fix a bug in empty space fix-up
+ - ore: Fix NFS crash by supporting any unaligned RAID IO
+ - ore: Remove support of partial IO request (NFS crash)
+ - pnfs-obj: don't leak objio_state if ore_write/read fails
+ - pnfs-obj: Fix __r4w_get_page when offset is beyond i_size
+ - dm raid1: fix crash with mirror recovery and discard
+ - dm raid1: set discard_zeroes_data_unsupported
+ - time: Fix bugs in leap-second handling (Closes: #679882)
+ + ntp: Fix leap-second hrtimer livelock
+ + timekeeping: Fix leapsecond triggered load spike issue
+ - bnx2x: fix checksum validation
+ - bnx2x: fix panic when TX ring is full
+ - eCryptfs: Gracefully refuse miscdev file ops on inherited/passed files
+ - ACPI / PM: Make acpi_pm_device_sleep_state() follow the specification
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.25
+ - mm: Fix various performance problems, particularly affecting use of
+ transparent hugepages (Closes: #675493)
+ - target: Add range checking to UNMAP emulation
+ - target: Fix reading of data length fields for UNMAP commands
+ - target: Fix possible integer underflow in UNMAP emulation
+ - target: Check number of unmap descriptors against our limit
+ - ext4: don't let i_reserved_meta_blocks go negative
+ - ext4: undo ext4_calc_metadata_amount if we fail to claim space
+ - locks: fix checking of fcntl_setlease argument
+ - Btrfs: call the ordered free operation without any locks held
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.26
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.27
+ - lirc_sir: make device registration work (Closes: #680762)
+ - random: Improve random number generation on non-interactive systems
+ + random: Use arch_get_random_int instead of cycle counter if avail
+ + random: Use arch-specific RNG to initialize the entropy store
+ + random: make 'add_interrupt_randomness()' do something sane
+ + usb: feed USB device information to the /dev/random driver
+ + net: feed /dev/random with the MAC address when registering a device
+ + rtc: wm831x: Feed the write counter into device_add_randomness()
+ + mfd: wm831x: Feed the device UUID into device_add_randomness()
+ - futex: Test for pi_mutex on fault in futex_wait_requeue_pi()
+ - futex: Forbid uaddr == uaddr2 in futex_wait_requeue_pi()
+ - s390/mm: downgrade page table after fork of a 31 bit process
+ - asus-wmi: use ASUS_WMI_METHODID_DSTS2 as default DSTS ID.
+ (Closes: #679158)
+ - md/raid1: don't abort a resync on the first badblock.
+ - [arm] 7467/1: mutex: use generic xchg-based implementation for ARMv6+
+ - [arm] 7476/1: vfp: only clear vfp state for current cpu in vfp_pm_suspend
+ - [arm] 7477/1: vfp: Always save VFP state in vfp_pm_suspend on UP
+ - [arm] 7478/1: errata: extend workaround for erratum #720789
+ - [arm] Fix undefined instruction exception handling
+ - mm: mmu_notifier: fix freed page still mapped in secondary MMU
+ - mm: hugetlbfs: close race during teardown of hugetlbfs shared page tables
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.28
+ - bnx2: Fix bug in bnx2_free_tx_skbs().
+ - sch_sfb: Fix missing NULL check
+ - sctp: Fix list corruption resulting from freeing an association on a list
+ - cipso: don't follow a NULL pointer when setsockopt() is called
+ - caif: fix NULL pointer check
+ - net/tun: fix ioctl() based info leaks
+ - rtlwifi: rtl8192cu: Change buffer allocation for synchronous reads
+ - hfsplus: fix overflow in sector calculations in hfsplus_submit_bio
+ - drm/i915: fixup seqno allocation logic for lazy_request
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.29
+ - pnfs: defer release of pages in layoutget
+ - fuse: verify all ioctl retry iov elements
+ - usb: serial: mos7840: Fixup mos7840_chars_in_buffer()
+ - sched: fix divide by zero at {thread_group,task}_times
+ - vfs: canonicalize create mode in build_open_flags()
+ - dccp: check ccid before dereferencing
+ - md: Don't truncate size at 4TB for RAID0 and Linear
+ - target: fix NULL pointer dereference bug alloc_page() fails to get memory
+ - USB: CDC ACM: Fix NULL pointer dereference
+ - alpha: Don't export SOCK_NONBLOCK to user space. (Closes: #658460)
+ - radeon: Fix various bugs in reading vbios (Closes: #685604)
+ - vfs: missed source of ->f_pos races
+ - svcrpc: fix BUG() in svc_tcp_clear_pages
+ - svcrpc: sends on closed socket should stop immediately
+ - fbcon: fix race condition between console lock and cursor timer (v1.1)
+ - mm: hugetlbfs: correctly populate shared pmd
+ - fs/buffer.c: remove BUG() in possible but rare condition
+ - block: replace __getblk_slow misfix by grow_dev_page fix
+ - Staging: speakup: fix an improperly-declared variable. (Closes: #685953)
+ - NFS: Fix Oopses in nfs_lookup_revalidate and nfs4_lookup_revalidate
+
+ [ Ben Hutchings ]
+ * Bump ABI to 4
+ * linux-image: Include package version in utsname version string
+ ('uname -v' output) (Closes: #638878)
+ * linux-source: Drop support for version.$DISTRIBUTION
+ * [arm,ia64,powerpc,s390,sh,x86] linux-image: Include package version
+ in stack traces from WARN, BUG, Oops etc.
+ * udeb: Add snd-hda-codec-ca0132 to sound-modules (Closes: #682368)
+ * linux-source: Suggest pkg-config, needed to build kconfig GUIs
+ (Closes: #682726)
+ * debugfs: Add mode, uid and gid mount options; set default mode to 700
+ (Closes: #681418)
+ * net: new counter for tx_timeout errors in sysfs
+ * net: Add byte queue limits (bql) for reduced buffer-bloat
+ * bnx2,bnx2x,e1000e,forcedeth,igb,ixgbe,sfc,skge,sky2,tg3:
+ Add support for bql
+ * fs: Update link security restrictions to match Linux 3.6:
+ - Drop kconfig options; restrictions can only be disabled by sysctl
+ - Change the audit message type from AUDIT_AVC (1400) to
+ AUDIT_ANON_LINK (1702)
+ * [rt] Update to 3.2.28-rt42:
+ - time/rt: Fix up leap-second backport for RT changes
+ - fix printk flush of messages
+ * rds: set correct msg_namelen (CVE-2012-3430)
+ * e1000: add dropped DMA receive enable back in for WoL (Closes: #684618)
+ * PCI/PM/Runtime: make PCI traces quieter (Closes: #684049)
+ * rc: ite-cir: Initialise ite_dev::rdev earlier (Closes: #684441)
+ * input: Enable TOUCHSCREEN_ATMEL_MXT as module (Closes: #685123)
+ * usb: Add USB_QUIRK_RESET_RESUME for all Logitech UVC webcams
+ (Closes: #668211)
+ * [alpha] Use gcc-4.6 (Closes: #685894)
+ - Use large data model to work around link failure
+ * [i386/486] video: Change FB_GEODE_LX from built-in to module (lxfb)
+ (Closes: #686528)
+ * [i386/686-pae] video: Disable Geode framebuffer drivers, not used with
+ any chips that support PAE
+ * [x86] drm/i915: Fix i8xx interrupt handling (Closes: #655152)
+ * [armel/kirkwood] ahci: Add JMicron 362 device IDs (Closes: #634180)
+ * speakup: lower default software speech rate (Closes: #686742)
+ * e1000e: Fix potential DoS when TSO enabled
+ * mm: Remove user-triggerable BUG from mpol_to_str
+ * sfc: Fix maximum number of TSO segments and minimum TX queue size
+ (CVE-2012-3412)
+ - tcp: Apply device TSO segment limit earlier
+ * net_sched: gact: Fix potential panic in tcf_gact().
+ * af_packet: remove BUG statement in tpacket_destruct_skb
+ * net: Fix various information leaks
+ * af_packet: don't emit packet on orig fanout group
+ * af_netlink: force credentials passing (CVE-2012-3520)
+ * netlink: fix possible spoofing from non-root processes
+ * net: ipv4: ipmr_expire_timer causes crash when removing net namespace
+ * [i386] i810fb: Enable FB_I810_GTF, FB_I810_I2C (Closes: #687644)
+ * udeb: Add fuse-modules to support os-prober (see #684265)
+
+ [ Bastian Blank ]
+ * Make xen-linux-system meta-packages depend on xen-system. This allows
+ automatic updates. (closes: #681637)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 16 Sep 2012 06:16:38 +0100
+
+linux (3.2.23-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.22
+ - nilfs2: ensure proper cache clearing for gc-inodes
+ - ath9k_hw: avoid possible infinite loop in ar9003_get_pll_sqsum_dvc
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.23
+ - splice: fix racy pipe->buffers uses
+ - NFC: Prevent multiple buffer overflows in NCI (CVE-2012-3364)
+ - NFC: Return from rawsock_release when sk is NULL
+ - md/raid5: Do not add data_offset before call to is_badblock
+ - md/raid5: In ops_run_io, inc nr_pending before calling
+ md_wait_for_blocked_rdev
+ - md/raid10: fix failure when trying to repair a read error.
+ - udf: Improve sanity checking of filesystem metadata (CVE-2012-3400)
+ + udf: Avoid run away loop when partition table length is corrupted
+ + udf: Fortify loading of sparing table
+ - l2tp: fix a race in l2tp_ip_sendmsg()
+ - netpoll: fix netpoll_send_udp() bugs
+ - Btrfs: run delayed directory updates during log replay
+ - ocfs2: clear unaligned io flag when dio fails
+ - aio: make kiocb->private NUll in init_sync_kiocb()
+ - mm: Hold a file reference in madvise_remove
+
+ [ Ben Hutchings ]
+ * linux-libc-dev: Fix redundant 'GNU glibc' in description (Closes: #631228)
+ * README.source: Correct name of main patch series file
+ * [sh] Fix up store queue code for subsys_interface changes (Closes: #680025)
+ * scsi: Silence unnecessary warnings about ioctl to partition
+ (Closes: #656899)
+ * Update Czech debconf template translations (Michal Simunek)
+ (Closes: #679674)
+ * linux-image: Remove versioned relations where stable version is new enough
+ * udf: Improve table length check to avoid possible overflow
+ * CIFS: Respect negotiated MaxMpxCount (deferred from 3.2.14)
+ * epoll: clear the tfile_check_list on -ELOOP (CVE-2012-3375)
+ * nouveau: Update to support Fermi (NVC0+) acceleration (Closes: #679566)
+ - Refactor sub-channel use
+ - Bump version to 1.0.0
+ * e100: ucode is optional in some cases
+ * [x86] drm/i915: prefer wide & slow to fast & narrow in DP configs
+ (Closes: #658662)
+ * cipso: don't follow a NULL pointer when setsockopt() is called
+ * [x86] hwmon: Enable SENSORS_SCH5636 as module (Closes: #680934)
+ * atl1c: fix issue of transmit queue 0 timed out
+ * raid5: delayed stripe fix (Closes: #680366)
+ * fs: Remove easily user-triggerable BUG from generic_setlease
+ * tcp: drop SYN+FIN messages
+ * fifo: Do not restart open() if it already found a partner (Closes: #678852)
+ * [rt] linux-source: Include -rt version suffix
+ * [rt] Update to 3.2.23-rt37:
+ - Latency histogramms: Cope with backwards running local trace clock
+ - Latency histograms: Adjust timer, if already elapsed when programmed
+ - Disable RT_GROUP_SCHED in PREEMPT_RT_FULL
+ - Latency histograms: Detect another yet overlooked sharedprio condition
+ - slab: Prevent local lock deadlock
+ - fs, jbd: pull your plug when waiting for space
+ - perf: Make swevent hrtimer run in irq instead of softirq
+ - cpu/rt: Rework cpu down for PREEMPT_RT
+ - cpu/rt: Fix cpu_hotplug variable initialization
+ - workqueue: Revert workqueue: Fix PF_THREAD_BOUND abuse
+ - workqueue: Revert workqueue: Fix cpuhotplug trainwreck
+
+ [ Arnaud Patard ]
+ * [mipsel] add r8169 to d-i udeb.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 22 Jul 2012 23:25:47 +0100
+
+linux (3.2.21-3) unstable; urgency=low
+
+ * driver core: remove __must_check from device_create_file
+ (fixes FTBFS on sparc)
+ * i2400m: Disable I2400M_SDIO; hardware did not reach production
+ * apparmor: remove advertising the support of network rules from
+ compat iface (Closes: #676515)
+ * xen/netfront: teardown the device before unregistering it (Closes: #675190)
+ * linux-{doc,manual,source,support}: Mark as capable of satisfying
+ relations from foreign packages (Multi-Arch: foreign) (Closes: #679202)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 28 Jun 2012 04:58:18 +0100
+
+linux (3.2.21-2) unstable; urgency=low
+
+ * [i386] cpufreq/gx: Fix the compile error
+ * [powerpc] Enable PPC_DISABLE_WERROR (fixes FTBFS)
+ * tracing/mm: Move include of trace/events/kmem.h out of header into slab.c
+ (fixes FTBFS on sparc)
+ * [i386] Disable incomplete lguest support
+ * udeb: Add missing dependencies for various modules (see #678587)
+ - [armel/kirkwood] fb-modules depends on kernel-image
+ - [ia64] nic-usb-modules depends on kernel-image, nic-shared-modules,
+ usb-modules
+ - [ia64] sata-modules depends on kernel-image, scsi-core-modules
+ - [ia64] scsi-modules depends on scsi-core-modules
+ - [ia64,powerpc,ppc64] pcmcia-modules depends on kernel-image
+ - [powerpc,ppc64] nic-pcmcia-modules depends on kernel-image,
+ nic-shared-modules, pcmcia-modules
+ - [powerpc,ppc64,x86] scsi-modules depends on ata-modules
+ - [x86] nic-extra-modules depends on i2c-modules
+ * wacom: do not crash when retrieving touch_max (Closes: #678798)
+ * wacom: Revert unintended changes to handling of Tablet PCs
+ (Closes: #677164)
+ * linux-image, README.Debian: Suggest debian-kernel-handbook package
+
+ [ Arnaud Patard ]
+ * [armel, armhf] backport BPF JIT support
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 26 Jun 2012 01:56:42 +0100
+
+linux-tools (3.2.17-1) unstable; urgency=low
+
+ * New upstream stable updates:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.15
+ - modpost: fix ALL_INIT_DATA_SECTIONS
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.16
+ - perf hists: Catch and handle out-of-date hist entry maps.
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.17
+ - Perf: fix build breakage
+
+ * Fix version insertion in perf man pages
+ * Build usbip userland packages (Closes: #568362)
+ - Do not build a shared library package; the API and ABI have changed
+ from libusbip0 but there has been no upstream soversion change
+ * usbipd: Enable TCP wrappers for access control
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 24 Jun 2012 02:52:26 +0100
+
+linux (3.2.21-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.21
+ - NFSv4.1: Fix a request leak on the back channel
+ - target: Return error to initiator if SET TARGET PORT GROUPS emulation
+ fails
+ - USB: add NO_D3_DURING_SLEEP flag and revert 151b61284776be2
+ - USB: fix gathering of interface associations
+
+ [ Ben Hutchings ]
+ * [ia64,powerpc] udeb: Add crc-itu-t to crc-modules; make
+ firewire-core-modules depend on it (fixes FTBFS)
+ * [arm,m68k,sh4] udeb: Build ipv6-modules
+ * ethtool: allow ETHTOOL_GSSET_INFO for users
+ * [rt] bump version to 3.2.20-rt32
+ * cpu: Convert 'cpu' and 'machinecheck' sysdev_class to a regular subsystem
+ * [x86] Add driver auto probing for x86 features
+ - crypto: Add support for x86 cpuid auto loading for x86 crypto drivers
+ (Closes: #568008)
+ - intel-idle: convert to x86_cpu_id auto probing
+ - HWMON: Convert coretemp to x86 cpuid autoprobing
+ - HWMON: Convert via-cputemp to x86 cpuid autoprobing
+ - cpufreq: Add support for x86 cpuinfo auto loading (Closes: #664813)
+ * [x86] ACPI: Load acpi-cpufreq from processor driver automatically
+ * Bump ABI to 3
+ * input: Add Synaptics USB device driver (Closes: #678071)
+ * [x86] udeb: Fix dependencies for nic-wireless-modules
+
+ [ Aurelien Jarno ]
+ * [mips,mipsel] udeb: Remove rivafb and nvidiafb.
+ * [ppc64]: add udebs, based on powerpc/powerpc64.
+
+ [ Bastian Blank ]
+ * Support build-arch and build-indep make targets.
+
+ [ Arnaud Patard ]
+ * [armel/kirkwood] Add dreamplug and iconnect support (Closes: #675922)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 22 Jun 2012 13:54:15 +0100
+
+linux (3.2.20-1) unstable; urgency=low
+
+ * The "Confused? You Won't Be" release
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.20
+ - cifs: fix oops while traversing open file list (try #4)
+ - mm/fork: fix overflow in vma length when copying mmap on clone
+ - mm: fix faulty initialization in vmalloc_init()
+ - x86, amd, xen: Avoid NULL pointer paravirt references
+ - ext4: force ro mount if ext4_setup_super() fails
+ - ext4: disallow hard-linked directory in ext4_lookup
+ - ext4: add missing save_error_info() to ext4_error()
+ - ALSA: usb-audio: fix rate_list memory leak
+ - Bluetooth: btusb: typo in Broadcom SoftSailing id (Closes: #674565)
+ - ipv4: Do not use dead fib_info entries.
+ - ipv4: fix the rcu race between free_fib_info and ip_route_output_slow
+ - l2tp: fix oops in L2TP IP sockets for connect() AF_UNSPEC case
+ - btree: fix tree corruption in btree_get_prev()
+ - asix: allow full size 8021Q frames to be received (Closes: #676545)
+ - ext4: don't trash state flags in EXT4_IOC_SETFLAGS
+ - ext4: fix the free blocks calculation for ext3 file systems w/ uninit_bg
+
+ [ Ben Hutchings ]
+ * Rename source package to 'linux' (Closes: #636010)
+ * Convert source package format to 3.0 (quilt)
+ - Convert patch system to quilt, except for the 'orig' patch series
+ - Use xz compression for upstream and Debian tarballs
+ - README.source: Update description of patch system to match current
+ usage
+ - linux-patch-debian: Remove; it is no longer necessary for GPL
+ compliance and does not work with our current patch management
+ * linux-image: Change package name for bugs to 'src:linux' (Closes: #644198)
+ * DFSG: video: Remove nvidiafb and rivafb, which include apparently
+ obfuscated code (Closes: #383481, #609615). The nouveau driver supports
+ all the same hardware, aside from RIVA 128 (NV3).
+ * udeb: Add udf-modules containing UDF filesystem module (Closes: #613972)
+ * [mipsel/loongson2f] linux-image: Recommend libc6-loongson2f
+ (Closes: #629410)
+ * Build-Depend on kmod or module-init-tools, not just the latter
+ * test-patches: Recognise the rt featureset automatically
+ * udeb: Build-Depend on kernel-wedge >= 2.84; this allows us to list
+ modules as required even if they are built-in in some configurations
+ * filter: Allow to create sk-unattached filters
+ * proc: Backport hidepid mount option from Linux 3.4 (Closes: #669028)
+ * NFSv4: Reduce the footprint of the idmapper (Closes: #657078)
+ * [i386] thp: avoid atomic64_read in pmd_read_atomic for 32bit PAE
+ (Closes: #676360)
+ * linux-source: Add single patch for each featureset
+ * [x86] Enable CRASH_DUMP, PROC_VMCORE (Closes: #623177)
+ * media/dvb: Enable DVB_DDBRIDGE as module (Closes: #676952)
+ * net: sock: validate data_len before allocating skb in
+ sock_alloc_send_pskb() (CVE-2012-2136)
+ * macvtap: zerocopy: fix offset calculation when building skb
+ * macvtap: zerocopy: fix truesize underestimation
+ * macvtap: zerocopy: put page when fail to get all requested user pages
+ * macvtap: zerocopy: set SKBTX_DEV_ZEROCOPY only when skb is built
+ successfully
+ * macvtap: zerocopy: validate vectors before building skb (CVE-2012-2119)
+ * KVM: Fix buffer overflow in kvm_set_irq() (CVE-2012-2137)
+
+ [ Bastian Blank ]
+ * [s390/s390x,s390x/s390x] Build debugging symbols.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 11 Jun 2012 02:46:34 +0100
+
+linux-2.6 (3.2.19-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.19
+ - hpsa: Fix problem with MSA2xxx devices (Closes: #661057)
+ - IB/core: Fix mismatch between locked and pinned pages
+ - iommu: Fix off by one in dmar_get_fault_reason()
+ - vfs: make AIO use the proper rw_verify_area() area helpers
+ - HID: logitech: read all 32 bits of report type bitfield (Closes: #671292)
+ - USB: Remove races in devio.c
+ - ext{3,4}: Fix error handling on inode bitmap corruption
+ - uvcvideo: Fix ENUMINPUT handling
+ - dl2k: Clean up rio_ioctl (CVE-2012-2313)
+ - [x86] MCE: Fix vm86 handling for 32bit mce handler
+ - [x86] mce: Fix check for processor context when machine check was taken.
+ - ethtool: Null-terminate filename passed to ethtool_ops::flash_device
+ - NFSv4: Fix buffer overflows in ACL support (CVE-2012-2375)
+ + Avoid reading past buffer when calling GETACL
+ + Avoid beyond bounds copy while caching ACL
+
+ [ Ben Hutchings ]
+ * be2net: Backport most changes up to Linux 3.5-rc1, thanks to
+ Sarveshwar Bandi (Closes: #673391)
+ - Add support for Skyhawk cards
+ * net/sched: Add codel and fq_codel from Linux 3.5-rc1
+ * [x86] udeb: Add hyperv-modules containing Hyper-V paravirtualised drivers
+ * [x86] ata_piix: defer disks to the Hyper-V drivers by default
+ * [x86] drm/i915:: Disable FBC on SandyBridge (Closes: #675022)
+ * AppArmor: compatibility patch for v5 interface (Closes: #661151)
+ * hugepages: fix use after free bug in "quota" handling (CVE-2012-2133)
+ * [x86] mm: pmd_read_atomic: fix 32bit PAE pmd walk vs pmd_populate SMP race
+ condition (CVE-2012-2373)
+ * hugetlb: fix resv_map leak in error path (CVE-2012-2390)
+ * [SCSI] fix scsi_wait_scan (Closes: #647436)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 01 Jun 2012 13:15:48 +0100
+
+linux-2.6 (3.2.18-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.18
+ - hugetlb: prevent BUG_ON in hugetlb_fault() -> hugetlb_cow()
+ - net: l2tp: unlock socket lock before returning from l2tp_ip_sendmsg
+ - [sparc] sparc64: Do not clobber %g2 in xcall_fetch_glob_regs().
+ - ext4: avoid deadlock on sync-mounted FS w/o journal
+ - brcm80211: smac: fix endless retry of A-MPDU transmissions
+ (Closes: #672891)
+ - target: Fix SPC-2 RELEASE bug for multi-session iSCSI client setups
+ - ALSA: hda/idt - Fix power-map for speaker-pins with some HP laptops
+ (Closes: #672582)
+ - usbnet: fix skb traversing races during unlink(v2)
+ - [arm] prevent VM_GROWSDOWN mmaps extending below FIRST_USER_ADDRESS
+
+ [ Jonathan Nieder ]
+ * wacom: Add support for various tablet models (Closes: #671801)
+ * rt2800usb: Add support for Ralink RT5392/RF5372 chipset (Closes: #673186)
+
+ [ Ben Hutchings ]
+ * test-patches: Fix -j option, broken since 3.1.0-1~experimental.1
+ * rt2800usb: Re-enable powersaving by default, as it should work better
+ than in 2.6.38
+ * [sparc,sparc64] Build virtio-modules-udeb for use in qemu (Closes: #673320)
+ * KVM: mmu_notifier: Flush TLBs before releasing mmu_lock
+ * [x86] KVM: nVMX: Fix erroneous exception bitmap check
+ * [x86] KVM: VMX: vmx_set_cr0 expects kvm->srcu locked
+ * [s390] KVM: do store status after handling STOP_ON_STOP bit
+ * [s390] KVM: Sanitize fpc registers for KVM_SET_FPU
+ * ACPI battery: only refresh the sysfs files when pertinent information
+ changes (Closes: #670958)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 21 May 2012 04:07:08 +0100
+
+linux-2.6 (3.2.17-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.17
+ - md: fix possible corruption of array metadata on shutdown.
+ - ext4: fix endianness breakage in ext4_split_extent_at()
+ - KVM: unmap pages from the iommu when slots are removed (CVE-2012-2121)
+ - btrfs: btrfs_root_readonly() broken on big-endian
+ - ocfs2: Fix various bugs affecting big-endian architectures
+ - lockd: fix the endianness bug
+ - phonet: Check input from user before allocating
+ - netlink: fix races after skb queueing
+ - net: fix a race in sock_queue_err_skb()
+ - net/ethernet: ks8851_mll fix rx frame buffer overflow
+ - x86, apic: APIC code touches invalid MSR on P5 class machines
+ - drm/i915: fix integer overflow in i915_gem_execbuffer2()
+ - drm/i915: fix integer overflow in i915_gem_do_execbuffer()
+ - USB: cdc-wdm: fix race leading leading to memory corruption
+ - autofs: make the autofsv5 packet file descriptor use a packetized pipe
+ (Closes: #633423)
+ - efi: Validate UEFI boot variables
+ - efivars: Improve variable validation
+ - fs/cifs: fix parsing of dfs referrals
+ - hfsplus: Fix potential buffer overflows (CVE-2012-2319)
+ - exit_signal: fix the "parent has changed security domain" logic
+
+ [ Ben Hutchings ]
+ * aufs: Enable AUFS_EXPORT
+ * ext4: Report max_batch_time option correctly (Closes: #654206)
+ * [i386/rt-686-pae] Enable HIGHMEM64G as intended for this configuration
+ * NFSv4: Revalidate uid/gid after open (Closes: #659111)
+ * sky2: propogate rx hash when packet is copied
+ * sky2: fix receive length error in mixed non-VLAN/VLAN traffic
+ (Closes: #492853)
+ * KVM: Ensure all vcpus are consistent with in-kernel irqchip settings
+ (CVE-2012-1601)
+ * KVM: lock slots_lock around device assignment (CVE-2012-2121)
+ * [rt] bump version to 3.2.16-rt27
+
+ [ Bastian Blank ]
+ * [s390] Enable IUCV special message support. (closes: #671238)
+
+ [ Arnaud Patard ]
+ * [armhf] Add vexpress support from Vagrant Cascadian with a slightly
+ modified kernel configuration (Closes: #670462)
+ * [armel] Introduce a new udeb module for leds and use it on kirkwoord
+ kernel thanks to Simon Guinot (Closes: #671200)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 12 May 2012 15:29:09 +0100
+
+linux-2.6 (3.2.16-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.16
+ - drm/i915: properly compute dp dithering for user-created modes
+ (Closes: #666360)
+ - md/bitmap: prevent bitmap_daemon_work running while initialising bitmap
+ - [ia64] Fix futex_atomic_cmpxchg_inatomic() (Closes: #659485)
+ - USB: serial: fix race between probe and open
+ - fcaps: clear the same personality flags as suid when fcaps are used
+ (CVE-2012-2123)
+ - ACPICA: Fix to allow region arguments to reference other scopes
+ (Closes: #661581)
+ - futex: Do not leak robust list to unprivileged process
+ - drm/radeon/kms: fix the regression of DVI connector check
+ (Closes: #670047)
+
+ [ Ben Hutchings ]
+ * rt2x00: Identify rt2800usb chipsets. (Closes: #658067)
+ * [x86] Add EFI boot stub support (Closes: #669033)
+ * brcmsmac: "INTERMEDIATE but not AMPDU" only when tracing
+ * NFSv4: Fix error handling and improve error reporting for file locking
+ (Closes: #669270)
+ - Rate limit the state manager for lock reclaim warning messages
+ - Ensure that the LOCK code sets exception->inode
+ - Ensure that we check lock exclusive/shared type against open modes
+ * [x86] i915: Fix integer overflows in i915_gem_{do_execbuffer,execbuffer2}
+ * Revert "autofs: work around unhappy compat problem on x86-64".
+ Reopens #633423.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 29 Apr 2012 08:00:53 +0100
+
+linux-2.6 (3.2.15-1) unstable; urgency=high
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.15
+ - drm/radeon/kms: fix fans after resume (Closes: #596741)
+ - sysctl: fix write access to dmesg_restrict/kptr_restrict
+ - [x86] PCI: use host bridge _CRS info on MSI MS-7253 (Closes: #619034)
+ - nfs: Fix length of buffer copied in __nfs4_get_acl_uncached
+ - [x86] ioat: fix size of 'completion' for Xen (Closes: #660554)
+ - cred: copy_process() should clear child->replacement_session_keyring
+
+ [ Ben Hutchings ]
+ * net: fix /proc/net/dev regression (Closes: #659499)
+ * [armel/orion5x] Fix GPIO enable bits for MPP9 (Closes: #667446)
+ * [x86] drm/i915: mask transcoder select bits before setting them on LVDS
+ * [armhf/mx5,mipsel/loongson-2f] input: Enable INPUT_TOUCHSCREEN
+ (Closes: #668036)
+ * [x86] hv: Update all Hyper-V drivers to 3.4-rc1 (Closes: #661318)
+ * hugetlb: fix race condition in hugetlb_fault()
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 14 Apr 2012 18:23:44 +0100
+
+linux-2.6 (3.2.14-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.14
+ - mm: thp: fix pmd_bad() triggering in code paths holding mmap_sem
+ read mode (CVE-2012-1179)
+ - hugetlbfs: avoid taking i_mutex from hugetlbfs_read()
+ - md/bitmap: ensure to load bitmap when creating via sysfs
+ (Closes: #661558)
+ - md: dont set md arrays to readonly on shutdown
+ - md/raid1,raid10: avoid deadlock during resync/recovery (Closes: #584881)
+ - md: fix clearing of the changed flags for the bad blocks list
+ - xfs: fix inode lookup race
+ - sysctl: protect poll() in entries that may go away
+ - NFSv4: Rate limit the state manager warning messages (Closes: #666121)
+ - jbd2: clear BH_Delay & BH_Unwritten in journal_unmap_buffer
+ - ext4: ignore EXT4_INODE_JOURNAL_DATA flag with delalloc
+ - ext4: fix race between sync and completed io work
+ - ext4: check for zero length extent
+ - vfs: fix d_ancestor() case in d_materialize_unique
+ - udf: Fix deadlock in udf_release_file()
+ - dm crypt: add missing error handling
+ - dm thin: fix stacked bi_next usage
+ - xfs: Fix oops on IO error during xlog_recover_process_iunlinks()
+ - NFSv4: Fix two infinite loops in the mount code
+ - drm/i915: suspend fbdev device around suspend/hibernate
+ (Closes: #645547)
+ - net: fix a potential rcu_read_lock() imbalance in rt6_fill_node()
+ - [x86] tls: Off by one limit check
+ - PCI: ASPM: Fix pcie devices with non-pcie children (Closes: #665420)
+
+ [ Jonathan Nieder ]
+ * ata: Enable PATA_IT8213 as module (Closes: #666506)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 05 Apr 2012 05:02:45 +0100
+
+linux-2.6 (3.2.13-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.13
+
+ [ Ben Hutchings ]
+ * kbuild: do not check for ancient modutils tools
+
+ [ Uwe Kleine-König ]
+ * [rt] bump version to 3.2.12-rt22
+
+ [ Bastian Blank ]
+ * [s390x] Ignore ABI change.
+
+ -- Bastian Blank <waldi@debian.org> Wed, 28 Mar 2012 13:40:26 +0200
+
+linux-tools (3.2.7-2) unstable; urgency=high
+
+ * Apply upstream changes to fix various buffer overflow bugs:
+ - perf tools: Use scnprintf where applicable
+ - perf tools: Incorrect use of snprintf results in SEGV
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 20 Mar 2012 04:54:22 +0000
+
+linux-2.6 (3.2.12-1) unstable; urgency=high
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.11
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.12
+ - aio: fix io_setup/io_destroy race
+ - aio: fix the "too late munmap()" race
+ - vfs: fix double put after complete_walk()
+ - acer-wmi: No wifi rfkill on Lenovo machines (Closes: #655941)
+ - tcp: fix false reordering signal in tcp_shifted_skb
+ - r8169: corrupted IP fragments fix for large mtu
+ - tcp: don't fragment SACKed skbs in tcp_mark_head_lost()
+ - tcp: fix tcp_shift_skb_data() to not shift SACKed data below snd_una
+ - block: Fix NULL pointer dereference in sd_revalidate_disk
+ (Closes: #649735)
+ - block: fix __blkdev_get and add_disk race condition
+
+ [ Ben Hutchings ]
+ * [powerpc] Enable KVM_GUEST
+ * [s390] Ignore arch_pick_mmap_layout version change; it should not be
+ needed by modules (fixes FTBFS)
+ * [x86] Disable POHMELFS; this version is obsolete
+ * epoll: Don't limit non-nested epoll paths
+ * CIFS: Fix a spurious error in cifs_push_posix_locks
+ * [rt] bump rt patch to version 3.2.11-rt20
+ * aufs: Update to aufs3.2-20120312
+ * tcp: fix syncookie regression
+ * ipv6: Don't dev_hold(dev) in ip6_mc_find_dev_rcu
+
+ [ Jonathan Nieder ]
+ * [x86] Enable RTS5139 as module (Closes: #663912)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 20 Mar 2012 04:32:51 +0000
+
+linux-2.6 (3.2.10-1) unstable; urgency=high
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.10
+ - regset: Prevent null pointer reference on readonly regsets
+ (CVE-2012-1097)
+
+ [ Uwe Kleine-König ]
+ * [rt] bump rt patch to version 3.2.9-rt17
+ * [rt] fix conflict between the security restrictions on links introduced in
+ 3.2.9-1 and rt (Closes: #663269)
+
+ [ Aurelien Jarno ]
+ * [mips,mipsel] Mark ext4-modules as provided by the kernel-image udeb, remove
+ ide-core-modules provide.
+
+ [ Ben Hutchings ]
+ * [x86,ia64] PCI/hotplug: Build-in common hotplug drivers:
+ - Change HOTPLUG_PCI, HOTPLUG_PCI_PCIE to built-in
+ - [x86] Change HOTPLUG_PCI_ACPI to built-in (Closes: #663433)
+ - [ia64] Enable HOTPLUG_PCI_SGI as built-in
+ * linux-headers: Remove unused, broken symlinks to Kbuild (Closes: #663597)
+ * udeb: Remove dependency of {pcmcia,usb}-storage-modules on ide-core-modules
+ * [mips,mipsel] Mark ata-modules as provided by the kernel-image udeb
+ for most flavours
+
+ -- Bastian Blank <waldi@debian.org> Tue, 13 Mar 2012 17:19:32 +0100
+
+linux-tools (3.2.7-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.7
+ - perf tools: Fix perf stack to non executable on x86_64
+ - perf evsel: Fix an issue where perf report fails to show the proper
+ percentage
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 05 Mar 2012 00:19:02 +0000
+
+linux-2.6 (3.2.9-1) unstable; urgency=high
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.8
+ - [i386] i387: move TS_USEDFPU flag from thread_info to task_struct
+ - [x86] additional refactoring of FPU/SSE state save and restore
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.9
+ - vfs: fix d_inode_lookup() dentry ref leak
+ - target: Allow control CDBs with data > 1 page
+ - epoll: introduce POLLFREE to flush ->signalfd_wqh before kfree()
+ - epoll: ep_unregister_pollwait() can use the freed pwq->whead
+ - epoll: limit paths (CVE-2011-1083)
+ - cdrom: use copy_to_user() without the underscores
+
+ [ Bastian Blank ]
+ * [mips,mipsel] Also remove ext4 modules from installer.
+
+ [ Ben Hutchings ]
+ * Update debconf template translations:
+ - Update Dutch (Willem Kuyn) (Closes: #658736)
+ - Add Polish (Michał Kułach) (Closes: #658912)
+ * Bump ABI to 2
+ * fs: Introduce and enable security restrictions on links:
+ - Do not follow symlinks in /tmp that are owned by other users
+ (sysctl: fs.protected_symlinks)
+ - Do not allow unprivileged users to create hard links to sensitive files
+ (sysctl: fs.protected_hardlinks) (Closes: #609455)
+ + This breaks the 'at' package in stable, which will be fixed shortly
+ (see #597130)
+ The precise restrictions are specified in Documentation/sysctl/fs.txt in
+ the linux-doc-3.2 and linux-source-3.2 packages.
+ * iwlwifi: fix key removal (Closes: #651199)
+ * cgroups: Set CGROUP_PERF
+ * hid: Enable HID_HOLTEK, HID_PRIMAX, HID_SPEEDLINK, HID_WIIMOTE as modules,
+ HID_ACRUX_FF
+ * media/rc: Enable RC_ATI_REMOTE as module
+ * gspca: Enable USB_GSPCA_TOPRO as module
+ * dvb-usb: Enable DVB_USB_PCTV452E, DVB_USB_MXL111SF as modules
+
+ [ Uwe Kleine-König ]
+ * [x86] Update rt featureset to 3.2.9-rt15
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 04 Mar 2012 15:32:20 +0000
+
+linux-2.6 (3.2.7-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.7
+
+ [ Ben Hutchings ]
+ * Add Turkish debconf template translations (Mert Dirik) (Closes: #660117)
+ * [amd64] Disable BLK_DEV_IDEPNP, BLK_DEV_OPTI621, IDE_GENERIC
+ * Use libata-based drivers for most of the remaining PATA controllers:
+ - pata_legacy replaces ide-generic
+ - pata_isapnp replaces ide-pnp
+ - pata_opti replaces opti621
+ - pata_hpt366 and pata_hpt37x replace hpt366
+ - pata_ninja32 replaces delkin_cb
+ - pata_cs5535 replaces cs5535
+ - pata_winbond replaces sl82c105
+ - [alpha] pata_cypress replaces cy82c693
+ - [hppa] pata_ns87415 replaces ns87415
+ - [sparc] Various replacements, as for x86 in 2.6.32-10
+ * Disable old IDE subsystem [!ia64,m68k]:
+ - Disable BLK_DEV_IT8172, BLK_DEV_IT8213, BLK_DEV_TC86C001, BLK_DEV_TRM290
+ - [alpha] Disable BLK_DEV_4DRIVES, BLK_DEV_ALI14XX, BLK_DEV_DTC2278,
+ BLK_DEV_HT6560B, BLK_DEV_QD65XX, BLK_DEV_UMC8672
+ * fs: Enable EFI_PARTITION in all configurations (Closes: #660582)
+ * [i386] Re-enable INTEL_IOMMU, IRQ_REMAP
+ * [mips/r5k-ip32] Enable INPUT_SGI_BTNS (previously INPUT_SGIO2_BTNS)
+ * [powerpc/powerpc64] Enable IBM_EMAC (previously IBM_NEW_EMAC)
+ * [x86] drm/i915: do not enable RC6p on Sandy Bridge (Closes: #660265)
+ * ipsec: be careful of non existing mac headers (Closes: #660804)
+ * version: Use maintainer rather than uploader address for official
+ binary packages
+
+ [ Bastian Blank ]
+ * Don't advertise Xen support for rt images. (closes: #659988)
+ * [m68k,mips,mipsel] Use ext4 for all ext-variants. (closes: #660446)
+ * [m68k,mips,mipsel] Don't built-in ramdisk support.
+ * [hppa,mips,mipsel] Don't built-in cramfs support.
+ * [alpha,hppa] Don't built-in ext2.
+ * Remove IDE trigger for LED support.
+ * Remove all framebuffer bootup logos.
+ * NFSv4: Fix an Oops in the NFSv4 getacl code.
+
+ -- Bastian Blank <waldi@debian.org> Tue, 28 Feb 2012 16:00:41 +0100
+
+linux-2.6 (3.2.6-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.5
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.6
+ - ALSA: hda - Apply 0x0f-VREF fix to all ASUS laptops with ALC861/660
+ (Closes: #657302)
+ - [armhf] vfp: flush thread hwstate before restoring context from sigframe
+ - proc: mem_release() should check mm != NULL
+ - proc: make sure mem_open() doesnt pin the targets memory
+ - [arm] sched/rt: Fix task stack corruption under
+ __ARCH_WANT_INTERRUPTS_ON_CTXSW
+ - eCryptfs: Infinite loop due to overflow in ecryptfs_write()
+ - iscsi-target: Fix reject release handling in iscsit_free_cmd()
+ - iscsi-target: Fix double list_add with iscsit_alloc_buffs reject
+ - pcmcia: fix socket refcount decrementing on each resume
+
+ [ Aurelien Jarno ]
+ * hwmon: backport IT8728F support for linux 3.3.
+
+ [ Uwe Kleine-König ]
+ * [amd64] Update rt featureset to 3.2.5-rt12
+ * [i386] enable rt featureset for 686-pae
+
+ [ Arnaud Patard ]
+ * Merge ixp4xx oops fix when probing mtd.
+
+ [ Ben Hutchings ]
+ * Change linux-image dependencies to allow kmod as an alternative to
+ module-init-tools
+ * relay: prevent integer overflow in relay_open()
+ * builddeb: Don't create files in /tmp with predictable names
+ * ath9k: fix a WEP crypto related regression (Closes: #659484)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 16 Feb 2012 02:38:38 +0000
+
+linux-2.6 (3.2.4-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.3
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.4
+ - eCryptfs: Sanitize write counts of /dev/ecryptfs
+ - eCryptfs: Make truncate path killable
+ - eCryptfs: Check inode changes in setattr
+ - drm/i915: paper over missed irq issues with force wake voodoo
+ - tpm_tis: add delay after aborting command (Closes: #649033)
+ - USB: ftdi_sio: fix initial baud rate (Closes: #658164)
+ - USB: Realtek cr: fix autopm scheduling while atomic (Closes: #656724)
+
+ [ Ben Hutchings ]
+ * [armel] Add mv78xx0 flavour; thanks to Steve McIntyre for the config
+ * net: Disable FIXED_PHY; this driver only causes trouble
+ * PCI: Rework ASPM disable code (fixes power usage regression on some
+ systems)
+
+ [ Bastian Blank ]
+ * Remove unneeded scmversion workaround.
+
+ -- Bastian Blank <waldi@debian.org> Sun, 05 Feb 2012 15:42:21 +0100
+
+linux-2.6 (3.2.2-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.2
+ - ext4: fix undefined behavior in ext4_fill_flex_info() (CVE-2009-4307)
+ - Unused iocbs in a batch should not be accounted as active (CVE-2012-0058)
+ - uvcvideo: Fix integer overflow in uvc_ioctl_ctrl_map()
+ - [arm] proc: clear_refs: do not clear reserved pages
+
+ [ Ben Hutchings ]
+ * Clean up linux-image maintainer scripts:
+ - Stop changing 'build' and 'source' symlinks; these now belong to the
+ linux-headers packages
+ - Remove unused configuration variables
+ - prerm: Remove last vestige of /usr/doc transition
+ - postrm: Remove modules.*.bin; currently modules.builtin.bin is left
+ behind
+ * [alpha] Build with gcc-4.5 (Closes: #657112)
+ * aufs: Update to aufs3.2-20120109 (fixes FTBFS on m68k)
+ * [m68k] Fix assembler constraint to prevent overeager gcc optimisation
+ * sdhci-pci: Include driver in installer
+ * [armel] udeb: Do not attempt to build lzo-modules udeb as lzo_compress
+ is now built-in (fixes FTBFS)
+ * [armhf] udeb: Include rt2800usb in nic-modules, replacing rt2870sta
+ which was removed from the kernel
+ * drm: Fix authentication kernel crash
+ * xfs: Fix missing xfs_iunlock() on error recovery path in xfs_readlink()
+ * jbd: Issue cache flush after checkpointing
+ * crypto: sha512 - make it work, undo percpu message schedule
+ - crypto: sha512 - reduce stack usage to safe number
+ * [x86] xen: size struct xen_spinlock to always fit in arch_spinlock_t
+ * l2tp: l2tp_ip - fix possible oops on packet receive
+ * macvlan: fix a possible use after free
+ * tcp: fix tcp_trim_head() to adjust segment count with skb MSS
+ * [x86] KVM: fix missing checks in syscall emulation (CVE-2012-0045)
+
+ [ Thorsten Glaser ]
+ * [m68k] Use gcc-4.6 like (almost) all other architectures
+ * Pass the cflags define as CFLAGS_KERNEL and CFLAGS_MODULE to kbuild
+ * [m68k] Use cflags -ffreestanding (Closes: #648996)
+
+ [ Aurelien Jarno ]
+ * [mips,octeon] Disabled CONFIG_FIXED_PHY as it conflicts with the octeon
+ phy driver.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 01 Feb 2012 01:44:05 +0000
+
+linux-tools (3.2.1-2) unstable; urgency=low
+
+ * Add Vcs-{Svn,Browser} fields
+ * Reduce minimum version of linux-base to 3.4~ to support backports
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 24 Jan 2012 04:26:24 +0000
+
+linux-2.6 (3.2.1-2) unstable; urgency=high
+
+ [ Stefan Lippers-Hollmann ]
+ * udeb: Add missing modules to nic-wireless-modules:
+ - lib80211 encryption algorithms (lib80211_crypt_{wep,ccmptkip})
+ needed for e.g. ipw2x00 wlan modules (Closes: #636259)
+ - ath9k_htc, carl9170 and rt2800{pci,usb} drivers
+ (Closes: #636321, #636353, #636385)
+
+ [ Ben Hutchings ]
+ * Update Vcs-Browser URL for the switch to ViewVC
+ * Point Vcs-{Svn,Browser} at trunk branch, since the sid branch does
+ not always exist
+ * Build linux-libc-dev without multiarch if dpkg does not support it,
+ to support backports
+ * proc: clean up and fix /proc/<pid>/mem handling (CVE-2012-0056)
+
+ [ Aurelien Jarno ]
+ * [x86] Backport KVM nested VMX fixes from 3.3 to fix warnings and
+ crashes of L1 guests.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 23 Jan 2012 15:10:04 +0000
+
+linux-tools (3.2.1-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 19 Jan 2012 04:17:19 +0000
+
+linux-2.6 (3.2.1-1) unstable; urgency=low
+
+ * New upstream release: http://kernelnewbies.org/Linux_3.2
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.1
+
+ [ Aurelien Jarno ]
+ * [arm, mips, mipsel, sh4] Add a virtio-modules udeb on flavours which
+ can be emulated by QEMU.
+
+ [ Ben Hutchings ]
+ * media/dvb: Enable DVB_USB_IT913X as module (Closes: #653776)
+ * [arm] Remove use of possibly undefined BUILD_BUG_ON in <asm/bug.h>
+ (fixes FTBFS)
+ * Install /lib/modules/<kernel-version>/modules.builtin in linux-image
+ packages
+ * [ia64] Add accept4() syscall (Closes: #647825)
+ * [x86] staging: Enable STAGING_MEDIA, which various drivers now depend on
+ (Closes: #654800)
+ * [um,m68k] Register a generic CPU device (fixes regression introduced by
+ the fix for #649216)
+ * [alpha] add io{read,write}{16,32}be functions, thanks to Michael Cree
+ * net: reintroduce missing rcu_assign_pointer() calls
+ * Input: ALPS - add support for protocol versions 3 and 4
+ (Closes: #618422, #648207)
+ * [powerpc/powerpc64] udeb: Drop zlib-modules; ZLIB_DEFLATE is built-in
+ * [amd64] iommu: Enable INTEL_IOMMU, INTEL_IOMMU_FLOPPY_WA, IRQ_REMAP
+ * [amd64] cpufreq: Enable X86_P4_CLOCKMOD (Closes: #656328)
+ * Refresh list of related firmware packages for bug script
+
+ [ Bastian Blank ]
+ * [amd64] crypt: Enable some amd64 only ciphers.
+ * Packaging updates:
+ - Use unicode.
+ - Cleanup config handling.
+ - Remove support for plain-xen image type.
+ - Allow disabling debug infos for unreleased builds.
+
+ [ Arnaud Patard ]
+ * [armel] disable tomoyo and apparmor to allow kernel image to fit into flash.
+ * [armel] add back ixp4xx gpiolib patch
+ * [arm] backport topdown mmap support from rmk's tree
+ * [armel] Enable support from LaCIE kirkwood devices, thanks to Simon Guinot
+ (Closes: #655344)
+ * [armel] Backport 88f6282 A1 support
+
+ [ Jurij Smakov ]
+ * [sparc] Add mpt2sas to scsi-common-modules udeb on sparc and sparc64,
+ needed by Niagara T3 machines.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 18 Jan 2012 16:14:12 +0000
+
+linux-2.6 (3.2~rc7-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+ - [powerpc] pasemi_mac: Fix building as module
+ - [x86] mpparse: Account for bus types other than ISA and PCI
+ (Closes: #586494)
+ - EHCI : Fix a regression in the ISO scheduler (Closes: #651382)
+ - [arm] setup: initialize arm_dma_zone_size earlier (Closes: #651215)
+
+ [ Ben Hutchings ]
+ * [x86] et131x: Include driver in installer (Closes: #651440)
+ * security: Enable APPARMOR (Closes: #598408)
+
+ [ Uwe Kleine-König ]
+ * [amd64] Update rt featureset to 3.2-rc5-rt8
+
+ [ Bastian Blank ]
+ * Use xz compression for all packages.
+
+ -- Bastian Blank <waldi@debian.org> Wed, 28 Dec 2011 14:55:38 +0100
+
+linux-tools (3.2~rc4-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 07 Dec 2011 01:53:15 +0000
+
+linux-2.6 (3.2~rc4-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * aufs: Update to aufs3.x-rcN-20111114
+ * ieee802154: Enable IEEE802154_6LOWPAN as module
+ * can: Enable CAN_GW, CAN_EMS_PCMCIA, CAN_PEAK_PCI as modules
+ * nfc: enable NFC_NCI as module
+ * scsi: Enable MVUMI as module
+ * dm: Enable DM_THIN_PROVISIONING as module
+ * b43: Enable B43_PHY_HT
+ * [ia64,powerpc,sparc,x86] wireless: Enable MWIFIEX_PCIE as module
+ * udeb: Update configuration for 3.2:
+ - Provide the default configuration instead of including it from the
+ kernel-wedge package
+ - iwlagn is renamed to iwlwifi
+ - blowfish is renamed to blowfish_generic
+
+ [ Uwe Kleine-König ]
+ * [amd64] reenable rt featureset with 3.2-rc4-rt5
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 03 Dec 2011 23:07:41 +0000
+
+linux-2.6 (3.1.8-2) unstable; urgency=high
+
+ * igmp: Avoid zero delay when receiving odd mixture of IGMP queries
+ (Closes: #654876) (CVE-2012-0207)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 10 Jan 2012 00:14:39 +0000
+
+linux-2.6 (3.1.8-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.1.7
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.1.8
+ - Revert "clockevents: Set noop handler in clockevents_exchange_device()",
+ included in stable update 3.1.5 (Closes: #653398)
+ - cfq-iosched: fix cfq_cic_link() race condition
+ - binary_sysctl(): fix memory leak
+ - cgroups: fix a css_set not found bug in cgroup_attach_proc
+ - iwlwifi: allow to switch to HT40 if not associated (Closes: #653423)
+ - futex: Fix uninterruptible loop due to gate_area
+ - drm/radeon/kms: bail on BTC parts if MC ucode is missing
+ - [sparc] sparc64: Fix masking and shifting in VIS fpcmp emulation.
+ - llc: llc_cmsg_rcv was getting called after sk_eat_skb.
+ - ipv4: reintroduce route cache garbage collector
+ - Revert "rtc: Disable the alarm in the hardware" (Closes: #652869)
+
+ [ Ben Hutchings ]
+ * snapshot: Implement compat_ioctl (Closes: #502816)
+ * drm/radeon: flush read cache for gtt with fence on r6xx and newer GPU
+ (Closes: #646376)
+ * rtc: Fix alarm rollover when day or month is out-of-range (Closes: #646429)
+ * l2tp: ensure sk->dst is still valid (Closes: #652503)
+ * Update Russian debconf template translations (Yuri Kozlov)
+ (Closes: #653716)
+ * v4l2-ioctl: integer overflow in video_usercopy()
+ * Restrict ioctl forwarding on partitions and logical volumes (CVE-2011-4127)
+ * [x86] KVM: Prevent starting PIT timers in the absence of irqchip support
+ (CVE-2011-4622)
+
+ [ Jonathan Nieder ]
+ * prerm: Print an error message when aborting removal of the running
+ kernel (Closes: #601962)
+
+ [ Aurelien Jarno ]
+ * [sh4] Remove core-modules udeb as it is empty.
+ * [sh4/sh7751r] Disable CONFIG_RTS7751R2D_1. Support for this board
+ implies IRQless IDE, which causes data corruption.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 08 Jan 2012 16:31:16 +0000
+
+linux-2.6 (3.1.6-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.1.6
+ - staging: r8712u: Add new USB ID (Closes: #651622)
+ - [arm] setup: initialize arm_dma_zone_size earlier (Closes: #651215)
+
+ [ Ben Hutchings ]
+ * [x86] Enable HYPERV, HYPERV_STORAGE, HYPERV_NET, HYPERV_UTILS,
+ HYPERV_MOUSE as modules (Closes: #652014)
+ * cciss: Add IRQF_SHARED back in for the non-MSI(X) interrupt handler
+ (Closes: #650119)
+ * udeb: Update configuration:
+ - Provide the default configuration instead of including it from the
+ kernel-wedge package
+ - [x86] Include et131x (Closes: #651440)
+ - [x86] Include isci (Closes: #652897)
+
+ -- Bastian Blank <waldi@debian.org> Fri, 23 Dec 2011 17:02:26 +0100
+
+linux-tools (3.1.1-3) unstable; urgency=low
+
+ * Fix s390x support.
+
+ -- Aurelien Jarno <aurel32@debian.org> Sun, 18 Dec 2011 19:32:12 +0100
+
+linux-2.6 (3.1.5-1) unstable; urgency=low
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.1.5
+ - bridge: correct IPv6 checksum after pull (Closes: #651469)
+ - USB: EHCI: fix HUB TT scheduling issue with iso transfer
+ (Closes: #651015)
+ - [x86] mpparse: Account for bus types other than ISA and PCI
+ (Closes: #586494)
+
+ [ Bastian Blank ]
+ * Fix generation of revisions for the patch list.
+
+ [ Hector Oron ]
+ * regulator: backport fix for nullpointer dereference in core.
+
+ [ Ben Hutchings ]
+ * [x86] Enable MEMTEST (Closes: #613321, #646361)
+ - If bad RAM is detected, WARN and recommend a more thorough test
+ * brcmsmac: Fix I/O functions for MIPS and for big-endian architectures
+ * [x86] Enable GPIO_PCH, GPIO_ML_IOH, I2C_EG20T, PCH_CAN, PCH_DMA,
+ PCH_GBE, PCH_PHUB, SERIAL_PCH_UART, SPI_TOPCLIFF_PCH, USB_GADGET,
+ USB_EG20T as modules
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 11 Dec 2011 05:28:40 +0000
+
+linux-2.6 (3.1.4-1) unstable; urgency=low
+
+ * New upstream stable updates:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.1.2
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.1.3
+ - TTY: ldisc, wait for ldisc infinitely in hangup (Closes: #645071)
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.1.4
+
+ [ Martin Michlmayr ]
+ * [armel] Set the priority of pata-modules to standard since the
+ GLAN Tank uses PATA.
+
+ [ Ben Hutchings ]
+ * Enable BCMA as module, BCMA_HOST_PCI and B43_BCMA (Closes: #649567)
+ but limit these to devices not supported by brcmsmac
+ * brcmsmac: Enable as module for all architectures
+ * Include module taint flags in bug reports
+ * lirc_serial: Fix various bugs that may result in a crash, deadlock or
+ other failure (Closes: #645811)
+ * amilo-rfkill: Use proper functions to write to the i8042 safely
+ * topology: Provide CPU topology in sysfs in !SMP configurations
+ (Closes: #649216)
+
+ [ Bastian Blank ]
+ * Include generated headers. (closes: #650085)
+
+ -- Bastian Blank <waldi@debian.org> Tue, 29 Nov 2011 14:14:14 +0100
+
+linux-tools (3.1.1-2) unstable; urgency=low
+
+ * Change the check for stale debian/control to tolerate binNMUs
+ (Closes: #649005)
+ * Rebuild with perl 5.14 (Closes: #649006)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 17 Nov 2011 03:18:03 +0000
+
+linux-tools (3.1.1-1) unstable; urgency=low
+
+ * New upstream release
+
+ [ Bastian Blank ]
+ * Rename to linux-tools.
+ * Use 3.0 (quilt) source format.
+ * Properly patch modpost symbol prefix setting.
+ * Build linux-tools binary package.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 14 Nov 2011 04:57:47 +0000
+
+linux-2.6 (3.1.1-1) unstable; urgency=high
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.1.1
+
+ [ Aurelien Jarno ]
+ * [s390x] Add s390x udebs, based on linux-kernel-di-s390x-2.6.
+ * [sparc64] Sync udebs with sparc.
+
+ [ Ben Hutchings ]
+ * [powerpc] Fix module selection for {ata,ide,scsi-core}-modules udebs
+ * [alpha] wire up accept4 syscall, thanks to Michael Cree
+ * iwlagn: fix modinfo display for 135 ucode (Closes: #647958)
+ * [powerpc] ptrace: Fix build with gcc 4.6
+ * [arm] add io{read,write}{16,32}be functions (fixes FTBFS)
+ * cifs, freezer: add wait_event_freezekillable and have cifs use it
+ (Closes: #488794)
+ * [alpha] Remove old, broken udeb configuration (Closes: #647586)
+ * DFSG: Remove drivers/staging/ft1000/ft1000-*/*.img, non-free
+ firmware for drivers we don't build
+ * hfs: fix hfs_find_init() sb->ext_tree NULL ptr oops (CVE-2011-2203)
+ * vmscan: fix shrinker callback bug in fs/super.c
+ * block: Always check length of all iov entries in blk_rq_map_user_iov()
+ * [x86] Add amilo-rfkill driver for some Fujitsu-Siemens Amilo laptops
+ (Closes: #631664)
+
+ [ Arnaud Patard ]
+ * [arm] add missing ioread/write be functions to ixp4xx to fix FTBFS
+ * [armhf] allow to build kernel image for iMX51 and iMX53 and enable some
+ iMX53 platforms.
+ * [armhf] add ahci for iMX53, pata for iMX51
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 13 Nov 2011 20:08:09 +0000
+
+linux-2.6 (3.1.0-1~experimental.1) experimental; urgency=low
+
+ * New upstream release: http://kernelnewbies.org/Linux_3.1
+ - drm/i915: FBC off for ironlake and older, otherwise on by default
+ (Closes: #641622)
+ - drm/radeon: Update AVIVO cursor coordinate origin before x/yorigin
+ calculation (Closes: #585130)
+ - crypto: ghash - Avoid null pointer dereference if no key is set
+
+ [ Ben Hutchings ]
+ * [powerpc/powerpc64] Add missing #include to LPAR console selection fix
+ * Make kernel-wedge package checks non-fatal in experimental builds
+ * [x86/!486] Enable INTEL_IDLE
+ * aufs: Update to aufs3.1-20111031 (Closes: #644687)
+
+ [ Bastian Blank ]
+ * Use xz compression for debug packages.
+ * Make gcc-4.6 the default compiler.
+ * Use shorter versions in the package names.
+ * Remove linux-tools-* binary package.
+ * Drop external module packages stuff.
+ * Set default security module to Unix Discretionary Access Controls.
+ - Remove unneeded selinux boot parameter.
+
+ -- Bastian Blank <waldi@debian.org> Thu, 03 Nov 2011 20:03:14 +0100
+
+linux-2.6 (3.1.0~rc7-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * Build udebs for the installer
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 25 Sep 2011 22:52:50 +0100
+
+linux-2.6 (3.1.0~rc6-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [ia64] Disable GENERIC_GPIO (fixes FTBFS)
+ * [i386] libertas: prioritize usb8388_olpc.bin firmware on OLPC machines
+ * [armel/ixp4xx] Add gpioblib support (fixes FTBFS)
+ * [i386] Fix alignment of alternative instruction entries (Closes: #640964)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 21 Sep 2011 05:45:40 +0100
+
+linux-2.6 (3.1.0~rc4-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * aufs: Disable until it is updated for Linux 3.1
+ * rt: Disable until it is updated for Linux 3.1
+ * nfs: Enable NFSv4.1/pNFS (Closes: #627655)
+ * [x86] ACPI: Enable ACPI_APEI_GHES as built-in (no longer modular).
+ Enable ACPI_APEI_MEMORY_FAILURE.
+ * netfilter: Enable IP_SET_HASH_NETIFACE as module
+ * net: Enable NFC, NFC_PN533 as modules
+ * video: Enable FB_UDL as module (Closes: #618261)
+ * target: Enable ISCSI_TARGET as module
+ * skge: Enable SKGE_GENESIS
+ * net/wireless: Enable RTL8192DE as module
+ * hwmon: Enable SENSORS_EMC2103, SENSORS_LM95245, SENSORS_MAX1668,
+ SENSORS_NTC_THERMISTOR, SENSORS_SMM665 as modules
+ * [i386] Enable GPIO_CS5535, MFD_CS5535, CS5535_MFGPT,
+ CS5535_CLOCK_EVENT_SRC, GPIO_VX855, MFD_VX855 as modules;
+ [i386/486] Enable OLPC_XO1_PM, OLPC_XO1_RTC, OLPC_XO1_SCI, OLPC_XO15_SCI
+ (Closes: #639113)
+ * media/dvb: Enable DVB_NET
+ * media/rc: Enable IR_MCE_KBD_DECODER as module
+ * gspca: Enable USB_GSPCA_SE401 as module
+ * de4x5: Disable on all architectures except alpha (Closes: #639538)
+ * wl128x: Disable on all flavours except armhf/omap
+ * Make bug script accept failure of lspci (Closes: #639439)
+ * [alpha] Disable GENERIC_GPIO (Closes: #638696)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 29 Aug 2011 14:48:28 +0100
+
+linux-2.6 (3.0.0-6) unstable; urgency=high
+
+ [ Uwe Kleine-König ]
+ * [amd64] Update rt featureset to 3.0.7-rt20
+
+ [ Bastian Blank ]
+ * Add stable 3.0.7, including:
+ - drm/radeon: Update AVIVO cursor coordinate origin before x/yorigin
+ calculation (Closes: #585130)
+ - ipv6: fix NULL dereference in udp6_ufo_fragment() (Closes: #643817)
+ For the complete list of changes, see:
+ http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.0.7
+
+ [ Ben Hutchings ]
+ * [powerpc] Change ATA, PATA_MACIO from module to built-in (Closes: #641210)
+ * [powerpc] Change IDE, IDE_GD from built-in to module
+ * Add stable 3.0.8, including:
+ - cputimer: Cure lock inversion
+ - drm/ttm: ensure ttm for new node is bound before calling move_notify()
+ - drm/ttm: unbind ttm before destroying node in accel move cleanup
+ - CIFS: Fix ERR_PTR dereference in cifs_get_root
+ - xfs: start periodic workers later
+ - mm: fix race between mremap and removing migration entry
+ - x25: Prevent skb overreads when checking call user data
+ - crypto: ghash - Avoid null pointer dereference if no key is set
+ (CVE-2011-4081)
+ - hfsplus: Fix kfree of wrong pointers in hfsplus_fill_super() error path
+ For the complete list of changes, see:
+ http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.0.8
+ * [{mips,mipsel}/{4,5}kc-malta] Disable X.25, as in all other configurations
+ * ark3116: Fix initialisation order (Closes: #640391)
+ * Add empty files to trigger generation of kernel-image udebs
+ * aufs: Update to aufs3.0-20111031 (Closes: #644687)
+ * xfs: Fix possible memory corruption in xfs_readlink (CVE-2011-4077)
+ * oom: fix integer overflow of points in oom_badness (CVE-2011-4097)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 01 Nov 2011 14:50:06 +0000
+
+linux-2.6 (3.0.0-5) unstable; urgency=low
+
+ [ Ben Hutchings ]
+ * Bump ABI to 2
+ * kobj_uevent: Ignore if some listeners cannot handle message
+ (Closes: #641661)
+ * Build udebs for the installer
+ * Add stable 3.0.5 and 3.0.6, including:
+ - TTY: pty, fix pty counting
+ - pata_via: disable ATAPI DMA on AVERATEC 3200
+ - atm: br2684: Fix oops due to skb->dev being NULL
+ - alarmtimers: Avoid possible null pointer traversal
+ - alarmtimers: Memset itimerspec passed into alarm_timer_get
+ - alarmtimers: Avoid possible denial of service with high freq periodic
+ timers
+ - rtc: Fix RTC PIE frequency limit
+ - x86, perf: Check that current->mm is alive before getting user callchain
+ - xen/smp: Warn user why they keel over - nosmp or noapic and what to use
+ instead. (Closes: #637308)
+ - drm/nouveau: properly handle allocation failure in nouveau_sgdma_populate
+ - net/9p: fix client code to fail more gracefully on protocol error
+ - virtio: Fix the size of receive buffer packing onto VirtIO ring.
+ - virtio: VirtIO can transfer VIRTQUEUE_NUM of pages.
+ - fs/9p: Fid is not valid after a failed clunk.
+ - fs/9p: When doing inode lookup compare qid details and inode mode bits.
+ - fs/9p: Always ask new inode in create
+ - net/9p: Fix the msize calculation.
+ - 9p: close ACL leaks
+ - fs/9p: Add fid before dentry instantiation
+ - net/9p: Fix kernel crash with msize 512K
+ - fs/9p: Always ask new inode in lookup for cache mode disabled
+ - vfs: restore pinning the victim dentry in vfs_rmdir()/vfs_rename_dir()
+ - cifs: fix possible memory corruption in CIFSFindNext (CVE-2011-3191)
+ - writeback: introduce .tagged_writepages for the WB_SYNC_NONE sync stage
+ - writeback: update dirtied_when for synced inode to prevent livelock
+ - fib:fix BUG_ON in fib_nl_newrule when add new fib rule
+ - scm: Capture the full credentials of the scm sender
+ - vlan: reset headers on accel emulation path
+ - xfrm: Perform a replay check after return from async codepaths
+ - bridge: Pseudo-header required for the checksum of ICMPv6
+ - bridge: fix a possible use after free
+ - TPM: Call tpm_transmit with correct size (CVE-2011-1161)
+ - TPM: Zero buffer after copying to userspace (CVE-2011-1162)
+ - ALSA: fm801: Gracefully handle failure of tuner auto-detect
+ (Closes: #641946)
+ - btrfs: fix d_off in the first dirent
+ - ARM: 7091/1: errata: D-cache line maintenance operation by MVA may not
+ succeed
+ - ARM: 7099/1: futex: preserve oldval in SMP __futex_atomic_op
+ - ALSA: usb-audio: Check for possible chip NULL pointer before clearing
+ probing flag
+ - cfg80211: Fix validation of AKM suites
+ - iwlagn: fix dangling scan request
+ - block: Free queue resources at blk_release_queue() (Closes: #631187)
+ For the complete list of changes, see:
+ http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.0.5
+ http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.0.6
+ * Make taskstats require root access (CVE-2011-2494)
+
+ [ Uwe Kleine-König ]
+ * [amd64] Update rt featureset to 3.0.6-rt16 (Closes: #643301)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 05 Oct 2011 15:14:34 +0100
+
+linux-2.6 (3.0.0-4) unstable; urgency=low
+
+ [ Ben Hutchings ]
+ * Make bug script accept failure of lspci (Closes: #639439)
+ * [alpha] Disable GENERIC_GPIO (Closes: #638696)
+ * Add stable 3.0.4, including:
+ - loop: fix deadlock when sysfs and LOOP_CLR_FD race against each other
+ - Btrfs: fix an oops of log replay
+ - ext4: Fix ext4_should_writeback_data() for no-journal mode
+ - ext4: call ext4_ioend_wait and ext4_flush_completed_IO in ext4_evict_inode
+ - ext4: Resolve the hang of direct i/o read in handling
+ EXT4_IO_END_UNWRITTEN.
+ - ext4: fix nomblk_io_submit option so it correctly converts uninit blocks
+ - xen-blkfront: Drop name and minor adjustments for emulated scsi devices
+ - xen/x86: replace order-based range checking of M2P table by linear one
+ - rt2x00: fix order of entry flags modification
+ - Add a personality to report 2.6.x version numbers
+ For the complete list of changes, see:
+ http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.0.4
+ * sendmmsg/sendmsg: fix unsafe user pointer access
+ * rt2x00: fix crash in rt2800usb_write_tx_desc
+ * rt2x00: fix crash in rt2800usb_get_txwi (Closes: #636531)
+ * [sparc] Only Panther cheetah+ chips have POPC (Closes: #639949)
+ * uvcvideo: Fix crash when linking entities (Closes: #637740)
+ * Update Spanish debconf template translations (Omar Campagne)
+ (Closes: #636242)
+
+ [ Moritz Muehlenhoff ]
+ * Update German Debconf translation. Thanks to Holger Wansing
+ (Closes: #641487)
+
+ [ Uwe Kleine-König ]
+ * [amd64] Update rt featureset to 3.0.4-rt14
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 19 Sep 2011 14:40:42 +0100
+
+linux-2.6 (3.0.0-3) unstable; urgency=low
+
+ [ Ben Hutchings ]
+ * Disable SENSORS_SHT15, unlikely to be usable on any supported platform
+ (Closes: #638696)
+ * Add stable 3.0.3, including:
+ - atm: br2864: sent packets truncated in VC routed mode (Closes: #638656)
+ For the complete list of changes, see:
+ http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.0.3
+ * netfilter: TCP and raw fix for ip_route_me_harder (fixes case where
+ SNAT/masquerading is not done)
+ * Remove net device features from bug reports (Closes: #638956)
+ * [mips,mipsel] Ignore nfs ABI changes made in 3.0.0-2; fixes FTBFS
+ * genirq: Fix wrong bit operation
+ * befs: Validate length of long symbolic links (CVE-2011-2928)
+ * CIFS: Fix memory corruption on mount (Closes: #635344)
+ * x86-32, vdso: On system call restart after SYSENTER, use int $0x80
+ * drm/ttm: fix ttm_bo_add_ttm(user) failure path
+ * fuse: check size of FUSE_NOTIFY_INVAL_ENTRY message
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 27 Aug 2011 08:04:02 +0100
+
+linux-2.6 (3.0.0-2) unstable; urgency=high
+
+ [ Aurelien Jarno ]
+ * Add configuration files for s390x architecture.
+
+ [ Ben Hutchings ]
+ * linux-libc-dev: Install include/asm under arch-specific directory
+ (thanks to Aurelien for correcting the directory); mark package as
+ multi-arch-coinstallable (Multi-Arch: same)
+ * [powerpc] Use libata-based drivers for most PATA controllers
+ (Closes: #636854):
+ - Various drivers replaced as for x86 in 2.6.32-10
+ - pata_macio replaces ide_pmac
+ * Add stable 3.0.2, including:
+ - net: Cap number of elements for sendmmsg
+ - net: Fix security_socket_sendmsg() bypass problem
+ - [x86] xen: allow enable use of VGA console on dom0
+ - net: Compute protocol sequence numbers and fragment IDs using MD5
+ - cifs: cope with negative dentries in cifs_get_root
+ - ALSA: snd-usb: avoid dividing by zero on invalid input
+ - ipv6: make fragment identifications less predictable (CVE-2011-2699)
+ - sch_sfq: fix sfq_enqueue() (Closes: #631945)
+ - gre: fix improper error handling
+ - ecryptfs: Add mount option to check uid of device being mounted
+ = expect uid
+ - ecryptfs: Return error when lower file pointer is NULL
+ - ext{3,4}: Properly count journal credits for long symlinks
+ For the complete list of changes, see:
+ http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.0.2
+ * [x86] Enable RTS_PSTOR as module
+
+ [ maximilian attems ]
+ * Add stable 3.0.1, including:
+ - gro: Only reset frag0 when skb can be pulled (CVE-2011-2723)
+ - staging: comedi: fix infoleak to userspace (CVE-2011-2909)
+ - rtc: limit frequency
+ - CIFS: Fix oops while mounting with prefixpath
+ - [SCSI] fix crash in scsi_dispatch_cmd()
+ - tracing: Fix bug when reading system filters on module removal
+ - tracing: Have "enable" file use refcounts like the "filter" file
+ - ext4: fix i_blocks/quota accounting when extent insertion fails
+ - ext4: free allocated and pre-allocated blocks when check_eofblocks_fl
+ fails
+ - ext3: Fix oops in ext3_try_to_allocate_with_rsv()
+ - nfsd4: remember to put RW access on stateid destruction
+ - nfsd4: fix file leak on open_downgrade
+ - NFS: Fix spurious readdir cookie loop messages
+ - proc: fix a race in do_io_accounting()
+ - ipc/sem.c: fix race with concurrent semtimedop() timeouts and IPC_RMID
+ - [armel,armhf,hppa] dm io: flush cpu cache with vmapped io
+ - dm snapshot: flush disk cache when merging
+ For the complete list of changes, see:
+ http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.0.1
+
+ [ Jonathan Nieder ]
+ * perf: do not look at ./config for configuration (Closes: #632923)
+ (CVE-2011-2905)
+
+ [ Uwe Kleine-König ]
+ * [amd64] Update rt featureset to 3.0.1-rt11
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 16 Aug 2011 06:08:53 +0100
+
+linux-kbuild-2.6 (3.0.0-2) unstable; urgency=low
+
+ * Include new script depmod.sh (Closes: #635539)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 29 Jul 2011 01:00:20 +0200
+
+linux-kbuild-2.6 (3.0.0-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 24 Jul 2011 15:38:35 +0200
+
+linux-2.6 (3.0.0-1) unstable; urgency=low
+
+ * New upstream release: http://kernelnewbies.org/Linux_3.0
+
+ [ maximilian attems ]
+ * Topconfig enable modular VIDEO_SR030PC30, VIDEO_NOON010PC30,
+ SOC_CAMERA_IMX074, SOC_CAMERA_OV2640, SOC_CAMERA_OV6650,
+ SOC_CAMERA_OV9740, USB_YUREX.
+ * [x86] enable modular VIDEO_VIA_CAMERA.
+ * [x86_32] enable modular XO15_EBOOK.
+ * ALSA: hda - Enable auto-parser as default for Conexant codecs.
+
+ [ Ben Hutchings ]
+ * linux-support, linux-tools: Use dh_python2 instead of dh_pysupport
+ * aufs: Update for 3.0
+ * [amd64] Enable PCMCIA_AHA152X as module (Closes: #632929)
+ * Update debconf template translations:
+ - Slovak (Slavko)
+ * [x86] comedi: Enable the same drivers as in stable (squeeze), except
+ for ISA drivers on amd64 (Closes: #633516)
+ * Reduce required initramfs-tools version to 0.99~, to ease backporting
+ * [armhf/mx5] Explicitly configure this flavour to support i.MX51; it
+ is not currently possible to support other i.MX5x processors as well
+
+ [ Arnaud Patard ]
+ * Merge ixp4xx build fix and enable ixp4xx back
+
+ [ Aurelien Jarno ]
+ * [mips/octeon] Disable MEGARAID_SAS, SUSPEND, HIBERNATION, PM_RUNTIME.
+ Enable FUSION, FUSION_SAS, HW_RANDOM, HW_RANDOM_OCTEON,
+ OCTEON_MGMT_ETHERNET, CONFIG_OCTEON_ETHERNET.
+
+ [ Bastian Blank ]
+ * [xen] Allow autoloading of backend drivers.
+
+ [ Uwe Kleine-König ]
+ * [amd64] Add rt featureset with 3.0-rt2 patch set
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 24 Jul 2011 02:42:27 +0200
+
+linux-2.6 (3.0.0~rc6-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ maximilian attems ]
+ * Topconfig enable modular USB_NET_KALMIA, I2C_DIOLAN_U2C, SMBUS,
+ SENSORS_SMBUS, SENSORS_SHT21, SENSORS_EMC6W201, SENSORS_SCH5627,
+ SENSORS_ADS1015, SENSORS_W83795, SENSORS_DS620, SENSORS_LINEAGE,
+ SENSORS_LTC4151, SENSORS_LTC4261, SENSORS_MAX16065, SENSORS_MAX6639,
+ SENSORS_MAX6642, BT_WILINK.
+ * [x86_32] enable modular I2C_PXA.
+ * [x86] enable modular SENSORS_FAM15H_POWER.
+ * drm/i915: Hold struct_mutex during i915_save_state/i915_restore_state.
+ * [thinkpad]: Add KEY_MICMUTE and enable it on Lenovo X220.
+ * [m68k]: resources: Add lookup_resource().
+ * m68k/atari: Reserve some ST-RAM early on for device buffer use.
+ * ALSA: hda - Handle -1 as invalid position, too
+ * ALSA: hda - Judge playback stream from stream id in azx_via_get_position()
+
+ [ Ben Hutchings ]
+ * [x86] Enable SCSI_ISCI as module
+
+ -- maximilian attems <maks@debian.org> Tue, 05 Jul 2011 11:05:43 +0200
+
+linux-kbuild-2.6 (3.0.0~rc5-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 29 Jun 2011 02:32:31 +0100
+
+linux-2.6 (3.0.0~rc5-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+ - fix wrong iput on d_inod. (closes: #631255, #631802)
+
+ [ maximilian attems ]
+ * [x86] enable some comedi modules. (closes: #631199)
+ * [kirkwood] Enable sound support for the HP t5325 (closes: #631762)
+
+ [ Arnaud Patard ]
+ * [armel] disable ixp4xx, until upstream agrees on how to fix
+ the build error
+ * [armel] Remove configuration options which don't exist anymore
+ * [armhf] disable net dma/async tx on mx5 as it can't work
+
+ -- maximilian attems <maks@debian.org> Tue, 28 Jun 2011 11:55:21 +0200
+
+linux-2.6 (3.0.0~rc4-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+ - drm/i915: Fixes. (closes: #627976)
+
+ [ maximilian attems ]
+ * [x86] enable modular INTEL_OAKTRAIL, ACPI_APEI_PCIEAER.
+ * Topconfig enable modular RADIO_WL1273, RADIO_WL128X.
+
+ [ Ben Hutchings ]
+ * rt2800pci: Add device ID for RT539F device (Closes: #630960)
+ * atm: Enable for all architectures except m68k, s390 (Closes: #630900)
+
+ -- maximilian attems <maks@debian.org> Tue, 21 Jun 2011 15:00:23 +0200
+
+linux-2.6 (3.0.0~rc3-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [i386] idle: EXPORT_SYMBOL(default_idle, pm_idle) if
+ CONFIG_APM_MODULE (only); fixes FTBFS
+
+ [ maximilian attems ]
+ * Update configs.
+ * Topconfig enable BPF_JIT. (closes: #630553)
+ * Update debconf pt (Américo Monteiro) translations. (closes: #627631)
+ * Add kbuild fixes out of linux-next.
+
+ -- maximilian attems <maks@debian.org> Thu, 16 Jun 2011 15:04:33 +0200
+
+linux-2.6 (3.0.0~rc2-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ maximilian attems ]
+ * Newer Standards-Version 3.9.2 without changes.
+
+ [ Hector Oron ]
+ * [armel/iop32x] Fix FTBFS (Closes: #629342)
+
+ [ Aurelien Jarno ]
+ * [mips,mipsel] Update arch/mips/kernel/i8259.c to fix FTBFS.
+ * [mips,mipsel] Remove explicit disable of CONFIG_DRM_NOUVEAU and
+ CONFIG_DRM_RADEON_KMS.
+
+ [ Ben Hutchings ]
+ * perf: Cancel -Werror compiler option; fixes FTBFS with perl 5.14
+ * qla4xxx: Remove our fix for #598503; it has now been fixed upstream
+ in a different way and the two changes resulted in FTBFS
+ * [ia64] nouveau: Disable ACPI support. It probably wasn't very useful
+ on ia64, and now depends on mxm-wmi which is definitely x86-only.
+ * Make gcc-4.5 the default compiler (except for alpha, hppa and m68k)
+ * Restore xen-linux-system-<version>-<flavour> packages
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 09 Jun 2011 01:10:53 +0100
+
+linux-kbuild-2.6 (3.0.0~rc1-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+ * Remove docproc, no longer required for module builds
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 01 Jun 2011 10:21:01 +0100
+
+linux-2.6 (3.0.0~rc1-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [x86] Enable BACKLIGHT_APPLE, replacing BACKLIGHT_MBP_NVIDIA
+ (Closes: #627492)
+ * cgroups: Disable memory resource controller by default. Allow it
+ to be enabled using kernel parameter 'cgroup_enable=memory'.
+ * rt2800usb: Enable support for more USB devices including
+ Linksys WUSB600N (Closes: #596626) (this change was accidentally
+ omitted from 2.6.39-1)
+ * fs: Enable FHANDLE
+ * cgroups: Enable CGROUP_MEM_RES_CTLR_SWAP but not
+ CGROUP_MEM_RES_CTLR_SWAP_ENABLED. Swap accounting can be enabled
+ using kernel parameter 'swapaccount'.
+ * ipv4: Enable IP_FIB_TRIE_STATS
+ * netfilter: Enable IP_SET, IP_SET_BITMAP_IP, IP_SET_BITMAP_IPMAC,
+ IP_SET_BITMAP_PORT, IP_SET_HASH_IP, IP_SET_HASH_IPPORT,
+ IP_SET_HASH_IPPORTIP, IP_SET_HASH_IPPORTNET, IP_SET_HASH_NET,
+ IP_SET_HASH_NETPORT, IP_SET_LIST_SET, NETFILTER_XT_SET as modules
+ * net/sched: Enable NET_SCH_QFQ as module
+ * can: Enable CAN_SOFTING, CAN_SOFTING_CS as modules
+ * mtd: Enable MTD_SWAP as module
+ * of, proc: Enable PROC_DEVICETREE
+ * dm: Enable DM_RAID, DM_FLAKEY as modules. Note these are currently
+ experimental.
+ * target: Enable TCM_FC as module
+ * net/wireless/ath: Enable CARL9170 as module (carl9170, replacing
+ ar9170usb)
+ * rtlwifi: Enable RTL8192SE as module (Closes: #590280)
+ * net/wireless: Enable MWIFIEX, MWIFIEX_SDIO as modules
+ * net/usb: Enable USB_VL600 as module
+ * tablet: Enable drivers for all possible architectures and flavours
+ * tablet: Enable TABLET_USB_HANWANG as module
+ * pps: Enable PPS_CLIENT_PARPORT as module
+ * ptp: Enable PTP_1588_CLOCK, PTP_1588_CLOCK_GIANFAR,
+ PTP_1588_CLOCK_IXP46X as modules
+ * [x86] watchdog: Enable SP5100_TCO, NV_TCO as modules
+ * media/rc: Enable IR_REDRAT3, RC_LOOPBACK as module
+ * [x86] media/rc: Enable IR_ITE_CIR, IR_FINTEK as modules
+ * gspca: Enable USB_GSPCA_KINECT as module
+ * [i386] radio: Enable RADIO_MIROPCM20 as module
+ * s3fb: Enable FB_S3_DDC
+ * viafb: Enable FB_VIA_X_COMPATIBILITY
+ * es1968: Enable SND_ES1968_RADIO
+ * sound: Enable SND_ISIGHT, SND_LOLA as modules
+ * hid: Enable HID_ACRUX, HID_EMS_FF, HID_KEYTOUCH, HID_LCPOWER,
+ HID_MULTITOUCH, HID_ROCCAT_ARVO, HID_ROCCAT_KONEPLUS,
+ HID_ROCCAT_KOVAPLUS as modules
+ * usb-storage: Enable USB_STORAGE_REALTEK, USB_STORAGE_ENE_UB6250 as
+ modules
+ * mmc: Enable MMC_VUB300, MMC_USHC as modules
+ * memstick: Enable MEMSTICK_R592 as module
+ * [x86] edac: Enable EDAC_I7300 as module
+ * [i386] staging, video: Enable FB_OLPC_DCON as module
+ * [x86] staging, drm: Enable DRM_PSB as module
+ * crypto, net: Enable CRYPTO_USER_API_HASH, CRYPTO_USER_API_SKCIPHER as
+ modules
+ * [x86] block, xen: Enable XEN_BLKDEV_BACKEND as module
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 01 Jun 2011 06:41:14 +0100
+
+linux-2.6 (2.6.39-3) unstable; urgency=low
+
+ [ Ben Hutchings ]
+ * [x86] i915: Revert "drm/i915: Enable GMBUS for post-gen2 chipsets"
+ (Closes: #627575)
+ * linux-source-<version>: Suggest libqt4-dev (for 'make xconfig')
+ instead of libqt3-mt-dev (Closes: #631666)
+ * [armhf] Add omap flavour, thanks to Sebastian Reichel
+ * [armhf] rtc-twl: Switch to using threaded irq
+ * bridge/netfilter: provide a cow_metrics method for fake_ops
+ (Closes: #629932)
+ * Update debconf template translations:
+ - Danish (Joe Dalton) (Closes: #632551)
+ - Slovak (Slavko) (Closes: #608684)
+ * partitions/efi: Fix crash (oops) caused by corrupted GUID partition
+ table (CVE-2011-1577)
+ * ksm: fix NULL pointer dereference in scan_get_next_rmap_item()
+ (CVE-2011-2183)
+ * inet_diag: Fix infinite loop in inet_diag_bc_audit() (CVE-2011-2213)
+ * taskstats: don't allow duplicate entries in listener mode (CVE-2011-2484)
+ * bluetooth: Prevent buffer overflow in l2cap config request
+ (CVE-2011-2497)
+
+ [ maximilian attems ]
+ * Add stable 2.6.39.2, including:
+ - block: Fix crash (oops) in blkdev_get() on failed exclusive open
+ (Closes: #631574)
+ - nl80211: fix check for valid SSID size in scan operations (CVE-2011-2517)
+ - drm/radeon/kms: viewport height has to be even
+ - drm/radeon/kms: fix for radeon on systems >4GB without hardware iommu
+ - fat: Fix corrupt inode flags when remove ATTR_SYS flag
+ - scsi: Fix oops caused by queue refcounting failure
+ - cifs: don't allow cifs_reconnect to exit with NULL socket pointer
+ - drm/radeon/kms: do bounds checking for 3D_LOAD_VBPNTR and bump array
+ limit
+ - TOMOYO: Fix oops in tomoyo_mount_acl() (CVE-2011-2518)
+ For the complete list of changes, see:
+ http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.39.2
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 04 Jul 2011 07:08:10 +0100
+
+linux-2.6 (2.6.39-2) unstable; urgency=low
+
+ [ Ben Hutchings ]
+ * [x86] Enable BACKLIGHT_APPLE, replacing BACKLIGHT_MBP_NVIDIA
+ (Closes: #627492)
+ * cgroups: Disable memory resource controller by default. Allow it
+ to be enabled using kernel parameter 'cgroup_enable=memory'.
+ * rt2800usb: Enable support for more USB devices including
+ Linksys WUSB600N (Closes: #596626) (this change was accidentally
+ omitted from 2.6.39-1)
+ * [x86] Remove Celeron from list of processors supporting PAE. Most
+ 'Celeron M' models do not.
+ * Update debconf template translations:
+ - Swedish (Martin Bagge) (Closes: #628932)
+ - French (David Prévot) (Closes: #628191)
+ * aufs: Update for 2.6.39 (Closes: #627837)
+ * Add stable 2.6.39.1, including:
+ - ext4: dont set PageUptodate in ext4_end_bio()
+ - pata_cmd64x: fix boot crash on parisc (Closes: #622997, #622745)
+ - ext3: Fix fs corruption when make_indexed_dir() fails
+ - netfilter: nf_ct_sip: validate Content-Length in TCP SIP messages
+ - sctp: fix race between sctp_bind_addr_free() and
+ sctp_bind_addr_conflict()
+ - sctp: fix memory leak of the ASCONF queue when free asoc
+ - md/bitmap: fix saving of events_cleared and other state
+ - cdc_acm: Fix oops when Droids MuIn LCD is connected
+ - cx88: Fix conversion from BKL to fine-grained locks (Closes: #619827)
+ - keys: Set cred->user_ns in key_replace_session_keyring (CVE-2011-2184)
+ - tmpfs: fix race between truncate and writepage
+ - nfs41: Correct offset for LAYOUTCOMMIT
+ - xen/mmu: fix a race window causing leave_mm BUG()
+ - ext4: fix possible use-after-free in ext4_remove_li_request()
+ For the complete list of changes, see:
+ http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.39.1
+ * Bump ABI to 2
+ * netfilter: Enable IP_SET, IP_SET_BITMAP_IP, IP_SET_BITMAP_IPMAC,
+ IP_SET_BITMAP_PORT, IP_SET_HASH_IP, IP_SET_HASH_IPPORT,
+ IP_SET_HASH_IPPORTIP, IP_SET_HASH_IPPORTNET, IP_SET_HASH_NET,
+ IP_SET_HASH_NETPORT, IP_SET_LIST_SET, NETFILTER_XT_SET as modules
+ (Closes: #629401)
+
+ [ Aurelien Jarno ]
+ * [mipsel/loongson-2f] Disable_SCSI_LPFC to workaround GCC ICE.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 07 Jun 2011 12:14:05 +0100
+
+linux-kbuild-2.6 (2.6.39-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 20 May 2011 04:53:57 +0100
+
+linux-2.6 (2.6.39-1) unstable; urgency=low
+
+ [ maximilian attems ]
+ * [x86] Enable CRYPTO_AES_NI_INTEL for all flavours. (closes: #623631)
+ * topconfig: Enable SND_USB_6FIRE, SND_FIREWIRE_SPEAKERS,
+ MEDIA_CONTROLLER, DVB_USB_TECHNISAT_USB2, USB_GSPCA_NW80X,
+ USB_GSPCA_VICAM, XEN_WDT, LOOPBACK_TARGET.
+ * [x86] Enable modular XEN_NETDEV_BACKEND.
+ * topconfig enable mem cgroup RESOURCE_COUNTERS, CGROUP_MEM_RES_CTLR.
+ (closes: #534964)
+ * Cleanup configs.
+
+ [ Ben Hutchings ]
+ * [!x86] Disable TPM drivers. TPMs are currently only fitted in PCs.
+ * rt2800usb: Enable support for more USB devices including
+ Linksys WUSB600N (Closes: #596626)
+ * mm: Select SLAB allocator again. Although SLUB is currently the
+ upstream default, this was set as an experiment rather than a
+ recommendation! SLUB generally has poorer performance than SLAB on
+ larger systems.
+ * postinst: Remove specific support for running a ramdisk creator;
+ warn users that specify one in /etc/kernel-img.conf
+ * Require initramfs-tools >= 0.99, which installs a postinst hook
+
+ [ Arnaud Patard ]
+ * [armel] Disable eeti touchscreen driver due to missing irq_to_gpio on
+ several platforms.
+
+ -- maximilian attems <maks@debian.org> Thu, 19 May 2011 15:34:37 +0200
+
+linux-2.6 (2.6.39~rc7-1~experimental.1) experimental; urgency=low
+
+ * [x86] Enable modular ASUS_WMI and ASUS_NB_WMI. (closes: #626141)
+ * [x86] Enable modular DELL_WMI_AIO, HP_ACCEL, INTEL_IPS, ACPI_IPMI.
+ * [x86/486] Enable modular XO1_RFKILL, XO15_EBOOK.
+ * topconfig: Enable modular NF_CONNTRACK_TIMESTAMP, NF_CONNTRACK_SNMP,
+ NETFILTER_XT_TARGET_AUDIT, NETFILTER_XT_MATCH_ADDRTYPE,
+ NETFILTER_XT_MATCH_DEVGROUP, NET_SCH_SFB, NET_SCH_MQPRIO, NET_SCH_CHOKE,
+ SATA_ACARD_AHCI, PATA_ARASAN_CF, SCSI_BNX2X_FCOE.
+ * Add nl debconf template translation. (closes: #622967)
+ Thanks willem kuyn <willemkuyn@gmail.com>.
+ * topconfig Enable modular RTL8192CU. (closes: #625613)
+
+ -- maximilian attems <maks@debian.org> Tue, 10 May 2011 15:11:00 +0200
+
+linux-2.6 (2.6.39~rc6-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ maximilian attems ]
+ * Enable SQUASHFS_{LZO,XZ}. (closes: #613658)
+ * [x86] Enable EASYCAP. (closes: #624505)
+
+ [ Ben Hutchings
+ * xhci-hcd: Include <linux/slab.h> in xhci-pci.c (fixes FTBFS on armel)
+ * [x86] Enable BRCMSMAC; the brcmsmac module replaces brcm80211
+ (Closes: #625510)
+
+ [ Aurelien Jarno ]
+ * drm/nouveau, drm/radeon: remove fix for non-powerpc/sparc/x86.
+ * [mips,mipsel] Disabled CONFIG_DRM_NOUVEAU and CONFIG_DRM_RADEON_KMS.
+ * [mips/octeon] Disabled CONFIG_HOTPLUG_CPU and CONFIG_PM.
+
+ -- maximilian attems <maks@debian.org> Sun, 08 May 2011 12:23:15 +0200
+
+linux-2.6 (2.6.39~rc5-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [powerpc] kexec: Fix build failure on 32-bit SMP
+ * net/wireless: Adjust config for iwlegacy/iwlwifi split (Closes: #624124)
+ - Enable IWLWIFI_LEGACY as module
+ - Enable IWL4965 as module; it is no longer part of the iwlagn module
+ * [armhf] Actually install zImage into the linux-image package, thanks to
+ Sebastian Reichel
+ * [armhf] Build a linux-tools package
+ * Fix configuration for features that are no longer modular, thanks to
+ Sedat Dilek (Closes: #624372):
+ - bluetooth: Re-enable BT_L2CAP and BT_SCO as part of bluetooth module
+ - leds: Explicitly enable LEDS_CLASS as built-in
+ - mfd: Explicitly disable MFD_WM8994
+
+ [ Aurelien Jarno ]
+ * drm/nouveau, drm/radeon: fix build failure on mips.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 29 Apr 2011 06:04:13 +0100
+
+linux-2.6 (2.6.39~rc4-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [i386] Rename '686-bigmem' flavour to '686-pae'; remove '686' flavour.
+ For 686-class systems without PAE, the '486' flavour is more efficient
+ than the '686' flavour due to optimisation for uniprocessor systems.
+ * Add armhf architecture with mx5 flavour, thanks to Hector Oron and
+ Vagrant Cascadian (Closes: #621032)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 24 Apr 2011 03:21:31 +0100
+
+linux-2.6 (2.6.38-5) unstable; urgency=medium
+
+ [ Thorsten Glaser ]
+ * [m68k] atari: Enable and compile in generic RTC
+ * [m68k] Backport the most urgent fixes from 2.6.39
+ - Add helper functions to handle kernel faults, traps and
+ exceptions better (used by the other patches below)
+ - Add improved support for running under the ARAnyM emulator
+ (its native features interface) and emulated hardware
+ + block access (similar to virtio-block)
+ + console access (redirection to stdout)
+ + network access (Ethernet) (Closes: #599121)
+ * [m68k] Add patch from queue fixing atarifb console output on
+ machines with a lot of FastRAM by reserving some ST-RAM early
+ * [m68k] Add patch from mm mailing list to fix SLUB breakage
+
+ [ Aurelien Jarno ]
+ * [mips/octeon] Disable CONFIG_HOTPLUG_CPU.
+
+ [ Ben Hutchings ]
+ * rt2800pci, rt2800usb: Enable experimental support for more recent
+ chips (Closes: #623808)
+ * [x86] staging: Enable EASYCAP as module (Closes: #624505)
+ * Add stable 2.6.38.5, including:
+ - p54: Initialize extra_len in p54_tx_80211
+ - nfsd4: Fix filp leak (regression introduced in 2.6.38.3)
+ - radeon: PLL tweaks for R7xx
+ - nouveau: Fix notifier memory corruption bug
+ - radeon: Fix bad shift in atom iio table parser
+ - [x86] i915: Sanitize the output registers after resume
+ - [x86] ideapad: Read brightness setting on brightness key notify
+ - ath9k_hw: Partially revert "fix dma descriptor rx error bit parsing"
+ - [s390] pfault: fix token handling
+ - ACPI/PM: Avoid infinite recurrence while registering power resources
+ - [hppa] slub: Disable use with DISCONTIGMEM && !NUMA
+ - vfs: avoid large kmalloc()s for the fdtable
+ - agp: Fix arbitrary kernel memory writes (CVE-2011-1745)
+ - agp: Fix OOM and buffer overflow (CVE-2011-1746)
+ For the complete list of changes, see:
+ http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.38.5
+ * [hppa] Bump ABI to 2a
+ * mpt2sas: Prevent heap overflows and unchecked reads
+ (CVE-2011-1494, CVE-2011-1495)
+ * [armel] Prevent heap corruption in OABI semtimedop
+ * can: Add missing socket check in can/bcm release (CVE-2011-1598)
+ * ldm: Disable broken support for VBLK fragments (CVE-2011-1017)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 07 May 2011 21:24:55 +0100
+
+linux-2.6 (2.6.38-4) unstable; urgency=low
+
+ * usb-audio: Define another USB ID for a buggy USB MIDI cable
+ (Closes: #617743)
+ * net: Enable BATMAN_ADV as module (Closes: #622361)
+ * Add stable 2.6.38.3, including:
+ - eCryptfs: Unlock page in write_begin error path
+ - irda: validate peer name and attribute lengths (CVE-2011-1180)
+ - irda: prevent heap corruption on invalid nickname
+ - nilfs2: fix data loss in mmap page write for hole blocks
+ - ALSA: pcm: fix infinite loop in snd_pcm_update_hw_ptr0()
+ - inotify: fix double free/corruption of stuct user
+ - perf: Fix task_struct reference leak
+ - ROSE: prevent heap corruption with bad facilities (CVE-2011-1493)
+ - [x86] mtrr, pat: Fix one cpu getting out of sync during resume
+ - Input: synaptics - fix crash in synaptics_module_init()
+ - ath9k: fix a chip wakeup related crash in ath9k_start
+ - mac80211: fix a crash in minstrel_ht in HT mode with no supported MCS
+ rates
+ - UBIFS: fix oops on error path in read_pnode
+ - quota: Don't write quota info in dquot_commit()
+ - mm: avoid wrapping vm_pgoff in mremap()
+ - wl12xx: fix potential buffer overflow in testmode nvs push
+ - Bluetooth: sco: fix information leak to userspace (CVE-2011-1078)
+ - bridge: netfilter: fix information leak (CVE-2011-1080)
+ - Bluetooth: bnep: fix buffer overflow (CVE-2011-1079)
+ - netfilter: ip_tables: fix infoleak to userspace (CVE-2011-1171)
+ - netfilter: arp_tables: fix infoleak to userspace (CVE-2011-1170)
+ - [x86] Revert "x86: Cleanup highmap after brk is concluded"
+ (Closes: #621072)
+ - Squashfs: handle corruption of directory structure
+ - ext4: fix a double free in ext4_register_li_request
+ - ext4: fix credits computing for indirect mapped files
+ - nfsd: fix auth_domain reference leak on nlm operations
+ - nfsd4: fix oops on lock failure
+ - char/tpm: Fix unitialized usage of data buffer (CVE-2011-1160)
+ - ipv6: netfilter: ip6_tables: fix infoleak to userspace (CVE-2011-1172)
+ - econet: 4 byte infoleak to the network (CVE-2011-1173)
+ - sound/oss: remove offset from load_patch callbacks
+ (CVE-2011-1476, CVE-2011-1477)
+ - inotify: fix double free/corruption of stuct user (CVE-2011-1479)
+ For the complete list of changes, see:
+ http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.38.3
+ * Add stable 2.6.38.4, including:
+ - vm: Fix vm_pgoff wrap in stack expansion
+ - cifs: Always do is_path_accessible check in cifs_mount
+ - cifs: Check for private_data before trying to put it
+ - sn9c102: Restrict world-wirtable sysfs files
+ - UBIFS: Restrict world-writable debugfs files
+ - vm: Fix mlock() on stack guard page
+ - UBIFS: Fix assertion warnings
+ - perf: Fix task context scheduling
+ - fib: Add rtnl locking in ip_fib_net_exit
+ - l2tp: Fix possible oops on l2tp_eth module unload
+ - ipv6: Fix duplicate /proc/sys/net/ipv6/neigh directory entries.
+ - net_sched: fix ip_tos2prio
+ - pppoe: drop PPPOX_ZOMBIEs in pppoe_flush_dev
+ - xfrm: Refcount destination entry on xfrm_lookup
+ - vlan: Take into account needed_headroom
+ - bridge: Reset IPCB when entering IP stack on NF_FORWARD
+ - futex: Set FLAGS_HAS_TIMEOUT during futex_wait restart setup
+ - oom-kill: Remove boost_dying_task_prio()
+ - UBIFS: Fix oops when R/O file-system is fsync'ed
+ - sched: Fix erroneous all_pinned logic
+ - vmscan: all_unreclaimable() use zone->all_unreclaimable as a name
+ - next_pidmap: fix overflow condition
+ - proc: Do proper range check on readdir offset
+ - [powerpc] Fix oops if scan_dispatch_log is called too early
+ - ehci: Unlink unused QHs when the controller is stopped
+ - USB: Fix formatting of SuperSpeed endpoints in /proc/bus/usb/devices
+ - xhci: Fix math in xhci_get_endpoint_interval()
+ - xhci: Also free streams when resetting devices
+ - USB: Fix unplug of device with active streams
+ - bluetooth: Fix HCI_RESET command synchronization
+ - bridge: Reset IPCB in br_parse_ip_options
+ - ip: ip_options_compile() resilient to NULL skb route
+ For the complete list of changes, see:
+ http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.38.4
+ * [s390] pfault: fix token handling (Closes: #622570)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 23 Apr 2011 03:17:53 +0100
+
+linux-2.6 (2.6.38-3) unstable; urgency=low
+
+ [ Ben Hutchings ]
+ * [ppc64] Add to linux-tools package architectures (Closes: #620124)
+ * [amd64] Save cr4 to mmu_cr4_features at boot time (Closes: #620284)
+ * appletalk: Fix bugs introduced when removing use of BKL
+ * ALSA: Fix yet another race in disconnection
+ * cciss: Fix lost command issue
+ * ath9k: Fix kernel panic in AR2427
+ * ses: Avoid kernel panic when lun 0 is not mapped
+ * PCI/ACPI: Report ASPM support to BIOS if not disabled from command line
+
+ [ Aurelien Jarno ]
+ * rtlwifi: fix build when PCI is not enabled.
+
+ [ Martin Michlmayr ]
+ * rtlwifi: Eliminate udelay calls with too large values (Closes: #620204)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 06 Apr 2011 13:53:30 +0100
+
+linux-2.6 (2.6.38-2) unstable; urgency=low
+
+ [ Ben Hutchings ]
+ * kconfig: Avoid buffer underrun in choice input (fixes FTBFS on mips)
+ * rt2800usb: Disable powersaving by default (Closes: #618930)
+ * b43: Enable B43_PHY_N (Closes: #619070)
+ * net/wireless: Enable RTL8192CE as module (Closes: #619051)
+ * Add configuration for Debian architecture ppc64, matching the
+ powerpc/powerpc64 flavour (Closes: #618976)
+ * Enable BOOT_PRINTK_DELAY (support for the boot_delay kernel parameter)
+ * [x86/!486] Enable TRANSPARENT_HUGEPAGE, TRANSPARENT_HUGEPAGE_MADVISE
+ (Closes: #618924)
+ * [x86/486] Enable X86_32_IRIS (IRIS power-off support) (Closes: #619493)
+ * Add stable 2.6.38.1, including:
+ - RDMA/cma: Fix crash in request handlers (CVE-2011-0695)
+ For the complete list of changes, see:
+ http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.38.1
+ * radeon: Add some sanity checks to obj info record parsing, thanks
+ to John Lindgren (Closes: #618847)
+ * [x86] KVM: remove isr_ack logic from PIC (Closes: #612105)
+ * Add stable 2.6.38.2, including:
+ - cgroups: If you list_empty() a head then don't list_del() it
+ - oom: Fix various bugs in victim task selection
+ - xen-kbdfront: Advertise either absolute or relative coordinates
+ - signal: Prevent rt_sigqueueinfo and rt_tgsigqueueinfo from spoofing
+ the signal code (CVE-2011-1182)
+ - ext3: Skip orphan cleanup on rocompat fs
+ - sysctl: Restrict write access to dmesg_restrict
+ - proc: Protect mm start_code/end_code in /proc/pid/stat
+ - nfsd: Fix internal NFSv4.1 operation flags to be non-overlapping
+ - nfsd: Fix wrong limit used in NFSv4 session creation
+ - USB: Do not pass negative length to snoop_urb()
+ - cdc-acm: Fix various bugs that can lead to a crash or memory corruption
+ - fs: Fix deadlock in pivot_root()
+ - fs: Assign sb->s_bdi to default_backing_dev_info if the bdi is going away
+ - x86: Cleanup highmap after brk is concluded
+ - NFS: Fix a hang/infinite loop in nfs_wb_page()
+ - ext4: Skip orphan cleanup if fs has unknown ROCOMPAT features
+ For the complete list of changes, see:
+ http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.38.2
+ * [amd64] media/rc: Enable IR_NUVOTON as module (Closes: #619937)
+ * [x86] media/rc: Enable IR_WINBOND_CIR as module
+ * [x86] Enable DEBUG_SET_MODULE_RONX (Closes: #619838)
+ * SCSI: Enable TARGET_CORE and related modules (Closes: #619298)
+ * [hppa] Remove .size directive for flush_alias_page (should fix FTBFS)
+
+ [ Jurij Smakov ]
+ * Bump CONFIG_NR_CPUS on sparc to 256 to accomodate T2+ machines
+ (Closes: #619435)
+ * Bump ABI to 2
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 29 Mar 2011 05:31:03 +0100
+
+linux-kbuild-2.6 (2.6.38-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 16 Mar 2011 13:45:58 +0000
+
+linux-2.6 (2.6.38-1) unstable; urgency=low
+
+ * New upstream release: http://kernelnewbies.org/Linux_2_6_38
+
+ [ Ben Hutchings ]
+ * Move firmware-linux-free to separate source package (firmware-free)
+ * Move linux-base to separate source package
+ * net/can: Enable CAN_SLCAN as module (Closes: #617629)
+ * sound: Enable SND_ALOOP as module (Closes: #617869)
+ * Remove the Big Kernel Lock:
+ - adfs,appletalk,i810,ufs,usbip: Refactor locking
+ - hpfs: Disable HPFS_FS
+ * ext4: Disable FS_IOC_FIEMAP ioctl temporarily (together with fixes
+ for btrfs in 2.6.38, closes: #615035)
+ * sched: Build with SCHED_AUTOGROUP, but do not enable autogrouping by
+ default (use sysctl kernel.sched_autogroup_enabled=1) (Closes: #618486)
+ * Set ABI to 1
+
+ [ Aurelien Jarno]
+ * mips/malta-[45]kc:
+ - disable ATM, TR, WAN.
+ - synchronize options in malta-4kc and malta-5kc.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 16 Mar 2011 04:47:57 +0000
+
+linux-2.6 (2.6.38~rc8-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * [sparc] Fix .size directive for do_int_load
+ * [arm] Fix .size directive for xscale_dma_a0_map_area
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 12 Mar 2011 03:31:52 +0000
+
+linux-2.6 (2.6.38~rc7-1~experimental.1) experimental; urgency=low
+
+ [ maximilian attems ]
+ * New upstream release candidate
+ - swiotlb: Fix wrong panic (Closes: #615990)
+ * x86: Set DRM_I915_KMS on request by xorg team.
+
+ [ Ben Hutchings ]
+ * [x86] Correct typos in label names in two asm functions (Closes: #616426)
+ * [x86] Enable VT6656, loading firmware from a separate file (requires
+ firmware-linux-nonfree 0.29) (Closes: #568454)
+ * perf: Build with libdwarf for improved analysis capabilities
+ * perf: Build with newt for improved user interface (Closes: #615868)
+ * aufs: Update for 2.6.38
+ * aufs: Fix device numbers passed to security_path_mknod()
+ * dib0700/dib7000m: Add pid filtering (Closes: #614837)
+ * [powerpc] Revert fb module changes (Closes: #614221)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 08 Mar 2011 02:34:04 +0000
+
+linux-2.6 (2.6.38~rc6-1~experimental.1) experimental; urgency=low
+
+ [ Ben Hutchings ]
+ * New upstream release candidate
+ - drm/radeon/kms: hopefully fix pll issues for real (v3) (Closes: #614566)
+ - r8169: Keep firmware in memory (Closes: #609538)
+ - [sparc] Fix misaligned tracing information which the module loader
+ does not support (Closes: #609371)
+ - [sh4] Export cpu_core_map to fix build failure with CONFIG_SFC=m.
+ - [armel] Support for Buffalo LS-CHL (Closes: #590105).
+ - btrfs: Prevent heap corruption in btrfs_ioctl_space_info()
+ (CVE-2011-0699)
+ - [s390] Remove task_show_regs (CVE-2011-0710)
+ * DFSG: Remove drivers/staging/ft1000/ft1000-pcmcia/boot.h, non-free
+ firmware for a driver we don't build (Closes: #609448)
+ * module,bug: Add TAINT_OOT_MODULE flag for modules that weren't built
+ in-tree
+
+ [ maximilian attems ]
+ * [x86] linux-images suggest extlinux, s/grub/grub-pc/. (closes: #613909)
+
+ [ Aurelien Jarno]
+ * mips/swarm: enable PATA drivers that have been lost during IDE -> PATA
+ conversion.
+ * mips/malta-[45]kc: set VIRTUALIZATION.
+
+ -- maximilian attems <maks@debian.org> Tue, 22 Feb 2011 14:36:33 +0100
+
+linux-2.6 (2.6.37-2) unstable; urgency=low
+
+ [ Ben Hutchings ]
+ * Add stable 2.6.37.1:
+ - libata: Set queue DMA alignment to sector size for ATAPI too
+ - USB: serial: add missing .usb_driver field in serial drivers
+ - USB: EHCI: fix scheduling while atomic during suspend
+ - zram: Fix data corruption issue
+ - brcm80211: Fix suspend/resume issue
+ - ath9k: Fix system hang when resuming from S3/S4
+ - SCSI: Fix medium error problems with some arrays which can cause
+ data corruption
+ - libsas: Fix runaway error handler problem
+ - NFS: Don't use vm_map_ram() in readdir
+ - NFS: Fix NFSv3 exclusive open semantics
+ - /proc/kcore: Fix seeking
+ - mm: Fix migration hangs on anon_vma lock
+ - writeback: Stop background/kupdate works from livelocking other works
+ - writeback: Avoid livelocking WB_SYNC_ALL writeback
+ - ext4: Fix trimming of a single group
+ - af_unix: Avoid socket->sk NULL OOPS in stream connect security hooks
+ - virtio_net: Add schedule check to napi_enable call
+ - ptrace: Use safer wake up on ptrace_detach()
+ - net: Fix ip link add netns oops
+ - SMP: Fix smp_call_function_many() SMP race
+ - md: Ensure no IO request to get md device before it is properly
+ initialised
+ - PM/runtime: Don't enable interrupts while running in_interrupt
+ - [x86] mm: Avoid possible bogus TLB entries by clearing prev
+ mm_cpumask after switching mm
+ * Kbuild: Include localversion file in linux-headers-*; fixes output
+ of 'make kernelrelease'
+ * Add stable 2.6.37.2:
+ - nfsd: Memory corruption due to writing beyond the stat array
+ - xen: p2m: Correctly initialize partial p2m leaf
+ - av7110: Check for negative array offset (CVE-2011-0521)
+ - cred: Fix kernel panic upon security_file_alloc() failure
+ - btrfs: Prevent heap corruption in btrfs_ioctl_space_info()
+ (CVE-2011-0699)
+ - cred: Fix BUG() upon security_cred_alloc_blank() failure
+ - cred: Fix memory and refcount leaks upon security_prepare_creds()
+ failure
+ - PCI: Use security_capable() when checking capablities during config
+ space read
+ - [s390] Remove task_show_regs (CVE-2011-0710)
+ - PM/hibernate: Return error code when alloc_image_page() fails
+ - fs/partitions: Validate map_count in Mac partition tables
+ - workqueue: Wake up a worker when a rescuer is leaving a gcwq
+ - ALSA: caiaq - Fix possible string-buffer overflow
+ * Set ABI to 2
+
+ [ Martin Michlmayr ]
+ * [armel/orion5x] Re-enable all devices.
+ * [armel/kirkwood] Re-enable Seagate FreeAgent DockStar support.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 26 Feb 2011 03:16:16 +0000
+
+linux-kbuild-2.6 (2.6.37-1) unstable; urgency=low
+
+ * Upload to unstable
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 15 Feb 2011 14:15:36 +0000
+
+linux-2.6 (2.6.37-1) unstable; urgency=low
+
+ [ Ben Hutchings ]
+ * [arm] ixp4xx: Revert build fix, now applied upstream which resulted
+ in another build failure
+ * r8169: Keep firmware in memory (Closes: #609538)
+ * r8712u: Firmware filename is rtlwifi/rtl8712u.bin (Closes: #602450)
+ * [sparc] Fix misaligned tracing information which the module loader
+ does not support (Closes: #609371)
+ * Set ABI to 1
+ * Add aufs2.1, marked as staging (Closes: #573189, #613248)
+ * fs/notify: Enable FANOTIFY (Closes: #599877)
+ * acer-wmi, aic94xx, asus_acpi, iscsi, janz-ican3, rtc-ds1511, tc1100-wmi:
+ Restrict write permissions on files in procfs/sysfs
+ * nbd: Remove module-level ioctl mutex mistakenly introduced in 2.6.37
+ * [x86] crypto: Re-enable AES_NI_INTEL as module (Closes: #597658)
+ * [powerpc] video/fb: Enable FB_VGA16 as built-in; build FB_CT65550,
+ FB_NVIDIA, FB_MATROX, FB_RADEON, FB_ATY128, FB_ATY, FB_SIS, FB_3DFX
+ as modules (Closes: #609615)
+
+ [ Aurelien Jarno ]
+ * [sh4] Export cpu_core_map to fix build failure with CONFIG_SFC=m.
+ * [mips/5kc-malta] Enable CONFIG_VGA_CONSOLE.
+
+ [ Bastian Blank ]
+ * Enable CIFS fscache and ACL support.
+ * Enable Xen PCI frontend.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 15 Feb 2011 04:14:09 +0000
+
+linux-kbuild-2.6 (2.6.37-1~experimental.1) experimental; urgency=low
+
+ * New upstream version
+ * Include new script gcc-goto.sh
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 16 Jan 2011 15:14:34 +0000
+
+linux-2.6 (2.6.37-1~experimental.1) experimental; urgency=low
+
+ * New upstream release: http://kernelnewbies.org/Linux_2_6_37
+ - starfire: Fix dma_addr_t size test for MIPS (fixes FTBFS)
+ - watchdog: Improve failure message and documentation (Closes: #608138)
+
+ [ Ben Hutchings ]
+ * i2c-i801: Include <linux/slab.h> (fixes FTBFS on alpha)
+ * [x86] Staging: Enable R8712U as module (r8712u, replacing r8192s_usb)
+ - Enable loading external firmware, thanks to Stefan Lippers-Hollmann
+ * linux-base: Look for GRUB 1 configuration in both /boot/grub and
+ /boot/boot/grub (Closes: #607863)
+ * btrfs: Require CAP_SYS_ADMIN for filesystem rebalance (Closes: #608185)
+ * r8169: Change RTL8111D/RTL8168D initialisation and firmware loading to
+ match upstream version (Closes: #596390 with firmware-realtek 0.28)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 05 Jan 2011 02:44:28 +0000
+
+linux-2.6 (2.6.37~rc7-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+ - [mips] Rename mips_dma_cache_sync back to dma_cache_sync (fixes FTBFS)
+
+ [ Ben Hutchings ]
+ * debian/copyright: Add explanation of indirect linking of perf to
+ OpenSSL (Closes: #606520)
+ * [powerpc,x86] Enable PATA_PCMCIA (Closes: #606324)
+ * Disable BLK_DEV_IDECS
+ * [alpha] Use libata-based drivers for most PATA controllers
+ * [powerpc] linux-base: Run ybin after updating yaboot.conf
+ (Closes: #607284)
+ * Update debconf template translations:
+ - Add Catalan (Jordi Mallach)
+ - Update Danish (Joe Hansen)
+ - Update Spanish (Omar Campagne, Javier Fernández-Sanguino)
+ - Add Italian (Luca Bruno)
+ - Update Japanese (Nobuhiro Iwamatsu)
+ - Add Brazilian Portugese (Flamarion Jorge)
+ - Update Vietnamese (Clytie Siddall)
+ * debian/bin/test-patches: Restrict patches to featureset when building
+ with a featureset (thanks to Tim Small)
+ * Recommend use of 'make deb-pkg' to build custom kernel packages
+ * [ia64] drm/nouveau: Revert unnecessary exclusion of ACPI support code
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 25 Dec 2010 16:21:09 +0000
+
+linux-2.6 (2.6.37~rc5-1~experimental.3) experimental; urgency=low
+
+ * Really apply patches added in the previous version
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 11 Dec 2010 16:27:21 +0000
+
+linux-2.6 (2.6.37~rc5-1~experimental.2) experimental; urgency=low
+
+ * Second attempt to fix FTBFS on various architectures:
+ - [alpha] Do not use -Werror for arch/alpha
+ - [arm/ixp4xx] Rename FREQ macro to avoid collisions (v2)
+ - drm/nouveau: Only select ACPI_VIDEO if its dependencies are met
+ - [mips] Change mips_sc_is_activated() to do what the comment says
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 11 Dec 2010 06:27:51 +0000
+
+linux-2.6 (2.6.37~rc5-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * Attempt to fix FTBFS on various architectures:
+ - [alpha] Do not use -Werror for arch/alpha/kernel
+ - [arm/ixp4xx] Rename FREQ macro to avoid collisions
+ - [mips] Add the necessary parameter to mips_sc_is_activated()
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 10 Dec 2010 02:59:12 +0000
+
+linux-2.6 (2.6.37~rc4-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ maximilian attems ]
+ * Newer Standards-Version 3.9.1 without changes.
+
+ [ Martin Michlmayr ]
+ * Add ixp4xx build fix from Arnaud Patard (Closes: #602669)
+ * [armel/kirkwood] Enable sound.
+ * ASoC: Add support for OpenRD Ultimate (Arnaud Patard).
+
+ [ Ben Hutchings ]
+ * Enable PM_ADVANCED_DEBUG (Closes: #603254)
+ * Disable X.25 protocol and related drivers. This 10 year old experiment
+ has stalled and is a source of security bugs.
+ * Disable Econet protocol. It is unmaintained upstream, probably broken,
+ and of historical interest only.
+ * af_802154,decnet,rds: Disable auto-loading as mitigation against local
+ exploits. These protocol modules are not widely used and can be
+ explicitly loaded or aliased on systems where they are wanted.
+ * debian/rules: Change 'clean' rule to remove package build directories
+ even after a version bump, thanks to Timo Juhani Lindfors
+ * dm: Deal with merge_bvec_fn in component devices better (Closes: #604457)
+ * 9p: Enable 9P_FS_POSIX_ACL
+ * netfilter/ipvs: Enable IP_VS_PE_SIP as module
+ * net/sched: Enable NET_ACT_CSUM as module
+ * can: Enable CAN_SJA1000_ISA, CAN_TSCAN1 as modules
+ * block: Enable BLK_DEV_RBD (Rados) as module
+ * sensors: Enable AD525X_DPOT_SPI, APDS9802ALS, ISL29020, SENSORS_BH1780,
+ SENSORS_BH1770, SENSORS_APDS990X, HMC6352, BMP085 as modules
+ * scsi: Enable SCSI_CXGB4_ISCSI as module
+ * net/ppp: Enable PPTP as module
+ * net: Enable BNA, SMCTR, USB_NET_CX82310_ETH as modules
+ * IR: Enable IR_RC5_SZ_DECODER as module
+ * [i386] IR: Enable IR_NUVOTON as module
+ * V4L: Enable GSPCA_KONICA, GSPCA_XIRLINK_CIT as modules
+ * DVB: Enable USB_LME2510 as module
+ * [i386] sound/isa: Enable SND_AZT1605, SND_AZT2316, SND_JAZZ16,
+ SND_MSND_PINNACLE, SND_MSND_CLASSIC as modules
+ * HID: Enable HID_UCLOGIC, HID_WALTOP, HID_ROCCAT_PYRA as modules
+ * hid-logitech: Enable LOGIWII_FF
+ * Enable USB_UAS (USB-attached SCSI) as module
+ * serial: Enable USB_SERIAL_SAMBA as module
+ * drm/nouveau: Enable DRM_I2C_SIL164 as module
+ * perf: Use libiberty, not libbfd, for symbol demangling
+ (Closes: #604750, #606050)
+ * firmware: Correct copyright information and add source for CIS files
+ (accidentally omitted when merging from sid branch)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 05 Dec 2010 23:19:38 +0000
+
+linux-kbuild-2.6 (2.6.36-1~experimental.1) experimental; urgency=low
+
+ * New upstream version
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 15 Nov 2010 00:20:33 +0000
+
+linux-2.6 (2.6.36-1~experimental.1) experimental; urgency=low
+
+ * New upstream release: http://kernelnewbies.org/Linux_2_6_36
+ - writeback: always use sb->s_bdi for writeback purposes (Closes: #599466)
+ - i7core_edac: fix panic in udimm sysfs attributes registration
+ (Closes: #600528)
+
+ [ Ben Hutchings ]
+ * qla4xxx: Fix build on some architectures lacking 64-bit I/O
+ (Closes: #598503)
+ * [x86] Enable modular TM6000, TM6000_ALSA, TM6000_DVB
+ * [x86] Staging: fix Makefile so brcm80211 will actually build
+ (Closes: #599465)
+ * [x86] Enable modular IDEAPAD_ACPI (Closes: #599444)
+ * perf: Enable Perl and Python scripting
+ - Move scripts to /usr/share/perf_<version>-core (Closes: #599624)
+ * crypto: Explicitly enable algorithm self-tests (Closes: #599441)
+ * [x86] Skip looking for ioapic overrides when ioapics are not present
+ (Closes: #598533)
+ * [x86] ata_piix: Add device ID for ICH4-L
+ * [armel/iop32x,ia64,x86] Disable BLK_DEV_PIIX as obsolete
+ * [amd64] Disable DRM_I810; i81x chipsets do not support 64-bit processors
+ * [x86] Disable DRM_I830; the i915 driver is now used instead
+
+ [ Martin Michlmayr ]
+ * Kirkwood: restrict the scope of the PCIe reset workaround
+
+ -- maximilian attems <max@stro.at> Wed, 27 Oct 2010 13:23:11 +0200
+
+linux-2.6 (2.6.36~rc6-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+ - drm/i915: Ensure that the crtcinfo is populated during mode_fixup()
+ (Closes: #592415)
+ - USB: fix bug in initialization of interface minor numbers
+ (Closes: #598207)
+
+ [ Ben Hutchings ]
+ * linux-base: Remove dependency on libapt-pkg-perl (Closes: #589996, really)
+ * Disable INTEL_IDLE. It can no longer be built as a module and so was
+ actually disabled by the previous version, but I do not consider it ready
+ to build-in yet.
+ * Enable modular NETFILTER_XT_TARGET_CHECKSUM, NETFILTER_XT_TARGET_IDLETIMER,
+ NETFILTER_XT_MATCH_CPU, NETFILTER_XT_MATCH_IPVS
+ * Reenable LOCKUP_DETECTOR, accidentally disabled by the previous version
+ * Enable modular AD525X_DPOT_I2C, ATM_NICSTAR, CAN_ESD_USB2, CHELSIO_T4VF,
+ FIREWIRE_NOSY, HID_ACRUX_FF, HID_ELECOM, INFINIBAND_CXGB4, INFINIBAND_QIB,
+ MTD_PCMCIA, ORINOCO_USB, PPS_CLIENT_LDISC, RAMOOPS, SERIAL_MFD_HSU,
+ UIO_NETX, USB_GSPCA_SPCA1528, USB_GSPCA_SQ930X, USB_SERIAL_SSU100,
+ USB_SERIAL_ZIO, WL1271_SDIO, WL1271_SPI
+ * Enable BT_HCIUART_ATH3K, USB_SERIAL_MOS7715_PARPORT
+ * [x86] Enable modular SENSORS_PKGTEMP
+ * Enable modular IR_CORE, RC_MAP, all IR decoders, IR_IMON, IR_MCEUSB,
+ IR_ENE, IR_STREAMZAP
+ * [x86] Enable modular LIRC drivers
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 03 Oct 2010 21:18:41 +0100
+
+linux-2.6 (2.6.36~rc5-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+ - 3c59x: Fix deadlock in vortex_error() (Closes: #595554)
+
+ [ Ben Hutchings ]
+ * speakup: Update to match Debian package version 3.1.5.dfsg.1-1
+ * [x86] Add brcm80211 driver for Broadcom 802.11n wireless network
+ controllers
+ * [x86] Set XEN_PLATFORM_PCI=y
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 21 Sep 2010 02:15:33 +0100
+
+linux-2.6 (2.6.35-1~experimental.3) experimental; urgency=low
+
+ [ Ritesh Raj Sarraf ]
+ * Add .gnu_debuglink information into kernel modules (Closes: #555549)
+
+ [ Ben Hutchings ]
+ * linux-base: Remove dependency on libapt-pkg-perl (Closes: #589996)
+ * Update debconf template translations:
+ - Czech (Michal Simunek) (Closes: #590546)
+ - Portugese (Américo Monteiro) (Closes: #590557)
+ - French (David Prévot) (Closes: #591149)
+ - Russian (Yuri Kozlov) (Closes: #591241)
+ - Swedish (Martin Bagge) (Closes: #592045)
+ - German (Holger Wansing) (Closes: #592226)
+ * [x86] Enable samsung-laptop driver
+ * [sparc] Enable XVR1000 driver (Closes: #574243)
+ * Change BLK_CGROUP from module to built-in so that cfq can be the
+ default I/O scheduler again (Closes: #593720)
+ * [mipsel/loongson-2f] Enable smtcfb (FB_SM7XX) driver (Closes: #594642)
+
+ [ Ian Campbell ]
+ * Fixes/overrides for Linitan warnings:
+ - Add "(meta package)" to short description of linux-headers
+ metapackages, resolves empty-binary-package.
+ - Add dependency on ${misc:Depends} to all packages, resolves
+ debhelper-but-no-misc-depends. Required update to gencontrol.py to
+ augment rather than override headers_arch_depends read from templates.
+ - Override dbg-package-missing-depends for linux-image-*-dbg. It is not
+ necessary to install the kernel image package to use the dbg package
+ since the dbg package already contains a complete image with symbols.
+
+ [ Bastian Blank ]
+ * Disable Ralink staging drivers, the in-tree ones reached "works-for-me"
+ status.
+
+ [ Aurelien Jarno ]
+ * Fix netfilter CONFIG_COMPAT support.
+ * [sh4] set VIRTUALIZATION.
+ * [mips] Add an octeon flavour.
+
+ [ maximilian attems]
+ * Add stable 2.6.35.3 and 2.6.35.4.
+
+ -- maximilian attems <maks@debian.org> Mon, 06 Sep 2010 15:16:17 +0200
+
+linux-2.6 (2.6.35-1~experimental.2) experimental; urgency=low
+
+ * images: Nuke modules.devname on removal. (closes: #590607)
+ * Add stable 2.6.35.1 and 2.6.35.2.
+ * mm: fix page table unmap for stack guard page properly.
+ * mm: fix up some user-visible effects of the stack guard page.
+ * config.loongson-2f: Enable USB and RTC for loongson-2f.
+ Thanks Geert Stappers <stappers@stappers.nl> (closes: #583689)
+
+ -- maximilian attems <maks@debian.org> Mon, 16 Aug 2010 23:49:32 +0200
+
+linux-kbuild-2.6 (2.6.35-1~experimental.1) experimental; urgency=low
+
+ * New upstream version
+ * Update policy version to 3.9.1; no changes required
+ * Fix minor issues reported by lintian:
+ - Add ${misc:Depends} to dependencies
+ - Add debian/source/format file
+ - Remove redundant priority and section fields
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 08 Aug 2010 22:31:47 +0100
+
+linux-2.6 (2.6.35-1~experimental.1) experimental; urgency=low
+
+ * New upstream release: http://kernelnewbies.org/Linux_2_6_35
+ - [ia64] Fix crash when gcore reads gate area (Closes: #588574)
+ - tpm_tis: fix subsequent suspend failures (Closes: #591031)
+
+ * topconfig enable BLK_CGROUP, NETFILTER_XT_TARGET_TEE, VMWARE_BALLOON,
+ ATH9K_HTC, TOUCHSCREEN_HAMPSHIRE, TOUCHSCREEN_TPS6507X, SND_ASIHPI,
+ SQUASHFS_XATTRS, RCU_FAST_NO_HZ, COMPACTION, IP_MROUTE_MULTIPLE_TABLES,
+ IPV6_MROUTE_MULTIPLE_TABLES, NET_DCCPPROBE, NET_SCTPPROBE, L2TP,
+ BT_L2CAP_EXT_FEATURES, MTD_NAND_RICOH, ATA_BMDMA, KEYBOARD_QT2160,
+ N_GSM, SENSORS_SHT15, SENSORS_EMC1403, SENSORS_ADS7871, SENSORS_TMP102,
+ SND_ES1968_INPUT, SND_MAESTRO3_INPUT, LEDS_LT3593, LEDS_MC13783.
+ * x86 enable INTEL_IDLE, ACPI_HED, ACPI_APEI, ACPI_APEI_GHES,
+ PCI_CNB20LE_QUIRK.
+
+ -- maximilian attems <maks@debian.org> Tue, 03 Aug 2010 16:21:16 +0200
+
+linux-2.6 (2.6.35~rc6-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+ - drm/i915: Add 'reclaimable' to i915 self-reclaimable page allocations
+ (Closes: #534422)
+
+ [ Ben Hutchings ]
+ * [!x86] Disable FB_VIA; these GPUs are only found on x86 motherboards
+ * ds2782_battery: Fix build failure on several architectures
+ * postinst: Remove support for 'default' boot loaders. Warn users on
+ upgrade if the current configuration may rely on this.
+ * [i386/686] Remove AMD K6 from the list of supported processors; it
+ does not implement the CMOV instruction
+ * 3c59x: Fix call to mdio_sync() with the wrong argument (Closes: #589989)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 24 Jul 2010 01:00:26 +0100
+
+linux-2.6 (2.6.35~rc5-1~experimental.1) experimental; urgency=low
+
+ * New upstream release candidate
+
+ [ Ben Hutchings ]
+ * Consistently name the linux-tools package and perf binary using the
+ upstream version without any -rcN suffix
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 13 Jul 2010 01:09:27 +0100
+
+linux-2.6 (2.6.35~rc4-1~experimental.1) experimental; urgency=low
+
+ * New upstream snapshot
+ - [hppa] clear floating point exception flag on SIGFPE signal
+ (Closes: #559406)
+ - Add mantis and hopper DVB drivers (Closes: #577264)
+ - eeepc-laptop: Disable wireless hotplug on more models where the
+ controller is not at the expected address (Closes: #576199)
+ - qcserial: Add support for Qualcomm Gobi 2000 devices
+ (Closes: #585661)
+ - radeon: Fix MacBook Pro connector quirk (Closes: #585943)
+ - r8169: Fix MDIO timing (Closes: #583139)
+ - asix: fix setting mac address for AX88772 (Closes: #587580)
+ - Update Marvell CESA (mv_cesa) driver (Closes: #585790):
+
+ [ Ben Hutchings ]
+ * ipr: add writeq definition if needed (Closes: #584840)
+ * [mips] Fix boot from ATA hard drives (Closes: #584784):
+ - Set io_map_base for several PCI bridges lacking it
+ - Replace per-platform built-in IDE drivers with libata-based drivers
+ - Enable BLK_DEV_SD as built-in on all platforms
+ * Update Spanish debconf templates, thanks to Omar Campagne
+ (Closes: #580538)
+ * [powerpc] Enable pata_amd driver, replacing amd74xx
+ * linux-base: Don't identify LVM2 PVs by UUID (Closes: #585852)
+ * Move NEWS to linux-latest-2.6 (Closes: #586401)
+ * 3c59x: Change locking to avoid use of disable_irq() (Closes: #586967)
+ * Enable IPv6 support for IPVS (IP_VS_IPV6) (Closes: #584549)
+ * linux-base: If the disk ID update process fails, give the user a
+ chance to retry or change their answers (Closes: #585609)
+ * ipv6: Clamp reported valid_lft to a minimum of 0 (Closes: #514644)
+ * ipv6: Use interface max_desync_factor instead of static default
+ (Closes: #514646)
+ * [ia64, powerpc, sparc, x86] Enable KPROBES and KRETPROBES
+ (Closes: #584130)
+ * r8192s_usb: Fix various bugs:
+ - Clean up in case of an error in module initialisation
+ - Rename and remove proc directories correctly if an interface is
+ not called wlan0 (Closes: #582972)
+ - Correct device ID table (Closes: #584945, #587985)
+ * [x86] Enable r8192u_usb driver
+ * Add linux-tools-<version> package containing the perf tool
+ (Closes: #548715)
+ * Enable SERIAL_USB_TI (Closes: #588096) and SERIAL_USB_WHITEHEAT
+ * [x86] Enable EDAC_I7CORE
+
+ [ maximilian attems ]
+ * Enable DRM_RADEON_KMS.
+
+ [ Martin Michlmayr ]
+ * OpenRD-Base: revert patch "allow SD/UART1 selection" since it
+ never made it upstream.
+ * ARM: update mach types.
+ * Add support for OpenRD-Ultimate.
+ * QNAP TS-11x/TS-21x: Add MPP44 (board ID).
+ * Add support for the HP t5325 Thin Client.
+ * m25p80: Add support for Macronix 25L8005.
+ * [armel/kirkwood] Enable FB_XGI and FRAMEBUFFER_CONSOLE.
+ * [armel] Make MOUSE_PS2 modular.
+ * [armel] Build INPUT_UINPUT for all flavours.
+ * [armel/kirkwood] Enable FB_UDL.
+ * [armel] Disable PARPORT_PC (Closes: #588164)
+
+ [ Bastian Blank ]
+ * Disable mISDN support for NETJet cards. The driver binds a generic PCI
+ bridge.
+ * Disable ISDN4Linux drivers.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 10 Jul 2010 21:53:57 +0100
+
+linux-2.6 (2.6.34-1~experimental.2) experimental; urgency=low
+
+ [ Ben Hutchings ]
+ * [x86] Reenable rtl8192su, accidentally disabled in previous version
+ (Closes: #580740)
+ * writeback: Update dirty flags in two steps
+ * writeback: ensure that WB_SYNC_NONE writeback with sb pinned is sync
+ (Closes: #582808)
+ * writeback: fix non-integrity write-back
+ * [mipsel] Add a loongson-2f flavour
+ * [mipsel] Loongson: Define rtc device on MC146818-equipped systems
+ * Make gcc-4.4 the default compiler
+ * [ia64] Hardcode the output of the scripts under arch/ia64/scripts so
+ that we can build out-of-tree modules correctly (refresh and re-add
+ dropped patch) (Closes: #392592)
+ * [ia64] Enable SGI SN support and mspec driver (Closes: #582224)
+ * iwlwifi: Disable QoS when connected to a non-QoS-capable AP
+ (Closes: #578262)
+ * [x86] Disable e_powersaver cpufreq driver as unsafe. It has already
+ been blacklisted by cpufrequtils. The acpi-cpufreq driver can be used
+ instead on some VIA C7 systems. (Closes: #566208)
+ * [amd64] ext4: Fix compat EXT4_IOC_ADD_GROUP (used by online resize)
+ * Install debug kernel image in /usr/lib/debug/boot (Closes: #582810)
+ * Build inet_lro as a module
+ * [sparc] Enable CONFIG_FB_XVR500, CONFIG_FB_XVR2500 (Closes: #508108)
+
+ [ maximilian attems ]
+ * topconfig enable CFQ_GROUP_IOSCHED, MFD_WM8994, REGULATOR_MAX8649,
+ REGULATOR_WM8994, VHOST_NET, BT_ATH3K, CRYPTO_PCRYPT.
+ * [x86] Enable X86_PCC_CPUFREQ, VGA_SWITCHEROO (closes: #582637).
+
+ [ Martin Michlmayr ]
+ * QNAP TS-419P: Export GPIO indicating jumper setting of JP1.
+
+ [ dann frazier ]
+ * [hppa] clear floating point exception flag on SIGFPE signal
+ (Closes: #559406)
+
+ [ Aurelien Jarno ]
+ * [sh4] fix sh_tmu clocksource following recent nohz changes.
+
+ [ Moritz Muehlenhoff ]
+ * Enable X86 board specific fixups for reboot (Closes: #536537)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 06 Jun 2010 18:53:04 +0100
+
+linux-kbuild-2.6 (2.6.34-1~experimental.1) experimental; urgency=low
+
+ * New upstream version
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 20 May 2010 01:19:43 +0100
+
+linux-2.6 (2.6.34-1~experimental.1) experimental; urgency=low
+
+ * New upstream release: http://kernelnewbies.org/Linux_2_6_34
+
+ * New upstream release
+ - rtl8192su: Add IDs for several more devices (Closes: #580740)
+
+ [ maximilian attems ]
+ * topconfig enable IPV6_SIT_6RD, NETFILTER_XT_TARGET_CT, IP_VS_PROTO_SCTP,
+ NF_CONNTRACK_ZONES, CAN_PLX_PCI, TI_DAC7512, SCSI_HPSA, PATA_TOSHIBA,
+ MACVTAP, CHELSIO_T4, IXGBEVF, QLCNIC, LIBERTAS_MESH,
+ USB_NET_SMSC75XX, USB_SIERRA_NET, VIDEO_CX18_ALSA, USB_GSPCA_BENQ,
+ USB_GSPCA_CPIA1, USB_GSPCA_OV534_9, USB_GSPCA_SN9C2028, RADIO_TEF6862,
+ RADIO_SAA7706H, SND_USB_UA101, CEPH_FS, MICREL_PHY, KSZ884X_PCI,
+ SENSORS_ADT7411, SENSORS_ASC7621, VIDEO_TLG2300, DVB_USB_AZ6027,
+ DVB_NGENE, HID_3M_PCT, LOGIG940_FF, HID_MAGICMOUSE, HID_MOSART,
+ HID_NTRIG, HID_QUANTA, HID_STANTUM, HID_WACOM, USB_SERIAL_QCAUX,
+ USB_SERIAL_VIVOPAY_SERIAL, MMC_RICOH_MMC, LEDS_DELL_NETBOOKS, LOGFS.
+ * [x86] Enable EEEPC_WMI.
+ * Fix backlight support on some recent Thinkpads.
+ * acpi: Fall back to manually changing SCI_EN.
+ * Explicitly pass in whether sb is pinned or not.
+
+ [ Ben Hutchings ]
+ * Prepare debconf templates for translation (Closes: #576758)
+ * [x86] Enable r8187se driver, previously named rtl8187se
+
+ [ Aurelien Jarno ]
+ * mips/swarm: fix boot from IDE based media (Sebastian Andrzej Siewior)
+ (closes: #466977).
+ * mips/*: remove SND_* options, as they are already enabled in topconfig.
+
+ -- maximilian attems <maks@debian.org> Wed, 19 May 2010 17:06:13 +0200
+
+linux-2.6 (2.6.33-1~experimental.5) experimental; urgency=low
+
+ [ Ian Campbell ]
+ * Include Xen hypervisor in reportbug "related to" list.
+
+ [ maximilian attems]
+ * Add stable 2.6.33.2.
+
+ [ Ben Hutchings ]
+ * [x86] Enable ramzswap driver (Closes: #573912)
+ * [x86] Re-enable rt2860sta and rt2870sta drivers which were accidentally
+ disabled when moving to Linux 2.6.33 (Closes: #576723)
+ * Add stable 2.6.33.3:
+ - ACPI: EC: Allow multibyte access to EC; fixes temperature monitoring
+ on some Dell laptops (Closes: #563313)
+
+ [ Aurelien Jarno ]
+ * Add support for sh4 architecture, patch by Nobuhiro Iwamatsu
+ (Closes: #569034)
+ * [mips*/*malta] Remove options that are present in topconfig.
+
+ -- maximilian attems <maks@debian.org> Wed, 05 May 2010 16:38:53 +0200
+
+linux-2.6 (2.6.33-1~experimental.4) experimental; urgency=low
+
+ [ Ben Hutchings ]
+ * Include aufs2, marked as staging (Closes: #573189)
+ * Remove /usr/include/drm from linux-libc-dev; let libdrm-dev provide it
+ again (Closes: #572067)
+ * [x86] Enable rtl8192su driver using external firmware
+
+ [ maximilian attems]
+ * Add stable 2.6.33.1.
+
+ -- maximilian attems <maks@debian.org> Wed, 17 Mar 2010 18:13:53 +0100
+
+linux-2.6 (2.6.33-1~experimental.3) experimental; urgency=low
+
+ [ Ben Hutchings ]
+ * Fix regexp for binNMU versions in modules/rules.include (Closes: #524632)
+ * linux-base: Fix bugs and improve libata transition code:
+ - Fix calls to disk_id_to_path (renamed to id_to_path) (Closes: #572283)
+ - Don't show empty list of devices to be relabelled
+ - Don't update udev CD rules unnecessarily
+ - Show the device paths to be added to udev CD rules
+ - Ignore nonexistent devices and properly handle devices of unknown
+ filesystem type (Closes: #572341, #572445)
+ - Don't accept empty filesystem labels as identifiers (Closes: #572438)
+ - For consistency with fresh installations, use or assign UUIDs rather
+ than labels where both are available (Closes: #572376)
+ - Replace CD/DVD/BD device names with udev-provided persistent aliases
+ - Fix update of boot device name for LILO and related loaders
+ - Update uswsusp resume device name
+
+ -- maximilian attems <maks@debian.org> Thu, 11 Mar 2010 05:58:02 +0100
+
+linux-2.6 (2.6.33-1~experimental.2) experimental; urgency=low
+
+ [ Ben Hutchings ]
+ * Add missing debconf templates for linux-base (Closes: #571558)
+ * Fix libata transition code for GRUB 1 config (Closes: #571662)
+
+ -- maximilian attems <maks@debian.org> Sun, 28 Feb 2010 17:48:11 +0100
+
+linux-2.6 (2.6.33-1~experimental.1) experimental; urgency=low
+
+ * New upstream release: http://kernelnewbies.org/Linux_2_6_33
+
+ [ maximilian attems]
+ * [topconfig] set BLK_DEV_DRBD, DRM_NOUVEAU, DRM_NOUVEAU_BACKLIGHT,
+ DRM_VMWGFX, SENSORS_LM73, SENSORS_AMC682, SENSORS_LIS3_I2C,
+ SENSORS_MC13783_ADC, TOUCHSCREEN_DYNAPRO, TOUCHSCREEN_MC13783,
+ GIGASET_CAPI, LEDS_DAC124S085, LEDS_INTEL_SS4200, LEDS_INTEL_SS4200,
+ DVB_FIREDTV, DVB_USB_EC168, SOC_CAMERA_MT9T112, SOC_CAMERA_OV9640,
+ USB_GSPCA_PAC7302, USB_GSPCA_STV0680, AD525X_DPOT, CAN_MCP251X,
+ RT2800PCI, REGULATOR_MAX8660, RTC_DRV_BQ32K, RTC_DRV_MSM6242,
+ RTC_DRV_RP5C01, VMWARE_PVSCSI, SCSI_PM8001, WIMAX_IWMC3200_SDIO,
+ INPUT_SPARSEKMAP, SERIO_ALTERA_PS2, MANTIS_CORE, DVB_MANTIS,
+ DVB_HOPPER.
+ * [x86] set CS5535_MFGPT, SENSORS_K10TEMP, GEODE_WDT, MSI_WMI,
+ TOSHIBA_BT_RFKILL, ACPI_CMPC, CRYPTO_GHASH_CLMUL_NI_INTE.
+
+ [ Ben Hutchings ]
+ * Use libata-based drivers for most PATA controllers (Closes: #444182):
+ - pata_triflex replaces triflex
+ - pata_atiixp replaces atiixp
+ - pata_ns87415 replaces ns87415
+ - pata_sc1200 replaces sc1200
+ - pata_cs5536 replaces cs5536
+ - pata_amd replaces amd74xx
+ - pata_sis replaces sis5513
+ - pata_rz1000 replaces rz1000
+ - pata_efar replaces slc90e66
+ - pata_pdc202xx_old replaces pdc202xx_old
+ - pata_pdc2027x replaces pdc202xx_new
+ - pata_cs5520 replaces cs5520
+ - pata_cs5530 replaces cs5530
+ - pata_cmd64x replaces cmd64x
+ - pata_sil680 replaces siimage
+ - pata_ali replaces alim15x3
+ - pata_via replaces via82cxxx
+ - pata_serverworks replaces serverworks
+ - pata_artop replaces aec62xx
+ - pata_it821x replaces it821x
+ - ata_piix, pata_oldpiix, pata_mpiix mostly replace piix
+ - ata_generic, pata_ns87410, pata_netcell replace ide-pci-generic
+ * Add libata transition script
+
+ -- maximilian attems <maks@debian.org> Thu, 25 Feb 2010 15:21:38 +0100
+
+linux-2.6 (2.6.32-30) unstable; urgency=high
+
+ [ Ben Hutchings ]
+ * mpt2sas: Fix incorrect scsi_dma_map error checking (Closes: #606968)
+ * Update Spanish debconf template translation (Omar Campagne, Javier
+ Fernández-Sanguino) (Really closes: #600694)
+ * intel-iommu: Force-disable IOMMU for iGFX on broken Cantiga revisions
+ (Closes: #607095)
+ * [powerpc] linux-base: Run ybin after updating yaboot.conf
+ (Closes: #607284)
+ * tehuti: Firmware filename is tehuti/bdx.bin
+ * iwlwifi: Reduce a failure-prone memory allocation (Closes: #599345)
+ * linux-base: Look for GRUB 1 configuration in both /boot/grub and
+ /boot/boot/grub (Closes: #607863)
+ * rt28x0: Add ieee80211_regdom module parameter mimicking cfg80211 as a
+ workaround for incorrect region code in NVRAM (Closes: #594561)
+ * btrfs: Require CAP_SYS_ADMIN for filesystem rebalance (Closes: #608185)
+ * [x86] dell-laptop: Enable for some newer Dell models
+ * r8169: Change RTL8111D/RTL8168D initialisation and firmware loading to
+ match upstream version (Closes: #596390 with firmware-realtek 0.28)
+ * Add stable 2.6.32.28:
+ - NFS: Fix panic after nfs_umount()
+ - usb-storage/libusual: Add support for Samsung YP-CP3 MP4 Player,
+ thanks to Vitaly Kuznetsov (Closes: #555835)
+ - bfa: Fix system crash when reading sysfs fc_host statistics
+ (CVE-2010-4343)
+ - IB/uverbs: Handle large number of entries in poll CQ (CVE-2010-4649)
+ - orinoco: Fix TKIP countermeasure behaviour (CVE-2010-4648)
+ - mm: Add security_file_mmap check to install_special_mapping
+ (CVE-2010-4346)
+ - sctp: Fix a race between ICMP protocol unreachable and connect()
+ (CVE-2010-4526)
+ - hvc_console: Fix race between hvc_close and hvc_remove (CVE-2010-2653)
+ (previously applied as an isolated fix in 2.6.32-25)
+ - fuse/cuse: Verify ioctl retries (CVE-2010-4650)
+ * [powerpc] Restore device tree source files to linux-image packages
+ (Closes: #609155)
+
+ [ maximilian attems ]
+ * [openvz] Reenable NF_CONNTRACK_IPV6. (closes: #580507)
+ * cifs: fix another memleak, in cifs_root_iget.
+ * b43: Fix warning at drivers/mmc/core/core.c:237 in mmc_wait_for_cmd.
+ * drm/radeon/kms: MC vram map needs to be >= pci aperture size.
+ * drm/radeon/kms: make sure blit addr masks are 64 bit.
+ * drm/radeon/kms: fix handling of tex lookup disable in cs checker on r2xx.
+ * drm/i915: Free hardware status page on unload when physically mapped.
+ * drm/i915/overlay: Ensure that the reg_bo is in the GTT prior to writing.
+ * drm/radeon/kms/atom: set sane defaults in atombios_get_encoder_mode().
+ * drm/radeon/kms: fix typos in disabled vbios code.
+ * drm/radeon/kms: add workaround for dce3 ddc line vbios bug.
+ * drm/radeon/kms: fix interlaced and doublescan handling.
+ * drm/i915/sdvo: Always add a 30ms delay to make SDVO TV detection reliable.
+ * wireless: b43: fix error path in SDIO.
+ * drm/radeon/kms: don't apply 7xx HDP flush workaround on AGP.
+
+ [ Ian Campbell ]
+ * xen: backport TTM patches to use PCI API. Fixes PCIe GPU (specifically
+ Radeon and Nouveau) on Xen (Closes: #601341).
+ * xen: netback: drop SKBs which are GSO but do not have a partial
+ checksum set (Closes: #608144).
+
+ [ dann frazier ]
+ * exec: make argv/envp memory visible to oom-killer (CVE-2010-4243)
+ * irda: Fix information leak in IRLMP_ENUMDEVICES (CVE-2010-4529)
+ * af_unix: limit unix_tot_inflight (CVE-2010-4249)
+
+ [ Moritz Muehlenhoff ]
+ * net: ax25: fix information leak to userland (CVE-2010-3875)
+ * net: packet: fix information leak to userland (CVE-2010-3876)
+ * net: tipc: fix information leak to userland (CVE-2010-3877)
+ * inet_diag: Make sure we actually run the same bytecode we audited
+ (CVE-2010-3880)
+ * econet: Fix crash in aun_incoming() (CVE-2010-4342)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 11 Jan 2011 05:42:11 +0000
+
+linux-2.6 (2.6.32-29) unstable; urgency=high
+
+ [ Ben Hutchings ]
+ * megaraid_sas: Add support for 'entry-level' SAS controllers including
+ the 9240 family (Closes: #604083)
+ * tcp: Make TCP_MAXSEG minimum more correct (refinement of fix for
+ CVE-2010-4165)
+ * l2tp: Fix UDP socket reference count bugs in the pppol2tp driver
+ (Closes: #604748)
+ * USB: Retain device power/wakeup setting across reconfiguration;
+ don't enable remote wakeup by default (Closes: #605246)
+ * dm: Deal with merge_bvec_fn in component devices better (Closes: #604457)
+ * Update Spanish debconf template translation (Aaron H Farias Martinez)
+ (Closes: #600694)
+ * perf: Use libiberty, not libbfd, for symbol demangling
+ (Closes: #590226, #606050)
+ * [x86] Add support for Fintek hardware watchdogs (Closes: #601187)
+ - resource: Add shared I/O region support
+ - hwmon: f71882fg: Use a muxed resource lock for the Super I/O port
+ - watchdog: Add f71808e_wdt driver
+ * bcm5974: Add reporting of multitouch events (Closes: #605450)
+ * fusion: Set FUSION_MAX_SGE=128, the upstream default (Closes: #606096)
+ * Add stable 2.6.32.27:
+ - block: limit vec count in bio_kmalloc() and bio_alloc_map_data()
+ - block: take care not to overflow when calculating total iov length
+ - block: check for proper length of iov entries in blk_rq_map_user_iov()
+ (CVE-2010-4163)
+ - net: clear heap allocation for ETHTOOL_GRXCLSRLALL (CVE-2010-3861)
+ - asus_oled: fix up some sysfs attribute permissions
+ - ipc: initialize structure memory to zero for compat functions
+ (CVE-2010-4073)
+ - ipc/shm: fix information leak to userland (CVE-2010-4072)
+ - ipc/sem: sys_semctl: fix kernel stack information leakage (CVE-2010-4083)
+ - tty: prevent DOS in the flush_to_ldisc
+ - [x86] KVM: VMX: Fix host userspace gsbase corruption (Closes: #604956)
+ - KVM: VMX: fix vmx null pointer dereference on debug register access
+ (CVE-2010-0435)
+ - KVM: x86: fix information leak to userland (CVE-2010-3881)
+ - firewire/cdev: fix information leak
+ - firewire-core: fix an information leak
+ - firewire-ohci: fix buffer overflow in AR split packet handling
+ - bio: take care not overflow page count when mapping/copying user data
+ (CVE-2010-4162)
+ - sisusbvga: fix information leak to userland
+ - iowarrior: fix information leak to userland
+ - usb: core: fix information leak to userland
+ - usb-storage/sierra_ms: fix sysfs file attribute
+ - ueagle-atm: fix up some permissions on the sysfs files
+ - cypress_cy7c63: fix up some sysfs attribute permissions
+ - usbled: fix up some sysfs attribute permissions
+ - trancevibrator: fix up a sysfs attribute permission
+ - usbsevseg: fix up some sysfs attribute permissions
+ - do_exit(): make sure that we run with get_fs() == USER_DS (CVE-2010-4258)
+ - DECnet: don't leak uninitialized stack byte
+ - perf_events: Fix perf_counter_mmap() hook in mprotect() (CVE-2010-4169)
+ - frontier: fix up some sysfs attribute permissions
+ - net/sched: fix kernel information leak in act_police
+ - can-bcm: fix minor heap overflow (CVE-2010-3874)
+ - ivtvfb: prevent reading uninitialized stack memory (CVE-2010-4079)
+ - net/sched: fix some kernel information leaks
+ * TTY: Fix error return from tty_ldisc_open() (regression in 2.6.32.27)
+ * filter: make sure filters dont read uninitialized memory (CVE-2010-4158)
+ * posix-cpu-timers: workaround to suppress the problems with mt exec
+ (CVE-2010-4248)
+
+ [ Ian Campbell ]
+ * xen: disable ACPI NUMA for PV guests and allow IRQ desc allocation on any
+ node (Closes: #603632)
+ * xen: handle potential time discontinuity on resume (Closes: #602273)
+ * xen: don't bother to stop other cpus on shutdown/reboot (Closes: #605448)
+ * xen: Add cpu hotplug support to prevent crash while parsing ACPI processor
+ tables (Closes: #602109)
+
+ [ Martin Michlmayr ]
+ * Kirkwood: Add support for 6282 based QNAP devices.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 10 Dec 2010 05:45:11 +0000
+
+linux-2.6 (2.6.32-28) unstable; urgency=high
+
+ [ maximilian attems ]
+ * ipc: initialize structure memory to zero for shmctl.
+ * drm/i915: set DIDL using the ACPI video output device _ADR method return.
+ * images: Nuke modules.devname on removal. (closes: #590607)
+ * Newer Standards-Version 3.9.1 without changes.
+ * drm/ttm: Clear the ghost cpu_writers flag on ttm_buffer_object_transfer.
+ * [openvz] Update upstream patch to 2.6.32-dzhanibekov.
+ * [openvz] ubc: Fix orphan count checks after merge.
+
+ [ Martin Michlmayr ]
+ * Update udlfb to 2.6.37:
+ - udlfb: minor cleanups
+ - udlfb: fix coding style issues
+ - udlfb: fbdev character read and write support
+ - udlfb: add DPMS support
+ - udlfb: remove metrics_misc sysfs attribute
+ - udlfb: revamp reference handling to insure successful shutdown
+ - udlfb: enhance EDID and mode handling support
+ - udlfb: fix big endian rendering error
+ - udlfb: support for writing backup EDID to sysfs file
+ - udlfb: add module options for console and fb_defio
+ - udlfb: fix incorrect fb_defio implementation for multiple framebuffers
+ - udlfb: fix checkpatch and style
+
+ [ Ben Hutchings ]
+ * Update debconf template translations:
+ - Update Japanese (Nobuhiro Iwamatsu) (Closes: #602152)
+ - Update Catalan (Jordi Mallach) (Closes: #602520)
+ - Add Italian (Luca Bruno) (Closes: #602945)
+ * sunrpc: Fix NFS client over TCP hangs due to packet loss (Closes: #589945)
+ * brcm80211: Update to 2.6.37-rc1
+ * [powerpc] ALSA: Fix headphone and line-out detection on PowerMac G4 DA
+ (Closes: #603419)
+ * [x86] snd-hda-codec-cirrus: Add quirks for IMac 27", MacBookPro 5,5 and 7,1
+ * [x86] btusb: Add device IDs for MacBookPro 6,2 and 7,1 (Closes: #603651)
+ * [x86] applesmc: Add support for iMac 9,1 and MacBookPro 2,2, 5,3, 5,4, 6,*
+ and 7,*
+ * [x86] applesmc, bcm5974, btusb, HID, mbp_nvidia_bl, snd-hda-codec-cirrus:
+ Add support for MacBookAir 3,1 and 3,2 (Closes: #603395)
+ * [x86] mbp_nvidia_bl: Add support for MacBookPro 7,1
+ * x25: Fix remote denial-of-service vulnerabilities:
+ - x25 accesses fields beyond end of packet
+ - memory corruption in X.25 facilities parsing (CVE-2010-3873)
+ - Prevent crashing when parsing bad X.25 facilities (CVE-2010-4164)
+ * tcp: Increase TCP_MAXSEG socket option minimum (CVE-2010-4165)
+ * rds: Fix integer overflow in RDS cmsg handling
+ * af_802154,decnet,econet,rds,x25: Disable auto-loading as mitigation
+ against local exploits. These protocol modules are not widely used
+ and can be explicitly loaded or aliased on systems where they are
+ wanted.
+ * atl1c: Add support for Atheros AR8151 and AR8152 (Closes: #599771)
+ * Add stable 2.6.32.26:
+ - synclink_cs: Fix information leak to userland
+ - bluetooth: Fix missing NULL check
+ - [x86] KVM: VMX: Fix host GDT.LIMIT corruption
+ - [x86] KVM: Fix fs/gs reload oops with invalid ldt (CVE-2010-3698)
+ - gdth: Fix integer overflow in ioctl (CVE-2010-4157)
+ * [x86] KVM: SVM: Fix wrong intercept masks for KVM_{GET,SET}_VCPU_EVENTS
+ on 32 bit, thanks to Philipp Matthias Hahn (Closes: #599507)
+
+ [ dann frazier ]
+ * [vserver] Update patch to 2.6.32.25-vs2.3.0.36.29.6
+ * add qlcnic driver
+ * econet: Avoid stack overflow w/ large msgiovlen (CVE-2010-3848)
+ * econet: disallow NULL remote addr for sendmsg() (CVE-2010-3849)
+ * econet: Add mising CAP_NET_ADMIN check in SIOCSIFADDR (CVE-2010-3850)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 25 Nov 2010 01:20:50 +0000
+
+linux-2.6 (2.6.32-27) unstable; urgency=high
+
+ * The "We'll Always Have Paris" release
+
+ [ Ben Hutchings ]
+ * rndis_host: Restrict fix for #576929 to specific devices
+ (Closes: #589403, #600660)
+ * Add stable 2.6.32.25:
+ - rme9652: prevent reading uninitialized stack memory
+ (CVE-2010-4080, CVE-2010-4081)
+ - ocfs2: Don't walk off the end of fast symlinks
+ - ip: fix truesize mismatch in ip fragmentation
+ - net: clear heap allocations for privileged ethtool actions
+ - execve: setup_arg_pages: diagnose excessive argument size
+ - execve: improve interactivity with large arguments
+ - execve: make responsive to SIGKILL with large arguments
+ - rose: Fix signedness issues wrt. digi count. (CVE-2010-3310)
+ - ALSA: prevent heap corruption in snd_ctl_new() (CVE-2010-3442)
+ - setup_arg_pages: diagnose excessive argument size (CVE-2010-3858)
+ * btrfs: add a "df" ioctl for btrfs (Closes: #600190)
+ * Update debconf template translations:
+ - Add Catalan (Jordi Mallach) (Closes: #601146)
+ - Add Brazilian Portugese (Flamarion Jorge) (Closes: #601102)
+ - Update Vietnamese (Clytie Siddall) (Closes: #601534)
+ * phonet: device notifier only runs on initial namespace
+ (Really closes: #597904)
+ * net/socket: Limit sendto()/recvfrom() length (CVE-2010-1187)
+ [Original reference is incorrect; should be CVE-2010-3859.]
+
+ [ Ian Campbell ]
+ * xen: import additional fixes for disabling netfront smartpoll mode
+ (Closes: #600992).
+
+ [ dann frazier ]
+ * e1000e: Reset 82577/82578 PHY before first PHY register read
+ (Closes: #601017)
+
+ [ Martin Michlmayr ]
+ * Kirkwood: reset PCIe unit on boot
+ * Kirkwood: restrict the scope of the PCIe reset workaround
+
+ [ maximilian attems ]
+ * Update abi files, readd Xen as ABI stable.
+ * 2.6.33.stable-queue: drm/radeon: fix PCI ID 5657 to be an RV410.
+ * Add drm changes from 2.6.32.24+drm33.11:
+ - i915: return -EFAULT if copy_to_user fails.
+ - drm/i915: Prevent double dpms on
+ - drm: Only decouple the old_fb from the crtc is we call mode_set*
+ - drm/i915: Unset cursor if out-of-bounds upon mode change (v4)
+ - drm/i915,agp/intel: Add second set of PCI-IDs for B43
+ * net: Limit socket I/O iovec total length to INT_MAX. (CVE-2010-1187)
+ [Original reference is incorrect; should be CVE-2010-3859.]
+ * numa: fix slab_node(MPOL_BIND).
+
+ -- maximilian attems <maks@debian.org> Sat, 30 Oct 2010 12:24:37 +0200
+
+linux-2.6 (2.6.32-26) unstable; urgency=high
+
+ [ Ian Campbell ]
+ * xen: fix PVHVM hang at boot when Xen does not support vector callbacks.
+ * xen: fix race between PV drivers and xenstore initialisation which caused
+ breakage in drivers for both regular PV and PVHVM guests.
+
+ [ maximilian attems ]
+ * [openvz] Enable ioprio. (closes: #596772)
+ Thanks Daniel Hahler <debian-bugs@thequod.de>
+
+ [ Ben Hutchings ]
+ * [x86] radeon: Add quirks to make HP nx6125 and dv5000 laptops resume
+ (Closes: #583968)
+ * dm-crypt: Add 'plain64' IV; this avoids watermarking attacks that are
+ possible with 'plain' IV on devices larger than 2TB (Closes: #600384)
+ * [x86] ahci,ata_generic: let ata_generic handle new MBP w/ MCP89
+ (Closes: #600305)
+ * debian/.../patches.py: Open files as needed, rather than all at once
+ (Closes: #600423)
+ * [openvz] printk: Handle global log buffer reallocation (Closes: #600299)
+ * debian/bin/test-patches: Restrict patches to featureset when building
+ with a featureset (thanks to Tim Small)
+ * sata_via: Delay on vt6420 when starting ATAPI DMA write (Closes: #488566)
+ * r6040: Fix various bugs in r6040_multicast_list() (Closes: #600155)
+
+ [ dann frazier ]
+ * Force enable DMA on MBP w/ MCP 7,1
+ * RDS sockets: remove unsafe kmap_atomic optimization (CVE-2010-3904)
+ * v4l: disable dangerous buggy compat function (CVE-2010-2963)
+
+ -- dann frazier <dannf@debian.org> Tue, 19 Oct 2010 07:50:55 -0600
+
+linux-2.6 (2.6.32-25) unstable; urgency=high
+
+ [ Ben Hutchings ]
+ * mmc: build fix: mmc_pm_notify is only available with CONFIG_PM=y
+ * Add stable 2.6.32.24 (trivial fix, already applied)
+ * ipg: Remove device claimed by dl2k from pci id table (Closes: #599021)
+ * linux-image: Include modules.order in image packages (Closes: #598518)
+ * [x86] isdn/i4l: Reenable ISDN4Linux drivers, but mark them as staging
+ (Closes: #588551)
+ - hisax: Disable device aliases that conflict with mISDN
+ * Update Danish debconf template translation (Joe Hansen) (Closes: #599457)
+ * [x86] KVM: SVM: Fix wrong intercept masks on 32 bit (Closes: #599507)
+ * e1000: fix Tx hangs by disabling 64-bit DMA (Closes: #518182)
+ * rt2x00: Fix calculation of required TX headroom (Closes: #599395)
+ * Add drm changes from 2.6.32.22+drm33.10:
+ - i915: Don't touch PORT_HOTPLUG_EN in intel_dp_detect()
+ - i915: Kill dangerous pending-flip debugging
+ - radeon: release AGP bridge at suspend
+ - radeon: initialize set_surface_reg for rs600 asic
+ * [x86] toshiba_acpi: Add full hotkey support (Closes: #599768)
+
+ [ Stephen R. Marenka ]
+ * m68k: fix missing io macros.
+ * m68k: modular swim on mac.
+ * m68k: never build staging drivers on m68k.
+ * m68k: build in rtc class on atari.
+
+ [ Ian Campbell ]
+ * xen: do not truncate machine address on gnttab_copy_grant_page hypercall
+ (Closes: #599089)
+
+ [ dann frazier ]
+ * drm/i915: Sanity check pread/pwrite (CVE-2010-2962)
+ * drm/i915: Rephrase pwrite bounds checking to avoid any potential overflow
+ * GFS2: Fix writing to non-page aligned gfs2_quota structures (CVE-2010-1436)
+ * hvc_console: Fix race between hvc_close and hvc_remove (CVE-2010-2653)
+ * net sched: fix some kernel memory leaks (CVE-2010-2942)
+ * niu: Fix kernel buffer overflow for ETHTOOL_GRXCLSRLALL (CVE-2010-3084)
+ * rose: Fix signedness issues wrt. digi count (CVE-2010-3310)
+ * Fix pktcdvd ioctl dev_minor range check (CVE-2010-3437)
+ * ALSA: prevent heap corruption in snd_ctl_new() (CVE-2010-3442)
+ * net sched: fix kernel leak in act_police (CVE-2010-3477)
+ * sctp: Fix out-of-bounds reading in sctp_asoc_get_hmac() (CVE-2010-3705)
+
+ -- dann frazier <dannf@debian.org> Thu, 14 Oct 2010 01:08:05 -0600
+
+linux-2.6 (2.6.32-24) unstable; urgency=high
+
+ [ Ben Hutchings ]
+ * speakup: Update to match Debian package version 3.1.5.dfsg.1-1
+ * scsi_dh_emc: Fix mode select request setup (Closes: #591540)
+ * snd-hda-codec-via: Fix syntax error when CONFIG_SND_HDA_POWER_SAVE is
+ disabled (Closes: #597043)
+ * Add stable 2.6.32.22:
+ - [vserver] Revert sched changes since they conflict.
+ * Recommend use of 'make deb-pkg' to build custom kernel packages
+ * [x86] Revert "i915: Blacklist i830, i845, i855 for KMS". The current X
+ driver (xserver-xorg-video-intel version 2.12.0+shadow-1) should work
+ properly with KMS on these chips. (Closes: #596453)
+ * phonet: Restrict to initial namespace (Closes: #597904)
+ * Add stable 2.6.32.23:
+ - serial/mos*: prevent reading uninitialized stack memory
+ - net: Fix oops from tcp_collapse() when using splice()
+ - rds: fix a leak of kernel memory
+ - hso: prevent reading uninitialized memory (CVE-2010-3298)
+ - cxgb3: prevent reading uninitialized stack memory (CVE-2010-3296)
+ - eql: prevent reading uninitialized stack memory (CVE-2010-3297)
+ - vt6655: fix buffer overflow
+ - net/llc: make opt unsigned in llc_ui_setsockopt()
+ - sisfb: prevent reading uninitialized stack memory
+ - aio: check for multiplication overflow in do_io_submit (CVE-2010-3067)
+ - xfs: prevent reading uninitialized stack memory (CVE-2010-3078)
+ - viafb: prevent reading uninitialized stack memory
+ - [hppa,ia64] mm: guard page for stacks that grow upwards (CVE-2010-2240)
+ - sctp: Do not reset the packet during sctp_packet_config()
+ (CVE-2010-3432)
+ * xen: Fix typo in xen_percpu_chip definition
+ * 3c59x: Remove incorrect locking (Closes: #598103)
+ * f71882fg: Add support for the f71889fg (Closes: #597820)
+ * drm/radeon: Fix regressions introduced in 2.6.34.3 (Closes: #597636)
+ * mmc: fix hangs related to mmc/sd card insert/removal during suspend/resume
+ (Closes: #598147)
+
+ [ Martin Michlmayr ]
+ * ARM: update mach types.
+ * [armel/config.kirkwood] Enable MACH_DOCKSTAR.
+
+ [ Ian Campbell ]
+ * [x86/xen] Disable netfront's smartpoll mode by default. (Closes: #596635)
+
+ [ maximilian attems ]
+ * [openvz] Update upstream patch to 2.6.32-dyomin.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 30 Sep 2010 00:46:16 +0100
+
+linux-2.6 (2.6.32-23) unstable; urgency=low
+
+ [ Ben Hutchings ]
+ * cgroupfs: create /sys/fs/cgroup to mount cgroupfs on (Closes: #595964)
+ * r8169: Fix MDIO timing (Closes: #583139; mistakenly reverted in 2.6.32-19)
+ * gro: Fix bogus gso_size on the first fraglist entry (Closes: #596802)
+ * vgaarb: Fix VGA arbiter to accept PCI domains other than 0 (from stable
+ 2.6.32.12; mistakenly omitted in 2.6.32-12)
+
+ [ maximilian attems ]
+ * openvz: cfq-iosched: do not force idling for sync workload.
+
+ [ Stephen R. Marenka ]
+ * m68k: switch to generic siginfo layout.
+ * m68k: NPTL support.
+
+ [ dann frazier ]
+ * compat: Make compat_alloc_user_space() incorporate the access_ok()
+ (CVE-2010-3081)
+ * x86-64, compat (CVE-2010-3301):
+ - Retruncate rax after ia32 syscall entry tracing
+ - Test %rax for the syscall number, not %eax
+ * wireless extensions: fix kernel heap content leak (CVE-2010-2955)
+ * KEYS (CVE-2010-2960):
+ - Fix RCU no-lock warning in keyctl_session_to_parent()
+ - Fix bug in keyctl_session_to_parent() if parent has no session keyring
+
+ -- dann frazier <dannf@debian.org> Fri, 17 Sep 2010 15:27:04 -0600
+
+linux-2.6 (2.6.32-22) unstable; urgency=low
+
+ [ Ian Campbell ]
+ * xen: backport pvhvm drivers from upstream.
+ * Fixes/overrides for Lintian warnings:
+ - Add "(meta package)" to short description of linux-headers
+ metapackages, resolves empty-binary-package.
+ - Add dependency on ${misc:Depends} to all packages, resolves
+ debhelper-but-no-misc-depends. Required update to gencontrol.py to
+ augment rather than override headers_arch_depends read from templates.
+ - Override dbg-package-missing-depends for linux-image-*-dbg. It is not
+ necessary to install the kernel image package to use the dbg package
+ since the dbg package already contains a complete image with symbols.
+
+ [ Ben Hutchings ]
+ * [x86/xen] Restore stack guard page (CVE-2010-2240)
+ * Add stable 2.6.32.21:
+ - ext4: consolidate in_range() definitions (CVE-2010-3015)
+ - mm: make the mlock() stack guard page checks stricter
+ (avoids regression for Xen tools; closes: 594756)
+ - [sparc] sunxvr500: Ignore secondary output PCI devices
+ (Closes: #594604)
+ - ocfs2: fix o2dlm dlm run purgelist (Closes: #593679)
+ - Avoid ABI change in mm
+ - Ignore ABI change in snd-emu10k1
+ * Add drm changes from stable 2.6.34.6:
+ - drm: stop information leak of old kernel stack (CVE-2010-2803)
+ * rt2870sta: Add more device IDs from vendor drivers
+ * rt2860sta, rt2870sta: Enable channels 12-14 (Closes: #594561)
+ * SCSI/mptsas: fix hangs caused by ATA pass-through (Closes: #594690)
+ * sky2: Apply fixes and new hardware support from 2.6.33-2.6.35
+ (Closes: #571526)
+ * postinst: Really warn users on upgrade if the current configuration may
+ rely on running a default boot loader.
+ * input: add compat support for sysfs and /proc capabilities output
+ (Closes: #579017)
+ * snd-hda-intel: Add support for VIA V1708S, VT1718S, VT1828S, VT2020,
+ VT1716S, VT2002P, VT1812, VT1818S
+ * hwmon/w83627ehf: Add support for W83667HG-B
+ * 3c59x: Fix deadlock in vortex_error() (Closes: #595554)
+ * [x86] paravirt: Add a global synchronization point for pvclock (from
+ 2.6.32.16; reverted due to a regression which was addressed in 2.6.32.19)
+ * sched, cputime: Introduce thread_group_times() (from 2.6.32.19; reverted
+ due to the potential ABI change which we now carefully avoid)
+ * net/{tcp,udp,llc,sctp,tipc,x25}: Add limit for socket backlog
+ (Closes: #592187)
+ * tun: Don't add sysfs attributes to devices without sysfs directories
+ (Closes: #594845)
+ * [x86] Add brcm80211 driver for Broadcom 802.11n wireless network
+ controllers
+ * r8169: Remove MODULE_FIRMWARE declarations since the firmware is
+ non-essential and we do not distribute it
+ * [x86] HPET: unmap unused I/O space
+ * ipheth: add support for iPhone 4
+ * ipheth: remove incorrect devtype of WWAN
+ * ALSA: emux: Add trivial compat ioctl handler (Closes: #596478)
+ * hostap_pci: set dev->base_addr during probe (Closes: #595802)
+ * ethtool: allow non-netadmin to query settings (see #520724)
+ * ACPI: add boot option acpi=copy_dsdt to fix corrupt DSDT, and enable this
+ automatically for known-bad Toshiba models (Closes: #596709)
+
+ [ Bastian Blank ]
+ * Use Breaks instead of Conflicts.
+
+ [ Aurelien Jarno ]
+ * [mips,mipsel] Fix computation of DMA flags from device's
+ coherent_dma_mask.
+
+ [ Martin Michlmayr ]
+ * Add some patches from the Orion tree:
+ - OpenRD: Enable SD/UART selection for serial port 1
+ - kirkwood: Unbreak PCIe I/O port
+ - Kirkwood: support for Seagate DockStar
+
+ [ dann frazier ]
+ * netxen_nic: add support for loading unified firmware images
+ * irda: Correctly clean up self->ias_obj on irda_bind() failure.
+ (CVE-2010-2954)
+
+ [ maximilian attems ]
+ * [powerpc] Enable WINDFARM_PM121. (closes: #596515)
+ Thanks Étienne BERSAC <bersace03@gmail.com>
+ * nouveau: disable acceleration on NVA3/NVA5/NVA8 by default.
+ * openvz: disable KSM. Thanks Dietmar Maurer <dietmar@proxmox.com>.
+ (closes: #585864)
+ * Update openvz patch to d38b56fd0dca.
+ * openvz: enalbe modular VZ_EVENT.
+
+ -- maximilian attems <maks@debian.org> Tue, 14 Sep 2010 14:17:11 +0200
+
+linux-2.6 (2.6.32-21) unstable; urgency=high
+
+ [ Ben Hutchings ]
+ * Add stable 2.6.32.19:
+ - ext4: Make sure the MOVE_EXT ioctl can't overwrite append-only files
+ (CVE-2010-2066)
+ - mm: keep a guard page below a grow-down stack segment (CVE-2010-2240)
+ (not applied to xen featureset)
+ - md/raid10: fix deadlock with unaligned read during resync
+ (Closes: #591415)
+ - Revert "sched, cputime: Introduce thread_group_times()" which would
+ result in an ABI change
+ * Add stable 2.6.32.20:
+ - Fix regressions introduced by original fix for CVE-2010-2240
+ * Add drm and other relevant changes from stable 2.6.34.4
+ * Add 'breaks' relation from image packages to boot loader packages that
+ do not install required hooks (Closes: #593683)
+ * [x86] i915: Blacklist i830, i845, i855 for KMS
+ (Closes: #568207, #582105, #593432, #593507)
+
+ [ Bastian Blank ]
+ * Update Xen patch.
+ - Notify Xen on crash.
+ - Several blktap fixes.
+
+ [ Ritesh Raj Sarraf ]
+ * Add .gnu_debuglink information into kernel modules (Closes: #555549)
+
+ [ Ian Campbell ]
+ * [x86/xen] temporarily remove stack guard page, it breaks the xen
+ toolstack.
+
+ [ Aurelien Jarno ]
+ * [mips,mipsel] Fix 64-bit atomics.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 25 Aug 2010 01:06:18 +0100
+
+linux-2.6 (2.6.32-20) unstable; urgency=low
+
+ [ Moritz Muehlenhoff ]
+ * Backport XVR1000 driver (Closes: #574243)
+
+ [ Ben Hutchings ]
+ * Add stable 2.6.32.18:
+ - CIFS: Fix compile error with __init in cifs_init_dns_resolver()
+ definition (FTBFS for most architectures)
+ - GFS2: rename causes kernel Oops (CVE-2010-2798)
+ - xfs: prevent swapext from operating on write-only files
+ (CVE-2010-2226)
+ * Update debconf template translations:
+ - Swedish (Martin Bagge) (Closes: #592045)
+ - German (Holger Wansing) (Closes: #592226)
+ * [i386/openvz-686] Remove AMD Geode LX and VIA C3 "Nehemiah" from the
+ list of supported processors; they do not implement PAE
+ * V4L/DVB: Add Elgato EyeTV Diversity to dibcom driver (Closes: #591710)
+ * [s390] dasd: use correct label location for diag fba disks
+ (Closes: #582281)
+ * Add drm changes from stable 2.6.34.2 (thanks to Stefan Bader) and
+ 2.6.34.3
+ * drm/i915: disable FBC when more than one pipe is active
+ (Closes: #589077)
+ * IB/ipath: Fix probe failure path (Closes: #579393)
+ * ext4: fix freeze deadlock under IO (regression introduced in 2.6.32.17)
+ * xen: Completely disable use of XSAVE (Closes: #592428)
+
+ [ Martin Michlmayr ]
+ * [armel/orion5x] Add a missing #include to fix a build issue.
+ * [armel/kirkwood, armel/orion5x] Build-in support for more devices.
+
+ [ dann frazier ]
+ * can: add limit for nframes and clean up signed/unsigned variables
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 12 Aug 2010 03:26:39 +0100
+
+linux-2.6 (2.6.32-19) unstable; urgency=low
+
+ [ maximilian attems ]
+ * inotify send IN_UNMOUNT events.
+ * inotify fix oneshot support.
+
+ [ Ben Hutchings ]
+ * linux-base: Remove dependency on libapt-pkg-perl (Closes: #589996)
+ * pata_pdc202xx_old: Fix UDMA mode for PDC2024x and PDC2026x controllers
+ (Closes: #590532)
+ * Update debconf template translations:
+ - Czech (Michal Simunek) (Closes: #590546)
+ - Portugese (Américo Monteiro) (Closes: #590557)
+ - French (David Prévot) (Closes: #591149)
+ - Russian (Yuri Kozlov) (Closes: #591241)
+ * Add stable 2.6.32.17:
+ - ethtool: Fix potential kernel buffer overflow in ETHTOOL_GRXCLSRLALL
+ (CVE-2010-2478)
+ - GFS2: Fix up system xattrs (CVE-2010-2525)
+ - Revert ABI changes in firmware_class and ssb
+ - Ignore ABI changes in acpi_processor, hostap and jbd2
+ * Add drm changes from stable 2.6.33.7:
+ - drm/i915: Enable low-power render writes on GEN3 hardware (915, 945,
+ G33 and Atom "Pineview") (Closes: #590193, maybe others)
+ * [i386/xen-686] Remove AMD Geode LX and VIA C3 "Nehemiah" from the list
+ of supported processors; they do not implement PAE
+ * [x86] Add samsung-laptop driver
+
+ [ dann frazier ]
+ * [ia64] Fix crash when gcore reads gate area (Closes: #588574)
+
+ [ Bastian Blank ]
+ * Update Xen patch.
+ - Ignore ABI changes.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 05 Aug 2010 02:43:19 +0100
+
+linux-2.6 (2.6.32-18) unstable; urgency=low
+
+ [ Ben Hutchings ]
+ * iwlwifi: Allocate pages for RX buffers, reducing the probability of
+ allocation failure (Closes: #580124)
+ * postinst: Remove support for 'default' boot loaders. Warn users on
+ upgrade if the current configuration may rely on this.
+ * rt2860sta, rt2870sta: Apply changes from Linux 2.6.33 and 2.6.34
+ - rt2860sta: Fix WPA(2)PSK issue when group cipher of AP is WEP40
+ or WEP104 (Closes: #574766)
+ * rt3090sta: Replace with rt2860sta (Closes: #588863)
+ * [i386/686] Remove AMD K6 from the list of supported processors; it
+ does not implement the CMOV instruction
+ * drm/i915: Add 'reclaimable' to i915 self-reclaimable page allocations
+ (really closes: #534422, we hope)
+ * Revert "x86, paravirt: Add a global synchronization point for pvclock",
+ included in stable 2.6.32.16 (Closes: #588426)
+ * 3c59x: Fix call to mdio_sync() with the wrong argument (Closes: #589989)
+
+ [ Martin Michlmayr ]
+ * Add some patches from the Orion tree, including support for Marvell's
+ Armada 300 (88F6282):
+ - Kirkwood: update MPP definition.
+ - Kirkwood: fix HP t5325 after updating MPP definitions
+ - leds: leds-gpio: Change blink_set callback to be able to turn off
+ blinking
+ - net/phy/marvell: Expose IDs and flags in a .h and add dns323 LEDs
+ setup flag
+ - orion5x: Base support for DNS-323 rev C1
+ - orion5x: Fix soft-reset for some platforms
+ - mtd: orion/kirkwood: add RnB line support to orion mtd driver
+ - mtd: kirkwood: allow machines to register RnB callback
+ - Kirkwood: add support for rev A1 of the 88f6192 and 88f6180 chips
+ - Kirkwood: Add support for 88f6282
+ - PCI: add platform private data to pci_sys_data
+ - Kirkwood: add support for PCIe1
+ - Kirkwood: more factorization of the PCIe init code
+
+ [ maximilian attems ]
+ * sched: Fix over-scheduling bug.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 23 Jul 2010 03:48:08 +0100
+
+linux-2.6 (2.6.32-17) unstable; urgency=low
+
+ [ maximilian attems ]
+ * agp: add no warn since we have a fallback to vmalloc paths.
+
+ [ Ben Hutchings ]
+ * linux-tools: Fix build for hppa and do not attempt to build for
+ architectures where perf events are not available (Closes: #588409)
+ * linux-tools: Add build-dependency on binutils-dev to enable symbol
+ demangling in perf
+ * drm/i915: Fix memory corruption on resume from hibernation
+ (Closes: #534422)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 10 Jul 2010 16:40:38 +0100
+
+linux-2.6 (2.6.32-16) unstable; urgency=low
+
+ [ dann frazier ]
+ * [hppa] clear floating point exception flag on SIGFPE signal
+ (Closes: #559406)
+
+ [ Ben Hutchings ]
+ * Add stable 2.6.32.15
+ * Add mantis and hopper DVB drivers with mb86a16 and tda665x DVB
+ front-ends, backported by Bjørn Mork (Closes: #577264)
+ * Build inet_lro as a module
+ * [sparc] Enable CONFIG_FB_XVR500, CONFIG_FB_XVR2500 (Closes: #508108)
+ * Update Spanish debconf templates, thanks to Omar Campagne
+ (Closes: #580538)
+ * Revert "Add EC path for Thinkpad X100."; it is incomplete and broken
+ * sctp: fix append error cause to ERROR chunk correctly (regression due
+ to fix for CVE-2010-1173)
+ * [powerpc] Enable pata_amd driver, replacing amd74xx
+ * eeepc-laptop: Disable wireless hotplug on more models where the
+ controller is not at the expected address (Closes: #576199)
+ * [mips] Fix boot from ATA hard drives (Closes: #584784):
+ - Set io_map_base for several PCI bridges lacking it
+ - Replace per-platform built-in IDE drivers with libata-based drivers
+ - Enable BLK_DEV_SD as built-in on all platforms
+ * Revert "vlan/macvlan: propagate transmission state to upper layers"
+ (Closes: #585770)
+ * linux-base: Don't identify LVM2 PVs by UUID (Closes: #585852)
+ * usb-serial: Add generic USB WWAN code, backported by Mark Hymers
+ (Closes: #585661)
+ - option, qcserial: Use generic USB WWAN code
+ - qcserial: Add support for Qualcomm Gobi 2000 devices
+ * radeon: Fix MacBook Pro connector quirk (Closes: #585943)
+ * r8169: Fix MDIO timing (Closes: #583139)
+ * Move NEWS to linux-latest-2.6 (Closes: #586401)
+ * 3c59x: Change locking to avoid use of disable_irq() (Closes: #586967)
+ * Enable IPv6 support for IPVS (IP_VS_IPV6) (Closes: #584549)
+ * Revert "tpm: autoload tpm_tis based on system PnP IDs", included in
+ stable 2.6.32.12 (Closes: #584273)
+ * linux-base: If the disk ID update process fails, give the user a
+ chance to retry or change their answers (Closes: #585609)
+ * asix: fix setting mac address for AX88772 (Closes: #587580)
+ * ipv6: Clamp reported valid_lft to a minimum of 0 (Closes: #514644)
+ * ipv6: Use interface max_desync_factor instead of static default
+ (Closes: #514646)
+ * Add stable 2.6.32.16:
+ - Fixes CVE-2010-1641, CVE-2010-1187, CVE-2010-1148, CVE-2010-1173
+ and CVE-2010-2071
+ - libata: disable ATAPI AN by default (Closes: #582737, #582903)
+ * Add drm changes from stable 2.6.33.6
+ * [ia64, powerpc, sparc, x86] Enable KPROBES and KRETPROBES
+ (Closes: #584130)
+ * r8192s_usb: Fix various bugs:
+ - Check for skb allocation failure in 2 more places
+ - Update LED control code
+ - Clean up in case of an error in module initialisation
+ - Rename and remove proc directories correctly if an interface is
+ not called wlan0 (Closes: #582972)
+ - Correct device ID table (Closes: #584945, #587985)
+ * Add r8192u_usb driver
+ * Add linux-tools-<version> package containing the perf tool
+ (Closes: #548715)
+ * Enable USB_SERIAL_TI (Closes: #588096) and USB_SERIAL_WHITEHEAT
+
+ [ Aurelien Jarno ]
+ * [sh4] optimize runtime disabling of trapped I/O.
+ * [mips] backport mips/swarm: fix M3 TLB exception handler.
+
+ [ Moritz Muehlenhoff ]
+ * Enable X86 board specific fixups for reboot (Closes: #536537)
+
+ [ Martin Michlmayr ]
+ * OpenRD-Base: revert patch "allow SD/UART1 selection" since it
+ never made it upstream.
+ * ARM: update mach types.
+ * Add support for OpenRD-Ultimate.
+ * QNAP TS-11x/TS-21x: Add MPP36 (RAM) and MPP44 (board ID).
+ * Add support for the HP t5325 Thin Client.
+ * m25p80: Add support for Macronix 25L8005.
+ * Add framebuffer driver for XGI chipsets.
+ * [armel/kirkwood] Enable FB_XGI and FRAMEBUFFER_CONSOLE.
+ * [armel] Make MOUSE_PS2 modular.
+ * [armel] Build INPUT_UINPUT for all flavours.
+ * Update Marvell CESA (mv_cesa) driver (Closes: #585790):
+ - Invoke the user callback from a softirq context
+ - Remove compiler warning in mv_cesa driver
+ - Fix situation where the dest sglist is organized differently than...
+ - Fix situations where the src sglist spans more data than the reques...
+ - Enqueue generic async requests
+ - Rename a variable to a more suitable name
+ - Execute some code via function pointers rathr than direct calls
+ - Make the copy-back of data optional
+ - Support processing of data from previous requests
+ - Add sha1 and hmac(sha1) async hash drivers
+ * Update DisplayLink (udlfb) driver:
+ - add dynamic modeset support
+ - checkpatch cleanup
+ - reorganize function order
+ - pre-allocated urb list helpers
+ - clean up function naming
+ - Add functions to expose sysfs metrics and controls
+ - Rework startup and teardown to fix race conditions
+ - improved rendering performance
+ - Support for fbdev mmap clients (defio)
+ - explicit dependencies and warnings
+ - remove printk and small cleanup
+ * [armel/kirkwood] Enable FB_UDL.
+ * [armel] Disable PARPORT_PC (Closes: #588164)
+
+ [ Bastian Blank ]
+ * Disable mISDN support for NETJet cards. The driver binds a generic PCI
+ bridge.
+ * Disable ISDN4Linux drivers.
+
+ [ maximilian attems]
+ * Update openvz patch to 5fd638726a69.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 05 Jul 2010 22:13:33 +0100
+
+linux-2.6 (2.6.32-15) unstable; urgency=low
+
+ [ Ben Hutchings ]
+ * [hppa] Ignore ABI change caused by disabling CONFIG_IDE_TIMINGS
+ * [powerpc] Fix unnecessary ABI change
+
+ [ Bastian Blank ]
+ * xen: Fix crash in netback.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Tue, 01 Jun 2010 01:31:05 +0100
+
+linux-2.6 (2.6.32-14) unstable; urgency=low
+
+ [ Ben Hutchings ]
+ * [ia64] Hardcode the output of the scripts under arch/ia64/scripts so
+ that we can build out-of-tree modules correctly (refresh and re-add
+ dropped patch) (Closes: #392592)
+ * vlan/macvlan: propagate transmission state to upper layers
+ * macvlan: add GRO bit to features mask
+ * macvlan: allow multiple driver backends
+ * Add macvtap driver (Closes: #568755)
+ * [ia64] Enable SGI SN support and mspec driver (Closes: #582224)
+ * iwlwifi: Disable QoS when connected to a non-QoS-capable AP
+ (Closes: #578262)
+ * [x86] Disable e_powersaver cpufreq driver as unsafe. It has already
+ been blacklisted by cpufrequtils. The acpi-cpufreq driver can be used
+ instead on some VIA C7 systems. (Closes: #566208)
+ * nouveau: Fix fbcon corruption with font width not divisible by 8
+ (Closes: #583162)
+ * [amd64] ext4: Fix compat EXT4_IOC_ADD_GROUP (used by online resize)
+ * Install debug kernel image in /usr/lib/debug/boot (Closes: #582810)
+ * net: sysfs: Check for null ethtool_ops before getting speed/duplex
+ * Add stable 2.6.32.14:
+ - [hppa] Revert "parisc: Set PCI CLS early in boot.", erroneously
+ included in 2.6.32.13 causing FTBFS
+ - btrfs: check for read permission on src file in the clone ioctl
+ (CVE-2010-1636)
+
+ [ Bastian Blank ]
+ * Update Xen patch.
+ - Fix checksum offloading in netback. (closes: #583366)
+
+ [ maximilian attems]
+ * Add drm changes from stable 2.6.33.5:
+ - i915: Disable FBC on 915GM and 945GM (Closes: #582427)
+ * Update openvz patch to e7399c239fad.
+
+ [ Martin Michlmayr ]
+ * QNAP TS-419P: Export GPIO indicating jumper setting of JP1.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 29 May 2010 00:32:44 +0100
+
+linux-2.6 (2.6.32-13) unstable; urgency=low
+
+ [ Frederik Schueler ]
+ * sparc: Fix use of uid16_t and gid16_t in asm/stat.h
+
+ [ Moritz Muehlenhoff ]
+ * Enable tomoyo (Closes: #562486)
+
+ [ maximilian attems]
+ * backport KVM: x86: Extend KVM_SET_VCPU_EVENTS with selective updates.
+ (closes: #580652)
+ * KEYS: find_keyring_by_name() can gain access to a freed keyring.
+ CVE-2010-1437
+ * hppa, sparc, powerpc disable BLK_DEV_CMD64X.
+ * topconfig enable PATA_CMD64X. (closes: #580799)
+ * x86: Disable CRYPTO_AES_NI_INTEL as it causes boot failures on T410.
+ * Add stable 2.6.32.13:
+ - [SCSI] Enable retries for SYNCRONIZE_CACHE commands to fix I/O error.
+ - [SCSI] Retry commands with UNIT_ATTENTION sense codes to fix ext3/ext4
+ I/O errors.
+ - [SCSI] skip sense logging for some ATA PASS-THROUGH cdbs
+ (Closes: #578129)
+ - raid6: fix recovery performance regression.
+ - raid456: Enable error-correction on singly-degraded RAID6
+ (Closes: #581392)
+ - r8169: fix broken register writes (Closes: #407217, #573007)
+ - V4L/DVB: budget: Fix crash in case of failure to attach frontend
+ (Closes: #575207)
+ * drm/edid: Fix 1024x768@85Hz.
+
+ [ Ben Hutchings ]
+ * linux-base: Fix typo in disk relabelling code (Closes: #580467)
+ * linux-base: Don't quote boot device name in elilo.conf
+ (Closes: #580710; works-around: #581173)
+ * rtl8192su: Add IDs for several more devices (Closes: #580740)
+ * Add drm and sfc changes from stable 2.6.33.4
+ * Improve workaround for HPAs (Host Protected Areas) overlapping
+ partitions, thanks to Tejun Heo:
+ - SCSI/libata: Disable HPA if it overlaps a partition (Closes: #572618)
+ - buffer: Make invalidate_bdev() drain all percpu LRU add caches
+ - block: Rescan partition tables after HPA is disabled
+ - libata: Disable HPA if it is only enabled after suspend
+ * V4L/DVB: budget: Select correct frontend drivers (Closes: #575223)
+ * 3c503: Fix IRQ probing (Closes: #566522)
+ * sis-agp: Remove SIS 760, handled by amd64-agp
+ * amd64-agp: Probe unknown AGP devices the right way (Closes: #548090)
+
+ [ Aurelien Jarno ]
+ * mips/swarm: fix boot from IDE based media (Sebastian Andrzej Siewior)
+ (closes: #466977).
+ * backport mips/swarm: fix M3 TLB exception handler.
+ [This patch was actually reverted and never applied in version 2.6.32-13]
+ * backport MIPS FPU emulator: allow Cause bits of FCSR to be writeable
+ by ctc1. (closes: #580602).
+ * mips/swarm: enable adm* hwmon drivers.
+ * backport Input: Add support of Synaptics Clickpad device (Closes: #572842)
+
+ [ Bastian Blank ]
+ * Fix symlinks in several packages.
+ * Update Xen patch.
+ * [amd64, i386/{686-bigmem,openvz-686,vserver-686-bigmem,xen-686}]
+ Build debugging symbols. (closes: #365349)
+ * Ignore crypto ABI changes.
+
+ [ Martin Michlmayr ]
+ * Backport GuruPlug support.
+
+ [ Christian Perrier ]
+ * Update debconf templates:
+ - English revised by the debian-l10n-english team as part of the Smith
+ review project (Closes: #578349)
+ - Vietnamese (Clytie Siddall) (Closes: #579234)
+ - German (Holger Wansing) (Closes: #579864)
+ - Russian (Yuri Kozlov) (Closes: #578994)
+ - Estonian (mihkel) (Closes: #579019)
+ - Czech (Michal Simunek) (Closes: #579268)
+ - Swedish (Martin Bagge) (Closes: #579308)
+ - French (David Prévot) (Closes: #579763)
+ - Spanish (Omar Campagne) (Closes: #580538)
+ - Portuguese (Américo Monteiro) (Closes: #577227)
+ - Japanese (Kenshi Muto) (Closes: #580855)
+ - Danish (Joe Hansen) (Closes: #580915)
+ - Czech (Michal Simunek) (Closes: #581399)
+
+ -- maximilian attems <maks@debian.org> Mon, 17 May 2010 15:29:27 +0200
+
+linux-2.6 (2.6.32-12) unstable; urgency=low
+
+ * The "Microwave Background" release
+
+ [ Ben Hutchings ]
+ * Prepare debconf templates for translation. (closes: #576758)
+ * [x86] PCI/forcedeth: Disable MSI for MCP55 on P5N32-E SLI
+ (Closes: #552299)
+ * phylib: Fix typo in bcm63xx PHY driver table
+ * linux-base: Fix bugs and improve libata transition code:
+ - Fix scope of _system() function (Closes: #576925)
+ - Fix case where a file may wrongly be listed as automatically converted
+ (Closes: #577047)
+ - Check device IDs in mdadm.conf rather than assuming it needs manual
+ conversion
+ - Use vol_id if available since the version of blkid in lenny does not
+ support the output format we need (Closes: #576608)
+ - Fix missing line breaks in updated crypttab (Closes: #577735)
+ * i915: Stop trying to use ACPI lid status to determine LVDS connection
+ (Closes: #577724)
+ * forcedeth: Fix hardware version check for TX bug workaround
+ (Closes: #572201)
+ * rndis_host: Poll status channel before control channel (Closes: #576929)
+ * megaraid_sas: Fix copying of sense data for 32-bit management tools on
+ 64-bit kernel (Closes: #578398)
+ * Add ipheth driver for iPhone tethering
+ * virtio_net: Make delayed refill more reliable (Closes: #576838)
+
+ [ maximilian attems]
+ * [ia64] Built in fbcon.
+ * Update openvz patch to c05f95fcb04e. (closes: #574598)
+ * Reenable nouveau autoloading.
+ * reiserfs: Fix permissions on .reiserfs_priv. CVE-2010-1146
+ * libata,ata_piix: detect and clear spurious IRQs.
+ * libata/SCSI: fix locking around blk_abort_request().
+ * topconfig enable NET_DROP_MONITOR. (closes: #578568)
+ * Add stable 2.6.32.12:
+ - ACPI: EC: Allow multibyte access to EC; fixes temperature monitoring
+ on some Dell laptops (Closes: #563313)
+ - [x86] KVM: disable paravirt mmu reporting (Closes: #573071)
+ - thinkpad-acpi: lock down video output state access (Closes: #565790)
+ - xfs update (closes: #579410)
+ * Add drm changes from stable 2.6.33.3:
+ - drm/radeon: R300 AD only has one quad pipe (Closes: #575681)
+ * libata: Fix accesses at LBA28 boundary (old bug, but nasty) (v2)
+ * Add EC path for Thinkpad X100.
+ * Bump ABI to 5, apply:
+ - hrtimer: Tune hrtimer_interrupt hang logic
+ * Add libata TRIM support.
+ * Backport radeon r800 modesetting support.
+ * drm/radeon/kms: further spread spectrum fixes.
+ * Backport p54 fixes.
+ * net: export device speed and duplex via sysfs.
+ * postrm: rm modules.softdep. (closes: #579175)
+ * Backport KVM: Xen PV-on-HVM guest support.
+ * Backport KVM: x86: Add KVM_GET/SET_VCPU_EVENTS.
+ * hugetlb: fix infinite loop in get_futex_key() when backed by huge pages
+ * ext4: Issue the discard operation *before* releasing the blocks to be
+ reused.
+ * libiscsi: regression: fix header digest errors.
+ * Revert module.c and module.h changes from -stable update.
+
+ [ dann frazier ]
+ * Add DRBD backport
+ * sctp: Fix skb_over_panic resulting from multiple invalid parameter
+ errors (CVE-2010-1173)
+ * [CIFS] Allow null nd (as nfs server uses) on create (CVE-2010-1148)
+ * tipc: Fix oops on send prior to entering networked mode (CVE-2010-1187)
+ * [powerpc] KGDB: don't needlessly skip PAGE_USER test for Fsl booke
+ Note: KGDB is not currently enabled in debian builds (CVE-2010-1446)
+
+ [ Aurelien Jarno ]
+ * [sh4] Add a sh7751r flavour.
+ * [mips/*malta] Remove options that are present in topconfig.
+
+ [ Martin Michlmayr ]
+ * dns323-setup.c: fix WARN() when booting (Arnaud Patard).
+ * mips: enable PATA platform on SWARM and LITTLESUR (Sebastian Andrzej
+ Siewior).
+ * [mips/sb1-bcm91250a] Enable PATA_PLATFORM.
+
+ [ Bastian Blank ]
+ * Update Xen patch.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 01 May 2010 02:58:31 +0100
+
+linux-2.6 (2.6.32-11) unstable; urgency=low
+
+ [ Ben Hutchings ]
+ * [sparc] Provide io{read,write}{16,32}be() (Closes: #574421)
+ * Use libata-based drivers for most PATA controllers on all architectures
+ (previously applied only to x86)
+ * linux-base: Fix bugs and improve libata transition code:
+ - Handle duplicates in /etc/udev/rules.d/70-persistent-cd.rules
+ (Closes: #574630)
+ - Always attempt conversion if $DEBCONF_RECONFIGURE is set
+ - Never attempt conversion during a fresh installation (Closes: #576243)
+ - Convert disk IDs in crypttab (Closes: #575056)
+ - Redirect stdin and stdout of child processes to avoid interfering with
+ debconf (Closes: #574987)
+ - Report when hdparm.conf or mdadm.conf may need to be updated
+ (Closes: #576442)
+ - Where a device has both a UUID and a label, prefer to identify it by
+ UUID, consistent with fresh installations
+ - Do not use device labels including certain unsafe characters
+ (Closes: #576537)
+ * iwlwifi: Fix repeated warnings about tfds_in_queue (Closes: #574526)
+ * eeepc-laptop: Disable CPU speed control on 701 and 702 since it can
+ cause the system to hang (Closes: #559578)
+ * eeepc-laptop: Disable wireless hotplug on 1005HA, 1201N and 1005PE
+ since it disconnects the wrong device (Closes: #573607)
+ * linux-headers-*: Support postinst hooks in /etc/kernel/header_postinst.d,
+ thanks to Michael Gilbert (Closes: #569724)
+ * rt2860sta: Fix argument to linux_pci_unmap_single() (Closes: #575726)
+ * nouveau: nv50: Implement ctxprog/state generation
+ * phylib: Support PHY module autoloading (Closes: #553024)
+ * [x86] Add ramzswap driver (Closes: #573912)
+
+ [ maximilian attems]
+ * [alpha, hppa] Disable oprofile as tracing code is unsupported here.
+ (closes: #574368)
+ * Update openvz patch to 14a9729fab67. (closes: #574598, #575189)
+ * [x86]: Disable FB_INTEL. (closes: #447575, #503766, #574401)
+ * ssb: do not read SPROM if it does not exist.
+ * ssb: Avoid null pointer dereference by aboves.
+ * Add stable 2.6.32.11.
+ - MIPS: Cleanup forgotten label_module_alloc in tlbex.c (Closes: #571305)
+ - ath5k: fix setup for CAB queue (closes: #576213)
+ - NFS: Prevent another deadlock in nfs_release_page() (Closes: #574348)
+ * Revert to keep ABI:
+ - hrtimer: Tune hrtimer_interrupt hang logic
+
+ [ Moritz Muehlenhoff ]
+ * Add support for sh4 architecture, patch by Nobuhiro Iwamatsu
+ (Closes: #569034)
+
+ [ Bastian Blank ]
+ * Update Xen patch.
+ - Fix free interrupt problem on uni-processor machines.
+
+ [ Ian Campbell ]
+ * Include Xen hypervisor in reportbug "related to" list.
+
+ -- maximilian attems <maks@debian.org> Mon, 05 Apr 2010 20:31:15 +0200
+
+linux-2.6 (2.6.32-10) unstable; urgency=low
+
+ * The "Big Bang" release
+
+ [ maximilian attems]
+ * tcp: fix ICMP-RTO war.
+ * Add stable 2.6.32.10.
+ - net/via-rhine: Fix scheduling while atomic bugs (closes: #549606)
+ - HID: remove TENX iBuddy from blacklist (Closes: #551312)
+ - USB: SIS USB2VGA DRIVER: support KAIREN's USB VGA adaptor
+ USB20SVGA-MB-PLUS (Closes: #565857)
+ * Bump ABI to 4.
+ * [x86] Add openvz flavour.
+ - adds ppp support (closes: #550975)
+ * Prevent nouveau from autoloading until xserver-xorg-video-nouveau lands.
+
+ [ Moritz Muehlenhoff ]
+ * Enable CONFIG_KEYS_DEBUG_PROC_KEYS (Closes: #400932)
+ * Amend README.source with documentation on how to generate a
+ source tree with all patches applied (Closes: #509156)
+ * Document needed packages for preparatory packaging
+ steps (Closes: #548028)
+
+ [ Aurelien Jarno ]
+ * Fix signal stack alignement on sparc64 (Closes: #569797)
+
+ [ Bastian Blank ]
+ * Add support for Xen dom0 into its featureset.
+ (Closes: #499745, #503857, #504805, #505545, #506118, #507785, #509085,
+ #509733, #511963, #513835, #514511, #516223, #516374, #516635, #517048,
+ #519586, #520702, #522452, #524571, #524596, #526695, #533132, #533432,
+ #534880, #534978, #541227, #542299, #542614, #543489, #544525, #548345,
+ #554564, #554621, #559175, #559634)
+ * [alpha, amd64, i386, amd64, powerpc] Make all AGP driver built-in to
+ workaround race-condition between DRM and AGP.
+
+ [ Ben Hutchings ]
+ * drm: Apply all changes from 2.6.33 and 2.6.33.1:
+ - Add nouveau driver
+ - i915: Fix disappearing mouse pointer (Closes: #551330)
+ - i915: Restore video overlay support (Closes: #560033)
+ - i915: Fix DDC on some systems by clearing BIOS GMBUS (Closes: #567747)
+ - radeon: Enable KMS support
+ * qla2xxx: Disable MSI/MSI-X on some chips or as selected by module parameter
+ (Closes: #572322)
+ - MSI is disabled on QLA24xx chips other than QLA2432 (MSI-X already was)
+ - MSI-X is disabled if qlx2enablemsix=2
+ - MSI and MSI-X are disabled if qlx2enablemsix=0
+ * [sparc64] Make prom entry spinlock NMI safe (Closes: #572442)
+ * firmware: Correct copyright information and add source for CIS files
+ * Fix first line of kernel-doc for a few functions so that they get valid
+ manual pages
+ * Remove /usr/include/drm from linux-libc-dev; let libdrm-dev provide it
+ again
+ * [x86] Enable rtl8192su driver using external firmware
+ * [x86] Use libata-based drivers for most PATA controllers (Closes: #444182):
+ - pata_triflex replaces triflex
+ - pata_atiixp replaces atiixp
+ - pata_ns87415 replaces ns87415
+ - pata_sc1200 replaces sc1200
+ - pata_cs5536 replaces cs5536
+ - pata_amd replaces amd74xx
+ - pata_sis replaces sis5513
+ - pata_rz1000 replaces rz1000
+ - pata_efar replaces slc90e66
+ - pata_pdc202xx_old replaces pdc202xx_old
+ - pata_pdc2027x replaces pdc202xx_new
+ - pata_cs5520 replaces cs5520
+ - pata_cs5530 replaces cs5530
+ - pata_cmd64x replaces cmd64x
+ - pata_sil680 replaces siimage
+ - pata_ali replaces alim15x3
+ - pata_via replaces via82cxxx
+ - pata_serverworks replaces serverworks
+ - pata_artop replaces aec62xx
+ - pata_it821x replaces it821x
+ - ata_piix, pata_oldpiix, pata_mpiix mostly replace piix
+ - ata_generic, pata_ns87410, pata_netcell replace ide-pci-generic
+ * linux-base: Add libata transition script
+ * Hide sensitive information when including network configuration in bug
+ reports and running a different kernel version
+
+ [ Martin Michlmayr ]
+ * Add some ARM patches from git:
+ - Update mach types
+ - eSATA SheevaPlug: basic board support
+ - eSATA SheevaPlug: configure SoC SATA interface
+ - eSATA SheevaPlug: correlate MPP to SD CD and SD WP
+ * [armel/kirkwood] Enable MACH_ESATA_SHEEVAPLUG.
+
+ -- maximilian attems <maks@debian.org> Tue, 16 Mar 2010 23:39:05 +0100
+
+linux-2.6 (2.6.32-9) unstable; urgency=high
+
+ [ Ben Hutchings ]
+ * Do not build obsolete lgs8gl5 driver
+ * [x86] Enable USB IP drivers (Closes: #568903)
+ * Ignore failure of lsusb when gathering information for bug reports
+ (Closes: #569725)
+ * macvlan: Add bridge, VEPA and private modes (Closes: #568756)
+ * [sparc] sunxvr500: Support Intergraph graphics chips again
+ (Closes: #508108)
+ * sfc: Apply fixes from 2.6.33
+ * ath9k: Add support for AR2427
+ * fs/exec.c: fix initial stack reservation (regression in 2.6.32.9)
+
+ [ maximilian attems]
+ * Postinst don't refercence k-p related manpage. (closes: #542208)
+ * Postinst only write kernel-img.conf for palo boxes.
+ * Enable VT_HW_CONSOLE_BINDING for unbinding efifb. (closes: #569314)
+ * hwmon: Add driver for VIA CPU core temperature.
+ * wireless: report reasonable bitrate for MCS rates through wext.
+ * efifb: fix framebuffer handoff. (bugzilla.k.o #15151)
+ * Add stable 2.6.32.9:
+ - drm/i915: Fix DDC on some systems by clearing BIOS GMBUS setup.
+ (closes: #567747)
+ - futex: Handle futex value corruption gracefully. (CVE-2010-0623)
+ - futex_lock_pi() key refcnt fix. (CVE-2010-0623)
+ - Staging: fix rtl8187se compilation errors with mac80211.
+ (closes: #566726)
+ * r8169 patch for rx length check errors. (CVE-2009-4537)
+ * vgaarb: fix incorrect dereference of userspace pointer.
+ * Bump ABI to 3.
+ * drm/i915: give up on 8xx lid status.
+ * vgaarb: fix "target=default" passing.
+ * drm/radeon: block ability for userspace app to trash 0 page and beyond.
+ (closes: #550562)
+
+ [ Bastian Blank ]
+ * Restrict access to sensitive SysRq keys by default.
+ * debian/rules.real: Install arch specific scripts.
+
+ [ Moritz Muehlenhoff ]
+ * Set source format to 1.0
+
+ [ Martin Michlmayr ]
+ * [armel/iop32x] Enable ARCH_IQ80321 and ARCH_IQ31244 (Thanks Arnaud
+ Patard).
+ * [armel/kirkwood] Disable MTD_NAND_VERIFY_WRITE to avoid errors
+ with ubifs on OpenRD (Thanks Gert Doering) (Closes: #570407)
+ * OpenRD-Base: allow SD/UART1 selection (Closes: #571019)
+ * D-Link DNS-323 revision A1: implement power LED (Closes: 503172).
+
+ -- maximilian attems <maks@debian.org> Wed, 24 Feb 2010 17:06:27 +0100
+
+linux-2.6 (2.6.32-8) unstable; urgency=high
+
+ [ Bastian Blank ]
+ * Don't let default compiler flags escape into build.
+
+ [ dann frazier ]
+ * KVM: PIT: control word is write-only (CVE-2010-0309)
+ * Fix potential crash with sys_move_pages (CVE-2010-0415)
+
+ [ Ben Hutchings ]
+ * Build lgs8gxx driver along with cxusb (Closes: #568414)
+ * Revert incorrect change to powerpc clocksource setup (Closes: #568457)
+ * Add stable release 2.6.32.8:
+ - Remove TIF_ABI_PENDING bit from x86, sparc & powerpc, fixing
+ 32-bit userland/64-bit kernel breakage (Closes: #568416)
+ - connector: Delete buggy notification code. (CVE-2010-0410)
+ * [x86] KVM: Add IOPL/CPL checks to emulator, to prevent privilege
+ escalation within a guest. (CVE-2010-0298, CVE-2010-0306)
+
+ [ Martin Michlmayr ]
+ * Implement power-off for D-Link DNS-323 rev B1 and fix the blinking
+ power LED (Erik Benada) (Closes: #503172).
+
+ [ Aurelien Jarno ]
+ * Enable CONFIG_FB_CIRRUS and CONFIG_LOGO on 4kc-malta and 5kc-malta.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 11 Feb 2010 02:17:17 +0000
+
+linux-2.6 (2.6.32-7) unstable; urgency=low
+
+ [ maximilian attems]
+ * [x86] Disable deprecated X86_CPU_DEBUG, causes boot failures.
+ * Newer Standards-Version 3.8.4 without changes.
+
+ [ Ben Hutchings ]
+ * clocksource/events: Fix fallout of generic code changes
+ (Closes: #568030)
+ * Set ABI to 2.
+
+ [ dann frazier ]
+ * Disable FUNCTION_TRACER due to performance/build issues.
+ (Closes: #568025)
+ * Split 'flush_old_exec' into two functions (CVE-2010-0307)
+
+ -- dann frazier <dannf@debian.org> Wed, 03 Feb 2010 18:35:21 -0700
+
+linux-2.6 (2.6.32-6) unstable; urgency=high
+
+ [ Ben Hutchings ]
+ * Documentation/3c509: document ethtool support (Closes: #564743)
+ * Add MODULE_FIRMWARE declarations to several drivers that lacked them
+ * [x86] Update rt2860sta/rt2870sta firmware loader patch
+ - Accept 8K versions of rt2870.bin
+ - Fix hang on resume
+ * [x86] Enable rt3090sta using firmware loader
+ * Add stable release 2.6.32.4:
+ - untangle the do_mremap() mess (CVE-2010-0291)
+ - fasync: split 'fasync_helper()' into separate add/remove functions
+ (CVE-2009-4141)
+ - kernel/signal.c: fix kernel information leak with print-fatal-signals=1
+ (CVE-2010-0003)
+ - netfilter: ebtables: enforce CAP_NET_ADMIN (CVE-2010-0007)
+ - quota: Fix dquot_transfer for filesystems different from ext4
+ (Closes: #566532)
+ - audit: Fix memory management bugs (Closes: #562815)
+ + fix braindamage in audit_tree.c untag_chunk()
+ + fix more leaks in audit_tree.c tag_chunk()
+ - ipv6: skb_dst() can be NULL in ipv6_hop_jumbo(). (CVE-2010-0006)
+ - Fix DMA mapping for i915 driver (Closes: #558237, #567352)
+ + drm: remove address mask param for drm_pci_alloc()
+ + agp/intel-agp: Clear entire GTT on startup
+ * e1000,e1000e: Discard all fragments of received over-length packets
+ (CVE-2009-4536, CVE-2009-4538)
+ * Enable the '686' configuration options in '686-vserver' packages and
+ the '686-bigmem' configuration options in '686-bigmem-vserver' packages
+ (Closes: #566213)
+ * Add stable release 2.6.32.5:
+ - inotify: do not reuse watch descriptors (Closes: #561880)
+ - megaraid_sas: remove sysfs poll_mode_io world writeable permissions
+ (CVE-2009-3939) (Closes: #562975)
+ * Force distribution=UNRELEASED in debian/bin/test-patches so that it
+ works in released source packages
+ * Add stable release 2.6.32.6
+ * postinst: Enable escape sequences in debconf notes (Closes: #566539)
+ * Add 3w-sas driver for LSI 3ware 9750 SAS controllers
+ * aufs2: Update to snapshot from 2010-01-25 (Closes: #567391)
+ * cdc_ether: Do not set link down initially; not all devices send link
+ change interrupts (Closes: #567689)
+ * Add stable release 2.6.32.7:
+ - clockevent: Don't remove broadcast device on halt or CPU hotplug
+ (Closes: #566547)
+ * sfc: Apply fixes from 2.6.33-rc{5,6}
+ * Set ABI to 1.
+
+ [ Ian Campbell ]
+ * xen: Enable up to 32G of guest memory on i386.
+
+ [ Julien Cristau ]
+ * drm/i915: disable powersave by default (closes: #564807)
+
+ [ Bastian Blank ]
+ * Enable all NCP file system options.
+ * [amd64] Make AGP support again built-in to fullfill the not completely
+ documented dependency with GART IOMMU support. (closes: #561552)
+ * Enable dynamic minor allocations for ALSA, DVB and USB. (closes: #510593)
+
+ [ maximilian attems ]
+ * [topconfig] set MEMORY_FAILURE, 9P_FSCACHE, INFINIBAND_IPOIB_CM
+ (closes: #565494), ITCO_VENDOR_SUPPORT (closes: #525232), PCIEASPM
+ (closes: #545417), HWPOISON_INJECT.
+ * Enable easier debugging of Power Managment code. (closes: #478315)
+ * Pass `DEB_MAINT_PARAMS' to hook scripts. (closes: #563161)
+ * Enable more mobile IPv6 needs. (closes: #528834)
+
+ [ dann frazier ]
+ * [vserver] explicitly disable CFS_HARD_LIMITS
+ * Enable FUNCTION_TRACER and STACK_TRACER (Closes: #563847)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 31 Jan 2010 23:09:28 +0000
+
+linux-2.6 (2.6.32-5) unstable; urgency=low
+
+ [ Ben Hutchings ]
+ * sfc: Apply fixes from 2.6.33-rc3
+ * ath5k: Fix eeprom checksum check for custom sized eeproms
+ (Closes: #563136)
+
+ [ maximilian attems ]
+ * topconfig unset USB_ISP1362_HCD FTBFS on armel and useless.
+ (closes: #564156)
+ * topconfig set PATA_ATP867X, PATA_RDC, SND_CS5535AUDIO, PM_RUNTIME,
+ ATA_VERBOSE_ERROR, RTC_DRV_WM831X, RTC_DRV_PCF2123, RTC_DRV_AB3100,
+ SND_HDA_PATCH_LOADER, DEVTMPFS (closes: #560040).
+ * [x86] set RTL8192E, TOPSTAR_LAPTOP, I2C_SCMI.
+ * Explicitly disable diverse staging drivers.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 10 Jan 2010 03:22:23 +0000
+
+linux-2.6 (2.6.32-4) unstable; urgency=low
+
+ [ Ben Hutchings ]
+ * Correct comments referring to dpkg --print-installation-architecture
+ in maintainer scripts (Closes: #558077)
+ * modules: Skip empty sections when exporting section notes
+ (Closes: #563036)
+ * via-velocity: Give RX descriptors to the NIC later on open or MTU change
+ (Closes: #508527)
+ * dmfe/tulip: Let dmfe handle DM910x except for SPARC on-board chips
+ (Closes: #515533)
+ * Add stable release 2.6.32.3:
+ - ath5k: fix SWI calibration interrupt storm (may fix #563466)
+ - iwl3945: disable power save (Closes: #563693)
+ - rt2x00: Disable powersaving for rt61pci and rt2800pci (may fix #561087)
+
+ [ maximilian attems ]
+ * topconfig set CAN_EMS_USB, BT_MRVL, BT_MRVL_SDIO, BE2ISCSI, SCSI_PMCRAID,
+ SCSI_BFA_FC, USB_GL860, USB_GSPCA_JEILINJ, I2C_SI4713, RADIO_SI4713,
+ RADIO_SI470X, DVB_USB_FRIIO, EDAC_I3200, SENSORS_TMP421, SENSORS_WM8350,
+ SBC_FITPC2_WATCHDOG, TOUCHSCREEN_MCS5000, UIO_PCI_GENERIC, KSZ8842,
+ KS8851, KS8851_MLL, MISDN_AVMFRITZ, MISDN_SPEEDFAX, MISDN_INFINEON,
+ MISDN_W6692, MISDN_NETJET, INPUT_WINBOND_CIR, BATTERY_DS2782, MFD_WM831X,
+ MFD_MC13783, MTD_SST25L, TOUCHSCREEN_USB_E2I, INPUT_WM831X_ON,
+ SENSORS_WM831X, WM831X_WATCHDOG, AB3100_OTP, REGULATOR_WM831X,
+ REGULATOR_MC13783, REGULATOR_AB3100, REGULATOR_TPS65023,
+ REGULATOR_TPS6507X, VIDEO_SAA7164, DVB_PT1, BACKLIGHT_WM831X,
+ SND_HDA_CODEC_CIRRUS, USB_ISP1362_HCD, LEDS_WM831X_STATUS,
+ MTD_ONENAND_GENERIC, B43_SDIO, B43_PHY_LP, KEYBOARD_ADP5588, QT2160,
+ KEYBOARD_LM8323, KEYBOARD_MAX7359, KEYBOARD_OPENCORES, MOUSE_PS2_SENTELIC,
+ WM831X_POWER.
+ * [x86] set ACPI_POWER_METER, ACPI_PROCESSOR_AGGREGATOR, SFI,
+ EDAC_DECODE_MCE.
+ * Set MOUSE_PS2_ELANTECH for various EeePc. (closes: #522920)
+
+ [ dann frazier ]
+ * Fix vserver build on ia64 (Closes: #563356)
+ * Fix vserver build on s390 (Closes: #563355)
+
+ [ Martin Michlmayr ]
+ * Report model information on armel when filing a bug.
+ * ARM: Add an earlyprintk debug console (Catalin Marinas)
+ * [armel] Enable EARLY_PRINTK.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 07 Jan 2010 03:33:39 +0000
+
+linux-2.6 (2.6.32-3) unstable; urgency=high
+
+ * The "Not a Suitable Christmas Present" release
+
+ [ Martin Michlmayr ]
+ * [armel/orion5x] Build MTD_CFI_AMDSTD into the kernel again since
+ it's needed on the D-Link DNS-323 (thanks Manuel Roeder).
+ (Closes: #562205)
+
+ [ dann frazier ]
+ * Input: ALPS - add support for touchpads with 4-directional button
+ * Input: ALPS - add interleaved protocol support (Dell E6x00 series)
+ (Closes: #561589)
+ * Re-enable vserver
+
+ [ Ben Hutchings ]
+ * sfc: Apply changes from 2.6.33-rc1 adding support for SFC9000 family
+ * Add stable release 2.6.32.2:
+ - KVM: x86 emulator: limit instructions to 15 bytes (CVE-2009-4031)
+ - hfs: fix a potential buffer overflow (CVE-2009-4020)
+ * radeon: fix crtc vblank update for r600 (regression in 2.6.32.2)
+ * ia64: Include <linux/personality.h> header in <asm/fcntl.h>; fixes
+ FTBFS
+ * r8169: Allow RTL8168D v1 and v2 to be used without firmware files
+ (Closes: #561309)
+ * Enable vmxnet3 (VMware guest paravirt net driver) (Closes: #562046)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Thu, 24 Dec 2009 04:28:55 +0000
+
+linux-2.6 (2.6.32-2) unstable; urgency=high
+
+ [ Bastian Blank ]
+ * Allow memory hot-add and -remove if possible.
+ * Enable USB suspend.
+ * Enable kernel samepage merging. (closes: #558200)
+ * [s390]
+ - Enable SECCOMP.
+ - Enable z/VM Watchdog Timer.
+
+ [ Moritz Muehlenhoff ]
+ * Disable cryptoloop (Closes: #559755)
+ * Initial work on a README.source file as suggested by current policy
+
+ [ Ben Hutchings ]
+ * aufs2: Update to snapshot from 2009-12-05
+ * postinst: Fix failure paths in check for missing firmware
+ (Closes: #560263)
+ * atl1c: Fix system hang when link drops (Closes: #559577)
+ * netfilter: xtables: fix conntrack match v1 ipt-save output
+ (Closes: #556587)
+
+ [ Aurelien Jarno ]
+ * Add support for the sparc64 architecture.
+
+ [ dann frazier ]
+ * Add stable release 2.6.32.1:
+ - ext4: Fix double-free of blocks with EXT4_IOC_MOVE_EXT (CVE-2009-4306)
+ - ext4: avoid divide by zero when trying to mount a corrupted file system
+ (CVE-2009-4307)
+ - ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT (CVE-2009-4131)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Wed, 16 Dec 2009 21:42:49 +0000
+
+linux-kbuild-2.6 (2.6.32-1) unstable; urgency=low
+
+ [ Ben Hutchings ]
+ * New upstream version. (closes: #560090)
+ * Include new script module-common.lds, thanks to Zoran Dzelajlija.
+
+ [ Bastian Blank ]
+ * Move contents of linux-kbuild package to /usr/lib.
+
+ -- Bastian Blank <waldi@debian.org> Fri, 11 Dec 2009 16:16:12 +0100
+
+linux-2.6 (2.6.32-1) unstable; urgency=low
+
+ * New upstream release candidate:
+ - Fixes wifi with rt73usb (Closes: #555640)
+
+ [ Martin Michlmayr ]
+ * [armel/kirkwood] Turn on USB_SUSPEND (on the request of a SheevaPlug
+ user).
+ * [mips/4kc-malta, mips/5kc-malta] Compile USB as a module rather than
+ into the kernel.
+
+ [ Bastian Blank ]
+ * Enable PCI_MSI.
+ * [powerpc] Properly enable Apple PMU battery.
+ * [mips/mipsel] Drop remaining OSS drivers.
+ * [powerpc] Enable PCIe support.
+ * Move contents of linux-support package to /usr/share.
+ * Make linux-patch package depend against python.
+ * Use python-support instead of python-central.
+ * Always enable software watchdog support.
+ * Always enable complete USB mass storage support.
+ * [amd64, powerpc, sparc] Build USB support as module.
+ * [amd64] Build AGP support as module.
+ * Always enable dummy net driver support.
+ * Drop linux-tree package, it have no users left.
+
+ [ Ben Hutchings ]
+ * Re-enable accidentally omitted drivers, thanks to Uwe Kleine-König
+ (Closes: #558011):
+ - Atheros wireless drivers (ar9170, ath5k, ath9k)
+ - TI wl12xx wireless drivers (wl1251_spi, wl1251_sdio and wl1271
+ replace wl12xx)
+ - Silicon Labs Si470x FM Radio Receiver driver (radio-usb-si470x)
+ * Add 'removable' option to the mmc module. Setting this to 0 causes
+ MMC/SD cards to be assumed non-removable, and filesystems on them
+ will remain mounted over a suspend/resume cycle. (Closes: #504391)
+ * Add MODULE_FIRMWARE declarations to many drivers that lacked them, so
+ that missing firmware will be reported automatically during upgrades
+ * atl1e: Remove broken implementation of TSO for TCP/IPv6
+ (Closes: #558426) and allow other hardware offloads to be disabled in
+ case they are also buggy
+ * usbnet: Set link down initially for drivers that update link state
+ (Closes: #444043)
+ * aufs2: Update to snapshot from 2009-11-29
+ * i915: Enable auto-loading even though CONFIG_DRM_I915_KMS is not set
+
+ [ dann frazier ]
+ * mac80211 (CVE-2009-4026, CVE-2009-4027):
+ - fix two remote exploits
+ - fix spurious delBA handling
+
+ -- Bastian Blank <waldi@debian.org> Sun, 06 Dec 2009 18:17:39 +0100
+
+linux-2.6 (2.6.32~rc8-1~experimental.1) unstable; urgency=low
+
+ [ Ben Hutchings ]
+ * New upstream release candidate.
+ - slip: Clean up create and destroy (Closes: #408635)
+ - signal: Fix alternate signal stack check (Closes: #544905)
+ * README.Debian: Add brief information about building specific binary
+ packages (Closes: #546182)
+ * lgs8gxx: Remove firmware for lgs8g75 and use request_firmware() to
+ load it
+ * r8169: Remove firmware for RTL8168D v1 and v2 and use
+ request_firmware() to load it
+ * DocBook: Fix build breakage
+ * Hide WPA authentication parameters and comments when including network
+ configuration in bug reports
+
+ [ Bastian Blank ]
+ * [mips] Don't force EMBEDDED on.
+ * [sparc] Don't builtin Ext2 support.
+ * Enable PERF_EVENTS, EVENT_PROFILE, CRYPTO_VMAC, CRYPTO_GHASH, TREE_RCU.
+ * Use SLUB as default SLAB allocator.
+
+ [ Martin Michlmayr ]
+ * [armel] Make some options modular (since there's no reason for them
+ to be built in): FTL, NFTL, MTD_CFI_AMDSTD, MTD_CFI_STAA.
+ * [armel/orion5x, armel/kirkwood] Enable ISDN (requested by Markus
+ Krebs).
+ * Add patch from Albin Tonnerre to add HAVE_KERNEL_LZMA to arm.
+ * [armel] Enable KERNEL_LZMA, i.e. compress kernels with lzma to get
+ much better compression.
+ * [armel] Re-enable options that were turned off recently because of
+ size constraints: DEBUG_USER, DEBUG_KERNEL, BOOT_TRACER, ARM_UNWIND,
+ BLK_DEV_IO_TRACE and SECURITY_SELINUX.
+
+ [ maximilian attems ]
+ * Simplify postinst nuke reverse symlinks handling. Patch from
+ Sebastian Andrzej Siewior <sebastian@breakpoint.cc>.
+
+ -- Bastian Blank <waldi@debian.org> Sat, 21 Nov 2009 21:41:45 +0100
+
+linux-2.6 (2.6.31-2) unstable; urgency=low
+
+ [ Martin Michlmayr ]
+ * [armel/orion5x, armel/kirkwood] Make sure VGA_CONSOLE is disabled,
+ otherwise the kernel won't boot.
+ * [armel/kirkwood] Enable CRYPTO_DEV_MV_CESA (Closes: #552270).
+ * [armel/kirkwood, armel/orion5x] Enable ORION_WATCHDOG (the
+ name of the config variable changed).
+ * Add OpenRD-Client support again.
+ * Add QNAP TS-41x support.
+ * [armel/orion5x, armel/kirkwood] Enable ISDN (requested by Markus
+ Krebs).
+ * Fix a build failure of the ISDN hisax elsa driver on ARM.
+ * mips: fix build of vmlinux.lds (Closes: #552422).
+
+ [ Ben Hutchings ]
+ * postinst: Accept absolute paths in modules.dep generated by the
+ lenny version of module-init-tools (Closes: #552610)
+ * aufs2: Remove incorrect static assertion (Closes: #554120)
+ * Add stable release 2.6.31.6:
+ - fs: pipe.c null pointer dereference (CVE-2009-3547)
+ - KEYS: get_instantiation_keyring() should inc the keyring refcount
+ in all cases (CVE-2009-3624)
+ - netlink: fix typo in initialization (CVE-2009-3612)
+ * Undo PCMCIA ABI change in 2.6.31.6
+ * Hide wireless keys and wake-on-LAN password when including network
+ configuration in bug reports
+ * Add Geode LX/NX to list of 686-class processors
+
+ [ Bastian Blank ]
+ * [powerpc] Remove SMP warning from PowerMac cpufreq (Closes: #554124)
+
+ [ maximilian Attems ]
+ * Really fix making a debian kernel installable without kernel-img.conf.
+ Thanks for patch to Sebastian Andrzej Siewior <sebastian@breakpoint.cc>.
+ (closes: #555093).
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 15 Nov 2009 18:47:49 +0000
+
+linux-kbuild-2.6 (2.6.31.2-1) unstable; urgency=low
+
+ * Upload to unstable.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sun, 25 Oct 2009 18:38:44 +0000
+
+linux-2.6 (2.6.31-1) unstable; urgency=low
+
+ [ Ben Hutchings ]
+ * Include aufs2, marked as staging (Closes: #541828)
+ * Include speakup modules under staging
+ * Add stable release 2.6.31.5
+ * [x86_64] Enable NUMA_EMU (Closes: #541389)
+
+ [ Martin Michlmayr ]
+ * CPUidle: always return with interrupts enabled.
+ * [armel/orion5x, armel/kirkwood] Enable FB since some Kirkwood
+ machines have a VGA chip (e.g. OpenRD-Client) and because it's
+ possible to use a DisplayLink USB virtual graphics adapter.
+
+ [ maximilian attems ]
+ * [alpha] Disable SND_MIXART, causes gcc ICE.
+ * [x86] Enable modular X86_MCE_INJECT.
+ * [x86_32] Set LSM_MMAP_MIN_ADDR to zero to unbreak dosemu and 16-bit Wine,
+ ia64 and x86_64 to 65536 otherwise default to 32768.
+ * Unset UEVENT_HELPER_PATH to save some boot cycles.
+
+ [ Bastian Blank ]
+ * Set ABI to 1.
+ * Enable Apple PMU battery. (closes: #544264)
+
+ -- Bastian Blank <waldi@debian.org> Sat, 24 Oct 2009 19:17:30 +0200
+
+linux-kbuild-2.6 (2.6.31.2-1~experimental.1) experimental; urgency=low
+
+ [ Bastian Blank ]
+ * New upstream version.
+
+ [ Ben Hutchings ]
+ * Include new script gcc-x86_32-has-stack-protector.sh.
+ * Add myself to Uploaders.
+ * New upstream version (2.6.31.2).
+
+ -- Ben Hutchings <ben@decadent.org.uk> Sat, 17 Oct 2009 23:05:27 +0100
+
+linux-2.6 (2.6.31-1~experimental.2) experimental; urgency=low
+
+ [ Ben Hutchings ]
+ * Include more information in bug reports:
+ - Model information
+ - Firmware package status
+ - Network configuration and status (optional)
+ - USB device list
+ * nfs: Avoid overrun when copying client IP address string
+ (Closes: #549002)
+ * Add support for DEB_BUILD_OPTIONS=parallel=N (Closes: #458560)
+ * sfc: Fix initial link state
+ * Improve package descriptions
+ - Clarify the differences between i386 flavours (Closes: #414690)
+ - Simplify wording of the description template
+ * Add stable release 2.6.31.3
+ * Remove /usr/include/scsi from linux-libc-dev; these headers are
+ provided by libc6-dev (Closes: #550130)
+ * Remove dummy dot-files from linux-libc-dev
+ * hfsplus: Refuse to mount volumes larger than 2TB, which may otherwise
+ be corrupted (Closes: #550010)
+ * Add stable release 2.6.31.4
+ - x86: Don't leak 64-bit kernel register values to 32-bit processes
+ (CVE-2009-2910)
+ - appletalk: Fix skb leak when ipddp interface is not loaded
+ (CVE-2009-2903)
+
+ [ maximilian attems ]
+ * Add stable release 2.6.31.2
+ - ax25: Fix signed comparison in the sockopt handler (CVE-2009-2909)
+ - PM / yenta: Fix cardbus suspend/resume regression (Closes: #522828)
+
+ [ dann frazier ]
+ * [sparc] build zImage by default, fixes build
+ * [ia64] Fix call to elilo in postinst
+
+ -- maximilian attems <maks@debian.org> Mon, 12 Oct 2009 23:54:52 +0200
+
+linux-2.6 (2.6.31-1~experimental.1) experimental; urgency=low
+
+ * New upstream release.
+ - Support for W83627DHG-P (closes: #535646).
+ - Restore MAC address and MTU change operations on Orinoco and others
+ (Closes: #536455)
+ - Remove incorrect ACPI blacklisting of ASUS P4B266 mainboards
+ (Closes: #525625)
+ - atl1c fixes for Eee PC model 1005HA-H. (closes: #538410)
+ - parisc64-smp boot fix on J5600. (closes: #539369)
+ - parisc: Fix GOT overflow during module load on 64bit kernel
+ (closes: #539378)
+ - xfs: fix freeing of inodes not yet added to the inode cache
+ (Closes: #527517)
+ - IPv6: add "disable" module parameter support to ipv6.ko.
+ (closes: #542470)
+ - IPv6: avoid wraparound for expired preferred lifetime
+ (Closes: #518710)
+ - Fixes lockups with older dual-CPU machines (Closes: #542551)
+ - x86, pat: Allow ISA memory range uncacheable mapping requests
+ (Closes: #538159)
+ - drm/i915: Hook connector to encoder during load detection
+ (Closes: #522358)
+ - module: workaround duplicate section names (Closes: #545229)
+ - b43: Add fw capabilities (Closes: #533357)
+ - procfs: Fix idle time in uptime (Closes: #545981)
+ - e1000, e1000e, igb, ixgb, ixgbe: Fix initial link state
+ (Closes: #546041)
+ - CIFS: Handle port= mount option correctly (Closes: #524142)
+ - i915: Prevent screen flickering in X11 (Closes: #545377)
+ - hppa: Ensure broadcast tlb purge runs single threaded
+ (Closes: #539215)
+
+ [ maximilian attems ]
+ * [powerpc64] Enable modular RTC_DRV_PS3, PS3_VRAM.
+ (Closes: #528694)
+ * Set new NETFILTER_XT_MATCH_OSF, FIREWIRE_NET, SND_CTXFI, USB_XHCI_HCD,
+ IEEE802154, CAN_DEV, EEPROM_MAX6875, DM_LOG_USERSPACE, DM_MULTIPATH_QL,
+ DM_MULTIPATH_ST, LIBERTAS_SPI, CAN_SJA1000, CAN_SJA1000_PLATFORM,
+ CAN_EMS_PCI, CAN_KVASER_PCI, CB710_CORE, CNIC, RT2800USB,
+ USB_NET_INT51X1, SND_LX6464ES, BLK_DEV_OSD, SCSI_BNX2_ISCSI, IWM,
+ IEEE802154_DRIVERS, TOUCHSCREEN_EETI, TOUCHSCREEN_W90X900,
+ BATTERY_MAX17040, SENSORS_TMP401, REGULATOR_USERSPACE_CONSUMER,
+ REGULATOR_MAX1586, REGULATOR_LP3971, MEDIA_SUPPORT, CUSE,
+ WL12XX, PPS, AB3100_CORE, SND_HDA_INPUT_JACK,MMC_SDHCI_PLTFM,
+ MMC_CB710, MMC_VIA_SDMMC, LEDS_LP3944, RTC_DRV_RX8025,
+ SMARTJOYPLUS_FF, USB_CDC_PHONET, USB_GSPCA_SN9C20X, MOUSE_SYNAPTICS_I2C,
+ PCIEAER_INJECT.
+ * Disable v4l1 ov511 and quickcam_messenger drivers.
+ * [x86_64] Enable HW_RANDOM_VIA.
+ * [x86] Keep divers staging stuff enabled.
+ * [x86] Enable RT3070, COMEDI_PCMCIA_DRIVERS, ACERHDF, EDAC_AMD64,
+ XEN_DEV_EVTCHN, XEN_SYS_HYPERVISOR, PERF_COUNTERS,
+ CC_STACKPROTECTOR, DEFAULT_MMAP_MIN_ADDR=65536.
+ * rtl8192su: remove firmware and disable.
+ * Newer Standards-Version 3.8.2 without changes.
+ * Allow install in chroot without do_initrd check for piuparts.
+ * Cleanup Maintainer scripts from ancient pre linux-2.6 assumptions.
+ (Also closes: #536333)
+ * Disable DEVKMEM.
+ * [ppc, sparc] Enable EFI_PARTITION. (closes: #540486)
+ * Disable old USB_DEVICE_CLASS. (Closes: #510279)
+ * Drop yaird initramfs generator support.
+ * Add stable release 2.6.31.1.
+ * Enable PREEMPT_VOLUNTARY.
+
+ [ Ben Hutchings ]
+ * mga: remove unnecessary change from firmware-loading patch
+ * cxgb3: remove PHY firmware and use request_firmware() to load it
+ * Add firmware-linux-free package containing DFSG-free firmware
+ * av7110: include firmware source and binary
+ * snd-cs46xx: reenable using external firmware (closes: #464197,
+ but note that Debian cannot currently distribute the firmware),
+ thanks to Kalle Olavi Niemitalo <kon@iki.fi>
+ * ib_ipath: remove firmware for QLogic IBA7220 and use
+ request_firmware() to load it
+ * dvb-usb-af9005: remove initialisation script derived from Windows
+ driver and use request_firmware() to extract it at run-time
+ (closes: #494119)
+ * Add warning on upgrade to a new upstream version where the system
+ appears to be missing necessary firmware files (closes: #541702)
+ * qla1280: Release spinlock when requesting firmware (closes: #543244)
+ * r128: Add test for initialisation to all ioctls that require it
+ (closes: #541630)
+ * rt{2860,2870,3070}sta: Use existing CCITT CRC implementation on
+ firmware rather than adding an equivalent variant of ITU-T CRC
+ * rd: Build as a module since we do not require initrd support
+ * x86: Fix crash in text_poke_early() on 486-class processors
+ (Closes: #515982)
+ * intel-agp: Fix cache flushing on i8xx chipsets, avoiding graphics
+ corruption and GPU lock-ups (Closes: #541307)
+ * Generate architecture-qualified package relations as needed for
+ flavours that exist for multiple architectures (Closes: #278729)
+ * Prompt bug reporters to run the kernel version they're reporting on
+ or otherwise record boot messages
+ * Include PCI device list in bug reports even if the running kernel
+ doesn't match
+
+ [ Martin Michlmayr ]
+ * [armel/orion5x, armel/kirkwood] Set GPIO_SYSFS=y since these
+ platforms have been converted to GPIOLIB.
+ * [armel/orion5x, armel/kirkwood] Disable MARVELL_PHY since it may
+ lead to conflicts with the built-in Ethernet.
+ * Add features from 2.6.32:
+ - crypto: mv_cesa - Add support for Orion5X crypto engine
+ * [armel/orion5x] Enable CRYPTO_DEV_MV_CESA.
+ * Disable SYS_HAS_EARLY_PRINTK on SGI IP22 to work around a hang
+ during bootup (Closes: #507557)
+ * [armel] Enable BPQETHER (on the request of Iain Young) and some
+ other AX25 drivers.
+
+ [ Bastian Blank ]
+ * Disable staging drivers by default.
+ * Force all bugs against images to be reported to linux-2.6.
+ (closes: #539176)
+ * [arm] Remove old arm architecture.
+ * Use kernel architecture for libc-dev build.
+
+ [ Moritz Muehlenhoff ]
+ * Fix Linus' name in copyright file (Closes: #530620)
+ * More verbose explanation on difference between Alpha flavour
+ (Closes: #497230)
+ * Add Vcs-Svn and Vcs-Browser stanzas pointing to the SVN branch
+ used for development in unstable. There are other branches
+ used for experimental (trunk), oldstable and stable, but Vcs-*
+ doesn't yet provide the ability to distinguish branches in a
+ more fine-grained manner. (Closes: #471495)
+ * Update Standards-Version to 3.8.3, no changes needed
+ * Disable PROM console support (Closes: #525958)
+ * Make the description of linux-support a little more verbose
+ (Closes: #400825)
+ * This upload fixes the following security issues:
+ - CVE-2009-3290 (2.6.31)
+ - CVE-2009-3288 (2.6.31.1)
+ - CVE-2009-3280 (2.6.31.1)
+ - CVE-2009-3234 (2.6.31.1)
+ - CVE-2009-3043 (2.6.31)
+ - CVE-2009-3002 (2.6.31)
+ - CVE-2009-3001 (2.6.31)
+ - CVE-2009-2844 (2.6.31)
+ - CVE-2009-2695 (2.6.31)
+ - CVE-2009-2691 (2.6.31)
+
+ [ dann frazier ]
+ * n_tty: Fix echo race
+ * [ia64] Stop disabling CONFIG_HOTPLUG_CPU, which was blocking
+ CONFIG_KEXEC from being enabled
+ * [hppa] Disable CONFIG_AB3100_CORE, it fails to build
+
+ -- maximilian attems <maks@debian.org> Sun, 04 Oct 2009 20:27:05 +0200
+
+linux-2.6 (2.6.30-8) unstable; urgency=low
+
+ [ Martin Michlmayr ]
+ * Disable SYS_HAS_EARLY_PRINTK on SGI IP22 to work around a hang
+ during bootup (Closes: #507557)
+ * module: workaround duplicate section names to fix a panic on
+ boot on hppa (Closes: #545229).
+ * Add stable release 2.6.30.8.
+ * [armel/kirkwood] Add Marvell OpenRD-Client support (Dhaval Vasa).
+ Thanks Stefan Kaltenbrunner.
+
+ -- Bastian Blank <waldi@debian.org> Fri, 25 Sep 2009 23:47:56 +0200
+
+linux-2.6 (2.6.30-7) unstable; urgency=low
+
+ [ Martin Michlmayr ]
+ * [armel/kirkwood] Enable eSATA on QNAP TS-219P (John Holland).
+ * [armel/kirkwood] Marvell OpenRD-Base board support (Dhaval Vasa).
+ * [armel/kirkwood] Initialise SATA for OpenRD-Base (Ron Lee).
+ * [armel/kirkwood] Enable SATA_AHCI.
+
+ [ Ben Hutchings ]
+ * qla1280: Release spinlock when requesting firmware (closes: #543244)
+ * r128: Add test for initialisation to all ioctls that require it
+ (closes: #541630)
+ * [i386] Fix crash in text_poke_early() on 486-class processors
+ (Closes: #515982)
+ * intel-agp: Fix cache flushing on i8xx chipsets, avoiding graphics
+ corruption and GPU lock-ups (Closes: #541307)
+ * [i386] Allow ISA memory range uncacheable mapping requests
+ (Closes: #538159)
+ * Fix idle time in /proc/uptime (Closes: #545981)
+ * e1000, e1000e, igb, ixgb, ixgbe, sfc: Fix initial link state
+ (Closes: #546041)
+
+ [ Bastian Blank ]
+ * Add stable release 2.6.30.5.
+ - drm/i915: Hook connector to encoder during load detection
+ (fixes tv/vga detect) (Closes: #522358)
+ * Add stable release 2.6.30.6.
+ - x86: Fix lock-up on SMP Pentium Pro, Pentium 2, Pentium 3, and
+ Athlon MP systems (Closes: #542551)
+ - NET: Fix information leaks from getsockname() (CVE-2009-3001,
+ CVE-2009-3002)
+ - iwl3945/rfkill: Reenable radio when hardware switch turned back on
+ (Closes: #530554)
+ * Bump ABI to 2.
+ * Apply missing fixes:
+ - block: fix sg SG_DXFER_TO_FROM_DEV regression.
+ - sched_rt: Fix overload bug on rt group scheduling.
+ * Add stable release 2.6.30.7.
+ * [sparc] Disable PROM console. (closes: #525958)
+
+ -- Bastian Blank <waldi@debian.org> Wed, 16 Sep 2009 17:23:13 +0200
+
+linux-2.6 (2.6.30-6) unstable; urgency=high
+
+ [ Bastian Blank ]
+ * Set default low address space protection to default value.
+
+ [ dann frazier ]
+ * Make sock_sendpage() use kernel_sendpage() (CVE-2009-2692)
+ * flat: fix uninitialized ptr with shared libs
+ * [parisc] isa-eeprom - Fix loff_t usage
+ * do_sigaltstack: avoid copying 'stack_t' as a structure to user space
+ * posix-timers: Fix oops in clock_nanosleep() with CLOCK_MONOTONIC_RAW
+
+ -- Bastian Blank <waldi@debian.org> Sat, 15 Aug 2009 15:50:02 +0200
+
+linux-2.6 (2.6.30-5) unstable; urgency=high
+
+ [ maximilian attems ]
+ * Add stable release 2.6.30.4.
+ - cifs: fix regression with O_EXCL creates and optimize away lookup
+ (closes: #536426)
+ - ecryptfs: check tag 11 literal data buffer size (CVE-2009-2406)
+ - ecryptfs: check tag 3 package encrypted size (CVE-2009-2407)
+ * Ignore nf_conntrack ABI change.
+ * Revert to keep ABI:
+ - block: fix sg SG_DXFER_TO_FROM_DEV regression.
+ - sched_rt: Fix overload bug on rt group scheduling.
+ * [hppa]: Ignore any ABI (broke on 2.6.30.2).
+
+ -- maximilian attems <maks@debian.org> Mon, 03 Aug 2009 12:08:56 +0200
+
+linux-2.6 (2.6.30-4) unstable; urgency=low
+
+ [ Bastian Blank ]
+ * Add stable release 2.6.30.2.
+ * Fix pci access in x86 startup code. (closes: #537783)
+ * Ignore ABI changes.
+ * Include all plattform and mach specific headers on arm.
+
+ [ maximilian attems ]
+ * Add stable release 2.6.30.3.
+
+ -- Bastian Blank <waldi@debian.org> Thu, 30 Jul 2009 11:55:11 +0200
+
+linux-2.6 (2.6.30-3) unstable; urgency=low
+
+ [ Bastian Blank ]
+ * Build-Depend against cpio. (closes: #536196)
+
+ [ Martin Michlmayr ]
+ * [arm] Export __cpu_flush_dcache_page.
+
+ [ Aurelien Jarno ]
+ * [ia64] Fix asm/fpu.h includes.
+
+ [ dann frazier ]
+ * Fix NULL pointer dereference in tun_chr_pool() (CVE-2009-1897)
+ * personality: fix PER_CLEAR_ON_SETID (CVE-2009-1895)
+ * Add -fno-delete-null-pointer-checks to CFLAGS
+
+ -- Bastian Blank <waldi@debian.org> Sat, 18 Jul 2009 10:00:01 +0200
+
+linux-2.6 (2.6.30-2) unstable; urgency=low
+
+ [ dann frazier ]
+ * [powerpc] Use generic rtc (closes: #535354)
+ * [parisc]
+ - ensure broadcast tlb purge runs single threaded
+ - fix ldcw inline assembler
+ (closes: #535844)
+
+ [ Bastian Blank ]
+ * Add stable release 2.6.30.1:
+ - KVM: x86: check for cr3 validity in ioctl_set_sregs (CVE-2009-2287)
+ - ALSA: intel8x0 - Fix PCM position craziness (closes: #533780)
+ - ide-cd: prevent null pointer deref via cdrom_newpc_intr (closes: #535342)
+ * Ignore ABI changes.
+
+ [ maximilian attems ]
+ * [alpha] Add upstream smp buildfix.
+ * [parisc] Disable vxge and niu.
+
+ -- Bastian Blank <waldi@debian.org> Tue, 07 Jul 2009 14:45:43 +0200
+
+linux-kbuild-2.6 (2.6.30-1) unstable; urgency=low
+
+ * New upstream version.
+
+ -- Bastian Blank <waldi@debian.org> Wed, 17 Jun 2009 16:49:57 +0200
+
+linux-2.6 (2.6.30-1) unstable; urgency=low
+
+ * New upstream release.
+ - radeonfb: suspend/resume for ATI Mobility Radeon RV350.
+ (closes: #506964)
+ - tcp: fix MSG_PEEK race check (closes: #513695)
+ - e100 fixes (closes: #527056)
+ - mos7840: fix miscalculation of minor numbers (closes: #498293)
+ - reiserfs update (closes: #531804)
+ - bluetooth stack suspend/resume (closes: #508426, #529785)
+ - e1000e: Remove mutex_trylock and associated WARN on failure
+ (closes: #524699)
+
+ [ maximilian attems ]
+ * [sparc] Enable BLK_DEV_CRYPTOLOOP. (closes: #521829)
+ * Enable PATA_JMICRON instead of legacy BLK_DEV_JMICRON.
+ (closes: #431500, #458493)
+ * Set new NILFS2, AT76C50X_USB, MWL8K, P54_SPI, AR9170_USB,
+ NETFILTER_XT_MATCH_CLUSTER, RDS, SCSI_MPT2SAS, SCSI_OSD_INITIATOR,
+ ETHOC, IGBVF, VXGE, TOUCHSCREEN_AD7877, SENSORS_ATK0110,
+ NETFILTER_XT_TARGET_LED, 3C359, HW_RANDOM_TIMERIOMEM, SENSORS_G760A,
+ SENSORS_LTC4215, SENSORS_LM95241, USB_GSPCA_MR97310A, USB_GSPCA_SQ905,
+ USB_GSPCA_SQ905C, USB_PWC_INPUT_EVDEV, DVB_USB_CE6230, SND_INDIGOIOX,
+ SND_INDIGODJX, USB_SERIAL_CP210X, USB_SERIAL_QUALCOMM,
+ USB_SERIAL_SYMBOL, ISL29003, SERIAL_MAX3100, VIDEO_HDPVR, VIDEO_CX231XX,
+ DRAGONRISE_FF, LEDS_LP5521, LEDS_DAC124S085, LEDS_BD2802,
+ UIO_AEC, CRYPTO_ZLIB, REGULATOR_FIXED_VOLTAGE, NOP_USB_XCEIV,
+ POHMELFS, FSCACHE, CACHEFILES, EXOFS, NFS_FSCACHE, AFS_FSCACHE,
+ MTD_NAND_NANDSIM, STRIP_ASM_SYMS, FCOE_FNIC, USB_NET_CDC_EEM,
+ PCI_IOV, ASYNC_TX_DMA, ROMFS_BACKED_BY_BOTH, DETECT_HUNG_TASK.
+ * [amd64, i386] Set new DELL_WMI, EDAC_AMD8131, EDAC_AMD8111, X86_PAT, DMAR,
+ X86_CPU_DEBUG, CRYPTO_AES_NI_INTEL, X86_X2APIC.
+ * Newer Standards-Version 3.8.1 without changes.
+ * xfs: fix freeing memory in xfs_getbmap().
+
+ [ Ben Hutchings ]
+ * Remove firmware from drivers/staging (closes: #521553)
+ - make rt2860sta and rt2870sta use request_firmware(),
+ thanks to Darren Salt
+ * Remove some sourceless firmware not included in Debian kernel images
+
+ [ Martin Michlmayr ]
+ * [mipsel/r5k-cobalt] Enable SCSI_SYM53C8XX_2 (closes: #526836).
+ * [arm/iop32x, arm/ixp4xx, arm/orion5x] Turn off BOOT_TRACER,
+ BLK_DEV_IO_TRACE, CONTEXT_SWITCH_TRACER, ARM_UNWIND and
+ SECURITY_SELINUX because of size constraints.
+ * [mips/sb1-bcm91250a] There is a platform PATA driver for SWARM IDE
+ these days, so disable IDE and build in ATA, SCSI and BLK_DEV_SD.
+ * [mips/sb1-bcm91250a, mips/sb1a-bcm91480b] Compile in SB1250_MAC and
+ BROADCOM_PHY.
+ * [mips/r4k-ip22] Enable NET_ISA and various ISA network modules on
+ the request of Damian Dimmich since they might be useful on the
+ SGI Indigo2.
+ * Add patches from git.marvell.com:
+ - alternative copy_to_user: more precise fallback threshold
+ - lower overhead with alternative copy_to_user for small copies
+ - Kirkwood: Add CPU idle driver
+ - Kirkwood: clock gating for unused peripherals
+
+ [ Aurelien Jarno ]
+ * [mips(el)/sb1-bcm91250a] Set CONFIG_SCSI_AIC7XXX=y, it is needed
+ on the build daemons.
+ * topconfig set CONFIG_RD_GZIP, CONFIG_RD_BZIP2, CONFIG_RD_LZMA.
+
+ [ Bastian Blank ]
+ * [i386] Disable PentiumPro errata workaround.
+ * [i386] Enable support for big SMP systems.
+ * Disable OSS.
+ * [s390] Use Sparse Memory layout.
+ * [amd64, i386, powerpc, sparc] Make IPv6 support built-in.
+ * Centralize Sound core options.
+ * Centralize Power Management options.
+ * Centralize CPU Frequency scaling options.
+ * [sparc] Enable CPU Frequency scaling.
+ * Enable Network console logging support.
+ * [s390/s390x-tape] Add image.
+ * [s390/s390, s390/s390-tape] Remove images.
+ * [i386/486] Enable High Memory Support.
+ * [i386] Allocate pagetables from High Memory.
+ * [amd64, i386] Write protect kernel read-only data structures.
+ * [amd64, i386] Make kernel relocatable.
+ * Move images and headers into kernel section.
+
+ [ dann frazier ]
+ * Enable bnx2x, using firmware-split patches from net-next and mirroring
+ the per-subarch config settings used for bnx2
+
+ -- Bastian Blank <waldi@debian.org> Sun, 14 Jun 2009 11:45:08 +0200
+
+linux-2.6 (2.6.29-5) unstable; urgency=low
+
+ [ dann frazier ]
+ * [ia64] Backport rtc-efi driver from mainline
+
+ [ maximilian attems ]
+ * qla1280: Fix off-by-some error in firmware loading. (closes: #527265)
+
+ [ Martin Michlmayr ]
+ * Broadcom SB: fix locking in set_irq_affinity.
+ * mmc: load mvsdio automatically when it's a platform device.
+ * mmc: mvsdio: ignore high speed timing requests from the core
+ * USB: ftdi_sio: add vendor/product id for the Marvell SheevaPlug.
+
+ [ Bastian Blank ]
+ * Add stable release 2.6.29.3:
+ - ath9k: Fix FIF_BCN_PRBRESP_PROMISC handling
+ - tracing: x86, mmiotrace: fix range test
+ - sched: account system time properly
+ - rndis_wlan: fix initialization order for workqueue&workers
+ - mm: fix Committed_AS underflow on large NR_CPUS environment
+ - Ignore madvise(MADV_WILLNEED) for hugetlbfs-backed regions
+ - clockevents: prevent endless loop in tick_handle_periodic()
+ - intel-iommu: Avoid panic() for DRHD at address zero.
+ - intel-iommu: Fix oops in device_to_iommu() when devices not found.
+ - intel-iommu: Fix device-to-iommu mapping for PCI-PCI bridges.
+ - cs5536: define dma_sff_read_status() method
+ - proc: avoid information leaks to non-privileged processes
+ - ath5k: fix buffer overrun in rate debug code
+ - mv643xx_eth: OOM handling fixes
+ - mv643xx_eth: 64bit mib counter read fix
+ - check_unsafe_exec: s/lock_task_sighand/rcu_read_lock/
+ - do_execve() must not clear fs->in_exec if it was set by another thread
+ - check_unsafe_exec() doesn't care about signal handlers sharing
+ - New locking/refcounting for fs_struct
+ - Take fs_struct handling to new file (fs/fs_struct.c)
+ - Get rid of bumping fs_struct refcount in pivot_root(2)
+ - Kill unsharing fs_struct in __set_personality()
+ - Annotate struct fs_struct's usage count restriction
+ - fix setuid sometimes wouldn't
+ - fix setuid sometimes doesn't
+ - compat_do_execve should unshare_files
+ - powerpc: Sanitize stack pointer in signal handling code
+ - ACPI: Revert conflicting workaround for BIOS w/ mangled PRT entries
+ - USB: serial: fix lifetime and locking problems
+ - ptrace: ptrace_attach: fix the usage of ->cred_exec_mutex
+ - kbuild: fix Module.markers permission error under cygwin
+ - pagemap: require aligned-length, non-null reads of /proc/pid/pagemap
+ - drm/i915: allow tiled front buffers on 965+
+ - bio: fix memcpy corruption in bio_copy_user_iov()
+ - PCI quirk: disable MSI on VIA VT3364 chipsets
+ - ASoC: Fix offset of freqmode in WM8580 PLL configuration
+ - x86/PCI: don't call e820_all_mapped with -1 in the mmconfig case
+ - x86-64: fix FPU corruption with signals and preemption
+ - drm/i915: add support for G41 chipset
+ - unreached code in selinux_ip_postroute_iptables_compat() (CVE-2009-1184)
+ - PCI: fix incorrect mask of PM No_Soft_Reset bit
+ - exit_notify: kill the wrong capable(CAP_KILL) check (CVE-2009-1337)
+ - crypto: ixp4xx - Fix handling of chained sg buffers
+ - block: include empty disks in /proc/diskstats
+ - b44: Use kernel DMA addresses for the kernel DMA API
+ - virtio-rng: Remove false BUG for spurious callbacks
+ - USB: Unusual Device support for Gold MP3 Player Energy
+ - KVM: x86: release time_page on vcpu destruction
+ - KVM: Fix overlapping check for memory slots
+ - KVM: MMU: disable global page optimization
+ - KVM: MMU: Fix off-by-one calculating large page count
+ - mac80211: fix basic rate bitmap calculation
+ - ALSA: us122l: add snd_us122l_free()
+ - thinkpad-acpi: fix LED blinking through timer trigger
+ - b43: Refresh RX poison on buffer recycling
+ - b43: Poison RX buffers
+ - mac80211: Fix bug in getting rx status for frames pending in reorder
+ buffer
+ - forcedeth: Fix resume from hibernation regression.
+ * Ignore ABI change.
+
+ [ Jurij Smakov ]
+ * [sparc] Fix build
+
+ -- Bastian Blank <waldi@debian.org> Sun, 17 May 2009 12:45:13 +0200
+
+linux-2.6 (2.6.29-4) unstable; urgency=low
+
+ [ maximilian attems ]
+ * drm/i915: allow tiled front buffers on 965+.
+
+ [ Martin Michlmayr ]
+ * Extend erase timeout in M25P80 SPI Flash driver (Peter Horton).
+ * Add driver for GMT G760A fan speed PWM controller chip.
+ * [arm/orion5x] Enable SENSORS_G760A.
+ * Add patches from git.marvell.com:
+ - allow for alternative __copy_to_user/__clear_user implementations
+ - alternative copy_to_user/clear_user implementation copy_user
+ * [arm/orion5x, armel/kirkwood] Enable UACCESS_WITH_MEMCPY.
+ * [MMC] give Sandisk/Kingston SDHC cards some slack before the SWITCH
+ command.
+
+ [ dann frazier ]
+ * [parisc] Fix macro expansion in atomic.h fixing PHONET compilation issue
+ * [parisc] reenable PHONET
+ * Btrfs: fix __ucmpdi2 compile bug on 32 bit builds
+
+ [ Stephen R. Marenka ]
+ * [m68k] Add 2.6.29 patches.
+ * [m68k] Enable RTC for aranym (2.6.29 solution).
+
+ [ Bastian Blank ]
+ * Add stable release 2.6.29.2:
+ - Bonding: fix zero address hole bug in arp_ip_target list
+ - skge: fix occasional BUG during MTU change
+ - scsi: mpt: suppress debugobjects warning
+ - hugetlbfs: return negative error code for bad mount option
+ - NFS: Fix the XDR iovec calculation in nfs3_xdr_setaclargs
+ - gso: Fix support for linear packets
+ - agp: zero pages before sending to userspace
+ - virtio: fix suspend when using virtio_balloon
+ - Revert "console ASCII glyph 1:1 mapping"
+ - Input: gameport - fix attach driver code
+ - x86, PAT: Remove page granularity tracking for vm_insert_pfn maps
+ - KVM: is_long_mode() should check for EFER.LMA
+ - KVM: VMX: Update necessary state when guest enters long mode
+ - KVM: fix kvm_vm_ioctl_deassign_device
+ - KVM: MMU: handle compound pages in kvm_is_mmio_pfn
+ - KVM: Reset PIT irq injection logic when the PIT IRQ is unmasked
+ - KVM: Interrupt mask notifiers for ioapic
+ - KVM: Add CONFIG_HAVE_KVM_IRQCHIP
+ - KVM: Fix missing smp tlb flush in invlpg
+ - USB: usb-storage: augment unusual_devs entry for Simple Tech/Datafab
+ - USB: fix oops in cdc-wdm in case of malformed descriptors
+ - USB: ftdi_sio: add vendor/project id for JETI specbos 1201 spectrometer
+ - usb gadget: fix ethernet link reports to ethtool
+ - x86: disable X86_PTRACE_BTS for now
+ - SCSI: sg: fix q->queue_lock on scsi_error_handler path
+ - SCSI: sg: avoid blk_put_request/blk_rq_unmap_user in interrupt
+ - SCSI: sg: fix races with ioctl(SG_IO)
+ - SCSI: sg: fix races during device removal
+ - mm: pass correct mm when growing stack
+ - pata_hpt37x: fix HPT370 DMA timeouts
+ - hpt366: fix HPT370 DMA timeouts
+ - powerpc: Fix data-corrupting bug in __futex_atomic_op
+ - ALSA: hda - Fix the cmd cache keys for amp verbs
+ - sfc: Match calls to netif_napi_add() and netif_napi_del()
+ - tty: Fix leak in ti-usb
+ - spi: spi_write_then_read() bugfixes
+ - add some long-missing capabilities to fs_mask
+ - hrtimer: fix rq->lock inversion (again)
+ - x86: fix broken irq migration logic while cleaning up multiple vectors
+ - sched: do not count frozen tasks toward load
+ - dm kcopyd: fix callback race
+ - dm kcopyd: prepare for callback race fix
+ - posix-timers: fix RLIMIT_CPU && setitimer(CPUCLOCK_PROF)
+ - posix-timers: fix RLIMIT_CPU && fork()
+ - posixtimers, sched: Fix posix clock monotonicity
+ - cap_prctl: don't set error to 0 at 'no_change'
+ - SCSI: libiscsi: fix iscsi pool error path
+ - SCSI: libiscsi: fix iscsi pool error path
+ - sparc64: Fix bug in ("sparc64: Flush TLB before releasing pages.")
+ - ALSA: hda - add missing comma in ad1884_slave_vols
+ - splice: fix deadlock in splicing to file
+ - netfilter: {ip, ip6, arp}_tables: fix incorrect loop detection
+ - kprobes: Fix locking imbalance in kretprobes
+ - acer-wmi: Blacklist Acer Aspire One
+ - crypto: shash - Fix unaligned calculation with short length
+ - net/netrom: Fix socket locking
+ - af_rose/x25: Sanity check the maximum user frame size
+ - dm table: fix upgrade mode race
+ - dm: path selector use module refcount directly
+ - dm target: use module refcount directly
+ - dm snapshot: avoid having two exceptions for the same chunk
+ - dm snapshot: avoid dropping lock in __find_pending_exception
+ - dm snapshot: refactor __find_pending_exception
+ - dm io: make sync_io uninterruptible
+ - dm raid1: switch read_record from kmalloc to slab to save memory
+ - vfs: skip I_CLEAR state inodes
+ - dm: preserve bi_io_vec when resubmitting bios
+ - ixgbe: Fix potential memory leak/driver panic issue while setting up Tx &
+ Rx ring parameters
+ - mm: do_xip_mapping_read: fix length calculation
+ - mm: define a UNIQUE value for AS_UNEVICTABLE flag
+ - sysctl: fix suid_dumpable and lease-break-time sysctls
+ - cpumask: fix slab corruption caused by alloc_cpumask_var_node()
+ - ide-atapi: start DMA after issuing a packet command
+ - ide: drivers/ide/ide-atapi.c needs <linux/scatterlist.h>
+ - V4L/DVB (10943): cx88: Prevent general protection fault on rmmod
+ - r8169: Reset IntrStatus after chip reset
+ - md/raid1 - don't assume newly allocated bvecs are initialised.
+ - SCSI: sg: fix iovec bugs introduced by the block layer conversion
+ - drm/i915: fix TV mode setting in property change
+ - drm/i915: only set TV mode when any property changed
+ - drm: Use pgprot_writecombine in GEM GTT mapping to get the right bits for
+ !PAT.
+ - drm/i915: check for -EINVAL from vm_insert_pfn
+ - drm/i915: Check for dev->primary->master before dereference.
+ - drm/i915: Sync crt hotplug detection with intel video driver
+ - drm/i915: Read the right SDVO register when detecting SVDO/HDMI.
+ - drm/i915: Change DCC tiling detection case to cover only mobile parts.
+ - dock: fix dereference after kfree()
+ - ACPI: cap off P-state transition latency from buggy BIOSes
+ - x86, setup: mark %esi as clobbered in E820 BIOS call
+ - tracing/core: fix early free of cpumasks
+ - rt2x00: Fix SLAB corruption during rmmod
+ - ext4: fix locking typo in mballoc which could cause soft lockup hangs
+ - ext4: fix typo which causes a memory leak on error path
+ - MIPS: Compat: Zero upper 32-bit of offset_high and offset_low.
+ - PCI/x86: detect host bridge config space size w/o using quirks
+ - ide: Fix code dealing with sleeping devices in do_ide_request()
+ - fbdev: fix info->lock deadlock in fbcon_event_notify()
+ - fbmem: fix fb_info->lock and mm->mmap_sem circular locking dependency
+ - security/smack: fix oops when setting a size 0 SMACK64 xattr
+ * Bump ABI to 2.
+ * [sparc] Make the kernels again 64bit. (closes: #525926)
+
+ -- Bastian Blank <waldi@debian.org> Sun, 03 May 2009 09:38:42 +0200
+
+linux-2.6 (2.6.29-3) unstable; urgency=low
+
+ [ maximilian attems ]
+ * [powerpc] Pipe mkimage postinst call to stderr for debconf.
+ Thanks Jordi Mallach <jordi@debian.org> for the patch. (closes: #518231)
+ * [parisc] Disable PHONET.
+ * [sparc] Disable BTRFS.
+
+ [ Bastian Blank ]
+ * [alpha] Fix location of kernel image.
+ * Add source link to headers packages. (closes: #523726)
+
+ [ Martin Michlmayr ]
+ * Add some sata_mv fixes for Kirkwood from Marvell:
+ - use new sata phy register settings for new devices
+ - increate the IORDY timeout for the soc controllers
+
+ -- maximilian attems <maks@debian.org> Fri, 17 Apr 2009 10:36:03 +0200
+
+linux-2.6 (2.6.29-2) unstable; urgency=low
+
+ [ Martin Michlmayr ]
+ * [arm/ixp4xx] Build in LEDS_TRIGGER_TIMER (closes: #521141).
+ * [mips*/4kc-malta, mips*/5kc-malta] Build in RTC_DRV_CMOS.
+
+ [ maximilian attems ]
+ * linux-libc-dev: Bump versioned replaces libdrm-dev.
+ * parisc: hardcode gcc-4.3 usage.
+ * Postrm cleanup new module-init-tools 3.7 files.
+
+ [ Bastian Blank ]
+ * Install all needed Makefiles into common headers package.
+ (closes: #521472)
+ * Add stable release 2.6.29.1:
+ - V4L: v4l2-common: remove incorrect MODULE test
+ - sparc64: Fix reset hangs on Niagara systems.
+ - sparc64: Flush TLB before releasing pages.
+ - sparc64: Fix MM refcount check in smp_flush_tlb_pending().
+ - KVM: MMU: Fix another largepage memory leak
+ - cfg80211: fix incorrect assumption on last_request for 11d
+ - lguest: fix spurious BUG_ON() on invalid guest stack.
+ - lguest: wire up pte_update/pte_update_defer
+ - VM, x86, PAT: Change is_linear_pfn_mapping to not use vm_pgoff
+ - x86: mtrr: don't modify RdDram/WrDram bits of fixed MTRRs
+ - x86: ptrace, bts: fix an unreachable statement
+ - x86: fix 64k corruption-check
+ - x86, uv: fix cpumask iterator in uv_bau_init()
+ - x86, PAT, PCI: Change vma prot in pci_mmap to reflect inherited prot
+ - Add a missing unlock_kernel() in raw_open()
+ - fuse: fix fuse_file_lseek returning with lock held
+ - ARM: 5435/1: fix compile warning in sanity_check_meminfo()
+ - ARM: twl4030 - leak fix
+ - ARM: fix leak in iop13xx/pci
+ - ARM: cumana: Fix a long standing bogon
+ - ARM: 5428/1: Module relocation update for R_ARM_V4BX
+ - ARM: pxa: fix overlay being un-necessarily initialized on pxa25x
+ - DVB: firedtv: FireDTV S2 problems with tuning solved
+ - cfg80211: force last_request to be set for OLD_REG if regdom is EU
+ - CIFS: Fix memory overwrite when saving nativeFileSystem field during mount
+ - ath5k: warn and correct rate for unknown hw rate indexes
+ - ath5k: disable MIB interrupts
+ - b43: fix b43_plcp_get_bitrate_idx_ofdm return type
+ - ath9k: fix dma mapping leak of rx buffer upon rmmod
+ - ath5k: use spin_lock_irqsave for beacon lock
+ - cifs: fix buffer format byte on NT Rename/hardlink
+ - ath9k: downgrade xmit queue full message to xmit debug
+ - KVM: SVM: set accessed bit for VMCB segment selectors
+ - KVM: VMX: Don't allow uninhibited access to EFER on i386
+ - USB: add quirk to avoid config and interface strings
+ - USB: gadget: fix rndis regression
+ - USB: usb-storage: increase max_sectors for tape drives
+ - USB: fix USB_STORAGE_CYPRESS_ATACB
+ - USB: EHCI: add software retry for transaction errors
+ - xfrm: spin_lock() should be spin_unlock() in xfrm_state.c
+ - ipv6: Plug sk_buff leak in ipv6_rcv (net/ipv6/ip6_input.c)
+ - GRO: Disable GRO on legacy netif_rx path (closes: #521691)
+ - bridge: bad error handling when adding invalid ether address
+ - dnet: drivers/net/dnet.c needs <linux/io.h>
+ - udp: Wrong locking code in udp seq_file infrastructure
+ - netfilter: nf_conntrack_tcp: fix unaligned memory access in tcp_sack
+
+ [ dann frazier ]
+ * bnx2: correct firmware revisions (closes: #522049)
+ * [mips] Zero upper 32-bits of compat llseek (closes: #521016)
+
+ -- Bastian Blank <waldi@debian.org> Sat, 04 Apr 2009 15:13:33 +0200
+
+linux-kbuild-2.6 (2.6.29-1) unstable; urgency=low
+
+ * New upstream version.
+ * Autogenerate list of supported options in modpost. (closes: #518961)
+ - Build-depend against python.
+ * Use debhelper compat level 7.
+
+ -- Bastian Blank <waldi@debian.org> Thu, 26 Mar 2009 12:54:47 +0100
+
+linux-2.6 (2.6.29-1) unstable; urgency=low
+
+ * New upstream release
+ - tg3 use request_firmware and firmware nuked.
+ - acenic use request_firmware and firmware nuked.
+ - e100 use request_firmware and firmware nuked. (closes: #494308)
+ - cassini use request_firmware and firmware nuked.
+ - starfire use request_firmware and firmware nuked. (closes: #501152)
+ - cxgb3 use request_firmware and firmware nuked.
+ - NR_CPUS setting no longer affects size of modules. (closes: #516709)
+ - orinoco: use KERN_DEBUG for link status messages. (closes: #447549)
+ - [CIFS] Fix oops in cifs_strfromUCS_le mounting to servers which do
+ not specify their OS. (closes: #463402)
+ - fixes conflict between <asm/byteorder.h> and <endian.h> on mips
+ (closes: #519761)
+
+ [ maximilian attems ]
+ * topconfig set new NET_NS, NET_SCH_DRR, NET_CLS_CGROUP, LIB80211,
+ SCSI_CXGB3_ISCSI, NATIONAL_PHY, STE10XP, LSI_ET1011C_PHY, BTRFS_FS,
+ SQUASHFS, PCI_STUB, WIMAX, MTD_LPDDR, EEPROM_AT24, EEPROM_AT25,
+ EEPROM_LEGACY, BLK_DEV_IT8172, SMSC9420, WIMAX_I2400M_USB,
+ WIMAX_I2400M_SDIO, MISDN_HFCUSB, SENSORS_ADT7475, SENSORS_LTC4245,
+ RADIO_TEA5764, SND_HDA_CODEC_INTELHDMI, RT2860, RT2870, RTL8187SE,
+ LIBFC, FCOE, ATL1C, JOYSTICK_WALKERA0701, TOUCHSCREEN_WACOM_W8001,
+ TOUCHSCREEN_TSC2007, W1_SLAVE_DS2431, WM8350_POWER, SOC_CAMERA_MT9T031,
+ SOC_CAMERA_TW9910, SOC_CAMERA_OV772X, USB_STV06XX, USB_GSPCA_OV534,
+ DVB_LGDT3304, WM8350_WATCHDOG, SMSC_SCH311X_WDT, SND_HRTIMER,
+ SND_HDA_RECONFIG, GREENASIA_FF, USB_SERIAL_SIEMENS_MPI,
+ USB_SERIAL_OPTICON, LEDS_ALIX2, LEDS_WM8350, OCFS2_FS_POSIX_ACL,
+ BTRFS_FS_POSIX_ACL, ATM_SOLOS, MFD_PCF50633, PCF50633_ADC, PCF50633_GPIO,
+ REGULATOR_PCF50633, DVB_S921, EDAC_I5400, RTC_DRV_PCF50633,
+ INPUT_PCF50633_PMU, CHARGER_PCF50633, DEVPTS_MULTIPLE_INSTANCES,
+ SCHED_OMIT_FRAME_POINTER, DCB, IXGBE_DCB, SFC_MTD, BE2NET, DNET.
+ * topconfig enable SND_HDA_HWDEP for sound debugging purpose.
+ * topconfig enable USB_HIDDEV (closes: #517771)
+ * [x86] set DELL_LAPTOP, COMEDI, X86_PTRACE_BTS, XENFS, XEN_COMPAT_XENFS,
+ X86_REROUTE_FOR_BROKEN_BOOT_IRQS, OPTIMIZE_INLINING.
+ * [x86] unset DRM_I915_KMS due to upgrade path from Lenny override with
+ modeset module param.
+ * temp.image.plain/preinst: Consistent output.
+ * [x86_64] set SPARSE_IRQ, NUMA_MIGRATE_IRQ_DESC, TREE_RCU.
+ * [x86_32] set BLK_DEV_CS5536.
+ * [powerpc] set PHANTOM, HP_ILO, MV643XX_ETH, MOUSE_BCM5974, VIRTUALIZATION.
+ * topconfig unset legacy SCSI_PROC_FS, PCMCIA_IOCTL, ACPI_PROCFS_POWER,
+ ACPI_PROC_EVENT.
+
+ [ Bastian Blank ]
+ * Use external source directory for all builds.
+ * Use external source directory for all header packages.
+ * Use dh_prep.
+ * Update copyright file.
+ * [s390/s390] Disable BTRFS.
+ * [sparc] Use sparc as kernel architecture.
+ * Update kconfig report changes patch.
+ * [s390] Enable KVM.
+ * Use debhelper compat level 7.
+
+ [ Martin Michlmayr ]
+ * [mips/r4k-ip22] Build in RTC_DRV_DS1286.
+ * [mips/r5k-ip32] Build in RTC_DRV_CMOS (Closes: #516775).
+ * [arm/versatile, arm/iop32x, arm/ixp4xx] Make LLC2 modular.
+ * [arm, mips, mipsel] Make MII modular.
+ * [arm/ixp4xx] Make IXP4XX_WATCHDOG modular.
+ * topconfig: Disable NET_DSA since this hardware is special purpose and
+ the option cannot be made modular at the moment and bloats the kernel
+ image too much.
+ * [arm, armel] Enable various V4L USB devices. (Closes: #518582)
+ * [arm/orion5x] Build the SENSORS_LM75 module since it's needed on the
+ D-Link DNS-323.
+ * [arm/iop32x, arm/ixp4xx, arm/orion5x] Enable INPUT_TOUCHSCREEN.
+ * [arm/iop32x, arm/ixp4xx, arm/orion5x] Enable INPUT_JOYDEV, GAMEPORT
+ and INPUT_JOYSTICK (Closes: #520433).
+ * [arm/iop32x, arm/ixp4xx, arm/orion5x] Add a size check to ensure that
+ the kernel will fit in flash.
+ * Add patches from git.marvell.com to improve Kirkwood support:
+ - make gpio /input/output validation separate
+ - MPP initialization code
+ - SDIO driver for Marvell SoCs
+ - SDIO driver registration for DB6281 and RD6281
+ - register internal devices in a common place
+ - Marvell SheevaPlug support
+ - SheevaPlug USB Power Enable setup
+ - SheevaPlug LED support
+ - Hook up I2C on Kirkwood
+ - Add support for QNAP TS-119/TS-219 Turbo NAS
+ * [armel/kirkwood] Add an image for Marvell's Kirkwood platform.
+
+ [ Ben Hutchings ]
+ * Remove firmware from drivers and make them use request_firmware():
+ - mga (closes: #502666)
+ - qla1280 (closes: #502667)
+ - r128 (closes: #494007)
+ - radeon (closes: #494009)
+ - tehuti (closes: #501153)
+ - typhoon (closes: #502669)
+
+ -- Bastian Blank <waldi@debian.org> Tue, 24 Mar 2009 14:32:11 +0100
+
+linux-kbuild-2.6 (2.6.28-1) unstable; urgency=low
+
+ * New upstream version.
+
+ -- Bastian Blank <waldi@debian.org> Sun, 22 Feb 2009 13:45:39 +0100
+
+linux-2.6 (2.6.28-1) unstable; urgency=low
+
+ * New upstream release
+ - new btusb. (closes: #505184)
+ - iwlagn driver for Intel Wifi Link 5100 and 5300. (closes: #501157)
+ - drm git branch vblank-rework merged. (closes: #456219)
+ - netfilter.h got in.h include. (closes: #487103)
+ - netlink errno propageted. (closes: #489340)
+ - agp g41 support (closes: #513228)
+ - Includes atl2 driver (Closes: #500065)
+ - Fixes loading of video module on Samsung systems
+ (Closes: #475319, #495697)
+ - Fix rf_kill handling of iwl3945 driver (Closes: #503688)
+ - Fix adjtimex frequency offset (Closes: #432877)
+ - Fix oopses with Canon PIXMA MP150 (Closes: #487725)
+ - Fix excessive interrrupts with compiz (Closes: #456219)
+ - dsp56k: use request_firmware and firmware nuked (closes: #494010)
+ - dabusb: use request_firmware and firmware nuked (closes: #502663)
+ - kaweth: use request_firmware and firmware nuked (closes: #502665)
+
+ [ maximilian attems ]
+ * Reenable new Juju firewire stack.
+ * topconfig set ATH9K, IWL5000, IP_NF_SECURITY, IP6_NF_SECURITY,
+ BRIDGE_EBT_IP6, BT_HCIBTUSB, TOUCHSCREEN_INEXIO, TOUCHSCREEN_TOUCHIT213,
+ VIRTIO_CONSOLE, VIDEO_ZORAN_ZR36060, USB_VIDEO_CLASS_INPUT_EVDEV,
+ USB_GSPCA, USB_S2255, OCFS2_FS_STATS, OMFS_FS, CRYPTO_RMD128,
+ CRYPTO_RMD160, CRYPTO_RMD256, CRYPTO_RMD320, VLAN_8021Q_GVRP, HP_WMI,
+ COMPAL_LAPTOP, SCSI_DH, SCSI_DH_RDAC, SCSI_DH_HP_SW, SCSI_DH_EMC,
+ SCSI_DH_ALUA, MAC80211_HWSIM, USB_HSO, BLK_DEV_INTEGRITY, SGI_XP, SGI_GRU,
+ TLAN, ATM_IA, ATM_FORE200E, MISDN, I2C_HELPER_AUTO, I2C_ISCH,
+ I2C_NFORCE2_S4985, AT24, SENSORS_AD7414, SENSORS_ADCXX,
+ SOC_CAMERA_PLATFORM, VIDEO_SH_MOBILE_CEU, DVB_USB_DW2102, DVB_USB_ANYSEE,
+ DVB_SIANO_SMS1XXX, DVB_DRX397XD, MMC_SDHCI_PCI (closes: #507150),
+ MMC_SDRICOH_CS (closes: #509979), EDAC_I5100, RTC_DRV_M41T94,
+ RTC_DRV_DS1305, UBIFS, EXT4 (closes: #512266), CGROUP_FREEZER,
+ NETFILTER_TPROXY, NETFILTER_XT_TARGET_TPROXY, NETFILTER_XT_MATCH_RECENT,
+ NETFILTER_XT_MATCH_SOCKET, NET_ACT_SKBEDIT, PHONET, NET_9P_RDMA, ATL2, JME,
+ ENIC, MLX4_EN, USB_NET_SMSC95XX, I7300_IDLE, NET_SCH_MULTIQ, ICS932S401,
+ PANASONIC_LAPTOP, QLGE, LIBERTAS_THINFIRM, LIBERTAS_THINFIRM_USB,
+ INPUT_CM109, W1_SLAVE_BQ27000, SENSORS_ADT7462, SENSORS_MAX1111,
+ SENSORS_LIS3LV02D, MFD_WM8400, MFD_WM8350_I2C, SOC_CAMERA_MT9M111,
+ USB_M5602, USB_GSPCA_CONEX, USB_GSPCA_ETOMS, USB_GSPCA_FINEPIX,
+ USB_GSPCA_MARS, USB_GSPCA_OV519, USB_GSPCA_PAC207, USB_GSPCA_PAC7311,
+ USB_GSPCA_SONIXB, USB_GSPCA_SONIXJ, USB_GSPCA_SPCA500, USB_GSPCA_SPCA501,
+ USB_GSPCA_SPCA505, USB_GSPCA_SPCA506, USB_GSPCA_SPCA508, USB_GSPCA_SPCA561,
+ USB_GSPCA_STK014, USB_GSPCA_SUNPLUS, USB_GSPCA_T613, USB_GSPCA_TV8532,
+ USB_GSPCA_VC032X, USB_GSPCA_ZC3XX, C2PORT, C2PORT_DURAMAR_2150,
+ W83697UG_WDT, USB_MR800, DVB_USB_CINERGY_T2, DVB_USB_DTV5100,
+ DVB_USB_AF9015, DVB_DM1105, DVB_LGS8GL5, DVB_DUMMY_FE,
+ SND_HDA_CODEC_NVHDMI, SND_USB_US122L, USB_VST, LEDS_PCA9532, LEDS_HP_DISK,
+ LEDS_PCA955X, LEDS_TRIGGER_BACKLIGHT, EDAC_X38, RTC_DRV_RX8581,
+ RTC_DRV_DS1390, RTC_DRV_DS3234, RTC_DRV_DS1286, RTC_DRV_M48T35,
+ RTC_DRV_BQ4802, RTC_DRV_WM8350, UNEVICTABLE_LRU, MAC80211_RC_MINSTREL,
+ BATTERY_BQ27x00, REGULATOR, REGULATOR_BQ24022, REGULATOR_WM8350,
+ REGULATOR_WM8400, FB_VIA, FB_METRONOME, FB_MB862XX, UIO_SERCOS3,
+ CORE_DUMP_DEFAULT_ELF_HEADERS, NET_DSA, NET_DSA_MV88E6060,
+ NET_DSA_MV88E6131, NET_DSA_MV88E6123_61_65, IT87_WDT,
+ BACKLIGHT_MBP_NVIDIA, SND_HDA_INPUT_BEEP, USB_WUSB, USB_TMC, IDE_GD,
+ IDE_GD_ATA, IDE_GD_ATAPI, PCMCIA_IBMTR, USB_EMI62, USB_EMI26, USB_SEVSEG,
+ UWB, UWB_WLP, UWB_I1480U, UWB_I1480U_WLP, CRYPTO_FIPS, ANSI_CPRNG,
+ CRC_T10DIF, STAGING, ET131X, CRYPTO_ANSI_CPRNG, PRISM2_USB, HID_COMPAT,
+ SYSCTL_SYSCALL_CHECK, BOOT_TRACER.
+ * [x86] set MOUSE_BCM5974, X86_RESERVE_LOW_64K, OPROFILE_IBS,
+ MICROCODE_INTEL, MICROCODE_AMD, X86_VERBOSE_BOOTUP, MTRR_SANITIZER,
+ CRYPTO_CRC32C_INTEL, STRICT_DEVMEM.
+ * [x86_64] set AMD_IOMMU, INTR_REMAP.
+ * [x86_32] set TOUCHSCREEN_HTCPEN, MOUSE_PS2_OLPC.
+ * Add stable releases 2.6.28.1-6.
+ * Turn off SYSFS_DEPRECATED* for newer udev and proper /sys/.
+ * linux-libc-dev: Add versioned replaces libdrm-dev. (closes: #513604)
+ * topconfig: Enable MACVLAN. (closes: #504611)
+ * [ppc] BAYCOM_PAR, BAYCOM_EPP.
+ * [x86_64] set NR_CPUS to 512. (closes: #491309)
+ * [686-bigmem] set modular XEN_FBDEV_FRONTEND.
+ * Newer Standards-Version 3.8.0 without changes.
+ * Use update-initramfs for initramfs-tools.
+ * Fix preinst and postinst call to not use deprecated mkinitramfs-kpkg
+ interfaces.
+
+ [ Martin Michlmayr ]
+ * [mips/r4k-ip22, mips/sb1-bcm91250a] Don't build in ISO9660.
+ * [mipsel/r5k-cobalt] Enable INPUT_COBALT_BTNS.
+ * [mipsel/r5k-cobalt] Enable the new Cobalt LCD driver (FB_COBALT).
+ * [mips/r4k-ip22] Enable the new ALSA sound driver (SND_SGI_HAL2).
+ * [arm/iop32x, arm/ixp4xx] Don't build in KEYBOARD_ATKBD, MOUSE_PS2,
+ SERIO, JFFS2_FS, and CRAMFS.
+ * [arm/iop32x, arm/ixp4xx] Unset DEBUG_KERNEL so the kernel will
+ fit in flash.
+ * [arm/orion5x] Unset FIXED_PHY to work around a clash with fixed
+ mdio bus and mv643xx_eth.
+ * Migrate arm, armel, mips and mipsel away from kernel-package.
+
+ [ Ian Campbell ]
+ * [x86]: Enable Xen guest support in amd64 flavour. (closes: #495590)
+
+ [ dann frazier ]
+ * [x86, ia64] Enable ACPI_PCI_SLOT
+
+ [ Bastian Blank ]
+ * Make gcc-4.3 the default compiler. (closes: #463295)
+ * Add optional image size check.
+ * debian/rules.real: Setup image installation rules for alpha, hppa,
+ ia64 and sparc.
+ * Remove support to build images using kernel-package.
+
+ -- maximilian attems <maks@debian.org> Wed, 18 Feb 2009 16:36:04 +0100
+
+linux-2.6 (2.6.26-12) unstable; urgency=high
+
+ [ Ian Campbell ]
+ * xen: fix ACPI processor throttling for when processor id is -1. (closes: #502849)
+
+ [ dann frazier ]
+ * Make sendmsg() block during UNIX garbage collection (CVE-2008-5300)
+ * Fix race conditions between inotify removal and umount (CVE-2008-5182)
+ * Fix DoS when calling svc_listen twice on the same socket while reading
+ /proc/net/atm/*vc (CVE-2008-5079)
+
+ [ Bastian Blank ]
+ * [openvz, vserver] Fix descriptions.
+ * [sparc] Enable Sun Logical Domains support. (closes: #501684)
+ * Fix coexistence of pata_marvell and ahci. (closes: #507432)
+ * [sparc] Support Intergraph graphics chips. (closes: #508108)
+
+ -- Bastian Blank <waldi@debian.org> Mon, 15 Dec 2008 12:57:18 +0100
+
+linux-2.6 (2.6.26-11) unstable; urgency=low
+
+ [ Bastian Blank ]
+ * [sparc] Reintroduce dummy PCI host controller to workaround broken X.org.
+ * [sparc] Fix size checks in PCI maps.
+ * Add stable release 2.6.26.8:
+ - netfilter: restore lost ifdef guarding defrag exception
+ - netfilter: snmp nat leaks memory in case of failure
+ - netfilter: xt_iprange: fix range inversion match
+ - ACPI: dock: avoid check _STA method
+ - ACPI: video: fix brightness allocation
+ - sparc64: Fix race in arch/sparc64/kernel/trampoline.S
+ - math-emu: Fix signalling of underflow and inexact while packing result.
+ - tcpv6: fix option space offsets with md5
+ - net: Fix netdev_run_todo dead-lock
+ - scx200_i2c: Add missing class parameter
+ - DVB: s5h1411: Power down s5h1411 when not in use
+ - DVB: s5h1411: Perform s5h1411 soft reset after tuning
+ - DVB: s5h1411: bugfix: Setting serial or parallel mode could destroy bits
+ - V4L: pvrusb2: Keep MPEG PTSs from drifting away
+ - ACPI: Always report a sync event after a lid state change
+ - ALSA: use correct lock in snd_ctl_dev_disconnect()
+ - file caps: always start with clear bprm->caps_*
+ - libertas: fix buffer overrun
+ - net: Fix recursive descent in __scm_destroy().
+ - SCSI: qla2xxx: Skip FDMI registration on ISP21xx/22xx parts.
+ (Closes: #502552)
+ - edac cell: fix incorrect edac_mode
+ - ext[234]: Avoid printk floods in the face of directory corruption
+ (CVE-2008-3528)
+ - gpiolib: fix oops in gpio_get_value_cansleep()
+ * Override ABI changes.
+ * [xen] Update description. (closes: #505961)
+ * Revert parts of 2.6.26.6 to fix resume breakage. (closes: #504167)
+ - clockevents: prevent multiple init/shutdown
+ - clockevents: broadcast fixup possible waiters
+
+ [ dann frazier ]
+ * Fix buffer overflow in hfsplus (CVE-2008-4933)
+ * Fix BUG() in hfsplus (CVE-2008-4934)
+ * Fix stack corruption in hfs (CVE-2008-5025)
+ * Fix oops in tvaudio when controlling bass/treble (CVE-2008-5033)
+
+ [ Martin Michlmayr ]
+ * [arm/iop32x, arm/ixp4xx, arm/orion5x] Enable support for more partition
+ tables, including MAC_PARTITION (requested by Benoît Knecht).
+ * leds-pca9532: Fix memory leak and properly handle errors (Sven Wegener)
+ * leds-pca9532: Move i2c work to a workqueque (Riku Voipio). (closes:
+ #506116)
+
+ -- Bastian Blank <waldi@debian.org> Wed, 26 Nov 2008 11:43:48 +0100
+
+linux-2.6 (2.6.26-10) unstable; urgency=low
+
+ [ dann frazier ]
+ * sctp: Fix possible kernel panic in sctp_sf_abort_violation (CVE-2008-4618)
+
+ [ Martin Michlmayr ]
+ * DNS-323: add support for revision B1 machines (Matthew Palmer).
+ * ext3/ext4: Add support for non-native signed/unsigned htree hash
+ algorithms (Theodore Ts'o). (closes: #493957)
+ * [arm/ixp4xx] Enable USB_ACM (closes: #504723).
+
+ [ Bastian Blank ]
+ * agp: Fix stolen memory counting on Intel G4X. (closes: #502606)
+ * Add stable release 2.6.26.7:
+ - security: avoid calling a NULL function pointer in drivers/video/tvaudio.c
+ - DVB: au0828: add support for another USB id for Hauppauge HVR950Q
+ - drm/i915: fix ioremap of a user address for non-root (CVE-2008-3831)
+ - ACPI: Ignore _BQC object when registering backlight device
+ - hwmon: (it87) Prevent power-off on Shuttle SN68PT
+ - Check mapped ranges on sysfs resource files
+ - x86: avoid dereferencing beyond stack + THREAD_SIZE
+ - PCI: disable ASPM on pre-1.1 PCIe devices
+ - PCI: disable ASPM per ACPI FADT setting
+ - V4L/DVB (9053): fix buffer overflow in uvc-video
+ - V4L/DVB (8617): uvcvideo: don't use stack-based buffers for USB transfers.
+ - V4L/DVB (8498): uvcvideo: Return sensible min and max values when querying
+ a boolean control.
+ - V4L: zr36067: Fix RGBR pixel format
+ - V4L: bttv: Prevent NULL pointer dereference in radio_open
+ - libata: fix EH action overwriting in ata_eh_reset()
+ - libata: always do follow-up SRST if hardreset returned -EAGAIN
+ - fbcon_set_all_vcs: fix kernel crash when switching the rotated consoles
+ - modules: fix module "notes" kobject leak
+ - b43legacy: Fix failure in rate-adjustment mechanism
+ - CIFS: make sure we have the right resume info before calling CIFSFindNext
+ - sched_rt.c: resch needed in rt_rq_enqueue() for the root rt_rq
+ - tty: Termios locking - sort out real_tty confusions and lock reads
+ - x86, early_ioremap: fix fencepost error
+ - x86: improve UP kernel when CPU-hotplug and SMP is enabled
+ - x86: Reserve FIRST_DEVICE_VECTOR in used_vectors bitmap.
+ * [xen] Remove pte file workaround.
+
+ [ Ian Campbell ]
+ * [xen] Disable usage of PAT. (closes: #503821)
+
+ -- Bastian Blank <waldi@debian.org> Sat, 08 Nov 2008 10:50:58 +0100
+
+linux-2.6 (2.6.26-9) unstable; urgency=low
+
+ [ Bastian Blank ]
+ * Add stable release 2.6.26.6:
+ - mm owner: fix race between swapoff and exit
+ - rtc: fix kernel panic on second use of SIGIO nofitication
+ - fbcon: fix monochrome color value calculation
+ - ALSA: snd-powermac: HP detection for 1st iMac G3 SL
+ - ALSA: snd-powermac: mixers for PowerMac G4 AGP
+ - sparc64: Fix missing devices due to PCI bridge test in
+ of_create_pci_dev().
+ - sparc64: Fix disappearing PCI devices on e3500.
+ - sparc64: Fix OOPS in psycho_pcierr_intr_other().
+ - sparc64: Fix interrupt register calculations on Psycho and Sabre.
+ - sparc64: Fix PCI error interrupt registry on PSYCHO.
+ - udp: Fix rcv socket locking
+ - sctp: Fix oops when INIT-ACK indicates that peer doesn't support AUTH
+ (CVE-2008-4576)
+ - sctp: do not enable peer features if we can't do them.
+ - ipsec: Fix pskb_expand_head corruption in xfrm_state_check_space
+ - netlink: fix overrun in attribute iteration
+ - niu: panic on reset
+ - ipv6: Fix OOPS in ip6_dst_lookup_tail().
+ - XFRM,IPv6: initialize ip6_dst_blackhole_ops.kmem_cachep
+ - af_key: Free dumping state on socket close
+ - pcmcia: Fix broken abuse of dev->driver_data
+ - clockevents: remove WARN_ON which was used to gather information
+ - ntp: fix calculation of the next jiffie to trigger RTC sync
+ - x86: HPET: read back compare register before reading counter
+ - x86: HPET fix moronic 32/64bit thinko
+ - clockevents: broadcast fixup possible waiters
+ - HPET: make minimum reprogramming delta useful
+ - clockevents: prevent endless loop lockup
+ - clockevents: prevent multiple init/shutdown
+ - clockevents: enforce reprogram in oneshot setup
+ - clockevents: prevent endless loop in periodic broadcast handler
+ - clockevents: prevent clockevent event_handler ending up handler_noop
+ - x86: fix memmap=exactmap boot argument
+ - x86: add io delay quirk for Presario F700
+ - ACPI: Avoid bogus EC timeout when EC is in Polling mode
+ - x86: fix SMP alternatives: use mutex instead of spinlock, text_poke is
+ sleepable
+ - rtc: fix deadlock
+ - mm: dirty page tracking race fix
+ - x86-64: fix overlap of modules and fixmap areas
+ - x86: PAT proper tracking of set_memory_uc and friends
+ - x86: fix oprofile + hibernation badness
+ - x86: fdiv bug detection fix
+ - rt2x00: Use ieee80211_hw->workqueue again
+ - x86: Fix 27-rc crash on vsmp due to paravirt during module load
+ - sg: disable interrupts inside sg_copy_buffer
+ - ocfs2: Increment the reference count of an already-active stack.
+ - APIC routing fix
+ - sched: fix process time monotonicity
+ - block: submit_bh() inadvertently discards barrier flag on a sync write
+ - x64, fpu: fix possible FPU leakage in error conditions
+ - x86-64: Clean up save/restore_i387() usage
+ - KVM: SVM: fix guest global tlb flushes with NPT
+ - KVM: SVM: fix random segfaults with NPT enabled
+ - ALSA: remove unneeded power_mutex lock in snd_pcm_drop
+ - ALSA: fix locking in snd_pcm_open*() and snd_rawmidi_open*()
+ - ALSA: oxygen: fix distorted output on AK4396-based cards
+ - ALSA: hda - Fix model for Dell Inspiron 1525
+ - SCSI: qla2xxx: Defer enablement of RISC interrupts until ISP
+ initialization completes.
+ - USB: fix hcd interrupt disabling
+ - smb.h: do not include linux/time.h in userspace
+ - pxa2xx_spi: fix build breakage
+ - pxa2xx_spi: chipselect bugfixes
+ - pxa2xx_spi: dma bugfixes
+ - mm: mark the correct zone as full when scanning zonelists
+ - async_tx: fix the bug in async_tx_run_dependencies
+ - drivers/mmc/card/block.c: fix refcount leak in mmc_block_open()
+ - ixgbe: initialize interrupt throttle rate
+ - i2c-dev: Return correct error code on class_create() failure
+ - x86-32: AMD c1e force timer broadcast late
+ * [x86] Update patch to detect not properly announced cmos RTC devices.
+ * [xen] Overtake hvc console by default.
+
+ [ maximilian attems ]
+ * [openvz] ip: NULL pointer dereferrence in tcp_v(4|6)_send_ack
+ (closes: #500472)
+ * [openvz] unset NF_CONNTRACK_IPV6 for now until abi bump.
+
+ [ Stephen R. Marenka ]
+ * [m68k] add patches to fix atari ethernec per Michael Schmitz:
+ atari-ethernec-IRQF_SHARED.diff and atari-ethernec-fixes.diff.
+ * [m68k] add mac-esp-fix-for-quadras-with-two-esp-chips.diff to fix macs
+ with dual scsi busses and a problem with xorg, per Finn Thain.
+ * [m68k] add atari-atari_keyb_init-operator-precedence.diff per
+ Michael Schmitz.
+ * [m68k] more mac patches, per Finn Thain.
+
+ [ Martin Michlmayr ]
+ * [arm/ixp4xx] Enable USB_ATM and USB_SPEEDTOUCH (closes: #502182).
+ * [arm/iop32x, arm/orion5x] Likewise.
+ * DNS-323: read MAC address from flash (Matthew Palmer).
+
+ [ dann frazier ]
+ * Restrict access to the DRM_I915_HWS_ADDR ioctl (CVE-2008-3831)
+ * Don't allow splicing to files opened with O_APPEND (CVE-2008-4554)
+
+ -- Bastian Blank <waldi@debian.org> Sat, 18 Oct 2008 12:14:22 +0200
+
+linux-2.6 (2.6.26-8) unstable; urgency=medium
+
+ [ dann frazier ]
+ * [x86] Fix broken LDT access in VMI (CVE-2008-4410)
+ * ata: Fix off-by-one-error that causes errors when reading a
+ block on the LBA28-LBA48 boundary
+ * [s390] prevent ptrace padding area read/write in 31-bit mode
+ (CVE-2008-1514)
+
+ [ Bastian Blank ]
+ * Fix generation of i386 Xen image information.
+ * [i386] Restrict the usage of long NOPs. (closes: #464962)
+ * Fix access to uninitialized user keyring. (closes: #500279)
+ * [x86] Fix detection of non-PNP RTC devices. (closes: #499230)
+
+ -- Bastian Blank <waldi@debian.org> Thu, 09 Oct 2008 12:07:21 +0200
+
+linux-2.6 (2.6.26-7) unstable; urgency=low
+
+ [ Bastian Blank ]
+ * [xen] Add SuSE Xen patch. (closes: #495895)
+ * Only register notifiers in braille console if used, fixes Insert key.
+ (closes: #494374)
+ * Fix ACPI EC GPE storm detection. (closes: #494546)
+ * Disable useless support for ISP1760 USB host controller.
+ (closes: #498304)
+ * rt61pci: Add a sleep after firmware upload. (closes: #498828)
+
+ [ Stephen R. Marenka ]
+ * [m68k] Set CONFIG_ATARI_ETHERNEC=m for atari, since it only works
+ in modular form.
+ * [m68k] Enable CONFIG_ADB_PMU68K=y for mac.
+ * [m68k] Add atari-aranym-nf-wrappers.diff patch to fix atari LBD
+ problems, set CONFIG_LBD=y for atari.
+
+ [ Martin Michlmayr ]
+ * [arm/orion5x] Enable CONFIG_ATALK (requested by Ben Schwarz).
+ * [arm/versatile] Enable CONFIG_VFP. (closes: #499463)
+ * ath5k: Fix bad udelay calls on AR5210 code (Nick Kossifidis).
+ * [arm] No longer disable ATH5K.
+
+ [ dann frazier ]
+ * Add missing capability checks in sbni_ioctl (CVE-2008-3525)
+
+ -- Bastian Blank <waldi@debian.org> Wed, 01 Oct 2008 09:02:30 +0200
+
+linux-2.6 (2.6.26-6) unstable; urgency=low
+
+ [ maximilian attems ]
+ * [openvz] Enable checkpointing. (closes: #497292)
+
+ [ Bastian Blank ]
+ * Allow forced module loading again. (closes: #494144)
+ * Set IEEE 802.11 (wireless) regulatory domain default to EU.
+ (closes: #497971)
+ * [i386] Enable IDE ACPI support. Override ABI changes. (closes: #470528)
+ * [i386/686-bigmem] Promote to generic subarch. (closes: #476120)
+
+ [ Martin Michlmayr ]
+ * Fix dead 21041 ethernet after ifconfig down (Thomas Bogendoerfer).
+
+ [ dann frazier ]
+ * [hppa] Enable the FPU before using it, fixes booting on A500s
+ with our CONFIG_PRINTK_TIME=y setting. (closes: #499458)
+
+ -- Bastian Blank <waldi@debian.org> Wed, 24 Sep 2008 12:06:47 +0200
+
+linux-2.6 (2.6.26-5) unstable; urgency=low
+
+ [ Martin Michlmayr ]
+ * Backport power-off method for Kurobox Pro.
+ * [arm/versatile] Really enable CONFIG_RTC_DRV_PL031 (closes: #484432).
+
+ [ Stephen R. Marenka ]
+ * [m68k] Set CONFIG_LBD=n for atari, since it conflicts with nfblock.
+
+ [ Bastian Blank ]
+ * Reenable SiS SATA support. (closes: #496603)
+ * [amd64,i386] Disable new-style SiS PATA support.
+ * Add stable release 2.6.26.4:
+ - sata_mv: don't issue two DMA commands concurrently
+ - KVM: MMU: Fix torn shadow pte
+ - x86: work around MTRR mask setting, v2
+ - nfsd: fix buffer overrun decoding NFSv4 acl (CVE-2008-3915)
+ - sunrpc: fix possible overrun on read of /proc/sys/sunrpc/transports
+ (CVE-2008-3911)
+ - r8169: balance pci_map / pci_unmap pair
+ - tg3: Fix firmware event timeouts
+ - crypto: authenc - Avoid using clobbered request pointer
+ - sparc64: Fix cmdline_memory_size handling bugs.
+ - sparc64: Fix overshoot in nid_range().
+ - ipsec: Fix deadlock in xfrm_state management. (closes: #497796)
+ - sctp: fix random memory dereference with SCTP_HMAC_IDENT option.
+ - sctp: correct bounds check in sctp_setsockopt_auth_key
+ - sch_prio: Fix nla_parse_nested_compat() regression
+ - sctp: add verification checks to SCTP_AUTH_KEY option
+ - sctp: fix potential panics in the SCTP-AUTH API.
+ - udp: Drop socket lock for encapsulated packets
+ - pkt_sched: Fix actions referencing
+ - pkt_sched: Fix return value corruption in HTB and TBF.
+ - netns: Add network namespace argument to rt6_fill_node() and
+ ipv6_dev_get_saddr()
+ - ipv6: Fix OOPS, ip -f inet6 route get fec0::1, linux-2.6.26,
+ ip6_route_output, rt6_fill_node+0x175 (CVE-2008-3686)
+ - AX.25: Fix sysctl registration if !CONFIG_AX25_DAMA_SLAVE
+ - mm: make setup_zone_migrate_reserve() aware of overlapping nodes
+ - 8250: improve workaround for UARTs that don't re-assert THRE correctly
+ - rtc_time_to_tm: fix signed/unsigned arithmetic
+ - drivers/char/random.c: fix a race which can lead to a bogus BUG()
+ - cifs: fix O_APPEND on directio mounts
+ - atl1: disable TSO by default
+ - forcedeth: fix checksum flag
+ - bio: fix bio_copy_kern() handling of bio->bv_len
+ - bio: fix __bio_copy_iov() handling of bio->bv_len
+ - ALSA: oxygen: prevent muting of nonexistent AC97 controls
+ - S390 dasd: fix data size for PSF/PRSSD command
+ - x86: fix "kernel won't boot on a Cyrix MediaGXm (Geode)"
+ - x86: work around MTRR mask setting
+ - USB: cdc-acm: don't unlock acm->mutex on error path
+ - binfmt_misc: fix false -ENOEXEC when coupled with other binary handlers
+ - fbdefio: add set_page_dirty handler to deferred IO FB
+ - eeepc-laptop: fix use after free
+ - PCI: fix reference leak in pci_get_dev_by_id()
+ - cramfs: fix named-pipe handling
+ * Override ABI changes.
+ * [hppa] Disable new-style RTC support. Override ABI changes.
+
+ [ maximilian attems ]
+ * openvz: Add upstream fixes up to 24cebf40278cb071ff8b. (closes: #497528)
+
+ -- Bastian Blank <waldi@debian.org> Wed, 10 Sep 2008 12:55:16 +0200
+
+linux-2.6 (2.6.26-4) unstable; urgency=low
+
+ [ maximilian attems ]
+ * x86: Reset ACPI_PROCFS_POWER for Lenny as buggy apps depend on it.
+ (closes: #495541)
+ * x86: ACPI: Fix thermal shutdowns
+ * openvz: Add upstream fixes up to 0f14912e3d2251aff. (closes: #494384)
+ * Add stable release 2.6.26.3:
+ - USB: fix interface unregistration logic
+ - usb-storage: unusual_devs entries for iRiver T10 and Datafab CF+SM reader
+ - usb-serial: don't release unregistered minors
+ - usb-storage: revert DMA-alignment change for Wireless USB
+ - usb-storage: automatically recognize bad residues
+ - USB: ftdi_sio: Add USB Product Id for ELV HS485
+ - qla2xxx: Set an rport's dev_loss_tmo value in a consistent manner.
+ - dccp: change L/R must have at least one byte in the dccpsf_val field
+ (CVE-2008-3276)
+ - KVM: Avoid instruction emulation when event delivery is pending
+ - cs5520: add enablebits checking
+ - acer-wmi: Fix wireless and bluetooth on early AMW0 v2 laptops
+ - USB: usb-storage: quirk around v1.11 firmware on Nikon D4
+ - radeonfb: fix accel engine hangs
+ - radeon: misc corrections
+ - sparc64: Fix global reg snapshotting on self-cpu.
+ - sparc64: Do not clobber %g7 in setcontext() trap.
+ - sparc64: Fix end-of-stack checking in save_stack_trace().
+ - sparc64: Fix recursion in stack overflow detection handling.
+ - sparc64: Make global reg dumping even more useful.
+ - sparc64: Implement IRQ stacks.
+ - sparc64: Handle stack trace attempts before irqstacks are setup.
+ - PCI: Limit VPD length for Broadcom 5708S
+ - ide: it821x in pass-through mode segfaults in 2.6.26-stable
+ - syncookies: Make sure ECN is disabled
+ - USB: ftdi_sio: add support for Luminance Stellaris Evaluation/Development
+ Kits
+ - i2c: Fix NULL pointer dereference in i2c_new_probed_device
+ - SCSI: hptiop: add more PCI device IDs
+ - SCSI: ses: fix VPD inquiry overrun
+ - SCSI: scsi_transport_spi: fix oops in revalidate
+ - CIFS: Fix compiler warning on 64-bit
+ - x86: fix spin_is_contended()
+ - matrox maven: fix a broken error path
+ - i2c: Let users select algorithm drivers manually again
+ - CIFS: properly account for new user= field in SPNEGO upcall string
+ allocation
+ - x86: fix setup code crashes on my old 486 box
+ - KVM: ia64: Fix irq disabling leak in error handling code
+ - mlock() fix return values
+ - rtl8187: Fix lockups due to concurrent access to config routine
+ - KVM: task switch: segment base is linear address
+ - KVM: task switch: use seg regs provided by subarch instead of reading
+ from GDT
+ - KVM: task switch: translate guest segment limit to virt-extension byte
+ granular field
+ - r8169: avoid thrashing PCI conf space above RTL_GIGA_MAC_VER_06
+ - sparc64: FUTEX_OP_ANDN fix
+ - posix-timers: do_schedule_next_timer: fix the setting of ->si_overrun
+ - posix-timers: fix posix_timer_event() vs dequeue_signal() race
+ - vt8623fb: fix kernel oops
+ - ide-cd: fix endianity for the error message in cdrom_read_capacity
+ - qla2xxx: Add dev_loss_tmo_callbk/terminate_rport_io callback support.
+ - random32: seeding improvement
+ - CIFS: mount of IPC$ breaks with iget patch
+ - CIFS: if get root inode fails during mount, cleanup tree connection
+ - crypto: padlock - fix VIA PadLock instruction usage with
+ irq_ts_save/restore()
+ - ipvs: Fix possible deadlock in estimator code
+ - SCSI: block: Fix miscalculation of sg_io timeout in CDROM_SEND_PACKET
+ handler.
+ - ALSA: asoc: restrict sample rate and size in Freescale MPC8610 sound
+ drivers
+ - ALSA: ASoC: fix SNDCTL_DSP_SYNC support in Freescale 8610 sound drivers
+ - USB: pl2023: Remove USB id (4348:5523) handled by ch341
+ - relay: fix "full buffer with exactly full last subbuffer" accounting
+ problem
+ - ipv6: Fix ip6_xmit to send fragments if ipfragok is true
+ - x86: amd opteron TOM2 mask val fix
+
+ [ dann frazier ]
+ * [ia64] Fix boot-time hang w/ PRINTK_TIME by ensuring that cpu0 can access
+ per-cpu vars in early boot
+ * delay calls to sched_clock() until after sched_clock_init() to prevent
+ inaccurate printk timings on ia64 and presumably other architectures
+
+ [ Ian Campbell ]
+ * [xen] import upstream fix to fb-defio driver used by Xen framebuffer.
+
+ [ Bastian Blank ]
+ * [powerpc] Enable proper RTC support. (closes: #484693)
+
+ [ Martin Michlmayr ]
+ * Add Marvell Orion fixes:
+ - sata_mv: add the Gen IIE flag to the SoC devices.
+ - sata_mv: don't avoid clearing interrupt status on SoC host adapters
+
+ [ dann frazier ]
+ * Fix overflow condition in sctp_setsockopt_auth_key (CVE-2008-3526)
+ * Fix panics that may occur if SCTP AUTH is disabled (CVE-2008-3792)
+ * [x86] Fix memory leak in the copy_user routine
+ (CVE-2008-0598, closes: #490910)
+
+ -- Bastian Blank <waldi@debian.org> Thu, 28 Aug 2008 08:46:42 +0200
+
+linux-2.6 (2.6.26-3) unstable; urgency=low
+
+ [ Bastian Blank ]
+ * Disable Emagic Audiowerk 2 soundcard support. The PCI IDs clashes with
+ many DVB cards.
+ * Update VServer patch to 2.3.0.35.
+ * [armel/versatile] Override ABI changes.
+ * [i386/686-bigmem] Add VServer image.
+
+ [ Aurelien Jarno ]
+ * [armel/versatile] Disable CONFIG_NO_HZ, CONFIG_HIGH_RES_TIMERS for
+ dynticks. (closes: #494842)
+
+ [ Martin Michlmayr ]
+ * Fix PCIe on the Kurobox Pro (Lennert Buytenhek).
+ * Fix regressions caused by the "use software GSO for SG+CSUM capable
+ netdevices" patch:
+ - loopback: Enable TSO (Herbert Xu)
+ - net: Preserve netfilter attributes in skb_gso_segment using
+ __copy_skb_header (Herbert Xu)
+
+ [ dann frazier ]
+ * [amd64] Fix typo in TOM2 mask value, preventing a hang on some opteron
+ systems. (closes: #494365)
+
+ -- Bastian Blank <waldi@debian.org> Mon, 18 Aug 2008 15:34:38 +0200
+
+linux-kbuild-2.6 (2.6.26-3) unstable; urgency=low
+
+ * Fix recursive installation. (closes: #494435)
+
+ -- Bastian Blank <waldi@debian.org> Sun, 10 Aug 2008 13:01:41 +0200
+
+linux-kbuild-2.6 (2.6.26-2) unstable; urgency=low
+
+ * Include new scripts. (closes: #494435)
+
+ -- Bastian Blank <waldi@debian.org> Sat, 09 Aug 2008 20:45:12 +0200
+
+linux-2.6 (2.6.26-2) unstable; urgency=low
+
+ [ Bastian Blank ]
+ * [powerpc] Install arch/powerpc/lib/crtsavres.o into the headers, it is
+ used during module linking.
+ * Add stable release 2.6.26.1:
+ - Fix off-by-one error in iov_iter_advance()
+ - ath5k: don't enable MSI, we cannot handle it yet
+ - b43legacy: Release mutex in error handling code
+ - cpufreq acpi: only call _PPC after cpufreq ACPI init funcs got called already
+ - VFS: increase pseudo-filesystem block size to PAGE_SIZE
+ - markers: fix markers read barrier for multiple probes
+ - tmpfs: fix kernel BUG in shmem_delete_inode
+ - mpc52xx_psc_spi: fix block transfer
+ - ixgbe: remove device ID for unsupported device
+ - UML - Fix boot crash
+ - eCryptfs: use page_alloc not kmalloc to get a page of memory
+ - x86: fix kernel_physical_mapping_init() for large x86 systems
+ - DVB: cx23885: SRAM changes for the 885 and 887 silicon parts
+ - DVB: cx23885: Reallocated the sram to avoid concurrent VIDB/C issues
+ - DVB: cx23885: DVB Transport cards using DVB port VIDB/TS1 did not stream
+ - DVB: cx23885: Ensure PAD_CTRL is always reset to a sensible default
+ - V4L: cx23885: Bugfix for concurrent use of /dev/video0 and /dev/video1
+ - V4L: saa7134: Copy tuner data earlier to avoid overwriting manual tuner type
+ - V4L: uvcvideo: Add support for Medion Akoya Mini E1210 integrated webcam
+ - V4L: uvcvideo: Make input device support optional
+ - V4L: uvcvideo: Don't free URB buffers on suspend
+ - V4L: uvcvideo: Use GFP_NOIO when allocating memory during resume
+ - V4L: uvcvideo: Fix a buffer overflow in format descriptor parsing
+ - DVB: dib0700: add support for Hauppauge Nova-TD Stick 52009
+ - V4L: cx18: Upgrade to newer firmware & update documentation
+ - ALSA: trident - pause s/pdif output
+ - myri10ge: do not use mgp->max_intr_slots before loading the firmware
+ - myri10ge: do not forget to setup the single slice pointers
+ - iop-adma: fix platform driver hotplug/coldplug
+ - sparc64: Do not define BIO_VMERGE_BOUNDARY.
+ - sparc64: Fix cpufreq notifier registry.
+ - sparc64: Fix lockdep issues in LDC protocol layer.
+ - tcp: Clear probes_out more aggressively in tcp_ack().
+ - ARM: fix fls() for 64-bit arguments
+ - vmlinux.lds: move __attribute__((__cold__)) functions back into final .text section
+ - rtc-at91rm9200: avoid spurious irqs
+ - ide-cd: fix oops when using growisofs
+ - x86: fix crash due to missing debugctlmsr on AMD K6-3
+ - cpusets: fix wrong domain attr updates
+ - proc: fix /proc/*/pagemap some more
+ - Fix build on COMPAT platforms when CONFIG_EPOLL is disabled
+ - markers: fix duplicate modpost entry
+ - x86, suspend, acpi: enter Big Real Mode
+ - USB: fix usb serial pm counter decrement for disconnected interfaces
+ - x86 reboot quirks: add Dell Precision WorkStation T5400
+ - Fix typos from signal_32/64.h merge
+ - rcu: fix rcu_try_flip_waitack_needed() to prevent grace-period stall
+ - Patch Upstream: x86 ptrace: fix PTRACE_GETFPXREGS error
+ - KVM: MMU: Fix potential race setting upper shadow ptes on nonpae hosts
+ - KVM: MMU: nuke shadowed pgtable pages and ptes on memslot destruction
+ - KVM: x86 emulator: Fix HLT instruction
+ - KVM: VMX: Add ept_sync_context in flush_tlb
+ - KVM: mmu_shrink: kvm_mmu_zap_page requires slots_lock to be held
+ - KVM: SVM: fix suspend/resume support
+ - KVM: VMX: Fix a wrong usage of vmcs_config
+ - isofs: fix minor filesystem corruption
+ - quota: fix possible infinite loop in quota code
+ - hdlcdrv: Fix CRC calculation.
+ - ipv6: __KERNEL__ ifdef struct ipv6_devconf
+ - ipv6: use timer pending
+ - udplite: Protection against coverage value wrap-around
+ - pxamci: trivial fix of DMA alignment register bit clearing
+ * [sparc] Install asm-sparc headers again.
+ * Force RTC on by default and set clock on startup. Override ABI changes.
+ * [i386, amd64] Make the CMOS RTC support builtin. (closes: #493567)
+ * Add stable release 2.6.26.2:
+ - sound: ensure device number is valid in snd_seq_oss_synth_make_info
+ - Ath5k: kill tasklets on shutdown
+ - Ath5k: fix memory corruption
+ - vfs: fix lookup on deleted directory
+ - ALSA: emu10k1 - Fix inverted Analog/Digital mixer switch on Audigy2
+ - ALSA: hda - Add missing Thinkpad Z60m support
+ - ALSA: hda - Fix DMA position inaccuracy
+ - ALSA: hda - Fix wrong volumes in AD1988 auto-probe mode
+ - Add compat handler for PTRACE_GETSIGINFO
+ - Bluetooth: Signal user-space for HIDP and BNEP socket errors
+ - Input: i8042 - add Acer Aspire 1360 to nomux blacklist
+ - Input: i8042 - add Gericom Bellagio to nomux blacklist
+ - Input: i8042 - add Intel D845PESV to nopnp list
+ - jbd: fix race between free buffer and commit transaction
+ - NFS: Ensure we zap only the access and acl caches when setting new acls
+ - SCSI: ch: fix ch_remove oops
+ - linear: correct disk numbering error check
+ - netfilter: xt_time: fix time's time_mt()'s use of do_div()
+ - Kprobe smoke test lockdep warning
+ - Close race in md_probe
+ - x86: io delay - add checking for NULL early param
+ - x86: idle process - add checking for NULL early param
+ - SCSI: bsg: fix bsg_mutex hang with device removal
+ - netfilter: nf_nat_sip: c= is optional for session
+ - romfs_readpage: don't report errors for pages beyond i_size
+ - ftrace: remove unneeded documentation
+
+ [ Martin Michlmayr ]
+ * METH: fix MAC address setup (Thomas Bogendoerfer)
+ * Export the reset button of the QNAP TS-409.
+ * net: use software GSO for SG+CSUM capable netdevices (Lennert Buytenhek)
+
+ [ dann frazier ]
+ * device_create interface changed between 2.6.26 and 2.6.27; adjust hpilo
+ backport appropriately. Fixes a NULL pointer dereference in ilo_probe().
+
+ -- Bastian Blank <waldi@debian.org> Fri, 08 Aug 2008 08:09:00 +0200
+
+linux-kbuild-2.6 (2.6.26-1) unstable; urgency=low
+
+ * New upstream version.
+ * modpost: Support new parameters.
+
+ -- Bastian Blank <waldi@debian.org> Sat, 02 Aug 2008 13:09:54 +0200
+
+linux-2.6 (2.6.26-1) unstable; urgency=low
+
+ * New upstream release see http://kernelnewbies.org/Linux_2_6_26
+ - UDF 2.50 support. (closes: #480910)
+ - mmc: increase power up delay (closes: #481190)
+ - snd-hda-intel suspend troubles fixed. (closes: #469727, #481613, #480034)
+ - cifs QueryUnixPathInfo fix (closes: #480995)
+ - r8169 oops in r8169_get_mac_version (closes: #471892)
+ - netfilter headers cleanup (closes: #482331)
+ - iwlwifi led support (closes: #469095)
+ - ath5k associates on AR5213A (closes: #463785)
+ - T42 suspend fix (closes: #485873)
+ - cpuidle acpi driver: fix oops on AC<->DC (closes: #477201)
+ - opti621 ide fixes (closes: #475561)
+ - ssh connection hangs with mac80211 (closes: #486089)
+ - ocfs2: Allow uid/gid/perm changes of symlinks (closes: #479475)
+ - xircom_tulip_cb: oboslete driver removed (closes: #416900)
+ - r8169 properly detect link status (closes: #487586)
+ - iwl3945 connection + support fixes (closes: #481436, #482196)
+ - longrun cpufreq min freq fix (closes: #468149)
+ - emux midi synthesizer SOFT_PEDAL-release event (closes: #474312)
+ - vmemmap fixes to use smaller pages (closes: #483489)
+ - x86 freeze fixes (closes: #482100, #482074)
+ - xen boot failure fix (closes: #488284)
+ - gdb read floating-point and SSE registers (closes: #485375)
+ - USB_PERSIST is default on (closes: #489963)
+ - alsa snd-hda Dell Inspiron fix (closes: #490649)
+ - ipw2200: queue direct scans (closes: #487721)
+ - better gcc-4.3 support (closes: #492301)
+ - iwl3945 monitor mode. (closes: #482387)
+
+ [ maximilian attems ]
+ * topconfig set CRYPTO_CTS, SND_PCSP, SND_AW2, IWL4965_LEDS, IWL3945_LEDS,
+ RT2400PCI_LEDS, RT2500PCI_LEDS, RT61PCI_LEDS, RT2500USB_LEDS,
+ RT73USB_LEDS, NF_CT_PROTO_DCCP, BRIDGE_EBT_NFLOG, IWLWIFI_RFKILL,
+ USB_SERIAL_SPCP8X5, USB_STORAGE_CYPRESS_ATACB, DVB_ISL6405, DVB_AU8522,
+ VIDEO_EM28XX_DVB, VIDEO_CX18, VIDEO_AU0828, SOC_CAMERA_MT9M001,
+ SOC_CAMERA_MT9V022, DVB_TUNER_ITD1000, VIDEO_PVRUSB2_DVB, USB_C67X00_HCD,
+ USB_ISP1760_HCD, HTC_PASIC3, I2C_PCA_PLATFORM, TOUCHSCREEN_WM97XX,
+ JOYSTICK_ZHENHUA, SFC, ACCESSIBILITY, UIO_SMX, LOGIRUMBLEPAD2_FF,
+ A11Y_BRAILLE_CONSOLE, EDS_TRIGGER_DEFAULT_ON, VIDEO_ALLOW_V4L1, ATA_ACPI,
+ SATA_PMP, ATA_SFF, USB_SERIAL_MOTOROLA, USB_WDM, MAC80211_MESH,
+ IPV6_MROUTE, IPV6_PIMSM_V2, MTD_AR7_PARTS, SENSORS_IBMAEM, PATA_SCH,
+ CGROUP_DEVICE, USB_ISIGHTFW, HW_RANDOM_VIRTIO, RTC_DRV_FM3130,
+ USB_VIDEO_CLASS, CIFS_DFS_UPCALL.
+ * [amd64, i386]: KVM_CLOCK, KVM_GUEST, ISCSI_IBFT_FIND, ISCSI_IBFT, THERMAL,
+ EEEPC_LAPTOP, FB_N411, THERMAL_HWMON.
+ * [amd64]: Enable SCSI_DPT_I2O as 64 bit now.
+ * Reenable USB_SERIAL_EDGEPORT, USB_SERIAL_EDGEPORT_TI. (closes: #480195)
+ * Enable TCP_MD5SIG for BGP sessions. (closes: #443742)
+ * Add recognised alsa cards to bug report.
+ * topconfig: Enable HYSDN, no longer broken on smp.
+ * Add request_firmware patch for keyspan. (closes: #448900)
+ * [x86]: Enable dma engine. (closes: #473331)
+ * [ppc64]: Enable IBMEBUS and EHEA. (closes: #484888)
+ * topconfig: Enable PROFILING across all flavours. (closes: #484885)
+ * 486: enable OLPC support thanks Andres Salomon for merge.
+ Kconfig variable patch by Robert Millan (closes: #485063).
+ * Add request_firmware patch for ip2.
+ * Add request_firmware patch for acenic. (closes: #284221)
+ * [x86, ia64]: Set HPET_RTC_IRQ. (closes: #479709, #476970)
+ * [ppc]: Set SND_VIRMIDI. (closes: #290090)
+ * Fallback for userspace compatibility to old IEEE 1394 FireWire stack.
+ (closes: #451367, #475295, #478419)
+ * [x86]: Enable modular FB_UVESA. (closes: #473180)
+ * JFFS2 enable summary and compressor support. (closes: #488242)
+ * Add OLPC sdhci quirks. Thanks Andres Salomon <dilinger@debian.org>
+ (closes: #485192)
+ * [ppc]: Enable RTC_DRV_PPC. (closes: #484693) Thanks for the patch to
+ Geoff Levand <geoffrey.levand@am.sony.com>.
+ * Enable BLK_DEV_BSG for SG v4 support.
+ * [amd64] Enable default disabled memtest boot param.
+ * topconfig: Enable PATA_SIS instead of SATA_SIS. (closes: #485609)
+ * Add OpenVZ countainer flavour for amd64, i386. (closes: #392015)
+ * atl1e driver for Atheros(R) L1e Fast Ethernet. (closes: #492029)
+ * [ALSA] hda - Add ICH9 controller support (8086:2911)
+ * [ALSA] hda - support intel DG33 motherboards
+ * HP iLO driver
+ * Input: i8042 - add Arima-Rioworks HDAMB board to noloop list
+ (closes: #489190) thanks Guillaume Morin <guillaume@morinfr.org>
+
+ [ Martin Michlmayr ]
+ * [arm/orion5x] Update the config to reflect upstream renaming this
+ subarch.
+ * [arm/orion5x] Add some patches from Marvell's Orion tree:
+ - Feroceon: speed up flushing of the entire cache
+ - support for 5281 D0 stepping
+ - cache align destination pointer when copying memory for some processors
+ - cache align memset and memzero
+ - DMA engine driver for Marvell XOR engine
+ - Orion hardware watchdog support
+ * [arm/orion5x] Enable NETCONSOLE.
+ * [arm/orion5x] Disable more SCSI drivers.
+ * [arm/ixp4xx] Disable most ATA and more SCSI and network drivers.
+ * [arm/versatile] Enable CONFIG_RTC_DRV_PL031 (closes: #484432).
+ * [arm/iop32x, arm/ixp4xx, arm/versatile] Enable ARM_THUMB (closes: #484524).
+ * [arm/iop32x] Add LED driver for Thecus N2100 (Riku Voipio).
+ * [mips/r5k-ip32] Enable USB.
+ * [arm/orion5x, arm/iop32x, arm/ixp4xx, mipsel/r5k-cobalt] Enable HAMRADIO
+ on the request of Heinz Janssen.
+ * [arm/orion5x] Add support for QNAP TS-409 and HP mv2120; thanks
+ Sylver Bruneau.
+ * [mips] Add patches from Thomas Bogendoerfer:
+ - gbefb: fix cmap FIFO timeout (closes: #487257)
+ - IP32: Enable FAST-20 for onboard scsi
+ - IP32: SGI O2 sound driver
+ * [arm/ixp4xx] Add support for Freecom FSG-3 (Rod Whitby).
+ * [arm/ixp4xx] Enable CONFIG_MACH_DSMG600.
+ * [arm/iop32x] Unset NET_DMA since it actually leads to worse network
+ performance.
+ * [arm/orion5x] Fix a boot crash on the Kurobox Pro.
+ * [arm/orion5x] use better key codes for the TS-209/TS-409 buttons
+ * [arm/orion5x] export red SATA lights on TS-409, fix SATA presence/activity
+ * [arm] Enable KEXEC (closes: #492268).
+ * [arm/orion5x] Enable USB_PRINTER, requested by Mike Arthur.
+ * [arm/orion5x] Enable binfmt aout, x25, wireless and ATM.
+ * [arm/iop32x, arm/orion5x] Enable USB_SISUSBVGA.
+ * [arm] xfs: pack some shortform dir2 structures for the ARM old ABI
+ architecture (closes: #414932).
+
+ [ Ian Campbell ]
+ * Readme.build updated on how to generate orig tarballs.
+ * Forward port vmlinuz-target.patch.
+ * Enable Xen save/restore and memory ballooning for Xen enabled kernels.
+
+ [ Bastian Blank ]
+ * [powerpc/powerpc-miboot] Disable. (closes: #481358)
+ * [powerpc/powerpc64] Support IBM Cell based plattforms and PS3.
+ (closes: #462529)
+ * [s390] Synchronize block device, network bridge, network scheduler and CRC
+ support.
+ * [s390] Enable support for PCI-attached cryptographic adapters.
+ * Use control group as base for group CPU scheduler. This reenabled
+ traditional nice behaviour. (closes: #489223)
+ * Bump yaird dependencies to at least 0.0.13.
+ * Reenable SECCOMP. There is no longer additional overhead.
+ (closes: #474648)
+ * Export symbol required for MOL again. (closes: #460667)
+ * [powerpc/powerpc64] Fix console selection in LPAR environment.
+ (closes: #492703)
+ * Fix several userspace compatibility problems.
+
+ [ Christian T. Steigies ]
+ * [m68k] enable SERIAL_CONSOLE for amiga and atari
+
+ [ Thiemo Seufer ]
+ * [mips] Fix logic bug in atomic_sub_if_positive.
+
+ [ Stephen R. Marenka ]
+ * [m68k] Update pending m68k patches.
+ * [m68k] Enable nfcon and nfblock for atari.
+ * [m68k] Change compiler to default.
+
+ [ Aurelien Jarno ]
+ * [arm/versatile] Switch scsi/ext3/smc91x to modules now that we have proper
+ d-i support. Remove options defined in toplevel config file.
+
+ -- Bastian Blank <waldi@debian.org> Wed, 30 Jul 2008 10:17:29 +0200
+
+linux-2.6 (2.6.25-7) unstable; urgency=high
+
+ * Add stable release 2.6.25.10:
+ - TTY: fix for tty operations bugs (CVE-2008-2812)
+ - sched: fix cpu hotplug
+ - IB/mthca: Clear ICM pages before handing to FW
+ - DRM: enable bus mastering on i915 at resume time
+ - x86: shift bits the right way in native_read_tscp
+ - x86_64 ptrace: fix sys32_ptrace task_struct leak (CVE-2008-3077)
+ - ptrace GET/SET FPXREGS broken
+ - futexes: fix fault handling in futex_lock_pi
+ - x86: fix cpu hotplug crash
+ * Add stable release 2.6.25.11:
+ - x86: fix ldt limit for 64 bit
+
+ -- maximilian attems <maks@debian.org> Mon, 14 Jul 2008 10:58:14 +0200
+
+linux-2.6 (2.6.25-6) unstable; urgency=high
+
+ [ maximilian attems ]
+ * Add stable release 2.6.25.7:
+ - double-free of inode on alloc_file() failure exit in create_write_pipe()
+ - m68k: Add ext2_find_{first,next}_bit() for ext4
+ - bluetooth: fix locking bug in the rfcomm socket cleanup handling
+ - serial: fix enable_irq_wake/disable_irq_wake imbalance in serial_core.c
+ - bttv: Fix a deadlock in the bttv driver (closes: #487594)
+ - forcedeth: msi interrupts
+ - CPUFREQ: Fix format string bug.
+ - mmc: wbsd: initialize tasklets before requesting interrupt
+ - ecryptfs: fix missed mutex_unlock
+ - mac80211: send association event on IBSS create
+ - bluetooth: rfcomm_dev_state_change deadlock fix
+ - sunhv: Fix locking in non-paged I/O case.
+ - cassini: Only use chip checksum for ipv4 packets.
+ - ipwireless: Fix blocked sending
+ - net: Fix call to ->change_rx_flags(dev, IFF_MULTICAST) in
+ dev_change_flags()
+ - fbdev: export symbol fb_mode_option
+ - ipsec: Use the correct ip_local_out function
+ - tcp: fix skb vs fack_count out-of-sync condition
+ - tcp FRTO: Fix fallback to conventional recovery
+ - tcp FRTO: SACK variant is errorneously used with NewReno
+ - tcp FRTO: work-around inorder receivers
+ - tcp: Fix inconsistency source (CA_Open only when !tcp_left_out(tp))
+ - l2tp: avoid skb truesize bug if headroom is increased
+ - l2tp: Fix possible WARN_ON from socket code when UDP socket is closed
+ - l2tp: Fix possible oops if transmitting or receiving when tunnel goes down
+ - ax25: Fix NULL pointer dereference and lockup.
+ - sound: emu10k1 - fix system hang with Audigy2 ZS Notebook PCMCIA card
+ - tcp: Allow send-limited cwnd to grow up to max_burst when gso disabled
+ - tcp: Limit cwnd growth when deferring for GSO
+ - af_key: Fix selector family initialization.
+ - hgafb: resource management fix
+ - cifs: fix oops on mount when CONFIG_CIFS_DFS_UPCALL is enabled
+ - b43: Fix controller restart crash
+ - ssb: Fix context assertion in ssb_pcicore_dev_irqvecs_enable
+ - eCryptfs: protect crypt_stat->flags in ecryptfs_open()
+ - cciss: add new hardware support
+ - ecryptfs: add missing lock around notify_change
+ - ecryptfs: clean up (un)lock_parent
+ - Add 'rd' alias to new brd ramdisk driver
+ - net_sched: cls_api: fix return value for non-existant classifiers
+ - vlan: Correctly handle device notifications for layered VLAN devices
+ - IB/umem: Avoid sign problems when demoting npages to integer
+ - x86: fix recursive dependencies
+ - can: Fix copy_from_user() results interpretation
+ - Kconfig: introduce ARCH_DEFCONFIG to DEFCONFIG_LIST
+ - tcp: TCP connection times out if ICMP frag needed is delayed
+ - ALSA: hda - Fix resume of auto-config mode with Realtek codecs
+ - netlink: Fix nla_parse_nested_compat() to call nla_parse() directly
+ * Add stable release 2.6.25.9:
+ - Add return value to reserve_bootmem_node()
+ - x86: use BOOTMEM_EXCLUSIVE on 32-bit
+ - sctp: Make sure N * sizeof(union sctp_addr) does not overflow.
+ - hwmon: (lm85) Fix function RANGE_TO_REG()
+ - hwmon: (adt7473) Initialize max_duty_at_overheat before use
+ - x86: set PAE PHYSICAL_MASK_SHIFT to 44 bits.
+ - Reinstate ZERO_PAGE optimization in 'get_user_pages()' and fix XIP
+ - watchdog: hpwdt: fix use of inline assembly
+ - Fix ZERO_PAGE breakage with vmware
+ - atl1: relax eeprom mac address error check
+
+ [ Martin Michlmayr]
+ * [arm/orion5x] Enable INPUT_EVDEV and KEYBOARD_GPIO.
+
+ [ Steve Langasek ]
+ * Enable CONFIG_CIFS_EXPERIMENTAL and CONFIG_CIFS_UPCALL, required for
+ CIFS mounts to be able to use Kerberos authentication. Closes: #480663.
+
+ [ Bastian Blank ]
+ * Add stable release 2.6.25.8:
+ - x86: disable mwait for AMD family 10H/11H CPUs
+ - x86: remove mwait capability C-state check
+ - nf_conntrack_h323: fix memory leak in module initialization error path
+ - nf_conntrack_h323: fix module unload crash
+ - nf_conntrack: fix ctnetlink related crash in nf_nat_setup_info()
+ - SCSI: sr: fix corrupt CD data after media change and delay
+ - ACPICA: Ignore ACPI table signature for Load() operator
+ - scsi_host regression: fix scsi host leak
+ - b43: Fix possible NULL pointer dereference in DMA code
+ - b43: Fix noise calculation WARN_ON
+ - virtio_net: Fix skb->csum_start computation
+ - opti621: remove DMA support
+ - opti621: disable read prefetch
+ - Fix tty speed handling on 8250
+ - x86-64: Fix "bytes left to copy" return value for copy_from_user()
+ * Fix alpha build due too inconsistent kallsyms data.
+
+ -- maximilian attems <maks@debian.org> Fri, 27 Jun 2008 00:33:53 +0200
+
+linux-2.6 (2.6.25-5) unstable; urgency=low
+
+ [ maximilian attems ]
+ [ Bastian Blank ]
+ * Reenable VServer images.
+
+ [ maximilian attems ]
+ * Add stable release 2.6.25.5:
+ - asn1: additional sanity checking during BER decoding (CVE-2008-1673)
+ * Add stable release 2.6.25.6:
+ - atl1: fix 4G memory corruption bug
+ - capabilities: remain source compatible with 32-bit raw legacy capability
+ support.
+ - usb-serial: Use ftdi_sio driver for RATOC REX-USB60F
+ - cpufreq: fix null object access on Transmeta CPU
+ - Smack: fuse mount hang fix
+ - cgroups: remove node_ prefix_from ns subsystem
+ - XFS: Fix memory corruption with small buffer reads
+ - x86: don't read maxlvt before checking if APIC is mapped
+ - USB: option: add new Dell 5520 HSDPA variant
+ - md: do not compute parity unless it is on a failed drive
+ - md: fix uninitialized use of mddev->recovery_wait
+ - md: fix prexor vs sync_request race
+ - HID: split Numlock emulation quirk from HID_QUIRK_APPLE_HAS_FN.
+ - USB: do not handle device 1410:5010 in 'option' driver
+ - USB: unusual_devs: Add support for GI 0401 SD-Card interface
+ - USB: add Telstra NextG CDMA id to option driver
+ - USB: fix build errors in ohci-omap.c and ohci-sm501.c
+ - USB: add TELIT HDSPA UC864-E modem to option driver
+ - memory_hotplug: always initialize pageblock bitmap
+ - x86: fix bad pmd ffff810000207xxx(9090909090909090)
+ - USB: add Zoom Telephonics Model 3095F V.92 USB Mini External modem to
+ cdc-acm
+ - x86: prevent PGE flush from interruption/preemption
+ - IPoIB: Test for NULL broadcast object in ipiob_mcast_join_finish()
+ - i386: fix asm constraint in do_IRQ()
+ - i2c-nforce2: Disable the second SMBus channel on the DFI Lanparty NF4
+ Expert
+ - i2c/max6875: Really prevent 24RF08 corruption
+ - brk: make sys_brk() honor COMPAT_BRK when computing lower bound
+ - Revert "PCI: remove default PCI expansion ROM memory allocation"
+ - PS3: gelic: fix memory leak
+ - eCryptfs: remove unnecessary page decrypt call
+ - netfilter: nf_conntrack_expect: fix error path unwind in
+ nf_conntrack_expect_init()
+ - netfilter: xt_connlimit: fix accouning when receive RST packet in
+ ESTABLISHED state
+ - netfilter: nf_conntrack_ipv6: fix inconsistent lock state in
+ nf_ct_frag6_gather()
+ - POWERPC Bolt in SLB entry for kernel stack on secondary cpus
+ - netfilter: xt_iprange: module aliases for xt_iprange
+ - x86: user_regset_view table fix for ia32 on 64-bit
+ - x86: if we cannot calibrate the TSC, we panic.
+ - CIFS: Fix UNC path prefix on QueryUnixPathInfo to have correct slash
+ - x86, fpu: fix CONFIG_PREEMPT=y corruption of application's FPU stack
+ - libata: force hardreset if link is in powersave mode
+ - x86: fix setup of cyc2ns in tsc_64.c
+ - x86: distangle user disabled TSC from unstable
+ - x86: disable TSC for sched_clock() when calibration failed
+ - pagemap: fix bug in add_to_pagemap, require aligned-length reads of
+ /proc/pid/pagemap
+ - ext3/4: fix uninitialized bs in ext3/4_xattr_set_handle()
+ - proc: calculate the correct /proc/<pid> link count
+ - CPUFREQ: Make acpi-cpufreq more robust against BIOS freq changes behind
+ our back.
+ - USB: remove PICDEM FS USB demo (04d8:000c) device from ldusb
+ - types.h: don't expose struct ustat to userspace
+
+ [ Bastian Blank ]
+ * Ignore ABI change in internal XFS symbol.
+
+ -- Bastian Blank <waldi@debian.org> Thu, 12 Jun 2008 08:47:11 +0200
+
+linux-2.6 (2.6.25-4) unstable; urgency=low
+
+ [ maximilian attems ]
+ * Fix arm Kconfig logic disabling random drivers. (closes: #481410)
+ * Add stable release 2.6.25.4:
+ - OHCI: fix regression upon awakening from hibernation
+ - V4L/DVB (7473): PATCH for various Dibcom based devices
+ - {nfnetlink, ip, ip6}_queue: fix skb_over_panic when enlarging packets
+ - dccp: return -EINVAL on invalid feature length
+ - md: fix raid5 'repair' operations
+ - sparc: Fix SA_ONSTACK signal handling.
+ - sparc: Fix fork/clone/vfork system call restart.
+ - sparc64: Stop creating dummy root PCI host controller devices.
+ - sparc64: Fix wedged irq regression.
+ - SPARC64: Fix args to 64-bit sys_semctl() via sys_ipc().
+ - serial: Fix sparc driver name strings.
+ - sparc: Fix ptrace() detach.
+ - sparc: Fix mremap address range validation.
+ - sparc: Fix debugger syscall restart interactions.
+ - sparc32: Don't twiddle PT_DTRACE in exec.
+ - r8169: fix oops in r8169_get_mac_version
+ - SCSI: aha152x: Fix oops on module removal
+ - SCSI: aha152x: fix init suspiciously returned 1, it should follow
+ 0/-E convention
+ - sch_htb: remove from event queue in htb_parent_to_leaf()
+ - i2c-piix4: Blacklist two mainboards
+ - SCSI: qla1280: Fix queue depth problem
+ - ipvs: fix oops in backup for fwmark conn templates
+ - USB: airprime: unlock mutex instead of trying to lock it again
+ - rtc: rtc_time_to_tm: use unsigned arithmetic
+ - SCSI: libiscsi regression in 2.6.25: fix nop timer handling
+ - SCSI: libiscsi regression in 2.6.25: fix setting of recv timer
+ - can: Fix can_send() handling on dev_queue_xmit() failures
+ - macvlan: Fix memleak on device removal/crash on module removal
+ - nf_conntrack: padding breaks conntrack hash on ARM
+ - sparc: sunzilog uart order
+ - r8169: fix past rtl_chip_info array size for unknown chipsets
+ - x86: use defconfigs from x86/configs/*
+ - vt: fix canonical input in UTF-8 mode
+ - ata_piix: verify SIDPR access before enabling it
+ - serial: access after NULL check in uart_flush_buffer()
+ - x86: sysfs cpu?/topology is empty in 2.6.25 (32-bit Intel system)
+ - XFRM: AUDIT: Fix flowlabel text format ambibuity.
+ * Update userspace merged HZ alpha fixed version.
+ * Backport netfilter: Move linux/types.h inclusions outside of #ifdef
+ __KERNEL__. (closes: #479899)
+ * types.h: don't expose struct ustat to userspace. (closes: #429064)
+
+ [ Bastian Blank ]
+ * Fix ABI changes from: ipvs: fix oops in backup for fwmark conn templates
+
+ -- maximilian attems <maks@debian.org> Tue, 27 May 2008 11:46:11 +0200
+
+linux-2.6 (2.6.25-3) unstable; urgency=low
+
+ [ Bastian Blank ]
+ * Add stable release 2.6.25.3:
+ - sit: Add missing kfree_skb() on pskb_may_pull() failure.
+ - sparc: Fix mmap VA span checking.
+ - CRYPTO: eseqiv: Fix off-by-one encryption
+ - CRYPTO: authenc: Fix async crypto crash in crypto_authenc_genicv()
+ - CRYPTO: cryptd: Correct kzalloc error test
+ - CRYPTO: api: Fix scatterwalk_sg_chain
+ - x86 PCI: call dmi_check_pciprobe()
+ - b43: Fix some TX/RX locking issues
+ - kprobes/arm: fix decoding of arithmetic immediate instructions
+ - kprobes/arm: fix cache flush address for instruction stub
+ - b43: Fix dual-PHY devices
+ - POWERPC: mpc5200: Fix unterminated of_device_id table
+ - reiserfs: Unpack tails on quota files
+ - sched: fix hrtick_start_fair and CPU-Hotplug
+ - vfs: fix permission checking in sys_utimensat
+ - md: fix use after free when removing rdev via sysfs
+ - mm: fix usemap initialization
+ - 2.6.25 regression: powertop says 120K wakeups/sec
+
+ [ maximilian attems ]
+ * Redisable old dup prism54 driver.
+ * Reenable accidentaly disabled SIS190. (closes: #478773)
+ * Add lmkl patch to unbreak HZ userspace aka perl5.10 build fix.
+ (closes: #480130)
+
+ [ Martin Michlmayr ]
+ * [armel] Disable some SCSI drives (that are disabled on arm) so the
+ ramdisk will fit in flash on NSLU2 (closes: #480310).
+
+ -- maximilian attems <maks@debian.org> Wed, 14 May 2008 11:16:56 +0200
+
+linux-2.6 (2.6.25-2) unstable; urgency=low
+
+ [ maximilian attems ]
+ * Add stable release 2.6.25.1:
+ - Fix dnotify/close race (CVE-2008-1375)
+ - V4L: Fix VIDIOCGAP corruption in ivtv
+ - USB: log an error message when USB enumeration fails
+ - USB: OHCI: fix bug in controller resume
+ - SCSI: qla2xxx: Correct regression in relogin code.
+ - rose: Socket lock was not released before returning to user space
+ - x86, pci: fix off-by-one errors in some pirq warnings
+ - hrtimer: timeout too long when using HRTIMER_CB_SOFTIRQ
+ - RDMA/nes: Fix adapter reset after PXE boot
+ - rtc-pcf8583 build fix
+ - JFFS2: Fix free space leak with in-band cleanmarkers
+ - SELinux: no BUG_ON(!ss_initialized) in selinux_clone_mnt_opts
+ - tehuti: check register size (CVE-2008-1675)
+ - IPSEC: Fix catch-22 with algorithm IDs above 31
+ - alpha: unbreak OSF/1 (a.out) binaries
+ - tehuti: move ioctl perm check closer to function start (CVE-2008-1675)
+ - aio: io_getevents() should return if io_destroy() is invoked
+ - mm: fix possible off-by-one in walk_pte_range()
+ - TCP: Increase the max_burst threshold from 3 to tp->reordering.
+ - ssb: Fix all-ones boardflags
+ - cgroup: fix a race condition in manipulating tsk->cg_list
+ - drivers/net/tehuti: use proper capability check for raw IO access
+ - tg3: 5701 DMA corruption fix
+ - V4L: tea5761: bugzilla #10462: tea5761 autodetection code were broken
+ - b43: Workaround invalid bluetooth settings
+ - b43: Add more btcoexist workarounds
+ - b43: Workaround DMA quirks
+ - dm snapshot: fix chunksize sector conversion
+ - x86: Fix 32-bit x86 MSI-X allocation leakage
+ - RTNETLINK: Fix bogus ASSERT_RTNL warning
+ - net: Fix wrong interpretation of some copy_to_user() results.
+ - dz: test after postfix decrement fails in dz_console_putchar()
+ - RDMA/nes: Free IRQ before killing tasklet
+ - S2io: Fix memory leak during free_tx_buffers
+ - S2io: Version update for memory leak fix during free_tx_buffers
+ - USB: Add HP hs2300 Broadband Wireless Module to sierra.c
+ - V4L: cx88: enable radio GPIO correctly
+ - hrtimer: raise softirq unlocked to avoid circular lock dependency
+ - tcp: tcp_probe buffer overflow and incorrect return value
+ * [ide] Add upstream piix patch for asus eee pc. (closes: #479217)
+
+ [ Christian T. Steigies ]
+ * [m68k] Add patches for 2.6.25.
+ * [m68k] Disable EXT4DEV_FS for now.
+ * [m68k] Enable SCSI_MAC_ESP for mac.
+
+ [ Ian Campbell ]
+ * [x86]: Enable Xen guest support in all i386 flavours.
+
+ [ Bastian Blank ]
+ * Add stable release 2.6.25.2:
+ - fix SMP ordering hole in fcntl_setlk() (CVE-2008-1669)
+
+ -- Bastian Blank <waldi@debian.org> Thu, 08 May 2008 14:46:48 +0200
+
+linux-kbuild-2.6 (2.6.25-2) unstable; urgency=low
+
+ * modpost: Support new parameters. (closes: #479271)
+
+ -- Bastian Blank <waldi@debian.org> Mon, 05 May 2008 19:58:40 +0200
+
+linux-kbuild-2.6 (2.6.25-1) unstable; urgency=low
+
+ * New upstream version.
+
+ -- Bastian Blank <waldi@debian.org> Fri, 02 May 2008 10:32:13 +0200
+
+linux-2.6 (2.6.25-1) unstable; urgency=low
+
+ * New upstream release (closes: #456799, #468440, #475161, #475134, #475441)
+ - Add oabi shim for fstatat64 (closes: #462677)
+
+ [ maximilian attems ]
+ * topconfig set NOZOMI, CRYPTO_SEQIV, CRYPTO_CTR, CRYPTO_GCM, CRYPTO_CCM,
+ CRYPTO_SALSA20, CRYPTO_LZO, CRYPTO_DEV_HIFN_795X, USB_SI470X,
+ USB_STKWEBCAM, VIDEO_PVRUSB2_ONAIR_USB2, VIDEO_PVRUSB2_ONAIR_CREATOR,
+ VIDEO_EM28XX_ALSA, CRYPTO_DEV_HIFN_795X_RNG, PCF8575, TPS65010, RTL8180,
+ ENC28J60, R6040, CAN, NETFILTER_XT_MATCH_OWNER, MAC80211_RC_DEFAULT_PI,
+ NETFILTER_XT_TARGET_RATEEST, NETFILTER_XT_TARGET_TCPOPTSTRIP,
+ NETFILTER_XT_MATCH_IPRANGE, NETFILTER_XT_MATCH_RATEEST, SND_OXYGEN,
+ SND_HIFIER, SND_VIRTUOSO, USB_NET_RNDIS_WLAN, USB_ANNOUNCE_NEW_DEVICES,
+ USB_SERIAL_IUU, NET_CLS_FLOW, INFINIBAND_NES, RTC_DRV_R9701,
+ RTC_DRV_DS1511, MEMSTICK, SENSORS_W83L786NG, SENSORS_ADS7828, IPWIRELESS,
+ RISCOM8, IGB, UTS_NS, IPC_NS, IPV6_ROUTE_INFO, ENCLOSURE_SERVICES,
+ SCSI_ENCLOSURE, SENSORS_ADT7473, SCSI_MVSAS, REALTEK_PHY, RTC_DRV_S35390A,
+ MEMSTICK_JMICRON_38X, IWL4965_HT.
+ * [amd64] Enable CRYPTO_SALSA20_X86_64, EDAC_I3000, EFI, EFI_VARS, I8K,
+ PARAVIRT_GUEST, PARAVIRT, VIRTIO_PCI, VIRTIO_BALLOON, SPARSEMEM_VMEMMAP.
+ * [amd64, i386]: Enable LEDS_CLEVO_MAIL, INPUT_APANEL, ACER_WMI,
+ THINKPAD_ACPI_HOTKEY_POLL, HP_WATCHDOG, THINKPAD_ACPI_VIDEO,
+ VIRTION_CONSOLE, ACPI_WMI, IO_DELAY_0X80.
+ * topconfig disable PARPORT_PC_FIFO due to instabilities.
+ (closes: #366165, #388309, #406056, #407816, #453911)
+ * [amd64, i386]: Enable SONYPI_COMPAT for better sony laptop support.
+ * topconfig: Enable HID_FF for some HID devices. (closes: #441348)
+ * topconfig: Enable IPV6_ROUTER_PREF for multi-homed net. (closes: #449247)
+ * topconfig: Set UTF8 as default encoding. (closes: #417324)
+ * Tighten yaird dependency. (closes: #403171)
+ * Configs general cleanup, centralize USB_NET, disable IRDA_DEBUG.
+ * postinst: Nuke confusing postinst message. (closes: #465512)
+ * [sparc]: Enable SCSI_SCAN_ASYNC.
+ * [i386]: Enable TC1100_WMI, SND_SIS7019, CRYPTO_SALSA20_586.
+ * topconfig: Centralize old IEEE80211 stack options. (closes: #470558)
+ * control.source.in: Newer standard version without changes.
+ * copyright: adapt to latest lintian recommendation.
+ * input: Add 4 additional exports for modular speakup and braille support.
+ * firewire: Add firewire-git.patch for latest firewire tree features.
+ * 686: Set USB_PERSIST for eee pc suspend support. (closes: #468213)
+ * topconfig disable PATA_SIS as sis5513 enabled. (closes: #475525)
+ * [xen]: Support direct load of bzImage under Xen. (closes: #474509)
+ Thanks Ian Campbell <ijc@hellion.org.uk> for patches.
+ * [xen]: Module autoprobing support for frontend drivers.
+ * [arm]: Don't ovverride topconfig SENSORS_W83792D setting.
+ (closes: #477745)
+
+ [ Martin Michlmayr ]
+ * [arm/armel] Add a kernel for Orion based devices, such as the QNAP
+ TS-109/TS-209.
+ * [mips(el)/sb1*] Enable SB1250_MAC (thanks Thomas Bogendoerfer).
+ * [mipsel/r5k-cobalt] Enable DUMMY_CONSOLE since this might
+ fix the debian-installer startup hang on Qube 2700.
+ * [arm/footbridge] Disable KEYS and SECURITY for smaller d-i image.
+ * [arm/footbridge] Build NFS as a module to make the image smaller.
+ * [mips/r5k-ip32] Don't build in NFS.
+ * [mips/r5k-ip32] Use the generic config options for NFS, which will
+ enable NFSv4. (closes: #471007)
+ * [mips/r5k-ip32] Enable R8169, requested by Giuseppe Sacco.
+ * [arm/iop32x] Enable MACH_EM7210. (closes: #473136)
+ * [arm/orion] Add patch to set the MAC address on QNAP TS-109/TS-209
+ (Lennert Buytenhek).
+ * [arm/orion] Add support for Buffalo Linkstation Pro/Live (Byron Bradley).
+ * [arm/orion] Fix hang when Write Allocate is enabled (Lennert Buytenhek).
+ * [arm/orion] Add support for QNAP TS-409 (Sylver Bruneau).
+ * [arm/orion] Add preliminary support for HP mv2120.
+
+ [ Daniel Baumann ]
+ * Added patch from unionfs upstream to export release_open_intent symbol.
+
+ [ Gordon Farquharson ]
+ * [arm/ixp4xx] Use GPIO LED driver as opposed to ixp4xx LED driver.
+ * [arm/ixp4xx] Fix ixp4xx-beeper module so that udev loads it
+ automatically.
+ * [arm/iop32x] Enable support for the GLAN Tank flash chip (M29W400DB).
+ * [arm/iop32x] Do not build the ARTOP PATA driver (PATA_ARTOP).
+ * [arm/iop32x] Register the F75375 device in the GLAN Tank platform code.
+ * Prevent physmap from calling request_module() too early.
+ * [arm/ixp4xx] Fix used_sram_bitmap corruption in qmgr_release_queue().
+
+ [ Aurelien Jarno ]
+ * [mips/mipsel] Enable CONFIG_NO_HZ, CONFIG_HIGH_RES_TIMERS for dynticks
+ and true high-resolution timers on 4kc-malta and 5kc-malta flavours.
+ * [i386, amd64] Set modular VIRTIO, VIRTIO_RING, VIRTIO_BLK, VIRTIO_NET.
+
+ [ Bastian Blank ]
+ * Remove binary only firmwares for:
+ - Broadcom NetXtremeII 10Gb support
+ * Disable now broken drivers:
+ - Broadcom NetXtremeII 10Gb support
+ * Fix broken drivers:
+ - Broadcom NetXtremeII support
+ * [powerpc] Use new wrapper install support.
+ * [s390] Enable DM_MULTIPATH_EMC.
+ * Enable AF_RXRPC, RXKAD, PRINTK_TIME, DEBUG_KERNEL, SCHED_DEBUG,
+ TIMER_STATS, DEBUG_FS.
+ * Disable R3964, USB_GADGET.
+ * [hppa] Enable several filesystems.
+ * Make NLS modular.
+ * [i386/486] Make ext2 modular.
+ * [alpha,amd64,i386] Make ATM modular.
+ * [powerpc/powerpc64] Support PA Semi based plattforms. (closes: #463200)
+ * Follow upstream change for default TCP congestion control.
+ (closes: #477589)
+
+ [ Steve Langasek ]
+ * topconfig: Enable CONFIG_CIFS_WEAK_PW_HASH, required for compatibility
+ with legacy (pre-NTLM) fileservers.
+
+ [ Christian Perrier ]
+ * Debconf template rewrite + mark them as translatable.
+ Thanks to Justin B Rye <jbr@edlug.org.uk> for review.
+
+ -- Bastian Blank <waldi@debian.org> Fri, 25 Apr 2008 16:27:23 +0200
+
+linux-2.6 (2.6.24-6) unstable; urgency=high
+
+ [ Martin Michlmayr ]
+ * [armel] Fix FTBFS on armel by enabling CONFIG_USB_USBNET=m in
+ armel/config, as it was done for arm/config already.
+ * [armel] Add oabi shim for fstatat64 (Riku Voipio)
+
+ [ Gordon Farquharson ]
+ * [arm/iop32x] Do not build the ARTOP PATA driver (PATA_ARTOP).
+ * [arm/iop32x] Enable MTD_CMDLINE_PARTS.
+
+ [ Kyle McMartin ]
+ * [hppa] fix pdc_console panic at boot (closes: #476292).
+ * [hppa] properly flush user signal tramps
+ * [hppa] special case futex cmpxchg on kernel space NULL (closes: 476285).
+
+ -- Bastian Blank <waldi@debian.org> Fri, 18 Apr 2008 19:41:30 +0200
+
+linux-2.6 (2.6.24-5) unstable; urgency=low
+
+ [ Gordon Farquharson ]
+ * [arm] Enable asix driver (USB_NET_AX8817X).
+ * [arm] Enable CONFIG_USB_CATC, CONFIG_USB_KAWETH, CONFIG_USB_PEGASUS,
+ and CONFIG_USB_RTL8150.
+ * [arm/ixp4xx] Update Ethernet driver (closes: #471062).
+ * [arm/ixp4xx] Add HSS driver.
+
+ [ Bastian Blank ]
+ * [s390/s390-tape]: Override localversion correctly.
+ * Add stable release 2.6.24.3:
+ - x86_64: CPA, fix cache attribute inconsistency bug
+ - bonding: fix NULL pointer deref in startup processing
+ - POWERPC: Revert chrp_pci_fixup_vt8231_ata devinit to fix libata on pegasos
+ - PCMCIA: Fix station address detection in smc
+ - SCSI: gdth: scan for scsi devices
+ - USB: fix pm counter leak in usblp
+ - S390: Fix futex_atomic_cmpxchg_std inline assembly.
+ - genirq: do not leave interupts enabled on free_irq
+ - hrtimer: catch expired CLOCK_REALTIME timers early
+ - hrtimer: check relative timeouts for overflow
+ - SLUB: Deal with annoying gcc warning on kfree()
+ - hrtimer: fix *rmtp/restarts handling in compat_sys_nanosleep()
+ - hrtimer: fix *rmtp handling in hrtimer_nanosleep()
+ - Disable G5 NAP mode during SMU commands on U3
+ - Be more robust about bad arguments in get_user_pages()
+ - AUDIT: Increase skb->truesize in audit_expand
+ - BLUETOOTH: Add conn add/del workqueues to avoid connection fail.
+ - INET: Prevent out-of-sync truesize on ip_fragment slow path
+ - INET_DIAG: Fix inet_diag_lock_handler error path.
+ - IPCOMP: Fetch nexthdr before ipch is destroyed
+ - IPCOMP: Fix reception of incompressible packets
+ - IPV4: fib: fix route replacement, fib_info is shared
+ - IPV4: fib_trie: apply fixes from fib_hash
+ - PKT_SCHED: ematch: oops from uninitialized variable (resend)
+ - SELinux: Fix double free in selinux_netlbl_sock_setsid()
+ - TC: oops in em_meta
+ - TCP: Fix a bug in strategy_allowed_congestion_control
+ - SCSI: sd: handle bad lba in sense information
+ - Fix dl2k constants
+ - XFS: Fix oops in xfs_file_readdir()
+ - hugetlb: add locking for overcommit sysctl
+ - inotify: fix check for one-shot watches before destroying them
+ - NFS: Fix a potential file corruption issue when writing
+ - NETFILTER: nf_conntrack_tcp: conntrack reopening fix
+ - SPARC/SPARC64: Fix usage of .section .sched.text in assembler code.
+ * Add stable release 2.6.24.4:
+ - S390 futex: let futex_atomic_cmpxchg_pt survive early functional tests.
+ - slab: NUMA slab allocator migration bugfix
+ - relay: fix subbuf_splice_actor() adding too many pages
+ - BLUETOOTH: Fix bugs in previous conn add/del workqueue changes.
+ - SCSI advansys: Fix bug in AdvLoadMicrocode
+ - async_tx: avoid the async xor_zero_sum path when src_cnt > device->max_xor
+ - aio: bad AIO race in aio_complete() leads to process hang
+ - jbd: correctly unescape journal data blocks
+ - jbd2: correctly unescape journal data blocks
+ - zisofs: fix readpage() outside i_size
+ - NETFILTER: nfnetlink_log: fix computation of netlink skb size
+ - NETFILTER: nfnetlink_queue: fix computation of allocated size for netlink skb
+ - NETFILTER: xt_time: fix failure to match on Sundays
+ - sched_nr_migrate wrong mode bits
+ - nfsd: fix oops on access from high-numbered ports
+ - sched: fix race in schedule()
+ - SCSI: mpt fusion: don't oops if NumPhys==0
+ - SCSI: gdth: fix to internal commands execution
+ - SCSI: gdth: bugfix for the at-exit problems
+ - Fix default compose table initialization
+ - x86: don't use P6_NOPs if compiling with CONFIG_X86_GENERIC
+ - SCSI: fix BUG when sum(scatterlist) > bufflen
+ - USB: ehci: handle large bulk URBs correctly (again)
+ - USB: ftdi_sio - really enable EM1010PC
+ - USB: ftdi_sio: Workaround for broken Matrix Orbital serial port
+ - VT notifier fix for VT switch
+ - eCryptfs: make ecryptfs_prepare_write decrypt the page
+ - ioat: fix 'ack' handling, driver must ensure that 'ack' is zero
+ - macb: Fix speed setting
+ - x86: move out tick_nohz_stop_sched_tick() call from the loop
+ - atmel_spi: fix clock polarity
+ - b43: Backport bcm4311 fix
+ - arcmsr: fix IRQs disabled warning spew
+ - e1000e: Fix CRC stripping in hardware context bug
+ - PCI x86: always use conf1 to access config space below 256 bytes
+ - moduleparam: fix alpha, ia64 and ppc64 compile failures
+ - pata_hpt*, pata_serverworks: fix UDMA masking
+ - SCSI advansys: fix overrun_buf aligned bug
+ - NETFILTER: fix ebtable targets return
+ - NETFILTER: Fix incorrect use of skb_make_writable
+ - NETFILTER: nfnetlink_queue: fix SKB_LINEAR_ASSERT when mangling packet data
+ - spi: pxa2xx_spi clock polarity fix
+ - ufs: fix parenthesisation in ufs_set_fs_state()
+ - hugetlb: ensure we do not reference a surplus page after handing it to buddy
+ - file capabilities: simplify signal check
+ - futex: runtime enable pi and robust functionality
+ - futex: fix init order
+ - ARM pxa: fix clock lookup to find specific device clocks
+ - x86: replace LOCK_PREFIX in futex.h
+ - SCSI aic94xx: fix REQ_TASK_ABORT and REQ_DEVICE_RESET
+ - SCSI gdth: don't call pci_free_consistent under spinlock
+ - SCSI ips: fix data buffer accessors conversion bug
+ - usb-storage: don't access beyond the end of the sg buffer
+ - fuse: fix permission checking
+ - CRYPTO xts: Use proper alignment
+ - CRYPTO xcbc: Fix crash with IPsec
+ - SCSI ips: handle scsi_add_host() failure, and other err cleanups
+ - x86: adjust enable_NMI_through_LVT0()
+ - drivers: fix dma_get_required_mask
+ - iov_iter_advance() fix
+ - x86: Clear DF before calling signal handler (closes: #469058)
+ - ub: fix up the conversion to sg_init_table()
+ - MIPS: Mark all but i8259 interrupts as no-probe.
+ - IRQ_NOPROBE helper functions
+ - IPCOMP: Disable BH on output when using shared tfm
+ - IPCONFIG: The kernel gets no IP from some DHCP servers
+ - IPV4: Remove IP_TOS setting privilege checks.
+ - IPV6: dst_entry leak in ip4ip6_err.
+ - IPV6: Fix IPsec datagram fragmentation
+ - NET: Fix race in dev_close(). (Bug 9750)
+ - NET: Messed multicast lists after dev_mc_sync/unsync (closes: #466719)
+ - NIU: Bump driver version and release date.
+ - NIU: Fix BMAC alternate MAC address indexing.
+ - NIU: More BMAC alt MAC address fixes.
+ - TCP: Improve ipv4 established hash function.
+ - SPARC: Fix link errors with gcc-4.3
+ - SPARC64: Loosen checks in exception table handling.
+
+ [ Martin Michlmayr ]
+ * [mips/r4k-ip22] Enable BLK_DEV_LOOP and BLK_DEV_CRYPTOLOOP.
+ * [mips/r5k-ip32] Enable BLK_DEV_LOOP and BLK_DEV_CRYPTOLOOP.
+ * [mips/r4k-ip22] Enable PPP, PPPOE and SLIP.
+ * [mips/r5k-ip32] Enable PPP, PPPOE and SLIP.
+ * Don't check the section size when we're cross compiling.
+
+ [ dann frazier ]
+ * Remove cap_task_kill (closes: #463669)
+
+ -- Bastian Blank <waldi@debian.org> Thu, 27 Mar 2008 12:40:16 +0100
+
+linux-2.6 (2.6.24-4) unstable; urgency=low
+
+ * Add stable release 2.6.24.1:
+ - splice: missing user pointer access verification (CVE-2008-0009/10)
+ - drm: the drm really should call pci_set_master..
+ - Driver core: Revert "Fix Firmware class name collision"
+ - fix writev regression: pan hanging unkillable and un-straceable
+ - sched: fix high wake up latencies with FAIR_USER_SCHED
+ - sched: let +nice tasks have smaller impact
+ - b43: Reject new firmware early
+ - selinux: fix labeling of /proc/net inodes
+ - b43legacy: fix DMA slot resource leakage
+ - b43legacy: drop packets we are not able to encrypt
+ - b43legacy: fix suspend/resume
+ - b43legacy: fix PIO crash
+ - b43: Fix dma-slot resource leakage
+ - b43: Drop packets we are not able to encrypt
+ - b43: Fix suspend/resume
+ - sky2: fix for WOL on some devices
+ - sky2: restore multicast addresses after recovery
+ - x86: restore correct module name for apm
+ - ACPI: update ACPI blacklist
+ - PCI: Fix fakephp deadlock
+ - sys_remap_file_pages: fix ->vm_file accounting
+ - lockdep: annotate epoll
+ - forcedeth: mac address mcp77/79
+ - USB: Fix usb_serial_driver structure for Kobil cardreader driver.
+ - USB: handle idVendor of 0x0000
+ - USB: fix usbtest halt check on big endian systems
+ - USB: storage: Add unusual_dev for HP r707
+ - USB: Variant of the Dell Wireless 5520 driver
+ - USB: use GFP_NOIO in reset path
+ - USB: ftdi driver - add support for optical probe device
+ - USB: pl2303: add support for RATOC REX-USB60F
+ - USB: remove duplicate entry in Option driver and Pl2303 driver for Huawei modem
+ - USB: sierra: add support for Onda H600/Zte MF330 datacard to USB Driver for Sierra Wireless
+ - USB: ftdi-sio: Patch to add vendor/device id for ATK_16IC CCD
+ - USB: ftdi_sio - enabling multiple ELV devices, adding EM1010PC
+ - USB: sierra driver - add devices
+ - USB: Adding YC Cable USB Serial device to pl2303
+ - USB: Sierra - Add support for Aircard 881U
+ - USB: add support for 4348:5523 WinChipHead USB->RS 232 adapter
+ - USB: CP2101 New Device IDs
+ - usb gadget: fix fsl_usb2_udc potential OOPS
+ - USB: keyspan: Fix oops
+ - vm audit: add VM_DONTEXPAND to mmap for drivers that need it (CVE-2008-0007)
+ - slab: fix bootstrap on memoryless node
+ - DVB: cx23885: add missing subsystem ID for Hauppauge HVR1800 Retail
+
+ [ Martin Michlmayr ]
+ * [arm/ixp4xx] Enble ATA_OVER_ETH, requested by Nicola Fankhauser.
+ * [arm/iop32x] Enble ATA_OVER_ETH.
+
+ [ Bastian Blank ]
+ * Add stable release 2.6.24.2:
+ - splice: fix user pointer access in get_iovec_page_array()
+ (CVE-2008-0600, closes: #464945)
+
+ -- Bastian Blank <waldi@debian.org> Mon, 11 Feb 2008 12:29:23 +0100
+
+linux-2.6 (2.6.24-3) unstable; urgency=low
+
+ [ maximilian attems ]
+ * [scsi]: hptiop: add more adapter models and fixes.
+ * [amd64, i386]: Reenable ACPI_PROCFS_POWER. (closes: #463253)
+
+ [ Gordon Farquharson ]
+ * [arm/ixp4xx] Update Ethernet driver so that it can be loaded by udev
+ automatically.
+
+ [ Martin Michlmayr ]
+ * [mips/r5k-ip32] Enable R8169, requested by Giuseppe Sacco. (Closes:
+ #463705)
+
+ -- Bastian Blank <waldi@debian.org> Wed, 06 Feb 2008 13:05:18 +0100
+
+linux-2.6 (2.6.24-2) unstable; urgency=low
+
+ [ Bastian Blank ]
+ * Fix broken merge of flavour specific settings.
+ - [i386]: Recommends are fixed.
+ - [s390/s390-tape]: Built as small image again.
+
+ [ maximilian attems ]
+ * Disable old dup prism54 driver.
+ * Stable queue: slab: fix bootstrap on memoryless node.
+
+ [ Aurelien Jarno ]
+ * [arm]: Remove options that are present in topconfig from config.versatile.
+ * [arm]: Turn off B44 since it fails to compile on armel.
+
+ -- Bastian Blank <waldi@debian.org> Thu, 31 Jan 2008 17:37:00 +0100
+
+linux-kbuild-2.6 (2.6.24-1) unstable; urgency=low
+
+ * New upstream version.
+
+ -- Bastian Blank <waldi@debian.org> Tue, 29 Jan 2008 14:03:06 +0100
+
+linux-2.6 (2.6.24-1) unstable; urgency=low
+
+ * New upstream release
+ (closes: #461639)
+
+ [ Martin Michlmayr ]
+ * Don't build the AdvanSys driver on ARM since it fails to compile.
+ * Disable ATH5K on ARM since it fails to compile.
+ * [arm/iop32x] Activate DMADEVICES.
+ * [mips/mipsel] Turn off CONFIG_NIU since it fails to compile.
+
+ [ maximilian attems ]
+ * [amd64, i386]: Enable ACPI_SYSFS_POWER and disable ACPI_PROCFS_POWER.
+ * [fw] Sync with latest git-ieee1394 for sbp2 fixes.
+
+ [ Bastian Blank ]
+ * Kill reboot warning from old templates.
+ * Fix strange default value for link_in_boot. (closes: #425056)
+ * [powerpc/powerpc]: Enable Efika support.
+ * [powerpc]: Lower mkvmlinuz to the state of a bootloader.
+ * [powerpc]: Remove ppc and m68k include dirs from headers.
+ * Remove versions from relations fullfilled in stable.
+
+ [ Aurelien Jarno ]
+ * [arm]: Update versatile config.
+
+ [ Gordon Farquharson ]
+ * [arm/ixp4xx] Change the ixp4xx network driver from the driver
+ written by Christian Hohnstaedt to the driver written by Krzysztof
+ Hasala which has partially been accepted upstream.
+
+ -- Bastian Blank <waldi@debian.org> Sat, 26 Jan 2008 11:35:11 +0100
+
+linux-2.6 (2.6.24~rc8-1~experimental.1) experimental; urgency=low
+
+ * New upstream release
+ (closes: #454776, #458142, #457992, #458899, #426124, #459732, #455566).
+
+ [ maximilian attems ]
+ * New upstream release, rebase dfsg stuff plus drivers-atm.patch,
+ scripts-kconfig-reportoldconfig.patch.
+ * [amd64, powerpc] Set HIGH_RES_TIMERS and NO_HZ (closes: #458312).
+ * topconfig set NETFILTER_XT_MATCH_TIME, NET_ACT_NAT, KSDAZZLE_DONGLE,
+ KS959_DONGLE, NET_9P_FD, IP1000, VETH, IXGBE, NIU, TEHUTI, LIBERTAS_CS,
+ LIBERTAS_SDIO, RT2X00, SENSORS_ADT7470, SENSORS_I5K_AMB, SENSORS_F71882FG,
+ SENSORS_FSCHMD, SENSORS_IBMPEX, CRYPTO_XTS, CRYPTO_SEED, CRYPTO_AUTHENC,
+ DVB_S5H1409, DVB_TUNER_MT2131, INET_LRO, MMC_RICOH_MMC, MMC_SPI,
+ RTC_DRV_DS1374, VIDEO_CX23885, VIDEO_FB_IVTV, USB_SERIAL_CH341,
+ SCSI_SRP_TGT_ATTRS, ADM8211, MTD_INTEL_VR_NOR, MTD_ALAUDA,
+ MTD_ONENAND_2X_PROGRAM, MTD_ONENAND_SIM, DM_MULTIPATH_HP, FUJITSU_LAPTOP,
+ QUOTA_NETLINK_INTERFACE, DM_UEVENT, SCSI_FC_TGT_ATTRS, SSB, BT_HCIUART_LL,
+ BT_HCIBTSDIO, MTD_OOPS, CGROUPS, MDIO_BITBANG, HIDRAW, P54, SDIO_UART,
+ NETCONSOLE_DYNAMIC, SECURITY_FILE_CAPABILITIES.
+ * Disable smbfs in topconfig, not supported upstream, use cifs.
+ * Disable bcm43xx, deprecated by upstream. Enable B43 (needs v4 firmware)
+ and B43LEGACY (needs v3 firmware).
+ * [i386]: Set SND_SC6000, EDAC_I3000, EDAC_I5000, SBC7240_WDT,
+ NET_9P_VIRTIO, FB_GEODE_LX, VIRTIO_NET, VIRTIO_BLK.
+ * Set USB_EHCI_TT_NEWSCHED fills USB 2.0 bandwith better. (closes: #454797)
+ * postrm: Nuke initramfs sha1sum on linux-image removal. (closes: #420245)
+ * Unifiy BSD_PROCESS_ACCT settings across configs. (closes: #455892)
+ * Reenable DABUSB as firmware is BSD licensed.
+ * [hppa]: Disable OCFS2, due build trouble.
+ * topconfig: Enable delay accounting TASKSTATS. (closes: #433204)
+ * Add git-ieee1394.patch for latest firewire fixes.
+ * [i386] Enable PARAVIRT_GUEST. (closes: #457562)
+ * [amd64, i386] Enable CPU_IDLE for software-controlled idle pm.
+ * [amd64, i386] Enable IT8712F_WDT, FB_EFI.
+ * Add and enable at76.patch wireless driver for Atmel USB cards.
+ * Add and enable ath5k.patch wireless driver for Atheros 5xxx cards.
+ * Unify VLAN_8021Q setting, needed also on r5k-cobalt.
+ * Double max SERIAL_8250_NR_UARTS to 32. (closes: #440807)
+ * topconfig: Enable AUDITSYSCALL for better SELinux support.
+
+ [ Bastian Blank ]
+ * [amd64, i386]: Set kernel architecture to x86.
+ * [i386]: Remove linux-libc-dev arch override.
+
+ [ Martin Michlmayr ]
+ * [mipsel/r5k-cobalt] Enable the new LEDs driver for Cobalt RaQ.
+ * [arm/iop32x] Re-enable USB_NET and PPP, thanks Daniel Hess (closes:
+ #456416).
+ * [arm/iop32x] Enable BSD_PROCESS_ACCT and POSIX_MQUEUE (closes: #455892).
+ * [mips] Disable AdvanSys SCSI since it doesn't compile.
+ * [arm/ixp4xx] Enable IP_ADVANCED_ROUTER, requested by Oliver Urbann.
+ * [arm/iop32x] Enable IP_ADVANCED_ROUTER.
+
+ [ dann frazier ]
+ * [ia64]: Enable BLK_CPQ_DA
+
+ [ Frederik Schüler ]
+ * Add GFS2 locking symbols export patch.
+
+ [ Aurelien Jarno ]
+ * [mips/mipsel] Remove QEMU flavour, as the Malta platform is now correctly
+ emulated in QEMU.
+
+ [ Christian T. Steigies ]
+ * [m68k]: Update patches from linux-m68k CVS
+ * [m68k]: Enable building for bvme6000, mvme147, and mvme16x again
+
+ -- Bastian Blank <waldi@debian.org> Fri, 18 Jan 2008 12:23:26 +0100
+
+linux-2.6 (2.6.23-2) unstable; urgency=low
+
+ [ dann frazier ]
+ * [ia64]: Enable BLK_CPQ_DA
+
+ [ Gordon Farquharson ]
+ * [arm/iop32x] Use the new i2c framework to load rtc-rs5c372 for the
+ GLAN Tank.
+
+ [ Frederik Schüler ]
+ * Export gfs2 locking symbols required to build gfs1 module.
+
+ [ maximilian attems ]
+ * [ppc] Reenable PMAC_BACKLIGHT.
+ * [sparc] Add davem get_cpu() SunFire boot patch. (closes: #440720)
+ * Add stable release 2.6.23.10:
+ - IPV4: Remove bogus ifdef mess in arp_process
+ - KVM: x86 emulator: Use emulator_write_emulated and not emulator_write_std
+ - KVM: SVM: Fix FPU leak while emulating clts
+ - revert "dpt_i2o: convert to SCSI hotplug model"
+ - KVM: x86 emulator: fix access registers for instructions with ModR/M
+ byte and Mod = 3
+ - KVM: x86 emulator: invd instruction
+ - KVM: SVM: Intercept the 'invd' and 'wbinvd' instructions
+ - KVM: Skip pio instruction when it is emulated, not executed
+ - KVM: VMX: Force vm86 mode if setting flags during real mode
+ - forcedeth: new mcp79 pci ids
+ - forcedeth boot delay fix
+ - PFKEY: Sending an SADB_GET responds with an SADB_GET
+ - rd: fix data corruption on memory pressure.
+ - create /sys/.../power when CONFIG_PM is set
+ - USB: fix up EHCI startup synchronization
+ - RXRPC: Add missing select on CRYPTO
+ - KVM: VMX: Reset mmu context when entering real mode
+ - NET: random : secure_tcp_sequence_number should not assume
+ CONFIG_KTIME_SCALAR
+ - NET: Corrects a bug in ip_rt_acct_read()
+ - NETFILTER: Fix NULL pointer dereference in nf_nat_move_storage()
+ - netfilter: Fix kernel panic with REDIRECT target.
+ - IPV6: Restore IPv6 when MTU is big enough
+ - UNIX: EOF on non-blocking SOCK_SEQPACKET
+ - x86 setup: add a near jump to serialize %cr0 on 386/486
+ - Fix synchronize_irq races with IRQ handler
+ - CRYPTO api: Fix potential race in crypto_remove_spawn
+ - TCP: Fix TCP header misalignment
+ - tmpfs: restore missing clear_highpage (CVE-2007-6417)
+ - TCP: MTUprobe: fix potential sk_send_head corruption
+ - NETFILTER: fix forgotten module release in xt_CONNMARK and xt_CONNSECMARK
+ - fb_ddc: fix DDC lines quirk
+ - VLAN: Fix nested VLAN transmit bug
+ - I4L: fix isdn_ioctl memory overrun vulnerability (CVE-2007-6151)
+ - isdn: avoid copying overly-long strings
+ - nf_nat: fix memset error
+ - esp_scsi: fix reset cleanup spinlock recursion
+ - libertas: properly account for queue commands
+ - KVM: Fix hang on uniprocessor
+ - USB: make the microtek driver and HAL cooperate
+ - TEXTSEARCH: Do not allow zero length patterns in the textsearch
+ infrastructure
+ - XFRM: Fix leak of expired xfrm_states
+ - NETFILTER: xt_TCPMSS: remove network triggerable WARN_ON
+ - BRIDGE: Lost call to br_fdb_fini() in br_init() error path
+ - DECNET: dn_nl_deladdr() almost always returns no error
+ - BRIDGE: Properly dereference the br_should_route_hook
+ - PKT_SCHED: Check subqueue status before calling hard_start_xmit
+ - Freezer: Fix APM emulation breakage
+ - XFS: Make xfsbufd threads freezable
+ - TCP: Problem bug with sysctl_tcp_congestion_control function
+ - wait_task_stopped(): pass correct exit_code to wait_noreap_copyout()
+ - KVM: x86 emulator: implement 'movnti mem, reg'
+ - TCP: illinois: Incorrect beta usage
+ - futex: fix for futex_wait signal stack corruption
+ - libata: kill spurious NCQ completion detection
+ - hrtimers: avoid overflow for large relative timeouts (CVE-2007-5966)
+ - Input: ALPS - add support for model found in Dell Vostro 1400
+ (closes: #448818)
+ - PNP: increase the maximum number of resources
+ - sched: some proc entries are missed in sched_domain sys_ctl debug code
+ - ATM: [he] initialize lock and tasklet earlier
+ * Add stable release 2.6.23.11:
+ - BRIDGE: Section fix.
+ - Revert "Freezer: Fix APM emulation breakage"
+ * Backport fix for CVE-2007-5938
+ - iwlwifi: fix possible NULL dereference in iwl_set_rate()
+ * Add stable release 2.6.23.12:
+ - Revert "PNP: increase the maximum number of resources"
+ * VM/Security: add security hook to do_brk (CVE-2007-6434)
+ * security: protect from stack expantion into low vm addresses
+ * [hppa]: Disable OCFS2, due build trouble.
+
+ [ Aurelien Jarno ]
+ * [arm/versatile] Disable ACENIC and MYRI10GE as they are useless on this
+ platform.
+ * Add em28xx-dv100.patch to add support for Pinnacle Dazzle DVC 100.
+
+ [ Bastian Blank ]
+ * Fix abi change in 2.6.23.10.
+
+ -- maximilian attems <maks@debian.org> Fri, 21 Dec 2007 11:47:55 +0100
+
+linux-kbuild-2.6 (2.6.23-1) unstable; urgency=low
+
+ * New upstream version.
+ * modpost: Support -s.
+
+ -- Bastian Blank <waldi@debian.org> Wed, 05 Dec 2007 08:23:28 +0100
+
+linux-2.6 (2.6.23-1) unstable; urgency=low
+
+ * New upstream release (closes: #447682).
+ - r8169: fix confusion between hardware and IP header alignment
+ (closes: #452069).
+
+ [ maximilian attems ]
+ * [ppc] Enable for powerpc config the ams (Apple Motion Sensor).
+ (closes: #426210)
+ * Add to linux-doc the missing toplevel text files.
+ (closes: #360876, #438697)
+ * Set CONFIG_BLK_DEV_IO_TRACE for blktrace(8) support. (closes: #418442)
+ * ipw2200: Enable IPW2200_RADIOTAP and IPW2200_PROMISCUOUS for optional
+ rtap interface. (closes: #432555)
+ * Enable in topconfig NF_CT_PROTO_UDPLITE, NETFILTER_XT_TARGET_TRACE,
+ NETFILTER_XT_MATCH_CONNLIMIT, NETFILTER_XT_MATCH_U32, SENSORS_ABITUGURU3,
+ SENSORS_LM93, SENSORS_DME1737, SENSORS_THMC50, DVB_USB_AF9005,
+ DVB_USB_AF9005_REMOTE, CRC7, I2C_TAOS_EVM, DS1682, SENSORS_TSL2550,
+ SPI_LM70_LLP, SPI_TLE62X0, W1_SLAVE_DS2760, TUNER_TEA5761, NET_9P,
+ DM_MULTIPATH_RDAC, NET_SCH_RR, EEPROM_93CX6, PPPOL2TP, CRYPTO_HW, UIO,
+ UIO_CIF, SND_CS5530, RTL8187, PC300TOO, TCG_TIS, SCSI_SAS_ATA,
+ PATA_MARVELL.
+ * [i386] Enable lguest.
+ * [amd64, i386] Enable VIDEO_OUTPUT_CONTROL, NETDEVICES_MULTIQUEUE.
+ * linux-image bugscript add cmdline.
+ * [amd64, i386, ia64]: Enable DMIID, ACPI_PROC_EVENT.
+ * Enable TCG_TPM various userspace accesses it. (closes: #439020)
+ * Add and enable IWLWIFI.
+ * Add git-ieee1394.patch for latest firewire fixes.
+ * [ipv6] Enable IPV6_MULTIPLE_TABLES, IPV6_SUBTREES. (closes: #441226)
+ * Add and enable E1000E.
+ * Add stable release 2.6.23.1:
+ - libata: sata_mv: more S/G fixes
+
+ [ Martin Michlmayr ]
+ * [mips] Add a bcm1480 PCI build fix.
+ * Update Riku Voipio's Fintek F75375/SP driver to the latest version.
+ * [arm/iop32x] Set the fan on Thecus N2100 to full speed (Riku Voipio).
+ * [arm/iop32x] Remove the IPv6 and filesystem info from the config file
+ so we will get the values from the main config file. This should
+ enable NFSv4 and ip6tables support requested by Wouter Verhelst.
+ * [arm/iop32x] Remove even more options to receive the default options.
+ * [arm/ixp4xx] Remove a lot of options to receive the default options.
+ * [mips/r4k-ip22] Remove a lot of options to receive the default options.
+ This will enable ISCSI requested by Martin Zobel-Helas.
+ * [mips/r5k-ip32] Remove a lot of options to receive the default options.
+ This will enable PCI Ethernet devices requested by Giuseppe Sacco.
+ * [mipsel/r5k-cobalt] Remove a lot of options to receive the default
+ options.
+ * [mipsel/r5k-cobalt] Enable the modern Cobalt LEDs driver.
+ * [arm/iop32x] Enable Intel IOP ADMA support.
+ * [arm] Mark BCM43XX as broken on ARM.
+ * [mips/r4k-ip22] Disable EARLY PRINTK because it breaks serial console.
+ * [mips] Add some IP22 fixes from Thomas Bogendoerfer:
+ - Fix broken EISA interrupt setup by switching to generic i8259
+ - Fix broken eeprom access by using __raw_readl/__raw_writel
+
+ [ Bastian Blank ]
+ * Add unpriviledged only Xen support.
+ * [i386] Drop k7 images.
+ * Drop maybe IETF document. (closes: #423040)
+ * Drop drivers because of binary only firmwares:
+ - DABUSB driver
+ - COPS LocalTalk PC support
+ - Digi Intl. RightSwitch SE-X support
+ - 3Com 3C359 Token Link Velocity XL adapter support
+ - SMC ISA/MCA adapter support
+ - EMI 6|2m USB Audio interface support
+ - EMI 2|6 USB Audio interface support
+ - Computone IntelliPort Plus serial support
+ * Remove binary only firmwares for:
+ - Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit support
+ - Broadcom Tigon3 support
+ - USB Keyspan USA-xxx Serial Driver
+ - Korg 1212 IO
+ - ESS Allegro/Maestro3
+ - Yamaha YMF724/740/744/754
+ - Technotrend/Hauppauge Nova-USB devices
+ - YAM driver for AX.25
+ - MyriCOM Gigabit Ethernet support
+ - PTI Qlogic, ISP Driver
+ - Cirrus Logic (Sound Fusion) CS4280/CS461x/CS462x/CS463x
+ - Madge Ambassador (Collage PCI 155 Server)
+ - PCA-200E support
+ - SBA-200E support
+ - Broadcom NetXtremeII support
+ * Disable now broken drivers:
+ - Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit support
+ - USB Keyspan USA-xxx Serial Driver
+ - Technotrend/Hauppauge Nova-USB devices
+ - YAM driver for AX.25
+ - MyriCOM Gigabit Ethernet support
+ - PTI Qlogic, ISP Driver
+ - Cirrus Logic (Sound Fusion) CS4280/CS461x/CS462x/CS463x
+ - Madge Ambassador (Collage PCI 155 Server)
+ - PCA-200E support
+ - SBA-200E support
+ - Broadcom NetXtremeII support
+ * Add -common to common header package names.
+ * Drop provides from common header packages.
+ * Update plain image type.
+ * Put only a config dump into linux-support.
+
+ [ Aurelien Jarno ]
+ * [mips, mipsel] Add a 64-bit image (5kc-malta) for the MIPS Malta board.
+ (closes: #435677)
+ [sparc] Enable r8169 module on sparc64 and sparc64-smp flavours (closes:
+ #431977)
+
+ [ Frederik Schüler ]
+ * Move all PATA options into the global config file, exept PATA_ARTOP
+ (arm/ixp4xx) and PATA_MPC52xx (powerpc).
+ * Move new global options into the global config file
+ * Clean up new amd64 options
+
+ [ dann frazier ]
+ * [ia64] Re-enable various unintentionally disabled config options
+ * Enable hugetlbfs on i386, amd64, sparc64 and powerpc64. Closes: #450939
+
+ [ Bastian Blank ]
+ * Add stable release 2.6.23.2:
+ - BLOCK: Fix bad sharing of tag busy list on queues with shared tag maps
+ - fix tmpfs BUG and AOP_WRITEPAGE_ACTIVATE
+ - Fix compat futex hangs. (closes: #433187)
+ - sched: keep utime/stime monotonic
+ - fix the softlockup watchdog to actually work
+ - splice: fix double kunmap() in vmsplice copy path
+ - writeback: don't propagate AOP_WRITEPAGE_ACTIVATE
+ - SLUB: Fix memory leak by not reusing cpu_slab
+ - HOWTO: update ja_JP/HOWTO with latest changes
+ - fix param_sysfs_builtin name length check
+ - param_sysfs_builtin memchr argument fix
+ - Remove broken ptrace() special-case code from file mapping
+ - locks: fix possible infinite loop in posix deadlock detection
+ - lockdep: fix mismatched lockdep_depth/curr_chain_hash
+ * Add stable release 2.6.23.3:
+ - revert "x86_64: allocate sparsemem memmap above 4G"
+ - x86: fix TSC clock source calibration error
+ - x86 setup: sizeof() is unsigned, unbreak comparisons
+ - x86 setup: handle boot loaders which set up the stack incorrectly
+ - x86: fix global_flush_tlb() bug
+ - xfs: eagerly remove vmap mappings to avoid upsetting Xen
+ - xen: fix incorrect vcpu_register_vcpu_info hypercall argument
+ - xen: deal with stale cr3 values when unpinning pagetables
+ - xen: add batch completion callbacks
+ - UML - kill subprocesses on exit
+ - UML - stop using libc asm/user.h
+ - UML - Fix kernel vs libc symbols clash
+ - UML - Stop using libc asm/page.h
+ - POWERPC: Make sure to of_node_get() the result of pci_device_to_OF_node()
+ - POWERPC: Fix handling of stfiwx math emulation
+ - MIPS: R1: Fix hazard barriers to make kernels work on R2 also.
+ - MIPS: MT: Fix bug in multithreaded kernels.
+ - Fix sparc64 MAP_FIXED handling of framebuffer mmaps
+ - Fix sparc64 niagara optimized RAID xor asm
+ * Add stable release 2.6.23.4:
+ - mac80211: make ieee802_11_parse_elems return void
+ - mac80211: only honor IW_SCAN_THIS_ESSID in STA, IBSS, and AP modes
+ - mac80211: honor IW_SCAN_THIS_ESSID in siwscan ioctl
+ - mac80211: store SSID in sta_bss_list
+ - mac80211: store channel info in sta_bss_list
+ - mac80211: reorder association debug output
+ - ieee80211: fix TKIP QoS bug
+ - NETFILTER: nf_conntrack_tcp: fix connection reopening
+ - Fix netlink timeouts.
+ - Fix crypto_alloc_comp() error checking.
+ - Fix SET_VLAN_INGRESS_PRIORITY_CMD error return.
+ - Fix VLAN address syncing.
+ - Fix endianness bug in U32 classifier.
+ - Fix TEQL oops.
+ - Fix error returns in sys_socketpair()
+ - softmac: fix wext MLME request reason code endianness
+ - Fix kernel_accept() return handling.
+ - TCP: Fix size calculation in sk_stream_alloc_pskb
+ - Fix SKB_WITH_OVERHEAD calculations.
+ - Fix 9P protocol build
+ - Fix advertised packet scheduler timer resolution
+ - Add get_unaligned to ieee80211_get_radiotap_len
+ - mac80211: Improve sanity checks on injected packets
+ - mac80211: filter locally-originated multicast frames
+ * Add stable release 2.6.23.5:
+ - zd1211rw, fix oops when ejecting install media
+ - rtl8187: Fix more frag bit checking, rts duration calc
+ - ipw2100: send WEXT scan events
+ - zd1201: avoid null ptr access of skb->dev
+ - sky2: fix power settings on Yukon XL
+ - sky2: ethtool register reserved area blackout
+ - sky2: status ring race fix
+ - skge: XM PHY handling fixes
+ - Fix L2TP oopses.
+ - TG3: Fix performance regression on 5705.
+ - forcedeth: add MCP77 device IDs
+ - forcedeth msi bugfix
+ - ehea: 64K page kernel support fix
+ - libertas: fix endianness breakage
+ - libertas: more endianness breakage
+ * Add stable release 2.6.23.6:
+ - ACPI: suspend: Wrong order of GPE restore.
+ - ACPI: sleep: Fix GPE suspend cleanup
+ - libata: backport ATA_FLAG_NO_SRST and ATA_FLAG_ASSUME_ATA, part 2
+ - libata: backport ATA_FLAG_NO_SRST and ATA_FLAG_ASSUME_ATA
+ - libata: add HTS542525K9SA00 to NCQ blacklist
+ - radeon: set the address to access the GART table on the CPU side correctly
+ - Char: moxa, fix and optimise empty timer
+ - Char: rocket, fix dynamic_dev tty
+ - hptiop: avoid buffer overflow when returning sense data
+ - ide: Fix cs5535 driver accessing beyond array boundary
+ - ide: Fix siimage driver accessing beyond array boundary
+ - ide: Add ide_get_paired_drive() helper
+ - ide: fix serverworks.c UDMA regression
+ - i4l: fix random freezes with AVM B1 drivers
+ - i4l: Fix random hard freeze with AVM c4 card
+ - ALSA: hda-codec - Add array terminator for dmic in STAC codec
+ - USB: usbserial - fix potential deadlock between write() and IRQ
+ - USB: add URB_FREE_BUFFER to permissible flags
+ - USB: mutual exclusion for EHCI init and port resets
+ - usb-gadget-ether: prevent oops caused by error interrupt race
+ - USB: remove USB_QUIRK_NO_AUTOSUSPEND
+ - MSI: Use correct data offset for 32-bit MSI in read_msi_msg()
+ - md: raid5: fix clearing of biofill operations
+ - md: fix an unsigned compare to allow creation of bitmaps with v1.0 metadata
+ - dm: fix thaw_bdev
+ - dm delay: fix status
+ - libata: sync NCQ blacklist with upstream
+ - ALSA: hdsp - Fix zero division
+ - ALSA: emu10k1 - Fix memory corruption
+ - ALSA: Fix build error without CONFIG_HAS_DMA
+ - ALSA: fix selector unit bug affecting some USB speakerphones
+ - ALSA: hda-codec - Avoid zero NID in line_out_pins[] of STAC codecs
+ - IB/mthca: Use mmiowb() to avoid firmware commands getting jumbled up
+ - IB/uverbs: Fix checking of userspace object ownership
+ - hwmon/lm87: Disable VID when it should be
+ - hwmon/lm87: Fix a division by zero
+ - hwmon/w83627hf: Don't assume bank 0
+ - hwmon/w83627hf: Fix setting fan min right after driver load
+ - i915: fix vbl swap allocation size.
+ - POWERPC: Fix platinumfb framebuffer
+ * Add stable release 2.6.23.7:
+ - NFS: Fix a writeback race...
+ - ocfs2: fix write() performance regression
+ - minixfs: limit minixfs printks on corrupted dir i_size (CVE-2006-6058)
+ * Add stable release 2.6.23.8:
+ - wait_task_stopped: Check p->exit_state instead of TASK_TRACED (CVE-2007-5500)
+ - TCP: Make sure write_queue_from does not begin with NULL ptr (CVE-2007-5501)
+ * Add stable release 2.6.23.9:
+ - ipw2200: batch non-user-requested scan result notifications
+ - USB: Nikon D40X unusual_devs entry
+ - USB: unusual_devs modification for Nikon D200
+ - softlockup: use cpu_clock() instead of sched_clock()
+ - softlockup watchdog fixes and cleanups
+ - x86: fix freeze in x86_64 RTC update code in time_64.c
+ - ntp: fix typo that makes sync_cmos_clock erratic
+ - x86: return correct error code from child_rip in x86_64 entry.S
+ - x86: NX bit handling in change_page_attr()
+ - x86: mark read_crX() asm code as volatile
+ - x86: fix off-by-one in find_next_zero_string
+ - i386: avoid temporarily inconsistent pte-s
+ - libcrc32c: keep intermediate crc state in cpu order
+ - geode: Fix not inplace encryption
+ - Fix divide-by-zero in the 2.6.23 scheduler code
+ - ACPI: VIDEO: Adjust current level to closest available one.
+ - libata: sata_sis: use correct S/G table size
+ - sata_sis: fix SCR read breakage
+ - reiserfs: don't drop PG_dirty when releasing sub-page-sized dirty file
+ - x86: disable preemption in delay_tsc()
+ - dmaengine: fix broken device refcounting
+ - nfsd4: recheck for secure ports in fh_verify
+ - knfsd: fix spurious EINVAL errors on first access of new filesystem
+ - raid5: fix unending write sequence
+ - oProfile: oops when profile_pc() returns ~0LU
+ - drivers/video/ps3fb: fix memset size error
+ - i2c/eeprom: Hide Sony Vaio serial numbers
+ - i2c/eeprom: Recognize VGN as a valid Sony Vaio name prefix
+ - i2c-pasemi: Fix NACK detection
+
+ -- maximilian attems <maks@debian.org> Fri, 30 Nov 2007 11:40:09 +0100
+
+linux-2.6 (2.6.22-6) unstable; urgency=low
+
+ [ Martin Michlmayr ]
+ * [mips] Add IP22 (SGI Indy) patches from Thomas Bogendoerfer:
+ - Disable EARLY PRINTK because it breaks serial.
+ - fix wrong argument order.
+ - wrong check for second HPC. Closes: #448488
+
+ [ maximilian attems ]
+ * Add stable release 2.6.22.11 - minus ipv6 abi breaker:
+ - libertas: fix endianness breakage
+ - libertas: more endianness breakage
+ - Fix ROSE module unload oops.
+ - Add get_unaligned to ieee80211_get_radiotap_len
+ - Fix ipv6 redirect processing, leads to TAHI failures.
+ - i915: fix vbl swap allocation size.
+ - Fix ESP host instance numbering.
+ - Fix TCP MD5 on big-endian.
+ - Fix zero length socket write() semantics.
+ - Fix sys_ipc() SEMCTL on sparc64.
+ - Fix TCP initial sequence number selection.
+ - lockdep: fix mismatched lockdep_depth/curr_chain_hash
+ - V4L: ivtv: fix udma yuv bug
+ - Fix TCP's ->fastpath_cnt_hit handling.
+ - hwmon/lm87: Fix a division by zero
+ - hwmon/lm87: Disable VID when it should be
+ - hwmon/w83627hf: Fix setting fan min right after driver load
+ - hwmon/w83627hf: Don't assume bank 0
+ - netdrvr: natsemi: Fix device removal bug
+ - Fix ieee80211 handling of bogus hdrlength field
+ - mac80211: filter locally-originated multicast frames
+ - POWERPC: Fix handling of stfiwx math emulation
+ - dm9601: Fix receive MTU
+ - firewire: fix unloading of fw-ohci while devices are attached
+ - Fix cls_u32 error return handling.
+ - ACPI: disable lower idle C-states across suspend/resume
+ * Add stable release 2.6.22.12-rc1:
+ - genirq: cleanup mismerge artifact
+ - genirq: suppress resend of level interrupts
+ - genirq: mark io_apic level interrupts to avoid resend
+ - IB/uverbs: Fix checking of userspace object ownership
+ - minixfs: limit minixfs printks on corrupted dir i_size (CVE-2006-6058)
+ - param_sysfs_builtin memchr argument fix
+ - x86: fix global_flush_tlb() bug
+ - dm snapshot: fix invalidation deadlock
+ - Revert "x86_64: allocate sparsemem memmap above 4G"
+
+ [ Bastian Blank ]
+ * Update vserver patch to 2.2.0.5.
+ - Ignore symbols from never to be merged patch.
+
+ -- maximilian attems <maks@debian.org> Sun, 4 Nov 2007 17:35:51 +0100
+
+linux-2.6 (2.6.22-5) unstable; urgency=low
+
+ [ maximilian attems ]
+ * Add stable release 2.6.22.6:
+ - USB: allow retry on descriptor fetch errors
+ - PCI: lets kill the 'PCI hidden behind bridge' message
+ - Netfilter: Missing Kbuild entry for netfilter
+ - Fix soft-fp underflow handling.
+ - SPARC64: Fix sparc64 task stack traces.
+ - TCP: Do not autobind ports for TCP sockets
+ - DCCP: Fix DCCP GFP_KERNEL allocation in atomic context
+ - NET: Share correct feature code between bridging and bonding
+ - SNAP: Fix SNAP protocol header accesses.
+ - NET: Fix missing rcu unlock in __sock_create()
+ - IPv6: Invalid semicolon after if statement
+ - TCP: Fix TCP rate-halving on bidirectional flows.
+ - TCP: Fix TCP handling of SACK in bidirectional flows.
+ - uml: fix previous request size limit fix
+ - usb: add PRODUCT, TYPE to usb-interface events
+ - PPP: Fix PPP buffer sizing.
+ - ocfs2: Fix bad source start calculation during kernel writes
+ - signalfd: fix interaction with posix-timers
+ - signalfd: make it group-wide, fix posix-timers scheduling
+ - USB: fix DoS in pwc USB video driver
+ - sky2: don't clear phy power bits
+ - PCI: disable MSI on RS690
+ - PCI: disable MSI on RD580
+ - PCI: disable MSI on RX790
+ - IPV6: Fix kernel panic while send SCTP data with IP fragments
+ - i386: fix lazy mode vmalloc synchronization for paravirt
+ * Set abi to 3.
+ * Add stable release 2.6.22.7: (CVE-2007-4573)
+ - x86_64: Zero extend all registers after ptrace in 32bit entry path.
+ * Add stable release 2.6.22.8: (CVE-2007-4571)
+ - Convert snd-page-alloc proc file to use seq_file
+ * Add stable release 2.6.22.9:
+ - 3w-9xxx: Fix dma mask setting
+ - Fix pktgen src_mac handling.
+ - nfs: fix oops re sysctls and V4 support
+ - DVB: get_dvb_firmware: update script for new location of tda10046 firmware
+ - afs: mntput called before dput
+ - disable sys_timerfd()
+ - Fix "Fix DAC960 driver on machines which don't support 64-bit DMA"
+ - futex_compat: fix list traversal bugs
+ - MTD: Initialise s_flags in get_sb_mtd_aux()
+ - Fix sparc64 v100 platform booting.
+ - Fix IPV6 DAD handling
+ - ext34: ensure do_split leaves enough free space in both blocks
+ - dir_index: error out instead of BUG on corrupt dx dirs
+ - Fix oops in vlan and bridging code
+ - V4L: ivtv: fix VIDIOC_S_FBUF: new OSD values were never set
+ - crypto: blkcipher_get_spot() handling of buffer at end of page
+ - Fix datagram recvmsg NULL iov handling regression.
+ - Handle snd_una in tcp_cwnd_down()
+ - Fix TCP DSACK cwnd handling
+ - JFFS2: fix write deadlock regression
+ - hwmon: End of I/O region off-by-one
+ - Fix debug regression in video/pwc
+ - splice: fix direct splice error handling
+ - Fix race with shared tag queue maps
+ - Fix ipv6 source address handling.
+ - POWERPC: Flush registers to proper task context
+ - bcm43xx: Fix cancellation of work queue crashes
+ - Fix DAC960 driver on machines which don't support 64-bit DMA
+ - DVB: get_dvb_firmware: update script for new location of sp8870 firmware
+ - USB: fix linked list insertion bugfix for usb core
+ - Correctly close old nfsd/lockd sockets.
+ - Fix IPSEC AH4 options handling
+ - setpgid(child) fails if the child was forked by sub-thread
+ - sigqueue_free: fix the race with collect_signal()
+ - Fix decnet device address listing.
+ - Fix inet_diag OOPS.
+ - Leases can be hidden by flocks
+ - kconfig: oldconfig shall not set symbols if it does not need to
+ - MTD: Makefile fix for mtdsuper
+ - firewire: fw-ohci: ignore failure of pci_set_power_state
+ (fix suspend regression)
+ - ieee1394: ohci1394: fix initialization if built non-modular
+ - Fix device address listing for ipv4.
+ - Fix tc_ematch kbuild
+ - V4L: cx88: Avoid a NULL pointer dereference during mpeg_open()
+ - DVB: b2c2-flexcop: fix Airstar HD5000 tuning regression
+ - fix realtek phy id in forcedeth
+ - rpc: fix garbage in printk in svc_tcp_accept()
+ - Fix IPV6 append OOPS.
+ - Fix ipv6 double-sock-release with MSG_CONFIRM
+ - ACPI: Validate XSDT, use RSDT if XSDT fails
+ * Update vserver patch to 2.2.0.4.
+ * Add stable release 2.6.22.10:
+ - i386: Use global flag to disable broken local apic timer on AMD CPUs.
+ - Fix timer_stats printout of events/sec
+ - libata: update drive blacklists
+ - i2c-algo-bit: Read block data bugfix
+ - scsi_transport_spi: fix domain validation failure from incorrect width
+ setting
+ - Fix SMP poweroff hangs
+ - Fix ppp_mppe kernel stack usage.
+ - sky2: reduce impact of watchdog timer
+ - sky2: fix VLAN receive processing
+ - sky2: fix transmit state on resume
+ - SELinux: clear parent death signal on SID transitions
+ - NLM: Fix a circular lock dependency in lockd
+ - NLM: Fix a memory leak in nlmsvc_testlock
+
+ [ Martin Michlmayr ]
+ * [mips] Add a fix so qemu NE2000 will work again.
+ * [mipsel/r5k-cobalt] Enable MTD.
+ * [mips] Backport "Fix CONFIG_BUILD_ELF64 kernels with symbols in
+ CKSEG0" to fix crash on boot on IP32 (SGI O2). Closes: #444104.
+
+ [ Steve Langasek ]
+ * Set CONFIG_MATHEMU=y on alpha, which is required for proper fp math on
+ at least ev4-ev56 systems. Closes: #411813.
+ * linux-image packages need to depend on a newer version of coreutils,
+ because of the use of readlink -q -m inherited from kernel-package.
+ Closes: #413311.
+
+ [ Bastian Blank ]
+ * Fix tainted check in bug scripts.
+
+ [ dann frazier ]
+ * [ia64] Re-enable various unintentionally disabled config options
+
+ -- Maximilian Attems <maks@debian.org> Thu, 11 Oct 2007 13:31:38 +0000
+
+linux-2.6 (2.6.22-4) unstable; urgency=low
+
+ [ dann frazier ]
+ * [hppa] Use generic compat_sys_getdents (closes: #431773)
+
+ [ Martin Michlmayr ]
+ * [powerpc] Fix PS/2 keyboard detection on Pegasos (closes: #435378).
+
+ [ Emanuele Rocca ]
+ * [sparc] Add patch to fix PCI config space accesses on sun4u.
+ * [sparc] Disable CONFIG_SCSI_SCAN_ASYNC.
+
+ [ maximilian attems ]
+ * Add stable release 2.6.22.2:
+ - usb-serial: Fix edgeport regression on non-EPiC devices
+ - Missing header include in ipt_iprange.h
+ - drivers/video/macmodes.c:mac_find_mode() mustn't be __devinit
+ - Fix ipv6 tunnel endianness bug.
+ - aacraid: fix security hole
+ - USB: cdc-acm: fix sysfs attribute registration bug
+ - USB: fix warning caused by autosuspend counter going negative
+ - Fix sparc32 memset()
+ - Fix leak on /proc/lockdep_stats
+ - Fix leaks on /proc/{*/sched, sched_debug, timer_list, timer_stats}
+ - futex: pass nr_wake2 to futex_wake_op
+ - md: handle writes to broken raid10 arrays gracefully
+ - forcedeth bug fix: cicada phy
+ - forcedeth bug fix: vitesse phy
+ - forcedeth bug fix: realtek phy
+ - ACPI: dock: fix opps after dock driver fails to initialize
+ - pcmcia: give socket time to power down
+ - drm/i915: Fix i965 secured batchbuffer usage (CVE-2007-3851)
+ - Fix console write locking in sparc drivers.
+ - Sparc64 bootup assembler bug
+ - IPV6: /proc/net/anycast6 unbalanced inet6_dev refcnt
+ - make timerfd return a u64 and fix the __put_user
+ - Fix error queue socket lookup in ipv6
+ - Input: lifebook - fix an oops on Panasonic CF-18
+ - readahead: MIN_RA_PAGES/MAX_RA_PAGES macros
+ - V4L: Add check for valid control ID to v4l2_ctrl_next
+ - V4L: ivtv: fix broken VBI output support
+ - V4L: ivtv: fix DMA timeout when capturing VBI + another stream
+ - V4L: ivtv: Add locking to ensure stream setup is atomic
+ - V4L: wm8775/wm8739: Fix memory leak when unloading module
+ - do not limit locked memory when RLIMIT_MEMLOCK is RLIM_INFINITY
+ - Include serial_reg.h with userspace headers (closes: #433755)
+ - TCP FRTO retransmit bug fix
+ - Fix rfkill IRQ flags.
+ - nfsd: fix possible read-ahead cache and export table corruption
+ - nfsd: fix possible oops on re-insertion of rpcsec_gss modules
+ - jbd commit: fix transaction dropping
+ - jbd2 commit: fix transaction dropping
+ - softmac: Fix ESSID problem
+ - uml: limit request size on COWed devices
+ - UML: exports for hostfs
+ - splice: fix double page unlock
+ - cfq-iosched: fix async queue behaviour
+ - cr_backlight_probe() allocates too little storage for struct cr_panel
+ - sx: switch subven and subid values
+ - hugetlb: fix race in alloc_fresh_huge_page()
+ - KVM: SVM: Reliably detect if SVM was disabled by BIOS
+ - dm io: fix another panic on large request
+ - md: raid10: fix use-after-free of bio
+ - fs: 9p/conv.c error path fix
+ - Fix sparc32 udelay() rounding errors.
+ - sony-laptop: fix bug in event handling
+ - eCryptfs: ecryptfs_setattr() bugfix
+ - Hangup TTY before releasing rfcomm_dev
+ - dm io: fix panic on large request
+ - dm raid1: fix status
+ - dm snapshot: permit invalid activation
+ - "ext4_ext_put_in_cache" uses __u32 to receive physical block number
+ - destroy_workqueue() can livelock
+ - USB: fix for ftdi_sio quirk handling
+ - Fix TC deadlock.
+ - Fix IPCOMP crashes.
+ - gen estimator timer unload race
+ - Netfilter: Fix logging regression
+ - Fix user struct leakage with locked IPC shem segment
+ - Fix reported task file values in sense data
+ - gen estimator deadlock fix
+ - Netpoll leak
+ - dm: disable barriers
+ - firewire: fw-sbp2: set correct maximum payload (fixes CardBus adapters)
+ - fw-ohci: fix "scheduling while atomic"
+ - firewire: fix memory leak of fw_request instances
+ - ieee1394: revert "sbp2: enforce 32bit DMA mapping"
+ - libata: add FUJITSU MHV2080BH to NCQ blacklist
+ - i386: HPET, check if the counter works
+ - CPU online file permission
+ - acpi-cpufreq: Proper ReadModifyWrite of PERF_CTL MSR
+ - Keep rfcomm_dev on the list until it is freed
+ - SCTP scope_id handling fix
+ - Fix ipv6 link down handling.
+ - Fix TCP IPV6 MD5 bug.
+ - sysfs: release mutex when kmalloc() failed in sysfs_open_file().
+ - nf_conntrack: don't track locally generated special ICMP error
+ * Bump abi due to firewire, ivtv and xrfm changes.
+ * Add stable release 2.6.22.3:
+ - fix oops in __audit_signal_info()
+ - direct-io: fix error-path crashes
+ - powerpc: Fix size check for hugetlbfs
+ - stifb: detect cards in double buffer mode more reliably
+ - pata_atiixp: add SB700 PCI ID
+ - PPC: Revert "[POWERPC] Add 'mdio' to bus scan id list for platforms
+ with QE UEC"
+ - random: fix bound check ordering (CVE-2007-3105)
+ - softmac: Fix deadlock of wx_set_essid with assoc work
+ - PPC: Revert "[POWERPC] Don't complain if size-cells == 0 in prom_parse()"
+ - ata_piix: update map 10b for ich8m
+ - CPUFREQ: ondemand: fix tickless accounting and software coordination bug
+ - CPUFREQ: ondemand: add a check to avoid negative load calculation
+ * Add stable release 2.6.22.4:
+ - Reset current->pdeath_signal on SUID binary execution (CVE-2007-3848)
+ * Add stable release 2.6.22.5:
+ - x86_64: Check for .cfi_rel_offset in CFI probe
+ - x86_64: Change PMDS invocation to single macro
+ - i386: Handle P6s without performance counters in nmi watchdog
+ - revert "x86, serial: convert legacy COM ports to platform devices"
+ - ACPICA: Fixed possible corruption of global GPE list
+ - ACPICA: Clear reserved fields for incoming ACPI 1.0 FADTs
+ - i386: Fix double fault handler
+ - JFFS2 locking regression fix.
+ - r8169: avoid needless NAPI poll scheduling
+ - Linux 2.6.22.5
+ - AVR32: Fix atomic_add_unless() and atomic_sub_unless()
+ - i386: allow debuggers to access the vsyscall page with compat vDSO
+ - hwmon: (smsc47m1) restore missing name attribute
+ - hwmon: fix w83781d temp sensor type setting
+ - Hibernation: do not try to mark invalid PFNs as nosave
+ - sky2: restore workarounds for lost interrupts
+ - sky2: carrier management
+ - sky2: check for more work before leaving NAPI
+ - sky2: check drop truncated packets
+ - forcedeth: fix random hang in forcedeth driver when using netconsole
+ - libata: add ATI SB700 device IDs to AHCI driver
+
+ [ dann frazier ]
+ * [ia64] Restore config cleanup now that its safe to break the ABI
+
+ [ Bastian Blank ]
+ * Update vserver patch to 2.2.0.3.
+
+ -- Bastian Blank <waldi@debian.org> Thu, 30 Aug 2007 20:19:44 +0200
+
+linux-2.6 (2.6.22-3) unstable; urgency=low
+
+ [ dann frazier ]
+ * [ia64] Config cleanup in 2.6.22-2 broke the ABI; revert most of it
+ for now (everything but the efivars and sym53c8xx modules)
+
+ [ Martin Michlmayr ]
+ * [mipsel/r5k-cobalt] Fix a typo in the config file.
+ * [mipsel/4kc-malta] Update the config file, thanks Aurelien Jarno.
+ * [mipsel] Add patch from Yoichi Yuasa to fix IDE on Cobalt.
+
+ -- Bastian Blank <waldi@debian.org> Sun, 29 Jul 2007 13:47:38 +0200
+
+linux-2.6 (2.6.22-2) unstable; urgency=low
+
+ [ Steve Langasek ]
+ * [alpha] request_irq-retval.patch: capture the return value of all
+ request_irq() calls in sys_titan.c to suppress the warning (and
+ build failure with -Werror); failures still aren't being handled, but
+ there's nothing that needs to be done -- or nothing that can be done
+ -- if these requests fail anyway.
+
+ [ Christian T. Steigies ]
+ * Add module.lds to kernel headers (closes: #396220)
+ * Enable INPUT_UINPUT on mac
+ * Add 2.6.22 patches from linux-m68k CVS
+
+ [ maximilian attems ]
+ * Add stable release 2.6.22.1:
+ - nf_conntrack_h323: add checking of out-of-range on choices' index values
+ (CVE-2007-3642)
+
+ [ dann frazier ]
+ * [ia64] Re-enable various config options which were unintentionally
+ disabled somewhere between 2.6.21 and 2.6.22
+ * [ia64] Re-enable vserver flavour - this was somehow lost when 2.6.22
+ was merged from trunk to the sid branch
+
+ [ Bastian Blank ]
+ * Update vserver patch to 2.2.0.3-rc1.
+
+ -- Bastian Blank <waldi@debian.org> Mon, 23 Jul 2007 09:38:01 +0200
+
+linux-kbuild-2.6 (2.6.22-1) unstable; urgency=low
+
+ * New upstream version.
+ * Don't fail if no module is specified.
+
+ -- Bastian Blank <waldi@debian.org> Tue, 17 Jul 2007 23:14:23 +0200
+
+linux-2.6 (2.6.22-1) unstable; urgency=low
+
+ [ Bastian Blank ]
+ * Drop asfs options.
+ * Drop linux-libc-headers references.
+ * Update vserver patch to 2.2.0-rc5.
+
+ [ maximilian attems ]
+ * Fullfils policy 3.7.2.2.
+ * Add Sempron to the k7 image description (closes: #384737)
+ Thanks Robert Millan <rmh@aybabtu.com>.
+ * [powerpc] Enable CONFIG_ADB_PMU_LED.
+ * [hppa] Disable a bunch of topconfig enabled fb devices. Thanks Frank
+ Lichtenheld <djpig@debian.org> for build fix.
+
+ [ Christian T. Steigies ]
+ * Add module.lds to kernel headers
+ * Enable INPUT_UINPUT on mac
+ * Add 2.6.22 patches from linux-m68k CVS
+
+ [ dann frazier ]
+ * Enable vserver flavour for ia64 (closes: #423232)
+
+ -- Bastian Blank <waldi@debian.org> Sun, 15 Jul 2007 15:03:40 +0200
+
+linux-2.6 (2.6.22~rc5-1~experimental.1) experimental; urgency=low
+
+ [ Bastian Blank ]
+ * [powerpc]: Disable prep.
+ * [powerpc]: Disable apm emulation.
+ * Drop inactive members from Uploaders.
+
+ [ maximilian attems ]
+ * Cleanup configs of old unused variables.
+ * Enable TCP_CONG_YEAH, TCP_CONG_ILLINOIS, NF_CONNTRACK_SANE, DM_DELAY,
+ GIGASET_M101, SATA_INIC162X, VIDEO_IVTV, USB_ZR364XX, INFINIBAND_CXGB3,
+ MLX4_INFINIBAND, SPI_AT25, MFD_SM501, DVB_USB_M920X, DVB_USB_GL861,
+ DVB_USB_AU6610, DVB_USB_OPERA1, SENSORS_AD7418, SENSORS_ADM1029,
+ SENSORS_F75375S, SENSORS_CORETEMP, SENSORS_MAX6650, SENSORS_APPLESMC,
+ I2C_SIMTEC, I2C_TINY_USB, SC92031, LIBERTAS_USB, RFKILL, RFKILL_INPUT,
+ MTD_UBI, SND_USB_CAIAQ, SND_USB_CAIAQ_INPUT, USB_BERRY_CHARGE,
+ RTC_DRV_MAX6900, SUNRPC_BIND34, SND_PORTMAN2X4, FB_VT8623, FUSION_LAN,
+ DISPLAY_SUPPORT, FB_ARK, FB_SM501
+ and disable SCSI_ESP_CORE, SPI_SPIDEV, CRYPT_CRYPTD, SYSV68_PARTITION,
+ MOUSE_PS2_TOUCHKIT, INPUT_POLLDEV in topconfig.
+ * [amd64, i386]: Take care of the renaming acpi-ibm to thinkpad-acpi.
+ Enable KINGSUN_DONGLE, AF_RXRPC, RXKAD, MTD_NAND_PLATFORM, BLINK, PHANTOM,
+ BACKLIGHT_PROGEAR, FB_HECUBA, FB_LE80578, FB_CARILLO_RANCH.
+ Disable OSS_OBSOLETE.
+ * Enable WLAN_PRE80211 and WLAN_80211 on all archs with NET_RADIO enabled.
+ * Fix RTC_INTF_{DEV,SYSFS,PROC}=y where enabled modular.
+ * Enable new wirless stack mac80211 and improved wireless conf api.
+ * Enable new USB Touchscreen Driver on all configs with touchscreens.
+ * Enable the newly added crypto algorythm: fcrypt, pcbc and camellia.
+ * Unify CONFIG_TR to toplevel config, also enable new drivers 3C359
+ and SMCTR.
+ * Enable the moved USB tablets config options where wacom is enabled.
+ * [i386] Enable driver for Crystalfontz 128x64 2-color LCD.
+ * [amd64] Enable KS0108 LCD controller.
+ * Enable the new firewire stack labeled to be more simple and robust.
+ * [i386] Enable VMI paravirtualized interface.
+ * [powerpc] Enable fb for IBM GXT4500P adaptor.
+ * [amd64] Enable timerstats too.
+
+ [ Martin Michlmayr ]
+ * mipsel/r5k-cobalt: Use the new RTC system.
+
+ [ dann frazier ]
+ * Add Xen licensing info to the copyright file. (closes: #368912)
+
+ [ Gordon Farquharson ]
+ * arm: Mark CHELSIO_T3, NETXEN_NIC, BCM43XX, VIDEO_BT848,
+ DVB_B2C2_FLEXCOP, and DVB_BUDGET as broken on ARM.
+ * arm/ixp4xx: Add support for the new generic I2C GPIO driver on the
+ NSLU2 and the NAS100D. Thanks to Michael-Luke Jones and Rod Whitby.
+ * arm/ixp4xx: Update Artop PATA support patch for the NAS 100d.
+
+ [ Christian T. Steigies ]
+ * m68k: Disable already included patches (611, 618, 630)
+
+ -- Bastian Blank <waldi@debian.org> Tue, 19 Jun 2007 17:49:52 +0200
+
+linux-2.6 (2.6.21-6) unstable; urgency=low
+
+ * Add stable release 2.6.21.6:
+ - nf_conntrack_h323: add checking of out-of-range on choices' index values
+ (CVE-2007-3642)
+ * Update vserver patch to 2.2.0.
+
+ -- Bastian Blank <waldi@debian.org> Tue, 10 Jul 2007 18:36:17 +0200
+
+linux-2.6 (2.6.21-5) unstable; urgency=low
+
+ [ Christian T. Steigies ]
+ * [m68k] Add atari isa and scsi fixes
+
+ [ maximilian attems ]
+ * Add stable release 2.6.21.4:
+ - cpuset: prevent information leak in cpuset_tasks_read (CVE-2007-2875)
+ - random: fix error in entropy extraction (CVE-2007-2453 1 of 2)
+ - random: fix seeding with zero entropy (CVE-2007-2453 2 of 2)
+ - NETFILTER: {ip, nf}_conntrack_sctp: fix remotely triggerable NULL ptr
+ dereference (CVE-2007-2876)
+ * Add stable release 2.6.21.5:
+ - acpi: fix potential call to a freed memory section.
+ - USB: set the correct Interrupt interval in usb_bulk_msg
+ - i386: Fix K8/core2 oprofile on multiple CPUs
+ - ntfs_init_locked_inode(): fix array indexing
+ - ALSA: wm8750 typo fix
+ - neofb: Fix pseudo_palette array overrun in neofb_setcolreg
+ - e1000: disable polling before registering netdevice
+ - timer statistics: fix race
+ - x86: fix oprofile double free
+ - ALSA: usb-audio: explicitly match Logitech QuickCam
+ - zd1211rw: Add AL2230S RF support
+ - IPV4: Correct rp_filter help text.
+ - Fix AF_UNIX OOPS
+ - ICMP: Fix icmp_errors_use_inbound_ifaddr sysctl
+ - NET: Fix BMSR_100{HALF,FULL}2 defines in linux/mii.h
+ - SPARC64: Fix _PAGE_EXEC_4U check in sun4u I-TLB miss handler.
+ - SPARC64: Don't be picky about virtual-dma values on sun4v.
+ - SPARC64: Fix two bugs wrt. kernel 4MB TSB.
+ - cciss: fix pci_driver.shutdown while device is still active
+ - fix compat console unimap regression
+ - timer stats: speedups
+ - SPARC: Linux always started with 9600 8N1
+ - pci_ids: update patch for Intel ICH9M
+ - PCI: quirk disable MSI on via vt3351
+ - UML - Improve host PTRACE_SYSEMU check
+ - NET: parse ip:port strings correctly in in4_pton
+ - Char: cyclades, fix deadlock
+ - IPSEC: Fix panic when using inter address familiy IPsec on loopback.
+ - TCP: Use default 32768-61000 outgoing port range in all cases.
+ - TG3: Fix link problem on Dell's onboard 5906.
+ - fuse: fix mknod of regular file
+ - md: Avoid overflow in raid0 calculation with large components.
+ - md: Don't write more than is required of the last page of a bitmap
+ - make freezeable workqueues singlethread
+ - tty: fix leakage of -ERESTARTSYS to userland
+ - V4L/DVB (5593): Budget-ci: Fix tuning for TDM 1316 (160..200 MHz)
+ - Input: i8042 - fix AUX port detection with some chips
+ - SCSI: aacraid: Correct sa platform support.
+ (Was: [Bug 8469] Bad EIP value on pentium3 SMP kernel-2.6.21.1)
+ - BLUETOOTH: Fix locking in hci_sock_dev_event().
+ - hpt366: don't check enablebits for HPT36x
+ - ieee1394: eth1394: bring back a parent device
+ - NET: Fix race condition about network device name allocation.
+ - ALSA: hda-intel - Probe additional slots only if necessary
+ - ALSA: hda-intel - Fix detection of audio codec on Toshiba A100
+ - ahci: disable 64bit dma on sb600
+ - i386: HPET, check if the counter works
+ - Ignore bogus ACPI info for offline CPUs
+ - NOHZ: Rate limit the local softirq pending warning output
+ - Prevent going idle with softirq pending
+ - Work around Dell E520 BIOS reboot bug
+ - NET: "wrong timeout value" in sk_wait_data() v2
+ - IPV6 ROUTE: No longer handle ::/0 specially.
+ - x86_64: allocate sparsemem memmap above 4G
+ * Bump ABI to 2.
+
+ [ Bastian Blank ]
+ * Back out ABI fixing changes.
+ * Update vserver patch to 2.2.0-rc3.
+
+ -- Bastian Blank <waldi@debian.org> Fri, 22 Jun 2007 12:39:47 +0200
+
+linux-2.6 (2.6.21-4) unstable; urgency=low
+
+ * [powerpc] Fix mkvmlinuz support.
+ * [s390] Add exception handler for diagnose 224.
+
+ -- Bastian Blank <waldi@debian.org> Sat, 26 May 2007 14:08:44 +0200
+
+linux-2.6 (2.6.21-3) unstable; urgency=low
+
+ [ Gordon Farquharson ]
+ * arm/ixp4xx: Add patch to set NSLU2 timer frequency.
+
+ [ maximilian attems ]
+ * sparc64: enable USB_SERIAL. (closes: #412740)
+ * Apply stable 2.6.21.1.
+ * Add stable release 2.6.21.2:
+ - slob: fix page order calculation on not 4KB page
+ - libata-sff: Undo bug introduced with pci_iomap changes
+ - kbuild: fixdep segfault on pathological string-o-death
+ - IPMI: fix SI address space settings
+ - IPV6: Reverse sense of promisc tests in ip6_mc_input
+ - iop: fix iop_getttimeoffset
+ - iop13xx: fix i/o address translation
+ - arm: fix handling of svc mode undefined instructions
+ - CPUFREQ: powernow-k7: fix MHz rounding issue with perflib
+ - CPUFREQ: Support rev H AMD64s in powernow-k8
+ - CPUFREQ: Correct revision mask for powernow-k8
+ - JFS: Fix race waking up jfsIO kernel thread
+ - IPV6: Send ICMPv6 error on scope violations.
+ - SPARC64: Add missing cpus_empty() check in hypervisor xcall handling.
+ - SPARC64: Fix recursion in PROM tree building.
+ - SERIAL SUNHV: Add an ID string.
+ - SPARC64: Bump PROMINTR_MAX to 32.
+ - SPARC64: Be more resiliant with PCI I/O space regs.
+ - oom: fix constraint deadlock
+ - fix for bugzilla 8426: massive slowdown on SCSI CD/DVD drive connected to
+ mptspi driver
+ - x86_64 : Fix vgettimeofday()
+ - IPV6: Fix slab corruption running ip6sic
+ - IPSEC: Check validity of direction in xfrm_policy_byid
+ - CRYPTO: api: Read module pointer before freeing algorithm
+ - NET_SCHED: prio qdisc boundary condition
+ - reiserfs: suppress lockdep warning
+ - USB HID: hiddev - fix race between hiddev_send_event() and
+ hiddev_release()
+ - NETFILTER: {ip,nf}_nat_proto_gre: do not modify/corrupt GREv0 packets
+ through NAT
+ - fix leaky resv_huge_pages when cpuset is in use
+ - ACPI: Fix 2.6.21 boot regression on P4/HT
+ - TG3: Fix TSO bugs.
+ - TG3: Remove reset during MAC address changes.
+ - TG3: Update version and reldate.
+ - BNX2: Fix TSO problem with small MSS.
+ - BNX2: Block MII access when ifdown.
+ - BNX2: Save PCI state during suspend.
+ - BNX2: Update version and reldate.
+ - sis900: Allocate rx replacement buffer before rx operation
+ - knfsd: Avoid use of unitialised variables on error path when nfs exports.
+ - knfsd: rpc: fix server-side wrapping of krb5i replies
+ - md: Avoid a possibility that a read error can wrongly propagate through
+ - md/raid1 to a filesystem.
+ - fat: fix VFAT compat ioctls on 64-bit systems
+ - NETFILTER: {ip,nf}_conntrack: fix use-after-free in helper destroy
+ callback invocation
+ - ppp: Fix ppp_deflate issues with recent zlib_inflate changes
+ - NETPOLL: Fix TX queue overflow in trapped mode.
+ - NETPOLL: Remove CONFIG_NETPOLL_RX
+ - cxacru: Fix infinite loop when trying to cancel polling task
+ - TCP: zero out rx_opt in tcp_disconnect()
+ - ipv6: track device renames in snmp6
+ - skge: default WOL should be magic only (rev2)
+ - skge: allow WOL except for known broken chips
+ - sky2: allow 88E8056
+ - sky2: 88e8071 support not ready
+ - skge: crash on shutdown/suspend
+ - sky2: fix oops on shutdown
+ - udf: decrement correct link count in udf_rmdir
+ - ALSA: hda-codec - Fix resume of STAC92xx codecs
+ - sata_via: add missing PM hooks
+ - driver-core: don't free devt_attr till the device is released
+ - pci-quirks: disable MSI on RS400-200 and RS480
+ - highres/dyntick: prevent xtime lock contention
+ - clocksource: fix resume logic
+ - smc911x: fix compilation breakage wjen debug is on
+ - SCTP: Fix sctp_getsockopt_local_addrs_old() to use local storage.
+ - SCTP: Correctly copy addresses in sctp_copy_laddrs
+ - SCTP: Prevent OOPS if hmac modules didn't load
+ - IPV6: Do no rely on skb->dst before it is assigned.
+ - IPV6 ROUTE: Assign rt6i_idev for ip6_{prohibit,blk_hole}_entry.
+
+ [ Christian T. Steigies ]
+ * m68k: enable ATARI_SCSI and ATARI_ROM_ISA
+
+ [ Bastian Blank ]
+ * Fix linux/version.h in linux-libc-dev.
+ * Make it possible to specifiy special CFLAGS.
+ * [hppa] Reenable.
+ * [hppa] Workaround hppa64 failure.
+ * [hppa] Fix debugging in lws syscalls.
+ * Fix abi change.
+ * Add stable release 2.6.21.3:
+ - [PATCH] GEODE-AES: Allow in-place operations [CVE-2007-2451]
+
+ -- Bastian Blank <waldi@debian.org> Fri, 25 May 2007 10:57:48 +0200
+
+linux-kbuild-2.6 (2.6.21-1) unstable; urgency=low
+
+ * New upstream version.
+
+ -- Bastian Blank <waldi@debian.org> Fri, 18 May 2007 23:45:14 +0200
+
+linux-2.6 (2.6.21-2) unstable; urgency=low
+
+ [ Christian T. Steigies ]
+ * m68k: fix atari scc patch
+ * m68k: install compressed vmlinuz images so the post-inst script can find it
+
+ [ Steve Langasek ]
+ * [alpha] isa-mapping-support.patch: add isa_page_to_bus and
+ isa_bus_to_virt defines to complement the existing isa_virt_to_bus
+ define; untested, but these should all be straightforward on alpha and
+ defining them is certainly a better option for getting user feedback
+ than disabling the affected drivers.
+
+ [ Bastian Blank ]
+ * [powerpc] Readd mkvmlinuz support. (closes: #419033)
+ * [sparc]: Disable sparc32 image.
+ * [hppa]: Temporary disable all images.
+
+ -- Bastian Blank <waldi@debian.org> Fri, 18 May 2007 19:52:36 +0200
+
+linux-2.6 (2.6.21-1) unstable; urgency=low
+
+ [ maximilian attems ]
+ * New upstream release see http://kernelnewbies.org/Linux_2_6_21
+ (closes: #423874)
+ * Disable CONFIG_IP_ROUTE_MULTIPATH_CACHED in topconfig.
+ * Enable CONFIG_IP6_NF_MATCH_MH, CONFIG_CHELSIO_T3, CONFIG_USB_NET_DM9601,
+ CONFIG_NETFILTER_XT_TARGET_TCPMSS, CONFIG_RTC_DRV_CMOS,
+ CONFIG_ASUS_LAPTOP, CONFIG_SONY_LAPTOP, CONFIG_DVB_TUNER_QT1010,
+ CONFIG_USB_IOWARRIOR, CONFIG_ATL1 in topconfig.
+ * [i386] Enable CONFIG_ACPI_BAY, CONFIG_X86_LONGHAUL, CONFIG_BLK_DEV_DELKIN,
+ CONFIG_BLK_DEV_IT8213, CONFIG_BLK_DEV_TC86C001, CONFIG_INPUT_ATLAS_BTNS,
+ CONFIG_SENSORS_ADM1029, CONFIG_FB_SVGALIB, CONFIG_FB_S3,
+ CONFIG_USB_KC2190, CONFIG_KS0108.
+ * Add stable release 2.6.21.1:
+ - IPV4: Fix OOPS'er added to netlink fib.
+ - IPV6: Fix for RT0 header ipv6 change.
+ * [i386] Enable CONFIG_NO_HZ, CONFIG_HIGH_RES_TIMERS for dynticks and true
+ high-resolution timers.
+ * [i386] Enable CONFIG_TIMER_STATS to collect stats about kernel/userspace
+ timer aka power usage (see powertop). (closes: #423694)
+ * [i386] Disable obsolete CONFIG_IRQBALANCE due to bad timer behaviour.
+
+ [ Martin Michlmayr ]
+ * Add armel (arm with EABI) support. Thanks, Lennert Buytenhek and
+ Joey Hess. (closes: #410853)
+ * Mark CHELSIO_T3 as broken on ARM.
+ * Take arch/arm/tools/mach-types from current git to fix build failure
+ because MACH_TYPE_EP80219 is not defined.
+ * mips/sb1: Don't build CONFIG_ATA into the kernel.
+ * mips/sb1: Unset CONFIG_USB_{KBD,MOUSE} since the generic HID is used.
+ * arm/iop32x: Don't build CONFIG_ATA into the kernel.
+ * arm/ixp4xx: Enable more SATA drivers.
+ * arm/ixp4xx: Enable PATA_ARTOP which is needed by the nas100d.
+ * arm/ixp4xx: Set CONFIG_USB_EHCI_TT_NEWSCHED.
+ * mips/4kc-malta: Add an image for the MIPS Malta board. Thanks,
+ Aurelien Jarno. (closes: #421377)
+
+ [ Emanuele Rocca ]
+ * sparc: Enable CONFIG_SCSI_QLOGIC_1280. (closes: #423177)
+
+ [ Christian T. Steigies ]
+ * Add m68k patches for 2.6.21
+ * Add type: plain to [image] in arch/m68k/defines to fix missing
+ Modules.symvers problem
+
+ [ Steve Langasek ]
+ * Revert change to disable image building on alpha.
+
+ [ Bastian Blank ]
+ * Update vserver patch to 2.2.0-rc1.
+
+ -- Bastian Blank <waldi@debian.org> Wed, 16 May 2007 13:46:38 +0200
+
+linux-2.6 (2.6.20-3) unstable; urgency=low
+
+ [ Gordon Farquharson ]
+ * arm: Mark CONFIG_MTD_NAND_CAFE and CONFIG_NETXEN_NIC as broken to
+ fix FTBFS.
+
+ [ Bastian Blank ]
+ * Disable new pata drivers. (closes: #419458)
+ * Disable pata in ata_piix.
+
+ -- Bastian Blank <waldi@debian.org> Tue, 24 Apr 2007 09:54:44 +0200
+
+linux-2.6 (2.6.20-2) unstable; urgency=low
+
+ [ Bastian Blank ]
+ * Rename linux-libc-headers into linux-libc-dev.
+ * [mips] Drop sb1250 uart support.
+ * [alpha] Temporary disable alpha images.
+ * Add stable release 2.6.20.7:
+ - Linux 2.6.20.7
+ - Update libata drive blacklist to the latest from 2.6.21
+ - fix page leak during core dump
+ - revert "retries in ext4_prepare_write() violate ordering requirements"
+ - revert "retries in ext3_prepare_write() violate ordering requirements"
+ - libata: Clear tf before doing request sense (take 3)
+ - fix lba48 bug in libata fill_result_tf()
+ - ahci.c: walkaround for SB600 SATA internal error issue
+ - libata bugfix: preserve LBA bit for HDIO_DRIVE_TASK
+ - softmac: avoid assert in ieee80211softmac_wx_get_rate
+ - knfsd: allow nfsd READDIR to return 64bit cookies
+ - Fix TCP slow_start_after_idle sysctl
+ - Fix tcindex classifier ABI borkage...
+ - Fix IPSEC replay window handling
+ - Fix TCP receiver side SWS handling.
+ - Fix scsi sense handling
+ - Fix length validation in rawv6_sendmsg()
+ - NETFILTER: ipt_CLUSTERIP: fix oops in checkentry function
+ - 8139too: RTNL and flush_scheduled_work deadlock
+ - Fix calculation for size of filemap_attr array in md/bitmap.
+ - HID: Do not discard truncated input reports
+ - DVB: pluto2: fix incorrect TSCR register setting
+ - DVB: tda10086: fix DiSEqC message length
+ - sky2: phy workarounds for Yukon EC-U A1
+ - sky2: turn on clocks when doing resume
+ - sky2: turn carrier off when down
+ - skge: turn carrier off when down
+ - sky2: reliable recovery
+ - i386: fix file_read_actor() and pipe_read() for original i386 systems
+ - kbuild: fix dependency generation
+
+ [ dann frazier ]
+ * [hppa] Add parisc arch patch from Kyle McMartin
+ * [hppa] Enable CONFIG_TULIP_MMIO (closes: #332962)
+ * [hppa] Disable ni52 driver, it doesn't build (and wouldn't work if it did)
+
+ -- Bastian Blank <waldi@debian.org> Sun, 15 Apr 2007 16:04:16 +0200
+
+linux-kbuild-2.6 (2.6.20-1) unstable; urgency=low
+
+ * New upstream version.
+ * modpost: Support -w.
+
+ -- Bastian Blank <waldi@debian.org> Thu, 12 Apr 2007 06:53:00 +0200
+
+linux-2.6 (2.6.20-1) unstable; urgency=low
+
+ [ Martin Michlmayr ]
+ * mipsel: Drop DECstation support (both r3k-kn02 and r4k-kn04).
+ * arm: Drop RiscPC (rpc) support.
+ * arm: Update configs for 2.6.19-rc6.
+ * arm: source drivers/ata/Kconfig so SATA can be enabled on ARM.
+ * arm/footbridge: Unset SATA.
+ * arm/s3c2410: Drop this flavour since no such device is supported
+ in debian-installer and the ARM build resources are limited.
+
+ [ Sven Luther ]
+ * [powerpc] Added Genesi Efika support patch
+
+ [ Bastian Blank ]
+ * Remove legacy pty support. (closes: #338404)
+ * Enable new scsi parts.
+ * powerpc: Enable ibmvscsis.
+ * Add stable release 2.6.20.1:
+ - Linux 2.6.20.1
+ - [PATCH] Fix a free-wrong-pointer bug in nfs/acl server (CVE-2007-0772)
+ * Add stable release 2.6.20.2:
+ - Linux 2.6.20.2
+ - IPV6: Handle np->opt being NULL in ipv6_getsockopt_sticky() [CVE-2007-1000]
+ - x86-64: survive having no irq mapping for a vector
+ - Fix buffer overflow in Omnikey CardMan 4040 driver (CVE-2007-0005)
+ - TCP: Fix minisock tcp_create_openreq_child() typo.
+ - gfs2: fix locking mistake
+ - ATA: convert GSI to irq on ia64
+ - pktcdvd: Correctly set cmd_len field in pkt_generic_packet
+ - video/aty/mach64_ct.c: fix bogus delay loop
+ - revert "drivers/net/tulip/dmfe: support basic carrier detection"
+ - throttle_vm_writeout(): don't loop on GFP_NOFS and GFP_NOIO allocations
+ - fix section mismatch warning in lockdep
+ - ueagle-atm.c needs sched.h
+ - kvm: Fix asm constraint for lldt instruction
+ - lockdep: forward declare struct task_struct
+ - Char: specialix, isr have 2 params
+ - buffer: memorder fix
+ - kernel/time/clocksource.c needs struct task_struct on m68k
+ - m32r: build fix for processors without ISA_DSP_LEVEL2
+ - hugetlb: preserve hugetlb pte dirty state
+ - enable mouse button 2+3 emulation for x86 macs
+ - v9fs_vfs_mkdir(): fix a double free
+ - ufs: restore back support of openstep
+ - Fix MTRR compat ioctl
+ - kexec: Fix CONFIG_SMP=n compilation V2 (ia64)
+ - NLM: Fix double free in __nlm_async_call
+ - RPM: fix double free in portmapper code
+ - Revert "[PATCH] LOG2: Alter get_order() so that it can make use of ilog2() on a constant"
+ - Backport of psmouse suspend/shutdown cleanups
+ - USB: usbnet driver bugfix
+ - sched: fix SMT scheduler bug
+ - tty_io: fix race in master pty close/slave pty close path
+ - forcedeth: disable msix
+ - export blk_recount_segments
+ - Fix reference counting (memory leak) problem in __nfulnl_send() and callers related to packet queueing.
+ - Fix anycast procfs device leak
+ - Don't add anycast reference to device multiple times
+ - Fix TCP MD5 locking.
+ - Fix %100 cpu spinning on sparc64
+ - Fix skb data reallocation handling in IPSEC
+ - Fix xfrm_add_sa_expire() return value
+ - Fix interrupt probing on E450 sparc64 systems
+ - HID: fix possible double-free on error path in hid parser
+ - POWERPC: Fix performance monitor exception
+ - libata: add missing CONFIG_PM in LLDs
+ - libata: add missing PM callbacks
+ - bcm43xx: Fix assertion failures in interrupt handler
+ - mmc: Power quirk for ENE controllers
+ - UML - Fix 2.6.20 hang
+ - fix umask when noACL kernel meets extN tuned for ACLs
+ - sata_sil: ignore and clear spurious IRQs while executing commands by polling
+ - swsusp: Fix possible oops in userland interface
+ - Fix posix-cpu-timer breakage caused by stale p->last_ran value
+ - V4L: cx88-blackbird: allow usage of 376836 and 262144 sized firmware images
+ - V4L: fix cx25840 firmware loading
+ - DVB: digitv: open nxt6000 i2c_gate for TDED4 tuner handling
+ - DVB: cxusb: fix firmware patch for big endian systems
+ - V4L: pvrusb2: Handle larger cx2341x firmware images
+ - V4L: pvrusb2: Fix video corruption on stream start
+ - dvbdev: fix illegal re-usage of fileoperations struct
+ - md: Fix raid10 recovery problem.
+ - bcm43xx: fix for 4309
+ - i386: Fix broken CONFIG_COMPAT_VDSO on i386
+ - x86: Don't require the vDSO for handling a.out signals
+ - x86_64: Fix wrong gcc check in bitops.h
+ - sky2: transmit timeout deadlock
+ - sky2: dont flush good pause frames
+ - Fix oops in xfrm_audit_log()
+ - Prevent pseudo garbage in SYN's advertized window
+ - Fix IPX module unload
+ - Clear TCP segmentation offload state in ipt_REJECT
+ - Fix atmarp.h for userspace
+ - UHCI: fix port resume problem
+ - Fix recently introduced problem with shutting down a busy NFS server.
+ - Avoid using nfsd process pools on SMP machines.
+ - EHCI: turn off remote wakeup during shutdown
+ - IPV6: HASHTABLES: Use appropriate seed for caluculating ehash index.
+ - MTD: Fatal regression in drivers/mtd/redboot.c in 2.6.20
+ - Kconfig: FAULT_INJECTION can be selected only if LOCKDEP is enabled.
+ - USB HID: Fix USB vendor and product IDs endianness for USB HID devices
+ - Fix null pointer dereference in appledisplay driver
+ - ieee1394: fix host device registering when nodemgr disabled
+ - ieee1394: video1394: DMA fix
+ - Fix compile error for e500 core based processors
+ - md: Avoid possible BUG_ON in md bitmap handling.
+ - Fix allocation failure handling in multicast
+ - Fix TCP FIN handling
+ - Fix ATM initcall ordering.
+ - Fix various bugs with aligned reads in RAID5.
+ - hda-intel - Don't try to probe invalid codecs
+ - usbaudio - Fix Oops with unconventional sample rates
+ - usbaudio - Fix Oops with broken usb descriptors
+ - USB: fix concurrent buffer access in the hub driver
+ - Missing critical phys_to_virt in lib/swiotlb.c
+ - AGP: intel-agp bugfix
+ - bcm43xx: Fix for oops on ampdu status
+ - bcm43xx: Fix for oops on resume
+ - ide: fix drive side 80c cable check
+ - Keys: Fix key serial number collision handling
+ - knfsd: Fix a race in closing NFSd connections.
+ - pata_amd: fix an obvious bug in cable detection
+ - prism54: correct assignment of DOT1XENABLE in WE-19 codepaths
+ - rtc-pcf8563: detect polarity of century bit automatically
+ - x86_64: fix 2.6.18 regression - PTRACE_OLDSETOPTIONS should be accepted
+ - ocfs2: ocfs2_link() journal credits update
+ * Update xen patch to changeset 48670 from fedora 2.6.20 branch.
+ * Support xen versions 3.0.4-1 and 3.0.3-1.
+
+ [ Rod Whitby ]
+ * arm/ixp4xx: Enable PATA_ARTOP for the nas100d and dsmg600.
+ * arm/ixp4xx: Enable RTC for the nas100d
+ * Add nas100d Ethernet MAC setup support.
+ * Add temporary hack to get Artop PATA support going on the nas100d.
+
+ [ maximilian attems ]
+ * i386: Enable kvm.
+ * Add stable release 2.6.20.3:
+ - Fix sparc64 device register probing
+ - Fix bug 7994 sleeping function called from invalid context
+ - Fix timewait jiffies
+ - Fix UDP header pointer after pskb_trim_rcsum()
+ - Fix compat_getsockopt
+ - bcm43xx: Fix problem with >1 GB RAM
+ - nfnetlink_log: fix NULL pointer dereference
+ - nfnetlink_log: fix possible NULL pointer dereference
+ - conntrack: fix {nf, ip}_ct_iterate_cleanup endless loops
+ - nf_conntrack/nf_nat: fix incorrect config ifdefs
+ - tcp conntrack: accept SYN|URG as valid
+ - nfnetlink_log: fix reference leak
+ - nfnetlink_log: fix use after free
+ - nf_conntrack: fix incorrect classification of IPv6 fragments as
+ ESTABLISHED
+ - nfnetlink_log: zero-terminate prefix
+ - nfnetlink_log: fix crash on bridged packet
+ - Fix callback bug in connector
+ - fix for bugzilla #7544 (keyspan USB-to-serial converter)
+ - ip6_route_me_harder should take into account mark
+ * Add myself to uploaders field, entry got lost after 2.6.16-2
+ * Add stable release 2.6.20.4:
+ - fix deadlock in audit_log_task_context()
+ - EHCI: add delay to bus_resume before accessing ports
+ - Copy over mac_len when cloning an skb
+ - fix read past end of array in md/linear.c
+ - oom fix: prevent oom from killing a process with children/sibling unkillable
+ - Fix sparc64 hugepage bugs
+ - Fix page allocation debugging on sparc64
+ - Fix niagara memory corruption
+ - Input: i8042 - really suppress ACK/NAK during panic blink
+ - Input: i8042 - fix AUX IRQ delivery check
+ - Input: i8042 - another attempt to fix AUX delivery checks
+ - Fix rtm_to_ifaddr() error return.
+ - r8169: fix a race between PCI probe and dev_open
+ - futex: PI state locking fix
+ - adjust legacy IDE resource setting (v2)
+ - UML - arch_prctl should set thread fs
+ - gdth: fix oops in gdth_copy_cmd()
+ - Fix extraneous IPSEC larval SA creation
+ - IA64: fix NULL pointer in ia64/irq_chip-mask/unmask function
+ - st: fix Tape dies if wrong block size used, bug 7919
+ - Fix ipv6 flow label inheritance
+ - NETFILTER: nfnetlink_log: fix reference counting
+ - mm: fix madvise infinine loop
+ - Fix another NULL pointer deref in ipv6_sockglue.c
+ - NetLabel: Verify sensitivity level has a valid CIPSO mapping
+ - Fix GFP_KERNEL with preemption disabled in fib_trie
+ - IrDA: irttp_dup spin_lock initialisation
+ - hda-intel - Fix codec probe with ATI controllers
+ - hrtimer: prevent overrun DoS in hrtimer_forward()
+ - fix MTIME_SEC_MAX on 32-bit
+ - nfs: nfs_getattr() can't call nfs_sync_mapping_range() for non-regular files
+ - dio: invalidate clean pages before dio write
+ - initialise pi_lock if CONFIG_RT_MUTEXES=N
+ * Add stable release 2.6.20.5:
+ - FRA_{DST,SRC} are le16 for decnet
+ - CIFS: reset mode when client notices that ATTR_READONLY is no longer set
+ - ide: clear bmdma status in ide_intr() for ICHx controllers (revised #4)
+ - ide: remove clearing bmdma status from cdrom_decode_status() (rev #4)
+ - NET: Fix sock_attach_fd() failure in sys_accept()
+ - DCCP: Fix exploitable hole in DCCP socket options
+ - ide: revert "ide: fix drive side 80c cable check, take 2" for now
+ - generic_serial: fix decoding of baud rate
+ - IPV6: Fix ipv6 round-robin locking.
+ - VIDEO: Fix FFB DAC revision probing
+ - PPP: Fix PPP skb leak
+ - V4L: msp_attach must return 0 if no msp3400 was found.
+ - CRYPTO: api: scatterwalk_copychunks() fails to advance through scatterlist
+ - APPLETALK: Fix a remotely triggerable crash (CVE-2007-1357)
+ - UML - fix epoll
+ - UML - host VDSO fix
+ - UML - Fix static linking
+ - UML - use correct register file size everywhere
+ - libata: sata_mv: don't touch reserved bits in EDMA config register
+ - libata: sata_mv: Fix 50xx irq mask
+ - libata bugfix: HDIO_DRIVE_TASK
+ - V4L: Fix SECAM handling on saa7115
+ - DVB: fix nxt200x rf input switching
+ - SPARC: Fix sparc builds with gcc-4.2.x
+ - V4L: saa7146: Fix allocation of clipping memory
+ - uml: fix unreasonably long udelay
+ - NET: Fix packet classidier NULL pointer OOPS
+ - NET_SCHED: Fix ingress qdisc locking.
+ - sata_nv: delay on switching between NCQ and non-NCQ commands
+ - dvb-core: fix several locking related problems
+ - ieee1394: dv1394: fix CardBus card ejection
+ - CIFS: Allow reset of file to ATTR_NORMAL when archive bit not set
+ - jmicron: make ide jmicron driver play nice with libata ones
+ - libata: clear TF before IDENTIFYing
+ - NET: Fix FIB rules compatability
+ - DVB: isl6421: don't reference freed memory
+ - V4L: radio: Fix error in Kbuild file
+ - i2o: block IO errors on i2o disk
+ * Add stable release 2.6.20.6:
+ - CRYPTO api: Use the right value when advancing scatterwalk_copychunks
+ - uml: fix static linking for real
+
+ [ Gordon Farquharson ]
+ * Disable broken config options on ARM.
+
+ [ Frederik Schüler ]
+ * Disable NAPI on forcedeth, it is broken.
+
+ [ dann frazier ]
+ * Hardcode the output of the scripts under arch/ia64/scripts as executed
+ in an etch environment so that we can build out of tree modules correctly
+ (re-add; patch seems to have been dropped during a merge.)
+ See: #392592
+ * Allow '.' and '+' in the target dist field of the changelog. dpkg has
+ supported this since 1.13.20, see #361171.
+
+ -- Bastian Blank <waldi@debian.org> Mon, 09 Apr 2007 19:21:52 +0200
+
+linux-2.6 (2.6.18.dfsg.1-10) unstable; urgency=low
+
+ [ maximilian attems ]
+ * Add patches out of stable queue 2.6.18
+ - [amd64] Don't leak NT bit into next task (CVE-2006-5755)
+ - IB/srp: Fix FMR mapping for 32-bit kernels and addresses above 4G
+ - SCSI: add missing cdb clearing in scsi_execute()
+ * Xen postinst: Use takeover for update-initramfs. Makes postinst idempotent.
+ On creation it should always overwrite. (closes: #401183)
+ * Hand-picked from stable release 2.6.16.38:
+ - i2c-viapro: Add support for the VT8237A and VT8251
+ - PCI: irq: irq and pci_ids patch for Intel ICH9
+ - i2c-i801: SMBus patch for Intel ICH9
+ - fix the UML compilation
+ - drm: allow detection of new VIA chipsets
+ - drm: Add the P4VM800PRO PCI ID.
+ - rio: typo in bitwise AND expression.
+ - i2c-mv64xxx: Fix random oops at boot
+ - i2c: fix broken ds1337 initialization
+ - [SUNKBD]: Fix sunkbd_enable(sunkbd, 0); obvious.
+ - Call init_timer() for ISDN PPP CCP reset state timer (CVE-2006-5749)
+ - V4L: cx88: Fix leadtek_eeprom tagging
+ - SPI/MTD: mtd_dataflash oops prevention
+ - grow_buffers() infinite loop fix (CVE-2006-5757/CVE-2006-6060)
+ - corrupted cramfs filesystems cause kernel oops (CVE-2006-5823)
+ - ext2: skip pages past number of blocks in ext2_find_entry
+ (CVE-2006-6054)
+ - handle ext3 directory corruption better (CVE-2006-6053)
+ - hfs_fill_super returns success even if no root inode (CVE-2006-6056)
+ backout previous fix, was not complete.
+ - Fix for shmem_truncate_range() BUG_ON()
+ - ebtables: check struct type before computing gap
+ - [IPV4/IPV6]: Fix inet{,6} device initialization order.
+ - [IPV6] Fix joining all-node multicast group.
+ - [SOUND] Sparc CS4231: Use 64 for period_bytes_min
+ * [PKTGEN]: Convert to kthread API. Thanks David Miller for patch.
+ * [IDE] Add driver for Jmicron JMB36x devices by Alan Cox.
+ Enable jmicron on i386 and amd64 archs.
+ * Hand-picked from stable release 2.6.16.39:
+ - atiixp: hang fix
+ - V4L/DVB: Flexcop-usb: fix debug printk
+ - V4L/DVB: Fix uninitialised variable in dvb_frontend_swzigzag
+ - read_zero_pagealigned() locking fix
+ - adfs: fix filename handling
+ - sparc32: add offset in pci_map_sg()
+ - cdrom: set default timeout to 7 seconds
+ - [SCSI] qla1280 command timeout
+ - [SCSI] qla1280 bus reset typo
+ - [Bluetooth] Check if DLC is still attached to the TTY
+ - [Bluetooth] Fix uninitialized return value for RFCOMM sendmsg()
+ - [Bluetooth] Return EINPROGRESS for non-blocking socket calls
+ - [Bluetooth] Handle command complete event for exit periodic inquiry
+ - [Bluetooth] Fix compat ioctl for BNEP, CMTP and HIDP
+ - [Bluetooth] Add locking for bt_proto array manipulation
+ - i386: fix CPU hotplug with 2GB VMSPLIT
+
+ [ dann frazier ]
+ * Fix raid1 recovery (closes: #406181)
+
+ [ Jurij Smakov ]
+ * Add dtlb-prot-bug-niagara.patch by David Miller, fixing the bug in the
+ Niagara's DTLB-PROT trap.
+
+ [ Bastian Blank ]
+ * i386: Add amd64 image. (closes: #379090)
+
+ -- Bastian Blank <waldi@debian.org> Fri, 2 Feb 2007 12:50:35 +0100
+
+linux-2.6 (2.6.18.dfsg.1-9) unstable; urgency=low
+
+ [ Martin Michlmayr ]
+ * arm/iop32x: Enable CONFIG_IP_NF_CONNTRACK_EVENTS and _NETLINK.
+ * arm/ixp4xx: Enable some more I2C sensor modules.
+ * arm/ixp4xx: Enable CONFIG_USB_NET_RNDIS_HOST.
+ * arm/footbridge: Enable CONFIG_NATSEMI.
+ * Revert mm/msync patches because they cause filesystem corruption
+ (closes: #401006, #401980, #402707) ...
+ * ... and add an alternative msync patch from Hugh Dickins that
+ doesn't depend on the mm changes (closes: #394392).
+ * mips: provide pci_get_legacy_ide_irq needed by some IDE drivers
+ (see #404950).
+ * arm: Implement flush_anon_page(), which is needed for FUSE
+ (closes: #402876) and possibly dm-crypt/LUKS (see #403426).
+ * arm: Turn off PCI burst on the Cyber2010, otherwise X11 on
+ Netwinder will crash.
+ * arm/iop32x: Enable CONFIG_IEEE80211_SOFTMAC and drivers based
+ on it.
+ * arm/ixp4xx: Upgrade to version 0.3.1 of the IXP4xx NPE Ethernet
+ driver. This version fixes stuck connections, e.g. with scp and
+ NFS (closes: #404447).
+ * arm/ixp4xx: Enable CONFIG_VIDEO_CPIA_USB.
+ * arm/ixp4xx: Enable CONFIG_ISCSI_TCP.
+ * arm/iop32x: Likewise.
+
+ [ Bastian Blank ]
+ * Bump ABI to 4.
+ * Update vserver patch to 2.0.2.2-rc9. (closes: #402743, #403790)
+ * Update xen patch to changeset 36186 from Fedora 2.6.18 branch.
+ * i386/xen: Build only the pae version. (closes: #390862)
+ * hppa: Override host type when necessary.
+ * Fix tg3 reset. (closes: #405085)
+
+ [ dann frazier ]
+ * Fix potential fragmentation attacks in ip6_tables (CVE-2006-4572)
+ * Backport a number of fixes for the cciss driver
+ - Fix a bug with 1TB disks caused by converting total_size to an int
+ - Claim devices that are of the HP RAID class and have a valid cciss sig
+ - Make NR_CMDS a per-controller define - most can do 1024 commands, but
+ the E200 family can only support 128
+ - Change the SSID on the E500 as a workaround for a firmware bug
+ - Disable prefetch on the P600 controller. An ASIC bug may result in
+ prefetching beyond the end of physical memory
+ - Increase blk_queue_max_sectors from 512 to 2048 to increase performance
+ - Map out more memor for the PCI config table, required to reach offset
+ 0x214 to disable DMA on the P600
+ - Set a default raid level on a volume that either does not support
+ reading the geometry or reports an invalid geometry for whatever reason
+ to avoid problems with buggy firmware
+ - Revert change that replaed XFER_READ/XFER_WRITE macros with
+ h->cciss_read/h->cciss_write that caused command timeouts on older
+ controllers on ia32 (closes: #402787)
+ * Fix mincore hang (CVE-2006-4814)
+ * ia64: turn on IOC4 modules for SGI Altix systems. Thanks to Stephane Larose
+ for suggesting this.
+ * Add versioned build dep on findutils to make sure the system find command
+ supports the -execdir action (closes: #405150)
+ * Hardcode the output of the scripts under arch/ia64/scripts as executed
+ in an etch environment so that we can build out of tree modules correctly
+ (closes: #392592)
+ * Update unusual_devs entry for ipod to fix an eject issue (closes: #406124)
+ * Re-add verify_pmtmr_rate, resolving problems seen on older K6 ASUS
+ boards where the ACPI PM timer runs too fast (closes: #394753)
+ * Avoid condition where /proc/swaps header may not be printed
+ (closes: #292318)
+ * [hppa] disable XFS until it works (closes: #350482)
+
+ [ Norbert Tretkowski ]
+ * libata: handle 0xff status properly. (closes: #391867)
+ * alpha: enabled CONFIG_SCSI_ARCMSR. (closes: #401187)
+ * removed BROKEN_ON_SMP dependency from I2C_ELEKTOR. (closes: #402253)
+
+ [ Christian T. Steigies ]
+ * m68k/atari: enable keyboard, mouse and fb drivers
+ * m68k/atari: fixes for ethernec and video driver by Michael Schmitz
+ * m68k/atari: fixes for scsi driver by Michael Schmitz
+ * m68k/mac: fixes for mace and cuda driver by Finn Thain
+ * m68k/atari: fixes for ide driver by Michael Schmitz
+ * m68k/atari: fixes for ide driver by Michael Schmitz
+ * m68k/atari: fixes for ethernec and atakeyb driver by Michael Schmitz, build ethernec as module
+ * m68k/mac: fixes for mace and adb driver by Finn Thain
+
+ [ maximilian attems ]
+ * Add stable release 2.6.18.6:
+ - EBTABLES: Fix wraparounds in ebt_entries verification.
+ - EBTABLES: Verify that ebt_entries have zero ->distinguisher.
+ - EBTABLES: Deal with the worst-case behaviour in loop checks.
+ - EBTABLES: Prevent wraparounds in checks for entry components' sizes.
+ - skip data conversion in compat_sys_mount when data_page is NULL
+ - bonding: incorrect bonding state reported via ioctl
+ - x86-64: Mark rdtsc as sync only for netburst, not for core2
+ (closes: #406767)
+ - dm crypt: Fix data corruption with dm-crypt over RAID5 (closes: #402812)
+ - forcedeth: Disable INTx when enabling MSI in forcedeth
+ - PKT_SCHED act_gact: division by zero
+ - XFRM: Use output device disable_xfrm for forwarded packets
+ - IPSEC: Fix inetpeer leak in ipv4 xfrm dst entries.
+ - V4L: Fix broken TUNER_LG_NTSC_TAPE radio support
+ - m32r: make userspace headers platform-independent
+ - IrDA: Incorrect TTP header reservation
+ - SUNHME: Fix for sunhme failures on x86
+ - Bluetooth: Add packet size checks for CAPI messages (CVE-2006-6106)
+ - softmac: remove netif_tx_disable when scanning
+ - DVB: lgdt330x: fix signal / lock status detection bug
+ - dm snapshot: fix freeing pending exception
+ - NET_SCHED: policer: restore compatibility with old iproute binaries
+ - NETFILTER: ip_tables: revision support for compat code
+ - ARM: Add sys_*at syscalls
+ - ieee1394: ohci1394: add PPC_PMAC platform code to driver probe
+ - softirq: remove BUG_ONs which can incorrectly trigger
+ * Hand-picked from stable release 2.6.16.30:
+ - [PPPOE]: Advertise PPPoE MTU
+ * Hand-picked from stable release 2.6.16.31:
+ - [NETFILTER]: Fix ip6_tables extension header bypass bug (CVE-2006-4572)
+ - fix RARP ic_servaddr breakage
+ * Hand-picked from stable release 2.6.16.32:
+ - drivers/telephony/ixj: fix an array overrun
+ - flush D-cache in failure path
+ * Hand-picked from stable release 2.6.16.33:
+ - Add new PHY to sis900 supported list
+ - ipmi_si_intf.c: fix "&& 0xff" typos
+ - drivers/scsi/psi240i.c: fix an array overrun
+ * Hand-picked from stable release 2.6.16.34:
+ - [IPX]: Annotate and fix IPX checksum
+ - [IGMP]: Fix IGMPV3_EXP() normalization bit shift value.
+ * Hand-picked from stable release 2.6.16.35:
+ - sgiioc4: Disable module unload
+ - Fix a masking bug in the 6pack driver.
+ - drivers/usb/input/ati_remote.c: fix cut'n'paste error
+ - proper flags type of spin_lock_irqsave()
+ * Hand-picked from stable release 2.6.16.37:
+ - [CRYPTO] sha512: Fix sha384 block size
+ - [SCSI] gdth: Fix && typos
+ - Fix SUNRPC wakeup/execute race condition
+ * Enable DEBUG_FS for usbmon in generic config. Don't disable it on alpha,
+ amd64, hppa and ia64. (closes: 378542)
+ * Backport a number of upstream fixes for the r8169 driver, needed for
+ network performance (closes: 388870, 400524)
+ - r8169: more alignment for the 0x8168
+ - r8169: phy program update
+ - r8169: more magic during initialization of the hardware
+ - r8169: perform a PHY reset before any other operation at boot time
+ - r8169: Fix iteration variable sign
+ - r8169: remove extraneous Cmd{Tx/Rx}Enb write
+ * sound: hda: detect ALC883 on MSI K9A Platinum motherboards (MS-7280)
+ patch from Leonard Norrgard <leonard.norrgard@refactor.fi>
+ * tulip: Add i386 specific patch to remove duplicate pci ids.
+ Thanks Jurij Smakov <jurij@wooyd.org> (closes: #334104, #405203)
+ * amd64, i386: Disable SK98LIN as SKGE is the modern capable driver.
+ (closes: 405196)
+ * Backout net-bcm43xx_netdev_watchdog.patch and push 2.6.18.2 fix.
+ (closes: 402475)
+
+ [ Jurij Smakov ]
+ * Add bugfix/sparc/isa-dev-no-reg.patch to make sure that
+ isa_dev_get_resource() can deal with devices which do not have a 'reg'
+ PROM property. Failure to handle such devices properly resulted in an
+ oops during boot on Netra X1. Thanks to Richard Mortimer for debugging
+ and patch. (closes: #404216)
+ * Add bugfix/sparc/ehci-hub-contol-alignment.patch to prevent unaligned
+ memory accesses in ehci-hub-control() by adding an alignment attribute
+ to the tbuf array declaration. Thanks to David Miller for the patch.
+
+ [ Sven Luther ]
+ * [powerpc] Enable CONFIG_PMAC_BACKLIGHT_LEGACY (Closes: #407671).
+
+ -- Bastian Blank <waldi@debian.org> Wed, 24 Jan 2007 13:21:51 +0100
+
+linux-2.6 (2.6.18-8) unstable; urgency=low
+
+ * Fix relations in the generated control file. (closes: #400544)
+ * Add stable release 2.6.18.4:
+ - bridge: fix possible overflow in get_fdb_entries (CVE-2006-5751)
+ * Add stable release 2.6.18.5:
+ - pcmcia: fix 'rmmod pcmcia' with unbound devices
+ - BLUETOOTH: Fix unaligned access in hci_send_to_sock.
+ - alpha: Fix ALPHA_EV56 dependencies typo
+ - TG3: Add missing unlock in tg3_open() error path.
+ - softmac: fix a slab corruption in WEP restricted key association
+ - AGP: Allocate AGP pages with GFP_DMA32 by default
+ - V4L: Do not enable VIDEO_V4L2 unconditionally
+ - bcm43xx: Drain TX status before starting IRQs
+ - fuse: fix Oops in lookup
+ - UDP: Make udp_encap_rcv use pskb_may_pull
+ - NETFILTER: Missing check for CAP_NET_ADMIN in iptables compat layer
+ - NETFILTER: ip_tables: compat error way cleanup
+ - NETFILTER: ip_tables: fix module refcount leaks in compat error paths
+ - NETFILTER: Missed and reordered checks in {arp,ip,ip6}_tables
+ - NETFILTER: arp_tables: missing unregistration on module unload
+ - NETFILTER: Kconfig: fix xt_physdev dependencies
+ - NETFILTER: xt_CONNSECMARK: fix Kconfig dependencies
+ - NETFILTER: H.323 conntrack: fix crash with CONFIG_IP_NF_CT_ACCT
+ - IA64: bte_unaligned_copy() transfers one extra cache line.
+ - x86 microcode: don't check the size
+ - scsi: clear garbage after CDBs on SG_IO
+ - IPV6: Fix address/interface handling in UDP and DCCP, according to the scoping architecture.
+ * Revert abi changing patch from 2.6.18.5.
+
+ -- Bastian Blank <waldi@debian.org> Sun, 10 Dec 2006 17:51:53 +0100
+
+linux-2.6 (2.6.18-7) unstable; urgency=low
+
+ [ Bastian Blank ]
+ * Emit conflict lines for initramfs generators. (closes: #400305)
+ * Update vserver patch to 2.0.2.2-rc8.
+ * s390: Add patch to fix posix types.
+
+ [ Martin Michlmayr ]
+ * r8169: Add an option to ignore parity errors.
+ * r8169: Ignore parity errors on the Thecus N2100.
+ * rtc: Add patch from Riku Voipio to get RS5C372 going on the N2100.
+ * arm/iop32x: Build RS5C372 support into the kernel.
+
+ [ maximilian attems ]
+ * hfs: Fix up error handling in HFS. (MOKB-14-11-2006)
+ * sata: Avoid null pointer dereference in SATA Promise.
+ * cifs: Set CIFS preferred IO size.
+
+ [ Jurij Smakov ]
+ * Add bugfix/sunhme-pci-enable.patch, fixing the failure of sunhme
+ driver on x86/PCI hosts due to missing pci_enable_device() and
+ pci_set_master() calls, lost during code refactoring upstream.
+ (closes: #397460)
+
+ -- Bastian Blank <waldi@debian.org> Mon, 4 Dec 2006 15:20:30 +0100
+
+linux-2.6 (2.6.18-6) unstable; urgency=low
+
+ [ maximilian attems ]
+ * Enable the new ACT modules globally. They were already set for amd64, hppa
+ and mips/mipsel - needed by newer iproute2. (closes: #395882, #398172)
+ * Fix msync() for LSB 3.1 compliance, backport fedora patches from 2.6.19
+ - mm: tracking shared dirty pages
+ - mm: balance dirty pages
+ - mm: optimize the new mprotect() code a bit
+ - mm: small cleanup of install_page()
+ - mm: fixup do_wp_page()
+ - mm: msync() cleanup (closes: #394392)
+ * [amd64,i386] Enable CONFIG_USB_APPLETOUCH=m (closes: #382298)
+ * Add stable release 2.6.18.3:
+ - x86_64: Fix FPU corruption
+ - e1000: Fix regression: garbled stats and irq allocation during swsusp
+ - POWERPC: Make alignment exception always check exception table
+ - usbtouchscreen: use endpoint address from endpoint descriptor
+ - fix via586 irq routing for pirq 5
+ - init_reap_node() initialization fix
+ - CPUFREQ: Make acpi-cpufreq unsticky again.
+ - SPARC64: Fix futex_atomic_cmpxchg_inatomic implementation.
+ - SPARC: Fix missed bump of NR_SYSCALLS.
+ - NET: __alloc_pages() failures reported due to fragmentation
+ - pci: don't try to remove sysfs files before they are setup.
+ - fix UFS superblock alignment issues
+ - NET: Set truesize in pskb_copy
+ - block: Fix bad data direction in SG_IO (closes: #394690)
+ - cpqarray: fix iostat
+ - cciss: fix iostat
+ - Char: isicom, fix close bug
+ - TCP: Don't use highmem in tcp hash size calculation.
+ - S390: user readable uninitialised kernel memory, take 2.
+ - correct keymapping on Powerbook built-in USB ISO keyboards
+ - USB: failure in usblp's error path
+ - Input: psmouse - fix attribute access on 64-bit systems
+ - Fix sys_move_pages when a NULL node list is passed.
+ - CIFS: report rename failure when target file is locked by Windows
+ - CIFS: New POSIX locking code not setting rc properly to zero on successful
+ - Patch for nvidia divide by zero error for 7600 pci-express card
+ (maybe fixes 398258)
+ - ipmi_si_intf.c sets bad class_mask with PCI_DEVICE_CLASS
+
+ [ Steve Langasek ]
+ * [alpha] new titan-video patch, for compatibility with TITAN and similar
+ systems with non-standard VGA hose configs
+ * [alpha] bugfix for srm_env module from upstream (Jan-Benedict Glaw),
+ makes the module compatible with the current /proc interface so that
+ reads no longer return EFAULT. (closes: #353079)
+ * Bump ABI to 3 for the msync fixes above.
+
+ [ Martin Michlmayr ]
+ * arm: Set CONFIG_BINFMT_MISC=m
+ * arm/ixp4xx: Set CONFIG_ATM=m (and related modules) so CONFIG_USB_ATM has
+ an effect.
+ * arm/iop32x: Likewise.
+ * arm/s3c2410: Unset CONFIG_PM_LEGACY.
+ * arm/versatile: Fix Versatile PCI config byte accesses
+ * arm/ixp4xx: Swap the disk 1 and disk 2 LED definitions so they're right.
+ * mipsel/r5k-cobalt: Unset CONFIG_SCSI_SYM53C8XX_2 because the timeout is
+ just too long.
+ * arm/ixp4xx: Enable more V4L USB devices.
+
+ [ dann frazier ]
+ * Backport various SCTP changesets from 2.6.19, recommended by Vlad Yasevich
+ (closes: #397946)
+ * Add a "Scope of security support" section to README.Debian, recommended
+ by Moritz Muehlenhoff
+
+ [ Thiemo Seufer ]
+ * Enable raid456 for mips/mipsel qemu kernel.
+
+ [ dann frazier ]
+ * The scope of the USR-61S2B unusual_dev entry was tightened, but too
+ strictly. Loosen it to apply to additional devices with a smaller bcd.
+ (closes: #396375)
+
+ [ Sven Luther ]
+ * Added support for TI ez430 development tool ID in ti_usb.
+ Thanks to Oleg Verych for providing the patch.
+
+ [ Christian T. Steigies ]
+ * Added support for Atari EtherNEC, Aranym, video, keyboard, mouse, and serial
+ by Michael Schmitz
+
+ [ Bastian Blank ]
+ * [i386] Reenable AVM isdn card modules. (closes: #386872)
+
+ -- Bastian Blank <waldi@debian.org> Tue, 21 Nov 2006 11:28:09 +0100
+
+linux-2.6 (2.6.18-5) unstable; urgency=low
+
+ [ maximilian attems ]
+ * [s390] readd the fix for "S390: user readable uninitialised kernel memory
+ (CVE-2006-5174)"
+ * [s390] temporarily add patch queued for 2.6.18.3 fixing 32 bit opcodes and
+ instructions.
+
+ [ Thiemo Seufer ]
+ * Fix build failure of hugetlbfs (closes: #397139).
+ * Add kernel configuration for qemu's mips/mipsel emulation, thanks to
+ Aurelien Jarno.
+
+ [ Bastian Blank ]
+ * Update vserver patch to 2.0.2.2-rc6.
+ * Update xen parts for vserver. (closes: #397281)
+
+ [ dann frazier ]
+ * [ia64] Move to upstream version of sal-flush-fix patch, which is slightly
+ different than the early version added in 2.6.18-3.
+
+ [ Frederik Schüler ]
+ * [i386] Acticate CONFIG_SX for all flavours. (closes: #391275)
+
+ [ Steve Langasek ]
+ * [alpha] new asm-subarchs patch: tell the compiler that we're
+ deliberately emitting ev56 or ev6 instructions, so that this code
+ will still compile without having to cripple gcc-4.1's checking of
+ whether the correct instruction set is used. Closes: #397139.
+
+ [ Martin Michlmayr ]
+ * arm/ixp4xx: Enable CONFIG_USB_ATM.
+ * arm/iop32x: Enable CONFIG_PPPOE.
+ * arm/iop32x: Enable CONFIG_USB_ATM.
+
+ -- Bastian Blank <waldi@debian.org> Wed, 8 Nov 2006 17:15:55 +0100
+
+linux-2.6 (2.6.18-4) unstable; urgency=low
+
+ [ Norbert Tretkowski ]
+ * [alpha] Switched to gcc-4.1.
+
+ [ Jurij Smakov ]
+ * [sparc] Remove sparc64-atyfb-xl-gr.patch, it does more harm than
+ good in 2.6.18.
+ * [sparc] Add bugfix/sparc/compat-alloc-user-space-alignment.patch
+ (thanks to David Miller) to make sure that compat_alloc_user_space()
+ always returns memory aligned on a 8-byte boundary on sparc. This
+ prevents a number of unaligned memory accesses, like the ones in
+ sys_msgrcv() and compat_sys_msgrcv(), triggered every 5 seconds whenever
+ fakeroot is running.
+ * [sparc] Add bugfix/sparc/bus-id-size.patch (thanks to David Miller)
+ to ensure that the size of the strings stored in the bus_id field of
+ struct device never exceeds the amount of memory allocated for them
+ (20 bytes). It fixes the situations in which storing longer device
+ names in this field would cause corruption of adjacent memory regions.
+ (closes: #394697).
+ * [sparc] Add bugfix/sparc/sunblade1k-boot-fix.patch (thanks to David
+ Miller) to fix a boottime crash on SunBlade1000.
+ * [sparc] Add bugfix/sparc/t1k-cpu-lockup.patch (thanks to David Miller)
+ to prevent soft CPU lockup on T1000 servers, which can be triggered from
+ userspace, resulting in denial of service.
+
+ [ Martin Michlmayr ]
+ * arm/iop32x: Fix the interrupt of the 2nd Ethernet slot on N2100.
+ * arm/iop32x: Allow USB and serial to co-exist on N2100.
+ * arm/ixp4xx: Add clocksource for Intel IXP4xx platforms.
+ * arm: Enable CONFIG_AUDIT=y again.
+ * arm/ixp4xx: Add the IXP4xx Ethernet driver.
+ * arm/ixp4xx: Build LED support into the kernel.
+ * Add a driver for Fintek F75375S/SP and F75373.
+ * arm/iop32x: Build F75375S/SP support in.
+ * arm/iop32x: Fix the size of the RedBoot config partition.
+
+ [ maximilian attems ]
+ * Add netpoll leak fix.
+ * Add upstream forcedeth swsusp support.
+ * r8169: PCI ID for Corega Gigabit network card.
+ * r8169: the MMIO region of the 8167 stands behin BAR#1.
+ * r8169: Add upstream fix for infinite loop during hotplug.
+ * Bump build-dependency on kernel-package to 10.063.
+ * r8169: pull revert mac address change support.
+ * bcm43xx: Add full netdev watchout timeout patch. (closes: 392065)
+ Thanks Sjoerd Simons <sjoerd@spring.luon.net> for the testing.
+ * Add stable release 2.6.18.2:
+ - Remove not yet released, revert the included patches.
+ - Keep aboves bcm43xx fix, it's more complete.
+ - Watchdog: sc1200wdt - fix missing pnp_unregister_driver()
+ - fix missing ifdefs in syscall classes hookup for generic targets
+ - JMB 368 PATA detection
+ - usbfs: private mutex for open, release, and remove
+ - sound/pci/au88x0/au88x0.c: ioremap balanced with iounmap
+ - x86-64: Fix C3 timer test
+ - Reintroduce NODES_SPAN_OTHER_NODES for powerpc
+ - ALSA: emu10k1: Fix outl() in snd_emu10k1_resume_regs()
+ - IB/mthca: Use mmiowb after doorbell ring
+ - SCSI: DAC960: PCI id table fixup
+ - ALSA: snd_rtctimer: handle RTC interrupts with a tasklet
+ - JFS: pageno needs to be long
+ - SPARC64: Fix central/FHC bus handling on Ex000 systems.
+ - SPARC64: Fix memory corruption in pci_4u_free_consistent().
+ - SPARC64: Fix PCI memory space root resource on Hummingbird.
+ (closes: #392078)
+ - Fix uninitialised spinlock in via-pmu-backlight code.
+ - SCSI: aic7xxx: pause sequencer before touching SBLKCTL
+ - IPoIB: Rejoin all multicast groups after a port event
+ - ALSA: Dereference after free in snd_hwdep_release()
+ - rtc-max6902: month conversion fix
+ - NET: Fix skb_segment() handling of fully linear SKBs
+ - SCTP: Always linearise packet on input
+ - SCSI: aic7xxx: avoid checking SBLKCTL register for certain cards
+ - IPV6: fix lockup via /proc/net/ip6_flowlabel [CVE-2006-5619]
+ - fix Intel RNG detection
+ - ISDN: check for userspace copy faults
+ - ISDN: fix drivers, by handling errors thrown by ->readstat()
+ - splice: fix pipe_to_file() ->prepare_write() error path
+ - ALSA: Fix bug in snd-usb-usx2y's usX2Y_pcms_lock_check()
+ - ALSA: Repair snd-usb-usx2y for usb 2.6.18
+ - PCI: Remove quirk_via_abnormal_poweroff
+ - Bluetooth: Check if DLC is still attached to the TTY
+ - vmscan: Fix temp_priority race
+ - Use min of two prio settings in calculating distress for reclaim
+ - __div64_32 for 31 bit. Fixes funny clock speed on hercules emulator.
+ (closes: 395247)
+ - DVB: fix dvb_pll_attach for mt352/zl10353 in cx88-dvb, and nxt200x
+ - fuse: fix hang on SMP
+ - md: Fix bug where spares don't always get rebuilt properly when they become live.
+ - md: Fix calculation of ->degraded for multipath and raid10
+ - knfsd: Fix race that can disable NFS server.
+ - md: check bio address after mapping through partitions.
+ - fill_tgid: fix task_struct leak and possible oops
+ - uml: fix processor selection to exclude unsupported processors and features
+ - uml: remove warnings added by previous -stable patch
+ - Fix sfuzz hanging on 2.6.18
+ - SERIAL: Fix resume handling bug
+ - SERIAL: Fix oops when removing suspended serial port
+ - sky2: MSI test race and message
+ - sky2: pause parameter adjustment
+ - sky2: turn off PHY IRQ on shutdown
+ - sky2: accept multicast pause frames
+ - sky2: GMAC pause frame
+ - sky2: 88E803X transmit lockup (2.6.18)
+ - tcp: cubic scaling error
+ - mm: fix a race condition under SMC + COW
+ - ALSA: powermac - Fix Oops when conflicting with aoa driver
+ - ALSA: Fix re-use of va_list
+ - posix-cpu-timers: prevent signal delivery starvation
+ - NFS: nfs_lookup - don't hash dentry when optimising away the lookup
+ - uml: make Uml compile on FC6 kernel headers
+ - Fix potential interrupts during alternative patching
+ * Backport atkbd - supress "too many keys" error message.
+ * [s390] Revert temporarly 2.6.18.1 "S390: user readable uninitialised
+ kernel memory (CVE-2006-5174)" fix as it causes ftfbs
+
+ [ Sven Luther ]
+ * [powerpc] Added exception alignement patch from Benjamin Herrenschmidt.
+
+ [ Frederik Schüler ]
+ * Bump ABI to 2.
+ * Update vserver patch to 2.0.2.2-rc4.
+
+ [ Thiemo Seufer ]
+ * Add patches from linux-mips.org's 2.6.18-stable branch:
+ - bugfix/copy-user-highpage.patch, needed for cache alias handling
+ on mips/mipsel/hppa.
+ - bugfix/mips/syscall-wiring.patch, fixes TLS register access, and
+ n32 rt_sigqueueinfo.
+ - bugfix/mips/sb1-flush-cache-data-page.patch, missing cache flush
+ on SB-1.
+ - bugfix/mips/trylock.patch, fix trylock implementation for R1x000
+ and R3xxx.
+ - bugfix/mips/smp-cpu-bringup.patch, correct initialization of
+ non-contiguous CPU topology.
+ - bugfix/mips/header-exports.patch, clean up userland exports of
+ kernel headers.
+ - bugfix/mips/sb1-interrupt-handler.patch, fix broken interrupt
+ routing on SB-1.
+ - bugfix/mips/cache-alias.patch, fixes #387498 for mips/mipsel.
+ - bugfix/mips/ip22-zilog-console.patch, fix long delays seen with
+ SGI ip22 serial console.
+ - bugfix/mips/signal-handling.patch, fixes a signal handling race
+ condition shown with gdb.
+ - bugfix/mips/sb1-duart-tts.patch, replaces mips-sb1-duart-tts.patch,
+ use standard Linux names for SB-1 consoles.
+ - bugfix/mips/wait-race.patch, correct behaviour of the idle loop.
+ - bugfix/mips/sgi-ioc3.patch, checksumming fix for IOC3 network
+ driver.
+ - features/mips/qemu-kernel.patch, support for the mips/mipsel
+ machine emulated by Qemu.
+ - features/mips/backtrace.patch, reimplementation of stack analysis
+ and backtrace printing, useful for in-kernel debugging.
+ - bugfix/mips/dec-scsi.patch, replaces mips-dec-scsi.patch, fixes DSP
+ SCSI driver for DECstations.
+ - bugfix/mips/dec-serial.patch, replaces mips-dec-serial.patch, fix
+ serial console handling on DECstations.
+
+ -- Frederik Schüler <fs@debian.org> Sat, 4 Nov 2006 18:45:02 +0100
+
+linux-2.6 (2.6.18-3) unstable; urgency=low
+
+ [ Bastian Blank ]
+ * Fix home of patch apply script.
+ * Unify CPUSET option. (closes: #391931)
+ * Support xen version 3.0.3-1.
+ * Add AHCI suspend support.
+ * Add patch to support bindmount without nodev on vserver.
+ * Update fedora xen patch to changeset 36252.
+
+ [ Steve Langasek ]
+ * [alpha] restore alpha-prctl.patch, which keeps disappearing every time
+ there's a kernel upgrade :/
+
+ [ Frederik Schüler ]
+ * Activate CONFIG_NET_CLS_* globaly. (Closes: #389918)
+ * Make CONFIG_EFI_VARS modular on i386. (Closes: #381951)
+ * Activate CONFIG_SCSI_ARCMSR on amd64, powerpc, sparc too.
+ * [vserver] Activate HARDCPU and HARDCPU_IDLE.
+ * [vserver] Upgrade to vs2.0.2.2-rc2.
+
+ [ maximilian attems ]
+ * [mipsel] Disable CONFIG_SECURITY_SECLVL on DECstations too.
+ * Add stable release 2.6.18.1:
+ - add utsrelease.h to the dontdiff file
+ - V4L: copy-paste bug in videodev.c
+ - block layer: elv_iosched_show should get elv_list_lock
+ - NETFILTER: NAT: fix NOTRACK checksum handling
+ - bcm43xx: fix regressions in 2.6.18 (Closes: #392065)
+ - x86-64: Calgary IOMMU: Fix off by one when calculating register space
+ location
+ - ide-generic: jmicron fix
+ - scx200_hrt: fix precedence bug manifesting as 27x clock in 1 MHz mode
+ - invalidate_inode_pages2(): ignore page refcounts
+ - rtc driver rtc-pcf8563 century bit inversed
+ - fbdev: correct buffer size limit in fbmem_read_proc()
+ - mm: bug in set_page_dirty_buffers
+ - TCP: Fix and simplify microsecond rtt sampling
+ - MD: Fix problem where hot-added drives are not resynced.
+ - IPV6: Disable SG for GSO unless we have checksum
+ - PKT_SCHED: cls_basic: Use unsigned int when generating handle
+ - sata_mv: fix oops
+ - [SPARC64]: Kill bogus check from bootmem_init().
+ - IPV6: bh_lock_sock_nested on tcp_v6_rcv
+ - [CPUFREQ] Fix some more CPU hotplug locking.
+ - SPARC64: Fix serious bug in sched_clock() on sparc64
+ - Fix VIDIOC_ENUMSTD bug
+ - load_module: no BUG if module_subsys uninitialized
+ - i386: fix flat mode numa on a real numa system
+ - cpu to node relationship fixup: map cpu to node
+ - cpu to node relationship fixup: acpi_map_cpu2node
+ - backlight: fix oops in __mutex_lock_slowpath during head
+ /sys/class/graphics/fb0/*
+ - do not free non slab allocated per_cpu_pageset
+ - rtc: lockdep fix/workaround
+ - powerpc: Fix ohare IDE irq workaround on old powermacs
+ - sysfs: remove duplicated dput in sysfs_update_file
+ - powerpc: fix building gdb against asm/ptrace.h
+ - Remove offsetof() from user-visible <linux/stddef.h>
+ - Clean up exported headers on CRIS
+ - Fix v850 exported headers
+ - Don't advertise (or allow) headers_{install,check} where inappropriate.
+ - Remove UML header export
+ - Remove ARM26 header export.
+ - Fix H8300 exported headers.
+ - Fix m68knommu exported headers
+ - Fix exported headers for SPARC, SPARC64
+ - Fix 'make headers_check' on m32r
+ - Fix 'make headers_check' on sh64
+ - Fix 'make headers_check' on sh
+ - Fix ARM 'make headers_check'
+ - One line per header in Kbuild files to reduce conflicts
+ - sky2 network driver device ids
+ - sky2: tx pause bug fix
+ - netdrvr: lp486e: fix typo
+ - mv643xx_eth: fix obvious typo, which caused build breakage
+ - zone_reclaim: dynamic slab reclaim
+ - Fix longstanding load balancing bug in the scheduler
+ - jbd: fix commit of ordered data buffers
+ - ALSA: Fix initiailization of user-space controls
+ - USB: Allow compile in g_ether, fix typo
+ - IB/mthca: Fix lid used for sending traps
+ - S390: user readable uninitialised kernel memory (CVE-2006-5174)
+ - zd1211rw: ZD1211B ASIC/FWT, not jointly decoder
+ - V4L: pvrusb2: Limit hor res for 24xxx devices
+ - V4L: pvrusb2: Suppress compiler warning
+ - V4L: pvrusb2: improve 24XXX config option description
+ - V4L: pvrusb2: Solve mutex deadlock
+ - DVB: cx24123: fix PLL divisor setup
+ - V4L: Fix msp343xG handling regression
+ - UML: Fix UML build failure
+ - uml: use DEFCONFIG_LIST to avoid reading host's config
+ - uml: allow using again x86/x86_64 crypto code
+ - NET_SCHED: Fix fallout from dev->qdisc RCU change
+ * Add backported git patch remving BSD secure level - request by the
+ Debian Security Team. (closes: 389282)
+ * [powerpc] Add DAC960-ipr PCI id table fixup.
+ * [powerpc] Fix uninitialised spinlock in via-pmu-backlight code.
+ * Fix serial_cs resume handling.
+ * Fix oops when removing suspended serial port.
+ * Check if DLC is still attached to the TTY.
+ * Add fedora backport of i965 DRM support.
+
+ [ Martin Michlmayr ]
+ * [mips] Apply some patches from linux-mips' linux-2.6.18-stable GIT tree:
+ - The o32 fstatat syscall behaves differently on 32 and 64 bit kernels
+ - fstatat syscall names
+ - BCM1480: Mask pending interrupts against c0_status.im.
+ - Cobalt: Time runs too quickly
+ - Show actual CPU information in /proc/cpuinfo
+ - Workaround for bug in gcc -EB / -EL options
+ - Do not use -msym32 option for modules
+ - Fix O32 personality(2) call with 0xffffffff argument
+ - Use compat_sys_mount
+
+ [ dann frazier ]
+ * [ia64]: Fix booting on HP cell systems, thanks to Troy Heber
+ - Enable CONFIG_HUGETLBFS
+ - bugfix/ia64/sal-flush-fix.patch: delay sal cache flush
+ * bugfix/sky2-receive-FIFO-fix.patch: fix sky2 hangs on some chips
+ Thanks to Stephen Hemminger for the patch. (Closes: #391382)
+ * features/all/drivers/cciss-support-for-gt-2TB-volumes.patch:
+ Add support for > 2TB volumes
+ * bugfix/sym2-dont-claim-raid-devs.patch: Prevent cpqarray/sym2 conflict
+ by telling sym2 not to claim raid devices. (Closes: #391384)
+
+ [ Sven Luther ]
+ * [powerpc] Added AMD74xx driver module to the powerpc64 flavour
+ (Closes: #391861).
+
+ [ Kyle McMartin ]
+ * [hppa] Force CROSS_COMPILE=hppa64-linux-gnu- (closes: #389296)
+
+ -- Bastian Blank <waldi@debian.org> Sat, 21 Oct 2006 15:59:43 +0200
+
+linux-2.6 (2.6.18-2) unstable; urgency=low
+
+ [ Bastian Blank ]
+ * hppa: Fix compiler dependencies. (closes: #389296)
+ * Make cfq the default io scheduler.
+ * Add arcmsr (Areca) driver.
+ * powerpc/prep: Fix compatibility asm symlink.
+ * m68k: Disable initramfs support.
+
+ [ Kyle McMartin ]
+ * hppa: Add parisc patchset.
+
+ [ Norbert Tretkowski ]
+ * [alpha] Workaround undefined symbols by setting CONFIG_SCSI=y for smp flavour.
+ (closes: #369517)
+
+ [ Christian T. Steiges ]
+ * m68k: Update patches for 2.6.18.
+ * m68k: Re-Add m68k-as and m68k-macro patch which allow building with current binutils.
+ * m68k: disable CONFIG_AUDIT for m68k.
+ * m68k/mac: add m68k-no-backlight and m68k-fbcon patch.
+ * m68k/mac: enable SONIC, disable all ADB but CUDA.
+
+ [ Jurij Smakov ]
+ * Add bugfix/proc-fb-reading.patch to fix the inconsistent behaviour
+ of /proc/fb. (Closes: #388815)
+ * sparc: Enable vserver flavour for sparc64. (Closes: #386656)
+
+ -- Bastian Blank <waldi@debian.org> Fri, 29 Sep 2006 14:12:19 +0200
+
+linux-kbuild-2.6 (2.6.18-1) unstable; urgency=low
+
+ * New upstream version.
+ * Use included headers. (closes: #382286, #384211)
+
+ -- Bastian Blank <waldi@debian.org> Mon, 25 Sep 2006 21:45:50 +0200
+
+linux-2.6 (2.6.18-1) unstable; urgency=low
+
+ The unpruned release
+
+ [ Martin Michlmayr ]
+ * Bump build-dependency on kernel-package to 10.054.
+ * arm/iop32x: Build ext2/3 as modules.
+ * arm/iop32x: Disable CONFIG_EMBEDDED.
+ * mipsel/r5k-cobalt: Enable ISDN.
+ * arm/footbridge: Enable the CIFS module (closes: #274808).
+ * arm/nslu2: Drop flavour since this machine is supported by arm/ixp4xx.
+ * arm: Make get_unaligned() work with const pointers and GCC 4.1.
+ * mipsel/r5k-cobalt: Enable CONFIG_BONDING as a module.
+ * arm/iop32x: Likewise.
+ * arm/ixp4xx: Likewise.
+ * arm: Disable CONFIG_AUDIT for now since it's broken.
+
+ [ Sven Luther ]
+ * [powerpc] Enabled the -prep flavour. (Closes: #359025)
+ * [powerpc] The sisfb framebuffer device is now builtin.
+ * [powerpc] Updated the powerpc serial patch. This fixes the XServe serial
+ port, but at the cost powermac pcmcia serial cards support.
+ Thanks go to Mark Hymers for providing the patch.
+ (Closes: #364637, #375194)
+ * [powerpc] Added patch to fix oldworld/quik booting.
+ Thanks fo to Christian Aichinger for investigating to Benjamin
+ Herrenschmidt for providing the patch. (Closes: #366620, #375035).
+ * [powerpc] Fixes hvc_console caused suspsend-to-disk breakage. Thanks to
+ Andrew Morton for providing the patch. (Closes: #387178)
+ * [powerpc] Disabled mv643xx_eth on powerpc64 flavours, as there never was a
+ Marvell Discovery northbrige for 64bit powerpc cpus.
+
+ [ Frederik Schüler ]
+ * Remove obsolete options from amd64 and i386 configs.
+ * Deactivate EVBUG.
+ * Make PARPORT options global.
+ * [i386] Add class definition for 486 flavour.
+
+ [ maximilian attems ]
+ * Enable CONFIG_PRINTER=m for all powerpc flavours.
+ * Enable the new alsa CONFIG_SND_AOA framework for powerpc.
+ * Add the merged advansys pci table patch.
+
+ [ Bastian Blank ]
+ * hppa: Use gcc-4.1.
+ * Only provide 16 legacy ptys.
+
+ [ Norbert Tretkowski ]
+ * [alpha] Updated configs.
+ * [alpha] Disabled CONFIG_AUDIT, broken.
+ * [alpha] Added vserver flavour.
+
+ -- Bastian Blank <waldi@debian.org> Sun, 24 Sep 2006 15:55:37 +0200
+
+linux-2.6 (2.6.17-9) unstable; urgency=medium
+
+ [ Bastian Blank ]
+ * Update vserver patch to 2.0.2.
+ - Fix possible priviledge escalation in remount code. (CVE-2006-4243)
+
+ [ Frederik Schüler ]
+ * Add stable release 2.5.17.12:
+ - sky2: version 1.6.1
+ - sky2: fix fiber support
+ - sky2: MSI test timing
+ - sky2: use dev_alloc_skb for receive buffers
+ - sky2: clear status IRQ after empty
+ - sky2: accept flow control
+ - dm: Fix deadlock under high i/o load in raid1 setup.
+ - Remove redundant up() in stop_machine()
+ - Missing PCI id update for VIA IDE
+ - PKTGEN: Fix oops when used with balance-tlb bonding
+ - PKTGEN: Make sure skb->{nh,h} are initialized in fill_packet_ipv6() too.
+ - Silent data corruption caused by XPC
+ - uhci-hcd: fix list access bug
+ - binfmt_elf: fix checks for bad address
+ - [s390] bug in futex unqueue_me
+ - fcntl(F_SETSIG) fix
+ - IPV6 OOPS'er triggerable by any user
+ - SCTP: Fix sctp_primitive_ABORT() call in sctp_close().
+ - SPARC64: Fix X server crashes on sparc64
+ - TG3: Disable TSO by default
+ - dm: mirror sector offset fix
+ - dm: fix block device initialisation
+ - dm: add module ref counting
+ - dm: fix mapped device ref counting
+ - dm: add DMF_FREEING
+ - dm: change minor_lock to spinlock
+ - dm: move idr_pre_get
+ - dm: fix idr minor allocation
+ - dm snapshot: unify chunk_size
+ - Have ext2 reject file handles with bad inode numbers early.
+ - Allow per-route window scale limiting
+ - bridge-netfilter: don't overwrite memory outside of skb
+ - fix compilation error on IA64
+ - Fix output framentation of paged-skbs
+ - spectrum_cs: Fix firmware uploading errors
+ - TEXTSEARCH: Fix Boyer Moore initialization bug
+ * Add stable release 2.6.17.13:
+ - lib: add idr_replace
+ - pci_ids.h: add some VIA IDE identifiers
+ * Remove patches merged upstream:
+ - s390-kernel-futex-barrier.patch
+ * Unpatch ia64-mman.h-fix.patch
+
+ -- Bastian Blank <waldi@debian.org> Wed, 13 Sep 2006 14:54:14 +0200
+
+linux-2.6 (2.6.17-8) unstable; urgency=low
+
+ [ Martin Michlmayr ]
+ * arm/ixp4xx: Enable CONFIG_W1.
+
+ [ dann frazier ]
+ * sound-pci-hda-mac-mini-quirks.diff, sound-pci-hda-intel-d965.diff
+ sound-pci-hda-mac-mini-intel945.diff:
+ Updates to patch_sigmatel.c to add x86 mac-mini sound support
+ Thanks to Matt Kraai. (closes: #384972)
+
+ [ Kyle McMartin ]
+ * hppa: Re-enable pa8800 fixing patches from James Bottomley.
+ Pulled fresh from parisc-linux git tree.
+ * ia64: Pull in compile-failure fix from Christian Cotte-Barrot.
+ Pulled from linux-ia64 mailing list. Fix is correct.
+ * hppa/alpha/mips: Fix compile-failure due to missing arch_mmap_check. Patch sent
+ upstream to stable@kernel.org.
+
+ [ dann frazier ]
+ * sym2: only claim "Storage" class devices - the cpqarray driver should be
+ used for 5c1510 devices in RAID mode. (closes: #380272)
+
+ [ Bastian Blank ]
+ * Backport change to allow all hypercalls for xen.
+
+ -- Bastian Blank <waldi@debian.org> Thu, 31 Aug 2006 12:12:51 +0200
+
+linux-2.6 (2.6.17-7) unstable; urgency=low
+
+ [ Martin Michlmayr ]
+ * arm/iop32x: Enable CONFIG_BLK_DEV_OFFBOARD.
+ * arm/iop32x: Unset CONFIG_BLK_DEV_AMD74XX since it fails on ARM
+ with "Unknown symbol pci_get_legacy_ide_irq".
+ * arm/iop32x: Enable a number of MD and DM modules.
+ * arm/iop32x: Enable some more USB network modules.
+ * mipsel/r5k-cobalt: Increase 8250 NR_UARTS and RUNTIME_UARTS to 4.
+ * mipsel/r5k-cobalt: Fix MAC detection problem on Qube 2700.
+
+ [ Bastian Blank ]
+ * Update vserver patch to 2.0.2-rc29.
+ * Add stable release 2.6.17.10:
+ - Fix possible UDF deadlock and memory corruption (CVE-2006-4145)
+ - elv_unregister: fix possible crash on module unload
+ - Fix sctp privilege elevation (CVE-2006-3745)
+
+ [ maximilian attems ]
+ * Add RAM range to longclass for -bigmem. (closes: 382799)
+ * Add stable release 2.6.17.9:
+ - powerpc: Clear HID0 attention enable on PPC970 at boot time
+ (CVE-2006-4093)
+ * Add stable release 2.6.17.11:
+ - Fix ipv4 routing locking bug
+ - disable debugging version of write_lock()
+ - PCI: fix ICH6 quirks
+ - 1394: fix for recently added firewire patch that breaks things on ppc
+ - Fix IFLA_ADDRESS handling
+ - Fix BeFS slab corruption
+ - Fix timer race in dst GC code
+ - Have ext3 reject file handles with bad inode numbers early
+ - Kill HASH_HIGHMEM from route cache hash sizing
+ - sys_getppid oopses on debug kernel
+ - IA64: local DoS with corrupted ELFs
+ - tpm: interrupt clear fix
+ - ulog: fix panic on SMP kernels
+ - dm: BUG/OOPS fix
+ - MD: Fix a potential NULL dereference in md/raid1
+ - ip_tables: fix table locking in ipt_do_table
+ - swsusp: Fix swap_type_of
+ - sky2: phy power problem on 88e805x
+ - ipx: header length validation needed
+
+ [ Frederik Schüler ]
+ * Activate CONFIG_R8169_VLAN on amd64. (closes: #383707)
+ * Activate EFI boot support on i386. (closes: #381951)
+
+ [ dann frazier ]
+ * Include module.lds in headers package if it exists. (closes: #342246)
+ * Add Apple MacBook product IDs to usbhid and set
+ CONFIG_USB_HIDINPUT_POWERBOOK=y on i386 and amd64. (closes: #383620)
+
+ -- Bastian Blank <waldi@debian.org> Thu, 24 Aug 2006 15:54:51 +0000
+
+linux-2.6 (2.6.17-6) unstable; urgency=low
+
+ [ maximilian attems ]
+ * debian/arch/i386/defines: Activate 686-bigmem flavour for enterprise
+ usage.
+ * Add ubuntu pci table patch for scsi drivers advansys and fdomain.
+
+ [ Martin Michlmayr ]
+ * arm/armeb: Use gcc-4.1.
+ * mips/mipsel: Use gcc-4.1.
+ * arm/ixp4xx: Update config based on the NSLU2 config.
+ * arm/s3c2410: Unset CONFIG_DEBUG_INFO.
+ * arm/iop32x: xscale: don't mis-report 80219 as an iop32x
+ * arm/iop32x: Add an MTD map for IOP3xx boards
+ * arm/iop32x: Add support for the Thecus N2100.
+ * arm/iop32x: Add support for the GLAN Tank.
+ * arm/iop32x: Add a flavour for IOP32x based machines.
+
+ [ Bastian Blank ]
+ * Shrink short descriptions.
+ * Make gcc-4.1 the default compiler.
+ * [powerpc]: Use gcc-4.1.
+ * Move latest and transitional packages to linux-latest-2.6.
+
+ [ Frederik Schüler ]
+ * [amd64] Add smp-alternatives backport.
+ * [amd64] Drop smp flavours.
+ * [amd64] Merge k8 and p4 flavours into a generic one, following upstreams
+ advice.
+ * Activate BSD_PROCESS_ACCT_V3.
+ * Add stable release 2.6.17.8:
+ - ALSA: Don't reject O_RDWR at opening PCM OSS
+ - Add stable branch to maintainers file
+ - tty serialize flush_to_ldisc
+ - S390: fix futex_atomic_cmpxchg_inatomic
+ - Fix budget-av compile failure
+ - cond_resched() fix
+ - e1000: add forgotten PCI ID for supported device
+ - ext3: avoid triggering ext3_error on bad NFS file handle
+ - ext3 -nobh option causes oops
+ - Fix race related problem when adding items to and svcrpc auth cache.
+ - ieee1394: sbp2: enable auto spin-up for Maxtor disks
+ - invalidate_bdev() speedup
+ - Sparc64 quad-float emulation fix
+ - VLAN state handling fix
+ - Update frag_list in pskb_trim
+ - UHCI: Fix handling of short last packet
+ - sky2: NAPI bug
+ - i2c: Fix 'ignore' module parameter handling in i2c-core
+ - scx200_acb: Fix the block transactions
+ - scx200_acb: Fix the state machine
+ - H.323 helper: fix possible NULL-ptr dereference
+ - Don't allow chmod() on the /proc/<pid>/ files
+ - PCI: fix issues with extended conf space when MMCONFIG disabled because of e820
+
+ [ Sven Luther ]
+ * [powerpc] Added console=hvsi0 too to CMDLINE to the powerpc64 flavour, for
+ non-virtualized IBM power machines serial console.
+
+ -- Bastian Blank <waldi@debian.org> Fri, 11 Aug 2006 19:58:06 +0200
+
+linux-kbuild-2.6 (2.6.17-3) unstable; urgency=low
+
+ * Replace own modpost with original one.
+
+ -- Bastian Blank <waldi@debian.org> Tue, 1 Aug 2006 11:01:18 +0200
+
+linux-2.6 (2.6.17-5) unstable; urgency=low
+
+ [ Martin Michlmayr ]
+ * [arm/nslu2] Enable CONFIG_USB_EHCI_SPLIT_ISO. Closes: #378554
+
+ [ maximilian attems ]
+ * Add stable release 2.6.17.7:
+ - BLOCK: Fix bounce limit address check
+ - v4l/dvb: Fix budget-av frontend detection
+ - v4l/dvb: Fix CI on old KNC1 DVBC cards
+ - v4l/dvb: Fix CI interface on PRO KNC1 cards
+ - v4l/dvb: Backport fix to artec USB DVB devices
+ - v4l/dvb: Backport the DISEQC regression fix to 2.6.17.x
+ - v4l/dvb: stradis: dont export MODULE_DEVICE_TABLE
+ - pnp: suppress request_irq() warning
+ - generic_file_buffered_write(): handle zero-length iovec segments
+ - serial 8250: sysrq deadlock fix
+ - Reduce ACPI verbosity on null handle condition
+ - ieee80211: TKIP requires CRC32
+ - Make powernow-k7 work on SMP kernels.
+ - via-velocity: the link is not correctly detected when the device starts
+ - Add missing UFO initialisations
+ - USB serial ftdi_sio: Prevent userspace DoS (CVE-2006-2936)
+ - cdrom: fix bad cgc.buflen assignment
+ - splice: fix problems with sys_tee()
+ - fix fdset leakage
+ - struct file leakage
+ - XFS: corruption fix
+ - v4l/dvb: Kconfig: fix description and dependencies for saa7115 module
+ - dvb-bt8xx: fix frontend detection for DViCO FusionHDTV DVB-T Lite rev 1.2
+ - IB/mthca: restore missing PCI registers after reset
+ - v4l/dvb: Backport the budget driver DISEQC instability fix
+ - Fix IPv4/DECnet routing rule dumping
+ - pdflush: handle resume wakeups
+ - x86_64: Fix modular pc speaker
+ - Fix powernow-k8 SMP kernel on UP hardware bug.
+ - ALSA: RME HDSP - fixed proc interface (missing {})
+ - ALSA: au88x0 - Fix 64bit address of MPU401 MMIO port
+ - ALSA: Fix a deadlock in snd-rtctimer
+ - ALSA: Fix missing array terminators in AD1988 codec support
+ - ALSA: Fix model for HP dc7600
+ - ALSA: Fix mute switch on VAIO laptops with STAC7661
+ - ALSA: fix the SND_FM801_TEA575X dependencies
+ - ALSA: Fix undefined (missing) references in ISA MIRO sound driver
+ - ALSA: Fix workaround for AD1988A rev2 codec
+ - ALSA: hda-intel - Fix race in remove
+ - Suppress irq handler mismatch messages in ALSA ISA drivers
+ - PKT_SCHED: Fix illegal memory dereferences when dumping actions
+ - PKT_SCHED: Return ENOENT if action module is unavailable
+ - PKT_SCHED: Fix error handling while dumping actions
+ - generic_file_buffered_write(): deadlock on vectored write
+ - ethtool: oops in ethtool_set_pauseparam()
+ - memory hotplug: solve config broken: undefined reference to `online_page'
+ * Add budget-av-compile-fix.patch stable compile fix.
+ * Enable in all configs setting SND_FM801_TEA575X SND_FM801_TEA575X_BOOL=y.
+
+ -- Bastian Blank <waldi@debian.org> Sat, 29 Jul 2006 13:30:06 +0200
+
+linux-2.6 (2.6.17-4) unstable; urgency=low
+
+ [ Bastian Blank ]
+ * Add stable release 2.6.17.5:
+ - Fix nasty /proc vulnerability (CVE-2006-3626)
+ * Add stable release 2.6.17.6:
+ - Relax /proc fix a bit
+ * Set section of images to admin.
+
+ [ dann frazier ]
+ * [ia64] Drop the non-SMP flavours; they are not well maintained upstream.
+ Note that the non-SMP flavours have been identical to the SMP builds
+ since 2.6.13-1; this was to avoid having to drop then re-add these
+ flavours if upstream resolved the issue - but that never happened.
+ Note that this is a measurable performance penalty on non-SMP systems.
+
+ -- Bastian Blank <waldi@debian.org> Mon, 17 Jul 2006 11:08:41 +0200
+
+linux-2.6 (2.6.17-3) unstable; urgency=low
+
+ [ maximilian attems ]
+ * Add stable release 2.6.17.2:
+ - ide-io: increase timeout value to allow for slave wakeup
+ - NTFS: Critical bug fix (affects MIPS and possibly others)
+ - Link error when futexes are disabled on 64bit architectures
+ - SCTP: Reset rtt_in_progress for the chunk when processing its sack.
+ - SPARC32: Fix iommu_flush_iotlb end address
+ - ETHTOOL: Fix UFO typo
+ - UML: fix uptime
+ - x86: compile fix for asm-i386/alternatives.h
+ - bcm43xx: init fix for possible Machine Check
+ - SCTP: Fix persistent slowdown in sctp when a gap ack consumes rx buffer.
+ - kbuild: bugfix with initramfs
+ - Input: return correct size when reading modalias attribute
+ - ohci1394: Fix broken suspend/resume in ohci1394
+ - idr: fix race in idr code
+ - USB: Whiteheat: fix firmware spurious errors
+ - libata: minor patch for ATA_DFLAG_PIO
+ - SCTP: Send only 1 window update SACK per message.
+ - PFKEYV2: Fix inconsistent typing in struct sadb_x_kmprivate.
+ - SCTP: Limit association max_retrans setting in setsockopt.
+ - SCTP: Reject sctp packets with broadcast addresses.
+ - IPV6: Sum real space for RTAs.
+ - IPV6 ADDRCONF: Fix default source address selection without
+ CONFIG_IPV6_PRIVACY
+ - IPV6: Fix source address selection.
+ * Add stable release 2.6.17.3:
+ - NETFILTER: SCTP conntrack: fix crash triggered by packet without chunks
+ [CVE-2006-2934]
+ * Deapply merged sparc32-iotlb.patch.
+ * Fix README.Debian: Correct svn location, remove old boot param bswap
+ reference, the asfs patch is in the Debian kernel. Remove reference to
+ AMD 768 erratum 10, it was solved in 2.6.12. Add wording corrections.
+ * Set CONFIG_SERIAL_8250_RN_UARTS=16 for all archs beside mips/m68k unless
+ explicitly set on a specific value. (closes: 377151)
+ * Add stable release 2.6.17.4:
+ - fix prctl privilege escalation and suid_dumpable (CVE-2006-2451)
+
+ [ Sven Luther ]
+ * Re-enabled fs-asfs patch.
+
+ [ Thiemo Seufer ]
+ * [mips,mipsel] Fix sb1 interrupt handlers.
+ * [mips,mipsel] Fix devfs-induced build failure in sb1250 serial driver.
+ * [mips] SGI ip22 RTC was broken, fixed thanks to Julien Blache.
+ * [mips] Fix SGI ip22 serial console, thanks to Julien Blache.
+
+ [ Martin Michlmayr ]
+ * [arm/nslu2] Enable HFS and some other filesystems.
+ * [arm/nslu2] Unset CONFIG_USB_STORAGE_DEBUG. Closes: #377853.
+
+ -- Bastian Blank <waldi@debian.org> Thu, 13 Jul 2006 13:14:53 +0200
+
+linux-kbuild-2.6 (2.6.17-2) unstable; urgency=low
+
+ * Fix uninitialied variable. (closes: #377656)
+
+ -- Bastian Blank <waldi@debian.org> Tue, 11 Jul 2006 10:10:24 +0200
+
+linux-kbuild-2.6 (2.6.17-1) unstable; urgency=low
+
+ * Initial release. (closes: #368544)
+
+ -- Bastian Blank <waldi@debian.org> Sat, 1 Jul 2006 19:10:07 +0200
+
+linux-2.6 (2.6.17-2) unstable; urgency=low
+
+ [ Jurij Smakov ]
+ * [sparc] Switch to gcc-4.1 as it produces a working kernel,
+ while gcc-4.0 does not. No ABI bump neccessary, because
+ 2.6.17-1 sparc binaries never made it to the archive.
+ * [sparc32] Add sparc32-iotlb.patch to fix DMA errors on sparc32.
+
+ [ Sven Luther ]
+ * [powerpc] Added console=hvc0 default commandline option to powerpc64 flavour.
+ * [powerpc] Fixed mkvmlinuz support, which was missing from -1. (Closes: #375645)
+ * [powerpc] Added PowerBook HID support for last-gen PowerBook keyboards.
+ (Closes: #307327)
+
+ [ Martin Michlmayr ]
+ * [mipsel] Fix compilation error in dz serial driver.
+ * [mipsel] Update configs.
+ * [mipsel] Add a build fix for the Cobalt early console support.
+ * [arm/nslu2] Disable SE Linux support for now so the kernel fits into flash.
+
+ [ Christian T. Steigies ]
+ * [m68k] Update patches for 2.6.17.
+ * [m68k] Add m68k-as and m68k-macro patch which allow building with current binutils.
+ * [m68k] Disable all subarches but amiga and mac for official linux-images.
+
+ [ Kyle McMartin ]
+ * [hppa] Update patchset (2.6.17-pa6) from parisc-linux.org.
+ Which fixes relocation errors in modules with 64-bit kernels, and
+ a softlockup on non-SMP flavours with gettimeofday.
+
+ -- Bastian Blank <waldi@debian.org> Thu, 29 Jun 2006 18:49:35 +0200
+
+linux-2.6 (2.6.17-1) unstable; urgency=low
+
+ [ Frederik Schüler ]
+ * New upstream release.
+ * [amd64] Use gcc 4.1.
+ * [amd64] Drop amd64-generic flavor. We will use amd64-k8 for the
+ installer.
+
+ [ Martin Michlmayr ]
+ * [mips] Update patches for 2.6.17.
+ * [arm] Update configs.
+ * [armeb] Update configs.
+
+ [ Thiemo Seufer ]
+ * [mips] Fix SWARM FPU detection.
+ * [mips] Update configurations.
+
+ [ Kyle McMartin ]
+ * [hppa] Set PDC_CHASSIS_WARN to y.
+ * [hppa] Update patchset (2.6.17-pa2) from parisc-linux.org.
+ * [hppa] Change NR_CPUS to 8 from 32 on both SMP flavours.
+ * [hppa] Set PARISC_PAGE_SIZE to 4K on all platforms.
+
+ [ Bastian Blank ]
+ * [s390] Use gcc 4.1.
+ * [i386] Enable REGPARM.
+ * [i386] Use gcc 4.1.
+ * [powerpc] Disable prep.
+
+ [ dann frazier ]
+ * [ia64] Update configs
+ * [ia64] Use gcc 4.1.
+
+ [ maximilian attems ]
+ * Add stable release 2.6.17.1:
+ - xt_sctp: fix endless loop caused by 0 chunk length (CVE-2006-3085)
+
+ -- Bastian Blank <waldi@debian.org> Thu, 22 Jun 2006 12:13:15 +0200
+
+linux-2.6 (2.6.16+2.6.17-rc3-0experimental.1) experimental; urgency=low
+
+ [ Frederik Schüler ]
+ * New upstream release candidate.
+ * Switch HZ from 1000 to 250, following upstreams default.
+ * Activate CONFIG_BCM43XX_DEBUG.
+
+ [ maximilian attems ]
+ * Disable broken and known unsecure LSM modules: CONFIG_SECURITY_SECLVL,
+ CONFIG_SECURITY_ROOTPLUG. Upstream plans to remove them for 2.6.18
+
+ -- Frederik Schüler <fs@debian.org> Sun, 7 May 2006 17:06:29 +0200
+
+linux-2.6.16 (2.6.16-18) unstable; urgency=high
+
+ [ Sven Luther ]
+ * [powerpc] Added console=hvsi0 too to CMDLINE to the powerpc64 flavour,
+ for non-virtualized IBM power machines serial console.
+
+ [ dann frazier ]
+ * fs-ext3-bad-nfs-handle.patch: avoid triggering ext3_error on bad NFS
+ file handle (CVE-2006-3468)
+ * cdrom-bad-cgc.buflen-assign.patch: fix buffer overflow in dvd_read_bca
+ * usb-serial-ftdi_sio-dos.patch: fix userspace DoS in ftdi_sio driver
+
+ [ Bastian Blank ]
+ * Update xen patch to changeset 9762.
+
+ -- Frederik Schüler <fs@debian.org> Fri, 18 Aug 2006 20:29:17 +0200
+
+linux-2.6.16 (2.6.16-17) unstable; urgency=high
+
+ [ Martin Michlmayr ]
+ * Add stable release 2.6.16.22:
+ - powernow-k8 crash workaround
+ - NTFS: Critical bug fix (affects MIPS and possibly others)
+ - JFS: Fix multiple errors in metapage_releasepage
+ - SPARC64: Fix D-cache corruption in mremap
+ - SPARC64: Respect gfp_t argument to dma_alloc_coherent().
+ - SPARC64: Fix missing fold at end of checksums.
+ - scsi_lib.c: properly count the number of pages in scsi_req_map_sg()
+ - I2O: Bugfixes to get I2O working again
+ - Missed error checking for intent's filp in open_namei().
+ - tmpfs: time granularity fix for [acm]time going backwards
+ - USB: Whiteheat: fix firmware spurious errors
+ - fs/namei.c: Call to file_permission() under a spinlock in do_lookup_path()
+ * Add stable release 2.6.16.23:
+ - revert PARPORT_SERIAL should depend on SERIAL_8250_PCI patch
+ - NETFILTER: SCTP conntrack: fix crash triggered by packet without
+ chunks (CVE-2006-2934)
+ * Add stable release 2.6.16.24:
+ - fix prctl privilege escalation and suid_dumpable (CVE-2006-2451)
+ * Add stable release 2.6.16.25:
+ - Fix nasty /proc vulnerability (CVE-2006-3626)
+ * Relax /proc fix a bit (Linus Torvalds)
+
+ * [arm/nslu2] Unset CONFIG_USB_STORAGE_DEBUG. Closes: #377853.
+ * [mips] SGI ip22 RTC was broken, fixed thanks to Julien Blache.
+ * [mips] Fix SGI ip22 serial console, thanks to Julien Blache.
+
+ [ Bastian Blank ]
+ * Fix vserver patch.
+
+ -- Bastian Blank <waldi@debian.org> Sat, 15 Jul 2006 17:18:49 +0200
+
+linux-2.6.16 (2.6.16-16) unstable; urgency=low
+
+ [ Sven Luther ]
+ * [powerpc] Added console=hvc0 default commandline option to powerpc64 flavour.
+ * [powerpc] Now THERM_PM72 and all WINDFARMs are builtin, for better fan control.
+
+ [ Martin Michlmayr ]
+ * [arm/nslu2] Disable SE Linux support for now so the kernel fits into
+ flash. Closes: #376926.
+
+ [ Bastian Blank ]
+ * [powerpc,powerpc-miboot] Enable OpenFirmware device tree support.
+ (closes: #376012)
+
+ -- Bastian Blank <waldi@debian.org> Sat, 8 Jul 2006 17:57:57 +0200
+
+linux-2.6.16 (2.6.16-15) unstable; urgency=low
+
+ [ maximilian attems ]
+ * Add stable release 2.6.16.18:
+ - NETFILTER: SNMP NAT: fix memory corruption (CVE-2006-2444)
+ * Add stable release 2.6.16.19:
+ - NETFILTER: Fix small information leak in SO_ORIGINAL_DST (CVE-2006-1343)
+ * Add stable release 2.6.16.20:
+ - x86_64: Don't do syscall exit tracing twice
+ - Altix: correct ioc4 port order
+ - Input: psmouse - fix new device detection logic
+ - PowerMac: force only suspend-to-disk to be valid
+ - the latest consensus libata resume fix
+ - Altix: correct ioc3 port order
+ - Cpuset: might sleep checking zones allowed fix
+ - ohci1394, sbp2: fix "scsi_add_device failed" with PL-3507 based devices
+ - sbp2: backport read_capacity workaround for iPod
+ - sbp2: fix check of return value of hpsb_allocate_and_register_addrspace
+ - x86_64: x86_64 add crashdump trigger points
+ - ipw2200: Filter unsupported channels out in ad-hoc mode
+ * Add stable release 2.6.16.21:
+ - check_process_timers: fix possible lockup
+ - run_posix_cpu_timers: remove a bogus BUG_ON() (CVE-2006-2445)
+ - xt_sctp: fix endless loop caused by 0 chunk length (CVE-2006-3085)
+ - powerpc: Fix machine check problem on 32-bit kernels (CVE-2006-2448)
+
+ [ Christian T. Steigies ]
+ * [m68k] Add mac via patch from Finn Thain.
+ * [m68k] Enable INPUT_EVDEV.
+
+ [ Martin Michlmayr ]
+ * [mips/b1-bcm91250a] Enable SMP.
+ * [mips] Add a compile fix for the Maxine fb.
+ * [mipsel] Add a patch that let's you enable serial console on DECstation.
+ * [mipsel] Add a patch to get SCSI working on DECstation.
+ * [mipsel] Handle memory-mapped RTC chips properly.
+ * [mipsel] Add configs for r3k-kn02 and r4k-kn04 DECstation.
+ * [arm] Allow RiscPC machines to boot an initrd (tagged list fix).
+ * [arm/nslu2] Enable many modules.
+ * [arm] Build loop support as a module.
+ * [arm] Use the generic netfilter configuration.
+ * [arm/footbridge] Enable sound.
+
+ [ Kyle McMartin ]
+ * [hppa] Pulled patch from cvs to fix build of kernel/ptrace.c which needs
+ {read,write}_can_lock.
+ * [hppa] Disable CONFIG_DETECT_SOFTLOCKUP to fix boot on pa8800 machines.
+
+ [ Sven Luther ]
+ * [powerpc,prep] Added a new ARCH=ppc PReP flavour, currently mostly a copy
+ of the -powerpc one.
+ * Upgraded mkvmlinuz dependency to mkvmlinuz 21.
+
+ [ Bastian Blank ]
+ * Update vserver patch to 2.0.2-rc21.
+ * Bump build-dependency on kernel-package to 10.049.
+
+ [ Jurij Smakov ]
+ * Add dcache-memory-corruption.patch to fix the mremap(), occasionally
+ triggered on sparc in the form of dpkg database corruption. Affects
+ sparc64, mips and generic includes. Thanks to David Miller, original
+ patch is included in 2.6.17.
+ Ref: http://marc.theaimsgroup.com/?l=linux-sparc&m=114920963824047&w=2
+ * Add sparc32-iotlb.patch to fix the DMA errors encountered with latest
+ kernels on sparc32, in particularly HyperSparcs. Thanks to Bob Breuer.
+ Ref: http://marc.theaimsgroup.com/?l=linux-sparc&m=115077649707675&w=2
+
+ -- Bastian Blank <waldi@debian.org> Wed, 21 Jun 2006 14:09:11 +0200
+
+linux-2.6 (2.6.16-14) unstable; urgency=low
+
+ [ Bastian Blank ]
+ * Add stable release 2.6.16.16:
+ - fs/locks.c: Fix lease_init (CVE-2006-1860)
+ * Make i386 xen images recommend libc6-xen.
+ * Update vserver patch to 2.0.2-rc20.
+ * Update xen patch to changeset 9687.
+
+ [ Christian T. Steigies ]
+ * [m68k] Add generic m68k ide fix.
+ * [m68k] Add cross-compile instructions.
+ * [m68k] Enable INPUT_EVDEV for yaird.
+ * [m68k] sun3 general compile and scsi fixes, enable sun3 SCSI again.
+
+ [ dann frazier ]
+ * cs4281 - Fix the check of timeout in probe to deal with variable HZ.
+ (closes: #361197)
+
+ [ Norbert Tretkowski ]
+ * [alpha] Readded patch to support prctl syscall, got lost when upgrading
+ to 2.6.16.
+
+ [ Frederik Schüler ]
+ * Add stable release 2.6.16.17:
+ - SCTP: Validate the parameter length in HB-ACK chunk (CVE-2006-1857)
+ - SCTP: Respect the real chunk length when walking parameters
+ (CVE-2006-1858)
+ - ptrace_attach: fix possible deadlock schenario with irqs
+ - Fix ptrace_attach()/ptrace_traceme()/de_thread() race
+ - page migration: Fix fallback behavior for dirty pages
+ - add migratepage address space op to shmem
+ - Remove cond_resched in gather_stats()
+ - VIA quirk fixup, additional PCI IDs
+ - PCI quirk: VIA IRQ fixup should only run for VIA southbridges
+ - Fix udev device creation
+ - limit request_fn recursion
+ - PCI: correctly allocate return buffers for osc calls
+ - selinux: check for failed kmalloc in security_sid_to_context()
+ - TG3: ethtool always report port is TP.
+ - Netfilter: do_add_counters race, possible oops or info leak
+ (CVE-2006-0039)
+ - scx200_acb: Fix resource name use after free
+ - smbus unhiding kills thermal management
+ - fs/compat.c: fix 'if (a |= b )' typo
+ - smbfs: Fix slab corruption in samba error path
+ - fs/locks.c: Fix sys_flock() race
+ - USB: ub oops in block_uevent
+ - via-rhine: zero pad short packets on Rhine I ethernet cards
+ - md: Avoid oops when attempting to fix read errors on raid10
+
+ -- Bastian Blank <waldi@debian.org> Mon, 22 May 2006 14:56:11 +0200
+
+linux-2.6 (2.6.16-13) unstable; urgency=low
+
+ [ Frederik Schüler ]
+ * Add stable release 2.6.16.14:
+ - smbfs chroot issue (CVE-2006-1864)
+
+ [ Bastian Blank ]
+ * Don't make headers packages depend on images.
+ * Bump abiname to 2. (closes: #366291)
+ * Update vserver patch to 2.0.2-rc19.
+ * Update xen patch to changeset 9668.
+ * Remove abi fixes.
+ * Add stable release 2.6.16.15:
+ - SCTP: Allow spillover of receive buffer to avoid deadlock. (CVE-2006-2275)
+ - SCTP: Fix panic's when receiving fragmented SCTP control chunks. (CVE-2006-2272)
+ - SCTP: Fix state table entries for chunks received in CLOSED state. (CVE-2006-2271)
+ - SCTP: Prevent possible infinite recursion with multiple bundled DATA. (CVE-2006-2274)
+ * Switch HZ from 1000 to 250.
+
+ [ Christian T. Steigies ]
+ * [m68k] Add patches that allow building images for atari
+ * [m68k] Enable atyfb driver for atari
+
+ -- Bastian Blank <waldi@debian.org> Wed, 10 May 2006 18:58:44 +0200
+
+linux-2.6 (2.6.16-12) unstable; urgency=low
+
+ [ Bastian Blank ]
+ * Add stable release 2.6.16.12:
+ - dm snapshot: fix kcopyd destructor
+ - x86_64: Pass -32 to the assembler when compiling the 32bit vsyscall pages
+ - for_each_possible_cpu
+ - Simplify proc/devices and fix early termination regression
+ - sonypi: correct detection of new ICH7-based laptops
+ - MIPS: Fix tx49_blast_icache32_page_indexed.
+ - NET: e1000: Update truesize with the length of the packet for packet split
+ - i386: fix broken FP exception handling
+ - tipar oops fix
+ - USB: fix array overrun in drivers/usb/serial/option.c
+ - Altix snsc: duplicate kobject fix
+ - Alpha: strncpy() fix
+ - LSM: add missing hook to do_compat_readv_writev()
+ - Fix reiserfs deadlock
+ - make vm86 call audit_syscall_exit
+ - fix saa7129 support in saa7127 module for pvr350 tv out
+ - dm flush queue EINTR
+ - get_dvb_firmware: download nxt2002 firmware from new driver location
+ - cxusb-bluebird: bug-fix: power down corrupts frontend
+ - x86_64: Fix a race in the free_iommu path.
+ - MIPS: Use "R" constraint for cache_op.
+ - MIPS: R2 build fixes for gcc < 3.4.
+ - cs5535_gpio.c: call cdev_del() during module_exit to unmap kobject references and other cleanups
+ - MIPS: Fix branch emulation for floating-point exceptions.
+ - x86/PAE: Fix pte_clear for the >4GB RAM case
+ * Add stable release 2.6.16.13:
+ - NETFILTER: SCTP conntrack: fix infinite loop (CVE-2006-1527)
+ * Remove merged patches.
+ * Rediff xen patch.
+ * Bump build-dependency on kernel-package to 10.047.
+
+ [ Martin Michlmayr ]
+ * [arm] Enable cramfs for ixp4xx and rpc.
+
+ -- Bastian Blank <waldi@debian.org> Thu, 4 May 2006 11:37:26 +0200
+
+linux-2.6 (2.6.16-11) unstable; urgency=low
+
+ * Update vserver patch to 2.0.2-rc18.
+ - Limit ccaps to root inside a guest (CVE-2006-2110)
+ * Conflict with known broken grub versions. (closes: #361308)
+ * Enable s390 vserver image.
+ * Enable xen and xen-vserver images.
+ * Use localversion for kernel-package images. (closes: #365505)
+
+ -- Bastian Blank <waldi@debian.org> Mon, 1 May 2006 16:38:45 +0200
+
+linux-2.6 (2.6.16-10) unstable; urgency=low
+
+ [ Norbert Tretkowski ]
+ * [alpha] Added backport of for_each_possible_cpu() to fix alpha build.
+ (closes: #364206)
+ * Add stable release 2.6.16.10:
+ - IPC: access to unmapped vmalloc area in grow_ary()
+ - Add more prevent_tail_call()
+ - alim15x3: ULI M-1573 south Bridge support
+ - apm: fix Armada laptops again
+ - fbdev: Fix return error of fb_write
+ - Fix file lookup without ref
+ - m41t00: fix bitmasks when writing to chip
+ - Open IPMI BT overflow
+ - x86: be careful about tailcall breakage for sys_open[at] too
+ - x86: don't allow tail-calls in sys_ftruncate[64]()
+ - IPV6: XFRM: Fix decoding session with preceding extension header(s).
+ - IPV6: XFRM: Don't use old copy of pointer after pskb_may_pull().
+ - IPV6: Ensure to have hop-by-hop options in our header of &sk_buff.
+ - selinux: Fix MLS compatibility off-by-one bug
+ - PPC: fix oops in alsa powermac driver
+ - MTD_NAND_SHARPSL and MTD_NAND_NANDSIM should be tristate's
+ - i2c-i801: Fix resume when PEC is used
+ - Fix hotplug race during device registration
+ - Fix truesize underflow
+ - efficeon-agp: Add missing memory mask
+ - 3ware 9000 disable local irqs during kmap_atomic
+ - 3ware: kmap_atomic() fix
+
+ [ maximilian attems ]
+ * Add stable release 2.6.16.11:
+ - Don't allow a backslash in a path component (CVE-2006-1863)
+
+ -- Bastian Blank <waldi@debian.org> Tue, 25 Apr 2006 13:56:19 +0200
+
+linux-2.6 (2.6.16-9) unstable; urgency=low
+
+ [ maximilian attems ]
+ * Add stable release 2.6.16.8:
+ - ip_route_input panic fix (CVE-2006-1525)
+ * Add stable release 2.6.16.9:
+ - i386/x86-64: Fix x87 information leak between processes (CVE-2006-1056)
+
+ [ Bastian Blank ]
+ * Update vserver patch to 2.0.2-rc17.
+
+ -- Bastian Blank <waldi@debian.org> Thu, 20 Apr 2006 15:37:28 +0200
+
+linux-2.6 (2.6.16-8) unstable; urgency=low
+
+ * Fix ABI-breakage introduced in -7. (closes: #363032)
+ * Add stable release 2.6.16.6:
+ - ext3: Fix missed mutex unlock
+ - RLIMIT_CPU: fix handling of a zero limit
+ - alpha: SMP boot fixes
+ - m32r: security fix of {get, put}_user macros
+ - m32r: Fix cpu_possible_map and cpu_present_map initialization for SMP kernel
+ - shmat: stop mprotect from giving write permission to a readonly attachment (CVE-2006-1524)
+ - powerpc: fix incorrect SA_ONSTACK behaviour for 64-bit processes
+ - MPBL0010 driver sysfs permissions wide open
+ - cciss: bug fix for crash when running hpacucli
+ - fuse: fix oops in fuse_send_readpages()
+ - Fix utime(2) in the case that no times parameter was passed in.
+ - Fix buddy list race that could lead to page lru list corruptions
+ - NETFILTER: Fix fragmentation issues with bridge netfilter
+ - USB: remove __init from usb_console_setup
+ - Fix suspend with traced tasks
+ - isd200: limit to BLK_DEV_IDE
+ - edac_752x needs CONFIG_HOTPLUG
+ - fix non-leader exec under ptrace
+ - sky2: bad memory reference on dual port cards
+ - atm: clip causes unregister hang
+ - powerpc: iSeries needs slb_initialize to be called
+ - Fix block device symlink name
+ - Incorrect signature sent on SMB Read
+ * Add stable release 2.6.16.7:
+ - fix MADV_REMOVE vulnerability (CVE-2006-1524 for real this time)
+
+ -- Bastian Blank <waldi@debian.org> Tue, 18 Apr 2006 16:22:31 +0200
+
+linux-2.6 (2.6.16-7) unstable; urgency=low
+
+ [ Frederik Schüler ]
+ * Add stable release 2.6.16.3:
+ - Keys: Fix oops when adding key to non-keyring (CVE-2006-1522)
+
+ [ Bastian Blank ]
+ * Add stable release 2.6.16.4:
+ - RCU signal handling (CVE-2006-1523)
+
+ [ Sven Luther ]
+ * [powerpc] Transitioned mkvmlinuz support patch to the 2.6.16 ARCH=powerpc
+ tree. PReP is broken in 2.6.16 though.
+
+ [ maximilian attems ]
+ * Add stable release 2.6.16.5:
+ - x86_64: Clean up execve
+ - x86_64: When user could have changed RIP always force IRET (CVE-2006-0744)
+ * Disable CONFIG_SECCOMP (adds useless overhead on context-switch) -
+ thanks to fs for checking abi.
+
+ [ Christian T. Steigies ]
+ * [m68k] update m68k patch and config to 2.6.16, temporarily disable atari
+
+ -- Bastian Blank <waldi@debian.org> Sat, 15 Apr 2006 13:56:05 +0200
+
+linux-2.6 (2.6.16-6) unstable; urgency=medium
+
+ [ Bastian Blank ]
+ * Provide version infos in support package and don't longer rely on the
+ changelog.
+ * [amd64/i386] Enable cpu hotplug support.
+
+ [ maximilian attems ]
+ * Add stable release 2.6.16.2:
+ - PCMCIA_SPECTRUM must select FW_LOADER
+ - drivers/net/wireless/ipw2200.c: fix an array overun
+ - AIRO{,_CS} <-> CRYPTO fixes
+ - tlclk: fix handling of device major
+ - fbcon: Fix big-endian bogosity in slow_imageblit()
+ - Fix NULL pointer dereference in node_read_numastat()
+ - USB: EHCI full speed ISO bugfixes
+ - Mark longhaul driver as broken.
+ - fib_trie.c node freeing fix
+ - USB: Fix irda-usb use after use
+ - sysfs: zero terminate sysfs write buffers (CVE-2006-1055)
+ - USB: usbcore: usb_set_configuration oops (NULL ptr dereference)
+ - pcmcia: permit single-character-identifiers
+ - hostap: Fix EAPOL frame encryption
+ - wrong error path in dup_fd() leading to oopses in RCU
+ - {ip, nf}_conntrack_netlink: fix expectation notifier unregistration
+ - isicom must select FW_LOADER
+ - knfsd: Correct reserved reply space for read requests.
+ - Fix module refcount leak in __set_personality()
+ - sbp2: fix spinlock recursion
+ - powerpc: make ISA floppies work again
+ - opti9x - Fix compile without CONFIG_PNP
+ - Add default entry for CTL Travel Master U553W
+ - Fix the p4-clockmod N60 errata workaround.
+ - kdump proc vmcore size oveflow fix
+
+ -- Bastian Blank <waldi@debian.org> Mon, 10 Apr 2006 16:09:51 +0200
+
+linux-2.6 (2.6.16-5) unstable; urgency=low
+
+ [ Bastian Blank ]
+ * Provide real dependency packages for module building.
+ - Add linux-headers-$version-$abiname-all and
+ linux-headers-$version-$abiname-all-$arch.
+ * Rename support package to linux-support-$version-$abiname.
+ * Fix module package output.
+ * Include .kernelrelease in headers packages. (closes: #359813)
+ * Disable Cumana partition support completely. (closes: #359207)
+ * Update vserver patch to 2.0.2-rc15.
+
+ [ dann frazier ]
+ * [ia64] initramfs-tools works now, no longer restrict initramfs-generators
+
+ -- Bastian Blank <waldi@debian.org> Mon, 3 Apr 2006 14:00:08 +0200
+
+linux-2.6 (2.6.16-4) unstable; urgency=medium
+
+ [ Martin Michlmayr ]
+ * [arm/armeb] Update nslu2 config.
+ * Add stable release 2.6.16.1:
+ - Fix speedstep-smi assembly bug in speedstep_smi_ownership
+ - DMI: fix DMI onboard device discovery
+ - cciss: fix use-after-free in cciss_init_one
+ - DM: Fix bug: BIO_RW_BARRIER requests to md/raid1 hang.
+ - fix scheduler deadlock
+ - proc: fix duplicate line in /proc/devices
+ - rtc.h broke strace(1) builds
+ - dm: bio split bvec fix
+ - v9fs: assign dentry ops to negative dentries
+ - i810fb_cursor(): use GFP_ATOMIC
+ - NET: Ensure device name passed to SO_BINDTODEVICE is NULL terminated.
+ - XFS writeout fix
+ - sysfs: fix a kobject leak in sysfs_add_link on the error path
+ - get_cpu_sysdev() signedness fix
+ - firmware: fix BUG: in fw_realloc_buffer
+ - sysfs: sysfs_remove_dir() needs to invalidate the dentry
+ - TCP: Do not use inet->id of global tcp_socket when sending RST (CVE-2006-1242)
+ - 2.6.xx: sata_mv: another critical fix
+ - Kconfig: VIDEO_DECODER must select FW_LOADER
+ - V4L/DVB (3324): Fix Samsung tuner frequency ranges
+ - sata_mv: fix irq port status usage
+
+ -- Bastian Blank <waldi@debian.org> Tue, 28 Mar 2006 17:19:10 +0200
+
+linux-2.6 (2.6.16-3) unstable; urgency=low
+
+ [ Frederik Schüler ]
+ * [amd64] Add asm-i386 to the linux-headers packages.
+
+ [ Jonas Smedegaard ]
+ * Tighten yaird dependency to at least 0.0.12-8 (supporting Linux
+ 2.6.16 uppercase hex in Kconfig and new IDE sysfs naming, and VIA
+ IDE on powerpc).
+
+ [ Martin Michlmayr ]
+ * [arm/armeb] Enable CONFIG_NFSD on NSLU2 again. Closes: #358709.
+ * [arm/footbridge] CONFIG_NE2K_PCI should be a module, not built-in.
+ * [arm/footbridge] Enable CONFIG_BLK_DEV_IDECD=m since the CATS can
+ have a CD-ROM drive.
+ * [mips/sb1*] Use ttyS rather than duart as the name for the serial
+ console since the latter causes problems with debian-installer.
+
+ [ Bastian Blank ]
+ * Update vserver patch to 2.0.2-rc14.
+ - Fix sendfile. (closes: #358391, #358752)
+
+ -- Bastian Blank <waldi@debian.org> Mon, 27 Mar 2006 16:08:20 +0200
+
+linux-2.6 (2.6.16-2) unstable; urgency=low
+
+ [ dann frazier ]
+ * [ia64] Set unconfigured options:
+ CONFIG_PNP_DEBUG=n and CONFIG_NET_SB1000=m
+ * [hppa] Update config for 2.6.16
+
+ [ Martin Michlmayr ]
+ * [mips/mipsel] Put something in the generic config file because diff
+ will otherwise remove the empty file, causing the build to fail.
+ * [mipsel/r5k-cobalt] Set CONFIG_PACKET=y.
+ * [arm] Set CONFIG_MACLIST=y for ixp4xx because nas100d needs it.
+
+ [ Frederik Schüler ]
+ * Add Maximilian Attems to uploaders list.
+
+ -- Martin Michlmayr <tbm@cyrius.com> Wed, 22 Mar 2006 15:15:14 +0000
+
+linux-2.6 (2.6.16-1) unstable; urgency=low
+
+ [ Bastian Blank ]
+ * New upstream release.
+ * Default to initramfs-tools 0.55 or higher on s390.
+
+ [ maximilian attems ]
+ * Default to initramfs-tools on arm and armeb.
+
+ [ Martin Michlmayr ]
+ * [mips/mipsel] Add an image for the Broadcom BCM91480B evaluation board
+ (aka "BigSur").
+ * [arm, armeb] Enable the netconsole module.
+ * [mipsel/cobalt] Enable the netconsole module.
+ * [mips] SB1: Fix interrupt disable hazard (Ralf Baechle).
+ * [mips] SB1: Support for 1480 ethernet (Broadcom).
+ * [mips] SB1: Support for NAPI (Tom Rix).
+ * [mips] SB1: DUART support (Broadcom).
+ * [mips] Work around bad code generation for <asm/io.h> (Ralf Baechle).
+ * [mips] Fix VINO drivers when using a 64-bit kernel (Mikael Nousiainen).
+ * [arm/armeb] Update configs for 2.6.16.
+ * [mips/mipsel] Update configs for 2.6.16.
+ * [arm/armeb] Enable the SMB module on NSLU2.
+ * [mipsel] Enable parallel port modules for Cobalt since there are PCI
+ cards that can be used in a Qube.
+ * [mipsel] Enable the JFS module on Cobalt.
+
+ [ dann frazier ]
+ * [ia64] use yaird on ia64 until #357414 is fixed
+ * [ia64] Update configs for 2.6.16
+
+ -- Bastian Blank <waldi@debian.org> Tue, 21 Mar 2006 16:12:16 +0100
+
+linux-2.6 (2.6.15+2.6.16-rc5-0experimental.1) experimental; urgency=low
+
+ [ Frederik Schüler ]
+ * New upstream release candidate.
+
+ [ Martin Michlmayr ]
+ * Add initial mips/mipsel 2.6 kernels.
+ * Important changes compared to the 2.4 kernels:
+ - Drop the XXS1500 flavour since there's little interest in it.
+ - Drop the LASAT flavour since these machines never went into
+ production.
+ - Drop the IP22 R5K (Indy, Indigo2) flavour since the IP22 R4K
+ image now also works on machines with a R5K CPU.
+ - Add an image for SGI IP32 (O2).
+ - Rename the sb1-swarm-bn flavour to sb1-bcm91250a.
+ - Enable PCI network (and other) modules on Cobalt. Closes: #315895.
+ * Add various MIPS related patches:
+ - Fix iomap compilation on machines without COW.
+ - Improve gettimeofday on MIPS.
+ - Fix an oops on IP22 zerilog (serial console).
+ - Improve IDE probing so it won't take so long on Cobalt.
+ - Probe for IDE disks on SWARM.
+ - Test whether there's a scache (fixes Cobalt crash).
+ - Add Tulip fixes for Cobalt.
+ * Fix a typo in the description of the linux-doc-* package,
+ thanks Justin Pryzby. Closes: #343424.
+ * [arm] Enable nfs and nfsd modules.
+ * [arm/footbride] Suggest nwutil (Netwinder utilities).
+
+ -- Frederik Schüler <fs@debian.org> Thu, 9 Mar 2006 14:13:17 +0000
+
+linux-2.6 (2.6.15+2.6.16-rc4-0experimental.1) experimental; urgency=low
+
+ [ Frederik Schüler ]
+ * New upstream release.
+ * Activate CONFIG_DVB_AV7110_OSD on alpha amd64 and ia64.
+ Closes: #353292
+ * Globally enable NAPI on all network card drivers which support it.
+
+ [ maximilian attems ]
+ * Drop fdutils from i386 and amd64 Suggests.
+ * Swap lilo and grub Suggests for i386 and amd64.
+
+ [ Jurij Smakov ]
+ * Make sure that LOCALVERSION environment variable is not
+ passed to a shell while invoking make-kpkg, since it
+ appends it to the version string, breaking the build.
+ Closes: #349472
+ * [sparc32] Re-enable the building of sparc32 images.
+ * [sparc64] Re-add (partial) sparc64-atyf-xl-gr.patch, since it
+ was only partially applied upstream, so the problem (garbled
+ screen output on SunBlade 100) is still present. Thanks to
+ Luis Ortiz for pointing it out.
+ * Bump the build-dep on kernel-package to 10.035, which fixes
+ the problem with building documentation packages.
+
+ [ Martin Michlmayr ]
+ * [sparc] Add sys_newfstatat -> sys_fstatat64 fix from git.
+ * [arm] Update configs for 2.6.16-rc3.
+ * [armeb] Update configs for 2.6.16-rc3.
+ * [arm/armeb] Fix compilation error on NSLU2 due to recent flash
+ changes.
+ * [arm/armeb] Fix a compilation error in the IXP4xx beeper support
+ (Alessandro Zummo).
+
+ [ Norbert Tretkowski ]
+ * [alpha] Update arch/alpha/config* for 2.6.16-rc3.
+
+ -- Bastian Blank <waldi@debian.org> Fri, 24 Feb 2006 16:02:11 +0000
+
+linux-2.6 (2.6.15-8) unstable; urgency=high
+
+ [ maximilian attems ]
+ * Add stable Release 2.6.15.5:
+ - Fix deadlock in br_stp_disable_bridge
+ - Fix a severe bug
+ - i386: Move phys_proc_id/early intel workaround to correct function
+ - ramfs: update dir mtime and ctime
+ - sys_mbind sanity checking
+ - Fix s390 build failure.
+ - Revert skb_copy_datagram_iovec() recursion elimination.
+ - s390: add #ifdef __KERNEL__ to asm-s390/setup.h
+ - netfilter missing symbol has_bridge_parent
+ - hugetlbfs mmap ENOMEM failure
+ - IB/mthca: max_inline_data handling tweaks
+ - it87: Fix oops on removal
+ - hwmon it87: Probe i2c 0x2d only
+ - reiserfs: disable automatic enabling of reiserfs inode attributes
+ - Fix snd-usb-audio in 32-bit compat environment
+ - dm: missing bdput/thaw_bdev at removal
+ - dm: free minor after unlink gendisk
+ - gbefb: IP32 gbefb depth change fix
+ - shmdt cannot detach not-alined shm segment cleanly.
+ - Address autoconfiguration does not work after device down/up cycle
+ - gbefb: Set default of FB_GBE_MEM to 4 MB
+ - XFS ftruncate() bug could expose stale data (CVE-2006-0554)
+ - sys_signal: initialize ->sa_mask
+ - do_sigaction: cleanup ->sa_mask manipulation
+ - fix zap_thread's ptrace related problems
+ - fix deadlock in ext2
+ - cfi: init wait queue in chip struct
+ - sd: fix memory corruption with broken mode page headers
+ - sbp2: fix another deadlock after disconnection
+ - skge: speed setting
+ - skge: fix NAPI/irq race
+ - skge: genesis phy initialization fix
+ - skge: fix SMP race
+ - x86_64: Check for bad elf entry address (CVE-2006-0741)
+ - alsa: fix bogus snd_device_free() in opl3-oss.c
+ - ppc32: Put cache flush routines back into .relocate_code section
+ - sys32_signal() forgets to initialize ->sa_mask
+ - Normal user can panic NFS client with direct I/O (CVE-2006-0555)
+ * Deactivate merged duplicates: s390-klibc-buildfix.patch,
+ powerpc-relocate_code.patch.
+ * Add stable Release 2.6.15.6:
+ - Don't reset rskq_defer_accept in reqsk_queue_alloc
+ - fs/nfs/direct.c compile fix
+ - mempolicy.c compile fix, make sure BITS_PER_BYTE is defined
+ - [IA64] die_if_kernel() can return (CVE-2006-0742)
+
+ [ Sven Luther ]
+ * [powerpc] Disabled CONFIG_IEEE1394_SBP2_PHYS_DMA, which was broken on
+ powerpc64, as it used the long deprecated bus_to_virt symbol.
+ (Closes: #330225)
+ * [powerpc] Fixed gettimeofday breakage causing clock drift.
+
+ -- Bastian Blank <waldi@debian.org> Mon, 6 Mar 2006 11:06:28 +0100
+
+linux-2.6 (2.6.15-7) unstable; urgency=low
+
+ [ Norbert Tretkowski ]
+ * [alpha] Disabled CONFIG_ALPHA_LEGACY_START_ADDRESS for -alpha-generic and
+ -alpha-smp flavours, and introduced a new -alpha-legacy flavour for MILO
+ based machines, which has CONFIG_ALPHA_LEGACY_START_ADDRESS enabled.
+ (closes: #352186)
+ * [alpha] Added new patch to support prctl syscall. (closes: #349765)
+ * [i386] Renamed kernel-image-2.6-486 to kernel-image-2.6-386, it's meant for
+ transition only, and kernel-image-2.6-386 is the package name in sarge.
+
+ [ Jurij Smakov ]
+ * Bump build-dependency on kernel-package to 10.035, which is fixed
+ to build the documentation packages again.
+ Closes: #352000, #348332
+
+ [ Frederik Schüler ]
+ * Activate CONFIG_DVB_AV7110_OSD on alpha amd64 and ia64.
+ Closes: #353292
+ * Deactivate CONFIG_FB_ATY_XL_INIT on all architectures: it is broken and
+ already removed in 2.6.16-rc.
+ Closes: #353310
+
+ [ Christian T. Steigies ]
+ * [m68k] build in cirrusfb driver
+
+ -- Bastian Blank <waldi@debian.org> Tue, 21 Feb 2006 17:35:21 +0000
+
+linux-2.6 (2.6.15-6) unstable; urgency=low
+
+ [ Bastian Blank ]
+ * Moved the mkvmlinuz support patch modification to a -1 version of the
+ patch.
+
+ [ maximilian attems ]
+ * Add stable treee 2.6.15.4
+ - PCMCIA=m, HOSTAP_CS=y is not a legal configuration
+ - Input: iforce - do not return ENOMEM upon successful allocation
+ - x86_64: Let impossible CPUs point to reference per cpu data
+ - x86_64: Clear more state when ignoring empty node in SRAT parsing
+ - x86_64: Dont record local apic ids when they are disabled in MADT
+ - Fix keyctl usage of strnlen_user()
+ - Kill compat_sys_clock_settime sign extension stub.
+ - Input: grip - fix crash when accessing device
+ - Input: db9 - fix possible crash with Saturn gamepads
+ - Input: iforce - fix detection of USB devices
+ - Fixed hardware RX checksum handling
+ - SCSI: turn off ordered flush barriers
+ - Input: mousedev - fix memory leak
+ - seclvl settime fix
+ - fix regression in xfs_buf_rele
+ - md: remove slashes from disk names when creation dev names in sysfs
+ - d_instantiate_unique / NFS inode leakage
+ - dm-crypt: zero key before freeing it
+ - bridge: netfilter races on device removal
+ - bridge: fix RCU race on device removal
+ - SELinux: fix size-128 slab leak
+ - __cmpxchg() must really always be inlined
+ - emu10k1 - Fix the confliction of 'Front' control
+ - Input: sidewinder - fix an oops
+ * Deactivate merged alpha-cmpxchg-inline.patch, sparc64-clock-settime.patch.
+
+ [ Christian T. Steigies ]
+ * [m68k] Add fix for m68k/buddha IDE and m68k/mac SCSI driver
+ * [m68k] Patch by Peter Krummrich to stop flickering pixels with PicassoII
+ * [m68k] make Amiga keyboard usable again, patch by Roman Zippel
+ * [m68k] prevent wd33c93 SCSI driver from crashing the kernel, patch by Roman Zippel
+ * [m68k] remove SBCs from VME descriptions (closes: #351924)
+
+ -- Frederik Schüler <fs@debian.org> Fri, 10 Feb 2006 15:33:21 +0000
+
+linux-2.6 (2.6.15-5) unstable; urgency=low
+
+ [ Martin Michlmayr ]
+ * Add a fix for the input support for the ixp4xx beeper driver from
+ 2.6.16-rc2.
+ * Add stable tree 2.6.15.3:
+ - Fix extra dst release when ip_options_echo fails (CVE-2006-0454)
+
+ [ Sven Luther ]
+ * [powerpc] Removed -o root -g root option to mkvmlinuz support patch.
+ (Closes: #351412)
+
+ -- Sven Luther <luther@debian.org> Tue, 7 Feb 2006 19:23:14 +0000
+
+linux-2.6 (2.6.15-4) unstable; urgency=low
+
+ [ Jurij Smakov ]
+ * [sparc64] Add sparc64-clock-settime.patch to fix the incorrect
+ handling of the clock_settime syscall arguments, which resulted
+ in a hang when trying to set the date using 'date -s'. Patch
+ by David Miller is applied upstream. Thanks to Ludovic Courtes
+ and Frans Pop for reporting and testing.
+ Ref: http://marc.theaimsgroup.com/?t=113861017400002&r=1&w=2
+
+ [ Christian T. Steigies ]
+ * [m68k] update m68k patch and config to 2.6.15
+ * [m68k] SCSI drivers need to be built in until ramdisk generator tools
+ supports loading scsi modules
+ * [m68k] ISCSI and IDE-TAPE don't compile, disabled
+ * [m68k] set CC_OPTIMIZE_FOR_SIZE=n
+ * [m68k] added vmeints patch which fixes building for vme
+
+ [ maximilian attems ]
+ * Use initramfs-tools for ia64 - fixed klibc.
+ * Add stable tree 2.6.15.2:
+ - Fix double decrement of mqueue_mnt->mnt_count in sys_mq_open
+ - (CVE-2005-3356)
+ - Mask off GFP flags before swiotlb_alloc_coherent
+ - usb-audio: don't use empty packets at start of playback
+ - Make second arg to skb_reserved() signed.
+ - Input: HID - fix an oops in PID initialization code
+ - Fix oops in ufs_fill_super at mount time
+ - Kill blk_attempt_remerge()
+ - Fix i2o_scsi oops on abort
+ - Fix mkiss locking bug
+ - Fix timekeeping on sparc64 ultra-IIe machines
+ - Someone broke reiserfs v3 mount options and this fixes it
+ * Deactivate sparc64-jumping-time.patch, amd64-pppd-fix.patch incl in aboves.
+ * Add s390-klibc-buildfix.patch, regression due to header file changes.
+
+ [ Steve Langasek ]
+ * [alpha] set __attribute__((always_inline)) on __cmpxchg(), to avoid
+ wrong optimizations with -Os (Closes: #347556).
+
+ [ Martin Michlmayr ]
+ * Add input support for the ixp4xx beeper driver (Alessandro Zummo).
+ * [arm] Add NSLU2 specific portion of ixp4xx beeper driver (Alessandro Zummo).
+ * [arm/nslu2] Build PPP as a module.
+ * [arm/nslu2] Enable wireless.
+ * [arm/nslu2] Enable most USB modules.
+ * [arm/nslu2] Enable ALSA and USB sound modules.
+ * [arm/nslu2] Set 4 MB as the size of the initrd in the kernel cmd line.
+ * [arm/footbridge] Set CONFIG_BLK_DEV_RAM_SIZE to 8192.
+ * [armeb] Add support for big-endian ARM.
+ * [armeb/nslu2] Use the nslu2 config from arm.
+
+ [ Frederik Schüler ]
+ * [amd64] Add amd64-pppd-fix.patch to fix kernel panic when using pppd.
+ (Closes: #347711)
+ * Add 64bit-vidiocswin-ioctl-fix.patch to fix VIDIOCSWIN ioctl on 64bit
+ kernel 32bit userland setups. (Closes: #349338)
+
+ [ Sven Luther ]
+ * [powerpc] Adapted apus config file to be more modular and in sync with the
+ other powerpc configs. Scsi drivers are disabled as they don't build
+ cleanly though (need some esp stuff).
+ * [powerpc] Default to initramfs-tools as initramfs generator, as klibc
+ build is fixed now.
+
+ [ Bastian Blank ]
+ * [powerpc] Fix dependencies of image packages.
+
+ -- maximilian attems <maks@sternwelten.at> Wed, 1 Feb 2006 11:34:20 +0100
+
+linux-2.6 (2.6.15-3) unstable; urgency=low
+
+ [ Martin Michlmayr ]
+ * [arm] Update configs for 2.6.15; closes: #347998.
+ * [arm] Activate tmpfs.
+ * [arm] Allow modules to be unloaded.
+ * [arm] Enable CONFIG_INPUT_EVDEV since yaird needs this module in
+ order to generate initrds.
+ * [arm/footbridge] Activate IDEPCI so SL82C105 will really be
+ compiled in.
+ * [arm/footbridge] Activate the right network drivers (Tulip and
+ NE2K).
+ * [arm/footbridge] Enable more framebuffer drivers.
+ * debian/patches/arm-fix-dc21285.patch: Fix compilation of DC21285
+ flash driver.
+ * [arm/footbridge] Enable MTD and the DC21285 flash driver.
+ * [arm/footbridge] Enable RAID and LVM modules.
+ * [arm/footbridge] Enable USB modules.
+ * [arm/nslu2] Add an image for Network Storage Link for USB 2.0 Disk
+ Drives.
+ * debian/patches/arm-memory-h-page-shift.patch: Fix error "PAGE_SHIFT
+ undeclared" (Rod Whitby).
+ * debian/patches/mtdpart-redboot-fis-byteswap.patch: recognise a foreign
+ endian RedBoot partition table (John Bowler).
+ * debian/patches/maclist.patch: Add support for the maclist interface
+ (John Bowler).
+ * debian/patches/arm-nslu2-maclist.patch: Add NSLU2 maclist support
+ (John Bowler).
+ * [arm/nslu2] Activate maclist.
+
+ [ maximilian attems ]
+ * Add stable tree 2.6.15.1:
+ - arch/sparc64/Kconfig: fix HUGETLB_PAGE_SIZE_64K dependencies
+ - moxa serial: add proper capability check
+ - fix /sys/class/net/<if>/wireless without dev->get_wireless_stats
+ - Don't match tcp/udp source/destination port for IP fragments
+ - Fix sys_fstat64() entry in 64-bit syscall table.
+ - UFS: inode->i_sem is not released in error path
+ - netlink oops fix due to incorrect error code
+ - Fix onboard video on SPARC Blade 100 for 2.6.{13,14,15}
+ - Fix DoS in netlink_rcv_skb() (CVE-2006-0035)
+ - fix workqueue oops during cpu offline
+ - Fix crash in ip_nat_pptp (CVE-2006-0036)
+ - Fix another crash in ip_nat_pptp (CVE-2006-0037)
+ - ppc32: Re-add embed_config.c to ml300/ep405
+ - Fix ptrace/strace
+ - vgacon: fix doublescan mode
+ - BRIDGE: Fix faulty check in br_stp_recalculate_bridge_id()
+ - skge: handle out of memory on ring changes
+ * Drop merged patch:
+ - sparc64-atyfb-xl-gr-final.patch
+
+ [ Simon Horman ]
+ * Fix booting on PReP machines
+ (Closes: #348040)
+ powerpc-relocate_code.patch
+
+ -- Simon Horman <horms@verge.net.au> Tue, 17 Jan 2006 18:01:17 +0900
+
+linux-2.6 (2.6.15-2) unstable; urgency=low
+
+ [ maximilian attems ]
+ * Default to initramfs-tools as initramfs generator for amd64, hppa, i386,
+ alpha and sparc. More archs will be added once klibc matures.
+ (Closes: #346141, #343147, #341524, #346305)
+ * Backport alsa patch for opl3 - Fix the unreleased resources.
+ (Closes: #346273)
+ * Readd buslogic-pci-id-table.patch.
+
+ [ dann frazier ]
+ * [ia64] Update config for 2.6.15.
+
+ [ Frederik Schüler ]
+ * Make CONFIG_IPW2100 a per-architecture option and deactivate it on all
+ architectures but i386. (Closes: #344515)
+
+ [ Sven Luther ]
+ * Removed spurious file from powerpc-apus patch. (Closes: #346159)
+
+ [ Norbert Tretkowski ]
+ * Backport the generic irq framework for alpha. (closes: #339080)
+
+ [ Bastian Blank ]
+ * Remove pre-sarge conflict with hotplug.
+ * Fix hppa diff to apply.
+ * Make the latest packages depend on the corect version of the real images.
+ (closes: #346366)
+
+ -- Bastian Blank <waldi@debian.org> Tue, 10 Jan 2006 16:54:21 +0100
+
+linux-2.6 (2.6.15-1) unstable; urgency=low
+
+ [ Sven Luther ]
+ * New upstream release.
+ * [powerpc] Now use ARCH=powerpc for 64bit powerpc flavours, 32bit still
+ stays with ARCH=ppc for now.
+ * [powerpc] Readded PReP Motorola PowerStack II Utah IDE interrupt
+ (Closes: #345424)
+ * [powerpc] Fixed apus patch.
+ * Added make-kpkg --arch option support to gencontrol.py.
+ * Added debian/bin/kconfig.ml to process config file snipplet, so we can
+ preserve the pre 2.6.15 ordering of config file snipplets. Upto 2.6.15
+ the kernel Kconfig magic apparently kept the later occuring config options,
+ but it seems that this is no more the case. Instead of catting the config
+ files together, not use the kconfig.ml script to read in the files from
+ more generic to more specific, and keep only the more specific.
+
+ [ Bastian Blank ]
+ * [s390] Update configs.
+
+ [ Kyle McMartin ]
+ * [hppa] Snag latest hppa.diff from cvs.parisc-linux.org.
+ * [hppa] Update configs for 2.6.15.
+ * [hppa] Change parisc kernel names to something less ambiguous.
+
+ [ dann frazier ]
+ * [ia64] Update ia64 configs
+
+ [ maximilian attems ]
+ * Drop modular-ide.patch, nacked by ide upstream. Prevents udev to load
+ ide-generic and those successfull boots with initramfs-tools.
+ * Disable CONFIG_USB_BANDWIDTH, causes major trouble for alsa usb cards.
+
+ [ Norbert Tretkowski ]
+ * [alpha] Removed conflict with initramfs-tools, thanks vorlon for finding
+ the klibc bug!
+
+ [ Jonas Smedegaard ]
+ * Adjust short description of transitional package kernel-image-2.6-
+ 486 to mention 2.6 (not 2.6.12).
+ * Clean duplicate Kconfig options.
+
+ [ Frederik Schüler ]
+ * Add updated version of drivers-scsi-megaraid_splitup.patch.
+ * Deactivate CONFIG_IDE_TASK_IOCTL on alpha and ia64 and make it a global
+ option.
+ * Make CONFIG_VIDEO_SAA7134 a global option.
+ * New option CONFIG_CC_OPTIMIZE_FOR_SIZE set per-arch.
+ * Rename i386 368 flavour to 486.
+ * Add myself to uploaders.
+ * Readdition of qla2xxx drivers, as firmware license has been fixed.
+ * Make CONFIG_PACKET, PACKET_MM and UNIX builtin on all architectures:
+ statically linked has better performance then modules due to TLB issue.
+ * clean up debian-patches dir: remove all obsolete patches:
+ - alpha-compile-fix.patch: obsolete
+ - amd64-int3-fix.patch: fixed since 2.6.12
+ - net-ipconntrack-nat-fix.patch: merged upstream after 2.6.14 release
+ - net-nf_queue-oops.patch: merged upstream after 2.6.14 release
+ - qla2xxx-removed.patch: obsolete
+ * Drop M386 support remains from the i386 386 flavour: built with M486
+ from now on.
+
+ [ Martin Michlmayr ]
+ * [arm] Don't define "compiler" since GCC 4.x is the default now anyway.
+ * [arm] Add descriptions for "class" and "longclass".
+ * [arm] Compile CONFIG_BLK_DEV_SL82C105 support into the kernel on
+ Footbridge.
+ * [arm] Compile ext3 support into the kernel on Footbridge.
+ * [arm] Turn on CONFIG_SERIAL_8250 support on Footbridge.
+
+ [ Jurij Smakov ]
+ * [sparc] Correct the patch for the atyfb framebuffer driver
+ (sparc64-atyfb-xl-gr.patch) to finally fix the console and X
+ image defects on Blade 100/150. The new patch is named
+ sparc64-atyfb-xl-gr-final.patch to avoid the confusion.
+ Thanks to Luis F. Ortiz for fixing the patch and Luigi Gangitano
+ for testing it out.
+ * Drop tty-locking-fixes9.patch, which was preventing the oops during
+ shutdown on some sparc machines with serial console. Proper fix has
+ been incorporated upstream.
+
+ [ Simon Horman ]
+ * Enable MKISS globally (closes: #340215)
+ * Add recommends libc6-i686 to 686 and k7 image packages
+ (closes: #278729)
+ * Enable OBSOLETE_OSS_USB_DRIVER and USB_AUDIO
+ as alsa snd-usb-audio still isn't quite there.
+ I expect this to be re-disabled at some stage,
+ possibly soon if it proves to be a source of bugs.
+ (closes: #340388)
+
+ -- Sven Luther <luther@debian.org> Tue, 3 Jan 2006 06:48:07 +0000
+
+linux-2.6 (2.6.14-7) unstable; urgency=low
+
+ [ maximilian attems ]
+ * Add stable tree 2.6.14.5 fixes:
+ - setting ACLs on readonly mounted NFS filesystems (CVE-2005-3623)
+ - Fix bridge-nf ipv6 length check
+ - Perform SA switchover immediately.
+ - Input: fix an OOPS in HID driver
+ - Fix hardware checksum modification
+ - kernel/params.c: fix sysfs access with CONFIG_MODULES=n
+ - Fix RTNLGRP definitions in rtnetlink.h
+ - Fix CTA_PROTO_NUM attribute size in ctnetlink
+ - Fix unbalanced read_unlock_bh in ctnetlink
+ - Fix NAT init order
+ - Fix incorrect dependency for IP6_NF_TARGET_NFQUEUE
+ - dpt_i2o fix for deadlock condition
+ - SCSI: fix transfer direction in sd (kernel panic when ejecting iPod)
+ - SCSI: fix transfer direction in scsi_lib and st
+ - Fix hardware rx csum errors
+ - Fix route lifetime.
+ - apci: fix NULL deref in video/lcd/brightness
+ * Disable CONFIG_USB_BANDWIDTH, causes major trouble on alsa usb cards.
+ (Closes: #344939)
+
+ -- maximilian attems <maks@sternwelten.at> Tue, 27 Dec 2005 20:50:28 +0100
+
+linux-2.6 (2.6.14-6) unstable; urgency=low
+
+ [ Kyle McMartin ]
+ * Change parisc kernel names to something less ambiguous.
+
+ [ maximilian attems ]
+ * Drop modular-ide.patch, nacked by ide upstream. Prevents udev to load
+ ide-generic and those successfull boots with initramfs-tools.
+ * Add stable tree 2.6.14.4 with the following fixes:
+ - drivers/scsi/dpt_i2o.c: fix a user-after-free
+ - drivers/message/i2o/pci.c: fix a use-after-free
+ - drivers/infiniband/core/mad.c: fix a use-after-free
+ - DVB: BUDGET CI card depends on STV0297 demodulator
+ - setkeys needs root
+ - Fix listxattr() for generic security attributes
+ - AGPGART: Fix serverworks TLB flush.
+ - Fix crash when ptrace poking hugepage areas
+ - I8K: fix /proc reporting of blank service tags
+ - i82365: release all resources if no devices are found
+ - bonding: fix feature consolidation
+ - libata: locking rewrite (== fix)
+ - cciss: bug fix for BIG_PASS_THRU
+ - ALSA: nm256: reset workaround for Latitude CSx
+ - cciss: bug fix for hpacucli
+ - V4L/DVB: Fix analog NTSC for Thomson DTT 761X hybrid tuner
+ - BRIDGE: recompute features when adding a new device
+ - 32bit integer overflow in invalidate_inode_pages2()
+ - USB: Adapt microtek driver to new scsi features
+ - ide-floppy: software eject not working with LS-120 drive
+ - Add try_to_freeze to kauditd
+ - V4L/DVB (3135) Fix tuner init for Pinnacle PCTV Stereo
+ - NETLINK: Fix processing of fib_lookup netlink messages
+ - ACPI: fix HP nx8220 boot hang regression
+
+ [ Norbert Tretkowski ]
+ * [alpha] Removed conflict with initramfs-tools, thanks vorlon for finding
+ the klibc bug!
+
+ [ Frederik Schüler ]
+ * Add updated drivers-scsi-megaraid_splitup.patch. (Closes: #317258)
+ * Add ppc64-thermal-overtemp.patch to fix a thermal control bug in G5
+ machines. (Closes: #343980)
+ * Unpatch the following patches which are included in 2.6.14.4:
+ - setkeys-needs-root-1.patch
+ - setkeys-needs-root-2.patch
+ - mm-invalidate_inode_pages2-overflow.patch
+ - net-bonding-consolidation-fix.patch
+
+ -- Frederik Schüler <fs@debian.org> Tue, 20 Dec 2005 18:50:41 +0000
+
+linux-2.6 (2.6.14-5) unstable; urgency=low
+
+ [ dann frazier ]
+ * ia64-new-assembler-fix.patch
+ Fix ia64 builds with newer assembler (Closes: #341257)
+
+ [ Sven Luther ]
+ * [powerpc] incremented ramdisk size to 24576 from 8192, needed by the
+ graphical installer, maybe we can bring this to 16384 later.
+
+ [ Simon Horman ]
+ * Add recommends libc6-i686 to 686 and k7 image packages
+ (closes: #278729)
+ * Enable OBSOLETE_OSS_USB_DRIVER and USB_AUDIO
+ as alsa snd-usb-audio still isn't quite there.
+ I expect this to be re-disabled at some stage,
+ possibly soon if it proves to be a source of bugs.
+ (closes: #340388)
+
+ [ dann frazier ]
+ * buslogic-pci-id-table.patch
+ add a pci device id table to fix initramfs-tools discovery.
+ (closes #342057)
+ * fix feature consolidation in bonding driver. (closes #340068)
+
+ -- dann frazier <dannf@debian.org> Thu, 8 Dec 2005 10:59:31 -0700
+
+linux-2.6 (2.6.14-4) unstable; urgency=low
+
+ [ dann frazier ]
+ * setkeys-needs-root-1.patch, setkeys-needs-root-2.patch:
+ [SECURITY] Require root privilege to write the current
+ function key string entry of other user's terminals.
+ See CVE-2005-3257 (Closes: #334113)
+
+ [ Simon Horman ]
+ * Enable MKISS globally (closes: #340215)
+ * mm-invalidate_inode_pages2-overflow.patch
+ [SECURITY] 32bit integer overflow in invalidate_inode_pages2() (local DoS)
+ * ctnetlink-check-if-protoinfo-is-present.patch
+ [SECURITY] ctnetlink: check if protoinfo is present (local DoS)
+ * ctnetlink-fix-oops-when-no-icmp-id-info-in-message.patch
+ [SECURITY] ctnetlink: Fix oops when no ICMP ID info in message (local DoS)
+
+ [ Sven Luther ]
+ * Re-added powerpc/apus patch, now that Roman Zippel merged it in.
+ * Let's create asm-(ppc|ppc64) -> asm-powerpc symlink farm. (Closes: #340571)
+
+ [ maximilian attems ]
+ * Add 2.6.14.3 patch - features changelog:
+ - isdn/hardware/eicon/os_4bri.c: correct the xdiLoadFile() signature
+ - x86_64/i386: Compute correct MTRR mask on early Noconas
+ - PPTP helper: Fix endianness bug in GRE key / CallID NAT
+ - nf_queue: Fix Ooops when no queue handler registered
+ - ctnetlink: check if protoinfo is present
+ - ip_conntrack: fix ftp/irc/tftp helpers on ports >= 32768
+ - VFS: Fix memory leak with file leases
+ - hwmon: Fix lm78 VID conversion
+ - hwmon: Fix missing it87 fan div init
+ - ppc64 memory model depends on NUMA
+ - Generic HDLC WAN drivers - disable netif_carrier_off()
+ - ctnetlink: Fix oops when no ICMP ID info in message
+ - Don't auto-reap traced children
+ - packet writing oops fix
+ - PPTP helper: fix PNS-PAC expectation call id
+ - NAT: Fix module refcount dropping too far
+ - Fix soft lockup with ALSA rtc-timer
+ - Fix calculation of AH length during filling ancillary data.
+ - ip_conntrack TCP: Accept SYN+PUSH like SYN
+ - refcount leak of proto when ctnetlink dumping tuple
+ - Fix memory management error during setting up new advapi sockopts.
+ - Fix sending extension headers before and including routing header.
+ - hwmon: Fix missing boundary check when setting W83627THF in0 limits
+ * Remove ctnetlink-check-if-protoinfo-is-present.patch,
+ net-nf_queue-oops.patch - already included in 2.6.14.3.
+
+ [ Frederik Schüler ]
+ * Make CONFIG_PACKET, PACKET_MM and UNIX builtin on all architectures:
+ statically linked has better performance then modules due to TLB issue.
+ * Add myself to uploaders.
+
+ -- Frederik Schüler <fs@debian.org> Sat, 26 Nov 2005 13:18:41 +0100
+
+linux-2.6 (2.6.14-3) unstable; urgency=low
+
+ [ Norbert Tretkowski ]
+ * [alpha] Switch to gcc 4.0.
+ * [alpha] Conflict with initramfs-tools, klibc is broken on alpha.
+ * [alpha] Enabled CONFIG_KOBJECT_UEVENT in arch/alphaconfig to fix trouble
+ with latest udev, thanks to Uwe Schindler for reporting. (closes: #338911)
+ * Bumped ABI revision:
+ + ABI changes on sparc and alpha because of compiler switch.
+ + 2.6.14.1 changes ABI of procfs.
+
+ [ Sven Luther ]
+ * Set default TCP congestion algorithm to NewReno + BIC (Closes: #337089)
+
+ [ maximilian attems ]
+ * Reenable CONFIG_SOFTWARE_SUSPEND on i386 and ppc, resume=/dev/<other device>
+ must be set by boot loader. (Closes: #267600)
+ * Set CONFIG_USB_SUSPEND on i386. Usefull for suspend to ram and apm suspend.
+ * Add 2.6.14.1 patch:
+ - Al Viro: CVE-2005-2709 sysctl unregistration oops
+ * Add 2.6.14.2 patch:
+ - airo.c/airo_cs.c: correct prototypes
+ - fix XFS_QUOTA for modular XFS (closes: #337072)
+ - USB: always export interface information for modalias
+ - NET: Fix zero-size datagram reception
+ - fix alpha breakage
+ - Oops on suspend after on-the-fly switch to anticipatory i/o scheduler
+ - ipvs: fix connection leak if expire_nodest_conn=1
+ - Fix ptrace self-attach rule
+ - fix signal->live leak in copy_process()
+ - fix de_thread() vs send_group_sigqueue() race
+ - prism54 : Fix frame length
+ - tcp: BIC max increment too large
+ * Remove alpha compile fix as contained in 2.6.14.2
+ * Readd CONFIG_XFS_QUOTA=y.
+ * Disable ACPI cutoff year on i386, was set to 2001.
+ No need for acpi=force on boot.
+
+ [ Jurij Smakov ]
+ * Fix the install-image script to correctly include all the necessary
+ stuff in scripts. (Closes: #336424)
+ * Enable CONFIG_SND_ALI5451 on sparc.
+ * Switch sparc to gcc-4.0. Thanks to Norbert for making sure it successfully
+ builds a working kernel now.
+ * Apply patch to fix ATI framebuffer output corruption on SunBlade 100
+ (sparc64-atyfb-xl-gr.patch). Thanks to Luigi Gangitano. (Closes: #321200)
+ * Disable CONFIG_PARPORT_PC_FIFO on sparc, since it causes a hang whenever
+ something is sent to the parallel port device. Thanks to Attilla
+ (boera at rdslink.ro) for pointing that out.
+
+ [ Simon Horman ]
+ * [386, AMD64] Set CONFIG_FRAMEBUFFER_CONSOLE=y instead of m.
+ As vesadb now built into the kernel, after finally dropping the
+ debian-specific patch to make it modular, make fbcons builtin too, else
+ all sorts of weird stuff happens which is hard for the inird builders to
+ automatically compenste for. (Closes: #336450)
+ * Redisable CONFIG_SOFTWARE_SUSPEND on ppc/miboot as it required
+ CONFIG_PM to compile.
+ * [NETFILTER] nf_queue: Fix Ooops when no queue handler registered
+ This is a regression introduced in 2.6.14.
+ net-nf_queue-oops.patch. (Closes: #337713)
+ * Make manuals with defconfig, as is required for kernel-package 10.008
+
+ [ dann frazier ]
+ * net-ipconntrack-nat-fix.patch - fix compilation of
+ ip_conntrack_helper_pptp.c when NAT is disabled. (Closes: #336431)
+
+ [ Christian T. Steigies ]
+ * update m68k.diff to 2.6.14
+ * add m68k-*vme* patches
+ * disable macsonic driver until the dma patch is fixed
+ * disable IEEE80211 drivers for all of m68k
+
+ [ Frederik Schüler ]
+ * activate CONFIG_SECURITY_NETWORK to fix SElinux operation.
+ (Closes: #338543)
+
+ -- Norbert Tretkowski <nobse@debian.org> Mon, 14 Nov 2005 10:23:05 +0100
+
+linux-2.6 (2.6.14-2) unstable; urgency=low
+
+ [ Simon Horman ]
+ * [SECURITY] Avoid 'names_cache' memory leak with CONFIG_AUDITSYSCALL
+ This fix, included as part of the 2.6.13.4 patch in
+ 2.6.13+2.6.14-rc4-0experimental.1 is CVE-2005-3181
+ * Fix genearation of .extraversion, again (closes: #333842)
+ * Add missing kernel-arch and kernel-header-dirs to defines
+ so headers get included. (closes: #336521)
+ N.B: I only filled in arches where other's hadn't done so alread.
+ Please fix if its wrong.
+ * Allow powerpc64 to compile with AUDIT enabled but
+ AUDITSYSCALL disabled. powerpc64-audit_sysctl-build.patch
+
+ [ dann frazier ]
+ * Update hppa.diff to 2.6.14-pa0
+
+ [ Norbert Tretkowski ]
+ * [alpha] New patch to include compiler.h in barrier.h, barrier() is used in
+ non-SMP case.
+ * [alpha] Added kernel-header-dirs and kernel-arch to debian/arch/alpha/defines
+ to include asm-alpha in linux-headers package.
+ * Added myself to Uploaders.
+
+ [ Frederik Schüler ]
+ * [amd64] use DISCONTIGMEM instead of SPARSEMEM on amd64-k8-smp flavour to
+ fix bootup kernel panic.
+ * [amd64] include asm-x86_64 in linux-headers package.
+ * Deactivate AUDITSYSCALL globally, it slows down the kernel and is not
+ needed for selinux at all.
+
+ -- Simon Horman <horms@debian.org> Tue, 1 Nov 2005 15:27:40 +0900
+
+linux-2.6 (2.6.14-1) unstable; urgency=low
+
+ [ Sven Luther ]
+ * New upstream release.
+
+ [ Norbert Tretkowski ]
+ * [alpha] Update arch/alpha/config* for 2.6.14.
+
+ [ Simon Horman ]
+ * Fix misformatting of long description of
+ linux-patch-debian-linux-patch-debian-X.Y.Z.
+ templates/control.main.in
+ (closes: #335088)
+ * Make sure version is seeded in apply and unapply scripts.
+ Actually changed in some earlier, post 2.6.12, release,
+ but the changelog seems to be missing.
+ (closes: #324583)
+
+ [ dann frazier ]
+ * [ia64] Disable the CONFIG_IA64_SGI_SN_XP module. This forces
+ CONFIG_GENERIC_ALLOCATOR and CONFIG_IA64_UNCACHED_ALLOCATOR to y, which
+ appears to break on zx1 systems.
+
+ -- Simon Horman <horms@debian.org> Fri, 28 Oct 2005 16:26:03 +0900
+
+linux-2.6 (2.6.13+2.6.14-rc5-0experimental.1) experimental; urgency=low
+
+ [ Sven Luther ]
+ * Upgraded to 2.6.14-rc5.
+
+ [ Jonas Smedegaard ]
+ * Quote variables in debian/rules.real and postinstall (making it
+ safer to run with weird characters in path of build environment).
+
+ [ Bastian Blank ]
+ * Add some missing files from scripts to headers packages.
+ * Add new patch powerpc-build-links.patch: Emit relative symlinks in
+ arch/ppc{,64}/include.
+ * Include arch/*/include into headers package.
+
+ -- Sven Luther <luther@debian.org> Tue, 25 Oct 2005 03:56:11 +0000
+
+linux-2.6 (2.6.13+2.6.14-rc4-0experimental.1) experimental; urgency=low
+
+ [ Sven Luther ]
+ * Upgraded to 2.6.14-rc4.
+
+ [ Simon Horman ]
+ * Fix genearation of .extraversion (closes: #333842)
+
+ [ dann frazier ]
+ * Enhance the linux-source description to explain the types of patches
+ Debian adds to it. (closes: #258043)
+ * Correct linux-patch-debian description. It replaces the
+ kernel-patch-debian packages, not the kernel-source packages.
+
+ [ Jonas Smedegaard ]
+ * Fix building from within a very long dir (all patches was applied at
+ once - exhausting shell commandline, now applied one by one).
+ * Add Simon Horman, Sven Luther and myself as Uploaders.
+
+ [ Bastian Blank ]
+ * Use list of revisions in patch scripts.
+ * Use correct names for tarball and scripts.
+
+ [ Jurij Smakov ]
+ * [i386] Set the CONFIG_HPET_EMULATE_RTC option to make the clock
+ work properly on certain Dell machines. This required setting the
+ CONFIG_RTC option to 'y' instead of 'm'. (closes: #309909)
+ [i386] Enable VIDEO_CX88 and VIDEO_CX88_DVB (both set to 'm') by
+ popular demand. (closes: #330916)
+
+ [ Norbert Tretkowski ]
+ * [alpha] Update arch/alpha/config for 2.6.13.
+
+ [ Kyle McMartin ]
+ * [hppa] Oops. Fix linux-headers not including asm-parisc by adding
+ headers_dirs = parisc to Makefile.inc.
+
+ [ maximilian attems ]
+ * Set CONFIG_FB_VESA=y for i386 and amd64 configs. (closes: #333003)
+
+ [ Sven Luther ]
+ * [powerpc] Fixed apus build, now use mkvmlinuz too to generate the vmlinuz
+ kernel.
+ * Fixed control.image.in to depend on :
+ initramfs-tools | yaird | linux-ramdisk-tool
+ where linux-ramdisk-tools is the virtual package provided by all
+ initrd/initramfs generating tools.
+
+ [ Frederik Schüler ]
+ * deactivate FB_RIVA on all architectures.
+ * deactivate BLK_DEV_IDESCSI on all architectures.
+ * Added patch-2.6.13.4:
+ - [SECURITY] key: plug request_key_auth memleak
+ See CAN-2005-3119
+ - [SECURITY] Fix drm 'debug' sysfs permissions
+ See CAN-2005-3179
+ - [SECURITY] Avoid 'names_cache' memory leak with CONFIG_AUDITSYSCALL
+ - [SPARC64] Fix userland FPU state corruption.
+ - BIC coding bug in Linux 2.6.13
+ - [SECURITY] orinoco: Information leakage due to incorrect padding
+ See CAN-2005-3180
+ - ieee1394/sbp2: fixes for hot-unplug and module unloading
+
+ [ Christian T. Steigies ]
+ * disable CONFIG_EXT2_FS_XIP for m68k like on all(?) other arches
+ * deactivate OKTAGON_SCSI for amiga/m68k until it can be compiled again
+ * deactivate CONFIG_KEYBOARD_HIL_OLD, CONFIG_KEYBOARD_HIL, CONFIG_MOUSE_HIL,
+ CONFIG_HIL_MLC, and CONFIG_HP_SDC for hp/m68k
+ * update m68k.diff for 2.6.13
+ * split out patches that do not intefere with other arches to
+ patches-debian/m68k-*
+
+ -- Bastian Blank <waldi@debian.org> Fri, 21 Oct 2005 12:17:47 +0000
+
+linux-2.6 (2.6.13-1) experimental; urgency=low
+
+ * New upstream release "git booost":
+ - new arch xtensa
+ - kexec/kdump
+ - execute-in-place
+ - inotify (closes: #304387)
+ - time-sharing cfq I/O scheduler
+ - manual driver binding
+ - voluntary preemption
+ - user-space I/O initiation for InfiniBand
+ - new speedy DES (crypto) implementation
+ - uml "almost-skas" mode support
+ - 250 HZ default (closes: #320366)
+ - fixes all over (alsa, archs, ide, input, ntfs, scsi, swsusp, usb, ..)
+ - orinoco driver updates (closes: #291684)
+ - md, dm updates (closes: #317787)
+
+ [ Frederik Schüler ]
+ * [amd64] Added class and longclass descriptions for amd64 flavours.
+ * [amd64] add amd64-tlb-flush-sigsegv-fix.patch: disable tlb flush
+ filtering on smp systems to workaround processor errata.
+ * backport kernel-api-documentation-generation-fix.diff from git to fix
+ documentation build.
+ * Added patch-2.6.13.1:
+ - raw_sendmsg DoS (CAN-2005-2492)
+ - 32bit sendmsg() flaw (CAN-2005-2490)
+ - Reassembly trim not clearing CHECKSUM_HW
+ - Use SA_SHIRQ in sparc specific code.
+ - Fix boundary check in standard multi-block cipher processors
+ - 2.6.13 breaks libpcap (and tcpdump)
+ - x86: pci_assign_unassigned_resources() update
+ - Fix PCI ROM mapping
+ - aacraid: 2.6.13 aacraid bad BUG_ON fix
+ - Kconfig: saa7134-dvb must select tda1004x
+
+ [ Simon Horman ]
+ * Disable BSDv3 accounting on hppa and alpha, it was already
+ disabled on all other architectures. Also unify BSD accounting
+ config into top level config, rather than per flavour configs.
+ * [SECURITY] The seq_file memory leak fix included in 2.6.12-6
+ as part of upstream's 2.6.12.6 patchset is now CAN-2005-2800.
+
+ [ Jurij Smakov, Simon Horman ]
+ * Ensure that only one kernel-manual/linux-manual package can
+ be installed at a time to avoid file conflicts. (closes: #320042)
+
+ [ Bastian Blank ]
+ * Move audit, preempt and security settings to core config file.
+ * Fix powerpc configuration.
+ * Add debian version information to kernel version string.
+ * Drop coreutils | fileutils dependencies.
+ * Drop modular-vesafb patch. (closes: #222374, #289810)
+
+ [ Christian T. Steigies ]
+ * update m68k.diff for linux-2.6.13
+ * add m68k-42_dma.patch and m68k-sonic.patch that will be in upstream 2.6.14
+ (which makes sun3 build fail, needs fixing)
+
+ [ maximilian attems ]
+ * Drop drivers-add-scsi_changer.patch (merged)
+ * Drop drivers-ide-dma-blacklist-toshiba.patch (merged)
+ * Drop drivers-ide-__devinit.patch (merged)
+ * Added patch-2.6.13.2:
+ - USB: ftdi_sio: custom baud rate fix
+ - Fix up more strange byte writes to the PCI_ROM_ADDRESS config word
+ - Fix MPOL_F_VERIFY
+ - jfs: jfs_delete_inode must call clear_inode
+ - Fix DHCP + MASQUERADE problem
+ - Sun HME: enable and map PCI ROM properly
+ - Sun GEM ethernet: enable and map PCI ROM properly
+ - hpt366: write the full 4 bytes of ROM address, not just low 1 byte
+ - forcedeth: Initialize link settings in every nv_open()
+ - Lost sockfd_put() in routing_ioctl()
+ - lost fput in 32bit ioctl on x86-64
+ * Added patch-2.6.13.3:
+ - Fix fs/exec.c:788 (de_thread()) BUG_ON
+ - Don't over-clamp window in tcp_clamp_window()
+ - fix IPv6 per-socket multicast filtering in exact-match case
+ - yenta oops fix
+ - ipvs: ip_vs_ftp breaks connections using persistence
+ - uml - Fix x86_64 page leak
+ - skge: set mac address oops with bonding
+ - tcp: set default congestion control correctly for incoming connections
+
+ [ Sven Luther ]
+ * [powerpc] Added hotplug support to the mv643xx_eth driver :
+ powerpc-mv643xx-hotplug-support.patch
+ thanks go to Nicolas Det for providing the patch.
+ * [powerpc] Modified a couple of configuration options for the powerpc64
+ flavour, fixes and enhances Apple G5 support (Closes: #323724, #328324)
+ * [powerpc] Added powerpc-miboot flavour to use exclusively with oldworld
+ powermac miboot floppies for debian-installer.
+ * [powerpc] Checked upgraded version of the apus patches, separated them in
+ a part which is safe to apply, and one which needs checking, and is thus
+ not applied yet.
+
+ [ Kyle McMartin ]
+ * [hppa] Update hppa.diff to 2.6.13-pa4.
+ * [hppa] Add space register fix to pacache.S to hppa.diff.
+
+ [ dann frazier ]
+ * Add a note to README.Debian that explains where users can find the .config
+ files used to generate the linux-image packages. Closes: #316809
+ * [ia64] Workaround #325070 until upstream works out an acceptable solution.
+ This bug breaks module loading on non-SMP ia64 kernels. The workaround
+ is to temporarily use an SMP config for the non-SMP kernels. (Note that
+ John Wright is running benchmarks to determine the overhead of running
+ an SMP kernel on UP systems to help decide if this should be a
+ permanent change).
+ * [ia64] Update arch/ia64/config for 2.6.13
+
+ -- Simon Horman <horms@debian.org> Thu, 6 Oct 2005 15:45:21 +0900
+
+linux-2.6 (2.6.12-6) unstable; urgency=high
+
+ [ Andres Salomon, Bastian Blank ]
+ * Change ATM and Classical-IP-over-ATM to be modular, instead of being
+ statically included. (closes: #323143)
+
+ [ Sven Luther ]
+ * [powerpc] powerpc-pmac-sound-check.patch: Added pmac-sound sanity check.
+ * [powerpc] powerpc-apus.patch:
+ Added preliminary apus patch to package, not applied to kernel tree yet.
+
+ [ Simon Horman ]
+ * Unset CC_OPTIMIZE_FOR_SIZE in i386 config,
+ it breaks iproute's (and other netlink users) ability
+ to set routes. (closes: #322723)
+ * Added 2.6.12.6
+ - [SECURITY: CAN-2005-2555] Restrict socket policy loading to
+ CAP_NET_ADMIN.
+ - [SECURITY] Fix DST leak in icmp_push_reply(). Possible remote
+ DoS?
+ - [SECURITY] NPTL signal delivery deadlock fix; possible local
+ DoS.
+ - fix gl_skb/skb type error in genelink driver in usbnet
+ - [SECURITY] fix a memory leak in devices seq_file implementation;
+ local DoS.
+ - [SECURITY] Fix SKB leak in ip6_input_finish(); local DoS.
+
+ [ Andres Salomon ]
+ * [hppa] enable discontiguous memory support for 32bit hppa images, so
+ they build.
+
+ -- Andres Salomon <dilinger@debian.org> Tue, 06 Sep 2005 10:14:35 -0400
+
+linux-2.6 (2.6.12-5) unstable; urgency=low
+
+ * Change ARM to use GCC 3.3 to avoid FTBFS errors with GCC 4
+ (dann frazier)
+
+ * Remove spurious double quote character from ia64 package descriptions.
+ (dann frazier)
+
+ * Add transitional meta packages (kernel-image-2.6-*) for ia64.
+ (dann frazier)
+
+ * Change fuzz factor to 1, stricter patch appliance. (Maximilian Attems)
+
+ * Enabled CONFIG_THERM_PM72 on powerpc64 flavour. (Sven Luther)
+
+ -- Bastian Blank <waldi@debian.org> Tue, 16 Aug 2005 21:43:31 +0200
+
+linux-2.6 (2.6.12-4) unstable; urgency=low
+
+ * Supply correct subarch values for the powerpc images.
+
+ -- Bastian Blank <waldi@debian.org> Mon, 15 Aug 2005 21:06:18 +0200
+
+linux-2.6 (2.6.12-3) unstable; urgency=low
+
+ * Added reference to old kernel-* package names to make
+ transition a little more obvious to end users.
+ A Dan Jacobson special. (Simon Horman) Closes: #321167
+
+ * By the time this makes it into the archive, it will
+ be handling kernel-image-2.6-* packages. (Simon Horman)
+ Closes: #321867
+
+ * Link palinfo statically on ia64. (dann frazier) (Closes: #321885)
+
+ * [hppa] :
+ - Add hppa arch specific patch.
+ - Build-Depend on binutils-hppa64 and gcc-4.0-hppa64.
+ (Kyle McMartin)
+
+ * Fix permissions in source tarball. (Bastian Blank) (Closes: #322409)
+
+ * Enable the CONFIG_IP_ADVANCED_ROUTER and related options on
+ sparc64 to sync with other architectures. (Jurij Smakov)
+ Closes: #321236
+
+ * Include all executables as well as *.sh and *.pl files found in
+ scripts directory in the headers package. (Bastian Blank)
+ Closes: #322612, #322680, #322765
+
+ * Include m68k headers into the arch-common headers package on
+ powerpc and make sure that all the directories are linked to
+ properly from the flavour-specific headers packages. (Jurij Smakov)
+ Closes: #322610
+
+ * [powerpc] Enabled the powerpc64 flavour, now that we have a real biarch
+ toolchain in sid. Many thanks go to GOTO Masanori and Matthias Klose as
+ well as any other who worked on the biarch toolchain to make this happen.
+
+ * Added 2.6.12.5 (Simon Horman)
+ - Fix BUG() is triggered by a call to set_mempolicy() with a negativ
+ first argument.
+ - [amd64] Fix a SRAT handling on systems with dual cores.
+ - [amd64] SMP timing problem
+ - [security] Zlib fixes See CAN-2005-2458, CAN-2005-2459
+ http://sources.redhat.com/ml/bug-gnu-utils/1999-06/msg00183.html
+ http://bugs.gentoo.org/show_bug.cgi
+ - Add zlib deflateBound()
+ - [security] Fix error during session join. See CAN-2005-2098
+ - [security] Fix keyring destructor. See CAN-2005-2099
+ - Module per-cpu alignment cannot always be met
+ http://www.ussg.iu.edu/hypermail/linux/kernel/0409.0/0768.html
+ Closes: #323039
+
+ -- Bastian Blank <waldi@debian.org> Mon, 15 Aug 2005 16:42:05 +0200
+
+linux-2.6 (2.6.12-2) unstable; urgency=low
+
+ * The Kernel Team offers its condolences to the family of Jens Schmalzing
+ (jensen@debian), who died Saturday, July 30, 2005 in a tragic accident in
+ Munich. Jens was a member of the Kernel Team, and was instrumental in
+ taking the powerpc kernel package to 2.6, as well as maintaining MOL
+ and its kernel modules.
+
+ * Add @longclass@ variable to control file autogeneration. (Andres Salomon)
+
+ * Bump build-depends on kernel-package to a fixed version (>= 9.005).
+ (Jurij Smakov, Sven Luther) (closes: #319657, #320422, #321625)
+
+ * Change default ramdisk size for sparc to 16,384K to accomodate a fatter
+ d-i initrd for netboot installs.
+ (Joshua Kwan)
+
+ * Don't build-depend on console-tools on s390. (Bastian Blank)
+
+ * Add ARM support. (Vincent Sanders)
+
+ * Add ia64 descriptions. (dann frazier)
+
+ * Strip down the scripts dir in the headers packages. (Bastian Blank)
+
+ * Add m68k support. (Christian T. Steigies)
+
+ * Added 2.6.12.4 (Frederik Schüler)
+ - Fix powernow oops on dual-core athlon
+ - Fix early vlan adding leads to not functional device
+ - sys_get_thread_area does not clear the returned argument
+ - bio_clone fix
+ - Fix possible overflow of sock->sk_policy (CAN-2005-2456)
+ (closes: #321401)
+ - Wait until all references to ip_conntrack_untracked are dropped on
+ unload
+ - Fix potential memory corruption in NAT code (aka memory NAT)
+ - Fix deadlock in ip6_queue
+ - Fix signedness issues in net/core/filter.c
+ - x86_64 memleak from malicious 32bit elf program
+ - rocket.c: Fix ldisc ref count handling
+ - kbuild: build TAGS problem with O=
+
+ * Enable CONFIG_6PACK=m for all archs (Andres Salomon)
+ (closes: #319646)
+
+ * Overhaul the generation of the control file. Now it is handled
+ by debian/bin/gencontrol.py. The debian/control target in rules
+ also fails now, since we don't want the control file generated
+ during build. Arch-specific Depends and suggests are now generated
+ correctly. (Bastian Blank) (Closes: #319896)
+
+ * [powerpc] Fixed typo which made asm-ppc and asm-ppc64 not being included
+ in the header package. (Sven Luther) (Closes: #320817)
+
+ * Added list of flavours built to common header package. (Sven Luther)
+
+ -- Bastian Blank <waldi@debian.org> Tue, 09 Aug 2005 11:12:40 +0200
+
+linux-2.6 (2.6.12-1) unstable; urgency=low
+
+ * New upstream release:
+ - "git rocks"
+ - address space randomization
+ - conversion of ide driver code to the device model
+ - restored Philips webcam driver
+ - new Broadcom bcm5706 gigabit driver
+ - new resource limits for the audio community
+ - Multipath device mapper
+ - Intel HD Audio alsa driver
+ - fixes + arch updates..
+ - readdition of tg3 driver, as firmware license has been fixed
+
+ * Dropped the following patches:
+ - patch-2.6.11.*.patch (merged)
+ - powerpc-ppc64-ibmvscsi.patch (Christoph didn't like it, and it failed
+ to build anyways) (Sven Luther)
+ - doc-post_halloween.patch (unless someone can come up w/ a valid
+ reason for carrying around rapidly bitrotting documentation...)
+ (Andres Salomon)
+ - sparc32-hypersparc-srmmu.patch (dropped until sparc32 is working
+ again, and we can figure out whether it's necessary)
+ - fix-alpha-ext3-oops.patch (no longer needed, fixed by compiler)
+ - x86-i486_emu.patch (buggy and insecure 80486 instruction emulation
+ for 80386; we're no longer supporting this) (closes: #250468)
+ - amd64-outs.patch (according to
+ http://www.ussg.iu.edu/hypermail/linux/kernel/0502.3/1095.html, this
+ is unnecessary for us) (Andres Salomon)
+ - sparc64-rtc-mostek.patch (merged)
+ - sparc64-compat-nanoseconds.patch (merged)
+ - sparc64-sunsu-init-2.6.11.patch (merged)
+ - sunsab-uart-update-timeout.patch (merged)
+ - alpha-read-trylock.patch (different version got merged)
+ - powerpc-prep-motorola-irq-fix.patch (merged)
+ - drivers-media-video-saa7134-update.patch (merged)
+ - drivers-media-video-saa7134-update-2.patch (merged)
+ - drivers-media-video-pll-lib.patch (merged)
+ - drivers-media-video-pll-lib-2.patch (merged)
+ - drivers-media-video-tuner-update-1.patch (merged)
+ - drivers-media-video-tuner-update-2.patch (merged)
+ - drivers-media-video-v4l-mpeg-support.patch (merged)
+ - drivers-media-video-mt352-update.patch (merged)
+ - arch-ppc64-hugepage-aio-panic.patch (merged)
+ - drivers-input-serio-nmouse.patch (merged)
+ - sparc64-sb1500-clock-2.6.patch (merged)
+ - docbook-allow-preprocessor-directives-... (merged)
+ - docbook-fix-function-parameter-descriptin-in-fbmem.patch (merged)
+ - docbook-move-kernel-doc-comment-next-to-function.patch (merged)
+ - powerpc-therm-adt746x-new-i2c-fix.patch (merged)
+ - powerpc-mv643xx-enet.patch (merged)
+ - powerpc-mv643xx-eth-pegasos.patch (merged)
+ - powerpc-pmac-agp-sleep.patch (merged)
+ - drivers-input-serio-8042-resume.patch (merged)
+
+ * Premiere of the common-source kernel package
+ (Jurij Smakov, Andres Salomon)
+ - build all architectures out of kernel source package
+ - rename source and binary packages
+ - create a common config for different architectures, and management
+ tools to allow for easier modification of config options
+ - drop default configs, autogenerate them instead; requires
+ kernel-package >= 9.002.
+
+ * Add 2.6.12.1 (Maximilian Attems)
+ - Clean up subthread exec (CAN-2005-1913)
+ - ia64 ptrace + sigrestore_context (CAN-2005-1761)
+
+ * Add 2.6.12.2 (Frederik Schüler)
+ - Fix two socket hashing bugs.
+ - ACPI: Make sure we call acpi_register_gsi() even for default PCI
+ interrupt assignment
+ - Add "memory" clobbers to the x86 inline asm of strncmp and friends
+ - e1000: fix spinlock bug
+ - fix remap_pte_range BUG
+ - Fix typo in drivers/pci/pci-driver.c
+
+ * Add 2.6.12.3 (Joshua Kwan)
+ - Fix semaphore handling in __unregister_chrdev
+ - Fix TT mode in UML.
+ - Check for a null return in tty_ldisc_ref.
+ - v4l: cx88 hue offset fix
+ - Fix 8139cp breakage that occurs with tpm driver.
+ - Fix the 6pack driver in SMP environments.
+ - Switch to spinlocks in the shaper driver.
+ - ppc32: stop misusing NTP's time_offset value
+ - netfilter: go back to dropping conntrack references manually
+ - ACPI: don't accept 0 as a PCI IRQ.
+
+ * Enable CONFIG_SCSI_INITIO. (Maximilian Attems) (closes: #318121)
+
+ * [powerpc] :
+ - Added powerpc-mkvmlinuz-support patch which allows, together with
+ kernel-package 9.0002 to add mkvmlinuz support to hand built packages.
+ - Removed powerpc-ppc64-ibmvscsi.patch, FTBFS, and Christoph doesn't like
+ it and thinks it is not needed.
+ - Disabled swim3 on powerpc-smp, FTBFS.
+ - Disabled software-suspend on powerpc-smp, FTBFS, amd64/i386 only smp code.
+ - Rediffed and readded the G4 L2 hardware flush assist patch from Jacob Pan.
+ (Sven Luther)
+
+ * [sparc]
+ - Drop sparc32 flavour for now. sparc32 kernel is currently in the
+ category "too buggy for us to support". In spite of numerous efforts
+ I still see occasional random filesystem corruptions in my tests.
+ That does NOT mean that we are dropping sparc32 support, we will
+ work with upstream trying to solve these problems for the next
+ kernel release. Those interested in helping/testing are encouraged
+ to subscribe to debian-sparc mailing list.
+ (Jurij Smakov)
+
+ * [alpha]
+ - Renamed resulting binary packages for alpha, kernel-image-x.y.z-generic
+ wasn't a generic kernel, it was a generic kernel for alpha machines, so
+ we're now using linux-image-x.y.z-alpha-generic (and of course, the same
+ change for the smp kernel-image). This change was postponed after the
+ sarge release. (closes: #260003)
+ (Norbert Tretkowski)
+
+ * [amd64]
+ - Now using the default compiler (gcc-4.0), thus we get rid of the
+ annoying MAKEFLAGS="CC=gcc-3.4" make-kpkg... invocation for third-party
+ modules.
+ This release lacks 64bit kernels for i386 userland; support will be
+ added in a later release as soon as the toolchain has stabilized again.
+ (Frederik Schüler)
+
+ -- Andres Salomon <dilinger@debian.org> Wed, 20 Jul 2005 17:16:04 -0400
+
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 000000000..ec635144f
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+9
diff --git a/debian/config.defines.dump b/debian/config.defines.dump
new file mode 100644
index 000000000..e9e4dbda9
--- /dev/null
+++ b/debian/config.defines.dump
@@ -0,0 +1,2966 @@
+cdebian_linux.config
+ConfigCore
+p0
+(tRp1
+(Vabi
+p2
+tp3
+(dp4
+Vabiname
+p5
+V21
+p6
+sVignore-changes
+p7
+(lp8
+V__cpuhp_*
+p9
+aVbpf_analyzer
+p10
+aVcxl_*
+p11
+aVdax_flush
+p12
+aVieee80211_nullfunc_get
+p13
+aVinet_add_protocol
+p14
+aVinet_del_protocol
+p15
+aViommu_device_*
+p16
+aVmm_iommu_*
+p17
+aVmv_mbus_*
+p18
+aVperf_*
+p19
+aVregister_cxl_calls
+p20
+aVregister_key_type
+p21
+aVunregister_cxl_calls
+p22
+aV*_hw_breakpoint
+p23
+aVmodule:drivers/crypto/ccp/*
+p24
+aVmodule:drivers/hv/*
+p25
+aVmodule:drivers/gpu/drm/sun4i/*
+p26
+aVmodule:drivers/iio/**
+p27
+aVmodule:drivers/misc/cxl/*
+p28
+aVmodule:drivers/mtd/nand/*
+p29
+aVmodule:drivers/net/ethernet/**
+p30
+aVmodule:drivers/net/wireless/**
+p31
+aVmodule:drivers/nvdimm/*
+p32
+aVmodule:drivers/power/supply/bq27xxx_battery
+p33
+aVmodule:drivers/scsi/cxgbi/*
+p34
+aVmodule:drivers/scsi/libiscs*
+p35
+aVmodule:drivers/scsi/qla2xxx/qla2xxx
+p36
+aVmodule:drivers/scsi/ufs/*
+p37
+aVmodule:drivers/target/**
+p38
+aVmodule:drivers/usb/chipidea/**
+p39
+aVmodule:drivers/usb/gadget/**
+p40
+aVmodule:drivers/usb/host/**
+p41
+aVmodule:drivers/usb/musb/**
+p42
+aVmodule:fs/nfs/**
+p43
+aVmodule:net/ceph/libceph
+p44
+aVmodule:net/l2tp/**
+p45
+aVmodule:net/rxrpc/rxrpc
+p46
+aVmodule:net/sctp/**
+p47
+aVmodule:sound/core/seq/**
+p48
+aVmodule:sound/firewire/snd-firewire-lib
+p49
+aVmodule:sound/pci/hda/*
+p50
+aVbtree_*
+p51
+aVvisitor*
+p52
+aVcan_rx_register
+p53
+aVip6_xmit
+p54
+aVmodule:net/dccp/dccp
+p55
+aVmodule:net/rds/rds
+p56
+aVdevfreq_*
+p57
+aVdevm_devfreq_*
+p58
+aVupdate_devfreq
+p59
+aVmodule:drivers/infiniband/**
+p60
+aVacpi_ec_add_query_handler
+p61
+aVacpi_ec_remove_query_handler
+p62
+aVfirst_ec
+p63
+aVdebugfs_create_automount
+p64
+aVmodule:drivers/iio/imu/inv_mpu6050/*
+p65
+aVdrm_crtc_accurate_vblank_count
+p66
+aVacpi_nfit_desc_init
+p67
+aVacpi_nfit_init
+p68
+aVloop_register_transfer
+p69
+aVxen_xlate_*
+p70
+aVnf_nat_masquerade_ipv4_register_notifier
+p71
+aVnf_nat_masquerade_ipv6_register_notifier
+p72
+aVmodule:drivers/scsi/hisi_sas/*
+p73
+aV__kvm_*
+p74
+aV__xive_vm_h_*
+p75
+aV_kvmppc_*
+p76
+aVgfn_to_*
+p77
+aVkvm_*
+p78
+aVkvmppc_*
+p79
+aVmark_page_dirty
+p80
+aVvcpu_*
+p81
+aVmodule:arch/x86/kvm/*
+p82
+aVtm_abort
+p83
+aVtm_disable
+p84
+aVtm_enable
+p85
+ass(Vbase
+p86
+tp87
+(dp88
+Varches
+p89
+(lp90
+Valpha
+p91
+aVamd64
+p92
+aVarm64
+p93
+aVarm64ilp32
+p94
+aVarmel
+p95
+aVarmhf
+p96
+aVhppa
+p97
+aVi386
+p98
+aVia64
+p99
+aVm68k
+p100
+aVmips
+p101
+aVmips64
+p102
+aVmips64el
+p103
+aVmips64r6
+p104
+aVmips64r6el
+p105
+aVmipsel
+p106
+aVmipsn32
+p107
+aVmipsn32el
+p108
+aVmipsn32r6
+p109
+aVmipsn32r6el
+p110
+aVmipsr6
+p111
+aVmipsr6el
+p112
+aVpowerpc
+p113
+aVpowerpcspe
+p114
+aVppc64
+p115
+aVppc64el
+p116
+aVriscv64
+p117
+aVs390
+p118
+aVs390x
+p119
+aVsh3
+p120
+aVsh4
+p121
+aVsparc
+p122
+aVsparc64
+p123
+aVx32
+p124
+asVcompiler
+p125
+Vgcc-8
+p126
+sVfeaturesets
+p127
+(lp128
+Vnone
+p129
+aVrt
+p130
+ass(Vbuild
+p131
+tp132
+(dp133
+Vdebug-info
+p134
+I01
+sVsigned-code
+p135
+I00
+ss(Vbase
+p136
+NVrt
+p137
+tp138
+(dp139
+Venabled
+p140
+I01
+ss(Vdescription
+p141
+tp142
+(dp143
+Vpart-long-up
+p144
+VThis kernel is not suitable for SMP (multi-processor,\u000amulti-core or hyper-threaded) systems.
+p145
+ss(Vimage
+p146
+tp147
+(dp148
+Vinitramfs-generators
+p149
+(lp150
+Vinitramfs-tools
+p151
+aVinitramfs-fallback
+p152
+asVrecommends
+p153
+(lp154
+Vapparmor
+p155
+ass(Vrelations
+p156
+tp157
+(dp158
+Vgcc-8
+p159
+Vgcc-8 <!stage1 !cross !pkg.linux.nokernel>, gcc-8-@gnu-type-package@ <!stage1 cross !pkg.linux.nokernel>
+p160
+sVinitramfs-fallback
+p161
+Vlinux-initramfs-tool
+p162
+sVinitramfs-tools
+p163
+Vinitramfs-tools (>= 0.120+deb8u2)
+p164
+ss(Vbase
+p165
+Valpha
+p166
+tp167
+(dp168
+Vkernel-arch
+p169
+Valpha
+p170
+sVfeaturesets
+p171
+(lp172
+Vnone
+p173
+ass(Vbuild
+p174
+g166
+tp175
+(dp176
+Vimage-file
+p177
+Varch/alpha/boot/vmlinux.gz
+p178
+ss(Vimage
+p179
+g166
+tp180
+(dp181
+Vsuggests
+p182
+(lp183
+Vaboot
+p184
+aVfdutils
+p185
+asVinstall-stem
+p186
+Vvmlinuz
+p187
+ss(Vdescription
+p188
+g166
+NValpha-generic
+p189
+tp190
+(dp191
+Vhardware
+p192
+VAlpha
+p193
+sVhardware-long
+p194
+VDEC Alpha systems with extended kernel start address (Wildfire, Titan, Marvel)
+p195
+ss(Vdescription
+p196
+g166
+NValpha-smp
+p197
+tp198
+(dp199
+Vhardware
+p200
+VAlpha SMP
+p201
+sVhardware-long
+p202
+VDEC Alpha SMP systems with extended kernel start address (Wildfire, Titan, Marvel)
+p203
+ss(Vbase
+p204
+g166
+g173
+tp205
+(dp206
+Vflavours
+p207
+(lp208
+Valpha-generic
+p209
+aValpha-smp
+p210
+asVimplicit-flavour
+p211
+I01
+ss(Vbase
+p212
+Vamd64
+p213
+tp214
+(dp215
+Vfeaturesets
+p216
+(lp217
+Vnone
+p218
+aVrt
+p219
+asVkernel-arch
+p220
+Vx86
+p221
+ss(Vbuild
+p222
+g213
+tp223
+(dp224
+Vdebug-info
+p225
+I01
+sVimage-file
+p226
+Varch/x86/boot/bzImage
+p227
+sVsigned-code
+p228
+I01
+sVvdso
+p229
+I01
+ss(Vimage
+p230
+g213
+tp231
+(dp232
+Vbootloaders
+p233
+(lp234
+Vgrub-pc
+p235
+aVgrub-efi-amd64
+p236
+aVextlinux
+p237
+asVinstall-stem
+p238
+Vvmlinuz
+p239
+sVbreaks
+p240
+(lp241
+Vxserver-xorg-input-vmmouse (<< 1:13.0.99)
+p242
+ass(Vrelations
+p243
+g213
+tp244
+(dp245
+Vgcc-8
+p246
+Vgcc-8 (>= 8-20180123-1~) <!stage1 !cross !pkg.linux.nokernel>, gcc-8-x86-64-linux-gnu (>= 8-20180123-1~) <!stage1 cross !pkg.linux.nokernel>
+p247
+sVheaders%gcc-8
+p248
+Vlinux-compiler-gcc-8-x86
+p249
+ss(Vdescription
+p250
+g213
+NVamd64
+p251
+tp252
+(dp253
+Vhardware
+p254
+V64-bit PCs
+p255
+sVhardware-long
+p256
+VPCs with AMD64, Intel 64 or VIA Nano processors
+p257
+ss(Vdescription
+p258
+g213
+NVcloud-amd64
+p259
+tp260
+(dp261
+Vhardware
+p262
+Vx86-64 cloud
+p263
+sVhardware-long
+p264
+VAmazon EC2, Google Compute Engine and Microsoft Azure cloud platforms
+p265
+ss(Vbase
+p266
+g213
+Vnone
+p267
+tp268
+(dp269
+Vflavours
+p270
+(lp271
+Vamd64
+p272
+aVcloud-amd64
+p273
+ass(Vbase
+p274
+g213
+Vrt
+p275
+tp276
+(dp277
+Vflavours
+p278
+(lp279
+Vamd64
+p280
+ass(Vbase
+p281
+Varm64
+p282
+tp283
+(dp284
+Vkernel-arch
+p285
+Varm64
+p286
+sVfeaturesets
+p287
+(lp288
+Vnone
+p289
+aVrt
+p290
+ass(Vbuild
+p291
+g282
+tp292
+(dp293
+Vdebug-info
+p294
+I01
+sVimage-file
+p295
+Varch/arm64/boot/Image
+p296
+sVsigned-code
+p297
+I01
+sVvdso
+p298
+I01
+ss(Vimage
+p299
+g282
+tp300
+(dp301
+Vinstall-stem
+p302
+Vvmlinuz
+p303
+sVbreaks
+p304
+(lp305
+Vlibmozjs185-1.0
+p306
+aVlibmozjs-24-0 (<< 24.2.0-5.1~)
+p307
+ass(Vdescription
+p308
+g282
+NVarm64
+p309
+tp310
+(dp311
+Vhardware
+p312
+V64-bit ARMv8 machines
+p313
+ss(Vimage
+p314
+g282
+NVarm64
+p315
+tp316
+(dp317
+s(Vbase
+p318
+g282
+Vnone
+p319
+tp320
+(dp321
+Vflavours
+p322
+(lp323
+Varm64
+p324
+ass(Vbase
+p325
+g282
+Vrt
+p326
+tp327
+(dp328
+Vflavours
+p329
+(lp330
+Varm64
+p331
+ass(Vbase
+p332
+Varm64ilp32
+p333
+tp334
+(dp335
+Vkernel-arch
+p336
+Varm64
+p337
+sVfeaturesets
+p338
+(lp339
+ss(Vbase
+p340
+Varmel
+p341
+tp342
+(dp343
+Vkernel-arch
+p344
+Varm
+p345
+sg171
+(lp346
+g173
+ass(Vbuild
+p347
+g341
+tp348
+(dp349
+Vimage-file
+p350
+Varch/arm/boot/zImage
+p351
+sVuncompressed-image-file
+p352
+Varch/arm/boot/Image
+p353
+ss(Vimage
+p354
+g341
+tp355
+(dp356
+Vinstall-stem
+p357
+Vvmlinuz
+p358
+ss(Vrelations
+p359
+g341
+tp360
+(dp361
+Vheaders%gcc-8
+p362
+Vlinux-compiler-gcc-8-arm
+p363
+ss(Vdescription
+p364
+g341
+NVmarvell
+p365
+tp366
+(dp367
+Vhardware
+p368
+VMarvell Kirkwood/Orion
+p369
+sVhardware-long
+p370
+VMarvell Kirkwood and Orion based systems (https://wiki.debian.org/ArmEabiPort#Supported_hardware)
+p371
+ss(Vdescription
+p372
+g341
+NVrpi
+p373
+tp374
+(dp375
+Vhardware
+p376
+VRaspberry Pi and Pi Zero
+p377
+sVhardware-long
+p378
+VRaspberry Pi, Raspberry Pi Zero based systems
+p379
+ss(Vimage
+p380
+g341
+NVmarvell
+p381
+tp382
+(dp383
+Vrecommends
+p384
+(lp385
+Vu-boot-tools
+p386
+asVcheck-size
+p387
+I2097080
+sVcheck-size-with-dtb
+p388
+I01
+sVcheck-uncompressed-size
+p389
+I7340032
+sVbreaks
+p390
+(lp391
+Vflash-kernel (<< 3.57~)
+p392
+ass(g204
+g341
+g173
+tp393
+(dp394
+g207
+(lp395
+Vmarvell
+p396
+aVrpi
+p397
+asg211
+I01
+ss(Vbase
+p398
+Varmhf
+p399
+tp400
+(dp401
+Vfeaturesets
+p402
+(lp403
+Vnone
+p404
+aVrt
+p405
+asVkernel-arch
+p406
+Varm
+p407
+ss(Vbuild
+p408
+g399
+tp409
+(dp410
+Vimage-file
+p411
+Varch/arm/boot/zImage
+p412
+sVvdso
+p413
+I01
+ss(Vimage
+p414
+g399
+tp415
+(dp416
+Vinstall-stem
+p417
+Vvmlinuz
+p418
+ss(Vrelations
+p419
+g399
+tp420
+(dp421
+Vheaders%gcc-8
+p422
+Vlinux-compiler-gcc-8-arm
+p423
+ss(Vdescription
+p424
+g399
+NVarmmp
+p425
+tp426
+(dp427
+Vhardware
+p428
+VARMv7 multiplatform compatible SoCs
+p429
+sVhardware-long
+p430
+VARMv7 multiplatform kernel. See\u000ahttps://wiki.debian.org/DebianKernel/ARMMP for details of supported\u000aplatforms
+p431
+ss(Vdescription
+p432
+g399
+NVarmmp-lpae
+p433
+tp434
+(dp435
+Vhardware
+p436
+VARMv7 multiplatform compatible SoCs supporting LPAE
+p437
+sVhardware-long
+p438
+VARMv7 multiplatform kernel supporting LPAE. See\u000ahttps://wiki.debian.org/DebianKernel/ARMMP for details of supported\u000aplatforms.
+p439
+ss(Vbase
+p440
+g399
+Vnone
+p441
+tp442
+(dp443
+Vflavours
+p444
+(lp445
+Varmmp
+p446
+aVarmmp-lpae
+p447
+ass(Vbase
+p448
+g399
+Vrt
+p449
+tp450
+(dp451
+Vflavours
+p452
+(lp453
+Varmmp
+p454
+ass(Vbase
+p455
+Vhppa
+p456
+tp457
+(dp458
+Vkernel-arch
+p459
+Vparisc
+p460
+sg171
+(lp461
+g173
+ass(Vbuild
+p462
+g456
+tp463
+(dp464
+Vimage-file
+p465
+Varch/parisc/boot/bzImage
+p466
+sVdebug-info
+p467
+I00
+ss(Vimage
+p468
+g456
+tp469
+(dp470
+Vsuggests
+p471
+(lp472
+Vpalo
+p473
+asVinstall-stem
+p474
+Vvmlinuz
+p475
+ss(Vdescription
+p476
+g456
+NVparisc
+p477
+tp478
+(dp479
+Vhardware
+p480
+V32-bit PA-RISC
+p481
+sVhardware-long
+p482
+VHP PA-RISC 32-bit systems with max 4 GB RAM
+p483
+ss(Vdescription
+p484
+g456
+NVparisc-smp
+p485
+tp486
+(dp487
+Vhardware
+p488
+Vmultiprocessor 32-bit PA-RISC
+p489
+sVhardware-long
+p490
+VHP PA-RISC 32-bit SMP systems with max 4 GB RAM
+p491
+ss(Vbase
+p492
+g456
+NVparisc64-smp
+p493
+tp494
+(dp495
+Vcflags
+p496
+V-fno-cse-follow-jumps
+p497
+sVoverride-host-type
+p498
+Vhppa64-linux-gnu
+p499
+ss(Vdescription
+p500
+g456
+NVparisc64-smp
+p501
+tp502
+(dp503
+Vhardware
+p504
+Vmultiprocessor 64-bit PA-RISC
+p505
+sVhardware-long
+p506
+VHP PA-RISC 64-bit SMP systems with support for more than 4 GB RAM
+p507
+ss(Vrelations
+p508
+g456
+tp509
+(dp510
+Vgcc-8
+p511
+Vgcc-8 <!stage1 !cross !pkg.linux.nokernel>, gcc-8-hppa-linux-gnu <!stage1 cross !pkg.linux.nokernel>, binutils-hppa64-linux-gnu <!stage1 !pkg.linux.nokernel>, gcc-8-hppa64-linux-gnu <!stage1 !pkg.linux.nokernel>
+p512
+ss(g204
+g456
+g173
+tp513
+(dp514
+g207
+(lp515
+Vparisc
+p516
+aVparisc-smp
+p517
+aVparisc64-smp
+p518
+asg211
+I01
+ss(Vbase
+p519
+Vi386
+p520
+tp521
+(dp522
+Vfeaturesets
+p523
+(lp524
+Vnone
+p525
+aVrt
+p526
+asVkernel-arch
+p527
+Vx86
+p528
+ss(Vbuild
+p529
+g520
+tp530
+(dp531
+Vimage-file
+p532
+Varch/x86/boot/bzImage
+p533
+sVsigned-code
+p534
+I01
+sVvdso
+p535
+I01
+ss(Vdescription
+p536
+g520
+tp537
+(dp538
+Vpart-long-pae
+p539
+VThis kernel requires PAE (Physical Address Extension).\u000aThis feature is supported by the Intel Pentium Pro/II/III/4/4M/D, Xeon,\u000aCore and Atom; AMD Geode NX, Athlon (K7), Duron, Opteron, Sempron,\u000aTurion or Phenom; Transmeta Efficeon; VIA C7; and some other processors.
+p540
+ss(Vimage
+p541
+g520
+tp542
+(dp543
+Vbootloaders
+p544
+(lp545
+Vgrub-pc
+p546
+aVgrub-efi-ia32
+p547
+aVextlinux
+p548
+asVinstall-stem
+p549
+Vvmlinuz
+p550
+sVbreaks
+p551
+(lp552
+Vxserver-xorg-input-vmmouse (<< 1:13.0.99)
+p553
+ass(Vrelations
+p554
+g520
+tp555
+(dp556
+Vgcc-8
+p557
+Vgcc-8 (>= 8-20180123-1~) <!stage1 !cross !pkg.linux.nokernel>, gcc-8-i686-linux-gnu (>= 8-20180123-1~) <!stage1 cross !pkg.linux.nokernel>
+p558
+sVheaders%gcc-8
+p559
+Vlinux-compiler-gcc-8-x86
+p560
+ss(Vdescription
+p561
+g520
+NV686
+p562
+tp563
+(dp564
+Vhardware
+p565
+Volder PCs
+p566
+sVhardware-long
+p567
+VPCs with one or more processors not supporting PAE
+p568
+ss(Vbuild
+p569
+g520
+NV686-pae
+p570
+tp571
+(dp572
+Vdebug-info
+p573
+I01
+ss(Vdescription
+p574
+g520
+NV686-pae
+p575
+tp576
+(dp577
+Vhardware
+p578
+Vmodern PCs
+p579
+sVhardware-long
+p580
+VPCs with one or more processors supporting PAE
+p581
+sVparts
+p582
+(lp583
+Vpae
+p584
+ass(Vbase
+p585
+g520
+Vnone
+p586
+tp587
+(dp588
+Vflavours
+p589
+(lp590
+V686
+p591
+aV686-pae
+p592
+ass(Vbase
+p593
+g520
+Vrt
+p594
+tp595
+(dp596
+Vflavours
+p597
+(lp598
+V686-pae
+p599
+ass(Vbase
+p600
+Via64
+p601
+tp602
+(dp603
+Vkernel-arch
+p604
+Via64
+p605
+sg171
+(lp606
+g173
+ass(Vbuild
+p607
+g601
+tp608
+(dp609
+Vimage-file
+p610
+Vvmlinux.gz
+p611
+ss(Vimage
+p612
+g601
+tp613
+(dp614
+Vbootloaders
+p615
+(lp616
+Vgrub-efi-ia64
+p617
+asVinstall-stem
+p618
+Vvmlinuz
+p619
+ss(Vdescription
+p620
+g601
+NVitanium
+p621
+tp622
+(dp623
+Vhardware
+p624
+VItanium (Merced)
+p625
+sVhardware-long
+p626
+Vsystems with original Itanium (Merced) processors
+p627
+ss(Vdescription
+p628
+g601
+NVmckinley
+p629
+tp630
+(dp631
+Vhardware
+p632
+VItanium 2+
+p633
+sVhardware-long
+p634
+Vsystems with Itanium 2 or 9300/9500/9700-series processors
+p635
+ss(g204
+g601
+g173
+tp636
+(dp637
+g207
+(lp638
+Vitanium
+p639
+aVmckinley
+p640
+asg211
+I01
+ss(Vbase
+p641
+Vm68k
+p642
+tp643
+(dp644
+Vcflags
+p645
+V-ffreestanding
+p646
+sVkernel-arch
+p647
+Vm68k
+p648
+sg171
+(lp649
+g173
+ass(Vbuild
+p650
+g642
+tp651
+(dp652
+Vimage-file
+p653
+Vvmlinux
+p654
+ss(Vimage
+p655
+g642
+tp656
+(dp657
+Vsuggests
+p658
+(lp659
+Vvmelilo
+p660
+aVfdutils
+p661
+asVinstall-stem
+p662
+Vvmlinux
+p663
+ss(Vdescription
+p664
+g642
+NVm68k
+p665
+tp666
+(dp667
+Vhardware
+p668
+VMotorola MC68020+ family
+p669
+ss(g204
+g642
+g173
+tp670
+(dp671
+g207
+(lp672
+Vm68k
+p673
+asg211
+I01
+ss(Vbase
+p674
+Vmips
+p675
+tp676
+(dp677
+Vkernel-arch
+p678
+Vmips
+p679
+sg171
+(lp680
+g173
+ass(Vbuild
+p681
+g675
+tp682
+(dp683
+Vimage-file
+p684
+Vvmlinux
+p685
+ss(Vimage
+p686
+g675
+tp687
+(dp688
+Vinstall-stem
+p689
+Vvmlinux
+p690
+ss(Vdescription
+p691
+g675
+NV4kc-malta
+p692
+tp693
+(dp694
+Vhardware
+p695
+VMIPS Malta
+p696
+sVhardware-long
+p697
+VMIPS Malta boards
+p698
+ss(Vimage
+p699
+g675
+NV4kc-malta
+p700
+tp701
+(dp702
+Vconfigs
+p703
+(lp704
+Vkernelarch-mips/config.malta
+p705
+aVkernelarch-mips/config.mips32r2
+p706
+ass(Vdescription
+p707
+g675
+NV5kc-malta
+p708
+tp709
+(dp710
+Vhardware
+p711
+VMIPS Malta (64-bit)
+p712
+sVhardware-long
+p713
+VMIPS Malta boards (64-bit)
+p714
+ss(Vimage
+p715
+g675
+NV5kc-malta
+p716
+tp717
+(dp718
+Vconfigs
+p719
+(lp720
+Vkernelarch-mips/config.malta
+p721
+aVkernelarch-mips/config.mips64r2
+p722
+ass(Vdescription
+p723
+g675
+NVocteon
+p724
+tp725
+(dp726
+Vhardware
+p727
+VOcteon
+p728
+sVhardware-long
+p729
+VCavium Networks Octeon
+p730
+ss(Vimage
+p731
+g675
+NVocteon
+p732
+tp733
+(dp734
+Vconfigs
+p735
+(lp736
+Vkernelarch-mips/config.octeon
+p737
+ass(g204
+g675
+g173
+tp738
+(dp739
+g207
+(lp740
+V4kc-malta
+p741
+aV5kc-malta
+p742
+aVocteon
+p743
+asg211
+I01
+ss(Vbase
+p744
+Vmips64
+p745
+tp746
+(dp747
+Vkernel-arch
+p748
+Vmips
+p749
+sg171
+(lp750
+g173
+ass(Vbuild
+p751
+g745
+tp752
+(dp753
+Vimage-file
+p754
+Vvmlinux
+p755
+ss(Vimage
+p756
+g745
+tp757
+(dp758
+Vinstall-stem
+p759
+Vvmlinux
+p760
+ss(Vdescription
+p761
+g745
+NV5kc-malta
+p762
+tp763
+(dp764
+Vhardware
+p765
+VMIPS Malta
+p766
+sVhardware-long
+p767
+VMIPS Malta boards
+p768
+ss(Vimage
+p769
+g745
+NV5kc-malta
+p770
+tp771
+(dp772
+Vconfigs
+p773
+(lp774
+Vkernelarch-mips/config.malta
+p775
+aVkernelarch-mips/config.mips64r2
+p776
+ass(Vdescription
+p777
+g745
+NVocteon
+p778
+tp779
+(dp780
+Vhardware
+p781
+VOcteon
+p782
+sVhardware-long
+p783
+VCavium Networks Octeon
+p784
+ss(Vimage
+p785
+g745
+NVocteon
+p786
+tp787
+(dp788
+Vconfigs
+p789
+(lp790
+Vkernelarch-mips/config.octeon
+p791
+ass(g204
+g745
+g173
+tp792
+(dp793
+g207
+(lp794
+V5kc-malta
+p795
+aVocteon
+p796
+asg211
+I01
+ss(Vbase
+p797
+Vmips64el
+p798
+tp799
+(dp800
+Vkernel-arch
+p801
+Vmips
+p802
+sg171
+(lp803
+g173
+ass(Vbuild
+p804
+g798
+tp805
+(dp806
+Vimage-file
+p807
+Vvmlinux
+p808
+ss(Vimage
+p809
+g798
+tp810
+(dp811
+Vinstall-stem
+p812
+Vvmlinux
+p813
+ss(Vdescription
+p814
+g798
+NV5kc-malta
+p815
+tp816
+(dp817
+Vhardware
+p818
+VMIPS Malta
+p819
+sVhardware-long
+p820
+VMIPS Malta boards
+p821
+ss(Vimage
+p822
+g798
+NV5kc-malta
+p823
+tp824
+(dp825
+Vconfigs
+p826
+(lp827
+Vkernelarch-mips/config.malta
+p828
+aVkernelarch-mips/config.mips64r2
+p829
+ass(Vdescription
+p830
+g798
+NVloongson-3
+p831
+tp832
+(dp833
+Vhardware
+p834
+VLoongson 3A/3B
+p835
+sVhardware-long
+p836
+VLoongson 3A or 3B based systems (e.g. from Loongson or Lemote)
+p837
+ss(Vimage
+p838
+g798
+NVloongson-3
+p839
+tp840
+(dp841
+Vconfigs
+p842
+(lp843
+Vkernelarch-mips/config.loongson-3
+p844
+ass(Vdescription
+p845
+g798
+NVocteon
+p846
+tp847
+(dp848
+Vhardware
+p849
+VOcteon
+p850
+sVhardware-long
+p851
+VCavium Networks Octeon
+p852
+ss(Vimage
+p853
+g798
+NVocteon
+p854
+tp855
+(dp856
+Vconfigs
+p857
+(lp858
+Vkernelarch-mips/config.octeon
+p859
+ass(g204
+g798
+g173
+tp860
+(dp861
+g207
+(lp862
+V5kc-malta
+p863
+aVloongson-3
+p864
+aVocteon
+p865
+asg211
+I01
+ss(Vbase
+p866
+Vmips64r6
+p867
+tp868
+(dp869
+Vkernel-arch
+p870
+Vmips
+p871
+sg171
+(lp872
+g173
+ass(Vbuild
+p873
+g867
+tp874
+(dp875
+Vimage-file
+p876
+Vvmlinux
+p877
+ss(Vimage
+p878
+g867
+tp879
+(dp880
+Vinstall-stem
+p881
+Vvmlinux
+p882
+ss(Vdescription
+p883
+g867
+NVmips64r6
+p884
+tp885
+(dp886
+Vhardware
+p887
+VMIPS R6 (64 bit, big endian)
+p888
+sVhardware-long
+p889
+VMIPS R6 (64 bit, big endian)
+p890
+ss(Vimage
+p891
+g867
+NVmips64r6
+p892
+tp893
+(dp894
+Vconfigs
+p895
+(lp896
+Vkernelarch-mips/config.boston
+p897
+aVkernelarch-mips/config.mips64r6
+p898
+ass(g204
+g867
+g173
+tp899
+(dp900
+g207
+(lp901
+Vmips64r6
+p902
+asg211
+I01
+ss(Vbase
+p903
+Vmips64r6el
+p904
+tp905
+(dp906
+Vkernel-arch
+p907
+Vmips
+p908
+sg171
+(lp909
+g173
+ass(Vbuild
+p910
+g904
+tp911
+(dp912
+Vimage-file
+p913
+Vvmlinux
+p914
+ss(Vimage
+p915
+g904
+tp916
+(dp917
+Vinstall-stem
+p918
+Vvmlinux
+p919
+ss(Vdescription
+p920
+g904
+NVmips64r6el
+p921
+tp922
+(dp923
+Vhardware
+p924
+VMIPS R6 (64 bit, little endian)
+p925
+sVhardware-long
+p926
+VMIPS R6 (64 bit, little endian)
+p927
+ss(Vimage
+p928
+g904
+NVmips64r6el
+p929
+tp930
+(dp931
+Vconfigs
+p932
+(lp933
+Vkernelarch-mips/config.boston
+p934
+aVkernelarch-mips/config.mips64r6
+p935
+ass(g204
+g904
+g173
+tp936
+(dp937
+g207
+(lp938
+Vmips64r6el
+p939
+asg211
+I01
+ss(Vbase
+p940
+Vmipsel
+p941
+tp942
+(dp943
+Vkernel-arch
+p944
+Vmips
+p945
+sg171
+(lp946
+g173
+ass(Vbuild
+p947
+g941
+tp948
+(dp949
+Vimage-file
+p950
+Vvmlinux
+p951
+ss(Vimage
+p952
+g941
+tp953
+(dp954
+Vinstall-stem
+p955
+Vvmlinux
+p956
+ss(Vdescription
+p957
+g941
+NV4kc-malta
+p958
+tp959
+(dp960
+Vhardware
+p961
+VMIPS Malta
+p962
+sVhardware-long
+p963
+VMIPS Malta boards
+p964
+ss(Vimage
+p965
+g941
+NV4kc-malta
+p966
+tp967
+(dp968
+Vconfigs
+p969
+(lp970
+Vkernelarch-mips/config.malta
+p971
+aVkernelarch-mips/config.mips32r2
+p972
+ass(Vdescription
+p973
+g941
+NV5kc-malta
+p974
+tp975
+(dp976
+Vhardware
+p977
+VMIPS Malta (64-bit)
+p978
+sVhardware-long
+p979
+VMIPS Malta boards (64-bit)
+p980
+ss(Vimage
+p981
+g941
+NV5kc-malta
+p982
+tp983
+(dp984
+Vconfigs
+p985
+(lp986
+Vkernelarch-mips/config.malta
+p987
+aVkernelarch-mips/config.mips64r2
+p988
+ass(Vdescription
+p989
+g941
+NVloongson-3
+p990
+tp991
+(dp992
+Vhardware
+p993
+VLoongson 3A/3B
+p994
+sVhardware-long
+p995
+VLoongson 3A or 3B based systems (e.g. from Loongson or Lemote)
+p996
+ss(Vimage
+p997
+g941
+NVloongson-3
+p998
+tp999
+(dp1000
+Vconfigs
+p1001
+(lp1002
+Vkernelarch-mips/config.loongson-3
+p1003
+ass(Vdescription
+p1004
+g941
+NVocteon
+p1005
+tp1006
+(dp1007
+Vhardware
+p1008
+VOcteon
+p1009
+sVhardware-long
+p1010
+VCavium Networks Octeon
+p1011
+ss(Vimage
+p1012
+g941
+NVocteon
+p1013
+tp1014
+(dp1015
+Vconfigs
+p1016
+(lp1017
+Vkernelarch-mips/config.octeon
+p1018
+ass(g204
+g941
+g173
+tp1019
+(dp1020
+g207
+(lp1021
+V4kc-malta
+p1022
+aV5kc-malta
+p1023
+aVloongson-3
+p1024
+aVocteon
+p1025
+asg211
+I01
+ss(Vbase
+p1026
+Vmipsn32
+p1027
+tp1028
+(dp1029
+Vkernel-arch
+p1030
+Vmips
+p1031
+sVfeaturesets
+p1032
+(lp1033
+ss(Vbase
+p1034
+Vmipsn32el
+p1035
+tp1036
+(dp1037
+Vkernel-arch
+p1038
+Vmips
+p1039
+sVfeaturesets
+p1040
+(lp1041
+ss(Vbase
+p1042
+Vmipsn32r6
+p1043
+tp1044
+(dp1045
+Vkernel-arch
+p1046
+Vmips
+p1047
+sVfeaturesets
+p1048
+(lp1049
+ss(Vbase
+p1050
+Vmipsn32r6el
+p1051
+tp1052
+(dp1053
+Vkernel-arch
+p1054
+Vmips
+p1055
+sVfeaturesets
+p1056
+(lp1057
+ss(Vbase
+p1058
+Vmipsr6
+p1059
+tp1060
+(dp1061
+Vkernel-arch
+p1062
+Vmips
+p1063
+sg171
+(lp1064
+g173
+ass(Vbuild
+p1065
+g1059
+tp1066
+(dp1067
+Vimage-file
+p1068
+Vvmlinux
+p1069
+ss(Vimage
+p1070
+g1059
+tp1071
+(dp1072
+Vinstall-stem
+p1073
+Vvmlinux
+p1074
+ss(Vdescription
+p1075
+g1059
+NVmips32r6
+p1076
+tp1077
+(dp1078
+Vhardware
+p1079
+VMIPS R6 (32 bit, big endian)
+p1080
+sVhardware-long
+p1081
+VMIPS R6 (32 bit, big endian)
+p1082
+ss(Vimage
+p1083
+g1059
+NVmips32r6
+p1084
+tp1085
+(dp1086
+Vconfigs
+p1087
+(lp1088
+Vkernelarch-mips/config.boston
+p1089
+aVkernelarch-mips/config.mips32r6
+p1090
+ass(Vdescription
+p1091
+g1059
+NVmips64r6
+p1092
+tp1093
+(dp1094
+Vhardware
+p1095
+VMIPS R6 (64 bit, big endian)
+p1096
+sVhardware-long
+p1097
+VMIPS R6 (64 bit, big endian)
+p1098
+ss(Vimage
+p1099
+g1059
+NVmips64r6
+p1100
+tp1101
+(dp1102
+Vconfigs
+p1103
+(lp1104
+Vkernelarch-mips/config.boston
+p1105
+aVkernelarch-mips/config.mips64r6
+p1106
+ass(g204
+g1059
+g173
+tp1107
+(dp1108
+g207
+(lp1109
+Vmips32r6
+p1110
+aVmips64r6
+p1111
+asg211
+I01
+ss(Vbase
+p1112
+Vmipsr6el
+p1113
+tp1114
+(dp1115
+Vkernel-arch
+p1116
+Vmips
+p1117
+sg171
+(lp1118
+g173
+ass(Vbuild
+p1119
+g1113
+tp1120
+(dp1121
+Vimage-file
+p1122
+Vvmlinux
+p1123
+ss(Vimage
+p1124
+g1113
+tp1125
+(dp1126
+Vinstall-stem
+p1127
+Vvmlinux
+p1128
+ss(Vdescription
+p1129
+g1113
+NVmips32r6el
+p1130
+tp1131
+(dp1132
+Vhardware
+p1133
+VMIPS R6 (32 bit, little endian)
+p1134
+sVhardware-long
+p1135
+VMIPS R6 (32 bit, little endian)
+p1136
+ss(Vimage
+p1137
+g1113
+NVmips32r6el
+p1138
+tp1139
+(dp1140
+Vconfigs
+p1141
+(lp1142
+Vkernelarch-mips/config.boston
+p1143
+aVkernelarch-mips/config.mips32r6
+p1144
+ass(Vdescription
+p1145
+g1113
+NVmips64r6el
+p1146
+tp1147
+(dp1148
+Vhardware
+p1149
+VMIPS R6 (64 bit, little endian)
+p1150
+sVhardware-long
+p1151
+VMIPS R6 (64 bit, little endian)
+p1152
+ss(Vimage
+p1153
+g1113
+NVmips64r6el
+p1154
+tp1155
+(dp1156
+Vconfigs
+p1157
+(lp1158
+Vkernelarch-mips/config.boston
+p1159
+aVkernelarch-mips/config.mips64r6
+p1160
+ass(g204
+g1113
+g173
+tp1161
+(dp1162
+g207
+(lp1163
+Vmips32r6el
+p1164
+aVmips64r6el
+p1165
+asg211
+I01
+ss(Vbase
+p1166
+Vpowerpc
+p1167
+tp1168
+(dp1169
+Vkernel-arch
+p1170
+Vpowerpc
+p1171
+sg171
+(lp1172
+g173
+ass(Vbuild
+p1173
+g1167
+tp1174
+(dp1175
+Vimage-file
+p1176
+Vvmlinux
+p1177
+sVvdso
+p1178
+I01
+ss(Vimage
+p1179
+g1167
+tp1180
+(dp1181
+Vconfigs
+p1182
+(lp1183
+sVbootloaders
+p1184
+(lp1185
+Vgrub-ieee1275
+p1186
+asVsuggests
+p1187
+(lp1188
+Vmkvmlinuz
+p1189
+asVinstall-stem
+p1190
+Vvmlinux
+p1191
+ss(Vdescription
+p1192
+g1167
+NVpowerpc
+p1193
+tp1194
+(dp1195
+Vhardware
+p1196
+Vuniprocessor 32-bit PowerPC
+p1197
+ss(Vdescription
+p1198
+g1167
+NVpowerpc-smp
+p1199
+tp1200
+(dp1201
+Vhardware
+p1202
+Vmultiprocessor 32-bit PowerPC
+p1203
+ss(Vimage
+p1204
+g1167
+NVpowerpc-smp
+p1205
+tp1206
+(dp1207
+Vconfigs
+p1208
+(lp1209
+Vpowerpc/config.powerpc
+p1210
+aVpowerpc/config.powerpc-smp
+p1211
+ass(Vdescription
+p1212
+g1167
+NVpowerpc64
+p1213
+tp1214
+(dp1215
+Vhardware
+p1216
+V64-bit PowerPC
+p1217
+ss(Vimage
+p1218
+g1167
+NVpowerpc64
+p1219
+tp1220
+(dp1221
+Vconfigs
+p1222
+(lp1223
+Vkernelarch-powerpc/config-arch-64
+p1224
+aVkernelarch-powerpc/config-arch-64-be
+p1225
+ass(g204
+g1167
+g173
+tp1226
+(dp1227
+g207
+(lp1228
+Vpowerpc
+p1229
+aVpowerpc-smp
+p1230
+aVpowerpc64
+p1231
+asg211
+I01
+ss(Vbase
+p1232
+Vpowerpcspe
+p1233
+tp1234
+(dp1235
+Vkernel-arch
+p1236
+Vpowerpc
+p1237
+sg171
+(lp1238
+g173
+ass(Vbuild
+p1239
+g1233
+tp1240
+(dp1241
+Vimage-file
+p1242
+Vvmlinux
+p1243
+sVvdso
+p1244
+I01
+ss(Vimage
+p1245
+g1233
+tp1246
+(dp1247
+Vsuggests
+p1248
+(lp1249
+Vmkvmlinuz
+p1250
+asVinstall-stem
+p1251
+Vvmlinux
+p1252
+ss(Vdescription
+p1253
+g1233
+tp1254
+(dp1255
+Vhardware
+p1256
+V32-bit PowerPC with SPE (instead of AltiVec) with SMP support
+p1257
+ss(g204
+g1233
+g173
+tp1258
+(dp1259
+g207
+(lp1260
+Vpowerpcspe
+p1261
+asg211
+I01
+ss(Vbase
+p1262
+Vppc64
+p1263
+tp1264
+(dp1265
+Vkernel-arch
+p1266
+Vpowerpc
+p1267
+sg171
+(lp1268
+g173
+ass(Vbuild
+p1269
+g1263
+tp1270
+(dp1271
+Vimage-file
+p1272
+Vvmlinux
+p1273
+sVvdso
+p1274
+I01
+ss(Vimage
+p1275
+g1263
+tp1276
+(dp1277
+Vconfigs
+p1278
+(lp1279
+sVbootloaders
+p1280
+(lp1281
+Vgrub-ieee1275
+p1282
+asVsuggests
+p1283
+(lp1284
+Vmkvmlinuz
+p1285
+asVinstall-stem
+p1286
+Vvmlinux
+p1287
+ss(Vdescription
+p1288
+g1263
+NVpowerpc64
+p1289
+tp1290
+(dp1291
+Vhardware
+p1292
+V64-bit PowerPC
+p1293
+ss(Vimage
+p1294
+g1263
+NVpowerpc64
+p1295
+tp1296
+(dp1297
+Vconfigs
+p1298
+(lp1299
+Vkernelarch-powerpc/config-arch-64
+p1300
+aVkernelarch-powerpc/config-arch-64-be
+p1301
+ass(g204
+g1263
+g173
+tp1302
+(dp1303
+g207
+(lp1304
+Vpowerpc64
+p1305
+asg211
+I01
+ss(Vbase
+p1306
+Vppc64el
+p1307
+tp1308
+(dp1309
+Vkernel-arch
+p1310
+Vpowerpc
+p1311
+sg171
+(lp1312
+g173
+ass(Vbuild
+p1313
+g1307
+tp1314
+(dp1315
+Vimage-file
+p1316
+Vvmlinux
+p1317
+sVvdso
+p1318
+I01
+ss(Vimage
+p1319
+g1307
+tp1320
+(dp1321
+Vconfigs
+p1322
+(lp1323
+sVbootloaders
+p1324
+(lp1325
+Vgrub-ieee1275
+p1326
+asVsuggests
+p1327
+(lp1328
+Vmkvmlinuz
+p1329
+asVinstall-stem
+p1330
+Vvmlinux
+p1331
+ss(Vdescription
+p1332
+g1307
+NVpowerpc64le
+p1333
+tp1334
+(dp1335
+Vhardware
+p1336
+VLittle-endian 64-bit PowerPC
+p1337
+ss(Vimage
+p1338
+g1307
+NVpowerpc64le
+p1339
+tp1340
+(dp1341
+Vconfigs
+p1342
+(lp1343
+Vkernelarch-powerpc/config-arch-64
+p1344
+aVkernelarch-powerpc/config-arch-64-le
+p1345
+ass(g204
+g1307
+g173
+tp1346
+(dp1347
+g207
+(lp1348
+Vpowerpc64le
+p1349
+asg211
+I01
+ss(Vbase
+p1350
+Vriscv64
+p1351
+tp1352
+(dp1353
+Vkernel-arch
+p1354
+Vriscv
+p1355
+sVfeaturesets
+p1356
+(lp1357
+Vnone
+p1358
+ass(Vbuild
+p1359
+g1351
+tp1360
+(dp1361
+Vimage-file
+p1362
+Vvmlinux
+p1363
+sVvdso
+p1364
+I01
+ss(Vimage
+p1365
+g1351
+tp1366
+(dp1367
+Vinstall-stem
+p1368
+Vvmlinux
+p1369
+ss(Vdescription
+p1370
+g1351
+NVriscv64
+p1371
+tp1372
+(dp1373
+Vhardware
+p1374
+V64-bit RISC-V platforms
+p1375
+sVhardware-long
+p1376
+V64-bit RISC-V platforms
+p1377
+ss(Vbase
+p1378
+g1351
+Vnone
+p1379
+tp1380
+(dp1381
+Vflavours
+p1382
+(lp1383
+Vriscv64
+p1384
+ass(Vbase
+p1385
+Vs390
+p1386
+tp1387
+(dp1388
+Vkernel-arch
+p1389
+Vs390
+p1390
+sVfeaturesets
+p1391
+(lp1392
+ss(Vbase
+p1393
+Vs390x
+p1394
+tp1395
+(dp1396
+Vkernel-arch
+p1397
+Vs390
+p1398
+sg171
+(lp1399
+g173
+ass(Vbuild
+p1400
+g1394
+tp1401
+(dp1402
+Vimage-file
+p1403
+Varch/s390/boot/bzImage
+p1404
+sVvdso
+p1405
+I01
+ss(Vimage
+p1406
+g1394
+tp1407
+(dp1408
+Vbootloaders
+p1409
+(lp1410
+Vs390-tools
+p1411
+asVinstall-stem
+p1412
+Vvmlinuz
+p1413
+ss(Vrelations
+p1414
+g1394
+tp1415
+(dp1416
+Vheaders%gcc-8
+p1417
+Vlinux-compiler-gcc-8-s390
+p1418
+ss(Vbuild
+p1419
+g1394
+NVs390x
+p1420
+tp1421
+(dp1422
+Vdebug-info
+p1423
+I01
+ss(Vdescription
+p1424
+g1394
+NVs390x
+p1425
+tp1426
+(dp1427
+Vhardware
+p1428
+VIBM zSeries
+p1429
+ss(g204
+g1394
+g173
+tp1430
+(dp1431
+g207
+(lp1432
+Vs390x
+p1433
+asg211
+I01
+ss(Vbase
+p1434
+Vsh3
+p1435
+tp1436
+(dp1437
+Vkernel-arch
+p1438
+Vsh
+p1439
+sVfeaturesets
+p1440
+(lp1441
+ss(Vbase
+p1442
+Vsh4
+p1443
+tp1444
+(dp1445
+Vkernel-arch
+p1446
+Vsh
+p1447
+sg171
+(lp1448
+g173
+ass(Vbuild
+p1449
+g1443
+tp1450
+(dp1451
+Vimage-file
+p1452
+Varch/sh/boot/zImage
+p1453
+ss(Vimage
+p1454
+g1443
+tp1455
+(dp1456
+Vinstall-stem
+p1457
+Vvmlinuz
+p1458
+ss(Vdescription
+p1459
+g1443
+NVsh7751r
+p1460
+tp1461
+(dp1462
+Vhardware
+p1463
+Vsh7751r
+p1464
+sVhardware-long
+p1465
+VRenesas SH7751R R2D plus board
+p1466
+ss(Vdescription
+p1467
+g1443
+NVsh7785lcr
+p1468
+tp1469
+(dp1470
+Vhardware
+p1471
+Vsh7785lcr
+p1472
+sVhardware-long
+p1473
+VRenesas SH7785 reference board
+p1474
+ss(Vimage
+p1475
+g1443
+NVsh7785lcr
+p1476
+tp1477
+(dp1478
+Vrecommends
+p1479
+(lp1480
+Vu-boot-tools
+p1481
+asVcheck-size
+p1482
+I4194304
+ss(g204
+g1443
+g173
+tp1483
+(dp1484
+g207
+(lp1485
+Vsh7751r
+p1486
+aVsh7785lcr
+p1487
+asg211
+I01
+ss(Vbase
+p1488
+Vsparc
+p1489
+tp1490
+(dp1491
+Vkernel-arch
+p1492
+Vsparc
+p1493
+sVfeaturesets
+p1494
+(lp1495
+ss(Vbase
+p1496
+Vsparc64
+p1497
+tp1498
+(dp1499
+Vkernel-arch
+p1500
+Vsparc
+p1501
+sg171
+(lp1502
+g173
+ass(Vbuild
+p1503
+g1497
+tp1504
+(dp1505
+Vimage-file
+p1506
+Vvmlinux
+p1507
+ss(Vimage
+p1508
+g1497
+tp1509
+(dp1510
+Vconfigs
+p1511
+(lp1512
+sVbootloaders
+p1513
+(lp1514
+Vgrub-ieee1275
+p1515
+asVsuggests
+p1516
+(lp1517
+Vfdutils
+p1518
+asVinstall-stem
+p1519
+Vvmlinux
+p1520
+ss(Vdescription
+p1521
+g1497
+NVsparc64
+p1522
+tp1523
+(dp1524
+Vhardware
+p1525
+Vuniprocessor 64-bit UltraSPARC
+p1526
+ss(Vimage
+p1527
+g1497
+NVsparc64
+p1528
+tp1529
+(dp1530
+Vconfigs
+p1531
+(lp1532
+Vkernelarch-sparc/config-up
+p1533
+ass(Vdescription
+p1534
+g1497
+NVsparc64-smp
+p1535
+tp1536
+(dp1537
+Vhardware
+p1538
+Vmultiprocessor 64-bit UltraSPARC
+p1539
+ss(Vimage
+p1540
+g1497
+NVsparc64-smp
+p1541
+tp1542
+(dp1543
+Vconfigs
+p1544
+(lp1545
+Vkernelarch-sparc/config-smp
+p1546
+ass(g204
+g1497
+g173
+tp1547
+(dp1548
+g207
+(lp1549
+Vsparc64
+p1550
+aVsparc64-smp
+p1551
+asg211
+I01
+ss(Vbase
+p1552
+Vx32
+p1553
+tp1554
+(dp1555
+Vkernel-arch
+p1556
+Vx86
+p1557
+sVfeaturesets
+p1558
+(lp1559
+ss(Vabi
+p1560
+NVrt
+p1561
+tp1562
+(dp1563
+Vignore-changes
+p1564
+(lp1565
+V*
+p1566
+ass(Vdescription
+p1567
+Ng1561
+tp1568
+(dp1569
+Vpart-long-rt
+p1570
+VThis kernel includes the PREEMPT_RT realtime patch set.
+p1571
+sVpart-short-rt
+p1572
+VPREEMPT_RT
+p1573
+sVparts
+p1574
+(lp1575
+Vrt
+p1576
+ass(Vversion
+p1577
+tp1578
+(dp1579
+Vsource
+p1580
+V4.19.249-2
+p1581
+sVupstream
+p1582
+V4.19
+p1583
+sVabiname_base
+p1584
+V4.19.0
+p1585
+sVabiname
+p1586
+V4.19.0-21
+p1587
+ss. \ No newline at end of file
diff --git a/debian/config/alpha/config b/debian/config/alpha/config
new file mode 100644
index 000000000..47a119973
--- /dev/null
+++ b/debian/config/alpha/config
@@ -0,0 +1,1031 @@
+##
+## file: arch/alpha/Kconfig
+##
+## choice: Alpha system type
+CONFIG_ALPHA_GENERIC=y
+# CONFIG_ALPHA_ALCOR is not set
+# CONFIG_ALPHA_XL is not set
+# CONFIG_ALPHA_BOOK1 is not set
+# CONFIG_ALPHA_AVANTI_CH is not set
+# CONFIG_ALPHA_CABRIOLET is not set
+# CONFIG_ALPHA_DP264 is not set
+# CONFIG_ALPHA_EB164 is not set
+# CONFIG_ALPHA_EB64P_CH is not set
+# CONFIG_ALPHA_EB66 is not set
+# CONFIG_ALPHA_EB66P is not set
+# CONFIG_ALPHA_EIGER is not set
+# CONFIG_ALPHA_JENSEN is not set
+# CONFIG_ALPHA_LX164 is not set
+# CONFIG_ALPHA_LYNX is not set
+# CONFIG_ALPHA_MARVEL is not set
+# CONFIG_ALPHA_MIATA is not set
+# CONFIG_ALPHA_MIKASA is not set
+# CONFIG_ALPHA_NAUTILUS is not set
+# CONFIG_ALPHA_NONAME_CH is not set
+# CONFIG_ALPHA_NORITAKE is not set
+# CONFIG_ALPHA_PC164 is not set
+# CONFIG_ALPHA_P2K is not set
+# CONFIG_ALPHA_RAWHIDE is not set
+# CONFIG_ALPHA_RUFFIAN is not set
+# CONFIG_ALPHA_RX164 is not set
+# CONFIG_ALPHA_SX164 is not set
+# CONFIG_ALPHA_SABLE is not set
+# CONFIG_ALPHA_SHARK is not set
+# CONFIG_ALPHA_TAKARA is not set
+# CONFIG_ALPHA_TITAN is not set
+# CONFIG_ALPHA_WILDFIRE is not set
+## end choice
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+# CONFIG_VERBOSE_MCHECK is not set
+CONFIG_SRM_ENV=m
+
+##
+## file: arch/alpha/Kconfig.debug
+##
+CONFIG_MATHEMU=y
+
+##
+## file: block/partitions/Kconfig
+##
+CONFIG_ACORN_PARTITION=y
+# CONFIG_ACORN_PARTITION_CUMANA is not set
+# CONFIG_ACORN_PARTITION_EESOX is not set
+CONFIG_ACORN_PARTITION_ICS=y
+# CONFIG_ACORN_PARTITION_ADFS is not set
+# CONFIG_ACORN_PARTITION_POWERTEC is not set
+CONFIG_ACORN_PARTITION_RISCIX=y
+CONFIG_OSF_PARTITION=y
+CONFIG_AMIGA_PARTITION=y
+CONFIG_ATARI_PARTITION=y
+CONFIG_MAC_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+CONFIG_SGI_PARTITION=y
+CONFIG_ULTRIX_PARTITION=y
+CONFIG_SUN_PARTITION=y
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_ISAPNP=y
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_LEGACY=m
+
+##
+## file: drivers/atm/Kconfig
+##
+CONFIG_ATM_DRIVERS=y
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+CONFIG_ATM_HE_USE_SUNI=y
+
+##
+## file: drivers/block/Kconfig
+##
+CONFIG_BLK_DEV_FD=m
+CONFIG_BLK_DEV_DAC960=m
+CONFIG_BLK_DEV_UMEM=m
+CONFIG_BLK_DEV_SX8=m
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+CONFIG_CDROM_PKTCDVD_WCACHE=y
+
+##
+## file: drivers/bluetooth/Kconfig
+##
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIVHCI=m
+
+##
+## file: drivers/char/Kconfig
+##
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_PPDEV=m
+CONFIG_RTC=m
+CONFIG_DTLK=m
+CONFIG_APPLICOM=m
+CONFIG_RAW_DRIVER=m
+CONFIG_MAX_RAW_DEVS=256
+
+##
+## file: drivers/char/agp/Kconfig
+##
+#. Workaround
+CONFIG_AGP=y
+#. Workaround
+CONFIG_AGP_ALPHA_CORE=y
+
+##
+## file: drivers/char/ipmi/Kconfig
+##
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+
+##
+## file: drivers/eisa/Kconfig
+##
+CONFIG_EISA_PCI_EISA=y
+CONFIG_EISA_VIRTUAL_ROOT=y
+CONFIG_EISA_NAMES=y
+
+##
+## file: drivers/gpu/drm/Kconfig
+##
+CONFIG_DRM=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+
+##
+## file: drivers/gpu/drm/i2c/Kconfig
+##
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_SIL164=m
+
+##
+## file: drivers/gpu/drm/nouveau/Kconfig
+##
+CONFIG_DRM_NOUVEAU=m
+# CONFIG_DRM_NOUVEAU_BACKLIGHT is not set
+
+##
+## file: drivers/hid/usbhid/Kconfig
+##
+CONFIG_USB_HID=m
+
+##
+## file: drivers/hwmon/Kconfig
+##
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83627HF=m
+
+##
+## file: drivers/i2c/Kconfig
+##
+CONFIG_I2C=m
+CONFIG_I2C_STUB=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+
+##
+## file: drivers/i2c/busses/Kconfig
+##
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+# CONFIG_I2C_AMD756_S4882 is not set
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_ELEKTOR=m
+CONFIG_I2C_PCA_ISA=m
+CONFIG_SCx200_ACB=m
+
+##
+## file: drivers/input/gameport/Kconfig
+##
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+
+##
+## file: drivers/input/joystick/Kconfig
+##
+CONFIG_INPUT_JOYSTICK=y
+
+##
+## file: drivers/input/keyboard/Kconfig
+##
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_LKKBD=m
+CONFIG_KEYBOARD_NEWTON=m
+CONFIG_KEYBOARD_SUNKBD=m
+CONFIG_KEYBOARD_XTKBD=m
+
+##
+## file: drivers/input/misc/Kconfig
+##
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_UINPUT=m
+
+##
+## file: drivers/input/mouse/Kconfig
+##
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_SERIAL=m
+CONFIG_MOUSE_INPORT=m
+# CONFIG_MOUSE_ATIXL is not set
+CONFIG_MOUSE_LOGIBM=m
+CONFIG_MOUSE_PC110PAD=m
+CONFIG_MOUSE_VSXXXAA=m
+
+##
+## file: drivers/input/serio/Kconfig
+##
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+
+##
+## file: drivers/input/touchscreen/Kconfig
+##
+CONFIG_INPUT_TOUCHSCREEN=y
+
+##
+## file: drivers/isdn/Kconfig
+##
+CONFIG_ISDN=y
+CONFIG_ISDN_CAPI=m
+
+##
+## file: drivers/isdn/capi/Kconfig
+##
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPIDRV=m
+
+##
+## file: drivers/isdn/hardware/avm/Kconfig
+##
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_T1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+
+##
+## file: drivers/isdn/hardware/eicon/Kconfig
+##
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+
+##
+## file: drivers/media/radio/Kconfig
+##
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_V4L_RADIO_ISA_DRIVERS=y
+CONFIG_RADIO_CADET=m
+CONFIG_RADIO_RTRACK=m
+CONFIG_RADIO_RTRACK2=m
+CONFIG_RADIO_AZTECH=m
+CONFIG_RADIO_GEMTEK=m
+CONFIG_RADIO_SF16FMI=m
+CONFIG_RADIO_SF16FMR2=m
+CONFIG_RADIO_TERRATEC=m
+CONFIG_RADIO_TRUST=m
+CONFIG_RADIO_TYPHOON=m
+CONFIG_RADIO_ZOLTRIX=m
+
+##
+## file: drivers/mmc/Kconfig
+##
+CONFIG_MMC=m
+
+##
+## file: drivers/mmc/core/Kconfig
+##
+CONFIG_MMC_BLOCK=m
+
+##
+## file: drivers/mmc/host/Kconfig
+##
+# CONFIG_MMC_DEBUG is not set
+
+##
+## file: drivers/mtd/Kconfig
+##
+CONFIG_MTD_REDBOOT_PARTS=y
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
+CONFIG_MTD_REDBOOT_PARTS_READONLY=y
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_FTL=m
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_INFTL=m
+
+##
+## file: drivers/mtd/chips/Kconfig
+##
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+## choice: Flash cmd/query data swapping
+# CONFIG_MTD_CFI_NOSWAP is not set
+CONFIG_MTD_CFI_BE_BYTE_SWAP=y
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+## end choice
+CONFIG_MTD_CFI_GEOMETRY=y
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+CONFIG_MTD_MAP_BANK_WIDTH_8=y
+CONFIG_MTD_MAP_BANK_WIDTH_16=y
+CONFIG_MTD_MAP_BANK_WIDTH_32=y
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+CONFIG_MTD_CFI_I4=y
+CONFIG_MTD_CFI_I8=y
+# CONFIG_MTD_OTP is not set
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_ROM=m
+CONFIG_MTD_ABSENT=m
+
+##
+## file: drivers/mtd/devices/Kconfig
+##
+CONFIG_MTD_PMC551=m
+# CONFIG_MTD_PMC551_BUGFIX is not set
+# CONFIG_MTD_PMC551_DEBUG is not set
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_PHRAM=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTD_BLOCK2MTD=m
+
+##
+## file: drivers/mtd/maps/Kconfig
+##
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+CONFIG_MTD_PHYSMAP=m
+CONFIG_MTD_PHYSMAP_START=0x8000000
+CONFIG_MTD_PHYSMAP_LEN=0x4000000
+CONFIG_MTD_PHYSMAP_BANKWIDTH=2
+CONFIG_MTD_PCI=m
+
+##
+## file: drivers/mtd/nand/raw/Kconfig
+##
+CONFIG_MTD_NAND=m
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+
+##
+## file: drivers/net/Kconfig
+##
+CONFIG_NET_FC=y
+CONFIG_NET_SB1000=m
+
+##
+## file: drivers/net/arcnet/Kconfig
+##
+CONFIG_ARCNET=m
+CONFIG_ARCNET_1201=m
+CONFIG_ARCNET_1051=m
+CONFIG_ARCNET_RAW=m
+CONFIG_ARCNET_CAP=m
+CONFIG_ARCNET_COM90xx=m
+CONFIG_ARCNET_COM90xxIO=m
+CONFIG_ARCNET_RIM_I=m
+CONFIG_ARCNET_COM20020=m
+CONFIG_ARCNET_COM20020_ISA=m
+CONFIG_ARCNET_COM20020_PCI=m
+CONFIG_ARCNET_COM20020_CS=m
+
+##
+## file: drivers/net/ethernet/Kconfig
+##
+CONFIG_FEALNX=m
+
+##
+## file: drivers/net/ethernet/3com/Kconfig
+##
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL3=m
+CONFIG_3C515=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+
+##
+## file: drivers/net/ethernet/8390/Kconfig
+##
+CONFIG_PCMCIA_AXNET=m
+CONFIG_NE2000=m
+CONFIG_NE2K_PCI=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_ULTRA=m
+CONFIG_WD80x3=m
+
+##
+## file: drivers/net/ethernet/adaptec/Kconfig
+##
+CONFIG_ADAPTEC_STARFIRE=m
+
+##
+## file: drivers/net/ethernet/amd/Kconfig
+##
+CONFIG_AMD8111_ETH=m
+CONFIG_LANCE=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_NI65=m
+
+##
+## file: drivers/net/ethernet/broadcom/Kconfig
+##
+CONFIG_B44=m
+
+##
+## file: drivers/net/ethernet/cirrus/Kconfig
+##
+CONFIG_CS89x0=m
+
+##
+## file: drivers/net/ethernet/dec/tulip/Kconfig
+##
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+CONFIG_DE4X5=m
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_PCMCIA_XIRCOM=m
+
+##
+## file: drivers/net/ethernet/dlink/Kconfig
+##
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+
+##
+## file: drivers/net/ethernet/fujitsu/Kconfig
+##
+CONFIG_PCMCIA_FMVJ18X=m
+
+##
+## file: drivers/net/ethernet/hp/Kconfig
+##
+CONFIG_HP100=m
+
+##
+## file: drivers/net/ethernet/intel/Kconfig
+##
+CONFIG_E100=m
+
+##
+## file: drivers/net/ethernet/natsemi/Kconfig
+##
+CONFIG_NATSEMI=m
+
+##
+## file: drivers/net/ethernet/nvidia/Kconfig
+##
+CONFIG_FORCEDETH=m
+
+##
+## file: drivers/net/ethernet/realtek/Kconfig
+##
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+
+##
+## file: drivers/net/ethernet/sis/Kconfig
+##
+CONFIG_SIS900=m
+
+##
+## file: drivers/net/ethernet/smsc/Kconfig
+##
+CONFIG_SMC9194=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_EPIC100=m
+
+##
+## file: drivers/net/ethernet/sun/Kconfig
+##
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+
+##
+## file: drivers/net/ethernet/via/Kconfig
+##
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+
+##
+## file: drivers/net/ethernet/xircom/Kconfig
+##
+CONFIG_PCMCIA_XIRC2PS=m
+
+##
+## file: drivers/net/fddi/Kconfig
+##
+CONFIG_FDDI=y
+CONFIG_SKFP=m
+
+##
+## file: drivers/net/hamradio/Kconfig
+##
+CONFIG_DMASCC=m
+CONFIG_SCC=m
+# CONFIG_SCC_DELAY is not set
+# CONFIG_SCC_TRXECHO is not set
+
+##
+## file: drivers/net/hippi/Kconfig
+##
+CONFIG_HIPPI=y
+CONFIG_ROADRUNNER=m
+# CONFIG_ROADRUNNER_LARGE_RINGS is not set
+
+##
+## file: drivers/net/plip/Kconfig
+##
+CONFIG_PLIP=m
+
+##
+## file: drivers/net/wan/Kconfig
+##
+CONFIG_WAN=y
+CONFIG_HOSTESS_SV11=m
+CONFIG_COSA=m
+CONFIG_LANMEDIA=m
+CONFIG_SEALEVEL_4021=m
+CONFIG_PCI200SYN=m
+CONFIG_WANXL=m
+CONFIG_N2=m
+CONFIG_C101=m
+CONFIG_FARSYNC=m
+CONFIG_DSCC4=m
+CONFIG_DSCC4_PCISYNC=y
+CONFIG_DSCC4_PCI_RST=y
+CONFIG_DLCI=m
+CONFIG_DLCI_MAX=8
+CONFIG_SDLA=m
+
+##
+## file: drivers/net/wireless/Kconfig
+##
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_PCMCIA_WL3501=m
+
+##
+## file: drivers/net/wireless/atmel/Kconfig
+##
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+
+##
+## file: drivers/net/wireless/cisco/Kconfig
+##
+CONFIG_AIRO_CS=m
+
+##
+## file: drivers/net/wireless/intel/ipw2x00/Kconfig
+##
+# CONFIG_IPW2100 is not set
+
+##
+## file: drivers/net/wireless/intersil/orinoco/Kconfig
+##
+CONFIG_HERMES=m
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+
+##
+## file: drivers/net/wireless/marvell/mwifiex/Kconfig
+##
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+
+##
+## file: drivers/net/wireless/zydas/Kconfig
+##
+CONFIG_USB_ZD1201=m
+
+##
+## file: drivers/pcmcia/Kconfig
+##
+CONFIG_PCCARD=m
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+CONFIG_YENTA=m
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_I82365=m
+CONFIG_TCIC=m
+CONFIG_PCMCIA_DEBUG=y
+
+##
+## file: drivers/pnp/Kconfig
+##
+CONFIG_PNP=y
+
+##
+## file: drivers/pnp/isapnp/Kconfig
+##
+CONFIG_ISAPNP=y
+
+##
+## file: drivers/rtc/Kconfig
+##
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_ALPHA=y
+
+##
+## file: drivers/scsi/Kconfig
+##
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_BUSLOGIC=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_GENERIC_NCR5380=m
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_IZIP_EPP16=y
+CONFIG_SCSI_IZIP_SLOW_CTR=y
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_IPR=m
+CONFIG_SCSI_IPR_TRACE=y
+CONFIG_SCSI_IPR_DUMP=y
+CONFIG_SCSI_QLOGIC_FAS=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_SIM710=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_DEBUG=m
+
+##
+## file: drivers/scsi/aic7xxx/Kconfig.aic7xxx
+##
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=8
+
+##
+## file: drivers/scsi/megaraid/Kconfig.megaraid
+##
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+
+##
+## file: drivers/scsi/pcmcia/Kconfig
+##
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+
+##
+## file: drivers/tty/Kconfig
+##
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+CONFIG_MOXA_INTELLIO=m
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+CONFIG_ISI=m
+CONFIG_N_HDLC=m
+
+##
+## file: drivers/tty/serial/Kconfig
+##
+CONFIG_SERIAL_JSM=m
+
+##
+## file: drivers/tty/serial/8250/Kconfig
+##
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+CONFIG_SERIAL_8250_RSA=y
+
+##
+## file: drivers/usb/Kconfig
+##
+CONFIG_USB=m
+CONFIG_USB_USS720=m
+
+##
+## file: drivers/usb/atm/Kconfig
+##
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+
+##
+## file: drivers/usb/host/Kconfig
+##
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_OHCI_HCD=m
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_SL811_HCD=m
+CONFIG_USB_SL811_CS=m
+
+##
+## file: drivers/video/backlight/Kconfig
+##
+CONFIG_LCD_CLASS_DEVICE=m
+
+##
+## file: drivers/video/console/Kconfig
+##
+CONFIG_VGA_CONSOLE=y
+CONFIG_MDA_CONSOLE=m
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_CYBER2000=m
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+CONFIG_FB_TGA=m
+CONFIG_FB_S1D13XXX=m
+CONFIG_FB_MATROX=m
+CONFIG_FB_MATROX_MILLENIUM=y
+CONFIG_FB_MATROX_MYSTIQUE=y
+CONFIG_FB_MATROX_G=y
+CONFIG_FB_MATROX_I2C=m
+CONFIG_FB_MATROX_MAVEN=m
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_I2C=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_ATY128=m
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY_CT=y
+# CONFIG_FB_ATY_GENERIC_LCD is not set
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_SAVAGE=m
+# CONFIG_FB_SAVAGE_I2C is not set
+# CONFIG_FB_SAVAGE_ACCEL is not set
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_KYRO=m
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_TRIDENT=m
+CONFIG_FB_VIRTUAL=m
+
+##
+## file: drivers/watchdog/Kconfig
+##
+CONFIG_PCWATCHDOG=m
+CONFIG_MIXCOMWD=m
+CONFIG_WDT=m
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_WDTPCI=m
+CONFIG_USBPCWATCHDOG=m
+
+##
+## file: fs/Kconfig.binfmt
+##
+# CONFIG_BINFMT_EM86 is not set
+
+##
+## file: init/Kconfig
+##
+CONFIG_USELIB=y
+#. TODO
+# CONFIG_AUDIT is not set
+CONFIG_SYSFS_SYSCALL=y
+
+##
+## file: lib/Kconfig
+##
+#. TODO
+CONFIG_CRC32=m
+
+##
+## file: net/ax25/Kconfig
+##
+CONFIG_HAMRADIO=y
+CONFIG_AX25=m
+# CONFIG_AX25_DAMA_SLAVE is not set
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+
+##
+## file: net/decnet/Kconfig
+##
+CONFIG_DECNET=m
+# CONFIG_DECNET_ROUTER is not set
+
+##
+## file: net/lapb/Kconfig
+##
+CONFIG_LAPB=m
+
+##
+## file: sound/drivers/Kconfig
+##
+CONFIG_SND_DUMMY=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+
+##
+## file: sound/isa/Kconfig
+##
+CONFIG_SND_ADLIB=m
+CONFIG_SND_AD1816A=m
+CONFIG_SND_AD1848=m
+CONFIG_SND_ALS100=m
+CONFIG_SND_AZT2320=m
+CONFIG_SND_CMI8330=m
+CONFIG_SND_CS4231=m
+CONFIG_SND_CS4236=m
+CONFIG_SND_ES1688=m
+CONFIG_SND_ES18XX=m
+CONFIG_SND_GUSCLASSIC=m
+CONFIG_SND_GUSEXTREME=m
+CONFIG_SND_GUSMAX=m
+CONFIG_SND_INTERWAVE=m
+CONFIG_SND_INTERWAVE_STB=m
+CONFIG_SND_OPL3SA2=m
+CONFIG_SND_OPTI92X_AD1848=m
+CONFIG_SND_OPTI92X_CS4231=m
+CONFIG_SND_OPTI93X=m
+CONFIG_SND_MIRO=m
+CONFIG_SND_SB8=m
+CONFIG_SND_SB16=m
+CONFIG_SND_SBAWE=m
+CONFIG_SND_SB16_CSP=y
+CONFIG_SND_SSCAPE=m
+CONFIG_SND_WAVEFRONT=m
+
+##
+## file: sound/pci/Kconfig
+##
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_HDSP=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_MAESTRO3=m
+# CONFIG_SND_MIXART is not set
+CONFIG_SND_NM256=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VX222=m
+CONFIG_SND_YMFPCI=m
+
+##
+## file: sound/pci/hda/Kconfig
+##
+CONFIG_SND_HDA_INTEL=m
+
diff --git a/debian/config/alpha/config.alpha-generic b/debian/config/alpha/config.alpha-generic
new file mode 100644
index 000000000..d63bf76e6
--- /dev/null
+++ b/debian/config/alpha/config.alpha-generic
@@ -0,0 +1,10 @@
+##
+## file: arch/alpha/Kconfig
+##
+# CONFIG_SMP is not set
+
+##
+## file: arch/alpha/Kconfig.debug
+##
+# CONFIG_ALPHA_LEGACY_START_ADDRESS is not set
+
diff --git a/debian/config/alpha/config.alpha-smp b/debian/config/alpha/config.alpha-smp
new file mode 100644
index 000000000..19288e398
--- /dev/null
+++ b/debian/config/alpha/config.alpha-smp
@@ -0,0 +1,16 @@
+##
+## file: arch/alpha/Kconfig
+##
+CONFIG_SMP=y
+CONFIG_NR_CPUS=64
+
+##
+## file: arch/alpha/Kconfig.debug
+##
+# CONFIG_ALPHA_LEGACY_START_ADDRESS is not set
+
+##
+## file: drivers/scsi/Kconfig
+##
+CONFIG_SCSI=y
+
diff --git a/debian/config/alpha/defines b/debian/config/alpha/defines
new file mode 100644
index 000000000..971b7f0dd
--- /dev/null
+++ b/debian/config/alpha/defines
@@ -0,0 +1,18 @@
+[base]
+flavours: alpha-generic alpha-smp
+kernel-arch: alpha
+
+[build]
+image-file: arch/alpha/boot/vmlinux.gz
+
+[image]
+suggests: aboot, fdutils
+install-stem: vmlinuz
+
+[alpha-generic_description]
+hardware: Alpha
+hardware-long: DEC Alpha systems with extended kernel start address (Wildfire, Titan, Marvel)
+
+[alpha-smp_description]
+hardware: Alpha SMP
+hardware-long: DEC Alpha SMP systems with extended kernel start address (Wildfire, Titan, Marvel)
diff --git a/debian/config/amd64/config b/debian/config/amd64/config
new file mode 100644
index 000000000..4ffe17e12
--- /dev/null
+++ b/debian/config/amd64/config
@@ -0,0 +1,249 @@
+##
+## file: arch/Kconfig
+##
+CONFIG_ARCH_MMAP_RND_BITS=28
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8
+
+##
+## file: arch/x86/Kconfig
+##
+CONFIG_64BIT=y
+CONFIG_SMP=y
+CONFIG_X86_X2APIC=y
+CONFIG_CALGARY_IOMMU=y
+CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
+# CONFIG_MAXSMP is not set
+CONFIG_NR_CPUS=512
+CONFIG_X86_16BIT=y
+CONFIG_X86_VSYSCALL_EMULATION=y
+# CONFIG_X86_5LEVEL is not set
+CONFIG_NUMA=y
+CONFIG_AMD_NUMA=y
+CONFIG_X86_64_ACPI_NUMA=y
+CONFIG_NUMA_EMU=y
+CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y
+CONFIG_EFI_MIXED=y
+CONFIG_KEXEC_FILE=y
+CONFIG_KEXEC_VERIFY_SIG=y
+CONFIG_KEXEC_BZIMAGE_VERIFY_SIG=y
+CONFIG_RANDOMIZE_MEMORY=y
+## choice: vsyscall table for legacy applications
+# CONFIG_LEGACY_VSYSCALL_EMULATE is not set
+CONFIG_LEGACY_VSYSCALL_NONE=y
+## end choice
+CONFIG_PCI_MMCONFIG=y
+CONFIG_ISA_DMA_API=y
+# CONFIG_IA32_AOUT is not set
+CONFIG_X86_X32=y
+CONFIG_X86_X32_DISABLED=y
+
+##
+## file: arch/x86/Kconfig.cpu
+##
+## choice: Processor family
+# CONFIG_MK8 is not set
+# CONFIG_MPSC is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_MATOM is not set
+CONFIG_GENERIC_CPU=y
+## end choice
+
+##
+## file: arch/x86/xen/Kconfig
+##
+CONFIG_XEN_512GB=y
+
+##
+## file: crypto/Kconfig
+##
+CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m
+CONFIG_CRYPTO_AEGIS128L_AESNI_SSE2=m
+CONFIG_CRYPTO_AEGIS256_AESNI_SSE2=m
+CONFIG_CRYPTO_MORUS640_SSE2=m
+CONFIG_CRYPTO_MORUS1280_SSE2=m
+CONFIG_CRYPTO_MORUS1280_AVX2=m
+CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
+CONFIG_CRYPTO_POLY1305_X86_64=m
+CONFIG_CRYPTO_SHA1_SSSE3=m
+CONFIG_CRYPTO_SHA256_SSSE3=m
+CONFIG_CRYPTO_SHA512_SSSE3=m
+CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
+CONFIG_CRYPTO_AES_X86_64=m
+CONFIG_CRYPTO_BLOWFISH_X86_64=m
+CONFIG_CRYPTO_CAMELLIA_X86_64=m
+CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m
+CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m
+CONFIG_CRYPTO_CAST5_AVX_X86_64=m
+CONFIG_CRYPTO_CAST6_AVX_X86_64=m
+CONFIG_CRYPTO_DES3_EDE_X86_64=m
+CONFIG_CRYPTO_CHACHA20_X86_64=m
+CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
+CONFIG_CRYPTO_SERPENT_AVX_X86_64=m
+CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
+CONFIG_CRYPTO_TWOFISH_X86_64=m
+CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
+CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
+
+##
+## file: crypto/asymmetric_keys/Kconfig
+##
+CONFIG_SIGNED_PE_FILE_VERIFICATION=y
+
+##
+## file: drivers/acpi/Kconfig
+##
+CONFIG_ACPI_BGRT=y
+
+##
+## file: drivers/android/Kconfig
+##
+CONFIG_ANDROID=y
+
+##
+## file: drivers/block/Kconfig
+##
+CONFIG_BLK_DEV_RSXX=m
+
+##
+## file: drivers/char/agp/Kconfig
+##
+CONFIG_AGP=y
+#. Needed by GART_IOMMU
+CONFIG_AGP_AMD64=y
+
+##
+## file: drivers/dma/Kconfig
+##
+CONFIG_INTEL_MIC_X100_DMA=m
+
+##
+## file: drivers/edac/Kconfig
+##
+CONFIG_EDAC_SBRIDGE=m
+
+##
+## file: drivers/i2c/Kconfig
+##
+CONFIG_I2C_STUB=m
+
+##
+## file: drivers/input/mouse/Kconfig
+##
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+
+##
+## file: drivers/iommu/Kconfig
+##
+CONFIG_AMD_IOMMU=y
+#. Can be built as a module, but nothing will trigger loading
+CONFIG_AMD_IOMMU_V2=y
+
+##
+## file: drivers/macintosh/Kconfig
+##
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MAC_EMUMOUSEBTN=y
+
+##
+## file: drivers/misc/mic/Kconfig
+##
+CONFIG_INTEL_MIC_BUS=m
+CONFIG_SCIF_BUS=m
+CONFIG_VOP_BUS=m
+CONFIG_INTEL_MIC_HOST=m
+# CONFIG_INTEL_MIC_CARD is not set
+CONFIG_SCIF=m
+CONFIG_MIC_COSM=m
+CONFIG_VOP=m
+
+##
+## file: drivers/net/Kconfig
+##
+CONFIG_FUJITSU_ES=m
+
+##
+## file: drivers/net/ethernet/amd/Kconfig
+##
+CONFIG_AMD_XGBE=m
+
+##
+## file: drivers/net/wireless/intel/ipw2x00/Kconfig
+##
+# CONFIG_IPW2100 is not set
+
+##
+## file: drivers/nvdimm/Kconfig
+##
+CONFIG_NVDIMM_PFN=y
+
+##
+## file: drivers/pci/Kconfig
+##
+CONFIG_PCI_HYPERV=y
+
+##
+## file: drivers/pinctrl/Kconfig
+##
+CONFIG_PINCTRL_AMD=y
+
+##
+## file: drivers/scsi/Kconfig
+##
+CONFIG_SCSI_INIA100=m
+
+##
+## file: drivers/spi/Kconfig
+##
+CONFIG_SPI_PXA2XX=m
+
+##
+## file: drivers/tty/Kconfig
+##
+CONFIG_MOXA_INTELLIO=m
+CONFIG_ISI=m
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+CONFIG_FB_MATROX_G=y
+CONFIG_FB_MATROX_MAVEN=m
+# CONFIG_FB_ATY_GENERIC_LCD is not set
+# CONFIG_FB_SAVAGE_I2C is not set
+
+##
+## file: init/Kconfig
+##
+CONFIG_KALLSYMS_ALL=y
+
+##
+## file: kernel/livepatch/Kconfig
+##
+CONFIG_LIVEPATCH=y
+
+##
+## file: kernel/rcu/Kconfig
+##
+CONFIG_RCU_FANOUT=64
+
+##
+## file: lib/Kconfig.debug
+##
+CONFIG_FRAME_WARN=2048
+
+##
+## file: mm/Kconfig
+##
+## choice: Memory model
+CONFIG_SPARSEMEM_MANUAL=y
+## end choice
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_ZONE_DEVICE=y
+
+##
+## file: security/Kconfig
+##
+CONFIG_LSM_MMAP_MIN_ADDR=65536
+
diff --git a/debian/config/amd64/config.cloud-amd64 b/debian/config/amd64/config.cloud-amd64
new file mode 100644
index 000000000..4d27bd1db
--- /dev/null
+++ b/debian/config/amd64/config.cloud-amd64
@@ -0,0 +1,1630 @@
+##
+## file: arch/x86/Kconfig
+##
+# CONFIG_X86_MPPARSE is not set
+# CONFIG_X86_EXTENDED_PLATFORM is not set
+# CONFIG_X86_INTEL_LPSS is not set
+# CONFIG_X86_AMD_PLATFORM_DEVICE is not set
+# CONFIG_IOSF_MBI is not set
+# CONFIG_GART_IOMMU is not set
+# CONFIG_CALGARY_IOMMU is not set
+# CONFIG_SCHED_MC_PRIO is not set
+#. XXX
+# CONFIG_X86_MCE is not set
+# CONFIG_X86_16BIT is not set
+# CONFIG_I8K is not set
+# CONFIG_MICROCODE is not set
+# CONFIG_AMD_NUMA is not set
+# CONFIG_ISA_DMA_API is not set
+# CONFIG_ISA is not set
+# CONFIG_EISA is not set
+# CONFIG_X86_X32 is not set
+
+##
+## file: arch/x86/Kconfig.debug
+##
+# CONFIG_EARLY_PRINTK_EFI is not set
+
+##
+## file: arch/x86/xen/Kconfig
+##
+# CONFIG_XEN_DOM0 is not set
+
+##
+## file: block/Kconfig.iosched
+##
+CONFIG_IOSCHED_CFQ=m
+## choice: Default I/O scheduler
+# CONFIG_DEFAULT_CFQ is not set
+CONFIG_DEFAULT_NOOP=y
+## end choice
+CONFIG_MQ_IOSCHED_DEADLINE=m
+
+##
+## file: block/partitions/Kconfig
+##
+# CONFIG_PARTITION_ADVANCED is not set
+
+##
+## file: drivers/accessibility/Kconfig
+##
+# CONFIG_ACCESSIBILITY is not set
+
+##
+## file: drivers/acpi/Kconfig
+##
+# CONFIG_ACPI_AC is not set
+# CONFIG_ACPI_BATTERY is not set
+# CONFIG_ACPI_DOCK is not set
+# CONFIG_ACPI_PROCESSOR is not set
+# CONFIG_ACPI_IPMI is not set
+
+##
+## file: drivers/android/Kconfig
+##
+# CONFIG_ANDROID is not set
+
+##
+## file: drivers/ata/Kconfig
+##
+# CONFIG_ATA_ACPI is not set
+# CONFIG_SATA_ZPODD is not set
+# CONFIG_SATA_PMP is not set
+# CONFIG_SATA_AHCI is not set
+# CONFIG_SATA_ACARD_AHCI is not set
+# CONFIG_SATA_SIL24 is not set
+CONFIG_ATA_SFF=y
+# CONFIG_PDC_ADMA is not set
+# CONFIG_SATA_QSTOR is not set
+# CONFIG_SATA_SX4 is not set
+CONFIG_ATA_BMDMA=y
+CONFIG_ATA_PIIX=m
+# CONFIG_SATA_MV is not set
+# CONFIG_SATA_NV is not set
+# CONFIG_SATA_PROMISE is not set
+# CONFIG_SATA_SIL is not set
+# CONFIG_SATA_SIS is not set
+# CONFIG_SATA_SVW is not set
+# CONFIG_SATA_ULI is not set
+# CONFIG_SATA_VIA is not set
+# CONFIG_SATA_VITESSE is not set
+# CONFIG_PATA_ALI is not set
+# CONFIG_PATA_AMD is not set
+# CONFIG_PATA_ARTOP is not set
+# CONFIG_PATA_ATIIXP is not set
+# CONFIG_PATA_ATP867X is not set
+# CONFIG_PATA_CMD64X is not set
+# CONFIG_PATA_CYPRESS is not set
+# CONFIG_PATA_EFAR is not set
+# CONFIG_PATA_HPT366 is not set
+# CONFIG_PATA_HPT37X is not set
+# CONFIG_PATA_HPT3X2N is not set
+# CONFIG_PATA_HPT3X3 is not set
+# CONFIG_PATA_IT8213 is not set
+# CONFIG_PATA_IT821X is not set
+# CONFIG_PATA_JMICRON is not set
+# CONFIG_PATA_MARVELL is not set
+# CONFIG_PATA_NETCELL is not set
+# CONFIG_PATA_NINJA32 is not set
+# CONFIG_PATA_NS87415 is not set
+# CONFIG_PATA_OLDPIIX is not set
+# CONFIG_PATA_OPTIDMA is not set
+# CONFIG_PATA_PDC2027X is not set
+# CONFIG_PATA_PDC_OLD is not set
+# CONFIG_PATA_RADISYS is not set
+# CONFIG_PATA_RDC is not set
+# CONFIG_PATA_SCH is not set
+# CONFIG_PATA_SERVERWORKS is not set
+# CONFIG_PATA_SIL680 is not set
+# CONFIG_PATA_SIS is not set
+# CONFIG_PATA_TOSHIBA is not set
+# CONFIG_PATA_TRIFLEX is not set
+# CONFIG_PATA_VIA is not set
+# CONFIG_PATA_MPIIX is not set
+# CONFIG_PATA_NS87410 is not set
+# CONFIG_PATA_OPTI is not set
+# CONFIG_PATA_PLATFORM is not set
+# CONFIG_PATA_RZ1000 is not set
+
+##
+## file: drivers/atm/Kconfig
+##
+# CONFIG_ATM_DRIVERS is not set
+
+##
+## file: drivers/auxdisplay/Kconfig
+##
+# CONFIG_AUXDISPLAY is not set
+
+##
+## file: drivers/bcma/Kconfig
+##
+# CONFIG_BCMA is not set
+
+##
+## file: drivers/block/Kconfig
+##
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_SKD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_CDROM_PKTCDVD is not set
+CONFIG_XEN_BLKDEV_FRONTEND=m
+# CONFIG_BLK_DEV_RSXX is not set
+
+##
+## file: drivers/block/mtip32xx/Kconfig
+##
+# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
+
+##
+## file: drivers/char/Kconfig
+##
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+# CONFIG_MWAVE is not set
+# CONFIG_TELCLOCK is not set
+# CONFIG_DEVPORT is not set
+
+##
+## file: drivers/char/agp/Kconfig
+##
+# CONFIG_AGP is not set
+
+##
+## file: drivers/char/hw_random/Kconfig
+##
+# CONFIG_HW_RANDOM_INTEL is not set
+# CONFIG_HW_RANDOM_AMD is not set
+# CONFIG_HW_RANDOM_GEODE is not set
+# CONFIG_HW_RANDOM_VIA is not set
+
+##
+## file: drivers/char/ipmi/Kconfig
+##
+# CONFIG_IPMI_HANDLER is not set
+
+##
+## file: drivers/char/tpm/Kconfig
+##
+CONFIG_TCG_TPM=m
+# CONFIG_HW_RANDOM_TPM is not set
+CONFIG_TCG_TIS=m
+# CONFIG_TCG_TIS_SPI is not set
+# CONFIG_TCG_TIS_I2C_ATMEL is not set
+# CONFIG_TCG_TIS_I2C_INFINEON is not set
+# CONFIG_TCG_TIS_I2C_NUVOTON is not set
+# CONFIG_TCG_NSC is not set
+# CONFIG_TCG_ATMEL is not set
+# CONFIG_TCG_INFINEON is not set
+CONFIG_TCG_XEN=m
+CONFIG_TCG_CRB=m
+CONFIG_TCG_VTPM_PROXY=m
+
+##
+## file: drivers/char/xillybus/Kconfig
+##
+# CONFIG_XILLYBUS is not set
+
+##
+## file: drivers/cpufreq/Kconfig
+##
+# CONFIG_CPU_FREQ is not set
+
+##
+## file: drivers/cpuidle/Kconfig
+##
+# CONFIG_CPU_IDLE is not set
+
+##
+## file: drivers/crypto/Kconfig
+##
+# CONFIG_CRYPTO_HW is not set
+
+##
+## file: drivers/dax/Kconfig
+##
+# CONFIG_DAX is not set
+
+##
+## file: drivers/devfreq/Kconfig
+##
+# CONFIG_PM_DEVFREQ is not set
+
+##
+## file: drivers/dma/Kconfig
+##
+# CONFIG_DMADEVICES is not set
+
+##
+## file: drivers/edac/Kconfig
+##
+# CONFIG_EDAC is not set
+
+##
+## file: drivers/extcon/Kconfig
+##
+# CONFIG_EXTCON is not set
+
+##
+## file: drivers/firewire/Kconfig
+##
+# CONFIG_FIREWIRE is not set
+# CONFIG_FIREWIRE_NOSY is not set
+
+##
+## file: drivers/firmware/Kconfig
+##
+# CONFIG_DELL_RBU is not set
+# CONFIG_DCDBAS is not set
+
+##
+## file: drivers/fmc/Kconfig
+##
+# CONFIG_FMC is not set
+
+##
+## file: drivers/fpga/Kconfig
+##
+# CONFIG_FPGA is not set
+
+##
+## file: drivers/fsi/Kconfig
+##
+# CONFIG_FSI is not set
+
+##
+## file: drivers/gpio/Kconfig
+##
+# CONFIG_GPIOLIB is not set
+# CONFIG_GPIO_KEMPLD is not set
+# CONFIG_GPIO_ML_IOH is not set
+
+##
+## file: drivers/gpu/drm/Kconfig
+##
+# CONFIG_DRM is not set
+
+##
+## file: drivers/hid/Kconfig
+##
+# CONFIG_HID is not set
+
+##
+## file: drivers/hid/intel-ish-hid/Kconfig
+##
+# CONFIG_INTEL_ISH_HID is not set
+
+##
+## file: drivers/hsi/Kconfig
+##
+# CONFIG_HSI is not set
+
+##
+## file: drivers/hv/Kconfig
+##
+CONFIG_HYPERV=m
+
+##
+## file: drivers/hwmon/Kconfig
+##
+# CONFIG_HWMON is not set
+
+##
+## file: drivers/hwtracing/intel_th/Kconfig
+##
+# CONFIG_INTEL_TH is not set
+
+##
+## file: drivers/i2c/Kconfig
+##
+# CONFIG_I2C is not set
+
+##
+## file: drivers/idle/Kconfig
+##
+# CONFIG_INTEL_IDLE is not set
+
+##
+## file: drivers/iio/Kconfig
+##
+# CONFIG_IIO is not set
+
+##
+## file: drivers/infiniband/Kconfig
+##
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_USER_MAD=m
+CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
+CONFIG_INFINIBAND_ADDR_TRANS=y
+
+##
+## file: drivers/infiniband/hw/cxgb4/Kconfig
+##
+# CONFIG_INFINIBAND_CXGB4 is not set
+
+##
+## file: drivers/infiniband/hw/hfi1/Kconfig
+##
+# CONFIG_INFINIBAND_HFI1 is not set
+
+##
+## file: drivers/infiniband/hw/i40iw/Kconfig
+##
+# CONFIG_INFINIBAND_I40IW is not set
+
+##
+## file: drivers/infiniband/hw/mlx4/Kconfig
+##
+CONFIG_MLX4_INFINIBAND=m
+
+##
+## file: drivers/infiniband/hw/mlx5/Kconfig
+##
+CONFIG_MLX5_INFINIBAND=m
+
+##
+## file: drivers/infiniband/hw/mthca/Kconfig
+##
+# CONFIG_INFINIBAND_MTHCA is not set
+# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
+
+##
+## file: drivers/infiniband/hw/ocrdma/Kconfig
+##
+# CONFIG_INFINIBAND_OCRDMA is not set
+
+##
+## file: drivers/infiniband/hw/qedr/Kconfig
+##
+# CONFIG_INFINIBAND_QEDR is not set
+
+##
+## file: drivers/infiniband/hw/qib/Kconfig
+##
+# CONFIG_INFINIBAND_QIB is not set
+# CONFIG_INFINIBAND_QIB_DCA is not set
+
+##
+## file: drivers/infiniband/sw/rdmavt/Kconfig
+##
+# CONFIG_INFINIBAND_RDMAVT is not set
+
+##
+## file: drivers/infiniband/sw/rxe/Kconfig
+##
+# CONFIG_RDMA_RXE is not set
+
+##
+## file: drivers/infiniband/ulp/ipoib/Kconfig
+##
+# CONFIG_INFINIBAND_IPOIB is not set
+# CONFIG_INFINIBAND_IPOIB_CM is not set
+# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
+# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
+
+##
+## file: drivers/infiniband/ulp/iser/Kconfig
+##
+# CONFIG_INFINIBAND_ISER is not set
+
+##
+## file: drivers/infiniband/ulp/isert/Kconfig
+##
+# CONFIG_INFINIBAND_ISERT is not set
+
+##
+## file: drivers/infiniband/ulp/srp/Kconfig
+##
+# CONFIG_INFINIBAND_SRP is not set
+
+##
+## file: drivers/infiniband/ulp/srpt/Kconfig
+##
+# CONFIG_INFINIBAND_SRPT is not set
+
+##
+## file: drivers/input/Kconfig
+##
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_SPARSEKMAP is not set
+# CONFIG_INPUT_JOYDEV is not set
+
+##
+## file: drivers/input/gameport/Kconfig
+##
+# CONFIG_GAMEPORT is not set
+
+##
+## file: drivers/input/joystick/Kconfig
+##
+# CONFIG_INPUT_JOYSTICK is not set
+
+##
+## file: drivers/input/keyboard/Kconfig
+##
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_GPIO is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_SAMSUNG is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+
+##
+## file: drivers/input/misc/Kconfig
+##
+# CONFIG_INPUT_MISC is not set
+
+##
+## file: drivers/input/mouse/Kconfig
+##
+# CONFIG_INPUT_MOUSE is not set
+
+##
+## file: drivers/input/serio/Kconfig
+##
+# CONFIG_SERIO_SERPORT is not set
+# CONFIG_SERIO_CT82C710 is not set
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_RAW=m
+# CONFIG_SERIO_ALTERA_PS2 is not set
+CONFIG_HYPERV_KEYBOARD=m
+
+##
+## file: drivers/input/tablet/Kconfig
+##
+# CONFIG_INPUT_TABLET is not set
+
+##
+## file: drivers/input/touchscreen/Kconfig
+##
+# CONFIG_INPUT_TOUCHSCREEN is not set
+
+##
+## file: drivers/iommu/Kconfig
+##
+# CONFIG_AMD_IOMMU is not set
+
+##
+## file: drivers/ipack/Kconfig
+##
+# CONFIG_IPACK_BUS is not set
+
+##
+## file: drivers/isdn/Kconfig
+##
+# CONFIG_ISDN is not set
+
+##
+## file: drivers/leds/Kconfig
+##
+# CONFIG_NEW_LEDS is not set
+
+##
+## file: drivers/lightnvm/Kconfig
+##
+# CONFIG_NVM is not set
+
+##
+## file: drivers/macintosh/Kconfig
+##
+# CONFIG_MACINTOSH_DRIVERS is not set
+
+##
+## file: drivers/mailbox/Kconfig
+##
+# CONFIG_MAILBOX is not set
+
+##
+## file: drivers/mcb/Kconfig
+##
+# CONFIG_MCB is not set
+
+##
+## file: drivers/media/Kconfig
+##
+# CONFIG_MEDIA_SUPPORT is not set
+
+##
+## file: drivers/media/rc/Kconfig
+##
+# CONFIG_RC_CORE is not set
+
+##
+## file: drivers/memory/Kconfig
+##
+# CONFIG_MEMORY is not set
+
+##
+## file: drivers/memstick/Kconfig
+##
+# CONFIG_MEMSTICK is not set
+
+##
+## file: drivers/message/fusion/Kconfig
+##
+# CONFIG_FUSION is not set
+
+##
+## file: drivers/mfd/Kconfig
+##
+# CONFIG_LPC_ICH is not set
+# CONFIG_LPC_SCH is not set
+# CONFIG_MFD_INTEL_LPSS_ACPI is not set
+# CONFIG_MFD_INTEL_LPSS_PCI is not set
+# CONFIG_MFD_KEMPLD is not set
+
+##
+## file: drivers/misc/Kconfig
+##
+# CONFIG_IBM_ASM is not set
+# CONFIG_PHANTOM is not set
+# CONFIG_SGI_IOC4 is not set
+# CONFIG_TIFM_CORE is not set
+# CONFIG_TIFM_7XX1 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HP_ILO is not set
+
+##
+## file: drivers/misc/c2port/Kconfig
+##
+# CONFIG_C2PORT is not set
+
+##
+## file: drivers/misc/cardreader/Kconfig
+##
+# CONFIG_MISC_RTSX_PCI is not set
+
+##
+## file: drivers/misc/cb710/Kconfig
+##
+# CONFIG_CB710_CORE is not set
+
+##
+## file: drivers/misc/eeprom/Kconfig
+##
+# CONFIG_EEPROM_93CX6 is not set
+
+##
+## file: drivers/misc/mei/Kconfig
+##
+# CONFIG_INTEL_MEI is not set
+# CONFIG_INTEL_MEI_ME is not set
+
+##
+## file: drivers/misc/mic/Kconfig
+##
+# CONFIG_INTEL_MIC_BUS is not set
+# CONFIG_SCIF_BUS is not set
+# CONFIG_VOP_BUS is not set
+
+##
+## file: drivers/mmc/Kconfig
+##
+# CONFIG_MMC is not set
+
+##
+## file: drivers/mtd/Kconfig
+##
+# CONFIG_MTD is not set
+
+##
+## file: drivers/net/Kconfig
+##
+# CONFIG_NET_SB1000 is not set
+CONFIG_XEN_NETDEV_FRONTEND=m
+# CONFIG_FUJITSU_ES is not set
+
+##
+## file: drivers/net/appletalk/Kconfig
+##
+# CONFIG_ATALK is not set
+
+##
+## file: drivers/net/arcnet/Kconfig
+##
+# CONFIG_ARCNET is not set
+
+##
+## file: drivers/net/ethernet/Kconfig
+##
+# CONFIG_JME is not set
+# CONFIG_FEALNX is not set
+
+##
+## file: drivers/net/ethernet/3com/Kconfig
+##
+# CONFIG_NET_VENDOR_3COM is not set
+
+##
+## file: drivers/net/ethernet/adaptec/Kconfig
+##
+# CONFIG_NET_VENDOR_ADAPTEC is not set
+
+##
+## file: drivers/net/ethernet/agere/Kconfig
+##
+# CONFIG_NET_VENDOR_AGERE is not set
+
+##
+## file: drivers/net/ethernet/alacritech/Kconfig
+##
+# CONFIG_NET_VENDOR_ALACRITECH is not set
+
+##
+## file: drivers/net/ethernet/alteon/Kconfig
+##
+# CONFIG_NET_VENDOR_ALTEON is not set
+
+##
+## file: drivers/net/ethernet/altera/Kconfig
+##
+# CONFIG_ALTERA_TSE is not set
+
+##
+## file: drivers/net/ethernet/amazon/Kconfig
+##
+CONFIG_NET_VENDOR_AMAZON=y
+#. Amazon EC2 uses Elastic Network Adapter (ENA) support
+CONFIG_ENA_ETHERNET=m
+
+##
+## file: drivers/net/ethernet/amd/Kconfig
+##
+# CONFIG_NET_VENDOR_AMD is not set
+
+##
+## file: drivers/net/ethernet/aquantia/Kconfig
+##
+# CONFIG_NET_VENDOR_AQUANTIA is not set
+
+##
+## file: drivers/net/ethernet/atheros/Kconfig
+##
+# CONFIG_NET_VENDOR_ATHEROS is not set
+
+##
+## file: drivers/net/ethernet/broadcom/Kconfig
+##
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_CNIC is not set
+
+##
+## file: drivers/net/ethernet/brocade/Kconfig
+##
+# CONFIG_NET_VENDOR_BROCADE is not set
+
+##
+## file: drivers/net/ethernet/cadence/Kconfig
+##
+# CONFIG_NET_VENDOR_CADENCE is not set
+
+##
+## file: drivers/net/ethernet/cavium/Kconfig
+##
+# CONFIG_NET_VENDOR_CAVIUM is not set
+
+##
+## file: drivers/net/ethernet/chelsio/Kconfig
+##
+# CONFIG_NET_VENDOR_CHELSIO is not set
+
+##
+## file: drivers/net/ethernet/cisco/Kconfig
+##
+# CONFIG_NET_VENDOR_CISCO is not set
+
+##
+## file: drivers/net/ethernet/dec/Kconfig
+##
+# CONFIG_NET_VENDOR_DEC is not set
+
+##
+## file: drivers/net/ethernet/dlink/Kconfig
+##
+# CONFIG_NET_VENDOR_DLINK is not set
+
+##
+## file: drivers/net/ethernet/emulex/Kconfig
+##
+# CONFIG_NET_VENDOR_EMULEX is not set
+
+##
+## file: drivers/net/ethernet/ezchip/Kconfig
+##
+# CONFIG_NET_VENDOR_EZCHIP is not set
+
+##
+## file: drivers/net/ethernet/hp/Kconfig
+##
+# CONFIG_NET_VENDOR_HP is not set
+
+##
+## file: drivers/net/ethernet/huawei/Kconfig
+##
+# CONFIG_NET_VENDOR_HUAWEI is not set
+
+##
+## file: drivers/net/ethernet/intel/Kconfig
+##
+CONFIG_NET_VENDOR_INTEL=y
+# CONFIG_E100 is not set
+# CONFIG_E1000 is not set
+# CONFIG_E1000E is not set
+# CONFIG_IGB is not set
+# CONFIG_IGBVF is not set
+# CONFIG_IXGB is not set
+# CONFIG_IXGBE is not set
+#. Amazon EC2 uses Intel Corporation 82599 Ethernet Controller Virtual Function
+CONFIG_IXGBEVF=m
+# CONFIG_I40E is not set
+# CONFIG_I40EVF is not set
+
+##
+## file: drivers/net/ethernet/marvell/Kconfig
+##
+# CONFIG_NET_VENDOR_MARVELL is not set
+
+##
+## file: drivers/net/ethernet/mellanox/Kconfig
+##
+#. Microsoft Azure uses Mellanox Technologies MT27500/MT27520 Family [ConnectX-3/ConnectX-3 Pro Virtual Function]
+CONFIG_NET_VENDOR_MELLANOX=y
+
+##
+## file: drivers/net/ethernet/micrel/Kconfig
+##
+# CONFIG_NET_VENDOR_MICREL is not set
+
+##
+## file: drivers/net/ethernet/myricom/Kconfig
+##
+# CONFIG_NET_VENDOR_MYRI is not set
+
+##
+## file: drivers/net/ethernet/natsemi/Kconfig
+##
+# CONFIG_NET_VENDOR_NATSEMI is not set
+
+##
+## file: drivers/net/ethernet/neterion/Kconfig
+##
+# CONFIG_NET_VENDOR_NETERION is not set
+
+##
+## file: drivers/net/ethernet/netronome/Kconfig
+##
+# CONFIG_NET_VENDOR_NETRONOME is not set
+
+##
+## file: drivers/net/ethernet/nvidia/Kconfig
+##
+# CONFIG_NET_VENDOR_NVIDIA is not set
+
+##
+## file: drivers/net/ethernet/oki-semi/Kconfig
+##
+# CONFIG_NET_VENDOR_OKI is not set
+
+##
+## file: drivers/net/ethernet/packetengines/Kconfig
+##
+# CONFIG_NET_VENDOR_PACKET_ENGINES is not set
+
+##
+## file: drivers/net/ethernet/qlogic/Kconfig
+##
+# CONFIG_NET_VENDOR_QLOGIC is not set
+
+##
+## file: drivers/net/ethernet/qualcomm/Kconfig
+##
+# CONFIG_NET_VENDOR_QUALCOMM is not set
+
+##
+## file: drivers/net/ethernet/rdc/Kconfig
+##
+# CONFIG_NET_VENDOR_RDC is not set
+
+##
+## file: drivers/net/ethernet/realtek/Kconfig
+##
+# CONFIG_NET_VENDOR_REALTEK is not set
+
+##
+## file: drivers/net/ethernet/renesas/Kconfig
+##
+# CONFIG_NET_VENDOR_RENESAS is not set
+
+##
+## file: drivers/net/ethernet/rocker/Kconfig
+##
+# CONFIG_NET_VENDOR_ROCKER is not set
+
+##
+## file: drivers/net/ethernet/samsung/Kconfig
+##
+# CONFIG_NET_VENDOR_SAMSUNG is not set
+
+##
+## file: drivers/net/ethernet/seeq/Kconfig
+##
+# CONFIG_NET_VENDOR_SEEQ is not set
+
+##
+## file: drivers/net/ethernet/sfc/Kconfig
+##
+# CONFIG_NET_VENDOR_SOLARFLARE is not set
+# CONFIG_SFC is not set
+
+##
+## file: drivers/net/ethernet/silan/Kconfig
+##
+# CONFIG_NET_VENDOR_SILAN is not set
+
+##
+## file: drivers/net/ethernet/sis/Kconfig
+##
+# CONFIG_NET_VENDOR_SIS is not set
+
+##
+## file: drivers/net/ethernet/smsc/Kconfig
+##
+# CONFIG_NET_VENDOR_SMSC is not set
+
+##
+## file: drivers/net/ethernet/stmicro/Kconfig
+##
+# CONFIG_NET_VENDOR_STMICRO is not set
+
+##
+## file: drivers/net/ethernet/sun/Kconfig
+##
+# CONFIG_NET_VENDOR_SUN is not set
+
+##
+## file: drivers/net/ethernet/synopsys/Kconfig
+##
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
+
+##
+## file: drivers/net/ethernet/tehuti/Kconfig
+##
+# CONFIG_NET_VENDOR_TEHUTI is not set
+
+##
+## file: drivers/net/ethernet/ti/Kconfig
+##
+# CONFIG_NET_VENDOR_TI is not set
+
+##
+## file: drivers/net/ethernet/via/Kconfig
+##
+# CONFIG_NET_VENDOR_VIA is not set
+
+##
+## file: drivers/net/ethernet/wiznet/Kconfig
+##
+# CONFIG_NET_VENDOR_WIZNET is not set
+
+##
+## file: drivers/net/fddi/Kconfig
+##
+# CONFIG_FDDI is not set
+
+##
+## file: drivers/net/hippi/Kconfig
+##
+# CONFIG_HIPPI is not set
+
+##
+## file: drivers/net/hyperv/Kconfig
+##
+CONFIG_HYPERV_NET=m
+
+##
+## file: drivers/net/phy/Kconfig
+##
+# CONFIG_MDIO_DEVICE is not set
+# CONFIG_PHYLIB is not set
+
+##
+## file: drivers/net/ppp/Kconfig
+##
+# CONFIG_PPP is not set
+
+##
+## file: drivers/net/slip/Kconfig
+##
+# CONFIG_SLIP is not set
+
+##
+## file: drivers/net/wan/Kconfig
+##
+# CONFIG_WAN is not set
+
+##
+## file: drivers/net/wireless/Kconfig
+##
+# CONFIG_WLAN is not set
+
+##
+## file: drivers/ntb/Kconfig
+##
+# CONFIG_NTB is not set
+
+##
+## file: drivers/nvmem/Kconfig
+##
+# CONFIG_NVMEM is not set
+
+##
+## file: drivers/of/Kconfig
+##
+# CONFIG_OF is not set
+
+##
+## file: drivers/parport/Kconfig
+##
+# CONFIG_PARPORT is not set
+
+##
+## file: drivers/pci/Kconfig
+##
+# CONFIG_PCI_STUB is not set
+# CONFIG_PCI_PRI is not set
+# CONFIG_PCI_PASID is not set
+
+##
+## file: drivers/pci/controller/Kconfig
+##
+# CONFIG_VMD is not set
+
+##
+## file: drivers/pci/hotplug/Kconfig
+##
+# CONFIG_HOTPLUG_PCI_ACPI_IBM is not set
+# CONFIG_HOTPLUG_PCI_CPCI is not set
+# CONFIG_HOTPLUG_PCI_SHPC is not set
+
+##
+## file: drivers/pcmcia/Kconfig
+##
+# CONFIG_PCCARD is not set
+
+##
+## file: drivers/platform/chrome/Kconfig
+##
+# CONFIG_CHROME_PLATFORMS is not set
+
+##
+## file: drivers/platform/x86/Kconfig
+##
+# CONFIG_X86_PLATFORM_DEVICES is not set
+
+##
+## file: drivers/pnp/Kconfig
+##
+# CONFIG_PNP is not set
+
+##
+## file: drivers/power/supply/Kconfig
+##
+# CONFIG_BATTERY_BQ27XXX is not set
+
+##
+## file: drivers/pwm/Kconfig
+##
+# CONFIG_PWM is not set
+
+##
+## file: drivers/regulator/Kconfig
+##
+# CONFIG_REGULATOR is not set
+
+##
+## file: drivers/remoteproc/Kconfig
+##
+# CONFIG_REMOTEPROC is not set
+
+##
+## file: drivers/reset/Kconfig
+##
+# CONFIG_RESET_CONTROLLER is not set
+
+##
+## file: drivers/rtc/Kconfig
+##
+# CONFIG_RTC_NVMEM is not set
+# CONFIG_RTC_DRV_ABB5ZES3 is not set
+# CONFIG_RTC_DRV_ABX80X is not set
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_HYM8563 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_ISL12022 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8523 is not set
+# CONFIG_RTC_DRV_PCF85063 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_M41T80_WDT is not set
+# CONFIG_RTC_DRV_BQ32K is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8010 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+# CONFIG_RTC_DRV_EM3027 is not set
+# CONFIG_RTC_DRV_RV8803 is not set
+# CONFIG_RTC_DRV_M41T93 is not set
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1302 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1343 is not set
+# CONFIG_RTC_DRV_DS1347 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6916 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RX4581 is not set
+# CONFIG_RTC_DRV_RX6110 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
+# CONFIG_RTC_DRV_MCP795 is not set
+# CONFIG_RTC_DRV_DS3232 is not set
+# CONFIG_RTC_DRV_PCF2127 is not set
+# CONFIG_RTC_DRV_RV3029C2 is not set
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1685_FAMILY is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_DS2404 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_MSM6242 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_RP5C01 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+# CONFIG_RTC_DRV_WM831X is not set
+# CONFIG_RTC_DRV_WM8350 is not set
+# CONFIG_RTC_DRV_PCF50633 is not set
+# CONFIG_RTC_DRV_AB3100 is not set
+# CONFIG_RTC_DRV_ZYNQMP is not set
+# CONFIG_RTC_DRV_SNVS is not set
+# CONFIG_RTC_DRV_MOXART is not set
+# CONFIG_RTC_DRV_XGENE is not set
+# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
+
+##
+## file: drivers/scsi/Kconfig
+##
+CONFIG_SCSI=m
+CONFIG_BLK_DEV_SD=m
+CONFIG_SCSI_FC_ATTRS=m
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_HPSA is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_3W_SAS is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_MVUMI is not set
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_SCSI_ADVANSYS is not set
+# CONFIG_SCSI_ARCMSR is not set
+# CONFIG_SCSI_HPTIOP is not set
+CONFIG_HYPERV_STORAGE=m
+# CONFIG_LIBFC is not set
+# CONFIG_SCSI_SNIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_ISCI is not set
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_STEX is not set
+# CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+# CONFIG_SCSI_LPFC is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_AM53C974 is not set
+# CONFIG_SCSI_WD719X is not set
+# CONFIG_SCSI_PMCRAID is not set
+# CONFIG_SCSI_PM8001 is not set
+# CONFIG_SCSI_BFA_FC is not set
+
+##
+## file: drivers/scsi/aic7xxx/Kconfig.aic79xx
+##
+# CONFIG_SCSI_AIC79XX is not set
+
+##
+## file: drivers/scsi/aic7xxx/Kconfig.aic7xxx
+##
+# CONFIG_SCSI_AIC7XXX is not set
+
+##
+## file: drivers/scsi/aic94xx/Kconfig
+##
+# CONFIG_SCSI_AIC94XX is not set
+
+##
+## file: drivers/scsi/be2iscsi/Kconfig
+##
+# CONFIG_BE2ISCSI is not set
+
+##
+## file: drivers/scsi/bnx2fc/Kconfig
+##
+# CONFIG_SCSI_BNX2X_FCOE is not set
+
+##
+## file: drivers/scsi/bnx2i/Kconfig
+##
+# CONFIG_SCSI_BNX2_ISCSI is not set
+
+##
+## file: drivers/scsi/csiostor/Kconfig
+##
+# CONFIG_SCSI_CHELSIO_FCOE is not set
+
+##
+## file: drivers/scsi/cxgbi/cxgb3i/Kconfig
+##
+# CONFIG_SCSI_CXGB3_ISCSI is not set
+
+##
+## file: drivers/scsi/cxgbi/cxgb4i/Kconfig
+##
+# CONFIG_SCSI_CXGB4_ISCSI is not set
+
+##
+## file: drivers/scsi/device_handler/Kconfig
+##
+# CONFIG_SCSI_DH is not set
+
+##
+## file: drivers/scsi/esas2r/Kconfig
+##
+# CONFIG_SCSI_ESAS2R is not set
+
+##
+## file: drivers/scsi/megaraid/Kconfig.megaraid
+##
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_MM is not set
+# CONFIG_MEGARAID_MAILBOX is not set
+# CONFIG_MEGARAID_LEGACY is not set
+# CONFIG_MEGARAID_SAS is not set
+
+##
+## file: drivers/scsi/mpt3sas/Kconfig
+##
+# CONFIG_SCSI_MPT3SAS is not set
+# CONFIG_SCSI_MPT2SAS is not set
+
+##
+## file: drivers/scsi/mvsas/Kconfig
+##
+# CONFIG_SCSI_MVSAS is not set
+
+##
+## file: drivers/scsi/osd/Kconfig
+##
+# CONFIG_SCSI_OSD_INITIATOR is not set
+# CONFIG_SCSI_OSD_ULD is not set
+
+##
+## file: drivers/scsi/qla2xxx/Kconfig
+##
+# CONFIG_SCSI_QLA_FC is not set
+
+##
+## file: drivers/scsi/qla4xxx/Kconfig
+##
+# CONFIG_SCSI_QLA_ISCSI is not set
+
+##
+## file: drivers/scsi/smartpqi/Kconfig
+##
+# CONFIG_SCSI_SMARTPQI is not set
+
+##
+## file: drivers/scsi/ufs/Kconfig
+##
+# CONFIG_SCSI_UFSHCD is not set
+
+##
+## file: drivers/sfi/Kconfig
+##
+# CONFIG_SFI is not set
+
+##
+## file: drivers/spi/Kconfig
+##
+# CONFIG_SPI is not set
+
+##
+## file: drivers/spmi/Kconfig
+##
+# CONFIG_SPMI is not set
+
+##
+## file: drivers/ssb/Kconfig
+##
+# CONFIG_SSB is not set
+
+##
+## file: drivers/staging/Kconfig
+##
+# CONFIG_STAGING is not set
+
+##
+## file: drivers/target/Kconfig
+##
+# CONFIG_TARGET_CORE is not set
+
+##
+## file: drivers/target/iscsi/cxgbit/Kconfig
+##
+# CONFIG_ISCSI_TARGET_CXGB4 is not set
+
+##
+## file: drivers/thermal/Kconfig
+##
+# CONFIG_THERMAL is not set
+
+##
+## file: drivers/thunderbolt/Kconfig
+##
+# CONFIG_THUNDERBOLT is not set
+
+##
+## file: drivers/tty/Kconfig
+##
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_NOZOMI is not set
+# CONFIG_ISI is not set
+# CONFIG_N_HDLC is not set
+# CONFIG_N_GSM is not set
+
+##
+## file: drivers/tty/serial/Kconfig
+##
+# CONFIG_SERIAL_JSM is not set
+# CONFIG_SERIAL_RP2 is not set
+
+##
+## file: drivers/tty/serial/8250/Kconfig
+##
+# CONFIG_SERIAL_8250_FINTEK is not set
+# CONFIG_SERIAL_8250_EXAR is not set
+# CONFIG_SERIAL_8250_RSA is not set
+# CONFIG_SERIAL_8250_MID is not set
+# CONFIG_SERIAL_8250_MOXA is not set
+
+##
+## file: drivers/usb/Kconfig
+##
+# CONFIG_USB_SUPPORT is not set
+
+##
+## file: drivers/uwb/Kconfig
+##
+# CONFIG_UWB is not set
+
+##
+## file: drivers/video/backlight/Kconfig
+##
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+# CONFIG_FB is not set
+
+##
+## file: drivers/virt/Kconfig
+##
+# CONFIG_VIRT_DRIVERS is not set
+
+##
+## file: drivers/vme/Kconfig
+##
+# CONFIG_VME_BUS is not set
+
+##
+## file: drivers/w1/Kconfig
+##
+# CONFIG_W1 is not set
+
+##
+## file: drivers/watchdog/Kconfig
+##
+# CONFIG_ACQUIRE_WDT is not set
+# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ALIM1535_WDT is not set
+# CONFIG_ALIM7101_WDT is not set
+# CONFIG_F71808E_WDT is not set
+# CONFIG_SP5100_TCO is not set
+# CONFIG_SBC_FITPC2_WATCHDOG is not set
+# CONFIG_EUROTECH_WDT is not set
+# CONFIG_IB700_WDT is not set
+# CONFIG_IBMASR is not set
+# CONFIG_WAFER_WDT is not set
+# CONFIG_I6300ESB_WDT is not set
+# CONFIG_IE6XX_WDT is not set
+# CONFIG_ITCO_WDT is not set
+# CONFIG_ITCO_VENDOR_SUPPORT is not set
+# CONFIG_IT8712F_WDT is not set
+# CONFIG_IT87_WDT is not set
+# CONFIG_HP_WATCHDOG is not set
+# CONFIG_KEMPLD_WDT is not set
+# CONFIG_HPWDT_NMI_DECODING is not set
+# CONFIG_SC1200_WDT is not set
+# CONFIG_PC87413_WDT is not set
+# CONFIG_NV_TCO is not set
+# CONFIG_60XX_WDT is not set
+# CONFIG_CPU5_WDT is not set
+# CONFIG_SMSC_SCH311X_WDT is not set
+# CONFIG_SMSC37B787_WDT is not set
+# CONFIG_VIA_WDT is not set
+# CONFIG_W83627HF_WDT is not set
+# CONFIG_W83877F_WDT is not set
+# CONFIG_W83977F_WDT is not set
+# CONFIG_MACHZ_WDT is not set
+# CONFIG_SBC_EPX_C3_WATCHDOG is not set
+
+##
+## file: fs/adfs/Kconfig
+##
+# CONFIG_ADFS_FS is not set
+
+##
+## file: fs/affs/Kconfig
+##
+# CONFIG_AFFS_FS is not set
+
+##
+## file: fs/afs/Kconfig
+##
+# CONFIG_AFS_FS is not set
+
+##
+## file: fs/befs/Kconfig
+##
+# CONFIG_BEFS_FS is not set
+
+##
+## file: fs/bfs/Kconfig
+##
+# CONFIG_BFS_FS is not set
+
+##
+## file: fs/efs/Kconfig
+##
+# CONFIG_EFS_FS is not set
+
+##
+## file: fs/f2fs/Kconfig
+##
+# CONFIG_F2FS_FS is not set
+
+##
+## file: fs/freevxfs/Kconfig
+##
+# CONFIG_VXFS_FS is not set
+
+##
+## file: fs/omfs/Kconfig
+##
+# CONFIG_OMFS_FS is not set
+
+##
+## file: fs/qnx4/Kconfig
+##
+# CONFIG_QNX4FS_FS is not set
+
+##
+## file: fs/qnx6/Kconfig
+##
+# CONFIG_QNX6FS_FS is not set
+
+##
+## file: fs/ufs/Kconfig
+##
+# CONFIG_UFS_FS is not set
+
+##
+## file: kernel/power/Kconfig
+##
+# CONFIG_SUSPEND is not set
+# CONFIG_PM is not set
+# CONFIG_PM_DEBUG is not set
+
+##
+## file: lib/Kconfig.debug
+##
+# CONFIG_DEBUG_MEMORY_INIT is not set
+# CONFIG_TEST_USER_COPY is not set
+# CONFIG_TEST_BPF is not set
+# CONFIG_TEST_FIRMWARE is not set
+# CONFIG_TEST_STATIC_KEYS is not set
+# CONFIG_MEMTEST is not set
+
+##
+## file: mm/Kconfig
+##
+# CONFIG_ZSWAP is not set
+
+##
+## file: mm/Kconfig.debug
+##
+# CONFIG_PAGE_EXTENSION is not set
+# CONFIG_PAGE_POISONING is not set
+
+##
+## file: net/Kconfig
+##
+# CONFIG_WIRELESS is not set
+
+##
+## file: net/6lowpan/Kconfig
+##
+# CONFIG_6LOWPAN is not set
+
+##
+## file: net/9p/Kconfig
+##
+# CONFIG_NET_9P is not set
+
+##
+## file: net/atm/Kconfig
+##
+# CONFIG_ATM is not set
+
+##
+## file: net/ax25/Kconfig
+##
+# CONFIG_HAMRADIO is not set
+
+##
+## file: net/batman-adv/Kconfig
+##
+# CONFIG_BATMAN_ADV is not set
+
+##
+## file: net/bluetooth/Kconfig
+##
+# CONFIG_BT is not set
+
+##
+## file: net/caif/Kconfig
+##
+# CONFIG_CAIF is not set
+
+##
+## file: net/can/Kconfig
+##
+# CONFIG_CAN is not set
+
+##
+## file: net/decnet/Kconfig
+##
+# CONFIG_DECNET is not set
+
+##
+## file: net/dsa/Kconfig
+##
+# CONFIG_NET_DSA is not set
+
+##
+## file: net/hsr/Kconfig
+##
+# CONFIG_HSR is not set
+
+##
+## file: net/ieee802154/Kconfig
+##
+# CONFIG_IEEE802154 is not set
+
+##
+## file: net/ife/Kconfig
+##
+# CONFIG_NET_IFE is not set
+
+##
+## file: net/lapb/Kconfig
+##
+# CONFIG_LAPB is not set
+
+##
+## file: net/llc/Kconfig
+##
+# CONFIG_LLC2 is not set
+
+##
+## file: net/mac80211/Kconfig
+##
+# CONFIG_MAC80211 is not set
+
+##
+## file: net/mac802154/Kconfig
+##
+# CONFIG_MAC802154 is not set
+
+##
+## file: net/ncsi/Kconfig
+##
+# CONFIG_NET_NCSI is not set
+
+##
+## file: net/nfc/Kconfig
+##
+# CONFIG_NFC is not set
+
+##
+## file: net/phonet/Kconfig
+##
+# CONFIG_PHONET is not set
+
+##
+## file: net/psample/Kconfig
+##
+# CONFIG_PSAMPLE is not set
+
+##
+## file: net/rfkill/Kconfig
+##
+# CONFIG_RFKILL is not set
+
+##
+## file: net/rxrpc/Kconfig
+##
+# CONFIG_AF_RXRPC is not set
+
+##
+## file: net/switchdev/Kconfig
+##
+# CONFIG_NET_SWITCHDEV is not set
+
+##
+## file: net/wimax/Kconfig
+##
+# CONFIG_WIMAX is not set
+
+##
+## file: net/wireless/Kconfig
+##
+# CONFIG_CFG80211 is not set
+
+##
+## file: net/x25/Kconfig
+##
+# CONFIG_X25 is not set
+
+##
+## file: security/Kconfig
+##
+CONFIG_SECURITY_INFINIBAND=y
+
+##
+## file: security/integrity/Kconfig
+##
+# CONFIG_INTEGRITY is not set
+
+##
+## file: sound/Kconfig
+##
+# CONFIG_SOUND is not set
+
diff --git a/debian/config/amd64/defines b/debian/config/amd64/defines
new file mode 100644
index 000000000..75705b2a8
--- /dev/null
+++ b/debian/config/amd64/defines
@@ -0,0 +1,28 @@
+[base]
+featuresets:
+ none
+ rt
+kernel-arch: x86
+
+[build]
+debug-info: true
+image-file: arch/x86/boot/bzImage
+signed-code: true
+vdso: true
+
+[image]
+bootloaders: grub-pc grub-efi-amd64 extlinux
+install-stem: vmlinuz
+breaks: xserver-xorg-input-vmmouse (<< 1:13.0.99)
+
+[relations]
+gcc-8: gcc-8 (>= 8-20180123-1~) <!stage1 !cross !pkg.linux.nokernel>, gcc-8-x86-64-linux-gnu (>= 8-20180123-1~) <!stage1 cross !pkg.linux.nokernel>
+headers%gcc-8: linux-compiler-gcc-8-x86
+
+[amd64_description]
+hardware: 64-bit PCs
+hardware-long: PCs with AMD64, Intel 64 or VIA Nano processors
+
+[cloud-amd64_description]
+hardware: x86-64 cloud
+hardware-long: Amazon EC2, Google Compute Engine and Microsoft Azure cloud platforms
diff --git a/debian/config/amd64/none/defines b/debian/config/amd64/none/defines
new file mode 100644
index 000000000..f68d50a48
--- /dev/null
+++ b/debian/config/amd64/none/defines
@@ -0,0 +1,4 @@
+[base]
+flavours:
+ amd64
+ cloud-amd64
diff --git a/debian/config/amd64/rt/defines b/debian/config/amd64/rt/defines
new file mode 100644
index 000000000..090dc41bf
--- /dev/null
+++ b/debian/config/amd64/rt/defines
@@ -0,0 +1,3 @@
+[base]
+flavours:
+ amd64
diff --git a/debian/config/arm64/config b/debian/config/arm64/config
new file mode 100644
index 000000000..b920d612b
--- /dev/null
+++ b/debian/config/arm64/config
@@ -0,0 +1,1324 @@
+##
+## file: arch/arm64/Kconfig
+##
+CONFIG_PCI=y
+CONFIG_ARM64_ERRATUM_834220=y
+CONFIG_ARM64_ERRATUM_843419=y
+## choice: Virtual address space size
+CONFIG_ARM64_VA_BITS_48=y
+## end choice
+CONFIG_SCHED_MC=y
+CONFIG_SCHED_SMT=y
+CONFIG_NR_CPUS=256
+CONFIG_NUMA=y
+CONFIG_NODES_SHIFT=4
+CONFIG_SECCOMP=y
+CONFIG_KEXEC=y
+CONFIG_CRASH_DUMP=y
+CONFIG_XEN=y
+CONFIG_ARMV8_DEPRECATED=y
+CONFIG_SWP_EMULATION=y
+CONFIG_CP15_BARRIER_EMULATION=y
+CONFIG_SETEND_EMULATION=y
+CONFIG_ARM64_LSE_ATOMICS=y
+CONFIG_ARM64_PMEM=y
+CONFIG_RANDOMIZE_BASE=y
+CONFIG_RANDOMIZE_MODULE_REGION_FULL=y
+CONFIG_ARM64_ACPI_PARKING_PROTOCOL=y
+CONFIG_COMPAT=y
+
+##
+## file: arch/arm64/crypto/Kconfig
+##
+CONFIG_ARM64_CRYPTO=y
+CONFIG_CRYPTO_SHA1_ARM64_CE=m
+CONFIG_CRYPTO_SHA2_ARM64_CE=m
+CONFIG_CRYPTO_GHASH_ARM64_CE=m
+CONFIG_CRYPTO_CRC32_ARM64_CE=y
+CONFIG_CRYPTO_AES_ARM64_CE=m
+CONFIG_CRYPTO_AES_ARM64_CE_CCM=m
+CONFIG_CRYPTO_AES_ARM64_CE_BLK=m
+# CONFIG_CRYPTO_AES_ARM64_NEON_BLK is not set
+
+##
+## file: arch/arm64/kvm/Kconfig
+##
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=y
+
+##
+## file: arch/arm64/Kconfig.platforms
+##
+CONFIG_ARCH_SUNXI=y
+CONFIG_ARCH_BCM2835=y
+CONFIG_ARCH_HISI=y
+CONFIG_ARCH_MESON=y
+CONFIG_ARCH_MVEBU=y
+CONFIG_ARCH_QCOM=y
+CONFIG_ARCH_ROCKCHIP=y
+CONFIG_ARCH_SEATTLE=y
+CONFIG_ARCH_SYNQUACER=y
+CONFIG_ARCH_TEGRA=y
+CONFIG_ARCH_THUNDER=y
+CONFIG_ARCH_THUNDER2=y
+CONFIG_ARCH_VEXPRESS=y
+CONFIG_ARCH_XGENE=y
+CONFIG_ARCH_ZYNQMP=y
+
+##
+## file: drivers/acpi/Kconfig
+##
+CONFIG_ACPI=y
+CONFIG_ACPI_SPCR_TABLE=y
+CONFIG_ACPI_IPMI=m
+CONFIG_ACPI_NUMA=y
+CONFIG_ACPI_PCI_SLOT=y
+CONFIG_ACPI_HED=y
+CONFIG_ACPI_BGRT=y
+
+##
+## file: drivers/acpi/apei/Kconfig
+##
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_GHES=y
+CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_APEI_SEA=y
+CONFIG_ACPI_APEI_MEMORY_FAILURE=y
+CONFIG_ACPI_APEI_EINJ=m
+
+##
+## file: drivers/android/Kconfig
+##
+CONFIG_ANDROID=y
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_AHCI_CEVA=m
+CONFIG_AHCI_MVEBU=m
+CONFIG_AHCI_TEGRA=m
+CONFIG_AHCI_XGENE=m
+CONFIG_SATA_AHCI_SEATTLE=m
+
+##
+## file: drivers/base/Kconfig
+##
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=64
+
+##
+## file: drivers/bluetooth/Kconfig
+##
+CONFIG_BT_HCIUART=m
+CONFIG_BT_QCOMSMD=m
+
+##
+## file: drivers/bus/Kconfig
+##
+CONFIG_HISILICON_LPC=y
+CONFIG_QCOM_EBI2=y
+CONFIG_TEGRA_ACONNECT=y
+
+##
+## file: drivers/char/hw_random/Kconfig
+##
+CONFIG_HW_RANDOM_BCM2835=m
+# CONFIG_HW_RANDOM_OMAP is not set
+CONFIG_HW_RANDOM_HISI=m
+CONFIG_HW_RANDOM_XGENE=m
+CONFIG_HW_RANDOM_MESON=m
+CONFIG_HW_RANDOM_CAVIUM=m
+
+##
+## file: drivers/char/ipmi/Kconfig
+##
+CONFIG_IPMI_HANDLER=m
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SSIF=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+
+##
+## file: drivers/char/tpm/Kconfig
+##
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS_I2C_INFINEON=m
+
+##
+## file: drivers/clk/Kconfig
+##
+CONFIG_COMMON_CLK_RK808=y
+CONFIG_COMMON_CLK_HI655X=y
+CONFIG_COMMON_CLK_XGENE=y
+
+##
+## file: drivers/clk/hisilicon/Kconfig
+##
+CONFIG_STUB_CLK_HI6220=y
+
+##
+## file: drivers/clk/qcom/Kconfig
+##
+CONFIG_COMMON_CLK_QCOM=y
+CONFIG_QCOM_CLK_RPM=m
+CONFIG_QCOM_CLK_SMD_RPM=m
+CONFIG_MSM_GCC_8916=y
+CONFIG_MSM_GCC_8996=y
+CONFIG_MSM_MMCC_8996=y
+
+##
+## file: drivers/clk/sunxi-ng/Kconfig
+##
+CONFIG_SUN8I_DE2_CCU=y
+
+##
+## file: drivers/cpufreq/Kconfig
+##
+CONFIG_CPUFREQ_DT=m
+
+##
+## file: drivers/cpufreq/Kconfig.arm
+##
+CONFIG_ACPI_CPPC_CPUFREQ=m
+CONFIG_ARM_ARMADA_37XX_CPUFREQ=m
+
+##
+## file: drivers/cpuidle/Kconfig.arm
+##
+CONFIG_ARM_CPUIDLE=y
+
+##
+## file: drivers/crypto/Kconfig
+##
+CONFIG_CRYPTO_DEV_MARVELL_CESA=m
+CONFIG_CRYPTO_DEV_QCE=m
+CONFIG_CRYPTO_DEV_QCOM_RNG=m
+CONFIG_CRYPTO_DEV_SAFEXCEL=m
+
+##
+## file: drivers/crypto/cavium/cpt/Kconfig
+##
+CONFIG_CAVIUM_CPT=m
+
+##
+## file: drivers/crypto/cavium/nitrox/Kconfig
+##
+CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m
+
+##
+## file: drivers/devfreq/Kconfig
+##
+CONFIG_ARM_RK3399_DMC_DEVFREQ=m
+
+##
+## file: drivers/devfreq/event/Kconfig
+##
+CONFIG_PM_DEVFREQ_EVENT=y
+CONFIG_DEVFREQ_EVENT_ROCKCHIP_DFI=m
+
+##
+## file: drivers/dma/Kconfig
+##
+CONFIG_DMADEVICES=y
+CONFIG_DMA_BCM2835=y
+CONFIG_DMA_SUN6I=m
+CONFIG_K3_DMA=m
+CONFIG_MV_XOR=y
+CONFIG_MV_XOR_V2=y
+CONFIG_PL330_DMA=m
+CONFIG_TEGRA20_APB_DMA=y
+CONFIG_TEGRA210_ADMA=y
+CONFIG_XGENE_DMA=m
+
+##
+## file: drivers/dma/qcom/Kconfig
+##
+CONFIG_QCOM_BAM_DMA=m
+CONFIG_QCOM_HIDMA_MGMT=m
+CONFIG_QCOM_HIDMA=m
+
+##
+## file: drivers/edac/Kconfig
+##
+CONFIG_EDAC=y
+CONFIG_EDAC_THUNDERX=m
+CONFIG_EDAC_XGENE=m
+
+##
+## file: drivers/extcon/Kconfig
+##
+CONFIG_EXTCON=m
+CONFIG_EXTCON_QCOM_SPMI_MISC=m
+CONFIG_EXTCON_USB_GPIO=m
+CONFIG_EXTCON_USBC_CROS_EC=m
+
+##
+## file: drivers/firmware/Kconfig
+##
+CONFIG_RASPBERRYPI_FIRMWARE=y
+
+##
+## file: drivers/gpio/Kconfig
+##
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_MB86S7X=m
+CONFIG_GPIO_PL061=y
+CONFIG_GPIO_XGENE=y
+CONFIG_GPIO_XGENE_SB=m
+CONFIG_GPIO_XLP=y
+CONFIG_GPIO_ZYNQ=m
+CONFIG_GPIO_PCA953X=y
+CONFIG_GPIO_PCA953X_IRQ=y
+CONFIG_GPIO_MAX77620=y
+
+##
+## file: drivers/gpu/drm/Kconfig
+##
+CONFIG_DRM=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_AMDGPU=m
+
+##
+## file: drivers/gpu/drm/arm/Kconfig
+##
+CONFIG_DRM_HDLCD=m
+CONFIG_DRM_MALI_DISPLAY=m
+
+##
+## file: drivers/gpu/drm/ast/Kconfig
+##
+CONFIG_DRM_AST=m
+
+##
+## file: drivers/gpu/drm/bridge/adv7511/Kconfig
+##
+CONFIG_DRM_I2C_ADV7511=m
+CONFIG_DRM_I2C_ADV7511_AUDIO=y
+
+##
+## file: drivers/gpu/drm/hisilicon/hibmc/Kconfig
+##
+CONFIG_DRM_HISI_HIBMC=m
+
+##
+## file: drivers/gpu/drm/hisilicon/kirin/Kconfig
+##
+CONFIG_DRM_HISI_KIRIN=m
+
+##
+## file: drivers/gpu/drm/meson/Kconfig
+##
+CONFIG_DRM_MESON=m
+
+##
+## file: drivers/gpu/drm/msm/Kconfig
+##
+CONFIG_DRM_MSM=m
+CONFIG_DRM_MSM_DSI=y
+CONFIG_DRM_MSM_DSI_PLL=y
+CONFIG_DRM_MSM_DSI_28NM_PHY=y
+CONFIG_DRM_MSM_DSI_20NM_PHY=y
+
+##
+## file: drivers/gpu/drm/nouveau/Kconfig
+##
+CONFIG_NOUVEAU_PLATFORM_DRIVER=y
+
+##
+## file: drivers/gpu/drm/panel/Kconfig
+##
+CONFIG_DRM_PANEL_SIMPLE=m
+CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
+
+##
+## file: drivers/gpu/drm/rockchip/Kconfig
+##
+CONFIG_DRM_ROCKCHIP=m
+CONFIG_ROCKCHIP_ANALOGIX_DP=y
+CONFIG_ROCKCHIP_CDN_DP=y
+CONFIG_ROCKCHIP_DW_HDMI=y
+CONFIG_ROCKCHIP_DW_MIPI_DSI=y
+
+##
+## file: drivers/gpu/drm/sun4i/Kconfig
+##
+CONFIG_DRM_SUN4I=m
+CONFIG_DRM_SUN8I_DW_HDMI=m
+
+##
+## file: drivers/gpu/drm/tegra/Kconfig
+##
+CONFIG_DRM_TEGRA=m
+CONFIG_DRM_TEGRA_STAGING=y
+
+##
+## file: drivers/gpu/drm/vc4/Kconfig
+##
+CONFIG_DRM_VC4=m
+
+##
+## file: drivers/gpu/host1x/Kconfig
+##
+CONFIG_TEGRA_HOST1X=m
+
+##
+## file: drivers/hid/i2c-hid/Kconfig
+##
+CONFIG_I2C_HID=m
+
+##
+## file: drivers/hwmon/Kconfig
+##
+CONFIG_SENSORS_XGENE=m
+
+##
+## file: drivers/hwspinlock/Kconfig
+##
+CONFIG_HWSPINLOCK_QCOM=m
+
+##
+## file: drivers/i2c/Kconfig
+##
+CONFIG_I2C=y
+
+##
+## file: drivers/i2c/busses/Kconfig
+##
+CONFIG_I2C_BCM2835=m
+CONFIG_I2C_DESIGNWARE_PLATFORM=m
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_MESON=m
+CONFIG_I2C_MV64XXX=m
+CONFIG_I2C_PXA=m
+CONFIG_I2C_QUP=m
+CONFIG_I2C_RK3X=m
+CONFIG_I2C_TEGRA=m
+CONFIG_I2C_THUNDERX=m
+CONFIG_I2C_XLP9XX=m
+CONFIG_I2C_CROS_EC_TUNNEL=m
+CONFIG_I2C_XGENE_SLIMPRO=m
+
+##
+## file: drivers/iio/accel/Kconfig
+##
+CONFIG_IIO_CROS_EC_ACCEL_LEGACY=m
+
+##
+## file: drivers/iio/adc/Kconfig
+##
+CONFIG_AXP20X_ADC=m
+CONFIG_AXP288_ADC=m
+CONFIG_QCOM_SPMI_IADC=m
+CONFIG_QCOM_SPMI_VADC=m
+CONFIG_ROCKCHIP_SARADC=m
+
+##
+## file: drivers/iio/common/cros_ec_sensors/Kconfig
+##
+CONFIG_IIO_CROS_EC_SENSORS_CORE=m
+CONFIG_IIO_CROS_EC_SENSORS=m
+
+##
+## file: drivers/iio/humidity/Kconfig
+##
+CONFIG_DHT11=m
+
+##
+## file: drivers/iio/light/Kconfig
+##
+CONFIG_IIO_CROS_EC_LIGHT_PROX=m
+
+##
+## file: drivers/iio/pressure/Kconfig
+##
+CONFIG_IIO_CROS_EC_BARO=m
+
+##
+## file: drivers/infiniband/hw/hns/Kconfig
+##
+CONFIG_INFINIBAND_HNS=m
+CONFIG_INFINIBAND_HNS_HIP06=m
+CONFIG_INFINIBAND_HNS_HIP08=m
+
+##
+## file: drivers/input/keyboard/Kconfig
+##
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_TEGRA=m
+CONFIG_KEYBOARD_CROS_EC=m
+
+##
+## file: drivers/input/misc/Kconfig
+##
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_PM8941_PWRKEY=m
+CONFIG_INPUT_AXP20X_PEK=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_HISI_POWERKEY=m
+
+##
+## file: drivers/input/mouse/Kconfig
+##
+CONFIG_MOUSE_ELAN_I2C=m
+
+##
+## file: drivers/input/touchscreen/Kconfig
+##
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_ATMEL_MXT_T37=y
+CONFIG_TOUCHSCREEN_ELAN=m
+
+##
+## file: drivers/iommu/Kconfig
+##
+CONFIG_ROCKCHIP_IOMMU=y
+CONFIG_TEGRA_IOMMU_SMMU=y
+CONFIG_ARM_SMMU=y
+CONFIG_ARM_SMMU_V3=y
+CONFIG_QCOM_IOMMU=y
+
+##
+## file: drivers/irqchip/Kconfig
+##
+CONFIG_QCOM_IRQ_COMBINER=y
+
+##
+## file: drivers/leds/Kconfig
+##
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_PWM=m
+
+##
+## file: drivers/mailbox/Kconfig
+##
+CONFIG_MAILBOX=y
+CONFIG_BCM2835_MBOX=y
+CONFIG_HI6220_MBOX=y
+CONFIG_QCOM_APCS_IPC=m
+CONFIG_XGENE_SLIMPRO_MBOX=m
+
+##
+## file: drivers/media/platform/Kconfig
+##
+CONFIG_VIDEO_QCOM_VENUS=m
+
+##
+## file: drivers/memory/tegra/Kconfig
+##
+CONFIG_TEGRA_MC=y
+
+##
+## file: drivers/mfd/Kconfig
+##
+CONFIG_MFD_AXP20X_RSB=m
+CONFIG_MFD_CROS_EC=y
+CONFIG_MFD_CROS_EC_CHARDEV=m
+CONFIG_MFD_HI655X_PMIC=m
+CONFIG_MFD_MAX77620=y
+CONFIG_MFD_QCOM_RPM=m
+CONFIG_MFD_SPMI_PMIC=m
+CONFIG_MFD_RK808=m
+
+##
+## file: drivers/misc/Kconfig
+##
+CONFIG_QCOM_COINCELL=m
+
+##
+## file: drivers/misc/ti-st/Kconfig
+##
+CONFIG_TI_ST=m
+
+##
+## file: drivers/mmc/Kconfig
+##
+CONFIG_MMC=y
+
+##
+## file: drivers/mmc/host/Kconfig
+##
+CONFIG_MMC_ARMMMCI=m
+CONFIG_MMC_QCOM_DML=y
+CONFIG_MMC_SDHCI_ACPI=m
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDHCI_OF_ARASAN=m
+CONFIG_MMC_SDHCI_TEGRA=m
+CONFIG_MMC_SDHCI_F_SDH30=m
+CONFIG_MMC_SDHCI_IPROC=m
+CONFIG_MMC_MESON_GX=m
+CONFIG_MMC_SDHCI_MSM=m
+CONFIG_MMC_SPI=m
+CONFIG_MMC_CAVIUM_THUNDERX=m
+CONFIG_MMC_DW=m
+CONFIG_MMC_DW_K3=m
+CONFIG_MMC_DW_ROCKCHIP=m
+CONFIG_MMC_SUNXI=m
+CONFIG_MMC_BCM2835=m
+CONFIG_MMC_SDHCI_XENON=m
+
+##
+## file: drivers/mtd/spi-nor/Kconfig
+##
+CONFIG_SPI_HISI_SFC=m
+
+##
+## file: drivers/net/dsa/Kconfig
+##
+CONFIG_NET_DSA_MV88E6060=m
+
+##
+## file: drivers/net/dsa/mv88e6xxx/Kconfig
+##
+CONFIG_NET_DSA_MV88E6XXX=m
+
+##
+## file: drivers/net/ethernet/Kconfig
+##
+CONFIG_FEALNX=m
+
+##
+## file: drivers/net/ethernet/3com/Kconfig
+##
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+
+##
+## file: drivers/net/ethernet/8390/Kconfig
+##
+CONFIG_NET_VENDOR_8390=y
+CONFIG_NE2K_PCI=m
+
+##
+## file: drivers/net/ethernet/adaptec/Kconfig
+##
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_ADAPTEC_STARFIRE=m
+
+##
+## file: drivers/net/ethernet/amd/Kconfig
+##
+CONFIG_AMD_XGBE=m
+
+##
+## file: drivers/net/ethernet/apm/xgene/Kconfig
+##
+CONFIG_NET_XGENE=m
+
+##
+## file: drivers/net/ethernet/apm/xgene-v2/Kconfig
+##
+CONFIG_NET_XGENE_V2=m
+
+##
+## file: drivers/net/ethernet/cadence/Kconfig
+##
+CONFIG_NET_VENDOR_CADENCE=y
+CONFIG_MACB=m
+
+##
+## file: drivers/net/ethernet/cavium/Kconfig
+##
+CONFIG_NET_VENDOR_CAVIUM=y
+CONFIG_THUNDER_NIC_PF=m
+CONFIG_THUNDER_NIC_VF=m
+CONFIG_THUNDER_NIC_BGX=m
+CONFIG_THUNDER_NIC_RGX=m
+
+##
+## file: drivers/net/ethernet/dec/tulip/Kconfig
+##
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+
+##
+## file: drivers/net/ethernet/dlink/Kconfig
+##
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+
+##
+## file: drivers/net/ethernet/hisilicon/Kconfig
+##
+CONFIG_NET_VENDOR_HISILICON=y
+CONFIG_HIX5HD2_GMAC=m
+CONFIG_HISI_FEMAC=m
+CONFIG_HIP04_ETH=m
+CONFIG_HNS=m
+CONFIG_HNS_DSAF=m
+CONFIG_HNS_ENET=m
+CONFIG_HNS3=m
+CONFIG_HNS3_HCLGE=m
+CONFIG_HNS3_DCB=y
+CONFIG_HNS3_HCLGEVF=m
+CONFIG_HNS3_ENET=m
+
+##
+## file: drivers/net/ethernet/intel/Kconfig
+##
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_E100=m
+
+##
+## file: drivers/net/ethernet/marvell/Kconfig
+##
+CONFIG_MVNETA=m
+CONFIG_MVPP2=m
+
+##
+## file: drivers/net/ethernet/natsemi/Kconfig
+##
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NATSEMI=m
+
+##
+## file: drivers/net/ethernet/qualcomm/Kconfig
+##
+CONFIG_QCOM_EMAC=m
+
+##
+## file: drivers/net/ethernet/realtek/Kconfig
+##
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+
+##
+## file: drivers/net/ethernet/smsc/Kconfig
+##
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_SMC91X=m
+CONFIG_EPIC100=m
+CONFIG_SMSC911X=m
+
+##
+## file: drivers/net/ethernet/socionext/Kconfig
+##
+CONFIG_SNI_NETSEC=m
+
+##
+## file: drivers/net/ethernet/stmicro/stmmac/Kconfig
+##
+CONFIG_STMMAC_ETH=m
+CONFIG_STMMAC_PLATFORM=m
+CONFIG_DWMAC_GENERIC=m
+CONFIG_DWMAC_IPQ806X=m
+CONFIG_DWMAC_MESON=m
+CONFIG_DWMAC_ROCKCHIP=m
+
+##
+## file: drivers/net/fddi/Kconfig
+##
+CONFIG_FDDI=y
+CONFIG_SKFP=m
+
+##
+## file: drivers/net/phy/Kconfig
+##
+CONFIG_MDIO_BUS_MUX_MMIOREG=m
+CONFIG_MDIO_HISI_FEMAC=m
+CONFIG_MDIO_THUNDER=m
+CONFIG_MDIO_XGENE=m
+CONFIG_AT803X_PHY=m
+CONFIG_MARVELL_PHY=m
+CONFIG_MARVELL_10G_PHY=m
+CONFIG_MESON_GXL_PHY=m
+
+##
+## file: drivers/net/wireless/ath/wcn36xx/Kconfig
+##
+CONFIG_WCN36XX=m
+
+##
+## file: drivers/net/wireless/broadcom/brcm80211/Kconfig
+##
+CONFIG_BRCMFMAC_SDIO=y
+
+##
+## file: drivers/net/wireless/marvell/mwifiex/Kconfig
+##
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_PCIE=m
+
+##
+## file: drivers/net/wireless/ti/Kconfig
+##
+CONFIG_WLAN_VENDOR_TI=y
+CONFIG_WILINK_PLATFORM_DATA=y
+
+##
+## file: drivers/net/wireless/ti/wl1251/Kconfig
+##
+CONFIG_WL1251=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL1251_SDIO=m
+
+##
+## file: drivers/net/wireless/ti/wl12xx/Kconfig
+##
+CONFIG_WL12XX=m
+
+##
+## file: drivers/net/wireless/ti/wl18xx/Kconfig
+##
+CONFIG_WL18XX=m
+
+##
+## file: drivers/net/wireless/ti/wlcore/Kconfig
+##
+CONFIG_WLCORE=m
+CONFIG_WLCORE_SPI=m
+CONFIG_WLCORE_SDIO=m
+
+##
+## file: drivers/nvmem/Kconfig
+##
+CONFIG_QCOM_QFPROM=m
+CONFIG_ROCKCHIP_EFUSE=m
+CONFIG_NVMEM_SUNXI_SID=m
+CONFIG_MESON_EFUSE=m
+
+##
+## file: drivers/pci/Kconfig
+##
+CONFIG_PCI_PRI=y
+CONFIG_PCI_PASID=y
+
+##
+## file: drivers/pci/controller/Kconfig
+##
+CONFIG_PCI_AARDVARK=y
+CONFIG_PCIE_XILINX_NWL=y
+CONFIG_PCI_TEGRA=y
+CONFIG_PCI_HOST_GENERIC=y
+CONFIG_PCI_XGENE=y
+CONFIG_PCI_HOST_THUNDER_PEM=y
+CONFIG_PCI_HOST_THUNDER_ECAM=y
+CONFIG_PCIE_ROCKCHIP_HOST=y
+
+##
+## file: drivers/pci/controller/dwc/Kconfig
+##
+CONFIG_PCI_HISI=y
+CONFIG_PCIE_QCOM=y
+CONFIG_PCIE_ARMADA_8K=y
+CONFIG_PCIE_KIRIN=y
+
+##
+## file: drivers/pci/hotplug/Kconfig
+##
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_ACPI=y
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
+CONFIG_HOTPLUG_PCI_SHPC=y
+
+##
+## file: drivers/pci/pcie/Kconfig
+##
+CONFIG_HOTPLUG_PCI_PCIE=y
+
+##
+## file: drivers/perf/Kconfig
+##
+CONFIG_ARM_CCI_PMU=y
+CONFIG_ARM_CCI400_PMU=y
+CONFIG_ARM_CCI5xx_PMU=y
+CONFIG_ARM_CCN=y
+CONFIG_HISI_PMU=y
+CONFIG_QCOM_L2_PMU=y
+CONFIG_QCOM_L3_PMU=y
+CONFIG_XGENE_PMU=y
+
+##
+## file: drivers/phy/Kconfig
+##
+CONFIG_PHY_XGENE=m
+
+##
+## file: drivers/phy/allwinner/Kconfig
+##
+CONFIG_PHY_SUN4I_USB=m
+
+##
+## file: drivers/phy/amlogic/Kconfig
+##
+CONFIG_PHY_MESON8B_USB2=m
+
+##
+## file: drivers/phy/hisilicon/Kconfig
+##
+CONFIG_PHY_HI6220_USB=m
+
+##
+## file: drivers/phy/marvell/Kconfig
+##
+CONFIG_PHY_MVEBU_CP110_COMPHY=m
+
+##
+## file: drivers/phy/qualcomm/Kconfig
+##
+CONFIG_PHY_QCOM_APQ8064_SATA=m
+CONFIG_PHY_QCOM_IPQ806X_SATA=m
+CONFIG_PHY_QCOM_QMP=m
+CONFIG_PHY_QCOM_QUSB2=m
+CONFIG_PHY_QCOM_UFS=m
+CONFIG_PHY_QCOM_USB_HS=m
+CONFIG_PHY_QCOM_USB_HSIC=m
+
+##
+## file: drivers/phy/rockchip/Kconfig
+##
+CONFIG_PHY_ROCKCHIP_DP=m
+CONFIG_PHY_ROCKCHIP_EMMC=m
+CONFIG_PHY_ROCKCHIP_INNO_USB2=m
+CONFIG_PHY_ROCKCHIP_PCIE=m
+CONFIG_PHY_ROCKCHIP_TYPEC=m
+CONFIG_PHY_ROCKCHIP_USB=m
+
+##
+## file: drivers/phy/tegra/Kconfig
+##
+CONFIG_PHY_TEGRA_XUSB=m
+
+##
+## file: drivers/pinctrl/Kconfig
+##
+CONFIG_PINCTRL_AXP209=m
+CONFIG_PINCTRL_AMD=y
+CONFIG_PINCTRL_SINGLE=y
+CONFIG_PINCTRL_MAX77620=y
+
+##
+## file: drivers/pinctrl/qcom/Kconfig
+##
+CONFIG_PINCTRL_MSM8916=y
+CONFIG_PINCTRL_MSM8996=y
+CONFIG_PINCTRL_QCOM_SPMI_PMIC=y
+CONFIG_PINCTRL_QCOM_SSBI_PMIC=y
+
+##
+## file: drivers/platform/chrome/Kconfig
+##
+CONFIG_CHROME_PLATFORMS=y
+CONFIG_CROS_EC_I2C=m
+CONFIG_CROS_EC_SPI=m
+CONFIG_CROS_KBD_LED_BACKLIGHT=m
+
+##
+## file: drivers/power/avs/Kconfig
+##
+CONFIG_POWER_AVS=y
+CONFIG_ROCKCHIP_IODOMAIN=m
+
+##
+## file: drivers/power/reset/Kconfig
+##
+CONFIG_POWER_RESET_HISI=y
+CONFIG_POWER_RESET_MSM=y
+CONFIG_POWER_RESET_VEXPRESS=y
+CONFIG_POWER_RESET_XGENE=y
+CONFIG_POWER_RESET_SYSCON=y
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
+
+##
+## file: drivers/power/supply/Kconfig
+##
+CONFIG_BATTERY_SBS=m
+CONFIG_BATTERY_BQ27XXX=m
+CONFIG_CHARGER_AXP20X=m
+CONFIG_BATTERY_AXP20X=m
+CONFIG_AXP20X_POWER=m
+CONFIG_AXP288_FUEL_GAUGE=m
+CONFIG_CHARGER_QCOM_SMBB=m
+CONFIG_CHARGER_CROS_USBPD=m
+
+##
+## file: drivers/pwm/Kconfig
+##
+CONFIG_PWM=y
+CONFIG_PWM_BCM2835=m
+CONFIG_PWM_CROS_EC=m
+CONFIG_PWM_MESON=m
+CONFIG_PWM_ROCKCHIP=m
+CONFIG_PWM_SUN4I=m
+CONFIG_PWM_TEGRA=m
+
+##
+## file: drivers/regulator/Kconfig
+##
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
+CONFIG_REGULATOR_AXP20X=m
+CONFIG_REGULATOR_FAN53555=m
+CONFIG_REGULATOR_GPIO=m
+CONFIG_REGULATOR_HI655X=m
+CONFIG_REGULATOR_MAX77620=m
+CONFIG_REGULATOR_PWM=m
+CONFIG_REGULATOR_QCOM_RPM=m
+CONFIG_REGULATOR_QCOM_SMD_RPM=m
+CONFIG_REGULATOR_QCOM_SPMI=m
+CONFIG_REGULATOR_RK808=m
+CONFIG_REGULATOR_VCTRL=m
+
+##
+## file: drivers/remoteproc/Kconfig
+##
+CONFIG_QCOM_Q6V5_PIL=m
+#. We want to enable this but it currently results in a dependency loop!
+# CONFIG_QCOM_WCNSS_PIL is not set
+
+##
+## file: drivers/reset/Kconfig
+##
+CONFIG_RESET_CONTROLLER=y
+
+##
+## file: drivers/rpmsg/Kconfig
+##
+CONFIG_RPMSG_QCOM_GLINK_RPM=m
+CONFIG_RPMSG_QCOM_GLINK_SMEM=m
+CONFIG_RPMSG_QCOM_SMD=m
+
+##
+## file: drivers/rtc/Kconfig
+##
+CONFIG_RTC_DRV_DS1307=y
+CONFIG_RTC_DRV_MAX77686=y
+CONFIG_RTC_DRV_RK808=y
+CONFIG_RTC_DRV_PCF85063=y
+CONFIG_RTC_DRV_PCF8563=y
+CONFIG_RTC_DRV_EFI=y
+CONFIG_RTC_DRV_CROS_EC=m
+CONFIG_RTC_DRV_PL031=y
+CONFIG_RTC_DRV_SUN6I=y
+CONFIG_RTC_DRV_MV=m
+CONFIG_RTC_DRV_ARMADA38X=m
+CONFIG_RTC_DRV_PM8XXX=m
+CONFIG_RTC_DRV_TEGRA=y
+CONFIG_RTC_DRV_XGENE=y
+
+##
+## file: drivers/scsi/Kconfig
+##
+CONFIG_SCSI_DMX3191D=m
+
+##
+## file: drivers/scsi/hisi_sas/Kconfig
+##
+CONFIG_SCSI_HISI_SAS=m
+CONFIG_SCSI_HISI_SAS_PCI=m
+
+##
+## file: drivers/soc/bcm/Kconfig
+##
+CONFIG_RASPBERRYPI_POWER=y
+
+##
+## file: drivers/soc/qcom/Kconfig
+##
+CONFIG_QCOM_GSBI=m
+CONFIG_QCOM_SMEM=m
+CONFIG_QCOM_SMD_RPM=m
+CONFIG_QCOM_SMP2P=m
+CONFIG_QCOM_SMSM=m
+CONFIG_QCOM_WCNSS_CTRL=m
+
+##
+## file: drivers/soc/rockchip/Kconfig
+##
+CONFIG_ROCKCHIP_PM_DOMAINS=y
+
+##
+## file: drivers/soc/tegra/Kconfig
+##
+CONFIG_ARCH_TEGRA_132_SOC=y
+CONFIG_ARCH_TEGRA_210_SOC=y
+
+##
+## file: drivers/spi/Kconfig
+##
+CONFIG_SPI_ARMADA_3700=m
+CONFIG_SPI_BCM2835=m
+CONFIG_SPI_BCM2835AUX=m
+CONFIG_SPI_MESON_SPIFC=m
+CONFIG_SPI_ROCKCHIP=m
+CONFIG_SPI_QUP=m
+CONFIG_SPI_TEGRA114=m
+CONFIG_SPI_TEGRA20_SFLASH=m
+CONFIG_SPI_TEGRA20_SLINK=m
+CONFIG_SPI_THUNDERX=m
+CONFIG_SPI_XLP=m
+
+##
+## file: drivers/spmi/Kconfig
+##
+CONFIG_SPMI=y
+CONFIG_SPMI_MSM_PMIC_ARB=y
+
+##
+## file: drivers/staging/rtl8723bs/Kconfig
+##
+CONFIG_RTL8723BS=m
+
+##
+## file: drivers/staging/vc04_services/bcm2835-audio/Kconfig
+##
+CONFIG_SND_BCM2835=m
+
+##
+## file: drivers/tee/Kconfig
+##
+CONFIG_TEE=m
+
+##
+## file: drivers/tee/optee/Kconfig
+##
+CONFIG_OPTEE=m
+
+##
+## file: drivers/thermal/Kconfig
+##
+CONFIG_THERMAL=y
+CONFIG_CPU_THERMAL=y
+CONFIG_HISI_THERMAL=m
+CONFIG_ROCKCHIP_THERMAL=m
+CONFIG_ARMADA_THERMAL=m
+CONFIG_QCOM_SPMI_TEMP_ALARM=m
+
+##
+## file: drivers/thermal/broadcom/Kconfig
+##
+CONFIG_BCM2835_THERMAL=m
+
+##
+## file: drivers/thermal/qcom/Kconfig
+##
+CONFIG_QCOM_TSENS=m
+
+##
+## file: drivers/thermal/tegra/Kconfig
+##
+CONFIG_TEGRA_SOCTHERM=y
+
+##
+## file: drivers/tty/serdev/Kconfig
+##
+CONFIG_SERIAL_DEV_BUS=m
+
+##
+## file: drivers/tty/serial/Kconfig
+##
+CONFIG_SERIAL_AMBA_PL010=y
+CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_SERIAL_MESON=y
+CONFIG_SERIAL_MESON_CONSOLE=y
+CONFIG_SERIAL_TEGRA=y
+CONFIG_SERIAL_MSM=y
+CONFIG_SERIAL_MSM_CONSOLE=y
+CONFIG_SERIAL_XILINX_PS_UART=y
+CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
+CONFIG_SERIAL_MVEBU_UART=y
+CONFIG_SERIAL_MVEBU_CONSOLE=y
+
+##
+## file: drivers/tty/serial/8250/Kconfig
+##
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_DMA=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_BCM2835AUX=y
+CONFIG_SERIAL_8250_DW=y
+# CONFIG_SERIAL_8250_EM is not set
+CONFIG_SERIAL_OF_PLATFORM=y
+
+##
+## file: drivers/usb/chipidea/Kconfig
+##
+CONFIG_USB_CHIPIDEA=m
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+
+##
+## file: drivers/usb/dwc2/Kconfig
+##
+CONFIG_USB_DWC2=m
+## choice: DWC2 Mode Selection
+CONFIG_USB_DWC2_DUAL_ROLE=y
+## end choice
+
+##
+## file: drivers/usb/dwc3/Kconfig
+##
+CONFIG_USB_DWC3=m
+CONFIG_USB_DWC3_ULPI=y
+## choice: DWC3 Mode Selection
+CONFIG_USB_DWC3_DUAL_ROLE=y
+## end choice
+
+##
+## file: drivers/usb/gadget/Kconfig
+##
+CONFIG_USB_GADGET=m
+
+##
+## file: drivers/usb/host/Kconfig
+##
+CONFIG_USB_XHCI_HCD=m
+CONFIG_USB_XHCI_PLATFORM=m
+CONFIG_USB_XHCI_TEGRA=m
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_TEGRA=m
+CONFIG_USB_EHCI_HCD_PLATFORM=m
+CONFIG_USB_OHCI_HCD=m
+CONFIG_USB_OHCI_HCD_PLATFORM=m
+
+##
+## file: drivers/usb/isp1760/Kconfig
+##
+CONFIG_USB_ISP1760=m
+## choice: ISP1760 Mode Selection
+# CONFIG_USB_ISP1760_HOST_ROLE is not set
+# CONFIG_USB_ISP1760_GADGET_ROLE is not set
+CONFIG_USB_ISP1760_DUAL_ROLE=y
+## end choice
+
+##
+## file: drivers/usb/misc/Kconfig
+##
+CONFIG_USB_HSIC_USB3503=m
+
+##
+## file: drivers/usb/musb/Kconfig
+##
+CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_MUSB_SUNXI=m
+
+##
+## file: drivers/usb/phy/Kconfig
+##
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_USB_ULPI=y
+
+##
+## file: drivers/vfio/Kconfig
+##
+CONFIG_VFIO=m
+CONFIG_VFIO_NOIOMMU=y
+
+##
+## file: drivers/vfio/pci/Kconfig
+##
+CONFIG_VFIO_PCI=m
+
+##
+## file: drivers/video/backlight/Kconfig
+##
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_PWM=m
+CONFIG_BACKLIGHT_LP855X=m
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+CONFIG_FB_ARMCLCD=y
+CONFIG_FB_EFI=y
+CONFIG_FB_SIMPLE=y
+
+##
+## file: drivers/virtio/Kconfig
+##
+CONFIG_VIRTIO_MMIO=m
+
+##
+## file: drivers/watchdog/Kconfig
+##
+CONFIG_GPIO_WATCHDOG=m
+CONFIG_WDAT_WDT=m
+CONFIG_ARM_SP805_WATCHDOG=m
+CONFIG_ARM_SBSA_WATCHDOG=m
+CONFIG_DW_WATCHDOG=m
+CONFIG_SUNXI_WATCHDOG=m
+CONFIG_TEGRA_WATCHDOG=m
+CONFIG_QCOM_WDT=m
+CONFIG_MESON_GXBB_WATCHDOG=m
+CONFIG_MESON_WATCHDOG=m
+CONFIG_BCM2835_WDT=m
+
+##
+## file: mm/Kconfig
+##
+CONFIG_CMA=y
+
+##
+## file: net/bluetooth/Kconfig
+##
+CONFIG_BT_LEDS=y
+
+##
+## file: net/dsa/Kconfig
+##
+CONFIG_NET_DSA=m
+
+##
+## file: sound/pci/hda/Kconfig
+##
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_TEGRA=m
+
+##
+## file: sound/soc/Kconfig
+##
+CONFIG_SND_SOC=m
+
+##
+## file: sound/soc/bcm/Kconfig
+##
+CONFIG_SND_BCM2835_SOC_I2S=m
+
+##
+## file: sound/soc/hisilicon/Kconfig
+##
+CONFIG_SND_I2S_HI6210_I2S=m
+
+##
+## file: sound/soc/qcom/Kconfig
+##
+CONFIG_SND_SOC_QCOM=m
+CONFIG_SND_SOC_APQ8016_SBC=m
+
+##
+## file: sound/soc/rockchip/Kconfig
+##
+CONFIG_SND_SOC_ROCKCHIP=m
+CONFIG_SND_SOC_ROCKCHIP_I2S=m
+CONFIG_SND_SOC_ROCKCHIP_SPDIF=m
+CONFIG_SND_SOC_ROCKCHIP_RT5645=m
+CONFIG_SND_SOC_RK3399_GRU_SOUND=m
+
+##
+## file: sound/soc/tegra/Kconfig
+##
+CONFIG_SND_SOC_TEGRA=m
+CONFIG_SND_SOC_TEGRA_RT5640=m
+CONFIG_SND_SOC_TEGRA_WM8753=m
+CONFIG_SND_SOC_TEGRA_WM8903=m
+CONFIG_SND_SOC_TEGRA_TRIMSLICE=m
+CONFIG_SND_SOC_TEGRA_ALC5632=m
+CONFIG_SND_SOC_TEGRA_MAX98090=m
+CONFIG_SND_SOC_TEGRA_RT5677=m
+
diff --git a/debian/config/arm64/defines b/debian/config/arm64/defines
new file mode 100644
index 000000000..bfbbc4f7e
--- /dev/null
+++ b/debian/config/arm64/defines
@@ -0,0 +1,20 @@
+[base]
+kernel-arch: arm64
+featuresets:
+ none
+ rt
+
+[build]
+debug-info: true
+image-file: arch/arm64/boot/Image
+signed-code: true
+vdso: true
+
+[image]
+install-stem: vmlinuz
+breaks: libmozjs185-1.0, libmozjs-24-0 (<< 24.2.0-5.1~)
+
+[arm64_description]
+hardware: 64-bit ARMv8 machines
+
+[arm64_image]
diff --git a/debian/config/arm64/none/defines b/debian/config/arm64/none/defines
new file mode 100644
index 000000000..fdea40cbc
--- /dev/null
+++ b/debian/config/arm64/none/defines
@@ -0,0 +1,3 @@
+[base]
+flavours:
+ arm64
diff --git a/debian/config/arm64/rt/defines b/debian/config/arm64/rt/defines
new file mode 100644
index 000000000..fdea40cbc
--- /dev/null
+++ b/debian/config/arm64/rt/defines
@@ -0,0 +1,3 @@
+[base]
+flavours:
+ arm64
diff --git a/debian/config/arm64ilp32/defines b/debian/config/arm64ilp32/defines
new file mode 100644
index 000000000..999d4166e
--- /dev/null
+++ b/debian/config/arm64ilp32/defines
@@ -0,0 +1,5 @@
+[base]
+kernel-arch: arm64
+featuresets:
+# empty; arm64ilp32 must be part of a multiarch installation with an arm64
+# kernel
diff --git a/debian/config/armel/config b/debian/config/armel/config
new file mode 100644
index 000000000..ef0b4db29
--- /dev/null
+++ b/debian/config/armel/config
@@ -0,0 +1,10 @@
+##
+## file: security/selinux/Kconfig
+##
+# CONFIG_SECURITY_SELINUX is not set
+
+##
+## file: security/tomoyo/Kconfig
+##
+# CONFIG_SECURITY_TOMOYO is not set
+
diff --git a/debian/config/armel/config.marvell b/debian/config/armel/config.marvell
new file mode 100644
index 000000000..744271f56
--- /dev/null
+++ b/debian/config/armel/config.marvell
@@ -0,0 +1,883 @@
+##
+## file: arch/Kconfig
+##
+# CONFIG_KPROBES is not set
+# CONFIG_STACKPROTECTOR_STRONG is not set
+# CONFIG_STRICT_KERNEL_RWX is not set
+# CONFIG_STRICT_MODULE_RWX is not set
+
+##
+## file: arch/arm/Kconfig
+##
+CONFIG_ARCH_MULTI_V5=y
+# CONFIG_ARCH_MULTI_V7 is not set
+CONFIG_PCI=y
+CONFIG_HIGHMEM=y
+CONFIG_UACCESS_WITH_MEMCPY=y
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_ARM_APPENDED_DTB=y
+CONFIG_ARM_ATAG_DTB_COMPAT=y
+CONFIG_CMDLINE=""
+# CONFIG_XIP_KERNEL is not set
+CONFIG_ATAGS_PROC=y
+# CONFIG_CRASH_DUMP is not set
+CONFIG_VFP=y
+
+##
+## file: arch/arm/Kconfig.debug
+##
+## choice: Kernel low-level debugging port
+# CONFIG_DEBUG_ICEDCC is not set
+CONFIG_DEBUG_LL_UART_8250=y
+## end choice
+#. Kirkwood (with new boot loader) and Orion both have an 8250 at
+#. physical address 0xf1012000.
+CONFIG_DEBUG_UART_PHYS=0xf1012000
+#. MVEBU is flexible about the virtual address (relying on
+#. debug_ll_io_init()) but Orion maps the 8250 as part of a larger
+#. block of registers. So use the VA that Orion requires.
+CONFIG_DEBUG_UART_VIRT=0xfe012000
+
+##
+## file: arch/arm/mach-imx/Kconfig
+##
+# CONFIG_ARCH_MXC is not set
+
+##
+## file: arch/arm/mach-mvebu/Kconfig
+##
+CONFIG_ARCH_MVEBU=y
+CONFIG_MACH_KIRKWOOD=y
+
+##
+## file: arch/arm/mach-orion5x/Kconfig
+##
+CONFIG_ARCH_ORION5X=y
+CONFIG_MACH_DB88F5281=y
+CONFIG_MACH_RD88F5182=y
+CONFIG_MACH_RD88F5182_DT=y
+CONFIG_MACH_KUROBOX_PRO=y
+#. Only 1.5 MB flash available for kernel
+# CONFIG_MACH_DNS323 is not set
+CONFIG_MACH_TS209=y
+CONFIG_MACH_TERASTATION_PRO2=y
+CONFIG_MACH_LINKSTATION_PRO=y
+CONFIG_MACH_LINKSTATION_MINI=y
+CONFIG_MACH_LINKSTATION_LS_HGL=y
+CONFIG_MACH_TS409=y
+CONFIG_MACH_WRT350N_V2=y
+CONFIG_MACH_TS78XX=y
+CONFIG_MACH_MV2120=y
+CONFIG_MACH_NET2BIG=y
+CONFIG_MACH_MSS2_DT=y
+CONFIG_MACH_WNR854T=y
+CONFIG_MACH_RD88F5181L_GE=y
+CONFIG_MACH_RD88F5181L_FXO=y
+CONFIG_MACH_RD88F6183AP_GE=y
+
+##
+## file: arch/arm/mm/Kconfig
+##
+CONFIG_CPU_FEROCEON_OLD_ID=y
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
+
+##
+## file: block/Kconfig
+##
+# CONFIG_BLK_DEV_ZONED is not set
+# CONFIG_BLK_SED_OPAL is not set
+
+##
+## file: block/Kconfig.iosched
+##
+CONFIG_IOSCHED_DEADLINE=m
+CONFIG_MQ_IOSCHED_DEADLINE=m
+
+##
+## file: block/partitions/Kconfig
+##
+CONFIG_ACORN_PARTITION=y
+# CONFIG_ACORN_PARTITION_CUMANA is not set
+# CONFIG_ACORN_PARTITION_EESOX is not set
+CONFIG_ACORN_PARTITION_ICS=y
+# CONFIG_ACORN_PARTITION_ADFS is not set
+# CONFIG_ACORN_PARTITION_POWERTEC is not set
+CONFIG_ACORN_PARTITION_RISCIX=y
+CONFIG_OSF_PARTITION=y
+CONFIG_AMIGA_PARTITION=y
+CONFIG_ATARI_PARTITION=y
+CONFIG_MAC_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+CONFIG_SGI_PARTITION=y
+CONFIG_ULTRIX_PARTITION=y
+CONFIG_SUN_PARTITION=y
+
+##
+## file: crypto/Kconfig
+##
+# CONFIG_CRYPTO_FIPS is not set
+#. Saves about 95K
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_SHA256=m
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_ATA=m
+CONFIG_SATA_AHCI=m
+# CONFIG_SATA_SIL24 is not set
+CONFIG_ATA_SFF=y
+# CONFIG_PDC_ADMA is not set
+# CONFIG_SATA_QSTOR is not set
+# CONFIG_SATA_SX4 is not set
+# CONFIG_ATA_PIIX is not set
+CONFIG_SATA_MV=m
+# CONFIG_SATA_NV is not set
+# CONFIG_SATA_PROMISE is not set
+# CONFIG_SATA_SIL is not set
+# CONFIG_SATA_SIS is not set
+# CONFIG_SATA_SVW is not set
+# CONFIG_SATA_ULI is not set
+# CONFIG_SATA_VIA is not set
+# CONFIG_SATA_VITESSE is not set
+# CONFIG_PATA_ALI is not set
+# CONFIG_PATA_AMD is not set
+# CONFIG_PATA_ARTOP is not set
+# CONFIG_PATA_ATIIXP is not set
+# CONFIG_PATA_CMD64X is not set
+# CONFIG_PATA_CS5520 is not set
+# CONFIG_PATA_CYPRESS is not set
+# CONFIG_PATA_EFAR is not set
+# CONFIG_PATA_HPT366 is not set
+# CONFIG_PATA_HPT37X is not set
+# CONFIG_PATA_HPT3X2N is not set
+# CONFIG_PATA_HPT3X3 is not set
+# CONFIG_PATA_IT8213 is not set
+# CONFIG_PATA_IT821X is not set
+# CONFIG_PATA_JMICRON is not set
+# CONFIG_PATA_MARVELL is not set
+# CONFIG_PATA_NETCELL is not set
+# CONFIG_PATA_NINJA32 is not set
+# CONFIG_PATA_NS87415 is not set
+# CONFIG_PATA_OLDPIIX is not set
+# CONFIG_PATA_OPTIDMA is not set
+# CONFIG_PATA_PDC2027X is not set
+# CONFIG_PATA_PDC_OLD is not set
+# CONFIG_PATA_RADISYS is not set
+# CONFIG_PATA_SC1200 is not set
+# CONFIG_PATA_SCH is not set
+# CONFIG_PATA_SERVERWORKS is not set
+# CONFIG_PATA_SIL680 is not set
+# CONFIG_PATA_SIS is not set
+# CONFIG_PATA_TRIFLEX is not set
+# CONFIG_PATA_VIA is not set
+# CONFIG_PATA_WINBOND is not set
+# CONFIG_PATA_CMD640_PCI is not set
+# CONFIG_PATA_MPIIX is not set
+# CONFIG_PATA_NS87410 is not set
+# CONFIG_PATA_OPTI is not set
+# CONFIG_PATA_RZ1000 is not set
+# CONFIG_ATA_GENERIC is not set
+
+##
+## file: drivers/base/firmware_loader/Kconfig
+##
+CONFIG_FW_LOADER=m
+
+##
+## file: drivers/bluetooth/Kconfig
+##
+# CONFIG_BT_HCIUART is not set
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIVHCI=m
+
+##
+## file: drivers/char/hw_random/Kconfig
+##
+# CONFIG_HW_RANDOM is not set
+
+##
+## file: drivers/connector/Kconfig
+##
+CONFIG_CONNECTOR=m
+
+##
+## file: drivers/cpuidle/Kconfig
+##
+CONFIG_CPU_IDLE=y
+
+##
+## file: drivers/cpuidle/Kconfig.arm
+##
+CONFIG_ARM_KIRKWOOD_CPUIDLE=y
+
+##
+## file: drivers/crypto/Kconfig
+##
+CONFIG_CRYPTO_DEV_MARVELL_CESA=m
+
+##
+## file: drivers/dma/Kconfig
+##
+CONFIG_DMADEVICES=y
+CONFIG_MV_XOR=y
+
+##
+## file: drivers/gpu/drm/Kconfig
+##
+# CONFIG_DRM is not set
+
+##
+## file: drivers/gpu/vga/Kconfig
+##
+# CONFIG_VGA_ARB is not set
+
+##
+## file: drivers/hwmon/Kconfig
+##
+CONFIG_HWMON=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_G762=m
+CONFIG_SENSORS_GPIO_FAN=m
+CONFIG_SENSORS_LM75=m
+
+##
+## file: drivers/i2c/Kconfig
+##
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+
+##
+## file: drivers/i2c/busses/Kconfig
+##
+CONFIG_I2C_MV64XXX=y
+
+##
+## file: drivers/input/Kconfig
+##
+CONFIG_INPUT_MOUSEDEV=m
+
+##
+## file: drivers/input/gameport/Kconfig
+##
+CONFIG_GAMEPORT=m
+
+##
+## file: drivers/input/joystick/Kconfig
+##
+CONFIG_INPUT_JOYSTICK=y
+
+##
+## file: drivers/input/keyboard/Kconfig
+##
+# CONFIG_KEYBOARD_ATKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+
+##
+## file: drivers/input/serio/Kconfig
+##
+CONFIG_SERIO=m
+CONFIG_SERIO_SERPORT=m
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=m
+# CONFIG_SERIO_RAW is not set
+
+##
+## file: drivers/input/touchscreen/Kconfig
+##
+CONFIG_INPUT_TOUCHSCREEN=y
+
+##
+## file: drivers/isdn/Kconfig
+##
+CONFIG_ISDN=y
+CONFIG_ISDN_CAPI=m
+
+##
+## file: drivers/isdn/capi/Kconfig
+##
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPIDRV=m
+
+##
+## file: drivers/isdn/hardware/avm/Kconfig
+##
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+
+##
+## file: drivers/isdn/hardware/eicon/Kconfig
+##
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+
+##
+## file: drivers/leds/Kconfig
+##
+CONFIG_LEDS_NS2=m
+CONFIG_LEDS_NETXBIG=m
+
+##
+## file: drivers/leds/trigger/Kconfig
+##
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+
+##
+## file: drivers/md/Kconfig
+##
+# CONFIG_DM_INTEGRITY is not set
+
+##
+## file: drivers/mmc/Kconfig
+##
+CONFIG_MMC=m
+
+##
+## file: drivers/mmc/core/Kconfig
+##
+CONFIG_MMC_BLOCK=m
+
+##
+## file: drivers/mmc/host/Kconfig
+##
+CONFIG_MMC_MVSDIO=m
+
+##
+## file: drivers/mtd/Kconfig
+##
+CONFIG_MTD=m
+# CONFIG_MTD_REDBOOT_PARTS is not set
+CONFIG_MTD_CMDLINE_PARTS=m
+# CONFIG_MTD_AFS_PARTS is not set
+CONFIG_MTD_OF_PARTS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_FTL=m
+CONFIG_NFTL=m
+# CONFIG_NFTL_RW is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+##
+## file: drivers/mtd/chips/Kconfig
+##
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+## choice: Flash cmd/query data swapping
+CONFIG_MTD_CFI_NOSWAP=y
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+## end choice
+CONFIG_MTD_CFI_GEOMETRY=y
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+CONFIG_MTD_CFI_I4=y
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_OTP is not set
+#. Needed e.g. on QNAP devices
+CONFIG_MTD_CFI_INTELEXT=m
+#. Needed e.g. on D-Link DNS-323, Buffalo KuroBox-Pro, Buffalo Linkstation LS-GL / LS-WTGL, etc
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+##
+## file: drivers/mtd/devices/Kconfig
+##
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+##
+## file: drivers/mtd/maps/Kconfig
+##
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+CONFIG_MTD_PHYSMAP_OF=m
+# CONFIG_MTD_IMPA7 is not set
+# CONFIG_MTD_INTEL_VR_NOR is not set
+# CONFIG_MTD_PLATRAM is not set
+
+##
+## file: drivers/mtd/nand/onenand/Kconfig
+##
+# CONFIG_MTD_ONENAND is not set
+
+##
+## file: drivers/mtd/nand/raw/Kconfig
+##
+CONFIG_MTD_NAND=m
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_CAFE is not set
+CONFIG_MTD_NAND_ORION=m
+
+##
+## file: drivers/mtd/spi-nor/Kconfig
+##
+CONFIG_MTD_SPI_NOR=m
+
+##
+## file: drivers/net/arcnet/Kconfig
+##
+# CONFIG_ARCNET is not set
+
+##
+## file: drivers/net/ethernet/atheros/Kconfig
+##
+# CONFIG_ATL1 is not set
+
+##
+## file: drivers/net/ethernet/broadcom/Kconfig
+##
+# CONFIG_BNX2 is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_BNX2X is not set
+
+##
+## file: drivers/net/ethernet/dlink/Kconfig
+##
+# CONFIG_DL2K is not set
+
+##
+## file: drivers/net/ethernet/intel/Kconfig
+##
+# CONFIG_E1000 is not set
+# CONFIG_E1000E is not set
+# CONFIG_IGB is not set
+
+##
+## file: drivers/net/ethernet/marvell/Kconfig
+##
+CONFIG_MV643XX_ETH=m
+CONFIG_MVMDIO=m
+# CONFIG_SKGE is not set
+# CONFIG_SKY2 is not set
+
+##
+## file: drivers/net/ethernet/natsemi/Kconfig
+##
+# CONFIG_NS83820 is not set
+
+##
+## file: drivers/net/ethernet/packetengines/Kconfig
+##
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+
+##
+## file: drivers/net/ethernet/qlogic/Kconfig
+##
+# CONFIG_QLA3XXX is not set
+
+##
+## file: drivers/net/ethernet/realtek/Kconfig
+##
+# CONFIG_R8169 is not set
+
+##
+## file: drivers/net/ethernet/sis/Kconfig
+##
+# CONFIG_SIS190 is not set
+
+##
+## file: drivers/net/ethernet/via/Kconfig
+##
+# CONFIG_VIA_VELOCITY is not set
+
+##
+## file: drivers/net/wireless/marvell/mwifiex/Kconfig
+##
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+
+##
+## file: drivers/pci/controller/Kconfig
+##
+CONFIG_PCI_MVEBU=y
+
+##
+## file: drivers/pci/pcie/Kconfig
+##
+# CONFIG_PCIEAER is not set
+# CONFIG_PCIEASPM is not set
+# CONFIG_PCIE_DPC is not set
+# CONFIG_PCIE_PTM is not set
+
+##
+## file: drivers/pcmcia/Kconfig
+##
+# CONFIG_PCCARD is not set
+
+##
+## file: drivers/power/reset/Kconfig
+##
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_GPIO=y
+CONFIG_POWER_RESET_QNAP=y
+CONFIG_POWER_RESET_RESTART=y
+
+##
+## file: drivers/regulator/Kconfig
+##
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+
+##
+## file: drivers/rtc/Kconfig
+##
+# CONFIG_RTC_NVMEM is not set
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_MV=m
+
+##
+## file: drivers/scsi/Kconfig
+##
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_SCSI_ARCMSR is not set
+# CONFIG_SCSI_HPTIOP is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_STEX is not set
+# CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_IPR is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+# CONFIG_SCSI_LPFC is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_NSP32 is not set
+
+##
+## file: drivers/scsi/aic7xxx/Kconfig.aic79xx
+##
+# CONFIG_SCSI_AIC79XX is not set
+
+##
+## file: drivers/scsi/aic7xxx/Kconfig.aic7xxx
+##
+# CONFIG_SCSI_AIC7XXX is not set
+
+##
+## file: drivers/scsi/aic94xx/Kconfig
+##
+# CONFIG_SCSI_AIC94XX is not set
+
+##
+## file: drivers/scsi/megaraid/Kconfig.megaraid
+##
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
+# CONFIG_MEGARAID_SAS is not set
+
+##
+## file: drivers/scsi/mvsas/Kconfig
+##
+# CONFIG_SCSI_MVSAS is not set
+
+##
+## file: drivers/scsi/qla2xxx/Kconfig
+##
+# CONFIG_SCSI_QLA_FC is not set
+
+##
+## file: drivers/scsi/qla4xxx/Kconfig
+##
+# CONFIG_SCSI_QLA_ISCSI is not set
+
+##
+## file: drivers/spi/Kconfig
+##
+CONFIG_SPI_ORION=m
+
+##
+## file: drivers/ssb/Kconfig
+##
+# CONFIG_SSB is not set
+
+##
+## file: drivers/staging/xgifb/Kconfig
+##
+CONFIG_FB_XGI=m
+
+##
+## file: drivers/thermal/Kconfig
+##
+CONFIG_THERMAL=m
+CONFIG_KIRKWOOD_THERMAL=m
+
+##
+## file: drivers/tty/Kconfig
+##
+# CONFIG_VT is not set
+
+##
+## file: drivers/tty/serial/8250/Kconfig
+##
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_PCI=m
+CONFIG_SERIAL_8250_EXAR=m
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=2
+# CONFIG_SERIAL_8250_EXTENDED is not set
+# CONFIG_SERIAL_8250_DW is not set
+CONFIG_SERIAL_OF_PLATFORM=y
+
+##
+## file: drivers/usb/Kconfig
+##
+CONFIG_USB_SUPPORT=y
+CONFIG_USB=m
+
+##
+## file: drivers/usb/atm/Kconfig
+##
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+
+##
+## file: drivers/usb/host/Kconfig
+##
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_HCD_ORION=y
+# CONFIG_USB_ISP116X_HCD is not set
+CONFIG_USB_OHCI_HCD=m
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_SL811_HCD=m
+
+##
+## file: drivers/usb/misc/Kconfig
+##
+#. Selects BACKLIGHT_CLASS_DEVICE which is always built-in
+# CONFIG_USB_APPLEDISPLAY is not set
+
+##
+## file: drivers/video/backlight/Kconfig
+##
+# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
+
+##
+## file: drivers/video/console/Kconfig
+##
+# CONFIG_VGA_CONSOLE is not set
+#. We want to enable this as a module, but that's not currently possible
+# CONFIG_FRAMEBUFFER_CONSOLE is not set
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+CONFIG_FB=m
+
+##
+## file: drivers/virtio/Kconfig
+##
+# CONFIG_VIRTIO_PCI is not set
+# CONFIG_VIRTIO_BALLOON is not set
+
+##
+## file: drivers/watchdog/Kconfig
+##
+CONFIG_ORION_WATCHDOG=m
+
+##
+## file: fs/Kconfig
+##
+# CONFIG_FS_DAX is not set
+
+##
+## file: fs/nls/Kconfig
+##
+CONFIG_NLS=m
+
+##
+## file: fs/notify/fanotify/Kconfig
+##
+# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set
+
+##
+## file: init/Kconfig
+##
+#. Saves about 7K
+# CONFIG_MEMCG is not set
+# CONFIG_CFS_BANDWIDTH is not set
+# CONFIG_CGROUP_RDMA is not set
+# CONFIG_CGROUP_BPF is not set
+# CONFIG_CHECKPOINT_RESTORE is not set
+## choice: Compiler optimization level
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+## end choice
+# CONFIG_USERFAULTFD is not set
+# CONFIG_SLUB_DEBUG is not set
+# CONFIG_SLAB_FREELIST_HARDENED is not set
+# CONFIG_PROFILING is not set
+# CONFIG_MODULE_SIG is not set
+
+##
+## file: kernel/power/Kconfig
+##
+# CONFIG_SUSPEND is not set
+# CONFIG_HIBERNATION is not set
+# CONFIG_PM is not set
+
+##
+## file: kernel/trace/Kconfig
+##
+# CONFIG_FUNCTION_GRAPH_TRACER is not set
+# CONFIG_FTRACE_SYSCALLS is not set
+# CONFIG_STACK_TRACER is not set
+# CONFIG_UPROBE_EVENTS is not set
+
+##
+## file: lib/Kconfig.debug
+##
+# CONFIG_SCHEDSTATS is not set
+
+##
+## file: mm/Kconfig
+##
+## choice: Memory model
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+## end choice
+#. Saves about 7K
+# CONFIG_COMPACTION is not set
+# CONFIG_KSM is not set
+# CONFIG_ZSWAP is not set
+
+##
+## file: mm/Kconfig.debug
+##
+# CONFIG_PAGE_EXTENSION is not set
+# CONFIG_PAGE_POISONING is not set
+
+##
+## file: net/Kconfig
+##
+#. Saves about 3K
+# CONFIG_BPF_JIT is not set
+# CONFIG_BPF_STREAM_PARSER is not set
+# CONFIG_LWTUNNEL is not set
+
+##
+## file: net/atm/Kconfig
+##
+CONFIG_ATM=m
+
+##
+## file: net/ax25/Kconfig
+##
+CONFIG_HAMRADIO=y
+CONFIG_AX25=m
+# CONFIG_AX25_DAMA_SLAVE is not set
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+
+##
+## file: net/ipv6/Kconfig
+##
+CONFIG_IPV6=m
+#. Can be modular, but selects LWTUNNEL which cannot
+# CONFIG_IPV6_ILA is not set
+
+##
+## file: net/l3mdev/Kconfig
+##
+# CONFIG_NET_L3_MASTER_DEV is not set
+
+##
+## file: net/mpls/Kconfig
+##
+# CONFIG_NET_MPLS_GSO is not set
+
+##
+## file: net/packet/Kconfig
+##
+CONFIG_PACKET=m
+
+##
+## file: net/switchdev/Kconfig
+##
+# CONFIG_NET_SWITCHDEV is not set
+
+##
+## file: net/xdp/Kconfig
+##
+# CONFIG_XDP_SOCKETS is not set
+
+##
+## file: security/integrity/Kconfig
+##
+# CONFIG_INTEGRITY is not set
+
+##
+## file: sound/soc/Kconfig
+##
+CONFIG_SND_SOC=m
+
+##
+## file: sound/soc/codecs/Kconfig
+##
+# CONFIG_SND_SOC_ALL_CODECS is not set
+CONFIG_SND_SOC_ALC5623=m
+CONFIG_SND_SOC_CS42L51_I2C=m
+
+##
+## file: sound/soc/generic/Kconfig
+##
+CONFIG_SND_SIMPLE_CARD=m
+
+##
+## file: sound/soc/kirkwood/Kconfig
+##
+CONFIG_SND_KIRKWOOD_SOC=m
+
+##
+## file: usr/Kconfig
+##
+# CONFIG_RD_BZIP2 is not set
+# CONFIG_RD_LZMA is not set
+# CONFIG_RD_LZO is not set
+# CONFIG_RD_LZ4 is not set
+
diff --git a/debian/config/armel/config.rpi b/debian/config/armel/config.rpi
new file mode 100644
index 000000000..965ed7e5f
--- /dev/null
+++ b/debian/config/armel/config.rpi
@@ -0,0 +1,190 @@
+##
+## file: arch/arm/Kconfig
+##
+CONFIG_ARCH_MULTI_V6=y
+# CONFIG_ARCH_MULTI_V7 is not set
+CONFIG_VFP=y
+
+##
+## file: arch/arm/mach-bcm/Kconfig
+##
+CONFIG_ARCH_BCM=y
+CONFIG_ARCH_BCM2835=y
+
+##
+## file: drivers/base/Kconfig
+##
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=32
+
+##
+## file: drivers/bluetooth/Kconfig
+##
+CONFIG_BT_HCIUART=m
+
+##
+## file: drivers/dma/Kconfig
+##
+CONFIG_DMADEVICES=y
+CONFIG_DMA_BCM2835=y
+
+##
+## file: drivers/firmware/Kconfig
+##
+CONFIG_RASPBERRYPI_FIRMWARE=y
+
+##
+## file: drivers/gpu/drm/Kconfig
+##
+CONFIG_DRM=y
+
+##
+## file: drivers/gpu/drm/vc4/Kconfig
+##
+CONFIG_DRM_VC4=y
+
+##
+## file: drivers/hwmon/Kconfig
+##
+CONFIG_SENSORS_RASPBERRYPI_HWMON=m
+
+##
+## file: drivers/i2c/busses/Kconfig
+##
+CONFIG_I2C_BCM2835=y
+
+##
+## file: drivers/iommu/Kconfig
+##
+# CONFIG_IOMMU_SUPPORT is not set
+
+##
+## file: drivers/mailbox/Kconfig
+##
+CONFIG_MAILBOX=y
+CONFIG_BCM2835_MBOX=y
+
+##
+## file: drivers/mmc/Kconfig
+##
+CONFIG_MMC=y
+
+##
+## file: drivers/mmc/host/Kconfig
+##
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_IPROC=y
+CONFIG_MMC_BCM2835=y
+
+##
+## file: drivers/net/wireless/broadcom/brcm80211/Kconfig
+##
+CONFIG_BRCMFMAC_SDIO=y
+
+##
+## file: drivers/pwm/Kconfig
+##
+CONFIG_PWM=y
+CONFIG_PWM_BCM2835=y
+
+##
+## file: drivers/soc/bcm/Kconfig
+##
+CONFIG_RASPBERRYPI_POWER=y
+
+##
+## file: drivers/spi/Kconfig
+##
+CONFIG_SPI_BCM2835=y
+CONFIG_SPI_BCM2835AUX=y
+
+##
+## file: drivers/staging/vc04_services/bcm2835-audio/Kconfig
+##
+CONFIG_SND_BCM2835=m
+
+##
+## file: drivers/thermal/broadcom/Kconfig
+##
+CONFIG_BCM2835_THERMAL=y
+
+##
+## file: drivers/tty/serial/Kconfig
+##
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+
+##
+## file: drivers/tty/serial/8250/Kconfig
+##
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_BCM2835AUX=y
+
+##
+## file: drivers/usb/Kconfig
+##
+CONFIG_USB=y
+
+##
+## file: drivers/usb/core/Kconfig
+##
+CONFIG_USB_OTG=y
+
+##
+## file: drivers/usb/dwc2/Kconfig
+##
+CONFIG_USB_DWC2=y
+
+##
+## file: drivers/usb/gadget/Kconfig
+##
+CONFIG_USB_GADGET=y
+
+##
+## file: drivers/usb/gadget/legacy/Kconfig
+##
+CONFIG_USB_ETH_EEM=y
+
+##
+## file: drivers/usb/phy/Kconfig
+##
+CONFIG_NOP_USB_XCEIV=y
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+CONFIG_FB_SIMPLE=y
+
+##
+## file: drivers/watchdog/Kconfig
+##
+CONFIG_BCM2835_WDT=y
+
+##
+## file: kernel/power/Kconfig
+##
+# CONFIG_SUSPEND is not set
+
+##
+## file: lib/xz/Kconfig
+##
+# CONFIG_XZ_DEC_ARMTHUMB is not set
+
+##
+## file: mm/Kconfig
+##
+CONFIG_CMA=y
+
+##
+## file: sound/soc/Kconfig
+##
+CONFIG_SND_SOC=y
+
+##
+## file: sound/soc/bcm/Kconfig
+##
+CONFIG_SND_BCM2835_SOC_I2S=y
+
diff --git a/debian/config/armel/defines b/debian/config/armel/defines
new file mode 100644
index 000000000..39acbaaa4
--- /dev/null
+++ b/debian/config/armel/defines
@@ -0,0 +1,40 @@
+[base]
+flavours:
+ marvell
+ rpi
+kernel-arch: arm
+
+[build]
+image-file: arch/arm/boot/zImage
+# uncompressed-image is just for size checking
+uncompressed-image-file: arch/arm/boot/Image
+
+[image]
+install-stem: vmlinuz
+
+[relations]
+headers%gcc-8: linux-compiler-gcc-8-arm
+
+[marvell_description]
+hardware: Marvell Kirkwood/Orion
+hardware-long: Marvell Kirkwood and Orion based systems (https://wiki.debian.org/ArmEabiPort#Supported_hardware)
+
+[rpi_description]
+hardware: Raspberry Pi and Pi Zero
+hardware-long: Raspberry Pi, Raspberry Pi Zero based systems
+
+[marvell_image]
+recommends: u-boot-tools
+## Maximum kernel size for supported devices (64 bytes is the u-boot header)
+# SheevaPlug: 4194304 - 64 = 4194240
+# QNAP TS-119/TS-219: 2097152 - 64 = 2097088
+# D-Link DNS-323: 1572864 - 8 - 64 = 1572792 (too small, no longer supported)
+# HP Media Vault mv2120: 2097152 - 8 - 64 = 2097080
+# QNAP TS-109/TS-209 & TS-409: 2097152 - 8 - 64 = 2097080
+# Buffalo Linkstation LS-WSXL/WXL/WVL (from stock kernel): 2729776 - 64 = 2729712
+check-size: 2097080
+check-size-with-dtb: true
+## Maximum uncompressed kernel size for supported devices
+# Buffalo Linkstation LS-WSXL/WXL/WVL: 7340032
+check-uncompressed-size: 7340032
+breaks: flash-kernel (<< 3.57~)
diff --git a/debian/config/armhf/config b/debian/config/armhf/config
new file mode 100644
index 000000000..33591b41d
--- /dev/null
+++ b/debian/config/armhf/config
@@ -0,0 +1,1441 @@
+##
+## file: arch/arm/Kconfig
+##
+## choice: ARM system type
+CONFIG_ARCH_MULTIPLATFORM=y
+## end choice
+# CONFIG_ARCH_MULTI_V6 is not set
+CONFIG_ARCH_MULTI_V7=y
+CONFIG_ARCH_VIRT=y
+CONFIG_ARM_ERRATA_430973=y
+CONFIG_ARM_ERRATA_643719=y
+CONFIG_ARM_ERRATA_754327=y
+CONFIG_ARM_ERRATA_773022=y
+CONFIG_PCI=y
+CONFIG_SMP=y
+CONFIG_SMP_ON_UP=y
+CONFIG_MCPM=y
+CONFIG_NR_CPUS=8
+CONFIG_HIGHMEM=y
+CONFIG_XEN=y
+CONFIG_ARM_APPENDED_DTB=y
+CONFIG_ARM_ATAG_DTB_COMPAT=y
+## choice: Kernel command line type
+CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y
+# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set
+## end choice
+CONFIG_ATAGS_PROC=y
+CONFIG_EFI=y
+#. Enable floating point unit
+CONFIG_VFP=y
+CONFIG_NEON=y
+CONFIG_KERNEL_MODE_NEON=y
+
+##
+## file: arch/arm/Kconfig.debug
+##
+#. DEBUG_LL is incompatible with multiplatform
+# CONFIG_DEBUG_LL is not set
+
+##
+## file: arch/arm/crypto/Kconfig
+##
+CONFIG_CRYPTO_SHA1_ARM_NEON=m
+CONFIG_CRYPTO_SHA1_ARM_CE=m
+CONFIG_CRYPTO_SHA2_ARM_CE=m
+CONFIG_CRYPTO_AES_ARM_BS=m
+CONFIG_CRYPTO_AES_ARM_CE=m
+CONFIG_CRYPTO_GHASH_ARM_CE=m
+CONFIG_CRYPTO_CRCT10DIF_ARM_CE=m
+CONFIG_CRYPTO_CRC32_ARM_CE=m
+CONFIG_CRYPTO_CHACHA20_NEON=m
+
+##
+## file: arch/arm/mach-bcm/Kconfig
+##
+CONFIG_ARCH_BCM=y
+CONFIG_ARCH_BCM2835=y
+
+##
+## file: arch/arm/mach-exynos/Kconfig
+##
+CONFIG_ARCH_EXYNOS=y
+# CONFIG_ARCH_EXYNOS3 is not set
+CONFIG_ARCH_EXYNOS4=y
+CONFIG_ARCH_EXYNOS5=y
+CONFIG_EXYNOS5420_MCPM=y
+
+##
+## file: arch/arm/mach-highbank/Kconfig
+##
+CONFIG_ARCH_HIGHBANK=y
+
+##
+## file: arch/arm/mach-imx/Kconfig
+##
+CONFIG_ARCH_MXC=y
+CONFIG_SOC_IMX51=y
+CONFIG_SOC_IMX53=y
+CONFIG_SOC_IMX6Q=y
+CONFIG_SOC_IMX6SL=y
+CONFIG_SOC_IMX6SLL=y
+CONFIG_SOC_IMX6SX=y
+CONFIG_SOC_IMX6UL=y
+
+##
+## file: arch/arm/mach-meson/Kconfig
+##
+CONFIG_ARCH_MESON=y
+
+##
+## file: arch/arm/mach-mvebu/Kconfig
+##
+CONFIG_ARCH_MVEBU=y
+CONFIG_MACH_ARMADA_370=y
+CONFIG_MACH_ARMADA_375=y
+CONFIG_MACH_ARMADA_38X=y
+CONFIG_MACH_ARMADA_39X=y
+CONFIG_MACH_ARMADA_XP=y
+CONFIG_MACH_DOVE=y
+
+##
+## file: arch/arm/mach-omap1/Kconfig
+##
+CONFIG_OMAP_MUX=y
+# CONFIG_OMAP_MUX_DEBUG is not set
+CONFIG_OMAP_MUX_WARNINGS=y
+
+##
+## file: arch/arm/mach-omap2/Kconfig
+##
+# CONFIG_ARCH_OMAP2 is not set
+CONFIG_ARCH_OMAP3=y
+CONFIG_ARCH_OMAP4=y
+CONFIG_SOC_OMAP5=y
+CONFIG_SOC_AM33XX=y
+CONFIG_SOC_DRA7XX=y
+CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
+CONFIG_SOC_OMAP3430=y
+CONFIG_SOC_TI81XX=y
+
+##
+## file: arch/arm/mach-rockchip/Kconfig
+##
+CONFIG_ARCH_ROCKCHIP=y
+
+##
+## file: arch/arm/mach-socfpga/Kconfig
+##
+CONFIG_ARCH_SOCFPGA=y
+
+##
+## file: arch/arm/mach-sunxi/Kconfig
+##
+CONFIG_ARCH_SUNXI=y
+
+##
+## file: arch/arm/mach-tegra/Kconfig
+##
+CONFIG_ARCH_TEGRA=y
+
+##
+## file: arch/arm/mach-vexpress/Kconfig
+##
+CONFIG_ARCH_VEXPRESS=y
+CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y
+
+##
+## file: arch/arm/mach-vt8500/Kconfig
+##
+CONFIG_ARCH_WM8850=y
+
+##
+## file: arch/arm/mm/Kconfig
+##
+CONFIG_ARM_THUMBEE=y
+CONFIG_CACHE_TAUROS2=y
+
+##
+## file: arch/arm/plat-omap/Kconfig
+##
+CONFIG_POWER_AVS_OMAP=y
+CONFIG_POWER_AVS_OMAP_CLASS3=y
+CONFIG_OMAP_RESET_CLOCKS=y
+# CONFIG_OMAP_MPU_TIMER is not set
+CONFIG_OMAP_32K_TIMER=y
+# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set
+CONFIG_OMAP_SERIAL_WAKE=y
+
+##
+## file: drivers/android/Kconfig
+##
+CONFIG_ANDROID=y
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_AHCI_IMX=m
+CONFIG_AHCI_MVEBU=m
+CONFIG_AHCI_SUNXI=m
+CONFIG_AHCI_TEGRA=m
+CONFIG_SATA_HIGHBANK=m
+CONFIG_PATA_IMX=m
+CONFIG_PATA_PLATFORM=m
+CONFIG_PATA_OF_PLATFORM=m
+
+##
+## file: drivers/auxdisplay/Kconfig
+##
+CONFIG_ARM_CHARLCD=y
+
+##
+## file: drivers/base/Kconfig
+##
+CONFIG_DMA_CMA=y
+
+##
+## file: drivers/bluetooth/Kconfig
+##
+CONFIG_BT_WILINK=m
+
+##
+## file: drivers/bus/Kconfig
+##
+CONFIG_OMAP_INTERCONNECT=m
+CONFIG_OMAP_OCP2SCP=m
+
+##
+## file: drivers/char/hw_random/Kconfig
+##
+CONFIG_HW_RANDOM_BCM2835=m
+CONFIG_HW_RANDOM_OMAP=m
+
+##
+## file: drivers/clk/Kconfig
+##
+CONFIG_COMMON_CLK_MAX77686=m
+CONFIG_COMMON_CLK_RK808=m
+CONFIG_COMMON_CLK_SI5351=m
+CONFIG_COMMON_CLK_S2MPS11=m
+CONFIG_CLK_TWL6040=m
+
+##
+## file: drivers/clk/sunxi-ng/Kconfig
+##
+CONFIG_SUNXI_CCU=y
+CONFIG_SUN8I_DE2_CCU=y
+
+##
+## file: drivers/cpufreq/Kconfig
+##
+CONFIG_CPUFREQ_DT=m
+
+##
+## file: drivers/cpufreq/Kconfig.arm
+##
+CONFIG_ARM_IMX6Q_CPUFREQ=m
+CONFIG_ARM_TEGRA20_CPUFREQ=y
+
+##
+## file: drivers/cpuidle/Kconfig.arm
+##
+CONFIG_ARM_EXYNOS_CPUIDLE=y
+
+##
+## file: drivers/crypto/Kconfig
+##
+CONFIG_CRYPTO_DEV_MARVELL_CESA=m
+CONFIG_CRYPTO_DEV_OMAP_SHAM=m
+CONFIG_CRYPTO_DEV_OMAP_AES=m
+CONFIG_CRYPTO_DEV_SUN4I_SS=m
+
+##
+## file: drivers/devfreq/Kconfig
+##
+CONFIG_PM_DEVFREQ=y
+CONFIG_ARM_TEGRA_DEVFREQ=m
+
+##
+## file: drivers/dma/Kconfig
+##
+CONFIG_DMADEVICES=y
+CONFIG_AMBA_PL08X=y
+CONFIG_DMA_BCM2835=y
+CONFIG_DMA_SUN6I=m
+CONFIG_IMX_DMA=y
+CONFIG_IMX_SDMA=y
+CONFIG_MV_XOR=y
+CONFIG_MXS_DMA=y
+CONFIG_PL330_DMA=y
+CONFIG_TEGRA20_APB_DMA=y
+
+##
+## file: drivers/dma/ti/Kconfig
+##
+CONFIG_TI_CPPI41=m
+CONFIG_TI_EDMA=y
+CONFIG_DMA_OMAP=y
+
+##
+## file: drivers/extcon/Kconfig
+##
+CONFIG_EXTCON=m
+CONFIG_EXTCON_AXP288=m
+CONFIG_EXTCON_PALMAS=m
+CONFIG_EXTCON_USB_GPIO=m
+
+##
+## file: drivers/firmware/Kconfig
+##
+CONFIG_RASPBERRYPI_FIRMWARE=y
+
+##
+## file: drivers/gpio/Kconfig
+##
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_GENERIC_PLATFORM=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_DA9052=m
+CONFIG_GPIO_PALMAS=y
+CONFIG_GPIO_TWL4030=y
+CONFIG_GPIO_TWL6040=y
+
+##
+## file: drivers/gpu/drm/Kconfig
+##
+CONFIG_DRM=m
+
+##
+## file: drivers/gpu/drm/bridge/synopsys/Kconfig
+##
+CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
+CONFIG_DRM_DW_HDMI_CEC=m
+
+##
+## file: drivers/gpu/drm/etnaviv/Kconfig
+##
+CONFIG_DRM_ETNAVIV=m
+
+##
+## file: drivers/gpu/drm/exynos/Kconfig
+##
+CONFIG_DRM_EXYNOS=m
+CONFIG_DRM_EXYNOS_FIMD=y
+CONFIG_DRM_EXYNOS_MIXER=y
+CONFIG_DRM_EXYNOS_DSI=y
+CONFIG_DRM_EXYNOS_DP=y
+CONFIG_DRM_EXYNOS_HDMI=y
+
+##
+## file: drivers/gpu/drm/i2c/Kconfig
+##
+CONFIG_DRM_I2C_NXP_TDA998X=m
+
+##
+## file: drivers/gpu/drm/imx/Kconfig
+##
+CONFIG_DRM_IMX=m
+CONFIG_DRM_IMX_PARALLEL_DISPLAY=m
+CONFIG_DRM_IMX_LDB=m
+CONFIG_DRM_IMX_HDMI=m
+
+##
+## file: drivers/gpu/drm/nouveau/Kconfig
+##
+CONFIG_NOUVEAU_PLATFORM_DRIVER=y
+
+##
+## file: drivers/gpu/drm/omapdrm/Kconfig
+##
+CONFIG_DRM_OMAP=m
+
+##
+## file: drivers/gpu/drm/omapdrm/displays/Kconfig
+##
+CONFIG_DRM_OMAP_ENCODER_TPD12S015=m
+CONFIG_DRM_OMAP_CONNECTOR_HDMI=m
+CONFIG_DRM_OMAP_CONNECTOR_ANALOG_TV=m
+CONFIG_DRM_OMAP_PANEL_SONY_ACX565AKM=m
+CONFIG_DRM_OMAP_PANEL_TPO_TD028TTEC1=m
+CONFIG_DRM_OMAP_PANEL_TPO_TD043MTEA1=m
+
+##
+## file: drivers/gpu/drm/omapdrm/dss/Kconfig
+##
+CONFIG_OMAP2_DSS=m
+CONFIG_OMAP2_DSS_VENC=y
+CONFIG_OMAP4_DSS_HDMI=y
+CONFIG_OMAP5_DSS_HDMI=y
+CONFIG_OMAP2_DSS_SDI=y
+CONFIG_OMAP2_DSS_DSI=y
+
+##
+## file: drivers/gpu/drm/panel/Kconfig
+##
+CONFIG_DRM_PANEL_SIMPLE=m
+CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
+
+##
+## file: drivers/gpu/drm/rockchip/Kconfig
+##
+CONFIG_DRM_ROCKCHIP=m
+CONFIG_ROCKCHIP_ANALOGIX_DP=y
+CONFIG_ROCKCHIP_DW_HDMI=y
+CONFIG_ROCKCHIP_DW_MIPI_DSI=y
+
+##
+## file: drivers/gpu/drm/sun4i/Kconfig
+##
+CONFIG_DRM_SUN4I=m
+CONFIG_DRM_SUN4I_HDMI=m
+CONFIG_DRM_SUN4I_HDMI_CEC=y
+CONFIG_DRM_SUN4I_BACKEND=m
+CONFIG_DRM_SUN8I_DW_HDMI=m
+CONFIG_DRM_SUN8I_MIXER=m
+
+##
+## file: drivers/gpu/drm/tegra/Kconfig
+##
+CONFIG_DRM_TEGRA=m
+# CONFIG_DRM_TEGRA_DEBUG is not set
+CONFIG_DRM_TEGRA_STAGING=y
+
+##
+## file: drivers/gpu/drm/tilcdc/Kconfig
+##
+CONFIG_DRM_TILCDC=m
+
+##
+## file: drivers/gpu/drm/vc4/Kconfig
+##
+CONFIG_DRM_VC4=m
+
+##
+## file: drivers/gpu/host1x/Kconfig
+##
+CONFIG_TEGRA_HOST1X=m
+CONFIG_TEGRA_HOST1X_FIREWALL=y
+
+##
+## file: drivers/gpu/ipu-v3/Kconfig
+##
+CONFIG_IMX_IPUV3_CORE=m
+
+##
+## file: drivers/hsi/Kconfig
+##
+CONFIG_HSI=m
+
+##
+## file: drivers/hsi/clients/Kconfig
+##
+CONFIG_NOKIA_MODEM=m
+CONFIG_CMT_SPEECH=m
+CONFIG_SSI_PROTOCOL=m
+
+##
+## file: drivers/hsi/controllers/Kconfig
+##
+CONFIG_OMAP_SSI=m
+
+##
+## file: drivers/hwmon/Kconfig
+##
+CONFIG_SENSORS_G762=m
+CONFIG_SENSORS_GPIO_FAN=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_PWM_FAN=m
+
+##
+## file: drivers/hwspinlock/Kconfig
+##
+CONFIG_HWSPINLOCK_OMAP=m
+
+##
+## file: drivers/i2c/Kconfig
+##
+CONFIG_I2C_MUX=m
+
+##
+## file: drivers/i2c/busses/Kconfig
+##
+CONFIG_I2C_BCM2835=m
+CONFIG_I2C_EXYNOS5=m
+CONFIG_I2C_GPIO=y
+CONFIG_I2C_IMX=m
+CONFIG_I2C_MESON=m
+CONFIG_I2C_MV64XXX=m
+CONFIG_I2C_OMAP=y
+CONFIG_I2C_RK3X=m
+CONFIG_I2C_S3C2410=y
+CONFIG_I2C_SUN6I_P2WI=m
+CONFIG_I2C_TEGRA=y
+CONFIG_I2C_VERSATILE=m
+CONFIG_I2C_CROS_EC_TUNNEL=m
+
+##
+## file: drivers/i2c/muxes/Kconfig
+##
+CONFIG_I2C_ARB_GPIO_CHALLENGE=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_MUX_PINCTRL=m
+
+##
+## file: drivers/iio/Kconfig
+##
+CONFIG_IIO=m
+
+##
+## file: drivers/iio/accel/Kconfig
+##
+CONFIG_IIO_ST_ACCEL_3AXIS=m
+CONFIG_MMA8452=m
+
+##
+## file: drivers/iio/adc/Kconfig
+##
+CONFIG_AXP20X_ADC=m
+CONFIG_AXP288_ADC=m
+CONFIG_EXYNOS_ADC=m
+CONFIG_ROCKCHIP_SARADC=m
+CONFIG_TI_AM335X_ADC=m
+CONFIG_TWL4030_MADC=m
+
+##
+## file: drivers/iio/light/Kconfig
+##
+CONFIG_SENSORS_TSL2563=m
+
+##
+## file: drivers/input/keyboard/Kconfig
+##
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_IMX=m
+CONFIG_KEYBOARD_TEGRA=m
+CONFIG_KEYBOARD_SUN4I_LRADC=m
+CONFIG_KEYBOARD_OMAP4=m
+CONFIG_KEYBOARD_TWL4030=m
+CONFIG_KEYBOARD_CROS_EC=m
+
+##
+## file: drivers/input/misc/Kconfig
+##
+CONFIG_INPUT_MMA8450=m
+CONFIG_INPUT_AXP20X_PEK=m
+CONFIG_INPUT_TWL4030_PWRBUTTON=m
+CONFIG_INPUT_TWL4030_VIBRA=m
+CONFIG_INPUT_TWL6040_VIBRA=m
+
+##
+## file: drivers/input/mouse/Kconfig
+##
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_ELAN_I2C=m
+
+##
+## file: drivers/input/serio/Kconfig
+##
+CONFIG_SERIO_AMBAKMI=m
+CONFIG_SERIO_SUN4I_PS2=m
+
+##
+## file: drivers/input/touchscreen/Kconfig
+##
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
+CONFIG_TOUCHSCREEN_TSC2005=m
+CONFIG_TOUCHSCREEN_STMPE=m
+CONFIG_TOUCHSCREEN_SUN4I=m
+
+##
+## file: drivers/iommu/Kconfig
+##
+CONFIG_OMAP_IOMMU=y
+# CONFIG_OMAP_IOMMU_DEBUG is not set
+CONFIG_ROCKCHIP_IOMMU=y
+CONFIG_TEGRA_IOMMU_SMMU=y
+
+##
+## file: drivers/leds/Kconfig
+##
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_LP5523=m
+CONFIG_LEDS_DA9052=m
+CONFIG_LEDS_PWM=m
+CONFIG_LEDS_TCA6507=m
+
+##
+## file: drivers/leds/trigger/Kconfig
+##
+CONFIG_LEDS_TRIGGER_GPIO=m
+
+##
+## file: drivers/mailbox/Kconfig
+##
+CONFIG_MAILBOX=y
+CONFIG_OMAP2PLUS_MBOX=y
+CONFIG_OMAP_MBOX_KFIFO_SIZE=256
+CONFIG_BCM2835_MBOX=y
+
+##
+## file: drivers/media/Kconfig
+##
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_MEDIA_CONTROLLER=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+
+##
+## file: drivers/media/platform/Kconfig
+##
+CONFIG_VIDEO_OMAP3=m
+CONFIG_VIDEO_TI_VPE=m
+
+##
+## file: drivers/media/platform/omap/Kconfig
+##
+CONFIG_VIDEO_OMAP2_VOUT=m
+
+##
+## file: drivers/media/radio/Kconfig
+##
+CONFIG_RADIO_ADAPTERS=y
+CONFIG_RADIO_SI4713=m
+
+##
+## file: drivers/media/radio/si4713/Kconfig
+##
+CONFIG_I2C_SI4713=m
+
+##
+## file: drivers/media/radio/wl128x/Kconfig
+##
+CONFIG_RADIO_WL128X=m
+
+##
+## file: drivers/media/rc/Kconfig
+##
+CONFIG_IR_GPIO_CIR=m
+CONFIG_IR_SUNXI=m
+
+##
+## file: drivers/memory/Kconfig
+##
+CONFIG_TI_EMIF=m
+
+##
+## file: drivers/memory/tegra/Kconfig
+##
+CONFIG_TEGRA_MC=y
+CONFIG_TEGRA124_EMC=y
+
+##
+## file: drivers/mfd/Kconfig
+##
+CONFIG_MFD_AS3722=y
+CONFIG_MFD_AC100=y
+CONFIG_MFD_AXP20X_I2C=y
+CONFIG_MFD_CROS_EC=m
+CONFIG_MFD_DA9052_SPI=y
+CONFIG_MFD_DA9052_I2C=y
+CONFIG_MFD_MC13XXX_SPI=m
+CONFIG_MFD_MC13XXX_I2C=m
+CONFIG_MFD_MAX77686=y
+CONFIG_MFD_RK808=y
+CONFIG_MFD_SEC_CORE=y
+CONFIG_MFD_STMPE=y
+CONFIG_MFD_TI_AM335X_TSCADC=m
+CONFIG_MFD_PALMAS=y
+CONFIG_MFD_TPS65217=m
+CONFIG_TWL4030_CORE=y
+CONFIG_TWL6040_CORE=y
+
+##
+## file: drivers/misc/ti-st/Kconfig
+##
+CONFIG_TI_ST=m
+
+##
+## file: drivers/mmc/Kconfig
+##
+CONFIG_MMC=y
+
+##
+## file: drivers/mmc/host/Kconfig
+##
+CONFIG_MMC_ARMMMCI=m
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDHCI_ESDHC_IMX=m
+CONFIG_MMC_SDHCI_DOVE=m
+CONFIG_MMC_SDHCI_TEGRA=m
+CONFIG_MMC_SDHCI_S3C=m
+CONFIG_MMC_SDHCI_PXAV3=m
+CONFIG_MMC_SDHCI_IPROC=m
+CONFIG_MMC_MESON_MX_SDIO=m
+CONFIG_MMC_OMAP=m
+CONFIG_MMC_OMAP_HS=m
+CONFIG_MMC_MVSDIO=m
+CONFIG_MMC_SPI=m
+CONFIG_MMC_DW=m
+CONFIG_MMC_DW_EXYNOS=m
+CONFIG_MMC_DW_ROCKCHIP=m
+CONFIG_MMC_WMT=m
+CONFIG_MMC_SUNXI=m
+CONFIG_MMC_BCM2835=m
+CONFIG_MMC_SDHCI_OMAP=m
+
+##
+## file: drivers/mtd/Kconfig
+##
+CONFIG_MTD=y
+
+##
+## file: drivers/mtd/nand/onenand/Kconfig
+##
+CONFIG_MTD_ONENAND=y
+CONFIG_MTD_ONENAND_OMAP2=m
+
+##
+## file: drivers/mtd/nand/raw/Kconfig
+##
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_OMAP2=m
+CONFIG_MTD_NAND_MARVELL=m
+CONFIG_MTD_NAND_GPMI_NAND=m
+CONFIG_MTD_NAND_ORION=m
+CONFIG_MTD_NAND_MXC=m
+CONFIG_MTD_NAND_SUNXI=m
+
+##
+## file: drivers/net/can/Kconfig
+##
+CONFIG_CAN_FLEXCAN=m
+CONFIG_CAN_SUN4I=m
+
+##
+## file: drivers/net/dsa/Kconfig
+##
+CONFIG_NET_DSA_BCM_SF2=m
+CONFIG_NET_DSA_MV88E6060=m
+
+##
+## file: drivers/net/dsa/b53/Kconfig
+##
+CONFIG_B53=m
+CONFIG_B53_MDIO_DRIVER=m
+
+##
+## file: drivers/net/dsa/mv88e6xxx/Kconfig
+##
+CONFIG_NET_DSA_MV88E6XXX=m
+
+##
+## file: drivers/net/ethernet/Kconfig
+##
+CONFIG_FEALNX=m
+
+##
+## file: drivers/net/ethernet/3com/Kconfig
+##
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_TYPHOON=m
+
+##
+## file: drivers/net/ethernet/8390/Kconfig
+##
+CONFIG_NET_VENDOR_8390=y
+CONFIG_NE2K_PCI=m
+
+##
+## file: drivers/net/ethernet/adaptec/Kconfig
+##
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_ADAPTEC_STARFIRE=m
+
+##
+## file: drivers/net/ethernet/allwinner/Kconfig
+##
+CONFIG_SUN4I_EMAC=m
+
+##
+## file: drivers/net/ethernet/arc/Kconfig
+##
+CONFIG_EMAC_ROCKCHIP=m
+
+##
+## file: drivers/net/ethernet/calxeda/Kconfig
+##
+CONFIG_NET_CALXEDA_XGMAC=m
+
+##
+## file: drivers/net/ethernet/dec/tulip/Kconfig
+##
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+
+##
+## file: drivers/net/ethernet/dlink/Kconfig
+##
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+
+##
+## file: drivers/net/ethernet/intel/Kconfig
+##
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_E100=m
+
+##
+## file: drivers/net/ethernet/marvell/Kconfig
+##
+CONFIG_MV643XX_ETH=m
+CONFIG_MVMDIO=m
+CONFIG_MVNETA=m
+CONFIG_MVPP2=m
+
+##
+## file: drivers/net/ethernet/microchip/Kconfig
+##
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+
+##
+## file: drivers/net/ethernet/natsemi/Kconfig
+##
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NATSEMI=m
+
+##
+## file: drivers/net/ethernet/realtek/Kconfig
+##
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+
+##
+## file: drivers/net/ethernet/smsc/Kconfig
+##
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_SMC91X=m
+CONFIG_EPIC100=m
+CONFIG_SMC911X=m
+CONFIG_SMSC911X=m
+
+##
+## file: drivers/net/ethernet/stmicro/stmmac/Kconfig
+##
+CONFIG_STMMAC_ETH=m
+CONFIG_DWMAC_GENERIC=m
+CONFIG_DWMAC_ROCKCHIP=m
+CONFIG_DWMAC_SOCFPGA=m
+CONFIG_DWMAC_SUNXI=m
+
+##
+## file: drivers/net/ethernet/ti/Kconfig
+##
+CONFIG_TI_DAVINCI_EMAC=m
+CONFIG_TI_DAVINCI_MDIO=m
+CONFIG_TI_DAVINCI_CPDMA=m
+CONFIG_TI_CPSW=m
+
+##
+## file: drivers/net/fddi/Kconfig
+##
+CONFIG_FDDI=y
+CONFIG_SKFP=m
+
+##
+## file: drivers/net/hamradio/Kconfig
+##
+# CONFIG_BPQETHER is not set
+# CONFIG_BAYCOM_SER_FDX is not set
+# CONFIG_BAYCOM_SER_HDX is not set
+# CONFIG_BAYCOM_PAR is not set
+# CONFIG_BAYCOM_EPP is not set
+# CONFIG_YAM is not set
+
+##
+## file: drivers/net/phy/Kconfig
+##
+CONFIG_MDIO_SUN4I=y
+
+##
+## file: drivers/net/wireless/broadcom/brcm80211/Kconfig
+##
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_SDIO=y
+
+##
+## file: drivers/net/wireless/ti/Kconfig
+##
+CONFIG_WLAN_VENDOR_TI=y
+CONFIG_WILINK_PLATFORM_DATA=y
+
+##
+## file: drivers/net/wireless/ti/wl1251/Kconfig
+##
+CONFIG_WL1251=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL1251_SDIO=m
+
+##
+## file: drivers/net/wireless/ti/wl12xx/Kconfig
+##
+CONFIG_WL12XX=m
+
+##
+## file: drivers/net/wireless/ti/wl18xx/Kconfig
+##
+CONFIG_WL18XX=m
+
+##
+## file: drivers/net/wireless/ti/wlcore/Kconfig
+##
+CONFIG_WLCORE_SPI=m
+CONFIG_WLCORE_SDIO=m
+
+##
+## file: drivers/nvmem/Kconfig
+##
+CONFIG_ROCKCHIP_EFUSE=m
+CONFIG_NVMEM_SUNXI_SID=m
+CONFIG_MESON_MX_EFUSE=m
+
+##
+## file: drivers/pci/controller/Kconfig
+##
+CONFIG_PCI_MVEBU=y
+CONFIG_PCI_TEGRA=y
+CONFIG_PCI_HOST_GENERIC=y
+
+##
+## file: drivers/pci/controller/dwc/Kconfig
+##
+CONFIG_PCI_DRA7XX_HOST=y
+CONFIG_PCI_IMX6=y
+
+##
+## file: drivers/phy/allwinner/Kconfig
+##
+CONFIG_PHY_SUN4I_USB=m
+CONFIG_PHY_SUN9I_USB=m
+
+##
+## file: drivers/phy/rockchip/Kconfig
+##
+CONFIG_PHY_ROCKCHIP_DP=m
+CONFIG_PHY_ROCKCHIP_EMMC=m
+CONFIG_PHY_ROCKCHIP_USB=m
+
+##
+## file: drivers/phy/samsung/Kconfig
+##
+CONFIG_PHY_EXYNOS_DP_VIDEO=m
+CONFIG_PHY_EXYNOS_MIPI_VIDEO=m
+CONFIG_PHY_SAMSUNG_USB2=m
+CONFIG_PHY_EXYNOS5_USBDRD=m
+CONFIG_PHY_EXYNOS5250_SATA=m
+
+##
+## file: drivers/phy/tegra/Kconfig
+##
+CONFIG_PHY_TEGRA_XUSB=m
+
+##
+## file: drivers/phy/ti/Kconfig
+##
+CONFIG_OMAP_CONTROL_PHY=m
+CONFIG_OMAP_USB2=m
+CONFIG_TI_PIPE3=y
+CONFIG_TWL4030_USB=m
+
+##
+## file: drivers/pinctrl/Kconfig
+##
+CONFIG_PINCTRL_AS3722=y
+CONFIG_PINCTRL_AXP209=m
+CONFIG_PINCTRL_MCP23S08=m
+CONFIG_PINCTRL_SINGLE=y
+CONFIG_PINCTRL_PALMAS=y
+
+##
+## file: drivers/pinctrl/vt8500/Kconfig
+##
+CONFIG_PINCTRL_WM8850=y
+
+##
+## file: drivers/platform/chrome/Kconfig
+##
+CONFIG_CROS_EC_SPI=m
+
+##
+## file: drivers/power/avs/Kconfig
+##
+CONFIG_POWER_AVS=y
+CONFIG_ROCKCHIP_IODOMAIN=m
+
+##
+## file: drivers/power/reset/Kconfig
+##
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_AS3722=y
+CONFIG_POWER_RESET_GPIO=y
+CONFIG_POWER_RESET_GPIO_RESTART=y
+CONFIG_POWER_RESET_RESTART=y
+CONFIG_POWER_RESET_SYSCON=y
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
+
+##
+## file: drivers/power/supply/Kconfig
+##
+CONFIG_BATTERY_SBS=m
+CONFIG_BATTERY_BQ27XXX=m
+CONFIG_CHARGER_AXP20X=m
+CONFIG_BATTERY_AXP20X=m
+CONFIG_AXP20X_POWER=m
+CONFIG_AXP288_CHARGER=m
+CONFIG_AXP288_FUEL_GAUGE=m
+CONFIG_BATTERY_TWL4030_MADC=m
+CONFIG_BATTERY_RX51=m
+CONFIG_CHARGER_ISP1704=m
+CONFIG_CHARGER_TWL4030=m
+CONFIG_CHARGER_GPIO=m
+CONFIG_CHARGER_BQ2415X=m
+
+##
+## file: drivers/pwm/Kconfig
+##
+CONFIG_PWM=y
+CONFIG_PWM_BCM2835=m
+CONFIG_PWM_IMX=m
+CONFIG_PWM_MESON=m
+CONFIG_PWM_OMAP_DMTIMER=m
+CONFIG_PWM_ROCKCHIP=m
+CONFIG_PWM_SAMSUNG=m
+CONFIG_PWM_SUN4I=m
+CONFIG_PWM_TEGRA=m
+CONFIG_PWM_TIECAP=m
+CONFIG_PWM_TIEHRPWM=m
+CONFIG_PWM_TWL=m
+CONFIG_PWM_TWL_LED=m
+CONFIG_PWM_VT8500=m
+
+##
+## file: drivers/regulator/Kconfig
+##
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_ACT8865=m
+CONFIG_REGULATOR_ANATOP=m
+CONFIG_REGULATOR_AS3722=y
+CONFIG_REGULATOR_AXP20X=m
+CONFIG_REGULATOR_DA9052=m
+CONFIG_REGULATOR_FAN53555=m
+CONFIG_REGULATOR_GPIO=m
+CONFIG_REGULATOR_MAX77686=m
+CONFIG_REGULATOR_MC13783=m
+CONFIG_REGULATOR_MC13892=m
+CONFIG_REGULATOR_PALMAS=y
+CONFIG_REGULATOR_PBIAS=m
+CONFIG_REGULATOR_PFUZE100=m
+CONFIG_REGULATOR_RK808=m
+CONFIG_REGULATOR_S2MPA01=m
+CONFIG_REGULATOR_S2MPS11=m
+CONFIG_REGULATOR_S5M8767=m
+CONFIG_REGULATOR_TI_ABB=m
+CONFIG_REGULATOR_SY8106A=m
+CONFIG_REGULATOR_TPS65910=m
+CONFIG_REGULATOR_TWL4030=y
+CONFIG_REGULATOR_VEXPRESS=m
+
+##
+## file: drivers/rtc/Kconfig
+##
+CONFIG_RTC_DRV_AC100=y
+CONFIG_RTC_DRV_AS3722=y
+CONFIG_RTC_DRV_DS1307=y
+CONFIG_RTC_DRV_MAX77686=y
+CONFIG_RTC_DRV_RK808=y
+CONFIG_RTC_DRV_PCF8523=y
+CONFIG_RTC_DRV_PCF8563=y
+CONFIG_RTC_DRV_TWL4030=y
+CONFIG_RTC_DRV_PALMAS=y
+CONFIG_RTC_DRV_S5M=y
+CONFIG_RTC_DRV_DA9052=y
+CONFIG_RTC_DRV_EFI=y
+CONFIG_RTC_DRV_IMXDI=y
+CONFIG_RTC_DRV_OMAP=y
+CONFIG_RTC_DRV_PL030=y
+CONFIG_RTC_DRV_PL031=y
+CONFIG_RTC_DRV_VT8500=y
+CONFIG_RTC_DRV_SUN6I=y
+CONFIG_RTC_DRV_SUNXI=y
+CONFIG_RTC_DRV_MV=y
+CONFIG_RTC_DRV_ARMADA38X=y
+CONFIG_RTC_DRV_MC13XXX=y
+CONFIG_RTC_DRV_TEGRA=y
+CONFIG_RTC_DRV_MXC=y
+CONFIG_RTC_DRV_SNVS=y
+
+##
+## file: drivers/scsi/Kconfig
+##
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_AM53C974=m
+
+##
+## file: drivers/soc/bcm/Kconfig
+##
+CONFIG_RASPBERRYPI_POWER=y
+
+##
+## file: drivers/soc/rockchip/Kconfig
+##
+CONFIG_ROCKCHIP_PM_DOMAINS=y
+
+##
+## file: drivers/soc/tegra/Kconfig
+##
+# CONFIG_ARCH_TEGRA_2x_SOC is not set
+# CONFIG_ARCH_TEGRA_3x_SOC is not set
+# CONFIG_ARCH_TEGRA_114_SOC is not set
+CONFIG_ARCH_TEGRA_124_SOC=y
+
+##
+## file: drivers/spi/Kconfig
+##
+CONFIG_SPI=y
+CONFIG_SPI_BCM2835=m
+CONFIG_SPI_BCM2835AUX=m
+CONFIG_SPI_GPIO=y
+CONFIG_SPI_IMX=m
+CONFIG_SPI_MESON_SPICC=m
+CONFIG_SPI_MESON_SPIFC=m
+CONFIG_SPI_OMAP24XX=m
+CONFIG_SPI_TI_QSPI=m
+CONFIG_SPI_ORION=m
+CONFIG_SPI_PL022=m
+CONFIG_SPI_ROCKCHIP=m
+CONFIG_SPI_SUN4I=m
+CONFIG_SPI_SUN6I=m
+CONFIG_SPI_TEGRA114=m
+CONFIG_SPI_TEGRA20_SFLASH=m
+
+##
+## file: drivers/staging/vc04_services/bcm2835-audio/Kconfig
+##
+CONFIG_SND_BCM2835=m
+
+##
+## file: drivers/thermal/Kconfig
+##
+CONFIG_IMX_THERMAL=m
+CONFIG_ROCKCHIP_THERMAL=m
+CONFIG_DOVE_THERMAL=m
+CONFIG_ARMADA_THERMAL=y
+
+##
+## file: drivers/thermal/broadcom/Kconfig
+##
+CONFIG_BCM2835_THERMAL=m
+
+##
+## file: drivers/thermal/tegra/Kconfig
+##
+CONFIG_TEGRA_SOCTHERM=y
+
+##
+## file: drivers/thermal/ti-soc-thermal/Kconfig
+##
+CONFIG_TI_SOC_THERMAL=m
+CONFIG_TI_THERMAL=y
+CONFIG_OMAP4_THERMAL=y
+CONFIG_OMAP5_THERMAL=y
+CONFIG_DRA752_THERMAL=y
+
+##
+## file: drivers/tty/serial/Kconfig
+##
+CONFIG_SERIAL_AMBA_PL010=y
+CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_SERIAL_MESON=y
+CONFIG_SERIAL_MESON_CONSOLE=y
+CONFIG_SERIAL_SAMSUNG=y
+CONFIG_SERIAL_SAMSUNG_CONSOLE=y
+CONFIG_SERIAL_TEGRA=y
+CONFIG_SERIAL_IMX=y
+CONFIG_SERIAL_IMX_CONSOLE=y
+CONFIG_SERIAL_VT8500=y
+CONFIG_SERIAL_VT8500_CONSOLE=y
+CONFIG_SERIAL_OMAP=y
+CONFIG_SERIAL_OMAP_CONSOLE=y
+CONFIG_SERIAL_ARC=y
+CONFIG_SERIAL_ARC_CONSOLE=y
+CONFIG_SERIAL_ARC_NR_PORTS=1
+
+##
+## file: drivers/tty/serial/8250/Kconfig
+##
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_DMA=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+CONFIG_SERIAL_8250_DW=y
+# CONFIG_SERIAL_8250_EM is not set
+CONFIG_SERIAL_OF_PLATFORM=y
+
+##
+## file: drivers/usb/Kconfig
+##
+CONFIG_USB=m
+
+##
+## file: drivers/usb/chipidea/Kconfig
+##
+CONFIG_USB_CHIPIDEA=m
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+
+##
+## file: drivers/usb/dwc2/Kconfig
+##
+CONFIG_USB_DWC2=m
+## choice: DWC2 Mode Selection
+CONFIG_USB_DWC2_DUAL_ROLE=y
+## end choice
+
+##
+## file: drivers/usb/dwc3/Kconfig
+##
+CONFIG_USB_DWC3=m
+## choice: DWC3 Mode Selection
+CONFIG_USB_DWC3_DUAL_ROLE=y
+## end choice
+CONFIG_USB_DWC3_OMAP=m
+CONFIG_USB_DWC3_EXYNOS=m
+# CONFIG_USB_DWC3_PCI is not set
+
+##
+## file: drivers/usb/gadget/Kconfig
+##
+CONFIG_USB_GADGET=m
+
+##
+## file: drivers/usb/gadget/legacy/Kconfig
+##
+CONFIG_USB_G_NOKIA=m
+
+##
+## file: drivers/usb/host/Kconfig
+##
+CONFIG_USB_XHCI_MVEBU=m
+CONFIG_USB_XHCI_TEGRA=m
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_MXC=m
+CONFIG_USB_EHCI_HCD_OMAP=y
+CONFIG_USB_EHCI_TEGRA=m
+CONFIG_USB_EHCI_EXYNOS=m
+CONFIG_USB_EHCI_HCD_PLATFORM=m
+CONFIG_USB_OHCI_HCD=m
+CONFIG_USB_OHCI_HCD_OMAP3=y
+CONFIG_USB_OHCI_EXYNOS=m
+CONFIG_USB_OHCI_HCD_PLATFORM=m
+
+##
+## file: drivers/usb/misc/Kconfig
+##
+CONFIG_USB_HSIC_USB3503=m
+
+##
+## file: drivers/usb/musb/Kconfig
+##
+CONFIG_USB_MUSB_HDRC=m
+## choice: MUSB Mode Selection
+# CONFIG_USB_MUSB_HOST is not set
+# CONFIG_USB_MUSB_GADGET is not set
+CONFIG_USB_MUSB_DUAL_ROLE=y
+## end choice
+CONFIG_USB_MUSB_SUNXI=m
+CONFIG_USB_MUSB_TUSB6010=m
+CONFIG_USB_MUSB_OMAP2PLUS=m
+CONFIG_USB_MUSB_AM35X=m
+CONFIG_USB_MUSB_DSPS=m
+# CONFIG_MUSB_PIO_ONLY is not set
+CONFIG_USB_INVENTRA_DMA=y
+CONFIG_USB_TI_CPPI41_DMA=y
+CONFIG_USB_TUSB_OMAP_DMA=y
+
+##
+## file: drivers/usb/phy/Kconfig
+##
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_AM335X_PHY_USB=m
+CONFIG_TWL6030_USB=m
+CONFIG_USB_MXS_PHY=m
+
+##
+## file: drivers/video/backlight/Kconfig
+##
+CONFIG_BACKLIGHT_PWM=m
+CONFIG_BACKLIGHT_PANDORA=m
+CONFIG_BACKLIGHT_GPIO=m
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+CONFIG_FB_ARMCLCD=y
+CONFIG_FB_EFI=y
+CONFIG_FB_VT8500=y
+CONFIG_FB_WM8505=y
+CONFIG_FB_SIMPLE=y
+
+##
+## file: drivers/video/fbdev/omap2/omapfb/Kconfig
+##
+#. Redundant and conflicting with DRM_OMAP
+# CONFIG_FB_OMAP2 is not set
+
+##
+## file: drivers/virtio/Kconfig
+##
+CONFIG_VIRTIO_MMIO=m
+
+##
+## file: drivers/w1/masters/Kconfig
+##
+CONFIG_HDQ_MASTER_OMAP=m
+
+##
+## file: drivers/watchdog/Kconfig
+##
+CONFIG_DA9052_WATCHDOG=m
+CONFIG_ARM_SP805_WATCHDOG=m
+CONFIG_S3C2410_WATCHDOG=m
+CONFIG_DW_WATCHDOG=m
+CONFIG_OMAP_WATCHDOG=m
+CONFIG_ORION_WATCHDOG=m
+CONFIG_SUNXI_WATCHDOG=m
+CONFIG_TWL4030_WATCHDOG=m
+CONFIG_IMX2_WDT=m
+CONFIG_TEGRA_WATCHDOG=m
+CONFIG_MESON_WATCHDOG=m
+CONFIG_BCM2835_WDT=m
+
+##
+## file: kernel/power/Kconfig
+##
+CONFIG_SUSPEND=y
+CONFIG_APM_EMULATION=y
+
+##
+## file: mm/Kconfig
+##
+CONFIG_CMA=y
+
+##
+## file: net/dsa/Kconfig
+##
+CONFIG_NET_DSA=m
+
+##
+## file: net/phonet/Kconfig
+##
+CONFIG_PHONET=m
+
+##
+## file: sound/pci/hda/Kconfig
+##
+CONFIG_SND_HDA_TEGRA=m
+
+##
+## file: sound/soc/Kconfig
+##
+CONFIG_SND_SOC=m
+
+##
+## file: sound/soc/bcm/Kconfig
+##
+CONFIG_SND_BCM2835_SOC_I2S=m
+
+##
+## file: sound/soc/codecs/Kconfig
+##
+CONFIG_SND_SOC_SPDIF=y
+
+##
+## file: sound/soc/davinci/Kconfig
+##
+CONFIG_SND_EDMA_SOC=m
+CONFIG_SND_DAVINCI_SOC_MCASP=m
+
+##
+## file: sound/soc/fsl/Kconfig
+##
+CONFIG_SND_IMX_SOC=m
+CONFIG_SND_SOC_EUKREA_TLV320=m
+CONFIG_SND_SOC_IMX_ES8328=m
+CONFIG_SND_SOC_IMX_SGTL5000=m
+CONFIG_SND_SOC_IMX_SPDIF=m
+CONFIG_SND_SOC_IMX_MC13783=m
+
+##
+## file: sound/soc/generic/Kconfig
+##
+CONFIG_SND_SIMPLE_CARD=m
+
+##
+## file: sound/soc/kirkwood/Kconfig
+##
+CONFIG_SND_KIRKWOOD_SOC=m
+
+##
+## file: sound/soc/omap/Kconfig
+##
+CONFIG_SND_OMAP_SOC=m
+CONFIG_SND_OMAP_SOC_RX51=m
+CONFIG_SND_OMAP_SOC_AM3517EVM=m
+CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m
+CONFIG_SND_OMAP_SOC_OMAP_ABE_TWL6040=m
+CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m
+
+##
+## file: sound/soc/rockchip/Kconfig
+##
+CONFIG_SND_SOC_ROCKCHIP=m
+CONFIG_SND_SOC_ROCKCHIP_I2S=m
+CONFIG_SND_SOC_ROCKCHIP_SPDIF=m
+CONFIG_SND_SOC_ROCKCHIP_MAX98090=m
+CONFIG_SND_SOC_ROCKCHIP_RT5645=m
+
+##
+## file: sound/soc/sunxi/Kconfig
+##
+CONFIG_SND_SUN4I_CODEC=m
+CONFIG_SND_SUN8I_CODEC=m
+CONFIG_SND_SUN8I_CODEC_ANALOG=m
+CONFIG_SND_SUN4I_SPDIF=m
+
+##
+## file: sound/soc/tegra/Kconfig
+##
+CONFIG_SND_SOC_TEGRA=m
+CONFIG_SND_SOC_TEGRA_RT5640=m
+CONFIG_SND_SOC_TEGRA_WM8753=m
+CONFIG_SND_SOC_TEGRA_WM8903=m
+CONFIG_SND_SOC_TEGRA_TRIMSLICE=m
+CONFIG_SND_SOC_TEGRA_ALC5632=m
+CONFIG_SND_SOC_TEGRA_MAX98090=m
+CONFIG_SND_SOC_TEGRA_RT5677=m
+
diff --git a/debian/config/armhf/config.armmp-lpae b/debian/config/armhf/config.armmp-lpae
new file mode 100644
index 000000000..d5045f1ee
--- /dev/null
+++ b/debian/config/armhf/config.armmp-lpae
@@ -0,0 +1,21 @@
+##
+## file: arch/arm/Kconfig
+##
+CONFIG_ARM_DMA_IOMMU_ALIGNMENT=8
+
+##
+## file: arch/arm/kvm/Kconfig
+##
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=y
+
+##
+## file: arch/arm/mm/Kconfig
+##
+CONFIG_ARM_LPAE=y
+
+##
+## file: drivers/iommu/Kconfig
+##
+CONFIG_ARM_SMMU=y
+
diff --git a/debian/config/armhf/defines b/debian/config/armhf/defines
new file mode 100644
index 000000000..d134eb51a
--- /dev/null
+++ b/debian/config/armhf/defines
@@ -0,0 +1,27 @@
+[base]
+featuresets:
+ none
+ rt
+kernel-arch: arm
+
+[build]
+image-file: arch/arm/boot/zImage
+vdso: true
+
+[image]
+install-stem: vmlinuz
+
+[relations]
+headers%gcc-8: linux-compiler-gcc-8-arm
+
+[armmp_description]
+hardware: ARMv7 multiplatform compatible SoCs
+hardware-long: ARMv7 multiplatform kernel. See
+ https://wiki.debian.org/DebianKernel/ARMMP for details of supported
+ platforms
+
+[armmp-lpae_description]
+hardware: ARMv7 multiplatform compatible SoCs supporting LPAE
+hardware-long: ARMv7 multiplatform kernel supporting LPAE. See
+ https://wiki.debian.org/DebianKernel/ARMMP for details of supported
+ platforms.
diff --git a/debian/config/armhf/none/defines b/debian/config/armhf/none/defines
new file mode 100644
index 000000000..1197d49de
--- /dev/null
+++ b/debian/config/armhf/none/defines
@@ -0,0 +1,4 @@
+[base]
+flavours:
+ armmp
+ armmp-lpae
diff --git a/debian/config/armhf/rt/defines b/debian/config/armhf/rt/defines
new file mode 100644
index 000000000..897e415f8
--- /dev/null
+++ b/debian/config/armhf/rt/defines
@@ -0,0 +1,3 @@
+[base]
+flavours:
+ armmp
diff --git a/debian/config/config b/debian/config/config
new file mode 100644
index 000000000..65131861e
--- /dev/null
+++ b/debian/config/config
@@ -0,0 +1,8075 @@
+##
+## file: arch/Kconfig
+##
+CONFIG_OPROFILE=m
+CONFIG_KPROBES=y
+CONFIG_JUMP_LABEL=y
+# CONFIG_STATIC_KEYS_SELFTEST is not set
+CONFIG_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR_STRONG=y
+CONFIG_VMAP_STACK=y
+CONFIG_STRICT_KERNEL_RWX=y
+CONFIG_STRICT_MODULE_RWX=y
+
+##
+## file: block/Kconfig
+##
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_INTEGRITY=y
+CONFIG_BLK_DEV_ZONED=y
+CONFIG_BLK_DEV_THROTTLING=y
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
+# CONFIG_BLK_CMDLINE_PARSER is not set
+CONFIG_BLK_WBT=y
+# CONFIG_BLK_CGROUP_IOLATENCY is not set
+# CONFIG_BLK_WBT_SQ is not set
+CONFIG_BLK_WBT_MQ=y
+CONFIG_BLK_DEBUG_FS=y
+CONFIG_BLK_SED_OPAL=y
+
+##
+## file: block/Kconfig.iosched
+##
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_CFQ_GROUP_IOSCHED=y
+## choice: Default I/O scheduler
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+## end choice
+CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
+CONFIG_IOSCHED_BFQ=m
+CONFIG_BFQ_GROUP_IOSCHED=y
+
+##
+## file: block/partitions/Kconfig
+##
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_AIX_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+CONFIG_KARMA_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+# CONFIG_CMDLINE_PARTITION is not set
+
+##
+## file: certs/Kconfig
+##
+#. Signatures are added in linux-signed
+CONFIG_MODULE_SIG_KEY=""
+#. Actually a file containing X.509 certificates, not keys.
+#. Whenever the filename changes, this also needs to be updated in
+#. debian/featureset-*/config
+CONFIG_SYSTEM_TRUSTED_KEYS="debian/certs/debian-uefi-certs.pem"
+#. Add secondary keyring with keys from UEFI db and MOK.
+CONFIG_SECONDARY_TRUSTED_KEYRING=y
+CONFIG_SYSTEM_BLACKLIST_KEYRING=y
+CONFIG_EFI_SIGNATURE_LIST_PARSER=y
+CONFIG_LOAD_UEFI_KEYS=y
+
+##
+## file: crypto/Kconfig
+##
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_FIPS=y
+CONFIG_CRYPTO_RSA=m
+CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_ECDH=m
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_USER=m
+# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_PCRYPT=m
+# CONFIG_CRYPTO_CRYPTD is not set
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_TEST=m
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_AEGIS128=m
+CONFIG_CRYPTO_AEGIS128L=m
+CONFIG_CRYPTO_AEGIS256=m
+CONFIG_CRYPTO_MORUS640=m
+CONFIG_CRYPTO_MORUS1280=m
+CONFIG_CRYPTO_SEQIV=m
+CONFIG_CRYPTO_ECHAINIV=m
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=m
+CONFIG_CRYPTO_CMAC=m
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_VMAC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRC32=m
+CONFIG_CRYPTO_CRCT10DIF=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_POLY1305=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_SHA1=m
+# CONFIG_CRYPTO_SHA1_MB is not set
+#. Must be built-in for IMA_DEFAULT_HASH_SHA256
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_SHA3=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_CHACHA20=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_LZO=m
+# CONFIG_CRYPTO_842 is not set
+CONFIG_CRYPTO_LZ4=m
+CONFIG_CRYPTO_LZ4HC=m
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_DRBG_MENU=m
+# CONFIG_CRYPTO_DRBG_HASH is not set
+# CONFIG_CRYPTO_DRBG_CTR is not set
+CONFIG_CRYPTO_JITTERENTROPY=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_USER_API_RNG=m
+CONFIG_CRYPTO_USER_API_AEAD=m
+
+##
+## file: crypto/asymmetric_keys/Kconfig
+##
+#. Not yet
+# CONFIG_ASYMMETRIC_KEY_TYPE is not set
+
+##
+## file: drivers/accessibility/Kconfig
+##
+CONFIG_ACCESSIBILITY=y
+CONFIG_A11Y_BRAILLE_CONSOLE=y
+
+##
+## file: drivers/acpi/Kconfig
+##
+# CONFIG_ACPI_DEBUGGER is not set
+CONFIG_ACPI_TAD=m
+CONFIG_ACPI_TABLE_UPGRADE=y
+# CONFIG_ACPI_BGRT is not set
+# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
+# CONFIG_PMIC_OPREGION is not set
+# CONFIG_ACPI_CONFIGFS is not set
+
+##
+## file: drivers/acpi/nfit/Kconfig
+##
+CONFIG_ACPI_NFIT=m
+
+##
+## file: drivers/android/Kconfig
+##
+# CONFIG_ANDROID is not set
+CONFIG_ANDROID_BINDER_IPC=m
+#. This configuration should support Anbox
+CONFIG_ANDROID_BINDER_DEVICES="binder"
+# CONFIG_ANDROID_BINDER_IPC_SELFTEST is not set
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_ATA=m
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA_ACPI=y
+CONFIG_SATA_ZPODD=y
+CONFIG_SATA_PMP=y
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_MOBILE_LPM_POLICY=3
+# CONFIG_SATA_AHCI_PLATFORM is not set
+# CONFIG_AHCI_CEVA is not set
+# CONFIG_AHCI_QORIQ is not set
+#. This driver loses data (#714295)
+# CONFIG_SATA_INIC162X is not set
+CONFIG_SATA_ACARD_AHCI=m
+CONFIG_SATA_SIL24=m
+CONFIG_ATA_SFF=y
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_SX4=m
+CONFIG_ATA_BMDMA=y
+CONFIG_ATA_PIIX=m
+# CONFIG_SATA_DWC is not set
+# CONFIG_SATA_HIGHBANK is not set
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_SATA_PROMISE=m
+# CONFIG_SATA_RCAR is not set
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+# CONFIG_PATA_ALI is not set
+# CONFIG_PATA_AMD is not set
+# CONFIG_PATA_ARASAN_CF is not set
+CONFIG_PATA_ARTOP=m
+# CONFIG_PATA_ATIIXP is not set
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_CMD64X=m
+# CONFIG_PATA_CS5536 is not set
+# CONFIG_PATA_CYPRESS is not set
+# CONFIG_PATA_EFAR is not set
+# CONFIG_PATA_HPT366 is not set
+# CONFIG_PATA_HPT37X is not set
+# CONFIG_PATA_HPT3X2N is not set
+# CONFIG_PATA_HPT3X3 is not set
+CONFIG_PATA_IT8213=m
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_MARVELL=m
+# CONFIG_PATA_NETCELL is not set
+CONFIG_PATA_NINJA32=m
+# CONFIG_PATA_NS87415 is not set
+# CONFIG_PATA_OLDPIIX is not set
+# CONFIG_PATA_OPTIDMA is not set
+# CONFIG_PATA_PDC2027X is not set
+# CONFIG_PATA_PDC_OLD is not set
+# CONFIG_PATA_RADISYS is not set
+CONFIG_PATA_RDC=m
+CONFIG_PATA_SCH=m
+# CONFIG_PATA_SERVERWORKS is not set
+# CONFIG_PATA_SIL680 is not set
+CONFIG_PATA_SIS=m
+CONFIG_PATA_TOSHIBA=m
+# CONFIG_PATA_TRIFLEX is not set
+# CONFIG_PATA_VIA is not set
+# CONFIG_PATA_WINBOND is not set
+# CONFIG_PATA_CMD640_PCI is not set
+# CONFIG_PATA_ISAPNP is not set
+# CONFIG_PATA_MPIIX is not set
+# CONFIG_PATA_NS87410 is not set
+# CONFIG_PATA_OPTI is not set
+# CONFIG_PATA_PCMCIA is not set
+# CONFIG_PATA_PLATFORM is not set
+# CONFIG_PATA_QDI is not set
+# CONFIG_PATA_RZ1000 is not set
+# CONFIG_PATA_WINBOND_VLB is not set
+# CONFIG_PATA_ACPI is not set
+CONFIG_ATA_GENERIC=m
+# CONFIG_PATA_LEGACY is not set
+
+##
+## file: drivers/atm/Kconfig
+##
+CONFIG_ATM_DUMMY=m
+CONFIG_ATM_NICSTAR=m
+CONFIG_ATM_NICSTAR_USE_SUNI=y
+CONFIG_ATM_NICSTAR_USE_IDT77105=y
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+CONFIG_ATM_SOLOS=m
+
+##
+## file: drivers/auxdisplay/Kconfig
+##
+# CONFIG_AUXDISPLAY is not set
+# CONFIG_PANEL is not set
+
+##
+## file: drivers/base/Kconfig
+##
+# CONFIG_UEVENT_HELPER is not set
+CONFIG_DEVTMPFS=y
+# CONFIG_DEVTMPFS_MOUNT is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_ALLOW_DEV_COREDUMP=y
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
+# CONFIG_DMA_FENCE_TRACE is not set
+
+##
+## file: drivers/base/firmware_loader/Kconfig
+##
+CONFIG_FW_LOADER=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
+
+##
+## file: drivers/base/test/Kconfig
+##
+# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
+
+##
+## file: drivers/bcma/Kconfig
+##
+CONFIG_BCMA=m
+CONFIG_BCMA_HOST_PCI=y
+# CONFIG_BCMA_HOST_SOC is not set
+# CONFIG_BCMA_DRIVER_PCI_HOSTMODE is not set
+# CONFIG_BCMA_DRIVER_GMAC_CMN is not set
+# CONFIG_BCMA_DRIVER_GPIO is not set
+# CONFIG_BCMA_DEBUG is not set
+
+##
+## file: drivers/block/Kconfig
+##
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_NULL_BLK=m
+# CONFIG_PARIDE is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_SKD=m
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=16384
+CONFIG_ATA_OVER_ETH=m
+CONFIG_XEN_BLKDEV_FRONTEND=m
+CONFIG_XEN_BLKDEV_BACKEND=m
+CONFIG_VIRTIO_BLK=m
+# CONFIG_VIRTIO_BLK_SCSI is not set
+CONFIG_BLK_DEV_RBD=m
+# CONFIG_BLK_DEV_RSXX is not set
+
+##
+## file: drivers/block/drbd/Kconfig
+##
+CONFIG_BLK_DEV_DRBD=m
+# CONFIG_DRBD_FAULT_INJECTION is not set
+
+##
+## file: drivers/block/mtip32xx/Kconfig
+##
+CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
+
+##
+## file: drivers/block/zram/Kconfig
+##
+CONFIG_ZRAM=m
+CONFIG_ZRAM_WRITEBACK=y
+CONFIG_ZRAM_MEMORY_TRACKING=y
+
+##
+## file: drivers/bluetooth/Kconfig
+##
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y
+CONFIG_BT_HCIBTUSB_BCM=y
+CONFIG_BT_HCIBTUSB_RTL=y
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIUART_NOKIA=m
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIUART_3WIRE=y
+CONFIG_BT_HCIUART_INTEL=y
+CONFIG_BT_HCIUART_BCM=y
+CONFIG_BT_HCIUART_RTL=y
+CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_AG6XX=y
+CONFIG_BT_HCIUART_MRVL=y
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_WILINK=m
+CONFIG_BT_MTKUART=m
+
+##
+## file: drivers/bus/Kconfig
+##
+# CONFIG_OMAP_OCP2SCP is not set
+
+##
+## file: drivers/char/Kconfig
+##
+CONFIG_DEVMEM=y
+# CONFIG_DEVKMEM is not set
+CONFIG_TTY_PRINTK=m
+CONFIG_VIRTIO_CONSOLE=m
+# CONFIG_R3964 is not set
+CONFIG_PC8736x_GPIO=m
+CONFIG_NSC_GPIO=m
+# CONFIG_RAW_DRIVER is not set
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_TELCLOCK=m
+CONFIG_DEVPORT=y
+CONFIG_RANDOM_TRUST_CPU=y
+CONFIG_RANDOM_TRUST_BOOTLOADER=y
+
+##
+## file: drivers/char/hw_random/Kconfig
+##
+CONFIG_HW_RANDOM=m
+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
+CONFIG_HW_RANDOM_VIRTIO=m
+
+##
+## file: drivers/char/ipmi/Kconfig
+##
+CONFIG_IPMI_SSIF=m
+
+##
+## file: drivers/char/pcmcia/Kconfig
+##
+CONFIG_SYNCLINK_CS=m
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+CONFIG_SCR24X=m
+CONFIG_IPWIRELESS=m
+
+##
+## file: drivers/char/tpm/Kconfig
+##
+CONFIG_HW_RANDOM_TPM=y
+CONFIG_TCG_TIS_SPI=m
+CONFIG_TCG_VTPM_PROXY=m
+
+##
+## file: drivers/char/tpm/st33zp24/Kconfig
+##
+# CONFIG_TCG_TIS_ST33ZP24_SPI is not set
+
+##
+## file: drivers/char/xillybus/Kconfig
+##
+# CONFIG_XILLYBUS is not set
+
+##
+## file: drivers/clk/Kconfig
+##
+# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI514 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
+# CONFIG_COMMON_CLK_CDCE706 is not set
+# CONFIG_COMMON_CLK_CDCE925 is not set
+# CONFIG_COMMON_CLK_CS2000_CP is not set
+
+##
+## file: drivers/connector/Kconfig
+##
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
+
+##
+## file: drivers/cpufreq/Kconfig
+##
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_STAT=y
+## choice: Default CPUFreq governor
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
+## end choice
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+# CONFIG_CPUFREQ_DT is not set
+
+##
+## file: drivers/cpuidle/Kconfig
+##
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+
+##
+## file: drivers/crypto/Kconfig
+##
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_HIFN_795X=m
+CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+
+##
+## file: drivers/crypto/chelsio/Kconfig
+##
+CONFIG_CRYPTO_DEV_CHELSIO=m
+
+##
+## file: drivers/dax/Kconfig
+##
+CONFIG_DEV_DAX=m
+CONFIG_DEV_DAX_PMEM=m
+
+##
+## file: drivers/devfreq/Kconfig
+##
+# CONFIG_PM_DEVFREQ is not set
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m
+# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
+# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
+# CONFIG_DEVFREQ_GOV_USERSPACE is not set
+
+##
+## file: drivers/devfreq/event/Kconfig
+##
+# CONFIG_PM_DEVFREQ_EVENT is not set
+
+##
+## file: drivers/dma/Kconfig
+##
+# CONFIG_DMADEVICES_DEBUG is not set
+# CONFIG_FSL_EDMA is not set
+# CONFIG_INTEL_IDMA64 is not set
+CONFIG_ASYNC_TX_DMA=y
+# CONFIG_DMATEST is not set
+
+##
+## file: drivers/dma/dw/Kconfig
+##
+# CONFIG_DW_DMAC is not set
+# CONFIG_DW_DMAC_PCI is not set
+
+##
+## file: drivers/dma-buf/Kconfig
+##
+# CONFIG_SYNC_FILE is not set
+
+##
+## file: drivers/edac/Kconfig
+##
+CONFIG_EDAC_LEGACY_SYSFS=y
+
+##
+## file: drivers/extcon/Kconfig
+##
+# CONFIG_EXTCON is not set
+
+##
+## file: drivers/firewire/Kconfig
+##
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_NET=m
+CONFIG_FIREWIRE_NOSY=m
+
+##
+## file: drivers/firmware/Kconfig
+##
+CONFIG_DMI_SYSFS=y
+CONFIG_FW_CFG_SYSFS=m
+#. Needs to be disabled under Secure Boot - but should be done at run-time
+# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
+
+##
+## file: drivers/firmware/efi/Kconfig
+##
+CONFIG_EFI_VARS=m
+CONFIG_EFI_VARS_PSTORE=m
+# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
+CONFIG_EFI_BOOTLOADER_CONTROL=m
+CONFIG_EFI_CAPSULE_LOADER=m
+# CONFIG_EFI_TEST is not set
+#. Until userland clears the flag on clean shutdown
+# CONFIG_RESET_ATTACK_MITIGATION is not set
+
+##
+## file: drivers/firmware/google/Kconfig
+##
+CONFIG_GOOGLE_FIRMWARE=y
+CONFIG_GOOGLE_COREBOOT_TABLE_ACPI=m
+CONFIG_GOOGLE_COREBOOT_TABLE_OF=m
+CONFIG_GOOGLE_MEMCONSOLE_COREBOOT=m
+
+##
+## file: drivers/fmc/Kconfig
+##
+# CONFIG_FMC is not set
+
+##
+## file: drivers/fpga/Kconfig
+##
+# CONFIG_FPGA is not set
+
+##
+## file: drivers/gnss/Kconfig
+##
+CONFIG_GNSS=m
+CONFIG_GNSS_SIRF_SERIAL=m
+CONFIG_GNSS_UBX_SERIAL=m
+
+##
+## file: drivers/gpio/Kconfig
+##
+# CONFIG_GPIOLIB is not set
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+# CONFIG_GPIO_74XX_MMIO is not set
+# CONFIG_GPIO_ALTERA is not set
+# CONFIG_GPIO_AMDPT is not set
+# CONFIG_GPIO_DWAPB is not set
+CONFIG_GPIO_EXAR=m
+# CONFIG_GPIO_GENERIC_PLATFORM is not set
+# CONFIG_GPIO_GRGPIO is not set
+# CONFIG_GPIO_MB86S7X is not set
+# CONFIG_GPIO_MOCKUP is not set
+# CONFIG_GPIO_VX855 is not set
+# CONFIG_GPIO_XILINX is not set
+# CONFIG_GPIO_ZX is not set
+# CONFIG_GPIO_104_IDIO_16 is not set
+# CONFIG_GPIO_IT87 is not set
+# CONFIG_GPIO_SCH311X is not set
+# CONFIG_GPIO_TS5500 is not set
+# CONFIG_GPIO_WINBOND is not set
+# CONFIG_GPIO_WS16C48 is not set
+# CONFIG_GPIO_ADP5588 is not set
+# CONFIG_GPIO_ADNP is not set
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_TPIC2810 is not set
+# CONFIG_GPIO_TS4900 is not set
+# CONFIG_GPIO_CS5535 is not set
+# CONFIG_GPIO_AMD8111 is not set
+# CONFIG_GPIO_INTEL_MID is not set
+# CONFIG_GPIO_ML_IOH is not set
+CONFIG_GPIO_PCI_IDIO_16=m
+CONFIG_GPIO_PCIE_IDIO_24=m
+# CONFIG_GPIO_RDC321X is not set
+# CONFIG_GPIO_74X164 is not set
+# CONFIG_GPIO_MAX3191X is not set
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MC33880 is not set
+# CONFIG_GPIO_PISOSR is not set
+# CONFIG_GPIO_XRA1403 is not set
+CONFIG_GPIO_VIPERBOARD=m
+
+##
+## file: drivers/gpu/drm/Kconfig
+##
+CONFIG_DRM_DP_AUX_CHARDEV=y
+# CONFIG_DRM_DEBUG_SELFTEST is not set
+CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
+# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+CONFIG_DRM_VGEM=m
+# CONFIG_DRM_VKMS is not set
+CONFIG_DRM_LEGACY=y
+CONFIG_DRM_VIA=m
+CONFIG_DRM_SAVAGE=m
+
+##
+## file: drivers/gpu/drm/amd/acp/Kconfig
+##
+# CONFIG_DRM_AMD_ACP is not set
+
+##
+## file: drivers/gpu/drm/amd/amdgpu/Kconfig
+##
+CONFIG_DRM_AMDGPU_SI=y
+CONFIG_DRM_AMDGPU_CIK=y
+CONFIG_DRM_AMDGPU_USERPTR=y
+# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
+
+##
+## file: drivers/gpu/drm/amd/display/Kconfig
+##
+CONFIG_DRM_AMD_DC=y
+# CONFIG_DEBUG_KERNEL_DC is not set
+
+##
+## file: drivers/gpu/drm/amd/lib/Kconfig
+##
+# CONFIG_CHASH_STATS is not set
+# CONFIG_CHASH_SELFTEST is not set
+
+##
+## file: drivers/gpu/drm/ast/Kconfig
+##
+# CONFIG_DRM_AST is not set
+
+##
+## file: drivers/gpu/drm/bochs/Kconfig
+##
+CONFIG_DRM_BOCHS=m
+
+##
+## file: drivers/gpu/drm/bridge/Kconfig
+##
+# CONFIG_DRM_ANALOGIX_ANX78XX is not set
+# CONFIG_DRM_NXP_PTN3460 is not set
+# CONFIG_DRM_PARADE_PS8622 is not set
+
+##
+## file: drivers/gpu/drm/bridge/adv7511/Kconfig
+##
+# CONFIG_DRM_I2C_ADV7511 is not set
+
+##
+## file: drivers/gpu/drm/cirrus/Kconfig
+##
+CONFIG_DRM_CIRRUS_QEMU=m
+
+##
+## file: drivers/gpu/drm/hisilicon/hibmc/Kconfig
+##
+# CONFIG_DRM_HISI_HIBMC is not set
+
+##
+## file: drivers/gpu/drm/i2c/Kconfig
+##
+# CONFIG_DRM_I2C_CH7006 is not set
+# CONFIG_DRM_I2C_SIL164 is not set
+# CONFIG_DRM_I2C_NXP_TDA998X is not set
+# CONFIG_DRM_I2C_NXP_TDA9950 is not set
+
+##
+## file: drivers/gpu/drm/i915/Kconfig
+##
+CONFIG_DRM_I915_CAPTURE_ERROR=y
+CONFIG_DRM_I915_COMPRESS_ERROR=y
+CONFIG_DRM_I915_USERPTR=y
+
+##
+## file: drivers/gpu/drm/i915/Kconfig.debug
+##
+# CONFIG_DRM_I915_WERROR is not set
+# CONFIG_DRM_I915_DEBUG is not set
+# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
+# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
+# CONFIG_DRM_I915_DEBUG_GUC is not set
+# CONFIG_DRM_I915_SELFTEST is not set
+# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
+# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
+
+##
+## file: drivers/gpu/drm/mgag200/Kconfig
+##
+# CONFIG_DRM_MGAG200 is not set
+
+##
+## file: drivers/gpu/drm/nouveau/Kconfig
+##
+CONFIG_DRM_NOUVEAU=m
+CONFIG_NOUVEAU_DEBUG=5
+CONFIG_NOUVEAU_DEBUG_DEFAULT=3
+# CONFIG_NOUVEAU_DEBUG_MMU is not set
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+
+##
+## file: drivers/gpu/drm/panel/Kconfig
+##
+# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_LG_LG4573 is not set
+# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+
+##
+## file: drivers/gpu/drm/qxl/Kconfig
+##
+CONFIG_DRM_QXL=m
+
+##
+## file: drivers/gpu/drm/radeon/Kconfig
+##
+# CONFIG_DRM_RADEON_USERPTR is not set
+
+##
+## file: drivers/gpu/drm/tinydrm/Kconfig
+##
+# CONFIG_DRM_TINYDRM is not set
+
+##
+## file: drivers/gpu/drm/udl/Kconfig
+##
+CONFIG_DRM_UDL=m
+
+##
+## file: drivers/gpu/drm/virtio/Kconfig
+##
+CONFIG_DRM_VIRTIO_GPU=m
+
+##
+## file: drivers/gpu/drm/vmwgfx/Kconfig
+##
+# CONFIG_DRM_VMWGFX is not set
+
+##
+## file: drivers/gpu/vga/Kconfig
+##
+CONFIG_VGA_ARB=y
+
+##
+## file: drivers/hid/Kconfig
+##
+CONFIG_HID=m
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HIDRAW=y
+CONFIG_UHID=m
+CONFIG_HID_GENERIC=m
+CONFIG_HID_A4TECH=y
+CONFIG_HID_ACCUTOUCH=m
+CONFIG_HID_ACRUX=m
+CONFIG_HID_ACRUX_FF=y
+CONFIG_HID_APPLE=y
+CONFIG_HID_ASUS=m
+CONFIG_HID_AUREAL=m
+CONFIG_HID_BELKIN=y
+CONFIG_HID_BETOP_FF=m
+CONFIG_HID_CHERRY=y
+CONFIG_HID_CHICONY=y
+CONFIG_HID_CORSAIR=m
+CONFIG_HID_COUGAR=m
+CONFIG_HID_PRODIKEYS=m
+CONFIG_HID_CMEDIA=m
+CONFIG_HID_CP2112=m
+CONFIG_HID_CYPRESS=y
+CONFIG_HID_DRAGONRISE=m
+CONFIG_DRAGONRISE_FF=y
+CONFIG_HID_EMS_FF=m
+CONFIG_HID_ELAN=m
+CONFIG_HID_ELECOM=m
+CONFIG_HID_ELO=m
+CONFIG_HID_EZKEY=y
+CONFIG_HID_GEMBIRD=m
+# CONFIG_HID_GFRM is not set
+CONFIG_HID_HOLTEK=m
+CONFIG_HOLTEK_FF=y
+# CONFIG_HID_GT683R is not set
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_ICADE=m
+CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=y
+CONFIG_HID_LCPOWER=m
+CONFIG_HID_LED=m
+CONFIG_HID_LENOVO=m
+CONFIG_HID_LOGITECH=y
+CONFIG_HID_LOGITECH_DJ=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_LOGIWHEELS_FF=y
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MAYFLASH=m
+CONFIG_HID_REDRAGON=m
+CONFIG_HID_MICROSOFT=y
+CONFIG_HID_MONTEREY=y
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_PANTHERLORD_FF=y
+CONFIG_HID_PENMOUNT=m
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PICOLCD_CIR=y
+CONFIG_HID_PLANTRONICS=m
+CONFIG_HID_PRIMAX=m
+CONFIG_HID_RETRODE=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_SAITEK=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_SONY_FF=y
+CONFIG_HID_SPEEDLINK=m
+CONFIG_HID_STEAM=m
+CONFIG_HID_STEELSERIES=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_RMI=m
+CONFIG_HID_GREENASIA=m
+CONFIG_GREENASIA_FF=y
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_HID_TIVO=m
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THINGM=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_THRUSTMASTER_FF=y
+CONFIG_HID_UDRAW_PS3=m
+CONFIG_HID_WACOM=m
+CONFIG_HID_WIIMOTE=m
+CONFIG_HID_XINMO=m
+CONFIG_HID_ZEROPLUS=m
+CONFIG_ZEROPLUS_FF=y
+CONFIG_HID_ZYDACRON=m
+CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_CUSTOM_SENSOR=m
+CONFIG_HID_ALPS=m
+
+##
+## file: drivers/hid/intel-ish-hid/Kconfig
+##
+# CONFIG_INTEL_ISH_HID is not set
+
+##
+## file: drivers/hid/usbhid/Kconfig
+##
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+#. These are for HID Boot Protocol, not full HID
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+
+##
+## file: drivers/hsi/Kconfig
+##
+# CONFIG_HSI is not set
+
+##
+## file: drivers/hwmon/Kconfig
+##
+CONFIG_HWMON=y
+# CONFIG_HWMON_DEBUG_CHIP is not set
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+# CONFIG_SENSORS_AD7314 is not set
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM9240=m
+# CONFIG_SENSORS_ADT7310 is not set
+CONFIG_SENSORS_ADT7411=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_APPLESMC=m
+CONFIG_SENSORS_ASPEED=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS620=m
+CONFIG_SENSORS_I5K_AMB=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_MC13783_ADC=m
+CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_FTSTEUTATES=m
+CONFIG_SENSORS_G760A=m
+# CONFIG_SENSORS_GPIO_FAN is not set
+# CONFIG_SENSORS_HIH6130 is not set
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+# CONFIG_SENSORS_IIO_HWMON is not set
+CONFIG_SENSORS_CORETEMP=m
+# CONFIG_SENSORS_IT87 is not set
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LINEAGE=m
+CONFIG_SENSORS_LTC4151=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4261=m
+CONFIG_SENSORS_MAX1111=m
+CONFIG_SENSORS_MAX16065=m
+CONFIG_SENSORS_MAX1668=m
+# CONFIG_SENSORS_MAX197 is not set
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
+CONFIG_SENSORS_MAX6650=m
+# CONFIG_SENSORS_MCP3021 is not set
+CONFIG_SENSORS_ADCXX=m
+CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM73=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
+CONFIG_SENSORS_NCT6683=m
+CONFIG_SENSORS_NCT6775=m
+CONFIG_SENSORS_NCT7802=m
+CONFIG_SENSORS_NCT7904=m
+CONFIG_SENSORS_NPCM7XX=m
+# CONFIG_SENSORS_SHT15 is not set
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC6W201=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SMM665=m
+CONFIG_SENSORS_ADS1015=m
+CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_ADS7871=m
+CONFIG_SENSORS_AMC6821=m
+# CONFIG_SENSORS_INA209 is not set
+# CONFIG_SENSORS_INA2XX is not set
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83773G=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_SENSORS_WM831X=m
+CONFIG_SENSORS_WM8350=m
+# CONFIG_SENSORS_XGENE is not set
+CONFIG_SENSORS_ATK0110=m
+
+##
+## file: drivers/hwmon/pmbus/Kconfig
+##
+# CONFIG_PMBUS is not set
+
+##
+## file: drivers/hwtracing/intel_th/Kconfig
+##
+# CONFIG_INTEL_TH is not set
+
+##
+## file: drivers/hwtracing/stm/Kconfig
+##
+# CONFIG_STM is not set
+# CONFIG_STM_DUMMY is not set
+# CONFIG_STM_SOURCE_CONSOLE is not set
+
+##
+## file: drivers/i2c/Kconfig
+##
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+# CONFIG_I2C_MUX is not set
+CONFIG_I2C_HELPER_AUTO=y
+# CONFIG_I2C_SLAVE is not set
+
+##
+## file: drivers/i2c/busses/Kconfig
+##
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_NFORCE2_S4985=m
+# CONFIG_I2C_CBUS_GPIO is not set
+# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
+# CONFIG_I2C_DESIGNWARE_SLAVE is not set
+# CONFIG_I2C_DESIGNWARE_BAYTRAIL is not set
+# CONFIG_I2C_EMEV2 is not set
+# CONFIG_I2C_GPIO is not set
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_RK3X is not set
+CONFIG_I2C_SIMTEC=m
+# CONFIG_I2C_XILINX is not set
+CONFIG_I2C_DIOLAN_U2C=m
+CONFIG_I2C_ROBOTFUZZ_OSIF=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+CONFIG_I2C_VIPERBOARD=m
+# CONFIG_I2C_MLXCPLD is not set
+
+##
+## file: drivers/i2c/muxes/Kconfig
+##
+# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
+# CONFIG_I2C_MUX_GPIO is not set
+# CONFIG_I2C_MUX_LTC4306 is not set
+# CONFIG_I2C_MUX_PCA9541 is not set
+# CONFIG_I2C_MUX_PCA954x is not set
+# CONFIG_I2C_MUX_PINCTRL is not set
+# CONFIG_I2C_MUX_REG is not set
+# CONFIG_I2C_MUX_MLXCPLD is not set
+
+##
+## file: drivers/ide/Kconfig
+##
+# CONFIG_IDE is not set
+#. But for ia64 and m68k flavours that need it
+CONFIG_IDE_GD=m
+CONFIG_IDE_GD_ATA=y
+CONFIG_IDE_GD_ATAPI=y
+# CONFIG_IDE_TASK_IOCTL is not set
+CONFIG_IDE_PROC_FS=y
+# CONFIG_BLK_DEV_PLATFORM is not set
+# CONFIG_BLK_DEV_JMICRON is not set
+# CONFIG_BLK_DEV_IT821X is not set
+
+##
+## file: drivers/iio/Kconfig
+##
+CONFIG_IIO=m
+CONFIG_IIO_BUFFER=y
+# CONFIG_IIO_TRIGGER is not set
+
+##
+## file: drivers/iio/accel/Kconfig
+##
+# CONFIG_ADIS16201 is not set
+# CONFIG_ADIS16209 is not set
+# CONFIG_BMA180 is not set
+# CONFIG_BMA220 is not set
+# CONFIG_BMC150_ACCEL is not set
+# CONFIG_DMARD09 is not set
+CONFIG_HID_SENSOR_ACCEL_3D=m
+# CONFIG_IIO_ST_ACCEL_3AXIS is not set
+# CONFIG_KXSD9 is not set
+# CONFIG_KXCJK1013 is not set
+# CONFIG_MC3230 is not set
+# CONFIG_MMA7455_I2C is not set
+# CONFIG_MMA7455_SPI is not set
+# CONFIG_MMA7660 is not set
+# CONFIG_MMA8452 is not set
+# CONFIG_MMA9551 is not set
+# CONFIG_MMA9553 is not set
+# CONFIG_MXC4005 is not set
+# CONFIG_MXC6255 is not set
+# CONFIG_SCA3000 is not set
+# CONFIG_STK8312 is not set
+# CONFIG_STK8BA50 is not set
+
+##
+## file: drivers/iio/adc/Kconfig
+##
+# CONFIG_AD7266 is not set
+# CONFIG_AD7291 is not set
+# CONFIG_AD7298 is not set
+# CONFIG_AD7476 is not set
+# CONFIG_AD7791 is not set
+# CONFIG_AD7793 is not set
+# CONFIG_AD7887 is not set
+# CONFIG_AD7923 is not set
+# CONFIG_AD799X is not set
+# CONFIG_CC10001_ADC is not set
+# CONFIG_HI8435 is not set
+# CONFIG_INA2XX_ADC is not set
+# CONFIG_LTC2485 is not set
+# CONFIG_MAX1027 is not set
+# CONFIG_MAX1363 is not set
+# CONFIG_MCP320X is not set
+# CONFIG_MCP3422 is not set
+# CONFIG_NAU7802 is not set
+# CONFIG_TI_ADC081C is not set
+# CONFIG_TI_ADC0832 is not set
+# CONFIG_TI_ADC12138 is not set
+# CONFIG_TI_ADC128S052 is not set
+# CONFIG_TI_ADC161S626 is not set
+# CONFIG_TI_ADS1015 is not set
+# CONFIG_VF610_ADC is not set
+CONFIG_VIPERBOARD_ADC=m
+
+##
+## file: drivers/iio/amplifiers/Kconfig
+##
+# CONFIG_AD8366 is not set
+
+##
+## file: drivers/iio/buffer/Kconfig
+##
+#. These will be selected by drivers that need them
+# CONFIG_IIO_BUFFER_CB is not set
+# CONFIG_IIO_KFIFO_BUF is not set
+
+##
+## file: drivers/iio/chemical/Kconfig
+##
+# CONFIG_ATLAS_PH_SENSOR is not set
+# CONFIG_IAQCORE is not set
+# CONFIG_VZ89X is not set
+
+##
+## file: drivers/iio/common/ssp_sensors/Kconfig
+##
+# CONFIG_IIO_SSP_SENSORHUB is not set
+
+##
+## file: drivers/iio/dac/Kconfig
+##
+# CONFIG_AD5064 is not set
+# CONFIG_AD5360 is not set
+# CONFIG_AD5380 is not set
+# CONFIG_AD5421 is not set
+CONFIG_AD5446=m
+# CONFIG_AD5449 is not set
+# CONFIG_AD5592R is not set
+# CONFIG_AD5593R is not set
+# CONFIG_AD5504 is not set
+# CONFIG_AD5624R_SPI is not set
+# CONFIG_AD5686_SPI is not set
+# CONFIG_AD5696_I2C is not set
+# CONFIG_AD5755 is not set
+# CONFIG_AD5761 is not set
+# CONFIG_AD5764 is not set
+# CONFIG_AD5791 is not set
+# CONFIG_AD7303 is not set
+# CONFIG_AD8801 is not set
+# CONFIG_M62332 is not set
+# CONFIG_MAX517 is not set
+# CONFIG_MAX5821 is not set
+# CONFIG_MCP4725 is not set
+# CONFIG_MCP4922 is not set
+
+##
+## file: drivers/iio/dummy/Kconfig
+##
+# CONFIG_IIO_SIMPLE_DUMMY is not set
+
+##
+## file: drivers/iio/frequency/Kconfig
+##
+# CONFIG_AD9523 is not set
+# CONFIG_ADF4350 is not set
+
+##
+## file: drivers/iio/gyro/Kconfig
+##
+# CONFIG_ADIS16080 is not set
+# CONFIG_ADIS16130 is not set
+# CONFIG_ADIS16136 is not set
+# CONFIG_ADIS16260 is not set
+# CONFIG_ADXRS450 is not set
+# CONFIG_BMG160 is not set
+CONFIG_HID_SENSOR_GYRO_3D=m
+# CONFIG_IIO_ST_GYRO_3AXIS is not set
+# CONFIG_ITG3200 is not set
+
+##
+## file: drivers/iio/health/Kconfig
+##
+# CONFIG_AFE4403 is not set
+# CONFIG_AFE4404 is not set
+# CONFIG_MAX30100 is not set
+
+##
+## file: drivers/iio/humidity/Kconfig
+##
+# CONFIG_AM2315 is not set
+# CONFIG_DHT11 is not set
+# CONFIG_HDC100X is not set
+# CONFIG_HTU21 is not set
+# CONFIG_SI7005 is not set
+# CONFIG_SI7020 is not set
+
+##
+## file: drivers/iio/imu/Kconfig
+##
+# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16480 is not set
+# CONFIG_KMX61 is not set
+
+##
+## file: drivers/iio/imu/bmi160/Kconfig
+##
+# CONFIG_BMI160_I2C is not set
+# CONFIG_BMI160_SPI is not set
+
+##
+## file: drivers/iio/imu/inv_mpu6050/Kconfig
+##
+# CONFIG_INV_MPU6050_I2C is not set
+# CONFIG_INV_MPU6050_SPI is not set
+
+##
+## file: drivers/iio/light/Kconfig
+##
+CONFIG_ACPI_ALS=m
+# CONFIG_ADJD_S311 is not set
+# CONFIG_AL3320A is not set
+# CONFIG_APDS9300 is not set
+# CONFIG_APDS9960 is not set
+# CONFIG_BH1750 is not set
+CONFIG_BH1780=m
+# CONFIG_CM32181 is not set
+# CONFIG_CM3232 is not set
+# CONFIG_CM3323 is not set
+# CONFIG_CM36651 is not set
+# CONFIG_GP2AP020A00F is not set
+# CONFIG_SENSORS_ISL29028 is not set
+# CONFIG_ISL29125 is not set
+CONFIG_HID_SENSOR_ALS=m
+CONFIG_HID_SENSOR_PROX=m
+# CONFIG_JSA1212 is not set
+# CONFIG_RPR0521 is not set
+# CONFIG_LTR501 is not set
+# CONFIG_MAX44000 is not set
+# CONFIG_OPT3001 is not set
+# CONFIG_PA12203001 is not set
+# CONFIG_SI1145 is not set
+# CONFIG_STK3310 is not set
+# CONFIG_TCS3414 is not set
+# CONFIG_TCS3472 is not set
+# CONFIG_SENSORS_TSL2563 is not set
+# CONFIG_TSL2583 is not set
+# CONFIG_TSL2772 is not set
+# CONFIG_TSL4531 is not set
+# CONFIG_US5182D is not set
+# CONFIG_VCNL4000 is not set
+# CONFIG_VEML6070 is not set
+
+##
+## file: drivers/iio/magnetometer/Kconfig
+##
+# CONFIG_AK8975 is not set
+# CONFIG_AK09911 is not set
+# CONFIG_BMC150_MAGN_I2C is not set
+# CONFIG_BMC150_MAGN_SPI is not set
+# CONFIG_MAG3110 is not set
+CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
+# CONFIG_MMC35240 is not set
+# CONFIG_IIO_ST_MAGN_3AXIS is not set
+# CONFIG_SENSORS_HMC5843_I2C is not set
+# CONFIG_SENSORS_HMC5843_SPI is not set
+
+##
+## file: drivers/iio/orientation/Kconfig
+##
+CONFIG_HID_SENSOR_INCLINOMETER_3D=m
+CONFIG_HID_SENSOR_DEVICE_ROTATION=m
+
+##
+## file: drivers/iio/potentiometer/Kconfig
+##
+# CONFIG_DS1803 is not set
+# CONFIG_MAX5487 is not set
+# CONFIG_MCP4131 is not set
+# CONFIG_MCP4531 is not set
+# CONFIG_TPL0102 is not set
+
+##
+## file: drivers/iio/pressure/Kconfig
+##
+# CONFIG_BMP280 is not set
+CONFIG_HID_SENSOR_PRESS=m
+# CONFIG_HP03 is not set
+# CONFIG_MPL115_I2C is not set
+# CONFIG_MPL115_SPI is not set
+# CONFIG_MPL3115 is not set
+# CONFIG_MS5611 is not set
+# CONFIG_MS5637 is not set
+# CONFIG_IIO_ST_PRESS is not set
+# CONFIG_T5403 is not set
+# CONFIG_HP206C is not set
+# CONFIG_ZPA2326 is not set
+
+##
+## file: drivers/iio/proximity/Kconfig
+##
+# CONFIG_AS3935 is not set
+# CONFIG_LIDAR_LITE_V2 is not set
+# CONFIG_SX9500 is not set
+
+##
+## file: drivers/iio/resolver/Kconfig
+##
+# CONFIG_AD2S1200 is not set
+
+##
+## file: drivers/iio/temperature/Kconfig
+##
+# CONFIG_MAXIM_THERMOCOUPLE is not set
+# CONFIG_MLX90614 is not set
+# CONFIG_TMP006 is not set
+# CONFIG_TSYS01 is not set
+# CONFIG_TSYS02D is not set
+
+##
+## file: drivers/iio/trigger/Kconfig
+##
+# CONFIG_IIO_INTERRUPT_TRIGGER is not set
+# CONFIG_IIO_SYSFS_TRIGGER is not set
+
+##
+## file: drivers/infiniband/Kconfig
+##
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_USER_MAD=m
+CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
+
+##
+## file: drivers/infiniband/hw/cxgb3/Kconfig
+##
+CONFIG_INFINIBAND_CXGB3=m
+
+##
+## file: drivers/infiniband/hw/cxgb4/Kconfig
+##
+CONFIG_INFINIBAND_CXGB4=m
+
+##
+## file: drivers/infiniband/hw/hfi1/Kconfig
+##
+CONFIG_INFINIBAND_HFI1=m
+
+##
+## file: drivers/infiniband/hw/i40iw/Kconfig
+##
+CONFIG_INFINIBAND_I40IW=m
+
+##
+## file: drivers/infiniband/hw/mlx4/Kconfig
+##
+CONFIG_MLX4_INFINIBAND=m
+
+##
+## file: drivers/infiniband/hw/mlx5/Kconfig
+##
+CONFIG_MLX5_INFINIBAND=m
+
+##
+## file: drivers/infiniband/hw/mthca/Kconfig
+##
+CONFIG_INFINIBAND_MTHCA=m
+CONFIG_INFINIBAND_MTHCA_DEBUG=y
+
+##
+## file: drivers/infiniband/hw/nes/Kconfig
+##
+CONFIG_INFINIBAND_NES=m
+# CONFIG_INFINIBAND_NES_DEBUG is not set
+
+##
+## file: drivers/infiniband/hw/ocrdma/Kconfig
+##
+CONFIG_INFINIBAND_OCRDMA=m
+
+##
+## file: drivers/infiniband/hw/qedr/Kconfig
+##
+CONFIG_INFINIBAND_QEDR=m
+
+##
+## file: drivers/infiniband/hw/qib/Kconfig
+##
+CONFIG_INFINIBAND_QIB=m
+CONFIG_INFINIBAND_QIB_DCA=y
+
+##
+## file: drivers/infiniband/sw/rdmavt/Kconfig
+##
+CONFIG_INFINIBAND_RDMAVT=m
+
+##
+## file: drivers/infiniband/sw/rxe/Kconfig
+##
+CONFIG_RDMA_RXE=m
+
+##
+## file: drivers/infiniband/ulp/ipoib/Kconfig
+##
+CONFIG_INFINIBAND_IPOIB=m
+CONFIG_INFINIBAND_IPOIB_CM=y
+CONFIG_INFINIBAND_IPOIB_DEBUG=y
+# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
+
+##
+## file: drivers/infiniband/ulp/iser/Kconfig
+##
+CONFIG_INFINIBAND_ISER=m
+
+##
+## file: drivers/infiniband/ulp/isert/Kconfig
+##
+CONFIG_INFINIBAND_ISERT=m
+
+##
+## file: drivers/infiniband/ulp/srp/Kconfig
+##
+CONFIG_INFINIBAND_SRP=m
+
+##
+## file: drivers/infiniband/ulp/srpt/Kconfig
+##
+CONFIG_INFINIBAND_SRPT=m
+
+##
+## file: drivers/input/Kconfig
+##
+CONFIG_INPUT=y
+CONFIG_INPUT_LEDS=y
+CONFIG_INPUT_FF_MEMLESS=m
+# CONFIG_INPUT_POLLDEV is not set
+CONFIG_INPUT_SPARSEKMAP=m
+# CONFIG_INPUT_MATRIXKMAP is not set
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+
+##
+## file: drivers/input/joystick/Kconfig
+##
+CONFIG_JOYSTICK_ANALOG=m
+CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_ZHENHUA=m
+CONFIG_JOYSTICK_DB9=m
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+# CONFIG_JOYSTICK_AS5011 is not set
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_WALKERA0701=m
+# CONFIG_JOYSTICK_PSXPAD_SPI is not set
+CONFIG_JOYSTICK_PXRC=m
+
+##
+## file: drivers/input/joystick/iforce/Kconfig
+##
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=y
+CONFIG_JOYSTICK_IFORCE_232=y
+
+##
+## file: drivers/input/keyboard/Kconfig
+##
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADC is not set
+CONFIG_KEYBOARD_ADP5588=m
+# CONFIG_KEYBOARD_ADP5589 is not set
+# CONFIG_KEYBOARD_QT1070 is not set
+CONFIG_KEYBOARD_QT2160=m
+# CONFIG_KEYBOARD_DLINK_DIR685 is not set
+# CONFIG_KEYBOARD_GPIO is not set
+# CONFIG_KEYBOARD_GPIO_POLLED is not set
+# CONFIG_KEYBOARD_TCA6416 is not set
+# CONFIG_KEYBOARD_TCA8418 is not set
+# CONFIG_KEYBOARD_MATRIX is not set
+CONFIG_KEYBOARD_LM8323=m
+# CONFIG_KEYBOARD_LM8333 is not set
+CONFIG_KEYBOARD_MAX7359=m
+# CONFIG_KEYBOARD_MCS is not set
+# CONFIG_KEYBOARD_MPR121 is not set
+CONFIG_KEYBOARD_OPENCORES=m
+# CONFIG_KEYBOARD_SAMSUNG is not set
+CONFIG_KEYBOARD_STOWAWAY=m
+# CONFIG_KEYBOARD_OMAP4 is not set
+# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
+# CONFIG_KEYBOARD_CAP11XX is not set
+# CONFIG_KEYBOARD_BCM is not set
+
+##
+## file: drivers/input/misc/Kconfig
+##
+# CONFIG_INPUT_AD714X is not set
+# CONFIG_INPUT_BMA150 is not set
+# CONFIG_INPUT_E3X0_BUTTON is not set
+# CONFIG_INPUT_MMA8450 is not set
+# CONFIG_INPUT_GP2A is not set
+# CONFIG_INPUT_GPIO_BEEPER is not set
+# CONFIG_INPUT_GPIO_DECODER is not set
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+# CONFIG_INPUT_KXTJ9 is not set
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+# CONFIG_INPUT_REGULATOR_HAPTIC is not set
+CONFIG_INPUT_AXP20X_PEK=m
+CONFIG_INPUT_PCF50633_PMU=m
+# CONFIG_INPUT_PCF8574 is not set
+# CONFIG_INPUT_PWM_BEEPER is not set
+# CONFIG_INPUT_PWM_VIBRA is not set
+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
+CONFIG_INPUT_WM831X_ON=m
+# CONFIG_INPUT_ADXL34X is not set
+# CONFIG_INPUT_IMS_PCU is not set
+# CONFIG_INPUT_CMA3000 is not set
+CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
+# CONFIG_INPUT_DRV260X_HAPTICS is not set
+# CONFIG_INPUT_DRV2665_HAPTICS is not set
+# CONFIG_INPUT_DRV2667_HAPTICS is not set
+
+##
+## file: drivers/input/mouse/Kconfig
+##
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_BYD=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
+CONFIG_MOUSE_PS2_CYPRESS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_PS2_FOCALTECH=y
+# CONFIG_MOUSE_ELAN_I2C is not set
+# CONFIG_MOUSE_GPIO is not set
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_MOUSE_SYNAPTICS_USB=m
+
+##
+## file: drivers/input/rmi4/Kconfig
+##
+# CONFIG_RMI4_I2C is not set
+# CONFIG_RMI4_SPI is not set
+CONFIG_RMI4_F03=y
+CONFIG_RMI4_F11=y
+CONFIG_RMI4_F12=y
+CONFIG_RMI4_F30=y
+CONFIG_RMI4_F34=y
+#. Enabling this makes input-modules pull in media/v4l2
+# CONFIG_RMI4_F54 is not set
+CONFIG_RMI4_F55=y
+
+##
+## file: drivers/input/serio/Kconfig
+##
+CONFIG_SERIO_ALTERA_PS2=m
+# CONFIG_SERIO_PS2MULT is not set
+# CONFIG_SERIO_ARC_PS2 is not set
+# CONFIG_SERIO_APBPS2 is not set
+# CONFIG_SERIO_OLPC_APSP is not set
+# CONFIG_USERIO is not set
+
+##
+## file: drivers/input/tablet/Kconfig
+##
+CONFIG_INPUT_TABLET=y
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_HANWANG=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_PEGASUS=m
+CONFIG_TABLET_SERIAL_WACOM4=m
+
+##
+## file: drivers/input/touchscreen/Kconfig
+##
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
+# CONFIG_TOUCHSCREEN_ADC is not set
+# CONFIG_TOUCHSCREEN_AR1021_I2C is not set
+#. Chromebook Pixel
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set
+# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
+# CONFIG_TOUCHSCREEN_BU21013 is not set
+# CONFIG_TOUCHSCREEN_BU21029 is not set
+# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set
+# CONFIG_TOUCHSCREEN_CHIPONE_ICN8505 is not set
+# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
+# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set
+# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_HAMPSHIRE=m
+CONFIG_TOUCHSCREEN_EETI=m
+# CONFIG_TOUCHSCREEN_EGALAX is not set
+# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set
+# CONFIG_TOUCHSCREEN_EXC3000 is not set
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GOODIX=m
+# CONFIG_TOUCHSCREEN_HIDEEP is not set
+# CONFIG_TOUCHSCREEN_ILI210X is not set
+# CONFIG_TOUCHSCREEN_S6SY761 is not set
+CONFIG_TOUCHSCREEN_GUNZE=m
+# CONFIG_TOUCHSCREEN_EKTF2127 is not set
+# CONFIG_TOUCHSCREEN_ELAN is not set
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+# CONFIG_TOUCHSCREEN_WACOM_I2C is not set
+# CONFIG_TOUCHSCREEN_MAX11801 is not set
+CONFIG_TOUCHSCREEN_MCS5000=m
+# CONFIG_TOUCHSCREEN_MMS114 is not set
+# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set
+CONFIG_TOUCHSCREEN_MTOUCH=m
+# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_HTCPEN=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_UCB1400=m
+# CONFIG_TOUCHSCREEN_PIXCIR is not set
+# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set
+CONFIG_TOUCHSCREEN_WM97XX=m
+CONFIG_TOUCHSCREEN_WM9705=y
+CONFIG_TOUCHSCREEN_WM9712=y
+CONFIG_TOUCHSCREEN_WM9713=y
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_MC13783=m
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+CONFIG_TOUCHSCREEN_USB_ELO=y
+CONFIG_TOUCHSCREEN_USB_E2I=y
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+# CONFIG_TOUCHSCREEN_TSC2004 is not set
+# CONFIG_TOUCHSCREEN_TSC2005 is not set
+CONFIG_TOUCHSCREEN_TSC2007=m
+# CONFIG_TOUCHSCREEN_TSC2007_IIO is not set
+# CONFIG_TOUCHSCREEN_RM_TS is not set
+# CONFIG_TOUCHSCREEN_SILEAD is not set
+# CONFIG_TOUCHSCREEN_SIS_I2C is not set
+# CONFIG_TOUCHSCREEN_ST1232 is not set
+# CONFIG_TOUCHSCREEN_STMFTS is not set
+CONFIG_TOUCHSCREEN_SUR40=m
+# CONFIG_TOUCHSCREEN_SX8654 is not set
+CONFIG_TOUCHSCREEN_TPS6507X=m
+# CONFIG_TOUCHSCREEN_ZET6223 is not set
+# CONFIG_TOUCHSCREEN_ZFORCE is not set
+# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set
+
+##
+## file: drivers/iommu/Kconfig
+##
+CONFIG_IOMMU_SUPPORT=y
+
+##
+## file: drivers/ipack/Kconfig
+##
+# CONFIG_IPACK_BUS is not set
+
+##
+## file: drivers/isdn/Kconfig
+##
+# CONFIG_ISDN is not set
+# CONFIG_ISDN_I4L is not set
+
+##
+## file: drivers/isdn/capi/Kconfig
+##
+CONFIG_CAPI_TRACE=y
+
+##
+## file: drivers/isdn/gigaset/Kconfig
+##
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+
+##
+## file: drivers/isdn/hardware/mISDN/Kconfig
+##
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+#. Binds a generic PCI bridge
+# CONFIG_MISDN_NETJET is not set
+
+##
+## file: drivers/isdn/hysdn/Kconfig
+##
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+
+##
+## file: drivers/isdn/mISDN/Kconfig
+##
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+##
+## file: drivers/leds/Kconfig
+##
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+# CONFIG_LEDS_CLASS_FLASH is not set
+CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y
+# CONFIG_LEDS_BCM6328 is not set
+# CONFIG_LEDS_BCM6358 is not set
+# CONFIG_LEDS_LM3530 is not set
+# CONFIG_LEDS_LM3642 is not set
+CONFIG_LEDS_NET48XX=m
+# CONFIG_LEDS_PCA9532 is not set
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_LP3944=m
+# CONFIG_LEDS_LP3952 is not set
+# CONFIG_LEDS_LP5521 is not set
+# CONFIG_LEDS_LP5523 is not set
+# CONFIG_LEDS_LP5562 is not set
+# CONFIG_LEDS_LP8501 is not set
+# CONFIG_LEDS_LP8860 is not set
+CONFIG_LEDS_PCA955X=m
+# CONFIG_LEDS_PCA963X is not set
+CONFIG_LEDS_WM831X_STATUS=m
+CONFIG_LEDS_WM8350=m
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_REGULATOR=m
+CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_MC13783=m
+# CONFIG_LEDS_TCA6507 is not set
+# CONFIG_LEDS_TLC591XX is not set
+# CONFIG_LEDS_LM355x is not set
+# CONFIG_LEDS_OT200 is not set
+# CONFIG_LEDS_BLINKM is not set
+# CONFIG_LEDS_MLXCPLD is not set
+
+##
+## file: drivers/leds/trigger/Kconfig
+##
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_ONESHOT=m
+CONFIG_LEDS_TRIGGER_DISK=y
+CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+CONFIG_LEDS_TRIGGER_TRANSIENT=m
+CONFIG_LEDS_TRIGGER_CAMERA=m
+CONFIG_LEDS_TRIGGER_PANIC=y
+
+##
+## file: drivers/lightnvm/Kconfig
+##
+# CONFIG_NVM is not set
+
+##
+## file: drivers/mailbox/Kconfig
+##
+# CONFIG_MAILBOX is not set
+
+##
+## file: drivers/mcb/Kconfig
+##
+# CONFIG_MCB is not set
+
+##
+## file: drivers/md/Kconfig
+##
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+# CONFIG_MD_CLUSTER is not set
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_MQ_DEFAULT=y
+# CONFIG_DM_DEBUG is not set
+# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
+CONFIG_DM_UNSTRIPED=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+CONFIG_DM_CACHE=m
+CONFIG_DM_CACHE_SMQ=m
+CONFIG_DM_WRITECACHE=m
+CONFIG_DM_ERA=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_RAID=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_DELAY=m
+CONFIG_DM_UEVENT=y
+CONFIG_DM_FLAKEY=m
+CONFIG_DM_VERITY=m
+# CONFIG_DM_VERITY_FEC is not set
+CONFIG_DM_SWITCH=m
+CONFIG_DM_LOG_WRITES=m
+CONFIG_DM_INTEGRITY=m
+CONFIG_DM_ZONED=m
+
+##
+## file: drivers/md/bcache/Kconfig
+##
+CONFIG_BCACHE=m
+# CONFIG_BCACHE_DEBUG is not set
+# CONFIG_BCACHE_CLOSURES_DEBUG is not set
+
+##
+## file: drivers/media/Kconfig
+##
+CONFIG_MEDIA_SUPPORT=m
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
+CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
+CONFIG_MEDIA_RADIO_SUPPORT=y
+CONFIG_MEDIA_SDR_SUPPORT=y
+CONFIG_MEDIA_CEC_SUPPORT=y
+CONFIG_MEDIA_CONTROLLER=y
+# CONFIG_MEDIA_CONTROLLER_DVB is not set
+# CONFIG_VIDEO_V4L2_SUBDEV_API is not set
+# CONFIG_DVB_MMAP is not set
+CONFIG_DVB_NET=y
+CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
+
+##
+## file: drivers/media/common/siano/Kconfig
+##
+CONFIG_SMS_SIANO_RC=y
+# CONFIG_SMS_SIANO_DEBUGFS is not set
+
+##
+## file: drivers/media/dvb-core/Kconfig
+##
+CONFIG_DVB_DYNAMIC_MINORS=y
+# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set
+# CONFIG_DVB_ULE_DEBUG is not set
+
+##
+## file: drivers/media/dvb-frontends/Kconfig
+##
+CONFIG_DVB_CX24110=m
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_TUA6100=m
+CONFIG_DVB_SP8870=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_CX22700=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_L64781=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_TDA10021=m
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_STV0297=m
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_OR51211=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_S921=m
+CONFIG_DVB_TC90522=m
+CONFIG_DVB_PLL=m
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_ISL6405=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_DUMMY_FE=m
+
+##
+## file: drivers/media/firewire/Kconfig
+##
+CONFIG_DVB_FIREDTV=m
+
+##
+## file: drivers/media/i2c/Kconfig
+##
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_TLV320AIC23B=m
+CONFIG_VIDEO_WM8775=m
+CONFIG_VIDEO_WM8739=m
+CONFIG_VIDEO_SAA6588=m
+CONFIG_VIDEO_BT819=m
+CONFIG_VIDEO_BT856=m
+CONFIG_VIDEO_KS0127=m
+CONFIG_VIDEO_SAA7110=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_VPX3220=m
+CONFIG_VIDEO_SAA7127=m
+CONFIG_VIDEO_SAA7185=m
+CONFIG_VIDEO_ADV7170=m
+CONFIG_VIDEO_ADV7175=m
+# CONFIG_VIDEO_OV2640 is not set
+CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_SR030PC30=m
+CONFIG_VIDEO_NOON010PC30=m
+CONFIG_VIDEO_UPD64031A=m
+CONFIG_VIDEO_UPD64083=m
+
+##
+## file: drivers/media/i2c/cx25840/Kconfig
+##
+CONFIG_VIDEO_CX25840=m
+
+##
+## file: drivers/media/i2c/soc_camera/Kconfig
+##
+# CONFIG_SOC_CAMERA_MT9M001 is not set
+# CONFIG_SOC_CAMERA_MT9M111 is not set
+# CONFIG_SOC_CAMERA_MT9T112 is not set
+# CONFIG_SOC_CAMERA_MT9V022 is not set
+# CONFIG_SOC_CAMERA_OV772X is not set
+# CONFIG_SOC_CAMERA_OV9640 is not set
+# CONFIG_SOC_CAMERA_OV9740 is not set
+# CONFIG_SOC_CAMERA_RJ54N1 is not set
+# CONFIG_SOC_CAMERA_TW9910 is not set
+
+##
+## file: drivers/media/mmc/siano/Kconfig
+##
+CONFIG_SMS_SDIO_DRV=m
+
+##
+## file: drivers/media/pci/Kconfig
+##
+CONFIG_MEDIA_PCI_SUPPORT=y
+
+##
+## file: drivers/media/pci/b2c2/Kconfig
+##
+CONFIG_DVB_B2C2_FLEXCOP_PCI=m
+# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set
+
+##
+## file: drivers/media/pci/bt8xx/Kconfig
+##
+CONFIG_VIDEO_BT848=m
+CONFIG_DVB_BT8XX=m
+
+##
+## file: drivers/media/pci/cx18/Kconfig
+##
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+
+##
+## file: drivers/media/pci/cx23885/Kconfig
+##
+CONFIG_VIDEO_CX23885=m
+CONFIG_MEDIA_ALTERA_CI=m
+
+##
+## file: drivers/media/pci/cx25821/Kconfig
+##
+# CONFIG_VIDEO_CX25821 is not set
+
+##
+## file: drivers/media/pci/cx88/Kconfig
+##
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_ENABLE_VP3054=y
+
+##
+## file: drivers/media/pci/ddbridge/Kconfig
+##
+CONFIG_DVB_DDBRIDGE=m
+# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set
+
+##
+## file: drivers/media/pci/dm1105/Kconfig
+##
+CONFIG_DVB_DM1105=m
+
+##
+## file: drivers/media/pci/dt3155/Kconfig
+##
+CONFIG_VIDEO_DT3155=m
+
+##
+## file: drivers/media/pci/ivtv/Kconfig
+##
+CONFIG_VIDEO_IVTV=m
+# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set
+CONFIG_VIDEO_IVTV_ALSA=m
+CONFIG_VIDEO_FB_IVTV=m
+
+##
+## file: drivers/media/pci/mantis/Kconfig
+##
+CONFIG_MANTIS_CORE=m
+CONFIG_DVB_MANTIS=m
+CONFIG_DVB_HOPPER=m
+
+##
+## file: drivers/media/pci/meye/Kconfig
+##
+CONFIG_VIDEO_MEYE=m
+
+##
+## file: drivers/media/pci/netup_unidvb/Kconfig
+##
+CONFIG_DVB_NETUP_UNIDVB=m
+
+##
+## file: drivers/media/pci/ngene/Kconfig
+##
+CONFIG_DVB_NGENE=m
+
+##
+## file: drivers/media/pci/pluto2/Kconfig
+##
+CONFIG_DVB_PLUTO2=m
+
+##
+## file: drivers/media/pci/pt1/Kconfig
+##
+CONFIG_DVB_PT1=m
+
+##
+## file: drivers/media/pci/pt3/Kconfig
+##
+CONFIG_DVB_PT3=m
+
+##
+## file: drivers/media/pci/saa7134/Kconfig
+##
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_RC=y
+CONFIG_VIDEO_SAA7134_DVB=m
+
+##
+## file: drivers/media/pci/saa7146/Kconfig
+##
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_MXB=m
+
+##
+## file: drivers/media/pci/saa7164/Kconfig
+##
+CONFIG_VIDEO_SAA7164=m
+
+##
+## file: drivers/media/pci/smipcie/Kconfig
+##
+CONFIG_DVB_SMIPCIE=m
+
+##
+## file: drivers/media/pci/solo6x10/Kconfig
+##
+CONFIG_VIDEO_SOLO6X10=m
+
+##
+## file: drivers/media/pci/ttpci/Kconfig
+##
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_BUDGET_CORE=m
+CONFIG_DVB_BUDGET=m
+CONFIG_DVB_BUDGET_CI=m
+CONFIG_DVB_BUDGET_AV=m
+CONFIG_DVB_BUDGET_PATCH=m
+
+##
+## file: drivers/media/pci/tw5864/Kconfig
+##
+CONFIG_VIDEO_TW5864=m
+
+##
+## file: drivers/media/pci/tw68/Kconfig
+##
+CONFIG_VIDEO_TW68=m
+
+##
+## file: drivers/media/pci/tw686x/Kconfig
+##
+CONFIG_VIDEO_TW686X=m
+
+##
+## file: drivers/media/platform/Kconfig
+##
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set
+# CONFIG_VIDEO_SH_VEU is not set
+CONFIG_V4L_TEST_DRIVERS=y
+# CONFIG_VIDEO_VIM2M is not set
+# CONFIG_DVB_PLATFORM_DRIVERS is not set
+# CONFIG_CEC_PLATFORM_DRIVERS is not set
+# CONFIG_SDR_PLATFORM_DRIVERS is not set
+
+##
+## file: drivers/media/platform/cadence/Kconfig
+##
+# CONFIG_VIDEO_CADENCE is not set
+
+##
+## file: drivers/media/platform/marvell-ccic/Kconfig
+##
+CONFIG_VIDEO_CAFE_CCIC=m
+
+##
+## file: drivers/media/platform/soc_camera/Kconfig
+##
+# CONFIG_SOC_CAMERA is not set
+# CONFIG_SOC_CAMERA_PLATFORM is not set
+# CONFIG_VIDEO_SH_MOBILE_CEU is not set
+
+##
+## file: drivers/media/platform/vivid/Kconfig
+##
+CONFIG_VIDEO_VIVID=m
+CONFIG_VIDEO_VIVID_CEC=y
+CONFIG_VIDEO_VIVID_MAX_DEVS=64
+
+##
+## file: drivers/media/radio/Kconfig
+##
+CONFIG_RADIO_ADAPTERS=y
+# CONFIG_RADIO_SI4713 is not set
+CONFIG_USB_MR800=m
+CONFIG_RADIO_SHARK=m
+CONFIG_RADIO_SHARK2=m
+CONFIG_USB_KEENE=m
+CONFIG_USB_RAREMONO=m
+CONFIG_USB_MA901=m
+# CONFIG_RADIO_TEA5764 is not set
+# CONFIG_RADIO_SAA7706H is not set
+# CONFIG_RADIO_TEF6862 is not set
+# CONFIG_RADIO_WL1273 is not set
+
+##
+## file: drivers/media/radio/si470x/Kconfig
+##
+CONFIG_RADIO_SI470X=y
+CONFIG_USB_SI470X=m
+# CONFIG_I2C_SI470X is not set
+
+##
+## file: drivers/media/radio/si4713/Kconfig
+##
+# CONFIG_I2C_SI4713 is not set
+
+##
+## file: drivers/media/radio/wl128x/Kconfig
+##
+# CONFIG_RADIO_WL128X is not set
+
+##
+## file: drivers/media/rc/Kconfig
+##
+CONFIG_RC_CORE=m
+CONFIG_LIRC=y
+CONFIG_RC_DECODERS=y
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_SANYO_DECODER=m
+CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_XMP_DECODER=m
+CONFIG_IR_IMON_DECODER=m
+CONFIG_RC_DEVICES=y
+CONFIG_RC_ATI_REMOTE=m
+CONFIG_IR_ENE=m
+# CONFIG_IR_HIX5HD2 is not set
+CONFIG_IR_IMON=m
+CONFIG_IR_IMON_RAW=m
+CONFIG_IR_MCEUSB=m
+# CONFIG_IR_NUVOTON is not set
+CONFIG_IR_REDRAT3=m
+CONFIG_IR_STREAMZAP=m
+CONFIG_IR_IGORPLUGUSB=m
+CONFIG_IR_IGUANA=m
+CONFIG_IR_TTUSBIR=m
+CONFIG_RC_LOOPBACK=m
+# CONFIG_IR_GPIO_CIR is not set
+
+##
+## file: drivers/media/rc/img-ir/Kconfig
+##
+# CONFIG_IR_IMG is not set
+
+##
+## file: drivers/media/rc/keymaps/Kconfig
+##
+CONFIG_RC_MAP=m
+
+##
+## file: drivers/media/spi/Kconfig
+##
+# CONFIG_CXD2880_SPI_DRV is not set
+
+##
+## file: drivers/media/tuners/Kconfig
+##
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TEA5761=y
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2131=m
+CONFIG_MEDIA_TUNER_QT1010=m
+
+##
+## file: drivers/media/usb/Kconfig
+##
+CONFIG_MEDIA_USB_SUPPORT=y
+
+##
+## file: drivers/media/usb/airspy/Kconfig
+##
+CONFIG_USB_AIRSPY=m
+
+##
+## file: drivers/media/usb/as102/Kconfig
+##
+CONFIG_DVB_AS102=m
+
+##
+## file: drivers/media/usb/au0828/Kconfig
+##
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_AU0828_V4L2=y
+CONFIG_VIDEO_AU0828_RC=y
+
+##
+## file: drivers/media/usb/b2c2/Kconfig
+##
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set
+
+##
+## file: drivers/media/usb/cpia2/Kconfig
+##
+CONFIG_VIDEO_CPIA2=m
+
+##
+## file: drivers/media/usb/cx231xx/Kconfig
+##
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_RC=y
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+
+##
+## file: drivers/media/usb/dvb-usb/Kconfig
+##
+CONFIG_DVB_USB=m
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_PCTV452E=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+
+##
+## file: drivers/media/usb/dvb-usb-v2/Kconfig
+##
+CONFIG_DVB_USB_V2=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_AF9035=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_AZ6007=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_LME2510=m
+CONFIG_DVB_USB_MXL111SF=m
+CONFIG_DVB_USB_RTL28XXU=m
+CONFIG_DVB_USB_DVBSKY=m
+CONFIG_DVB_USB_ZD1301=m
+
+##
+## file: drivers/media/usb/em28xx/Kconfig
+##
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_V4L2=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_EM28XX_RC=y
+
+##
+## file: drivers/media/usb/go7007/Kconfig
+##
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+CONFIG_VIDEO_GO7007_LOADER=m
+CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
+
+##
+## file: drivers/media/usb/gspca/Kconfig
+##
+CONFIG_USB_GSPCA=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_DTCS033=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_JL2005BCD=m
+CONFIG_USB_GSPCA_KINECT=m
+CONFIG_USB_GSPCA_KONICA=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_NW80X=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SE401=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SPCA1528=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_SQ930X=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STK1135=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TOPRO=m
+CONFIG_USB_GSPCA_TOUPTEK=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_VICAM=m
+CONFIG_USB_GSPCA_XIRLINK_CIT=m
+CONFIG_USB_GSPCA_ZC3XX=m
+
+##
+## file: drivers/media/usb/gspca/gl860/Kconfig
+##
+CONFIG_USB_GL860=m
+
+##
+## file: drivers/media/usb/gspca/m5602/Kconfig
+##
+CONFIG_USB_M5602=m
+
+##
+## file: drivers/media/usb/gspca/stv06xx/Kconfig
+##
+CONFIG_USB_STV06XX=m
+
+##
+## file: drivers/media/usb/hackrf/Kconfig
+##
+CONFIG_USB_HACKRF=m
+
+##
+## file: drivers/media/usb/hdpvr/Kconfig
+##
+CONFIG_VIDEO_HDPVR=m
+
+##
+## file: drivers/media/usb/msi2500/Kconfig
+##
+CONFIG_USB_MSI2500=m
+
+##
+## file: drivers/media/usb/pulse8-cec/Kconfig
+##
+CONFIG_USB_PULSE8_CEC=m
+
+##
+## file: drivers/media/usb/pvrusb2/Kconfig
+##
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_PVRUSB2_DVB=y
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+
+##
+## file: drivers/media/usb/pwc/Kconfig
+##
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+
+##
+## file: drivers/media/usb/rainshadow-cec/Kconfig
+##
+CONFIG_USB_RAINSHADOW_CEC=m
+
+##
+## file: drivers/media/usb/s2255/Kconfig
+##
+CONFIG_USB_S2255=m
+
+##
+## file: drivers/media/usb/siano/Kconfig
+##
+CONFIG_SMS_USB_DRV=m
+
+##
+## file: drivers/media/usb/stk1160/Kconfig
+##
+CONFIG_VIDEO_STK1160_COMMON=m
+
+##
+## file: drivers/media/usb/stkwebcam/Kconfig
+##
+CONFIG_USB_STKWEBCAM=m
+
+##
+## file: drivers/media/usb/ttusb-budget/Kconfig
+##
+CONFIG_DVB_TTUSB_BUDGET=m
+
+##
+## file: drivers/media/usb/ttusb-dec/Kconfig
+##
+CONFIG_DVB_TTUSB_DEC=m
+
+##
+## file: drivers/media/usb/usbtv/Kconfig
+##
+CONFIG_VIDEO_USBTV=m
+
+##
+## file: drivers/media/usb/usbvision/Kconfig
+##
+CONFIG_VIDEO_USBVISION=m
+
+##
+## file: drivers/media/usb/uvc/Kconfig
+##
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+
+##
+## file: drivers/media/usb/zr364xx/Kconfig
+##
+CONFIG_USB_ZR364XX=m
+
+##
+## file: drivers/media/v4l2-core/Kconfig
+##
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_PCI_SKELETON is not set
+
+##
+## file: drivers/memory/Kconfig
+##
+CONFIG_MEMORY=y
+
+##
+## file: drivers/memstick/Kconfig
+##
+CONFIG_MEMSTICK=m
+# CONFIG_MEMSTICK_DEBUG is not set
+
+##
+## file: drivers/memstick/core/Kconfig
+##
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MSPRO_BLOCK=m
+# CONFIG_MS_BLOCK is not set
+
+##
+## file: drivers/memstick/host/Kconfig
+##
+CONFIG_MEMSTICK_TIFM_MS=m
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_MEMSTICK_R592=m
+CONFIG_MEMSTICK_REALTEK_PCI=m
+CONFIG_MEMSTICK_REALTEK_USB=m
+
+##
+## file: drivers/message/fusion/Kconfig
+##
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_CTL=m
+CONFIG_FUSION_LAN=m
+# CONFIG_FUSION_LOGGING is not set
+
+##
+## file: drivers/mfd/Kconfig
+##
+# CONFIG_MFD_CS5535 is not set
+# CONFIG_MFD_AS3711 is not set
+# CONFIG_MFD_AS3722 is not set
+# CONFIG_PMIC_ADP5520 is not set
+# CONFIG_MFD_AAT2870_CORE is not set
+# CONFIG_MFD_ATMEL_FLEXCOM is not set
+# CONFIG_MFD_ATMEL_HLCDC is not set
+# CONFIG_MFD_BCM590XX is not set
+# CONFIG_MFD_BD9571MWV is not set
+# CONFIG_MFD_AXP20X_I2C is not set
+# CONFIG_MFD_CROS_EC is not set
+# CONFIG_MFD_MADERA is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_MFD_DA9052_SPI is not set
+# CONFIG_MFD_DA9052_I2C is not set
+# CONFIG_MFD_DA9055 is not set
+# CONFIG_MFD_DA9062 is not set
+# CONFIG_MFD_DA9063 is not set
+# CONFIG_MFD_DA9150 is not set
+# CONFIG_MFD_DLN2 is not set
+# CONFIG_MFD_EXYNOS_LPASS is not set
+# CONFIG_MFD_MC13XXX_SPI is not set
+# CONFIG_MFD_MC13XXX_I2C is not set
+# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_HTC_I2CPLD is not set
+CONFIG_LPC_SCH=m
+# CONFIG_INTEL_SOC_PMIC is not set
+# CONFIG_MFD_INTEL_LPSS_ACPI is not set
+# CONFIG_MFD_INTEL_LPSS_PCI is not set
+# CONFIG_MFD_JANZ_CMODIO is not set
+# CONFIG_MFD_KEMPLD is not set
+# CONFIG_MFD_88PM800 is not set
+# CONFIG_MFD_88PM805 is not set
+# CONFIG_MFD_88PM860X is not set
+# CONFIG_MFD_MAX14577 is not set
+# CONFIG_MFD_MAX77686 is not set
+# CONFIG_MFD_MAX77693 is not set
+# CONFIG_MFD_MAX77843 is not set
+# CONFIG_MFD_MAX8907 is not set
+# CONFIG_MFD_MAX8925 is not set
+# CONFIG_MFD_MAX8997 is not set
+# CONFIG_MFD_MAX8998 is not set
+# CONFIG_MFD_MT6397 is not set
+# CONFIG_MFD_MENF21BMC is not set
+# CONFIG_EZX_PCAP is not set
+CONFIG_MFD_VIPERBOARD=m
+# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_PCF50633 is not set
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+# CONFIG_UCB1400_CORE is not set
+# CONFIG_MFD_RDC321X is not set
+# CONFIG_MFD_RT5033 is not set
+# CONFIG_MFD_RC5T583 is not set
+# CONFIG_MFD_RK808 is not set
+# CONFIG_MFD_RN5T618 is not set
+# CONFIG_MFD_SEC_CORE is not set
+# CONFIG_MFD_SI476X_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SMSC is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_AB3100_CORE is not set
+CONFIG_AB3100_OTP=m
+# CONFIG_MFD_STMPE is not set
+# CONFIG_MFD_SYSCON is not set
+# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_LP3943 is not set
+# CONFIG_MFD_LP8788 is not set
+# CONFIG_MFD_TI_LMU is not set
+# CONFIG_MFD_PALMAS is not set
+# CONFIG_TPS6105X is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TPS6507X is not set
+# CONFIG_MFD_TPS65086 is not set
+# CONFIG_MFD_TPS65090 is not set
+# CONFIG_MFD_TPS65217 is not set
+# CONFIG_MFD_TPS68470 is not set
+# CONFIG_MFD_TI_LP873X is not set
+# CONFIG_MFD_TPS65218 is not set
+# CONFIG_MFD_TPS6586X is not set
+# CONFIG_MFD_TPS65910 is not set
+# CONFIG_MFD_TPS65912_I2C is not set
+# CONFIG_MFD_TPS65912_SPI is not set
+# CONFIG_MFD_TPS80031 is not set
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_TWL6040_CORE is not set
+# CONFIG_MFD_WL1273_CORE is not set
+# CONFIG_MFD_LM3533 is not set
+# CONFIG_MFD_TIMBERDALE is not set
+# CONFIG_MFD_TC3589X is not set
+# CONFIG_MFD_VX855 is not set
+# CONFIG_MFD_ARIZONA_I2C is not set
+# CONFIG_MFD_ARIZONA_SPI is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X_I2C is not set
+# CONFIG_MFD_WM831X_SPI is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_WM8994 is not set
+# CONFIG_RAVE_SP_CORE is not set
+
+##
+## file: drivers/misc/Kconfig
+##
+CONFIG_AD525X_DPOT=m
+CONFIG_AD525X_DPOT_I2C=m
+CONFIG_AD525X_DPOT_SPI=m
+# CONFIG_DUMMY_IRQ is not set
+# CONFIG_INTEL_MID_PTI is not set
+CONFIG_SGI_IOC4=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
+CONFIG_ICS932S401=m
+# CONFIG_ATMEL_SSC is not set
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_SGI_XP=m
+CONFIG_CS5535_CLOCK_EVENT_SRC=m
+CONFIG_SGI_GRU=m
+# CONFIG_SGI_GRU_DEBUG is not set
+CONFIG_APDS9802ALS=m
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_APDS990X=m
+CONFIG_HMC6352=m
+CONFIG_DS1682=m
+# CONFIG_USB_SWITCH_FSA9480 is not set
+# CONFIG_LATTICE_ECP3_CONFIG is not set
+# CONFIG_SRAM is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
+
+##
+## file: drivers/misc/altera-stapl/Kconfig
+##
+# CONFIG_ALTERA_STAPL is not set
+
+##
+## file: drivers/misc/c2port/Kconfig
+##
+CONFIG_C2PORT=m
+CONFIG_C2PORT_DURAMAR_2150=m
+
+##
+## file: drivers/misc/cardreader/Kconfig
+##
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
+
+##
+## file: drivers/misc/cb710/Kconfig
+##
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+
+##
+## file: drivers/misc/echo/Kconfig
+##
+# CONFIG_ECHO is not set
+
+##
+## file: drivers/misc/eeprom/Kconfig
+##
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EEPROM_93CX6=m
+# CONFIG_EEPROM_93XX46 is not set
+# CONFIG_EEPROM_IDT_89HPESX is not set
+
+##
+## file: drivers/misc/genwqe/Kconfig
+##
+# CONFIG_GENWQE is not set
+
+##
+## file: drivers/misc/lis3lv02d/Kconfig
+##
+CONFIG_SENSORS_LIS3_I2C=m
+
+##
+## file: drivers/misc/ti-st/Kconfig
+##
+# CONFIG_TI_ST is not set
+
+##
+## file: drivers/mmc/core/Kconfig
+##
+CONFIG_MMC_BLOCK_MINORS=256
+CONFIG_SDIO_UART=m
+# CONFIG_MMC_TEST is not set
+
+##
+## file: drivers/mmc/host/Kconfig
+##
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_RICOH_MMC=y
+# CONFIG_MMC_SDHCI_PLTFM is not set
+CONFIG_MMC_WBSD=m
+CONFIG_MMC_TIFM_SD=m
+# CONFIG_MMC_SPI is not set
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_CB710=m
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_USHC=m
+# CONFIG_MMC_USDHI6ROL0 is not set
+CONFIG_MMC_REALTEK_PCI=m
+CONFIG_MMC_REALTEK_USB=m
+CONFIG_MMC_TOSHIBA_PCI=m
+# CONFIG_MMC_MTK is not set
+
+##
+## file: drivers/mtd/Kconfig
+##
+CONFIG_MTD=m
+# CONFIG_MTD_TESTS is not set
+CONFIG_MTD_OF_PARTS=m
+CONFIG_MTD_AR7_PARTS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_RFD_FTL=m
+CONFIG_SSFDC=m
+# CONFIG_SM_FTL is not set
+CONFIG_MTD_OOPS=m
+CONFIG_MTD_SWAP=m
+# CONFIG_MTD_PARTITIONED_MASTER is not set
+
+##
+## file: drivers/mtd/devices/Kconfig
+##
+CONFIG_MTD_DATAFLASH=m
+# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
+# CONFIG_MTD_DATAFLASH_OTP is not set
+CONFIG_MTD_M25P80=m
+# CONFIG_MTD_MCHP23K256 is not set
+CONFIG_MTD_SST25L=m
+# CONFIG_MTD_DOCG3 is not set
+
+##
+## file: drivers/mtd/lpddr/Kconfig
+##
+CONFIG_MTD_LPDDR=m
+
+##
+## file: drivers/mtd/maps/Kconfig
+##
+# CONFIG_MTD_PHYSMAP_OF is not set
+# CONFIG_MTD_ESB2ROM is not set
+# CONFIG_MTD_CK804XROM is not set
+CONFIG_MTD_PCMCIA=m
+# CONFIG_MTD_PCMCIA_ANONYMOUS is not set
+# CONFIG_MTD_GPIO_ADDR is not set
+CONFIG_MTD_INTEL_VR_NOR=m
+CONFIG_MTD_PLATRAM=m
+# CONFIG_MTD_LATCH_ADDR is not set
+
+##
+## file: drivers/mtd/nand/onenand/Kconfig
+##
+CONFIG_MTD_ONENAND=m
+CONFIG_MTD_ONENAND_VERIFY_WRITE=y
+# CONFIG_MTD_ONENAND_GENERIC is not set
+# CONFIG_MTD_ONENAND_OTP is not set
+CONFIG_MTD_ONENAND_2X_PROGRAM=y
+
+##
+## file: drivers/mtd/nand/raw/Kconfig
+##
+# CONFIG_MTD_NAND_ECC_SMC is not set
+CONFIG_MTD_NAND_ECC_BCH=y
+# CONFIG_MTD_NAND_DENALI_PCI is not set
+# CONFIG_MTD_NAND_DENALI_DT is not set
+# CONFIG_MTD_NAND_GPIO is not set
+CONFIG_MTD_NAND_RICOH=m
+# CONFIG_MTD_NAND_DOCG4 is not set
+CONFIG_MTD_NAND_CAFE=m
+CONFIG_MTD_NAND_CS553X=m
+CONFIG_MTD_NAND_NANDSIM=m
+# CONFIG_MTD_NAND_PLATFORM is not set
+# CONFIG_MTD_NAND_HISI504 is not set
+# CONFIG_MTD_NAND_MTK is not set
+
+##
+## file: drivers/mtd/nand/spi/Kconfig
+##
+# CONFIG_MTD_SPI_NAND is not set
+
+##
+## file: drivers/mtd/spi-nor/Kconfig
+##
+CONFIG_MTD_SPI_NOR=m
+# CONFIG_MTD_MT81xx_NOR is not set
+CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
+
+##
+## file: drivers/mtd/ubi/Kconfig
+##
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_LIMIT=20
+# CONFIG_MTD_UBI_FASTMAP is not set
+# CONFIG_MTD_UBI_GLUEBI is not set
+CONFIG_MTD_UBI_BLOCK=y
+
+##
+## file: drivers/net/Kconfig
+##
+CONFIG_NETDEVICES=y
+CONFIG_NET_CORE=y
+CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_EQUALIZER=m
+CONFIG_IFB=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_IPVLAN=m
+CONFIG_IPVTAP=m
+CONFIG_VXLAN=m
+CONFIG_GENEVE=m
+CONFIG_GTP=m
+CONFIG_MACSEC=m
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_TUN=m
+# CONFIG_TUN_VNET_CROSS_LE is not set
+CONFIG_VETH=m
+CONFIG_VIRTIO_NET=m
+CONFIG_NLMON=m
+CONFIG_NET_VRF=m
+CONFIG_VSOCKMON=m
+CONFIG_XEN_NETDEV_FRONTEND=m
+CONFIG_XEN_NETDEV_BACKEND=m
+# CONFIG_VMXNET3 is not set
+# CONFIG_FUJITSU_ES is not set
+# CONFIG_NETDEVSIM is not set
+CONFIG_NET_FAILOVER=m
+
+##
+## file: drivers/net/appletalk/Kconfig
+##
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=y
+CONFIG_LTPC=m
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+
+##
+## file: drivers/net/can/Kconfig
+##
+CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
+CONFIG_CAN_SLCAN=m
+CONFIG_CAN_DEV=m
+CONFIG_CAN_CALC_BITTIMING=y
+# CONFIG_CAN_LEDS is not set
+# CONFIG_CAN_GRCAN is not set
+# CONFIG_CAN_DEBUG_DEVICES is not set
+
+##
+## file: drivers/net/can/c_can/Kconfig
+##
+# CONFIG_CAN_C_CAN is not set
+
+##
+## file: drivers/net/can/cc770/Kconfig
+##
+# CONFIG_CAN_CC770 is not set
+
+##
+## file: drivers/net/can/ifi_canfd/Kconfig
+##
+# CONFIG_CAN_IFI_CANFD is not set
+
+##
+## file: drivers/net/can/m_can/Kconfig
+##
+# CONFIG_CAN_M_CAN is not set
+
+##
+## file: drivers/net/can/peak_canfd/Kconfig
+##
+CONFIG_CAN_PEAK_PCIEFD=m
+
+##
+## file: drivers/net/can/sja1000/Kconfig
+##
+CONFIG_CAN_SJA1000=m
+CONFIG_CAN_SJA1000_ISA=m
+# CONFIG_CAN_SJA1000_PLATFORM is not set
+CONFIG_CAN_EMS_PCMCIA=m
+CONFIG_CAN_EMS_PCI=m
+CONFIG_CAN_PEAK_PCMCIA=m
+CONFIG_CAN_PEAK_PCI=m
+CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_KVASER_PCI=m
+CONFIG_CAN_PLX_PCI=m
+CONFIG_CAN_TSCAN1=m
+
+##
+## file: drivers/net/can/softing/Kconfig
+##
+CONFIG_CAN_SOFTING=m
+CONFIG_CAN_SOFTING_CS=m
+
+##
+## file: drivers/net/can/spi/Kconfig
+##
+# CONFIG_CAN_HI311X is not set
+# CONFIG_CAN_MCP251X is not set
+
+##
+## file: drivers/net/can/usb/Kconfig
+##
+CONFIG_CAN_8DEV_USB=m
+CONFIG_CAN_EMS_USB=m
+CONFIG_CAN_ESD_USB2=m
+CONFIG_CAN_GS_USB=m
+CONFIG_CAN_KVASER_USB=m
+CONFIG_CAN_MCBA_USB=m
+CONFIG_CAN_PEAK_USB=m
+CONFIG_CAN_UCAN=m
+
+##
+## file: drivers/net/dsa/Kconfig
+##
+# CONFIG_NET_DSA_BCM_SF2 is not set
+# CONFIG_NET_DSA_MV88E6060 is not set
+
+##
+## file: drivers/net/dsa/mv88e6xxx/Kconfig
+##
+# CONFIG_NET_DSA_MV88E6XXX is not set
+
+##
+## file: drivers/net/ethernet/Kconfig
+##
+CONFIG_ETHERNET=y
+# CONFIG_DNET is not set
+CONFIG_JME=m
+# CONFIG_ETHOC is not set
+
+##
+## file: drivers/net/ethernet/agere/Kconfig
+##
+CONFIG_NET_VENDOR_AGERE=y
+CONFIG_ET131X=m
+
+##
+## file: drivers/net/ethernet/alacritech/Kconfig
+##
+CONFIG_NET_VENDOR_ALACRITECH=y
+# CONFIG_SLICOSS is not set
+
+##
+## file: drivers/net/ethernet/alteon/Kconfig
+##
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+
+##
+## file: drivers/net/ethernet/amazon/Kconfig
+##
+CONFIG_NET_VENDOR_AMAZON=y
+CONFIG_ENA_ETHERNET=m
+
+##
+## file: drivers/net/ethernet/amd/Kconfig
+##
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_PCNET32=m
+CONFIG_AMD_XGBE_DCB=y
+
+##
+## file: drivers/net/ethernet/apm/xgene/Kconfig
+##
+# CONFIG_NET_XGENE is not set
+
+##
+## file: drivers/net/ethernet/aquantia/Kconfig
+##
+CONFIG_NET_VENDOR_AQUANTIA=y
+CONFIG_AQTION=m
+
+##
+## file: drivers/net/ethernet/arc/Kconfig
+##
+# CONFIG_NET_VENDOR_ARC is not set
+
+##
+## file: drivers/net/ethernet/atheros/Kconfig
+##
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_ATL2=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_ALX=m
+
+##
+## file: drivers/net/ethernet/aurora/Kconfig
+##
+# CONFIG_NET_VENDOR_AURORA is not set
+
+##
+## file: drivers/net/ethernet/broadcom/Kconfig
+##
+CONFIG_NET_VENDOR_BROADCOM=y
+# CONFIG_BCMGENET is not set
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_TIGON3=m
+CONFIG_TIGON3_HWMON=y
+CONFIG_BNX2X=m
+CONFIG_BNX2X_SRIOV=y
+# CONFIG_SYSTEMPORT is not set
+CONFIG_BNXT=m
+CONFIG_BNXT_SRIOV=y
+CONFIG_BNXT_FLOWER_OFFLOAD=y
+CONFIG_BNXT_DCB=y
+CONFIG_BNXT_HWMON=y
+
+##
+## file: drivers/net/ethernet/brocade/Kconfig
+##
+CONFIG_NET_VENDOR_BROCADE=y
+
+##
+## file: drivers/net/ethernet/brocade/bna/Kconfig
+##
+CONFIG_BNA=m
+
+##
+## file: drivers/net/ethernet/cadence/Kconfig
+##
+CONFIG_NET_VENDOR_CADENCE=y
+# CONFIG_MACB is not set
+
+##
+## file: drivers/net/ethernet/calxeda/Kconfig
+##
+# CONFIG_NET_CALXEDA_XGMAC is not set
+
+##
+## file: drivers/net/ethernet/cavium/Kconfig
+##
+CONFIG_NET_VENDOR_CAVIUM=y
+# CONFIG_THUNDER_NIC_PF is not set
+# CONFIG_THUNDER_NIC_VF is not set
+# CONFIG_THUNDER_NIC_BGX is not set
+# CONFIG_THUNDER_NIC_RGX is not set
+CONFIG_CAVIUM_PTP=y
+CONFIG_LIQUIDIO=m
+CONFIG_LIQUIDIO_VF=m
+
+##
+## file: drivers/net/ethernet/chelsio/Kconfig
+##
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4_DCB=y
+CONFIG_CHELSIO_T4_FCOE=y
+CONFIG_CHELSIO_T4VF=m
+
+##
+## file: drivers/net/ethernet/cirrus/Kconfig
+##
+# CONFIG_CS89x0_PLATFORM is not set
+
+##
+## file: drivers/net/ethernet/cisco/Kconfig
+##
+CONFIG_NET_VENDOR_CISCO=y
+
+##
+## file: drivers/net/ethernet/cisco/enic/Kconfig
+##
+CONFIG_ENIC=m
+
+##
+## file: drivers/net/ethernet/cortina/Kconfig
+##
+CONFIG_NET_VENDOR_CORTINA=y
+
+##
+## file: drivers/net/ethernet/dec/Kconfig
+##
+CONFIG_NET_VENDOR_DEC=y
+
+##
+## file: drivers/net/ethernet/dec/tulip/Kconfig
+##
+CONFIG_DE2104X_DSL=0
+CONFIG_TULIP_NAPI=y
+CONFIG_TULIP_NAPI_HW_MITIGATION=y
+# CONFIG_DE4X5 is not set
+CONFIG_ULI526X=m
+
+##
+## file: drivers/net/ethernet/dlink/Kconfig
+##
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_DL2K=m
+
+##
+## file: drivers/net/ethernet/emulex/Kconfig
+##
+CONFIG_NET_VENDOR_EMULEX=y
+
+##
+## file: drivers/net/ethernet/emulex/benet/Kconfig
+##
+CONFIG_BE2NET=m
+CONFIG_BE2NET_HWMON=y
+CONFIG_BE2NET_BE2=y
+CONFIG_BE2NET_BE3=y
+CONFIG_BE2NET_LANCER=y
+CONFIG_BE2NET_SKYHAWK=y
+
+##
+## file: drivers/net/ethernet/ezchip/Kconfig
+##
+CONFIG_NET_VENDOR_EZCHIP=y
+# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set
+
+##
+## file: drivers/net/ethernet/huawei/Kconfig
+##
+CONFIG_NET_VENDOR_HUAWEI=y
+
+##
+## file: drivers/net/ethernet/huawei/hinic/Kconfig
+##
+CONFIG_HINIC=m
+
+##
+## file: drivers/net/ethernet/i825xx/Kconfig
+##
+CONFIG_NET_VENDOR_I825XX=y
+
+##
+## file: drivers/net/ethernet/intel/Kconfig
+##
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_E1000E_HWTS=y
+CONFIG_IGB=m
+CONFIG_IGB_HWMON=y
+CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_HWMON=y
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBE_DCB=y
+CONFIG_IXGBEVF=m
+CONFIG_I40E=m
+CONFIG_I40E_DCB=y
+CONFIG_I40EVF=m
+CONFIG_ICE=m
+# CONFIG_FM10K is not set
+
+##
+## file: drivers/net/ethernet/marvell/Kconfig
+##
+CONFIG_NET_VENDOR_MARVELL=y
+# CONFIG_MVMDIO is not set
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKGE_GENESIS=y
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+
+##
+## file: drivers/net/ethernet/mellanox/Kconfig
+##
+CONFIG_NET_VENDOR_MELLANOX=y
+
+##
+## file: drivers/net/ethernet/mellanox/mlx4/Kconfig
+##
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_EN_DCB=y
+CONFIG_MLX4_DEBUG=y
+CONFIG_MLX4_CORE_GEN2=y
+
+##
+## file: drivers/net/ethernet/mellanox/mlx5/core/Kconfig
+##
+CONFIG_MLX5_CORE=m
+CONFIG_MLX5_FPGA=y
+CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_EN_ARFS=y
+CONFIG_MLX5_EN_RXNFC=y
+CONFIG_MLX5_MPFS=y
+CONFIG_MLX5_ESWITCH=y
+CONFIG_MLX5_CORE_EN_DCB=y
+CONFIG_MLX5_CORE_IPOIB=y
+
+##
+## file: drivers/net/ethernet/mellanox/mlxfw/Kconfig
+##
+CONFIG_MLXFW=m
+
+##
+## file: drivers/net/ethernet/mellanox/mlxsw/Kconfig
+##
+# CONFIG_MLXSW_CORE is not set
+
+##
+## file: drivers/net/ethernet/micrel/Kconfig
+##
+CONFIG_NET_VENDOR_MICREL=y
+# CONFIG_KS8842 is not set
+# CONFIG_KS8851 is not set
+# CONFIG_KS8851_MLL is not set
+CONFIG_KSZ884X_PCI=m
+
+##
+## file: drivers/net/ethernet/microchip/Kconfig
+##
+CONFIG_NET_VENDOR_MICROCHIP=y
+# CONFIG_ENC28J60 is not set
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+# CONFIG_ENCX24J600 is not set
+CONFIG_LAN743X=m
+
+##
+## file: drivers/net/ethernet/mscc/Kconfig
+##
+CONFIG_NET_VENDOR_MICROSEMI=y
+# CONFIG_MSCC_OCELOT_SWITCH is not set
+
+##
+## file: drivers/net/ethernet/myricom/Kconfig
+##
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+
+##
+## file: drivers/net/ethernet/natsemi/Kconfig
+##
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NS83820=m
+
+##
+## file: drivers/net/ethernet/neterion/Kconfig
+##
+CONFIG_NET_VENDOR_NETERION=y
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+
+##
+## file: drivers/net/ethernet/netronome/Kconfig
+##
+CONFIG_NET_VENDOR_NETRONOME=y
+CONFIG_NFP=m
+CONFIG_NFP_APP_FLOWER=y
+CONFIG_NFP_APP_ABM_NIC=y
+# CONFIG_NFP_DEBUG is not set
+
+##
+## file: drivers/net/ethernet/ni/Kconfig
+##
+CONFIG_NET_VENDOR_NI=y
+
+##
+## file: drivers/net/ethernet/oki-semi/Kconfig
+##
+CONFIG_NET_VENDOR_OKI=y
+
+##
+## file: drivers/net/ethernet/packetengines/Kconfig
+##
+CONFIG_NET_VENDOR_PACKET_ENGINES=y
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+
+##
+## file: drivers/net/ethernet/qlogic/Kconfig
+##
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_QLA3XXX=m
+CONFIG_QLCNIC=m
+CONFIG_QLCNIC_SRIOV=y
+CONFIG_QLCNIC_DCB=y
+CONFIG_QLCNIC_HWMON=y
+CONFIG_QLGE=m
+CONFIG_NETXEN_NIC=m
+CONFIG_QED=m
+CONFIG_QED_SRIOV=y
+CONFIG_QEDE=m
+
+##
+## file: drivers/net/ethernet/qualcomm/Kconfig
+##
+CONFIG_NET_VENDOR_QUALCOMM=y
+# CONFIG_QCA7000_SPI is not set
+# CONFIG_QCOM_EMAC is not set
+
+##
+## file: drivers/net/ethernet/qualcomm/rmnet/Kconfig
+##
+# CONFIG_RMNET is not set
+
+##
+## file: drivers/net/ethernet/rdc/Kconfig
+##
+CONFIG_NET_VENDOR_RDC=y
+CONFIG_R6040=m
+
+##
+## file: drivers/net/ethernet/realtek/Kconfig
+##
+CONFIG_NET_VENDOR_REALTEK=y
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R8169=m
+
+##
+## file: drivers/net/ethernet/renesas/Kconfig
+##
+CONFIG_NET_VENDOR_RENESAS=y
+# CONFIG_SH_ETH is not set
+
+##
+## file: drivers/net/ethernet/rocker/Kconfig
+##
+CONFIG_NET_VENDOR_ROCKER=y
+# CONFIG_ROCKER is not set
+
+##
+## file: drivers/net/ethernet/samsung/Kconfig
+##
+CONFIG_NET_VENDOR_SAMSUNG=y
+# CONFIG_SXGBE_ETH is not set
+
+##
+## file: drivers/net/ethernet/seeq/Kconfig
+##
+# CONFIG_NET_VENDOR_SEEQ is not set
+
+##
+## file: drivers/net/ethernet/sfc/Kconfig
+##
+CONFIG_NET_VENDOR_SOLARFLARE=y
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_SFC_MCDI_MON=y
+CONFIG_SFC_SRIOV=y
+CONFIG_SFC_MCDI_LOGGING=y
+
+##
+## file: drivers/net/ethernet/sfc/falcon/Kconfig
+##
+CONFIG_SFC_FALCON=m
+CONFIG_SFC_FALCON_MTD=y
+
+##
+## file: drivers/net/ethernet/silan/Kconfig
+##
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_SC92031=m
+
+##
+## file: drivers/net/ethernet/sis/Kconfig
+##
+CONFIG_NET_VENDOR_SIS=y
+CONFIG_SIS190=m
+
+##
+## file: drivers/net/ethernet/smsc/Kconfig
+##
+CONFIG_NET_VENDOR_SMSC=y
+# CONFIG_SMSC911X is not set
+CONFIG_SMSC9420=m
+
+##
+## file: drivers/net/ethernet/socionext/Kconfig
+##
+CONFIG_NET_VENDOR_SOCIONEXT=y
+
+##
+## file: drivers/net/ethernet/stmicro/Kconfig
+##
+CONFIG_NET_VENDOR_STMICRO=y
+
+##
+## file: drivers/net/ethernet/stmicro/stmmac/Kconfig
+##
+# CONFIG_STMMAC_ETH is not set
+
+##
+## file: drivers/net/ethernet/sun/Kconfig
+##
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_CASSINI=m
+CONFIG_NIU=m
+
+##
+## file: drivers/net/ethernet/synopsys/Kconfig
+##
+CONFIG_NET_VENDOR_SYNOPSYS=y
+# CONFIG_DWC_XLGMAC is not set
+
+##
+## file: drivers/net/ethernet/tehuti/Kconfig
+##
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_TEHUTI=m
+
+##
+## file: drivers/net/ethernet/ti/Kconfig
+##
+CONFIG_NET_VENDOR_TI=y
+# CONFIG_TI_CPSW_ALE is not set
+CONFIG_TLAN=m
+
+##
+## file: drivers/net/ethernet/via/Kconfig
+##
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_VIA_VELOCITY=m
+
+##
+## file: drivers/net/ethernet/wiznet/Kconfig
+##
+CONFIG_NET_VENDOR_WIZNET=y
+# CONFIG_WIZNET_W5100 is not set
+# CONFIG_WIZNET_W5300 is not set
+
+##
+## file: drivers/net/fddi/Kconfig
+##
+CONFIG_DEFXX=m
+# CONFIG_DEFXX_MMIO is not set
+
+##
+## file: drivers/net/hamradio/Kconfig
+##
+CONFIG_MKISS=m
+CONFIG_6PACK=m
+CONFIG_BPQETHER=m
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_BAYCOM_PAR=m
+CONFIG_BAYCOM_EPP=m
+CONFIG_YAM=m
+
+##
+## file: drivers/net/ieee802154/Kconfig
+##
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKELB=m
+CONFIG_IEEE802154_AT86RF230=m
+# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
+CONFIG_IEEE802154_MRF24J40=m
+CONFIG_IEEE802154_CC2520=m
+CONFIG_IEEE802154_ATUSB=m
+CONFIG_IEEE802154_ADF7242=m
+# CONFIG_IEEE802154_CA8210 is not set
+# CONFIG_IEEE802154_MCR20A is not set
+CONFIG_IEEE802154_HWSIM=m
+
+##
+## file: drivers/net/phy/Kconfig
+##
+CONFIG_MDIO_DEVICE=m
+# CONFIG_MDIO_BCM_UNIMAC is not set
+# CONFIG_MDIO_BITBANG is not set
+# CONFIG_MDIO_BUS_MUX_GPIO is not set
+# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
+# CONFIG_MDIO_GPIO is not set
+# CONFIG_MDIO_MSCC_MIIM is not set
+# CONFIG_MDIO_OCTEON is not set
+# CONFIG_MDIO_THUNDER is not set
+CONFIG_PHYLIB=m
+CONFIG_LED_TRIGGER_PHY=y
+CONFIG_SFP=m
+CONFIG_AMD_PHY=m
+CONFIG_AQUANTIA_PHY=m
+# CONFIG_ASIX_PHY is not set
+CONFIG_AT803X_PHY=m
+# CONFIG_BCM63XX_PHY is not set
+# CONFIG_BCM7XXX_PHY is not set
+CONFIG_BCM87XX_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_CORTINA_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_DP83822_PHY=m
+CONFIG_DP83TC811_PHY=m
+CONFIG_DP83848_PHY=m
+CONFIG_DP83867_PHY=m
+#. Must only be enabled for specific flavours
+# CONFIG_FIXED_PHY is not set
+CONFIG_ICPLUS_PHY=m
+# CONFIG_INTEL_XWAY_PHY is not set
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_MARVELL_PHY=m
+CONFIG_MARVELL_10G_PHY=m
+CONFIG_MICREL_PHY=m
+CONFIG_MICROCHIP_PHY=m
+CONFIG_MICROCHIP_T1_PHY=m
+CONFIG_MICROSEMI_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_RENESAS_PHY=m
+CONFIG_ROCKCHIP_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_STE10XP=m
+CONFIG_TERANETICS_PHY=m
+CONFIG_VITESSE_PHY=m
+# CONFIG_XILINX_GMII2RGMII is not set
+# CONFIG_MICREL_KS8995MA is not set
+
+##
+## file: drivers/net/ppp/Kconfig
+##
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+
+##
+## file: drivers/net/slip/Kconfig
+##
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+
+##
+## file: drivers/net/team/Kconfig
+##
+CONFIG_NET_TEAM=m
+CONFIG_NET_TEAM_MODE_BROADCAST=m
+CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
+CONFIG_NET_TEAM_MODE_RANDOM=m
+CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
+CONFIG_NET_TEAM_MODE_LOADBALANCE=m
+
+##
+## file: drivers/net/usb/Kconfig
+##
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+CONFIG_USB_LAN78XX=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_AX88179_178A=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_HUAWEI_CDC_NCM=m
+CONFIG_USB_NET_CDC_MBIM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SR9700=m
+CONFIG_USB_NET_SR9800=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_NET_QMI_WWAN=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_USB_NET_CH9200=m
+
+##
+## file: drivers/net/wan/Kconfig
+##
+CONFIG_HDLC=m
+CONFIG_HDLC_RAW=m
+CONFIG_HDLC_RAW_ETH=m
+CONFIG_HDLC_CISCO=m
+CONFIG_HDLC_FR=m
+CONFIG_HDLC_PPP=m
+# CONFIG_HDLC_X25 is not set
+# CONFIG_PC300TOO is not set
+
+##
+## file: drivers/net/wimax/i2400m/Kconfig
+##
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+
+##
+## file: drivers/net/wireless/Kconfig
+##
+CONFIG_WLAN=y
+# CONFIG_WIRELESS_WDS is not set
+CONFIG_MAC80211_HWSIM=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+
+##
+## file: drivers/net/wireless/admtek/Kconfig
+##
+CONFIG_WLAN_VENDOR_ADMTEK=y
+CONFIG_ADM8211=m
+
+##
+## file: drivers/net/wireless/ath/Kconfig
+##
+CONFIG_WLAN_VENDOR_ATH=y
+# CONFIG_ATH_DEBUG is not set
+
+##
+## file: drivers/net/wireless/ath/ar5523/Kconfig
+##
+CONFIG_AR5523=m
+
+##
+## file: drivers/net/wireless/ath/ath10k/Kconfig
+##
+CONFIG_ATH10K=m
+CONFIG_ATH10K_PCI=m
+# CONFIG_ATH10K_SDIO is not set
+CONFIG_ATH10K_USB=m
+# CONFIG_ATH10K_DEBUG is not set
+# CONFIG_ATH10K_DEBUGFS is not set
+# CONFIG_ATH10K_TRACING is not set
+
+##
+## file: drivers/net/wireless/ath/ath5k/Kconfig
+##
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+# CONFIG_ATH5K_TRACER is not set
+
+##
+## file: drivers/net/wireless/ath/ath6kl/Kconfig
+##
+CONFIG_ATH6KL=m
+CONFIG_ATH6KL_SDIO=m
+CONFIG_ATH6KL_USB=m
+# CONFIG_ATH6KL_DEBUG is not set
+# CONFIG_ATH6KL_TRACING is not set
+
+##
+## file: drivers/net/wireless/ath/ath9k/Kconfig
+##
+CONFIG_ATH9K_BTCOEX_SUPPORT=y
+CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI=y
+# CONFIG_ATH9K_AHB is not set
+# CONFIG_ATH9K_DEBUGFS is not set
+# CONFIG_ATH9K_DYNACK is not set
+# CONFIG_ATH9K_WOW is not set
+CONFIG_ATH9K_RFKILL=y
+CONFIG_ATH9K_CHANNEL_CONTEXT=y
+CONFIG_ATH9K_PCOEM=y
+CONFIG_ATH9K_HTC=m
+# CONFIG_ATH9K_HTC_DEBUGFS is not set
+# CONFIG_ATH9K_HWRNG is not set
+
+##
+## file: drivers/net/wireless/ath/carl9170/Kconfig
+##
+CONFIG_CARL9170=m
+CONFIG_CARL9170_LEDS=y
+# CONFIG_CARL9170_DEBUGFS is not set
+# CONFIG_CARL9170_HWRNG is not set
+
+##
+## file: drivers/net/wireless/ath/wcn36xx/Kconfig
+##
+# CONFIG_WCN36XX is not set
+
+##
+## file: drivers/net/wireless/ath/wil6210/Kconfig
+##
+CONFIG_WIL6210=m
+CONFIG_WIL6210_ISR_COR=y
+CONFIG_WIL6210_TRACING=y
+CONFIG_WIL6210_DEBUGFS=y
+
+##
+## file: drivers/net/wireless/atmel/Kconfig
+##
+CONFIG_WLAN_VENDOR_ATMEL=y
+CONFIG_AT76C50X_USB=m
+
+##
+## file: drivers/net/wireless/broadcom/Kconfig
+##
+CONFIG_WLAN_VENDOR_BROADCOM=y
+
+##
+## file: drivers/net/wireless/broadcom/b43/Kconfig
+##
+CONFIG_B43=m
+## choice: Supported bus types
+CONFIG_B43_BUSES_BCMA_AND_SSB=y
+# CONFIG_B43_BUSES_BCMA is not set
+# CONFIG_B43_BUSES_SSB is not set
+## end choice
+CONFIG_B43_SDIO=y
+CONFIG_B43_PHY_G=y
+CONFIG_B43_PHY_N=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_PHY_HT=y
+# CONFIG_B43_DEBUG is not set
+
+##
+## file: drivers/net/wireless/broadcom/b43legacy/Kconfig
+##
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_DEBUG=y
+## choice: Broadcom 43xx-legacy data transfer mode
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
+## end choice
+
+##
+## file: drivers/net/wireless/broadcom/brcm80211/Kconfig
+##
+CONFIG_BRCMSMAC=m
+CONFIG_BRCMFMAC=m
+# CONFIG_BRCMFMAC_SDIO is not set
+CONFIG_BRCMFMAC_USB=y
+CONFIG_BRCMFMAC_PCIE=y
+# CONFIG_BRCM_TRACING is not set
+# CONFIG_BRCMDBG is not set
+
+##
+## file: drivers/net/wireless/cisco/Kconfig
+##
+CONFIG_WLAN_VENDOR_CISCO=y
+CONFIG_AIRO=m
+
+##
+## file: drivers/net/wireless/intel/Kconfig
+##
+CONFIG_WLAN_VENDOR_INTEL=y
+
+##
+## file: drivers/net/wireless/intel/ipw2x00/Kconfig
+##
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+# CONFIG_IPW2200_DEBUG is not set
+# CONFIG_LIBIPW_DEBUG is not set
+
+##
+## file: drivers/net/wireless/intel/iwlegacy/Kconfig
+##
+CONFIG_IWL4965=m
+CONFIG_IWL3945=m
+# CONFIG_IWLEGACY_DEBUG is not set
+
+##
+## file: drivers/net/wireless/intel/iwlwifi/Kconfig
+##
+CONFIG_IWLWIFI=m
+CONFIG_IWLDVM=m
+CONFIG_IWLMVM=m
+# CONFIG_IWLWIFI_BCAST_FILTERING is not set
+# CONFIG_IWLWIFI_PCIE_RTPM is not set
+# CONFIG_IWLWIFI_DEBUG is not set
+# CONFIG_IWLWIFI_DEVICE_TRACING is not set
+
+##
+## file: drivers/net/wireless/intersil/Kconfig
+##
+CONFIG_WLAN_VENDOR_INTERSIL=y
+# CONFIG_PRISM54 is not set
+
+##
+## file: drivers/net/wireless/intersil/hostap/Kconfig
+##
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+
+##
+## file: drivers/net/wireless/intersil/orinoco/Kconfig
+##
+# CONFIG_HERMES_PRISM is not set
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_ORINOCO_USB=m
+
+##
+## file: drivers/net/wireless/intersil/p54/Kconfig
+##
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_P54_PCI=m
+# CONFIG_P54_SPI is not set
+# CONFIG_P54_SPI_DEFAULT_EEPROM is not set
+
+##
+## file: drivers/net/wireless/marvell/Kconfig
+##
+CONFIG_WLAN_VENDOR_MARVELL=y
+CONFIG_MWL8K=m
+
+##
+## file: drivers/net/wireless/marvell/libertas/Kconfig
+##
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+CONFIG_LIBERTAS_SDIO=m
+# CONFIG_LIBERTAS_SPI is not set
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+
+##
+## file: drivers/net/wireless/marvell/libertas_tf/Kconfig
+##
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+
+##
+## file: drivers/net/wireless/mediatek/Kconfig
+##
+CONFIG_WLAN_VENDOR_MEDIATEK=y
+
+##
+## file: drivers/net/wireless/mediatek/mt76/Kconfig
+##
+CONFIG_MT76x0U=m
+CONFIG_MT76x2E=m
+CONFIG_MT76x2U=m
+
+##
+## file: drivers/net/wireless/mediatek/mt7601u/Kconfig
+##
+CONFIG_MT7601U=m
+
+##
+## file: drivers/net/wireless/quantenna/Kconfig
+##
+CONFIG_WLAN_VENDOR_QUANTENNA=y
+
+##
+## file: drivers/net/wireless/ralink/Kconfig
+##
+CONFIG_WLAN_VENDOR_RALINK=y
+
+##
+## file: drivers/net/wireless/ralink/rt2x00/Kconfig
+##
+CONFIG_RT2X00=m
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT61PCI=m
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT33XX=y
+CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2800PCI_RT53XX=y
+CONFIG_RT2800PCI_RT3290=y
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_RT3573=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
+# CONFIG_RT2800USB_UNKNOWN is not set
+# CONFIG_RT2X00_DEBUG is not set
+
+##
+## file: drivers/net/wireless/realtek/Kconfig
+##
+CONFIG_WLAN_VENDOR_REALTEK=y
+
+##
+## file: drivers/net/wireless/realtek/rtl818x/Kconfig
+##
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+
+##
+## file: drivers/net/wireless/realtek/rtl8xxxu/Kconfig
+##
+CONFIG_RTL8XXXU=m
+# CONFIG_RTL8XXXU_UNTESTED is not set
+
+##
+## file: drivers/net/wireless/realtek/rtlwifi/Kconfig
+##
+CONFIG_RTL_CARDS=m
+CONFIG_RTL8192CE=m
+CONFIG_RTL8192SE=m
+CONFIG_RTL8192DE=m
+CONFIG_RTL8723AE=m
+CONFIG_RTL8723BE=m
+CONFIG_RTL8188EE=m
+CONFIG_RTL8192EE=m
+CONFIG_RTL8821AE=m
+CONFIG_RTL8192CU=m
+# CONFIG_RTLWIFI_DEBUG is not set
+
+##
+## file: drivers/net/wireless/rsi/Kconfig
+##
+CONFIG_WLAN_VENDOR_RSI=y
+CONFIG_RSI_91X=m
+CONFIG_RSI_DEBUGFS=y
+# CONFIG_RSI_SDIO is not set
+CONFIG_RSI_USB=m
+CONFIG_RSI_COEX=y
+
+##
+## file: drivers/net/wireless/st/Kconfig
+##
+CONFIG_WLAN_VENDOR_ST=y
+
+##
+## file: drivers/net/wireless/st/cw1200/Kconfig
+##
+# CONFIG_CW1200 is not set
+
+##
+## file: drivers/net/wireless/ti/Kconfig
+##
+# CONFIG_WLAN_VENDOR_TI is not set
+
+##
+## file: drivers/net/wireless/zydas/Kconfig
+##
+CONFIG_WLAN_VENDOR_ZYDAS=y
+
+##
+## file: drivers/net/wireless/zydas/zd1211rw/Kconfig
+##
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+
+##
+## file: drivers/nfc/Kconfig
+##
+# CONFIG_NFC_TRF7970A is not set
+CONFIG_NFC_SIM=m
+CONFIG_NFC_PORT100=m
+
+##
+## file: drivers/nfc/microread/Kconfig
+##
+# CONFIG_NFC_MICROREAD_I2C is not set
+# CONFIG_NFC_MICROREAD_MEI is not set
+
+##
+## file: drivers/nfc/pn533/Kconfig
+##
+CONFIG_NFC_PN533_USB=m
+# CONFIG_NFC_PN533_I2C is not set
+
+##
+## file: drivers/nfc/st21nfca/Kconfig
+##
+# CONFIG_NFC_ST21NFCA_I2C is not set
+
+##
+## file: drivers/nfc/st95hf/Kconfig
+##
+# CONFIG_NFC_ST95HF is not set
+
+##
+## file: drivers/ntb/Kconfig
+##
+# CONFIG_NTB is not set
+
+##
+## file: drivers/nvdimm/Kconfig
+##
+CONFIG_NVDIMM_DAX=y
+
+##
+## file: drivers/nvme/host/Kconfig
+##
+CONFIG_BLK_DEV_NVME=m
+CONFIG_NVME_MULTIPATH=y
+CONFIG_NVME_RDMA=m
+CONFIG_NVME_FC=m
+
+##
+## file: drivers/nvme/target/Kconfig
+##
+CONFIG_NVME_TARGET=m
+# CONFIG_NVME_TARGET_LOOP is not set
+CONFIG_NVME_TARGET_RDMA=m
+CONFIG_NVME_TARGET_FC=m
+# CONFIG_NVME_TARGET_FCLOOP is not set
+
+##
+## file: drivers/of/Kconfig
+##
+# CONFIG_OF is not set
+# CONFIG_OF_UNITTEST is not set
+# CONFIG_OF_OVERLAY is not set
+
+##
+## file: drivers/parport/Kconfig
+##
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_SERIAL=m
+# CONFIG_PARPORT_PC_FIFO is not set
+# CONFIG_PARPORT_PC_SUPERIO is not set
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_AX88796 is not set
+CONFIG_PARPORT_1284=y
+
+##
+## file: drivers/pci/Kconfig
+##
+CONFIG_PCI_MSI=y
+CONFIG_PCI_QUIRKS=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_REALLOC_ENABLE_AUTO=y
+CONFIG_PCI_STUB=m
+CONFIG_PCI_PF_STUB=m
+CONFIG_XEN_PCIDEV_FRONTEND=m
+CONFIG_PCI_IOV=y
+# CONFIG_PCI_PRI is not set
+# CONFIG_PCI_PASID is not set
+
+##
+## file: drivers/pci/controller/dwc/Kconfig
+##
+# CONFIG_PCIE_DW_PLAT_HOST is not set
+
+##
+## file: drivers/pci/endpoint/Kconfig
+##
+# CONFIG_PCI_ENDPOINT is not set
+
+##
+## file: drivers/pci/hotplug/Kconfig
+##
+CONFIG_HOTPLUG_PCI_CPCI=y
+
+##
+## file: drivers/pci/pcie/Kconfig
+##
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=y
+CONFIG_PCIEAER=y
+CONFIG_PCIEAER_INJECT=m
+# CONFIG_PCIE_ECRC is not set
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+## choice: Default ASPM policy
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
+# CONFIG_PCIEASPM_PERFORMANCE is not set
+## end choice
+CONFIG_PCIE_DPC=y
+CONFIG_PCIE_PTM=y
+
+##
+## file: drivers/pci/switch/Kconfig
+##
+# CONFIG_PCI_SW_SWITCHTEC is not set
+
+##
+## file: drivers/pcmcia/Kconfig
+##
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_TOSHIBA=y
+
+##
+## file: drivers/phy/Kconfig
+##
+# CONFIG_GENERIC_PHY is not set
+
+##
+## file: drivers/phy/broadcom/Kconfig
+##
+# CONFIG_BCM_KONA_USB2_PHY is not set
+
+##
+## file: drivers/phy/marvell/Kconfig
+##
+# CONFIG_PHY_PXA_28NM_HSIC is not set
+# CONFIG_PHY_PXA_28NM_USB2 is not set
+
+##
+## file: drivers/phy/samsung/Kconfig
+##
+# CONFIG_PHY_EXYNOS_DP_VIDEO is not set
+# CONFIG_PHY_EXYNOS_MIPI_VIDEO is not set
+# CONFIG_PHY_SAMSUNG_USB2 is not set
+
+##
+## file: drivers/phy/ti/Kconfig
+##
+# CONFIG_OMAP_CONTROL_PHY is not set
+# CONFIG_OMAP_USB2 is not set
+# CONFIG_TWL4030_USB is not set
+
+##
+## file: drivers/pinctrl/Kconfig
+##
+# CONFIG_PINMUX is not set
+# CONFIG_PINCONF is not set
+# CONFIG_DEBUG_PINCTRL is not set
+# CONFIG_PINCTRL_AMD is not set
+# CONFIG_PINCTRL_MCP23S08 is not set
+# CONFIG_PINCTRL_SINGLE is not set
+# CONFIG_PINCTRL_SX150X is not set
+
+##
+## file: drivers/pinctrl/intel/Kconfig
+##
+# CONFIG_PINCTRL_BAYTRAIL is not set
+# CONFIG_PINCTRL_CHERRYVIEW is not set
+# CONFIG_PINCTRL_BROXTON is not set
+# CONFIG_PINCTRL_SUNRISEPOINT is not set
+
+##
+## file: drivers/platform/goldfish/Kconfig
+##
+# CONFIG_GOLDFISH is not set
+
+##
+## file: drivers/platform/x86/Kconfig
+##
+CONFIG_ASUS_LAPTOP=m
+CONFIG_FUJITSU_LAPTOP=m
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_SONY_LAPTOP=m
+# CONFIG_SAMSUNG_LAPTOP is not set
+
+##
+## file: drivers/pnp/Kconfig
+##
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+
+##
+## file: drivers/power/avs/Kconfig
+##
+# CONFIG_POWER_AVS is not set
+
+##
+## file: drivers/power/reset/Kconfig
+##
+# CONFIG_POWER_RESET is not set
+
+##
+## file: drivers/power/supply/Kconfig
+##
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_GENERIC_ADC_BATTERY is not set
+CONFIG_WM831X_POWER=m
+CONFIG_WM8350_POWER=m
+# CONFIG_TEST_POWER is not set
+# CONFIG_CHARGER_ADP5061 is not set
+CONFIG_BATTERY_DS2760=m
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2781 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_CHARGER_SBS is not set
+# CONFIG_MANAGER_SBS is not set
+CONFIG_BATTERY_BQ27XXX=m
+# CONFIG_BATTERY_BQ27XXX_I2C is not set
+CONFIG_BATTERY_BQ27XXX_HDQ=m
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_BATTERY_MAX1721X is not set
+CONFIG_CHARGER_PCF50633=m
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_LP8727 is not set
+# CONFIG_CHARGER_GPIO is not set
+# CONFIG_CHARGER_MANAGER is not set
+# CONFIG_CHARGER_LTC3651 is not set
+# CONFIG_CHARGER_BQ2415X is not set
+# CONFIG_CHARGER_BQ24190 is not set
+# CONFIG_CHARGER_BQ24257 is not set
+# CONFIG_CHARGER_BQ24735 is not set
+# CONFIG_CHARGER_BQ25890 is not set
+# CONFIG_CHARGER_SMB347 is not set
+# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_CHARGER_RT9455 is not set
+
+##
+## file: drivers/pps/Kconfig
+##
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+# CONFIG_NTP_PPS is not set
+
+##
+## file: drivers/pps/clients/Kconfig
+##
+# CONFIG_PPS_CLIENT_KTIMER is not set
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_PARPORT=m
+# CONFIG_PPS_CLIENT_GPIO is not set
+
+##
+## file: drivers/ptp/Kconfig
+##
+CONFIG_PTP_1588_CLOCK=m
+CONFIG_PTP_1588_CLOCK_QORIQ=m
+CONFIG_PTP_1588_CLOCK_IXP46X=m
+
+##
+## file: drivers/pwm/Kconfig
+##
+# CONFIG_PWM is not set
+
+##
+## file: drivers/regulator/Kconfig
+##
+# CONFIG_REGULATOR is not set
+# CONFIG_REGULATOR_DEBUG is not set
+# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+# CONFIG_REGULATOR_88PG86X is not set
+# CONFIG_REGULATOR_ACT8865 is not set
+# CONFIG_REGULATOR_AD5398 is not set
+# CONFIG_REGULATOR_AXP20X is not set
+# CONFIG_REGULATOR_DA9210 is not set
+# CONFIG_REGULATOR_DA9211 is not set
+# CONFIG_REGULATOR_FAN53555 is not set
+# CONFIG_REGULATOR_GPIO is not set
+# CONFIG_REGULATOR_ISL9305 is not set
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+# CONFIG_REGULATOR_LP872X is not set
+# CONFIG_REGULATOR_LP8755 is not set
+# CONFIG_REGULATOR_LTC3589 is not set
+# CONFIG_REGULATOR_LTC3676 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+# CONFIG_REGULATOR_MT6311 is not set
+# CONFIG_REGULATOR_PFUZE100 is not set
+# CONFIG_REGULATOR_PV88060 is not set
+# CONFIG_REGULATOR_PV88080 is not set
+# CONFIG_REGULATOR_PV88090 is not set
+# CONFIG_REGULATOR_PWM is not set
+# CONFIG_REGULATOR_TPS51632 is not set
+# CONFIG_REGULATOR_TPS62360 is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+# CONFIG_REGULATOR_TPS6524X is not set
+
+##
+## file: drivers/reset/Kconfig
+##
+# CONFIG_RESET_CONTROLLER is not set
+
+##
+## file: drivers/rtc/Kconfig
+##
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+CONFIG_RTC_NVMEM=y
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+# CONFIG_RTC_DRV_ABB5ZES3 is not set
+# CONFIG_RTC_DRV_ABX80X is not set
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_HYM8563 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_ISL12022 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8523 is not set
+# CONFIG_RTC_DRV_PCF85063 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_M41T80_WDT is not set
+# CONFIG_RTC_DRV_BQ32K is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8010 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+# CONFIG_RTC_DRV_EM3027 is not set
+# CONFIG_RTC_DRV_RV8803 is not set
+# CONFIG_RTC_DRV_M41T93 is not set
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1302 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1343 is not set
+# CONFIG_RTC_DRV_DS1347 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6916 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RX4581 is not set
+# CONFIG_RTC_DRV_RX6110 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
+# CONFIG_RTC_DRV_MCP795 is not set
+# CONFIG_RTC_DRV_DS3232 is not set
+# CONFIG_RTC_DRV_PCF2127 is not set
+# CONFIG_RTC_DRV_RV3029C2 is not set
+CONFIG_RTC_DRV_CMOS=m
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1685_FAMILY is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_DS2404 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_MSM6242 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_RP5C01 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+CONFIG_RTC_DRV_WM831X=m
+CONFIG_RTC_DRV_WM8350=m
+CONFIG_RTC_DRV_PCF50633=m
+CONFIG_RTC_DRV_AB3100=m
+# CONFIG_RTC_DRV_ZYNQMP is not set
+# CONFIG_RTC_DRV_SNVS is not set
+# CONFIG_RTC_DRV_MOXART is not set
+# CONFIG_RTC_DRV_XGENE is not set
+# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
+
+##
+## file: drivers/scsi/Kconfig
+##
+CONFIG_RAID_ATTRS=m
+CONFIG_SCSI=m
+CONFIG_SCSI_MQ_DEFAULT=y
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+CONFIG_SCSI_SCAN_ASYNC=y
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_ISCSI_TCP=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AHA152X=m
+CONFIG_SCSI_AHA1542=m
+CONFIG_SCSI_AHA1740=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_MVUMI=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_HPTIOP=m
+CONFIG_XEN_SCSI_FRONTEND=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
+CONFIG_SCSI_SNIC=m
+# CONFIG_SCSI_SNIC_DEBUG_FS is not set
+# CONFIG_SCSI_PPA is not set
+# CONFIG_SCSI_IMM is not set
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+# CONFIG_SCSI_IPR is not set
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_WD719X=m
+# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_VIRTIO=m
+
+##
+## file: drivers/scsi/aic7xxx/Kconfig.aic79xx
+##
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+CONFIG_AIC79XX_DEBUG_ENABLE=y
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+
+##
+## file: drivers/scsi/aic7xxx/Kconfig.aic7xxx
+##
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+CONFIG_AIC7XXX_DEBUG_ENABLE=y
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+
+##
+## file: drivers/scsi/aic94xx/Kconfig
+##
+CONFIG_SCSI_AIC94XX=m
+# CONFIG_AIC94XX_DEBUG is not set
+
+##
+## file: drivers/scsi/be2iscsi/Kconfig
+##
+CONFIG_BE2ISCSI=m
+
+##
+## file: drivers/scsi/bnx2fc/Kconfig
+##
+CONFIG_SCSI_BNX2X_FCOE=m
+
+##
+## file: drivers/scsi/bnx2i/Kconfig
+##
+CONFIG_SCSI_BNX2_ISCSI=m
+
+##
+## file: drivers/scsi/csiostor/Kconfig
+##
+CONFIG_SCSI_CHELSIO_FCOE=m
+
+##
+## file: drivers/scsi/cxgbi/cxgb3i/Kconfig
+##
+CONFIG_SCSI_CXGB3_ISCSI=m
+
+##
+## file: drivers/scsi/cxgbi/cxgb4i/Kconfig
+##
+CONFIG_SCSI_CXGB4_ISCSI=m
+
+##
+## file: drivers/scsi/device_handler/Kconfig
+##
+CONFIG_SCSI_DH=y
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_ALUA=m
+
+##
+## file: drivers/scsi/esas2r/Kconfig
+##
+CONFIG_SCSI_ESAS2R=m
+
+##
+## file: drivers/scsi/libsas/Kconfig
+##
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+
+##
+## file: drivers/scsi/megaraid/Kconfig.megaraid
+##
+CONFIG_MEGARAID_SAS=m
+
+##
+## file: drivers/scsi/mpt3sas/Kconfig
+##
+CONFIG_SCSI_MPT3SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+CONFIG_SCSI_MPT3SAS_MAX_SGE=128
+CONFIG_SCSI_MPT2SAS=m
+
+##
+## file: drivers/scsi/mvsas/Kconfig
+##
+CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+# CONFIG_SCSI_MVSAS_TASKLET is not set
+
+##
+## file: drivers/scsi/osd/Kconfig
+##
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=1
+# CONFIG_SCSI_OSD_DEBUG is not set
+
+##
+## file: drivers/scsi/pcmcia/Kconfig
+##
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+
+##
+## file: drivers/scsi/qedf/Kconfig
+##
+CONFIG_QEDF=m
+
+##
+## file: drivers/scsi/qedi/Kconfig
+##
+CONFIG_QEDI=m
+
+##
+## file: drivers/scsi/qla2xxx/Kconfig
+##
+CONFIG_SCSI_QLA_FC=m
+CONFIG_TCM_QLA2XXX=m
+# CONFIG_TCM_QLA2XXX_DEBUG is not set
+
+##
+## file: drivers/scsi/qla4xxx/Kconfig
+##
+CONFIG_SCSI_QLA_ISCSI=m
+
+##
+## file: drivers/scsi/smartpqi/Kconfig
+##
+CONFIG_SCSI_SMARTPQI=m
+
+##
+## file: drivers/scsi/ufs/Kconfig
+##
+CONFIG_SCSI_UFSHCD=m
+CONFIG_SCSI_UFSHCD_PCI=m
+# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
+# CONFIG_SCSI_UFSHCD_PLATFORM is not set
+
+##
+## file: drivers/soc/ti/Kconfig
+##
+# CONFIG_SOC_TI is not set
+
+##
+## file: drivers/spi/Kconfig
+##
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+# CONFIG_SPI_ALTERA is not set
+# CONFIG_SPI_AXI_SPI_ENGINE is not set
+CONFIG_SPI_BITBANG=m
+CONFIG_SPI_BUTTERFLY=m
+# CONFIG_SPI_CADENCE is not set
+# CONFIG_SPI_DESIGNWARE is not set
+# CONFIG_SPI_GPIO is not set
+CONFIG_SPI_LM70_LLP=m
+# CONFIG_SPI_FSL_SPI is not set
+# CONFIG_SPI_FSL_DSPI is not set
+# CONFIG_SPI_OC_TINY is not set
+# CONFIG_SPI_PXA2XX is not set
+# CONFIG_SPI_ROCKCHIP is not set
+# CONFIG_SPI_SC18IS602 is not set
+# CONFIG_SPI_TOPCLIFF_PCH is not set
+# CONFIG_SPI_XCOMM is not set
+# CONFIG_SPI_XILINX is not set
+# CONFIG_SPI_ZYNQMP_GQSPI is not set
+CONFIG_SPI_SPIDEV=y
+# CONFIG_SPI_LOOPBACK_TEST is not set
+# CONFIG_SPI_TLE62X0 is not set
+# CONFIG_SPI_SLAVE is not set
+
+##
+## file: drivers/spmi/Kconfig
+##
+# CONFIG_SPMI is not set
+
+##
+## file: drivers/ssb/Kconfig
+##
+CONFIG_SSB=m
+CONFIG_SSB_PCMCIAHOST=y
+# CONFIG_SSB_HOST_SOC is not set
+# CONFIG_SSB_DRIVER_GPIO is not set
+
+##
+## file: drivers/staging/Kconfig
+##
+CONFIG_STAGING=y
+
+##
+## file: drivers/staging/android/Kconfig
+##
+CONFIG_ASHMEM=m
+
+##
+## file: drivers/staging/android/ion/Kconfig
+##
+# CONFIG_ION is not set
+
+##
+## file: drivers/staging/board/Kconfig
+##
+# CONFIG_STAGING_BOARD is not set
+
+##
+## file: drivers/staging/clocking-wizard/Kconfig
+##
+# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
+
+##
+## file: drivers/staging/comedi/Kconfig
+##
+# CONFIG_COMEDI is not set
+
+##
+## file: drivers/staging/dgnc/Kconfig
+##
+# CONFIG_DGNC is not set
+
+##
+## file: drivers/staging/fbtft/Kconfig
+##
+# CONFIG_FB_TFT is not set
+
+##
+## file: drivers/staging/gdm724x/Kconfig
+##
+# CONFIG_LTE_GDM724X is not set
+
+##
+## file: drivers/staging/greybus/Kconfig
+##
+# CONFIG_GREYBUS is not set
+
+##
+## file: drivers/staging/gs_fpgaboot/Kconfig
+##
+# CONFIG_GS_FPGABOOT is not set
+
+##
+## file: drivers/staging/iio/accel/Kconfig
+##
+# CONFIG_ADIS16203 is not set
+# CONFIG_ADIS16240 is not set
+
+##
+## file: drivers/staging/iio/adc/Kconfig
+##
+# CONFIG_AD7606 is not set
+# CONFIG_AD7780 is not set
+# CONFIG_AD7816 is not set
+# CONFIG_AD7192 is not set
+# CONFIG_AD7280 is not set
+
+##
+## file: drivers/staging/iio/addac/Kconfig
+##
+# CONFIG_ADT7316 is not set
+
+##
+## file: drivers/staging/iio/cdc/Kconfig
+##
+# CONFIG_AD7150 is not set
+# CONFIG_AD7152 is not set
+# CONFIG_AD7746 is not set
+
+##
+## file: drivers/staging/iio/frequency/Kconfig
+##
+# CONFIG_AD9832 is not set
+# CONFIG_AD9834 is not set
+
+##
+## file: drivers/staging/iio/impedance-analyzer/Kconfig
+##
+# CONFIG_AD5933 is not set
+
+##
+## file: drivers/staging/iio/meter/Kconfig
+##
+# CONFIG_ADE7854 is not set
+
+##
+## file: drivers/staging/iio/resolver/Kconfig
+##
+# CONFIG_AD2S90 is not set
+# CONFIG_AD2S1210 is not set
+
+##
+## file: drivers/staging/media/Kconfig
+##
+# CONFIG_STAGING_MEDIA is not set
+
+##
+## file: drivers/staging/media/imx074/Kconfig
+##
+# CONFIG_SOC_CAMERA_IMX074 is not set
+
+##
+## file: drivers/staging/media/mt9t031/Kconfig
+##
+# CONFIG_SOC_CAMERA_MT9T031 is not set
+
+##
+## file: drivers/staging/media/zoran/Kconfig
+##
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_DC30=m
+CONFIG_VIDEO_ZORAN_ZR36060=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZORAN_LML33R10=m
+CONFIG_VIDEO_ZORAN_AVS6EYES=m
+
+##
+## file: drivers/staging/most/Kconfig
+##
+# CONFIG_MOST is not set
+
+##
+## file: drivers/staging/mt29f_spinand/Kconfig
+##
+# CONFIG_MTD_SPINAND_MT29F is not set
+
+##
+## file: drivers/staging/rtl8188eu/Kconfig
+##
+CONFIG_R8188EU=m
+CONFIG_88EU_AP_MODE=y
+
+##
+## file: drivers/staging/rtl8192e/Kconfig
+##
+# CONFIG_RTLLIB is not set
+
+##
+## file: drivers/staging/rtl8192e/rtl8192e/Kconfig
+##
+# CONFIG_RTL8192E is not set
+
+##
+## file: drivers/staging/rtl8192u/Kconfig
+##
+# CONFIG_RTL8192U is not set
+
+##
+## file: drivers/staging/rtl8712/Kconfig
+##
+CONFIG_R8712U=m
+
+##
+## file: drivers/staging/rts5208/Kconfig
+##
+# CONFIG_RTS5208 is not set
+
+##
+## file: drivers/staging/sm750fb/Kconfig
+##
+# CONFIG_FB_SM750 is not set
+
+##
+## file: drivers/staging/speakup/Kconfig
+##
+CONFIG_SPEAKUP=m
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_ACNTPC=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+CONFIG_SPEAKUP_SYNTH_DECEXT=m
+CONFIG_SPEAKUP_SYNTH_DTLK=m
+CONFIG_SPEAKUP_SYNTH_KEYPC=m
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
+CONFIG_SPEAKUP_SYNTH_DUMMY=m
+
+##
+## file: drivers/staging/vt6655/Kconfig
+##
+# CONFIG_VT6655 is not set
+
+##
+## file: drivers/staging/vt6656/Kconfig
+##
+# CONFIG_VT6656 is not set
+
+##
+## file: drivers/staging/wlan-ng/Kconfig
+##
+# CONFIG_PRISM2_USB is not set
+
+##
+## file: drivers/staging/xgifb/Kconfig
+##
+# CONFIG_FB_XGI is not set
+
+##
+## file: drivers/target/Kconfig
+##
+CONFIG_TARGET_CORE=m
+CONFIG_TCM_IBLOCK=m
+CONFIG_TCM_FILEIO=m
+CONFIG_TCM_PSCSI=m
+CONFIG_TCM_USER2=m
+
+##
+## file: drivers/target/iscsi/Kconfig
+##
+CONFIG_ISCSI_TARGET=m
+
+##
+## file: drivers/target/iscsi/cxgbit/Kconfig
+##
+CONFIG_ISCSI_TARGET_CXGB4=m
+
+##
+## file: drivers/target/loopback/Kconfig
+##
+CONFIG_LOOPBACK_TARGET=m
+
+##
+## file: drivers/target/sbp/Kconfig
+##
+CONFIG_SBP_TARGET=m
+
+##
+## file: drivers/target/tcm_fc/Kconfig
+##
+CONFIG_TCM_FC=m
+
+##
+## file: drivers/thermal/Kconfig
+##
+CONFIG_THERMAL_STATISTICS=y
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
+CONFIG_THERMAL_HWMON=y
+## choice: Default Thermal governor
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
+# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set
+## end choice
+CONFIG_THERMAL_GOV_FAIR_SHARE=y
+# CONFIG_THERMAL_GOV_STEP_WISE is not set
+# CONFIG_THERMAL_GOV_BANG_BANG is not set
+# CONFIG_THERMAL_GOV_USER_SPACE is not set
+# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set
+# CONFIG_CLOCK_THERMAL is not set
+CONFIG_DEVFREQ_THERMAL=y
+# CONFIG_THERMAL_EMULATION is not set
+# CONFIG_GENERIC_ADC_THERMAL is not set
+
+##
+## file: drivers/tty/Kconfig
+##
+CONFIG_TTY=y
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_MOXA_SMARTIO=m
+CONFIG_SYNCLINK_GT=m
+CONFIG_NOZOMI=m
+CONFIG_N_GSM=m
+# CONFIG_TRACE_SINK is not set
+
+##
+## file: drivers/tty/hvc/Kconfig
+##
+CONFIG_HVC_XEN=y
+CONFIG_HVC_XEN_FRONTEND=y
+
+##
+## file: drivers/tty/serdev/Kconfig
+##
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+
+##
+## file: drivers/tty/serial/Kconfig
+##
+# CONFIG_SERIAL_MAX3100 is not set
+# CONFIG_SERIAL_MAX310X is not set
+# CONFIG_SERIAL_UARTLITE is not set
+# CONFIG_SERIAL_SCCNXP is not set
+# CONFIG_SERIAL_SC16IS7XX is not set
+# CONFIG_SERIAL_TIMBERDALE is not set
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+# CONFIG_SERIAL_IFX6X60 is not set
+# CONFIG_SERIAL_XILINX_PS_UART is not set
+# CONFIG_SERIAL_ARC is not set
+CONFIG_SERIAL_RP2=m
+CONFIG_SERIAL_RP2_NR_UARTS=32
+# CONFIG_SERIAL_FSL_LPUART is not set
+# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
+# CONFIG_SERIAL_ST_ASC is not set
+
+##
+## file: drivers/tty/serial/8250/Kconfig
+##
+# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_DMA=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_EXAR=m
+CONFIG_SERIAL_8250_FOURPORT=m
+CONFIG_SERIAL_8250_ACCENT=m
+CONFIG_SERIAL_8250_BOCA=m
+CONFIG_SERIAL_8250_HUB6=m
+# CONFIG_SERIAL_8250_DW is not set
+# CONFIG_SERIAL_8250_RT288X is not set
+# CONFIG_SERIAL_8250_MID is not set
+CONFIG_SERIAL_8250_MOXA=m
+CONFIG_SERIAL_OF_PLATFORM=m
+
+##
+## file: drivers/uio/Kconfig
+##
+CONFIG_UIO=m
+CONFIG_UIO_CIF=m
+# CONFIG_UIO_PDRV_GENIRQ is not set
+# CONFIG_UIO_DMEM_GENIRQ is not set
+CONFIG_UIO_AEC=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
+# CONFIG_UIO_PRUSS is not set
+CONFIG_UIO_MF624=m
+
+##
+## file: drivers/usb/Kconfig
+##
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_PCI=y
+CONFIG_USB_LED_TRIG=y
+# CONFIG_USB_ULPI_BUS is not set
+
+##
+## file: drivers/usb/atm/Kconfig
+##
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+
+##
+## file: drivers/usb/chipidea/Kconfig
+##
+# CONFIG_USB_CHIPIDEA is not set
+
+##
+## file: drivers/usb/class/Kconfig
+##
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_WDM=m
+CONFIG_USB_TMC=m
+
+##
+## file: drivers/usb/core/Kconfig
+##
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+CONFIG_USB_DEFAULT_PERSIST=y
+CONFIG_USB_DYNAMIC_MINORS=y
+# CONFIG_USB_OTG is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_USB_OTG_FSM is not set
+CONFIG_USB_LEDS_TRIGGER_USBPORT=m
+
+##
+## file: drivers/usb/dwc2/Kconfig
+##
+# CONFIG_USB_DWC2 is not set
+
+##
+## file: drivers/usb/dwc3/Kconfig
+##
+# CONFIG_USB_DWC3 is not set
+
+##
+## file: drivers/usb/gadget/Kconfig
+##
+# CONFIG_USB_GADGET is not set
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_PHONET=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+CONFIG_USB_CONFIGFS_F_UAC2=y
+CONFIG_USB_CONFIGFS_F_MIDI=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_USB_CONFIGFS_F_PRINTER=y
+
+##
+## file: drivers/usb/gadget/legacy/Kconfig
+##
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_FUNCTIONFS_ETH=y
+CONFIG_USB_FUNCTIONFS_RNDIS=y
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_G_SERIAL=m
+
+##
+## file: drivers/usb/gadget/udc/Kconfig
+##
+# CONFIG_USB_FUSB300 is not set
+# CONFIG_USB_FOTG210_UDC is not set
+# CONFIG_USB_GR_UDC is not set
+# CONFIG_USB_R8A66597 is not set
+# CONFIG_USB_PXA27X is not set
+# CONFIG_USB_MV_UDC is not set
+# CONFIG_USB_MV_U3D is not set
+# CONFIG_USB_M66592 is not set
+# CONFIG_USB_AMD5536UDC is not set
+# CONFIG_USB_NET2272 is not set
+CONFIG_USB_NET2280=m
+# CONFIG_USB_GOKU is not set
+# CONFIG_USB_GADGET_XILINX is not set
+# CONFIG_USB_DUMMY_HCD is not set
+
+##
+## file: drivers/usb/gadget/udc/bdc/Kconfig
+##
+# CONFIG_USB_BDC_UDC is not set
+
+##
+## file: drivers/usb/host/Kconfig
+##
+# CONFIG_USB_C67X00_HCD is not set
+CONFIG_USB_XHCI_HCD=m
+# CONFIG_USB_XHCI_DBGCAP is not set
+# CONFIG_USB_XHCI_PLATFORM is not set
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+# CONFIG_USB_EHCI_HCD_PLATFORM is not set
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
+# CONFIG_USB_FOTG210_HCD is not set
+# CONFIG_USB_MAX3421_HCD is not set
+CONFIG_USB_OHCI_HCD_PCI=y
+# CONFIG_USB_OHCI_HCD_PLATFORM is not set
+CONFIG_USB_U132_HCD=m
+# CONFIG_USB_R8A66597_HCD is not set
+CONFIG_USB_WHCI_HCD=m
+CONFIG_USB_HWA_HCD=m
+# CONFIG_USB_HCD_BCMA is not set
+# CONFIG_USB_HCD_SSB is not set
+# CONFIG_USB_HCD_TEST_MODE is not set
+
+##
+## file: drivers/usb/image/Kconfig
+##
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+##
+## file: drivers/usb/isp1760/Kconfig
+##
+# CONFIG_USB_ISP1760 is not set
+
+##
+## file: drivers/usb/misc/Kconfig
+##
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+CONFIG_USB_EHSET_TEST_FIXTURE=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_YUREX=m
+# CONFIG_USB_HSIC_USB3503 is not set
+# CONFIG_USB_HSIC_USB4604 is not set
+# CONFIG_USB_LINK_LAYER_TEST is not set
+CONFIG_USB_CHAOSKEY=m
+
+##
+## file: drivers/usb/misc/sisusbvga/Kconfig
+##
+CONFIG_USB_SISUSBVGA=m
+CONFIG_USB_SISUSBVGA_CON=y
+
+##
+## file: drivers/usb/mon/Kconfig
+##
+CONFIG_USB_MON=y
+
+##
+## file: drivers/usb/musb/Kconfig
+##
+# CONFIG_USB_MUSB_HDRC is not set
+
+##
+## file: drivers/usb/phy/Kconfig
+##
+# CONFIG_AB8500_USB is not set
+# CONFIG_FSL_USB2_OTG is not set
+# CONFIG_ISP1301_OMAP is not set
+# CONFIG_NOP_USB_XCEIV is not set
+# CONFIG_AM335X_PHY_USB is not set
+# CONFIG_TWL6030_USB is not set
+# CONFIG_USB_GPIO_VBUS is not set
+# CONFIG_USB_ISP1301 is not set
+# CONFIG_USB_MV_OTG is not set
+# CONFIG_USB_MXS_PHY is not set
+# CONFIG_USB_ULPI is not set
+
+##
+## file: drivers/usb/renesas_usbhs/Kconfig
+##
+# CONFIG_USB_RENESAS_USBHS is not set
+
+##
+## file: drivers/usb/serial/Kconfig
+##
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_SIMPLE=m
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
+CONFIG_USB_SERIAL_F8153X=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_METRO=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MXUPORT=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_XSENS_MT=m
+CONFIG_USB_SERIAL_WISHBONE=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_QT2=m
+CONFIG_USB_SERIAL_UPD78F0730=m
+CONFIG_USB_SERIAL_DEBUG=m
+
+##
+## file: drivers/usb/storage/Kconfig
+##
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_REALTEK_AUTOPM=y
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_UAS=m
+
+##
+## file: drivers/usb/typec/ucsi/Kconfig
+##
+CONFIG_TYPEC_UCSI=m
+CONFIG_UCSI_ACPI=m
+
+##
+## file: drivers/usb/usbip/Kconfig
+##
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_VHCI_HC_PORTS=15
+CONFIG_USBIP_VHCI_NR_HCS=8
+CONFIG_USBIP_HOST=m
+CONFIG_USBIP_VUDC=m
+# CONFIG_USBIP_DEBUG is not set
+
+##
+## file: drivers/usb/wusbcore/Kconfig
+##
+CONFIG_USB_WUSB=m
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+
+##
+## file: drivers/uwb/Kconfig
+##
+CONFIG_UWB=m
+CONFIG_UWB_I1480U=m
+
+##
+## file: drivers/vfio/Kconfig
+##
+# CONFIG_VFIO_NOIOMMU is not set
+
+##
+## file: drivers/vhost/Kconfig
+##
+CONFIG_VHOST_NET=m
+CONFIG_VHOST_SCSI=m
+CONFIG_VHOST_VSOCK=m
+# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
+
+##
+## file: drivers/video/backlight/Kconfig
+##
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+# CONFIG_LCD_CLASS_DEVICE is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+# CONFIG_BACKLIGHT_GENERIC is not set
+# CONFIG_BACKLIGHT_PWM is not set
+CONFIG_BACKLIGHT_APPLE=m
+# CONFIG_BACKLIGHT_PM8941_WLED is not set
+# CONFIG_BACKLIGHT_SAHARA is not set
+CONFIG_BACKLIGHT_WM831X=m
+# CONFIG_BACKLIGHT_ADP8860 is not set
+# CONFIG_BACKLIGHT_ADP8870 is not set
+# CONFIG_BACKLIGHT_LM3630A is not set
+# CONFIG_BACKLIGHT_LM3639 is not set
+# CONFIG_BACKLIGHT_LP855X is not set
+# CONFIG_BACKLIGHT_OT200 is not set
+# CONFIG_BACKLIGHT_GPIO is not set
+# CONFIG_BACKLIGHT_LV5207LP is not set
+# CONFIG_BACKLIGHT_BD6107 is not set
+# CONFIG_BACKLIGHT_ARCXCNN is not set
+
+##
+## file: drivers/video/console/Kconfig
+##
+# CONFIG_VGACON_SOFT_SCROLLBACK is not set
+CONFIG_DUMMY_CONSOLE_COLUMNS=80
+CONFIG_DUMMY_CONSOLE_ROWS=25
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+#. This won't work nicely unless we also hide the boot menu
+# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_ARC=m
+# CONFIG_FB_UVESA is not set
+# CONFIG_FB_OPENCORES is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_I740 is not set
+# CONFIG_FB_INTEL_DEBUG is not set
+# CONFIG_FB_INTEL_I2C is not set
+CONFIG_FB_S3=m
+CONFIG_FB_S3_DDC=y
+CONFIG_FB_VIA=m
+# CONFIG_FB_VIA_DIRECT_PROCFS is not set
+CONFIG_FB_VIA_X_COMPATIBILITY=y
+CONFIG_FB_3DFX=m
+# CONFIG_FB_3DFX_ACCEL is not set
+CONFIG_FB_3DFX_I2C=y
+CONFIG_FB_VT8623=m
+CONFIG_FB_ARK=m
+CONFIG_FB_PM3=m
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_TMIO is not set
+CONFIG_FB_SM501=m
+CONFIG_FB_SMSCUFX=m
+CONFIG_FB_UDL=m
+# CONFIG_FB_IBM_GXT4500 is not set
+# CONFIG_FB_GOLDFISH is not set
+CONFIG_XEN_FBDEV_FRONTEND=y
+# CONFIG_FB_METRONOME is not set
+CONFIG_FB_MB862XX=m
+## choice: GDC variant
+CONFIG_FB_MB862XX_PCI_GDC=y
+## end choice
+CONFIG_FB_MB862XX_I2C=y
+# CONFIG_FB_BROADSHEET is not set
+# CONFIG_FB_SSD1307 is not set
+# CONFIG_FB_SM712 is not set
+
+##
+## file: drivers/video/logo/Kconfig
+##
+# CONFIG_LOGO is not set
+
+##
+## file: drivers/virt/Kconfig
+##
+CONFIG_VIRT_DRIVERS=y
+
+##
+## file: drivers/virtio/Kconfig
+##
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_PCI_LEGACY=y
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MMIO=m
+# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
+
+##
+## file: drivers/vme/Kconfig
+##
+# CONFIG_VME_BUS is not set
+
+##
+## file: drivers/w1/Kconfig
+##
+CONFIG_W1=m
+CONFIG_W1_CON=y
+
+##
+## file: drivers/w1/masters/Kconfig
+##
+# CONFIG_W1_MASTER_MATROX is not set
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+# CONFIG_W1_MASTER_DS1WM is not set
+CONFIG_W1_MASTER_GPIO=m
+
+##
+## file: drivers/w1/slaves/Kconfig
+##
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2405=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2408_READBACK=y
+CONFIG_W1_SLAVE_DS2413=m
+CONFIG_W1_SLAVE_DS2406=m
+CONFIG_W1_SLAVE_DS2423=m
+CONFIG_W1_SLAVE_DS2805=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+# CONFIG_W1_SLAVE_DS2433_CRC is not set
+CONFIG_W1_SLAVE_DS2438=m
+CONFIG_W1_SLAVE_DS2780=m
+CONFIG_W1_SLAVE_DS2781=m
+CONFIG_W1_SLAVE_DS28E04=m
+CONFIG_W1_SLAVE_DS28E17=m
+
+##
+## file: drivers/watchdog/Kconfig
+##
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
+CONFIG_WATCHDOG_SYSFS=y
+CONFIG_SOFT_WATCHDOG=m
+# CONFIG_GPIO_WATCHDOG is not set
+CONFIG_WDAT_WDT=m
+CONFIG_WM831X_WATCHDOG=m
+CONFIG_WM8350_WATCHDOG=m
+# CONFIG_XILINX_WATCHDOG is not set
+# CONFIG_ZIIRAVE_WATCHDOG is not set
+# CONFIG_CADENCE_WATCHDOG is not set
+# CONFIG_DW_WATCHDOG is not set
+# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_EBC_C384_WDT is not set
+CONFIG_SBC_FITPC2_WATCHDOG=m
+CONFIG_ITCO_WDT=m
+CONFIG_ITCO_VENDOR_SUPPORT=y
+CONFIG_IT87_WDT=m
+CONFIG_PC87413_WDT=m
+CONFIG_SMSC_SCH311X_WDT=m
+CONFIG_SMSC37B787_WDT=m
+CONFIG_SBC_EPX_C3_WATCHDOG=m
+# CONFIG_BCM7038_WDT is not set
+# CONFIG_MEN_A21_WDT is not set
+CONFIG_XEN_WDT=m
+CONFIG_WATCHDOG_PRETIMEOUT_GOV=y
+## choice: Default Watchdog Pretimeout Governor
+CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_NOOP=y
+# CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_PANIC is not set
+## end choice
+CONFIG_WATCHDOG_PRETIMEOUT_GOV_NOOP=y
+CONFIG_WATCHDOG_PRETIMEOUT_GOV_PANIC=m
+
+##
+## file: drivers/xen/Kconfig
+##
+CONFIG_XEN_BALLOON=y
+CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
+CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
+CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_XEN_BACKEND=y
+CONFIG_XENFS=m
+CONFIG_XEN_COMPAT_XENFS=y
+CONFIG_XEN_SYS_HYPERVISOR=y
+CONFIG_XEN_GNTDEV=m
+CONFIG_XEN_GRANT_DEV_ALLOC=m
+CONFIG_XEN_PCIDEV_BACKEND=m
+CONFIG_XEN_SCSI_BACKEND=m
+CONFIG_XEN_MCE_LOG=y
+
+##
+## file: fs/Kconfig
+##
+CONFIG_FS_DAX=y
+CONFIG_FILE_LOCKING=y
+CONFIG_MANDATORY_FILE_LOCKING=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_HUGETLBFS=y
+CONFIG_MISC_FILESYSTEMS=y
+CONFIG_NETWORK_FILESYSTEMS=y
+
+##
+## file: fs/9p/Kconfig
+##
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_9P_FS_SECURITY=y
+
+##
+## file: fs/adfs/Kconfig
+##
+CONFIG_ADFS_FS=m
+# CONFIG_ADFS_FS_RW is not set
+
+##
+## file: fs/affs/Kconfig
+##
+CONFIG_AFFS_FS=m
+
+##
+## file: fs/afs/Kconfig
+##
+CONFIG_AFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+CONFIG_AFS_FSCACHE=y
+
+##
+## file: fs/autofs/Kconfig
+##
+CONFIG_AUTOFS_FS=m
+
+##
+## file: fs/befs/Kconfig
+##
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+
+##
+## file: fs/bfs/Kconfig
+##
+CONFIG_BFS_FS=m
+
+##
+## file: fs/Kconfig.binfmt
+##
+CONFIG_BINFMT_ELF=y
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_BINFMT_SCRIPT=y
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_MISC=m
+CONFIG_COREDUMP=y
+
+##
+## file: fs/btrfs/Kconfig
+##
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
+# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
+# CONFIG_BTRFS_DEBUG is not set
+# CONFIG_BTRFS_ASSERT is not set
+
+##
+## file: fs/cachefiles/Kconfig
+##
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+##
+## file: fs/ceph/Kconfig
+##
+CONFIG_CEPH_FS=m
+CONFIG_CEPH_FSCACHE=y
+CONFIG_CEPH_FS_POSIX_ACL=y
+
+##
+## file: fs/cifs/Kconfig
+##
+CONFIG_CIFS=m
+CONFIG_CIFS_WEAK_PW_HASH=y
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+CONFIG_CIFS_ACL=y
+CONFIG_CIFS_DEBUG=y
+# CONFIG_CIFS_DEBUG2 is not set
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_NFSD_EXPORT=y
+CONFIG_CIFS_FSCACHE=y
+
+##
+## file: fs/coda/Kconfig
+##
+CONFIG_CODA_FS=m
+
+##
+## file: fs/configfs/Kconfig
+##
+CONFIG_CONFIGFS_FS=m
+
+##
+## file: fs/cramfs/Kconfig
+##
+# CONFIG_CRAMFS is not set
+
+##
+## file: fs/crypto/Kconfig
+##
+CONFIG_FS_ENCRYPTION=m
+
+##
+## file: fs/dlm/Kconfig
+##
+CONFIG_DLM=m
+CONFIG_DLM_DEBUG=y
+
+##
+## file: fs/ecryptfs/Kconfig
+##
+CONFIG_ECRYPT_FS=m
+CONFIG_ECRYPT_FS_MESSAGING=y
+
+##
+## file: fs/efivarfs/Kconfig
+##
+CONFIG_EFIVAR_FS=m
+
+##
+## file: fs/efs/Kconfig
+##
+CONFIG_EFS_FS=m
+
+##
+## file: fs/exofs/Kconfig
+##
+CONFIG_EXOFS_FS=m
+# CONFIG_EXOFS_DEBUG is not set
+
+##
+## file: fs/ext2/Kconfig
+##
+# CONFIG_EXT2_FS is not set
+
+##
+## file: fs/ext4/Kconfig
+##
+# CONFIG_EXT3_FS is not set
+CONFIG_EXT4_FS=m
+CONFIG_EXT4_USE_FOR_EXT2=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_EXT4_ENCRYPTION=y
+# CONFIG_EXT4_DEBUG is not set
+
+##
+## file: fs/f2fs/Kconfig
+##
+CONFIG_F2FS_FS=m
+CONFIG_F2FS_STAT_FS=y
+CONFIG_F2FS_FS_XATTR=y
+CONFIG_F2FS_FS_POSIX_ACL=y
+CONFIG_F2FS_FS_SECURITY=y
+CONFIG_F2FS_FS_ENCRYPTION=y
+# CONFIG_F2FS_IO_TRACE is not set
+# CONFIG_F2FS_FAULT_INJECTION is not set
+
+##
+## file: fs/fat/Kconfig
+##
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+#. Mitigate the lack of UTF-8 case-folding which makes FAT name lookup
+#. inconsistent (#833238). This combination enables case-folding the
+#. ASCII subset while still encoding/decoding as UTF-8.
+CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
+CONFIG_FAT_DEFAULT_UTF8=y
+
+##
+## file: fs/freevxfs/Kconfig
+##
+CONFIG_VXFS_FS=m
+
+##
+## file: fs/fscache/Kconfig
+##
+CONFIG_FSCACHE=m
+CONFIG_FSCACHE_STATS=y
+# CONFIG_FSCACHE_HISTOGRAM is not set
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+
+##
+## file: fs/fuse/Kconfig
+##
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+
+##
+## file: fs/gfs2/Kconfig
+##
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+
+##
+## file: fs/hfs/Kconfig
+##
+CONFIG_HFS_FS=m
+
+##
+## file: fs/hfsplus/Kconfig
+##
+CONFIG_HFSPLUS_FS=m
+
+##
+## file: fs/hpfs/Kconfig
+##
+CONFIG_HPFS_FS=m
+
+##
+## file: fs/isofs/Kconfig
+##
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+
+##
+## file: fs/jbd2/Kconfig
+##
+# CONFIG_JBD2_DEBUG is not set
+
+##
+## file: fs/jffs2/Kconfig
+##
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+CONFIG_JFFS2_SUMMARY=y
+CONFIG_JFFS2_FS_XATTR=y
+CONFIG_JFFS2_FS_POSIX_ACL=y
+CONFIG_JFFS2_FS_SECURITY=y
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_LZO=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+## choice: JFFS2 default compression mode
+# CONFIG_JFFS2_CMODE_NONE is not set
+CONFIG_JFFS2_CMODE_PRIORITY=y
+# CONFIG_JFFS2_CMODE_SIZE is not set
+# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
+## end choice
+
+##
+## file: fs/jfs/Kconfig
+##
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+
+##
+## file: fs/minix/Kconfig
+##
+CONFIG_MINIX_FS=m
+
+##
+## file: fs/nfs/Kconfig
+##
+CONFIG_NFS_FS=m
+CONFIG_NFS_V2=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_SWAP=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
+# CONFIG_NFS_V4_1_MIGRATION is not set
+CONFIG_NFS_FSCACHE=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+
+##
+## file: fs/nfsd/Kconfig
+##
+CONFIG_NFSD=m
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_BLOCKLAYOUT=y
+CONFIG_NFSD_V4_SECURITY_LABEL=y
+# CONFIG_NFSD_FAULT_INJECTION is not set
+
+##
+## file: fs/nilfs2/Kconfig
+##
+CONFIG_NILFS2_FS=m
+
+##
+## file: fs/nls/Kconfig
+##
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_MAC_ROMAN=m
+CONFIG_NLS_MAC_CELTIC=m
+CONFIG_NLS_MAC_CENTEURO=m
+CONFIG_NLS_MAC_CROATIAN=m
+CONFIG_NLS_MAC_CYRILLIC=m
+CONFIG_NLS_MAC_GAELIC=m
+CONFIG_NLS_MAC_GREEK=m
+CONFIG_NLS_MAC_ICELAND=m
+CONFIG_NLS_MAC_INUIT=m
+CONFIG_NLS_MAC_ROMANIAN=m
+CONFIG_NLS_MAC_TURKISH=m
+CONFIG_NLS_UTF8=m
+
+##
+## file: fs/notify/dnotify/Kconfig
+##
+CONFIG_DNOTIFY=y
+
+##
+## file: fs/notify/fanotify/Kconfig
+##
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
+
+##
+## file: fs/notify/inotify/Kconfig
+##
+CONFIG_INOTIFY_USER=y
+
+##
+## file: fs/ntfs/Kconfig
+##
+# CONFIG_NTFS_FS is not set
+
+##
+## file: fs/ocfs2/Kconfig
+##
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OCFS2_FS_STATS=y
+CONFIG_OCFS2_DEBUG_MASKLOG=y
+# CONFIG_OCFS2_DEBUG_FS is not set
+
+##
+## file: fs/omfs/Kconfig
+##
+CONFIG_OMFS_FS=m
+
+##
+## file: fs/orangefs/Kconfig
+##
+CONFIG_ORANGEFS_FS=m
+
+##
+## file: fs/overlayfs/Kconfig
+##
+CONFIG_OVERLAY_FS=m
+
+##
+## file: fs/proc/Kconfig
+##
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+
+##
+## file: fs/pstore/Kconfig
+##
+# CONFIG_PSTORE_CONSOLE is not set
+# CONFIG_PSTORE_PMSG is not set
+# CONFIG_PSTORE_FTRACE is not set
+CONFIG_PSTORE_RAM=m
+
+##
+## file: fs/qnx4/Kconfig
+##
+CONFIG_QNX4FS_FS=m
+
+##
+## file: fs/qnx6/Kconfig
+##
+CONFIG_QNX6FS_FS=m
+# CONFIG_QNX6FS_DEBUG is not set
+
+##
+## file: fs/quota/Kconfig
+##
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+CONFIG_PRINT_QUOTA_WARNING=y
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+
+##
+## file: fs/reiserfs/Kconfig
+##
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+
+##
+## file: fs/romfs/Kconfig
+##
+CONFIG_ROMFS_FS=m
+## choice: RomFS backing stores
+# CONFIG_ROMFS_BACKED_BY_BLOCK is not set
+# CONFIG_ROMFS_BACKED_BY_MTD is not set
+CONFIG_ROMFS_BACKED_BY_BOTH=y
+## end choice
+
+##
+## file: fs/squashfs/Kconfig
+##
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_ZLIB=y
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_SQUASHFS_ZSTD=y
+# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
+# CONFIG_SQUASHFS_EMBEDDED is not set
+
+##
+## file: fs/sysfs/Kconfig
+##
+CONFIG_SYSFS=y
+
+##
+## file: fs/sysv/Kconfig
+##
+CONFIG_SYSV_FS=m
+
+##
+## file: fs/ubifs/Kconfig
+##
+CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_ADVANCED_COMPR=y
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+
+##
+## file: fs/udf/Kconfig
+##
+CONFIG_UDF_FS=m
+
+##
+## file: fs/ufs/Kconfig
+##
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+
+##
+## file: fs/xfs/Kconfig
+##
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_WARN is not set
+# CONFIG_XFS_DEBUG is not set
+
+##
+## file: init/Kconfig
+##
+# CONFIG_COMPILE_TEST is not set
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+## choice: Kernel compression mode
+# CONFIG_KERNEL_GZIP is not set
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+CONFIG_KERNEL_XZ=y
+# CONFIG_KERNEL_LZO is not set
+# CONFIG_KERNEL_LZ4 is not set
+## end choice
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_CROSS_MEMORY_ATTACH=y
+# CONFIG_USELIB is not set
+CONFIG_AUDIT=y
+## choice: Cputime accounting
+CONFIG_TICK_CPU_ACCOUNTING=y
+# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set
+# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
+## end choice
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_CPU_ISOLATION=y
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=17
+CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
+CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
+CONFIG_NUMA_BALANCING=y
+CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
+CONFIG_CGROUPS=y
+CONFIG_MEMCG=y
+CONFIG_MEMCG_SWAP=y
+# CONFIG_MEMCG_SWAP_ENABLED is not set
+CONFIG_BLK_CGROUP=y
+# CONFIG_DEBUG_BLK_CGROUP is not set
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_CFS_BANDWIDTH=y
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_RDMA=y
+CONFIG_CGROUP_FREEZER=y
+# CONFIG_CGROUP_HUGETLB is not set
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_CGROUP_PERF=y
+CONFIG_CGROUP_BPF=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_SCHED_AUTOGROUP=y
+# CONFIG_SYSFS_DEPRECATED is not set
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+## choice: Compiler optimization level
+CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+## end choice
+#. Unfortunately some useful options are conditional on EXPERT
+CONFIG_EXPERT=y
+CONFIG_UID16=y
+CONFIG_MULTIUSER=y
+# CONFIG_SYSFS_SYSCALL is not set
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_FHANDLE=y
+CONFIG_POSIX_TIMERS=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_ADVISE_SYSCALLS=y
+CONFIG_MEMBARRIER=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_BPF_SYSCALL=y
+# CONFIG_BPF_JIT_ALWAYS_ON is not set
+CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
+CONFIG_USERFAULTFD=y
+CONFIG_RSEQ=y
+# CONFIG_DEBUG_RSEQ is not set
+# CONFIG_EMBEDDED is not set
+# CONFIG_PC104 is not set
+CONFIG_PERF_EVENTS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_SLUB_MEMCG_SYSFS_ON is not set
+# CONFIG_COMPAT_BRK is not set
+## choice: Choose SLAB allocator
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+## end choice
+CONFIG_SLAB_MERGE_DEFAULT=y
+CONFIG_SLAB_FREELIST_RANDOM=y
+CONFIG_SLAB_FREELIST_HARDENED=y
+CONFIG_SLUB_CPU_PARTIAL=y
+# CONFIG_MMAP_ALLOW_UNINITIALIZED is not set
+CONFIG_PROFILING=y
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+#. This is overridden if the [build]signed-code setting is enabled
+# CONFIG_MODULE_SIG is not set
+#. Signature validation is a run-time option
+# CONFIG_MODULE_SIG_FORCE is not set
+#. Signatures are added in linux-signed
+# CONFIG_MODULE_SIG_ALL is not set
+## choice: Which hash algorithm should modules be signed with?
+# CONFIG_MODULE_SIG_SHA1 is not set
+# CONFIG_MODULE_SIG_SHA224 is not set
+CONFIG_MODULE_SIG_SHA256=y
+# CONFIG_MODULE_SIG_SHA384 is not set
+# CONFIG_MODULE_SIG_SHA512 is not set
+## end choice
+# CONFIG_MODULE_COMPRESS is not set
+# CONFIG_TRIM_UNUSED_KSYMS is not set
+
+##
+## file: kernel/gcov/Kconfig
+##
+# CONFIG_GCOV_KERNEL is not set
+
+##
+## file: kernel/Kconfig.hz
+##
+## choice: Timer frequency
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+## end choice
+
+##
+## file: kernel/irq/Kconfig
+##
+# CONFIG_GENERIC_IRQ_DEBUGFS is not set
+
+##
+## file: kernel/power/Kconfig
+##
+CONFIG_SUSPEND=y
+# CONFIG_SUSPEND_SKIP_SYNC is not set
+CONFIG_HIBERNATION=y
+CONFIG_PM_STD_PARTITION=""
+# CONFIG_PM_AUTOSLEEP is not set
+# CONFIG_PM_WAKELOCKS is not set
+CONFIG_PM=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_ADVANCED_DEBUG=y
+#. Could be enabled if it becomes configurable at run-time
+# CONFIG_DPM_WATCHDOG is not set
+# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
+
+##
+## file: kernel/Kconfig.preempt
+##
+## choice: Preemption Model
+# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_VOLUNTARY=y
+# CONFIG_PREEMPT is not set
+## end choice
+
+##
+## file: kernel/rcu/Kconfig
+##
+# CONFIG_RCU_EXPERT is not set
+CONFIG_RCU_FANOUT=32
+CONFIG_RCU_FAST_NO_HZ=y
+
+##
+## file: kernel/rcu/Kconfig.debug
+##
+# CONFIG_RCU_PERF_TEST is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=21
+# CONFIG_RCU_TRACE is not set
+# CONFIG_RCU_EQS_DEBUG is not set
+
+##
+## file: kernel/time/Kconfig
+##
+## choice: Timer tick handling
+# CONFIG_HZ_PERIODIC is not set
+CONFIG_NO_HZ_IDLE=y
+# CONFIG_NO_HZ_FULL is not set
+## end choice
+#. Backward compatibility symbol
+# CONFIG_NO_HZ is not set
+CONFIG_HIGH_RES_TIMERS=y
+
+##
+## file: kernel/trace/Kconfig
+##
+CONFIG_FTRACE=y
+CONFIG_FUNCTION_TRACER=y
+CONFIG_FUNCTION_GRAPH_TRACER=y
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+CONFIG_FTRACE_SYSCALLS=y
+CONFIG_TRACER_SNAPSHOT=y
+# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set
+## choice: Branch Profiling
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+## end choice
+CONFIG_STACK_TRACER=y
+CONFIG_BLK_DEV_IO_TRACE=y
+CONFIG_KPROBE_EVENTS=y
+CONFIG_UPROBE_EVENTS=y
+CONFIG_DYNAMIC_FTRACE=y
+# CONFIG_FUNCTION_PROFILER is not set
+# CONFIG_FTRACE_STARTUP_TEST is not set
+# CONFIG_MMIOTRACE_TEST is not set
+# CONFIG_TRACEPOINT_BENCHMARK is not set
+# CONFIG_RING_BUFFER_BENCHMARK is not set
+# CONFIG_RING_BUFFER_STARTUP_TEST is not set
+# CONFIG_TRACE_EVAL_MAP_FILE is not set
+CONFIG_TRACING_EVENTS_GPIO=y
+
+##
+## file: lib/Kconfig
+##
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+CONFIG_CRC_T10DIF=m
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+# CONFIG_CRC32_SELFTEST is not set
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+# CONFIG_CRC8 is not set
+# CONFIG_RANDOM32_SELFTEST is not set
+# CONFIG_GLOB_SELFTEST is not set
+CONFIG_CORDIC=m
+# CONFIG_DDR is not set
+
+##
+## file: lib/Kconfig.debug
+##
+CONFIG_PRINTK_TIME=y
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
+CONFIG_BOOT_PRINTK_DELAY=y
+CONFIG_DYNAMIC_DEBUG=y
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_INFO_REDUCED is not set
+# CONFIG_DEBUG_INFO_SPLIT is not set
+# CONFIG_GDB_SCRIPTS is not set
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_STRIP_ASM_SYMS=y
+# CONFIG_READABLE_ASM is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_PAGE_OWNER is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_SECTION_MISMATCH_WARN_ONLY=y
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x01b6
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+#. For use by selftests
+CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m
+# CONFIG_DEBUG_HIGHMEM is not set
+# CONFIG_KCOV is not set
+CONFIG_SOFTLOCKUP_DETECTOR=y
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_HARDLOCKUP_DETECTOR=y
+# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_TIMEOUT=0
+CONFIG_SCHED_DEBUG=y
+CONFIG_SCHEDSTATS=y
+CONFIG_SCHED_STACK_END_CHECK=y
+# CONFIG_DEBUG_TIMEKEEPING is not set
+CONFIG_DEBUG_PREEMPT=y
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_LOCK_TORTURE_TEST is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+CONFIG_DEBUG_LIST=y
+# CONFIG_DEBUG_PI_LIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
+#. For use by selftests
+CONFIG_NOTIFIER_ERROR_INJECTION=m
+CONFIG_PM_NOTIFIER_ERROR_INJECT=m
+# CONFIG_NETDEV_NOTIFIER_ERROR_INJECT is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_LKDTM is not set
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_KPROBES_SANITY_TEST is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_RBTREE_TEST is not set
+# CONFIG_INTERVAL_TREE_TEST is not set
+# CONFIG_PERCPU_TEST is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+#. Self-test
+# CONFIG_ASYNC_RAID6_TEST is not set
+# CONFIG_TEST_HEXDUMP is not set
+# CONFIG_TEST_STRING_HELPERS is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_TEST_PRINTF is not set
+# CONFIG_TEST_BITMAP is not set
+# CONFIG_TEST_UUID is not set
+# CONFIG_TEST_RHASHTABLE is not set
+# CONFIG_TEST_HASH is not set
+# CONFIG_TEST_LKM is not set
+#. For use by selftests
+CONFIG_TEST_USER_COPY=m
+CONFIG_TEST_BPF=m
+CONFIG_TEST_FIRMWARE=m
+# CONFIG_TEST_UDELAY is not set
+CONFIG_TEST_STATIC_KEYS=m
+CONFIG_BUG_ON_DATA_CORRUPTION=y
+CONFIG_STRICT_DEVMEM=y
+CONFIG_IO_STRICT_DEVMEM=y
+
+##
+## file: lib/fonts/Kconfig
+##
+# CONFIG_FONTS is not set
+
+##
+## file: lib/Kconfig.kasan
+##
+# CONFIG_KASAN is not set
+
+##
+## file: lib/Kconfig.kgdb
+##
+# CONFIG_KGDB is not set
+
+##
+## file: lib/Kconfig.ubsan
+##
+# CONFIG_UBSAN is not set
+
+##
+## file: lib/xz/Kconfig
+##
+#. These are enabled again by arch config, matching the defaults
+# CONFIG_XZ_DEC_X86 is not set
+# CONFIG_XZ_DEC_POWERPC is not set
+# CONFIG_XZ_DEC_IA64 is not set
+# CONFIG_XZ_DEC_ARM is not set
+# CONFIG_XZ_DEC_ARMTHUMB is not set
+# CONFIG_XZ_DEC_SPARC is not set
+# CONFIG_XZ_DEC_TEST is not set
+
+##
+## file: mm/Kconfig
+##
+CONFIG_MEMORY_HOTPLUG=y
+# CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set
+CONFIG_MEMORY_HOTREMOVE=y
+CONFIG_BALLOON_COMPACTION=y
+CONFIG_COMPACTION=y
+CONFIG_MIGRATION=y
+CONFIG_BOUNCE=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_MEMORY_FAILURE=y
+CONFIG_HWPOISON_INJECT=m
+CONFIG_TRANSPARENT_HUGEPAGE=y
+## choice: Transparent Hugepage Support sysfs defaults
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+## end choice
+# CONFIG_CLEANCACHE is not set
+CONFIG_FRONTSWAP=y
+# CONFIG_CMA is not set
+CONFIG_MEM_SOFT_DIRTY=y
+CONFIG_ZSWAP=y
+CONFIG_ZBUD=y
+CONFIG_Z3FOLD=m
+CONFIG_ZSMALLOC=m
+# CONFIG_PGTABLE_MAPPING is not set
+# CONFIG_ZSMALLOC_STAT is not set
+# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
+# CONFIG_IDLE_PAGE_TRACKING is not set
+# CONFIG_PERCPU_STATS is not set
+# CONFIG_GUP_BENCHMARK is not set
+
+##
+## file: mm/Kconfig.debug
+##
+CONFIG_PAGE_EXTENSION=y
+CONFIG_PAGE_POISONING=y
+CONFIG_PAGE_POISONING_NO_SANITY=y
+# CONFIG_PAGE_POISONING_ZERO is not set
+# CONFIG_DEBUG_PAGE_REF is not set
+
+##
+## file: net/Kconfig
+##
+CONFIG_NET=y
+CONFIG_INET=y
+CONFIG_NETWORK_SECMARK=y
+# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
+CONFIG_NETFILTER=y
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_BPF_JIT=y
+CONFIG_BPF_STREAM_PARSER=y
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_DROP_MONITOR=m
+CONFIG_WIRELESS=y
+CONFIG_LWTUNNEL=y
+CONFIG_LWTUNNEL_BPF=y
+CONFIG_NET_DEVLINK=m
+CONFIG_FAILOVER=m
+
+##
+## file: net/6lowpan/Kconfig
+##
+CONFIG_6LOWPAN=m
+# CONFIG_6LOWPAN_DEBUGFS is not set
+CONFIG_6LOWPAN_NHC=m
+CONFIG_6LOWPAN_NHC_DEST=m
+CONFIG_6LOWPAN_NHC_FRAGMENT=m
+CONFIG_6LOWPAN_NHC_HOP=m
+CONFIG_6LOWPAN_NHC_IPV6=m
+CONFIG_6LOWPAN_NHC_MOBILITY=m
+CONFIG_6LOWPAN_NHC_ROUTING=m
+CONFIG_6LOWPAN_NHC_UDP=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=m
+CONFIG_6LOWPAN_GHC_UDP=m
+CONFIG_6LOWPAN_GHC_ICMPV6=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m
+
+##
+## file: net/8021q/Kconfig
+##
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+
+##
+## file: net/9p/Kconfig
+##
+CONFIG_NET_9P=m
+CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
+CONFIG_NET_9P_RDMA=m
+# CONFIG_NET_9P_DEBUG is not set
+
+##
+## file: net/atm/Kconfig
+##
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+
+##
+## file: net/batman-adv/Kconfig
+##
+CONFIG_BATMAN_ADV=m
+# CONFIG_BATMAN_ADV_BATMAN_V is not set
+CONFIG_BATMAN_ADV_BLA=y
+CONFIG_BATMAN_ADV_DAT=y
+CONFIG_BATMAN_ADV_NC=y
+CONFIG_BATMAN_ADV_MCAST=y
+CONFIG_BATMAN_ADV_DEBUGFS=y
+# CONFIG_BATMAN_ADV_DEBUG is not set
+
+##
+## file: net/bluetooth/Kconfig
+##
+CONFIG_BT=m
+CONFIG_BT_BREDR=y
+CONFIG_BT_HS=y
+CONFIG_BT_LE=y
+CONFIG_BT_6LOWPAN=m
+# CONFIG_BT_LEDS is not set
+# CONFIG_BT_SELFTEST is not set
+CONFIG_BT_DEBUGFS=y
+
+##
+## file: net/bluetooth/bnep/Kconfig
+##
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+
+##
+## file: net/bluetooth/cmtp/Kconfig
+##
+CONFIG_BT_CMTP=m
+
+##
+## file: net/bluetooth/hidp/Kconfig
+##
+CONFIG_BT_HIDP=m
+
+##
+## file: net/bluetooth/rfcomm/Kconfig
+##
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+
+##
+## file: net/bpfilter/Kconfig
+##
+# CONFIG_BPFILTER is not set
+
+##
+## file: net/bridge/Kconfig
+##
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+CONFIG_BRIDGE_VLAN_FILTERING=y
+
+##
+## file: net/bridge/netfilter/Kconfig
+##
+CONFIG_NF_TABLES_BRIDGE=y
+CONFIG_NFT_BRIDGE_REJECT=m
+CONFIG_NF_LOG_BRIDGE=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+
+##
+## file: net/caif/Kconfig
+##
+# CONFIG_CAIF is not set
+
+##
+## file: net/can/Kconfig
+##
+CONFIG_CAN=m
+CONFIG_CAN_RAW=m
+CONFIG_CAN_BCM=m
+CONFIG_CAN_GW=m
+
+##
+## file: net/ceph/Kconfig
+##
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+
+##
+## file: net/dcb/Kconfig
+##
+CONFIG_DCB=y
+
+##
+## file: net/dccp/Kconfig
+##
+CONFIG_IP_DCCP=m
+# CONFIG_IP_DCCP_DEBUG is not set
+
+##
+## file: net/dccp/ccids/Kconfig
+##
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+
+##
+## file: net/decnet/Kconfig
+##
+# CONFIG_DECNET is not set
+
+##
+## file: net/dns_resolver/Kconfig
+##
+CONFIG_DNS_RESOLVER=m
+
+##
+## file: net/dsa/Kconfig
+##
+# CONFIG_NET_DSA is not set
+
+##
+## file: net/hsr/Kconfig
+##
+# CONFIG_HSR is not set
+
+##
+## file: net/ieee802154/Kconfig
+##
+CONFIG_IEEE802154=m
+# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set
+CONFIG_IEEE802154_SOCKET=m
+
+##
+## file: net/ieee802154/6lowpan/Kconfig
+##
+CONFIG_IEEE802154_6LOWPAN=m
+
+##
+## file: net/ife/Kconfig
+##
+CONFIG_NET_IFE=m
+
+##
+## file: net/ipv4/Kconfig
+##
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_FIB_TRIE_STATS=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+# CONFIG_IP_PNP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPGRE=m
+CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_SYN_COOKIES=y
+CONFIG_NET_IPVTI=m
+CONFIG_NET_FOU=m
+CONFIG_NET_FOU_IP_TUNNELS=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_ESP_OFFLOAD=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_DIAG=m
+CONFIG_INET_UDP_DIAG=m
+CONFIG_INET_RAW_DIAG=m
+CONFIG_INET_DIAG_DESTROY=y
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_NV=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_TCP_CONG_DCTCP=m
+CONFIG_TCP_CONG_CDG=m
+CONFIG_TCP_CONG_BBR=m
+## choice: Default TCP congestion control
+# CONFIG_DEFAULT_BIC is not set
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_HTCP is not set
+# CONFIG_DEFAULT_VEGAS is not set
+# CONFIG_DEFAULT_WESTWOOD is not set
+# CONFIG_DEFAULT_DCTCP is not set
+# CONFIG_DEFAULT_RENO is not set
+## end choice
+CONFIG_TCP_MD5SIG=y
+
+##
+## file: net/ipv4/netfilter/Kconfig
+##
+CONFIG_NF_SOCKET_IPV4=m
+CONFIG_NF_TPROXY_IPV4=m
+CONFIG_NF_TABLES_IPV4=y
+CONFIG_NFT_CHAIN_ROUTE_IPV4=m
+CONFIG_NFT_DUP_IPV4=m
+CONFIG_NFT_FIB_IPV4=m
+CONFIG_NF_TABLES_ARP=y
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_LOG_ARP=m
+CONFIG_NF_LOG_IPV4=m
+CONFIG_NF_REJECT_IPV4=m
+CONFIG_NFT_CHAIN_NAT_IPV4=m
+CONFIG_NFT_MASQ_IPV4=m
+CONFIG_NFT_REDIR_IPV4=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_RPFILTER=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_SYNPROXY=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+##
+## file: net/ipv6/Kconfig
+##
+CONFIG_IPV6=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_ESP_OFFLOAD=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=y
+CONFIG_IPV6_ILA=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_VTI=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_GRE=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+CONFIG_IPV6_MROUTE=y
+CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IPV6_PIMSM_V2=y
+CONFIG_IPV6_SEG6_LWTUNNEL=y
+CONFIG_IPV6_SEG6_HMAC=y
+
+##
+## file: net/ipv6/netfilter/Kconfig
+##
+CONFIG_NF_SOCKET_IPV6=m
+CONFIG_NF_TPROXY_IPV6=m
+CONFIG_NF_TABLES_IPV6=y
+CONFIG_NFT_CHAIN_ROUTE_IPV6=m
+CONFIG_NFT_CHAIN_NAT_IPV6=m
+CONFIG_NFT_MASQ_IPV6=m
+CONFIG_NFT_REDIR_IPV6=m
+CONFIG_NFT_DUP_IPV6=m
+CONFIG_NFT_FIB_IPV6=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_REJECT_IPV6=m
+CONFIG_NF_LOG_IPV6=m
+CONFIG_NF_NAT_IPV6=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RPFILTER=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_TARGET_SYNPROXY=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+CONFIG_IP6_NF_TARGET_NPT=m
+
+##
+## file: net/kcm/Kconfig
+##
+# CONFIG_AF_KCM is not set
+
+##
+## file: net/l2tp/Kconfig
+##
+CONFIG_L2TP=m
+CONFIG_L2TP_DEBUGFS=m
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
+
+##
+## file: net/l3mdev/Kconfig
+##
+CONFIG_NET_L3_MASTER_DEV=y
+
+##
+## file: net/llc/Kconfig
+##
+CONFIG_LLC2=m
+
+##
+## file: net/mac80211/Kconfig
+##
+CONFIG_MAC80211=m
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL_HT=y
+# CONFIG_MAC80211_RC_MINSTREL_VHT is not set
+## choice: Default rate control algorithm
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+## end choice
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_MESSAGE_TRACING is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+
+##
+## file: net/mac802154/Kconfig
+##
+CONFIG_MAC802154=m
+
+##
+## file: net/mpls/Kconfig
+##
+#. Can be built as a module, but nothing will trigger loading
+CONFIG_NET_MPLS_GSO=y
+CONFIG_MPLS_ROUTING=m
+CONFIG_MPLS_IPTUNNEL=m
+
+##
+## file: net/ncsi/Kconfig
+##
+# CONFIG_NET_NCSI is not set
+
+##
+## file: net/netfilter/Kconfig
+##
+CONFIG_NETFILTER_INGRESS=y
+CONFIG_NETFILTER_NETLINK_ACCT=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NETFILTER_NETLINK_OSF=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_LOG_NETDEV=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_PROCFS=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMEOUT=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CT_PROTO_DCCP=y
+CONFIG_NF_CT_PROTO_SCTP=y
+CONFIG_NF_CT_PROTO_UDPLITE=y
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_CT_NETLINK_TIMEOUT=y
+CONFIG_NF_CT_NETLINK_HELPER=m
+CONFIG_NETFILTER_NETLINK_GLUE_CT=y
+CONFIG_NF_TABLES=m
+CONFIG_NF_TABLES_SET=m
+CONFIG_NF_TABLES_INET=y
+CONFIG_NF_TABLES_NETDEV=y
+CONFIG_NFT_NUMGEN=m
+CONFIG_NFT_CT=m
+CONFIG_NFT_FLOW_OFFLOAD=m
+CONFIG_NFT_COUNTER=m
+CONFIG_NFT_CONNLIMIT=m
+CONFIG_NFT_LOG=m
+CONFIG_NFT_LIMIT=m
+CONFIG_NFT_MASQ=m
+CONFIG_NFT_REDIR=m
+CONFIG_NFT_NAT=m
+CONFIG_NFT_TUNNEL=m
+CONFIG_NFT_OBJREF=m
+CONFIG_NFT_QUEUE=m
+CONFIG_NFT_QUOTA=m
+CONFIG_NFT_REJECT=m
+CONFIG_NFT_COMPAT=m
+CONFIG_NFT_HASH=m
+CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_SOCKET=m
+CONFIG_NFT_OSF=m
+CONFIG_NFT_TPROXY=m
+CONFIG_NF_DUP_NETDEV=m
+CONFIG_NFT_DUP_NETDEV=m
+CONFIG_NFT_FWD_NETDEV=m
+CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE=m
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_SET=m
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_HMARK=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NETMAP=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_BPF=m
+CONFIG_NETFILTER_XT_MATCH_CGROUP=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ECN=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_L2TP=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_NFACCT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+
+##
+## file: net/netfilter/ipset/Kconfig
+##
+CONFIG_IP_SET=m
+CONFIG_IP_SET_MAX=256
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPMARK=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_IPMAC=m
+CONFIG_IP_SET_HASH_MAC=m
+CONFIG_IP_SET_HASH_NETPORTNET=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETNET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETIFACE=m
+CONFIG_IP_SET_LIST_SET=m
+
+##
+## file: net/netfilter/ipvs/Kconfig
+##
+CONFIG_IP_VS=m
+CONFIG_IP_VS_IPV6=y
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_FO=m
+CONFIG_IP_VS_OVF=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_MH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+CONFIG_IP_VS_SH_TAB_BITS=8
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_PE_SIP=m
+
+##
+## file: net/netlabel/Kconfig
+##
+# CONFIG_NETLABEL is not set
+
+##
+## file: net/netlink/Kconfig
+##
+CONFIG_NETLINK_DIAG=m
+
+##
+## file: net/nfc/Kconfig
+##
+CONFIG_NFC=m
+CONFIG_NFC_DIGITAL=m
+
+##
+## file: net/nfc/hci/Kconfig
+##
+# CONFIG_NFC_HCI is not set
+# CONFIG_NFC_SHDLC is not set
+
+##
+## file: net/nfc/nci/Kconfig
+##
+# CONFIG_NFC_NCI is not set
+
+##
+## file: net/nsh/Kconfig
+##
+CONFIG_NET_NSH=m
+
+##
+## file: net/openvswitch/Kconfig
+##
+CONFIG_OPENVSWITCH=m
+CONFIG_OPENVSWITCH_GRE=y
+CONFIG_OPENVSWITCH_VXLAN=y
+CONFIG_OPENVSWITCH_GENEVE=y
+
+##
+## file: net/packet/Kconfig
+##
+CONFIG_PACKET=y
+CONFIG_PACKET_DIAG=m
+
+##
+## file: net/phonet/Kconfig
+##
+CONFIG_PHONET=m
+
+##
+## file: net/psample/Kconfig
+##
+CONFIG_PSAMPLE=m
+
+##
+## file: net/rds/Kconfig
+##
+CONFIG_RDS=m
+CONFIG_RDS_RDMA=m
+CONFIG_RDS_TCP=m
+# CONFIG_RDS_DEBUG is not set
+
+##
+## file: net/rfkill/Kconfig
+##
+CONFIG_RFKILL=m
+CONFIG_RFKILL_INPUT=y
+# CONFIG_RFKILL_GPIO is not set
+
+##
+## file: net/rxrpc/Kconfig
+##
+CONFIG_AF_RXRPC=m
+CONFIG_AF_RXRPC_IPV6=y
+# CONFIG_AF_RXRPC_INJECT_LOSS is not set
+# CONFIG_AF_RXRPC_DEBUG is not set
+CONFIG_RXKAD=y
+
+##
+## file: net/sched/Kconfig
+##
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_CBS=m
+CONFIG_NET_SCH_ETF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_SKBPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_CODEL=m
+CONFIG_NET_SCH_FQ_CODEL=m
+CONFIG_NET_SCH_CAKE=m
+CONFIG_NET_SCH_FQ=m
+CONFIG_NET_SCH_HHF=m
+CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_SCH_PLUG=m
+# CONFIG_NET_SCH_DEFAULT is not set
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_PERF=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=m
+CONFIG_NET_CLS_BPF=m
+CONFIG_NET_CLS_FLOWER=m
+CONFIG_NET_CLS_MATCHALL=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_TEXT=m
+CONFIG_NET_EMATCH_CANID=m
+CONFIG_NET_EMATCH_IPSET=m
+CONFIG_NET_EMATCH_IPT=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_SAMPLE=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_NET_ACT_VLAN=m
+CONFIG_NET_ACT_BPF=m
+CONFIG_NET_ACT_CONNMARK=m
+CONFIG_NET_ACT_SKBMOD=m
+CONFIG_NET_ACT_IFE=m
+CONFIG_NET_ACT_TUNNEL_KEY=m
+CONFIG_NET_IFE_SKBMARK=m
+CONFIG_NET_IFE_SKBPRIO=m
+CONFIG_NET_IFE_SKBTCINDEX=m
+CONFIG_NET_CLS_IND=y
+
+##
+## file: net/sctp/Kconfig
+##
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_OBJCNT is not set
+## choice: Default SCTP cookie HMAC encoding
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
+## end choice
+CONFIG_SCTP_COOKIE_HMAC_MD5=y
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+
+##
+## file: net/smc/Kconfig
+##
+CONFIG_SMC=m
+CONFIG_SMC_DIAG=m
+
+##
+## file: net/sunrpc/Kconfig
+##
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_SUNRPC_DEBUG=y
+CONFIG_SUNRPC_XPRT_RDMA=m
+
+##
+## file: net/switchdev/Kconfig
+##
+CONFIG_NET_SWITCHDEV=y
+
+##
+## file: net/tipc/Kconfig
+##
+CONFIG_TIPC=m
+CONFIG_TIPC_MEDIA_IB=y
+CONFIG_TIPC_MEDIA_UDP=y
+CONFIG_TIPC_DIAG=m
+
+##
+## file: net/tls/Kconfig
+##
+# CONFIG_TLS is not set
+
+##
+## file: net/unix/Kconfig
+##
+CONFIG_UNIX=y
+CONFIG_UNIX_DIAG=m
+
+##
+## file: net/vmw_vsock/Kconfig
+##
+CONFIG_VSOCKETS=m
+CONFIG_VSOCKETS_DIAG=m
+# CONFIG_VMWARE_VMCI_VSOCKETS is not set
+CONFIG_VIRTIO_VSOCKETS=m
+
+##
+## file: net/wimax/Kconfig
+##
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+
+##
+## file: net/wireless/Kconfig
+##
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+CONFIG_CFG80211_CRDA_SUPPORT=y
+CONFIG_CFG80211_WEXT=y
+# CONFIG_LIB80211_DEBUG is not set
+
+##
+## file: net/x25/Kconfig
+##
+# CONFIG_X25 is not set
+
+##
+## file: net/xdp/Kconfig
+##
+CONFIG_XDP_SOCKETS=y
+
+##
+## file: net/xfrm/Kconfig
+##
+CONFIG_XFRM_USER=m
+CONFIG_XFRM_INTERFACE=m
+CONFIG_XFRM_SUB_POLICY=y
+CONFIG_XFRM_MIGRATE=y
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_NET_KEY=m
+CONFIG_NET_KEY_MIGRATE=y
+
+##
+## file: samples/Kconfig
+##
+# CONFIG_SAMPLES is not set
+
+##
+## file: scripts/gcc-plugins/Kconfig
+##
+#. Until we work out how to package them
+# CONFIG_GCC_PLUGINS is not set
+
+##
+## file: security/Kconfig
+##
+CONFIG_SECURITY_DMESG_RESTRICT=y
+CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y
+CONFIG_SECURITY=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_SECURITY_NETWORK_XFRM=y
+# CONFIG_SECURITY_PATH is not set
+# CONFIG_INTEL_TXT is not set
+CONFIG_LSM_MMAP_MIN_ADDR=32768
+CONFIG_HARDENED_USERCOPY=y
+# CONFIG_HARDENED_USERCOPY_FALLBACK is not set
+# CONFIG_HARDENED_USERCOPY_PAGESPAN is not set
+CONFIG_FORTIFY_SOURCE=y
+CONFIG_LOCK_DOWN_KERNEL=y
+CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT=y
+## choice: Default security module
+CONFIG_DEFAULT_SECURITY_APPARMOR=y
+## end choice
+
+##
+## file: security/apparmor/Kconfig
+##
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1
+CONFIG_SECURITY_APPARMOR_HASH=y
+CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y
+
+##
+## file: security/integrity/Kconfig
+##
+CONFIG_INTEGRITY=y
+CONFIG_INTEGRITY_SIGNATURE=y
+CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
+# CONFIG_INTEGRITY_TRUSTED_KEYRING is not set
+CONFIG_INTEGRITY_AUDIT=y
+
+##
+## file: security/integrity/evm/Kconfig
+##
+# CONFIG_EVM is not set
+
+##
+## file: security/integrity/ima/Kconfig
+##
+#. IMA + MODULE_SIG currently breaks module loading with finit_module()
+# CONFIG_IMA is not set
+## choice: Default integrity hash algorithm
+# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
+CONFIG_IMA_DEFAULT_HASH_SHA256=y
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
+# CONFIG_IMA_DEFAULT_HASH_WP512 is not set
+## end choice
+# CONFIG_IMA_WRITE_POLICY is not set
+# CONFIG_IMA_READ_POLICY is not set
+CONFIG_IMA_APPRAISE=y
+
+##
+## file: security/keys/Kconfig
+##
+CONFIG_KEYS=y
+# CONFIG_PERSISTENT_KEYRINGS is not set
+# CONFIG_BIG_KEYS is not set
+# CONFIG_TRUSTED_KEYS is not set
+# CONFIG_ENCRYPTED_KEYS is not set
+CONFIG_KEY_DH_OPERATIONS=y
+
+##
+## file: security/loadpin/Kconfig
+##
+# CONFIG_SECURITY_LOADPIN is not set
+
+##
+## file: security/selinux/Kconfig
+##
+CONFIG_SECURITY_SELINUX=y
+# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
+# CONFIG_SECURITY_SELINUX_DISABLE is not set
+CONFIG_SECURITY_SELINUX_DEVELOP=y
+CONFIG_SECURITY_SELINUX_AVC_STATS=y
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0
+
+##
+## file: security/smack/Kconfig
+##
+# CONFIG_SECURITY_SMACK is not set
+
+##
+## file: security/tomoyo/Kconfig
+##
+CONFIG_SECURITY_TOMOYO=y
+CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
+CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
+# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
+#. This is so horrible...
+CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
+CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
+
+##
+## file: security/yama/Kconfig
+##
+CONFIG_SECURITY_YAMA=y
+
+##
+## file: sound/Kconfig
+##
+CONFIG_SOUND=m
+# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
+CONFIG_SND=m
+
+##
+## file: sound/core/Kconfig
+##
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_PCM_TIMER=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_MAX_CARDS=32
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_PROC_FS=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+##
+## file: sound/core/seq/Kconfig
+##
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+# CONFIG_SND_SEQUENCER_OSS is not set
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+
+##
+## file: sound/drivers/Kconfig
+##
+CONFIG_SND_DRIVERS=y
+CONFIG_SND_PCSP=m
+CONFIG_SND_ALOOP=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
+
+##
+## file: sound/firewire/Kconfig
+##
+CONFIG_SND_FIREWIRE=y
+CONFIG_SND_DICE=m
+CONFIG_SND_OXFW=m
+CONFIG_SND_ISIGHT=m
+CONFIG_SND_FIREWORKS=m
+CONFIG_SND_BEBOB=m
+CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_TASCAM=m
+CONFIG_SND_FIREWIRE_MOTU=m
+CONFIG_SND_FIREFACE=m
+
+##
+## file: sound/hda/Kconfig
+##
+CONFIG_SND_HDA_PREALLOC_SIZE=2048
+
+##
+## file: sound/isa/Kconfig
+##
+# CONFIG_SND_CMI8328 is not set
+
+##
+## file: sound/pci/Kconfig
+##
+CONFIG_SND_PCI=y
+CONFIG_SND_AD1889=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ASIHPI=m
+# CONFIG_SND_AW2 is not set
+CONFIG_SND_OXYGEN=m
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_GINA20=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_DARLA24=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MIA=m
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_ES1968_INPUT=y
+CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_HDSPM=m
+CONFIG_SND_LOLA=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND_MAESTRO3_INPUT=y
+CONFIG_SND_PCXHR=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_VIRTUOSO=m
+
+##
+## file: sound/pci/hda/Kconfig
+##
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=1
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_CODEC_ANALOG=y
+CONFIG_SND_HDA_CODEC_SIGMATEL=y
+CONFIG_SND_HDA_CODEC_VIA=y
+CONFIG_SND_HDA_CODEC_HDMI=y
+CONFIG_SND_HDA_CODEC_CIRRUS=y
+CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CA0132=y
+CONFIG_SND_HDA_CODEC_CA0132_DSP=y
+CONFIG_SND_HDA_CODEC_CMEDIA=y
+CONFIG_SND_HDA_CODEC_SI3054=y
+CONFIG_SND_HDA_GENERIC=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1
+
+##
+## file: sound/pcmcia/Kconfig
+##
+CONFIG_SND_PCMCIA=y
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_PDAUDIOCF=m
+
+##
+## file: sound/soc/Kconfig
+##
+# CONFIG_SND_SOC is not set
+
+##
+## file: sound/soc/amd/Kconfig
+##
+# CONFIG_SND_SOC_AMD_ACP is not set
+
+##
+## file: sound/soc/atmel/Kconfig
+##
+# CONFIG_SND_ATMEL_SOC is not set
+
+##
+## file: sound/soc/codecs/Kconfig
+##
+# CONFIG_SND_SOC_AC97_CODEC is not set
+# CONFIG_SND_SOC_ADAU1701 is not set
+# CONFIG_SND_SOC_ADAU1761_I2C is not set
+# CONFIG_SND_SOC_ADAU1761_SPI is not set
+# CONFIG_SND_SOC_ADAU7002 is not set
+# CONFIG_SND_SOC_AK4104 is not set
+# CONFIG_SND_SOC_AK4458 is not set
+# CONFIG_SND_SOC_AK4554 is not set
+# CONFIG_SND_SOC_AK4613 is not set
+# CONFIG_SND_SOC_AK4642 is not set
+# CONFIG_SND_SOC_AK5386 is not set
+# CONFIG_SND_SOC_AK5558 is not set
+# CONFIG_SND_SOC_ALC5623 is not set
+# CONFIG_SND_SOC_BD28623 is not set
+# CONFIG_SND_SOC_BT_SCO is not set
+# CONFIG_SND_SOC_CS35L32 is not set
+# CONFIG_SND_SOC_CS35L33 is not set
+# CONFIG_SND_SOC_CS35L34 is not set
+# CONFIG_SND_SOC_CS35L35 is not set
+# CONFIG_SND_SOC_CS42L42 is not set
+# CONFIG_SND_SOC_CS42L51_I2C is not set
+# CONFIG_SND_SOC_CS42L52 is not set
+# CONFIG_SND_SOC_CS42L56 is not set
+# CONFIG_SND_SOC_CS42L73 is not set
+# CONFIG_SND_SOC_CS4265 is not set
+# CONFIG_SND_SOC_CS4270 is not set
+# CONFIG_SND_SOC_CS4271_I2C is not set
+# CONFIG_SND_SOC_CS4271_SPI is not set
+# CONFIG_SND_SOC_CS42XX8_I2C is not set
+# CONFIG_SND_SOC_CS43130 is not set
+# CONFIG_SND_SOC_CS4349 is not set
+# CONFIG_SND_SOC_CS53L30 is not set
+# CONFIG_SND_SOC_ES7134 is not set
+# CONFIG_SND_SOC_ES7241 is not set
+# CONFIG_SND_SOC_ES8316 is not set
+# CONFIG_SND_SOC_ES8328_I2C is not set
+# CONFIG_SND_SOC_ES8328_SPI is not set
+# CONFIG_SND_SOC_GTM601 is not set
+# CONFIG_SND_SOC_INNO_RK3036 is not set
+# CONFIG_SND_SOC_MAX98504 is not set
+# CONFIG_SND_SOC_MAX9867 is not set
+# CONFIG_SND_SOC_MAX98927 is not set
+# CONFIG_SND_SOC_MAX98373 is not set
+# CONFIG_SND_SOC_MAX9860 is not set
+# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
+# CONFIG_SND_SOC_PCM1681 is not set
+# CONFIG_SND_SOC_PCM1789_I2C is not set
+# CONFIG_SND_SOC_PCM179X_I2C is not set
+# CONFIG_SND_SOC_PCM179X_SPI is not set
+# CONFIG_SND_SOC_PCM186X_I2C is not set
+# CONFIG_SND_SOC_PCM186X_SPI is not set
+# CONFIG_SND_SOC_PCM3168A_I2C is not set
+# CONFIG_SND_SOC_PCM3168A_SPI is not set
+# CONFIG_SND_SOC_PCM512x_I2C is not set
+# CONFIG_SND_SOC_PCM512x_SPI is not set
+# CONFIG_SND_SOC_RT5616 is not set
+# CONFIG_SND_SOC_RT5631 is not set
+# CONFIG_SND_SOC_SGTL5000 is not set
+# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set
+# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
+# CONFIG_SND_SOC_SPDIF is not set
+# CONFIG_SND_SOC_SSM2305 is not set
+# CONFIG_SND_SOC_SSM2602_SPI is not set
+# CONFIG_SND_SOC_SSM2602_I2C is not set
+# CONFIG_SND_SOC_SSM4567 is not set
+# CONFIG_SND_SOC_STA32X is not set
+# CONFIG_SND_SOC_STA350 is not set
+# CONFIG_SND_SOC_STI_SAS is not set
+# CONFIG_SND_SOC_TAS2552 is not set
+# CONFIG_SND_SOC_TAS5086 is not set
+# CONFIG_SND_SOC_TAS571X is not set
+# CONFIG_SND_SOC_TAS5720 is not set
+# CONFIG_SND_SOC_TAS6424 is not set
+# CONFIG_SND_SOC_TDA7419 is not set
+# CONFIG_SND_SOC_TFA9879 is not set
+# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
+# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
+# CONFIG_SND_SOC_TLV320AIC31XX is not set
+# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set
+# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set
+# CONFIG_SND_SOC_TLV320AIC3X is not set
+# CONFIG_SND_SOC_TS3A227E is not set
+# CONFIG_SND_SOC_TSCS42XX is not set
+# CONFIG_SND_SOC_TSCS454 is not set
+# CONFIG_SND_SOC_WM8510 is not set
+# CONFIG_SND_SOC_WM8523 is not set
+# CONFIG_SND_SOC_WM8524 is not set
+# CONFIG_SND_SOC_WM8580 is not set
+# CONFIG_SND_SOC_WM8711 is not set
+# CONFIG_SND_SOC_WM8728 is not set
+# CONFIG_SND_SOC_WM8731 is not set
+# CONFIG_SND_SOC_WM8737 is not set
+# CONFIG_SND_SOC_WM8741 is not set
+# CONFIG_SND_SOC_WM8750 is not set
+# CONFIG_SND_SOC_WM8753 is not set
+# CONFIG_SND_SOC_WM8770 is not set
+# CONFIG_SND_SOC_WM8776 is not set
+# CONFIG_SND_SOC_WM8782 is not set
+# CONFIG_SND_SOC_WM8804_I2C is not set
+# CONFIG_SND_SOC_WM8804_SPI is not set
+# CONFIG_SND_SOC_WM8903 is not set
+# CONFIG_SND_SOC_WM8960 is not set
+# CONFIG_SND_SOC_WM8962 is not set
+# CONFIG_SND_SOC_WM8974 is not set
+# CONFIG_SND_SOC_WM8978 is not set
+# CONFIG_SND_SOC_WM8985 is not set
+# CONFIG_SND_SOC_ZX_AUD96P22 is not set
+# CONFIG_SND_SOC_MAX9759 is not set
+# CONFIG_SND_SOC_MT6351 is not set
+# CONFIG_SND_SOC_NAU8540 is not set
+# CONFIG_SND_SOC_NAU8810 is not set
+# CONFIG_SND_SOC_NAU8824 is not set
+# CONFIG_SND_SOC_TPA6130A2 is not set
+
+##
+## file: sound/soc/dwc/Kconfig
+##
+# CONFIG_SND_DESIGNWARE_I2S is not set
+
+##
+## file: sound/soc/fsl/Kconfig
+##
+# CONFIG_SND_SOC_FSL_ASRC is not set
+# CONFIG_SND_SOC_FSL_SAI is not set
+# CONFIG_SND_SOC_FSL_SSI is not set
+# CONFIG_SND_SOC_FSL_SPDIF is not set
+# CONFIG_SND_SOC_FSL_ESAI is not set
+# CONFIG_SND_SOC_IMX_AUDMUX is not set
+
+##
+## file: sound/soc/generic/Kconfig
+##
+# CONFIG_SND_SIMPLE_CARD is not set
+
+##
+## file: sound/soc/hisilicon/Kconfig
+##
+# CONFIG_SND_I2S_HI6210_I2S is not set
+
+##
+## file: sound/soc/img/Kconfig
+##
+# CONFIG_SND_SOC_IMG is not set
+
+##
+## file: sound/soc/sunxi/Kconfig
+##
+# CONFIG_SND_SUN4I_CODEC is not set
+
+##
+## file: sound/soc/xtensa/Kconfig
+##
+# CONFIG_SND_SOC_XTFPGA_I2S is not set
+
+##
+## file: sound/soc/zte/Kconfig
+##
+# CONFIG_ZX_TDM is not set
+
+##
+## file: sound/spi/Kconfig
+##
+CONFIG_SND_SPI=y
+
+##
+## file: sound/usb/Kconfig
+##
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_USB_HIFACE=m
+CONFIG_SND_BCD2000=m
+
+##
+## file: sound/usb/line6/Kconfig
+##
+CONFIG_SND_USB_POD=m
+CONFIG_SND_USB_PODHD=m
+CONFIG_SND_USB_TONEPORT=m
+CONFIG_SND_USB_VARIAX=m
+
+##
+## file: sound/xen/Kconfig
+##
+CONFIG_SND_XEN_FRONTEND=m
+
+##
+## file: usr/Kconfig
+##
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+CONFIG_RD_LZ4=y
+
diff --git a/debian/config/defines b/debian/config/defines
new file mode 100644
index 000000000..9e3124283
--- /dev/null
+++ b/debian/config/defines
@@ -0,0 +1,159 @@
+[abi]
+abiname: 21
+ignore-changes:
+ __cpuhp_*
+ bpf_analyzer
+ cxl_*
+ dax_flush
+ ieee80211_nullfunc_get
+ inet_add_protocol
+ inet_del_protocol
+ iommu_device_*
+ mm_iommu_*
+ mv_mbus_*
+ perf_*
+ register_cxl_calls
+ register_key_type
+ unregister_cxl_calls
+ *_hw_breakpoint
+ module:drivers/crypto/ccp/*
+ module:drivers/hv/*
+ module:drivers/gpu/drm/sun4i/*
+ module:drivers/iio/**
+ module:drivers/misc/cxl/*
+ module:drivers/mtd/nand/*
+ module:drivers/net/ethernet/**
+ module:drivers/net/wireless/**
+ module:drivers/nvdimm/*
+ module:drivers/power/supply/bq27xxx_battery
+ module:drivers/scsi/cxgbi/*
+ module:drivers/scsi/libiscs*
+ module:drivers/scsi/qla2xxx/qla2xxx
+ module:drivers/scsi/ufs/*
+ module:drivers/target/**
+ module:drivers/usb/chipidea/**
+ module:drivers/usb/gadget/**
+ module:drivers/usb/host/**
+ module:drivers/usb/musb/**
+ module:fs/nfs/**
+ module:net/ceph/libceph
+ module:net/l2tp/**
+ module:net/rxrpc/rxrpc
+ module:net/sctp/**
+ module:sound/core/seq/**
+ module:sound/firewire/snd-firewire-lib
+ module:sound/pci/hda/*
+# btree library is only selected by few drivers so not useful OOT
+ btree_*
+ visitor*
+# Exported for related protocols only
+ can_rx_register
+ ip6_xmit
+ module:net/dccp/dccp
+ module:net/rds/rds
+# devfreq is unlikely to be useful for OOT modules
+ devfreq_*
+ devm_devfreq_*
+ update_devfreq
+# Assume IB drivers are added/updated through OFED, which also updates IB core
+ module:drivers/infiniband/**
+# Declared in private header, not usable OOT
+ acpi_ec_add_query_handler
+ acpi_ec_remove_query_handler
+ first_ec
+# Exported for tracefs only
+ debugfs_create_automount
+# ignore changes to inv_mpu6050/*
+ module:drivers/iio/imu/inv_mpu6050/*
+ drm_crtc_accurate_vblank_count
+# ignore acpi_nfit_init, acpi_nfit_desc_init
+ acpi_nfit_desc_init
+ acpi_nfit_init
+# ignore loop_register_transfer (used by cryptoloop, nothing OOT)
+ loop_register_transfer
+# Only used in vmlinux
+ xen_xlate_*
+# Not OOT
+ nf_nat_masquerade_ipv4_register_notifier
+ nf_nat_masquerade_ipv6_register_notifier
+# ignore changes to hisi_sas/*
+ module:drivers/scsi/hisi_sas/*
+# Private to KVM
+ __kvm_*
+ __xive_vm_h_*
+ _kvmppc_*
+ gfn_to_*
+ kvm_*
+ kvmppc_*
+ mark_page_dirty
+ vcpu_*
+ module:arch/x86/kvm/*
+# Only exported for use by KVM
+ tm_abort
+ tm_disable
+ tm_enable
+
+[base]
+arches:
+ alpha
+ amd64
+ arm64
+ arm64ilp32
+ armel
+ armhf
+ hppa
+ i386
+ ia64
+ m68k
+ mips
+ mips64
+ mips64el
+ mips64r6
+ mips64r6el
+ mipsel
+ mipsn32
+ mipsn32el
+ mipsn32r6
+ mipsn32r6el
+ mipsr6
+ mipsr6el
+ powerpc
+ powerpcspe
+ ppc64
+ ppc64el
+ riscv64
+ s390
+ s390x
+ sh3
+ sh4
+ sparc
+ sparc64
+ x32
+compiler: gcc-8
+featuresets:
+ none
+ rt
+
+[build]
+debug-info: true
+# Disable code signing by default; this can be overridden per-architecture
+signed-code: false
+
+[featureset-rt_base]
+enabled: true
+
+[description]
+part-long-up: This kernel is not suitable for SMP (multi-processor,
+ multi-core or hyper-threaded) systems.
+
+[image]
+initramfs-generators: initramfs-tools initramfs-fallback
+recommends: apparmor
+
+[relations]
+# compilers
+gcc-8: gcc-8 <!stage1 !cross !pkg.linux.nokernel>, gcc-8-@gnu-type-package@ <!stage1 cross !pkg.linux.nokernel>
+
+# initramfs-generators
+initramfs-fallback: linux-initramfs-tool
+initramfs-tools: initramfs-tools (>= 0.120+deb8u2)
diff --git a/debian/config/featureset-rt/config b/debian/config/featureset-rt/config
new file mode 100644
index 000000000..088c60e7f
--- /dev/null
+++ b/debian/config/featureset-rt/config
@@ -0,0 +1,32 @@
+##
+## file: certs/Kconfig
+##
+#. Certificate paths are resolved relative to debian/build/source_rt
+CONFIG_SYSTEM_TRUSTED_KEYS="../../certs/debian-uefi-certs.pem"
+
+##
+## file: kernel/Kconfig.preempt
+##
+## choice: Preemption Model
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT_RT_FULL=y
+## end choice
+
+##
+## file: kernel/rcu/Kconfig
+##
+CONFIG_RCU_EXPERT=y
+
+##
+## file: kernel/trace/Kconfig
+##
+CONFIG_SCHED_TRACER=y
+CONFIG_HWLAT_TRACER=y
+
+##
+## file: unknown
+##
+#. Dropped between 4.9 and 4.11, but might come back
+CONFIG_MISSED_TIMER_OFFSETS_HIST=y
+CONFIG_WAKEUP_LATENCY_HIST=y
+
diff --git a/debian/config/featureset-rt/defines b/debian/config/featureset-rt/defines
new file mode 100644
index 000000000..44e2f2b03
--- /dev/null
+++ b/debian/config/featureset-rt/defines
@@ -0,0 +1,7 @@
+[abi]
+ignore-changes: *
+
+[description]
+part-long-rt: This kernel includes the PREEMPT_RT realtime patch set.
+part-short-rt: PREEMPT_RT
+parts: rt
diff --git a/debian/config/hppa/config b/debian/config/hppa/config
new file mode 100644
index 000000000..0e7aca4b6
--- /dev/null
+++ b/debian/config/hppa/config
@@ -0,0 +1,668 @@
+##
+## file: arch/parisc/Kconfig
+##
+## choice: Processor type
+# CONFIG_PA7100LC is not set
+# CONFIG_PA7200 is not set
+# CONFIG_PA7300LC is not set
+## end choice
+CONFIG_MLONGCALLS=y
+## choice: Kernel page size
+CONFIG_PARISC_PAGE_SIZE_4KB=y
+# CONFIG_PARISC_PAGE_SIZE_16KB is not set
+# CONFIG_PARISC_PAGE_SIZE_64KB is not set
+## end choice
+
+##
+## file: block/partitions/Kconfig
+##
+# CONFIG_PARTITION_ADVANCED is not set
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_LEGACY=m
+
+##
+## file: drivers/block/Kconfig
+##
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_SX8 is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+##
+## file: drivers/char/Kconfig
+##
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_PPDEV=m
+# CONFIG_DTLK is not set
+# CONFIG_APPLICOM is not set
+
+##
+## file: drivers/char/ipmi/Kconfig
+##
+# CONFIG_IPMI_HANDLER is not set
+
+##
+## file: drivers/eisa/Kconfig
+##
+CONFIG_EISA_NAMES=y
+
+##
+## file: drivers/firewire/Kconfig
+##
+# CONFIG_FIREWIRE is not set
+
+##
+## file: drivers/gpu/drm/Kconfig
+##
+# CONFIG_DRM is not set
+
+##
+## file: drivers/hid/usbhid/Kconfig
+##
+CONFIG_USB_HID=m
+
+##
+## file: drivers/hwmon/Kconfig
+##
+# CONFIG_SENSORS_F71805F is not set
+
+##
+## file: drivers/i2c/Kconfig
+##
+# CONFIG_I2C is not set
+
+##
+## file: drivers/input/Kconfig
+##
+# CONFIG_INPUT_JOYDEV is not set
+
+##
+## file: drivers/input/gameport/Kconfig
+##
+# CONFIG_GAMEPORT is not set
+
+##
+## file: drivers/input/joystick/Kconfig
+##
+# CONFIG_INPUT_JOYSTICK is not set
+
+##
+## file: drivers/input/keyboard/Kconfig
+##
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_ATKBD_HP_KEYCODES=y
+# CONFIG_KEYBOARD_ATKBD_RDI_KEYCODES is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_HIL_OLD=m
+CONFIG_KEYBOARD_HIL=m
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+
+##
+## file: drivers/input/misc/Kconfig
+##
+CONFIG_INPUT_MISC=y
+# CONFIG_HP_SDC_RTC is not set
+
+##
+## file: drivers/input/mouse/Kconfig
+##
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_INPORT is not set
+# CONFIG_MOUSE_LOGIBM is not set
+# CONFIG_MOUSE_PC110PAD is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+
+##
+## file: drivers/input/serio/Kconfig
+##
+CONFIG_SERIO=y
+# CONFIG_SERIO_SERPORT is not set
+# CONFIG_SERIO_PARKBD is not set
+CONFIG_SERIO_GSCPS2=y
+CONFIG_HP_SDC=m
+CONFIG_HIL_MLC=m
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+
+##
+## file: drivers/input/touchscreen/Kconfig
+##
+# CONFIG_INPUT_TOUCHSCREEN is not set
+
+##
+## file: drivers/mfd/Kconfig
+##
+# CONFIG_AB3100_CORE is not set
+
+##
+## file: drivers/mmc/Kconfig
+##
+# CONFIG_MMC is not set
+
+##
+## file: drivers/mtd/Kconfig
+##
+# CONFIG_MTD is not set
+
+##
+## file: drivers/net/arcnet/Kconfig
+##
+# CONFIG_ARCNET is not set
+
+##
+## file: drivers/net/ethernet/Kconfig
+##
+CONFIG_FEALNX=m
+
+##
+## file: drivers/net/ethernet/3com/Kconfig
+##
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL3=m
+# CONFIG_3C515 is not set
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+
+##
+## file: drivers/net/ethernet/8390/Kconfig
+##
+CONFIG_PCMCIA_AXNET=m
+CONFIG_NE2000=m
+CONFIG_NE2K_PCI=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_ULTRA=m
+CONFIG_WD80x3=m
+
+##
+## file: drivers/net/ethernet/adaptec/Kconfig
+##
+CONFIG_ADAPTEC_STARFIRE=m
+
+##
+## file: drivers/net/ethernet/amd/Kconfig
+##
+CONFIG_AMD8111_ETH=m
+# CONFIG_LANCE is not set
+CONFIG_PCMCIA_NMCLAN=m
+# CONFIG_NI65 is not set
+
+##
+## file: drivers/net/ethernet/broadcom/Kconfig
+##
+CONFIG_B44=m
+
+##
+## file: drivers/net/ethernet/cirrus/Kconfig
+##
+CONFIG_CS89x0=m
+
+##
+## file: drivers/net/ethernet/dec/tulip/Kconfig
+##
+CONFIG_NET_TULIP=y
+# CONFIG_DE2104X is not set
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+CONFIG_TULIP_MMIO=y
+# CONFIG_WINBOND_840 is not set
+# CONFIG_DM9102 is not set
+CONFIG_PCMCIA_XIRCOM=m
+
+##
+## file: drivers/net/ethernet/dlink/Kconfig
+##
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+
+##
+## file: drivers/net/ethernet/fujitsu/Kconfig
+##
+CONFIG_PCMCIA_FMVJ18X=m
+
+##
+## file: drivers/net/ethernet/hp/Kconfig
+##
+CONFIG_HP100=m
+
+##
+## file: drivers/net/ethernet/i825xx/Kconfig
+##
+CONFIG_LASI_82596=m
+
+##
+## file: drivers/net/ethernet/intel/Kconfig
+##
+CONFIG_E100=m
+
+##
+## file: drivers/net/ethernet/natsemi/Kconfig
+##
+CONFIG_NATSEMI=m
+
+##
+## file: drivers/net/ethernet/neterion/Kconfig
+##
+# CONFIG_VXGE is not set
+
+##
+## file: drivers/net/ethernet/nvidia/Kconfig
+##
+CONFIG_FORCEDETH=m
+
+##
+## file: drivers/net/ethernet/realtek/Kconfig
+##
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+
+##
+## file: drivers/net/ethernet/sis/Kconfig
+##
+CONFIG_SIS900=m
+
+##
+## file: drivers/net/ethernet/smsc/Kconfig
+##
+CONFIG_SMC9194=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_EPIC100=m
+
+##
+## file: drivers/net/ethernet/sun/Kconfig
+##
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+# CONFIG_NIU is not set
+
+##
+## file: drivers/net/ethernet/via/Kconfig
+##
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+
+##
+## file: drivers/net/ethernet/xircom/Kconfig
+##
+CONFIG_PCMCIA_XIRC2PS=m
+
+##
+## file: drivers/net/fddi/Kconfig
+##
+# CONFIG_FDDI is not set
+
+##
+## file: drivers/net/hippi/Kconfig
+##
+# CONFIG_HIPPI is not set
+
+##
+## file: drivers/net/plip/Kconfig
+##
+CONFIG_PLIP=m
+
+##
+## file: drivers/net/wan/Kconfig
+##
+# CONFIG_WAN is not set
+
+##
+## file: drivers/net/wireless/Kconfig
+##
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_PCMCIA_WL3501=m
+
+##
+## file: drivers/net/wireless/atmel/Kconfig
+##
+# CONFIG_ATMEL is not set
+
+##
+## file: drivers/net/wireless/cisco/Kconfig
+##
+CONFIG_AIRO_CS=m
+
+##
+## file: drivers/net/wireless/intel/ipw2x00/Kconfig
+##
+# CONFIG_IPW2100 is not set
+
+##
+## file: drivers/net/wireless/intersil/orinoco/Kconfig
+##
+CONFIG_HERMES=m
+# CONFIG_PLX_HERMES is not set
+# CONFIG_TMD_HERMES is not set
+# CONFIG_PCI_HERMES is not set
+CONFIG_PCMCIA_HERMES=m
+
+##
+## file: drivers/net/wireless/zydas/Kconfig
+##
+# CONFIG_USB_ZD1201 is not set
+
+##
+## file: drivers/parisc/Kconfig
+##
+CONFIG_GSC=y
+CONFIG_HPPB=y
+CONFIG_IOMMU_CCIO=y
+CONFIG_GSC_LASI=y
+CONFIG_GSC_WAX=y
+CONFIG_EISA=y
+CONFIG_ISA=y
+CONFIG_PCI=y
+CONFIG_GSC_DINO=y
+CONFIG_PCI_LBA=y
+CONFIG_SUPERIO=y
+CONFIG_CHASSIS_LCD_LED=y
+CONFIG_PDC_CHASSIS=y
+CONFIG_PDC_CHASSIS_WARN=y
+CONFIG_PDC_STABLE=y
+
+##
+## file: drivers/pci/hotplug/Kconfig
+##
+# CONFIG_HOTPLUG_PCI is not set
+
+##
+## file: drivers/pcmcia/Kconfig
+##
+CONFIG_PCCARD=m
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+CONFIG_YENTA=m
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_I82365=m
+# CONFIG_TCIC is not set
+# CONFIG_PCMCIA_DEBUG is not set
+
+##
+## file: drivers/pnp/Kconfig
+##
+# CONFIG_PNP is not set
+
+##
+## file: drivers/rtc/Kconfig
+##
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_GENERIC=y
+
+##
+## file: drivers/scsi/Kconfig
+##
+# CONFIG_SCSI_BUSLOGIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_GDTH is not set
+# CONFIG_SCSI_GENERIC_NCR5380 is not set
+# CONFIG_SCSI_IPS is not set
+CONFIG_SCSI_INITIO=m
+# CONFIG_SCSI_INIA100 is not set
+CONFIG_SCSI_LASI700=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+# CONFIG_SCSI_IPR is not set
+CONFIG_SCSI_ZALON=m
+CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8
+CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
+CONFIG_SCSI_NCR53C8XX_SYNC=20
+# CONFIG_SCSI_QLOGIC_FAS is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+# CONFIG_SCSI_SIM710 is not set
+# CONFIG_SCSI_DC395x is not set
+
+##
+## file: drivers/scsi/megaraid/Kconfig.megaraid
+##
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+# CONFIG_MEGARAID_LEGACY is not set
+
+##
+## file: drivers/scsi/pcmcia/Kconfig
+##
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+
+##
+## file: drivers/tty/Kconfig
+##
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+##
+## file: drivers/tty/serial/Kconfig
+##
+CONFIG_SERIAL_MUX=y
+CONFIG_SERIAL_MUX_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+
+##
+## file: drivers/tty/serial/8250/Kconfig
+##
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+# CONFIG_SERIAL_8250_RSA is not set
+
+##
+## file: drivers/usb/Kconfig
+##
+CONFIG_USB=m
+# CONFIG_USB_USS720 is not set
+
+##
+## file: drivers/usb/host/Kconfig
+##
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+
+##
+## file: drivers/video/console/Kconfig
+##
+CONFIG_DUMMY_CONSOLE_COLUMNS=160
+CONFIG_DUMMY_CONSOLE_ROWS=64
+CONFIG_STI_CONSOLE=y
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+CONFIG_FB_MODE_HELPERS=y
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+CONFIG_FB_STI=y
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_S3 is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_VT8623 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_VIRTUAL is not set
+
+##
+## file: drivers/w1/Kconfig
+##
+# CONFIG_W1 is not set
+
+##
+## file: fs/nfs/Kconfig
+##
+CONFIG_ROOT_NFS=y
+
+##
+## file: init/Kconfig
+##
+CONFIG_SGETMASK_SYSCALL=y
+CONFIG_SYSFS_SYSCALL=y
+
+##
+## file: lib/Kconfig.debug
+##
+CONFIG_DEBUG_STACKOVERFLOW=y
+# CONFIG_SOFTLOCKUP_DETECTOR is not set
+# CONFIG_HARDLOCKUP_DETECTOR is not set
+
+##
+## file: mm/Kconfig
+##
+## choice: Memory model
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+## end choice
+
+##
+## file: net/ax25/Kconfig
+##
+# CONFIG_HAMRADIO is not set
+
+##
+## file: net/decnet/Kconfig
+##
+# CONFIG_DECNET is not set
+
+##
+## file: net/ipv4/Kconfig
+##
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+# CONFIG_IP_PNP_DHCP is not set
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+
+##
+## file: net/lapb/Kconfig
+##
+# CONFIG_LAPB is not set
+
+##
+## file: net/llc/Kconfig
+##
+# CONFIG_LLC2 is not set
+
+##
+## file: sound/drivers/Kconfig
+##
+CONFIG_SND_DUMMY=m
+# CONFIG_SND_VIRMIDI is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+##
+## file: sound/isa/Kconfig
+##
+# CONFIG_SND_AD1848 is not set
+# CONFIG_SND_CMI8330 is not set
+# CONFIG_SND_CS4231 is not set
+# CONFIG_SND_CS4236 is not set
+# CONFIG_SND_ES1688 is not set
+# CONFIG_SND_ES18XX is not set
+# CONFIG_SND_GUSCLASSIC is not set
+# CONFIG_SND_GUSEXTREME is not set
+# CONFIG_SND_GUSMAX is not set
+# CONFIG_SND_INTERWAVE is not set
+# CONFIG_SND_INTERWAVE_STB is not set
+# CONFIG_SND_OPL3SA2 is not set
+# CONFIG_SND_OPTI92X_AD1848 is not set
+# CONFIG_SND_OPTI92X_CS4231 is not set
+# CONFIG_SND_OPTI93X is not set
+# CONFIG_SND_SB8 is not set
+# CONFIG_SND_SB16 is not set
+# CONFIG_SND_SBAWE is not set
+# CONFIG_SND_SSCAPE is not set
+# CONFIG_SND_WAVEFRONT is not set
+
+##
+## file: sound/parisc/Kconfig
+##
+CONFIG_SND_HARMONY=m
+
+##
+## file: sound/pci/Kconfig
+##
+# CONFIG_SND_ALS4000 is not set
+# CONFIG_SND_ALI5451 is not set
+# CONFIG_SND_ATIIXP is not set
+# CONFIG_SND_ATIIXP_MODEM is not set
+# CONFIG_SND_AU8810 is not set
+# CONFIG_SND_AU8820 is not set
+# CONFIG_SND_AU8830 is not set
+# CONFIG_SND_AZT3328 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CA0106 is not set
+# CONFIG_SND_CMIPCI is not set
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_EMU10K1 is not set
+# CONFIG_SND_EMU10K1X is not set
+# CONFIG_SND_ENS1370 is not set
+# CONFIG_SND_ENS1371 is not set
+# CONFIG_SND_ES1938 is not set
+# CONFIG_SND_ES1968 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_ICE1712 is not set
+# CONFIG_SND_ICE1724 is not set
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+# CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_MAESTRO3 is not set
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_SONICVIBES is not set
+# CONFIG_SND_TRIDENT is not set
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
+# CONFIG_SND_VX222 is not set
+# CONFIG_SND_YMFPCI is not set
+
+##
+## file: sound/pci/hda/Kconfig
+##
+# CONFIG_SND_HDA_INTEL is not set
+
diff --git a/debian/config/hppa/config.parisc b/debian/config/hppa/config.parisc
new file mode 100644
index 000000000..9a07c7962
--- /dev/null
+++ b/debian/config/hppa/config.parisc
@@ -0,0 +1,26 @@
+##
+## file: arch/parisc/Kconfig
+##
+## choice: Processor type
+CONFIG_PA7000=y
+# CONFIG_PA8X00 is not set
+## end choice
+# CONFIG_SMP is not set
+
+##
+## file: drivers/net/ethernet/ti/Kconfig
+##
+CONFIG_TLAN=m
+
+##
+## file: drivers/scsi/Kconfig
+##
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_SCSI_NSP32 is not set
+
+##
+## file: drivers/scsi/pcmcia/Kconfig
+##
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+
diff --git a/debian/config/hppa/config.parisc-smp b/debian/config/hppa/config.parisc-smp
new file mode 100644
index 000000000..63e47e31a
--- /dev/null
+++ b/debian/config/hppa/config.parisc-smp
@@ -0,0 +1,27 @@
+##
+## file: arch/parisc/Kconfig
+##
+## choice: Processor type
+CONFIG_PA7000=y
+# CONFIG_PA8X00 is not set
+## end choice
+CONFIG_SMP=y
+CONFIG_NR_CPUS=8
+
+##
+## file: drivers/net/ethernet/ti/Kconfig
+##
+CONFIG_TLAN=m
+
+##
+## file: drivers/scsi/Kconfig
+##
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_SCSI_NSP32 is not set
+
+##
+## file: drivers/scsi/pcmcia/Kconfig
+##
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+
diff --git a/debian/config/hppa/config.parisc64 b/debian/config/hppa/config.parisc64
new file mode 100644
index 000000000..7a782e78d
--- /dev/null
+++ b/debian/config/hppa/config.parisc64
@@ -0,0 +1,17 @@
+##
+## file: arch/parisc/Kconfig
+##
+## choice: Processor type
+# CONFIG_PA7000 is not set
+CONFIG_PA8X00=y
+## end choice
+CONFIG_64BIT=y
+# CONFIG_SMP is not set
+
+##
+## file: mm/Kconfig
+##
+## choice: Memory model
+# CONFIG_FLATMEM_MANUAL is not set
+## end choice
+
diff --git a/debian/config/hppa/config.parisc64-smp b/debian/config/hppa/config.parisc64-smp
new file mode 100644
index 000000000..e39d0c934
--- /dev/null
+++ b/debian/config/hppa/config.parisc64-smp
@@ -0,0 +1,58 @@
+##
+## file: arch/parisc/Kconfig
+##
+## choice: Processor type
+# CONFIG_PA7000 is not set
+CONFIG_PA8X00=y
+## end choice
+CONFIG_64BIT=y
+CONFIG_SMP=y
+CONFIG_NR_CPUS=8
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_PATA_SIL680=m
+
+##
+## file: drivers/char/agp/Kconfig
+##
+#. for ATI FireGL DRM in C8000 workstation
+CONFIG_AGP=y
+CONFIG_AGP_PARISC=y
+
+##
+## file: drivers/char/ipmi/Kconfig
+##
+CONFIG_IPMI_HANDLER=m
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+
+##
+## file: drivers/gpu/drm/Kconfig
+##
+#. for ATI FireGL DRM in C8000 workstation
+CONFIG_DRM=y
+CONFIG_DRM_RADEON=m
+
+##
+## file: drivers/i2c/Kconfig
+##
+CONFIG_I2C=y
+
+##
+## file: drivers/i2c/algos/Kconfig
+##
+CONFIG_I2C_ALGOBIT=y
+
+##
+## file: mm/Kconfig
+##
+## choice: Memory model
+# CONFIG_FLATMEM_MANUAL is not set
+CONFIG_DISCONTIGMEM_MANUAL=y
+# CONFIG_SPARSEMEM_MANUAL is not set
+## end choice
+
diff --git a/debian/config/hppa/defines b/debian/config/hppa/defines
new file mode 100644
index 000000000..263efcc83
--- /dev/null
+++ b/debian/config/hppa/defines
@@ -0,0 +1,32 @@
+[base]
+flavours: parisc parisc-smp parisc64-smp
+kernel-arch: parisc
+
+[build]
+image-file: arch/parisc/boot/bzImage
+# temporarily disable debug info: Required disk size exceeds our hppa buildd machines.
+debug-info: false
+
+[image]
+suggests: palo
+install-stem: vmlinuz
+
+[parisc_description]
+hardware: 32-bit PA-RISC
+hardware-long: HP PA-RISC 32-bit systems with max 4 GB RAM
+
+[parisc-smp_description]
+hardware: multiprocessor 32-bit PA-RISC
+hardware-long: HP PA-RISC 32-bit SMP systems with max 4 GB RAM
+
+[parisc64-smp_base]
+cflags: -fno-cse-follow-jumps
+override-host-type: hppa64-linux-gnu
+
+[parisc64-smp_description]
+hardware: multiprocessor 64-bit PA-RISC
+hardware-long: HP PA-RISC 64-bit SMP systems with support for more than 4 GB RAM
+
+[relations]
+gcc-8: gcc-8 <!stage1 !cross !pkg.linux.nokernel>, gcc-8-hppa-linux-gnu <!stage1 cross !pkg.linux.nokernel>, binutils-hppa64-linux-gnu <!stage1 !pkg.linux.nokernel>, gcc-8-hppa64-linux-gnu <!stage1 !pkg.linux.nokernel>
+
diff --git a/debian/config/i386/config b/debian/config/i386/config
new file mode 100644
index 000000000..2beee8808
--- /dev/null
+++ b/debian/config/i386/config
@@ -0,0 +1,535 @@
+##
+## file: arch/Kconfig
+##
+CONFIG_ARCH_MMAP_RND_BITS=8
+
+##
+## file: arch/x86/Kconfig
+##
+# CONFIG_64BIT is not set
+CONFIG_SMP=y
+CONFIG_X86_BIGSMP=y
+CONFIG_NR_CPUS=32
+# CONFIG_X86_LEGACY_VM86 is not set
+CONFIG_TOSHIBA=m
+CONFIG_X86_REBOOTFIXUPS=y
+## choice: High Memory Support
+# CONFIG_NOHIGHMEM is not set
+CONFIG_HIGHMEM4G=y
+# CONFIG_HIGHMEM64G is not set
+## end choice
+## choice: Memory split
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_3G_OPT is not set
+# CONFIG_VMSPLIT_2G is not set
+# CONFIG_VMSPLIT_2G_OPT is not set
+# CONFIG_VMSPLIT_1G is not set
+## end choice
+# CONFIG_X86_PAE is not set
+# CONFIG_NUMA is not set
+CONFIG_HIGHPTE=y
+CONFIG_PHYSICAL_ALIGN=0x1000000
+CONFIG_APM=m
+# CONFIG_APM_IGNORE_USER_SUSPEND is not set
+# CONFIG_APM_DO_ENABLE is not set
+# CONFIG_APM_CPU_IDLE is not set
+# CONFIG_APM_DISPLAY_BLANK is not set
+# CONFIG_APM_ALLOW_INTS is not set
+## choice: PCI access mode
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GOMMCONFIG is not set
+# CONFIG_PCI_GODIRECT is not set
+# CONFIG_PCI_GOOLPC is not set
+CONFIG_PCI_GOANY=y
+## end choice
+CONFIG_PCI_MMCONFIG=y
+CONFIG_ISA=y
+CONFIG_SCx200=m
+CONFIG_SCx200HR_TIMER=m
+# CONFIG_OLPC is not set
+
+##
+## file: arch/x86/Kconfig.cpu
+##
+CONFIG_X86_GENERIC=y
+
+##
+## file: crypto/Kconfig
+##
+CONFIG_CRYPTO_AES_586=m
+CONFIG_CRYPTO_SERPENT_SSE2_586=m
+CONFIG_CRYPTO_TWOFISH_586=m
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_CS5530=m
+CONFIG_PATA_CS5535=m
+CONFIG_PATA_CS5536=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_ISAPNP=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_LEGACY=m
+
+##
+## file: drivers/atm/Kconfig
+##
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+
+##
+## file: drivers/auxdisplay/Kconfig
+##
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+
+##
+## file: drivers/char/Kconfig
+##
+CONFIG_SONYPI=m
+CONFIG_SCx200_GPIO=m
+
+##
+## file: drivers/char/agp/Kconfig
+##
+#. Workaround
+CONFIG_AGP_ALI=y
+#. Workaround
+CONFIG_AGP_ATI=y
+#. Workaround
+CONFIG_AGP_AMD=y
+#. Workaround
+CONFIG_AGP_NVIDIA=y
+#. Workaround
+CONFIG_AGP_SWORKS=y
+#. Workaround
+CONFIG_AGP_EFFICEON=y
+
+##
+## file: drivers/cpufreq/Kconfig.x86
+##
+CONFIG_X86_POWERNOW_K6=m
+CONFIG_X86_POWERNOW_K7=m
+CONFIG_X86_GX_SUSPMOD=m
+CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y
+CONFIG_X86_SPEEDSTEP_ICH=m
+CONFIG_X86_SPEEDSTEP_SMI=m
+CONFIG_X86_CPUFREQ_NFORCE2=m
+CONFIG_X86_LONGRUN=m
+CONFIG_X86_LONGHAUL=m
+# CONFIG_X86_E_POWERSAVER is not set
+CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y
+
+##
+## file: drivers/crypto/Kconfig
+##
+CONFIG_CRYPTO_DEV_GEODE=m
+
+##
+## file: drivers/dma/Kconfig
+##
+CONFIG_PCH_DMA=m
+
+##
+## file: drivers/gpio/Kconfig
+##
+CONFIG_GPIO_VX855=m
+CONFIG_GPIO_CS5535=m
+CONFIG_GPIO_PCH=m
+
+##
+## file: drivers/gpu/drm/Kconfig
+##
+CONFIG_DRM_I810=m
+
+##
+## file: drivers/i2c/busses/Kconfig
+##
+CONFIG_I2C_EG20T=m
+CONFIG_I2C_PXA=m
+
+##
+## file: drivers/input/misc/Kconfig
+##
+CONFIG_INPUT_WISTRON_BTNS=m
+
+##
+## file: drivers/input/mouse/Kconfig
+##
+# CONFIG_MOUSE_PS2_OLPC is not set
+CONFIG_MOUSE_INPORT=m
+# CONFIG_MOUSE_ATIXL is not set
+CONFIG_MOUSE_LOGIBM=m
+CONFIG_MOUSE_PC110PAD=m
+
+##
+## file: drivers/iommu/Kconfig
+##
+# CONFIG_INTEL_IOMMU is not set
+
+##
+## file: drivers/isdn/hardware/avm/Kconfig
+##
+CONFIG_ISDN_DRV_AVMB1_B1ISA=m
+CONFIG_ISDN_DRV_AVMB1_T1ISA=m
+
+##
+## file: drivers/leds/Kconfig
+##
+CONFIG_LEDS_WRAP=m
+
+##
+## file: drivers/macintosh/Kconfig
+##
+# CONFIG_MACINTOSH_DRIVERS is not set
+
+##
+## file: drivers/media/radio/Kconfig
+##
+CONFIG_V4L_RADIO_ISA_DRIVERS=y
+CONFIG_RADIO_CADET=m
+CONFIG_RADIO_RTRACK=m
+CONFIG_RADIO_RTRACK2=m
+CONFIG_RADIO_AZTECH=m
+CONFIG_RADIO_GEMTEK=m
+CONFIG_RADIO_MIROPCM20=m
+CONFIG_RADIO_SF16FMI=m
+CONFIG_RADIO_SF16FMR2=m
+CONFIG_RADIO_TERRATEC=m
+CONFIG_RADIO_TRUST=m
+CONFIG_RADIO_TYPHOON=m
+CONFIG_RADIO_ZOLTRIX=m
+
+##
+## file: drivers/mfd/Kconfig
+##
+CONFIG_MFD_CS5535=m
+CONFIG_MFD_VX855=m
+
+##
+## file: drivers/misc/Kconfig
+##
+CONFIG_CS5535_MFGPT=m
+CONFIG_CS5535_CLOCK_EVENT_SRC=m
+CONFIG_PCH_PHUB=m
+
+##
+## file: drivers/mtd/maps/Kconfig
+##
+CONFIG_MTD_SCx200_DOCFLASH=m
+CONFIG_MTD_PCMCIA=m
+# CONFIG_MTD_PCMCIA_ANONYMOUS is not set
+
+##
+## file: drivers/net/arcnet/Kconfig
+##
+CONFIG_ARCNET_COM20020_ISA=m
+
+##
+## file: drivers/net/can/Kconfig
+##
+CONFIG_PCH_CAN=m
+
+##
+## file: drivers/net/can/cc770/Kconfig
+##
+CONFIG_CAN_CC770=m
+CONFIG_CAN_CC770_ISA=m
+# CONFIG_CAN_CC770_PLATFORM is not set
+
+##
+## file: drivers/net/ethernet/3com/Kconfig
+##
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL3=m
+CONFIG_3C515=m
+
+##
+## file: drivers/net/ethernet/8390/Kconfig
+##
+CONFIG_NET_VENDOR_8390=y
+CONFIG_NE2000=m
+CONFIG_ULTRA=m
+CONFIG_WD80x3=m
+
+##
+## file: drivers/net/ethernet/amd/Kconfig
+##
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_LANCE=m
+CONFIG_NI65=m
+
+##
+## file: drivers/net/ethernet/cirrus/Kconfig
+##
+CONFIG_NET_VENDOR_CIRRUS=y
+CONFIG_CS89x0=m
+
+##
+## file: drivers/net/ethernet/dec/Kconfig
+##
+CONFIG_NET_VENDOR_DEC=y
+
+##
+## file: drivers/net/ethernet/fujitsu/Kconfig
+##
+CONFIG_NET_VENDOR_FUJITSU=y
+
+##
+## file: drivers/net/ethernet/oki-semi/pch_gbe/Kconfig
+##
+CONFIG_PCH_GBE=m
+
+##
+## file: drivers/net/ethernet/smsc/Kconfig
+##
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_SMC9194=m
+
+##
+## file: drivers/net/hamradio/Kconfig
+##
+CONFIG_SCC=m
+# CONFIG_SCC_DELAY is not set
+# CONFIG_SCC_TRXECHO is not set
+
+##
+## file: drivers/net/wan/Kconfig
+##
+CONFIG_HOSTESS_SV11=m
+CONFIG_COSA=m
+CONFIG_SEALEVEL_4021=m
+CONFIG_N2=m
+CONFIG_C101=m
+CONFIG_SDLA=m
+
+##
+## file: drivers/net/wireless/intel/ipw2x00/Kconfig
+##
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2100_DEBUG is not set
+
+##
+## file: drivers/pci/hotplug/Kconfig
+##
+CONFIG_HOTPLUG_PCI_COMPAQ=m
+CONFIG_HOTPLUG_PCI_IBM=m
+
+##
+## file: drivers/pcmcia/Kconfig
+##
+CONFIG_I82365=m
+
+##
+## file: drivers/platform/x86/Kconfig
+##
+CONFIG_TC1100_WMI=m
+
+##
+## file: drivers/pnp/isapnp/Kconfig
+##
+CONFIG_ISAPNP=y
+
+##
+## file: drivers/pnp/pnpbios/Kconfig
+##
+CONFIG_PNPBIOS=y
+# CONFIG_PNPBIOS_PROC_FS is not set
+
+##
+## file: drivers/scsi/Kconfig
+##
+# CONFIG_SCSI_GENERIC_NCR5380 is not set
+# CONFIG_SCSI_INIA100 is not set
+CONFIG_SCSI_QLOGIC_FAS=m
+CONFIG_SCSI_NSP32=m
+
+##
+## file: drivers/scsi/pcmcia/Kconfig
+##
+CONFIG_PCMCIA_NINJA_SCSI=m
+
+##
+## file: drivers/spi/Kconfig
+##
+CONFIG_SPI_TOPCLIFF_PCH=m
+
+##
+## file: drivers/staging/comedi/Kconfig
+##
+CONFIG_COMEDI_ISA_DRIVERS=y
+CONFIG_COMEDI_PCL711=m
+CONFIG_COMEDI_PCL724=m
+CONFIG_COMEDI_PCL726=m
+CONFIG_COMEDI_PCL730=m
+CONFIG_COMEDI_PCL812=m
+CONFIG_COMEDI_PCL816=m
+CONFIG_COMEDI_PCL818=m
+CONFIG_COMEDI_PCM3724=m
+CONFIG_COMEDI_AMPLC_DIO200_ISA=m
+CONFIG_COMEDI_AMPLC_PC236_ISA=m
+CONFIG_COMEDI_AMPLC_PC263_ISA=m
+CONFIG_COMEDI_RTI800=m
+CONFIG_COMEDI_RTI802=m
+CONFIG_COMEDI_DAC02=m
+CONFIG_COMEDI_DAS16M1=m
+CONFIG_COMEDI_DAS08_ISA=m
+CONFIG_COMEDI_DAS16=m
+CONFIG_COMEDI_DAS800=m
+CONFIG_COMEDI_DAS1800=m
+CONFIG_COMEDI_DAS6402=m
+CONFIG_COMEDI_DT2801=m
+CONFIG_COMEDI_DT2811=m
+CONFIG_COMEDI_DT2814=m
+CONFIG_COMEDI_DT2815=m
+CONFIG_COMEDI_DT2817=m
+CONFIG_COMEDI_DT282X=m
+CONFIG_COMEDI_DMM32AT=m
+CONFIG_COMEDI_FL512=m
+CONFIG_COMEDI_AIO_AIO12_8=m
+CONFIG_COMEDI_AIO_IIRO_16=m
+CONFIG_COMEDI_C6XDIGIO=m
+CONFIG_COMEDI_MPC624=m
+CONFIG_COMEDI_ADQ12B=m
+CONFIG_COMEDI_NI_AT_A2150=m
+CONFIG_COMEDI_NI_AT_AO=m
+CONFIG_COMEDI_NI_ATMIO=m
+CONFIG_COMEDI_NI_ATMIO16D=m
+CONFIG_COMEDI_NI_LABPC_ISA=m
+CONFIG_COMEDI_PCMAD=m
+CONFIG_COMEDI_PCMDA12=m
+CONFIG_COMEDI_PCMMIO=m
+CONFIG_COMEDI_PCMUIO=m
+CONFIG_COMEDI_MULTIQ3=m
+
+##
+## file: drivers/staging/olpc_dcon/Kconfig
+##
+CONFIG_FB_OLPC_DCON=m
+CONFIG_FB_OLPC_DCON_1=y
+CONFIG_FB_OLPC_DCON_1_5=y
+
+##
+## file: drivers/staging/speakup/Kconfig
+##
+CONFIG_SPEAKUP_SYNTH_DECPC=m
+
+##
+## file: drivers/tty/Kconfig
+##
+# CONFIG_ISI is not set
+
+##
+## file: drivers/tty/serial/Kconfig
+##
+CONFIG_SERIAL_PCH_UART=m
+
+##
+## file: drivers/tty/serial/8250/Kconfig
+##
+CONFIG_SERIAL_8250_EXAR_ST16C554=m
+
+##
+## file: drivers/usb/gadget/udc/Kconfig
+##
+CONFIG_USB_AMD5536UDC=m
+
+##
+## file: drivers/video/console/Kconfig
+##
+CONFIG_MDA_CONSOLE=m
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+CONFIG_FB_I810=m
+CONFIG_FB_I810_GTF=y
+CONFIG_FB_I810_I2C=y
+CONFIG_FB_MATROX_G=y
+CONFIG_FB_MATROX_MAVEN=m
+CONFIG_FB_ATY_GENERIC_LCD=y
+CONFIG_FB_SAVAGE_I2C=y
+
+##
+## file: drivers/watchdog/Kconfig
+##
+CONFIG_SCx200_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_SBC7240_WDT=m
+CONFIG_PCWATCHDOG=m
+CONFIG_MIXCOMWD=m
+CONFIG_WDT=m
+
+##
+## file: kernel/irq/Kconfig
+##
+# CONFIG_SPARSE_IRQ is not set
+
+##
+## file: lib/Kconfig.debug
+##
+CONFIG_FRAME_WARN=1024
+
+##
+## file: mm/Kconfig
+##
+## choice: Memory model
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+## end choice
+
+##
+## file: security/Kconfig
+##
+CONFIG_LSM_MMAP_MIN_ADDR=0
+
+##
+## file: sound/isa/Kconfig
+##
+CONFIG_SND_ISA=y
+CONFIG_SND_ADLIB=m
+CONFIG_SND_AD1816A=m
+CONFIG_SND_AD1848=m
+CONFIG_SND_ALS100=m
+CONFIG_SND_AZT1605=m
+CONFIG_SND_AZT2316=m
+CONFIG_SND_AZT2320=m
+CONFIG_SND_CMI8330=m
+CONFIG_SND_CS4231=m
+CONFIG_SND_CS4236=m
+CONFIG_SND_ES1688=m
+CONFIG_SND_ES18XX=m
+CONFIG_SND_SC6000=m
+CONFIG_SND_GUSCLASSIC=m
+CONFIG_SND_GUSEXTREME=m
+CONFIG_SND_GUSMAX=m
+CONFIG_SND_INTERWAVE=m
+CONFIG_SND_INTERWAVE_STB=m
+CONFIG_SND_JAZZ16=m
+CONFIG_SND_OPL3SA2=m
+CONFIG_SND_OPTI92X_AD1848=m
+CONFIG_SND_OPTI92X_CS4231=m
+CONFIG_SND_OPTI93X=m
+CONFIG_SND_MIRO=m
+CONFIG_SND_SB8=m
+CONFIG_SND_SB16=m
+CONFIG_SND_SBAWE=m
+CONFIG_SND_SB16_CSP=y
+CONFIG_SND_SSCAPE=m
+CONFIG_SND_WAVEFRONT=m
+CONFIG_SND_MSND_PINNACLE=m
+CONFIG_SND_MSND_CLASSIC=m
+
+##
+## file: sound/pci/Kconfig
+##
+CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_SIS7019=m
+
diff --git a/debian/config/i386/config.686 b/debian/config/i386/config.686
new file mode 100644
index 000000000..c9d54a9cc
--- /dev/null
+++ b/debian/config/i386/config.686
@@ -0,0 +1,84 @@
+##
+## file: arch/x86/Kconfig
+##
+CONFIG_X86_32_IRIS=m
+# CONFIG_MATH_EMULATION is not set
+# CONFIG_EISA is not set
+CONFIG_OLPC=y
+CONFIG_OLPC_XO1_PM=y
+CONFIG_OLPC_XO1_RTC=y
+CONFIG_OLPC_XO1_SCI=y
+CONFIG_OLPC_XO15_SCI=y
+CONFIG_ALIX=y
+CONFIG_NET5501=y
+CONFIG_GEOS=y
+
+##
+## file: arch/x86/Kconfig.cpu
+##
+## choice: Processor family
+# CONFIG_M486 is not set
+#. We want to support Geode LX and similar AMD family 5 CPUs as well as
+#. family 6+ CPUs
+CONFIG_MGEODE_LX=y
+## end choice
+
+##
+## file: drivers/i2c/Kconfig
+##
+CONFIG_I2C_STUB=m
+
+##
+## file: drivers/i2c/busses/Kconfig
+##
+# CONFIG_I2C_ELEKTOR is not set
+
+##
+## file: drivers/input/keyboard/Kconfig
+##
+CONFIG_KEYBOARD_GPIO_POLLED=m
+
+##
+## file: drivers/input/mouse/Kconfig
+##
+CONFIG_MOUSE_PS2_OLPC=y
+
+##
+## file: drivers/net/hamradio/Kconfig
+##
+# CONFIG_DMASCC is not set
+
+##
+## file: drivers/pci/hotplug/Kconfig
+##
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+
+##
+## file: drivers/platform/x86/Kconfig
+##
+CONFIG_XO1_RFKILL=m
+CONFIG_XO15_EBOOK=m
+
+##
+## file: drivers/power/supply/Kconfig
+##
+CONFIG_BATTERY_OLPC=m
+
+##
+## file: drivers/tty/Kconfig
+##
+# CONFIG_MOXA_INTELLIO is not set
+
+##
+## file: drivers/video/fbdev/geode/Kconfig
+##
+CONFIG_FB_GEODE=y
+CONFIG_FB_GEODE_LX=m
+CONFIG_FB_GEODE_GX=m
+CONFIG_FB_GEODE_GX1=m
+
+##
+## file: lib/Kconfig.debug
+##
+# CONFIG_DEBUG_HIGHMEM is not set
+
diff --git a/debian/config/i386/config.686-pae b/debian/config/i386/config.686-pae
new file mode 100644
index 000000000..c5faf6902
--- /dev/null
+++ b/debian/config/i386/config.686-pae
@@ -0,0 +1,54 @@
+##
+## file: arch/x86/Kconfig
+##
+# CONFIG_X86_32_IRIS is not set
+## choice: High Memory Support
+# CONFIG_NOHIGHMEM is not set
+# CONFIG_HIGHMEM4G is not set
+CONFIG_HIGHMEM64G=y
+## end choice
+CONFIG_X86_PAE=y
+# CONFIG_MATH_EMULATION is not set
+# CONFIG_EISA is not set
+# CONFIG_ALIX is not set
+# CONFIG_NET5501 is not set
+# CONFIG_GEOS is not set
+
+##
+## file: arch/x86/Kconfig.cpu
+##
+## choice: Processor family
+# CONFIG_M486 is not set
+CONFIG_M686=y
+## end choice
+
+##
+## file: drivers/i2c/Kconfig
+##
+CONFIG_I2C_STUB=m
+
+##
+## file: drivers/i2c/busses/Kconfig
+##
+# CONFIG_I2C_ELEKTOR is not set
+
+##
+## file: drivers/net/hamradio/Kconfig
+##
+# CONFIG_DMASCC is not set
+
+##
+## file: drivers/pci/hotplug/Kconfig
+##
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+
+##
+## file: drivers/tty/Kconfig
+##
+# CONFIG_MOXA_INTELLIO is not set
+
+##
+## file: lib/Kconfig.debug
+##
+# CONFIG_DEBUG_HIGHMEM is not set
+
diff --git a/debian/config/i386/defines b/debian/config/i386/defines
new file mode 100644
index 000000000..240c98a48
--- /dev/null
+++ b/debian/config/i386/defines
@@ -0,0 +1,37 @@
+[base]
+featuresets:
+ none
+ rt
+kernel-arch: x86
+
+[build]
+image-file: arch/x86/boot/bzImage
+signed-code: true
+vdso: true
+
+[description]
+part-long-pae: This kernel requires PAE (Physical Address Extension).
+ This feature is supported by the Intel Pentium Pro/II/III/4/4M/D, Xeon,
+ Core and Atom; AMD Geode NX, Athlon (K7), Duron, Opteron, Sempron,
+ Turion or Phenom; Transmeta Efficeon; VIA C7; and some other processors.
+
+[image]
+bootloaders: grub-pc grub-efi-ia32 extlinux
+install-stem: vmlinuz
+breaks: xserver-xorg-input-vmmouse (<< 1:13.0.99)
+
+[relations]
+gcc-8: gcc-8 (>= 8-20180123-1~) <!stage1 !cross !pkg.linux.nokernel>, gcc-8-i686-linux-gnu (>= 8-20180123-1~) <!stage1 cross !pkg.linux.nokernel>
+headers%gcc-8: linux-compiler-gcc-8-x86
+
+[686_description]
+hardware: older PCs
+hardware-long: PCs with one or more processors not supporting PAE
+
+[686-pae_build]
+debug-info: true
+
+[686-pae_description]
+hardware: modern PCs
+hardware-long: PCs with one or more processors supporting PAE
+parts: pae
diff --git a/debian/config/i386/none/defines b/debian/config/i386/none/defines
new file mode 100644
index 000000000..274999440
--- /dev/null
+++ b/debian/config/i386/none/defines
@@ -0,0 +1,4 @@
+[base]
+flavours:
+ 686
+ 686-pae
diff --git a/debian/config/i386/rt/defines b/debian/config/i386/rt/defines
new file mode 100644
index 000000000..358e12d55
--- /dev/null
+++ b/debian/config/i386/rt/defines
@@ -0,0 +1,3 @@
+[base]
+flavours:
+ 686-pae
diff --git a/debian/config/ia64/config b/debian/config/ia64/config
new file mode 100644
index 000000000..9c3948937
--- /dev/null
+++ b/debian/config/ia64/config
@@ -0,0 +1,844 @@
+##
+## file: arch/ia64/Kconfig
+##
+CONFIG_HOTPLUG_CPU=y
+CONFIG_SCHED_SMT=y
+CONFIG_PERMIT_BSP_REMOVE=y
+CONFIG_NODES_SHIFT=8
+CONFIG_IA64_MCA_RECOVERY=m
+CONFIG_PERFMON=y
+CONFIG_IA64_PALINFO=m
+CONFIG_KEXEC=y
+CONFIG_CRASH_DUMP=y
+CONFIG_MSPEC=m
+
+##
+## file: arch/ia64/Kconfig.debug
+##
+## choice: Physical memory granularity
+CONFIG_IA64_GRANULE_16MB=y
+# CONFIG_IA64_GRANULE_64MB is not set
+## end choice
+CONFIG_IA64_PRINT_HAZARDS=y
+# CONFIG_DISABLE_VHPT is not set
+# CONFIG_IA64_DEBUG_CMPXCHG is not set
+# CONFIG_IA64_DEBUG_IRQ is not set
+
+##
+## file: arch/ia64/hp/sim/Kconfig
+##
+# CONFIG_HP_SIMETH is not set
+# CONFIG_HP_SIMSERIAL is not set
+# CONFIG_HP_SIMSCSI is not set
+
+##
+## file: block/partitions/Kconfig
+##
+CONFIG_ACORN_PARTITION=y
+# CONFIG_ACORN_PARTITION_CUMANA is not set
+CONFIG_ACORN_PARTITION_EESOX=y
+CONFIG_ACORN_PARTITION_ICS=y
+CONFIG_ACORN_PARTITION_ADFS=y
+CONFIG_ACORN_PARTITION_POWERTEC=y
+CONFIG_ACORN_PARTITION_RISCIX=y
+CONFIG_OSF_PARTITION=y
+CONFIG_AMIGA_PARTITION=y
+CONFIG_ATARI_PARTITION=y
+CONFIG_MAC_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_LDM_PARTITION=y
+CONFIG_LDM_DEBUG=y
+CONFIG_SGI_PARTITION=y
+CONFIG_ULTRIX_PARTITION=y
+CONFIG_SUN_PARTITION=y
+
+##
+## file: drivers/acpi/Kconfig
+##
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_PCI_SLOT=y
+CONFIG_ACPI_CONTAINER=y
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_LEGACY=m
+
+##
+## file: drivers/block/Kconfig
+##
+CONFIG_BLK_DEV_DAC960=m
+CONFIG_BLK_DEV_UMEM=m
+CONFIG_BLK_DEV_SX8=m
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+##
+## file: drivers/char/Kconfig
+##
+CONFIG_SGI_SNSC=y
+CONFIG_SGI_TIOCX=y
+CONFIG_SGI_MBCS=m
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_PPDEV=m
+CONFIG_DTLK=m
+CONFIG_APPLICOM=m
+CONFIG_RAW_DRIVER=m
+CONFIG_MAX_RAW_DEVS=256
+CONFIG_HPET=y
+# CONFIG_HPET_MMAP is not set
+
+##
+## file: drivers/char/agp/Kconfig
+##
+#. Workaround
+CONFIG_AGP=y
+#. Workaround
+CONFIG_AGP_I460=y
+#. Workaround
+CONFIG_AGP_HP_ZX1=y
+#. Workaround
+CONFIG_AGP_SGI_TIOCA=y
+
+##
+## file: drivers/char/ipmi/Kconfig
+##
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+
+##
+## file: drivers/cpufreq/Kconfig
+##
+CONFIG_IA64_ACPI_CPUFREQ=m
+
+##
+## file: drivers/firmware/Kconfig
+##
+CONFIG_DMIID=y
+
+##
+## file: drivers/firmware/efi/Kconfig
+##
+CONFIG_EFI_VARS=y
+
+##
+## file: drivers/gpu/drm/Kconfig
+##
+CONFIG_DRM=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+
+##
+## file: drivers/gpu/drm/i2c/Kconfig
+##
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_SIL164=m
+
+##
+## file: drivers/gpu/drm/nouveau/Kconfig
+##
+CONFIG_DRM_NOUVEAU=m
+# CONFIG_DRM_NOUVEAU_BACKLIGHT is not set
+
+##
+## file: drivers/hid/usbhid/Kconfig
+##
+CONFIG_USB_HID=m
+# CONFIG_HID_PID is not set
+
+##
+## file: drivers/hwmon/Kconfig
+##
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83627HF=m
+
+##
+## file: drivers/i2c/Kconfig
+##
+CONFIG_I2C=m
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_STUB=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+
+##
+## file: drivers/i2c/busses/Kconfig
+##
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_PCA_ISA=m
+CONFIG_SCx200_ACB=m
+
+##
+## file: drivers/ide/Kconfig
+##
+CONFIG_IDE=m
+CONFIG_IDE_GD=m
+# CONFIG_BLK_DEV_IDECS is not set
+CONFIG_BLK_DEV_IDECD=m
+CONFIG_BLK_DEV_IDETAPE=m
+# CONFIG_IDE_GENERIC is not set
+# CONFIG_BLK_DEV_IDEPNP is not set
+# CONFIG_BLK_DEV_GENERIC is not set
+# CONFIG_BLK_DEV_OPTI621 is not set
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+# CONFIG_BLK_DEV_CMD64X is not set
+# CONFIG_BLK_DEV_TRIFLEX is not set
+# CONFIG_BLK_DEV_CS5520 is not set
+# CONFIG_BLK_DEV_HPT366 is not set
+# CONFIG_BLK_DEV_SC1200 is not set
+# CONFIG_BLK_DEV_PIIX is not set
+# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+# CONFIG_BLK_DEV_SVWKS is not set
+CONFIG_BLK_DEV_SGIIOC4=m
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
+CONFIG_BLK_DEV_TRM290=m
+# CONFIG_BLK_DEV_VIA82CXXX is not set
+
+##
+## file: drivers/input/gameport/Kconfig
+##
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+
+##
+## file: drivers/input/joystick/Kconfig
+##
+CONFIG_INPUT_JOYSTICK=y
+
+##
+## file: drivers/input/keyboard/Kconfig
+##
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_LKKBD=m
+CONFIG_KEYBOARD_NEWTON=m
+CONFIG_KEYBOARD_SUNKBD=m
+CONFIG_KEYBOARD_XTKBD=m
+
+##
+## file: drivers/input/misc/Kconfig
+##
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_UINPUT=m
+
+##
+## file: drivers/input/mouse/Kconfig
+##
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_SERIAL=m
+CONFIG_MOUSE_VSXXXAA=m
+
+##
+## file: drivers/input/serio/Kconfig
+##
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+
+##
+## file: drivers/input/touchscreen/Kconfig
+##
+# CONFIG_INPUT_TOUCHSCREEN is not set
+
+##
+## file: drivers/isdn/Kconfig
+##
+CONFIG_ISDN=y
+CONFIG_ISDN_CAPI=m
+
+##
+## file: drivers/isdn/capi/Kconfig
+##
+CONFIG_ISDN_CAPI_CAPI20=m
+# CONFIG_ISDN_CAPI_MIDDLEWARE is not set
+
+##
+## file: drivers/isdn/hardware/avm/Kconfig
+##
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+
+##
+## file: drivers/isdn/hardware/eicon/Kconfig
+##
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+
+##
+## file: drivers/media/radio/Kconfig
+##
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_MAXIRADIO=m
+
+##
+## file: drivers/mmc/Kconfig
+##
+CONFIG_MMC=m
+
+##
+## file: drivers/mmc/core/Kconfig
+##
+CONFIG_MMC_BLOCK=m
+
+##
+## file: drivers/mmc/host/Kconfig
+##
+# CONFIG_MMC_DEBUG is not set
+
+##
+## file: drivers/net/Kconfig
+##
+CONFIG_NET_FC=y
+CONFIG_NET_SB1000=m
+
+##
+## file: drivers/net/arcnet/Kconfig
+##
+CONFIG_ARCNET=m
+CONFIG_ARCNET_1201=m
+CONFIG_ARCNET_1051=m
+CONFIG_ARCNET_RAW=m
+CONFIG_ARCNET_CAP=m
+CONFIG_ARCNET_COM90xx=m
+CONFIG_ARCNET_COM90xxIO=m
+CONFIG_ARCNET_RIM_I=m
+CONFIG_ARCNET_COM20020=m
+CONFIG_ARCNET_COM20020_PCI=m
+CONFIG_ARCNET_COM20020_CS=m
+
+##
+## file: drivers/net/ethernet/Kconfig
+##
+CONFIG_FEALNX=m
+
+##
+## file: drivers/net/ethernet/3com/Kconfig
+##
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+
+##
+## file: drivers/net/ethernet/8390/Kconfig
+##
+CONFIG_PCMCIA_AXNET=m
+CONFIG_NE2K_PCI=m
+CONFIG_PCMCIA_PCNET=m
+
+##
+## file: drivers/net/ethernet/adaptec/Kconfig
+##
+CONFIG_ADAPTEC_STARFIRE=m
+
+##
+## file: drivers/net/ethernet/amd/Kconfig
+##
+CONFIG_AMD8111_ETH=m
+CONFIG_PCMCIA_NMCLAN=m
+
+##
+## file: drivers/net/ethernet/broadcom/Kconfig
+##
+CONFIG_B44=m
+
+##
+## file: drivers/net/ethernet/dec/tulip/Kconfig
+##
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_PCMCIA_XIRCOM=m
+
+##
+## file: drivers/net/ethernet/dlink/Kconfig
+##
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+
+##
+## file: drivers/net/ethernet/fujitsu/Kconfig
+##
+CONFIG_PCMCIA_FMVJ18X=m
+
+##
+## file: drivers/net/ethernet/hp/Kconfig
+##
+# CONFIG_HP100 is not set
+
+##
+## file: drivers/net/ethernet/intel/Kconfig
+##
+CONFIG_E100=m
+
+##
+## file: drivers/net/ethernet/natsemi/Kconfig
+##
+CONFIG_NATSEMI=m
+
+##
+## file: drivers/net/ethernet/nvidia/Kconfig
+##
+CONFIG_FORCEDETH=m
+
+##
+## file: drivers/net/ethernet/realtek/Kconfig
+##
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+# CONFIG_8139TOO_8129 is not set
+# CONFIG_8139_OLD_RX_RESET is not set
+
+##
+## file: drivers/net/ethernet/sis/Kconfig
+##
+CONFIG_SIS900=m
+
+##
+## file: drivers/net/ethernet/smsc/Kconfig
+##
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_EPIC100=m
+
+##
+## file: drivers/net/ethernet/via/Kconfig
+##
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+
+##
+## file: drivers/net/ethernet/xircom/Kconfig
+##
+CONFIG_PCMCIA_XIRC2PS=m
+
+##
+## file: drivers/net/fddi/Kconfig
+##
+CONFIG_FDDI=y
+CONFIG_SKFP=m
+
+##
+## file: drivers/net/hippi/Kconfig
+##
+# CONFIG_HIPPI is not set
+
+##
+## file: drivers/net/plip/Kconfig
+##
+CONFIG_PLIP=m
+
+##
+## file: drivers/net/wan/Kconfig
+##
+CONFIG_WAN=y
+CONFIG_LANMEDIA=m
+CONFIG_PCI200SYN=m
+CONFIG_WANXL=m
+CONFIG_FARSYNC=m
+CONFIG_DSCC4=m
+# CONFIG_DSCC4_PCISYNC is not set
+# CONFIG_DSCC4_PCI_RST is not set
+CONFIG_DLCI=m
+CONFIG_DLCI_MAX=8
+
+##
+## file: drivers/net/wireless/Kconfig
+##
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_PCMCIA_WL3501=m
+
+##
+## file: drivers/net/wireless/atmel/Kconfig
+##
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+
+##
+## file: drivers/net/wireless/cisco/Kconfig
+##
+CONFIG_AIRO_CS=m
+
+##
+## file: drivers/net/wireless/intel/ipw2x00/Kconfig
+##
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+
+##
+## file: drivers/net/wireless/intersil/orinoco/Kconfig
+##
+CONFIG_HERMES=m
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_SPECTRUM=m
+
+##
+## file: drivers/net/wireless/marvell/mwifiex/Kconfig
+##
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_PCIE=m
+
+##
+## file: drivers/net/wireless/zydas/Kconfig
+##
+CONFIG_USB_ZD1201=m
+
+##
+## file: drivers/pci/hotplug/Kconfig
+##
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_SGI=y
+
+##
+## file: drivers/pcmcia/Kconfig
+##
+CONFIG_PCCARD=m
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+CONFIG_YENTA=m
+CONFIG_PD6729=m
+CONFIG_I82092=m
+
+##
+## file: drivers/rtc/Kconfig
+##
+CONFIG_RTC_DRV_EFI=y
+
+##
+## file: drivers/scsi/Kconfig
+##
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_IPR=m
+CONFIG_SCSI_IPR_TRACE=y
+CONFIG_SCSI_IPR_DUMP=y
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_AM53C974=m
+
+##
+## file: drivers/scsi/megaraid/Kconfig.megaraid
+##
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+
+##
+## file: drivers/scsi/pcmcia/Kconfig
+##
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+
+##
+## file: drivers/sn/Kconfig
+##
+CONFIG_SGI_IOC3=m
+
+##
+## file: drivers/staging/wlan-ng/Kconfig
+##
+# CONFIG_PRISM2_USB is not set
+
+##
+## file: drivers/tty/Kconfig
+##
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_ROCKETPORT=m
+# CONFIG_CYCLADES is not set
+CONFIG_MOXA_INTELLIO=m
+# CONFIG_MOXA_SMARTIO is not set
+CONFIG_SYNCLINKMP=m
+# CONFIG_ISI is not set
+CONFIG_N_HDLC=m
+
+##
+## file: drivers/tty/serial/Kconfig
+##
+CONFIG_SERIAL_SGI_L1_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_SGI_IOC4=m
+CONFIG_SERIAL_SGI_IOC3=m
+
+##
+## file: drivers/tty/serial/8250/Kconfig
+##
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+CONFIG_SERIAL_8250_RSA=y
+
+##
+## file: drivers/usb/Kconfig
+##
+CONFIG_USB=m
+CONFIG_USB_USS720=m
+
+##
+## file: drivers/usb/host/Kconfig
+##
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_OHCI_HCD=m
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_SL811_HCD=m
+CONFIG_USB_SL811_CS=m
+
+##
+## file: drivers/video/console/Kconfig
+##
+CONFIG_VGA_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+CONFIG_FB=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_PM2=m
+# CONFIG_FB_PM2_FIFO_DISCONNECT is not set
+CONFIG_FB_CYBER2000=m
+CONFIG_FB_ASILIANT=y
+# CONFIG_FB_IMSTT is not set
+CONFIG_FB_S1D13XXX=m
+CONFIG_FB_MATROX=m
+CONFIG_FB_MATROX_MILLENIUM=y
+CONFIG_FB_MATROX_MYSTIQUE=y
+CONFIG_FB_MATROX_G=y
+CONFIG_FB_MATROX_I2C=m
+CONFIG_FB_MATROX_MAVEN=m
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_I2C=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_ATY128=m
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_ATY_GENERIC_LCD=y
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SAVAGE_I2C=y
+# CONFIG_FB_SAVAGE_ACCEL is not set
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_KYRO=m
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_TRIDENT=m
+# CONFIG_FB_VIRTUAL is not set
+
+##
+## file: fs/pstore/Kconfig
+##
+CONFIG_PSTORE=y
+
+##
+## file: lib/Kconfig.debug
+##
+#. Broken here (#905461)
+# CONFIG_SCHED_STACK_END_CHECK is not set
+
+##
+## file: lib/xz/Kconfig
+##
+CONFIG_XZ_DEC_IA64=y
+
+##
+## file: net/ax25/Kconfig
+##
+CONFIG_HAMRADIO=y
+
+##
+## file: net/ipv6/Kconfig
+##
+CONFIG_IPV6=y
+
+##
+## file: security/Kconfig
+##
+CONFIG_LSM_MMAP_MIN_ADDR=65536
+
+##
+## file: sound/drivers/Kconfig
+##
+CONFIG_SND_DUMMY=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+
+##
+## file: sound/pci/Kconfig
+##
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_HDSP=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MIXART=m
+CONFIG_SND_NM256=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VX222=m
+CONFIG_SND_YMFPCI=m
+
+##
+## file: sound/pci/hda/Kconfig
+##
+CONFIG_SND_HDA_INTEL=m
+
diff --git a/debian/config/ia64/config.itanium b/debian/config/ia64/config.itanium
new file mode 100644
index 000000000..e683b846b
--- /dev/null
+++ b/debian/config/ia64/config.itanium
@@ -0,0 +1,11 @@
+##
+## file: arch/ia64/Kconfig
+##
+## choice: Processor type
+CONFIG_ITANIUM=y
+# CONFIG_MCKINLEY is not set
+## end choice
+CONFIG_SMP=y
+CONFIG_NR_CPUS=64
+# CONFIG_SCHED_SMT is not set
+
diff --git a/debian/config/ia64/config.mckinley b/debian/config/ia64/config.mckinley
new file mode 100644
index 000000000..6da85354e
--- /dev/null
+++ b/debian/config/ia64/config.mckinley
@@ -0,0 +1,11 @@
+##
+## file: arch/ia64/Kconfig
+##
+## choice: Processor type
+# CONFIG_ITANIUM is not set
+CONFIG_MCKINLEY=y
+## end choice
+CONFIG_SMP=y
+CONFIG_NR_CPUS=64
+# CONFIG_SCHED_SMT is not set
+
diff --git a/debian/config/ia64/defines b/debian/config/ia64/defines
new file mode 100644
index 000000000..c3ad16d6a
--- /dev/null
+++ b/debian/config/ia64/defines
@@ -0,0 +1,20 @@
+[base]
+flavours:
+ itanium
+ mckinley
+kernel-arch: ia64
+
+[build]
+image-file: vmlinux.gz
+
+[image]
+bootloaders: grub-efi-ia64
+install-stem: vmlinuz
+
+[itanium_description]
+hardware: Itanium (Merced)
+hardware-long: systems with original Itanium (Merced) processors
+
+[mckinley_description]
+hardware: Itanium 2+
+hardware-long: systems with Itanium 2 or 9300/9500/9700-series processors
diff --git a/debian/config/kernelarch-arm/config b/debian/config/kernelarch-arm/config
new file mode 100644
index 000000000..fabd666bc
--- /dev/null
+++ b/debian/config/kernelarch-arm/config
@@ -0,0 +1,126 @@
+##
+## file: arch/arm/Kconfig
+##
+CONFIG_MMU=y
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+CONFIG_CPU_SW_DOMAIN_PAN=y
+CONFIG_SECCOMP=y
+CONFIG_KEXEC=y
+CONFIG_CRASH_DUMP=y
+
+##
+## file: arch/arm/Kconfig.debug
+##
+CONFIG_DEBUG_LL=y
+CONFIG_EARLY_PRINTK=y
+
+##
+## file: arch/arm/crypto/Kconfig
+##
+CONFIG_ARM_CRYPTO=y
+CONFIG_CRYPTO_SHA1_ARM=m
+CONFIG_CRYPTO_SHA256_ARM=m
+CONFIG_CRYPTO_SHA512_ARM=m
+CONFIG_CRYPTO_AES_ARM=m
+
+##
+## file: arch/arm/mm/Kconfig
+##
+#. Support Thumb user binaries
+CONFIG_ARM_THUMB=y
+
+##
+## file: drivers/iio/humidity/Kconfig
+##
+CONFIG_DHT11=m
+
+##
+## file: drivers/input/misc/Kconfig
+##
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_UINPUT=m
+
+##
+## file: drivers/input/mouse/Kconfig
+##
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_APPLETOUCH=m
+
+##
+## file: drivers/input/touchscreen/Kconfig
+##
+# CONFIG_TOUCHSCREEN_EETI is not set
+
+##
+## file: drivers/mtd/maps/Kconfig
+##
+CONFIG_MTD_PHYSMAP=y
+
+##
+## file: drivers/net/wireless/intel/ipw2x00/Kconfig
+##
+# CONFIG_IPW2100 is not set
+
+##
+## file: drivers/parport/Kconfig
+##
+#. Causes lockups on ARM (see #588164)
+# CONFIG_PARPORT_PC is not set
+
+##
+## file: drivers/pci/Kconfig
+##
+# CONFIG_PCI_IOV is not set
+
+##
+## file: drivers/scsi/Kconfig
+##
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_HPTIOP is not set
+
+##
+## file: drivers/scsi/aic7xxx/Kconfig.aic79xx
+##
+# CONFIG_SCSI_AIC79XX is not set
+
+##
+## file: drivers/scsi/aic7xxx/Kconfig.aic7xxx
+##
+# CONFIG_SCSI_AIC7XXX is not set
+
+##
+## file: drivers/scsi/aic94xx/Kconfig
+##
+# CONFIG_SCSI_AIC94XX is not set
+
+##
+## file: drivers/scsi/megaraid/Kconfig.megaraid
+##
+# CONFIG_MEGARAID_SAS is not set
+
+##
+## file: drivers/scsi/qla2xxx/Kconfig
+##
+# CONFIG_SCSI_QLA_FC is not set
+
+##
+## file: drivers/scsi/qla4xxx/Kconfig
+##
+# CONFIG_SCSI_QLA_ISCSI is not set
+
+##
+## file: drivers/thermal/Kconfig
+##
+CONFIG_THERMAL=y
+CONFIG_CPU_THERMAL=y
+
+##
+## file: lib/xz/Kconfig
+##
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+
diff --git a/debian/config/kernelarch-mips/config b/debian/config/kernelarch-mips/config
new file mode 100644
index 000000000..63720baaa
--- /dev/null
+++ b/debian/config/kernelarch-mips/config
@@ -0,0 +1,70 @@
+##
+## file: arch/mips/Kconfig
+##
+CONFIG_CPU_HAS_MSA=y
+CONFIG_RELOCATABLE=y
+CONFIG_RELOCATION_TABLE_SIZE=0x00140000
+CONFIG_RANDOMIZE_BASE=y
+CONFIG_KEXEC=y
+CONFIG_SECCOMP=y
+CONFIG_PCI=y
+# CONFIG_RAPIDIO is not set
+#. Ignored in 32-bit configurations
+CONFIG_MIPS32_O32=y
+CONFIG_MIPS32_N32=y
+
+##
+## file: arch/mips/Kconfig.debug
+##
+CONFIG_EARLY_PRINTK=y
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_ATA=y
+
+##
+## file: drivers/net/ethernet/sun/Kconfig
+##
+# CONFIG_NIU is not set
+
+##
+## file: drivers/power/reset/Kconfig
+##
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_SYSCON=y
+
+##
+## file: drivers/scsi/Kconfig
+##
+CONFIG_SCSI=y
+CONFIG_BLK_DEV_SD=y
+
+##
+## file: drivers/tty/serial/8250/Kconfig
+##
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+
+##
+## file: drivers/usb/Kconfig
+##
+CONFIG_USB=m
+
+##
+## file: drivers/usb/host/Kconfig
+##
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_OHCI_HCD=m
+
+##
+## file: drivers/video/console/Kconfig
+##
+# CONFIG_VGA_CONSOLE is not set
+
+##
+## file: init/Kconfig
+##
+CONFIG_SGETMASK_SYSCALL=y
+CONFIG_SYSFS_SYSCALL=y
+
diff --git a/debian/config/kernelarch-mips/config.boston b/debian/config/kernelarch-mips/config.boston
new file mode 100644
index 000000000..20178e150
--- /dev/null
+++ b/debian/config/kernelarch-mips/config.boston
@@ -0,0 +1,72 @@
+##
+## file: arch/mips/Kconfig
+##
+## choice: System type
+CONFIG_MIPS_GENERIC=y
+## end choice
+CONFIG_MIPS_CPS=y
+CONFIG_HIGHMEM=y
+CONFIG_NR_CPUS=16
+
+##
+## file: arch/mips/generic/Kconfig
+##
+CONFIG_FIT_IMAGE_FDT_BOSTON=y
+
+##
+## file: crypto/Kconfig
+##
+CONFIG_CRYPTO_CRC32_MIPS=y
+
+##
+## file: drivers/auxdisplay/Kconfig
+##
+CONFIG_AUXDISPLAY=y
+CONFIG_IMG_ASCII_LCD=y
+
+##
+## file: drivers/clk/imgtec/Kconfig
+##
+CONFIG_COMMON_CLK_BOSTON=y
+
+##
+## file: drivers/i2c/busses/Kconfig
+##
+CONFIG_I2C_EG20T=y
+
+##
+## file: drivers/misc/Kconfig
+##
+CONFIG_PCH_PHUB=y
+
+##
+## file: drivers/mmc/Kconfig
+##
+CONFIG_MMC=y
+
+##
+## file: drivers/mmc/host/Kconfig
+##
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PCI=y
+
+##
+## file: drivers/pci/controller/Kconfig
+##
+CONFIG_PCIE_XILINX=y
+
+##
+## file: drivers/rtc/Kconfig
+##
+CONFIG_RTC_DRV_M41T80=y
+
+##
+## file: drivers/spi/Kconfig
+##
+CONFIG_SPI_TOPCLIFF_PCH=y
+
+##
+## file: drivers/tty/serial/8250/Kconfig
+##
+CONFIG_SERIAL_OF_PLATFORM=y
+
diff --git a/debian/config/kernelarch-mips/config.loongson-3 b/debian/config/kernelarch-mips/config.loongson-3
new file mode 100644
index 000000000..479be70c1
--- /dev/null
+++ b/debian/config/kernelarch-mips/config.loongson-3
@@ -0,0 +1,126 @@
+##
+## file: arch/mips/Kconfig
+##
+## choice: System type
+CONFIG_MACH_LOONGSON64=y
+## end choice
+## choice: Kernel code model
+# CONFIG_32BIT is not set
+CONFIG_64BIT=y
+## end choice
+CONFIG_NUMA=y
+CONFIG_SMP=y
+CONFIG_HOTPLUG_CPU=y
+CONFIG_NR_CPUS=16
+
+##
+## file: arch/mips/loongson64/Kconfig
+##
+## choice: Machine Type
+CONFIG_LOONGSON_MACH3X=y
+## end choice
+CONFIG_RS780_HPET=y
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_SATA_AHCI=y
+
+##
+## file: drivers/cpuidle/Kconfig
+##
+CONFIG_CPU_IDLE=y
+
+##
+## file: drivers/gpu/drm/Kconfig
+##
+CONFIG_DRM=m
+CONFIG_DRM_RADEON=m
+
+##
+## file: drivers/gpu/drm/ast/Kconfig
+##
+CONFIG_DRM_AST=m
+
+##
+## file: drivers/i2c/Kconfig
+##
+CONFIG_I2C=y
+
+##
+## file: drivers/i2c/algos/Kconfig
+##
+CONFIG_I2C_ALGOBIT=y
+
+##
+## file: drivers/net/ethernet/8390/Kconfig
+##
+CONFIG_NE2K_PCI=m
+
+##
+## file: drivers/net/ethernet/intel/Kconfig
+##
+CONFIG_E100=m
+
+##
+## file: drivers/net/ethernet/realtek/Kconfig
+##
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+
+##
+## file: drivers/pci/pcie/Kconfig
+##
+# CONFIG_PCIEPORTBUS is not set
+
+##
+## file: drivers/regulator/Kconfig
+##
+CONFIG_REGULATOR=y
+
+##
+## file: drivers/rtc/Kconfig
+##
+CONFIG_RTC_DRV_CMOS=y
+
+##
+## file: drivers/staging/sm750fb/Kconfig
+##
+CONFIG_FB_SM750=m
+
+##
+## file: drivers/tty/serial/8250/Kconfig
+##
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+##
+## file: drivers/usb/host/Kconfig
+##
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_SL811_HCD=m
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+CONFIG_FB_RADEON=y
+
+##
+## file: kernel/Kconfig.preempt
+##
+## choice: Preemption Model
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+## end choice
+
+##
+## file: mm/Kconfig.debug
+##
+# CONFIG_PAGE_EXTENSION is not set
+# CONFIG_PAGE_POISONING is not set
+
+##
+## file: sound/pci/hda/Kconfig
+##
+CONFIG_SND_HDA_INTEL=m
+
diff --git a/debian/config/kernelarch-mips/config.malta b/debian/config/kernelarch-mips/config.malta
new file mode 100644
index 000000000..57e84bccc
--- /dev/null
+++ b/debian/config/kernelarch-mips/config.malta
@@ -0,0 +1,498 @@
+##
+## file: arch/mips/Kconfig
+##
+## choice: System type
+CONFIG_MIPS_MALTA=y
+## end choice
+## choice: Kernel page size
+CONFIG_PAGE_SIZE_4KB=y
+## end choice
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NS87410=m
+
+##
+## file: drivers/block/Kconfig
+##
+CONFIG_BLK_DEV_FD=m
+CONFIG_BLK_DEV_DAC960=m
+CONFIG_BLK_DEV_UMEM=m
+CONFIG_BLK_DEV_SX8=m
+CONFIG_CDROM_PKTCDVD=m
+
+##
+## file: drivers/bluetooth/Kconfig
+##
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIVHCI=m
+
+##
+## file: drivers/char/Kconfig
+##
+CONFIG_PRINTER=m
+CONFIG_PPDEV=m
+
+##
+## file: drivers/char/ipmi/Kconfig
+##
+CONFIG_IPMI_HANDLER=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+
+##
+## file: drivers/gpu/drm/Kconfig
+##
+CONFIG_DRM=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_MGA=m
+
+##
+## file: drivers/hwmon/Kconfig
+##
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_PCF8591=m
+
+##
+## file: drivers/i2c/Kconfig
+##
+CONFIG_I2C=m
+
+##
+## file: drivers/i2c/busses/Kconfig
+##
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+
+##
+## file: drivers/input/gameport/Kconfig
+##
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+
+##
+## file: drivers/input/joystick/Kconfig
+##
+CONFIG_INPUT_JOYSTICK=y
+
+##
+## file: drivers/input/keyboard/Kconfig
+##
+CONFIG_KEYBOARD_NEWTON=m
+CONFIG_KEYBOARD_SUNKBD=m
+
+##
+## file: drivers/input/mouse/Kconfig
+##
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_SERIAL=m
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_VSXXXAA=m
+
+##
+## file: drivers/input/serio/Kconfig
+##
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=y
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+
+##
+## file: drivers/input/touchscreen/Kconfig
+##
+CONFIG_INPUT_TOUCHSCREEN=y
+
+##
+## file: drivers/mfd/Kconfig
+##
+CONFIG_MFD_SM501=m
+
+##
+## file: drivers/mmc/Kconfig
+##
+CONFIG_MMC=m
+
+##
+## file: drivers/mmc/core/Kconfig
+##
+CONFIG_MMC_BLOCK=m
+
+##
+## file: drivers/mtd/Kconfig
+##
+CONFIG_MTD_REDBOOT_PARTS=y
+CONFIG_FTL=m
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_INFTL=m
+
+##
+## file: drivers/mtd/chips/Kconfig
+##
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_ROM=m
+CONFIG_MTD_ABSENT=m
+
+##
+## file: drivers/mtd/devices/Kconfig
+##
+CONFIG_MTD_PMC551=m
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_PHRAM=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTD_BLOCK2MTD=m
+
+##
+## file: drivers/mtd/maps/Kconfig
+##
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+CONFIG_MTD_PHYSMAP=m
+CONFIG_MTD_PCI=m
+
+##
+## file: drivers/mtd/nand/raw/Kconfig
+##
+CONFIG_MTD_NAND=m
+CONFIG_MTD_NAND_DISKONCHIP=m
+
+##
+## file: drivers/net/Kconfig
+##
+CONFIG_NET_FC=y
+
+##
+## file: drivers/net/ethernet/Kconfig
+##
+CONFIG_FEALNX=m
+
+##
+## file: drivers/net/ethernet/3com/Kconfig
+##
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+
+##
+## file: drivers/net/ethernet/8390/Kconfig
+##
+CONFIG_NE2K_PCI=m
+
+##
+## file: drivers/net/ethernet/amd/Kconfig
+##
+CONFIG_AMD8111_ETH=m
+
+##
+## file: drivers/net/ethernet/broadcom/Kconfig
+##
+CONFIG_B44=m
+
+##
+## file: drivers/net/ethernet/dec/tulip/Kconfig
+##
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_TULIP=m
+CONFIG_DM9102=m
+
+##
+## file: drivers/net/ethernet/dlink/Kconfig
+##
+CONFIG_SUNDANCE=m
+
+##
+## file: drivers/net/ethernet/intel/Kconfig
+##
+CONFIG_E100=m
+
+##
+## file: drivers/net/ethernet/natsemi/Kconfig
+##
+CONFIG_NATSEMI=m
+
+##
+## file: drivers/net/ethernet/realtek/Kconfig
+##
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+
+##
+## file: drivers/net/ethernet/sis/Kconfig
+##
+CONFIG_SIS900=m
+
+##
+## file: drivers/net/ethernet/smsc/Kconfig
+##
+CONFIG_EPIC100=m
+
+##
+## file: drivers/net/ethernet/via/Kconfig
+##
+CONFIG_VIA_RHINE=m
+
+##
+## file: drivers/net/wireless/atmel/Kconfig
+##
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+
+##
+## file: drivers/net/wireless/intel/ipw2x00/Kconfig
+##
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+
+##
+## file: drivers/net/wireless/intersil/orinoco/Kconfig
+##
+CONFIG_HERMES=m
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_PCI_HERMES=m
+
+##
+## file: drivers/net/wireless/marvell/mwifiex/Kconfig
+##
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+
+##
+## file: drivers/net/wireless/zydas/Kconfig
+##
+CONFIG_USB_ZD1201=m
+
+##
+## file: drivers/pci/pcie/Kconfig
+##
+# CONFIG_PCIEPORTBUS is not set
+
+##
+### file: drivers/power/reset/Kconfig
+##
+CONFIG_POWER_RESET_PIIX4_POWEROFF=y
+
+##
+## file: drivers/rtc/Kconfig
+##
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_M48T86=m
+
+##
+## file: drivers/scsi/Kconfig
+##
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_DEBUG=m
+
+##
+## file: drivers/scsi/megaraid/Kconfig.megaraid
+##
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+
+##
+## file: drivers/tty/serial/Kconfig
+##
+CONFIG_SERIAL_JSM=m
+
+##
+## file: drivers/tty/serial/8250/Kconfig
+##
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_RSA=y
+
+##
+## file: drivers/usb/Kconfig
+##
+CONFIG_USB_USS720=m
+
+##
+## file: drivers/usb/atm/Kconfig
+##
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+
+##
+## file: drivers/usb/host/Kconfig
+##
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_SL811_HCD=m
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+CONFIG_FB_CIRRUS=y
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_CYBER2000=m
+CONFIG_FB_S1D13XXX=m
+CONFIG_FB_MATROX=m
+CONFIG_FB_MATROX_MILLENIUM=y
+CONFIG_FB_MATROX_MYSTIQUE=y
+CONFIG_FB_MATROX_G=y
+CONFIG_FB_MATROX_I2C=m
+CONFIG_FB_MATROX_MAVEN=m
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RADEON_BACKLIGHT=y
+CONFIG_FB_ATY128=m
+CONFIG_FB_ATY128_BACKLIGHT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_ATY_BACKLIGHT=y
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_KYRO=m
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_TRIDENT=m
+CONFIG_FB_VIRTUAL=m
+
+##
+## file: drivers/watchdog/Kconfig
+##
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_WDTPCI=m
+CONFIG_USBPCWATCHDOG=m
+
+##
+## file: net/ax25/Kconfig
+##
+CONFIG_HAMRADIO=y
+CONFIG_AX25=m
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+
+##
+## file: net/decnet/Kconfig
+##
+CONFIG_DECNET=m
+
+##
+## file: net/decnet/netfilter/Kconfig
+##
+CONFIG_DECNET_NF_GRABULATOR=m
+
+##
+## file: net/lapb/Kconfig
+##
+CONFIG_LAPB=m
+
+##
+## file: sound/drivers/Kconfig
+##
+CONFIG_SND_DUMMY=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+
+##
+## file: sound/pci/Kconfig
+##
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_HDSP=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MIXART=m
+CONFIG_SND_NM256=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VX222=m
+CONFIG_SND_YMFPCI=m
+
diff --git a/debian/config/kernelarch-mips/config.mips32r2 b/debian/config/kernelarch-mips/config.mips32r2
new file mode 100644
index 000000000..88f2c05a9
--- /dev/null
+++ b/debian/config/kernelarch-mips/config.mips32r2
@@ -0,0 +1,10 @@
+##
+## file: arch/mips/Kconfig
+##
+## choice: CPU type
+CONFIG_CPU_MIPS32_R2=y
+## end choice
+## choice: Kernel code model
+CONFIG_32BIT=y
+## end choice
+
diff --git a/debian/config/kernelarch-mips/config.mips32r6 b/debian/config/kernelarch-mips/config.mips32r6
new file mode 100644
index 000000000..c95ffabb9
--- /dev/null
+++ b/debian/config/kernelarch-mips/config.mips32r6
@@ -0,0 +1,10 @@
+##
+## file: arch/mips/Kconfig
+##
+## choice: CPU type
+CONFIG_CPU_MIPS32_R6=y
+## end choice
+## choice: Kernel code model
+CONFIG_32BIT=y
+## end choice
+
diff --git a/debian/config/kernelarch-mips/config.mips64r2 b/debian/config/kernelarch-mips/config.mips64r2
new file mode 100644
index 000000000..1c1bed181
--- /dev/null
+++ b/debian/config/kernelarch-mips/config.mips64r2
@@ -0,0 +1,10 @@
+##
+## file: arch/mips/Kconfig
+##
+## choice: CPU type
+CONFIG_CPU_MIPS64_R2=y
+## end choice
+## choice: Kernel code model
+CONFIG_64BIT=y
+## end choice
+
diff --git a/debian/config/kernelarch-mips/config.mips64r6 b/debian/config/kernelarch-mips/config.mips64r6
new file mode 100644
index 000000000..2cd32b0b5
--- /dev/null
+++ b/debian/config/kernelarch-mips/config.mips64r6
@@ -0,0 +1,10 @@
+##
+## file: arch/mips/Kconfig
+##
+## choice: CPU type
+CONFIG_CPU_MIPS64_R6=y
+## end choice
+## choice: Kernel code model
+CONFIG_64BIT=y
+## end choice
+
diff --git a/debian/config/kernelarch-mips/config.octeon b/debian/config/kernelarch-mips/config.octeon
new file mode 100644
index 000000000..dbd98f0b5
--- /dev/null
+++ b/debian/config/kernelarch-mips/config.octeon
@@ -0,0 +1,189 @@
+##
+## file: arch/mips/Kconfig
+##
+## choice: System type
+CONFIG_CAVIUM_OCTEON_SOC=y
+## end choice
+## choice: Kernel code model
+# CONFIG_32BIT is not set
+CONFIG_64BIT=y
+## end choice
+# CONFIG_CPU_HAS_MSA is not set
+CONFIG_SMP=y
+# CONFIG_HOTPLUG_CPU is not set
+CONFIG_NR_CPUS=64
+
+##
+## file: arch/mips/cavium-octeon/Kconfig
+##
+CONFIG_CAVIUM_CN63XXP1=y
+CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE=1
+CONFIG_CAVIUM_OCTEON_LOCK_L2=y
+CONFIG_CAVIUM_OCTEON_LOCK_L2_TLB=y
+CONFIG_CAVIUM_OCTEON_LOCK_L2_EXCEPTION=y
+CONFIG_CAVIUM_OCTEON_LOCK_L2_LOW_LEVEL_INTERRUPT=y
+CONFIG_CAVIUM_OCTEON_LOCK_L2_INTERRUPT=y
+CONFIG_CAVIUM_OCTEON_LOCK_L2_MEMCPY=y
+
+##
+## file: crypto/Kconfig
+##
+CONFIG_CRYPTO_MD5_OCTEON=m
+CONFIG_CRYPTO_SHA1_OCTEON=m
+CONFIG_CRYPTO_SHA256_OCTEON=m
+CONFIG_CRYPTO_SHA512_OCTEON=m
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_AHCI_OCTEON=m
+CONFIG_PATA_OCTEON_CF=y
+
+##
+## file: drivers/char/hw_random/Kconfig
+##
+CONFIG_HW_RANDOM_OCTEON=m
+
+##
+## file: drivers/edac/Kconfig
+##
+CONFIG_EDAC=y
+CONFIG_EDAC_OCTEON_PC=m
+CONFIG_EDAC_OCTEON_L2C=m
+CONFIG_EDAC_OCTEON_LMC=m
+CONFIG_EDAC_OCTEON_PCI=m
+
+##
+## file: drivers/hwmon/Kconfig
+##
+CONFIG_SENSORS_ADM1031=m
+
+##
+## file: drivers/i2c/Kconfig
+##
+CONFIG_I2C=y
+
+##
+## file: drivers/i2c/busses/Kconfig
+##
+CONFIG_I2C_OCTEON=y
+
+##
+## file: drivers/input/keyboard/Kconfig
+##
+# CONFIG_KEYBOARD_ATKBD is not set
+
+##
+## file: drivers/input/mouse/Kconfig
+##
+# CONFIG_MOUSE_PS2 is not set
+
+##
+## file: drivers/input/serio/Kconfig
+##
+# CONFIG_SERIO_I8042 is not set
+
+##
+## file: drivers/input/touchscreen/Kconfig
+##
+# CONFIG_INPUT_TOUCHSCREEN is not set
+
+##
+## file: drivers/mmc/Kconfig
+##
+CONFIG_MMC=m
+
+##
+## file: drivers/mmc/core/Kconfig
+##
+CONFIG_MMC_BLOCK=m
+
+##
+## file: drivers/mmc/host/Kconfig
+##
+CONFIG_MMC_CAVIUM_OCTEON=m
+
+##
+## file: drivers/mtd/Kconfig
+##
+CONFIG_MTD=y
+CONFIG_MTD_BLOCK=y
+
+##
+## file: drivers/mtd/chips/Kconfig
+##
+CONFIG_MTD_CFI=y
+CONFIG_MTD_CFI_AMDSTD=y
+
+##
+## file: drivers/mtd/maps/Kconfig
+##
+CONFIG_MTD_PHYSMAP=y
+
+##
+## file: drivers/net/ethernet/cavium/Kconfig
+##
+CONFIG_OCTEON_MGMT_ETHERNET=y
+
+##
+## file: drivers/net/phy/Kconfig
+##
+CONFIG_MDIO_OCTEON=y
+
+##
+## file: drivers/rtc/Kconfig
+##
+CONFIG_RTC_DRV_DS1307=y
+
+##
+## file: drivers/spi/Kconfig
+##
+CONFIG_SPI_OCTEON=y
+
+##
+## file: drivers/staging/octeon/Kconfig
+##
+CONFIG_OCTEON_ETHERNET=y
+
+##
+## file: drivers/staging/octeon-usb/Kconfig
+##
+CONFIG_OCTEON_USB=y
+
+##
+## file: drivers/tty/serial/8250/Kconfig
+##
+CONFIG_SERIAL_8250_NR_UARTS=2
+CONFIG_SERIAL_8250_RUNTIME_UARTS=2
+CONFIG_SERIAL_8250_DW=y
+
+##
+## file: drivers/usb/host/Kconfig
+##
+CONFIG_USB_OCTEON_EHCI=y
+CONFIG_USB_OCTEON_OHCI=y
+
+##
+## file: drivers/video/console/Kconfig
+##
+# CONFIG_FRAMEBUFFER_CONSOLE is not set
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+# CONFIG_FB is not set
+
+##
+## file: kernel/power/Kconfig
+##
+# CONFIG_SUSPEND is not set
+# CONFIG_HIBERNATION is not set
+
+##
+## file: mm/Kconfig
+##
+## choice: Memory model
+CONFIG_SPARSEMEM_MANUAL=y
+## end choice
+
diff --git a/debian/config/kernelarch-powerpc/config b/debian/config/kernelarch-powerpc/config
new file mode 100644
index 000000000..d0e2d4db6
--- /dev/null
+++ b/debian/config/kernelarch-powerpc/config
@@ -0,0 +1,947 @@
+##
+## file: arch/powerpc/Kconfig
+##
+# CONFIG_HOTPLUG_CPU is not set
+CONFIG_KEXEC=y
+CONFIG_CMDLINE_BOOL=y
+CONFIG_CMDLINE="console=ttyS0,9600 console=tty0"
+CONFIG_SECCOMP=y
+CONFIG_PCI=y
+# CONFIG_RAPIDIO is not set
+# CONFIG_ADVANCED_OPTIONS is not set
+
+##
+## file: arch/powerpc/Kconfig.debug
+##
+CONFIG_PPC_DISABLE_WERROR=y
+# CONFIG_CODE_PATCHING_SELFTEST is not set
+# CONFIG_FTR_FIXUP_SELFTEST is not set
+# CONFIG_MSI_BITMAP_SELFTEST is not set
+CONFIG_XMON=y
+# CONFIG_XMON_DEFAULT is not set
+CONFIG_XMON_DISASSEMBLY=y
+# CONFIG_BDI_SWITCH is not set
+CONFIG_BOOTX_TEXT=y
+
+##
+## file: arch/powerpc/kvm/Kconfig
+##
+CONFIG_VIRTUALIZATION=y
+
+##
+## file: arch/powerpc/platforms/Kconfig
+##
+CONFIG_KVM_GUEST=y
+CONFIG_RTAS_PROC=y
+CONFIG_PPC601_SYNC_FIX=y
+CONFIG_TAU=y
+# CONFIG_TAU_INT is not set
+# CONFIG_TAU_AVERAGE is not set
+
+##
+## file: arch/powerpc/platforms/52xx/Kconfig
+##
+# CONFIG_PPC_LITE5200 is not set
+
+##
+## file: arch/powerpc/platforms/82xx/Kconfig
+##
+# CONFIG_PPC_82xx is not set
+
+##
+## file: arch/powerpc/platforms/83xx/Kconfig
+##
+# CONFIG_PPC_83xx is not set
+
+##
+## file: arch/powerpc/platforms/86xx/Kconfig
+##
+# CONFIG_PPC_86xx is not set
+
+##
+## file: arch/powerpc/platforms/powermac/Kconfig
+##
+CONFIG_PPC_PMAC=y
+
+##
+## file: block/partitions/Kconfig
+##
+CONFIG_AMIGA_PARTITION=y
+CONFIG_MAC_PARTITION=y
+
+##
+## file: crypto/Kconfig
+##
+CONFIG_CRYPTO_SHA1_PPC=m
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_ATA=y
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_MACIO=y
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_PCMCIA=m
+
+##
+## file: drivers/atm/Kconfig
+##
+CONFIG_ATM_DRIVERS=y
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+CONFIG_ATM_ZATM_DEBUG=y
+CONFIG_ATM_NICSTAR=m
+CONFIG_ATM_NICSTAR_USE_SUNI=y
+CONFIG_ATM_NICSTAR_USE_IDT77105=y
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E_USE_TASKLET=y
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+# CONFIG_ATM_HE_USE_SUNI is not set
+
+##
+## file: drivers/block/Kconfig
+##
+CONFIG_BLK_DEV_FD=m
+CONFIG_BLK_DEV_DAC960=m
+CONFIG_BLK_DEV_UMEM=m
+CONFIG_BLK_DEV_SX8=m
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+##
+## file: drivers/bluetooth/Kconfig
+##
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIVHCI=m
+
+##
+## file: drivers/char/Kconfig
+##
+CONFIG_PRINTER=m
+CONFIG_NVRAM=y
+CONFIG_DTLK=m
+CONFIG_APPLICOM=m
+
+##
+## file: drivers/char/agp/Kconfig
+##
+#. Workaround
+CONFIG_AGP=y
+#. Workaround
+CONFIG_AGP_UNINORTH=y
+
+##
+## file: drivers/char/ipmi/Kconfig
+##
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_POWERNV=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+
+##
+## file: drivers/cpufreq/Kconfig.powerpc
+##
+CONFIG_CPU_FREQ_PMAC=y
+
+##
+## file: drivers/gpu/drm/Kconfig
+##
+CONFIG_DRM=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_MGA=m
+# CONFIG_DRM_SIS is not set
+
+##
+## file: drivers/gpu/drm/i2c/Kconfig
+##
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_SIL164=m
+
+##
+## file: drivers/gpu/drm/nouveau/Kconfig
+##
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+
+##
+## file: drivers/hid/Kconfig
+##
+CONFIG_HID_APPLEIR=m
+
+##
+## file: drivers/hid/usbhid/Kconfig
+##
+CONFIG_USB_HID=m
+
+##
+## file: drivers/hwmon/Kconfig
+##
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83627HF=m
+
+##
+## file: drivers/i2c/Kconfig
+##
+CONFIG_I2C=y
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+
+##
+## file: drivers/i2c/busses/Kconfig
+##
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_PIIX4 is not set
+# CONFIG_I2C_NFORCE2 is not set
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_HYDRA=m
+#. This isn't auto-loaded (#713943)
+CONFIG_I2C_POWERMAC=y
+CONFIG_I2C_MPC=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_PCA_ISA=m
+CONFIG_SCx200_ACB=m
+
+##
+## file: drivers/input/gameport/Kconfig
+##
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+
+##
+## file: drivers/input/joystick/Kconfig
+##
+CONFIG_INPUT_JOYSTICK=y
+
+##
+## file: drivers/input/keyboard/Kconfig
+##
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=m
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+
+##
+## file: drivers/input/misc/Kconfig
+##
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_UINPUT=m
+
+##
+## file: drivers/input/mouse/Kconfig
+##
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+# CONFIG_MOUSE_SERIAL is not set
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+# CONFIG_MOUSE_VSXXXAA is not set
+
+##
+## file: drivers/input/serio/Kconfig
+##
+CONFIG_SERIO=m
+CONFIG_SERIO_I8042=m
+CONFIG_SERIO_SERPORT=m
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=m
+CONFIG_SERIO_RAW=m
+
+##
+## file: drivers/input/touchscreen/Kconfig
+##
+CONFIG_INPUT_TOUCHSCREEN=y
+
+##
+## file: drivers/isdn/Kconfig
+##
+CONFIG_ISDN=y
+CONFIG_ISDN_CAPI=m
+
+##
+## file: drivers/isdn/capi/Kconfig
+##
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+
+##
+## file: drivers/isdn/hardware/avm/Kconfig
+##
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+
+##
+## file: drivers/isdn/hardware/eicon/Kconfig
+##
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+
+##
+## file: drivers/macintosh/Kconfig
+##
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_ADB=y
+CONFIG_ADB_CUDA=y
+CONFIG_ADB_PMU=y
+CONFIG_ADB_PMU_LED=y
+# CONFIG_ADB_PMU_LED_DISK is not set
+CONFIG_PMAC_SMU=y
+# CONFIG_PMAC_APM_EMU is not set
+CONFIG_PMAC_MEDIABAY=y
+CONFIG_PMAC_BACKLIGHT=y
+CONFIG_ADB_MACIO=y
+CONFIG_INPUT_ADBHID=y
+CONFIG_MAC_EMUMOUSEBTN=y
+CONFIG_THERM_WINDTUNNEL=m
+CONFIG_THERM_ADT746X=m
+CONFIG_WINDFARM=m
+CONFIG_ANSLCD=m
+CONFIG_PMAC_RACKMETER=m
+
+##
+## file: drivers/media/radio/Kconfig
+##
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_MAXIRADIO=m
+
+##
+## file: drivers/misc/Kconfig
+##
+CONFIG_PHANTOM=m
+CONFIG_HP_ILO=m
+
+##
+## file: drivers/mmc/Kconfig
+##
+CONFIG_MMC=m
+
+##
+## file: drivers/mmc/core/Kconfig
+##
+CONFIG_MMC_BLOCK=m
+
+##
+## file: drivers/mmc/host/Kconfig
+##
+# CONFIG_MMC_DEBUG is not set
+
+##
+## file: drivers/mtd/Kconfig
+##
+# CONFIG_MTD is not set
+
+##
+## file: drivers/net/Kconfig
+##
+CONFIG_NET_FC=y
+
+##
+## file: drivers/net/arcnet/Kconfig
+##
+CONFIG_ARCNET=m
+CONFIG_ARCNET_1201=m
+CONFIG_ARCNET_1051=m
+CONFIG_ARCNET_RAW=m
+CONFIG_ARCNET_CAP=m
+# CONFIG_ARCNET_COM90xx is not set
+CONFIG_ARCNET_COM90xxIO=m
+# CONFIG_ARCNET_RIM_I is not set
+CONFIG_ARCNET_COM20020=m
+CONFIG_ARCNET_COM20020_PCI=m
+CONFIG_ARCNET_COM20020_CS=m
+
+##
+## file: drivers/net/ethernet/Kconfig
+##
+CONFIG_FEALNX=m
+
+##
+## file: drivers/net/ethernet/3com/Kconfig
+##
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+
+##
+## file: drivers/net/ethernet/8390/Kconfig
+##
+CONFIG_PCMCIA_AXNET=m
+CONFIG_NE2K_PCI=m
+CONFIG_PCMCIA_PCNET=m
+
+##
+## file: drivers/net/ethernet/adaptec/Kconfig
+##
+CONFIG_ADAPTEC_STARFIRE=m
+
+##
+## file: drivers/net/ethernet/amd/Kconfig
+##
+# CONFIG_AMD8111_ETH is not set
+CONFIG_PCMCIA_NMCLAN=m
+
+##
+## file: drivers/net/ethernet/apple/Kconfig
+##
+CONFIG_MACE=m
+# CONFIG_MACE_AAUI_PORT is not set
+CONFIG_BMAC=m
+
+##
+## file: drivers/net/ethernet/broadcom/Kconfig
+##
+CONFIG_B44=m
+
+##
+## file: drivers/net/ethernet/dec/tulip/Kconfig
+##
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_PCMCIA_XIRCOM=m
+
+##
+## file: drivers/net/ethernet/dlink/Kconfig
+##
+CONFIG_SUNDANCE=m
+CONFIG_SUNDANCE_MMIO=y
+
+##
+## file: drivers/net/ethernet/fujitsu/Kconfig
+##
+CONFIG_PCMCIA_FMVJ18X=m
+
+##
+## file: drivers/net/ethernet/hp/Kconfig
+##
+# CONFIG_HP100 is not set
+
+##
+## file: drivers/net/ethernet/intel/Kconfig
+##
+CONFIG_E100=m
+
+##
+## file: drivers/net/ethernet/marvell/Kconfig
+##
+CONFIG_MV643XX_ETH=m
+
+##
+## file: drivers/net/ethernet/natsemi/Kconfig
+##
+CONFIG_NATSEMI=m
+
+##
+## file: drivers/net/ethernet/nvidia/Kconfig
+##
+# CONFIG_FORCEDETH is not set
+
+##
+## file: drivers/net/ethernet/realtek/Kconfig
+##
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+
+##
+## file: drivers/net/ethernet/sis/Kconfig
+##
+CONFIG_SIS900=m
+
+##
+## file: drivers/net/ethernet/smsc/Kconfig
+##
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_EPIC100=m
+
+##
+## file: drivers/net/ethernet/sun/Kconfig
+##
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+
+##
+## file: drivers/net/ethernet/ti/Kconfig
+##
+CONFIG_TLAN=m
+
+##
+## file: drivers/net/ethernet/via/Kconfig
+##
+CONFIG_VIA_RHINE=m
+CONFIG_VIA_RHINE_MMIO=y
+
+##
+## file: drivers/net/ethernet/xircom/Kconfig
+##
+CONFIG_PCMCIA_XIRC2PS=m
+
+##
+## file: drivers/net/fddi/Kconfig
+##
+CONFIG_FDDI=y
+CONFIG_SKFP=m
+
+##
+## file: drivers/net/hippi/Kconfig
+##
+CONFIG_HIPPI=y
+# CONFIG_ROADRUNNER is not set
+
+##
+## file: drivers/net/wan/Kconfig
+##
+CONFIG_WAN=y
+CONFIG_LANMEDIA=m
+CONFIG_PCI200SYN=m
+CONFIG_WANXL=m
+CONFIG_FARSYNC=m
+CONFIG_DSCC4=m
+# CONFIG_DSCC4_PCISYNC is not set
+# CONFIG_DSCC4_PCI_RST is not set
+CONFIG_DLCI=m
+CONFIG_DLCI_MAX=8
+
+##
+## file: drivers/net/wireless/Kconfig
+##
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_PCMCIA_WL3501=m
+
+##
+## file: drivers/net/wireless/atmel/Kconfig
+##
+CONFIG_ATMEL=m
+# CONFIG_PCI_ATMEL is not set
+CONFIG_PCMCIA_ATMEL=m
+
+##
+## file: drivers/net/wireless/cisco/Kconfig
+##
+CONFIG_AIRO_CS=m
+
+##
+## file: drivers/net/wireless/intel/ipw2x00/Kconfig
+##
+# CONFIG_IPW2100 is not set
+
+##
+## file: drivers/net/wireless/intersil/orinoco/Kconfig
+##
+CONFIG_HERMES=m
+CONFIG_APPLE_AIRPORT=m
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+
+##
+## file: drivers/net/wireless/marvell/mwifiex/Kconfig
+##
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_PCIE=m
+
+##
+## file: drivers/net/wireless/zydas/Kconfig
+##
+CONFIG_USB_ZD1201=m
+
+##
+## file: drivers/pci/hotplug/Kconfig
+##
+# CONFIG_HOTPLUG_PCI is not set
+
+##
+## file: drivers/pcmcia/Kconfig
+##
+CONFIG_PCCARD=m
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+CONFIG_YENTA=m
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_TCIC=m
+# CONFIG_PCMCIA_DEBUG is not set
+
+##
+## file: drivers/power/supply/Kconfig
+##
+CONFIG_BATTERY_PMU=m
+
+##
+## file: drivers/rtc/Kconfig
+##
+CONFIG_RTC_DRV_GENERIC=y
+
+##
+## file: drivers/scsi/Kconfig
+##
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_BUSLOGIC=m
+CONFIG_SCSI_DMX3191D=m
+# CONFIG_SCSI_GDTH is not set
+CONFIG_SCSI_IPS=m
+# CONFIG_SCSI_INITIO is not set
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_IPR=m
+# CONFIG_SCSI_IPR_TRACE is not set
+# CONFIG_SCSI_IPR_DUMP is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_NSP32=m
+CONFIG_SCSI_MESH=m
+CONFIG_SCSI_MESH_SYNC_RATE=5
+CONFIG_SCSI_MESH_RESET_DELAY_MS=4000
+CONFIG_SCSI_MAC53C94=m
+
+##
+## file: drivers/scsi/megaraid/Kconfig.megaraid
+##
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+# CONFIG_MEGARAID_LEGACY is not set
+
+##
+## file: drivers/scsi/pcmcia/Kconfig
+##
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+
+##
+## file: drivers/tty/Kconfig
+##
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+##
+## file: drivers/tty/hvc/Kconfig
+##
+CONFIG_HVC_RTAS=y
+
+##
+## file: drivers/tty/serial/Kconfig
+##
+CONFIG_SERIAL_PMACZILOG=y
+CONFIG_SERIAL_PMACZILOG_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+
+##
+## file: drivers/tty/serial/8250/Kconfig
+##
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+##
+## file: drivers/usb/Kconfig
+##
+CONFIG_USB=m
+
+##
+## file: drivers/usb/atm/Kconfig
+##
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+
+##
+## file: drivers/usb/host/Kconfig
+##
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
+CONFIG_USB_OHCI_HCD_PPC_OF_LE=y
+CONFIG_USB_OHCI_HCD_PCI=y
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_SL811_HCD=m
+CONFIG_USB_SL811_CS=m
+
+##
+## file: drivers/video/console/Kconfig
+##
+CONFIG_VGA_CONSOLE=y
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+CONFIG_FB_CIRRUS=m
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+CONFIG_FB_OF=y
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_VGA16 is not set
+CONFIG_FB_S1D13XXX=m
+CONFIG_FB_MATROX=m
+CONFIG_FB_MATROX_MILLENIUM=y
+CONFIG_FB_MATROX_MYSTIQUE=y
+CONFIG_FB_MATROX_G=y
+CONFIG_FB_MATROX_I2C=m
+CONFIG_FB_MATROX_MAVEN=m
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_I2C=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_ATY_GENERIC_LCD=y
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SAVAGE_I2C=y
+CONFIG_FB_SAVAGE_ACCEL=y
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_KYRO=m
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_TRIDENT=m
+CONFIG_FB_IBM_GXT4500=m
+# CONFIG_FB_VIRTUAL is not set
+
+##
+## file: drivers/watchdog/Kconfig
+##
+CONFIG_WATCHDOG_RTAS=m
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_WDTPCI=m
+CONFIG_USBPCWATCHDOG=m
+
+##
+## file: init/Kconfig
+##
+CONFIG_SGETMASK_SYSCALL=y
+
+##
+## file: lib/Kconfig.debug
+##
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+
+##
+## file: lib/xz/Kconfig
+##
+CONFIG_XZ_DEC_POWERPC=y
+
+##
+## file: net/ax25/Kconfig
+##
+CONFIG_HAMRADIO=y
+CONFIG_AX25=m
+CONFIG_AX25_DAMA_SLAVE=y
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+
+##
+## file: net/decnet/Kconfig
+##
+CONFIG_DECNET=m
+CONFIG_DECNET_ROUTER=y
+
+##
+## file: net/decnet/netfilter/Kconfig
+##
+CONFIG_DECNET_NF_GRABULATOR=m
+
+##
+## file: net/lapb/Kconfig
+##
+CONFIG_LAPB=m
+
+##
+## file: sound/aoa/Kconfig
+##
+CONFIG_SND_AOA=m
+
+##
+## file: sound/aoa/codecs/Kconfig
+##
+CONFIG_SND_AOA_ONYX=m
+CONFIG_SND_AOA_TAS=m
+CONFIG_SND_AOA_TOONIE=m
+
+##
+## file: sound/aoa/fabrics/Kconfig
+##
+CONFIG_SND_AOA_FABRIC_LAYOUT=m
+
+##
+## file: sound/aoa/soundbus/Kconfig
+##
+CONFIG_SND_AOA_SOUNDBUS=m
+CONFIG_SND_AOA_SOUNDBUS_I2S=m
+
+##
+## file: sound/drivers/Kconfig
+##
+# CONFIG_SND_DUMMY is not set
+CONFIG_SND_VIRMIDI=m
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+##
+## file: sound/pci/Kconfig
+##
+CONFIG_SND_ALS4000=m
+# CONFIG_SND_ALI5451 is not set
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_HDSP=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+CONFIG_SND_KORG1212=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MIXART=m
+CONFIG_SND_NM256=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VX222=m
+CONFIG_SND_YMFPCI=m
+
+##
+## file: sound/pci/hda/Kconfig
+##
+CONFIG_SND_HDA_INTEL=m
+
+##
+## file: sound/ppc/Kconfig
+##
+CONFIG_SND_POWERMAC=m
+CONFIG_SND_POWERMAC_AUTO_DRC=y
+
diff --git a/debian/config/kernelarch-powerpc/config-arch-64 b/debian/config/kernelarch-powerpc/config-arch-64
new file mode 100644
index 000000000..c60f929ee
--- /dev/null
+++ b/debian/config/kernelarch-powerpc/config-arch-64
@@ -0,0 +1,201 @@
+##
+## file: arch/powerpc/Kconfig
+##
+#. This feature is broken; see #866122
+# CONFIG_PPC_TRANSACTIONAL_MEM is not set
+CONFIG_CRASH_DUMP=y
+CONFIG_IRQ_ALL_CPUS=y
+CONFIG_NUMA=y
+## choice: Page size
+CONFIG_PPC_64K_PAGES=y
+## end choice
+CONFIG_SCHED_SMT=y
+CONFIG_KERNEL_START=0xc000000000000000
+
+##
+## file: arch/powerpc/kvm/Kconfig
+##
+CONFIG_KVM_BOOK3S_64=m
+CONFIG_KVM_BOOK3S_64_HV=m
+CONFIG_KVM_BOOK3S_64_PR=m
+CONFIG_KVM_XICS=y
+
+##
+## file: arch/powerpc/platforms/Kconfig
+##
+CONFIG_RTAS_PROC=y
+CONFIG_RTAS_FLASH=m
+
+##
+## file: arch/powerpc/platforms/Kconfig.cputype
+##
+CONFIG_PPC64=y
+CONFIG_ALTIVEC=y
+CONFIG_VSX=y
+CONFIG_SMP=y
+CONFIG_NR_CPUS=2048
+
+##
+## file: arch/powerpc/platforms/powernv/Kconfig
+##
+CONFIG_OPAL_PRD=m
+
+##
+## file: arch/powerpc/platforms/pseries/Kconfig
+##
+CONFIG_PPC_PSERIES=y
+CONFIG_PPC_SPLPAR=y
+CONFIG_SCANLOG=m
+# CONFIG_LPARCFG is not set
+
+##
+## file: block/partitions/Kconfig
+##
+CONFIG_AIX_PARTITION=y
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_PATA_AMD=m
+
+##
+## file: drivers/block/Kconfig
+##
+# CONFIG_MAC_FLOPPY is not set
+CONFIG_BLK_DEV_RSXX=m
+
+##
+## file: drivers/crypto/Kconfig
+##
+CONFIG_CRYPTO_DEV_VMX=y
+
+##
+## file: drivers/crypto/vmx/Kconfig
+##
+CONFIG_CRYPTO_DEV_VMX_ENCRYPT=m
+
+##
+## file: drivers/gpu/drm/Kconfig
+##
+CONFIG_DRM_AMDGPU=m
+
+##
+## file: drivers/gpu/drm/ast/Kconfig
+##
+CONFIG_DRM_AST=m
+
+##
+## file: drivers/iommu/Kconfig
+##
+CONFIG_SPAPR_TCE_IOMMU=y
+
+##
+## file: drivers/misc/genwqe/Kconfig
+##
+CONFIG_GENWQE=m
+
+##
+## file: drivers/mtd/Kconfig
+##
+CONFIG_MTD=m
+
+##
+## file: drivers/mtd/devices/Kconfig
+##
+CONFIG_MTD_POWERNV_FLASH=m
+
+##
+## file: drivers/net/ethernet/ibm/Kconfig
+##
+CONFIG_IBMVETH=m
+
+##
+## file: drivers/net/ethernet/ibm/emac/Kconfig
+##
+CONFIG_IBM_EMAC=m
+CONFIG_IBM_EMAC_RXB=128
+CONFIG_IBM_EMAC_TXB=64
+CONFIG_IBM_EMAC_POLL_WEIGHT=32
+CONFIG_IBM_EMAC_RX_COPY_THRESHOLD=256
+CONFIG_IBM_EMAC_RX_SKB_HEADROOM=0
+# CONFIG_IBM_EMAC_DEBUG is not set
+
+##
+## file: drivers/net/ethernet/marvell/Kconfig
+##
+# CONFIG_MV643XX_ETH is not set
+
+##
+## file: drivers/pci/hotplug/Kconfig
+##
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_RPA=m
+CONFIG_HOTPLUG_PCI_RPA_DLPAR=m
+
+##
+## file: drivers/scsi/Kconfig
+##
+CONFIG_SCSI_IBMVSCSI=m
+CONFIG_SCSI_IBMVSCSIS=m
+CONFIG_SCSI_IBMVFC=m
+CONFIG_SCSI_QLOGIC_1280=m
+
+##
+## file: drivers/scsi/megaraid/Kconfig.megaraid
+##
+CONFIG_MEGARAID_LEGACY=m
+
+##
+## file: drivers/tty/hvc/Kconfig
+##
+CONFIG_HVC_CONSOLE=y
+CONFIG_HVCS=m
+
+##
+## file: drivers/tty/serial/Kconfig
+##
+# CONFIG_SERIAL_ICOM is not set
+
+##
+## file: drivers/vfio/Kconfig
+##
+CONFIG_VFIO=m
+
+##
+## file: drivers/vfio/pci/Kconfig
+##
+CONFIG_VFIO_PCI=m
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+# CONFIG_FB_IMSTT is not set
+
+##
+## file: drivers/watchdog/Kconfig
+##
+CONFIG_WATCHDOG_RTAS=m
+
+##
+## file: init/Kconfig
+##
+## choice: Cputime accounting
+# CONFIG_TICK_CPU_ACCOUNTING is not set
+CONFIG_VIRT_CPU_ACCOUNTING_NATIVE=y
+## end choice
+
+##
+## file: lib/Kconfig
+##
+CONFIG_CPUMASK_OFFSTACK=y
+
+##
+## file: mm/Kconfig
+##
+## choice: Memory model
+# CONFIG_FLATMEM_MANUAL is not set
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+CONFIG_SPARSEMEM_MANUAL=y
+## end choice
+CONFIG_SPARSEMEM_VMEMMAP=y
+
diff --git a/debian/config/kernelarch-powerpc/config-arch-64-be b/debian/config/kernelarch-powerpc/config-arch-64-be
new file mode 100644
index 000000000..20099b2fc
--- /dev/null
+++ b/debian/config/kernelarch-powerpc/config-arch-64-be
@@ -0,0 +1,111 @@
+##
+## file: arch/powerpc/Kconfig
+##
+CONFIG_CMDLINE="console=hvsi0 console=hvc0 console=ttyS0,9600 console=tty0"
+
+##
+## file: arch/powerpc/platforms/cell/Kconfig
+##
+CONFIG_PPC_IBM_CELL_BLADE=y
+CONFIG_SPU_FS=m
+CONFIG_CBE_RAS=y
+CONFIG_CBE_THERM=m
+
+##
+## file: arch/powerpc/platforms/maple/Kconfig
+##
+CONFIG_PPC_MAPLE=y
+
+##
+## file: arch/powerpc/platforms/pasemi/Kconfig
+##
+CONFIG_PPC_PASEMI=y
+CONFIG_PPC_PASEMI_MDIO=m
+
+##
+## file: arch/powerpc/platforms/ps3/Kconfig
+##
+CONFIG_PPC_PS3=y
+CONFIG_PS3_ADVANCED=y
+CONFIG_PS3_HTAB_SIZE=20
+# CONFIG_PS3_DYNAMIC_DMA is not set
+CONFIG_PS3_PS3AV=y
+CONFIG_PS3_SYS_MANAGER=y
+CONFIG_PS3_DISK=m
+CONFIG_PS3_ROM=m
+CONFIG_PS3_FLASH=m
+CONFIG_PS3_VRAM=m
+CONFIG_PS3_LPM=m
+
+##
+## file: arch/powerpc/platforms/pseries/Kconfig
+##
+CONFIG_IBMEBUS=y
+
+##
+## file: drivers/char/hw_random/Kconfig
+##
+CONFIG_HW_RANDOM_PASEMI=m
+
+##
+## file: drivers/cpufreq/Kconfig.powerpc
+##
+CONFIG_CPU_FREQ_CBE=m
+CONFIG_CPU_FREQ_PMAC64=y
+#. It's a bool
+CONFIG_PPC_PASEMI_CPUFREQ=y
+
+##
+## file: drivers/i2c/busses/Kconfig
+##
+CONFIG_I2C_PASEMI=m
+
+##
+## file: drivers/macintosh/Kconfig
+##
+CONFIG_WINDFARM_PM81=m
+CONFIG_WINDFARM_PM72=m
+CONFIG_WINDFARM_RM31=m
+CONFIG_WINDFARM_PM91=m
+CONFIG_WINDFARM_PM112=m
+CONFIG_WINDFARM_PM121=m
+
+##
+## file: drivers/net/ethernet/ibm/Kconfig
+##
+CONFIG_EHEA=m
+
+##
+## file: drivers/net/ethernet/pasemi/Kconfig
+##
+CONFIG_PASEMI_MAC=m
+
+##
+## file: drivers/net/ethernet/toshiba/Kconfig
+##
+CONFIG_GELIC_NET=m
+CONFIG_GELIC_WIRELESS=y
+CONFIG_SPIDER_NET=m
+
+##
+## file: drivers/rtc/Kconfig
+##
+CONFIG_RTC_DRV_PS3=m
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+CONFIG_FB_PS3=y
+CONFIG_FB_PS3_DEFAULT_SIZE_M=9
+
+##
+## file: init/Kconfig
+##
+CONFIG_SYSFS_SYSCALL=y
+
+##
+## file: sound/ppc/Kconfig
+##
+CONFIG_SND_PS3=m
+CONFIG_SND_PS3_DEFAULT_START_DELAY=2000
+
diff --git a/debian/config/kernelarch-powerpc/config-arch-64-le b/debian/config/kernelarch-powerpc/config-arch-64-le
new file mode 100644
index 000000000..e26064cea
--- /dev/null
+++ b/debian/config/kernelarch-powerpc/config-arch-64-le
@@ -0,0 +1,41 @@
+##
+## file: arch/powerpc/Kconfig
+##
+# CONFIG_CMDLINE_BOOL is not set
+
+##
+## file: arch/powerpc/platforms/Kconfig.cputype
+##
+## choice: Endianness selection
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_CPU_LITTLE_ENDIAN=y
+## end choice
+
+##
+## file: arch/powerpc/platforms/powermac/Kconfig
+##
+#. This needs to be explicitly disabled currently (3.15)
+# CONFIG_PPC_PMAC is not set
+
+##
+## file: drivers/cpufreq/Kconfig
+##
+## choice: Default CPUFreq governor
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+## end choice
+
+##
+## file: drivers/pcmcia/Kconfig
+##
+# CONFIG_PCMCIA is not set
+
+##
+## file: kernel/power/Kconfig
+##
+#. See #789070
+# CONFIG_HIBERNATION is not set
+
diff --git a/debian/config/kernelarch-sparc/config b/debian/config/kernelarch-sparc/config
new file mode 100644
index 000000000..2d24a76d3
--- /dev/null
+++ b/debian/config/kernelarch-sparc/config
@@ -0,0 +1,607 @@
+##
+## file: arch/sparc/Kconfig
+##
+CONFIG_64BIT=y
+CONFIG_SECCOMP=y
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_SUN_LDOMS=y
+CONFIG_PCI=y
+CONFIG_SUN_OPENPROMFS=m
+
+##
+## file: block/partitions/Kconfig
+##
+CONFIG_SUN_PARTITION=y
+
+##
+## file: crypto/Kconfig
+##
+CONFIG_CRYPTO_CRC32C_SPARC64=m
+CONFIG_CRYPTO_MD5_SPARC64=m
+CONFIG_CRYPTO_SHA1_SPARC64=m
+CONFIG_CRYPTO_SHA256_SPARC64=m
+CONFIG_CRYPTO_SHA512_SPARC64=m
+CONFIG_CRYPTO_AES_SPARC64=m
+CONFIG_CRYPTO_CAMELLIA_SPARC64=m
+CONFIG_CRYPTO_DES_SPARC64=m
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_PATA_ALI=m
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_LEGACY=m
+
+##
+## file: drivers/block/Kconfig
+##
+CONFIG_BLK_DEV_FD=y
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+CONFIG_BLK_DEV_SX8=m
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_SUNVDC=m
+
+##
+## file: drivers/char/Kconfig
+##
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+# CONFIG_PPDEV is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+##
+## file: drivers/char/ipmi/Kconfig
+##
+# CONFIG_IPMI_HANDLER is not set
+
+##
+## file: drivers/crypto/Kconfig
+##
+CONFIG_CRYPTO_DEV_NIAGARA2=m
+
+##
+## file: drivers/gpu/drm/Kconfig
+##
+CONFIG_DRM=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_MGA=m
+
+##
+## file: drivers/gpu/drm/i2c/Kconfig
+##
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_SIL164=m
+
+##
+## file: drivers/gpu/drm/nouveau/Kconfig
+##
+CONFIG_DRM_NOUVEAU=m
+# CONFIG_DRM_NOUVEAU_BACKLIGHT is not set
+
+##
+## file: drivers/hid/usbhid/Kconfig
+##
+CONFIG_USB_HID=y
+
+##
+## file: drivers/hwmon/Kconfig
+##
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ASB100 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_VIA686A is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83627HF is not set
+
+##
+## file: drivers/i2c/Kconfig
+##
+CONFIG_I2C=m
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+
+##
+## file: drivers/i2c/busses/Kconfig
+##
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_PIIX4 is not set
+# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_VIA is not set
+# CONFIG_I2C_VIAPRO is not set
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+# CONFIG_I2C_PCA_ISA is not set
+
+##
+## file: drivers/input/Kconfig
+##
+# CONFIG_INPUT_JOYDEV is not set
+
+##
+## file: drivers/input/gameport/Kconfig
+##
+# CONFIG_GAMEPORT is not set
+
+##
+## file: drivers/input/joystick/Kconfig
+##
+# CONFIG_INPUT_JOYSTICK is not set
+
+##
+## file: drivers/input/keyboard/Kconfig
+##
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_LKKBD=m
+# CONFIG_KEYBOARD_NEWTON is not set
+CONFIG_KEYBOARD_SUNKBD=y
+# CONFIG_KEYBOARD_XTKBD is not set
+
+##
+## file: drivers/input/misc/Kconfig
+##
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_SPARCSPKR=m
+# CONFIG_INPUT_UINPUT is not set
+
+##
+## file: drivers/input/mouse/Kconfig
+##
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=y
+CONFIG_MOUSE_SERIAL=y
+# CONFIG_MOUSE_VSXXXAA is not set
+
+##
+## file: drivers/input/serio/Kconfig
+##
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+# CONFIG_SERIO_SERPORT is not set
+# CONFIG_SERIO_PARKBD is not set
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+
+##
+## file: drivers/input/touchscreen/Kconfig
+##
+# CONFIG_INPUT_TOUCHSCREEN is not set
+
+##
+## file: drivers/media/pci/cx88/Kconfig
+##
+# CONFIG_VIDEO_CX88 is not set
+
+##
+## file: drivers/media/pci/saa7146/Kconfig
+##
+# CONFIG_VIDEO_HEXIUM_GEMINI is not set
+# CONFIG_VIDEO_HEXIUM_ORION is not set
+# CONFIG_VIDEO_MXB is not set
+
+##
+## file: drivers/media/radio/Kconfig
+##
+# CONFIG_USB_DSBR is not set
+# CONFIG_RADIO_MAXIRADIO is not set
+
+##
+## file: drivers/mmc/Kconfig
+##
+# CONFIG_MMC is not set
+
+##
+## file: drivers/mtd/Kconfig
+##
+# CONFIG_MTD is not set
+
+##
+## file: drivers/net/Kconfig
+##
+CONFIG_NET_FC=y
+
+##
+## file: drivers/net/arcnet/Kconfig
+##
+# CONFIG_ARCNET is not set
+
+##
+## file: drivers/net/ethernet/Kconfig
+##
+CONFIG_FEALNX=m
+
+##
+## file: drivers/net/ethernet/3com/Kconfig
+##
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+
+##
+## file: drivers/net/ethernet/8390/Kconfig
+##
+CONFIG_NE2K_PCI=m
+
+##
+## file: drivers/net/ethernet/adaptec/Kconfig
+##
+CONFIG_ADAPTEC_STARFIRE=m
+
+##
+## file: drivers/net/ethernet/amd/Kconfig
+##
+# CONFIG_AMD8111_ETH is not set
+CONFIG_SUNLANCE=m
+
+##
+## file: drivers/net/ethernet/broadcom/Kconfig
+##
+CONFIG_B44=m
+
+##
+## file: drivers/net/ethernet/dec/tulip/Kconfig
+##
+CONFIG_NET_TULIP=y
+# CONFIG_DE2104X is not set
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+
+##
+## file: drivers/net/ethernet/dlink/Kconfig
+##
+CONFIG_SUNDANCE=m
+CONFIG_SUNDANCE_MMIO=y
+
+##
+## file: drivers/net/ethernet/intel/Kconfig
+##
+CONFIG_E100=m
+
+##
+## file: drivers/net/ethernet/natsemi/Kconfig
+##
+CONFIG_NATSEMI=m
+
+##
+## file: drivers/net/ethernet/nvidia/Kconfig
+##
+# CONFIG_FORCEDETH is not set
+
+##
+## file: drivers/net/ethernet/realtek/Kconfig
+##
+# CONFIG_8139CP is not set
+CONFIG_8139TOO=m
+
+##
+## file: drivers/net/ethernet/sis/Kconfig
+##
+CONFIG_SIS900=m
+
+##
+## file: drivers/net/ethernet/smsc/Kconfig
+##
+CONFIG_EPIC100=m
+
+##
+## file: drivers/net/ethernet/sun/Kconfig
+##
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNBMAC=m
+CONFIG_SUNQE=m
+CONFIG_SUNGEM=m
+CONFIG_SUNVNET=m
+
+##
+## file: drivers/net/ethernet/via/Kconfig
+##
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+
+##
+## file: drivers/net/fddi/Kconfig
+##
+CONFIG_FDDI=y
+CONFIG_SKFP=m
+
+##
+## file: drivers/net/hippi/Kconfig
+##
+# CONFIG_HIPPI is not set
+
+##
+## file: drivers/net/plip/Kconfig
+##
+CONFIG_PLIP=m
+
+##
+## file: drivers/net/wan/Kconfig
+##
+# CONFIG_WAN is not set
+
+##
+## file: drivers/net/wireless/marvell/mwifiex/Kconfig
+##
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_PCIE=m
+
+##
+## file: drivers/parport/Kconfig
+##
+CONFIG_PARPORT_SUNBPP=m
+
+##
+## file: drivers/sbus/char/Kconfig
+##
+CONFIG_SUN_OPENPROMIO=y
+CONFIG_OBP_FLASH=m
+CONFIG_BBC_I2C=m
+CONFIG_ENVCTRL=m
+CONFIG_DISPLAY7SEG=m
+
+##
+## file: drivers/scsi/Kconfig
+##
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_DMX3191D=m
+# CONFIG_SCSI_IPS is not set
+CONFIG_SCSI_INITIO=m
+# CONFIG_SCSI_INIA100 is not set
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_IPR=m
+# CONFIG_SCSI_IPR_TRACE is not set
+# CONFIG_SCSI_IPR_DUMP is not set
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLOGICPTI=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_SUNESP=m
+
+##
+## file: drivers/scsi/megaraid/Kconfig.megaraid
+##
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+
+##
+## file: drivers/staging/media/zoran/Kconfig
+##
+# CONFIG_VIDEO_ZORAN is not set
+
+##
+## file: drivers/tty/Kconfig
+##
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+##
+## file: drivers/tty/serial/Kconfig
+##
+CONFIG_SERIAL_SUNZILOG=y
+CONFIG_SERIAL_SUNZILOG_CONSOLE=y
+CONFIG_SERIAL_SUNSU=y
+CONFIG_SERIAL_SUNSU_CONSOLE=y
+CONFIG_SERIAL_SUNSAB=y
+CONFIG_SERIAL_SUNSAB_CONSOLE=y
+CONFIG_SERIAL_SUNHV=y
+CONFIG_SERIAL_JSM=m
+
+##
+## file: drivers/usb/Kconfig
+##
+CONFIG_USB=m
+# CONFIG_USB_USS720 is not set
+
+##
+## file: drivers/usb/host/Kconfig
+##
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_OHCI_HCD=m
+CONFIG_USB_UHCI_HCD=m
+# CONFIG_USB_SL811_HCD is not set
+
+##
+## file: drivers/video/backlight/Kconfig
+##
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+CONFIG_FB_MODE_HELPERS=y
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_CIRRUS is not set
+CONFIG_FB_PM2=y
+# CONFIG_FB_PM2_FIFO_DISCONNECT is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+CONFIG_FB_SBUS=y
+# CONFIG_FB_BW2 is not set
+# CONFIG_FB_CG3 is not set
+CONFIG_FB_CG6=y
+CONFIG_FB_FFB=y
+# CONFIG_FB_TCX is not set
+# CONFIG_FB_CG14 is not set
+# CONFIG_FB_P9100 is not set
+# CONFIG_FB_LEO is not set
+CONFIG_FB_XVR500=y
+CONFIG_FB_XVR2500=y
+CONFIG_FB_XVR1000=y
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_MATROX is not set
+CONFIG_FB_RADEON=y
+# CONFIG_FB_RADEON_I2C is not set
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_ATY128=y
+CONFIG_FB_ATY=y
+CONFIG_FB_ATY_CT=y
+# CONFIG_FB_ATY_GENERIC_LCD is not set
+CONFIG_FB_ATY_GX=y
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_VIRTUAL is not set
+
+##
+## file: drivers/w1/Kconfig
+##
+# CONFIG_W1 is not set
+
+##
+## file: init/Kconfig
+##
+CONFIG_SGETMASK_SYSCALL=y
+CONFIG_SYSFS_SYSCALL=y
+
+##
+## file: lib/xz/Kconfig
+##
+CONFIG_XZ_DEC_SPARC=y
+
+##
+## file: mm/Kconfig
+##
+## choice: Memory model
+# CONFIG_FLATMEM_MANUAL is not set
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+CONFIG_SPARSEMEM_MANUAL=y
+## end choice
+
+##
+## file: net/ax25/Kconfig
+##
+# CONFIG_HAMRADIO is not set
+
+##
+## file: net/decnet/Kconfig
+##
+CONFIG_DECNET=m
+CONFIG_DECNET_ROUTER=y
+
+##
+## file: net/lapb/Kconfig
+##
+# CONFIG_LAPB is not set
+
+##
+## file: sound/drivers/Kconfig
+##
+# CONFIG_SND_DUMMY is not set
+CONFIG_SND_VIRMIDI=m
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+##
+## file: sound/pci/Kconfig
+##
+CONFIG_SND_ALI5451=m
+# CONFIG_SND_ATIIXP is not set
+# CONFIG_SND_ATIIXP_MODEM is not set
+# CONFIG_SND_AU8810 is not set
+# CONFIG_SND_AU8820 is not set
+# CONFIG_SND_AU8830 is not set
+# CONFIG_SND_AZT3328 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CA0106 is not set
+CONFIG_SND_CMIPCI=m
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_CS46XX is not set
+CONFIG_SND_EMU10K1=m
+# CONFIG_SND_EMU10K1X is not set
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+# CONFIG_SND_ES1938 is not set
+# CONFIG_SND_ES1968 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_ICE1712 is not set
+# CONFIG_SND_ICE1724 is not set
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+# CONFIG_SND_KORG1212 is not set
+CONFIG_SND_MAESTRO3=m
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_SONICVIBES is not set
+# CONFIG_SND_TRIDENT is not set
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
+# CONFIG_SND_VX222 is not set
+# CONFIG_SND_YMFPCI is not set
+
+##
+## file: sound/pci/hda/Kconfig
+##
+# CONFIG_SND_HDA_INTEL is not set
+
+##
+## file: sound/sparc/Kconfig
+##
+CONFIG_SND_SUN_AMD7930=m
+CONFIG_SND_SUN_CS4231=m
+CONFIG_SND_SUN_DBRI=m
+
diff --git a/debian/config/kernelarch-sparc/config-smp b/debian/config/kernelarch-sparc/config-smp
new file mode 100644
index 000000000..f6412c26e
--- /dev/null
+++ b/debian/config/kernelarch-sparc/config-smp
@@ -0,0 +1,7 @@
+##
+## file: arch/sparc/Kconfig
+##
+CONFIG_SMP=y
+CONFIG_NR_CPUS=256
+CONFIG_SCHED_SMT=y
+
diff --git a/debian/config/kernelarch-sparc/config-up b/debian/config/kernelarch-sparc/config-up
new file mode 100644
index 000000000..758621713
--- /dev/null
+++ b/debian/config/kernelarch-sparc/config-up
@@ -0,0 +1,5 @@
+##
+## file: arch/sparc/Kconfig
+##
+# CONFIG_SMP is not set
+
diff --git a/debian/config/kernelarch-x86/config b/debian/config/kernelarch-x86/config
new file mode 100644
index 000000000..86fe17162
--- /dev/null
+++ b/debian/config/kernelarch-x86/config
@@ -0,0 +1,2136 @@
+##
+## file: arch/Kconfig
+##
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
+CONFIG_REFCOUNT_FULL=y
+
+##
+## file: arch/x86/Kconfig
+##
+CONFIG_ZONE_DMA=y
+CONFIG_X86_MPPARSE=y
+CONFIG_RETPOLINE=y
+# CONFIG_INTEL_RDT is not set
+# CONFIG_X86_EXTENDED_PLATFORM is not set
+CONFIG_X86_INTEL_LPSS=y
+CONFIG_X86_AMD_PLATFORM_DEVICE=y
+CONFIG_IOSF_MBI=m
+# CONFIG_IOSF_MBI_DEBUG is not set
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_HYPERVISOR_GUEST=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_PARAVIRT_SPINLOCKS=y
+# CONFIG_QUEUED_LOCK_STAT is not set
+CONFIG_KVM_GUEST=y
+# CONFIG_KVM_DEBUG_FS is not set
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
+# CONFIG_JAILHOUSE_GUEST is not set
+CONFIG_HPET_TIMER=y
+CONFIG_DMI=y
+CONFIG_GART_IOMMU=y
+CONFIG_SCHED_MC=y
+CONFIG_SCHED_MC_PRIO=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_MCE=y
+# CONFIG_X86_MCELOG_LEGACY is not set
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_AMD=y
+# CONFIG_X86_ANCIENT_MCE is not set
+CONFIG_X86_MCE_INJECT=m
+CONFIG_X86_16BIT=y
+CONFIG_I8K=m
+CONFIG_MICROCODE=y
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_X86_MSR=m
+CONFIG_X86_CPUID=m
+CONFIG_NODES_SHIFT=6
+# CONFIG_ARCH_MEMORY_PROBE is not set
+CONFIG_X86_PMEM_LEGACY=m
+# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
+CONFIG_X86_RESERVE_LOW=64
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_X86_PAT=y
+CONFIG_ARCH_RANDOM=y
+CONFIG_X86_SMAP=y
+CONFIG_X86_INTEL_UMIP=y
+CONFIG_X86_INTEL_MPX=y
+CONFIG_EFI=y
+CONFIG_EFI_STUB=y
+CONFIG_SECCOMP=y
+CONFIG_KEXEC=y
+CONFIG_CRASH_DUMP=y
+# CONFIG_KEXEC_JUMP is not set
+CONFIG_RELOCATABLE=y
+CONFIG_RANDOMIZE_BASE=y
+# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
+# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_MODIFY_LDT_SYSCALL=y
+CONFIG_PCI=y
+# CONFIG_PCI_CNB20LE_QUIRK is not set
+# CONFIG_ISA_BUS is not set
+# CONFIG_RAPIDIO is not set
+#. Doesn't support handover; see #822575
+# CONFIG_X86_SYSFB is not set
+CONFIG_IA32_EMULATION=y
+
+##
+## file: arch/x86/Kconfig.cpu
+##
+# CONFIG_PROCESSOR_SELECT is not set
+
+##
+## file: arch/x86/Kconfig.debug
+##
+# CONFIG_X86_VERBOSE_BOOTUP is not set
+CONFIG_EARLY_PRINTK=y
+# CONFIG_EARLY_PRINTK_DBGP is not set
+CONFIG_EARLY_PRINTK_EFI=y
+# CONFIG_X86_PTDUMP is not set
+# CONFIG_EFI_PGT_DUMP is not set
+CONFIG_DEBUG_WX=y
+CONFIG_DOUBLEFAULT=y
+# CONFIG_DEBUG_TLBFLUSH is not set
+# CONFIG_IOMMU_DEBUG is not set
+# CONFIG_X86_DECODER_SELFTEST is not set
+## choice: IO delay type
+CONFIG_IO_DELAY_0X80=y
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_DELAY_NONE is not set
+## end choice
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+# CONFIG_CPA_DEBUG is not set
+CONFIG_OPTIMIZE_INLINING=y
+# CONFIG_DEBUG_ENTRY is not set
+# CONFIG_DEBUG_NMI_SELFTEST is not set
+# CONFIG_PUNIT_ATOM_DEBUG is not set
+
+##
+## file: arch/x86/events/Kconfig
+##
+CONFIG_PERF_EVENTS_INTEL_UNCORE=m
+CONFIG_PERF_EVENTS_INTEL_RAPL=m
+CONFIG_PERF_EVENTS_INTEL_CSTATE=m
+CONFIG_PERF_EVENTS_AMD_POWER=m
+
+##
+## file: arch/x86/kvm/Kconfig
+##
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=m
+CONFIG_KVM_INTEL=m
+CONFIG_KVM_AMD=m
+CONFIG_KVM_AMD_SEV=y
+# CONFIG_KVM_MMU_AUDIT is not set
+
+##
+## file: arch/x86/xen/Kconfig
+##
+CONFIG_XEN=y
+CONFIG_XEN_PV=y
+CONFIG_XEN_DOM0=y
+CONFIG_XEN_PVHVM=y
+# CONFIG_XEN_DEBUG_FS is not set
+CONFIG_XEN_PVH=y
+
+##
+## file: block/partitions/Kconfig
+##
+CONFIG_ACORN_PARTITION=y
+# CONFIG_ACORN_PARTITION_CUMANA is not set
+# CONFIG_ACORN_PARTITION_EESOX is not set
+CONFIG_ACORN_PARTITION_ICS=y
+# CONFIG_ACORN_PARTITION_ADFS is not set
+# CONFIG_ACORN_PARTITION_POWERTEC is not set
+CONFIG_ACORN_PARTITION_RISCIX=y
+CONFIG_OSF_PARTITION=y
+CONFIG_AMIGA_PARTITION=y
+CONFIG_ATARI_PARTITION=y
+CONFIG_MAC_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+CONFIG_SGI_PARTITION=y
+CONFIG_ULTRIX_PARTITION=y
+CONFIG_SUN_PARTITION=y
+
+##
+## file: crypto/Kconfig
+##
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_CRC32_PCLMUL=m
+CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
+
+##
+## file: drivers/acpi/Kconfig
+##
+CONFIG_ACPI=y
+CONFIG_ACPI_SPCR_TABLE=y
+# CONFIG_ACPI_PROCFS_POWER is not set
+CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
+# CONFIG_ACPI_EC_DEBUGFS is not set
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_IPMI=m
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_THERMAL=m
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_PCI_SLOT=y
+CONFIG_ACPI_CONTAINER=y
+CONFIG_ACPI_HOTPLUG_MEMORY=y
+CONFIG_ACPI_SBS=m
+CONFIG_ACPI_HED=m
+# CONFIG_ACPI_CUSTOM_METHOD is not set
+CONFIG_ACPI_EXTLOG=y
+CONFIG_X86_PM_TIMER=y
+
+##
+## file: drivers/acpi/apei/Kconfig
+##
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_GHES=y
+CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_APEI_MEMORY_FAILURE=y
+# CONFIG_ACPI_APEI_EINJ is not set
+# CONFIG_ACPI_APEI_ERST_DEBUG is not set
+
+##
+## file: drivers/acpi/dptf/Kconfig
+##
+CONFIG_DPTF_POWER=m
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_RZ1000=m
+
+##
+## file: drivers/atm/Kconfig
+##
+CONFIG_ATM_DRIVERS=y
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+CONFIG_ATM_HE_USE_SUNI=y
+
+##
+## file: drivers/auxdisplay/Kconfig
+##
+CONFIG_KS0108=m
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS0108_DELAY=2
+
+##
+## file: drivers/block/Kconfig
+##
+CONFIG_BLK_DEV_FD=m
+CONFIG_BLK_DEV_DAC960=m
+CONFIG_BLK_DEV_UMEM=m
+CONFIG_BLK_DEV_SX8=m
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+##
+## file: drivers/bluetooth/Kconfig
+##
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIVHCI=m
+
+##
+## file: drivers/char/Kconfig
+##
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_PPDEV=m
+CONFIG_NVRAM=m
+CONFIG_DTLK=m
+# CONFIG_R3964 is not set
+CONFIG_APPLICOM=m
+CONFIG_MWAVE=m
+CONFIG_RAW_DRIVER=m
+CONFIG_MAX_RAW_DEVS=256
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
+CONFIG_HPET_MMAP_DEFAULT=y
+
+##
+## file: drivers/char/agp/Kconfig
+##
+#. Workaround
+CONFIG_AGP=y
+#. Workaround
+CONFIG_AGP_AMD64=y
+#. Workaround
+CONFIG_AGP_INTEL=y
+#. Workaround
+CONFIG_AGP_SIS=y
+#. Workaround
+CONFIG_AGP_VIA=y
+
+##
+## file: drivers/char/hw_random/Kconfig
+##
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_GEODE=m
+CONFIG_HW_RANDOM_VIA=m
+
+##
+## file: drivers/char/ipmi/Kconfig
+##
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+
+##
+## file: drivers/char/tpm/Kconfig
+##
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS=m
+CONFIG_TCG_TIS_I2C_ATMEL=m
+CONFIG_TCG_TIS_I2C_INFINEON=m
+CONFIG_TCG_TIS_I2C_NUVOTON=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_INFINEON=m
+CONFIG_TCG_XEN=m
+CONFIG_TCG_CRB=m
+
+##
+## file: drivers/char/tpm/st33zp24/Kconfig
+##
+CONFIG_TCG_TIS_ST33ZP24_I2C=m
+
+##
+## file: drivers/cpufreq/Kconfig
+##
+## choice: Default CPUFreq governor
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+## end choice
+
+##
+## file: drivers/cpufreq/Kconfig.x86
+##
+CONFIG_X86_INTEL_PSTATE=y
+CONFIG_X86_PCC_CPUFREQ=m
+CONFIG_X86_ACPI_CPUFREQ=m
+CONFIG_X86_ACPI_CPUFREQ_CPB=y
+CONFIG_X86_POWERNOW_K8=m
+CONFIG_X86_AMD_FREQ_SENSITIVITY=m
+CONFIG_X86_SPEEDSTEP_CENTRINO=m
+CONFIG_X86_P4_CLOCKMOD=m
+
+##
+## file: drivers/cpuidle/Kconfig
+##
+CONFIG_CPU_IDLE=y
+
+##
+## file: drivers/crypto/Kconfig
+##
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_DEV_CCP=y
+
+##
+## file: drivers/crypto/ccp/Kconfig
+##
+CONFIG_CRYPTO_DEV_CCP_DD=m
+CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
+
+##
+## file: drivers/crypto/qat/Kconfig
+##
+CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
+CONFIG_CRYPTO_DEV_QAT_C3XXX=m
+CONFIG_CRYPTO_DEV_QAT_C62X=m
+CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
+CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m
+CONFIG_CRYPTO_DEV_QAT_C62XVF=m
+
+##
+## file: drivers/dma/Kconfig
+##
+CONFIG_DMADEVICES=y
+CONFIG_INTEL_IDMA64=m
+CONFIG_INTEL_IOATDMA=m
+
+##
+## file: drivers/dma/dw/Kconfig
+##
+CONFIG_DW_DMAC=m
+
+##
+## file: drivers/edac/Kconfig
+##
+CONFIG_EDAC=y
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
+CONFIG_EDAC_AMD64=m
+# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
+CONFIG_EDAC_AMD76X=m
+CONFIG_EDAC_E7XXX=m
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_I82875P=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_IE31200=m
+CONFIG_EDAC_X38=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I7CORE=m
+CONFIG_EDAC_I82860=m
+CONFIG_EDAC_R82600=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_EDAC_I7300=m
+CONFIG_EDAC_SKX=m
+CONFIG_EDAC_PND2=m
+CONFIG_EDAC_AMD8131=m
+CONFIG_EDAC_AMD8111=m
+
+##
+## file: drivers/extcon/Kconfig
+##
+CONFIG_EXTCON=m
+CONFIG_EXTCON_INTEL_CHT_WC=m
+
+##
+## file: drivers/firmware/Kconfig
+##
+CONFIG_EDD=m
+# CONFIG_EDD_OFF is not set
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_DELL_RBU=m
+CONFIG_DCDBAS=m
+CONFIG_DMIID=y
+CONFIG_ISCSI_IBFT_FIND=y
+CONFIG_ISCSI_IBFT=y
+
+##
+## file: drivers/firmware/efi/Kconfig
+##
+CONFIG_EFI_RUNTIME_MAP=y
+# CONFIG_EFI_FAKE_MEMMAP is not set
+
+##
+## file: drivers/firmware/google/Kconfig
+##
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+##
+## file: drivers/gpio/Kconfig
+##
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_AMDPT=m
+# CONFIG_GPIO_ICH is not set
+# CONFIG_GPIO_LYNXPOINT is not set
+# CONFIG_GPIO_F7188X is not set
+# CONFIG_GPIO_SCH is not set
+CONFIG_GPIO_KEMPLD=m
+# CONFIG_GPIO_INTEL_MID is not set
+CONFIG_GPIO_ML_IOH=m
+
+##
+## file: drivers/gpu/drm/Kconfig
+##
+CONFIG_DRM=m
+CONFIG_DRM_DP_CEC=y
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_AMDGPU=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+# CONFIG_DRM_I810 is not set
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+
+##
+## file: drivers/gpu/drm/amd/acp/Kconfig
+##
+CONFIG_DRM_AMD_ACP=y
+
+##
+## file: drivers/gpu/drm/amd/amdkfd/Kconfig
+##
+CONFIG_HSA_AMD=m
+
+##
+## file: drivers/gpu/drm/ast/Kconfig
+##
+CONFIG_DRM_AST=m
+
+##
+## file: drivers/gpu/drm/gma500/Kconfig
+##
+CONFIG_DRM_GMA500=m
+CONFIG_DRM_GMA600=y
+CONFIG_DRM_GMA3600=y
+CONFIG_DRM_MEDFIELD=y
+
+##
+## file: drivers/gpu/drm/i2c/Kconfig
+##
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_SIL164=m
+
+##
+## file: drivers/gpu/drm/i915/Kconfig
+##
+CONFIG_DRM_I915=m
+# CONFIG_DRM_I915_ALPHA_SUPPORT is not set
+
+##
+## file: drivers/gpu/drm/mgag200/Kconfig
+##
+CONFIG_DRM_MGAG200=m
+
+##
+## file: drivers/gpu/drm/nouveau/Kconfig
+##
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+
+##
+## file: drivers/gpu/drm/vmwgfx/Kconfig
+##
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_VMWGFX_FBCON=y
+
+##
+## file: drivers/gpu/drm/xen/Kconfig
+##
+CONFIG_DRM_XEN=y
+CONFIG_DRM_XEN_FRONTEND=m
+
+##
+## file: drivers/gpu/vga/Kconfig
+##
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_SWITCHEROO=y
+
+##
+## file: drivers/hid/Kconfig
+##
+CONFIG_HID_APPLEIR=m
+CONFIG_HID_HYPERV_MOUSE=m
+
+##
+## file: drivers/hid/i2c-hid/Kconfig
+##
+CONFIG_I2C_HID=m
+
+##
+## file: drivers/hid/intel-ish-hid/Kconfig
+##
+CONFIG_INTEL_ISH_HID=m
+
+##
+## file: drivers/hid/usbhid/Kconfig
+##
+CONFIG_USB_HID=m
+
+##
+## file: drivers/hv/Kconfig
+##
+CONFIG_HYPERV=m
+CONFIG_HYPERV_UTILS=m
+CONFIG_HYPERV_BALLOON=m
+
+##
+## file: drivers/hwmon/Kconfig
+##
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_FAM15H_POWER=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_DELL_SMM=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_I5500=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MENF21BMC_HWMON=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH5636=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_ACPI_POWER=m
+
+##
+## file: drivers/hwtracing/intel_th/Kconfig
+##
+CONFIG_INTEL_TH=m
+CONFIG_INTEL_TH_PCI=m
+CONFIG_INTEL_TH_GTH=m
+CONFIG_INTEL_TH_MSU=m
+CONFIG_INTEL_TH_PTI=m
+
+##
+## file: drivers/i2c/Kconfig
+##
+CONFIG_I2C=y
+CONFIG_ACPI_I2C_OPREGION=y
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+
+##
+## file: drivers/i2c/busses/Kconfig
+##
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISMT=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_CHT_WC=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_SCMI=m
+#. Sony Vaio Duo 13".
+CONFIG_I2C_DESIGNWARE_PLATFORM=m
+CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
+CONFIG_I2C_KEMPLD=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_PCA_ISA=m
+CONFIG_SCx200_ACB=m
+
+##
+## file: drivers/idle/Kconfig
+##
+CONFIG_INTEL_IDLE=y
+
+##
+## file: drivers/iio/accel/Kconfig
+##
+CONFIG_BMC150_ACCEL=m
+CONFIG_KXCJK1013=m
+CONFIG_MMA9551=m
+CONFIG_MMA9553=m
+
+##
+## file: drivers/iio/gyro/Kconfig
+##
+CONFIG_BMG160=m
+
+##
+## file: drivers/iio/imu/Kconfig
+##
+CONFIG_KMX61=m
+
+##
+## file: drivers/iio/imu/inv_mpu6050/Kconfig
+##
+CONFIG_INV_MPU6050_I2C=m
+
+##
+## file: drivers/iio/light/Kconfig
+##
+#. Samsung Series 5 550, Chromebook Pixel
+CONFIG_SENSORS_ISL29018=m
+CONFIG_JSA1212=m
+#. Cr-48, Acer AC700
+CONFIG_SENSORS_TSL2563=m
+#. Samsung Series 5
+CONFIG_TSL2583=m
+
+##
+## file: drivers/iio/magnetometer/Kconfig
+##
+CONFIG_AK8975=m
+
+##
+## file: drivers/iio/pressure/Kconfig
+##
+CONFIG_BMP280=m
+
+##
+## file: drivers/iio/proximity/Kconfig
+##
+CONFIG_SX9500=m
+
+##
+## file: drivers/infiniband/hw/usnic/Kconfig
+##
+CONFIG_INFINIBAND_USNIC=m
+
+##
+## file: drivers/input/gameport/Kconfig
+##
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+
+##
+## file: drivers/input/joystick/Kconfig
+##
+CONFIG_INPUT_JOYSTICK=y
+
+##
+## file: drivers/input/keyboard/Kconfig
+##
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_LKKBD=m
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_NEWTON=m
+CONFIG_KEYBOARD_SUNKBD=m
+CONFIG_KEYBOARD_XTKBD=m
+
+##
+## file: drivers/input/misc/Kconfig
+##
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_APANEL=m
+CONFIG_INPUT_ATLAS_BTNS=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
+CONFIG_INPUT_SOC_BUTTON_ARRAY=m
+
+##
+## file: drivers/input/mouse/Kconfig
+##
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_VMMOUSE=y
+CONFIG_MOUSE_SERIAL=m
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_CYAPA=m
+CONFIG_MOUSE_ELAN_I2C=m
+CONFIG_MOUSE_ELAN_I2C_I2C=y
+CONFIG_MOUSE_ELAN_I2C_SMBUS=y
+CONFIG_MOUSE_VSXXXAA=m
+
+##
+## file: drivers/input/rmi4/Kconfig
+##
+CONFIG_RMI4_CORE=m
+CONFIG_RMI4_SMB=m
+
+##
+## file: drivers/input/serio/Kconfig
+##
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+CONFIG_HYPERV_KEYBOARD=m
+# CONFIG_SERIO_GPIO_PS2 is not set
+
+##
+## file: drivers/input/touchscreen/Kconfig
+##
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_TSC_SERIO=m
+CONFIG_TOUCHSCREEN_SURFACE3_SPI=m
+
+##
+## file: drivers/iommu/Kconfig
+##
+CONFIG_INTEL_IOMMU=y
+CONFIG_INTEL_IOMMU_SVM=y
+# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
+CONFIG_IRQ_REMAP=y
+
+##
+## file: drivers/isdn/Kconfig
+##
+CONFIG_ISDN=y
+CONFIG_ISDN_CAPI=m
+
+##
+## file: drivers/isdn/capi/Kconfig
+##
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPIDRV=m
+
+##
+## file: drivers/isdn/hardware/avm/Kconfig
+##
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+
+##
+## file: drivers/isdn/hardware/eicon/Kconfig
+##
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+
+##
+## file: drivers/leds/Kconfig
+##
+CONFIG_LEDS_APU=m
+CONFIG_LEDS_CLEVO_MAIL=m
+CONFIG_LEDS_MENF21BMC=m
+
+##
+## file: drivers/media/dvb-frontends/Kconfig
+##
+CONFIG_DVB_RTL2832_SDR=m
+
+##
+## file: drivers/media/platform/Kconfig
+##
+CONFIG_VIDEO_VIA_CAMERA=m
+
+##
+## file: drivers/media/radio/Kconfig
+##
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_MAXIRADIO=m
+
+##
+## file: drivers/media/rc/Kconfig
+##
+CONFIG_IR_ITE_CIR=m
+CONFIG_IR_FINTEK=m
+CONFIG_IR_NUVOTON=m
+CONFIG_IR_WINBOND_CIR=m
+CONFIG_IR_SERIAL=m
+CONFIG_IR_SERIAL_TRANSMITTER=y
+CONFIG_IR_SIR=m
+
+##
+## file: drivers/media/tuners/Kconfig
+##
+CONFIG_MEDIA_TUNER_MSI001=m
+
+##
+## file: drivers/media/usb/as102/Kconfig
+##
+CONFIG_DVB_AS102=m
+
+##
+## file: drivers/media/usb/go7007/Kconfig
+##
+# CONFIG_VIDEO_GO7007 is not set
+
+##
+## file: drivers/media/usb/tm6000/Kconfig
+##
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
+
+##
+## file: drivers/mfd/Kconfig
+##
+CONFIG_MFD_AXP20X_I2C=m
+# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set
+CONFIG_LPC_ICH=m
+CONFIG_INTEL_SOC_PMIC_BXTWC=m
+CONFIG_INTEL_SOC_PMIC_CHTWC=y
+CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m
+CONFIG_MFD_INTEL_LPSS_ACPI=m
+CONFIG_MFD_INTEL_LPSS_PCI=m
+CONFIG_MFD_KEMPLD=m
+CONFIG_MFD_MENF21BMC=m
+
+##
+## file: drivers/misc/Kconfig
+##
+CONFIG_IBM_ASM=m
+CONFIG_PHANTOM=m
+CONFIG_CS5535_MFGPT=m
+CONFIG_HP_ILO=m
+CONFIG_VMWARE_BALLOON=m
+
+##
+## file: drivers/misc/mei/Kconfig
+##
+CONFIG_INTEL_MEI=m
+CONFIG_INTEL_MEI_ME=m
+# CONFIG_INTEL_MEI_TXE is not set
+
+##
+## file: drivers/misc/vmw_vmci/Kconfig
+##
+CONFIG_VMWARE_VMCI=m
+
+##
+## file: drivers/mmc/Kconfig
+##
+CONFIG_MMC=m
+
+##
+## file: drivers/mmc/core/Kconfig
+##
+CONFIG_MMC_BLOCK=m
+
+##
+## file: drivers/mmc/host/Kconfig
+##
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_SDHCI_ACPI=m
+
+##
+## file: drivers/mtd/Kconfig
+##
+CONFIG_MTD_REDBOOT_PARTS=y
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+CONFIG_FTL=m
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_INFTL=m
+
+##
+## file: drivers/mtd/chips/Kconfig
+##
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_ROM=m
+CONFIG_MTD_ABSENT=m
+
+##
+## file: drivers/mtd/devices/Kconfig
+##
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_PMC551_BUGFIX is not set
+# CONFIG_MTD_PMC551_DEBUG is not set
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_PHRAM=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTD_BLOCK2MTD=m
+
+##
+## file: drivers/mtd/maps/Kconfig
+##
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+CONFIG_MTD_PHYSMAP=m
+# CONFIG_MTD_PHYSMAP_COMPAT is not set
+CONFIG_MTD_PHYSMAP_START=0x8000000
+CONFIG_MTD_PHYSMAP_LEN=0x4000000
+CONFIG_MTD_PHYSMAP_BANKWIDTH=2
+CONFIG_MTD_SBC_GXX=m
+# CONFIG_MTD_AMD76XROM is not set
+# CONFIG_MTD_ICHXROM is not set
+# CONFIG_MTD_SCB2_FLASH is not set
+CONFIG_MTD_NETtel=m
+# CONFIG_MTD_L440GX is not set
+CONFIG_MTD_PCI=m
+
+##
+## file: drivers/mtd/nand/raw/Kconfig
+##
+CONFIG_MTD_NAND=m
+CONFIG_MTD_NAND_DISKONCHIP=m
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+
+##
+## file: drivers/mtd/spi-nor/Kconfig
+##
+# CONFIG_SPI_INTEL_SPI_PCI is not set
+# CONFIG_SPI_INTEL_SPI_PLATFORM is not set
+
+##
+## file: drivers/net/Kconfig
+##
+CONFIG_DUMMY=m
+CONFIG_NET_FC=y
+CONFIG_NET_SB1000=m
+CONFIG_VMXNET3=m
+CONFIG_THUNDERBOLT_NET=m
+
+##
+## file: drivers/net/arcnet/Kconfig
+##
+CONFIG_ARCNET=m
+CONFIG_ARCNET_1201=m
+CONFIG_ARCNET_1051=m
+CONFIG_ARCNET_RAW=m
+CONFIG_ARCNET_CAP=m
+CONFIG_ARCNET_COM90xx=m
+CONFIG_ARCNET_COM90xxIO=m
+CONFIG_ARCNET_RIM_I=m
+CONFIG_ARCNET_COM20020=m
+CONFIG_ARCNET_COM20020_PCI=m
+CONFIG_ARCNET_COM20020_CS=m
+
+##
+## file: drivers/net/ethernet/Kconfig
+##
+# CONFIG_CX_ECAT is not set
+CONFIG_FEALNX=m
+
+##
+## file: drivers/net/ethernet/3com/Kconfig
+##
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+
+##
+## file: drivers/net/ethernet/8390/Kconfig
+##
+CONFIG_NET_VENDOR_8390=y
+CONFIG_PCMCIA_AXNET=m
+CONFIG_NE2K_PCI=m
+CONFIG_PCMCIA_PCNET=m
+
+##
+## file: drivers/net/ethernet/adaptec/Kconfig
+##
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_ADAPTEC_STARFIRE=m
+
+##
+## file: drivers/net/ethernet/altera/Kconfig
+##
+# CONFIG_ALTERA_TSE is not set
+
+##
+## file: drivers/net/ethernet/amd/Kconfig
+##
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_AMD8111_ETH=m
+CONFIG_PCMCIA_NMCLAN=m
+
+##
+## file: drivers/net/ethernet/broadcom/Kconfig
+##
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_B44=m
+
+##
+## file: drivers/net/ethernet/dec/tulip/Kconfig
+##
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_PCMCIA_XIRCOM=m
+
+##
+## file: drivers/net/ethernet/dlink/Kconfig
+##
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+
+##
+## file: drivers/net/ethernet/fujitsu/Kconfig
+##
+CONFIG_NET_VENDOR_FUJITSU=y
+CONFIG_PCMCIA_FMVJ18X=m
+
+##
+## file: drivers/net/ethernet/hp/Kconfig
+##
+CONFIG_NET_VENDOR_HP=y
+CONFIG_HP100=m
+
+##
+## file: drivers/net/ethernet/intel/Kconfig
+##
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_E100=m
+
+##
+## file: drivers/net/ethernet/natsemi/Kconfig
+##
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NATSEMI=m
+
+##
+## file: drivers/net/ethernet/nvidia/Kconfig
+##
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_FORCEDETH=m
+
+##
+## file: drivers/net/ethernet/realtek/Kconfig
+##
+CONFIG_NET_VENDOR_REALTEK=y
+# CONFIG_ATP is not set
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+
+##
+## file: drivers/net/ethernet/sis/Kconfig
+##
+CONFIG_NET_VENDOR_SIS=y
+CONFIG_SIS900=m
+
+##
+## file: drivers/net/ethernet/smsc/Kconfig
+##
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_EPIC100=m
+
+##
+## file: drivers/net/ethernet/sun/Kconfig
+##
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+
+##
+## file: drivers/net/ethernet/via/Kconfig
+##
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+
+##
+## file: drivers/net/ethernet/xircom/Kconfig
+##
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_PCMCIA_XIRC2PS=m
+
+##
+## file: drivers/net/fddi/Kconfig
+##
+CONFIG_FDDI=y
+CONFIG_SKFP=m
+
+##
+## file: drivers/net/hippi/Kconfig
+##
+CONFIG_HIPPI=y
+CONFIG_ROADRUNNER=m
+# CONFIG_ROADRUNNER_LARGE_RINGS is not set
+
+##
+## file: drivers/net/hyperv/Kconfig
+##
+CONFIG_HYPERV_NET=m
+
+##
+## file: drivers/net/plip/Kconfig
+##
+CONFIG_PLIP=m
+
+##
+## file: drivers/net/wan/Kconfig
+##
+CONFIG_WAN=y
+CONFIG_LANMEDIA=m
+CONFIG_PCI200SYN=m
+CONFIG_WANXL=m
+CONFIG_FARSYNC=m
+CONFIG_DSCC4=m
+CONFIG_DSCC4_PCISYNC=y
+CONFIG_DSCC4_PCI_RST=y
+CONFIG_DLCI=m
+CONFIG_DLCI_MAX=8
+# CONFIG_SBNI is not set
+
+##
+## file: drivers/net/wireless/Kconfig
+##
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_PCMCIA_WL3501=m
+
+##
+## file: drivers/net/wireless/atmel/Kconfig
+##
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+
+##
+## file: drivers/net/wireless/broadcom/brcm80211/Kconfig
+##
+#. Sony Vaio laptops
+CONFIG_BRCMFMAC_SDIO=y
+
+##
+## file: drivers/net/wireless/cisco/Kconfig
+##
+CONFIG_AIRO_CS=m
+
+##
+## file: drivers/net/wireless/intersil/orinoco/Kconfig
+##
+CONFIG_HERMES=m
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+
+##
+## file: drivers/net/wireless/marvell/mwifiex/Kconfig
+##
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_PCIE=m
+CONFIG_MWIFIEX_USB=m
+
+##
+## file: drivers/net/wireless/zydas/Kconfig
+##
+CONFIG_USB_ZD1201=m
+
+##
+## file: drivers/nfc/Kconfig
+##
+CONFIG_NFC_MEI_PHY=m
+
+##
+## file: drivers/nfc/pn544/Kconfig
+##
+CONFIG_NFC_PN544_MEI=m
+
+##
+## file: drivers/nvdimm/Kconfig
+##
+CONFIG_LIBNVDIMM=m
+CONFIG_BLK_DEV_PMEM=m
+CONFIG_ND_BLK=m
+CONFIG_BTT=y
+
+##
+## file: drivers/pci/Kconfig
+##
+CONFIG_PCI_PRI=y
+CONFIG_PCI_PASID=y
+
+##
+## file: drivers/pci/controller/Kconfig
+##
+CONFIG_VMD=m
+
+##
+## file: drivers/pci/hotplug/Kconfig
+##
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_ACPI=y
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
+CONFIG_HOTPLUG_PCI_SHPC=y
+
+##
+## file: drivers/pcmcia/Kconfig
+##
+CONFIG_PCCARD=m
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+CONFIG_YENTA=m
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_TCIC=m
+# CONFIG_PCMCIA_DEBUG is not set
+
+##
+## file: drivers/pinctrl/Kconfig
+##
+CONFIG_PINCTRL_AMD=y
+
+##
+## file: drivers/pinctrl/intel/Kconfig
+##
+CONFIG_PINCTRL_BAYTRAIL=y
+CONFIG_PINCTRL_CHERRYVIEW=y
+CONFIG_PINCTRL_BROXTON=y
+CONFIG_PINCTRL_CANNONLAKE=y
+CONFIG_PINCTRL_CEDARFORK=y
+CONFIG_PINCTRL_DENVERTON=y
+CONFIG_PINCTRL_GEMINILAKE=y
+CONFIG_PINCTRL_ICELAKE=y
+CONFIG_PINCTRL_LEWISBURG=y
+CONFIG_PINCTRL_SUNRISEPOINT=y
+
+##
+## file: drivers/platform/chrome/Kconfig
+##
+CONFIG_CHROME_PLATFORMS=y
+CONFIG_CHROMEOS_LAPTOP=m
+CONFIG_CHROMEOS_PSTORE=m
+CONFIG_CROS_KBD_LED_BACKLIGHT=m
+
+##
+## file: drivers/platform/x86/Kconfig
+##
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
+CONFIG_ALIENWARE_WMI=m
+CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_SMBIOS=m
+CONFIG_DELL_SMBIOS_WMI=y
+CONFIG_DELL_SMBIOS_SMM=y
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_AIO=m
+CONFIG_DELL_WMI_LED=m
+CONFIG_DELL_SMO8800=m
+CONFIG_DELL_RBTN=m
+CONFIG_FUJITSU_LAPTOP=m
+CONFIG_FUJITSU_TABLET=m
+CONFIG_AMILO_RFKILL=m
+CONFIG_GPD_POCKET_FAN=m
+CONFIG_HP_ACCEL=m
+CONFIG_HP_WIRELESS=m
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_SONY_LAPTOP=m
+CONFIG_SONYPI_COMPAT=y
+CONFIG_IDEAPAD_LAPTOP=m
+CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_SENSORS_HDAPS=m
+# CONFIG_INTEL_MENLOW is not set
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_ASUS_WMI=m
+CONFIG_ASUS_NB_WMI=m
+CONFIG_EEEPC_WMI=m
+CONFIG_ASUS_WIRELESS=m
+CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_TOSHIBA_HAPS=m
+CONFIG_ACPI_CMPC=m
+CONFIG_INTEL_CHT_INT33FE=m
+CONFIG_INTEL_INT0002_VGPIO=m
+CONFIG_INTEL_HID_EVENT=m
+CONFIG_INTEL_VBTN=m
+CONFIG_INTEL_IPS=m
+CONFIG_IBM_RTL=m
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_INTEL_OAKTRAIL=m
+CONFIG_SAMSUNG_Q10=m
+CONFIG_APPLE_GMUX=m
+CONFIG_INTEL_RST=m
+CONFIG_INTEL_SMARTCONNECT=m
+CONFIG_PVPANIC=m
+CONFIG_INTEL_PMC_IPC=m
+CONFIG_SURFACE_PRO3_BUTTON=m
+CONFIG_INTEL_ATOMISP2_PM=m
+
+##
+## file: drivers/pnp/Kconfig
+##
+CONFIG_PNP=y
+
+##
+## file: drivers/power/supply/Kconfig
+##
+CONFIG_BATTERY_SBS=m
+CONFIG_AXP288_FUEL_GAUGE=m
+CONFIG_BATTERY_MAX17042=m
+CONFIG_CHARGER_BQ24190=m
+
+##
+## file: drivers/powercap/Kconfig
+##
+CONFIG_POWERCAP=y
+CONFIG_INTEL_RAPL=m
+
+##
+## file: drivers/ptp/Kconfig
+##
+CONFIG_PTP_1588_CLOCK_PCH=m
+CONFIG_PTP_1588_CLOCK_KVM=m
+
+##
+## file: drivers/pwm/Kconfig
+##
+CONFIG_PWM=y
+CONFIG_PWM_LPSS_PLATFORM=m
+
+##
+## file: drivers/regulator/Kconfig
+##
+CONFIG_REGULATOR=y
+
+##
+## file: drivers/rtc/Kconfig
+##
+CONFIG_RTC_DRV_CMOS=y
+
+##
+## file: drivers/scsi/Kconfig
+##
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_BUSLOGIC=m
+# CONFIG_SCSI_FLASHPOINT is not set
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_ISCI=m
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_IPR=m
+# CONFIG_SCSI_IPR_TRACE is not set
+# CONFIG_SCSI_IPR_DUMP is not set
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_DEBUG=m
+
+##
+## file: drivers/scsi/aic7xxx/Kconfig.aic7xxx
+##
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=8
+
+##
+## file: drivers/scsi/megaraid/Kconfig.megaraid
+##
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+
+##
+## file: drivers/scsi/pcmcia/Kconfig
+##
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+
+##
+## file: drivers/sfi/Kconfig
+##
+CONFIG_SFI=y
+
+##
+## file: drivers/staging/comedi/Kconfig
+##
+CONFIG_COMEDI=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB=2048
+CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB=20480
+CONFIG_COMEDI_MISC_DRIVERS=y
+CONFIG_COMEDI_BOND=m
+CONFIG_COMEDI_TEST=m
+CONFIG_COMEDI_PARPORT=m
+CONFIG_COMEDI_SSV_DNP=m
+# CONFIG_COMEDI_ISA_DRIVERS is not set
+CONFIG_COMEDI_II_PCI20KC=m
+CONFIG_COMEDI_S526=m
+CONFIG_COMEDI_PCI_DRIVERS=y
+CONFIG_COMEDI_8255_PCI=m
+CONFIG_COMEDI_ADDI_APCI_1032=m
+CONFIG_COMEDI_ADDI_APCI_1500=m
+CONFIG_COMEDI_ADDI_APCI_1516=m
+CONFIG_COMEDI_ADDI_APCI_1564=m
+CONFIG_COMEDI_ADDI_APCI_16XX=m
+CONFIG_COMEDI_ADDI_APCI_2032=m
+CONFIG_COMEDI_ADDI_APCI_2200=m
+CONFIG_COMEDI_ADDI_APCI_3120=m
+CONFIG_COMEDI_ADDI_APCI_3501=m
+CONFIG_COMEDI_ADDI_APCI_3XXX=m
+CONFIG_COMEDI_ADL_PCI6208=m
+CONFIG_COMEDI_ADL_PCI7X3X=m
+CONFIG_COMEDI_ADL_PCI8164=m
+CONFIG_COMEDI_ADL_PCI9111=m
+CONFIG_COMEDI_ADL_PCI9118=m
+CONFIG_COMEDI_ADV_PCI1710=m
+CONFIG_COMEDI_ADV_PCI1720=m
+CONFIG_COMEDI_ADV_PCI1723=m
+CONFIG_COMEDI_ADV_PCI1724=m
+CONFIG_COMEDI_ADV_PCI1760=m
+CONFIG_COMEDI_ADV_PCI_DIO=m
+CONFIG_COMEDI_AMPLC_DIO200_PCI=m
+CONFIG_COMEDI_AMPLC_PC236_PCI=m
+CONFIG_COMEDI_AMPLC_PC263_PCI=m
+CONFIG_COMEDI_AMPLC_PCI224=m
+CONFIG_COMEDI_AMPLC_PCI230=m
+CONFIG_COMEDI_CONTEC_PCI_DIO=m
+CONFIG_COMEDI_DAS08_PCI=m
+CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_DYNA_PCI10XX=m
+CONFIG_COMEDI_GSC_HPDI=m
+CONFIG_COMEDI_MF6X4=m
+CONFIG_COMEDI_ICP_MULTI=m
+CONFIG_COMEDI_DAQBOARD2000=m
+CONFIG_COMEDI_JR3_PCI=m
+CONFIG_COMEDI_KE_COUNTER=m
+CONFIG_COMEDI_CB_PCIDAS64=m
+CONFIG_COMEDI_CB_PCIDAS=m
+CONFIG_COMEDI_CB_PCIDDA=m
+CONFIG_COMEDI_CB_PCIMDAS=m
+CONFIG_COMEDI_CB_PCIMDDA=m
+CONFIG_COMEDI_ME4000=m
+CONFIG_COMEDI_ME_DAQ=m
+CONFIG_COMEDI_NI_6527=m
+CONFIG_COMEDI_NI_65XX=m
+CONFIG_COMEDI_NI_660X=m
+CONFIG_COMEDI_NI_670X=m
+CONFIG_COMEDI_NI_LABPC_PCI=m
+CONFIG_COMEDI_NI_PCIDIO=m
+CONFIG_COMEDI_NI_PCIMIO=m
+CONFIG_COMEDI_RTD520=m
+CONFIG_COMEDI_S626=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=y
+CONFIG_COMEDI_CB_DAS16_CS=m
+CONFIG_COMEDI_DAS08_CS=m
+CONFIG_COMEDI_NI_DAQ_700_CS=m
+CONFIG_COMEDI_NI_DAQ_DIO24_CS=m
+CONFIG_COMEDI_NI_LABPC_CS=m
+CONFIG_COMEDI_NI_MIO_CS=m
+CONFIG_COMEDI_QUATECH_DAQP_CS=m
+CONFIG_COMEDI_USB_DRIVERS=y
+CONFIG_COMEDI_DT9812=m
+CONFIG_COMEDI_NI_USB6501=m
+CONFIG_COMEDI_USBDUX=m
+CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_USBDUXSIGMA=m
+CONFIG_COMEDI_VMK80XX=m
+CONFIG_COMEDI_8255_SA=m
+CONFIG_COMEDI_KCOMEDILIB=m
+
+##
+## file: drivers/staging/media/Kconfig
+##
+CONFIG_STAGING_MEDIA=y
+
+##
+## file: drivers/staging/media/bcm2048/Kconfig
+##
+# CONFIG_I2C_BCM2048 is not set
+
+##
+## file: drivers/staging/rtl8192e/Kconfig
+##
+CONFIG_RTLLIB=m
+CONFIG_RTLLIB_CRYPTO_CCMP=m
+CONFIG_RTLLIB_CRYPTO_TKIP=m
+CONFIG_RTLLIB_CRYPTO_WEP=m
+
+##
+## file: drivers/staging/rtl8192e/rtl8192e/Kconfig
+##
+CONFIG_RTL8192E=m
+
+##
+## file: drivers/staging/rtl8192u/Kconfig
+##
+CONFIG_RTL8192U=m
+
+##
+## file: drivers/staging/rtl8723bs/Kconfig
+##
+CONFIG_RTL8723BS=m
+
+##
+## file: drivers/staging/rtlwifi/Kconfig
+##
+CONFIG_R8822BE=m
+
+##
+## file: drivers/staging/rts5208/Kconfig
+##
+CONFIG_RTS5208=m
+
+##
+## file: drivers/staging/vboxvideo/Kconfig
+##
+CONFIG_DRM_VBOXVIDEO=m
+
+##
+## file: drivers/staging/vt6656/Kconfig
+##
+CONFIG_VT6656=m
+
+##
+## file: drivers/staging/wlan-ng/Kconfig
+##
+CONFIG_PRISM2_USB=m
+
+##
+## file: drivers/thermal/Kconfig
+##
+CONFIG_THERMAL=m
+# CONFIG_THERMAL_OF is not set
+# CONFIG_CPU_THERMAL is not set
+CONFIG_INTEL_POWERCLAMP=m
+CONFIG_X86_PKG_TEMP_THERMAL=m
+CONFIG_INTEL_SOC_DTS_THERMAL=m
+CONFIG_INTEL_PCH_THERMAL=m
+
+##
+## file: drivers/thermal/int340x_thermal/Kconfig
+##
+CONFIG_INT340X_THERMAL=m
+CONFIG_INT3406_THERMAL=m
+
+##
+## file: drivers/thunderbolt/Kconfig
+##
+CONFIG_THUNDERBOLT=m
+
+##
+## file: drivers/tty/Kconfig
+##
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+CONFIG_N_HDLC=m
+
+##
+## file: drivers/tty/serial/Kconfig
+##
+CONFIG_SERIAL_JSM=m
+
+##
+## file: drivers/tty/serial/8250/Kconfig
+##
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_FINTEK=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+CONFIG_SERIAL_8250_RSA=y
+CONFIG_SERIAL_8250_DW=y
+# CONFIG_SERIAL_8250_LPSS is not set
+CONFIG_SERIAL_8250_MID=y
+
+##
+## file: drivers/uio/Kconfig
+##
+CONFIG_UIO_HV_GENERIC=m
+
+##
+## file: drivers/usb/Kconfig
+##
+CONFIG_USB=m
+CONFIG_USB_USS720=m
+
+##
+## file: drivers/usb/atm/Kconfig
+##
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+
+##
+## file: drivers/usb/gadget/Kconfig
+##
+CONFIG_USB_GADGET=m
+
+##
+## file: drivers/usb/gadget/udc/Kconfig
+##
+CONFIG_USB_EG20T=m
+
+##
+## file: drivers/usb/host/Kconfig
+##
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_HCD_SSB is not set
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_SL811_HCD=m
+# CONFIG_USB_SL811_HCD_ISO is not set
+CONFIG_USB_SL811_CS=m
+
+##
+## file: drivers/usb/typec/Kconfig
+##
+CONFIG_TYPEC=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_TPS6598X=m
+
+##
+## file: drivers/usb/typec/fusb302/Kconfig
+##
+CONFIG_TYPEC_FUSB302=m
+
+##
+## file: drivers/vfio/Kconfig
+##
+CONFIG_VFIO=m
+
+##
+## file: drivers/vfio/pci/Kconfig
+##
+CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_VGA=y
+
+##
+## file: drivers/video/console/Kconfig
+##
+CONFIG_VGA_CONSOLE=y
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_CYBER2000=m
+CONFIG_FB_CYBER2000_DDC=y
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+CONFIG_FB_VGA16=m
+CONFIG_FB_UVESA=m
+CONFIG_FB_VESA=y
+CONFIG_FB_EFI=y
+CONFIG_FB_N411=m
+CONFIG_FB_HGA=m
+CONFIG_FB_LE80578=m
+CONFIG_FB_CARILLO_RANCH=m
+# CONFIG_FB_INTEL is not set
+CONFIG_FB_MATROX=m
+CONFIG_FB_MATROX_MILLENIUM=y
+CONFIG_FB_MATROX_MYSTIQUE=y
+CONFIG_FB_MATROX_I2C=m
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RADEON_BACKLIGHT=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_ATY128=m
+CONFIG_FB_ATY128_BACKLIGHT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_ATY_BACKLIGHT=y
+CONFIG_FB_SAVAGE=m
+# CONFIG_FB_SAVAGE_ACCEL is not set
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_KYRO=m
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_TRIDENT=m
+CONFIG_FB_VIRTUAL=m
+CONFIG_FB_HYPERV=m
+#. Doesn't support handover; see #822575
+# CONFIG_FB_SIMPLE is not set
+
+##
+## file: drivers/video/fbdev/geode/Kconfig
+##
+# CONFIG_FB_GEODE is not set
+
+##
+## file: drivers/virt/vboxguest/Kconfig
+##
+CONFIG_VBOXGUEST=m
+
+##
+## file: drivers/watchdog/Kconfig
+##
+CONFIG_MENF21BMC_WATCHDOG=m
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_F71808E_WDT=m
+CONFIG_SP5100_TCO=m
+CONFIG_GEODE_WDT=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_IB700_WDT=m
+CONFIG_IBMASR=m
+CONFIG_WAFER_WDT=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_IE6XX_WDT=m
+CONFIG_IT8712F_WDT=m
+CONFIG_HP_WATCHDOG=m
+CONFIG_KEMPLD_WDT=m
+CONFIG_HPWDT_NMI_DECODING=y
+CONFIG_SC1200_WDT=m
+CONFIG_NV_TCO=m
+CONFIG_60XX_WDT=m
+CONFIG_CPU5_WDT=m
+CONFIG_VIA_WDT=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_MACHZ_WDT=m
+CONFIG_INTEL_MEI_WDT=m
+CONFIG_NI903X_WDT=m
+CONFIG_NIC7018_WDT=m
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_WDTPCI=m
+CONFIG_USBPCWATCHDOG=m
+
+##
+## file: drivers/xen/Kconfig
+##
+CONFIG_XEN_ACPI_PROCESSOR=m
+CONFIG_XEN_SYMS=y
+
+##
+## file: fs/proc/Kconfig
+##
+CONFIG_PROC_VMCORE=y
+
+##
+## file: fs/pstore/Kconfig
+##
+CONFIG_PSTORE=y
+
+##
+## file: init/Kconfig
+##
+CONFIG_USELIB=y
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+CONFIG_SGETMASK_SYSCALL=y
+CONFIG_SYSFS_SYSCALL=y
+
+##
+## file: kernel/irq/Kconfig
+##
+CONFIG_SPARSE_IRQ=y
+
+##
+## file: kernel/power/Kconfig
+##
+# CONFIG_PM_TEST_SUSPEND is not set
+# CONFIG_PM_TRACE_RTC is not set
+
+##
+## file: kernel/trace/Kconfig
+##
+CONFIG_MMIOTRACE=y
+
+##
+## file: lib/Kconfig.debug
+##
+# CONFIG_FRAME_POINTER is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_DEBUG_SHIRQ is not set
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+CONFIG_MEMTEST=y
+
+##
+## file: lib/xz/Kconfig
+##
+CONFIG_XZ_DEC_X86=y
+
+##
+## file: mm/Kconfig
+##
+CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
+
+##
+## file: mm/Kconfig.debug
+##
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_DEBUG_RODATA_TEST is not set
+
+##
+## file: net/ax25/Kconfig
+##
+CONFIG_HAMRADIO=y
+CONFIG_AX25=m
+# CONFIG_AX25_DAMA_SLAVE is not set
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+
+##
+## file: net/decnet/Kconfig
+##
+CONFIG_DECNET=m
+# CONFIG_DECNET_ROUTER is not set
+
+##
+## file: net/decnet/netfilter/Kconfig
+##
+CONFIG_DECNET_NF_GRABULATOR=m
+
+##
+## file: net/lapb/Kconfig
+##
+CONFIG_LAPB=m
+
+##
+## file: net/nfc/hci/Kconfig
+##
+CONFIG_NFC_HCI=m
+
+##
+## file: net/vmw_vsock/Kconfig
+##
+CONFIG_VMWARE_VMCI_VSOCKETS=m
+CONFIG_HYPERV_VSOCKETS=m
+
+##
+## file: security/Kconfig
+##
+CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ=y
+
+##
+## file: sound/drivers/Kconfig
+##
+CONFIG_SND_DUMMY=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+
+##
+## file: sound/pci/Kconfig
+##
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_HDSP=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MIXART=m
+CONFIG_SND_NM256=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VX222=m
+CONFIG_SND_YMFPCI=m
+
+##
+## file: sound/pci/hda/Kconfig
+##
+CONFIG_SND_HDA_INTEL=m
+
+##
+## file: sound/soc/Kconfig
+##
+CONFIG_SND_SOC=m
+
+##
+## file: sound/soc/amd/Kconfig
+##
+CONFIG_SND_SOC_AMD_ACP=m
+CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH=m
+CONFIG_SND_SOC_AMD_CZ_RT5645_MACH=m
+
+##
+## file: sound/soc/codecs/Kconfig
+##
+CONFIG_SND_SOC_ES8316=m
+
+##
+## file: sound/soc/intel/Kconfig
+##
+CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
+CONFIG_SND_SOC_INTEL_HASWELL=m
+#. Cannot be enabled together with SND_SST_ATOM_HIFI2_PLATFORM_ACPI
+# CONFIG_SND_SOC_INTEL_BAYTRAIL is not set
+# CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI is not set
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=m
+CONFIG_SND_SOC_INTEL_SKYLAKE=m
+
+##
+## file: sound/soc/intel/boards/Kconfig
+##
+CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
+CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
+CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
+CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
+CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
+CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
+CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
+CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
+CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m
+# CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH is not set
+CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
+CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
+CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
+# CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH is not set
+# CONFIG_SND_SOC_INTEL_BXT_RT298_MACH is not set
+CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH=m
+CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH=m
+
+##
+## file: sound/x86/Kconfig
+##
+CONFIG_SND_X86=y
+CONFIG_HDMI_LPE_AUDIO=m
+
diff --git a/debian/config/m68k/README.build b/debian/config/m68k/README.build
new file mode 100644
index 000000000..8941608ef
--- /dev/null
+++ b/debian/config/m68k/README.build
@@ -0,0 +1,26 @@
+HOWTO cross-build m68k linux-image
+
+Building linux-image packages takes a while, especially on the "slower
+arches", ie m68k. Cross-compiling is an alternative, and it works very well
+for m68k.
+
+You need to set up a cross-compiler. The toolchain-source package has some
+limitations, I prefer using cross-tools, see this page for instructions:
+
+ http://people.debian.org/~cts/debian-m68k/cross-compile/
+
+Now you only have to tell the debian build system, that you do want to build
+packages for m68k. It used to be sufficient to pass an option to debuild,
+since recently you also have to set an environment variable, like this:
+
+ DEB_HOST_ARCH=m68k debuild -B -am68k
+
+If you also want to build source packages, omit the -B.
+
+If you want to build images for just one of the currently nine subarches,
+you can uncomment some lines in the flavours section in:
+ debian/arch/m68k/defines
+
+The first run of debuild will give you an error message that updating the
+configs suceeded, the second run will build the images.
+
diff --git a/debian/config/m68k/config b/debian/config/m68k/config
new file mode 100644
index 000000000..b251972cf
--- /dev/null
+++ b/debian/config/m68k/config
@@ -0,0 +1,872 @@
+##
+## file: arch/m68k/Kconfig
+##
+# CONFIG_PM is not set
+
+##
+## file: arch/m68k/Kconfig.bus
+##
+CONFIG_ZORRO=y
+CONFIG_AMIGA_PCMCIA=y
+CONFIG_ATARI_ROM_ISA=y
+
+##
+## file: arch/m68k/Kconfig.cpu
+##
+CONFIG_M68020=y
+CONFIG_M68030=y
+CONFIG_M68040=y
+CONFIG_M68060=y
+CONFIG_M68KFPU_EMU=y
+# CONFIG_ADVANCED is not set
+
+##
+## file: arch/m68k/Kconfig.debug
+##
+CONFIG_EARLY_PRINTK=y
+
+##
+## file: arch/m68k/Kconfig.devices
+##
+CONFIG_HEARTBEAT=y
+CONFIG_PROC_HARDWARE=y
+CONFIG_NATFEAT=y
+CONFIG_NFBLOCK=y
+CONFIG_NFCON=y
+CONFIG_NFETH=y
+CONFIG_ATARI_ETHERNAT=y
+CONFIG_ATARI_ETHERNEC=y
+CONFIG_ATARI_DSP56K=m
+CONFIG_AMIGA_BUILTIN_SERIAL=y
+CONFIG_SERIAL_CONSOLE=y
+
+##
+## file: arch/m68k/Kconfig.machine
+##
+CONFIG_AMIGA=y
+CONFIG_ATARI=y
+CONFIG_MAC=y
+CONFIG_APOLLO=y
+CONFIG_VME=y
+CONFIG_MVME147=y
+CONFIG_MVME16x=y
+CONFIG_BVME6000=y
+# CONFIG_HP300 is not set
+# CONFIG_SUN3X is not set
+CONFIG_Q40=y
+# CONFIG_SUN3 is not set
+
+##
+## file: block/Kconfig
+##
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+##
+## file: block/Kconfig.iosched
+##
+CONFIG_IOSCHED_DEADLINE=m
+
+##
+## file: block/partitions/Kconfig
+##
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_AMIGA_PARTITION=y
+CONFIG_ATARI_PARTITION=y
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_LDM_PARTITION=y
+CONFIG_LDM_DEBUG=y
+CONFIG_SUN_PARTITION=y
+# CONFIG_KARMA_PARTITION is not set
+CONFIG_SYSV68_PARTITION=y
+
+##
+## file: drivers/accessibility/Kconfig
+##
+# CONFIG_ACCESSIBILITY is not set
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_PATA_FALCON=m
+CONFIG_PATA_GAYLE=m
+
+##
+## file: drivers/bcma/Kconfig
+##
+# CONFIG_BCMA is not set
+
+##
+## file: drivers/block/Kconfig
+##
+CONFIG_BLK_DEV_FD=m
+CONFIG_AMIGA_FLOPPY=m
+CONFIG_ATARI_FLOPPY=m
+CONFIG_BLK_DEV_SWIM=m
+CONFIG_AMIGA_Z2RAM=y
+CONFIG_CDROM_PKTCDVD=m
+# CONFIG_BLK_DEV_RBD is not set
+
+##
+## file: drivers/block/drbd/Kconfig
+##
+# CONFIG_BLK_DEV_DRBD is not set
+
+##
+## file: drivers/block/mtip32xx/Kconfig
+##
+# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
+
+##
+## file: drivers/char/Kconfig
+##
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+# CONFIG_PPDEV is not set
+CONFIG_NVRAM=y
+
+##
+## file: drivers/connector/Kconfig
+##
+CONFIG_CONNECTOR=m
+
+##
+## file: drivers/crypto/Kconfig
+##
+# CONFIG_CRYPTO_HW is not set
+
+##
+## file: drivers/firewire/Kconfig
+##
+# CONFIG_FIREWIRE is not set
+
+##
+## file: drivers/gpu/drm/Kconfig
+##
+# CONFIG_DRM is not set
+
+##
+## file: drivers/hwmon/Kconfig
+##
+# CONFIG_HWMON is not set
+
+##
+## file: drivers/i2c/Kconfig
+##
+# CONFIG_I2C is not set
+
+##
+## file: drivers/ide/Kconfig
+##
+CONFIG_IDE=m
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDECS=m
+CONFIG_BLK_DEV_IDECD=m
+CONFIG_BLK_DEV_IDETAPE=m
+CONFIG_IDE_GENERIC=m
+CONFIG_BLK_DEV_PLATFORM=m
+CONFIG_BLK_DEV_GAYLE=m
+CONFIG_BLK_DEV_BUDDHA=m
+CONFIG_BLK_DEV_FALCON_IDE=m
+CONFIG_BLK_DEV_MAC_IDE=m
+CONFIG_BLK_DEV_Q40IDE=m
+
+##
+## file: drivers/iio/Kconfig
+##
+# CONFIG_IIO is not set
+
+##
+## file: drivers/infiniband/Kconfig
+##
+# CONFIG_INFINIBAND is not set
+
+##
+## file: drivers/input/Kconfig
+##
+CONFIG_INPUT_MOUSEDEV=y
+
+##
+## file: drivers/input/gameport/Kconfig
+##
+# CONFIG_GAMEPORT is not set
+
+##
+## file: drivers/input/joystick/Kconfig
+##
+CONFIG_INPUT_JOYSTICK=y
+# CONFIG_JOYSTICK_ANALOG is not set
+# CONFIG_JOYSTICK_A3D is not set
+# CONFIG_JOYSTICK_ADI is not set
+# CONFIG_JOYSTICK_COBRA is not set
+# CONFIG_JOYSTICK_GF2K is not set
+# CONFIG_JOYSTICK_GRIP is not set
+# CONFIG_JOYSTICK_GRIP_MP is not set
+# CONFIG_JOYSTICK_GUILLEMOT is not set
+# CONFIG_JOYSTICK_INTERACT is not set
+# CONFIG_JOYSTICK_SIDEWINDER is not set
+# CONFIG_JOYSTICK_TMDC is not set
+# CONFIG_JOYSTICK_WARRIOR is not set
+# CONFIG_JOYSTICK_MAGELLAN is not set
+# CONFIG_JOYSTICK_SPACEORB is not set
+# CONFIG_JOYSTICK_SPACEBALL is not set
+# CONFIG_JOYSTICK_STINGER is not set
+# CONFIG_JOYSTICK_TWIDJOY is not set
+# CONFIG_JOYSTICK_ZHENHUA is not set
+CONFIG_JOYSTICK_DB9=m
+# CONFIG_JOYSTICK_GAMECON is not set
+# CONFIG_JOYSTICK_TURBOGRAFX is not set
+CONFIG_JOYSTICK_AMIGA=m
+# CONFIG_JOYSTICK_JOYDUMP is not set
+
+##
+## file: drivers/input/joystick/iforce/Kconfig
+##
+# CONFIG_JOYSTICK_IFORCE is not set
+# CONFIG_JOYSTICK_IFORCE_232 is not set
+
+##
+## file: drivers/input/keyboard/Kconfig
+##
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5588 is not set
+CONFIG_KEYBOARD_AMIGA=y
+CONFIG_KEYBOARD_ATARI=y
+CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_QT2160 is not set
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+
+##
+## file: drivers/input/misc/Kconfig
+##
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_M68K_BEEP=m
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INPUT_CM109 is not set
+CONFIG_INPUT_UINPUT=m
+# CONFIG_INPUT_PCF50633_PMU is not set
+
+##
+## file: drivers/input/mouse/Kconfig
+##
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+# CONFIG_MOUSE_PS2_LIFEBOOK is not set
+# CONFIG_MOUSE_PS2_ELANTECH is not set
+# CONFIG_MOUSE_PS2_SENTELIC is not set
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+# CONFIG_MOUSE_PS2_OLPC is not set
+CONFIG_MOUSE_SERIAL=m
+# CONFIG_MOUSE_INPORT is not set
+# CONFIG_MOUSE_LOGIBM is not set
+# CONFIG_MOUSE_PC110PAD is not set
+CONFIG_MOUSE_AMIGA=m
+CONFIG_MOUSE_ATARI=m
+# CONFIG_MOUSE_SYNAPTICS_I2C is not set
+# CONFIG_MOUSE_SYNAPTICS_USB is not set
+
+##
+## file: drivers/input/serio/Kconfig
+##
+CONFIG_SERIO=y
+CONFIG_SERIO_SERPORT=y
+CONFIG_SERIO_Q40KBD=y
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_ALTERA_PS2 is not set
+
+##
+## file: drivers/input/tablet/Kconfig
+##
+# CONFIG_INPUT_TABLET is not set
+
+##
+## file: drivers/input/touchscreen/Kconfig
+##
+# CONFIG_INPUT_TOUCHSCREEN is not set
+
+##
+## file: drivers/iommu/Kconfig
+##
+# CONFIG_IOMMU_SUPPORT is not set
+
+##
+## file: drivers/leds/Kconfig
+##
+# CONFIG_NEW_LEDS is not set
+
+##
+## file: drivers/macintosh/Kconfig
+##
+CONFIG_ADB=y
+CONFIG_ADB_MACII=y
+#. switched on for the benefit of IIfx, Q900, Q950
+CONFIG_ADB_IOP=y
+CONFIG_ADB_CUDA=y
+CONFIG_ADB_PMU=y
+CONFIG_INPUT_ADBHID=y
+CONFIG_MAC_EMUMOUSEBTN=m
+
+##
+## file: drivers/media/Kconfig
+##
+# CONFIG_MEDIA_SUPPORT is not set
+
+##
+## file: drivers/memstick/Kconfig
+##
+# CONFIG_MEMSTICK is not set
+
+##
+## file: drivers/mfd/Kconfig
+##
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_MFD_SM501 is not set
+
+##
+## file: drivers/misc/Kconfig
+##
+# CONFIG_ENCLOSURE_SERVICES is not set
+
+##
+## file: drivers/misc/c2port/Kconfig
+##
+# CONFIG_C2PORT is not set
+
+##
+## file: drivers/misc/eeprom/Kconfig
+##
+# CONFIG_EEPROM_93CX6 is not set
+
+##
+## file: drivers/mmc/Kconfig
+##
+# CONFIG_MMC is not set
+
+##
+## file: drivers/mtd/Kconfig
+##
+# CONFIG_MTD is not set
+
+##
+## file: drivers/net/appletalk/Kconfig
+##
+CONFIG_DEV_APPLETALK=m
+
+##
+## file: drivers/net/arcnet/Kconfig
+##
+# CONFIG_ARCNET is not set
+
+##
+## file: drivers/net/ethernet/Kconfig
+##
+# CONFIG_DNET is not set
+# CONFIG_ETHOC is not set
+
+##
+## file: drivers/net/ethernet/8390/Kconfig
+##
+CONFIG_XSURF100=m
+CONFIG_HYDRA=m
+CONFIG_MAC8390=m
+CONFIG_NE2000=m
+CONFIG_APNE=m
+CONFIG_ZORRO8390=m
+
+##
+## file: drivers/net/ethernet/amd/Kconfig
+##
+CONFIG_A2065=m
+CONFIG_ARIADNE=m
+CONFIG_ATARILANCE=m
+CONFIG_MVME147_NET=m
+
+##
+## file: drivers/net/ethernet/apple/Kconfig
+##
+CONFIG_MACMACE=y
+
+##
+## file: drivers/net/ethernet/cirrus/Kconfig
+##
+CONFIG_MAC89x0=m
+
+##
+## file: drivers/net/ethernet/i825xx/Kconfig
+##
+CONFIG_BVME6000_NET=m
+CONFIG_MVME16x_NET=m
+
+##
+## file: drivers/net/ethernet/micrel/Kconfig
+##
+# CONFIG_KS8851_MLL is not set
+
+##
+## file: drivers/net/ethernet/natsemi/Kconfig
+##
+CONFIG_MACSONIC=m
+
+##
+## file: drivers/net/ethernet/smsc/Kconfig
+##
+CONFIG_SMC91X=m
+
+##
+## file: drivers/net/ethernet/wiznet/Kconfig
+##
+# CONFIG_WIZNET_W5100 is not set
+# CONFIG_WIZNET_W5300 is not set
+
+##
+## file: drivers/net/plip/Kconfig
+##
+CONFIG_PLIP=m
+
+##
+## file: drivers/net/wan/Kconfig
+##
+# CONFIG_WAN is not set
+
+##
+## file: drivers/net/wireless/Kconfig
+##
+# CONFIG_WLAN is not set
+
+##
+## file: drivers/parport/Kconfig
+##
+# CONFIG_PARPORT_PC is not set
+CONFIG_PARPORT_AMIGA=m
+CONFIG_PARPORT_MFC3=m
+CONFIG_PARPORT_ATARI=m
+
+##
+## file: drivers/pnp/Kconfig
+##
+# CONFIG_PNP is not set
+
+##
+## file: drivers/power/supply/Kconfig
+##
+# CONFIG_POWER_SUPPLY is not set
+
+##
+## file: drivers/ptp/Kconfig
+##
+# CONFIG_PTP_1588_CLOCK is not set
+
+##
+## file: drivers/rtc/Kconfig
+##
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_MSM6242 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+CONFIG_RTC_DRV_RP5C01=y
+# CONFIG_RTC_DRV_V3020 is not set
+# CONFIG_RTC_DRV_WM831X is not set
+# CONFIG_RTC_DRV_WM8350 is not set
+CONFIG_RTC_DRV_GENERIC=y
+
+##
+## file: drivers/scsi/Kconfig
+##
+#. for MVME147_SCSI that is not tristate
+CONFIG_SCSI=y
+CONFIG_SCSI_SPI_ATTRS=m
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_AHA152X is not set
+# CONFIG_SCSI_ADVANSYS is not set
+# CONFIG_LIBFC is not set
+CONFIG_A3000_SCSI=m
+CONFIG_A2091_SCSI=m
+CONFIG_GVP11_SCSI=m
+CONFIG_SCSI_A4000T=m
+CONFIG_SCSI_ZORRO7XX=m
+CONFIG_SCSI_ZORRO_ESP=m
+CONFIG_ATARI_SCSI=m
+CONFIG_MAC_SCSI=m
+CONFIG_SCSI_MAC_ESP=m
+CONFIG_MVME147_SCSI=y
+CONFIG_MVME16x_SCSI=m
+CONFIG_BVME6000_SCSI=m
+
+##
+## file: drivers/scsi/ufs/Kconfig
+##
+# CONFIG_SCSI_UFSHCD is not set
+
+##
+## file: drivers/spi/Kconfig
+##
+# CONFIG_SPI is not set
+
+##
+## file: drivers/ssb/Kconfig
+##
+# CONFIG_SSB is not set
+
+##
+## file: drivers/staging/Kconfig
+##
+# CONFIG_STAGING is not set
+
+##
+## file: drivers/tty/Kconfig
+##
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_N_GSM is not set
+
+##
+## file: drivers/tty/serial/Kconfig
+##
+CONFIG_SERIAL_PMACZILOG=y
+CONFIG_SERIAL_PMACZILOG_TTYS=y
+CONFIG_SERIAL_PMACZILOG_CONSOLE=y
+
+##
+## file: drivers/tty/serial/8250/Kconfig
+##
+CONFIG_SERIAL_8250=m
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+##
+## file: drivers/usb/Kconfig
+##
+# CONFIG_USB_SUPPORT is not set
+
+##
+## file: drivers/video/backlight/Kconfig
+##
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+# CONFIG_FIRMWARE_EDID is not set
+CONFIG_FB_FOREIGN_ENDIAN=y
+## choice: Choice endianness support
+CONFIG_FB_BOTH_ENDIAN=y
+## end choice
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+CONFIG_FB_CIRRUS=y
+CONFIG_FB_PM2=m
+CONFIG_FB_AMIGA=y
+CONFIG_FB_AMIGA_OCS=y
+CONFIG_FB_AMIGA_ECS=y
+CONFIG_FB_AMIGA_AGA=y
+CONFIG_FB_FM2=y
+CONFIG_FB_ATARI=y
+CONFIG_FB_VALKYRIE=y
+CONFIG_FB_MAC=y
+# CONFIG_FB_UVESA is not set
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_ATY=y
+# CONFIG_FB_ATY_BACKLIGHT is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+
+##
+## file: drivers/video/logo/Kconfig
+##
+# CONFIG_LOGO is not set
+
+##
+## file: drivers/w1/Kconfig
+##
+# CONFIG_W1 is not set
+
+##
+## file: drivers/watchdog/Kconfig
+##
+# CONFIG_WATCHDOG is not set
+
+##
+## file: drivers/zorro/Kconfig
+##
+CONFIG_ZORRO_NAMES=y
+
+##
+## file: fs/adfs/Kconfig
+##
+# CONFIG_ADFS_FS is not set
+
+##
+## file: fs/afs/Kconfig
+##
+# CONFIG_AFS_FS is not set
+
+##
+## file: fs/befs/Kconfig
+##
+# CONFIG_BEFS_FS is not set
+
+##
+## file: fs/bfs/Kconfig
+##
+# CONFIG_BFS_FS is not set
+
+##
+## file: fs/Kconfig.binfmt
+##
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_MISC=m
+
+##
+## file: fs/ceph/Kconfig
+##
+# CONFIG_CEPH_FS is not set
+
+##
+## file: fs/dlm/Kconfig
+##
+# CONFIG_DLM is not set
+
+##
+## file: fs/efs/Kconfig
+##
+# CONFIG_EFS_FS is not set
+
+##
+## file: fs/exofs/Kconfig
+##
+# CONFIG_EXOFS_FS is not set
+
+##
+## file: fs/f2fs/Kconfig
+##
+# CONFIG_F2FS_FS is not set
+
+##
+## file: fs/freevxfs/Kconfig
+##
+# CONFIG_VXFS_FS is not set
+
+##
+## file: fs/gfs2/Kconfig
+##
+# CONFIG_GFS2_FS is not set
+
+##
+## file: fs/jfs/Kconfig
+##
+# CONFIG_JFS_FS is not set
+
+##
+## file: fs/ocfs2/Kconfig
+##
+# CONFIG_OCFS2_FS is not set
+
+##
+## file: fs/omfs/Kconfig
+##
+# CONFIG_OMFS_FS is not set
+
+##
+## file: fs/qnx4/Kconfig
+##
+# CONFIG_QNX4FS_FS is not set
+
+##
+## file: fs/reiserfs/Kconfig
+##
+# CONFIG_REISERFS_FS_SECURITY is not set
+
+##
+## file: fs/ubifs/Kconfig
+##
+# CONFIG_UBIFS_FS is not set
+
+##
+## file: init/Kconfig
+##
+CONFIG_USELIB=y
+# CONFIG_AUDIT is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=16
+# CONFIG_SCHED_AUTOGROUP is not set
+## choice: Compiler optimization level
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+## end choice
+CONFIG_SGETMASK_SYSCALL=y
+CONFIG_SYSFS_SYSCALL=y
+CONFIG_COMPAT_BRK=y
+# CONFIG_MODULE_SIG is not set
+
+##
+## file: kernel/time/Kconfig
+##
+## choice: Timer tick handling
+CONFIG_HZ_PERIODIC=y
+# CONFIG_NO_HZ_IDLE is not set
+# CONFIG_NO_HZ_FULL is not set
+## end choice
+# CONFIG_NO_HZ is not set
+# CONFIG_HIGH_RES_TIMERS is not set
+
+##
+## file: lib/Kconfig.debug
+##
+# CONFIG_DEBUG_FS is not set
+# CONFIG_FRAME_POINTER is not set
+# CONFIG_SCHED_DEBUG is not set
+
+##
+## file: mm/Kconfig
+##
+# CONFIG_COMPACTION is not set
+# CONFIG_MIGRATION is not set
+# CONFIG_KSM is not set
+
+##
+## file: net/Kconfig
+##
+# CONFIG_WIRELESS is not set
+
+##
+## file: net/atm/Kconfig
+##
+# CONFIG_ATM is not set
+
+##
+## file: net/ax25/Kconfig
+##
+# CONFIG_HAMRADIO is not set
+
+##
+## file: net/batman-adv/Kconfig
+##
+# CONFIG_BATMAN_ADV is not set
+
+##
+## file: net/can/Kconfig
+##
+# CONFIG_CAN is not set
+
+##
+## file: net/ceph/Kconfig
+##
+# CONFIG_CEPH_LIB is not set
+
+##
+## file: net/dcb/Kconfig
+##
+# CONFIG_DCB is not set
+
+##
+## file: net/ieee802154/Kconfig
+##
+# CONFIG_IEEE802154 is not set
+
+##
+## file: net/ipv4/Kconfig
+##
+# CONFIG_IP_ADVANCED_ROUTER is not set
+# CONFIG_TCP_MD5SIG is not set
+
+##
+## file: net/ipv6/Kconfig
+##
+CONFIG_IPV6=m
+
+##
+## file: net/lapb/Kconfig
+##
+# CONFIG_LAPB is not set
+
+##
+## file: net/llc/Kconfig
+##
+# CONFIG_LLC2 is not set
+
+##
+## file: net/mac80211/Kconfig
+##
+# CONFIG_MAC80211 is not set
+
+##
+## file: net/nfc/Kconfig
+##
+# CONFIG_NFC is not set
+
+##
+## file: net/phonet/Kconfig
+##
+# CONFIG_PHONET is not set
+
+##
+## file: net/rds/Kconfig
+##
+# CONFIG_RDS is not set
+
+##
+## file: net/rfkill/Kconfig
+##
+# CONFIG_RFKILL is not set
+
+##
+## file: net/rxrpc/Kconfig
+##
+# CONFIG_AF_RXRPC is not set
+
+##
+## file: net/sctp/Kconfig
+##
+# CONFIG_IP_SCTP is not set
+
+##
+## file: net/tipc/Kconfig
+##
+# CONFIG_TIPC is not set
+
+##
+## file: net/wimax/Kconfig
+##
+# CONFIG_WIMAX is not set
+
+##
+## file: net/wireless/Kconfig
+##
+# CONFIG_CFG80211 is not set
+
+##
+## file: security/Kconfig
+##
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+
+##
+## file: sound/Kconfig
+##
+# CONFIG_SND is not set
+
+##
+## file: sound/oss/dmasound/Kconfig
+##
+CONFIG_DMASOUND_ATARI=m
+CONFIG_DMASOUND_PAULA=m
+CONFIG_DMASOUND_Q40=m
+
diff --git a/debian/config/m68k/defines b/debian/config/m68k/defines
new file mode 100644
index 000000000..82c0a2897
--- /dev/null
+++ b/debian/config/m68k/defines
@@ -0,0 +1,15 @@
+[base]
+cflags: -ffreestanding
+flavours:
+ m68k
+kernel-arch: m68k
+
+[build]
+image-file: vmlinux
+
+[image]
+suggests: vmelilo, fdutils
+install-stem: vmlinux
+
+[m68k_description]
+hardware: Motorola MC68020+ family
diff --git a/debian/config/mips/config b/debian/config/mips/config
new file mode 100644
index 000000000..d91768a35
--- /dev/null
+++ b/debian/config/mips/config
@@ -0,0 +1,13 @@
+##
+## file: arch/mips/Kconfig
+##
+## choice: Endianness selection
+CONFIG_CPU_BIG_ENDIAN=y
+# CONFIG_CPU_LITTLE_ENDIAN is not set
+## end choice
+
+##
+## file: drivers/net/ethernet/mellanox/mlx5/core/Kconfig
+##
+# CONFIG_MLX5_ESWITCH is not set
+
diff --git a/debian/config/mips/defines b/debian/config/mips/defines
new file mode 100644
index 000000000..e4cc96a70
--- /dev/null
+++ b/debian/config/mips/defines
@@ -0,0 +1,37 @@
+[base]
+flavours:
+ 4kc-malta
+ 5kc-malta
+ octeon
+kernel-arch: mips
+
+[build]
+image-file: vmlinux
+
+[image]
+install-stem: vmlinux
+
+[4kc-malta_description]
+hardware: MIPS Malta
+hardware-long: MIPS Malta boards
+
+[4kc-malta_image]
+configs:
+ kernelarch-mips/config.malta
+ kernelarch-mips/config.mips32r2
+
+[5kc-malta_description]
+hardware: MIPS Malta (64-bit)
+hardware-long: MIPS Malta boards (64-bit)
+
+[5kc-malta_image]
+configs:
+ kernelarch-mips/config.malta
+ kernelarch-mips/config.mips64r2
+
+[octeon_description]
+hardware: Octeon
+hardware-long: Cavium Networks Octeon
+
+[octeon_image]
+configs: kernelarch-mips/config.octeon
diff --git a/debian/config/mips64/config b/debian/config/mips64/config
new file mode 100644
index 000000000..5942c9ab9
--- /dev/null
+++ b/debian/config/mips64/config
@@ -0,0 +1,8 @@
+##
+## file: arch/mips/Kconfig
+##
+## choice: Endianness selection
+CONFIG_CPU_BIG_ENDIAN=y
+# CONFIG_CPU_LITTLE_ENDIAN is not set
+## end choice
+
diff --git a/debian/config/mips64/defines b/debian/config/mips64/defines
new file mode 100644
index 000000000..a43b9b504
--- /dev/null
+++ b/debian/config/mips64/defines
@@ -0,0 +1,27 @@
+[base]
+flavours:
+ 5kc-malta
+ octeon
+kernel-arch: mips
+
+[build]
+image-file: vmlinux
+
+[image]
+install-stem: vmlinux
+
+[5kc-malta_description]
+hardware: MIPS Malta
+hardware-long: MIPS Malta boards
+
+[5kc-malta_image]
+configs:
+ kernelarch-mips/config.malta
+ kernelarch-mips/config.mips64r2
+
+[octeon_description]
+hardware: Octeon
+hardware-long: Cavium Networks Octeon
+
+[octeon_image]
+configs: kernelarch-mips/config.octeon
diff --git a/debian/config/mips64el/config b/debian/config/mips64el/config
new file mode 100644
index 000000000..4807b611e
--- /dev/null
+++ b/debian/config/mips64el/config
@@ -0,0 +1,12 @@
+##
+## file: arch/mips/Kconfig
+##
+## choice: Endianness selection
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_CPU_LITTLE_ENDIAN=y
+## end choice
+## choice: CPU type
+# CONFIG_CPU_MIPS64_R1 is not set
+CONFIG_CPU_MIPS64_R2=y
+## end choice
+
diff --git a/debian/config/mips64el/defines b/debian/config/mips64el/defines
new file mode 100644
index 000000000..1202eaf23
--- /dev/null
+++ b/debian/config/mips64el/defines
@@ -0,0 +1,35 @@
+[base]
+flavours:
+ 5kc-malta
+ loongson-3
+ octeon
+kernel-arch: mips
+
+[build]
+image-file: vmlinux
+
+[image]
+install-stem: vmlinux
+
+[5kc-malta_description]
+hardware: MIPS Malta
+hardware-long: MIPS Malta boards
+
+[5kc-malta_image]
+configs:
+ kernelarch-mips/config.malta
+ kernelarch-mips/config.mips64r2
+
+[loongson-3_description]
+hardware: Loongson 3A/3B
+hardware-long: Loongson 3A or 3B based systems (e.g. from Loongson or Lemote)
+
+[loongson-3_image]
+configs: kernelarch-mips/config.loongson-3
+
+[octeon_description]
+hardware: Octeon
+hardware-long: Cavium Networks Octeon
+
+[octeon_image]
+configs: kernelarch-mips/config.octeon
diff --git a/debian/config/mips64r6/config b/debian/config/mips64r6/config
new file mode 100644
index 000000000..5942c9ab9
--- /dev/null
+++ b/debian/config/mips64r6/config
@@ -0,0 +1,8 @@
+##
+## file: arch/mips/Kconfig
+##
+## choice: Endianness selection
+CONFIG_CPU_BIG_ENDIAN=y
+# CONFIG_CPU_LITTLE_ENDIAN is not set
+## end choice
+
diff --git a/debian/config/mips64r6/defines b/debian/config/mips64r6/defines
new file mode 100644
index 000000000..a38a3b721
--- /dev/null
+++ b/debian/config/mips64r6/defines
@@ -0,0 +1,20 @@
+[base]
+flavours:
+ mips64r6
+kernel-arch: mips
+
+[build]
+image-file: vmlinux
+
+[image]
+install-stem: vmlinux
+
+[mips64r6_description]
+hardware: MIPS R6 (64 bit, big endian)
+hardware-long: MIPS R6 (64 bit, big endian)
+
+[mips64r6_image]
+configs:
+ kernelarch-mips/config.boston
+ kernelarch-mips/config.mips64r6
+
diff --git a/debian/config/mips64r6el/config b/debian/config/mips64r6el/config
new file mode 100644
index 000000000..7f124deb6
--- /dev/null
+++ b/debian/config/mips64r6el/config
@@ -0,0 +1,8 @@
+##
+## file: arch/mips/Kconfig
+##
+## choice: Endianness selection
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_CPU_LITTLE_ENDIAN=y
+## end choice
+
diff --git a/debian/config/mips64r6el/defines b/debian/config/mips64r6el/defines
new file mode 100644
index 000000000..67b77d8db
--- /dev/null
+++ b/debian/config/mips64r6el/defines
@@ -0,0 +1,20 @@
+[base]
+flavours:
+ mips64r6el
+kernel-arch: mips
+
+[build]
+image-file: vmlinux
+
+[image]
+install-stem: vmlinux
+
+[mips64r6el_description]
+hardware: MIPS R6 (64 bit, little endian)
+hardware-long: MIPS R6 (64 bit, little endian)
+
+[mips64r6el_image]
+configs:
+ kernelarch-mips/config.boston
+ kernelarch-mips/config.mips64r6
+
diff --git a/debian/config/mipsel/config b/debian/config/mipsel/config
new file mode 100644
index 000000000..3a576b57a
--- /dev/null
+++ b/debian/config/mipsel/config
@@ -0,0 +1,13 @@
+##
+## file: arch/mips/Kconfig
+##
+## choice: Endianness selection
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_CPU_LITTLE_ENDIAN=y
+## end choice
+
+##
+## file: drivers/net/ethernet/mellanox/mlx5/core/Kconfig
+##
+# CONFIG_MLX5_ESWITCH is not set
+
diff --git a/debian/config/mipsel/defines b/debian/config/mipsel/defines
new file mode 100644
index 000000000..20d90ad3f
--- /dev/null
+++ b/debian/config/mipsel/defines
@@ -0,0 +1,45 @@
+[base]
+flavours:
+ 4kc-malta
+ 5kc-malta
+ loongson-3
+ octeon
+kernel-arch: mips
+
+[build]
+image-file: vmlinux
+
+[image]
+install-stem: vmlinux
+
+[4kc-malta_description]
+hardware: MIPS Malta
+hardware-long: MIPS Malta boards
+
+[4kc-malta_image]
+configs:
+ kernelarch-mips/config.malta
+ kernelarch-mips/config.mips32r2
+
+[5kc-malta_description]
+hardware: MIPS Malta (64-bit)
+hardware-long: MIPS Malta boards (64-bit)
+
+[5kc-malta_image]
+configs:
+ kernelarch-mips/config.malta
+ kernelarch-mips/config.mips64r2
+
+[loongson-3_description]
+hardware: Loongson 3A/3B
+hardware-long: Loongson 3A or 3B based systems (e.g. from Loongson or Lemote)
+
+[loongson-3_image]
+configs: kernelarch-mips/config.loongson-3
+
+[octeon_description]
+hardware: Octeon
+hardware-long: Cavium Networks Octeon
+
+[octeon_image]
+configs: kernelarch-mips/config.octeon
diff --git a/debian/config/mipsn32/defines b/debian/config/mipsn32/defines
new file mode 100644
index 000000000..fa9b8af89
--- /dev/null
+++ b/debian/config/mipsn32/defines
@@ -0,0 +1,4 @@
+[base]
+kernel-arch: mips
+featuresets:
+# empty; mipsn32 must be part of a multiarch installation with a mips64 kernel
diff --git a/debian/config/mipsn32el/defines b/debian/config/mipsn32el/defines
new file mode 100644
index 000000000..57d6f4922
--- /dev/null
+++ b/debian/config/mipsn32el/defines
@@ -0,0 +1,4 @@
+[base]
+kernel-arch: mips
+featuresets:
+# empty; mipsn32el must be part of a multiarch installation with a mips64el kernel
diff --git a/debian/config/mipsn32r6/defines b/debian/config/mipsn32r6/defines
new file mode 100644
index 000000000..2ba5f42be
--- /dev/null
+++ b/debian/config/mipsn32r6/defines
@@ -0,0 +1,4 @@
+[base]
+kernel-arch: mips
+featuresets:
+# empty; mipsn32r6 must be part of a multiarch installation with a mips64r6 kernel
diff --git a/debian/config/mipsn32r6el/defines b/debian/config/mipsn32r6el/defines
new file mode 100644
index 000000000..f4c8a96d8
--- /dev/null
+++ b/debian/config/mipsn32r6el/defines
@@ -0,0 +1,4 @@
+[base]
+kernel-arch: mips
+featuresets:
+# empty; mipsn32r6el must be part of a multiarch installation with a mips64r6el kernel
diff --git a/debian/config/mipsr6/config b/debian/config/mipsr6/config
new file mode 100644
index 000000000..5942c9ab9
--- /dev/null
+++ b/debian/config/mipsr6/config
@@ -0,0 +1,8 @@
+##
+## file: arch/mips/Kconfig
+##
+## choice: Endianness selection
+CONFIG_CPU_BIG_ENDIAN=y
+# CONFIG_CPU_LITTLE_ENDIAN is not set
+## end choice
+
diff --git a/debian/config/mipsr6/defines b/debian/config/mipsr6/defines
new file mode 100644
index 000000000..77b095baa
--- /dev/null
+++ b/debian/config/mipsr6/defines
@@ -0,0 +1,30 @@
+[base]
+flavours:
+ mips32r6
+ mips64r6
+kernel-arch: mips
+
+[build]
+image-file: vmlinux
+
+[image]
+install-stem: vmlinux
+
+[mips32r6_description]
+hardware: MIPS R6 (32 bit, big endian)
+hardware-long: MIPS R6 (32 bit, big endian)
+
+[mips32r6_image]
+configs:
+ kernelarch-mips/config.boston
+ kernelarch-mips/config.mips32r6
+
+[mips64r6_description]
+hardware: MIPS R6 (64 bit, big endian)
+hardware-long: MIPS R6 (64 bit, big endian)
+
+[mips64r6_image]
+configs:
+ kernelarch-mips/config.boston
+ kernelarch-mips/config.mips64r6
+
diff --git a/debian/config/mipsr6el/config b/debian/config/mipsr6el/config
new file mode 100644
index 000000000..7f124deb6
--- /dev/null
+++ b/debian/config/mipsr6el/config
@@ -0,0 +1,8 @@
+##
+## file: arch/mips/Kconfig
+##
+## choice: Endianness selection
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_CPU_LITTLE_ENDIAN=y
+## end choice
+
diff --git a/debian/config/mipsr6el/defines b/debian/config/mipsr6el/defines
new file mode 100644
index 000000000..78f7c521a
--- /dev/null
+++ b/debian/config/mipsr6el/defines
@@ -0,0 +1,30 @@
+[base]
+flavours:
+ mips32r6el
+ mips64r6el
+kernel-arch: mips
+
+[build]
+image-file: vmlinux
+
+[image]
+install-stem: vmlinux
+
+[mips32r6el_description]
+hardware: MIPS R6 (32 bit, little endian)
+hardware-long: MIPS R6 (32 bit, little endian)
+
+[mips32r6el_image]
+configs:
+ kernelarch-mips/config.boston
+ kernelarch-mips/config.mips32r6
+
+[mips64r6el_description]
+hardware: MIPS R6 (64 bit, little endian)
+hardware-long: MIPS R6 (64 bit, little endian)
+
+[mips64r6el_image]
+configs:
+ kernelarch-mips/config.boston
+ kernelarch-mips/config.mips64r6
+
diff --git a/debian/config/powerpc/config.powerpc b/debian/config/powerpc/config.powerpc
new file mode 100644
index 000000000..63a07fb2e
--- /dev/null
+++ b/debian/config/powerpc/config.powerpc
@@ -0,0 +1,113 @@
+##
+## file: arch/powerpc/Kconfig
+##
+CONFIG_HIGHMEM=y
+# CONFIG_ISA is not set
+
+##
+## file: arch/powerpc/platforms/512x/Kconfig
+##
+# CONFIG_MPC5121_ADS is not set
+
+##
+## file: arch/powerpc/platforms/52xx/Kconfig
+##
+CONFIG_PPC_MPC52xx=y
+# CONFIG_PPC_MPC5200_SIMPLE is not set
+CONFIG_PPC_EFIKA=y
+# CONFIG_PPC_LITE5200 is not set
+CONFIG_PPC_MPC5200_BUGFIX=y
+
+##
+## file: arch/powerpc/platforms/chrp/Kconfig
+##
+CONFIG_PPC_CHRP=y
+
+##
+## file: arch/powerpc/platforms/Kconfig.cputype
+##
+# CONFIG_PPC64 is not set
+## choice: Processor Type
+# CONFIG_PPC_85xx is not set
+# CONFIG_PPC_8xx is not set
+# CONFIG_40x is not set
+# CONFIG_44x is not set
+# CONFIG_E200 is not set
+## end choice
+CONFIG_ALTIVEC=y
+# CONFIG_SMP is not set
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_PATA_MPC52xx=m
+
+##
+## file: drivers/block/Kconfig
+##
+CONFIG_MAC_FLOPPY=y
+
+##
+## file: drivers/dma/Kconfig
+##
+CONFIG_DMADEVICES=y
+
+##
+## file: drivers/dma/bestcomm/Kconfig
+##
+CONFIG_PPC_BESTCOMM=m
+
+##
+## file: drivers/macintosh/Kconfig
+##
+CONFIG_SENSORS_AMS=m
+CONFIG_SENSORS_AMS_PMU=y
+CONFIG_SENSORS_AMS_I2C=y
+
+##
+## file: drivers/net/ethernet/freescale/Kconfig
+##
+CONFIG_FEC_MPC52xx=m
+CONFIG_FEC_MPC52xx_MDIO=y
+
+##
+## file: drivers/spi/Kconfig
+##
+CONFIG_SPI_MPC52xx_PSC=m
+
+##
+## file: drivers/tty/serial/Kconfig
+##
+CONFIG_SERIAL_MPC52xx=y
+CONFIG_SERIAL_MPC52xx_CONSOLE=y
+CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+CONFIG_FB_CONTROL=y
+CONFIG_FB_PLATINUM=y
+CONFIG_FB_VALKYRIE=y
+CONFIG_FB_CT65550=y
+CONFIG_FB_IMSTT=y
+CONFIG_FB_MATROX=y
+CONFIG_FB_ATY128=y
+CONFIG_FB_ATY=y
+CONFIG_FB_SIS=y
+CONFIG_FB_3DFX=y
+CONFIG_FB_VOODOO1=y
+
+##
+## file: init/Kconfig
+##
+CONFIG_SYSFS_SYSCALL=y
+
+##
+## file: mm/Kconfig
+##
+## choice: Memory model
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+## end choice
+
diff --git a/debian/config/powerpc/config.powerpc-smp b/debian/config/powerpc/config.powerpc-smp
new file mode 100644
index 000000000..dfbaaf6d2
--- /dev/null
+++ b/debian/config/powerpc/config.powerpc-smp
@@ -0,0 +1,6 @@
+##
+## file: arch/powerpc/platforms/Kconfig.cputype
+##
+CONFIG_SMP=y
+CONFIG_NR_CPUS=4
+
diff --git a/debian/config/powerpc/defines b/debian/config/powerpc/defines
new file mode 100644
index 000000000..40d8c70c7
--- /dev/null
+++ b/debian/config/powerpc/defines
@@ -0,0 +1,31 @@
+[base]
+flavours:
+ powerpc
+ powerpc-smp
+ powerpc64
+kernel-arch: powerpc
+
+[build]
+image-file: vmlinux
+vdso: true
+
+[image]
+configs:
+bootloaders: grub-ieee1275
+suggests: mkvmlinuz
+install-stem: vmlinux
+
+[powerpc_description]
+hardware: uniprocessor 32-bit PowerPC
+
+[powerpc-smp_description]
+hardware: multiprocessor 32-bit PowerPC
+
+[powerpc-smp_image]
+configs: powerpc/config.powerpc powerpc/config.powerpc-smp
+
+[powerpc64_description]
+hardware: 64-bit PowerPC
+
+[powerpc64_image]
+configs: kernelarch-powerpc/config-arch-64 kernelarch-powerpc/config-arch-64-be
diff --git a/debian/config/powerpcspe/config b/debian/config/powerpcspe/config
new file mode 100644
index 000000000..8d3fcc54a
--- /dev/null
+++ b/debian/config/powerpcspe/config
@@ -0,0 +1,33 @@
+##
+## file: arch/powerpc/Kconfig
+##
+CONFIG_HIGHMEM=y
+CONFIG_CMDLINE_BOOL=y
+CONFIG_CMDLINE="console=ttyS0,115200"
+
+##
+## file: arch/powerpc/platforms/85xx/Kconfig
+##
+CONFIG_MPC8540_ADS=y
+CONFIG_MPC8560_ADS=y
+CONFIG_MPC85xx_CDS=y
+CONFIG_MPC85xx_MDS=y
+CONFIG_MPC8536_DS=y
+CONFIG_MPC85xx_DS=y
+CONFIG_MPC85xx_RDB=y
+
+##
+## file: arch/powerpc/platforms/Kconfig.cputype
+##
+## choice: Processor Type
+CONFIG_PPC_85xx=y
+## end choice
+CONFIG_PHYS_64BIT=y
+CONFIG_SMP=y
+CONFIG_NR_CPUS=4
+
+##
+## file: drivers/gpio/Kconfig
+##
+CONFIG_GPIOLIB=y
+
diff --git a/debian/config/powerpcspe/defines b/debian/config/powerpcspe/defines
new file mode 100644
index 000000000..adb4bea07
--- /dev/null
+++ b/debian/config/powerpcspe/defines
@@ -0,0 +1,15 @@
+[base]
+flavours:
+ powerpcspe
+kernel-arch: powerpc
+
+[build]
+image-file: vmlinux
+vdso: true
+
+[image]
+suggests: mkvmlinuz
+install-stem: vmlinux
+
+[description]
+hardware: 32-bit PowerPC with SPE (instead of AltiVec) with SMP support
diff --git a/debian/config/ppc64/defines b/debian/config/ppc64/defines
new file mode 100644
index 000000000..5ed24f828
--- /dev/null
+++ b/debian/config/ppc64/defines
@@ -0,0 +1,20 @@
+[base]
+flavours:
+ powerpc64
+kernel-arch: powerpc
+
+[build]
+image-file: vmlinux
+vdso: true
+
+[image]
+configs:
+bootloaders: grub-ieee1275
+suggests: mkvmlinuz
+install-stem: vmlinux
+
+[powerpc64_description]
+hardware: 64-bit PowerPC
+
+[powerpc64_image]
+configs: kernelarch-powerpc/config-arch-64 kernelarch-powerpc/config-arch-64-be
diff --git a/debian/config/ppc64el/defines b/debian/config/ppc64el/defines
new file mode 100644
index 000000000..96c4ae089
--- /dev/null
+++ b/debian/config/ppc64el/defines
@@ -0,0 +1,20 @@
+[base]
+flavours:
+ powerpc64le
+kernel-arch: powerpc
+
+[build]
+image-file: vmlinux
+vdso: true
+
+[image]
+configs:
+bootloaders: grub-ieee1275
+suggests: mkvmlinuz
+install-stem: vmlinux
+
+[powerpc64le_description]
+hardware: Little-endian 64-bit PowerPC
+
+[powerpc64le_image]
+configs: kernelarch-powerpc/config-arch-64 kernelarch-powerpc/config-arch-64-le
diff --git a/debian/config/riscv64/config b/debian/config/riscv64/config
new file mode 100644
index 000000000..26f33338b
--- /dev/null
+++ b/debian/config/riscv64/config
@@ -0,0 +1,58 @@
+##
+## file: arch/riscv/Kconfig
+##
+CONFIG_SMP=y
+CONFIG_PCI=y
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_SATA_AHCI_PLATFORM=m
+
+##
+## file: drivers/gpu/drm/Kconfig
+##
+CONFIG_DRM=m
+CONFIG_DRM_RADEON=m
+
+##
+## file: drivers/irqchip/Kconfig
+##
+CONFIG_SIFIVE_PLIC=y
+
+##
+## file: drivers/net/ethernet/cadence/Kconfig
+##
+CONFIG_MACB=m
+
+##
+## file: drivers/pci/controller/Kconfig
+##
+CONFIG_PCIE_XILINX=y
+
+##
+## file: drivers/tty/hvc/Kconfig
+##
+CONFIG_HVC_RISCV_SBI=y
+
+##
+## file: drivers/tty/serial/8250/Kconfig
+##
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_OF_PLATFORM=y
+
+##
+## file: drivers/usb/Kconfig
+##
+CONFIG_USB=m
+
+##
+## file: drivers/usb/host/Kconfig
+##
+CONFIG_USB_XHCI_PLATFORM=m
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_HCD_PLATFORM=m
+CONFIG_USB_OHCI_HCD=m
+CONFIG_USB_OHCI_HCD_PLATFORM=m
+
diff --git a/debian/config/riscv64/defines b/debian/config/riscv64/defines
new file mode 100644
index 000000000..fccfd3fab
--- /dev/null
+++ b/debian/config/riscv64/defines
@@ -0,0 +1,15 @@
+[base]
+kernel-arch: riscv
+featuresets:
+ none
+
+[build]
+image-file: vmlinux
+vdso: true
+
+[image]
+install-stem: vmlinux
+
+[riscv64_description]
+hardware: 64-bit RISC-V platforms
+hardware-long: 64-bit RISC-V platforms
diff --git a/debian/config/riscv64/none/defines b/debian/config/riscv64/none/defines
new file mode 100644
index 000000000..5070c6bc0
--- /dev/null
+++ b/debian/config/riscv64/none/defines
@@ -0,0 +1,3 @@
+[base]
+flavours:
+ riscv64
diff --git a/debian/config/s390/defines b/debian/config/s390/defines
new file mode 100644
index 000000000..5b14fa7a4
--- /dev/null
+++ b/debian/config/s390/defines
@@ -0,0 +1,4 @@
+[base]
+kernel-arch: s390
+featuresets:
+# empty; s390 must be part of a multiarch installation with an s390x kernel
diff --git a/debian/config/s390x/config b/debian/config/s390x/config
new file mode 100644
index 000000000..f7dcd7130
--- /dev/null
+++ b/debian/config/s390x/config
@@ -0,0 +1,222 @@
+##
+## file: arch/s390/Kconfig
+##
+## choice: Processor type
+CONFIG_MARCH_Z900=y
+# CONFIG_MARCH_Z990 is not set
+# CONFIG_MARCH_Z9_109 is not set
+# CONFIG_MARCH_Z10 is not set
+## end choice
+CONFIG_COMPAT=y
+CONFIG_SMP=y
+CONFIG_NR_CPUS=256
+CONFIG_HOTPLUG_CPU=y
+CONFIG_SCHED_TOPOLOGY=y
+CONFIG_PACK_STACK=y
+# CONFIG_CHECK_STACK is not set
+CONFIG_QDIO=y
+CONFIG_PCI=y
+CONFIG_PCI_NR_FUNCTIONS=64
+CONFIG_CHSC_SCH=m
+CONFIG_SCM_BUS=y
+CONFIG_EADM_SCH=m
+CONFIG_SECCOMP=y
+CONFIG_PFAULT=y
+CONFIG_CMM=y
+CONFIG_CMM_IUCV=y
+CONFIG_APPLDATA_BASE=y
+CONFIG_APPLDATA_MEM=m
+CONFIG_APPLDATA_OS=m
+CONFIG_APPLDATA_NET_SUM=m
+CONFIG_S390_HYPFS_FS=y
+CONFIG_S390_GUEST=y
+
+##
+## file: arch/s390/Kconfig.debug
+##
+# CONFIG_S390_PTDUMP is not set
+
+##
+## file: arch/s390/kvm/Kconfig
+##
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=m
+# CONFIG_KVM_S390_UCONTROL is not set
+
+##
+## file: block/partitions/Kconfig
+##
+CONFIG_IBM_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+
+##
+## file: drivers/block/Kconfig
+##
+# CONFIG_CDROM_PKTCDVD is not set
+
+##
+## file: drivers/crypto/Kconfig
+##
+CONFIG_ZCRYPT=m
+CONFIG_CRYPTO_SHA1_S390=m
+CONFIG_CRYPTO_SHA256_S390=m
+CONFIG_CRYPTO_SHA512_S390=m
+CONFIG_CRYPTO_DES_S390=m
+CONFIG_CRYPTO_AES_S390=m
+CONFIG_S390_PRNG=m
+
+##
+## file: drivers/input/touchscreen/Kconfig
+##
+# CONFIG_INPUT_TOUCHSCREEN is not set
+
+##
+## file: drivers/memstick/Kconfig
+##
+# CONFIG_MEMSTICK is not set
+
+##
+## file: drivers/net/appletalk/Kconfig
+##
+# CONFIG_ATALK is not set
+
+##
+## file: drivers/net/ppp/Kconfig
+##
+# CONFIG_PPP is not set
+
+##
+## file: drivers/net/slip/Kconfig
+##
+# CONFIG_SLIP is not set
+
+##
+## file: drivers/net/wan/Kconfig
+##
+# CONFIG_WAN is not set
+
+##
+## file: drivers/pci/Kconfig
+##
+# CONFIG_PCI_QUIRKS is not set
+
+##
+## file: drivers/pci/hotplug/Kconfig
+##
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_S390=y
+
+##
+## file: drivers/s390/block/Kconfig
+##
+CONFIG_BLK_DEV_XPRAM=m
+CONFIG_DCSSBLK=m
+CONFIG_DASD=m
+# CONFIG_DASD_PROFILE is not set
+CONFIG_DASD_ECKD=m
+CONFIG_DASD_FBA=m
+CONFIG_DASD_DIAG=m
+# CONFIG_DASD_EER is not set
+CONFIG_SCM_BLOCK=m
+
+##
+## file: drivers/s390/char/Kconfig
+##
+CONFIG_TN3270=y
+CONFIG_TN3270_TTY=y
+CONFIG_TN3270_FS=m
+CONFIG_TN3270_CONSOLE=y
+CONFIG_TN3215=y
+CONFIG_TN3215_CONSOLE=y
+CONFIG_SCLP_TTY=y
+CONFIG_SCLP_CONSOLE=y
+CONFIG_SCLP_VT220_TTY=y
+CONFIG_SCLP_VT220_CONSOLE=y
+CONFIG_SCLP_ASYNC=m
+CONFIG_S390_TAPE=m
+CONFIG_S390_TAPE_34XX=m
+CONFIG_S390_TAPE_3590=m
+CONFIG_VMLOGRDR=m
+CONFIG_VMCP=y
+CONFIG_MONREADER=m
+CONFIG_MONWRITER=m
+CONFIG_S390_VMUR=m
+
+##
+## file: drivers/s390/net/Kconfig
+##
+CONFIG_LCS=m
+CONFIG_CTCM=m
+CONFIG_NETIUCV=m
+CONFIG_SMSGIUCV=y
+CONFIG_QETH=m
+CONFIG_QETH_L2=m
+CONFIG_QETH_L3=m
+
+##
+## file: drivers/scsi/Kconfig
+##
+CONFIG_ZFCP=m
+
+##
+## file: drivers/tty/hvc/Kconfig
+##
+CONFIG_HVC_IUCV=y
+
+##
+## file: drivers/video/console/Kconfig
+##
+# CONFIG_FRAMEBUFFER_CONSOLE is not set
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+# CONFIG_FB is not set
+
+##
+## file: drivers/watchdog/Kconfig
+##
+CONFIG_DIAG288_WATCHDOG=m
+
+##
+## file: init/Kconfig
+##
+## choice: Cputime accounting
+CONFIG_VIRT_CPU_ACCOUNTING_NATIVE=y
+## end choice
+
+##
+## file: mm/Kconfig
+##
+## choice: Memory model
+# CONFIG_FLATMEM_MANUAL is not set
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+CONFIG_SPARSEMEM_MANUAL=y
+## end choice
+
+##
+## file: net/atm/Kconfig
+##
+# CONFIG_ATM is not set
+
+##
+## file: net/decnet/Kconfig
+##
+# CONFIG_DECNET is not set
+
+##
+## file: net/iucv/Kconfig
+##
+CONFIG_IUCV=y
+CONFIG_AFIUCV=m
+
+##
+## file: net/lapb/Kconfig
+##
+# CONFIG_LAPB is not set
+
+##
+## file: net/llc/Kconfig
+##
+# CONFIG_LLC2 is not set
+
diff --git a/debian/config/s390x/defines b/debian/config/s390x/defines
new file mode 100644
index 000000000..84ee6d0b4
--- /dev/null
+++ b/debian/config/s390x/defines
@@ -0,0 +1,21 @@
+[base]
+flavours:
+ s390x
+kernel-arch: s390
+
+[build]
+image-file: arch/s390/boot/bzImage
+vdso: true
+
+[image]
+bootloaders: s390-tools
+install-stem: vmlinuz
+
+[relations]
+headers%gcc-8: linux-compiler-gcc-8-s390
+
+[s390x_build]
+debug-info: true
+
+[s390x_description]
+hardware: IBM zSeries
diff --git a/debian/config/sh3/defines b/debian/config/sh3/defines
new file mode 100644
index 000000000..71cbe648c
--- /dev/null
+++ b/debian/config/sh3/defines
@@ -0,0 +1,4 @@
+[base]
+kernel-arch: sh
+featuresets:
+# empty; just building headers yet
diff --git a/debian/config/sh4/config b/debian/config/sh4/config
new file mode 100644
index 000000000..453823633
--- /dev/null
+++ b/debian/config/sh4/config
@@ -0,0 +1,55 @@
+##
+## file: arch/Kconfig
+##
+# CONFIG_STACKPROTECTOR_STRONG is not set
+
+##
+## file: arch/sh/Kconfig
+##
+CONFIG_KEXEC=y
+CONFIG_SECCOMP=y
+
+##
+## file: arch/sh/Kconfig.cpu
+##
+## choice: Endianness selection
+CONFIG_CPU_LITTLE_ENDIAN=y
+## end choice
+CONFIG_SH_FPU=y
+CONFIG_SH_STORE_QUEUES=y
+
+##
+## file: arch/sh/drivers/Kconfig
+##
+CONFIG_HEARTBEAT=y
+
+##
+## file: arch/sh/mm/Kconfig
+##
+## choice: Cache mode
+CONFIG_CACHE_WRITEBACK=y
+## end choice
+
+##
+## file: drivers/cpufreq/Kconfig
+##
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_SH_CPU_FREQ=y
+
+##
+## file: drivers/pci/pcie/Kconfig
+##
+# CONFIG_PCIEPORTBUS is not set
+
+##
+## file: kernel/Kconfig.hz
+##
+## choice: Timer frequency
+CONFIG_HZ_250=y
+## end choice
+
+##
+## file: kernel/irq/Kconfig
+##
+CONFIG_SPARSE_IRQ=y
+
diff --git a/debian/config/sh4/config.sh7751r b/debian/config/sh4/config.sh7751r
new file mode 100644
index 000000000..99c496e93
--- /dev/null
+++ b/debian/config/sh4/config.sh7751r
@@ -0,0 +1,168 @@
+##
+## file: arch/sh/Kconfig
+##
+## choice: Processor sub-type selection
+CONFIG_CPU_SUBTYPE_SH7751R=y
+## end choice
+CONFIG_SH_PCLK_FREQ=60000000
+CONFIG_PCI=y
+
+##
+## file: arch/sh/boards/Kconfig
+##
+CONFIG_SH_RTS7751R2D=y
+
+##
+## file: arch/sh/boards/mach-r2d/Kconfig
+##
+CONFIG_RTS7751R2D_PLUS=y
+
+##
+## file: arch/sh/Kconfig.cpu
+##
+## choice: Endianness selection
+CONFIG_CPU_LITTLE_ENDIAN=y
+## end choice
+CONFIG_SH_FPU=y
+
+##
+## file: arch/sh/mm/Kconfig
+##
+CONFIG_MMU=y
+CONFIG_FORCE_MAX_ZONEORDER=11
+CONFIG_MEMORY_START=0x0c000000
+CONFIG_MEMORY_SIZE=0x04000000
+CONFIG_VSYSCALL=y
+## choice: Kernel page size
+CONFIG_PAGE_SIZE_4KB=y
+## end choice
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_ATA=y
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_SATA_PMP=y
+CONFIG_ATA_SFF=y
+CONFIG_PATA_PLATFORM=y
+
+##
+## file: drivers/clocksource/Kconfig
+##
+CONFIG_SH_TIMER_TMU=y
+
+##
+## file: drivers/hid/Kconfig
+##
+CONFIG_HID=y
+
+##
+## file: drivers/hid/usbhid/Kconfig
+##
+CONFIG_USB_HID=y
+
+##
+## file: drivers/input/Kconfig
+##
+CONFIG_INPUT=y
+
+##
+## file: drivers/input/keyboard/Kconfig
+##
+CONFIG_INPUT_KEYBOARD=y
+
+##
+## file: drivers/mfd/Kconfig
+##
+CONFIG_MFD_SM501=y
+
+##
+## file: drivers/mtd/Kconfig
+##
+CONFIG_MTD=y
+CONFIG_MTD_BLOCK=y
+
+##
+## file: drivers/mtd/chips/Kconfig
+##
+CONFIG_MTD_CFI=y
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+CONFIG_MTD_CFI_AMDSTD=y
+
+##
+## file: drivers/mtd/maps/Kconfig
+##
+CONFIG_MTD_PHYSMAP=y
+
+##
+## file: drivers/net/Kconfig
+##
+CONFIG_NETDEVICES=y
+
+##
+## file: drivers/net/ethernet/realtek/Kconfig
+##
+CONFIG_8139CP=y
+
+##
+## file: drivers/rtc/Kconfig
+##
+CONFIG_RTC_DRV_R9701=y
+# CONFIG_RTC_DRV_SH is not set
+# CONFIG_RTC_DRV_GENERIC is not set
+
+##
+## file: drivers/scsi/Kconfig
+##
+CONFIG_SCSI=y
+CONFIG_BLK_DEV_SD=y
+
+##
+## file: drivers/spi/Kconfig
+##
+CONFIG_SPI=y
+CONFIG_SPI_BITBANG=y
+CONFIG_SPI_SH_SCI=y
+
+##
+## file: drivers/tty/Kconfig
+##
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+
+##
+## file: drivers/tty/serial/Kconfig
+##
+CONFIG_SERIAL_SH_SCI=y
+CONFIG_SERIAL_SH_SCI_NR_UARTS=6
+CONFIG_SERIAL_SH_SCI_CONSOLE=y
+
+##
+## file: drivers/usb/Kconfig
+##
+CONFIG_USB_SUPPORT=y
+CONFIG_USB=y
+
+##
+## file: drivers/usb/host/Kconfig
+##
+CONFIG_USB_OHCI_HCD=y
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+CONFIG_FB_SM501=y
+
+##
+## file: mm/Kconfig
+##
+## choice: Memory model
+CONFIG_FLATMEM_MANUAL=y
+## end choice
+
diff --git a/debian/config/sh4/config.sh7785lcr b/debian/config/sh4/config.sh7785lcr
new file mode 100644
index 000000000..6d1175949
--- /dev/null
+++ b/debian/config/sh4/config.sh7785lcr
@@ -0,0 +1,222 @@
+##
+## file: arch/sh/Kconfig
+##
+## choice: Processor sub-type selection
+CONFIG_CPU_SUBTYPE_SH7785=y
+## end choice
+CONFIG_SH_PCLK_FREQ=50000000
+CONFIG_PCI=y
+
+##
+## file: arch/sh/boards/Kconfig
+##
+CONFIG_SH_SH7785LCR=y
+
+##
+## file: arch/sh/Kconfig.cpu
+##
+## choice: Endianness selection
+CONFIG_CPU_LITTLE_ENDIAN=y
+## end choice
+CONFIG_SH_FPU=y
+CONFIG_SH_STORE_QUEUES=y
+
+##
+## file: arch/sh/mm/Kconfig
+##
+CONFIG_MMU=y
+CONFIG_FORCE_MAX_ZONEORDER=11
+CONFIG_MEMORY_START=0x48000000
+CONFIG_MEMORY_SIZE=0x18000000
+CONFIG_VSYSCALL=y
+## choice: Kernel page size
+CONFIG_PAGE_SIZE_4KB=y
+## end choice
+## choice: HugeTLB page size
+CONFIG_HUGETLB_PAGE_SIZE_64K=y
+## end choice
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_ATA=y
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_SATA_PMP=y
+CONFIG_ATA_SFF=y
+CONFIG_SATA_SIL=y
+
+##
+## file: drivers/clocksource/Kconfig
+##
+CONFIG_SH_TIMER_TMU=y
+
+##
+## file: drivers/dma/Kconfig
+##
+CONFIG_DMADEVICES=y
+
+##
+## file: drivers/hid/Kconfig
+##
+CONFIG_HID=y
+
+##
+## file: drivers/hid/usbhid/Kconfig
+##
+CONFIG_USB_HID=y
+
+##
+## file: drivers/i2c/Kconfig
+##
+CONFIG_I2C=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_HELPER_AUTO=y
+
+##
+## file: drivers/i2c/algos/Kconfig
+##
+CONFIG_I2C_ALGOPCA=y
+
+##
+## file: drivers/i2c/busses/Kconfig
+##
+CONFIG_I2C_PCA_PLATFORM=y
+
+##
+## file: drivers/input/Kconfig
+##
+CONFIG_INPUT=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_EVDEV=y
+
+##
+## file: drivers/input/keyboard/Kconfig
+##
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+
+##
+## file: drivers/input/mouse/Kconfig
+##
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=y
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+
+##
+## file: drivers/input/serio/Kconfig
+##
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=y
+CONFIG_SERIO_LIBPS2=y
+
+##
+## file: drivers/mfd/Kconfig
+##
+CONFIG_MFD_SM501=y
+
+##
+## file: drivers/mtd/Kconfig
+##
+CONFIG_MTD=y
+CONFIG_MTD_BLOCK=y
+
+##
+## file: drivers/mtd/chips/Kconfig
+##
+CONFIG_MTD_CFI=y
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+CONFIG_MTD_CFI_AMDSTD=y
+
+##
+## file: drivers/mtd/maps/Kconfig
+##
+CONFIG_MTD_PHYSMAP=y
+
+##
+## file: drivers/net/Kconfig
+##
+CONFIG_NETDEVICES=y
+
+##
+## file: drivers/net/ethernet/realtek/Kconfig
+##
+CONFIG_R8169=y
+
+##
+## file: drivers/rtc/Kconfig
+##
+CONFIG_RTC_DRV_RS5C372=y
+# CONFIG_RTC_DRV_SH is not set
+# CONFIG_RTC_DRV_GENERIC is not set
+
+##
+## file: drivers/scsi/Kconfig
+##
+CONFIG_SCSI=y
+CONFIG_BLK_DEV_SD=y
+
+##
+## file: drivers/tty/Kconfig
+##
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+
+##
+## file: drivers/tty/serial/Kconfig
+##
+CONFIG_SERIAL_SH_SCI=y
+CONFIG_SERIAL_SH_SCI_NR_UARTS=6
+CONFIG_SERIAL_SH_SCI_CONSOLE=y
+
+##
+## file: drivers/usb/Kconfig
+##
+CONFIG_USB_SUPPORT=y
+CONFIG_USB=y
+
+##
+## file: drivers/usb/host/Kconfig
+##
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_R8A66597_HCD=y
+
+##
+## file: drivers/usb/storage/Kconfig
+##
+CONFIG_USB_STORAGE=y
+
+##
+## file: drivers/video/fbdev/Kconfig
+##
+CONFIG_FB_SM501=y
+
+##
+## file: drivers/watchdog/Kconfig
+##
+CONFIG_WATCHDOG=y
+CONFIG_SH_WDT=y
+# CONFIG_USBPCWATCHDOG is not set
+
+##
+## file: mm/Kconfig
+##
+## choice: Memory model
+CONFIG_SPARSEMEM_MANUAL=y
+## end choice
+CONFIG_MIGRATION=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+
diff --git a/debian/config/sh4/defines b/debian/config/sh4/defines
new file mode 100644
index 000000000..c38abc821
--- /dev/null
+++ b/debian/config/sh4/defines
@@ -0,0 +1,25 @@
+[base]
+flavours:
+ sh7751r
+ sh7785lcr
+kernel-arch: sh
+
+[build]
+image-file: arch/sh/boot/zImage
+
+[image]
+install-stem: vmlinuz
+
+[sh7751r_description]
+hardware: sh7751r
+hardware-long: Renesas SH7751R R2D plus board
+
+[sh7785lcr_description]
+hardware: sh7785lcr
+hardware-long: Renesas SH7785 reference board
+
+[sh7785lcr_image]
+recommends: u-boot-tools
+# Kernel partition size: 4MB
+check-size: 4194304
+
diff --git a/debian/config/sparc/defines b/debian/config/sparc/defines
new file mode 100644
index 000000000..c7e0119c2
--- /dev/null
+++ b/debian/config/sparc/defines
@@ -0,0 +1,4 @@
+[base]
+kernel-arch: sparc
+featuresets:
+# empty; sparc must be part of a multiarch installation with a sparc64 kernel
diff --git a/debian/config/sparc64/defines b/debian/config/sparc64/defines
new file mode 100644
index 000000000..4e33d959f
--- /dev/null
+++ b/debian/config/sparc64/defines
@@ -0,0 +1,26 @@
+[base]
+flavours:
+ sparc64
+ sparc64-smp
+kernel-arch: sparc
+
+[build]
+image-file: vmlinux
+
+[image]
+configs:
+bootloaders: grub-ieee1275
+suggests: fdutils
+install-stem: vmlinux
+
+[sparc64_description]
+hardware: uniprocessor 64-bit UltraSPARC
+
+[sparc64_image]
+configs: kernelarch-sparc/config-up
+
+[sparc64-smp_description]
+hardware: multiprocessor 64-bit UltraSPARC
+
+[sparc64-smp_image]
+configs: kernelarch-sparc/config-smp
diff --git a/debian/config/x32/defines b/debian/config/x32/defines
new file mode 100644
index 000000000..0a19846d4
--- /dev/null
+++ b/debian/config/x32/defines
@@ -0,0 +1,4 @@
+[base]
+kernel-arch: x86
+featuresets:
+# empty; x32 must be part of a multiarch installation with an amd64 kernel
diff --git a/debian/control b/debian/control
new file mode 100644
index 000000000..00eb8dd21
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,14212 @@
+Source: linux
+Section: kernel
+Priority: optional
+Maintainer: Debian Kernel Team <debian-kernel@lists.debian.org>
+Uploaders: Bastian Blank <waldi@debian.org>, maximilian attems <maks@debian.org>, Ben Hutchings <ben@decadent.org.uk>, Salvatore Bonaccorso <carnil@debian.org>
+Standards-Version: 4.2.0
+Build-Depends: debhelper (>= 10.1~), dh-exec, python3:any, quilt, cpio <!stage1>, xz-utils <!stage1>, dh-python <!stage1>, bison <!stage1>, flex (>= 2.6.1-1.1~) <!stage1>
+Build-Depends-Arch: kernel-wedge (>= 2.99~) <!stage1 !pkg.linux.nokernel>, kmod <!stage1 !pkg.linux.nokernel>, bc <!stage1 !pkg.linux.nokernel>, libssl-dev:native <!stage1 !pkg.linux.nokernel>, libssl-dev <!stage1 !pkg.linux.notools>, openssl (>= 1.1.0-1~) <!stage1 !pkg.linux.nokernel>, libelf-dev:native [amd64] <!stage1 !pkg.linux.nokernel>, libelf-dev <!stage1 !pkg.linux.notools>, gcc-8 [alpha arm64 armel armhf hppa ia64 m68k mips mips64 mips64el mips64r6 mips64r6el mipsel mipsr6 mipsr6el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sh4 sparc64] <!stage1 !cross !pkg.linux.nokernel>, gcc-8-alpha-linux-gnu [alpha] <!stage1 cross !pkg.linux.nokernel>, gcc-8 (>= 8-20180123-1~) [amd64 i386] <!stage1 !cross !pkg.linux.nokernel>, gcc-8-x86-64-linux-gnu (>= 8-20180123-1~) [amd64] <!stage1 cross !pkg.linux.nokernel>, gcc-8-aarch64-linux-gnu [arm64] <!stage1 cross !pkg.linux.nokernel>, gcc-8-arm-linux-gnueabi [armel] <!stage1 cross !pkg.linux.nokernel>, gcc-8-arm-linux-gnueabihf [armhf] <!stage1 cross !pkg.linux.nokernel>, gcc-8-hppa-linux-gnu [hppa] <!stage1 cross !pkg.linux.nokernel>, binutils-hppa64-linux-gnu [hppa] <!stage1 !pkg.linux.nokernel>, gcc-8-hppa64-linux-gnu [hppa] <!stage1 !pkg.linux.nokernel>, gcc-8-i686-linux-gnu (>= 8-20180123-1~) [i386] <!stage1 cross !pkg.linux.nokernel>, gcc-8-ia64-linux-gnu [ia64] <!stage1 cross !pkg.linux.nokernel>, gcc-8-m68k-linux-gnu [m68k] <!stage1 cross !pkg.linux.nokernel>, gcc-8-mips-linux-gnu [mips] <!stage1 cross !pkg.linux.nokernel>, gcc-8-mips64-linux-gnuabi64 [mips64] <!stage1 cross !pkg.linux.nokernel>, gcc-8-mips64el-linux-gnuabi64 [mips64el] <!stage1 cross !pkg.linux.nokernel>, gcc-8-mipsisa64r6-linux-gnuabi64 [mips64r6] <!stage1 cross !pkg.linux.nokernel>, gcc-8-mipsisa64r6el-linux-gnuabi64 [mips64r6el] <!stage1 cross !pkg.linux.nokernel>, gcc-8-mipsel-linux-gnu [mipsel] <!stage1 cross !pkg.linux.nokernel>, gcc-8-mipsisa32r6-linux-gnu [mipsr6] <!stage1 cross !pkg.linux.nokernel>, gcc-8-mipsisa32r6el-linux-gnu [mipsr6el] <!stage1 cross !pkg.linux.nokernel>, gcc-8-powerpc-linux-gnu [powerpc] <!stage1 cross !pkg.linux.nokernel>, gcc-8-powerpc-linux-gnuspe [powerpcspe] <!stage1 cross !pkg.linux.nokernel>, gcc-8-powerpc64-linux-gnu [ppc64] <!stage1 cross !pkg.linux.nokernel>, gcc-8-powerpc64le-linux-gnu [ppc64el] <!stage1 cross !pkg.linux.nokernel>, gcc-8-riscv64-linux-gnu [riscv64] <!stage1 cross !pkg.linux.nokernel>, gcc-8-s390x-linux-gnu [s390x] <!stage1 cross !pkg.linux.nokernel>, gcc-8-sh4-linux-gnu [sh4] <!stage1 cross !pkg.linux.nokernel>, gcc-8-sparc64-linux-gnu [sparc64] <!stage1 cross !pkg.linux.nokernel>, libpci-dev [linux-any] <!stage1 !pkg.linux.notools>, autoconf [linux-any] <!stage1 !pkg.linux.notools>, automake [linux-any] <!stage1 !pkg.linux.notools>, libtool [linux-any] <!stage1 !pkg.linux.notools>, libglib2.0-dev [linux-any] <!stage1 !pkg.linux.notools>, libudev-dev [linux-any] <!stage1 !pkg.linux.notools>, libwrap0-dev [linux-any] <!stage1 !pkg.linux.notools>, rsync [linux-any] <!stage1 !pkg.linux.notools>, asciidoctor [alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64] <!stage1 !nodoc !pkg.linux.notools !nopython>, gcc-multilib [amd64 mips64 mips64el mips64r6 mips64r6el ppc64 s390x sparc64] <!stage1 !pkg.linux.notools !nopython>, libaudit-dev [alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64] <!stage1 !pkg.linux.notools !nopython>, libbabeltrace-dev (>= 1.5.0) [alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64] <!stage1 !pkg.linux.notools !nopython>, libbabeltrace-dev (>= 1.5.3-2~) [alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64] <!stage1 !pkg.linux.notools !nopython> | libbabeltrace-ctf-dev (>= 1.5.0) [alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64] <!stage1 !pkg.linux.notools !nopython>, libdw-dev [alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64] <!stage1 !pkg.linux.notools !nopython>, libiberty-dev [alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64] <!stage1 !pkg.linux.notools !nopython>, libnewt-dev [alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64] <!stage1 !pkg.linux.notools !nopython>, libnuma-dev [alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64] <!stage1 !pkg.linux.notools !nopython>, libperl-dev [alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64] <!stage1 !pkg.linux.notools !nopython>, libunwind-dev [amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mipsel powerpc ppc64 ppc64el sh4] <!stage1 !pkg.linux.notools !nopython>, libopencsd-dev [alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64] <!stage1 !pkg.linux.notools !nopython>, python3-dev [alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64] <!stage1 !pkg.linux.notools !nopython>
+Build-Depends-Indep: graphviz <!stage1 !nodoc>, python3-sphinx <!stage1 !nodoc>, python3-sphinx-rtd-theme <!stage1 !nodoc>, texlive-latex-base <!stage1 !nodoc>, texlive-latex-extra <!stage1 !nodoc>, dvipng <!stage1 !nodoc>, patchutils <!stage1 !pkg.linux.nosource>
+Homepage: https://www.kernel.org/
+Rules-Requires-Root: no
+Vcs-Browser: https://salsa.debian.org/kernel-team/linux
+Vcs-Git: https://salsa.debian.org/kernel-team/linux.git
+
+Package: linux-support-4.19.0-21
+Architecture: all
+Section: devel
+Depends: ${python3:Depends}, ${misc:Depends}
+Description: Support files for Linux 4.19
+ This package provides support files for the Linux kernel build, e.g.
+ scripts to handle ABI information and for generation of build system meta
+ data.
+Build-Profiles: <!stage1>
+Multi-Arch: foreign
+
+Package: linux-doc-4.19
+Architecture: all
+Section: doc
+Depends: ${misc:Depends}
+Description: Linux kernel specific documentation for version 4.19
+ This package provides the various README files and HTML documentation for
+ the Linux kernel version 4.19. Plenty of information, including the
+ descriptions of various kernel subsystems, filesystems, driver-specific
+ notes and the like. Consult the file
+ /usr/share/doc/linux-doc-4.19/Documentation/00-INDEX for the detailed
+ description of the contents.
+Build-Profiles: <!stage1 !nodoc>
+Multi-Arch: foreign
+
+Package: linux-cpupower
+Architecture: linux-any
+Section: admin
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: CPU power management tools for Linux
+ The cpupower command allows inspection and control of cpufreq and cpuidle
+ tunables for hardware that support these features. It replaces
+ "cpufreq-info" and "cpufreq-set" in cpufrequtils.
+ .
+ ${cpupower:Arch-Description}
+Build-Profiles: <!stage1 !pkg.linux.notools>
+
+Package: libcpupower1
+Architecture: linux-any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: CPU frequency and voltage scaling tools for Linux (libraries)
+ This package contains the shared library.
+Build-Profiles: <!stage1 !pkg.linux.notools>
+
+Package: libcpupower-dev
+Architecture: linux-any
+Section: libdevel
+Provides: libcpufreq-dev
+Depends: ${misc:Depends}, libcpupower1 (= ${binary:Version})
+Replaces: libcpufreq-dev
+Conflicts: libcpufreq-dev
+Description: CPU frequency and voltage scaling tools for Linux (development files)
+ This package contains the 'power/cpupower' headers and library shared
+ objects.
+Build-Profiles: <!stage1 !pkg.linux.notools>
+
+Package: usbip
+Architecture: linux-any
+Section: admin
+Depends: usbutils, ${shlibs:Depends}, ${misc:Depends}
+Description: USB device sharing system over IP network
+ USB/IP is a system for sharing USB devices over the network.
+ .
+ To share USB devices between computers with their full functionality,
+ USB/IP encapsulates "USB requests" into IP packets and transmits them
+ between computers.
+ .
+ Original USB device drivers and applications can be used for remote USB
+ devices without any modification of them. A computer can use remote USB
+ devices as if they were directly attached.
+ .
+ Currently USB/IP provides no access control or encryption. It should only
+ be used in trusted environments.
+ .
+ This package provides the server component 'usbipd' and the client tool
+ 'usbip'.
+Build-Profiles: <!stage1 !pkg.linux.notools>
+
+Package: hyperv-daemons
+Architecture: amd64 i386 x32
+Section: admin
+Depends: lsb-base, ${shlibs:Depends}, ${misc:Depends}
+Description: Support daemons for Linux running on Hyper-V
+ Suite of daemons for Linux guests running on Hyper-V, consisting of
+ hv_fcopy_daemon, hv_kvp_daemon and hv_vss_daemon.
+ .
+ hv_fcopy_daemon provides the file copy service, allowing the host to copy
+ files into the guest.
+ .
+ hv_kvp_daemon provides the key-value pair (KVP) service, allowing the host
+ to get and set the IP networking configuration of the guest. (This
+ requires helper scripts which are not currently included.)
+ .
+ hv_vss_daemon provides the volume shadow copy service (VSS), allowing the
+ host to freeze the guest filesystems while taking a snapshot.
+Build-Profiles: <!stage1 !pkg.linux.notools>
+
+Package: libbpf4.19
+Architecture: alpha amd64 arm64 arm64ilp32 armel armhf hppa i386 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc powerpcspe ppc64 ppc64el riscv64 s390 s390x sh3 sh4 sparc sparc64 x32
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: eBPF helper library (shared library)
+ libbpf is a library for loading eBPF programs and reading and manipulating
+ eBPF objects from user-space.
+Build-Profiles: <!stage1 !pkg.linux.notools>
+Multi-Arch: same
+
+Package: libbpf-dev
+Architecture: alpha amd64 arm64 arm64ilp32 armel armhf hppa i386 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc powerpcspe ppc64 ppc64el riscv64 s390 s390x sh3 sh4 sparc sparc64 x32
+Section: libdevel
+Depends: ${misc:Depends}, libbpf4.19 (= ${binary:Version})
+Description: eBPF helper library (development files)
+ libbpf is a library for loading eBPF programs and reading and manipulating
+ eBPF objects from user-space.
+Build-Profiles: <!stage1 !pkg.linux.notools>
+Multi-Arch: same
+
+Package: linux-kbuild-4.19
+Architecture: linux-any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Kbuild infrastructure for Linux 4.19
+ This package provides the kbuild infrastructure for the headers packages
+ for Linux kernel version 4.19.
+Build-Profiles: <!stage1 !pkg.linux.notools>
+Multi-Arch: foreign
+
+Package: linux-perf-4.19
+Architecture: alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64
+Section: devel
+Provides: linux-tools-4.19
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, ${python3:Depends}
+Recommends: linux-base
+Suggests: linux-doc-4.19
+Replaces: linux-tools-4.19
+Conflicts: linux-tools-4.19
+Description: Performance analysis tools for Linux 4.19
+ This package contains the 'perf' performance analysis tools for Linux
+ kernel version 4.19.
+ .
+ The linux-base package contains a 'perf' command which will invoke the
+ appropriate version for the running kernel.
+Build-Profiles: <!stage1 !pkg.linux.notools !nopython>
+
+Package: linux-bootwrapper-4.19.0-21
+Architecture: powerpc powerpcspe ppc64
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Boot wrapper tools for Linux 4.19 on PowerPC
+ This package provides the 'wrapper' script and related tools needed to
+ process the Linux kernel image for use with some PowerPC platforms.
+Build-Profiles: <!stage1 !pkg.linux.notools>
+Multi-Arch: foreign
+
+Package: linux-source-4.19
+Architecture: all
+Section: kernel
+Depends: binutils, xz-utils, ${misc:Depends}
+Recommends: libc6-dev | libc-dev, gcc, make, bc, bison, flex, linux-config-4.19
+Suggests: libncurses-dev | ncurses-dev, libqt4-dev, pkg-config
+Description: Linux kernel source for version 4.19 with Debian patches
+ This package provides source code for the Linux kernel version 4.19. This
+ source closely tracks official Linux kernel releases. Debian's
+ modifications to that source consist of security fixes, bug fixes, and
+ features that have already been (or are believed to be) accepted by the
+ upstream maintainers.
+Build-Profiles: <!stage1 !pkg.linux.nosource>
+Multi-Arch: foreign
+
+Package: linux-headers-4.19.0-21-common
+Architecture: all
+Depends: ${misc:Depends}
+Description: Common header files for Linux 4.19.0-21
+ This package provides the common kernel header files for Linux kernel
+ version 4.19.0-21, generally used for building out-of-tree kernel modules.
+ To obtain a complete set of headers you also need to install the
+ linux-headers-4.19.0-21-(flavour) package, matching the flavour of the
+ kernel you intend the build for.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Multi-Arch: foreign
+
+Package: linux-headers-4.19.0-21-common-rt
+Architecture: all
+Depends: ${misc:Depends}
+Description: Common header files for Linux 4.19.0-21-rt
+ This package provides the common kernel header files for Linux kernel
+ version 4.19.0-21 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-4.19.0-21-(flavour) package,
+ matching the flavour of the kernel you intend the build for.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Multi-Arch: foreign
+
+Package: linux-libc-dev
+Architecture: alpha amd64 arm64 arm64ilp32 armel armhf hppa i386 ia64 m68k mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc powerpcspe ppc64 ppc64el riscv64 s390 s390x sh3 sh4 sparc sparc64 x32
+Section: devel
+Provides: linux-kernel-headers
+Depends: ${misc:Depends}
+Description: Linux support headers for userspace development
+ This package provides userspaces headers from the Linux kernel. These
+ headers are used by the installed headers for GNU libc and other system
+ libraries.
+Multi-Arch: same
+
+Package: linux-headers-4.19.0-21-all
+Architecture: alpha amd64 arm64 armel armhf hppa i386 ia64 m68k mips mips64 mips64el mips64r6 mips64r6el mipsel mipsr6 mipsr6el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sh4 sparc64
+Depends: linux-headers-4.19.0-21-all-${kernel:Arch} (= ${binary:Version}), ${misc:Depends}
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-alpha
+Architecture: alpha
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-alpha-generic (= ${binary:Version}), linux-headers-4.19.0-21-alpha-smp (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-config-4.19
+Architecture: alpha amd64 arm64 armel armhf hppa i386 ia64 m68k mips mips64 mips64el mips64r6 mips64r6el mipsel mipsr6 mipsr6el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sh4 sparc64
+Depends: ${misc:Depends}
+Recommends: linux-source-4.19
+Description: Debian kernel configurations for Linux 4.19
+ This package contains the configuration files used to build the official
+ Debian kernel files, but without references to Debian's signing
+ certificates.
+ .
+ These can be used as a basis for configuring custom kernels.
+Build-Profiles: <!stage1 !pkg.linux.nosource>
+Multi-Arch: same
+
+Package: kernel-image-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: standard
+Provides: kernel-image
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, nic-shared-modules-4.19.0-21-alpha-generic-di, i2c-modules-4.19.0-21-alpha-generic-di, crc-modules-4.19.0-21-alpha-generic-di, zlib-modules-4.19.0-21-alpha-generic-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: nic-wireless-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: standard
+Provides: nic-wireless-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, nic-shared-modules-4.19.0-21-alpha-generic-di, usb-modules-4.19.0-21-alpha-generic-di, pcmcia-modules-4.19.0-21-alpha-generic-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: serial-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: serial-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, pcmcia-modules-4.19.0-21-alpha-generic-di
+Description: Serial drivers
+ This package contains serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: usb-serial-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: usb-serial-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, usb-modules-4.19.0-21-alpha-generic-di
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, serial-modules-4.19.0-21-alpha-generic-di, zlib-modules-4.19.0-21-alpha-generic-di, crc-modules-4.19.0-21-alpha-generic-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: pata-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: standard
+Provides: pata-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, ata-modules-4.19.0-21-alpha-generic-di
+Description: PATA drivers
+ This package contains PATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, scsi-core-modules-4.19.0-21-alpha-generic-di, isofs-modules-4.19.0-21-alpha-generic-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: scsi-core-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: standard
+Provides: scsi-core-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: scsi-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: standard
+Provides: scsi-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, scsi-core-modules-4.19.0-21-alpha-generic-di, cdrom-core-modules-4.19.0-21-alpha-generic-di, ata-modules-4.19.0-21-alpha-generic-di
+Description: SCSI drivers
+ This package contains SCSI drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: scsi-nic-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: scsi-nic-modules
+Depends: scsi-modules-4.19.0-21-alpha-generic-di, nic-modules-4.19.0-21-alpha-generic-di
+Description: SCSI drivers for converged NICs
+ This package contains SCSI drivers that depend on net drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, crc-modules-4.19.0-21-alpha-generic-di, zlib-modules-4.19.0-21-alpha-generic-di, compress-modules-4.19.0-21-alpha-generic-di, md-modules-4.19.0-21-alpha-generic-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, crc-modules-4.19.0-21-alpha-generic-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, crc-modules-4.19.0-21-alpha-generic-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, md-modules-4.19.0-21-alpha-generic-di, scsi-core-modules-4.19.0-21-alpha-generic-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: usb-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: usb-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di
+Description: USB support
+ This package contains core USB drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: usb-storage-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: standard
+Provides: usb-storage-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, scsi-core-modules-4.19.0-21-alpha-generic-di, usb-modules-4.19.0-21-alpha-generic-di
+Description: USB storage support
+ This package contains the USB storage driver for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: fb-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: fb-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, i2c-modules-4.19.0-21-alpha-generic-di
+Description: Frame buffer support
+ This package contains Frame buffer drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: input-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: input-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, usb-modules-4.19.0-21-alpha-generic-di, i2c-modules-4.19.0-21-alpha-generic-di
+Description: Input devices support
+ This package contains input device drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: event-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: event-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di
+Description: Event support
+ This package contains event drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: mouse-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: mouse-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, event-modules-4.19.0-21-alpha-generic-di, input-modules-4.19.0-21-alpha-generic-di, usb-modules-4.19.0-21-alpha-generic-di
+Description: Mouse support
+ This package contains mouse drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: nic-pcmcia-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: standard
+Provides: nic-pcmcia-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, nic-shared-modules-4.19.0-21-alpha-generic-di, nic-wireless-modules-4.19.0-21-alpha-generic-di, pcmcia-modules-4.19.0-21-alpha-generic-di
+Description: Common PCMCIA NIC drivers
+ This package contains common PCMCIA NIC drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: pcmcia-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: standard
+Provides: pcmcia-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di
+Description: Common PCMCIA drivers
+ This package contains common PCMCIA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: nic-usb-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: standard
+Provides: nic-usb-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, nic-shared-modules-4.19.0-21-alpha-generic-di, nic-wireless-modules-4.19.0-21-alpha-generic-di, usb-modules-4.19.0-21-alpha-generic-di, crc-modules-4.19.0-21-alpha-generic-di
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: sata-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: standard
+Provides: sata-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, scsi-core-modules-4.19.0-21-alpha-generic-di, ata-modules-4.19.0-21-alpha-generic-di
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: i2c-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: i2c-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di
+Description: i2c support modules
+ This package contains basic i2c support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, md-modules-4.19.0-21-alpha-generic-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: ata-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: ata-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, scsi-core-modules-4.19.0-21-alpha-generic-di
+Description: ATA disk modules
+ This package contains core ATA disk modules used by both PATA and SATA
+ disk drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di, compress-modules-4.19.0-21-alpha-generic-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: zlib-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: zlib-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di
+Description: zlib modules
+ This package contains zlib modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: srm-modules-4.19.0-21-alpha-generic-di
+Architecture: alpha
+Section: debian-installer
+Priority: standard
+Provides: srm-modules
+Depends: kernel-image-4.19.0-21-alpha-generic-di
+Description: SRM modules
+ This package contains the srm_env module which provides access to the SRM
+ environment.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-alpha-generic
+Package-Type: udeb
+
+Package: linux-image-4.19.0-21-alpha-generic
+Architecture: alpha
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [alpha] | linux-initramfs-tool [alpha]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [alpha]
+Suggests: linux-doc-4.19, debian-kernel-handbook, aboot [alpha], fdutils [alpha]
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for Alpha
+ The Linux kernel 4.19 and modules for use on DEC Alpha systems with
+ extended kernel start address (Wildfire, Titan, Marvel).
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-alpha-generic
+Architecture: alpha
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-alpha-generic
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-alpha-generic, generally used for building
+ out-of-tree kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-alpha-generic, and can be used for
+ building modules that load into the kernel provided by the
+ linux-image-4.19.0-21-alpha-generic package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-alpha-generic-dbg
+Architecture: alpha
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-alpha-generic
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-alpha-generic.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-alpha-smp
+Architecture: alpha
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [alpha] | linux-initramfs-tool [alpha]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [alpha]
+Suggests: linux-doc-4.19, debian-kernel-handbook, aboot [alpha], fdutils [alpha]
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for Alpha SMP
+ The Linux kernel 4.19 and modules for use on DEC Alpha SMP systems with
+ extended kernel start address (Wildfire, Titan, Marvel).
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-alpha-smp
+Architecture: alpha
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-alpha-smp
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-alpha-smp, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-alpha-smp, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-alpha-smp package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-alpha-smp-dbg
+Architecture: alpha
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-alpha-smp
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-alpha-smp.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-amd64
+Architecture: amd64
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-amd64 (= ${binary:Version}), linux-headers-4.19.0-21-cloud-amd64 (= ${binary:Version}), linux-headers-4.19.0-21-rt-amd64 (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: kernel-image-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: standard
+Provides: kernel-image, zlib-modules
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-amd64-di, nic-shared-modules-4.19.0-21-amd64-di, i2c-modules-4.19.0-21-amd64-di, crc-modules-4.19.0-21-amd64-di, mtd-core-modules-4.19.0-21-amd64-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: nic-wireless-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: standard
+Provides: nic-wireless-modules
+Depends: kernel-image-4.19.0-21-amd64-di, nic-shared-modules-4.19.0-21-amd64-di, usb-modules-4.19.0-21-amd64-di, mmc-core-modules-4.19.0-21-amd64-di, pcmcia-modules-4.19.0-21-amd64-di, crc-modules-4.19.0-21-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: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: serial-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: serial-modules
+Depends: kernel-image-4.19.0-21-amd64-di, pcmcia-modules-4.19.0-21-amd64-di
+Description: Serial drivers
+ This package contains serial drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: usb-serial-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: usb-serial-modules
+Depends: kernel-image-4.19.0-21-amd64-di, usb-modules-4.19.0-21-amd64-di
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-amd64-di, serial-modules-4.19.0-21-amd64-di, crc-modules-4.19.0-21-amd64-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: pata-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: standard
+Provides: pata-modules
+Depends: kernel-image-4.19.0-21-amd64-di, ata-modules-4.19.0-21-amd64-di
+Description: PATA drivers
+ This package contains PATA drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-amd64-di, scsi-core-modules-4.19.0-21-amd64-di, isofs-modules-4.19.0-21-amd64-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: firewire-core-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: standard
+Provides: firewire-core-modules
+Depends: kernel-image-4.19.0-21-amd64-di, scsi-core-modules-4.19.0-21-amd64-di, crc-modules-4.19.0-21-amd64-di
+Description: Core FireWire drivers
+ This package contains core FireWire drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: scsi-core-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: standard
+Provides: scsi-core-modules
+Depends: kernel-image-4.19.0-21-amd64-di
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: scsi-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: standard
+Provides: scsi-modules
+Depends: kernel-image-4.19.0-21-amd64-di, scsi-core-modules-4.19.0-21-amd64-di, cdrom-core-modules-4.19.0-21-amd64-di, ata-modules-4.19.0-21-amd64-di
+Description: SCSI drivers
+ This package contains SCSI drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: scsi-nic-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: scsi-nic-modules
+Depends: scsi-modules-4.19.0-21-amd64-di, nic-modules-4.19.0-21-amd64-di
+Description: SCSI drivers for converged NICs
+ This package contains SCSI drivers that depend on net drivers.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-amd64-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-amd64-di, crc-modules-4.19.0-21-amd64-di, compress-modules-4.19.0-21-amd64-di, md-modules-4.19.0-21-amd64-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-amd64-di, crc-modules-4.19.0-21-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: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-amd64-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-amd64-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-amd64-di, crc-modules-4.19.0-21-amd64-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: standard
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-amd64-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-amd64-di, crc-modules-4.19.0-21-amd64-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-amd64-di, md-modules-4.19.0-21-amd64-di, scsi-core-modules-4.19.0-21-amd64-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: usb-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: usb-modules
+Depends: kernel-image-4.19.0-21-amd64-di
+Description: USB support
+ This package contains core USB drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: usb-storage-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: standard
+Provides: usb-storage-modules
+Depends: kernel-image-4.19.0-21-amd64-di, scsi-core-modules-4.19.0-21-amd64-di, usb-modules-4.19.0-21-amd64-di
+Description: USB storage support
+ This package contains the USB storage driver for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: pcmcia-storage-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: standard
+Provides: pcmcia-storage-modules
+Depends: kernel-image-4.19.0-21-amd64-di, cdrom-core-modules-4.19.0-21-amd64-di, pcmcia-modules-4.19.0-21-amd64-di, ata-modules-4.19.0-21-amd64-di
+Description: PCMCIA storage drivers
+ This package contains PCMCIA storage drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: fb-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: fb-modules
+Depends: kernel-image-4.19.0-21-amd64-di, i2c-modules-4.19.0-21-amd64-di
+Description: Frame buffer support
+ This package contains Frame buffer drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: input-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: input-modules
+Depends: kernel-image-4.19.0-21-amd64-di, usb-modules-4.19.0-21-amd64-di, i2c-modules-4.19.0-21-amd64-di
+Description: Input devices support
+ This package contains input device drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: event-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: event-modules
+Depends: kernel-image-4.19.0-21-amd64-di
+Description: Event support
+ This package contains event drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: mouse-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: mouse-modules
+Depends: kernel-image-4.19.0-21-amd64-di, event-modules-4.19.0-21-amd64-di, input-modules-4.19.0-21-amd64-di, usb-modules-4.19.0-21-amd64-di
+Description: Mouse support
+ This package contains mouse drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: nic-pcmcia-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: standard
+Provides: nic-pcmcia-modules
+Depends: kernel-image-4.19.0-21-amd64-di, nic-shared-modules-4.19.0-21-amd64-di, nic-wireless-modules-4.19.0-21-amd64-di, pcmcia-modules-4.19.0-21-amd64-di, mmc-core-modules-4.19.0-21-amd64-di
+Description: Common PCMCIA NIC drivers
+ This package contains common PCMCIA NIC drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: pcmcia-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: standard
+Provides: pcmcia-modules
+Depends: kernel-image-4.19.0-21-amd64-di
+Description: Common PCMCIA drivers
+ This package contains common PCMCIA drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: nic-usb-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: standard
+Provides: nic-usb-modules
+Depends: kernel-image-4.19.0-21-amd64-di, nic-shared-modules-4.19.0-21-amd64-di, nic-wireless-modules-4.19.0-21-amd64-di, usb-modules-4.19.0-21-amd64-di, crc-modules-4.19.0-21-amd64-di
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: sata-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: standard
+Provides: sata-modules
+Depends: kernel-image-4.19.0-21-amd64-di, scsi-core-modules-4.19.0-21-amd64-di, ata-modules-4.19.0-21-amd64-di
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: acpi-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: acpi-modules
+Depends: kernel-image-4.19.0-21-amd64-di
+Description: ACPI support modules
+ This package contains kernel modules for ACPI.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: i2c-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: i2c-modules
+Depends: kernel-image-4.19.0-21-amd64-di
+Description: i2c support modules
+ This package contains basic i2c support modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-amd64-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-amd64-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-amd64-di, md-modules-4.19.0-21-amd64-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: efi-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: efi-modules
+Depends: kernel-image-4.19.0-21-amd64-di
+Description: EFI modules
+ This package contains EFI modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: ata-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: ata-modules
+Depends: kernel-image-4.19.0-21-amd64-di, scsi-core-modules-4.19.0-21-amd64-di
+Description: ATA disk modules
+ This package contains core ATA disk modules used by both PATA and SATA
+ disk drivers.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: mmc-core-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: mmc-core-modules
+Depends: kernel-image-4.19.0-21-amd64-di
+Description: MMC/SD/SDIO core modules
+ This package contains core modules for MMC/SD/SDIO support.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: mmc-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: mmc-modules
+Depends: kernel-image-4.19.0-21-amd64-di, mmc-core-modules-4.19.0-21-amd64-di, usb-modules-4.19.0-21-amd64-di, crc-modules-4.19.0-21-amd64-di
+Description: MMC/SD card modules
+ This package contains modules needed to support MMC (multimedia) and SD
+ cards.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-amd64-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-amd64-di, compress-modules-4.19.0-21-amd64-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: speakup-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: speakup-modules
+Depends: kernel-image-4.19.0-21-amd64-di
+Description: speakup modules
+ This package contains speakup modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: uinput-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: uinput-modules
+Depends: kernel-image-4.19.0-21-amd64-di
+Description: uinput support
+ This package contains the uinput module.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: sound-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: sound-modules
+Depends: kernel-image-4.19.0-21-amd64-di, i2c-modules-4.19.0-21-amd64-di, usb-modules-4.19.0-21-amd64-di, pcmcia-modules-4.19.0-21-amd64-di, firewire-core-modules-4.19.0-21-amd64-di, crc-modules-4.19.0-21-amd64-di
+Description: sound support
+ This package contains sound modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-amd64-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-amd64-di, crc-modules-4.19.0-21-amd64-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-amd64-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: mtd-core-modules-4.19.0-21-amd64-di
+Architecture: amd64
+Section: debian-installer
+Priority: optional
+Provides: mtd-core-modules
+Depends: kernel-image-4.19.0-21-amd64-di
+Description: MTD core
+ This package contains the MTD core.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-amd64
+Package-Type: udeb
+
+Package: linux-image-amd64-signed-template
+Architecture: amd64
+Depends: dpkg-dev, ${misc:Depends}
+Description: Template for signed linux-image packages for amd64
+ This package is used to control code signing by the Debian signing
+ service.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-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, ${kernel:Recommends}, apparmor [amd64]
+Suggests: linux-doc-4.19, debian-kernel-handbook, grub-pc [amd64] | grub-efi-amd64 [amd64] | extlinux [amd64]
+Replaces: linux-image-4.19.0-21-amd64
+Breaks: xserver-xorg-input-vmmouse (<< 1:13.0.99) [amd64], initramfs-tools (<< 0.120+deb8u2)
+Conflicts: linux-image-4.19.0-21-amd64
+Description: Linux 4.19 for 64-bit PCs
+ The Linux kernel 4.19 and modules for use on PCs with AMD64, Intel 64 or
+ VIA Nano processors.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-amd64
+Architecture: amd64
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-8-x86
+Description: Header files for Linux 4.19.0-21-amd64
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-amd64, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-amd64, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-amd64 package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-amd64-dbg
+Architecture: amd64
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-amd64
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-amd64.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-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, ${kernel:Recommends}, apparmor [amd64]
+Suggests: linux-doc-4.19, debian-kernel-handbook, grub-pc [amd64] | grub-efi-amd64 [amd64] | extlinux [amd64]
+Replaces: linux-image-4.19.0-21-cloud-amd64
+Breaks: xserver-xorg-input-vmmouse (<< 1:13.0.99) [amd64], initramfs-tools (<< 0.120+deb8u2)
+Conflicts: linux-image-4.19.0-21-cloud-amd64
+Description: Linux 4.19 for x86-64 cloud
+ The Linux kernel 4.19 and modules for use on Amazon EC2, Google Compute
+ Engine and Microsoft Azure cloud platforms.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-cloud-amd64
+Architecture: amd64
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-8-x86
+Description: Header files for Linux 4.19.0-21-cloud-amd64
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-cloud-amd64, generally used for building
+ out-of-tree kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-cloud-amd64, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-cloud-amd64 package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-cloud-amd64-dbg
+Architecture: amd64
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-cloud-amd64
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-cloud-amd64.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-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, ${kernel:Recommends}, apparmor [amd64]
+Suggests: linux-doc-4.19, debian-kernel-handbook, grub-pc [amd64] | grub-efi-amd64 [amd64] | extlinux [amd64]
+Replaces: linux-image-4.19.0-21-rt-amd64
+Breaks: xserver-xorg-input-vmmouse (<< 1:13.0.99) [amd64], initramfs-tools (<< 0.120+deb8u2)
+Conflicts: linux-image-4.19.0-21-rt-amd64
+Description: Linux 4.19 for 64-bit PCs, PREEMPT_RT
+ The Linux kernel 4.19 and modules for use on PCs with AMD64, Intel 64 or
+ VIA Nano processors.
+ .
+ This kernel includes the PREEMPT_RT realtime patch set.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-rt-amd64
+Architecture: amd64
+Depends: linux-headers-4.19.0-21-common-rt (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-8-x86
+Description: Header files for Linux 4.19.0-21-rt-amd64
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-rt-amd64, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-rt-amd64, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-rt-amd64 package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-rt-amd64-dbg
+Architecture: amd64
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-rt-amd64
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-rt-amd64.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-arm64
+Architecture: arm64
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-arm64 (= ${binary:Version}), linux-headers-4.19.0-21-rt-arm64 (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: kernel-image-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: standard
+Provides: kernel-image, mmc-core-modules, zlib-modules
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-arm64-di, nic-shared-modules-4.19.0-21-arm64-di, i2c-modules-4.19.0-21-arm64-di, crc-modules-4.19.0-21-arm64-di, mtd-core-modules-4.19.0-21-arm64-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: nic-wireless-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: standard
+Provides: nic-wireless-modules
+Depends: kernel-image-4.19.0-21-arm64-di, nic-shared-modules-4.19.0-21-arm64-di, usb-modules-4.19.0-21-arm64-di, crc-modules-4.19.0-21-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: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: usb-serial-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: usb-serial-modules
+Depends: kernel-image-4.19.0-21-arm64-di, usb-modules-4.19.0-21-arm64-di
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-arm64-di, crc-modules-4.19.0-21-arm64-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-arm64-di, scsi-core-modules-4.19.0-21-arm64-di, isofs-modules-4.19.0-21-arm64-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: scsi-core-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: standard
+Provides: scsi-core-modules
+Depends: kernel-image-4.19.0-21-arm64-di
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: scsi-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: standard
+Provides: scsi-modules
+Depends: kernel-image-4.19.0-21-arm64-di, scsi-core-modules-4.19.0-21-arm64-di, cdrom-core-modules-4.19.0-21-arm64-di, ata-modules-4.19.0-21-arm64-di
+Description: SCSI drivers
+ This package contains SCSI drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: scsi-nic-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: scsi-nic-modules
+Depends: scsi-modules-4.19.0-21-arm64-di, nic-modules-4.19.0-21-arm64-di
+Description: SCSI drivers for converged NICs
+ This package contains SCSI drivers that depend on net drivers.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-arm64-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-arm64-di, crc-modules-4.19.0-21-arm64-di, compress-modules-4.19.0-21-arm64-di, md-modules-4.19.0-21-arm64-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-arm64-di, crc-modules-4.19.0-21-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: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-arm64-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-arm64-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-arm64-di, crc-modules-4.19.0-21-arm64-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-arm64-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-arm64-di, crc-modules-4.19.0-21-arm64-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-arm64-di, md-modules-4.19.0-21-arm64-di, scsi-core-modules-4.19.0-21-arm64-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: usb-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: usb-modules
+Depends: kernel-image-4.19.0-21-arm64-di
+Description: USB support
+ This package contains core USB drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: usb-storage-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: standard
+Provides: usb-storage-modules
+Depends: kernel-image-4.19.0-21-arm64-di, scsi-core-modules-4.19.0-21-arm64-di, usb-modules-4.19.0-21-arm64-di
+Description: USB storage support
+ This package contains the USB storage driver for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: fb-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: fb-modules
+Depends: kernel-image-4.19.0-21-arm64-di, i2c-modules-4.19.0-21-arm64-di
+Description: Frame buffer support
+ This package contains Frame buffer drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: input-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: input-modules
+Depends: kernel-image-4.19.0-21-arm64-di, usb-modules-4.19.0-21-arm64-di, i2c-modules-4.19.0-21-arm64-di
+Description: Input devices support
+ This package contains input device drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: event-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: event-modules
+Depends: kernel-image-4.19.0-21-arm64-di
+Description: Event support
+ This package contains event drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: nic-usb-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: standard
+Provides: nic-usb-modules
+Depends: kernel-image-4.19.0-21-arm64-di, nic-shared-modules-4.19.0-21-arm64-di, nic-wireless-modules-4.19.0-21-arm64-di, usb-modules-4.19.0-21-arm64-di, crc-modules-4.19.0-21-arm64-di
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: sata-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: standard
+Provides: sata-modules
+Depends: kernel-image-4.19.0-21-arm64-di, scsi-core-modules-4.19.0-21-arm64-di, ata-modules-4.19.0-21-arm64-di
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: i2c-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: i2c-modules
+Depends: kernel-image-4.19.0-21-arm64-di
+Description: i2c support modules
+ This package contains basic i2c support modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-arm64-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-arm64-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-arm64-di, md-modules-4.19.0-21-arm64-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: efi-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: efi-modules
+Depends: kernel-image-4.19.0-21-arm64-di
+Description: EFI modules
+ This package contains EFI modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: ata-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: ata-modules
+Depends: kernel-image-4.19.0-21-arm64-di, scsi-core-modules-4.19.0-21-arm64-di
+Description: ATA disk modules
+ This package contains core ATA disk modules used by both PATA and SATA
+ disk drivers.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: mmc-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: mmc-modules
+Depends: kernel-image-4.19.0-21-arm64-di, usb-modules-4.19.0-21-arm64-di, crc-modules-4.19.0-21-arm64-di
+Description: MMC/SD card modules
+ This package contains modules needed to support MMC (multimedia) and SD
+ cards.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-arm64-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-arm64-di, compress-modules-4.19.0-21-arm64-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: uinput-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: uinput-modules
+Depends: kernel-image-4.19.0-21-arm64-di
+Description: uinput support
+ This package contains the uinput module.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-arm64-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: leds-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: leds-modules
+Depends: kernel-image-4.19.0-21-arm64-di
+Description: LED modules
+ This package contains LED modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-arm64-di, crc-modules-4.19.0-21-arm64-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-arm64-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: mtd-core-modules-4.19.0-21-arm64-di
+Architecture: arm64
+Section: debian-installer
+Priority: optional
+Provides: mtd-core-modules
+Depends: kernel-image-4.19.0-21-arm64-di
+Description: MTD core
+ This package contains the MTD core.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-arm64
+Package-Type: udeb
+
+Package: linux-image-arm64-signed-template
+Architecture: arm64
+Depends: dpkg-dev, ${misc:Depends}
+Description: Template for signed linux-image packages for arm64
+ This package is used to control code signing by the Debian signing
+ service.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-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, ${kernel:Recommends}, apparmor [arm64]
+Suggests: linux-doc-4.19, debian-kernel-handbook
+Replaces: linux-image-4.19.0-21-arm64
+Breaks: libmozjs185-1.0 [arm64], libmozjs-24-0 (<< 24.2.0-5.1~) [arm64], initramfs-tools (<< 0.120+deb8u2)
+Conflicts: linux-image-4.19.0-21-arm64
+Description: Linux 4.19 for 64-bit ARMv8 machines
+ The Linux kernel 4.19 and modules for use on 64-bit ARMv8 machines.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-arm64
+Architecture: arm64
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-arm64
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-arm64, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-arm64, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-arm64 package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-arm64-dbg
+Architecture: arm64
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-arm64
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-arm64.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-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, ${kernel:Recommends}, apparmor [arm64]
+Suggests: linux-doc-4.19, debian-kernel-handbook
+Replaces: linux-image-4.19.0-21-rt-arm64
+Breaks: libmozjs185-1.0 [arm64], libmozjs-24-0 (<< 24.2.0-5.1~) [arm64], initramfs-tools (<< 0.120+deb8u2)
+Conflicts: linux-image-4.19.0-21-rt-arm64
+Description: Linux 4.19 for 64-bit ARMv8 machines, PREEMPT_RT
+ The Linux kernel 4.19 and modules for use on 64-bit ARMv8 machines.
+ .
+ This kernel includes the PREEMPT_RT realtime patch set.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-rt-arm64
+Architecture: arm64
+Depends: linux-headers-4.19.0-21-common-rt (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-rt-arm64
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-rt-arm64, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-rt-arm64, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-rt-arm64 package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-rt-arm64-dbg
+Architecture: arm64
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-rt-arm64
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-rt-arm64.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-armel
+Architecture: armel
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-marvell (= ${binary:Version}), linux-headers-4.19.0-21-rpi (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: kernel-image-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: standard
+Provides: kernel-image, rtc-modules
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-marvell-di, nic-shared-modules-4.19.0-21-marvell-di, crc-modules-4.19.0-21-marvell-di, zlib-modules-4.19.0-21-marvell-di, mtd-core-modules-4.19.0-21-marvell-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: usb-serial-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: usb-serial-modules
+Depends: kernel-image-4.19.0-21-marvell-di, usb-modules-4.19.0-21-marvell-di
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-marvell-di, zlib-modules-4.19.0-21-marvell-di, crc-modules-4.19.0-21-marvell-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-marvell-di, scsi-core-modules-4.19.0-21-marvell-di, isofs-modules-4.19.0-21-marvell-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: scsi-core-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: standard
+Provides: scsi-core-modules
+Depends: kernel-image-4.19.0-21-marvell-di
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-marvell-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: ipv6-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: ipv6-modules
+Depends: kernel-image-4.19.0-21-marvell-di
+Description: IPv6 driver
+ This package contains the IPv6 driver for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-marvell-di, crc-modules-4.19.0-21-marvell-di, zlib-modules-4.19.0-21-marvell-di, compress-modules-4.19.0-21-marvell-di, md-modules-4.19.0-21-marvell-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-marvell-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-marvell-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: jffs2-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: jffs2-modules
+Depends: kernel-image-4.19.0-21-marvell-di, zlib-modules-4.19.0-21-marvell-di, compress-modules-4.19.0-21-marvell-di, mtd-modules-4.19.0-21-marvell-di
+Description: JFFS2 filesystem support
+ This package contains the JFFS2 filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-marvell-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-marvell-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: minix-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: minix-modules
+Depends: kernel-image-4.19.0-21-marvell-di
+Description: Minix filesystem support
+ This package contains the Minix filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-marvell-di, crc-modules-4.19.0-21-marvell-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-marvell-di, md-modules-4.19.0-21-marvell-di, scsi-core-modules-4.19.0-21-marvell-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: usb-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: usb-modules
+Depends: kernel-image-4.19.0-21-marvell-di
+Description: USB support
+ This package contains core USB drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: usb-storage-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: standard
+Provides: usb-storage-modules
+Depends: kernel-image-4.19.0-21-marvell-di, scsi-core-modules-4.19.0-21-marvell-di, usb-modules-4.19.0-21-marvell-di
+Description: USB storage support
+ This package contains the USB storage driver for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: fb-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: fb-modules
+Depends: kernel-image-4.19.0-21-marvell-di, usb-modules-4.19.0-21-marvell-di
+Description: Frame buffer support
+ This package contains Frame buffer drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: input-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: input-modules
+Depends: kernel-image-4.19.0-21-marvell-di, usb-modules-4.19.0-21-marvell-di
+Description: Input devices support
+ This package contains input device drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: event-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: event-modules
+Depends: kernel-image-4.19.0-21-marvell-di
+Description: Event support
+ This package contains event drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: mouse-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: mouse-modules
+Depends: kernel-image-4.19.0-21-marvell-di, event-modules-4.19.0-21-marvell-di, input-modules-4.19.0-21-marvell-di, usb-modules-4.19.0-21-marvell-di
+Description: Mouse support
+ This package contains mouse drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: nic-usb-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: standard
+Provides: nic-usb-modules
+Depends: kernel-image-4.19.0-21-marvell-di, nic-shared-modules-4.19.0-21-marvell-di, usb-modules-4.19.0-21-marvell-di, crc-modules-4.19.0-21-marvell-di
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: sata-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: standard
+Provides: sata-modules
+Depends: kernel-image-4.19.0-21-marvell-di, scsi-core-modules-4.19.0-21-marvell-di
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-marvell-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-marvell-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-marvell-di, md-modules-4.19.0-21-marvell-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: mmc-core-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: mmc-core-modules
+Depends: kernel-image-4.19.0-21-marvell-di
+Description: MMC/SD/SDIO core modules
+ This package contains core modules for MMC/SD/SDIO support.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: mmc-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: mmc-modules
+Depends: kernel-image-4.19.0-21-marvell-di, mmc-core-modules-4.19.0-21-marvell-di, usb-modules-4.19.0-21-marvell-di, crc-modules-4.19.0-21-marvell-di
+Description: MMC/SD card modules
+ This package contains modules needed to support MMC (multimedia) and SD
+ cards.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-marvell-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-marvell-di, compress-modules-4.19.0-21-marvell-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: uinput-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: uinput-modules
+Depends: kernel-image-4.19.0-21-marvell-di
+Description: uinput support
+ This package contains the uinput module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: zlib-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: zlib-modules
+Depends: kernel-image-4.19.0-21-marvell-di
+Description: zlib modules
+ This package contains zlib modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-marvell-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: leds-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: leds-modules
+Depends: kernel-image-4.19.0-21-marvell-di
+Description: LED modules
+ This package contains LED modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-marvell-di, crc-modules-4.19.0-21-marvell-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-marvell-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: mtd-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: mtd-modules
+Depends: kernel-image-4.19.0-21-marvell-di, mtd-core-modules-4.19.0-21-marvell-di
+Description: MTD driver modules
+ This package contains MTD driver modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: mtd-core-modules-4.19.0-21-marvell-di
+Architecture: armel
+Section: debian-installer
+Priority: optional
+Provides: mtd-core-modules
+Depends: kernel-image-4.19.0-21-marvell-di
+Description: MTD core
+ This package contains the MTD core.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-marvell
+Package-Type: udeb
+
+Package: linux-image-4.19.0-21-marvell
+Architecture: armel
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [armel] | linux-initramfs-tool [armel]
+Recommends: firmware-linux-free, ${kernel:Recommends}, u-boot-tools [armel], apparmor [armel]
+Suggests: linux-doc-4.19, debian-kernel-handbook
+Breaks: flash-kernel (<< 3.57~) [armel], initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for Marvell Kirkwood/Orion
+ The Linux kernel 4.19 and modules for use on Marvell Kirkwood and Orion
+ based systems (https://wiki.debian.org/ArmEabiPort#Supported_hardware).
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-marvell
+Architecture: armel
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-8-arm
+Description: Header files for Linux 4.19.0-21-marvell
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-marvell, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-marvell, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-marvell package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-marvell-dbg
+Architecture: armel
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-marvell
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-marvell.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-rpi
+Architecture: armel
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [armel] | linux-initramfs-tool [armel]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [armel]
+Suggests: linux-doc-4.19, debian-kernel-handbook
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for Raspberry Pi and Pi Zero
+ The Linux kernel 4.19 and modules for use on Raspberry Pi, Raspberry Pi
+ Zero based systems.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-rpi
+Architecture: armel
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-8-arm
+Description: Header files for Linux 4.19.0-21-rpi
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-rpi, generally used for building out-of-tree kernel
+ modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-rpi, and can be used for building modules
+ that load into the kernel provided by the linux-image-4.19.0-21-rpi
+ package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-rpi-dbg
+Architecture: armel
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-rpi
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-rpi.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-armhf
+Architecture: armhf
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-armmp (= ${binary:Version}), linux-headers-4.19.0-21-armmp-lpae (= ${binary:Version}), linux-headers-4.19.0-21-rt-armmp (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: kernel-image-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: standard
+Provides: kernel-image, mmc-core-modules, mtd-core-modules
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-armmp-di, nic-shared-modules-4.19.0-21-armmp-di, i2c-modules-4.19.0-21-armmp-di, crc-modules-4.19.0-21-armmp-di, zlib-modules-4.19.0-21-armmp-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: nic-wireless-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: standard
+Provides: nic-wireless-modules
+Depends: kernel-image-4.19.0-21-armmp-di, nic-shared-modules-4.19.0-21-armmp-di, usb-modules-4.19.0-21-armmp-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: usb-serial-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: usb-serial-modules
+Depends: kernel-image-4.19.0-21-armmp-di, usb-modules-4.19.0-21-armmp-di
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-armmp-di, zlib-modules-4.19.0-21-armmp-di, crc-modules-4.19.0-21-armmp-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: pata-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: pata-modules
+Depends: kernel-image-4.19.0-21-armmp-di, ata-modules-4.19.0-21-armmp-di
+Description: PATA drivers
+ This package contains PATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-armmp-di, scsi-core-modules-4.19.0-21-armmp-di, isofs-modules-4.19.0-21-armmp-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: scsi-core-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: standard
+Provides: scsi-core-modules
+Depends: kernel-image-4.19.0-21-armmp-di
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: scsi-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: standard
+Provides: scsi-modules
+Depends: kernel-image-4.19.0-21-armmp-di, scsi-core-modules-4.19.0-21-armmp-di, cdrom-core-modules-4.19.0-21-armmp-di, ata-modules-4.19.0-21-armmp-di
+Description: SCSI drivers
+ This package contains SCSI drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: scsi-nic-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: scsi-nic-modules
+Depends: scsi-modules-4.19.0-21-armmp-di, nic-modules-4.19.0-21-armmp-di
+Description: SCSI drivers for converged NICs
+ This package contains SCSI drivers that depend on net drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-armmp-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-armmp-di, crc-modules-4.19.0-21-armmp-di, zlib-modules-4.19.0-21-armmp-di, compress-modules-4.19.0-21-armmp-di, md-modules-4.19.0-21-armmp-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-armmp-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-armmp-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-armmp-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-armmp-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-armmp-di, crc-modules-4.19.0-21-armmp-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-armmp-di, md-modules-4.19.0-21-armmp-di, scsi-core-modules-4.19.0-21-armmp-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: usb-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: usb-modules
+Depends: kernel-image-4.19.0-21-armmp-di
+Description: USB support
+ This package contains core USB drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: usb-storage-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: standard
+Provides: usb-storage-modules
+Depends: kernel-image-4.19.0-21-armmp-di, scsi-core-modules-4.19.0-21-armmp-di, usb-modules-4.19.0-21-armmp-di
+Description: USB storage support
+ This package contains the USB storage driver for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: fb-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: fb-modules
+Depends: kernel-image-4.19.0-21-armmp-di, i2c-modules-4.19.0-21-armmp-di
+Description: Frame buffer support
+ This package contains Frame buffer drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: input-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: input-modules
+Depends: kernel-image-4.19.0-21-armmp-di, usb-modules-4.19.0-21-armmp-di, i2c-modules-4.19.0-21-armmp-di
+Description: Input devices support
+ This package contains input device drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: event-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: event-modules
+Depends: kernel-image-4.19.0-21-armmp-di
+Description: Event support
+ This package contains event drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: nic-usb-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: standard
+Provides: nic-usb-modules
+Depends: kernel-image-4.19.0-21-armmp-di, nic-shared-modules-4.19.0-21-armmp-di, nic-wireless-modules-4.19.0-21-armmp-di, usb-modules-4.19.0-21-armmp-di, crc-modules-4.19.0-21-armmp-di
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: sata-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: standard
+Provides: sata-modules
+Depends: kernel-image-4.19.0-21-armmp-di, scsi-core-modules-4.19.0-21-armmp-di, ata-modules-4.19.0-21-armmp-di
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: i2c-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: i2c-modules
+Depends: kernel-image-4.19.0-21-armmp-di
+Description: i2c support modules
+ This package contains basic i2c support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-armmp-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-armmp-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-armmp-di, md-modules-4.19.0-21-armmp-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: efi-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: efi-modules
+Depends: kernel-image-4.19.0-21-armmp-di
+Description: EFI modules
+ This package contains EFI modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: ata-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: ata-modules
+Depends: kernel-image-4.19.0-21-armmp-di, scsi-core-modules-4.19.0-21-armmp-di
+Description: ATA disk modules
+ This package contains core ATA disk modules used by both PATA and SATA
+ disk drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: mmc-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: mmc-modules
+Depends: kernel-image-4.19.0-21-armmp-di, usb-modules-4.19.0-21-armmp-di, crc-modules-4.19.0-21-armmp-di
+Description: MMC/SD card modules
+ This package contains modules needed to support MMC (multimedia) and SD
+ cards.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-armmp-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-armmp-di, compress-modules-4.19.0-21-armmp-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: uinput-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: uinput-modules
+Depends: kernel-image-4.19.0-21-armmp-di
+Description: uinput support
+ This package contains the uinput module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: zlib-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: zlib-modules
+Depends: kernel-image-4.19.0-21-armmp-di
+Description: zlib modules
+ This package contains zlib modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-armmp-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: leds-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: leds-modules
+Depends: kernel-image-4.19.0-21-armmp-di
+Description: LED modules
+ This package contains LED modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-armmp-di, crc-modules-4.19.0-21-armmp-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-armmp-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: mtd-modules-4.19.0-21-armmp-di
+Architecture: armhf
+Section: debian-installer
+Priority: optional
+Provides: mtd-modules
+Depends: kernel-image-4.19.0-21-armmp-di
+Description: MTD driver modules
+ This package contains MTD driver modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-armmp
+Package-Type: udeb
+
+Package: linux-image-4.19.0-21-armmp
+Architecture: armhf
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [armhf] | linux-initramfs-tool [armhf]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [armhf]
+Suggests: linux-doc-4.19, debian-kernel-handbook
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for ARMv7 multiplatform compatible SoCs
+ The Linux kernel 4.19 and modules for use on ARMv7 multiplatform kernel.
+ See https://wiki.debian.org/DebianKernel/ARMMP for details of supported
+ platforms.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-armmp
+Architecture: armhf
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-8-arm
+Description: Header files for Linux 4.19.0-21-armmp
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-armmp, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-armmp, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-armmp package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-armmp-dbg
+Architecture: armhf
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-armmp
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-armmp.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-armmp-lpae
+Architecture: armhf
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [armhf] | linux-initramfs-tool [armhf]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [armhf]
+Suggests: linux-doc-4.19, debian-kernel-handbook
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for ARMv7 multiplatform compatible SoCs supporting LPAE
+ The Linux kernel 4.19 and modules for use on ARMv7 multiplatform kernel
+ supporting LPAE. See https://wiki.debian.org/DebianKernel/ARMMP for
+ details of supported platforms..
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-armmp-lpae
+Architecture: armhf
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-8-arm
+Description: Header files for Linux 4.19.0-21-armmp-lpae
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-armmp-lpae, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-armmp-lpae, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-armmp-lpae package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-armmp-lpae-dbg
+Architecture: armhf
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-armmp-lpae
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-armmp-lpae.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-rt-armmp
+Architecture: armhf
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [armhf] | linux-initramfs-tool [armhf]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [armhf]
+Suggests: linux-doc-4.19, debian-kernel-handbook
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for ARMv7 multiplatform compatible SoCs, PREEMPT_RT
+ The Linux kernel 4.19 and modules for use on ARMv7 multiplatform kernel.
+ See https://wiki.debian.org/DebianKernel/ARMMP for details of supported
+ platforms.
+ .
+ This kernel includes the PREEMPT_RT realtime patch set.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-rt-armmp
+Architecture: armhf
+Depends: linux-headers-4.19.0-21-common-rt (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-8-arm
+Description: Header files for Linux 4.19.0-21-rt-armmp
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-rt-armmp, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-rt-armmp, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-rt-armmp package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-rt-armmp-dbg
+Architecture: armhf
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-rt-armmp
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-rt-armmp.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-hppa
+Architecture: hppa
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-parisc (= ${binary:Version}), linux-headers-4.19.0-21-parisc-smp (= ${binary:Version}), linux-headers-4.19.0-21-parisc64-smp (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: kernel-image-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: kernel-image
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-parisc-di, nic-shared-modules-4.19.0-21-parisc-di, crc-modules-4.19.0-21-parisc-di, zlib-modules-4.19.0-21-parisc-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: serial-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: serial-modules
+Depends: kernel-image-4.19.0-21-parisc-di
+Description: Serial drivers
+ This package contains serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: usb-serial-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: usb-serial-modules
+Depends: kernel-image-4.19.0-21-parisc-di, usb-modules-4.19.0-21-parisc-di
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-parisc-di, serial-modules-4.19.0-21-parisc-di, zlib-modules-4.19.0-21-parisc-di, crc-modules-4.19.0-21-parisc-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: pata-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: pata-modules
+Depends: kernel-image-4.19.0-21-parisc-di, ata-modules-4.19.0-21-parisc-di
+Description: PATA drivers
+ This package contains PATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-parisc-di, scsi-core-modules-4.19.0-21-parisc-di, isofs-modules-4.19.0-21-parisc-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: scsi-core-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: scsi-core-modules
+Depends: kernel-image-4.19.0-21-parisc-di
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: scsi-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: scsi-modules
+Depends: kernel-image-4.19.0-21-parisc-di, scsi-core-modules-4.19.0-21-parisc-di, cdrom-core-modules-4.19.0-21-parisc-di, ata-modules-4.19.0-21-parisc-di
+Description: SCSI drivers
+ This package contains SCSI drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-parisc-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-parisc-di, crc-modules-4.19.0-21-parisc-di, zlib-modules-4.19.0-21-parisc-di, compress-modules-4.19.0-21-parisc-di, md-modules-4.19.0-21-parisc-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-parisc-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-parisc-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-parisc-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-parisc-di, crc-modules-4.19.0-21-parisc-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-parisc-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-parisc-di, crc-modules-4.19.0-21-parisc-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-parisc-di, md-modules-4.19.0-21-parisc-di, scsi-core-modules-4.19.0-21-parisc-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: usb-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: usb-modules
+Depends: kernel-image-4.19.0-21-parisc-di
+Description: USB support
+ This package contains core USB drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: usb-storage-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: usb-storage-modules
+Depends: kernel-image-4.19.0-21-parisc-di, scsi-core-modules-4.19.0-21-parisc-di, usb-modules-4.19.0-21-parisc-di
+Description: USB storage support
+ This package contains the USB storage driver for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: input-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: input-modules
+Depends: kernel-image-4.19.0-21-parisc-di, usb-modules-4.19.0-21-parisc-di
+Description: Input devices support
+ This package contains input device drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: event-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: event-modules
+Depends: kernel-image-4.19.0-21-parisc-di
+Description: Event support
+ This package contains event drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: mouse-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: mouse-modules
+Depends: kernel-image-4.19.0-21-parisc-di, event-modules-4.19.0-21-parisc-di, input-modules-4.19.0-21-parisc-di, usb-modules-4.19.0-21-parisc-di
+Description: Mouse support
+ This package contains mouse drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: nic-usb-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: nic-usb-modules
+Depends: kernel-image-4.19.0-21-parisc-di, nic-shared-modules-4.19.0-21-parisc-di, usb-modules-4.19.0-21-parisc-di, crc-modules-4.19.0-21-parisc-di
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: sata-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: sata-modules
+Depends: kernel-image-4.19.0-21-parisc-di, scsi-core-modules-4.19.0-21-parisc-di, ata-modules-4.19.0-21-parisc-di
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-parisc-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-parisc-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-parisc-di, md-modules-4.19.0-21-parisc-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: ata-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: ata-modules
+Depends: kernel-image-4.19.0-21-parisc-di, scsi-core-modules-4.19.0-21-parisc-di
+Description: ATA disk modules
+ This package contains core ATA disk modules used by both PATA and SATA
+ disk drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-parisc-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-parisc-di, compress-modules-4.19.0-21-parisc-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: zlib-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: zlib-modules
+Depends: kernel-image-4.19.0-21-parisc-di
+Description: zlib modules
+ This package contains zlib modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-parisc-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-parisc-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-parisc-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc
+Package-Type: udeb
+
+Package: kernel-image-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: kernel-image, i2c-modules
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di, nic-shared-modules-4.19.0-21-parisc64-smp-di, crc-modules-4.19.0-21-parisc64-smp-di, zlib-modules-4.19.0-21-parisc64-smp-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: serial-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: serial-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di
+Description: Serial drivers
+ This package contains serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: usb-serial-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: usb-serial-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di, usb-modules-4.19.0-21-parisc64-smp-di
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di, serial-modules-4.19.0-21-parisc64-smp-di, zlib-modules-4.19.0-21-parisc64-smp-di, crc-modules-4.19.0-21-parisc64-smp-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: pata-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: pata-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di, ata-modules-4.19.0-21-parisc64-smp-di
+Description: PATA drivers
+ This package contains PATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di, scsi-core-modules-4.19.0-21-parisc64-smp-di, isofs-modules-4.19.0-21-parisc64-smp-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: scsi-core-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: scsi-core-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: scsi-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: scsi-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di, scsi-core-modules-4.19.0-21-parisc64-smp-di, cdrom-core-modules-4.19.0-21-parisc64-smp-di, ata-modules-4.19.0-21-parisc64-smp-di
+Description: SCSI drivers
+ This package contains SCSI drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di, crc-modules-4.19.0-21-parisc64-smp-di, zlib-modules-4.19.0-21-parisc64-smp-di, compress-modules-4.19.0-21-parisc64-smp-di, md-modules-4.19.0-21-parisc64-smp-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di, crc-modules-4.19.0-21-parisc64-smp-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di, crc-modules-4.19.0-21-parisc64-smp-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di, crc-modules-4.19.0-21-parisc64-smp-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di, md-modules-4.19.0-21-parisc64-smp-di, scsi-core-modules-4.19.0-21-parisc64-smp-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: usb-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: usb-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di
+Description: USB support
+ This package contains core USB drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: usb-storage-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: usb-storage-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di, scsi-core-modules-4.19.0-21-parisc64-smp-di, usb-modules-4.19.0-21-parisc64-smp-di
+Description: USB storage support
+ This package contains the USB storage driver for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: fb-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: fb-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di
+Description: Frame buffer support
+ This package contains Frame buffer drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: input-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: input-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di, usb-modules-4.19.0-21-parisc64-smp-di
+Description: Input devices support
+ This package contains input device drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: event-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: event-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di
+Description: Event support
+ This package contains event drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: mouse-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: mouse-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di, event-modules-4.19.0-21-parisc64-smp-di, input-modules-4.19.0-21-parisc64-smp-di, usb-modules-4.19.0-21-parisc64-smp-di
+Description: Mouse support
+ This package contains mouse drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: nic-usb-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: nic-usb-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di, nic-shared-modules-4.19.0-21-parisc64-smp-di, usb-modules-4.19.0-21-parisc64-smp-di, crc-modules-4.19.0-21-parisc64-smp-di
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: sata-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: standard
+Provides: sata-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di, scsi-core-modules-4.19.0-21-parisc64-smp-di, ata-modules-4.19.0-21-parisc64-smp-di
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di, md-modules-4.19.0-21-parisc64-smp-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: ata-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: ata-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di, scsi-core-modules-4.19.0-21-parisc64-smp-di
+Description: ATA disk modules
+ This package contains core ATA disk modules used by both PATA and SATA
+ disk drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di, compress-modules-4.19.0-21-parisc64-smp-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: zlib-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: zlib-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di
+Description: zlib modules
+ This package contains zlib modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-parisc64-smp-di
+Architecture: hppa
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-parisc64-smp-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-parisc64-smp
+Package-Type: udeb
+
+Package: linux-image-4.19.0-21-parisc
+Architecture: hppa
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [hppa] | linux-initramfs-tool [hppa]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [hppa]
+Suggests: linux-doc-4.19, debian-kernel-handbook, palo [hppa]
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for 32-bit PA-RISC
+ The Linux kernel 4.19 and modules for use on HP PA-RISC 32-bit systems
+ with max 4 GB RAM.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-parisc
+Architecture: hppa
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8, binutils-hppa64-linux-gnu, gcc-8-hppa64-linux-gnu
+Description: Header files for Linux 4.19.0-21-parisc
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-parisc, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-parisc, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-parisc package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-parisc-smp
+Architecture: hppa
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [hppa] | linux-initramfs-tool [hppa]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [hppa]
+Suggests: linux-doc-4.19, debian-kernel-handbook, palo [hppa]
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for multiprocessor 32-bit PA-RISC
+ The Linux kernel 4.19 and modules for use on HP PA-RISC 32-bit SMP systems
+ with max 4 GB RAM.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-parisc-smp
+Architecture: hppa
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8, binutils-hppa64-linux-gnu, gcc-8-hppa64-linux-gnu
+Description: Header files for Linux 4.19.0-21-parisc-smp
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-parisc-smp, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-parisc-smp, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-parisc-smp package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-parisc64-smp
+Architecture: hppa
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [hppa] | linux-initramfs-tool [hppa]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [hppa]
+Suggests: linux-doc-4.19, debian-kernel-handbook, palo [hppa]
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for multiprocessor 64-bit PA-RISC
+ The Linux kernel 4.19 and modules for use on HP PA-RISC 64-bit SMP systems
+ with support for more than 4 GB RAM.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-parisc64-smp
+Architecture: hppa
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8, binutils-hppa64-linux-gnu, gcc-8-hppa64-linux-gnu
+Description: Header files for Linux 4.19.0-21-parisc64-smp
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-parisc64-smp, generally used for building
+ out-of-tree kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-parisc64-smp, and can be used for
+ building modules that load into the kernel provided by the
+ linux-image-4.19.0-21-parisc64-smp package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-i386
+Architecture: i386
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-686 (= ${binary:Version}), linux-headers-4.19.0-21-686-pae (= ${binary:Version}), linux-headers-4.19.0-21-rt-686-pae (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: kernel-image-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: kernel-image, rtc-modules, zlib-modules
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-686-di, nic-shared-modules-4.19.0-21-686-di, i2c-modules-4.19.0-21-686-di, crc-modules-4.19.0-21-686-di, mtd-core-modules-4.19.0-21-686-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: nic-wireless-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: nic-wireless-modules
+Depends: kernel-image-4.19.0-21-686-di, nic-shared-modules-4.19.0-21-686-di, usb-modules-4.19.0-21-686-di, mmc-core-modules-4.19.0-21-686-di, pcmcia-modules-4.19.0-21-686-di, crc-modules-4.19.0-21-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: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: serial-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: serial-modules
+Depends: kernel-image-4.19.0-21-686-di, pcmcia-modules-4.19.0-21-686-di
+Description: Serial drivers
+ This package contains serial drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: usb-serial-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: usb-serial-modules
+Depends: kernel-image-4.19.0-21-686-di, usb-modules-4.19.0-21-686-di
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-686-di, serial-modules-4.19.0-21-686-di, crc-modules-4.19.0-21-686-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: pata-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: pata-modules
+Depends: kernel-image-4.19.0-21-686-di, ata-modules-4.19.0-21-686-di
+Description: PATA drivers
+ This package contains PATA drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-686-di, scsi-core-modules-4.19.0-21-686-di, isofs-modules-4.19.0-21-686-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: firewire-core-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: firewire-core-modules
+Depends: kernel-image-4.19.0-21-686-di, scsi-core-modules-4.19.0-21-686-di, crc-modules-4.19.0-21-686-di
+Description: Core FireWire drivers
+ This package contains core FireWire drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: scsi-core-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: scsi-core-modules
+Depends: kernel-image-4.19.0-21-686-di
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: scsi-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: scsi-modules
+Depends: kernel-image-4.19.0-21-686-di, scsi-core-modules-4.19.0-21-686-di, cdrom-core-modules-4.19.0-21-686-di, ata-modules-4.19.0-21-686-di
+Description: SCSI drivers
+ This package contains SCSI drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: scsi-nic-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: scsi-nic-modules
+Depends: scsi-modules-4.19.0-21-686-di, nic-modules-4.19.0-21-686-di
+Description: SCSI drivers for converged NICs
+ This package contains SCSI drivers that depend on net drivers.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-686-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-686-di, crc-modules-4.19.0-21-686-di, compress-modules-4.19.0-21-686-di, md-modules-4.19.0-21-686-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-686-di, crc-modules-4.19.0-21-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: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-686-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-686-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-686-di, crc-modules-4.19.0-21-686-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-686-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-686-di, crc-modules-4.19.0-21-686-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-686-di, md-modules-4.19.0-21-686-di, scsi-core-modules-4.19.0-21-686-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: usb-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: usb-modules
+Depends: kernel-image-4.19.0-21-686-di
+Description: USB support
+ This package contains core USB drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: usb-storage-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: usb-storage-modules
+Depends: kernel-image-4.19.0-21-686-di, scsi-core-modules-4.19.0-21-686-di, usb-modules-4.19.0-21-686-di
+Description: USB storage support
+ This package contains the USB storage driver for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: pcmcia-storage-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: pcmcia-storage-modules
+Depends: kernel-image-4.19.0-21-686-di, cdrom-core-modules-4.19.0-21-686-di, pcmcia-modules-4.19.0-21-686-di, ata-modules-4.19.0-21-686-di
+Description: PCMCIA storage drivers
+ This package contains PCMCIA storage drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: fb-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: fb-modules
+Depends: kernel-image-4.19.0-21-686-di, i2c-modules-4.19.0-21-686-di
+Description: Frame buffer support
+ This package contains Frame buffer drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: input-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: input-modules
+Depends: kernel-image-4.19.0-21-686-di, usb-modules-4.19.0-21-686-di, i2c-modules-4.19.0-21-686-di
+Description: Input devices support
+ This package contains input device drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: event-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: event-modules
+Depends: kernel-image-4.19.0-21-686-di
+Description: Event support
+ This package contains event drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: mouse-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: mouse-modules
+Depends: kernel-image-4.19.0-21-686-di, event-modules-4.19.0-21-686-di, input-modules-4.19.0-21-686-di, usb-modules-4.19.0-21-686-di
+Description: Mouse support
+ This package contains mouse drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: nic-pcmcia-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: nic-pcmcia-modules
+Depends: kernel-image-4.19.0-21-686-di, nic-shared-modules-4.19.0-21-686-di, nic-wireless-modules-4.19.0-21-686-di, pcmcia-modules-4.19.0-21-686-di, mmc-core-modules-4.19.0-21-686-di
+Description: Common PCMCIA NIC drivers
+ This package contains common PCMCIA NIC drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: pcmcia-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: pcmcia-modules
+Depends: kernel-image-4.19.0-21-686-di
+Description: Common PCMCIA drivers
+ This package contains common PCMCIA drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: nic-usb-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: nic-usb-modules
+Depends: kernel-image-4.19.0-21-686-di, nic-shared-modules-4.19.0-21-686-di, nic-wireless-modules-4.19.0-21-686-di, usb-modules-4.19.0-21-686-di, crc-modules-4.19.0-21-686-di
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: sata-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: sata-modules
+Depends: kernel-image-4.19.0-21-686-di, scsi-core-modules-4.19.0-21-686-di, ata-modules-4.19.0-21-686-di
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: acpi-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: acpi-modules
+Depends: kernel-image-4.19.0-21-686-di
+Description: ACPI support modules
+ This package contains kernel modules for ACPI.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: i2c-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: i2c-modules
+Depends: kernel-image-4.19.0-21-686-di
+Description: i2c support modules
+ This package contains basic i2c support modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-686-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-686-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-686-di, md-modules-4.19.0-21-686-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: efi-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: efi-modules
+Depends: kernel-image-4.19.0-21-686-di
+Description: EFI modules
+ This package contains EFI modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: ata-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: ata-modules
+Depends: kernel-image-4.19.0-21-686-di, scsi-core-modules-4.19.0-21-686-di
+Description: ATA disk modules
+ This package contains core ATA disk modules used by both PATA and SATA
+ disk drivers.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: mmc-core-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: mmc-core-modules
+Depends: kernel-image-4.19.0-21-686-di
+Description: MMC/SD/SDIO core modules
+ This package contains core modules for MMC/SD/SDIO support.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: mmc-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: mmc-modules
+Depends: kernel-image-4.19.0-21-686-di, mmc-core-modules-4.19.0-21-686-di, usb-modules-4.19.0-21-686-di, crc-modules-4.19.0-21-686-di
+Description: MMC/SD card modules
+ This package contains modules needed to support MMC (multimedia) and SD
+ cards.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-686-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-686-di, compress-modules-4.19.0-21-686-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: speakup-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: speakup-modules
+Depends: kernel-image-4.19.0-21-686-di
+Description: speakup modules
+ This package contains speakup modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: uinput-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: uinput-modules
+Depends: kernel-image-4.19.0-21-686-di
+Description: uinput support
+ This package contains the uinput module.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: sound-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: sound-modules
+Depends: kernel-image-4.19.0-21-686-di, i2c-modules-4.19.0-21-686-di, usb-modules-4.19.0-21-686-di, pcmcia-modules-4.19.0-21-686-di, firewire-core-modules-4.19.0-21-686-di, crc-modules-4.19.0-21-686-di
+Description: sound support
+ This package contains sound modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-686-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-686-di, crc-modules-4.19.0-21-686-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-686-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: mtd-core-modules-4.19.0-21-686-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: mtd-core-modules
+Depends: kernel-image-4.19.0-21-686-di
+Description: MTD core
+ This package contains the MTD core.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686
+Package-Type: udeb
+
+Package: kernel-image-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: kernel-image, rtc-modules, zlib-modules
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, nic-shared-modules-4.19.0-21-686-pae-di, i2c-modules-4.19.0-21-686-pae-di, crc-modules-4.19.0-21-686-pae-di, mtd-core-modules-4.19.0-21-686-pae-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: nic-wireless-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: nic-wireless-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, nic-shared-modules-4.19.0-21-686-pae-di, usb-modules-4.19.0-21-686-pae-di, mmc-core-modules-4.19.0-21-686-pae-di, pcmcia-modules-4.19.0-21-686-pae-di, crc-modules-4.19.0-21-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: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: serial-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: serial-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, pcmcia-modules-4.19.0-21-686-pae-di
+Description: Serial drivers
+ This package contains serial drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: usb-serial-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: usb-serial-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, usb-modules-4.19.0-21-686-pae-di
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, serial-modules-4.19.0-21-686-pae-di, crc-modules-4.19.0-21-686-pae-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: pata-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: pata-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, ata-modules-4.19.0-21-686-pae-di
+Description: PATA drivers
+ This package contains PATA drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, scsi-core-modules-4.19.0-21-686-pae-di, isofs-modules-4.19.0-21-686-pae-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: firewire-core-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: firewire-core-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, scsi-core-modules-4.19.0-21-686-pae-di, crc-modules-4.19.0-21-686-pae-di
+Description: Core FireWire drivers
+ This package contains core FireWire drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: scsi-core-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: scsi-core-modules
+Depends: kernel-image-4.19.0-21-686-pae-di
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: scsi-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: scsi-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, scsi-core-modules-4.19.0-21-686-pae-di, cdrom-core-modules-4.19.0-21-686-pae-di, ata-modules-4.19.0-21-686-pae-di
+Description: SCSI drivers
+ This package contains SCSI drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: scsi-nic-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: scsi-nic-modules
+Depends: scsi-modules-4.19.0-21-686-pae-di, nic-modules-4.19.0-21-686-pae-di
+Description: SCSI drivers for converged NICs
+ This package contains SCSI drivers that depend on net drivers.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-686-pae-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, crc-modules-4.19.0-21-686-pae-di, compress-modules-4.19.0-21-686-pae-di, md-modules-4.19.0-21-686-pae-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, crc-modules-4.19.0-21-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: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-686-pae-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-686-pae-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, crc-modules-4.19.0-21-686-pae-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-686-pae-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, crc-modules-4.19.0-21-686-pae-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, md-modules-4.19.0-21-686-pae-di, scsi-core-modules-4.19.0-21-686-pae-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: usb-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: usb-modules
+Depends: kernel-image-4.19.0-21-686-pae-di
+Description: USB support
+ This package contains core USB drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: usb-storage-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: usb-storage-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, scsi-core-modules-4.19.0-21-686-pae-di, usb-modules-4.19.0-21-686-pae-di
+Description: USB storage support
+ This package contains the USB storage driver for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: pcmcia-storage-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: pcmcia-storage-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, cdrom-core-modules-4.19.0-21-686-pae-di, pcmcia-modules-4.19.0-21-686-pae-di, ata-modules-4.19.0-21-686-pae-di
+Description: PCMCIA storage drivers
+ This package contains PCMCIA storage drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: fb-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: fb-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, i2c-modules-4.19.0-21-686-pae-di
+Description: Frame buffer support
+ This package contains Frame buffer drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: input-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: input-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, usb-modules-4.19.0-21-686-pae-di, i2c-modules-4.19.0-21-686-pae-di
+Description: Input devices support
+ This package contains input device drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: event-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: event-modules
+Depends: kernel-image-4.19.0-21-686-pae-di
+Description: Event support
+ This package contains event drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: mouse-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: mouse-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, event-modules-4.19.0-21-686-pae-di, input-modules-4.19.0-21-686-pae-di, usb-modules-4.19.0-21-686-pae-di
+Description: Mouse support
+ This package contains mouse drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: nic-pcmcia-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: nic-pcmcia-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, nic-shared-modules-4.19.0-21-686-pae-di, nic-wireless-modules-4.19.0-21-686-pae-di, pcmcia-modules-4.19.0-21-686-pae-di, mmc-core-modules-4.19.0-21-686-pae-di
+Description: Common PCMCIA NIC drivers
+ This package contains common PCMCIA NIC drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: pcmcia-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: pcmcia-modules
+Depends: kernel-image-4.19.0-21-686-pae-di
+Description: Common PCMCIA drivers
+ This package contains common PCMCIA drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: nic-usb-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: nic-usb-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, nic-shared-modules-4.19.0-21-686-pae-di, nic-wireless-modules-4.19.0-21-686-pae-di, usb-modules-4.19.0-21-686-pae-di, crc-modules-4.19.0-21-686-pae-di
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: sata-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: standard
+Provides: sata-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, scsi-core-modules-4.19.0-21-686-pae-di, ata-modules-4.19.0-21-686-pae-di
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: acpi-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: acpi-modules
+Depends: kernel-image-4.19.0-21-686-pae-di
+Description: ACPI support modules
+ This package contains kernel modules for ACPI.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: i2c-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: i2c-modules
+Depends: kernel-image-4.19.0-21-686-pae-di
+Description: i2c support modules
+ This package contains basic i2c support modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-686-pae-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-686-pae-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, md-modules-4.19.0-21-686-pae-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: efi-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: efi-modules
+Depends: kernel-image-4.19.0-21-686-pae-di
+Description: EFI modules
+ This package contains EFI modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: ata-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: ata-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, scsi-core-modules-4.19.0-21-686-pae-di
+Description: ATA disk modules
+ This package contains core ATA disk modules used by both PATA and SATA
+ disk drivers.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: mmc-core-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: mmc-core-modules
+Depends: kernel-image-4.19.0-21-686-pae-di
+Description: MMC/SD/SDIO core modules
+ This package contains core modules for MMC/SD/SDIO support.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: mmc-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: mmc-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, mmc-core-modules-4.19.0-21-686-pae-di, usb-modules-4.19.0-21-686-pae-di, crc-modules-4.19.0-21-686-pae-di
+Description: MMC/SD card modules
+ This package contains modules needed to support MMC (multimedia) and SD
+ cards.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-686-pae-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, compress-modules-4.19.0-21-686-pae-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: speakup-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: speakup-modules
+Depends: kernel-image-4.19.0-21-686-pae-di
+Description: speakup modules
+ This package contains speakup modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: uinput-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: uinput-modules
+Depends: kernel-image-4.19.0-21-686-pae-di
+Description: uinput support
+ This package contains the uinput module.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: sound-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: sound-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, i2c-modules-4.19.0-21-686-pae-di, usb-modules-4.19.0-21-686-pae-di, pcmcia-modules-4.19.0-21-686-pae-di, firewire-core-modules-4.19.0-21-686-pae-di, crc-modules-4.19.0-21-686-pae-di
+Description: sound support
+ This package contains sound modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-686-pae-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-686-pae-di, crc-modules-4.19.0-21-686-pae-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-686-pae-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: mtd-core-modules-4.19.0-21-686-pae-di
+Architecture: i386
+Section: debian-installer
+Priority: optional
+Provides: mtd-core-modules
+Depends: kernel-image-4.19.0-21-686-pae-di
+Description: MTD core
+ This package contains the MTD core.
+Build-Profiles: <pkg.linux.udeb-unsigned-test-build>
+Kernel-Version: 4.19.0-21-686-pae
+Package-Type: udeb
+
+Package: linux-image-i386-signed-template
+Architecture: i386
+Depends: dpkg-dev, ${misc:Depends}
+Description: Template for signed linux-image packages for i386
+ This package is used to control code signing by the Debian signing
+ service.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-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, ${kernel:Recommends}, apparmor [i386]
+Suggests: linux-doc-4.19, debian-kernel-handbook, grub-pc [i386] | grub-efi-ia32 [i386] | extlinux [i386]
+Replaces: linux-image-4.19.0-21-686
+Breaks: xserver-xorg-input-vmmouse (<< 1:13.0.99) [i386], initramfs-tools (<< 0.120+deb8u2)
+Conflicts: linux-image-4.19.0-21-686
+Description: Linux 4.19 for older PCs
+ The Linux kernel 4.19 and modules for use on PCs with one or more
+ processors not supporting PAE.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-686
+Architecture: i386
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-8-x86
+Description: Header files for Linux 4.19.0-21-686
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-686, generally used for building out-of-tree kernel
+ modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-686, and can be used for building modules
+ that load into the kernel provided by the linux-image-4.19.0-21-686
+ package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-686-dbg
+Architecture: i386
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-686
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-686.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-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, ${kernel:Recommends}, apparmor [i386]
+Suggests: linux-doc-4.19, debian-kernel-handbook, grub-pc [i386] | grub-efi-ia32 [i386] | extlinux [i386]
+Replaces: linux-image-4.19.0-21-686-pae
+Breaks: xserver-xorg-input-vmmouse (<< 1:13.0.99) [i386], initramfs-tools (<< 0.120+deb8u2)
+Conflicts: linux-image-4.19.0-21-686-pae
+Description: Linux 4.19 for modern PCs
+ The Linux kernel 4.19 and modules for use on PCs with one or more
+ processors supporting PAE.
+ .
+ This kernel requires PAE (Physical Address Extension). This feature is
+ supported by the Intel Pentium Pro/II/III/4/4M/D, Xeon, Core and Atom; AMD
+ Geode NX, Athlon (K7), Duron, Opteron, Sempron, Turion or Phenom;
+ Transmeta Efficeon; VIA C7; and some other processors.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-686-pae
+Architecture: i386
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-8-x86
+Description: Header files for Linux 4.19.0-21-686-pae
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-686-pae, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-686-pae, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-686-pae package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-686-pae-dbg
+Architecture: i386
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-686-pae
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-686-pae.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-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, ${kernel:Recommends}, apparmor [i386]
+Suggests: linux-doc-4.19, debian-kernel-handbook, grub-pc [i386] | grub-efi-ia32 [i386] | extlinux [i386]
+Replaces: linux-image-4.19.0-21-rt-686-pae
+Breaks: xserver-xorg-input-vmmouse (<< 1:13.0.99) [i386], initramfs-tools (<< 0.120+deb8u2)
+Conflicts: linux-image-4.19.0-21-rt-686-pae
+Description: Linux 4.19 for modern PCs, PREEMPT_RT
+ The Linux kernel 4.19 and modules for use on PCs with one or more
+ processors supporting PAE.
+ .
+ This kernel requires PAE (Physical Address Extension). This feature is
+ supported by the Intel Pentium Pro/II/III/4/4M/D, Xeon, Core and Atom; AMD
+ Geode NX, Athlon (K7), Duron, Opteron, Sempron, Turion or Phenom;
+ Transmeta Efficeon; VIA C7; and some other processors.
+ .
+ This kernel includes the PREEMPT_RT realtime patch set.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-rt-686-pae
+Architecture: i386
+Depends: linux-headers-4.19.0-21-common-rt (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-8-x86
+Description: Header files for Linux 4.19.0-21-rt-686-pae
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-rt-686-pae, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-rt-686-pae, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-rt-686-pae package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-rt-686-pae-dbg
+Architecture: i386
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-rt-686-pae
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-rt-686-pae.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-ia64
+Architecture: ia64
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-itanium (= ${binary:Version}), linux-headers-4.19.0-21-mckinley (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: kernel-image-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: standard
+Provides: kernel-image, efi-modules, zlib-modules
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-itanium-di, nic-shared-modules-4.19.0-21-itanium-di, i2c-modules-4.19.0-21-itanium-di, crc-modules-4.19.0-21-itanium-di, mtd-core-modules-4.19.0-21-itanium-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: serial-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: serial-modules
+Depends: kernel-image-4.19.0-21-itanium-di, pcmcia-modules-4.19.0-21-itanium-di, sn-modules-4.19.0-21-itanium-di
+Description: Serial drivers
+ This package contains serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: usb-serial-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: usb-serial-modules
+Depends: kernel-image-4.19.0-21-itanium-di, usb-modules-4.19.0-21-itanium-di
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-itanium-di, serial-modules-4.19.0-21-itanium-di, crc-modules-4.19.0-21-itanium-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: pata-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: standard
+Provides: pata-modules
+Depends: kernel-image-4.19.0-21-itanium-di, ata-modules-4.19.0-21-itanium-di
+Description: PATA drivers
+ This package contains PATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-itanium-di, scsi-core-modules-4.19.0-21-itanium-di, ide-modules-4.19.0-21-itanium-di, isofs-modules-4.19.0-21-itanium-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: firewire-core-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: standard
+Provides: firewire-core-modules
+Depends: kernel-image-4.19.0-21-itanium-di, scsi-core-modules-4.19.0-21-itanium-di, crc-modules-4.19.0-21-itanium-di
+Description: Core FireWire drivers
+ This package contains core FireWire drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: scsi-core-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: standard
+Provides: scsi-core-modules
+Depends: kernel-image-4.19.0-21-itanium-di
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: scsi-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: standard
+Provides: scsi-modules
+Depends: kernel-image-4.19.0-21-itanium-di, scsi-core-modules-4.19.0-21-itanium-di, cdrom-core-modules-4.19.0-21-itanium-di, ata-modules-4.19.0-21-itanium-di
+Description: SCSI drivers
+ This package contains SCSI drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: scsi-nic-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: scsi-nic-modules
+Depends: scsi-modules-4.19.0-21-itanium-di, nic-modules-4.19.0-21-itanium-di
+Description: SCSI drivers for converged NICs
+ This package contains SCSI drivers that depend on net drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-itanium-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-itanium-di, crc-modules-4.19.0-21-itanium-di, compress-modules-4.19.0-21-itanium-di, md-modules-4.19.0-21-itanium-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-itanium-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-itanium-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-itanium-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-itanium-di, crc-modules-4.19.0-21-itanium-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: standard
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-itanium-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-itanium-di, crc-modules-4.19.0-21-itanium-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-itanium-di, md-modules-4.19.0-21-itanium-di, scsi-core-modules-4.19.0-21-itanium-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: usb-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: usb-modules
+Depends: kernel-image-4.19.0-21-itanium-di
+Description: USB support
+ This package contains core USB drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: usb-storage-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: standard
+Provides: usb-storage-modules
+Depends: kernel-image-4.19.0-21-itanium-di, scsi-core-modules-4.19.0-21-itanium-di, usb-modules-4.19.0-21-itanium-di
+Description: USB storage support
+ This package contains the USB storage driver for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: fb-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: fb-modules
+Depends: kernel-image-4.19.0-21-itanium-di, i2c-modules-4.19.0-21-itanium-di
+Description: Frame buffer support
+ This package contains Frame buffer drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: input-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: input-modules
+Depends: kernel-image-4.19.0-21-itanium-di, usb-modules-4.19.0-21-itanium-di, i2c-modules-4.19.0-21-itanium-di
+Description: Input devices support
+ This package contains input device drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: event-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: event-modules
+Depends: kernel-image-4.19.0-21-itanium-di
+Description: Event support
+ This package contains event drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: mouse-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: mouse-modules
+Depends: kernel-image-4.19.0-21-itanium-di, event-modules-4.19.0-21-itanium-di, input-modules-4.19.0-21-itanium-di, usb-modules-4.19.0-21-itanium-di
+Description: Mouse support
+ This package contains mouse drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: pcmcia-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: standard
+Provides: pcmcia-modules
+Depends: kernel-image-4.19.0-21-itanium-di
+Description: Common PCMCIA drivers
+ This package contains common PCMCIA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: nic-usb-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: standard
+Provides: nic-usb-modules
+Depends: kernel-image-4.19.0-21-itanium-di, nic-shared-modules-4.19.0-21-itanium-di, usb-modules-4.19.0-21-itanium-di, crc-modules-4.19.0-21-itanium-di
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: sata-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: standard
+Provides: sata-modules
+Depends: kernel-image-4.19.0-21-itanium-di, scsi-core-modules-4.19.0-21-itanium-di, ata-modules-4.19.0-21-itanium-di
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: i2c-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: i2c-modules
+Depends: kernel-image-4.19.0-21-itanium-di
+Description: i2c support modules
+ This package contains basic i2c support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-itanium-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-itanium-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-itanium-di, md-modules-4.19.0-21-itanium-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: ata-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: ata-modules
+Depends: kernel-image-4.19.0-21-itanium-di, scsi-core-modules-4.19.0-21-itanium-di
+Description: ATA disk modules
+ This package contains core ATA disk modules used by both PATA and SATA
+ disk drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-itanium-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-itanium-di, compress-modules-4.19.0-21-itanium-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: uinput-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: uinput-modules
+Depends: kernel-image-4.19.0-21-itanium-di
+Description: uinput support
+ This package contains the uinput module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-itanium-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-itanium-di, crc-modules-4.19.0-21-itanium-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-itanium-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: mtd-core-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: mtd-core-modules
+Depends: kernel-image-4.19.0-21-itanium-di
+Description: MTD core
+ This package contains the MTD core.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: ide-core-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: standard
+Provides: ide-core-modules
+Depends: kernel-image-4.19.0-21-itanium-di
+Description: IDE support
+ This package contains core IDE support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: ide-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: standard
+Provides: ide-modules
+Depends: kernel-image-4.19.0-21-itanium-di, ide-core-modules-4.19.0-21-itanium-di, sn-modules-4.19.0-21-itanium-di
+Description: IDE drivers
+ This package contains IDE drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: sn-modules-4.19.0-21-itanium-di
+Architecture: ia64
+Section: debian-installer
+Priority: optional
+Provides: sn-modules
+Depends: kernel-image-4.19.0-21-itanium-di
+Description: SN modules
+ This package contains SN modules for Altix systems
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-itanium
+Package-Type: udeb
+
+Package: linux-image-4.19.0-21-itanium
+Architecture: ia64
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [ia64] | linux-initramfs-tool [ia64]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [ia64]
+Suggests: linux-doc-4.19, debian-kernel-handbook, grub-efi-ia64 [ia64]
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for Itanium (Merced)
+ The Linux kernel 4.19 and modules for use on systems with original Itanium
+ (Merced) processors.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-itanium
+Architecture: ia64
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-itanium
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-itanium, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-itanium, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-itanium package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-itanium-dbg
+Architecture: ia64
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-itanium
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-itanium.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-mckinley
+Architecture: ia64
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [ia64] | linux-initramfs-tool [ia64]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [ia64]
+Suggests: linux-doc-4.19, debian-kernel-handbook, grub-efi-ia64 [ia64]
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for Itanium 2+
+ The Linux kernel 4.19 and modules for use on systems with Itanium 2 or
+ 9300/9500/9700-series processors.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-mckinley
+Architecture: ia64
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-mckinley
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-mckinley, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-mckinley, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-mckinley package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-mckinley-dbg
+Architecture: ia64
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-mckinley
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-mckinley.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-m68k
+Architecture: m68k
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-m68k (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: kernel-image-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: standard
+Provides: kernel-image
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-m68k-di, nic-shared-modules-4.19.0-21-m68k-di, crc-modules-4.19.0-21-m68k-di, zlib-modules-4.19.0-21-m68k-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-m68k-di, zlib-modules-4.19.0-21-m68k-di, crc-modules-4.19.0-21-m68k-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: pata-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: standard
+Provides: pata-modules
+Depends: kernel-image-4.19.0-21-m68k-di, ata-modules-4.19.0-21-m68k-di
+Description: PATA drivers
+ This package contains PATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-m68k-di, scsi-core-modules-4.19.0-21-m68k-di, ide-modules-4.19.0-21-m68k-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: scsi-core-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: standard
+Provides: scsi-core-modules
+Depends: kernel-image-4.19.0-21-m68k-di
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: scsi-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: standard
+Provides: scsi-modules
+Depends: kernel-image-4.19.0-21-m68k-di, scsi-core-modules-4.19.0-21-m68k-di, cdrom-core-modules-4.19.0-21-m68k-di, ata-modules-4.19.0-21-m68k-di
+Description: SCSI drivers
+ This package contains SCSI drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-m68k-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-m68k-di, crc-modules-4.19.0-21-m68k-di, zlib-modules-4.19.0-21-m68k-di, compress-modules-4.19.0-21-m68k-di, md-modules-4.19.0-21-m68k-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-m68k-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-m68k-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: optional
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-m68k-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: hfs-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: optional
+Provides: hfs-modules
+Depends: kernel-image-4.19.0-21-m68k-di
+Description: HFS filesystem support
+ This package contains the HFS and HFS+ filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: affs-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: optional
+Provides: affs-modules
+Depends: kernel-image-4.19.0-21-m68k-di
+Description: Amiga filesystem support
+ This package contains the Amiga filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-m68k-di, crc-modules-4.19.0-21-m68k-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-m68k-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-m68k-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: ata-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: optional
+Provides: ata-modules
+Depends: kernel-image-4.19.0-21-m68k-di, scsi-core-modules-4.19.0-21-m68k-di
+Description: ATA disk modules
+ This package contains core ATA disk modules used by both PATA and SATA
+ disk drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-m68k-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-m68k-di, compress-modules-4.19.0-21-m68k-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: zlib-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: optional
+Provides: zlib-modules
+Depends: kernel-image-4.19.0-21-m68k-di
+Description: zlib modules
+ This package contains zlib modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-m68k-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-m68k-di, crc-modules-4.19.0-21-m68k-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-m68k-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: ide-core-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: standard
+Provides: ide-core-modules
+Depends: kernel-image-4.19.0-21-m68k-di
+Description: IDE support
+ This package contains core IDE support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: ide-modules-4.19.0-21-m68k-di
+Architecture: m68k
+Section: debian-installer
+Priority: standard
+Provides: ide-modules
+Depends: kernel-image-4.19.0-21-m68k-di, ide-core-modules-4.19.0-21-m68k-di
+Description: IDE drivers
+ This package contains IDE drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-m68k
+Package-Type: udeb
+
+Package: linux-image-4.19.0-21-m68k
+Architecture: m68k
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [m68k] | linux-initramfs-tool [m68k]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [m68k]
+Suggests: linux-doc-4.19, debian-kernel-handbook, vmelilo [m68k], fdutils [m68k]
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for Motorola MC68020+ family
+ The Linux kernel 4.19 and modules for use on Motorola MC68020+ family.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-m68k
+Architecture: m68k
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-m68k
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-m68k, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-m68k, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-m68k package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-m68k-dbg
+Architecture: m68k
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-m68k
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-m68k.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-mips
+Architecture: mips
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-4kc-malta (= ${binary:Version}), linux-headers-4.19.0-21-5kc-malta (= ${binary:Version}), linux-headers-4.19.0-21-octeon (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: kernel-image-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: standard
+Provides: kernel-image, rtc-modules
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, nic-shared-modules-4.19.0-21-4kc-malta-di, i2c-modules-4.19.0-21-4kc-malta-di, crc-modules-4.19.0-21-4kc-malta-di, zlib-modules-4.19.0-21-4kc-malta-di, mtd-core-modules-4.19.0-21-4kc-malta-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: nic-wireless-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: standard
+Provides: nic-wireless-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, nic-shared-modules-4.19.0-21-4kc-malta-di, usb-modules-4.19.0-21-4kc-malta-di, mmc-core-modules-4.19.0-21-4kc-malta-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: usb-serial-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: usb-serial-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, usb-modules-4.19.0-21-4kc-malta-di
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, zlib-modules-4.19.0-21-4kc-malta-di, crc-modules-4.19.0-21-4kc-malta-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: pata-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: standard
+Provides: pata-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, ata-modules-4.19.0-21-4kc-malta-di
+Description: PATA drivers
+ This package contains PATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, scsi-core-modules-4.19.0-21-4kc-malta-di, isofs-modules-4.19.0-21-4kc-malta-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: scsi-core-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: standard
+Provides: scsi-core-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: scsi-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: standard
+Provides: scsi-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, scsi-core-modules-4.19.0-21-4kc-malta-di, cdrom-core-modules-4.19.0-21-4kc-malta-di, ata-modules-4.19.0-21-4kc-malta-di
+Description: SCSI drivers
+ This package contains SCSI drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: scsi-nic-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: scsi-nic-modules
+Depends: scsi-modules-4.19.0-21-4kc-malta-di, nic-modules-4.19.0-21-4kc-malta-di
+Description: SCSI drivers for converged NICs
+ This package contains SCSI drivers that depend on net drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, crc-modules-4.19.0-21-4kc-malta-di, zlib-modules-4.19.0-21-4kc-malta-di, compress-modules-4.19.0-21-4kc-malta-di, md-modules-4.19.0-21-4kc-malta-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, crc-modules-4.19.0-21-4kc-malta-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: hfs-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: hfs-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di
+Description: HFS filesystem support
+ This package contains the HFS and HFS+ filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: affs-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: affs-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di
+Description: Amiga filesystem support
+ This package contains the Amiga filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: minix-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: minix-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di
+Description: Minix filesystem support
+ This package contains the Minix filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, crc-modules-4.19.0-21-4kc-malta-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, md-modules-4.19.0-21-4kc-malta-di, scsi-core-modules-4.19.0-21-4kc-malta-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: usb-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: usb-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di
+Description: USB support
+ This package contains core USB drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: usb-storage-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: standard
+Provides: usb-storage-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, scsi-core-modules-4.19.0-21-4kc-malta-di, usb-modules-4.19.0-21-4kc-malta-di
+Description: USB storage support
+ This package contains the USB storage driver for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: fb-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: fb-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, i2c-modules-4.19.0-21-4kc-malta-di
+Description: Frame buffer support
+ This package contains Frame buffer drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: input-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: input-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, usb-modules-4.19.0-21-4kc-malta-di, i2c-modules-4.19.0-21-4kc-malta-di
+Description: Input devices support
+ This package contains input device drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: event-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: event-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di
+Description: Event support
+ This package contains event drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: mouse-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: mouse-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, event-modules-4.19.0-21-4kc-malta-di, input-modules-4.19.0-21-4kc-malta-di, usb-modules-4.19.0-21-4kc-malta-di
+Description: Mouse support
+ This package contains mouse drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: nic-usb-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: standard
+Provides: nic-usb-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, nic-shared-modules-4.19.0-21-4kc-malta-di, nic-wireless-modules-4.19.0-21-4kc-malta-di, usb-modules-4.19.0-21-4kc-malta-di, crc-modules-4.19.0-21-4kc-malta-di
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: sata-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: standard
+Provides: sata-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, scsi-core-modules-4.19.0-21-4kc-malta-di, ata-modules-4.19.0-21-4kc-malta-di
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: i2c-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: i2c-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di
+Description: i2c support modules
+ This package contains basic i2c support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, md-modules-4.19.0-21-4kc-malta-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: ata-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: ata-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, scsi-core-modules-4.19.0-21-4kc-malta-di
+Description: ATA disk modules
+ This package contains core ATA disk modules used by both PATA and SATA
+ disk drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: mmc-core-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: mmc-core-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di
+Description: MMC/SD/SDIO core modules
+ This package contains core modules for MMC/SD/SDIO support.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: mmc-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: mmc-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, mmc-core-modules-4.19.0-21-4kc-malta-di, usb-modules-4.19.0-21-4kc-malta-di, crc-modules-4.19.0-21-4kc-malta-di
+Description: MMC/SD card modules
+ This package contains modules needed to support MMC (multimedia) and SD
+ cards.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, compress-modules-4.19.0-21-4kc-malta-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: sound-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: sound-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, i2c-modules-4.19.0-21-4kc-malta-di, usb-modules-4.19.0-21-4kc-malta-di, crc-modules-4.19.0-21-4kc-malta-di
+Description: sound support
+ This package contains sound modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: zlib-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: zlib-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di
+Description: zlib modules
+ This package contains zlib modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di, crc-modules-4.19.0-21-4kc-malta-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: mtd-core-modules-4.19.0-21-4kc-malta-di
+Architecture: mips mipsel
+Section: debian-installer
+Priority: optional
+Provides: mtd-core-modules
+Depends: kernel-image-4.19.0-21-4kc-malta-di
+Description: MTD core
+ This package contains the MTD core.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-4kc-malta
+Package-Type: udeb
+
+Package: kernel-image-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: kernel-image, rtc-modules
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-octeon-di, nic-shared-modules-4.19.0-21-octeon-di, crc-modules-4.19.0-21-octeon-di, zlib-modules-4.19.0-21-octeon-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: nic-wireless-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: nic-wireless-modules
+Depends: kernel-image-4.19.0-21-octeon-di, nic-shared-modules-4.19.0-21-octeon-di, usb-modules-4.19.0-21-octeon-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: usb-serial-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: usb-serial-modules
+Depends: kernel-image-4.19.0-21-octeon-di, usb-modules-4.19.0-21-octeon-di
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-octeon-di, zlib-modules-4.19.0-21-octeon-di, crc-modules-4.19.0-21-octeon-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: pata-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: pata-modules
+Depends: kernel-image-4.19.0-21-octeon-di
+Description: PATA drivers
+ This package contains PATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-octeon-di, scsi-core-modules-4.19.0-21-octeon-di, isofs-modules-4.19.0-21-octeon-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: scsi-core-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: scsi-core-modules
+Depends: kernel-image-4.19.0-21-octeon-di
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: scsi-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: scsi-modules
+Depends: kernel-image-4.19.0-21-octeon-di, scsi-core-modules-4.19.0-21-octeon-di, cdrom-core-modules-4.19.0-21-octeon-di
+Description: SCSI drivers
+ This package contains SCSI drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: scsi-nic-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: scsi-nic-modules
+Depends: scsi-modules-4.19.0-21-octeon-di, nic-modules-4.19.0-21-octeon-di
+Description: SCSI drivers for converged NICs
+ This package contains SCSI drivers that depend on net drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-octeon-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-octeon-di, crc-modules-4.19.0-21-octeon-di, zlib-modules-4.19.0-21-octeon-di, compress-modules-4.19.0-21-octeon-di, md-modules-4.19.0-21-octeon-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-octeon-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-octeon-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-octeon-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-octeon-di, crc-modules-4.19.0-21-octeon-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-octeon-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: hfs-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: hfs-modules
+Depends: kernel-image-4.19.0-21-octeon-di
+Description: HFS filesystem support
+ This package contains the HFS and HFS+ filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: affs-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: affs-modules
+Depends: kernel-image-4.19.0-21-octeon-di
+Description: Amiga filesystem support
+ This package contains the Amiga filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: minix-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: minix-modules
+Depends: kernel-image-4.19.0-21-octeon-di
+Description: Minix filesystem support
+ This package contains the Minix filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-octeon-di, crc-modules-4.19.0-21-octeon-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-octeon-di, md-modules-4.19.0-21-octeon-di, scsi-core-modules-4.19.0-21-octeon-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: usb-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: usb-modules
+Depends: kernel-image-4.19.0-21-octeon-di
+Description: USB support
+ This package contains core USB drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: usb-storage-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: usb-storage-modules
+Depends: kernel-image-4.19.0-21-octeon-di, scsi-core-modules-4.19.0-21-octeon-di, usb-modules-4.19.0-21-octeon-di
+Description: USB storage support
+ This package contains the USB storage driver for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: input-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: input-modules
+Depends: kernel-image-4.19.0-21-octeon-di, usb-modules-4.19.0-21-octeon-di
+Description: Input devices support
+ This package contains input device drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: event-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: event-modules
+Depends: kernel-image-4.19.0-21-octeon-di
+Description: Event support
+ This package contains event drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: nic-usb-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: nic-usb-modules
+Depends: kernel-image-4.19.0-21-octeon-di, nic-shared-modules-4.19.0-21-octeon-di, nic-wireless-modules-4.19.0-21-octeon-di, usb-modules-4.19.0-21-octeon-di, crc-modules-4.19.0-21-octeon-di
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: sata-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: sata-modules
+Depends: kernel-image-4.19.0-21-octeon-di, scsi-core-modules-4.19.0-21-octeon-di
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-octeon-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-octeon-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-octeon-di, md-modules-4.19.0-21-octeon-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-octeon-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-octeon-di, compress-modules-4.19.0-21-octeon-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: rtc-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: rtc-modules
+Depends: kernel-image-4.19.0-21-octeon-di
+Description: RTC modules
+ This package contains RTC modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: sound-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: sound-modules
+Depends: kernel-image-4.19.0-21-octeon-di, usb-modules-4.19.0-21-octeon-di, crc-modules-4.19.0-21-octeon-di
+Description: sound support
+ This package contains sound modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: zlib-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: zlib-modules
+Depends: kernel-image-4.19.0-21-octeon-di
+Description: zlib modules
+ This package contains zlib modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-octeon-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-octeon-di, crc-modules-4.19.0-21-octeon-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-octeon-di
+Architecture: mips mips64 mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-octeon-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-octeon
+Package-Type: udeb
+
+Package: linux-image-4.19.0-21-4kc-malta
+Architecture: mips mipsel
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mips mipsel] | linux-initramfs-tool [mips mipsel]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [mips mipsel]
+Suggests: linux-doc-4.19, debian-kernel-handbook
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for MIPS Malta
+ The Linux kernel 4.19 and modules for use on MIPS Malta boards.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-4kc-malta
+Architecture: mips mipsel
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-4kc-malta
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-4kc-malta, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-4kc-malta, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-4kc-malta package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-4kc-malta-dbg
+Architecture: mips mipsel
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-4kc-malta
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-4kc-malta.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-5kc-malta
+Architecture: mips mips64 mips64el mipsel
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mips mips64 mips64el mipsel] | linux-initramfs-tool [mips mips64 mips64el mipsel]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [mips mips64 mips64el mipsel]
+Suggests: linux-doc-4.19, debian-kernel-handbook
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for MIPS Malta (64-bit)
+ The Linux kernel 4.19 and modules for use on MIPS Malta boards (64-bit).
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-5kc-malta
+Architecture: mips mips64 mips64el mipsel
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-5kc-malta
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-5kc-malta, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-5kc-malta, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-5kc-malta package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-5kc-malta-dbg
+Architecture: mips mips64 mips64el mipsel
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-5kc-malta
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-5kc-malta.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-octeon
+Architecture: mips mips64 mips64el mipsel
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mips mips64 mips64el mipsel] | linux-initramfs-tool [mips mips64 mips64el mipsel]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [mips mips64 mips64el mipsel]
+Suggests: linux-doc-4.19, debian-kernel-handbook
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for Octeon
+ The Linux kernel 4.19 and modules for use on Cavium Networks Octeon.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-octeon
+Architecture: mips mips64 mips64el mipsel
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-octeon
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-octeon, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-octeon, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-octeon package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-octeon-dbg
+Architecture: mips mips64 mips64el mipsel
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-octeon
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-octeon.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-mips64
+Architecture: mips64
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-5kc-malta (= ${binary:Version}), linux-headers-4.19.0-21-octeon (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: kernel-image-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: standard
+Provides: kernel-image, rtc-modules
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, nic-shared-modules-4.19.0-21-5kc-malta-di, i2c-modules-4.19.0-21-5kc-malta-di, crc-modules-4.19.0-21-5kc-malta-di, zlib-modules-4.19.0-21-5kc-malta-di, mtd-core-modules-4.19.0-21-5kc-malta-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: nic-wireless-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: standard
+Provides: nic-wireless-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, nic-shared-modules-4.19.0-21-5kc-malta-di, usb-modules-4.19.0-21-5kc-malta-di, mmc-core-modules-4.19.0-21-5kc-malta-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: usb-serial-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: usb-serial-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, usb-modules-4.19.0-21-5kc-malta-di
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, zlib-modules-4.19.0-21-5kc-malta-di, crc-modules-4.19.0-21-5kc-malta-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: pata-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: standard
+Provides: pata-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, ata-modules-4.19.0-21-5kc-malta-di
+Description: PATA drivers
+ This package contains PATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, scsi-core-modules-4.19.0-21-5kc-malta-di, isofs-modules-4.19.0-21-5kc-malta-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: scsi-core-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: standard
+Provides: scsi-core-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: scsi-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: standard
+Provides: scsi-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, scsi-core-modules-4.19.0-21-5kc-malta-di, cdrom-core-modules-4.19.0-21-5kc-malta-di, ata-modules-4.19.0-21-5kc-malta-di
+Description: SCSI drivers
+ This package contains SCSI drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: scsi-nic-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: scsi-nic-modules
+Depends: scsi-modules-4.19.0-21-5kc-malta-di, nic-modules-4.19.0-21-5kc-malta-di
+Description: SCSI drivers for converged NICs
+ This package contains SCSI drivers that depend on net drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, crc-modules-4.19.0-21-5kc-malta-di, zlib-modules-4.19.0-21-5kc-malta-di, compress-modules-4.19.0-21-5kc-malta-di, md-modules-4.19.0-21-5kc-malta-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, crc-modules-4.19.0-21-5kc-malta-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: hfs-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: hfs-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di
+Description: HFS filesystem support
+ This package contains the HFS and HFS+ filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: affs-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: affs-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di
+Description: Amiga filesystem support
+ This package contains the Amiga filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: minix-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: minix-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di
+Description: Minix filesystem support
+ This package contains the Minix filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, crc-modules-4.19.0-21-5kc-malta-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, md-modules-4.19.0-21-5kc-malta-di, scsi-core-modules-4.19.0-21-5kc-malta-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: usb-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: usb-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di
+Description: USB support
+ This package contains core USB drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: usb-storage-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: standard
+Provides: usb-storage-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, scsi-core-modules-4.19.0-21-5kc-malta-di, usb-modules-4.19.0-21-5kc-malta-di
+Description: USB storage support
+ This package contains the USB storage driver for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: fb-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: fb-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, i2c-modules-4.19.0-21-5kc-malta-di
+Description: Frame buffer support
+ This package contains Frame buffer drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: input-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: input-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, usb-modules-4.19.0-21-5kc-malta-di, i2c-modules-4.19.0-21-5kc-malta-di
+Description: Input devices support
+ This package contains input device drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: event-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: event-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di
+Description: Event support
+ This package contains event drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: mouse-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: mouse-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, event-modules-4.19.0-21-5kc-malta-di, input-modules-4.19.0-21-5kc-malta-di, usb-modules-4.19.0-21-5kc-malta-di
+Description: Mouse support
+ This package contains mouse drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: nic-usb-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: standard
+Provides: nic-usb-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, nic-shared-modules-4.19.0-21-5kc-malta-di, nic-wireless-modules-4.19.0-21-5kc-malta-di, usb-modules-4.19.0-21-5kc-malta-di, crc-modules-4.19.0-21-5kc-malta-di
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: sata-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: standard
+Provides: sata-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, scsi-core-modules-4.19.0-21-5kc-malta-di, ata-modules-4.19.0-21-5kc-malta-di
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: i2c-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: i2c-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di
+Description: i2c support modules
+ This package contains basic i2c support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, md-modules-4.19.0-21-5kc-malta-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: ata-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: ata-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, scsi-core-modules-4.19.0-21-5kc-malta-di
+Description: ATA disk modules
+ This package contains core ATA disk modules used by both PATA and SATA
+ disk drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: mmc-core-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: mmc-core-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di
+Description: MMC/SD/SDIO core modules
+ This package contains core modules for MMC/SD/SDIO support.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: mmc-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: mmc-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, mmc-core-modules-4.19.0-21-5kc-malta-di, usb-modules-4.19.0-21-5kc-malta-di, crc-modules-4.19.0-21-5kc-malta-di
+Description: MMC/SD card modules
+ This package contains modules needed to support MMC (multimedia) and SD
+ cards.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, compress-modules-4.19.0-21-5kc-malta-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: sound-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: sound-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, i2c-modules-4.19.0-21-5kc-malta-di, usb-modules-4.19.0-21-5kc-malta-di, crc-modules-4.19.0-21-5kc-malta-di
+Description: sound support
+ This package contains sound modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: zlib-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: zlib-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di
+Description: zlib modules
+ This package contains zlib modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di, crc-modules-4.19.0-21-5kc-malta-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: mtd-core-modules-4.19.0-21-5kc-malta-di
+Architecture: mips64 mips64el
+Section: debian-installer
+Priority: optional
+Provides: mtd-core-modules
+Depends: kernel-image-4.19.0-21-5kc-malta-di
+Description: MTD core
+ This package contains the MTD core.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-5kc-malta
+Package-Type: udeb
+
+Package: linux-headers-4.19.0-21-all-mips64el
+Architecture: mips64el
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-5kc-malta (= ${binary:Version}), linux-headers-4.19.0-21-loongson-3 (= ${binary:Version}), linux-headers-4.19.0-21-octeon (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: kernel-image-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: kernel-image, i2c-modules, rtc-modules
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, nic-shared-modules-4.19.0-21-loongson-3-di, crc-modules-4.19.0-21-loongson-3-di, zlib-modules-4.19.0-21-loongson-3-di, mtd-core-modules-4.19.0-21-loongson-3-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: nic-wireless-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: nic-wireless-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, nic-shared-modules-4.19.0-21-loongson-3-di, usb-modules-4.19.0-21-loongson-3-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: usb-serial-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: usb-serial-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, usb-modules-4.19.0-21-loongson-3-di
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, zlib-modules-4.19.0-21-loongson-3-di, crc-modules-4.19.0-21-loongson-3-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: pata-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: pata-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, ata-modules-4.19.0-21-loongson-3-di
+Description: PATA drivers
+ This package contains PATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, scsi-core-modules-4.19.0-21-loongson-3-di, isofs-modules-4.19.0-21-loongson-3-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: firewire-core-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: firewire-core-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, scsi-core-modules-4.19.0-21-loongson-3-di, crc-modules-4.19.0-21-loongson-3-di
+Description: Core FireWire drivers
+ This package contains core FireWire drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: scsi-core-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: scsi-core-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: scsi-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: scsi-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, scsi-core-modules-4.19.0-21-loongson-3-di, cdrom-core-modules-4.19.0-21-loongson-3-di, ata-modules-4.19.0-21-loongson-3-di
+Description: SCSI drivers
+ This package contains SCSI drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: scsi-nic-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: scsi-nic-modules
+Depends: scsi-modules-4.19.0-21-loongson-3-di, nic-modules-4.19.0-21-loongson-3-di
+Description: SCSI drivers for converged NICs
+ This package contains SCSI drivers that depend on net drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, crc-modules-4.19.0-21-loongson-3-di, zlib-modules-4.19.0-21-loongson-3-di, compress-modules-4.19.0-21-loongson-3-di, md-modules-4.19.0-21-loongson-3-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, crc-modules-4.19.0-21-loongson-3-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: hfs-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: hfs-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di
+Description: HFS filesystem support
+ This package contains the HFS and HFS+ filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: affs-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: affs-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di
+Description: Amiga filesystem support
+ This package contains the Amiga filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: minix-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: minix-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di
+Description: Minix filesystem support
+ This package contains the Minix filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: nfs-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: nfs-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di
+Description: NFS filesystem support
+ This package contains the NFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, crc-modules-4.19.0-21-loongson-3-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, md-modules-4.19.0-21-loongson-3-di, scsi-core-modules-4.19.0-21-loongson-3-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: usb-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: usb-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di
+Description: USB support
+ This package contains core USB drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: usb-storage-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: usb-storage-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, scsi-core-modules-4.19.0-21-loongson-3-di, usb-modules-4.19.0-21-loongson-3-di
+Description: USB storage support
+ This package contains the USB storage driver for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: fb-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: fb-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di
+Description: Frame buffer support
+ This package contains Frame buffer drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: input-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: input-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, usb-modules-4.19.0-21-loongson-3-di
+Description: Input devices support
+ This package contains input device drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: event-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: event-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di
+Description: Event support
+ This package contains event drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: nic-usb-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: nic-usb-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, nic-shared-modules-4.19.0-21-loongson-3-di, nic-wireless-modules-4.19.0-21-loongson-3-di, usb-modules-4.19.0-21-loongson-3-di, crc-modules-4.19.0-21-loongson-3-di
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: sata-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: standard
+Provides: sata-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, scsi-core-modules-4.19.0-21-loongson-3-di, ata-modules-4.19.0-21-loongson-3-di
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, md-modules-4.19.0-21-loongson-3-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: ata-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: ata-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, scsi-core-modules-4.19.0-21-loongson-3-di
+Description: ATA disk modules
+ This package contains core ATA disk modules used by both PATA and SATA
+ disk drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, compress-modules-4.19.0-21-loongson-3-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: speakup-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: speakup-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di
+Description: speakup modules
+ This package contains speakup modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: sound-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: sound-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, usb-modules-4.19.0-21-loongson-3-di, firewire-core-modules-4.19.0-21-loongson-3-di, crc-modules-4.19.0-21-loongson-3-di
+Description: sound support
+ This package contains sound modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: zlib-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: zlib-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di
+Description: zlib modules
+ This package contains zlib modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di, crc-modules-4.19.0-21-loongson-3-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: mtd-core-modules-4.19.0-21-loongson-3-di
+Architecture: mips64el mipsel
+Section: debian-installer
+Priority: optional
+Provides: mtd-core-modules
+Depends: kernel-image-4.19.0-21-loongson-3-di
+Description: MTD core
+ This package contains the MTD core.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-loongson-3
+Package-Type: udeb
+
+Package: linux-image-4.19.0-21-loongson-3
+Architecture: mips64el mipsel
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mips64el mipsel] | linux-initramfs-tool [mips64el mipsel]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [mips64el mipsel]
+Suggests: linux-doc-4.19, debian-kernel-handbook
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for Loongson 3A/3B
+ The Linux kernel 4.19 and modules for use on Loongson 3A or 3B based
+ systems (e.g. from Loongson or Lemote).
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-loongson-3
+Architecture: mips64el mipsel
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-loongson-3
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-loongson-3, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-loongson-3, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-loongson-3 package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-loongson-3-dbg
+Architecture: mips64el mipsel
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-loongson-3
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-loongson-3.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-mips64r6
+Architecture: mips64r6
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-mips64r6 (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: kernel-image-4.19.0-21-mips64r6-di
+Architecture: mips64r6
+Section: debian-installer
+Priority: standard
+Provides: kernel-image, rtc-modules
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-mips64r6-di
+Architecture: mips64r6
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-mips64r6-di
+Architecture: mips64r6
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-mips64r6-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-mips64r6-di
+Architecture: mips64r6
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-mips64r6-di, crc-modules-4.19.0-21-mips64r6-di, zlib-modules-4.19.0-21-mips64r6-di, compress-modules-4.19.0-21-mips64r6-di, md-modules-4.19.0-21-mips64r6-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-mips64r6-di
+Architecture: mips64r6
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-mips64r6-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-mips64r6-di
+Architecture: mips64r6
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-mips64r6-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-mips64r6-di
+Architecture: mips64r6
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-mips64r6-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-mips64r6-di
+Architecture: mips64r6
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-mips64r6-di, crc-modules-4.19.0-21-mips64r6-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-mips64r6-di
+Architecture: mips64r6
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-mips64r6-di, crc-modules-4.19.0-21-mips64r6-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-mips64r6-di
+Architecture: mips64r6
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-mips64r6-di, md-modules-4.19.0-21-mips64r6-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-mips64r6-di
+Architecture: mips64r6
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-mips64r6-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-mips64r6-di
+Architecture: mips64r6
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-mips64r6-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-mips64r6-di
+Architecture: mips64r6
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-mips64r6-di, md-modules-4.19.0-21-mips64r6-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-mips64r6-di
+Architecture: mips64r6
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-mips64r6-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-mips64r6-di
+Architecture: mips64r6
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-mips64r6-di, compress-modules-4.19.0-21-mips64r6-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6
+Package-Type: udeb
+
+Package: zlib-modules-4.19.0-21-mips64r6-di
+Architecture: mips64r6
+Section: debian-installer
+Priority: optional
+Provides: zlib-modules
+Depends: kernel-image-4.19.0-21-mips64r6-di
+Description: zlib modules
+ This package contains zlib modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-mips64r6-di
+Architecture: mips64r6
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-mips64r6-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-mips64r6-di
+Architecture: mips64r6
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-mips64r6-di, crc-modules-4.19.0-21-mips64r6-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-mips64r6-di
+Architecture: mips64r6
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-mips64r6-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6
+Package-Type: udeb
+
+Package: linux-image-4.19.0-21-mips64r6
+Architecture: mips64r6 mipsr6
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mips64r6 mipsr6] | linux-initramfs-tool [mips64r6 mipsr6]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [mips64r6 mipsr6]
+Suggests: linux-doc-4.19, debian-kernel-handbook
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for MIPS R6 (64 bit, big endian)
+ The Linux kernel 4.19 and modules for use on MIPS R6 (64 bit, big endian).
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-mips64r6
+Architecture: mips64r6 mipsr6
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-mips64r6
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-mips64r6, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-mips64r6, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-mips64r6 package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-mips64r6-dbg
+Architecture: mips64r6 mipsr6
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-mips64r6
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-mips64r6.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-mips64r6el
+Architecture: mips64r6el
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-mips64r6el (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: kernel-image-4.19.0-21-mips64r6el-di
+Architecture: mips64r6el
+Section: debian-installer
+Priority: standard
+Provides: kernel-image, rtc-modules
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6el
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-mips64r6el-di
+Architecture: mips64r6el
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6el
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-mips64r6el-di
+Architecture: mips64r6el
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-mips64r6el-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6el
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-mips64r6el-di
+Architecture: mips64r6el
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-mips64r6el-di, crc-modules-4.19.0-21-mips64r6el-di, zlib-modules-4.19.0-21-mips64r6el-di, compress-modules-4.19.0-21-mips64r6el-di, md-modules-4.19.0-21-mips64r6el-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6el
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-mips64r6el-di
+Architecture: mips64r6el
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-mips64r6el-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6el
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-mips64r6el-di
+Architecture: mips64r6el
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-mips64r6el-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6el
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-mips64r6el-di
+Architecture: mips64r6el
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-mips64r6el-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6el
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-mips64r6el-di
+Architecture: mips64r6el
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-mips64r6el-di, crc-modules-4.19.0-21-mips64r6el-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6el
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-mips64r6el-di
+Architecture: mips64r6el
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-mips64r6el-di, crc-modules-4.19.0-21-mips64r6el-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6el
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-mips64r6el-di
+Architecture: mips64r6el
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-mips64r6el-di, md-modules-4.19.0-21-mips64r6el-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6el
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-mips64r6el-di
+Architecture: mips64r6el
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-mips64r6el-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6el
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-mips64r6el-di
+Architecture: mips64r6el
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-mips64r6el-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6el
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-mips64r6el-di
+Architecture: mips64r6el
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-mips64r6el-di, md-modules-4.19.0-21-mips64r6el-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6el
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-mips64r6el-di
+Architecture: mips64r6el
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-mips64r6el-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6el
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-mips64r6el-di
+Architecture: mips64r6el
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-mips64r6el-di, compress-modules-4.19.0-21-mips64r6el-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6el
+Package-Type: udeb
+
+Package: zlib-modules-4.19.0-21-mips64r6el-di
+Architecture: mips64r6el
+Section: debian-installer
+Priority: optional
+Provides: zlib-modules
+Depends: kernel-image-4.19.0-21-mips64r6el-di
+Description: zlib modules
+ This package contains zlib modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6el
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-mips64r6el-di
+Architecture: mips64r6el
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-mips64r6el-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6el
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-mips64r6el-di
+Architecture: mips64r6el
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-mips64r6el-di, crc-modules-4.19.0-21-mips64r6el-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6el
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-mips64r6el-di
+Architecture: mips64r6el
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-mips64r6el-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips64r6el
+Package-Type: udeb
+
+Package: linux-image-4.19.0-21-mips64r6el
+Architecture: mips64r6el mipsr6el
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mips64r6el mipsr6el] | linux-initramfs-tool [mips64r6el mipsr6el]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [mips64r6el mipsr6el]
+Suggests: linux-doc-4.19, debian-kernel-handbook
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for MIPS R6 (64 bit, little endian)
+ The Linux kernel 4.19 and modules for use on MIPS R6 (64 bit, little
+ endian).
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-mips64r6el
+Architecture: mips64r6el mipsr6el
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-mips64r6el
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-mips64r6el, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-mips64r6el, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-mips64r6el package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-mips64r6el-dbg
+Architecture: mips64r6el mipsr6el
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-mips64r6el
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-mips64r6el.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-mipsel
+Architecture: mipsel
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-4kc-malta (= ${binary:Version}), linux-headers-4.19.0-21-5kc-malta (= ${binary:Version}), linux-headers-4.19.0-21-loongson-3 (= ${binary:Version}), linux-headers-4.19.0-21-octeon (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-mipsr6
+Architecture: mipsr6
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-mips32r6 (= ${binary:Version}), linux-headers-4.19.0-21-mips64r6 (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: kernel-image-4.19.0-21-mips32r6-di
+Architecture: mipsr6
+Section: debian-installer
+Priority: standard
+Provides: kernel-image, rtc-modules
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-mips32r6-di
+Architecture: mipsr6
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-mips32r6-di
+Architecture: mipsr6
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-mips32r6-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-mips32r6-di
+Architecture: mipsr6
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-mips32r6-di, crc-modules-4.19.0-21-mips32r6-di, zlib-modules-4.19.0-21-mips32r6-di, compress-modules-4.19.0-21-mips32r6-di, md-modules-4.19.0-21-mips32r6-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-mips32r6-di
+Architecture: mipsr6
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-mips32r6-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-mips32r6-di
+Architecture: mipsr6
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-mips32r6-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-mips32r6-di
+Architecture: mipsr6
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-mips32r6-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-mips32r6-di
+Architecture: mipsr6
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-mips32r6-di, crc-modules-4.19.0-21-mips32r6-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-mips32r6-di
+Architecture: mipsr6
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-mips32r6-di, crc-modules-4.19.0-21-mips32r6-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-mips32r6-di
+Architecture: mipsr6
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-mips32r6-di, md-modules-4.19.0-21-mips32r6-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-mips32r6-di
+Architecture: mipsr6
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-mips32r6-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-mips32r6-di
+Architecture: mipsr6
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-mips32r6-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-mips32r6-di
+Architecture: mipsr6
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-mips32r6-di, md-modules-4.19.0-21-mips32r6-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-mips32r6-di
+Architecture: mipsr6
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-mips32r6-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-mips32r6-di
+Architecture: mipsr6
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-mips32r6-di, compress-modules-4.19.0-21-mips32r6-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6
+Package-Type: udeb
+
+Package: zlib-modules-4.19.0-21-mips32r6-di
+Architecture: mipsr6
+Section: debian-installer
+Priority: optional
+Provides: zlib-modules
+Depends: kernel-image-4.19.0-21-mips32r6-di
+Description: zlib modules
+ This package contains zlib modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-mips32r6-di
+Architecture: mipsr6
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-mips32r6-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-mips32r6-di
+Architecture: mipsr6
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-mips32r6-di, crc-modules-4.19.0-21-mips32r6-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-mips32r6-di
+Architecture: mipsr6
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-mips32r6-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6
+Package-Type: udeb
+
+Package: linux-image-4.19.0-21-mips32r6
+Architecture: mipsr6
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mipsr6] | linux-initramfs-tool [mipsr6]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [mipsr6]
+Suggests: linux-doc-4.19, debian-kernel-handbook
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for MIPS R6 (32 bit, big endian)
+ The Linux kernel 4.19 and modules for use on MIPS R6 (32 bit, big endian).
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-mips32r6
+Architecture: mipsr6
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-mips32r6
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-mips32r6, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-mips32r6, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-mips32r6 package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-mips32r6-dbg
+Architecture: mipsr6
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-mips32r6
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-mips32r6.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-mipsr6el
+Architecture: mipsr6el
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-mips32r6el (= ${binary:Version}), linux-headers-4.19.0-21-mips64r6el (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: kernel-image-4.19.0-21-mips32r6el-di
+Architecture: mipsr6el
+Section: debian-installer
+Priority: standard
+Provides: kernel-image, rtc-modules
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6el
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-mips32r6el-di
+Architecture: mipsr6el
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6el
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-mips32r6el-di
+Architecture: mipsr6el
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-mips32r6el-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6el
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-mips32r6el-di
+Architecture: mipsr6el
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-mips32r6el-di, crc-modules-4.19.0-21-mips32r6el-di, zlib-modules-4.19.0-21-mips32r6el-di, compress-modules-4.19.0-21-mips32r6el-di, md-modules-4.19.0-21-mips32r6el-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6el
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-mips32r6el-di
+Architecture: mipsr6el
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-mips32r6el-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6el
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-mips32r6el-di
+Architecture: mipsr6el
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-mips32r6el-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6el
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-mips32r6el-di
+Architecture: mipsr6el
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-mips32r6el-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6el
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-mips32r6el-di
+Architecture: mipsr6el
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-mips32r6el-di, crc-modules-4.19.0-21-mips32r6el-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6el
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-mips32r6el-di
+Architecture: mipsr6el
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-mips32r6el-di, crc-modules-4.19.0-21-mips32r6el-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6el
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-mips32r6el-di
+Architecture: mipsr6el
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-mips32r6el-di, md-modules-4.19.0-21-mips32r6el-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6el
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-mips32r6el-di
+Architecture: mipsr6el
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-mips32r6el-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6el
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-mips32r6el-di
+Architecture: mipsr6el
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-mips32r6el-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6el
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-mips32r6el-di
+Architecture: mipsr6el
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-mips32r6el-di, md-modules-4.19.0-21-mips32r6el-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6el
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-mips32r6el-di
+Architecture: mipsr6el
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-mips32r6el-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6el
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-mips32r6el-di
+Architecture: mipsr6el
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-mips32r6el-di, compress-modules-4.19.0-21-mips32r6el-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6el
+Package-Type: udeb
+
+Package: zlib-modules-4.19.0-21-mips32r6el-di
+Architecture: mipsr6el
+Section: debian-installer
+Priority: optional
+Provides: zlib-modules
+Depends: kernel-image-4.19.0-21-mips32r6el-di
+Description: zlib modules
+ This package contains zlib modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6el
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-mips32r6el-di
+Architecture: mipsr6el
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-mips32r6el-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6el
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-mips32r6el-di
+Architecture: mipsr6el
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-mips32r6el-di, crc-modules-4.19.0-21-mips32r6el-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6el
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-mips32r6el-di
+Architecture: mipsr6el
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-mips32r6el-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-mips32r6el
+Package-Type: udeb
+
+Package: linux-image-4.19.0-21-mips32r6el
+Architecture: mipsr6el
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mipsr6el] | linux-initramfs-tool [mipsr6el]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [mipsr6el]
+Suggests: linux-doc-4.19, debian-kernel-handbook
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for MIPS R6 (32 bit, little endian)
+ The Linux kernel 4.19 and modules for use on MIPS R6 (32 bit, little
+ endian).
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-mips32r6el
+Architecture: mipsr6el
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-mips32r6el
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-mips32r6el, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-mips32r6el, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-mips32r6el package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-mips32r6el-dbg
+Architecture: mipsr6el
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-mips32r6el
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-mips32r6el.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-powerpc
+Architecture: powerpc
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-powerpc (= ${binary:Version}), linux-headers-4.19.0-21-powerpc-smp (= ${binary:Version}), linux-headers-4.19.0-21-powerpc64 (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: kernel-image-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: standard
+Provides: kernel-image, i2c-modules
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, nic-shared-modules-4.19.0-21-powerpc-di, crc-modules-4.19.0-21-powerpc-di, zlib-modules-4.19.0-21-powerpc-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: nic-wireless-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: standard
+Provides: nic-wireless-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, nic-shared-modules-4.19.0-21-powerpc-di, usb-modules-4.19.0-21-powerpc-di, mmc-core-modules-4.19.0-21-powerpc-di, pcmcia-modules-4.19.0-21-powerpc-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: serial-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: serial-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, pcmcia-modules-4.19.0-21-powerpc-di
+Description: Serial drivers
+ This package contains serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: usb-serial-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: usb-serial-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, usb-modules-4.19.0-21-powerpc-di
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, serial-modules-4.19.0-21-powerpc-di, zlib-modules-4.19.0-21-powerpc-di, crc-modules-4.19.0-21-powerpc-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: pata-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: standard
+Provides: pata-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, ata-modules-4.19.0-21-powerpc-di
+Description: PATA drivers
+ This package contains PATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, scsi-core-modules-4.19.0-21-powerpc-di, isofs-modules-4.19.0-21-powerpc-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: firewire-core-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: standard
+Provides: firewire-core-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, scsi-core-modules-4.19.0-21-powerpc-di, crc-modules-4.19.0-21-powerpc-di
+Description: Core FireWire drivers
+ This package contains core FireWire drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: scsi-core-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: standard
+Provides: scsi-core-modules
+Depends: kernel-image-4.19.0-21-powerpc-di
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: scsi-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: standard
+Provides: scsi-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, scsi-core-modules-4.19.0-21-powerpc-di, cdrom-core-modules-4.19.0-21-powerpc-di, ata-modules-4.19.0-21-powerpc-di
+Description: SCSI drivers
+ This package contains SCSI drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: scsi-nic-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: scsi-nic-modules
+Depends: scsi-modules-4.19.0-21-powerpc-di, nic-modules-4.19.0-21-powerpc-di
+Description: SCSI drivers for converged NICs
+ This package contains SCSI drivers that depend on net drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-powerpc-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, crc-modules-4.19.0-21-powerpc-di, zlib-modules-4.19.0-21-powerpc-di, compress-modules-4.19.0-21-powerpc-di, md-modules-4.19.0-21-powerpc-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-powerpc-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-powerpc-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, crc-modules-4.19.0-21-powerpc-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-powerpc-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: hfs-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: hfs-modules
+Depends: kernel-image-4.19.0-21-powerpc-di
+Description: HFS filesystem support
+ This package contains the HFS and HFS+ filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: affs-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: affs-modules
+Depends: kernel-image-4.19.0-21-powerpc-di
+Description: Amiga filesystem support
+ This package contains the Amiga filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, crc-modules-4.19.0-21-powerpc-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, md-modules-4.19.0-21-powerpc-di, scsi-core-modules-4.19.0-21-powerpc-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: usb-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: usb-modules
+Depends: kernel-image-4.19.0-21-powerpc-di
+Description: USB support
+ This package contains core USB drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: usb-storage-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: standard
+Provides: usb-storage-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, scsi-core-modules-4.19.0-21-powerpc-di, usb-modules-4.19.0-21-powerpc-di
+Description: USB storage support
+ This package contains the USB storage driver for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: pcmcia-storage-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: standard
+Provides: pcmcia-storage-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, cdrom-core-modules-4.19.0-21-powerpc-di, pcmcia-modules-4.19.0-21-powerpc-di, ata-modules-4.19.0-21-powerpc-di
+Description: PCMCIA storage drivers
+ This package contains PCMCIA storage drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: fb-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: fb-modules
+Depends: kernel-image-4.19.0-21-powerpc-di
+Description: Frame buffer support
+ This package contains Frame buffer drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: input-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: input-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, usb-modules-4.19.0-21-powerpc-di
+Description: Input devices support
+ This package contains input device drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: event-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: event-modules
+Depends: kernel-image-4.19.0-21-powerpc-di
+Description: Event support
+ This package contains event drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: mouse-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: mouse-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, event-modules-4.19.0-21-powerpc-di, input-modules-4.19.0-21-powerpc-di, usb-modules-4.19.0-21-powerpc-di
+Description: Mouse support
+ This package contains mouse drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: nic-pcmcia-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: standard
+Provides: nic-pcmcia-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, nic-shared-modules-4.19.0-21-powerpc-di, nic-wireless-modules-4.19.0-21-powerpc-di, pcmcia-modules-4.19.0-21-powerpc-di, mmc-core-modules-4.19.0-21-powerpc-di
+Description: Common PCMCIA NIC drivers
+ This package contains common PCMCIA NIC drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: pcmcia-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: standard
+Provides: pcmcia-modules
+Depends: kernel-image-4.19.0-21-powerpc-di
+Description: Common PCMCIA drivers
+ This package contains common PCMCIA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: nic-usb-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: standard
+Provides: nic-usb-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, nic-shared-modules-4.19.0-21-powerpc-di, nic-wireless-modules-4.19.0-21-powerpc-di, usb-modules-4.19.0-21-powerpc-di, crc-modules-4.19.0-21-powerpc-di
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: sata-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: standard
+Provides: sata-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, scsi-core-modules-4.19.0-21-powerpc-di, ata-modules-4.19.0-21-powerpc-di
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-powerpc-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-powerpc-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, md-modules-4.19.0-21-powerpc-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: ata-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: ata-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, scsi-core-modules-4.19.0-21-powerpc-di
+Description: ATA disk modules
+ This package contains core ATA disk modules used by both PATA and SATA
+ disk drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: mmc-core-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: mmc-core-modules
+Depends: kernel-image-4.19.0-21-powerpc-di
+Description: MMC/SD/SDIO core modules
+ This package contains core modules for MMC/SD/SDIO support.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-powerpc-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, compress-modules-4.19.0-21-powerpc-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: uinput-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: uinput-modules
+Depends: kernel-image-4.19.0-21-powerpc-di
+Description: uinput support
+ This package contains the uinput module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: zlib-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: zlib-modules
+Depends: kernel-image-4.19.0-21-powerpc-di
+Description: zlib modules
+ This package contains zlib modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-powerpc-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-powerpc-di, crc-modules-4.19.0-21-powerpc-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-powerpc-di
+Architecture: powerpc
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-powerpc-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc
+Package-Type: udeb
+
+Package: kernel-image-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: kernel-image
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, nic-shared-modules-4.19.0-21-powerpc64-di, i2c-modules-4.19.0-21-powerpc64-di, crc-modules-4.19.0-21-powerpc64-di, mtd-core-modules-4.19.0-21-powerpc64-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: nic-wireless-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: nic-wireless-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, nic-shared-modules-4.19.0-21-powerpc64-di, usb-modules-4.19.0-21-powerpc64-di, mmc-core-modules-4.19.0-21-powerpc64-di, pcmcia-modules-4.19.0-21-powerpc64-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: serial-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: serial-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, pcmcia-modules-4.19.0-21-powerpc64-di
+Description: Serial drivers
+ This package contains serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: usb-serial-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: usb-serial-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, usb-modules-4.19.0-21-powerpc64-di
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, serial-modules-4.19.0-21-powerpc64-di, crc-modules-4.19.0-21-powerpc64-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: pata-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: pata-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, ata-modules-4.19.0-21-powerpc64-di
+Description: PATA drivers
+ This package contains PATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, scsi-core-modules-4.19.0-21-powerpc64-di, isofs-modules-4.19.0-21-powerpc64-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: firewire-core-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: firewire-core-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, scsi-core-modules-4.19.0-21-powerpc64-di, crc-modules-4.19.0-21-powerpc64-di
+Description: Core FireWire drivers
+ This package contains core FireWire drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: scsi-core-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: scsi-core-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: scsi-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: scsi-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, scsi-core-modules-4.19.0-21-powerpc64-di, cdrom-core-modules-4.19.0-21-powerpc64-di, ata-modules-4.19.0-21-powerpc64-di
+Description: SCSI drivers
+ This package contains SCSI drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: scsi-nic-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: scsi-nic-modules
+Depends: scsi-modules-4.19.0-21-powerpc64-di, nic-modules-4.19.0-21-powerpc64-di
+Description: SCSI drivers for converged NICs
+ This package contains SCSI drivers that depend on net drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, crc-modules-4.19.0-21-powerpc64-di, compress-modules-4.19.0-21-powerpc64-di, md-modules-4.19.0-21-powerpc64-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, crc-modules-4.19.0-21-powerpc64-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: hfs-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: hfs-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di
+Description: HFS filesystem support
+ This package contains the HFS and HFS+ filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: affs-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: affs-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di
+Description: Amiga filesystem support
+ This package contains the Amiga filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, crc-modules-4.19.0-21-powerpc64-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, md-modules-4.19.0-21-powerpc64-di, scsi-core-modules-4.19.0-21-powerpc64-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: usb-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: usb-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di
+Description: USB support
+ This package contains core USB drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: usb-storage-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: usb-storage-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, scsi-core-modules-4.19.0-21-powerpc64-di, usb-modules-4.19.0-21-powerpc64-di
+Description: USB storage support
+ This package contains the USB storage driver for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: pcmcia-storage-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: pcmcia-storage-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, cdrom-core-modules-4.19.0-21-powerpc64-di, pcmcia-modules-4.19.0-21-powerpc64-di, ata-modules-4.19.0-21-powerpc64-di
+Description: PCMCIA storage drivers
+ This package contains PCMCIA storage drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: fb-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: fb-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, i2c-modules-4.19.0-21-powerpc64-di
+Description: Frame buffer support
+ This package contains Frame buffer drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: input-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: input-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, usb-modules-4.19.0-21-powerpc64-di, i2c-modules-4.19.0-21-powerpc64-di
+Description: Input devices support
+ This package contains input device drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: event-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: event-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di
+Description: Event support
+ This package contains event drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: mouse-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: mouse-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, event-modules-4.19.0-21-powerpc64-di, input-modules-4.19.0-21-powerpc64-di, usb-modules-4.19.0-21-powerpc64-di
+Description: Mouse support
+ This package contains mouse drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: nic-pcmcia-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: nic-pcmcia-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, nic-shared-modules-4.19.0-21-powerpc64-di, nic-wireless-modules-4.19.0-21-powerpc64-di, pcmcia-modules-4.19.0-21-powerpc64-di, mmc-core-modules-4.19.0-21-powerpc64-di
+Description: Common PCMCIA NIC drivers
+ This package contains common PCMCIA NIC drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: pcmcia-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: pcmcia-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di
+Description: Common PCMCIA drivers
+ This package contains common PCMCIA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: nic-usb-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: nic-usb-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, nic-shared-modules-4.19.0-21-powerpc64-di, nic-wireless-modules-4.19.0-21-powerpc64-di, usb-modules-4.19.0-21-powerpc64-di, crc-modules-4.19.0-21-powerpc64-di
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: sata-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: sata-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, scsi-core-modules-4.19.0-21-powerpc64-di, ata-modules-4.19.0-21-powerpc64-di
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: i2c-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: i2c-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di
+Description: i2c support modules
+ This package contains basic i2c support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, md-modules-4.19.0-21-powerpc64-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: ata-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: ata-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, scsi-core-modules-4.19.0-21-powerpc64-di
+Description: ATA disk modules
+ This package contains core ATA disk modules used by both PATA and SATA
+ disk drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: mmc-core-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: mmc-core-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di
+Description: MMC/SD/SDIO core modules
+ This package contains core modules for MMC/SD/SDIO support.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, compress-modules-4.19.0-21-powerpc64-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: uinput-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: uinput-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di
+Description: uinput support
+ This package contains the uinput module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di, crc-modules-4.19.0-21-powerpc64-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: mtd-core-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: optional
+Provides: mtd-core-modules
+Depends: kernel-image-4.19.0-21-powerpc64-di
+Description: MTD core
+ This package contains the MTD core.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: hypervisor-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: hypervisor-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: fancontrol-modules-4.19.0-21-powerpc64-di
+Architecture: powerpc ppc64
+Section: debian-installer
+Priority: standard
+Provides: fancontrol-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64
+Package-Type: udeb
+
+Package: linux-image-4.19.0-21-powerpc
+Architecture: powerpc
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [powerpc] | linux-initramfs-tool [powerpc]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [powerpc]
+Suggests: linux-doc-4.19, debian-kernel-handbook, mkvmlinuz [powerpc], grub-ieee1275 [powerpc]
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for uniprocessor 32-bit PowerPC
+ The Linux kernel 4.19 and modules for use on uniprocessor 32-bit PowerPC.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-powerpc
+Architecture: powerpc
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-powerpc
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-powerpc, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-powerpc, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-powerpc package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-powerpc-dbg
+Architecture: powerpc
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-powerpc
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-powerpc.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-powerpc-smp
+Architecture: powerpc
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [powerpc] | linux-initramfs-tool [powerpc]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [powerpc]
+Suggests: linux-doc-4.19, debian-kernel-handbook, mkvmlinuz [powerpc], grub-ieee1275 [powerpc]
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for multiprocessor 32-bit PowerPC
+ The Linux kernel 4.19 and modules for use on multiprocessor 32-bit
+ PowerPC.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-powerpc-smp
+Architecture: powerpc
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-powerpc-smp
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-powerpc-smp, generally used for building
+ out-of-tree kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-powerpc-smp, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-powerpc-smp package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-powerpc-smp-dbg
+Architecture: powerpc
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-powerpc-smp
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-powerpc-smp.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-powerpc64
+Architecture: powerpc ppc64
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [powerpc ppc64] | linux-initramfs-tool [powerpc ppc64]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [powerpc ppc64]
+Suggests: linux-doc-4.19, debian-kernel-handbook, mkvmlinuz [powerpc ppc64], grub-ieee1275 [powerpc ppc64]
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for 64-bit PowerPC
+ The Linux kernel 4.19 and modules for use on 64-bit PowerPC.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-powerpc64
+Architecture: powerpc ppc64
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-powerpc64
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-powerpc64, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-powerpc64, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-powerpc64 package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-powerpc64-dbg
+Architecture: powerpc ppc64
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-powerpc64
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-powerpc64.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-powerpcspe
+Architecture: powerpcspe
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-powerpcspe (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-powerpcspe
+Architecture: powerpcspe
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [powerpcspe] | linux-initramfs-tool [powerpcspe]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [powerpcspe]
+Suggests: linux-doc-4.19, debian-kernel-handbook, mkvmlinuz [powerpcspe]
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for 32-bit PowerPC with SPE (instead of AltiVec) with SMP support
+ The Linux kernel 4.19 and modules for use on 32-bit PowerPC with SPE
+ (instead of AltiVec) with SMP support.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-powerpcspe
+Architecture: powerpcspe
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-powerpcspe
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-powerpcspe, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-powerpcspe, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-powerpcspe package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-powerpcspe-dbg
+Architecture: powerpcspe
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-powerpcspe
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-powerpcspe.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-ppc64
+Architecture: ppc64
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-powerpc64 (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-ppc64el
+Architecture: ppc64el
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-powerpc64le (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: kernel-image-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: standard
+Provides: kernel-image
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, nic-shared-modules-4.19.0-21-powerpc64le-di, i2c-modules-4.19.0-21-powerpc64le-di, crc-modules-4.19.0-21-powerpc64le-di, mtd-core-modules-4.19.0-21-powerpc64le-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: nic-wireless-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: standard
+Provides: nic-wireless-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, nic-shared-modules-4.19.0-21-powerpc64le-di, usb-modules-4.19.0-21-powerpc64le-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: serial-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: serial-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di
+Description: Serial drivers
+ This package contains serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: usb-serial-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: usb-serial-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, usb-modules-4.19.0-21-powerpc64le-di
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, serial-modules-4.19.0-21-powerpc64le-di, crc-modules-4.19.0-21-powerpc64le-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, scsi-core-modules-4.19.0-21-powerpc64le-di, isofs-modules-4.19.0-21-powerpc64le-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: firewire-core-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: standard
+Provides: firewire-core-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, scsi-core-modules-4.19.0-21-powerpc64le-di, crc-modules-4.19.0-21-powerpc64le-di
+Description: Core FireWire drivers
+ This package contains core FireWire drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: scsi-core-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: standard
+Provides: scsi-core-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: scsi-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: standard
+Provides: scsi-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, scsi-core-modules-4.19.0-21-powerpc64le-di, cdrom-core-modules-4.19.0-21-powerpc64le-di, ata-modules-4.19.0-21-powerpc64le-di
+Description: SCSI drivers
+ This package contains SCSI drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: scsi-nic-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: scsi-nic-modules
+Depends: scsi-modules-4.19.0-21-powerpc64le-di, nic-modules-4.19.0-21-powerpc64le-di
+Description: SCSI drivers for converged NICs
+ This package contains SCSI drivers that depend on net drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, crc-modules-4.19.0-21-powerpc64le-di, compress-modules-4.19.0-21-powerpc64le-di, md-modules-4.19.0-21-powerpc64le-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, crc-modules-4.19.0-21-powerpc64le-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, crc-modules-4.19.0-21-powerpc64le-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, md-modules-4.19.0-21-powerpc64le-di, scsi-core-modules-4.19.0-21-powerpc64le-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: usb-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: usb-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di
+Description: USB support
+ This package contains core USB drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: usb-storage-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: standard
+Provides: usb-storage-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, scsi-core-modules-4.19.0-21-powerpc64le-di, usb-modules-4.19.0-21-powerpc64le-di
+Description: USB storage support
+ This package contains the USB storage driver for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: fb-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: fb-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, i2c-modules-4.19.0-21-powerpc64le-di
+Description: Frame buffer support
+ This package contains Frame buffer drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: input-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: input-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, usb-modules-4.19.0-21-powerpc64le-di, i2c-modules-4.19.0-21-powerpc64le-di
+Description: Input devices support
+ This package contains input device drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: event-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: event-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di
+Description: Event support
+ This package contains event drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: mouse-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: mouse-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, event-modules-4.19.0-21-powerpc64le-di, input-modules-4.19.0-21-powerpc64le-di, usb-modules-4.19.0-21-powerpc64le-di
+Description: Mouse support
+ This package contains mouse drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: nic-usb-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: standard
+Provides: nic-usb-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, nic-shared-modules-4.19.0-21-powerpc64le-di, nic-wireless-modules-4.19.0-21-powerpc64le-di, usb-modules-4.19.0-21-powerpc64le-di, crc-modules-4.19.0-21-powerpc64le-di
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: sata-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: standard
+Provides: sata-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, scsi-core-modules-4.19.0-21-powerpc64le-di, ata-modules-4.19.0-21-powerpc64le-di
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: i2c-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: i2c-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di
+Description: i2c support modules
+ This package contains basic i2c support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, md-modules-4.19.0-21-powerpc64le-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: ata-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: ata-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, scsi-core-modules-4.19.0-21-powerpc64le-di
+Description: ATA disk modules
+ This package contains core ATA disk modules used by both PATA and SATA
+ disk drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, compress-modules-4.19.0-21-powerpc64le-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: uinput-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: uinput-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di
+Description: uinput support
+ This package contains the uinput module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di, crc-modules-4.19.0-21-powerpc64le-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: mtd-core-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: optional
+Provides: mtd-core-modules
+Depends: kernel-image-4.19.0-21-powerpc64le-di
+Description: MTD core
+ This package contains the MTD core.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: hypervisor-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: standard
+Provides: hypervisor-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: fancontrol-modules-4.19.0-21-powerpc64le-di
+Architecture: ppc64el
+Section: debian-installer
+Priority: standard
+Provides: fancontrol-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-powerpc64le
+Package-Type: udeb
+
+Package: linux-image-4.19.0-21-powerpc64le
+Architecture: ppc64el
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [ppc64el] | linux-initramfs-tool [ppc64el]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [ppc64el]
+Suggests: linux-doc-4.19, debian-kernel-handbook, mkvmlinuz [ppc64el], grub-ieee1275 [ppc64el]
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for Little-endian 64-bit PowerPC
+ The Linux kernel 4.19 and modules for use on Little-endian 64-bit PowerPC.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-powerpc64le
+Architecture: ppc64el
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-powerpc64le
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-powerpc64le, generally used for building
+ out-of-tree kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-powerpc64le, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-powerpc64le package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-powerpc64le-dbg
+Architecture: ppc64el
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-powerpc64le
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-powerpc64le.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-riscv64
+Architecture: riscv64
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-riscv64 (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: kernel-image-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: standard
+Provides: kernel-image
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-riscv64-di, nic-shared-modules-4.19.0-21-riscv64-di, i2c-modules-4.19.0-21-riscv64-di, crc-modules-4.19.0-21-riscv64-di, zlib-modules-4.19.0-21-riscv64-di, mtd-core-modules-4.19.0-21-riscv64-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: nic-wireless-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: standard
+Provides: nic-wireless-modules
+Depends: kernel-image-4.19.0-21-riscv64-di, nic-shared-modules-4.19.0-21-riscv64-di, usb-modules-4.19.0-21-riscv64-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: usb-serial-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: usb-serial-modules
+Depends: kernel-image-4.19.0-21-riscv64-di, usb-modules-4.19.0-21-riscv64-di
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-riscv64-di, zlib-modules-4.19.0-21-riscv64-di, crc-modules-4.19.0-21-riscv64-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: pata-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: standard
+Provides: pata-modules
+Depends: kernel-image-4.19.0-21-riscv64-di, ata-modules-4.19.0-21-riscv64-di
+Description: PATA drivers
+ This package contains PATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-riscv64-di, scsi-core-modules-4.19.0-21-riscv64-di, isofs-modules-4.19.0-21-riscv64-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: scsi-core-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: standard
+Provides: scsi-core-modules
+Depends: kernel-image-4.19.0-21-riscv64-di
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: scsi-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: standard
+Provides: scsi-modules
+Depends: kernel-image-4.19.0-21-riscv64-di, scsi-core-modules-4.19.0-21-riscv64-di, cdrom-core-modules-4.19.0-21-riscv64-di, ata-modules-4.19.0-21-riscv64-di
+Description: SCSI drivers
+ This package contains SCSI drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: scsi-nic-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: scsi-nic-modules
+Depends: scsi-modules-4.19.0-21-riscv64-di, nic-modules-4.19.0-21-riscv64-di
+Description: SCSI drivers for converged NICs
+ This package contains SCSI drivers that depend on net drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-riscv64-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-riscv64-di, crc-modules-4.19.0-21-riscv64-di, zlib-modules-4.19.0-21-riscv64-di, compress-modules-4.19.0-21-riscv64-di, md-modules-4.19.0-21-riscv64-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-riscv64-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-riscv64-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-riscv64-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-riscv64-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-riscv64-di, crc-modules-4.19.0-21-riscv64-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-riscv64-di, md-modules-4.19.0-21-riscv64-di, scsi-core-modules-4.19.0-21-riscv64-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: usb-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: usb-modules
+Depends: kernel-image-4.19.0-21-riscv64-di
+Description: USB support
+ This package contains core USB drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: usb-storage-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: standard
+Provides: usb-storage-modules
+Depends: kernel-image-4.19.0-21-riscv64-di, scsi-core-modules-4.19.0-21-riscv64-di, usb-modules-4.19.0-21-riscv64-di
+Description: USB storage support
+ This package contains the USB storage driver for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: fb-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: fb-modules
+Depends: kernel-image-4.19.0-21-riscv64-di, i2c-modules-4.19.0-21-riscv64-di
+Description: Frame buffer support
+ This package contains Frame buffer drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: input-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: input-modules
+Depends: kernel-image-4.19.0-21-riscv64-di, usb-modules-4.19.0-21-riscv64-di, i2c-modules-4.19.0-21-riscv64-di
+Description: Input devices support
+ This package contains input device drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: event-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: event-modules
+Depends: kernel-image-4.19.0-21-riscv64-di
+Description: Event support
+ This package contains event drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: nic-usb-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: standard
+Provides: nic-usb-modules
+Depends: kernel-image-4.19.0-21-riscv64-di, nic-shared-modules-4.19.0-21-riscv64-di, nic-wireless-modules-4.19.0-21-riscv64-di, usb-modules-4.19.0-21-riscv64-di, crc-modules-4.19.0-21-riscv64-di
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: sata-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: standard
+Provides: sata-modules
+Depends: kernel-image-4.19.0-21-riscv64-di, scsi-core-modules-4.19.0-21-riscv64-di, ata-modules-4.19.0-21-riscv64-di
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: i2c-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: i2c-modules
+Depends: kernel-image-4.19.0-21-riscv64-di
+Description: i2c support modules
+ This package contains basic i2c support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-riscv64-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-riscv64-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-riscv64-di, md-modules-4.19.0-21-riscv64-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: ata-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: ata-modules
+Depends: kernel-image-4.19.0-21-riscv64-di, scsi-core-modules-4.19.0-21-riscv64-di
+Description: ATA disk modules
+ This package contains core ATA disk modules used by both PATA and SATA
+ disk drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-riscv64-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-riscv64-di, compress-modules-4.19.0-21-riscv64-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: zlib-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: zlib-modules
+Depends: kernel-image-4.19.0-21-riscv64-di
+Description: zlib modules
+ This package contains zlib modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-riscv64-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-riscv64-di, crc-modules-4.19.0-21-riscv64-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-riscv64-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: mtd-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: mtd-modules
+Depends: kernel-image-4.19.0-21-riscv64-di, mtd-core-modules-4.19.0-21-riscv64-di
+Description: MTD driver modules
+ This package contains MTD driver modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: mtd-core-modules-4.19.0-21-riscv64-di
+Architecture: riscv64
+Section: debian-installer
+Priority: optional
+Provides: mtd-core-modules
+Depends: kernel-image-4.19.0-21-riscv64-di
+Description: MTD core
+ This package contains the MTD core.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-riscv64
+Package-Type: udeb
+
+Package: linux-image-4.19.0-21-riscv64
+Architecture: riscv64
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [riscv64] | linux-initramfs-tool [riscv64]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [riscv64]
+Suggests: linux-doc-4.19, debian-kernel-handbook
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for 64-bit RISC-V platforms
+ The Linux kernel 4.19 and modules for use on 64-bit RISC-V platforms.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-riscv64
+Architecture: riscv64
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-riscv64
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-riscv64, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-riscv64, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-riscv64 package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-riscv64-dbg
+Architecture: riscv64
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-riscv64
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-riscv64.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-s390x
+Architecture: s390x
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-s390x (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: kernel-image-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: standard
+Provides: kernel-image
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-s390x-di, crc-modules-4.19.0-21-s390x-di, zlib-modules-4.19.0-21-s390x-di, mtd-core-modules-4.19.0-21-s390x-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-s390x-di, scsi-core-modules-4.19.0-21-s390x-di, isofs-modules-4.19.0-21-s390x-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: scsi-core-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: standard
+Provides: scsi-core-modules
+Depends: kernel-image-4.19.0-21-s390x-di
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: scsi-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: standard
+Provides: scsi-modules
+Depends: kernel-image-4.19.0-21-s390x-di, scsi-core-modules-4.19.0-21-s390x-di, cdrom-core-modules-4.19.0-21-s390x-di
+Description: SCSI drivers
+ This package contains SCSI drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-s390x-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-s390x-di, crc-modules-4.19.0-21-s390x-di, zlib-modules-4.19.0-21-s390x-di, compress-modules-4.19.0-21-s390x-di, md-modules-4.19.0-21-s390x-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-s390x-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-s390x-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-s390x-di, crc-modules-4.19.0-21-s390x-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: optional
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-s390x-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-s390x-di, crc-modules-4.19.0-21-s390x-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-s390x-di, md-modules-4.19.0-21-s390x-di, scsi-core-modules-4.19.0-21-s390x-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-s390x-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-s390x-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-s390x-di, md-modules-4.19.0-21-s390x-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-s390x-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: zlib-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: optional
+Provides: zlib-modules
+Depends: kernel-image-4.19.0-21-s390x-di
+Description: zlib modules
+ This package contains zlib modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-s390x-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-s390x-di, crc-modules-4.19.0-21-s390x-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-s390x-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: mtd-core-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: optional
+Provides: mtd-core-modules
+Depends: kernel-image-4.19.0-21-s390x-di
+Description: MTD core
+ This package contains the MTD core.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: dasd-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: standard
+Provides: dasd-modules
+Depends: kernel-image-4.19.0-21-s390x-di
+Description: dasd modules
+ This package contains dasd modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: dasd-extra-modules-4.19.0-21-s390x-di
+Architecture: s390x
+Section: debian-installer
+Priority: optional
+Provides: dasd-extra-modules
+Depends: kernel-image-4.19.0-21-s390x-di, dasd-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-s390x
+Package-Type: udeb
+
+Package: linux-image-4.19.0-21-s390x
+Architecture: s390x
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [s390x] | linux-initramfs-tool [s390x]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [s390x]
+Suggests: linux-doc-4.19, debian-kernel-handbook, s390-tools [s390x]
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for IBM zSeries
+ The Linux kernel 4.19 and modules for use on IBM zSeries.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-s390x
+Architecture: s390x
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-8-s390
+Description: Header files for Linux 4.19.0-21-s390x
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-s390x, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-s390x, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-s390x package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-s390x-dbg
+Architecture: s390x
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-s390x
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-s390x.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-sh4
+Architecture: sh4
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-sh7751r (= ${binary:Version}), linux-headers-4.19.0-21-sh7785lcr (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: kernel-image-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: kernel-image, event-modules, fb-modules, input-modules, mouse-modules, nic-shared-modules, rtc-modules, uinput-modules, usb-modules
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di, nic-shared-modules-4.19.0-21-sh7751r-di, i2c-modules-4.19.0-21-sh7751r-di, crc-modules-4.19.0-21-sh7751r-di, zlib-modules-4.19.0-21-sh7751r-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: usb-serial-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: usb-serial-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di, zlib-modules-4.19.0-21-sh7751r-di, crc-modules-4.19.0-21-sh7751r-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: pata-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: pata-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di
+Description: PATA drivers
+ This package contains PATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di, isofs-modules-4.19.0-21-sh7751r-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: firewire-core-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: firewire-core-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di, crc-modules-4.19.0-21-sh7751r-di
+Description: Core FireWire drivers
+ This package contains core FireWire drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di, crc-modules-4.19.0-21-sh7751r-di, zlib-modules-4.19.0-21-sh7751r-di, compress-modules-4.19.0-21-sh7751r-di, md-modules-4.19.0-21-sh7751r-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di, crc-modules-4.19.0-21-sh7751r-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: minix-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: minix-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di
+Description: Minix filesystem support
+ This package contains the Minix filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di, crc-modules-4.19.0-21-sh7751r-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di, md-modules-4.19.0-21-sh7751r-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: usb-storage-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: usb-storage-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di
+Description: USB storage support
+ This package contains the USB storage driver for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: nic-usb-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: nic-usb-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di, nic-shared-modules-4.19.0-21-sh7751r-di, crc-modules-4.19.0-21-sh7751r-di
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: sata-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: sata-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: i2c-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: i2c-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di
+Description: i2c support modules
+ This package contains basic i2c support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di, md-modules-4.19.0-21-sh7751r-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di, compress-modules-4.19.0-21-sh7751r-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: speakup-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: speakup-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di
+Description: speakup modules
+ This package contains speakup modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: sound-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: sound-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di, i2c-modules-4.19.0-21-sh7751r-di, firewire-core-modules-4.19.0-21-sh7751r-di, crc-modules-4.19.0-21-sh7751r-di
+Description: sound support
+ This package contains sound modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: zlib-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: zlib-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di
+Description: zlib modules
+ This package contains zlib modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di, crc-modules-4.19.0-21-sh7751r-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-sh7751r-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-sh7751r-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7751r
+Package-Type: udeb
+
+Package: kernel-image-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: kernel-image, event-modules, fb-modules, input-modules, mouse-modules, nic-shared-modules, rtc-modules, uinput-modules, usb-modules
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di, nic-shared-modules-4.19.0-21-sh7785lcr-di, crc-modules-4.19.0-21-sh7785lcr-di, zlib-modules-4.19.0-21-sh7785lcr-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: usb-serial-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: usb-serial-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di, zlib-modules-4.19.0-21-sh7785lcr-di, crc-modules-4.19.0-21-sh7785lcr-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: pata-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: pata-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di
+Description: PATA drivers
+ This package contains PATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di, isofs-modules-4.19.0-21-sh7785lcr-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: firewire-core-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: firewire-core-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di, crc-modules-4.19.0-21-sh7785lcr-di
+Description: Core FireWire drivers
+ This package contains core FireWire drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: loop-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: loop-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di, crc-modules-4.19.0-21-sh7785lcr-di, zlib-modules-4.19.0-21-sh7785lcr-di, compress-modules-4.19.0-21-sh7785lcr-di, md-modules-4.19.0-21-sh7785lcr-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di, crc-modules-4.19.0-21-sh7785lcr-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: minix-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: minix-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di
+Description: Minix filesystem support
+ This package contains the Minix filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di, crc-modules-4.19.0-21-sh7785lcr-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di, md-modules-4.19.0-21-sh7785lcr-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: nic-usb-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: nic-usb-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di, nic-shared-modules-4.19.0-21-sh7785lcr-di, crc-modules-4.19.0-21-sh7785lcr-di
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: sata-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: standard
+Provides: sata-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di, md-modules-4.19.0-21-sh7785lcr-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di, compress-modules-4.19.0-21-sh7785lcr-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: speakup-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: speakup-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di
+Description: speakup modules
+ This package contains speakup modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: sound-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: sound-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di, firewire-core-modules-4.19.0-21-sh7785lcr-di, crc-modules-4.19.0-21-sh7785lcr-di
+Description: sound support
+ This package contains sound modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: zlib-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: zlib-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di
+Description: zlib modules
+ This package contains zlib modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di, crc-modules-4.19.0-21-sh7785lcr-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-sh7785lcr-di
+Architecture: sh4
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-sh7785lcr-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sh7785lcr
+Package-Type: udeb
+
+Package: linux-image-4.19.0-21-sh7751r
+Architecture: sh4
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [sh4] | linux-initramfs-tool [sh4]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [sh4]
+Suggests: linux-doc-4.19, debian-kernel-handbook
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for sh7751r
+ The Linux kernel 4.19 and modules for use on Renesas SH7751R R2D plus
+ board.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-sh7751r
+Architecture: sh4
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-sh7751r
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-sh7751r, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-sh7751r, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-sh7751r package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-sh7751r-dbg
+Architecture: sh4
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-sh7751r
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-sh7751r.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-sh7785lcr
+Architecture: sh4
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [sh4] | linux-initramfs-tool [sh4]
+Recommends: firmware-linux-free, ${kernel:Recommends}, u-boot-tools [sh4], apparmor [sh4]
+Suggests: linux-doc-4.19, debian-kernel-handbook
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for sh7785lcr
+ The Linux kernel 4.19 and modules for use on Renesas SH7785 reference
+ board.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-sh7785lcr
+Architecture: sh4
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-sh7785lcr
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-sh7785lcr, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-sh7785lcr, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-sh7785lcr package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-sh7785lcr-dbg
+Architecture: sh4
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-sh7785lcr
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-sh7785lcr.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-all-sparc64
+Architecture: sparc64
+Depends: ${misc:Depends}, linux-headers-4.19.0-21-sparc64 (= ${binary:Version}), linux-headers-4.19.0-21-sparc64-smp (= ${binary:Version})
+Description: All header files for Linux 4.19 (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version 4.19, generally used for building out-of-tree
+ kernel modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: kernel-image-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: standard
+Provides: kernel-image
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your
+ full Debian system.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: nic-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: standard
+Provides: nic-modules, nic-extra-modules
+Depends: kernel-image-4.19.0-21-sparc64-di, nic-shared-modules-4.19.0-21-sparc64-di, i2c-modules-4.19.0-21-sparc64-di, crc-modules-4.19.0-21-sparc64-di, zlib-modules-4.19.0-21-sparc64-di
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: nic-shared-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: standard
+Provides: nic-shared-modules
+Depends: kernel-image-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: usb-serial-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: optional
+Provides: usb-serial-modules
+Depends: kernel-image-4.19.0-21-sparc64-di, usb-modules-4.19.0-21-sparc64-di
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: ppp-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: optional
+Provides: ppp-modules
+Depends: kernel-image-4.19.0-21-sparc64-di, zlib-modules-4.19.0-21-sparc64-di, crc-modules-4.19.0-21-sparc64-di
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: pata-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: standard
+Provides: pata-modules
+Depends: kernel-image-4.19.0-21-sparc64-di, ata-modules-4.19.0-21-sparc64-di
+Description: PATA drivers
+ This package contains PATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: cdrom-core-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: standard
+Provides: cdrom-core-modules
+Depends: kernel-image-4.19.0-21-sparc64-di, scsi-core-modules-4.19.0-21-sparc64-di, isofs-modules-4.19.0-21-sparc64-di
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: scsi-core-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: standard
+Provides: scsi-core-modules
+Depends: kernel-image-4.19.0-21-sparc64-di
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: scsi-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: standard
+Provides: scsi-modules
+Depends: kernel-image-4.19.0-21-sparc64-di, scsi-core-modules-4.19.0-21-sparc64-di, cdrom-core-modules-4.19.0-21-sparc64-di, ata-modules-4.19.0-21-sparc64-di
+Description: SCSI drivers
+ This package contains SCSI drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: btrfs-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: optional
+Provides: btrfs-modules
+Depends: kernel-image-4.19.0-21-sparc64-di, crc-modules-4.19.0-21-sparc64-di, zlib-modules-4.19.0-21-sparc64-di, compress-modules-4.19.0-21-sparc64-di, md-modules-4.19.0-21-sparc64-di
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: ext4-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: standard
+Provides: ext4-modules, ext2-modules, ext3-modules
+Depends: kernel-image-4.19.0-21-sparc64-di, crc-modules-4.19.0-21-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: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: isofs-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: standard
+Provides: isofs-modules
+Depends: kernel-image-4.19.0-21-sparc64-di
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: jfs-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: standard
+Provides: jfs-modules
+Depends: kernel-image-4.19.0-21-sparc64-di
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: ufs-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: optional
+Provides: ufs-modules
+Depends: kernel-image-4.19.0-21-sparc64-di
+Description: UFS filesystem support
+ This package contains the UFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: xfs-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: standard
+Provides: xfs-modules
+Depends: kernel-image-4.19.0-21-sparc64-di, crc-modules-4.19.0-21-sparc64-di
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: fat-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: optional
+Provides: fat-modules
+Depends: kernel-image-4.19.0-21-sparc64-di
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: md-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: optional
+Provides: md-modules
+Depends: kernel-image-4.19.0-21-sparc64-di, crc-modules-4.19.0-21-sparc64-di
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: multipath-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: optional
+Provides: multipath-modules
+Depends: kernel-image-4.19.0-21-sparc64-di, md-modules-4.19.0-21-sparc64-di, scsi-core-modules-4.19.0-21-sparc64-di
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: usb-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: optional
+Provides: usb-modules
+Depends: kernel-image-4.19.0-21-sparc64-di
+Description: USB support
+ This package contains core USB drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: usb-storage-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: standard
+Provides: usb-storage-modules
+Depends: kernel-image-4.19.0-21-sparc64-di, scsi-core-modules-4.19.0-21-sparc64-di, usb-modules-4.19.0-21-sparc64-di
+Description: USB storage support
+ This package contains the USB storage driver for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: fb-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: optional
+Provides: fb-modules
+Depends: kernel-image-4.19.0-21-sparc64-di, i2c-modules-4.19.0-21-sparc64-di
+Description: Frame buffer support
+ This package contains Frame buffer drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: input-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: optional
+Provides: input-modules
+Depends: kernel-image-4.19.0-21-sparc64-di, usb-modules-4.19.0-21-sparc64-di, i2c-modules-4.19.0-21-sparc64-di
+Description: Input devices support
+ This package contains input device drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: nic-usb-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: standard
+Provides: nic-usb-modules
+Depends: kernel-image-4.19.0-21-sparc64-di, nic-shared-modules-4.19.0-21-sparc64-di, usb-modules-4.19.0-21-sparc64-di, crc-modules-4.19.0-21-sparc64-di
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: sata-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: standard
+Provides: sata-modules
+Depends: kernel-image-4.19.0-21-sparc64-di, scsi-core-modules-4.19.0-21-sparc64-di, ata-modules-4.19.0-21-sparc64-di
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: i2c-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: optional
+Provides: i2c-modules
+Depends: kernel-image-4.19.0-21-sparc64-di
+Description: i2c support modules
+ This package contains basic i2c support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: crc-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: optional
+Provides: crc-modules
+Depends: kernel-image-4.19.0-21-sparc64-di
+Description: CRC modules
+ This package contains CRC support modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: crypto-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: optional
+Provides: crypto-modules
+Depends: kernel-image-4.19.0-21-sparc64-di
+Description: crypto modules
+ This package contains crypto modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: crypto-dm-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: optional
+Provides: crypto-dm-modules
+Depends: kernel-image-4.19.0-21-sparc64-di, md-modules-4.19.0-21-sparc64-di
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: ata-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: optional
+Provides: ata-modules
+Depends: kernel-image-4.19.0-21-sparc64-di, scsi-core-modules-4.19.0-21-sparc64-di
+Description: ATA disk modules
+ This package contains core ATA disk modules used by both PATA and SATA
+ disk drivers.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: nbd-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: optional
+Provides: nbd-modules
+Depends: kernel-image-4.19.0-21-sparc64-di
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network
+ Block Device
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: squashfs-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: optional
+Provides: squashfs-modules
+Depends: kernel-image-4.19.0-21-sparc64-di, compress-modules-4.19.0-21-sparc64-di
+Description: squashfs modules
+ This package contains squashfs modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: zlib-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: optional
+Provides: zlib-modules
+Depends: kernel-image-4.19.0-21-sparc64-di
+Description: zlib modules
+ This package contains zlib modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: compress-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: optional
+Provides: compress-modules
+Depends: kernel-image-4.19.0-21-sparc64-di
+Description: lzo modules
+ This package contains lzo modules.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: udf-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: optional
+Provides: udf-modules
+Depends: kernel-image-4.19.0-21-sparc64-di, crc-modules-4.19.0-21-sparc64-di
+Description: UDF modules
+ This package contains the UDF filesystem module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: fuse-modules-4.19.0-21-sparc64-di
+Architecture: sparc64
+Section: debian-installer
+Priority: optional
+Provides: fuse-modules
+Depends: kernel-image-4.19.0-21-sparc64-di
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Kernel-Version: 4.19.0-21-sparc64
+Package-Type: udeb
+
+Package: linux-image-4.19.0-21-sparc64
+Architecture: sparc64
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [sparc64] | linux-initramfs-tool [sparc64]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [sparc64]
+Suggests: linux-doc-4.19, debian-kernel-handbook, fdutils [sparc64], grub-ieee1275 [sparc64]
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for uniprocessor 64-bit UltraSPARC
+ The Linux kernel 4.19 and modules for use on uniprocessor 64-bit
+ UltraSPARC.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-sparc64
+Architecture: sparc64
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-sparc64
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-sparc64, generally used for building out-of-tree
+ kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-sparc64, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-sparc64 package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-sparc64-dbg
+Architecture: sparc64
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-sparc64
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-sparc64.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-sparc64-smp
+Architecture: sparc64
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-4.19.0-21 [powerpc powerpcspe ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [sparc64] | linux-initramfs-tool [sparc64]
+Recommends: firmware-linux-free, ${kernel:Recommends}, apparmor [sparc64]
+Suggests: linux-doc-4.19, debian-kernel-handbook, fdutils [sparc64], grub-ieee1275 [sparc64]
+Breaks: initramfs-tools (<< 0.120+deb8u2)
+Description: Linux 4.19 for multiprocessor 64-bit UltraSPARC
+ The Linux kernel 4.19 and modules for use on multiprocessor 64-bit
+ UltraSPARC.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-headers-4.19.0-21-sparc64-smp
+Architecture: sparc64
+Depends: linux-headers-4.19.0-21-common (= ${source:Version}), linux-kbuild-4.19 (>= ${source:Version}), ${misc:Depends}, gcc-8
+Description: Header files for Linux 4.19.0-21-sparc64-smp
+ This package provides the architecture-specific kernel header files for
+ Linux kernel 4.19.0-21-sparc64-smp, generally used for building
+ out-of-tree kernel modules. These files are going to be installed into
+ /usr/src/linux-headers-4.19.0-21-sparc64-smp, and can be used for building
+ modules that load into the kernel provided by the
+ linux-image-4.19.0-21-sparc64-smp package.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-image-4.19.0-21-sparc64-smp-dbg
+Architecture: sparc64
+Section: debug
+Priority: optional
+Depends: ${misc:Depends}
+Description: Debug symbols for linux-image-4.19.0-21-sparc64-smp
+ This package provides the detached debug symbols for the Linux kernel and
+ modules in linux-image-4.19.0-21-sparc64-smp.
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+
+Package: linux-compiler-gcc-8-arm
+Architecture: armel armhf
+Depends: gcc-8, ${misc:Depends}
+Description: Compiler for Linux on ARM (meta-package)
+ This package depends on GCC of the appropriate version and architecture
+ for Linux on armel and armhf.
+Build-Profiles: <!stage1>
+Multi-Arch: foreign
+
+Package: linux-compiler-gcc-8-s390
+Architecture: s390 s390x
+Depends: gcc-8, ${misc:Depends}
+Description: Compiler for Linux on IBM zSeries (meta-package)
+ This package depends on GCC of the appropriate version and architecture
+ for Linux on s390 and s390x.
+Build-Profiles: <!stage1>
+Multi-Arch: foreign
+
+Package: linux-compiler-gcc-8-x86
+Architecture: amd64 i386 x32
+Depends: gcc-8 (>= 8-20180123-1~), ${misc:Depends}
+Description: Compiler for Linux on x86 (meta-package)
+ This package depends on GCC of the appropriate version and architecture
+ for Linux on amd64, i386 and x32.
+Build-Profiles: <!stage1>
+Multi-Arch: foreign
+
diff --git a/debian/control.md5sum b/debian/control.md5sum
new file mode 100644
index 000000000..4b45ca475
--- /dev/null
+++ b/debian/control.md5sum
@@ -0,0 +1,74 @@
+6fcea08bce08a51a0f46a6a7b4220e77 debian/bin/gencontrol.py
+59435ca3303947b88bbbefa2ee15ad7c debian/build/version-info
+74b180a87aa1f6377d9bf8a10368c657 debian/templates/control.main.in
+1cfc49a285f1f37ce6415e811e5c737f debian/templates/control.image-unsigned.in
+38004750aa03cea41d5d3aeafff16fcc debian/templates/image.preinst.in
+f1e7e80d70df74afdf39b68ec4e83572 debian/templates/control.tools-unversioned.in
+63c0d01ea032d0acfa5e069d31daa938 debian/templates/control.libc-dev.in
+afb508873a44a1f196c2a525fec4b415 debian/templates/image.prerm.in
+1a0473417ce134da9b488c503d66f9b1 debian/templates/control.tools-versioned.in
+0d7f6ea42f52d0a6013535a80111ee3e debian/templates/headers.postinst.in
+814dda166c7e3ef02e6e259e805ac66a debian/templates/tests-control.image.in
+befa899554918fd2a5264e5dca3c4eef debian/templates/tests-control.main.in
+a4a60fc48b3240e46bbac6a1ddcaad30 debian/templates/image.postrm.in
+51797b6c275eb14e99009e78553904cc debian/templates/perf.lintian-overrides.in
+b5b99078d7e73c15ac6055496e33d1ec debian/templates/control.sourcebin.in
+57685436e079bbef4f8bb6e8a2dfbf1b debian/templates/control.signed-template.in
+54426b6625c1bbf41ff6e05eebc06f89 debian/templates/image-dbg.lintian-overrides.in
+6acf93bb834dbe7609078d723a8cc13c debian/templates/control.image.in
+eda4623fb10d5ba1cefa8502ebaeb0fd debian/templates/control.image-dbg.in
+0e337736e8bfdb338bb59db2379488f8 debian/templates/control.source.in
+6fea4e452a7a77e7063bb17051fff3a7 debian/templates/control.docs.in
+578bb70eb1ed930f2cf8a774666b747f debian/templates/control.headers.featureset.in
+0327750d6696dee915a532aec73a0fd6 debian/templates/image.postinst.in
+2b3995da9ebe7d2b1a1345241dd90c55 debian/templates/control.headers.in
+0c86e2579f89e94a6cd144eb98593a5b debian/templates/control.extra.in
+fe4456d48e3218fb8980c8577d03a7ae debian/templates/control.config.in
+103ea5fb237e376b511ba638afc41837 debian/templates/control.headers.arch.in
+ec1dd8ac741257e65447a1a56217c42e debian/config/defines
+151f2a989308056668d9a162a321c32a debian/config/i386/defines
+d08ab699e6a25ec0da4cb70efc0f2288 debian/config/ppc64el/defines
+32e264f468daa991fa1bafce9e1eee3c debian/config/mips64el/defines
+8f2e4969633ff660d026f2b7e02e6336 debian/config/sh3/defines
+1f2029e9d0bc11b6bd7330810232b249 debian/config/mipsr6/defines
+3a8d9bb342084862815b0d7d7df2eee4 debian/config/armhf/defines
+6a030dc96bbeb2340082dc7c5c67a640 debian/config/amd64/defines
+1f1ed4a31b20a1ab483dd1357b30ed76 debian/config/mipsr6el/defines
+b1750f23dea19ed03c8382341c924b53 debian/config/mips/defines
+3f9e6c98b1abe4a32b12add5d1ada119 debian/config/arm64/defines
+e411d2dfe0018a7c40b6bf7efd45cd29 debian/config/mipsn32/defines
+3b09058af262b2c63d9cfcf45f0089e4 debian/config/powerpcspe/defines
+174058e52aced932bf02606d6cb5649c debian/config/mipsn32el/defines
+366b94d652a66b437eabcd165bcc9610 debian/config/featureset-rt/defines
+7291bfe9ad6a3a16664230d185552d82 debian/config/riscv64/defines
+8d317c1872f3bd8da4feae25a7c61df3 debian/config/sparc/defines
+d26ac56948a79e6d37f7673073132de5 debian/config/s390x/defines
+02b96ff7eaa79ca2716eedf529222c58 debian/config/ppc64/defines
+f4b2921156e7b1a038862f848fdfe48f debian/config/x32/defines
+f425752f612c3c6693bc47c205dbf737 debian/config/mips64/defines
+b3ef14a93ef9602bf951f55f806e2f6c debian/config/sparc64/defines
+f53e736263ada56088198fd8598fe31a debian/config/mipsel/defines
+e0810ddd6e4add2a26c5668773b69d25 debian/config/sh4/defines
+47420e11eaad5f5ffd20b01b549696a8 debian/config/m68k/defines
+35e886ad30d213e86b340eb759d25e0d debian/config/ia64/defines
+882fb0fec3cbd0239817994223fa71e5 debian/config/mipsn32r6/defines
+da871dd4234a8d1ed82d76fa536fa411 debian/config/alpha/defines
+73e2f095b2485f95bc164bf685684a47 debian/config/mipsn32r6el/defines
+51fa9bda1954320723c7c7daf42471a5 debian/config/hppa/defines
+45a4ad93313c2066248987dfa59dd6da debian/config/powerpc/defines
+193b542830508cb812da06dfa0feddd2 debian/config/armel/defines
+2f649099bc889fdbccc9b2f72305681c debian/config/mips64r6/defines
+3e673c1434c6132c73c0cfb4bfe38763 debian/config/arm64ilp32/defines
+832f4a53a034eac58b25c90a813b4669 debian/config/mips64r6el/defines
+9462622a41b618007bf9e8343f2fb3ce debian/config/s390/defines
+10ca069c87c1150c5d2d010a72a90e36 debian/config/i386/none/defines
+7146ff53fc4f9fbb49948225d8589b69 debian/config/i386/rt/defines
+f57efe029b503e7b45b13d5cc4d00a86 debian/config/armhf/none/defines
+1cab87ca080defc647d4ae9adcf9a63a debian/config/armhf/rt/defines
+d5cd6e820002011c1183909686eca2a2 debian/config/amd64/none/defines
+7dc981827930ed6844a731ed954b9b9d debian/config/amd64/rt/defines
+d3c04182d8746e4871de922a63f03f97 debian/config/arm64/none/defines
+d3c04182d8746e4871de922a63f03f97 debian/config/arm64/rt/defines
+098924b28d0dcd00aa45188f614efbf1 debian/config/riscv64/none/defines
+caf06ce14687601f484a824add0648f7 debian/installer/kernel-versions
+b9102a7cfefcaba872346d9f290e36c5 debian/installer/package-list
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 000000000..7911879aa
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,265 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: Linux kernel
+Source: https://www.kernel.org/pub/linux/kernel/
+Files-Excluded: Documentation/netlabel/draft-ietf-cipso-ipsecurity-01.txt
+ arch/powerpc/sysdev/micropatch.c
+ drivers/media/usb/dvb-usb/af9005-script.h
+ drivers/media/i2c/vs6624.c
+ drivers/net/appletalk/cops*
+ drivers/video/fbdev/nvidia
+ drivers/video/fbdev/riva
+Comment:
+ The 'perf' tool is dynamically linked with the Python interpreter,
+ which is itself dynamically linked with OpenSSL, which is not
+ GPL-compatible. However, since perf itself does not link with or use
+ OpenSSL, we believe that this indirect linking does not require
+ additional permissions beyond the GPL.
+
+Files: *
+Copyright: 1991-2012 Linus Torvalds and many others
+License: GPL-2
+
+Files: debian/*
+Copyright: 1996-2006 Manoj Srivastava
+ 2005-2012 Debian kernel team
+License: GPL-2
+
+Files: debian/rules.d/tools/hv/check-hyperv.c
+Copyright: 2011 Lennart Poettering
+License: LGPL-2.1
+
+Files:
+ arch/arm/boot/dts/armada-370.dtsi
+ arch/arm/boot/dts/armada-370-d*.dts*
+ arch/arm/boot/dts/armada-370-mirabox.dts
+ arch/arm/boot/dts/armada-370-netgear*.dts*
+ arch/arm/boot/dts/armada-370-rd.dts
+ arch/arm/boot/dts/armada-370-synology-ds213j.dts
+ arch/arm/boot/dts/armada-375*.dts*
+ arch/arm/boot/dts/armada-38*.dts*
+ arch/arm/boot/dts/armada-39*.dts*
+ arch/arm/boot/dts/armada-xp*.dts*
+ arch/arm/boot/dts/artpec6.dtsi
+ arch/arm/boot/dts/at91sam9260ek.dts
+ arch/arm/boot/dts/at91sam9xe.dtsi
+ arch/arm/boot/dts/axp*.dts*
+ arch/arm/boot/dts/berlin2*.dts*
+ arch/arm/boot/dts/cros-ec-sbs.dtsi
+ arch/arm/boot/dts/cx92755*.dts*
+ arch/arm/boot/dts/imx7*.dts*
+ arch/arm/boot/dts/kirkwood-linkstation*.dts*
+ arch/arm/boot/dts/ls*.dts*
+ arch/arm/boot/dts/meson*.dts*
+ arch/arm/boot/dts/mps2*.dts*
+ arch/arm/boot/dts/mvebu-linkstation-*.dts*
+ arch/arm/boot/dts/orion5x-kuroboxpro.dts
+ arch/arm/boot/dts/orion5x-linkstation*.dts*
+ arch/arm/boot/dts/orion5x-ls*.dts*
+ arch/arm/boot/dts/qcom-mdm9615*.dts*
+ arch/arm/boot/dts/rk*.dts
+ arch/arm/boot/dts/sama5d2.dtsi
+ arch/arm/boot/dts/sama5d4.dtsi
+ arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts
+ arch/arm/boot/dts/stm*.dts*
+ arch/arm/boot/dts/sun*.dts*
+ arch/arm/boot/dts/tegra124-apalis*.dts*
+ arch/arm/boot/dts/uniphier-*.dts*
+ arch/arm/boot/dts/vf610-colibri*.dts*
+ arch/arm/boot/dts/vf610m*.dts*
+ arch/arm64/boot/dts/allwinner/*.dts*
+ arch/arm64/boot/dts/amlogic/*.dts*
+ arch/arm64/boot/dts/cavium/thunder-*.dts*
+ arch/arm64/boot/dts/freescale/fsl-*.dts*
+ arch/arm64/boot/dts/marvell/armada-*.dts*
+ arch/arm64/boot/dts/marvell/berlin4ct-*.dts*
+ arch/arm64/boot/dts/rockchip/rk33*.dts*
+ arch/arm64/boot/dts/socionext/uniphier-ld*.dts*
+ arch/arm64/boot/dts/zte/zx296718*.dts*
+ include/dt-bindings/clock/sun*.h
+ include/dt-bindings/dma/axi-dmac.h
+ include/dt-bindings/dma/sun4i-a10.h
+ include/dt-bindings/pinctrl/sun4i-a10.h
+ include/dt-bindings/reset/sun*.h
+Copyright: 2012-2018 Linus Torvalds and many others
+License: GPL-2+ or X11
+
+Files: drivers/crypto/vmx/*.pl
+Copyright: 2006,2014 Andy Polyakov <appro@openssl.org>
+License: CRYPTOGAMS
+ All rights reserved.
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ * Redistributions of source code must retain copyright notices, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the
+ distribution.
+ * Neither the name of the CRYPTOGAMS nor the names of its copyright
+ holder and contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+ .
+ ALTERNATIVELY, provided that this notice is retained in full, this
+ product may be distributed under the terms of the GNU General Public
+ License (GPL), in which case the provisions of the GPL apply INSTEAD
+ OF those given above.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Files: fs/nls/mac-*
+Copyright: 1991-2012 Unicode, Inc.
+License: Unicode-data
+ All rights reserved. Distributed under the Terms of Use in
+ http://www.unicode.org/copyright.html.
+ .
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of the Unicode data files and any associated documentation (the "Data
+ Files") or Unicode software and any associated documentation (the
+ "Software") to deal in the Data Files or Software without restriction,
+ including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, and/or sell copies of the Data Files or Software, and
+ to permit persons to whom the Data Files or Software are furnished to do
+ so, provided that (a) the above copyright notice(s) and this permission
+ notice appear with all copies of the Data Files or Software, (b) both the
+ above copyright notice(s) and this permission notice appear in associated
+ documentation, and (c) there is clear notice in each modified Data File or
+ in the Software as well as in the documentation associated with the Data
+ File(s) or Software that the data or software has been modified.
+ .
+ THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+ KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
+ THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
+ INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
+ OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
+ USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THE DATA FILES OR SOFTWARE.
+ .
+ Except as contained in this notice, the name of a copyright holder shall
+ not be used in advertising or otherwise to promote the sale, use or other
+ dealings in these Data Files or Software without prior written
+ authorization of the copyright holder.
+
+Files: include/xen/interface/*
+Copyright: 2002-2006 Keir Fraser
+ 2004 Tim Deegan
+ 2004 Andrew Warfield
+ 2005 Nguyen Anh Quynh
+ 2005-2006 IBM Corporation
+ 2005 Anthony Liguori
+ 2005 Rusty Russell
+ 2005-2006 XenSource Ltd.
+ 2006 Ian Campbell
+ 2006 Red Hat, Inc.
+ 2010 Ryan Wilson
+License: Xen-interface
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to
+ deal in the Software without restriction, including without limitation the
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
+
+Files: scripts/extract-cert.c scripts/sign-file.c
+Copyright: 2014-2015 Red Hat, Inc.
+ 2015 Intel Corporation
+License: LGPL-2.1
+
+License: GPL-2
+ This package is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 2 as
+ published by the Free Software Foundation.
+ .
+ This package is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this package; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ .
+ On Debian systems, the complete text of the GNU General Public License version
+ 2 can be found in `/usr/share/common-licenses/GPL-2'.
+
+License: LGPL-2.1
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+ .
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+ .
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program; If not, see <http://www.gnu.org/licenses/>.
+ .
+ On Debian systems, the complete text of the GNU Lesser General Public
+ License version 2.1 can be found in `/usr/share/common-licenses/LGPL-2.1'.
+
+License: GPL-2+ or X11
+ This file is dual-licensed: you can use it either under the terms
+ of the GPL or the X11 license, at your option. Note that this dual
+ licensing only applies to this file, and not this project as a
+ whole.
+ .
+ a) This file is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+ .
+ This file is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ Or, alternatively,
+ .
+ b) Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation
+ files (the "Software"), to deal in the Software without
+ restriction, including without limitation the rights to use,
+ copy, modify, merge, publish, distribute, sublicense, and/or
+ sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following
+ conditions:
+ .
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ OTHER DEALINGS IN THE SOFTWARE.
diff --git a/debian/hyperv-daemons.README.Debian b/debian/hyperv-daemons.README.Debian
new file mode 100644
index 000000000..8fff2afd3
--- /dev/null
+++ b/debian/hyperv-daemons.README.Debian
@@ -0,0 +1,14 @@
+hyperv-daemon for Debian
+------------------------
+
+ If you want to change screen resolution on Linux guest,
+ plese update kernel parameter.
+
+ 1. edit /etc/default/grub file
+ - add 'video=hyperv_fb:"horizontal"x"vertical"' to
+ 'GRUB_CMDLINE_LINUX_DEFAULT=' or 'GRUB_CMDLINE_LINUX=' line
+ (e.g. GRUB_CMDLINE_LINUX=video=hyperv_fb:1280x1024)
+ 2. then, exec update-grub
+ 3. reboot Linux guest
+
+ -- Hideki Yamane <henrich@debian.org> Thu, 28 May 2015 10:23:52 +0900
diff --git a/debian/hyperv-daemons.hv-fcopy-daemon.init b/debian/hyperv-daemons.hv-fcopy-daemon.init
new file mode 100755
index 000000000..aa124bb78
--- /dev/null
+++ b/debian/hyperv-daemons.hv-fcopy-daemon.init
@@ -0,0 +1,109 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides: hyperv-daemons.hv-fcopy-daemon
+# Required-Start: $remote_fs $syslog
+# Required-Stop: $remote_fs $syslog
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Hyper-V file copy service (FCOPY) daemon
+### END INIT INFO
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC="Hyper-V file copy service (FCOPY) daemon"
+NAME=hv_fcopy_daemon
+DAEMON=/usr/sbin/$NAME
+PIDFILE=/run/$NAME.pid
+SCRIPTNAME=/etc/init.d/hyperv-daemons.hv-fcopy-daemon
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+# Exit if the kernel device does not exist
+[ -e "/dev/vmbus/hv_fcopy" ] || exit 0
+
+# Load the VERBOSE setting and other rcS variables
+. /lib/init/vars.sh
+
+# Define LSB log_* functions.
+. /lib/lsb/init-functions
+
+#
+# Function that starts the daemon/service
+#
+do_start()
+{
+ # Return
+ # 0 if daemon has been started
+ # 1 if daemon was already running
+ # 2 if daemon could not be started
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
+ || return 1
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --background --make-pidfile -- -n \
+ || return 2
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop()
+{
+ # Return
+ # 0 if daemon has been stopped
+ # 1 if daemon was already stopped
+ # 2 if daemon could not be stopped
+ # other if a failure occurred
+ start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
+ [ "$?" = 2 ] && return 2
+ start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
+ RETVAL=$?
+ [ "$RETVAL" = 2 ] && return 2
+ # Many daemons don't delete their pidfiles when they exit.
+ rm -f $PIDFILE
+ return "$RETVAL"
+}
+
+case "$1" in
+ start)
+ [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
+ do_start
+ case "$?" in
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+ esac
+ ;;
+ stop)
+ [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
+ do_stop
+ case "$?" in
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+ esac
+ ;;
+ status)
+ status_of_proc -p "$PIDFILE" "$DAEMON" "$NAME"
+ ;;
+ restart|force-reload)
+ log_daemon_msg "Restarting $DESC" "$NAME"
+ do_stop
+ case "$?" in
+ 0|1)
+ do_start
+ case "$?" in
+ 0) log_end_msg 0 ;;
+ 1) log_end_msg 1 ;; # Old process is still running
+ *) log_end_msg 1 ;; # Failed to start
+ esac
+ ;;
+ *)
+ # Failed to stop
+ log_end_msg 1
+ ;;
+ esac
+ ;;
+ *)
+ echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
+ exit 3
+ ;;
+esac
+
+:
diff --git a/debian/hyperv-daemons.hv-fcopy-daemon.service b/debian/hyperv-daemons.hv-fcopy-daemon.service
new file mode 100644
index 000000000..6306b1d71
--- /dev/null
+++ b/debian/hyperv-daemons.hv-fcopy-daemon.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Hyper-V file copy service (FCOPY) daemon
+ConditionPathExists=/dev/vmbus/hv_fcopy
+
+[Service]
+ExecStart=/usr/sbin/hv_fcopy_daemon -n
+
+[Install]
+WantedBy=multi-user.target
diff --git a/debian/hyperv-daemons.hv-kvp-daemon.init b/debian/hyperv-daemons.hv-kvp-daemon.init
new file mode 100755
index 000000000..a03b02f10
--- /dev/null
+++ b/debian/hyperv-daemons.hv-kvp-daemon.init
@@ -0,0 +1,109 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides: hyperv-daemons.hv-kvp-daemon
+# Required-Start: $remote_fs $syslog
+# Required-Stop: $remote_fs $syslog
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Hyper-V key-value pair (KVP) daemon
+### END INIT INFO
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC="Hyper-V key-value pair (KVP) daemon"
+NAME=hv_kvp_daemon
+DAEMON=/usr/sbin/$NAME
+PIDFILE=/run/$NAME.pid
+SCRIPTNAME=/etc/init.d/hyperv-daemons.hv-kvp-daemon
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+# Exit if the kernel device does not exist
+[ -e "/dev/vmbus/hv_kvp" ] || exit 0
+
+# Load the VERBOSE setting and other rcS variables
+. /lib/init/vars.sh
+
+# Define LSB log_* functions.
+. /lib/lsb/init-functions
+
+#
+# Function that starts the daemon/service
+#
+do_start()
+{
+ # Return
+ # 0 if daemon has been started
+ # 1 if daemon was already running
+ # 2 if daemon could not be started
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
+ || return 1
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --background --make-pidfile -- -n \
+ || return 2
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop()
+{
+ # Return
+ # 0 if daemon has been stopped
+ # 1 if daemon was already stopped
+ # 2 if daemon could not be stopped
+ # other if a failure occurred
+ start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
+ [ "$?" = 2 ] && return 2
+ start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
+ RETVAL=$?
+ [ "$RETVAL" = 2 ] && return 2
+ # Many daemons don't delete their pidfiles when they exit.
+ rm -f $PIDFILE
+ return "$RETVAL"
+}
+
+case "$1" in
+ start)
+ [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
+ do_start
+ case "$?" in
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+ esac
+ ;;
+ stop)
+ [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
+ do_stop
+ case "$?" in
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+ esac
+ ;;
+ status)
+ status_of_proc -p "$PIDFILE" "$DAEMON" "$NAME"
+ ;;
+ restart|force-reload)
+ log_daemon_msg "Restarting $DESC" "$NAME"
+ do_stop
+ case "$?" in
+ 0|1)
+ do_start
+ case "$?" in
+ 0) log_end_msg 0 ;;
+ 1) log_end_msg 1 ;; # Old process is still running
+ *) log_end_msg 1 ;; # Failed to start
+ esac
+ ;;
+ *)
+ # Failed to stop
+ log_end_msg 1
+ ;;
+ esac
+ ;;
+ *)
+ echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
+ exit 3
+ ;;
+esac
+
+:
diff --git a/debian/hyperv-daemons.hv-kvp-daemon.service b/debian/hyperv-daemons.hv-kvp-daemon.service
new file mode 100644
index 000000000..953226d7d
--- /dev/null
+++ b/debian/hyperv-daemons.hv-kvp-daemon.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Hyper-V key-value pair (KVP) daemon
+ConditionPathExists=/dev/vmbus/hv_kvp
+
+[Service]
+ExecStart=/usr/sbin/hv_kvp_daemon -n
+
+[Install]
+WantedBy=multi-user.target
diff --git a/debian/hyperv-daemons.hv-vss-daemon.init b/debian/hyperv-daemons.hv-vss-daemon.init
new file mode 100755
index 000000000..aa899b132
--- /dev/null
+++ b/debian/hyperv-daemons.hv-vss-daemon.init
@@ -0,0 +1,109 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides: hyperv-daemons.hv-vss-daemon
+# Required-Start: $remote_fs $syslog
+# Required-Stop: $remote_fs $syslog
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Hyper-V volume shadow copy service (VSS) daemon
+### END INIT INFO
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC="Hyper-V volume shadow copy service (VSS) daemon"
+NAME=hv_vss_daemon
+DAEMON=/usr/sbin/$NAME
+PIDFILE=/run/$NAME.pid
+SCRIPTNAME=/etc/init.d/hyperv-daemons.hv-vss-daemon
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+# Exit if the kernel device does not exist
+[ -e "/dev/vmbus/hv_vss" ] || exit 0
+
+# Load the VERBOSE setting and other rcS variables
+. /lib/init/vars.sh
+
+# Define LSB log_* functions.
+. /lib/lsb/init-functions
+
+#
+# Function that starts the daemon/service
+#
+do_start()
+{
+ # Return
+ # 0 if daemon has been started
+ # 1 if daemon was already running
+ # 2 if daemon could not be started
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
+ || return 1
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --background --make-pidfile -- -n \
+ || return 2
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop()
+{
+ # Return
+ # 0 if daemon has been stopped
+ # 1 if daemon was already stopped
+ # 2 if daemon could not be stopped
+ # other if a failure occurred
+ start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
+ [ "$?" = 2 ] && return 2
+ start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
+ RETVAL=$?
+ [ "$RETVAL" = 2 ] && return 2
+ # Many daemons don't delete their pidfiles when they exit.
+ rm -f $PIDFILE
+ return "$RETVAL"
+}
+
+case "$1" in
+ start)
+ [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
+ do_start
+ case "$?" in
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+ esac
+ ;;
+ stop)
+ [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
+ do_stop
+ case "$?" in
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+ esac
+ ;;
+ status)
+ status_of_proc -p "$PIDFILE" "$DAEMON" "$NAME"
+ ;;
+ restart|force-reload)
+ log_daemon_msg "Restarting $DESC" "$NAME"
+ do_stop
+ case "$?" in
+ 0|1)
+ do_start
+ case "$?" in
+ 0) log_end_msg 0 ;;
+ 1) log_end_msg 1 ;; # Old process is still running
+ *) log_end_msg 1 ;; # Failed to start
+ esac
+ ;;
+ *)
+ # Failed to stop
+ log_end_msg 1
+ ;;
+ esac
+ ;;
+ *)
+ echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
+ exit 3
+ ;;
+esac
+
+:
diff --git a/debian/hyperv-daemons.hv-vss-daemon.service b/debian/hyperv-daemons.hv-vss-daemon.service
new file mode 100644
index 000000000..e92da97e4
--- /dev/null
+++ b/debian/hyperv-daemons.hv-vss-daemon.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Hyper-V volume shadow copy service (VSS) daemon
+ConditionPathExists=/dev/vmbus/hv_vss
+
+[Service]
+ExecStart=/usr/sbin/hv_vss_daemon -n
+
+[Install]
+WantedBy=multi-user.target
diff --git a/debian/hyperv-daemons.install b/debian/hyperv-daemons.install
new file mode 100644
index 000000000..2c00a4a79
--- /dev/null
+++ b/debian/hyperv-daemons.install
@@ -0,0 +1 @@
+debian/hyperv-daemons.*.service lib/systemd/system/
diff --git a/debian/installer/kernel-versions b/debian/installer/kernel-versions
new file mode 100644
index 000000000..03af4584b
--- /dev/null
+++ b/debian/installer/kernel-versions
@@ -0,0 +1,35 @@
+# arch version flavour installedname suffix build-depends
+alpha - alpha-generic - y -
+amd64 - amd64 - - -
+arm64 - arm64 - - -
+armel - marvell - y -
+armhf - armmp - - -
+hppa - parisc - y -
+hppa - parisc64-smp - y -
+i386 - 686 - - -
+i386 - 686-pae - - -
+ia64 - itanium - - -
+m68k - m68k - y -
+mips - 4kc-malta - y -
+mips - octeon - y -
+mips64 - 5kc-malta - y -
+mips64 - octeon - y -
+mips64el - 5kc-malta - y -
+mips64el - loongson-3 - y -
+mips64el - octeon - y -
+mips64r6 - mips64r6 - y -
+mips64r6el - mips64r6el - y -
+mipsel - 4kc-malta - y -
+mipsel - loongson-3 - y -
+mipsel - octeon - y -
+mipsr6 - mips32r6 - y -
+mipsr6el - mips32r6el - y -
+powerpc - powerpc - - -
+powerpc - powerpc64 - - -
+ppc64 - powerpc64 - - -
+ppc64el - powerpc64le - - -
+riscv64 - riscv64 - - -
+s390x - s390x - - -
+sh4 - sh7751r - y -
+sh4 - sh7785lcr - y -
+sparc64 - sparc64 - - -
diff --git a/debian/installer/modules/acpi-modules b/debian/installer/modules/acpi-modules
new file mode 100644
index 000000000..d4723a10b
--- /dev/null
+++ b/debian/installer/modules/acpi-modules
@@ -0,0 +1,2 @@
+fan
+thermal
diff --git a/debian/installer/modules/affs-modules b/debian/installer/modules/affs-modules
new file mode 100644
index 000000000..ac2825911
--- /dev/null
+++ b/debian/installer/modules/affs-modules
@@ -0,0 +1 @@
+affs
diff --git a/debian/installer/modules/alpha-generic/ata-modules b/debian/installer/modules/alpha-generic/ata-modules
new file mode 100644
index 000000000..b81c0f38b
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/ata-modules
@@ -0,0 +1 @@
+#include <ata-modules>
diff --git a/debian/installer/modules/alpha-generic/btrfs-modules b/debian/installer/modules/alpha-generic/btrfs-modules
new file mode 100644
index 000000000..e261e1388
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/btrfs-modules
@@ -0,0 +1 @@
+#include <btrfs-modules>
diff --git a/debian/installer/modules/alpha-generic/cdrom-core-modules b/debian/installer/modules/alpha-generic/cdrom-core-modules
new file mode 100644
index 000000000..3ff69b48f
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/cdrom-core-modules
@@ -0,0 +1 @@
+#include <cdrom-core-modules>
diff --git a/debian/installer/modules/alpha-generic/compress-modules b/debian/installer/modules/alpha-generic/compress-modules
new file mode 100644
index 000000000..804616619
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/compress-modules
@@ -0,0 +1 @@
+#include <compress-modules>
diff --git a/debian/installer/modules/alpha-generic/crc-modules b/debian/installer/modules/alpha-generic/crc-modules
new file mode 100644
index 000000000..7e00de705
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/crc-modules
@@ -0,0 +1 @@
+#include <crc-modules>
diff --git a/debian/installer/modules/alpha-generic/crypto-dm-modules b/debian/installer/modules/alpha-generic/crypto-dm-modules
new file mode 100644
index 000000000..4c8f2354c
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/crypto-dm-modules
@@ -0,0 +1 @@
+#include <crypto-dm-modules>
diff --git a/debian/installer/modules/alpha-generic/crypto-modules b/debian/installer/modules/alpha-generic/crypto-modules
new file mode 100644
index 000000000..3a1e862b4
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
diff --git a/debian/installer/modules/alpha-generic/event-modules b/debian/installer/modules/alpha-generic/event-modules
new file mode 100644
index 000000000..f8819afd3
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/event-modules
@@ -0,0 +1 @@
+#include <event-modules>
diff --git a/debian/installer/modules/alpha-generic/ext4-modules b/debian/installer/modules/alpha-generic/ext4-modules
new file mode 100644
index 000000000..394c577ce
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/ext4-modules
@@ -0,0 +1 @@
+#include <ext4-modules>
diff --git a/debian/installer/modules/alpha-generic/fat-modules b/debian/installer/modules/alpha-generic/fat-modules
new file mode 100644
index 000000000..274584eb6
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
diff --git a/debian/installer/modules/alpha-generic/fb-modules b/debian/installer/modules/alpha-generic/fb-modules
new file mode 100644
index 000000000..aba524d90
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/fb-modules
@@ -0,0 +1 @@
+#include <fb-modules>
diff --git a/debian/installer/modules/alpha-generic/fuse-modules b/debian/installer/modules/alpha-generic/fuse-modules
new file mode 100644
index 000000000..0b6ba0c8c
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/fuse-modules
@@ -0,0 +1 @@
+#include <fuse-modules>
diff --git a/debian/installer/modules/alpha-generic/i2c-modules b/debian/installer/modules/alpha-generic/i2c-modules
new file mode 100644
index 000000000..203a607e7
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/i2c-modules
@@ -0,0 +1 @@
+#include <i2c-modules>
diff --git a/debian/installer/modules/alpha-generic/input-modules b/debian/installer/modules/alpha-generic/input-modules
new file mode 100644
index 000000000..5ecb595a4
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
diff --git a/debian/installer/modules/alpha-generic/isofs-modules b/debian/installer/modules/alpha-generic/isofs-modules
new file mode 100644
index 000000000..da4fa9a3c
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/isofs-modules
@@ -0,0 +1 @@
+#include <isofs-modules>
diff --git a/debian/installer/modules/alpha-generic/jfs-modules b/debian/installer/modules/alpha-generic/jfs-modules
new file mode 100644
index 000000000..7e4d912b9
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/jfs-modules
@@ -0,0 +1 @@
+#include <jfs-modules>
diff --git a/debian/installer/modules/alpha-generic/kernel-image b/debian/installer/modules/alpha-generic/kernel-image
new file mode 100644
index 000000000..1d11b1921
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
diff --git a/debian/installer/modules/alpha-generic/loop-modules b/debian/installer/modules/alpha-generic/loop-modules
new file mode 100644
index 000000000..c1c948fa3
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/loop-modules
@@ -0,0 +1 @@
+#include <loop-modules>
diff --git a/debian/installer/modules/alpha-generic/md-modules b/debian/installer/modules/alpha-generic/md-modules
new file mode 100644
index 000000000..26115e10b
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
diff --git a/debian/installer/modules/alpha-generic/mouse-modules b/debian/installer/modules/alpha-generic/mouse-modules
new file mode 100644
index 000000000..15fcb00ea
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
diff --git a/debian/installer/modules/alpha-generic/multipath-modules b/debian/installer/modules/alpha-generic/multipath-modules
new file mode 100644
index 000000000..a8b69b253
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
diff --git a/debian/installer/modules/alpha-generic/nbd-modules b/debian/installer/modules/alpha-generic/nbd-modules
new file mode 100644
index 000000000..3c9b3e5d4
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/nbd-modules
@@ -0,0 +1 @@
+#include <nbd-modules>
diff --git a/debian/installer/modules/alpha-generic/nic-modules b/debian/installer/modules/alpha-generic/nic-modules
new file mode 100644
index 000000000..2512e8395
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
diff --git a/debian/installer/modules/alpha-generic/nic-pcmcia-modules b/debian/installer/modules/alpha-generic/nic-pcmcia-modules
new file mode 100644
index 000000000..7a0702cd5
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/nic-pcmcia-modules
@@ -0,0 +1 @@
+#include <nic-pcmcia-modules>
diff --git a/debian/installer/modules/alpha-generic/nic-shared-modules b/debian/installer/modules/alpha-generic/nic-shared-modules
new file mode 100644
index 000000000..cc84b14dc
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
diff --git a/debian/installer/modules/alpha-generic/nic-usb-modules b/debian/installer/modules/alpha-generic/nic-usb-modules
new file mode 100644
index 000000000..c479669b4
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
diff --git a/debian/installer/modules/alpha-generic/nic-wireless-modules b/debian/installer/modules/alpha-generic/nic-wireless-modules
new file mode 100644
index 000000000..53fd18d7f
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/nic-wireless-modules
@@ -0,0 +1 @@
+#include <nic-wireless-modules>
diff --git a/debian/installer/modules/alpha-generic/pata-modules b/debian/installer/modules/alpha-generic/pata-modules
new file mode 100644
index 000000000..b0cd6337a
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/pata-modules
@@ -0,0 +1 @@
+#include <pata-modules>
diff --git a/debian/installer/modules/alpha-generic/pcmcia-modules b/debian/installer/modules/alpha-generic/pcmcia-modules
new file mode 100644
index 000000000..2bb5350fe
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/pcmcia-modules
@@ -0,0 +1 @@
+#include <pcmcia-modules>
diff --git a/debian/installer/modules/alpha-generic/ppp-modules b/debian/installer/modules/alpha-generic/ppp-modules
new file mode 100644
index 000000000..1f26aa1ee
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
diff --git a/debian/installer/modules/alpha-generic/sata-modules b/debian/installer/modules/alpha-generic/sata-modules
new file mode 100644
index 000000000..01318c258
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
diff --git a/debian/installer/modules/alpha-generic/scsi-core-modules b/debian/installer/modules/alpha-generic/scsi-core-modules
new file mode 100644
index 000000000..dd65d6614
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/scsi-core-modules
@@ -0,0 +1 @@
+#include <scsi-core-modules>
diff --git a/debian/installer/modules/alpha-generic/scsi-modules b/debian/installer/modules/alpha-generic/scsi-modules
new file mode 100644
index 000000000..8909dfb79
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
diff --git a/debian/installer/modules/alpha-generic/scsi-nic-modules b/debian/installer/modules/alpha-generic/scsi-nic-modules
new file mode 100644
index 000000000..089dd5dc6
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/scsi-nic-modules
@@ -0,0 +1 @@
+#include <scsi-nic-modules>
diff --git a/debian/installer/modules/alpha-generic/serial-modules b/debian/installer/modules/alpha-generic/serial-modules
new file mode 100644
index 000000000..6ab8b8c35
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/serial-modules
@@ -0,0 +1 @@
+#include <serial-modules>
diff --git a/debian/installer/modules/alpha-generic/squashfs-modules b/debian/installer/modules/alpha-generic/squashfs-modules
new file mode 100644
index 000000000..42d77887a
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/squashfs-modules
@@ -0,0 +1 @@
+#include <squashfs-modules>
diff --git a/debian/installer/modules/alpha-generic/srm-modules b/debian/installer/modules/alpha-generic/srm-modules
new file mode 100644
index 000000000..016011997
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/srm-modules
@@ -0,0 +1 @@
+srm_env
diff --git a/debian/installer/modules/alpha-generic/usb-modules b/debian/installer/modules/alpha-generic/usb-modules
new file mode 100644
index 000000000..c598dedd8
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
diff --git a/debian/installer/modules/alpha-generic/usb-serial-modules b/debian/installer/modules/alpha-generic/usb-serial-modules
new file mode 100644
index 000000000..c0a0dc3bd
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/usb-serial-modules
@@ -0,0 +1 @@
+#include <usb-serial-modules>
diff --git a/debian/installer/modules/alpha-generic/usb-storage-modules b/debian/installer/modules/alpha-generic/usb-storage-modules
new file mode 100644
index 000000000..8c5e81b55
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/usb-storage-modules
@@ -0,0 +1 @@
+#include <usb-storage-modules>
diff --git a/debian/installer/modules/alpha-generic/xfs-modules b/debian/installer/modules/alpha-generic/xfs-modules
new file mode 100644
index 000000000..98374e2bb
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/xfs-modules
@@ -0,0 +1 @@
+#include <xfs-modules>
diff --git a/debian/installer/modules/alpha-generic/zlib-modules b/debian/installer/modules/alpha-generic/zlib-modules
new file mode 100644
index 000000000..e02ad64bf
--- /dev/null
+++ b/debian/installer/modules/alpha-generic/zlib-modules
@@ -0,0 +1 @@
+#include <zlib-modules>
diff --git a/debian/installer/modules/amd64/acpi-modules b/debian/installer/modules/amd64/acpi-modules
new file mode 100644
index 000000000..307528fb1
--- /dev/null
+++ b/debian/installer/modules/amd64/acpi-modules
@@ -0,0 +1,2 @@
+#include <acpi-modules>
+
diff --git a/debian/installer/modules/amd64/ata-modules b/debian/installer/modules/amd64/ata-modules
new file mode 100644
index 000000000..9409e7cde
--- /dev/null
+++ b/debian/installer/modules/amd64/ata-modules
@@ -0,0 +1,2 @@
+#include <ata-modules>
+
diff --git a/debian/installer/modules/amd64/btrfs-modules b/debian/installer/modules/amd64/btrfs-modules
new file mode 100644
index 000000000..e261e1388
--- /dev/null
+++ b/debian/installer/modules/amd64/btrfs-modules
@@ -0,0 +1 @@
+#include <btrfs-modules>
diff --git a/debian/installer/modules/amd64/cdrom-core-modules b/debian/installer/modules/amd64/cdrom-core-modules
new file mode 100644
index 000000000..e264d7aa3
--- /dev/null
+++ b/debian/installer/modules/amd64/cdrom-core-modules
@@ -0,0 +1,2 @@
+#include <cdrom-core-modules>
+
diff --git a/debian/installer/modules/amd64/compress-modules b/debian/installer/modules/amd64/compress-modules
new file mode 100644
index 000000000..804616619
--- /dev/null
+++ b/debian/installer/modules/amd64/compress-modules
@@ -0,0 +1 @@
+#include <compress-modules>
diff --git a/debian/installer/modules/amd64/crc-modules b/debian/installer/modules/amd64/crc-modules
new file mode 100644
index 000000000..7e00de705
--- /dev/null
+++ b/debian/installer/modules/amd64/crc-modules
@@ -0,0 +1 @@
+#include <crc-modules>
diff --git a/debian/installer/modules/amd64/crypto-dm-modules b/debian/installer/modules/amd64/crypto-dm-modules
new file mode 100644
index 000000000..4c8f2354c
--- /dev/null
+++ b/debian/installer/modules/amd64/crypto-dm-modules
@@ -0,0 +1 @@
+#include <crypto-dm-modules>
diff --git a/debian/installer/modules/amd64/crypto-modules b/debian/installer/modules/amd64/crypto-modules
new file mode 100644
index 000000000..3a1e862b4
--- /dev/null
+++ b/debian/installer/modules/amd64/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
diff --git a/debian/installer/modules/amd64/efi-modules b/debian/installer/modules/amd64/efi-modules
new file mode 100644
index 000000000..e1dc05e8f
--- /dev/null
+++ b/debian/installer/modules/amd64/efi-modules
@@ -0,0 +1 @@
+#include <efi-modules>
diff --git a/debian/installer/modules/amd64/event-modules b/debian/installer/modules/amd64/event-modules
new file mode 100644
index 000000000..f8819afd3
--- /dev/null
+++ b/debian/installer/modules/amd64/event-modules
@@ -0,0 +1 @@
+#include <event-modules>
diff --git a/debian/installer/modules/amd64/ext4-modules b/debian/installer/modules/amd64/ext4-modules
new file mode 100644
index 000000000..394c577ce
--- /dev/null
+++ b/debian/installer/modules/amd64/ext4-modules
@@ -0,0 +1 @@
+#include <ext4-modules>
diff --git a/debian/installer/modules/amd64/fat-modules b/debian/installer/modules/amd64/fat-modules
new file mode 100644
index 000000000..cce8fd30c
--- /dev/null
+++ b/debian/installer/modules/amd64/fat-modules
@@ -0,0 +1,2 @@
+#include <fat-modules>
+
diff --git a/debian/installer/modules/amd64/fb-modules b/debian/installer/modules/amd64/fb-modules
new file mode 100644
index 000000000..8e9892fea
--- /dev/null
+++ b/debian/installer/modules/amd64/fb-modules
@@ -0,0 +1,4 @@
+#include <fb-modules>
+
+vesafb ?
+vga16fb
diff --git a/debian/installer/modules/amd64/firewire-core-modules b/debian/installer/modules/amd64/firewire-core-modules
new file mode 100644
index 000000000..dcac80af9
--- /dev/null
+++ b/debian/installer/modules/amd64/firewire-core-modules
@@ -0,0 +1 @@
+#include <firewire-core-modules>
diff --git a/debian/installer/modules/amd64/fuse-modules b/debian/installer/modules/amd64/fuse-modules
new file mode 100644
index 000000000..0b6ba0c8c
--- /dev/null
+++ b/debian/installer/modules/amd64/fuse-modules
@@ -0,0 +1 @@
+#include <fuse-modules>
diff --git a/debian/installer/modules/amd64/i2c-modules b/debian/installer/modules/amd64/i2c-modules
new file mode 100644
index 000000000..203a607e7
--- /dev/null
+++ b/debian/installer/modules/amd64/i2c-modules
@@ -0,0 +1 @@
+#include <i2c-modules>
diff --git a/debian/installer/modules/amd64/input-modules b/debian/installer/modules/amd64/input-modules
new file mode 100644
index 000000000..5ecb595a4
--- /dev/null
+++ b/debian/installer/modules/amd64/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
diff --git a/debian/installer/modules/amd64/isofs-modules b/debian/installer/modules/amd64/isofs-modules
new file mode 100644
index 000000000..da4fa9a3c
--- /dev/null
+++ b/debian/installer/modules/amd64/isofs-modules
@@ -0,0 +1 @@
+#include <isofs-modules>
diff --git a/debian/installer/modules/amd64/jfs-modules b/debian/installer/modules/amd64/jfs-modules
new file mode 100644
index 000000000..7e4d912b9
--- /dev/null
+++ b/debian/installer/modules/amd64/jfs-modules
@@ -0,0 +1 @@
+#include <jfs-modules>
diff --git a/debian/installer/modules/amd64/kernel-image b/debian/installer/modules/amd64/kernel-image
new file mode 100644
index 000000000..1d11b1921
--- /dev/null
+++ b/debian/installer/modules/amd64/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
diff --git a/debian/installer/modules/amd64/loop-modules b/debian/installer/modules/amd64/loop-modules
new file mode 100644
index 000000000..164467713
--- /dev/null
+++ b/debian/installer/modules/amd64/loop-modules
@@ -0,0 +1,2 @@
+#include <loop-modules>
+
diff --git a/debian/installer/modules/amd64/md-modules b/debian/installer/modules/amd64/md-modules
new file mode 100644
index 000000000..ade088ddb
--- /dev/null
+++ b/debian/installer/modules/amd64/md-modules
@@ -0,0 +1,2 @@
+#include <md-modules>
+
diff --git a/debian/installer/modules/amd64/mmc-core-modules b/debian/installer/modules/amd64/mmc-core-modules
new file mode 100644
index 000000000..7bf38465c
--- /dev/null
+++ b/debian/installer/modules/amd64/mmc-core-modules
@@ -0,0 +1 @@
+#include <mmc-core-modules>
diff --git a/debian/installer/modules/amd64/mmc-modules b/debian/installer/modules/amd64/mmc-modules
new file mode 100644
index 000000000..dadfd5334
--- /dev/null
+++ b/debian/installer/modules/amd64/mmc-modules
@@ -0,0 +1 @@
+#include <mmc-modules>
diff --git a/debian/installer/modules/amd64/mouse-modules b/debian/installer/modules/amd64/mouse-modules
new file mode 100644
index 000000000..15fcb00ea
--- /dev/null
+++ b/debian/installer/modules/amd64/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
diff --git a/debian/installer/modules/amd64/mtd-core-modules b/debian/installer/modules/amd64/mtd-core-modules
new file mode 100644
index 000000000..28fdada60
--- /dev/null
+++ b/debian/installer/modules/amd64/mtd-core-modules
@@ -0,0 +1 @@
+#include <mtd-core-modules>
diff --git a/debian/installer/modules/amd64/multipath-modules b/debian/installer/modules/amd64/multipath-modules
new file mode 100644
index 000000000..a8b69b253
--- /dev/null
+++ b/debian/installer/modules/amd64/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
diff --git a/debian/installer/modules/amd64/nbd-modules b/debian/installer/modules/amd64/nbd-modules
new file mode 100644
index 000000000..3c9b3e5d4
--- /dev/null
+++ b/debian/installer/modules/amd64/nbd-modules
@@ -0,0 +1 @@
+#include <nbd-modules>
diff --git a/debian/installer/modules/amd64/nic-modules b/debian/installer/modules/amd64/nic-modules
new file mode 100644
index 000000000..2512e8395
--- /dev/null
+++ b/debian/installer/modules/amd64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
diff --git a/debian/installer/modules/amd64/nic-pcmcia-modules b/debian/installer/modules/amd64/nic-pcmcia-modules
new file mode 100644
index 000000000..7a0702cd5
--- /dev/null
+++ b/debian/installer/modules/amd64/nic-pcmcia-modules
@@ -0,0 +1 @@
+#include <nic-pcmcia-modules>
diff --git a/debian/installer/modules/amd64/nic-shared-modules b/debian/installer/modules/amd64/nic-shared-modules
new file mode 100644
index 000000000..cc84b14dc
--- /dev/null
+++ b/debian/installer/modules/amd64/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
diff --git a/debian/installer/modules/amd64/nic-usb-modules b/debian/installer/modules/amd64/nic-usb-modules
new file mode 100644
index 000000000..c479669b4
--- /dev/null
+++ b/debian/installer/modules/amd64/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
diff --git a/debian/installer/modules/amd64/nic-wireless-modules b/debian/installer/modules/amd64/nic-wireless-modules
new file mode 100644
index 000000000..53fd18d7f
--- /dev/null
+++ b/debian/installer/modules/amd64/nic-wireless-modules
@@ -0,0 +1 @@
+#include <nic-wireless-modules>
diff --git a/debian/installer/modules/amd64/pata-modules b/debian/installer/modules/amd64/pata-modules
new file mode 100644
index 000000000..8c4e514ae
--- /dev/null
+++ b/debian/installer/modules/amd64/pata-modules
@@ -0,0 +1,2 @@
+#include <pata-modules>
+
diff --git a/debian/installer/modules/amd64/pcmcia-modules b/debian/installer/modules/amd64/pcmcia-modules
new file mode 100644
index 000000000..2bb5350fe
--- /dev/null
+++ b/debian/installer/modules/amd64/pcmcia-modules
@@ -0,0 +1 @@
+#include <pcmcia-modules>
diff --git a/debian/installer/modules/amd64/pcmcia-storage-modules b/debian/installer/modules/amd64/pcmcia-storage-modules
new file mode 100644
index 000000000..f73ae5bb9
--- /dev/null
+++ b/debian/installer/modules/amd64/pcmcia-storage-modules
@@ -0,0 +1 @@
+#include <pcmcia-storage-modules>
diff --git a/debian/installer/modules/amd64/ppp-modules b/debian/installer/modules/amd64/ppp-modules
new file mode 100644
index 000000000..f1ae9b3d1
--- /dev/null
+++ b/debian/installer/modules/amd64/ppp-modules
@@ -0,0 +1,2 @@
+#include <ppp-modules>
+
diff --git a/debian/installer/modules/amd64/sata-modules b/debian/installer/modules/amd64/sata-modules
new file mode 100644
index 000000000..01318c258
--- /dev/null
+++ b/debian/installer/modules/amd64/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
diff --git a/debian/installer/modules/amd64/scsi-core-modules b/debian/installer/modules/amd64/scsi-core-modules
new file mode 100644
index 000000000..778a022fa
--- /dev/null
+++ b/debian/installer/modules/amd64/scsi-core-modules
@@ -0,0 +1,4 @@
+#include <scsi-core-modules>
+
+# Needed by hv_storvsc in hyperv-modules as well as scsi-modules
+scsi_transport_fc
diff --git a/debian/installer/modules/amd64/scsi-modules b/debian/installer/modules/amd64/scsi-modules
new file mode 100644
index 000000000..9b1fa27b9
--- /dev/null
+++ b/debian/installer/modules/amd64/scsi-modules
@@ -0,0 +1,3 @@
+#include <scsi-modules>
+# To support nvme
+vmd
diff --git a/debian/installer/modules/amd64/scsi-nic-modules b/debian/installer/modules/amd64/scsi-nic-modules
new file mode 100644
index 000000000..089dd5dc6
--- /dev/null
+++ b/debian/installer/modules/amd64/scsi-nic-modules
@@ -0,0 +1 @@
+#include <scsi-nic-modules>
diff --git a/debian/installer/modules/amd64/serial-modules b/debian/installer/modules/amd64/serial-modules
new file mode 100644
index 000000000..6ab8b8c35
--- /dev/null
+++ b/debian/installer/modules/amd64/serial-modules
@@ -0,0 +1 @@
+#include <serial-modules>
diff --git a/debian/installer/modules/amd64/sound-modules b/debian/installer/modules/amd64/sound-modules
new file mode 100644
index 000000000..68395ab3d
--- /dev/null
+++ b/debian/installer/modules/amd64/sound-modules
@@ -0,0 +1 @@
+#include <sound-modules>
diff --git a/debian/installer/modules/amd64/speakup-modules b/debian/installer/modules/amd64/speakup-modules
new file mode 100644
index 000000000..29592721a
--- /dev/null
+++ b/debian/installer/modules/amd64/speakup-modules
@@ -0,0 +1 @@
+#include <speakup-modules>
diff --git a/debian/installer/modules/amd64/squashfs-modules b/debian/installer/modules/amd64/squashfs-modules
new file mode 100644
index 000000000..42d77887a
--- /dev/null
+++ b/debian/installer/modules/amd64/squashfs-modules
@@ -0,0 +1 @@
+#include <squashfs-modules>
diff --git a/debian/installer/modules/amd64/udf-modules b/debian/installer/modules/amd64/udf-modules
new file mode 100644
index 000000000..b90d7ee9b
--- /dev/null
+++ b/debian/installer/modules/amd64/udf-modules
@@ -0,0 +1 @@
+#include <udf-modules>
diff --git a/debian/installer/modules/amd64/uinput-modules b/debian/installer/modules/amd64/uinput-modules
new file mode 100644
index 000000000..58a833779
--- /dev/null
+++ b/debian/installer/modules/amd64/uinput-modules
@@ -0,0 +1 @@
+#include <uinput-modules>
diff --git a/debian/installer/modules/amd64/usb-modules b/debian/installer/modules/amd64/usb-modules
new file mode 100644
index 000000000..c598dedd8
--- /dev/null
+++ b/debian/installer/modules/amd64/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
diff --git a/debian/installer/modules/amd64/usb-serial-modules b/debian/installer/modules/amd64/usb-serial-modules
new file mode 100644
index 000000000..c0a0dc3bd
--- /dev/null
+++ b/debian/installer/modules/amd64/usb-serial-modules
@@ -0,0 +1 @@
+#include <usb-serial-modules>
diff --git a/debian/installer/modules/amd64/usb-storage-modules b/debian/installer/modules/amd64/usb-storage-modules
new file mode 100644
index 000000000..272d95e2e
--- /dev/null
+++ b/debian/installer/modules/amd64/usb-storage-modules
@@ -0,0 +1,2 @@
+#include <usb-storage-modules>
+
diff --git a/debian/installer/modules/amd64/xfs-modules b/debian/installer/modules/amd64/xfs-modules
new file mode 100644
index 000000000..c020b5d39
--- /dev/null
+++ b/debian/installer/modules/amd64/xfs-modules
@@ -0,0 +1,2 @@
+#include <xfs-modules>
+
diff --git a/debian/installer/modules/arm64/ata-modules b/debian/installer/modules/arm64/ata-modules
new file mode 100644
index 000000000..9409e7cde
--- /dev/null
+++ b/debian/installer/modules/arm64/ata-modules
@@ -0,0 +1,2 @@
+#include <ata-modules>
+
diff --git a/debian/installer/modules/arm64/btrfs-modules b/debian/installer/modules/arm64/btrfs-modules
new file mode 100644
index 000000000..e261e1388
--- /dev/null
+++ b/debian/installer/modules/arm64/btrfs-modules
@@ -0,0 +1 @@
+#include <btrfs-modules>
diff --git a/debian/installer/modules/arm64/cdrom-core-modules b/debian/installer/modules/arm64/cdrom-core-modules
new file mode 100644
index 000000000..e264d7aa3
--- /dev/null
+++ b/debian/installer/modules/arm64/cdrom-core-modules
@@ -0,0 +1,2 @@
+#include <cdrom-core-modules>
+
diff --git a/debian/installer/modules/arm64/compress-modules b/debian/installer/modules/arm64/compress-modules
new file mode 100644
index 000000000..804616619
--- /dev/null
+++ b/debian/installer/modules/arm64/compress-modules
@@ -0,0 +1 @@
+#include <compress-modules>
diff --git a/debian/installer/modules/arm64/crc-modules b/debian/installer/modules/arm64/crc-modules
new file mode 100644
index 000000000..7e00de705
--- /dev/null
+++ b/debian/installer/modules/arm64/crc-modules
@@ -0,0 +1 @@
+#include <crc-modules>
diff --git a/debian/installer/modules/arm64/crypto-dm-modules b/debian/installer/modules/arm64/crypto-dm-modules
new file mode 100644
index 000000000..4c8f2354c
--- /dev/null
+++ b/debian/installer/modules/arm64/crypto-dm-modules
@@ -0,0 +1 @@
+#include <crypto-dm-modules>
diff --git a/debian/installer/modules/arm64/crypto-modules b/debian/installer/modules/arm64/crypto-modules
new file mode 100644
index 000000000..3a1e862b4
--- /dev/null
+++ b/debian/installer/modules/arm64/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
diff --git a/debian/installer/modules/arm64/efi-modules b/debian/installer/modules/arm64/efi-modules
new file mode 100644
index 000000000..e1dc05e8f
--- /dev/null
+++ b/debian/installer/modules/arm64/efi-modules
@@ -0,0 +1 @@
+#include <efi-modules>
diff --git a/debian/installer/modules/arm64/event-modules b/debian/installer/modules/arm64/event-modules
new file mode 100644
index 000000000..f8819afd3
--- /dev/null
+++ b/debian/installer/modules/arm64/event-modules
@@ -0,0 +1 @@
+#include <event-modules>
diff --git a/debian/installer/modules/arm64/ext4-modules b/debian/installer/modules/arm64/ext4-modules
new file mode 100644
index 000000000..394c577ce
--- /dev/null
+++ b/debian/installer/modules/arm64/ext4-modules
@@ -0,0 +1 @@
+#include <ext4-modules>
diff --git a/debian/installer/modules/arm64/fat-modules b/debian/installer/modules/arm64/fat-modules
new file mode 100644
index 000000000..274584eb6
--- /dev/null
+++ b/debian/installer/modules/arm64/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
diff --git a/debian/installer/modules/arm64/fb-modules b/debian/installer/modules/arm64/fb-modules
new file mode 100644
index 000000000..30d6546dc
--- /dev/null
+++ b/debian/installer/modules/arm64/fb-modules
@@ -0,0 +1,11 @@
+#include <fb-modules>
+
+ast
+tegra-drm
+rockchipdrm
+hibmc-drm
+
+# For panel/backlight on some chromeos devices
+panel-simple
+pwm_bl
+pwm-cros-ec
diff --git a/debian/installer/modules/arm64/fuse-modules b/debian/installer/modules/arm64/fuse-modules
new file mode 100644
index 000000000..0b6ba0c8c
--- /dev/null
+++ b/debian/installer/modules/arm64/fuse-modules
@@ -0,0 +1 @@
+#include <fuse-modules>
diff --git a/debian/installer/modules/arm64/i2c-modules b/debian/installer/modules/arm64/i2c-modules
new file mode 100644
index 000000000..bfe65b4cd
--- /dev/null
+++ b/debian/installer/modules/arm64/i2c-modules
@@ -0,0 +1,2 @@
+#include <i2c-modules>
+i2c-tegra
diff --git a/debian/installer/modules/arm64/input-modules b/debian/installer/modules/arm64/input-modules
new file mode 100644
index 000000000..5ecb595a4
--- /dev/null
+++ b/debian/installer/modules/arm64/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
diff --git a/debian/installer/modules/arm64/isofs-modules b/debian/installer/modules/arm64/isofs-modules
new file mode 100644
index 000000000..da4fa9a3c
--- /dev/null
+++ b/debian/installer/modules/arm64/isofs-modules
@@ -0,0 +1 @@
+#include <isofs-modules>
diff --git a/debian/installer/modules/arm64/jfs-modules b/debian/installer/modules/arm64/jfs-modules
new file mode 100644
index 000000000..7e4d912b9
--- /dev/null
+++ b/debian/installer/modules/arm64/jfs-modules
@@ -0,0 +1 @@
+#include <jfs-modules>
diff --git a/debian/installer/modules/arm64/kernel-image b/debian/installer/modules/arm64/kernel-image
new file mode 100644
index 000000000..e9971cc90
--- /dev/null
+++ b/debian/installer/modules/arm64/kernel-image
@@ -0,0 +1,25 @@
+#include <kernel-image>
+
+# Multifunction devices
+drivers/mfd/**
+
+# Regulators
+drivers/regulator/**
+
+# NIC,sata, and USB on Armada 8K
+phy-mvebu-cp110-comphy ?
+
+# SoC modules
+drivers/soc/**
+
+# Watchdog needed for reboot
+sunxi_wdt ?
+
+# SPI devices
+drivers/spi/**
+
+# For cros_ec mfd device
+cros_ec_spi ?
+
+# PCIe PHYs
+phy-rockchip-pcie ?
diff --git a/debian/installer/modules/arm64/leds-modules b/debian/installer/modules/arm64/leds-modules
new file mode 100644
index 000000000..85d9f2565
--- /dev/null
+++ b/debian/installer/modules/arm64/leds-modules
@@ -0,0 +1 @@
+#include <leds-modules>
diff --git a/debian/installer/modules/arm64/loop-modules b/debian/installer/modules/arm64/loop-modules
new file mode 100644
index 000000000..c1c948fa3
--- /dev/null
+++ b/debian/installer/modules/arm64/loop-modules
@@ -0,0 +1 @@
+#include <loop-modules>
diff --git a/debian/installer/modules/arm64/md-modules b/debian/installer/modules/arm64/md-modules
new file mode 100644
index 000000000..26115e10b
--- /dev/null
+++ b/debian/installer/modules/arm64/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
diff --git a/debian/installer/modules/arm64/mmc-modules b/debian/installer/modules/arm64/mmc-modules
new file mode 100644
index 000000000..c9f12f3b9
--- /dev/null
+++ b/debian/installer/modules/arm64/mmc-modules
@@ -0,0 +1,3 @@
+#include <mmc-modules>
+
+phy-rockchip-emmc
diff --git a/debian/installer/modules/arm64/mtd-core-modules b/debian/installer/modules/arm64/mtd-core-modules
new file mode 100644
index 000000000..28fdada60
--- /dev/null
+++ b/debian/installer/modules/arm64/mtd-core-modules
@@ -0,0 +1 @@
+#include <mtd-core-modules>
diff --git a/debian/installer/modules/arm64/multipath-modules b/debian/installer/modules/arm64/multipath-modules
new file mode 100644
index 000000000..a8b69b253
--- /dev/null
+++ b/debian/installer/modules/arm64/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
diff --git a/debian/installer/modules/arm64/nbd-modules b/debian/installer/modules/arm64/nbd-modules
new file mode 100644
index 000000000..3c9b3e5d4
--- /dev/null
+++ b/debian/installer/modules/arm64/nbd-modules
@@ -0,0 +1 @@
+#include <nbd-modules>
diff --git a/debian/installer/modules/arm64/nic-modules b/debian/installer/modules/arm64/nic-modules
new file mode 100644
index 000000000..2512e8395
--- /dev/null
+++ b/debian/installer/modules/arm64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
diff --git a/debian/installer/modules/arm64/nic-shared-modules b/debian/installer/modules/arm64/nic-shared-modules
new file mode 100644
index 000000000..cc84b14dc
--- /dev/null
+++ b/debian/installer/modules/arm64/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
diff --git a/debian/installer/modules/arm64/nic-usb-modules b/debian/installer/modules/arm64/nic-usb-modules
new file mode 100644
index 000000000..c479669b4
--- /dev/null
+++ b/debian/installer/modules/arm64/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
diff --git a/debian/installer/modules/arm64/nic-wireless-modules b/debian/installer/modules/arm64/nic-wireless-modules
new file mode 100644
index 000000000..53fd18d7f
--- /dev/null
+++ b/debian/installer/modules/arm64/nic-wireless-modules
@@ -0,0 +1 @@
+#include <nic-wireless-modules>
diff --git a/debian/installer/modules/arm64/ppp-modules b/debian/installer/modules/arm64/ppp-modules
new file mode 100644
index 000000000..1f26aa1ee
--- /dev/null
+++ b/debian/installer/modules/arm64/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
diff --git a/debian/installer/modules/arm64/sata-modules b/debian/installer/modules/arm64/sata-modules
new file mode 100644
index 000000000..740a93c36
--- /dev/null
+++ b/debian/installer/modules/arm64/sata-modules
@@ -0,0 +1,4 @@
+#include <sata-modules>
+phy-qcom-apq8064-sata
+phy-qcom-ipq806x-sata
+phy-xgene
diff --git a/debian/installer/modules/arm64/scsi-core-modules b/debian/installer/modules/arm64/scsi-core-modules
new file mode 100644
index 000000000..dd65d6614
--- /dev/null
+++ b/debian/installer/modules/arm64/scsi-core-modules
@@ -0,0 +1 @@
+#include <scsi-core-modules>
diff --git a/debian/installer/modules/arm64/scsi-modules b/debian/installer/modules/arm64/scsi-modules
new file mode 100644
index 000000000..8909dfb79
--- /dev/null
+++ b/debian/installer/modules/arm64/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
diff --git a/debian/installer/modules/arm64/scsi-nic-modules b/debian/installer/modules/arm64/scsi-nic-modules
new file mode 100644
index 000000000..089dd5dc6
--- /dev/null
+++ b/debian/installer/modules/arm64/scsi-nic-modules
@@ -0,0 +1 @@
+#include <scsi-nic-modules>
diff --git a/debian/installer/modules/arm64/squashfs-modules b/debian/installer/modules/arm64/squashfs-modules
new file mode 100644
index 000000000..42d77887a
--- /dev/null
+++ b/debian/installer/modules/arm64/squashfs-modules
@@ -0,0 +1 @@
+#include <squashfs-modules>
diff --git a/debian/installer/modules/arm64/udf-modules b/debian/installer/modules/arm64/udf-modules
new file mode 100644
index 000000000..b90d7ee9b
--- /dev/null
+++ b/debian/installer/modules/arm64/udf-modules
@@ -0,0 +1 @@
+#include <udf-modules>
diff --git a/debian/installer/modules/arm64/uinput-modules b/debian/installer/modules/arm64/uinput-modules
new file mode 100644
index 000000000..58a833779
--- /dev/null
+++ b/debian/installer/modules/arm64/uinput-modules
@@ -0,0 +1 @@
+#include <uinput-modules>
diff --git a/debian/installer/modules/arm64/usb-modules b/debian/installer/modules/arm64/usb-modules
new file mode 100644
index 000000000..0fa8398ba
--- /dev/null
+++ b/debian/installer/modules/arm64/usb-modules
@@ -0,0 +1,6 @@
+#include <usb-modules>
+dwc2
+dwc3
+usb3503
+phy-rockchip-typec
+extcon-usbc-cros-ec
diff --git a/debian/installer/modules/arm64/usb-serial-modules b/debian/installer/modules/arm64/usb-serial-modules
new file mode 100644
index 000000000..c0a0dc3bd
--- /dev/null
+++ b/debian/installer/modules/arm64/usb-serial-modules
@@ -0,0 +1 @@
+#include <usb-serial-modules>
diff --git a/debian/installer/modules/arm64/usb-storage-modules b/debian/installer/modules/arm64/usb-storage-modules
new file mode 100644
index 000000000..8c5e81b55
--- /dev/null
+++ b/debian/installer/modules/arm64/usb-storage-modules
@@ -0,0 +1 @@
+#include <usb-storage-modules>
diff --git a/debian/installer/modules/arm64/xfs-modules b/debian/installer/modules/arm64/xfs-modules
new file mode 100644
index 000000000..98374e2bb
--- /dev/null
+++ b/debian/installer/modules/arm64/xfs-modules
@@ -0,0 +1 @@
+#include <xfs-modules>
diff --git a/debian/installer/modules/armel-marvell/btrfs-modules b/debian/installer/modules/armel-marvell/btrfs-modules
new file mode 100644
index 000000000..e261e1388
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/btrfs-modules
@@ -0,0 +1 @@
+#include <btrfs-modules>
diff --git a/debian/installer/modules/armel-marvell/cdrom-core-modules b/debian/installer/modules/armel-marvell/cdrom-core-modules
new file mode 100644
index 000000000..e264d7aa3
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/cdrom-core-modules
@@ -0,0 +1,2 @@
+#include <cdrom-core-modules>
+
diff --git a/debian/installer/modules/armel-marvell/compress-modules b/debian/installer/modules/armel-marvell/compress-modules
new file mode 100644
index 000000000..804616619
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/compress-modules
@@ -0,0 +1 @@
+#include <compress-modules>
diff --git a/debian/installer/modules/armel-marvell/crc-modules b/debian/installer/modules/armel-marvell/crc-modules
new file mode 100644
index 000000000..7e00de705
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/crc-modules
@@ -0,0 +1 @@
+#include <crc-modules>
diff --git a/debian/installer/modules/armel-marvell/crypto-dm-modules b/debian/installer/modules/armel-marvell/crypto-dm-modules
new file mode 100644
index 000000000..4c8f2354c
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/crypto-dm-modules
@@ -0,0 +1 @@
+#include <crypto-dm-modules>
diff --git a/debian/installer/modules/armel-marvell/crypto-modules b/debian/installer/modules/armel-marvell/crypto-modules
new file mode 100644
index 000000000..3a1e862b4
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
diff --git a/debian/installer/modules/armel-marvell/event-modules b/debian/installer/modules/armel-marvell/event-modules
new file mode 100644
index 000000000..0bc9f776d
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/event-modules
@@ -0,0 +1,2 @@
+#include <event-modules>
+gpio_keys
diff --git a/debian/installer/modules/armel-marvell/ext4-modules b/debian/installer/modules/armel-marvell/ext4-modules
new file mode 100644
index 000000000..394c577ce
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/ext4-modules
@@ -0,0 +1 @@
+#include <ext4-modules>
diff --git a/debian/installer/modules/armel-marvell/fat-modules b/debian/installer/modules/armel-marvell/fat-modules
new file mode 100644
index 000000000..274584eb6
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
diff --git a/debian/installer/modules/armel-marvell/fb-modules b/debian/installer/modules/armel-marvell/fb-modules
new file mode 100644
index 000000000..c860f1878
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/fb-modules
@@ -0,0 +1,2 @@
+udlfb
+xgifb
diff --git a/debian/installer/modules/armel-marvell/fuse-modules b/debian/installer/modules/armel-marvell/fuse-modules
new file mode 100644
index 000000000..0b6ba0c8c
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/fuse-modules
@@ -0,0 +1 @@
+#include <fuse-modules>
diff --git a/debian/installer/modules/armel-marvell/input-modules b/debian/installer/modules/armel-marvell/input-modules
new file mode 100644
index 000000000..34183581c
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/input-modules
@@ -0,0 +1,3 @@
+#include <input-modules>
+# Moved to event-modules for use in network-console builds
+gpio_keys -
diff --git a/debian/installer/modules/armel-marvell/ipv6-modules b/debian/installer/modules/armel-marvell/ipv6-modules
new file mode 100644
index 000000000..1e3fc3388
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/ipv6-modules
@@ -0,0 +1 @@
+#include <ipv6-modules>
diff --git a/debian/installer/modules/armel-marvell/isofs-modules b/debian/installer/modules/armel-marvell/isofs-modules
new file mode 100644
index 000000000..da4fa9a3c
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/isofs-modules
@@ -0,0 +1 @@
+#include <isofs-modules>
diff --git a/debian/installer/modules/armel-marvell/jffs2-modules b/debian/installer/modules/armel-marvell/jffs2-modules
new file mode 100644
index 000000000..245c7d8a5
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/jffs2-modules
@@ -0,0 +1 @@
+#include <jffs2-modules>
diff --git a/debian/installer/modules/armel-marvell/jfs-modules b/debian/installer/modules/armel-marvell/jfs-modules
new file mode 100644
index 000000000..7e4d912b9
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/jfs-modules
@@ -0,0 +1 @@
+#include <jfs-modules>
diff --git a/debian/installer/modules/armel-marvell/kernel-image b/debian/installer/modules/armel-marvell/kernel-image
new file mode 100644
index 000000000..1d11b1921
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
diff --git a/debian/installer/modules/armel-marvell/leds-modules b/debian/installer/modules/armel-marvell/leds-modules
new file mode 100644
index 000000000..b18bac13f
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/leds-modules
@@ -0,0 +1,2 @@
+leds-ns2
+leds-netxbig
diff --git a/debian/installer/modules/armel-marvell/loop-modules b/debian/installer/modules/armel-marvell/loop-modules
new file mode 100644
index 000000000..c1c948fa3
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/loop-modules
@@ -0,0 +1 @@
+#include <loop-modules>
diff --git a/debian/installer/modules/armel-marvell/md-modules b/debian/installer/modules/armel-marvell/md-modules
new file mode 100644
index 000000000..26115e10b
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
diff --git a/debian/installer/modules/armel-marvell/minix-modules b/debian/installer/modules/armel-marvell/minix-modules
new file mode 100644
index 000000000..82b984372
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/minix-modules
@@ -0,0 +1 @@
+#include <minix-modules>
diff --git a/debian/installer/modules/armel-marvell/mmc-core-modules b/debian/installer/modules/armel-marvell/mmc-core-modules
new file mode 100644
index 000000000..7bf38465c
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/mmc-core-modules
@@ -0,0 +1 @@
+#include <mmc-core-modules>
diff --git a/debian/installer/modules/armel-marvell/mmc-modules b/debian/installer/modules/armel-marvell/mmc-modules
new file mode 100644
index 000000000..e8c7b46f5
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/mmc-modules
@@ -0,0 +1,2 @@
+#include <mmc-modules>
+mvsdio
diff --git a/debian/installer/modules/armel-marvell/mouse-modules b/debian/installer/modules/armel-marvell/mouse-modules
new file mode 100644
index 000000000..15fcb00ea
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
diff --git a/debian/installer/modules/armel-marvell/mtd-core-modules b/debian/installer/modules/armel-marvell/mtd-core-modules
new file mode 100644
index 000000000..28fdada60
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/mtd-core-modules
@@ -0,0 +1 @@
+#include <mtd-core-modules>
diff --git a/debian/installer/modules/armel-marvell/mtd-modules b/debian/installer/modules/armel-marvell/mtd-modules
new file mode 100644
index 000000000..7a6d97c87
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/mtd-modules
@@ -0,0 +1,12 @@
+#include <mtd-modules>
+m25p80
+cfi_probe
+gen_probe
+jedec_probe
+nand
+orion_nand
+ofpart
+mtdblock
+physmap_of
+cmdlinepart
+spi-orion
diff --git a/debian/installer/modules/armel-marvell/multipath-modules b/debian/installer/modules/armel-marvell/multipath-modules
new file mode 100644
index 000000000..a8b69b253
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
diff --git a/debian/installer/modules/armel-marvell/nbd-modules b/debian/installer/modules/armel-marvell/nbd-modules
new file mode 100644
index 000000000..3c9b3e5d4
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/nbd-modules
@@ -0,0 +1 @@
+#include <nbd-modules>
diff --git a/debian/installer/modules/armel-marvell/nic-modules b/debian/installer/modules/armel-marvell/nic-modules
new file mode 100644
index 000000000..1a2cdb1fc
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/nic-modules
@@ -0,0 +1,2 @@
+mv643xx_eth
+mvmdio
diff --git a/debian/installer/modules/armel-marvell/nic-shared-modules b/debian/installer/modules/armel-marvell/nic-shared-modules
new file mode 100644
index 000000000..cc84b14dc
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
diff --git a/debian/installer/modules/armel-marvell/nic-usb-modules b/debian/installer/modules/armel-marvell/nic-usb-modules
new file mode 100644
index 000000000..c479669b4
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
diff --git a/debian/installer/modules/armel-marvell/ppp-modules b/debian/installer/modules/armel-marvell/ppp-modules
new file mode 100644
index 000000000..f1ae9b3d1
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/ppp-modules
@@ -0,0 +1,2 @@
+#include <ppp-modules>
+
diff --git a/debian/installer/modules/armel-marvell/sata-modules b/debian/installer/modules/armel-marvell/sata-modules
new file mode 100644
index 000000000..3adbfa16d
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/sata-modules
@@ -0,0 +1,2 @@
+ahci
+sata_mv
diff --git a/debian/installer/modules/armel-marvell/scsi-core-modules b/debian/installer/modules/armel-marvell/scsi-core-modules
new file mode 100644
index 000000000..dd65d6614
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/scsi-core-modules
@@ -0,0 +1 @@
+#include <scsi-core-modules>
diff --git a/debian/installer/modules/armel-marvell/squashfs-modules b/debian/installer/modules/armel-marvell/squashfs-modules
new file mode 100644
index 000000000..42d77887a
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/squashfs-modules
@@ -0,0 +1 @@
+#include <squashfs-modules>
diff --git a/debian/installer/modules/armel-marvell/udf-modules b/debian/installer/modules/armel-marvell/udf-modules
new file mode 100644
index 000000000..b90d7ee9b
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/udf-modules
@@ -0,0 +1 @@
+#include <udf-modules>
diff --git a/debian/installer/modules/armel-marvell/uinput-modules b/debian/installer/modules/armel-marvell/uinput-modules
new file mode 100644
index 000000000..58a833779
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/uinput-modules
@@ -0,0 +1 @@
+#include <uinput-modules>
diff --git a/debian/installer/modules/armel-marvell/usb-modules b/debian/installer/modules/armel-marvell/usb-modules
new file mode 100644
index 000000000..772c4afee
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/usb-modules
@@ -0,0 +1,2 @@
+#include <usb-modules>
+ehci-orion
diff --git a/debian/installer/modules/armel-marvell/usb-serial-modules b/debian/installer/modules/armel-marvell/usb-serial-modules
new file mode 100644
index 000000000..c0a0dc3bd
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/usb-serial-modules
@@ -0,0 +1 @@
+#include <usb-serial-modules>
diff --git a/debian/installer/modules/armel-marvell/usb-storage-modules b/debian/installer/modules/armel-marvell/usb-storage-modules
new file mode 100644
index 000000000..8c5e81b55
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/usb-storage-modules
@@ -0,0 +1 @@
+#include <usb-storage-modules>
diff --git a/debian/installer/modules/armel-marvell/zlib-modules b/debian/installer/modules/armel-marvell/zlib-modules
new file mode 100644
index 000000000..e02ad64bf
--- /dev/null
+++ b/debian/installer/modules/armel-marvell/zlib-modules
@@ -0,0 +1 @@
+#include <zlib-modules>
diff --git a/debian/installer/modules/armhf-armmp/ata-modules b/debian/installer/modules/armhf-armmp/ata-modules
new file mode 100644
index 000000000..04d9c8841
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/ata-modules
@@ -0,0 +1 @@
+libata
diff --git a/debian/installer/modules/armhf-armmp/btrfs-modules b/debian/installer/modules/armhf-armmp/btrfs-modules
new file mode 100644
index 000000000..e261e1388
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/btrfs-modules
@@ -0,0 +1 @@
+#include <btrfs-modules>
diff --git a/debian/installer/modules/armhf-armmp/cdrom-core-modules b/debian/installer/modules/armhf-armmp/cdrom-core-modules
new file mode 100644
index 000000000..3ff69b48f
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/cdrom-core-modules
@@ -0,0 +1 @@
+#include <cdrom-core-modules>
diff --git a/debian/installer/modules/armhf-armmp/compress-modules b/debian/installer/modules/armhf-armmp/compress-modules
new file mode 100644
index 000000000..804616619
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/compress-modules
@@ -0,0 +1 @@
+#include <compress-modules>
diff --git a/debian/installer/modules/armhf-armmp/crc-modules b/debian/installer/modules/armhf-armmp/crc-modules
new file mode 100644
index 000000000..7e00de705
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/crc-modules
@@ -0,0 +1 @@
+#include <crc-modules>
diff --git a/debian/installer/modules/armhf-armmp/crypto-dm-modules b/debian/installer/modules/armhf-armmp/crypto-dm-modules
new file mode 100644
index 000000000..4c8f2354c
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/crypto-dm-modules
@@ -0,0 +1 @@
+#include <crypto-dm-modules>
diff --git a/debian/installer/modules/armhf-armmp/crypto-modules b/debian/installer/modules/armhf-armmp/crypto-modules
new file mode 100644
index 000000000..3a1e862b4
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
diff --git a/debian/installer/modules/armhf-armmp/efi-modules b/debian/installer/modules/armhf-armmp/efi-modules
new file mode 100644
index 000000000..e1dc05e8f
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/efi-modules
@@ -0,0 +1 @@
+#include <efi-modules>
diff --git a/debian/installer/modules/armhf-armmp/event-modules b/debian/installer/modules/armhf-armmp/event-modules
new file mode 100644
index 000000000..f8819afd3
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/event-modules
@@ -0,0 +1 @@
+#include <event-modules>
diff --git a/debian/installer/modules/armhf-armmp/ext4-modules b/debian/installer/modules/armhf-armmp/ext4-modules
new file mode 100644
index 000000000..394c577ce
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/ext4-modules
@@ -0,0 +1 @@
+#include <ext4-modules>
diff --git a/debian/installer/modules/armhf-armmp/fat-modules b/debian/installer/modules/armhf-armmp/fat-modules
new file mode 100644
index 000000000..274584eb6
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
diff --git a/debian/installer/modules/armhf-armmp/fb-modules b/debian/installer/modules/armhf-armmp/fb-modules
new file mode 100644
index 000000000..f3d4b2a64
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/fb-modules
@@ -0,0 +1,5 @@
+#include <fb-modules>
+
+imxdrm
+dw_hdmi-imx
+tegra-drm
diff --git a/debian/installer/modules/armhf-armmp/fuse-modules b/debian/installer/modules/armhf-armmp/fuse-modules
new file mode 100644
index 000000000..0b6ba0c8c
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/fuse-modules
@@ -0,0 +1 @@
+#include <fuse-modules>
diff --git a/debian/installer/modules/armhf-armmp/i2c-modules b/debian/installer/modules/armhf-armmp/i2c-modules
new file mode 100644
index 000000000..5690c2f51
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/i2c-modules
@@ -0,0 +1,5 @@
+#include <i2c-modules>
+i2c-exynos5
+i2c-mv64xxx
+i2c-rk3x
+
diff --git a/debian/installer/modules/armhf-armmp/input-modules b/debian/installer/modules/armhf-armmp/input-modules
new file mode 100644
index 000000000..5ecb595a4
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
diff --git a/debian/installer/modules/armhf-armmp/isofs-modules b/debian/installer/modules/armhf-armmp/isofs-modules
new file mode 100644
index 000000000..da4fa9a3c
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/isofs-modules
@@ -0,0 +1 @@
+#include <isofs-modules>
diff --git a/debian/installer/modules/armhf-armmp/jfs-modules b/debian/installer/modules/armhf-armmp/jfs-modules
new file mode 100644
index 000000000..7e4d912b9
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/jfs-modules
@@ -0,0 +1 @@
+#include <jfs-modules>
diff --git a/debian/installer/modules/armhf-armmp/kernel-image b/debian/installer/modules/armhf-armmp/kernel-image
new file mode 100644
index 000000000..0651d89dc
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/kernel-image
@@ -0,0 +1,23 @@
+#include <kernel-image>
+
+# Clocks
+clk-palmas ?
+clk-s2mps11 ?
+clk-twl6040 ?
+
+# GPIO
+gpio-da9052 ?
+gpio-pca953x ?
+
+# PCIe PHYs
+phy-omap-control ?
+phy-ti-pipe3 ?
+
+# Regulators
+drivers/regulator/**
+
+# Powersupply
+axp20x_usb_power ?
+
+# Watchdog needed for reboot
+sunxi_wdt ?
diff --git a/debian/installer/modules/armhf-armmp/leds-modules b/debian/installer/modules/armhf-armmp/leds-modules
new file mode 100644
index 000000000..85d9f2565
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/leds-modules
@@ -0,0 +1 @@
+#include <leds-modules>
diff --git a/debian/installer/modules/armhf-armmp/loop-modules b/debian/installer/modules/armhf-armmp/loop-modules
new file mode 100644
index 000000000..c1c948fa3
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/loop-modules
@@ -0,0 +1 @@
+#include <loop-modules>
diff --git a/debian/installer/modules/armhf-armmp/md-modules b/debian/installer/modules/armhf-armmp/md-modules
new file mode 100644
index 000000000..26115e10b
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
diff --git a/debian/installer/modules/armhf-armmp/mmc-modules b/debian/installer/modules/armhf-armmp/mmc-modules
new file mode 100644
index 000000000..dadfd5334
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/mmc-modules
@@ -0,0 +1 @@
+#include <mmc-modules>
diff --git a/debian/installer/modules/armhf-armmp/mtd-modules b/debian/installer/modules/armhf-armmp/mtd-modules
new file mode 100644
index 000000000..fb81032ea
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/mtd-modules
@@ -0,0 +1,3 @@
+#include <mtd-modules>
+mxc_nand
+marvell_nand
diff --git a/debian/installer/modules/armhf-armmp/multipath-modules b/debian/installer/modules/armhf-armmp/multipath-modules
new file mode 100644
index 000000000..a8b69b253
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
diff --git a/debian/installer/modules/armhf-armmp/nbd-modules b/debian/installer/modules/armhf-armmp/nbd-modules
new file mode 100644
index 000000000..3c9b3e5d4
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/nbd-modules
@@ -0,0 +1 @@
+#include <nbd-modules>
diff --git a/debian/installer/modules/armhf-armmp/nic-modules b/debian/installer/modules/armhf-armmp/nic-modules
new file mode 100644
index 000000000..75a4eb931
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/nic-modules
@@ -0,0 +1,14 @@
+#include <nic-modules>
+mvneta
+mvmdio
+smsc911x
+stmmac
+stmmac-platform
+dwmac-generic
+dwmac-altr-socfpga
+dwmac-sunxi
+sun4i-emac
+xgmac
+ti_cpsw
+davinci_mdio
+davinci_cpdma
diff --git a/debian/installer/modules/armhf-armmp/nic-shared-modules b/debian/installer/modules/armhf-armmp/nic-shared-modules
new file mode 100644
index 000000000..cc84b14dc
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
diff --git a/debian/installer/modules/armhf-armmp/nic-usb-modules b/debian/installer/modules/armhf-armmp/nic-usb-modules
new file mode 100644
index 000000000..c479669b4
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
diff --git a/debian/installer/modules/armhf-armmp/nic-wireless-modules b/debian/installer/modules/armhf-armmp/nic-wireless-modules
new file mode 100644
index 000000000..53fd18d7f
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/nic-wireless-modules
@@ -0,0 +1 @@
+#include <nic-wireless-modules>
diff --git a/debian/installer/modules/armhf-armmp/pata-modules b/debian/installer/modules/armhf-armmp/pata-modules
new file mode 100644
index 000000000..2ff7276d4
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/pata-modules
@@ -0,0 +1 @@
+pata_imx
diff --git a/debian/installer/modules/armhf-armmp/ppp-modules b/debian/installer/modules/armhf-armmp/ppp-modules
new file mode 100644
index 000000000..1f26aa1ee
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
diff --git a/debian/installer/modules/armhf-armmp/sata-modules b/debian/installer/modules/armhf-armmp/sata-modules
new file mode 100644
index 000000000..8e7e1ed2c
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/sata-modules
@@ -0,0 +1,5 @@
+#include <sata-modules>
+sata_highbank
+
+# SATA PHYs
+phy-exynos5250-sata
diff --git a/debian/installer/modules/armhf-armmp/scsi-core-modules b/debian/installer/modules/armhf-armmp/scsi-core-modules
new file mode 100644
index 000000000..dd65d6614
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/scsi-core-modules
@@ -0,0 +1 @@
+#include <scsi-core-modules>
diff --git a/debian/installer/modules/armhf-armmp/scsi-modules b/debian/installer/modules/armhf-armmp/scsi-modules
new file mode 100644
index 000000000..675462a14
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+
diff --git a/debian/installer/modules/armhf-armmp/scsi-nic-modules b/debian/installer/modules/armhf-armmp/scsi-nic-modules
new file mode 100644
index 000000000..089dd5dc6
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/scsi-nic-modules
@@ -0,0 +1 @@
+#include <scsi-nic-modules>
diff --git a/debian/installer/modules/armhf-armmp/squashfs-modules b/debian/installer/modules/armhf-armmp/squashfs-modules
new file mode 100644
index 000000000..42d77887a
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/squashfs-modules
@@ -0,0 +1 @@
+#include <squashfs-modules>
diff --git a/debian/installer/modules/armhf-armmp/udf-modules b/debian/installer/modules/armhf-armmp/udf-modules
new file mode 100644
index 000000000..b90d7ee9b
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/udf-modules
@@ -0,0 +1 @@
+#include <udf-modules>
diff --git a/debian/installer/modules/armhf-armmp/uinput-modules b/debian/installer/modules/armhf-armmp/uinput-modules
new file mode 100644
index 000000000..58a833779
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/uinput-modules
@@ -0,0 +1 @@
+#include <uinput-modules>
diff --git a/debian/installer/modules/armhf-armmp/usb-modules b/debian/installer/modules/armhf-armmp/usb-modules
new file mode 100644
index 000000000..5917b7f79
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/usb-modules
@@ -0,0 +1,4 @@
+#include <usb-modules>
+omap-ocp2scp
+extcon-usb-gpio
+usb3503
diff --git a/debian/installer/modules/armhf-armmp/usb-serial-modules b/debian/installer/modules/armhf-armmp/usb-serial-modules
new file mode 100644
index 000000000..c0a0dc3bd
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/usb-serial-modules
@@ -0,0 +1 @@
+#include <usb-serial-modules>
diff --git a/debian/installer/modules/armhf-armmp/usb-storage-modules b/debian/installer/modules/armhf-armmp/usb-storage-modules
new file mode 100644
index 000000000..8c5e81b55
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/usb-storage-modules
@@ -0,0 +1 @@
+#include <usb-storage-modules>
diff --git a/debian/installer/modules/armhf-armmp/zlib-modules b/debian/installer/modules/armhf-armmp/zlib-modules
new file mode 100644
index 000000000..e02ad64bf
--- /dev/null
+++ b/debian/installer/modules/armhf-armmp/zlib-modules
@@ -0,0 +1 @@
+#include <zlib-modules>
diff --git a/debian/installer/modules/ata-modules b/debian/installer/modules/ata-modules
new file mode 100644
index 000000000..6ca33ce0a
--- /dev/null
+++ b/debian/installer/modules/ata-modules
@@ -0,0 +1,2 @@
+libata
+ata_generic
diff --git a/debian/installer/modules/btrfs-modules b/debian/installer/modules/btrfs-modules
new file mode 100644
index 000000000..00531f654
--- /dev/null
+++ b/debian/installer/modules/btrfs-modules
@@ -0,0 +1 @@
+btrfs
diff --git a/debian/installer/modules/cdrom-core-modules b/debian/installer/modules/cdrom-core-modules
new file mode 100644
index 000000000..62e5e83a3
--- /dev/null
+++ b/debian/installer/modules/cdrom-core-modules
@@ -0,0 +1,2 @@
+cdrom ?
+sr_mod ?
diff --git a/debian/installer/modules/compress-modules b/debian/installer/modules/compress-modules
new file mode 100644
index 000000000..425a92958
--- /dev/null
+++ b/debian/installer/modules/compress-modules
@@ -0,0 +1,3 @@
+lzo_compress
+lzo_decompress
+zstd_decompress
diff --git a/debian/installer/modules/crc-modules b/debian/installer/modules/crc-modules
new file mode 100644
index 000000000..bef0014e8
--- /dev/null
+++ b/debian/installer/modules/crc-modules
@@ -0,0 +1,6 @@
+crc-ccitt
+libcrc32c
+crc32c_generic
+crc-itu-t
+crc16
+crc7 ?
diff --git a/debian/installer/modules/crypto-dm-modules b/debian/installer/modules/crypto-dm-modules
new file mode 100644
index 000000000..189131fc1
--- /dev/null
+++ b/debian/installer/modules/crypto-dm-modules
@@ -0,0 +1 @@
+dm-crypt
diff --git a/debian/installer/modules/crypto-modules b/debian/installer/modules/crypto-modules
new file mode 100644
index 000000000..22460e497
--- /dev/null
+++ b/debian/installer/modules/crypto-modules
@@ -0,0 +1,14 @@
+aes_generic
+blowfish_generic
+twofish_generic
+serpent_generic
+sha256_generic
+arc4 ?
+cbc ?
+ccm
+ctr
+ecb
+xts
+
+# For LUKS2 in cryptsetup
+algif_skcipher
diff --git a/debian/installer/modules/efi-modules b/debian/installer/modules/efi-modules
new file mode 100644
index 000000000..63bedfc37
--- /dev/null
+++ b/debian/installer/modules/efi-modules
@@ -0,0 +1,2 @@
+efivars
+efivarfs
diff --git a/debian/installer/modules/event-modules b/debian/installer/modules/event-modules
new file mode 100644
index 000000000..97a5e58aa
--- /dev/null
+++ b/debian/installer/modules/event-modules
@@ -0,0 +1 @@
+evdev
diff --git a/debian/installer/modules/ext4-modules b/debian/installer/modules/ext4-modules
new file mode 100644
index 000000000..610034258
--- /dev/null
+++ b/debian/installer/modules/ext4-modules
@@ -0,0 +1,2 @@
+ext4
+jbd2
diff --git a/debian/installer/modules/fat-modules b/debian/installer/modules/fat-modules
new file mode 100644
index 000000000..0498cf834
--- /dev/null
+++ b/debian/installer/modules/fat-modules
@@ -0,0 +1,6 @@
+fat ?
+vfat
+# the default codepage for fat (as of 2.6.8)
+nls_cp437 ?
+# the default i/o character set for fat (as of 4.7.2-1)
+nls_ascii ?
diff --git a/debian/installer/modules/fb-modules b/debian/installer/modules/fb-modules
new file mode 100644
index 000000000..f17b6e6ae
--- /dev/null
+++ b/debian/installer/modules/fb-modules
@@ -0,0 +1,6 @@
+# We don't include all DRM drivers here as on many platforms we can
+# call system firmware to get hold of a simple framebuffer
+
+drm
+drm_kms_helper
+virtio-gpu ?
diff --git a/debian/installer/modules/firewire-core-modules b/debian/installer/modules/firewire-core-modules
new file mode 100644
index 000000000..bcc31d50a
--- /dev/null
+++ b/debian/installer/modules/firewire-core-modules
@@ -0,0 +1,3 @@
+firewire-core
+firewire-ohci
+firewire-sbp2
diff --git a/debian/installer/modules/fuse-modules b/debian/installer/modules/fuse-modules
new file mode 100644
index 000000000..a517c488f
--- /dev/null
+++ b/debian/installer/modules/fuse-modules
@@ -0,0 +1 @@
+fuse
diff --git a/debian/installer/modules/hfs-modules b/debian/installer/modules/hfs-modules
new file mode 100644
index 000000000..4a311558e
--- /dev/null
+++ b/debian/installer/modules/hfs-modules
@@ -0,0 +1,2 @@
+hfs
+hfsplus
diff --git a/debian/installer/modules/hppa-parisc64-smp/ata-modules b/debian/installer/modules/hppa-parisc64-smp/ata-modules
new file mode 100644
index 000000000..08f295ad2
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/ata-modules
@@ -0,0 +1 @@
+#include "../hppa/ata-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/btrfs-modules b/debian/installer/modules/hppa-parisc64-smp/btrfs-modules
new file mode 100644
index 000000000..677b351f7
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/btrfs-modules
@@ -0,0 +1 @@
+#include "../hppa/btrfs-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/cdrom-core-modules b/debian/installer/modules/hppa-parisc64-smp/cdrom-core-modules
new file mode 100644
index 000000000..9656269be
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/cdrom-core-modules
@@ -0,0 +1 @@
+#include "../hppa/cdrom-core-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/compress-modules b/debian/installer/modules/hppa-parisc64-smp/compress-modules
new file mode 100644
index 000000000..804616619
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/compress-modules
@@ -0,0 +1 @@
+#include <compress-modules>
diff --git a/debian/installer/modules/hppa-parisc64-smp/crc-modules b/debian/installer/modules/hppa-parisc64-smp/crc-modules
new file mode 100644
index 000000000..f75e86b30
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/crc-modules
@@ -0,0 +1 @@
+#include "../hppa/crc-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/crypto-dm-modules b/debian/installer/modules/hppa-parisc64-smp/crypto-dm-modules
new file mode 100644
index 000000000..ed740a551
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/crypto-dm-modules
@@ -0,0 +1 @@
+#include "../hppa/crypto-dm-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/crypto-modules b/debian/installer/modules/hppa-parisc64-smp/crypto-modules
new file mode 100644
index 000000000..1c4d2d0cf
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/crypto-modules
@@ -0,0 +1 @@
+#include "../hppa/crypto-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/event-modules b/debian/installer/modules/hppa-parisc64-smp/event-modules
new file mode 100644
index 000000000..1a5cbb04a
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/event-modules
@@ -0,0 +1 @@
+#include "../hppa/event-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/ext4-modules b/debian/installer/modules/hppa-parisc64-smp/ext4-modules
new file mode 100644
index 000000000..00920ace1
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/ext4-modules
@@ -0,0 +1 @@
+#include "../hppa/ext4-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/fat-modules b/debian/installer/modules/hppa-parisc64-smp/fat-modules
new file mode 100644
index 000000000..ef6dd33ff
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/fat-modules
@@ -0,0 +1 @@
+#include "../hppa/fat-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/fb-modules b/debian/installer/modules/hppa-parisc64-smp/fb-modules
new file mode 100644
index 000000000..d0424dc9f
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/fb-modules
@@ -0,0 +1,4 @@
+#include <fb-modules>
+
+radeon ?
+ttm ?
diff --git a/debian/installer/modules/hppa-parisc64-smp/fuse-modules b/debian/installer/modules/hppa-parisc64-smp/fuse-modules
new file mode 100644
index 000000000..06f8ccf63
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/fuse-modules
@@ -0,0 +1 @@
+#include "../hppa/fuse-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/input-modules b/debian/installer/modules/hppa-parisc64-smp/input-modules
new file mode 100644
index 000000000..cdeaa30fe
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/input-modules
@@ -0,0 +1 @@
+#include "../hppa/input-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/isofs-modules b/debian/installer/modules/hppa-parisc64-smp/isofs-modules
new file mode 100644
index 000000000..9e8e2dfb1
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/isofs-modules
@@ -0,0 +1 @@
+#include "../hppa/isofs-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/jfs-modules b/debian/installer/modules/hppa-parisc64-smp/jfs-modules
new file mode 100644
index 000000000..a3b6beb7d
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/jfs-modules
@@ -0,0 +1 @@
+#include "../hppa/jfs-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/kernel-image b/debian/installer/modules/hppa-parisc64-smp/kernel-image
new file mode 100644
index 000000000..93d59f539
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/kernel-image
@@ -0,0 +1 @@
+#include "../hppa/kernel-image"
diff --git a/debian/installer/modules/hppa-parisc64-smp/loop-modules b/debian/installer/modules/hppa-parisc64-smp/loop-modules
new file mode 100644
index 000000000..721ffecf4
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/loop-modules
@@ -0,0 +1 @@
+#include "../hppa/loop-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/md-modules b/debian/installer/modules/hppa-parisc64-smp/md-modules
new file mode 100644
index 000000000..d7e972022
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/md-modules
@@ -0,0 +1 @@
+#include "../hppa/md-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/mouse-modules b/debian/installer/modules/hppa-parisc64-smp/mouse-modules
new file mode 100644
index 000000000..f9edf83b0
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/mouse-modules
@@ -0,0 +1 @@
+#include "../hppa/mouse-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/multipath-modules b/debian/installer/modules/hppa-parisc64-smp/multipath-modules
new file mode 100644
index 000000000..46f68a37a
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/multipath-modules
@@ -0,0 +1 @@
+#include "../hppa/multipath-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/nbd-modules b/debian/installer/modules/hppa-parisc64-smp/nbd-modules
new file mode 100644
index 000000000..b4c4622c7
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/nbd-modules
@@ -0,0 +1 @@
+#include "../hppa/nbd-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/nic-modules b/debian/installer/modules/hppa-parisc64-smp/nic-modules
new file mode 100644
index 000000000..e15b2d573
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/nic-modules
@@ -0,0 +1 @@
+#include "../hppa/nic-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/nic-shared-modules b/debian/installer/modules/hppa-parisc64-smp/nic-shared-modules
new file mode 100644
index 000000000..fd0b19c80
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/nic-shared-modules
@@ -0,0 +1 @@
+#include "../hppa/nic-shared-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/nic-usb-modules b/debian/installer/modules/hppa-parisc64-smp/nic-usb-modules
new file mode 100644
index 000000000..261192d2e
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/nic-usb-modules
@@ -0,0 +1 @@
+#include "../hppa/nic-usb-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/pata-modules b/debian/installer/modules/hppa-parisc64-smp/pata-modules
new file mode 100644
index 000000000..46bc71900
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/pata-modules
@@ -0,0 +1 @@
+#include "../hppa/pata-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/ppp-modules b/debian/installer/modules/hppa-parisc64-smp/ppp-modules
new file mode 100644
index 000000000..b78085c34
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/ppp-modules
@@ -0,0 +1 @@
+#include "../hppa/ppp-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/sata-modules b/debian/installer/modules/hppa-parisc64-smp/sata-modules
new file mode 100644
index 000000000..a2ebc2983
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/sata-modules
@@ -0,0 +1 @@
+#include "../hppa/sata-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/scsi-core-modules b/debian/installer/modules/hppa-parisc64-smp/scsi-core-modules
new file mode 100644
index 000000000..ff84a7089
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/scsi-core-modules
@@ -0,0 +1 @@
+#include "../hppa/scsi-core-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/scsi-modules b/debian/installer/modules/hppa-parisc64-smp/scsi-modules
new file mode 100644
index 000000000..229e060a8
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/scsi-modules
@@ -0,0 +1 @@
+#include "../hppa/scsi-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/serial-modules b/debian/installer/modules/hppa-parisc64-smp/serial-modules
new file mode 100644
index 000000000..a84a550e8
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/serial-modules
@@ -0,0 +1 @@
+#include "../hppa/serial-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/squashfs-modules b/debian/installer/modules/hppa-parisc64-smp/squashfs-modules
new file mode 100644
index 000000000..f0c79aa4e
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/squashfs-modules
@@ -0,0 +1 @@
+#include "../hppa/squashfs-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/usb-modules b/debian/installer/modules/hppa-parisc64-smp/usb-modules
new file mode 100644
index 000000000..df2abbbd9
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/usb-modules
@@ -0,0 +1 @@
+#include "../hppa/usb-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/usb-serial-modules b/debian/installer/modules/hppa-parisc64-smp/usb-serial-modules
new file mode 100644
index 000000000..1dd05036f
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/usb-serial-modules
@@ -0,0 +1 @@
+#include "../hppa/usb-serial-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/usb-storage-modules b/debian/installer/modules/hppa-parisc64-smp/usb-storage-modules
new file mode 100644
index 000000000..5562ed4c8
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/usb-storage-modules
@@ -0,0 +1 @@
+#include "../hppa/usb-storage-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/xfs-modules b/debian/installer/modules/hppa-parisc64-smp/xfs-modules
new file mode 100644
index 000000000..7960e0bb2
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/xfs-modules
@@ -0,0 +1 @@
+#include "../hppa/xfs-modules"
diff --git a/debian/installer/modules/hppa-parisc64-smp/zlib-modules b/debian/installer/modules/hppa-parisc64-smp/zlib-modules
new file mode 100644
index 000000000..b3f829cf2
--- /dev/null
+++ b/debian/installer/modules/hppa-parisc64-smp/zlib-modules
@@ -0,0 +1 @@
+#include "../hppa/zlib-modules"
diff --git a/debian/installer/modules/hppa/ata-modules b/debian/installer/modules/hppa/ata-modules
new file mode 100644
index 000000000..b81c0f38b
--- /dev/null
+++ b/debian/installer/modules/hppa/ata-modules
@@ -0,0 +1 @@
+#include <ata-modules>
diff --git a/debian/installer/modules/hppa/btrfs-modules b/debian/installer/modules/hppa/btrfs-modules
new file mode 100644
index 000000000..e261e1388
--- /dev/null
+++ b/debian/installer/modules/hppa/btrfs-modules
@@ -0,0 +1 @@
+#include <btrfs-modules>
diff --git a/debian/installer/modules/hppa/cdrom-core-modules b/debian/installer/modules/hppa/cdrom-core-modules
new file mode 100644
index 000000000..e264d7aa3
--- /dev/null
+++ b/debian/installer/modules/hppa/cdrom-core-modules
@@ -0,0 +1,2 @@
+#include <cdrom-core-modules>
+
diff --git a/debian/installer/modules/hppa/compress-modules b/debian/installer/modules/hppa/compress-modules
new file mode 100644
index 000000000..804616619
--- /dev/null
+++ b/debian/installer/modules/hppa/compress-modules
@@ -0,0 +1 @@
+#include <compress-modules>
diff --git a/debian/installer/modules/hppa/crc-modules b/debian/installer/modules/hppa/crc-modules
new file mode 100644
index 000000000..7e00de705
--- /dev/null
+++ b/debian/installer/modules/hppa/crc-modules
@@ -0,0 +1 @@
+#include <crc-modules>
diff --git a/debian/installer/modules/hppa/crypto-dm-modules b/debian/installer/modules/hppa/crypto-dm-modules
new file mode 100644
index 000000000..4c8f2354c
--- /dev/null
+++ b/debian/installer/modules/hppa/crypto-dm-modules
@@ -0,0 +1 @@
+#include <crypto-dm-modules>
diff --git a/debian/installer/modules/hppa/crypto-modules b/debian/installer/modules/hppa/crypto-modules
new file mode 100644
index 000000000..3a1e862b4
--- /dev/null
+++ b/debian/installer/modules/hppa/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
diff --git a/debian/installer/modules/hppa/event-modules b/debian/installer/modules/hppa/event-modules
new file mode 100644
index 000000000..f8819afd3
--- /dev/null
+++ b/debian/installer/modules/hppa/event-modules
@@ -0,0 +1 @@
+#include <event-modules>
diff --git a/debian/installer/modules/hppa/ext4-modules b/debian/installer/modules/hppa/ext4-modules
new file mode 100644
index 000000000..394c577ce
--- /dev/null
+++ b/debian/installer/modules/hppa/ext4-modules
@@ -0,0 +1 @@
+#include <ext4-modules>
diff --git a/debian/installer/modules/hppa/fat-modules b/debian/installer/modules/hppa/fat-modules
new file mode 100644
index 000000000..cce8fd30c
--- /dev/null
+++ b/debian/installer/modules/hppa/fat-modules
@@ -0,0 +1,2 @@
+#include <fat-modules>
+
diff --git a/debian/installer/modules/hppa/fuse-modules b/debian/installer/modules/hppa/fuse-modules
new file mode 100644
index 000000000..0b6ba0c8c
--- /dev/null
+++ b/debian/installer/modules/hppa/fuse-modules
@@ -0,0 +1 @@
+#include <fuse-modules>
diff --git a/debian/installer/modules/hppa/input-modules b/debian/installer/modules/hppa/input-modules
new file mode 100644
index 000000000..9d4cbf6fa
--- /dev/null
+++ b/debian/installer/modules/hppa/input-modules
@@ -0,0 +1,6 @@
+#include <input-modules>
+hil_kbd ?
+hilkbd ?
+hp_sdc_mlc ?
+hil_mlc ?
+hp_sdc ?
diff --git a/debian/installer/modules/hppa/isofs-modules b/debian/installer/modules/hppa/isofs-modules
new file mode 100644
index 000000000..da4fa9a3c
--- /dev/null
+++ b/debian/installer/modules/hppa/isofs-modules
@@ -0,0 +1 @@
+#include <isofs-modules>
diff --git a/debian/installer/modules/hppa/jfs-modules b/debian/installer/modules/hppa/jfs-modules
new file mode 100644
index 000000000..7e4d912b9
--- /dev/null
+++ b/debian/installer/modules/hppa/jfs-modules
@@ -0,0 +1 @@
+#include <jfs-modules>
diff --git a/debian/installer/modules/hppa/kernel-image b/debian/installer/modules/hppa/kernel-image
new file mode 100644
index 000000000..1d11b1921
--- /dev/null
+++ b/debian/installer/modules/hppa/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
diff --git a/debian/installer/modules/hppa/loop-modules b/debian/installer/modules/hppa/loop-modules
new file mode 100644
index 000000000..164467713
--- /dev/null
+++ b/debian/installer/modules/hppa/loop-modules
@@ -0,0 +1,2 @@
+#include <loop-modules>
+
diff --git a/debian/installer/modules/hppa/md-modules b/debian/installer/modules/hppa/md-modules
new file mode 100644
index 000000000..ade088ddb
--- /dev/null
+++ b/debian/installer/modules/hppa/md-modules
@@ -0,0 +1,2 @@
+#include <md-modules>
+
diff --git a/debian/installer/modules/hppa/mouse-modules b/debian/installer/modules/hppa/mouse-modules
new file mode 100644
index 000000000..15fcb00ea
--- /dev/null
+++ b/debian/installer/modules/hppa/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
diff --git a/debian/installer/modules/hppa/multipath-modules b/debian/installer/modules/hppa/multipath-modules
new file mode 100644
index 000000000..a8b69b253
--- /dev/null
+++ b/debian/installer/modules/hppa/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
diff --git a/debian/installer/modules/hppa/nbd-modules b/debian/installer/modules/hppa/nbd-modules
new file mode 100644
index 000000000..3c9b3e5d4
--- /dev/null
+++ b/debian/installer/modules/hppa/nbd-modules
@@ -0,0 +1 @@
+#include <nbd-modules>
diff --git a/debian/installer/modules/hppa/nic-modules b/debian/installer/modules/hppa/nic-modules
new file mode 100644
index 000000000..8a4b656c9
--- /dev/null
+++ b/debian/installer/modules/hppa/nic-modules
@@ -0,0 +1,4 @@
+lasi_82596
+tg3
+tulip
+e1000
diff --git a/debian/installer/modules/hppa/nic-shared-modules b/debian/installer/modules/hppa/nic-shared-modules
new file mode 100644
index 000000000..cc84b14dc
--- /dev/null
+++ b/debian/installer/modules/hppa/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
diff --git a/debian/installer/modules/hppa/nic-usb-modules b/debian/installer/modules/hppa/nic-usb-modules
new file mode 100644
index 000000000..c479669b4
--- /dev/null
+++ b/debian/installer/modules/hppa/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
diff --git a/debian/installer/modules/hppa/pata-modules b/debian/installer/modules/hppa/pata-modules
new file mode 100644
index 000000000..8c4e514ae
--- /dev/null
+++ b/debian/installer/modules/hppa/pata-modules
@@ -0,0 +1,2 @@
+#include <pata-modules>
+
diff --git a/debian/installer/modules/hppa/ppp-modules b/debian/installer/modules/hppa/ppp-modules
new file mode 100644
index 000000000..f1ae9b3d1
--- /dev/null
+++ b/debian/installer/modules/hppa/ppp-modules
@@ -0,0 +1,2 @@
+#include <ppp-modules>
+
diff --git a/debian/installer/modules/hppa/sata-modules b/debian/installer/modules/hppa/sata-modules
new file mode 100644
index 000000000..071cb860b
--- /dev/null
+++ b/debian/installer/modules/hppa/sata-modules
@@ -0,0 +1,2 @@
+#include <sata-modules>
+
diff --git a/debian/installer/modules/hppa/scsi-core-modules b/debian/installer/modules/hppa/scsi-core-modules
new file mode 100644
index 000000000..dd65d6614
--- /dev/null
+++ b/debian/installer/modules/hppa/scsi-core-modules
@@ -0,0 +1 @@
+#include <scsi-core-modules>
diff --git a/debian/installer/modules/hppa/scsi-modules b/debian/installer/modules/hppa/scsi-modules
new file mode 100644
index 000000000..43d9b0397
--- /dev/null
+++ b/debian/installer/modules/hppa/scsi-modules
@@ -0,0 +1,19 @@
+aic79xx
+aic7xxx
+BusLogic ?
+sym53c8xx
+sym53c8xx_2 ?
+53c700
+ch
+lasi700
+osst
+sg
+st
+zalon7xx
+megaraid ?
+megaraid_mbox ?
+megaraid_mm ?
+megaraid_sas ?
+qlogicfas408
+mptbase
+mptspi
diff --git a/debian/installer/modules/hppa/serial-modules b/debian/installer/modules/hppa/serial-modules
new file mode 100644
index 000000000..6ab8b8c35
--- /dev/null
+++ b/debian/installer/modules/hppa/serial-modules
@@ -0,0 +1 @@
+#include <serial-modules>
diff --git a/debian/installer/modules/hppa/squashfs-modules b/debian/installer/modules/hppa/squashfs-modules
new file mode 100644
index 000000000..42d77887a
--- /dev/null
+++ b/debian/installer/modules/hppa/squashfs-modules
@@ -0,0 +1 @@
+#include <squashfs-modules>
diff --git a/debian/installer/modules/hppa/usb-modules b/debian/installer/modules/hppa/usb-modules
new file mode 100644
index 000000000..c598dedd8
--- /dev/null
+++ b/debian/installer/modules/hppa/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
diff --git a/debian/installer/modules/hppa/usb-serial-modules b/debian/installer/modules/hppa/usb-serial-modules
new file mode 100644
index 000000000..c0a0dc3bd
--- /dev/null
+++ b/debian/installer/modules/hppa/usb-serial-modules
@@ -0,0 +1 @@
+#include <usb-serial-modules>
diff --git a/debian/installer/modules/hppa/usb-storage-modules b/debian/installer/modules/hppa/usb-storage-modules
new file mode 100644
index 000000000..272d95e2e
--- /dev/null
+++ b/debian/installer/modules/hppa/usb-storage-modules
@@ -0,0 +1,2 @@
+#include <usb-storage-modules>
+
diff --git a/debian/installer/modules/hppa/xfs-modules b/debian/installer/modules/hppa/xfs-modules
new file mode 100644
index 000000000..98374e2bb
--- /dev/null
+++ b/debian/installer/modules/hppa/xfs-modules
@@ -0,0 +1 @@
+#include <xfs-modules>
diff --git a/debian/installer/modules/hppa/zlib-modules b/debian/installer/modules/hppa/zlib-modules
new file mode 100644
index 000000000..e02ad64bf
--- /dev/null
+++ b/debian/installer/modules/hppa/zlib-modules
@@ -0,0 +1 @@
+#include <zlib-modules>
diff --git a/debian/installer/modules/i2c-modules b/debian/installer/modules/i2c-modules
new file mode 100644
index 000000000..0c4999fa7
--- /dev/null
+++ b/debian/installer/modules/i2c-modules
@@ -0,0 +1,3 @@
+i2c-core
+i2c-algo-bit
+i2c-designware-platform ?
diff --git a/debian/installer/modules/i386/acpi-modules b/debian/installer/modules/i386/acpi-modules
new file mode 100644
index 000000000..307528fb1
--- /dev/null
+++ b/debian/installer/modules/i386/acpi-modules
@@ -0,0 +1,2 @@
+#include <acpi-modules>
+
diff --git a/debian/installer/modules/i386/ata-modules b/debian/installer/modules/i386/ata-modules
new file mode 100644
index 000000000..9409e7cde
--- /dev/null
+++ b/debian/installer/modules/i386/ata-modules
@@ -0,0 +1,2 @@
+#include <ata-modules>
+
diff --git a/debian/installer/modules/i386/btrfs-modules b/debian/installer/modules/i386/btrfs-modules
new file mode 100644
index 000000000..e261e1388
--- /dev/null
+++ b/debian/installer/modules/i386/btrfs-modules
@@ -0,0 +1 @@
+#include <btrfs-modules>
diff --git a/debian/installer/modules/i386/cdrom-core-modules b/debian/installer/modules/i386/cdrom-core-modules
new file mode 100644
index 000000000..e264d7aa3
--- /dev/null
+++ b/debian/installer/modules/i386/cdrom-core-modules
@@ -0,0 +1,2 @@
+#include <cdrom-core-modules>
+
diff --git a/debian/installer/modules/i386/compress-modules b/debian/installer/modules/i386/compress-modules
new file mode 100644
index 000000000..804616619
--- /dev/null
+++ b/debian/installer/modules/i386/compress-modules
@@ -0,0 +1 @@
+#include <compress-modules>
diff --git a/debian/installer/modules/i386/crc-modules b/debian/installer/modules/i386/crc-modules
new file mode 100644
index 000000000..7e00de705
--- /dev/null
+++ b/debian/installer/modules/i386/crc-modules
@@ -0,0 +1 @@
+#include <crc-modules>
diff --git a/debian/installer/modules/i386/crypto-dm-modules b/debian/installer/modules/i386/crypto-dm-modules
new file mode 100644
index 000000000..4c8f2354c
--- /dev/null
+++ b/debian/installer/modules/i386/crypto-dm-modules
@@ -0,0 +1 @@
+#include <crypto-dm-modules>
diff --git a/debian/installer/modules/i386/crypto-modules b/debian/installer/modules/i386/crypto-modules
new file mode 100644
index 000000000..3a1e862b4
--- /dev/null
+++ b/debian/installer/modules/i386/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
diff --git a/debian/installer/modules/i386/efi-modules b/debian/installer/modules/i386/efi-modules
new file mode 100644
index 000000000..e1dc05e8f
--- /dev/null
+++ b/debian/installer/modules/i386/efi-modules
@@ -0,0 +1 @@
+#include <efi-modules>
diff --git a/debian/installer/modules/i386/event-modules b/debian/installer/modules/i386/event-modules
new file mode 100644
index 000000000..f8819afd3
--- /dev/null
+++ b/debian/installer/modules/i386/event-modules
@@ -0,0 +1 @@
+#include <event-modules>
diff --git a/debian/installer/modules/i386/ext4-modules b/debian/installer/modules/i386/ext4-modules
new file mode 100644
index 000000000..394c577ce
--- /dev/null
+++ b/debian/installer/modules/i386/ext4-modules
@@ -0,0 +1 @@
+#include <ext4-modules>
diff --git a/debian/installer/modules/i386/fat-modules b/debian/installer/modules/i386/fat-modules
new file mode 100644
index 000000000..cce8fd30c
--- /dev/null
+++ b/debian/installer/modules/i386/fat-modules
@@ -0,0 +1,2 @@
+#include <fat-modules>
+
diff --git a/debian/installer/modules/i386/fb-modules b/debian/installer/modules/i386/fb-modules
new file mode 100644
index 000000000..9602502af
--- /dev/null
+++ b/debian/installer/modules/i386/fb-modules
@@ -0,0 +1,6 @@
+#include <fb-modules>
+
+lxfb ?
+vesafb ?
+vga16fb
+viafb
diff --git a/debian/installer/modules/i386/firewire-core-modules b/debian/installer/modules/i386/firewire-core-modules
new file mode 100644
index 000000000..dcac80af9
--- /dev/null
+++ b/debian/installer/modules/i386/firewire-core-modules
@@ -0,0 +1 @@
+#include <firewire-core-modules>
diff --git a/debian/installer/modules/i386/fuse-modules b/debian/installer/modules/i386/fuse-modules
new file mode 100644
index 000000000..0b6ba0c8c
--- /dev/null
+++ b/debian/installer/modules/i386/fuse-modules
@@ -0,0 +1 @@
+#include <fuse-modules>
diff --git a/debian/installer/modules/i386/i2c-modules b/debian/installer/modules/i386/i2c-modules
new file mode 100644
index 000000000..203a607e7
--- /dev/null
+++ b/debian/installer/modules/i386/i2c-modules
@@ -0,0 +1 @@
+#include <i2c-modules>
diff --git a/debian/installer/modules/i386/input-modules b/debian/installer/modules/i386/input-modules
new file mode 100644
index 000000000..cdba2e4a7
--- /dev/null
+++ b/debian/installer/modules/i386/input-modules
@@ -0,0 +1,5 @@
+#include <input-modules>
+# Needed on some Geode LX boards - Alix2/3/6, Soekris net5501, Traverse GEOS
+# so only built for 586 flavour
+gpio_keys_polled ?
+leds-gpio ?
diff --git a/debian/installer/modules/i386/isofs-modules b/debian/installer/modules/i386/isofs-modules
new file mode 100644
index 000000000..da4fa9a3c
--- /dev/null
+++ b/debian/installer/modules/i386/isofs-modules
@@ -0,0 +1 @@
+#include <isofs-modules>
diff --git a/debian/installer/modules/i386/jfs-modules b/debian/installer/modules/i386/jfs-modules
new file mode 100644
index 000000000..7e4d912b9
--- /dev/null
+++ b/debian/installer/modules/i386/jfs-modules
@@ -0,0 +1 @@
+#include <jfs-modules>
diff --git a/debian/installer/modules/i386/kernel-image b/debian/installer/modules/i386/kernel-image
new file mode 100644
index 000000000..1d11b1921
--- /dev/null
+++ b/debian/installer/modules/i386/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
diff --git a/debian/installer/modules/i386/loop-modules b/debian/installer/modules/i386/loop-modules
new file mode 100644
index 000000000..164467713
--- /dev/null
+++ b/debian/installer/modules/i386/loop-modules
@@ -0,0 +1,2 @@
+#include <loop-modules>
+
diff --git a/debian/installer/modules/i386/md-modules b/debian/installer/modules/i386/md-modules
new file mode 100644
index 000000000..ade088ddb
--- /dev/null
+++ b/debian/installer/modules/i386/md-modules
@@ -0,0 +1,2 @@
+#include <md-modules>
+
diff --git a/debian/installer/modules/i386/mmc-core-modules b/debian/installer/modules/i386/mmc-core-modules
new file mode 100644
index 000000000..7bf38465c
--- /dev/null
+++ b/debian/installer/modules/i386/mmc-core-modules
@@ -0,0 +1 @@
+#include <mmc-core-modules>
diff --git a/debian/installer/modules/i386/mmc-modules b/debian/installer/modules/i386/mmc-modules
new file mode 100644
index 000000000..dadfd5334
--- /dev/null
+++ b/debian/installer/modules/i386/mmc-modules
@@ -0,0 +1 @@
+#include <mmc-modules>
diff --git a/debian/installer/modules/i386/mouse-modules b/debian/installer/modules/i386/mouse-modules
new file mode 100644
index 000000000..15fcb00ea
--- /dev/null
+++ b/debian/installer/modules/i386/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
diff --git a/debian/installer/modules/i386/mtd-core-modules b/debian/installer/modules/i386/mtd-core-modules
new file mode 100644
index 000000000..28fdada60
--- /dev/null
+++ b/debian/installer/modules/i386/mtd-core-modules
@@ -0,0 +1 @@
+#include <mtd-core-modules>
diff --git a/debian/installer/modules/i386/multipath-modules b/debian/installer/modules/i386/multipath-modules
new file mode 100644
index 000000000..a8b69b253
--- /dev/null
+++ b/debian/installer/modules/i386/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
diff --git a/debian/installer/modules/i386/nbd-modules b/debian/installer/modules/i386/nbd-modules
new file mode 100644
index 000000000..3c9b3e5d4
--- /dev/null
+++ b/debian/installer/modules/i386/nbd-modules
@@ -0,0 +1 @@
+#include <nbd-modules>
diff --git a/debian/installer/modules/i386/nic-modules b/debian/installer/modules/i386/nic-modules
new file mode 100644
index 000000000..2512e8395
--- /dev/null
+++ b/debian/installer/modules/i386/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
diff --git a/debian/installer/modules/i386/nic-pcmcia-modules b/debian/installer/modules/i386/nic-pcmcia-modules
new file mode 100644
index 000000000..7a0702cd5
--- /dev/null
+++ b/debian/installer/modules/i386/nic-pcmcia-modules
@@ -0,0 +1 @@
+#include <nic-pcmcia-modules>
diff --git a/debian/installer/modules/i386/nic-shared-modules b/debian/installer/modules/i386/nic-shared-modules
new file mode 100644
index 000000000..cc84b14dc
--- /dev/null
+++ b/debian/installer/modules/i386/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
diff --git a/debian/installer/modules/i386/nic-usb-modules b/debian/installer/modules/i386/nic-usb-modules
new file mode 100644
index 000000000..c479669b4
--- /dev/null
+++ b/debian/installer/modules/i386/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
diff --git a/debian/installer/modules/i386/nic-wireless-modules b/debian/installer/modules/i386/nic-wireless-modules
new file mode 100644
index 000000000..53fd18d7f
--- /dev/null
+++ b/debian/installer/modules/i386/nic-wireless-modules
@@ -0,0 +1 @@
+#include <nic-wireless-modules>
diff --git a/debian/installer/modules/i386/pata-modules b/debian/installer/modules/i386/pata-modules
new file mode 100644
index 000000000..8c4e514ae
--- /dev/null
+++ b/debian/installer/modules/i386/pata-modules
@@ -0,0 +1,2 @@
+#include <pata-modules>
+
diff --git a/debian/installer/modules/i386/pcmcia-modules b/debian/installer/modules/i386/pcmcia-modules
new file mode 100644
index 000000000..2bb5350fe
--- /dev/null
+++ b/debian/installer/modules/i386/pcmcia-modules
@@ -0,0 +1 @@
+#include <pcmcia-modules>
diff --git a/debian/installer/modules/i386/pcmcia-storage-modules b/debian/installer/modules/i386/pcmcia-storage-modules
new file mode 100644
index 000000000..f73ae5bb9
--- /dev/null
+++ b/debian/installer/modules/i386/pcmcia-storage-modules
@@ -0,0 +1 @@
+#include <pcmcia-storage-modules>
diff --git a/debian/installer/modules/i386/ppp-modules b/debian/installer/modules/i386/ppp-modules
new file mode 100644
index 000000000..f1ae9b3d1
--- /dev/null
+++ b/debian/installer/modules/i386/ppp-modules
@@ -0,0 +1,2 @@
+#include <ppp-modules>
+
diff --git a/debian/installer/modules/i386/sata-modules b/debian/installer/modules/i386/sata-modules
new file mode 100644
index 000000000..071cb860b
--- /dev/null
+++ b/debian/installer/modules/i386/sata-modules
@@ -0,0 +1,2 @@
+#include <sata-modules>
+
diff --git a/debian/installer/modules/i386/scsi-core-modules b/debian/installer/modules/i386/scsi-core-modules
new file mode 100644
index 000000000..778a022fa
--- /dev/null
+++ b/debian/installer/modules/i386/scsi-core-modules
@@ -0,0 +1,4 @@
+#include <scsi-core-modules>
+
+# Needed by hv_storvsc in hyperv-modules as well as scsi-modules
+scsi_transport_fc
diff --git a/debian/installer/modules/i386/scsi-modules b/debian/installer/modules/i386/scsi-modules
new file mode 100644
index 000000000..8909dfb79
--- /dev/null
+++ b/debian/installer/modules/i386/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
diff --git a/debian/installer/modules/i386/scsi-nic-modules b/debian/installer/modules/i386/scsi-nic-modules
new file mode 100644
index 000000000..089dd5dc6
--- /dev/null
+++ b/debian/installer/modules/i386/scsi-nic-modules
@@ -0,0 +1 @@
+#include <scsi-nic-modules>
diff --git a/debian/installer/modules/i386/serial-modules b/debian/installer/modules/i386/serial-modules
new file mode 100644
index 000000000..6ab8b8c35
--- /dev/null
+++ b/debian/installer/modules/i386/serial-modules
@@ -0,0 +1 @@
+#include <serial-modules>
diff --git a/debian/installer/modules/i386/sound-modules b/debian/installer/modules/i386/sound-modules
new file mode 100644
index 000000000..68395ab3d
--- /dev/null
+++ b/debian/installer/modules/i386/sound-modules
@@ -0,0 +1 @@
+#include <sound-modules>
diff --git a/debian/installer/modules/i386/speakup-modules b/debian/installer/modules/i386/speakup-modules
new file mode 100644
index 000000000..29592721a
--- /dev/null
+++ b/debian/installer/modules/i386/speakup-modules
@@ -0,0 +1 @@
+#include <speakup-modules>
diff --git a/debian/installer/modules/i386/squashfs-modules b/debian/installer/modules/i386/squashfs-modules
new file mode 100644
index 000000000..42d77887a
--- /dev/null
+++ b/debian/installer/modules/i386/squashfs-modules
@@ -0,0 +1 @@
+#include <squashfs-modules>
diff --git a/debian/installer/modules/i386/udf-modules b/debian/installer/modules/i386/udf-modules
new file mode 100644
index 000000000..b90d7ee9b
--- /dev/null
+++ b/debian/installer/modules/i386/udf-modules
@@ -0,0 +1 @@
+#include <udf-modules>
diff --git a/debian/installer/modules/i386/uinput-modules b/debian/installer/modules/i386/uinput-modules
new file mode 100644
index 000000000..58a833779
--- /dev/null
+++ b/debian/installer/modules/i386/uinput-modules
@@ -0,0 +1 @@
+#include <uinput-modules>
diff --git a/debian/installer/modules/i386/usb-modules b/debian/installer/modules/i386/usb-modules
new file mode 100644
index 000000000..c598dedd8
--- /dev/null
+++ b/debian/installer/modules/i386/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
diff --git a/debian/installer/modules/i386/usb-serial-modules b/debian/installer/modules/i386/usb-serial-modules
new file mode 100644
index 000000000..c0a0dc3bd
--- /dev/null
+++ b/debian/installer/modules/i386/usb-serial-modules
@@ -0,0 +1 @@
+#include <usb-serial-modules>
diff --git a/debian/installer/modules/i386/usb-storage-modules b/debian/installer/modules/i386/usb-storage-modules
new file mode 100644
index 000000000..272d95e2e
--- /dev/null
+++ b/debian/installer/modules/i386/usb-storage-modules
@@ -0,0 +1,2 @@
+#include <usb-storage-modules>
+
diff --git a/debian/installer/modules/i386/xfs-modules b/debian/installer/modules/i386/xfs-modules
new file mode 100644
index 000000000..c020b5d39
--- /dev/null
+++ b/debian/installer/modules/i386/xfs-modules
@@ -0,0 +1,2 @@
+#include <xfs-modules>
+
diff --git a/debian/installer/modules/ia64/ata-modules b/debian/installer/modules/ia64/ata-modules
new file mode 100644
index 000000000..b81c0f38b
--- /dev/null
+++ b/debian/installer/modules/ia64/ata-modules
@@ -0,0 +1 @@
+#include <ata-modules>
diff --git a/debian/installer/modules/ia64/btrfs-modules b/debian/installer/modules/ia64/btrfs-modules
new file mode 100644
index 000000000..e261e1388
--- /dev/null
+++ b/debian/installer/modules/ia64/btrfs-modules
@@ -0,0 +1 @@
+#include <btrfs-modules>
diff --git a/debian/installer/modules/ia64/cdrom-core-modules b/debian/installer/modules/ia64/cdrom-core-modules
new file mode 100644
index 000000000..2c6b1565d
--- /dev/null
+++ b/debian/installer/modules/ia64/cdrom-core-modules
@@ -0,0 +1,2 @@
+#include <cdrom-core-modules>
+ide-cd_mod
diff --git a/debian/installer/modules/ia64/compress-modules b/debian/installer/modules/ia64/compress-modules
new file mode 100644
index 000000000..804616619
--- /dev/null
+++ b/debian/installer/modules/ia64/compress-modules
@@ -0,0 +1 @@
+#include <compress-modules>
diff --git a/debian/installer/modules/ia64/crc-modules b/debian/installer/modules/ia64/crc-modules
new file mode 100644
index 000000000..a642ead8b
--- /dev/null
+++ b/debian/installer/modules/ia64/crc-modules
@@ -0,0 +1,2 @@
+#include <crc-modules>
+
diff --git a/debian/installer/modules/ia64/crypto-dm-modules b/debian/installer/modules/ia64/crypto-dm-modules
new file mode 100644
index 000000000..4c8f2354c
--- /dev/null
+++ b/debian/installer/modules/ia64/crypto-dm-modules
@@ -0,0 +1 @@
+#include <crypto-dm-modules>
diff --git a/debian/installer/modules/ia64/crypto-modules b/debian/installer/modules/ia64/crypto-modules
new file mode 100644
index 000000000..3a1e862b4
--- /dev/null
+++ b/debian/installer/modules/ia64/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
diff --git a/debian/installer/modules/ia64/event-modules b/debian/installer/modules/ia64/event-modules
new file mode 100644
index 000000000..f8819afd3
--- /dev/null
+++ b/debian/installer/modules/ia64/event-modules
@@ -0,0 +1 @@
+#include <event-modules>
diff --git a/debian/installer/modules/ia64/ext4-modules b/debian/installer/modules/ia64/ext4-modules
new file mode 100644
index 000000000..394c577ce
--- /dev/null
+++ b/debian/installer/modules/ia64/ext4-modules
@@ -0,0 +1 @@
+#include <ext4-modules>
diff --git a/debian/installer/modules/ia64/fat-modules b/debian/installer/modules/ia64/fat-modules
new file mode 100644
index 000000000..274584eb6
--- /dev/null
+++ b/debian/installer/modules/ia64/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
diff --git a/debian/installer/modules/ia64/fb-modules b/debian/installer/modules/ia64/fb-modules
new file mode 100644
index 000000000..1442c89f9
--- /dev/null
+++ b/debian/installer/modules/ia64/fb-modules
@@ -0,0 +1,2 @@
+fbcon ?
+vgastate
diff --git a/debian/installer/modules/ia64/firewire-core-modules b/debian/installer/modules/ia64/firewire-core-modules
new file mode 100644
index 000000000..8e5fff165
--- /dev/null
+++ b/debian/installer/modules/ia64/firewire-core-modules
@@ -0,0 +1,2 @@
+#include <firewire-core-modules>
+
diff --git a/debian/installer/modules/ia64/fuse-modules b/debian/installer/modules/ia64/fuse-modules
new file mode 100644
index 000000000..0b6ba0c8c
--- /dev/null
+++ b/debian/installer/modules/ia64/fuse-modules
@@ -0,0 +1 @@
+#include <fuse-modules>
diff --git a/debian/installer/modules/ia64/i2c-modules b/debian/installer/modules/ia64/i2c-modules
new file mode 100644
index 000000000..203a607e7
--- /dev/null
+++ b/debian/installer/modules/ia64/i2c-modules
@@ -0,0 +1 @@
+#include <i2c-modules>
diff --git a/debian/installer/modules/ia64/ide-core-modules b/debian/installer/modules/ia64/ide-core-modules
new file mode 100644
index 000000000..96284d155
--- /dev/null
+++ b/debian/installer/modules/ia64/ide-core-modules
@@ -0,0 +1 @@
+ide-core
diff --git a/debian/installer/modules/ia64/ide-modules b/debian/installer/modules/ia64/ide-modules
new file mode 100644
index 000000000..3bbc4df76
--- /dev/null
+++ b/debian/installer/modules/ia64/ide-modules
@@ -0,0 +1,3 @@
+ide-gd_mod
+sgiioc4
+trm290
diff --git a/debian/installer/modules/ia64/input-modules b/debian/installer/modules/ia64/input-modules
new file mode 100644
index 000000000..5ecb595a4
--- /dev/null
+++ b/debian/installer/modules/ia64/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
diff --git a/debian/installer/modules/ia64/isofs-modules b/debian/installer/modules/ia64/isofs-modules
new file mode 100644
index 000000000..da4fa9a3c
--- /dev/null
+++ b/debian/installer/modules/ia64/isofs-modules
@@ -0,0 +1 @@
+#include <isofs-modules>
diff --git a/debian/installer/modules/ia64/jfs-modules b/debian/installer/modules/ia64/jfs-modules
new file mode 100644
index 000000000..7e4d912b9
--- /dev/null
+++ b/debian/installer/modules/ia64/jfs-modules
@@ -0,0 +1 @@
+#include <jfs-modules>
diff --git a/debian/installer/modules/ia64/kernel-image b/debian/installer/modules/ia64/kernel-image
new file mode 100644
index 000000000..1d11b1921
--- /dev/null
+++ b/debian/installer/modules/ia64/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
diff --git a/debian/installer/modules/ia64/loop-modules b/debian/installer/modules/ia64/loop-modules
new file mode 100644
index 000000000..164467713
--- /dev/null
+++ b/debian/installer/modules/ia64/loop-modules
@@ -0,0 +1,2 @@
+#include <loop-modules>
+
diff --git a/debian/installer/modules/ia64/md-modules b/debian/installer/modules/ia64/md-modules
new file mode 100644
index 000000000..ade088ddb
--- /dev/null
+++ b/debian/installer/modules/ia64/md-modules
@@ -0,0 +1,2 @@
+#include <md-modules>
+
diff --git a/debian/installer/modules/ia64/mouse-modules b/debian/installer/modules/ia64/mouse-modules
new file mode 100644
index 000000000..15fcb00ea
--- /dev/null
+++ b/debian/installer/modules/ia64/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
diff --git a/debian/installer/modules/ia64/mtd-core-modules b/debian/installer/modules/ia64/mtd-core-modules
new file mode 100644
index 000000000..28fdada60
--- /dev/null
+++ b/debian/installer/modules/ia64/mtd-core-modules
@@ -0,0 +1 @@
+#include <mtd-core-modules>
diff --git a/debian/installer/modules/ia64/multipath-modules b/debian/installer/modules/ia64/multipath-modules
new file mode 100644
index 000000000..a8b69b253
--- /dev/null
+++ b/debian/installer/modules/ia64/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
diff --git a/debian/installer/modules/ia64/nbd-modules b/debian/installer/modules/ia64/nbd-modules
new file mode 100644
index 000000000..3c9b3e5d4
--- /dev/null
+++ b/debian/installer/modules/ia64/nbd-modules
@@ -0,0 +1 @@
+#include <nbd-modules>
diff --git a/debian/installer/modules/ia64/nic-modules b/debian/installer/modules/ia64/nic-modules
new file mode 100644
index 000000000..2512e8395
--- /dev/null
+++ b/debian/installer/modules/ia64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
diff --git a/debian/installer/modules/ia64/nic-shared-modules b/debian/installer/modules/ia64/nic-shared-modules
new file mode 100644
index 000000000..cc84b14dc
--- /dev/null
+++ b/debian/installer/modules/ia64/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
diff --git a/debian/installer/modules/ia64/nic-usb-modules b/debian/installer/modules/ia64/nic-usb-modules
new file mode 100644
index 000000000..c479669b4
--- /dev/null
+++ b/debian/installer/modules/ia64/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
diff --git a/debian/installer/modules/ia64/pata-modules b/debian/installer/modules/ia64/pata-modules
new file mode 100644
index 000000000..b0cd6337a
--- /dev/null
+++ b/debian/installer/modules/ia64/pata-modules
@@ -0,0 +1 @@
+#include <pata-modules>
diff --git a/debian/installer/modules/ia64/pcmcia-modules b/debian/installer/modules/ia64/pcmcia-modules
new file mode 100644
index 000000000..d7a54f360
--- /dev/null
+++ b/debian/installer/modules/ia64/pcmcia-modules
@@ -0,0 +1,4 @@
+pcmcia
+pcmcia_core
+pd6729
+rsrc_nonstatic ?
diff --git a/debian/installer/modules/ia64/ppp-modules b/debian/installer/modules/ia64/ppp-modules
new file mode 100644
index 000000000..f1ae9b3d1
--- /dev/null
+++ b/debian/installer/modules/ia64/ppp-modules
@@ -0,0 +1,2 @@
+#include <ppp-modules>
+
diff --git a/debian/installer/modules/ia64/sata-modules b/debian/installer/modules/ia64/sata-modules
new file mode 100644
index 000000000..071cb860b
--- /dev/null
+++ b/debian/installer/modules/ia64/sata-modules
@@ -0,0 +1,2 @@
+#include <sata-modules>
+
diff --git a/debian/installer/modules/ia64/scsi-core-modules b/debian/installer/modules/ia64/scsi-core-modules
new file mode 100644
index 000000000..dd65d6614
--- /dev/null
+++ b/debian/installer/modules/ia64/scsi-core-modules
@@ -0,0 +1 @@
+#include <scsi-core-modules>
diff --git a/debian/installer/modules/ia64/scsi-modules b/debian/installer/modules/ia64/scsi-modules
new file mode 100644
index 000000000..8909dfb79
--- /dev/null
+++ b/debian/installer/modules/ia64/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
diff --git a/debian/installer/modules/ia64/scsi-nic-modules b/debian/installer/modules/ia64/scsi-nic-modules
new file mode 100644
index 000000000..089dd5dc6
--- /dev/null
+++ b/debian/installer/modules/ia64/scsi-nic-modules
@@ -0,0 +1 @@
+#include <scsi-nic-modules>
diff --git a/debian/installer/modules/ia64/serial-modules b/debian/installer/modules/ia64/serial-modules
new file mode 100644
index 000000000..13dac04fe
--- /dev/null
+++ b/debian/installer/modules/ia64/serial-modules
@@ -0,0 +1,3 @@
+#include <serial-modules>
+ioc3_serial
+ioc4_serial
diff --git a/debian/installer/modules/ia64/sn-modules b/debian/installer/modules/ia64/sn-modules
new file mode 100644
index 000000000..4274c5f89
--- /dev/null
+++ b/debian/installer/modules/ia64/sn-modules
@@ -0,0 +1,2 @@
+ioc3
+ioc4
diff --git a/debian/installer/modules/ia64/squashfs-modules b/debian/installer/modules/ia64/squashfs-modules
new file mode 100644
index 000000000..42d77887a
--- /dev/null
+++ b/debian/installer/modules/ia64/squashfs-modules
@@ -0,0 +1 @@
+#include <squashfs-modules>
diff --git a/debian/installer/modules/ia64/udf-modules b/debian/installer/modules/ia64/udf-modules
new file mode 100644
index 000000000..b90d7ee9b
--- /dev/null
+++ b/debian/installer/modules/ia64/udf-modules
@@ -0,0 +1 @@
+#include <udf-modules>
diff --git a/debian/installer/modules/ia64/uinput-modules b/debian/installer/modules/ia64/uinput-modules
new file mode 100644
index 000000000..58a833779
--- /dev/null
+++ b/debian/installer/modules/ia64/uinput-modules
@@ -0,0 +1 @@
+#include <uinput-modules>
diff --git a/debian/installer/modules/ia64/usb-modules b/debian/installer/modules/ia64/usb-modules
new file mode 100644
index 000000000..c598dedd8
--- /dev/null
+++ b/debian/installer/modules/ia64/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
diff --git a/debian/installer/modules/ia64/usb-serial-modules b/debian/installer/modules/ia64/usb-serial-modules
new file mode 100644
index 000000000..c0a0dc3bd
--- /dev/null
+++ b/debian/installer/modules/ia64/usb-serial-modules
@@ -0,0 +1 @@
+#include <usb-serial-modules>
diff --git a/debian/installer/modules/ia64/usb-storage-modules b/debian/installer/modules/ia64/usb-storage-modules
new file mode 100644
index 000000000..272d95e2e
--- /dev/null
+++ b/debian/installer/modules/ia64/usb-storage-modules
@@ -0,0 +1,2 @@
+#include <usb-storage-modules>
+
diff --git a/debian/installer/modules/ia64/xfs-modules b/debian/installer/modules/ia64/xfs-modules
new file mode 100644
index 000000000..c020b5d39
--- /dev/null
+++ b/debian/installer/modules/ia64/xfs-modules
@@ -0,0 +1,2 @@
+#include <xfs-modules>
+
diff --git a/debian/installer/modules/input-modules b/debian/installer/modules/input-modules
new file mode 100644
index 000000000..0f219fa75
--- /dev/null
+++ b/debian/installer/modules/input-modules
@@ -0,0 +1,42 @@
+# Include HID drivers by default
+drivers/hid/**
+
+# Include keyboards
+drivers/input/keyboard/** ?
+
+# Exclude drivers for anything but keyboard and mouse/trackball/touchpad
+drivers/hid/hid-*ff -
+hid-dr -
+hid-elecom -
+hid-gyration -
+hid-icade -
+hid-lcpower -
+hid-ntrig -
+hid-petalynx -
+hid-picolcd -
+hid-pl -
+hid-prodikeys -
+hid-ps3remote -
+hid-quanta -
+drivers/hid/hid-roccat-ko* -
+hid-roccat-pyra -
+hid-saitek -
+hid-sensor-hub -
+hid-sony -
+hid-tivo -
+hid-twinhan -
+hid-uclogic -
+hid-wacom -
+hid-waltop -
+hid-wiimote -
+hid-zydacron -
+wacom -
+
+# Miscellaneous input drivers
+synaptics_usb ?
+wistron_btns ?
+gpio_keys ?
+soc_button_array ?
+hyperv-keyboard ?
+virtio_console ?
+virtio_input ?
diff --git a/debian/installer/modules/ipv6-modules b/debian/installer/modules/ipv6-modules
new file mode 100644
index 000000000..13ac34b44
--- /dev/null
+++ b/debian/installer/modules/ipv6-modules
@@ -0,0 +1 @@
+ipv6
diff --git a/debian/installer/modules/isofs-modules b/debian/installer/modules/isofs-modules
new file mode 100644
index 000000000..0f41779b7
--- /dev/null
+++ b/debian/installer/modules/isofs-modules
@@ -0,0 +1 @@
+isofs
diff --git a/debian/installer/modules/jffs2-modules b/debian/installer/modules/jffs2-modules
new file mode 100644
index 000000000..19f4e1094
--- /dev/null
+++ b/debian/installer/modules/jffs2-modules
@@ -0,0 +1 @@
+jffs2
diff --git a/debian/installer/modules/jfs-modules b/debian/installer/modules/jfs-modules
new file mode 100644
index 000000000..aa604c468
--- /dev/null
+++ b/debian/installer/modules/jfs-modules
@@ -0,0 +1 @@
+jfs
diff --git a/debian/installer/modules/kernel-image b/debian/installer/modules/kernel-image
new file mode 100644
index 000000000..e73244041
--- /dev/null
+++ b/debian/installer/modules/kernel-image
@@ -0,0 +1,22 @@
+af_packet
+bitrev ?
+eeprom_93cx6 ?
+firmware_class
+led-class ?
+mbcache
+mfd-core ?
+nls_base
+# Default I/O charset for most filesystems that do character conversion
+nls_utf8
+
+# Basic paravirtual modules
+hv_utils ?
+hv_vmbus ?
+virtio ?
+virtio_balloon ?
+virtio_mmio ?
+virtio_pci ?
+virtio_ring ?
+
+# The installer generally needs good entropy sources
+drivers/char/hw_random/**
diff --git a/debian/installer/modules/leds-modules b/debian/installer/modules/leds-modules
new file mode 100644
index 000000000..fef2e5303
--- /dev/null
+++ b/debian/installer/modules/leds-modules
@@ -0,0 +1 @@
+leds-gpio
diff --git a/debian/installer/modules/loop-modules b/debian/installer/modules/loop-modules
new file mode 100644
index 000000000..1ef2ddf24
--- /dev/null
+++ b/debian/installer/modules/loop-modules
@@ -0,0 +1 @@
+loop
diff --git a/debian/installer/modules/m68k/affs-modules b/debian/installer/modules/m68k/affs-modules
new file mode 100644
index 000000000..21d616a1c
--- /dev/null
+++ b/debian/installer/modules/m68k/affs-modules
@@ -0,0 +1 @@
+#include <affs-modules>
diff --git a/debian/installer/modules/m68k/ata-modules b/debian/installer/modules/m68k/ata-modules
new file mode 100644
index 000000000..04d9c8841
--- /dev/null
+++ b/debian/installer/modules/m68k/ata-modules
@@ -0,0 +1 @@
+libata
diff --git a/debian/installer/modules/m68k/btrfs-modules b/debian/installer/modules/m68k/btrfs-modules
new file mode 100644
index 000000000..e261e1388
--- /dev/null
+++ b/debian/installer/modules/m68k/btrfs-modules
@@ -0,0 +1 @@
+#include <btrfs-modules>
diff --git a/debian/installer/modules/m68k/cdrom-core-modules b/debian/installer/modules/m68k/cdrom-core-modules
new file mode 100644
index 000000000..71cccaeaa
--- /dev/null
+++ b/debian/installer/modules/m68k/cdrom-core-modules
@@ -0,0 +1,3 @@
+#include <cdrom-core-modules>
+
+ide-cd_mod
diff --git a/debian/installer/modules/m68k/compress-modules b/debian/installer/modules/m68k/compress-modules
new file mode 100644
index 000000000..804616619
--- /dev/null
+++ b/debian/installer/modules/m68k/compress-modules
@@ -0,0 +1 @@
+#include <compress-modules>
diff --git a/debian/installer/modules/m68k/crc-modules b/debian/installer/modules/m68k/crc-modules
new file mode 100644
index 000000000..7e00de705
--- /dev/null
+++ b/debian/installer/modules/m68k/crc-modules
@@ -0,0 +1 @@
+#include <crc-modules>
diff --git a/debian/installer/modules/m68k/crypto-modules b/debian/installer/modules/m68k/crypto-modules
new file mode 100644
index 000000000..3a1e862b4
--- /dev/null
+++ b/debian/installer/modules/m68k/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
diff --git a/debian/installer/modules/m68k/ext4-modules b/debian/installer/modules/m68k/ext4-modules
new file mode 100644
index 000000000..394c577ce
--- /dev/null
+++ b/debian/installer/modules/m68k/ext4-modules
@@ -0,0 +1 @@
+#include <ext4-modules>
diff --git a/debian/installer/modules/m68k/fat-modules b/debian/installer/modules/m68k/fat-modules
new file mode 100644
index 000000000..274584eb6
--- /dev/null
+++ b/debian/installer/modules/m68k/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
diff --git a/debian/installer/modules/m68k/fuse-modules b/debian/installer/modules/m68k/fuse-modules
new file mode 100644
index 000000000..0b6ba0c8c
--- /dev/null
+++ b/debian/installer/modules/m68k/fuse-modules
@@ -0,0 +1 @@
+#include <fuse-modules>
diff --git a/debian/installer/modules/m68k/hfs-modules b/debian/installer/modules/m68k/hfs-modules
new file mode 100644
index 000000000..57d12f649
--- /dev/null
+++ b/debian/installer/modules/m68k/hfs-modules
@@ -0,0 +1 @@
+#include <hfs-modules>
diff --git a/debian/installer/modules/m68k/ide-core-modules b/debian/installer/modules/m68k/ide-core-modules
new file mode 100644
index 000000000..96284d155
--- /dev/null
+++ b/debian/installer/modules/m68k/ide-core-modules
@@ -0,0 +1 @@
+ide-core
diff --git a/debian/installer/modules/m68k/ide-modules b/debian/installer/modules/m68k/ide-modules
new file mode 100644
index 000000000..b01a92755
--- /dev/null
+++ b/debian/installer/modules/m68k/ide-modules
@@ -0,0 +1,6 @@
+buddha
+falconide
+gayle
+ide-gd_mod
+macide
+q40ide
diff --git a/debian/installer/modules/m68k/isofs-modules b/debian/installer/modules/m68k/isofs-modules
new file mode 100644
index 000000000..da4fa9a3c
--- /dev/null
+++ b/debian/installer/modules/m68k/isofs-modules
@@ -0,0 +1 @@
+#include <isofs-modules>
diff --git a/debian/installer/modules/m68k/kernel-image b/debian/installer/modules/m68k/kernel-image
new file mode 100644
index 000000000..1d11b1921
--- /dev/null
+++ b/debian/installer/modules/m68k/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
diff --git a/debian/installer/modules/m68k/loop-modules b/debian/installer/modules/m68k/loop-modules
new file mode 100644
index 000000000..c1c948fa3
--- /dev/null
+++ b/debian/installer/modules/m68k/loop-modules
@@ -0,0 +1 @@
+#include <loop-modules>
diff --git a/debian/installer/modules/m68k/md-modules b/debian/installer/modules/m68k/md-modules
new file mode 100644
index 000000000..26115e10b
--- /dev/null
+++ b/debian/installer/modules/m68k/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
diff --git a/debian/installer/modules/m68k/nbd-modules b/debian/installer/modules/m68k/nbd-modules
new file mode 100644
index 000000000..3c9b3e5d4
--- /dev/null
+++ b/debian/installer/modules/m68k/nbd-modules
@@ -0,0 +1 @@
+#include <nbd-modules>
diff --git a/debian/installer/modules/m68k/nic-modules b/debian/installer/modules/m68k/nic-modules
new file mode 100644
index 000000000..2512e8395
--- /dev/null
+++ b/debian/installer/modules/m68k/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
diff --git a/debian/installer/modules/m68k/nic-shared-modules b/debian/installer/modules/m68k/nic-shared-modules
new file mode 100644
index 000000000..cc84b14dc
--- /dev/null
+++ b/debian/installer/modules/m68k/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
diff --git a/debian/installer/modules/m68k/pata-modules b/debian/installer/modules/m68k/pata-modules
new file mode 100644
index 000000000..b0cd6337a
--- /dev/null
+++ b/debian/installer/modules/m68k/pata-modules
@@ -0,0 +1 @@
+#include <pata-modules>
diff --git a/debian/installer/modules/m68k/ppp-modules b/debian/installer/modules/m68k/ppp-modules
new file mode 100644
index 000000000..1f26aa1ee
--- /dev/null
+++ b/debian/installer/modules/m68k/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
diff --git a/debian/installer/modules/m68k/scsi-core-modules b/debian/installer/modules/m68k/scsi-core-modules
new file mode 100644
index 000000000..dd65d6614
--- /dev/null
+++ b/debian/installer/modules/m68k/scsi-core-modules
@@ -0,0 +1 @@
+#include <scsi-core-modules>
diff --git a/debian/installer/modules/m68k/scsi-modules b/debian/installer/modules/m68k/scsi-modules
new file mode 100644
index 000000000..f2956ef95
--- /dev/null
+++ b/debian/installer/modules/m68k/scsi-modules
@@ -0,0 +1,13 @@
+sg
+
+a2091
+a3000
+a4000t
+atari_scsi
+bvme6000_scsi
+gvp11
+mac_esp
+mac_scsi
+mvme16x_scsi
+zorro7xx
+zorro_esp
diff --git a/debian/installer/modules/m68k/squashfs-modules b/debian/installer/modules/m68k/squashfs-modules
new file mode 100644
index 000000000..42d77887a
--- /dev/null
+++ b/debian/installer/modules/m68k/squashfs-modules
@@ -0,0 +1 @@
+#include <squashfs-modules>
diff --git a/debian/installer/modules/m68k/udf-modules b/debian/installer/modules/m68k/udf-modules
new file mode 100644
index 000000000..b90d7ee9b
--- /dev/null
+++ b/debian/installer/modules/m68k/udf-modules
@@ -0,0 +1 @@
+#include <udf-modules>
diff --git a/debian/installer/modules/m68k/zlib-modules b/debian/installer/modules/m68k/zlib-modules
new file mode 100644
index 000000000..e02ad64bf
--- /dev/null
+++ b/debian/installer/modules/m68k/zlib-modules
@@ -0,0 +1 @@
+#include <zlib-modules>
diff --git a/debian/installer/modules/md-modules b/debian/installer/modules/md-modules
new file mode 100644
index 000000000..d4f710406
--- /dev/null
+++ b/debian/installer/modules/md-modules
@@ -0,0 +1,16 @@
+linear
+md-mod
+dm-mod
+multipath
+raid0
+raid1
+raid456
+raid10
+dm-mirror
+dm-raid
+dm-snapshot
+bcache
+
+# RAID-related libraries, also used by btrfs
+raid6_pq
+xor
diff --git a/debian/installer/modules/minix-modules b/debian/installer/modules/minix-modules
new file mode 100644
index 000000000..aa6ca5db6
--- /dev/null
+++ b/debian/installer/modules/minix-modules
@@ -0,0 +1 @@
+minix
diff --git a/debian/installer/modules/mips-4kc-malta/affs-modules b/debian/installer/modules/mips-4kc-malta/affs-modules
new file mode 100644
index 000000000..21d616a1c
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/affs-modules
@@ -0,0 +1 @@
+#include <affs-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/ata-modules b/debian/installer/modules/mips-4kc-malta/ata-modules
new file mode 100644
index 000000000..b81c0f38b
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/ata-modules
@@ -0,0 +1 @@
+#include <ata-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/btrfs-modules b/debian/installer/modules/mips-4kc-malta/btrfs-modules
new file mode 100644
index 000000000..e261e1388
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/btrfs-modules
@@ -0,0 +1 @@
+#include <btrfs-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/cdrom-core-modules b/debian/installer/modules/mips-4kc-malta/cdrom-core-modules
new file mode 100644
index 000000000..3ff69b48f
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/cdrom-core-modules
@@ -0,0 +1 @@
+#include <cdrom-core-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/compress-modules b/debian/installer/modules/mips-4kc-malta/compress-modules
new file mode 100644
index 000000000..804616619
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/compress-modules
@@ -0,0 +1 @@
+#include <compress-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/crc-modules b/debian/installer/modules/mips-4kc-malta/crc-modules
new file mode 100644
index 000000000..7e00de705
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/crc-modules
@@ -0,0 +1 @@
+#include <crc-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/crypto-dm-modules b/debian/installer/modules/mips-4kc-malta/crypto-dm-modules
new file mode 100644
index 000000000..4c8f2354c
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/crypto-dm-modules
@@ -0,0 +1 @@
+#include <crypto-dm-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/crypto-modules b/debian/installer/modules/mips-4kc-malta/crypto-modules
new file mode 100644
index 000000000..3a1e862b4
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/event-modules b/debian/installer/modules/mips-4kc-malta/event-modules
new file mode 100644
index 000000000..f8819afd3
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/event-modules
@@ -0,0 +1 @@
+#include <event-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/ext4-modules b/debian/installer/modules/mips-4kc-malta/ext4-modules
new file mode 100644
index 000000000..394c577ce
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/ext4-modules
@@ -0,0 +1 @@
+#include <ext4-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/fat-modules b/debian/installer/modules/mips-4kc-malta/fat-modules
new file mode 100644
index 000000000..274584eb6
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/fb-modules b/debian/installer/modules/mips-4kc-malta/fb-modules
new file mode 100644
index 000000000..aba524d90
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/fb-modules
@@ -0,0 +1 @@
+#include <fb-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/fuse-modules b/debian/installer/modules/mips-4kc-malta/fuse-modules
new file mode 100644
index 000000000..0b6ba0c8c
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/fuse-modules
@@ -0,0 +1 @@
+#include <fuse-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/hfs-modules b/debian/installer/modules/mips-4kc-malta/hfs-modules
new file mode 100644
index 000000000..57d12f649
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/hfs-modules
@@ -0,0 +1 @@
+#include <hfs-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/i2c-modules b/debian/installer/modules/mips-4kc-malta/i2c-modules
new file mode 100644
index 000000000..203a607e7
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/i2c-modules
@@ -0,0 +1 @@
+#include <i2c-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/input-modules b/debian/installer/modules/mips-4kc-malta/input-modules
new file mode 100644
index 000000000..5ecb595a4
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/isofs-modules b/debian/installer/modules/mips-4kc-malta/isofs-modules
new file mode 100644
index 000000000..da4fa9a3c
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/isofs-modules
@@ -0,0 +1 @@
+#include <isofs-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/jfs-modules b/debian/installer/modules/mips-4kc-malta/jfs-modules
new file mode 100644
index 000000000..7e4d912b9
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/jfs-modules
@@ -0,0 +1 @@
+#include <jfs-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/kernel-image b/debian/installer/modules/mips-4kc-malta/kernel-image
new file mode 100644
index 000000000..1d11b1921
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
diff --git a/debian/installer/modules/mips-4kc-malta/loop-modules b/debian/installer/modules/mips-4kc-malta/loop-modules
new file mode 100644
index 000000000..c1c948fa3
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/loop-modules
@@ -0,0 +1 @@
+#include <loop-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/md-modules b/debian/installer/modules/mips-4kc-malta/md-modules
new file mode 100644
index 000000000..26115e10b
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/minix-modules b/debian/installer/modules/mips-4kc-malta/minix-modules
new file mode 100644
index 000000000..82b984372
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/minix-modules
@@ -0,0 +1 @@
+#include <minix-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/mmc-core-modules b/debian/installer/modules/mips-4kc-malta/mmc-core-modules
new file mode 100644
index 000000000..7bf38465c
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/mmc-core-modules
@@ -0,0 +1 @@
+#include <mmc-core-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/mmc-modules b/debian/installer/modules/mips-4kc-malta/mmc-modules
new file mode 100644
index 000000000..dadfd5334
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/mmc-modules
@@ -0,0 +1 @@
+#include <mmc-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/mouse-modules b/debian/installer/modules/mips-4kc-malta/mouse-modules
new file mode 100644
index 000000000..15fcb00ea
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/mtd-core-modules b/debian/installer/modules/mips-4kc-malta/mtd-core-modules
new file mode 100644
index 000000000..28fdada60
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/mtd-core-modules
@@ -0,0 +1 @@
+#include <mtd-core-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/multipath-modules b/debian/installer/modules/mips-4kc-malta/multipath-modules
new file mode 100644
index 000000000..a8b69b253
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/nbd-modules b/debian/installer/modules/mips-4kc-malta/nbd-modules
new file mode 100644
index 000000000..3c9b3e5d4
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/nbd-modules
@@ -0,0 +1 @@
+#include <nbd-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/nic-modules b/debian/installer/modules/mips-4kc-malta/nic-modules
new file mode 100644
index 000000000..44a607e90
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/nic-modules
@@ -0,0 +1,4 @@
+#include <nic-modules>
+skfp -
+starfire -
+winbond-840 -
diff --git a/debian/installer/modules/mips-4kc-malta/nic-shared-modules b/debian/installer/modules/mips-4kc-malta/nic-shared-modules
new file mode 100644
index 000000000..cc84b14dc
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/nic-usb-modules b/debian/installer/modules/mips-4kc-malta/nic-usb-modules
new file mode 100644
index 000000000..c479669b4
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/nic-wireless-modules b/debian/installer/modules/mips-4kc-malta/nic-wireless-modules
new file mode 100644
index 000000000..53fd18d7f
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/nic-wireless-modules
@@ -0,0 +1 @@
+#include <nic-wireless-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/pata-modules b/debian/installer/modules/mips-4kc-malta/pata-modules
new file mode 100644
index 000000000..b0cd6337a
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/pata-modules
@@ -0,0 +1 @@
+#include <pata-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/ppp-modules b/debian/installer/modules/mips-4kc-malta/ppp-modules
new file mode 100644
index 000000000..1f26aa1ee
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/qnx4-modules b/debian/installer/modules/mips-4kc-malta/qnx4-modules
new file mode 100644
index 000000000..cd0c96d41
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/qnx4-modules
@@ -0,0 +1 @@
+#include <qnx4-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/sata-modules b/debian/installer/modules/mips-4kc-malta/sata-modules
new file mode 100644
index 000000000..01318c258
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/scsi-core-modules b/debian/installer/modules/mips-4kc-malta/scsi-core-modules
new file mode 100644
index 000000000..dd65d6614
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/scsi-core-modules
@@ -0,0 +1 @@
+#include <scsi-core-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/scsi-modules b/debian/installer/modules/mips-4kc-malta/scsi-modules
new file mode 100644
index 000000000..8909dfb79
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/scsi-nic-modules b/debian/installer/modules/mips-4kc-malta/scsi-nic-modules
new file mode 100644
index 000000000..089dd5dc6
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/scsi-nic-modules
@@ -0,0 +1 @@
+#include <scsi-nic-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/sound-modules b/debian/installer/modules/mips-4kc-malta/sound-modules
new file mode 100644
index 000000000..68395ab3d
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/sound-modules
@@ -0,0 +1 @@
+#include <sound-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/squashfs-modules b/debian/installer/modules/mips-4kc-malta/squashfs-modules
new file mode 100644
index 000000000..42d77887a
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/squashfs-modules
@@ -0,0 +1 @@
+#include <squashfs-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/udf-modules b/debian/installer/modules/mips-4kc-malta/udf-modules
new file mode 100644
index 000000000..b90d7ee9b
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/udf-modules
@@ -0,0 +1 @@
+#include <udf-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/usb-modules b/debian/installer/modules/mips-4kc-malta/usb-modules
new file mode 100644
index 000000000..c598dedd8
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/usb-serial-modules b/debian/installer/modules/mips-4kc-malta/usb-serial-modules
new file mode 100644
index 000000000..c0a0dc3bd
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/usb-serial-modules
@@ -0,0 +1 @@
+#include <usb-serial-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/usb-storage-modules b/debian/installer/modules/mips-4kc-malta/usb-storage-modules
new file mode 100644
index 000000000..8c5e81b55
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/usb-storage-modules
@@ -0,0 +1 @@
+#include <usb-storage-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/xfs-modules b/debian/installer/modules/mips-4kc-malta/xfs-modules
new file mode 100644
index 000000000..98374e2bb
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/xfs-modules
@@ -0,0 +1 @@
+#include <xfs-modules>
diff --git a/debian/installer/modules/mips-4kc-malta/zlib-modules b/debian/installer/modules/mips-4kc-malta/zlib-modules
new file mode 100644
index 000000000..e02ad64bf
--- /dev/null
+++ b/debian/installer/modules/mips-4kc-malta/zlib-modules
@@ -0,0 +1 @@
+#include <zlib-modules>
diff --git a/debian/installer/modules/mips-octeon/affs-modules b/debian/installer/modules/mips-octeon/affs-modules
new file mode 100644
index 000000000..21d616a1c
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/affs-modules
@@ -0,0 +1 @@
+#include <affs-modules>
diff --git a/debian/installer/modules/mips-octeon/btrfs-modules b/debian/installer/modules/mips-octeon/btrfs-modules
new file mode 100644
index 000000000..e261e1388
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/btrfs-modules
@@ -0,0 +1 @@
+#include <btrfs-modules>
diff --git a/debian/installer/modules/mips-octeon/cdrom-core-modules b/debian/installer/modules/mips-octeon/cdrom-core-modules
new file mode 100644
index 000000000..3ff69b48f
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/cdrom-core-modules
@@ -0,0 +1 @@
+#include <cdrom-core-modules>
diff --git a/debian/installer/modules/mips-octeon/compress-modules b/debian/installer/modules/mips-octeon/compress-modules
new file mode 100644
index 000000000..804616619
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/compress-modules
@@ -0,0 +1 @@
+#include <compress-modules>
diff --git a/debian/installer/modules/mips-octeon/crc-modules b/debian/installer/modules/mips-octeon/crc-modules
new file mode 100644
index 000000000..7e00de705
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/crc-modules
@@ -0,0 +1 @@
+#include <crc-modules>
diff --git a/debian/installer/modules/mips-octeon/crypto-dm-modules b/debian/installer/modules/mips-octeon/crypto-dm-modules
new file mode 100644
index 000000000..4c8f2354c
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/crypto-dm-modules
@@ -0,0 +1 @@
+#include <crypto-dm-modules>
diff --git a/debian/installer/modules/mips-octeon/crypto-modules b/debian/installer/modules/mips-octeon/crypto-modules
new file mode 100644
index 000000000..3a1e862b4
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
diff --git a/debian/installer/modules/mips-octeon/event-modules b/debian/installer/modules/mips-octeon/event-modules
new file mode 100644
index 000000000..f8819afd3
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/event-modules
@@ -0,0 +1 @@
+#include <event-modules>
diff --git a/debian/installer/modules/mips-octeon/ext4-modules b/debian/installer/modules/mips-octeon/ext4-modules
new file mode 100644
index 000000000..394c577ce
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/ext4-modules
@@ -0,0 +1 @@
+#include <ext4-modules>
diff --git a/debian/installer/modules/mips-octeon/fat-modules b/debian/installer/modules/mips-octeon/fat-modules
new file mode 100644
index 000000000..274584eb6
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
diff --git a/debian/installer/modules/mips-octeon/fuse-modules b/debian/installer/modules/mips-octeon/fuse-modules
new file mode 100644
index 000000000..0b6ba0c8c
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/fuse-modules
@@ -0,0 +1 @@
+#include <fuse-modules>
diff --git a/debian/installer/modules/mips-octeon/hfs-modules b/debian/installer/modules/mips-octeon/hfs-modules
new file mode 100644
index 000000000..57d12f649
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/hfs-modules
@@ -0,0 +1 @@
+#include <hfs-modules>
diff --git a/debian/installer/modules/mips-octeon/input-modules b/debian/installer/modules/mips-octeon/input-modules
new file mode 100644
index 000000000..5ecb595a4
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
diff --git a/debian/installer/modules/mips-octeon/isofs-modules b/debian/installer/modules/mips-octeon/isofs-modules
new file mode 100644
index 000000000..da4fa9a3c
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/isofs-modules
@@ -0,0 +1 @@
+#include <isofs-modules>
diff --git a/debian/installer/modules/mips-octeon/jfs-modules b/debian/installer/modules/mips-octeon/jfs-modules
new file mode 100644
index 000000000..7e4d912b9
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/jfs-modules
@@ -0,0 +1 @@
+#include <jfs-modules>
diff --git a/debian/installer/modules/mips-octeon/kernel-image b/debian/installer/modules/mips-octeon/kernel-image
new file mode 100644
index 000000000..1d11b1921
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
diff --git a/debian/installer/modules/mips-octeon/loop-modules b/debian/installer/modules/mips-octeon/loop-modules
new file mode 100644
index 000000000..c1c948fa3
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/loop-modules
@@ -0,0 +1 @@
+#include <loop-modules>
diff --git a/debian/installer/modules/mips-octeon/md-modules b/debian/installer/modules/mips-octeon/md-modules
new file mode 100644
index 000000000..26115e10b
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
diff --git a/debian/installer/modules/mips-octeon/minix-modules b/debian/installer/modules/mips-octeon/minix-modules
new file mode 100644
index 000000000..82b984372
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/minix-modules
@@ -0,0 +1 @@
+#include <minix-modules>
diff --git a/debian/installer/modules/mips-octeon/multipath-modules b/debian/installer/modules/mips-octeon/multipath-modules
new file mode 100644
index 000000000..a8b69b253
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
diff --git a/debian/installer/modules/mips-octeon/nbd-modules b/debian/installer/modules/mips-octeon/nbd-modules
new file mode 100644
index 000000000..3c9b3e5d4
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/nbd-modules
@@ -0,0 +1 @@
+#include <nbd-modules>
diff --git a/debian/installer/modules/mips-octeon/nic-modules b/debian/installer/modules/mips-octeon/nic-modules
new file mode 100644
index 000000000..3a2814f9e
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/nic-modules
@@ -0,0 +1,15 @@
+#include <nic-modules>
+8139cp -
+8139too -
+dmfe -
+e100 -
+epic100 -
+fealnx -
+natsemi -
+ne2k-pci -
+skfp -
+sundance -
+starfire -
+tulip -
+typhoon -
+winbond-840 -
diff --git a/debian/installer/modules/mips-octeon/nic-shared-modules b/debian/installer/modules/mips-octeon/nic-shared-modules
new file mode 100644
index 000000000..cc84b14dc
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
diff --git a/debian/installer/modules/mips-octeon/nic-usb-modules b/debian/installer/modules/mips-octeon/nic-usb-modules
new file mode 100644
index 000000000..c479669b4
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
diff --git a/debian/installer/modules/mips-octeon/nic-wireless-modules b/debian/installer/modules/mips-octeon/nic-wireless-modules
new file mode 100644
index 000000000..53fd18d7f
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/nic-wireless-modules
@@ -0,0 +1 @@
+#include <nic-wireless-modules>
diff --git a/debian/installer/modules/mips-octeon/pata-modules b/debian/installer/modules/mips-octeon/pata-modules
new file mode 100644
index 000000000..b0cd6337a
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/pata-modules
@@ -0,0 +1 @@
+#include <pata-modules>
diff --git a/debian/installer/modules/mips-octeon/ppp-modules b/debian/installer/modules/mips-octeon/ppp-modules
new file mode 100644
index 000000000..1f26aa1ee
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
diff --git a/debian/installer/modules/mips-octeon/qnx4-modules b/debian/installer/modules/mips-octeon/qnx4-modules
new file mode 100644
index 000000000..cd0c96d41
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/qnx4-modules
@@ -0,0 +1 @@
+#include <qnx4-modules>
diff --git a/debian/installer/modules/mips-octeon/rtc-modules b/debian/installer/modules/mips-octeon/rtc-modules
new file mode 100644
index 000000000..e20e792f2
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/rtc-modules
@@ -0,0 +1 @@
+#include <rtc-modules>
diff --git a/debian/installer/modules/mips-octeon/sata-modules b/debian/installer/modules/mips-octeon/sata-modules
new file mode 100644
index 000000000..01318c258
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
diff --git a/debian/installer/modules/mips-octeon/scsi-core-modules b/debian/installer/modules/mips-octeon/scsi-core-modules
new file mode 100644
index 000000000..dd65d6614
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/scsi-core-modules
@@ -0,0 +1 @@
+#include <scsi-core-modules>
diff --git a/debian/installer/modules/mips-octeon/scsi-modules b/debian/installer/modules/mips-octeon/scsi-modules
new file mode 100644
index 000000000..b9ea5de6f
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/scsi-modules
@@ -0,0 +1,5 @@
+#include <scsi-modules>
+DAC960 -
+dmx3191d -
+ips -
+sym53c8xx -
diff --git a/debian/installer/modules/mips-octeon/scsi-nic-modules b/debian/installer/modules/mips-octeon/scsi-nic-modules
new file mode 100644
index 000000000..089dd5dc6
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/scsi-nic-modules
@@ -0,0 +1 @@
+#include <scsi-nic-modules>
diff --git a/debian/installer/modules/mips-octeon/sound-modules b/debian/installer/modules/mips-octeon/sound-modules
new file mode 100644
index 000000000..68395ab3d
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/sound-modules
@@ -0,0 +1 @@
+#include <sound-modules>
diff --git a/debian/installer/modules/mips-octeon/squashfs-modules b/debian/installer/modules/mips-octeon/squashfs-modules
new file mode 100644
index 000000000..42d77887a
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/squashfs-modules
@@ -0,0 +1 @@
+#include <squashfs-modules>
diff --git a/debian/installer/modules/mips-octeon/udf-modules b/debian/installer/modules/mips-octeon/udf-modules
new file mode 100644
index 000000000..b90d7ee9b
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/udf-modules
@@ -0,0 +1 @@
+#include <udf-modules>
diff --git a/debian/installer/modules/mips-octeon/usb-modules b/debian/installer/modules/mips-octeon/usb-modules
new file mode 100644
index 000000000..6c3464a6c
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/usb-modules
@@ -0,0 +1,2 @@
+#include <usb-modules>
+octeon-hcd
diff --git a/debian/installer/modules/mips-octeon/usb-serial-modules b/debian/installer/modules/mips-octeon/usb-serial-modules
new file mode 100644
index 000000000..c0a0dc3bd
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/usb-serial-modules
@@ -0,0 +1 @@
+#include <usb-serial-modules>
diff --git a/debian/installer/modules/mips-octeon/usb-storage-modules b/debian/installer/modules/mips-octeon/usb-storage-modules
new file mode 100644
index 000000000..8c5e81b55
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/usb-storage-modules
@@ -0,0 +1 @@
+#include <usb-storage-modules>
diff --git a/debian/installer/modules/mips-octeon/xfs-modules b/debian/installer/modules/mips-octeon/xfs-modules
new file mode 100644
index 000000000..98374e2bb
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/xfs-modules
@@ -0,0 +1 @@
+#include <xfs-modules>
diff --git a/debian/installer/modules/mips-octeon/zlib-modules b/debian/installer/modules/mips-octeon/zlib-modules
new file mode 100644
index 000000000..e02ad64bf
--- /dev/null
+++ b/debian/installer/modules/mips-octeon/zlib-modules
@@ -0,0 +1 @@
+#include <zlib-modules>
diff --git a/debian/installer/modules/mips/btrfs-modules b/debian/installer/modules/mips/btrfs-modules
new file mode 100644
index 000000000..e261e1388
--- /dev/null
+++ b/debian/installer/modules/mips/btrfs-modules
@@ -0,0 +1 @@
+#include <btrfs-modules>
diff --git a/debian/installer/modules/mips/compress-modules b/debian/installer/modules/mips/compress-modules
new file mode 100644
index 000000000..804616619
--- /dev/null
+++ b/debian/installer/modules/mips/compress-modules
@@ -0,0 +1 @@
+#include <compress-modules>
diff --git a/debian/installer/modules/mips/crc-modules b/debian/installer/modules/mips/crc-modules
new file mode 100644
index 000000000..7e00de705
--- /dev/null
+++ b/debian/installer/modules/mips/crc-modules
@@ -0,0 +1 @@
+#include <crc-modules>
diff --git a/debian/installer/modules/mips/crypto-dm-modules b/debian/installer/modules/mips/crypto-dm-modules
new file mode 100644
index 000000000..4c8f2354c
--- /dev/null
+++ b/debian/installer/modules/mips/crypto-dm-modules
@@ -0,0 +1 @@
+#include <crypto-dm-modules>
diff --git a/debian/installer/modules/mips/crypto-modules b/debian/installer/modules/mips/crypto-modules
new file mode 100644
index 000000000..3a1e862b4
--- /dev/null
+++ b/debian/installer/modules/mips/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
diff --git a/debian/installer/modules/mips/ext4-modules b/debian/installer/modules/mips/ext4-modules
new file mode 100644
index 000000000..394c577ce
--- /dev/null
+++ b/debian/installer/modules/mips/ext4-modules
@@ -0,0 +1 @@
+#include <ext4-modules>
diff --git a/debian/installer/modules/mips/fuse-modules b/debian/installer/modules/mips/fuse-modules
new file mode 100644
index 000000000..0b6ba0c8c
--- /dev/null
+++ b/debian/installer/modules/mips/fuse-modules
@@ -0,0 +1 @@
+#include <fuse-modules>
diff --git a/debian/installer/modules/mips/isofs-modules b/debian/installer/modules/mips/isofs-modules
new file mode 100644
index 000000000..da4fa9a3c
--- /dev/null
+++ b/debian/installer/modules/mips/isofs-modules
@@ -0,0 +1 @@
+#include <isofs-modules>
diff --git a/debian/installer/modules/mips/jfs-modules b/debian/installer/modules/mips/jfs-modules
new file mode 100644
index 000000000..925a43a9e
--- /dev/null
+++ b/debian/installer/modules/mips/jfs-modules
@@ -0,0 +1,2 @@
+#include <jfs-modules>
+
diff --git a/debian/installer/modules/mips/kernel-image b/debian/installer/modules/mips/kernel-image
new file mode 100644
index 000000000..1d11b1921
--- /dev/null
+++ b/debian/installer/modules/mips/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
diff --git a/debian/installer/modules/mips/loop-modules b/debian/installer/modules/mips/loop-modules
new file mode 100644
index 000000000..164467713
--- /dev/null
+++ b/debian/installer/modules/mips/loop-modules
@@ -0,0 +1,2 @@
+#include <loop-modules>
+
diff --git a/debian/installer/modules/mips/md-modules b/debian/installer/modules/mips/md-modules
new file mode 100644
index 000000000..ade088ddb
--- /dev/null
+++ b/debian/installer/modules/mips/md-modules
@@ -0,0 +1,2 @@
+#include <md-modules>
+
diff --git a/debian/installer/modules/mips/multipath-modules b/debian/installer/modules/mips/multipath-modules
new file mode 100644
index 000000000..a8b69b253
--- /dev/null
+++ b/debian/installer/modules/mips/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
diff --git a/debian/installer/modules/mips/nbd-modules b/debian/installer/modules/mips/nbd-modules
new file mode 100644
index 000000000..3c9b3e5d4
--- /dev/null
+++ b/debian/installer/modules/mips/nbd-modules
@@ -0,0 +1 @@
+#include <nbd-modules>
diff --git a/debian/installer/modules/mips/nic-shared-modules b/debian/installer/modules/mips/nic-shared-modules
new file mode 100644
index 000000000..cc84b14dc
--- /dev/null
+++ b/debian/installer/modules/mips/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
diff --git a/debian/installer/modules/mips/squashfs-modules b/debian/installer/modules/mips/squashfs-modules
new file mode 100644
index 000000000..42d77887a
--- /dev/null
+++ b/debian/installer/modules/mips/squashfs-modules
@@ -0,0 +1 @@
+#include <squashfs-modules>
diff --git a/debian/installer/modules/mips/udf-modules b/debian/installer/modules/mips/udf-modules
new file mode 100644
index 000000000..b90d7ee9b
--- /dev/null
+++ b/debian/installer/modules/mips/udf-modules
@@ -0,0 +1 @@
+#include <udf-modules>
diff --git a/debian/installer/modules/mips/xfs-modules b/debian/installer/modules/mips/xfs-modules
new file mode 100644
index 000000000..c020b5d39
--- /dev/null
+++ b/debian/installer/modules/mips/xfs-modules
@@ -0,0 +1,2 @@
+#include <xfs-modules>
+
diff --git a/debian/installer/modules/mips/zlib-modules b/debian/installer/modules/mips/zlib-modules
new file mode 100644
index 000000000..e02ad64bf
--- /dev/null
+++ b/debian/installer/modules/mips/zlib-modules
@@ -0,0 +1 @@
+#include <zlib-modules>
diff --git a/debian/installer/modules/mips32r6 b/debian/installer/modules/mips32r6
new file mode 120000
index 000000000..af28acbd9
--- /dev/null
+++ b/debian/installer/modules/mips32r6
@@ -0,0 +1 @@
+mips \ No newline at end of file
diff --git a/debian/installer/modules/mips32r6el b/debian/installer/modules/mips32r6el
new file mode 120000
index 000000000..af28acbd9
--- /dev/null
+++ b/debian/installer/modules/mips32r6el
@@ -0,0 +1 @@
+mips \ No newline at end of file
diff --git a/debian/installer/modules/mips64 b/debian/installer/modules/mips64
new file mode 120000
index 000000000..af28acbd9
--- /dev/null
+++ b/debian/installer/modules/mips64
@@ -0,0 +1 @@
+mips \ No newline at end of file
diff --git a/debian/installer/modules/mips64-5kc-malta b/debian/installer/modules/mips64-5kc-malta
new file mode 120000
index 000000000..6bae6ca28
--- /dev/null
+++ b/debian/installer/modules/mips64-5kc-malta
@@ -0,0 +1 @@
+mips-4kc-malta \ No newline at end of file
diff --git a/debian/installer/modules/mips64-octeon b/debian/installer/modules/mips64-octeon
new file mode 120000
index 000000000..47b1b81ab
--- /dev/null
+++ b/debian/installer/modules/mips64-octeon
@@ -0,0 +1 @@
+mips-octeon \ No newline at end of file
diff --git a/debian/installer/modules/mips64el-5kc-malta b/debian/installer/modules/mips64el-5kc-malta
new file mode 120000
index 000000000..6bae6ca28
--- /dev/null
+++ b/debian/installer/modules/mips64el-5kc-malta
@@ -0,0 +1 @@
+mips-4kc-malta \ No newline at end of file
diff --git a/debian/installer/modules/mips64el-loongson-3 b/debian/installer/modules/mips64el-loongson-3
new file mode 120000
index 000000000..409be8354
--- /dev/null
+++ b/debian/installer/modules/mips64el-loongson-3
@@ -0,0 +1 @@
+mipsel-loongson-3 \ No newline at end of file
diff --git a/debian/installer/modules/mips64el-octeon b/debian/installer/modules/mips64el-octeon
new file mode 120000
index 000000000..47b1b81ab
--- /dev/null
+++ b/debian/installer/modules/mips64el-octeon
@@ -0,0 +1 @@
+mips-octeon \ No newline at end of file
diff --git a/debian/installer/modules/mips64r6 b/debian/installer/modules/mips64r6
new file mode 120000
index 000000000..af28acbd9
--- /dev/null
+++ b/debian/installer/modules/mips64r6
@@ -0,0 +1 @@
+mips \ No newline at end of file
diff --git a/debian/installer/modules/mips64r6el b/debian/installer/modules/mips64r6el
new file mode 120000
index 000000000..af28acbd9
--- /dev/null
+++ b/debian/installer/modules/mips64r6el
@@ -0,0 +1 @@
+mips \ No newline at end of file
diff --git a/debian/installer/modules/mipsel-4kc-malta b/debian/installer/modules/mipsel-4kc-malta
new file mode 120000
index 000000000..6bae6ca28
--- /dev/null
+++ b/debian/installer/modules/mipsel-4kc-malta
@@ -0,0 +1 @@
+mips-4kc-malta \ No newline at end of file
diff --git a/debian/installer/modules/mipsel-loongson-3/affs-modules b/debian/installer/modules/mipsel-loongson-3/affs-modules
new file mode 100644
index 000000000..21d616a1c
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/affs-modules
@@ -0,0 +1 @@
+#include <affs-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/ata-modules b/debian/installer/modules/mipsel-loongson-3/ata-modules
new file mode 100644
index 000000000..b81c0f38b
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/ata-modules
@@ -0,0 +1 @@
+#include <ata-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/btrfs-modules b/debian/installer/modules/mipsel-loongson-3/btrfs-modules
new file mode 100644
index 000000000..e261e1388
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/btrfs-modules
@@ -0,0 +1 @@
+#include <btrfs-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/cdrom-core-modules b/debian/installer/modules/mipsel-loongson-3/cdrom-core-modules
new file mode 100644
index 000000000..3ff69b48f
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/cdrom-core-modules
@@ -0,0 +1 @@
+#include <cdrom-core-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/compress-modules b/debian/installer/modules/mipsel-loongson-3/compress-modules
new file mode 100644
index 000000000..804616619
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/compress-modules
@@ -0,0 +1 @@
+#include <compress-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/crc-modules b/debian/installer/modules/mipsel-loongson-3/crc-modules
new file mode 100644
index 000000000..7e00de705
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/crc-modules
@@ -0,0 +1 @@
+#include <crc-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/crypto-dm-modules b/debian/installer/modules/mipsel-loongson-3/crypto-dm-modules
new file mode 100644
index 000000000..4c8f2354c
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/crypto-dm-modules
@@ -0,0 +1 @@
+#include <crypto-dm-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/crypto-modules b/debian/installer/modules/mipsel-loongson-3/crypto-modules
new file mode 100644
index 000000000..3a1e862b4
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/event-modules b/debian/installer/modules/mipsel-loongson-3/event-modules
new file mode 100644
index 000000000..f8819afd3
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/event-modules
@@ -0,0 +1 @@
+#include <event-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/ext4-modules b/debian/installer/modules/mipsel-loongson-3/ext4-modules
new file mode 100644
index 000000000..394c577ce
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/ext4-modules
@@ -0,0 +1 @@
+#include <ext4-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/fat-modules b/debian/installer/modules/mipsel-loongson-3/fat-modules
new file mode 100644
index 000000000..274584eb6
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/fb-modules b/debian/installer/modules/mipsel-loongson-3/fb-modules
new file mode 100644
index 000000000..0104d9ed3
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/fb-modules
@@ -0,0 +1,5 @@
+#include <fb-modules>
+
+radeon
+ast
+sm750fb
diff --git a/debian/installer/modules/mipsel-loongson-3/firewire-core-modules b/debian/installer/modules/mipsel-loongson-3/firewire-core-modules
new file mode 100644
index 000000000..dcac80af9
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/firewire-core-modules
@@ -0,0 +1 @@
+#include <firewire-core-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/fuse-modules b/debian/installer/modules/mipsel-loongson-3/fuse-modules
new file mode 100644
index 000000000..0b6ba0c8c
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/fuse-modules
@@ -0,0 +1 @@
+#include <fuse-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/hfs-modules b/debian/installer/modules/mipsel-loongson-3/hfs-modules
new file mode 100644
index 000000000..57d12f649
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/hfs-modules
@@ -0,0 +1 @@
+#include <hfs-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/input-modules b/debian/installer/modules/mipsel-loongson-3/input-modules
new file mode 100644
index 000000000..5ecb595a4
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/isofs-modules b/debian/installer/modules/mipsel-loongson-3/isofs-modules
new file mode 100644
index 000000000..da4fa9a3c
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/isofs-modules
@@ -0,0 +1 @@
+#include <isofs-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/jfs-modules b/debian/installer/modules/mipsel-loongson-3/jfs-modules
new file mode 100644
index 000000000..7e4d912b9
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/jfs-modules
@@ -0,0 +1 @@
+#include <jfs-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/kernel-image b/debian/installer/modules/mipsel-loongson-3/kernel-image
new file mode 100644
index 000000000..1d11b1921
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
diff --git a/debian/installer/modules/mipsel-loongson-3/loop-modules b/debian/installer/modules/mipsel-loongson-3/loop-modules
new file mode 100644
index 000000000..c1c948fa3
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/loop-modules
@@ -0,0 +1 @@
+#include <loop-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/md-modules b/debian/installer/modules/mipsel-loongson-3/md-modules
new file mode 100644
index 000000000..26115e10b
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/minix-modules b/debian/installer/modules/mipsel-loongson-3/minix-modules
new file mode 100644
index 000000000..82b984372
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/minix-modules
@@ -0,0 +1 @@
+#include <minix-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/mtd-core-modules b/debian/installer/modules/mipsel-loongson-3/mtd-core-modules
new file mode 100644
index 000000000..28fdada60
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/mtd-core-modules
@@ -0,0 +1 @@
+#include <mtd-core-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/multipath-modules b/debian/installer/modules/mipsel-loongson-3/multipath-modules
new file mode 100644
index 000000000..a8b69b253
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/nbd-modules b/debian/installer/modules/mipsel-loongson-3/nbd-modules
new file mode 100644
index 000000000..3c9b3e5d4
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/nbd-modules
@@ -0,0 +1 @@
+#include <nbd-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/nfs-modules b/debian/installer/modules/mipsel-loongson-3/nfs-modules
new file mode 100644
index 000000000..946fb8e44
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/nic-modules b/debian/installer/modules/mipsel-loongson-3/nic-modules
new file mode 100644
index 000000000..a2feefcfc
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/nic-modules
@@ -0,0 +1,11 @@
+#include <nic-modules>
+dmfe -
+epic100 -
+fealnx -
+natsemi -
+skfp -
+starfire -
+sundance -
+tulip -
+typhoon -
+winbond-840 -
diff --git a/debian/installer/modules/mipsel-loongson-3/nic-shared-modules b/debian/installer/modules/mipsel-loongson-3/nic-shared-modules
new file mode 100644
index 000000000..cc84b14dc
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/nic-usb-modules b/debian/installer/modules/mipsel-loongson-3/nic-usb-modules
new file mode 100644
index 000000000..c479669b4
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/nic-wireless-modules b/debian/installer/modules/mipsel-loongson-3/nic-wireless-modules
new file mode 100644
index 000000000..53fd18d7f
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/nic-wireless-modules
@@ -0,0 +1 @@
+#include <nic-wireless-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/pata-modules b/debian/installer/modules/mipsel-loongson-3/pata-modules
new file mode 100644
index 000000000..b0cd6337a
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/pata-modules
@@ -0,0 +1 @@
+#include <pata-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/ppp-modules b/debian/installer/modules/mipsel-loongson-3/ppp-modules
new file mode 100644
index 000000000..1f26aa1ee
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/qnx4-modules b/debian/installer/modules/mipsel-loongson-3/qnx4-modules
new file mode 100644
index 000000000..cd0c96d41
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/qnx4-modules
@@ -0,0 +1 @@
+#include <qnx4-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/sata-modules b/debian/installer/modules/mipsel-loongson-3/sata-modules
new file mode 100644
index 000000000..01318c258
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/scsi-core-modules b/debian/installer/modules/mipsel-loongson-3/scsi-core-modules
new file mode 100644
index 000000000..dd65d6614
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/scsi-core-modules
@@ -0,0 +1 @@
+#include <scsi-core-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/scsi-modules b/debian/installer/modules/mipsel-loongson-3/scsi-modules
new file mode 100644
index 000000000..b9ea5de6f
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/scsi-modules
@@ -0,0 +1,5 @@
+#include <scsi-modules>
+DAC960 -
+dmx3191d -
+ips -
+sym53c8xx -
diff --git a/debian/installer/modules/mipsel-loongson-3/scsi-nic-modules b/debian/installer/modules/mipsel-loongson-3/scsi-nic-modules
new file mode 100644
index 000000000..089dd5dc6
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/scsi-nic-modules
@@ -0,0 +1 @@
+#include <scsi-nic-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/sound-modules b/debian/installer/modules/mipsel-loongson-3/sound-modules
new file mode 100644
index 000000000..68395ab3d
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/sound-modules
@@ -0,0 +1 @@
+#include <sound-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/speakup-modules b/debian/installer/modules/mipsel-loongson-3/speakup-modules
new file mode 100644
index 000000000..29592721a
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/speakup-modules
@@ -0,0 +1 @@
+#include <speakup-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/squashfs-modules b/debian/installer/modules/mipsel-loongson-3/squashfs-modules
new file mode 100644
index 000000000..42d77887a
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/squashfs-modules
@@ -0,0 +1 @@
+#include <squashfs-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/udf-modules b/debian/installer/modules/mipsel-loongson-3/udf-modules
new file mode 100644
index 000000000..b90d7ee9b
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/udf-modules
@@ -0,0 +1 @@
+#include <udf-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/usb-modules b/debian/installer/modules/mipsel-loongson-3/usb-modules
new file mode 100644
index 000000000..c598dedd8
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/usb-serial-modules b/debian/installer/modules/mipsel-loongson-3/usb-serial-modules
new file mode 100644
index 000000000..c0a0dc3bd
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/usb-serial-modules
@@ -0,0 +1 @@
+#include <usb-serial-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/usb-storage-modules b/debian/installer/modules/mipsel-loongson-3/usb-storage-modules
new file mode 100644
index 000000000..8c5e81b55
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/usb-storage-modules
@@ -0,0 +1 @@
+#include <usb-storage-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/xfs-modules b/debian/installer/modules/mipsel-loongson-3/xfs-modules
new file mode 100644
index 000000000..98374e2bb
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/xfs-modules
@@ -0,0 +1 @@
+#include <xfs-modules>
diff --git a/debian/installer/modules/mipsel-loongson-3/zlib-modules b/debian/installer/modules/mipsel-loongson-3/zlib-modules
new file mode 100644
index 000000000..e02ad64bf
--- /dev/null
+++ b/debian/installer/modules/mipsel-loongson-3/zlib-modules
@@ -0,0 +1 @@
+#include <zlib-modules>
diff --git a/debian/installer/modules/mipsel-octeon b/debian/installer/modules/mipsel-octeon
new file mode 120000
index 000000000..47b1b81ab
--- /dev/null
+++ b/debian/installer/modules/mipsel-octeon
@@ -0,0 +1 @@
+mips-octeon \ No newline at end of file
diff --git a/debian/installer/modules/mmc-core-modules b/debian/installer/modules/mmc-core-modules
new file mode 100644
index 000000000..67128eac0
--- /dev/null
+++ b/debian/installer/modules/mmc-core-modules
@@ -0,0 +1 @@
+mmc_core
diff --git a/debian/installer/modules/mmc-modules b/debian/installer/modules/mmc-modules
new file mode 100644
index 000000000..c7aa372bd
--- /dev/null
+++ b/debian/installer/modules/mmc-modules
@@ -0,0 +1,8 @@
+mmc_block
+drivers/mmc/host/**
+
+# Multifunction card reader driver
+tifm_7xx1 ?
+
+# Adds a dependency on pcmcia-modules
+sdricoh_cs -
diff --git a/debian/installer/modules/mouse-modules b/debian/installer/modules/mouse-modules
new file mode 100644
index 000000000..8d65ba4d8
--- /dev/null
+++ b/debian/installer/modules/mouse-modules
@@ -0,0 +1 @@
+psmouse
diff --git a/debian/installer/modules/mtd-core-modules b/debian/installer/modules/mtd-core-modules
new file mode 100644
index 000000000..96dc6e77f
--- /dev/null
+++ b/debian/installer/modules/mtd-core-modules
@@ -0,0 +1 @@
+mtd
diff --git a/debian/installer/modules/mtd-modules b/debian/installer/modules/mtd-modules
new file mode 100644
index 000000000..90e6b13f6
--- /dev/null
+++ b/debian/installer/modules/mtd-modules
@@ -0,0 +1 @@
+mtdblock
diff --git a/debian/installer/modules/multipath-modules b/debian/installer/modules/multipath-modules
new file mode 100644
index 000000000..3b96ab99c
--- /dev/null
+++ b/debian/installer/modules/multipath-modules
@@ -0,0 +1,3 @@
+dm-multipath
+dm-round-robin
+dm-service-time
diff --git a/debian/installer/modules/nbd-modules b/debian/installer/modules/nbd-modules
new file mode 100644
index 000000000..cb3ca605f
--- /dev/null
+++ b/debian/installer/modules/nbd-modules
@@ -0,0 +1 @@
+nbd
diff --git a/debian/installer/modules/nfs-modules b/debian/installer/modules/nfs-modules
new file mode 100644
index 000000000..a5bfd2ce6
--- /dev/null
+++ b/debian/installer/modules/nfs-modules
@@ -0,0 +1,3 @@
+nfs
+lockd
+sunrpc
diff --git a/debian/installer/modules/nic-modules b/debian/installer/modules/nic-modules
new file mode 100644
index 000000000..0ee525365
--- /dev/null
+++ b/debian/installer/modules/nic-modules
@@ -0,0 +1,26 @@
+# Include Ethernet switch, controller and PHY drivers by default
+drivers/net/dsa/** ?
+drivers/net/ethernet/**
+drivers/net/phy/*
+
+# Include paravirtual network drivers
+hv_netvsc ?
+virtio_net ?
+vmxnet3 ?
+xen-netfront ?
+
+# Include VLAN driver
+8021q
+
+# Exclude drivers packaged in nic-pcmcia-modules
+drivers/net/**_cs -
+b44 -
+xircom_cb -
+
+# Exclude libraries packaged in nic-{common,shared} modules
+8390 -
+fixed_phy -
+libphy -
+
+# Exclude iSCSI drivers packaged in scsi-modules
+cnic -
diff --git a/debian/installer/modules/nic-pcmcia-modules b/debian/installer/modules/nic-pcmcia-modules
new file mode 100644
index 000000000..31c360d5a
--- /dev/null
+++ b/debian/installer/modules/nic-pcmcia-modules
@@ -0,0 +1,10 @@
+# Include PCMCIA Ethernet and wireless drivers by default
+drivers/net/ethernet/**_cs
+drivers/net/wireless/**_cs
+b44 ?
+hostap_plx ?
+xircom_cb
+
+# Exclude drivers packaged in nic-wireless-modules
+libertas_cs -
+spectrum_cs -
diff --git a/debian/installer/modules/nic-shared-modules b/debian/installer/modules/nic-shared-modules
new file mode 100644
index 000000000..b0bce03f7
--- /dev/null
+++ b/debian/installer/modules/nic-shared-modules
@@ -0,0 +1,7 @@
+8390 ?
+fixed_phy ?
+libphy ?
+mii ?
+of_mdio ?
+pps_core ?
+ptp ?
diff --git a/debian/installer/modules/nic-usb-modules b/debian/installer/modules/nic-usb-modules
new file mode 100644
index 000000000..332e01518
--- /dev/null
+++ b/debian/installer/modules/nic-usb-modules
@@ -0,0 +1,15 @@
+# Include USB wired drivers by default
+drivers/net/usb/*
+
+# Include rndis_wlan, which depends on rndis_host
+rndis_wlan
+
+# Exclude wireless modem drivers which need extra configuration
+cdc_mbim -
+cdc-phonet -
+hso -
+huawei_cdc_ncm -
+kalmia -
+lg-vl600 -
+qmi_wwan -
+sierra_net -
diff --git a/debian/installer/modules/nic-wireless-modules b/debian/installer/modules/nic-wireless-modules
new file mode 100644
index 000000000..09a908741
--- /dev/null
+++ b/debian/installer/modules/nic-wireless-modules
@@ -0,0 +1,27 @@
+# Include wireless drivers by default
+drivers/net/wireless/**
+
+# Include staging wireless drivers
+prism2_usb ?
+drivers/staging/rtl8** ?
+vt6656_stage ?
+
+# Exclude drivers packaged in nic-pcmcia-modules
+drivers/net/wireless/**_cs -
+airo -
+hostap_plx -
+
+# Don't separate these from their driver families
+libertas_cs ?
+spectrum_cs ?
+
+# Exclude drivers packaged in nic-usb-modules
+rndis_wlan -
+
+# Exclude debug driver
+mac80211_hwsim -
+
+# lib80211 encryption algorithms
+lib80211_crypt_wep ?
+lib80211_crypt_ccmp ?
+lib80211_crypt_tkip ?
diff --git a/debian/installer/modules/pata-modules b/debian/installer/modules/pata-modules
new file mode 100644
index 000000000..1d963a18e
--- /dev/null
+++ b/debian/installer/modules/pata-modules
@@ -0,0 +1,9 @@
+# Include PATA drivers by default
+drivers/ata/pata_*
+
+# Exclude pata_sis, which goes in sata-modules as a dependency of sata_sis
+pata_sis -
+
+# Exclude drivers packaged in pcmcia-storage-modules
+pata_ninja32 -
+pata_pcmcia -
diff --git a/debian/installer/modules/pcmcia-modules b/debian/installer/modules/pcmcia-modules
new file mode 100644
index 000000000..ab5b4b234
--- /dev/null
+++ b/debian/installer/modules/pcmcia-modules
@@ -0,0 +1,8 @@
+pcmcia
+
+i82092
+i82365 ?
+pcmcia_core
+tcic ?
+yenta_socket
+pd6729 ?
diff --git a/debian/installer/modules/pcmcia-storage-modules b/debian/installer/modules/pcmcia-storage-modules
new file mode 100644
index 000000000..b6b172164
--- /dev/null
+++ b/debian/installer/modules/pcmcia-storage-modules
@@ -0,0 +1,2 @@
+pata_ninja32 ?
+pata_pcmcia ?
diff --git a/debian/installer/modules/powerpc-powerpc64/affs-modules b/debian/installer/modules/powerpc-powerpc64/affs-modules
new file mode 100644
index 000000000..f12f6ace2
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/affs-modules
@@ -0,0 +1 @@
+#include "../powerpc/affs-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/ata-modules b/debian/installer/modules/powerpc-powerpc64/ata-modules
new file mode 100644
index 000000000..39540d4b6
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/ata-modules
@@ -0,0 +1 @@
+#include "../powerpc/ata-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/btrfs-modules b/debian/installer/modules/powerpc-powerpc64/btrfs-modules
new file mode 100644
index 000000000..9eeeb149a
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/btrfs-modules
@@ -0,0 +1 @@
+#include "../powerpc/btrfs-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/cdrom-core-modules b/debian/installer/modules/powerpc-powerpc64/cdrom-core-modules
new file mode 100644
index 000000000..feed89a1a
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/cdrom-core-modules
@@ -0,0 +1 @@
+#include "../powerpc/cdrom-core-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/compress-modules b/debian/installer/modules/powerpc-powerpc64/compress-modules
new file mode 100644
index 000000000..67ee6a8fb
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/compress-modules
@@ -0,0 +1 @@
+#include "../powerpc/compress-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/crc-modules b/debian/installer/modules/powerpc-powerpc64/crc-modules
new file mode 100644
index 000000000..b49dc9eca
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/crc-modules
@@ -0,0 +1 @@
+#include "../powerpc/crc-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/crypto-dm-modules b/debian/installer/modules/powerpc-powerpc64/crypto-dm-modules
new file mode 100644
index 000000000..6613c798f
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/crypto-dm-modules
@@ -0,0 +1 @@
+#include "../powerpc/crypto-dm-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/crypto-modules b/debian/installer/modules/powerpc-powerpc64/crypto-modules
new file mode 100644
index 000000000..8fa818fb8
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/crypto-modules
@@ -0,0 +1 @@
+#include "../powerpc/crypto-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/event-modules b/debian/installer/modules/powerpc-powerpc64/event-modules
new file mode 100644
index 000000000..9e9424c60
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/event-modules
@@ -0,0 +1 @@
+#include "../powerpc/event-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/ext4-modules b/debian/installer/modules/powerpc-powerpc64/ext4-modules
new file mode 100644
index 000000000..664c3118f
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/ext4-modules
@@ -0,0 +1 @@
+#include "../powerpc/ext4-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/fancontrol-modules b/debian/installer/modules/powerpc-powerpc64/fancontrol-modules
new file mode 100644
index 000000000..a3fc55cca
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/fancontrol-modules
@@ -0,0 +1,19 @@
+i2c-powermac ?
+windfarm_core ?
+windfarm_cpufreq_clamp ?
+windfarm_lm75_sensor ?
+windfarm_max6690_sensor ?
+windfarm_pid ?
+windfarm_pm121 ?
+windfarm_pm112 ?
+windfarm_pm81 ?
+windfarm_pm91 ?
+windfarm_pm72 ?
+windfarm_rm31 ?
+windfarm_smu_controls ?
+windfarm_smu_sat ?
+windfarm_smu_sensors ?
+windfarm_ad7417_sensor ?
+windfarm_fcu_controls ?
+windfarm_lm87_sensor ?
+windfarm_pid ?
diff --git a/debian/installer/modules/powerpc-powerpc64/fat-modules b/debian/installer/modules/powerpc-powerpc64/fat-modules
new file mode 100644
index 000000000..043dc5602
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/fat-modules
@@ -0,0 +1 @@
+#include "../powerpc/fat-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/fb-modules b/debian/installer/modules/powerpc-powerpc64/fb-modules
new file mode 100644
index 000000000..98c5ecc31
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/fb-modules
@@ -0,0 +1,2 @@
+# We *don't* want the extra modules listed in powerpc/fb-modules
+#include <fb-modules>
diff --git a/debian/installer/modules/powerpc-powerpc64/firewire-core-modules b/debian/installer/modules/powerpc-powerpc64/firewire-core-modules
new file mode 100644
index 000000000..035ab3162
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/firewire-core-modules
@@ -0,0 +1 @@
+#include "../powerpc/firewire-core-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/fuse-modules b/debian/installer/modules/powerpc-powerpc64/fuse-modules
new file mode 100644
index 000000000..49bdce41b
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/fuse-modules
@@ -0,0 +1 @@
+#include "../powerpc/fuse-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/hfs-modules b/debian/installer/modules/powerpc-powerpc64/hfs-modules
new file mode 100644
index 000000000..a85f69143
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/hfs-modules
@@ -0,0 +1 @@
+#include "../powerpc/hfs-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/hypervisor-modules b/debian/installer/modules/powerpc-powerpc64/hypervisor-modules
new file mode 100644
index 000000000..29ceb6154
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/hypervisor-modules
@@ -0,0 +1,2 @@
+hvcserver
+hvcs
diff --git a/debian/installer/modules/powerpc-powerpc64/i2c-modules b/debian/installer/modules/powerpc-powerpc64/i2c-modules
new file mode 100644
index 000000000..203a607e7
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/i2c-modules
@@ -0,0 +1 @@
+#include <i2c-modules>
diff --git a/debian/installer/modules/powerpc-powerpc64/input-modules b/debian/installer/modules/powerpc-powerpc64/input-modules
new file mode 100644
index 000000000..38a888940
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/input-modules
@@ -0,0 +1 @@
+#include "../powerpc/input-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/isofs-modules b/debian/installer/modules/powerpc-powerpc64/isofs-modules
new file mode 100644
index 000000000..5a0326172
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/isofs-modules
@@ -0,0 +1 @@
+#include "../powerpc/isofs-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/jfs-modules b/debian/installer/modules/powerpc-powerpc64/jfs-modules
new file mode 100644
index 000000000..b71ebd35e
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/jfs-modules
@@ -0,0 +1 @@
+#include "../powerpc/jfs-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/kernel-image b/debian/installer/modules/powerpc-powerpc64/kernel-image
new file mode 100644
index 000000000..a0b7d0cf4
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/kernel-image
@@ -0,0 +1 @@
+#include "../powerpc/kernel-image"
diff --git a/debian/installer/modules/powerpc-powerpc64/loop-modules b/debian/installer/modules/powerpc-powerpc64/loop-modules
new file mode 100644
index 000000000..e2273687f
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/loop-modules
@@ -0,0 +1 @@
+#include "../powerpc/loop-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/md-modules b/debian/installer/modules/powerpc-powerpc64/md-modules
new file mode 100644
index 000000000..93be33f95
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/md-modules
@@ -0,0 +1 @@
+#include "../powerpc/md-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/mmc-core-modules b/debian/installer/modules/powerpc-powerpc64/mmc-core-modules
new file mode 100644
index 000000000..5308bc434
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/mmc-core-modules
@@ -0,0 +1 @@
+#include "../powerpc/mmc-core-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/mouse-modules b/debian/installer/modules/powerpc-powerpc64/mouse-modules
new file mode 100644
index 000000000..22aca9411
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/mouse-modules
@@ -0,0 +1 @@
+#include "../powerpc/mouse-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/mtd-core-modules b/debian/installer/modules/powerpc-powerpc64/mtd-core-modules
new file mode 100644
index 000000000..28fdada60
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/mtd-core-modules
@@ -0,0 +1 @@
+#include <mtd-core-modules>
diff --git a/debian/installer/modules/powerpc-powerpc64/multipath-modules b/debian/installer/modules/powerpc-powerpc64/multipath-modules
new file mode 100644
index 000000000..fcb0045b0
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/multipath-modules
@@ -0,0 +1 @@
+#include "../powerpc/multipath-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/nbd-modules b/debian/installer/modules/powerpc-powerpc64/nbd-modules
new file mode 100644
index 000000000..ff7fc80ea
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/nbd-modules
@@ -0,0 +1 @@
+#include "../powerpc/nbd-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/nic-modules b/debian/installer/modules/powerpc-powerpc64/nic-modules
new file mode 100644
index 000000000..7578f4332
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/nic-modules
@@ -0,0 +1 @@
+#include "../powerpc/nic-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/nic-pcmcia-modules b/debian/installer/modules/powerpc-powerpc64/nic-pcmcia-modules
new file mode 100644
index 000000000..3f521e9db
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/nic-pcmcia-modules
@@ -0,0 +1 @@
+#include "../powerpc/nic-pcmcia-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/nic-shared-modules b/debian/installer/modules/powerpc-powerpc64/nic-shared-modules
new file mode 100644
index 000000000..5b05e0d43
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/nic-shared-modules
@@ -0,0 +1 @@
+#include "../powerpc/nic-shared-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/nic-usb-modules b/debian/installer/modules/powerpc-powerpc64/nic-usb-modules
new file mode 100644
index 000000000..790780afc
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/nic-usb-modules
@@ -0,0 +1 @@
+#include "../powerpc/nic-usb-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/nic-wireless-modules b/debian/installer/modules/powerpc-powerpc64/nic-wireless-modules
new file mode 100644
index 000000000..b25c130da
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/nic-wireless-modules
@@ -0,0 +1 @@
+#include "../powerpc/nic-wireless-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/pata-modules b/debian/installer/modules/powerpc-powerpc64/pata-modules
new file mode 100644
index 000000000..bb9cbe3ab
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/pata-modules
@@ -0,0 +1 @@
+#include "../powerpc/pata-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/pcmcia-modules b/debian/installer/modules/powerpc-powerpc64/pcmcia-modules
new file mode 100644
index 000000000..e508df664
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/pcmcia-modules
@@ -0,0 +1 @@
+#include "../powerpc/pcmcia-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/pcmcia-storage-modules b/debian/installer/modules/powerpc-powerpc64/pcmcia-storage-modules
new file mode 100644
index 000000000..f00f24605
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/pcmcia-storage-modules
@@ -0,0 +1 @@
+#include "../powerpc/pcmcia-storage-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/ppp-modules b/debian/installer/modules/powerpc-powerpc64/ppp-modules
new file mode 100644
index 000000000..eb7ab74a5
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/ppp-modules
@@ -0,0 +1 @@
+#include "../powerpc/ppp-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/sata-modules b/debian/installer/modules/powerpc-powerpc64/sata-modules
new file mode 100644
index 000000000..591ad7410
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/sata-modules
@@ -0,0 +1 @@
+#include "../powerpc/sata-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/scsi-core-modules b/debian/installer/modules/powerpc-powerpc64/scsi-core-modules
new file mode 100644
index 000000000..c972a4717
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/scsi-core-modules
@@ -0,0 +1 @@
+#include "../powerpc/scsi-core-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/scsi-modules b/debian/installer/modules/powerpc-powerpc64/scsi-modules
new file mode 100644
index 000000000..74a817729
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/scsi-modules
@@ -0,0 +1,7 @@
+#include "../powerpc/scsi-modules"
+
+# Really SATA, but keep it with ps3rom as they both depend on ps3stor_lib
+ps3disk ?
+
+# Exclude target driver
+ibmvscsis -
diff --git a/debian/installer/modules/powerpc-powerpc64/scsi-nic-modules b/debian/installer/modules/powerpc-powerpc64/scsi-nic-modules
new file mode 100644
index 000000000..edcfa738e
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/scsi-nic-modules
@@ -0,0 +1 @@
+#include "../powerpc/scsi-nic-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/serial-modules b/debian/installer/modules/powerpc-powerpc64/serial-modules
new file mode 100644
index 000000000..349196e30
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/serial-modules
@@ -0,0 +1 @@
+#include "../powerpc/serial-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/squashfs-modules b/debian/installer/modules/powerpc-powerpc64/squashfs-modules
new file mode 100644
index 000000000..32a1b6ffa
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/squashfs-modules
@@ -0,0 +1 @@
+#include "../powerpc/squashfs-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/udf-modules b/debian/installer/modules/powerpc-powerpc64/udf-modules
new file mode 100644
index 000000000..6c72cbc14
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/udf-modules
@@ -0,0 +1 @@
+#include "../powerpc/udf-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/uinput-modules b/debian/installer/modules/powerpc-powerpc64/uinput-modules
new file mode 100644
index 000000000..5020f7cc3
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/uinput-modules
@@ -0,0 +1 @@
+#include "../powerpc/uinput-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/usb-modules b/debian/installer/modules/powerpc-powerpc64/usb-modules
new file mode 100644
index 000000000..9c5b10a7b
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/usb-modules
@@ -0,0 +1 @@
+#include "../powerpc/usb-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/usb-serial-modules b/debian/installer/modules/powerpc-powerpc64/usb-serial-modules
new file mode 100644
index 000000000..e25b55862
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/usb-serial-modules
@@ -0,0 +1 @@
+#include "../powerpc/usb-serial-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/usb-storage-modules b/debian/installer/modules/powerpc-powerpc64/usb-storage-modules
new file mode 100644
index 000000000..5f278e65f
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/usb-storage-modules
@@ -0,0 +1 @@
+#include "../powerpc/usb-storage-modules"
diff --git a/debian/installer/modules/powerpc-powerpc64/xfs-modules b/debian/installer/modules/powerpc-powerpc64/xfs-modules
new file mode 100644
index 000000000..c850127e9
--- /dev/null
+++ b/debian/installer/modules/powerpc-powerpc64/xfs-modules
@@ -0,0 +1 @@
+#include "../powerpc/xfs-modules"
diff --git a/debian/installer/modules/powerpc/affs-modules b/debian/installer/modules/powerpc/affs-modules
new file mode 100644
index 000000000..3f0e4bb90
--- /dev/null
+++ b/debian/installer/modules/powerpc/affs-modules
@@ -0,0 +1,2 @@
+#include <affs-modules>
+
diff --git a/debian/installer/modules/powerpc/ata-modules b/debian/installer/modules/powerpc/ata-modules
new file mode 100644
index 000000000..b81c0f38b
--- /dev/null
+++ b/debian/installer/modules/powerpc/ata-modules
@@ -0,0 +1 @@
+#include <ata-modules>
diff --git a/debian/installer/modules/powerpc/btrfs-modules b/debian/installer/modules/powerpc/btrfs-modules
new file mode 100644
index 000000000..e261e1388
--- /dev/null
+++ b/debian/installer/modules/powerpc/btrfs-modules
@@ -0,0 +1 @@
+#include <btrfs-modules>
diff --git a/debian/installer/modules/powerpc/cdrom-core-modules b/debian/installer/modules/powerpc/cdrom-core-modules
new file mode 100644
index 000000000..e264d7aa3
--- /dev/null
+++ b/debian/installer/modules/powerpc/cdrom-core-modules
@@ -0,0 +1,2 @@
+#include <cdrom-core-modules>
+
diff --git a/debian/installer/modules/powerpc/compress-modules b/debian/installer/modules/powerpc/compress-modules
new file mode 100644
index 000000000..804616619
--- /dev/null
+++ b/debian/installer/modules/powerpc/compress-modules
@@ -0,0 +1 @@
+#include <compress-modules>
diff --git a/debian/installer/modules/powerpc/crc-modules b/debian/installer/modules/powerpc/crc-modules
new file mode 100644
index 000000000..7e00de705
--- /dev/null
+++ b/debian/installer/modules/powerpc/crc-modules
@@ -0,0 +1 @@
+#include <crc-modules>
diff --git a/debian/installer/modules/powerpc/crypto-dm-modules b/debian/installer/modules/powerpc/crypto-dm-modules
new file mode 100644
index 000000000..4c8f2354c
--- /dev/null
+++ b/debian/installer/modules/powerpc/crypto-dm-modules
@@ -0,0 +1 @@
+#include <crypto-dm-modules>
diff --git a/debian/installer/modules/powerpc/crypto-modules b/debian/installer/modules/powerpc/crypto-modules
new file mode 100644
index 000000000..3a1e862b4
--- /dev/null
+++ b/debian/installer/modules/powerpc/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
diff --git a/debian/installer/modules/powerpc/event-modules b/debian/installer/modules/powerpc/event-modules
new file mode 100644
index 000000000..f8819afd3
--- /dev/null
+++ b/debian/installer/modules/powerpc/event-modules
@@ -0,0 +1 @@
+#include <event-modules>
diff --git a/debian/installer/modules/powerpc/ext4-modules b/debian/installer/modules/powerpc/ext4-modules
new file mode 100644
index 000000000..394c577ce
--- /dev/null
+++ b/debian/installer/modules/powerpc/ext4-modules
@@ -0,0 +1 @@
+#include <ext4-modules>
diff --git a/debian/installer/modules/powerpc/fat-modules b/debian/installer/modules/powerpc/fat-modules
new file mode 100644
index 000000000..cce8fd30c
--- /dev/null
+++ b/debian/installer/modules/powerpc/fat-modules
@@ -0,0 +1,2 @@
+#include <fat-modules>
+
diff --git a/debian/installer/modules/powerpc/fb-modules b/debian/installer/modules/powerpc/fb-modules
new file mode 100644
index 000000000..3a53ab269
--- /dev/null
+++ b/debian/installer/modules/powerpc/fb-modules
@@ -0,0 +1,7 @@
+#include <fb-modules>
+
+# 32-bit PowerMacs mostly have either ATI Rage 128 or Radeon graphics
+# chips for which the offb driver doesn't work properly. aty128fb is
+# currently built-in but that could plausibly change in future.
+aty128fb
+radeonfb
diff --git a/debian/installer/modules/powerpc/firewire-core-modules b/debian/installer/modules/powerpc/firewire-core-modules
new file mode 100644
index 000000000..dcac80af9
--- /dev/null
+++ b/debian/installer/modules/powerpc/firewire-core-modules
@@ -0,0 +1 @@
+#include <firewire-core-modules>
diff --git a/debian/installer/modules/powerpc/fuse-modules b/debian/installer/modules/powerpc/fuse-modules
new file mode 100644
index 000000000..0b6ba0c8c
--- /dev/null
+++ b/debian/installer/modules/powerpc/fuse-modules
@@ -0,0 +1 @@
+#include <fuse-modules>
diff --git a/debian/installer/modules/powerpc/hfs-modules b/debian/installer/modules/powerpc/hfs-modules
new file mode 100644
index 000000000..57d12f649
--- /dev/null
+++ b/debian/installer/modules/powerpc/hfs-modules
@@ -0,0 +1 @@
+#include <hfs-modules>
diff --git a/debian/installer/modules/powerpc/input-modules b/debian/installer/modules/powerpc/input-modules
new file mode 100644
index 000000000..51e37ced9
--- /dev/null
+++ b/debian/installer/modules/powerpc/input-modules
@@ -0,0 +1,3 @@
+#include <input-modules>
+atkbd
+i8042
diff --git a/debian/installer/modules/powerpc/isofs-modules b/debian/installer/modules/powerpc/isofs-modules
new file mode 100644
index 000000000..da4fa9a3c
--- /dev/null
+++ b/debian/installer/modules/powerpc/isofs-modules
@@ -0,0 +1 @@
+#include <isofs-modules>
diff --git a/debian/installer/modules/powerpc/jfs-modules b/debian/installer/modules/powerpc/jfs-modules
new file mode 100644
index 000000000..925a43a9e
--- /dev/null
+++ b/debian/installer/modules/powerpc/jfs-modules
@@ -0,0 +1,2 @@
+#include <jfs-modules>
+
diff --git a/debian/installer/modules/powerpc/kernel-image b/debian/installer/modules/powerpc/kernel-image
new file mode 100644
index 000000000..b17bb591a
--- /dev/null
+++ b/debian/installer/modules/powerpc/kernel-image
@@ -0,0 +1,2 @@
+#include <kernel-image>
+bestcomm-core ?
diff --git a/debian/installer/modules/powerpc/loop-modules b/debian/installer/modules/powerpc/loop-modules
new file mode 100644
index 000000000..164467713
--- /dev/null
+++ b/debian/installer/modules/powerpc/loop-modules
@@ -0,0 +1,2 @@
+#include <loop-modules>
+
diff --git a/debian/installer/modules/powerpc/md-modules b/debian/installer/modules/powerpc/md-modules
new file mode 100644
index 000000000..ade088ddb
--- /dev/null
+++ b/debian/installer/modules/powerpc/md-modules
@@ -0,0 +1,2 @@
+#include <md-modules>
+
diff --git a/debian/installer/modules/powerpc/mmc-core-modules b/debian/installer/modules/powerpc/mmc-core-modules
new file mode 100644
index 000000000..7bf38465c
--- /dev/null
+++ b/debian/installer/modules/powerpc/mmc-core-modules
@@ -0,0 +1 @@
+#include <mmc-core-modules>
diff --git a/debian/installer/modules/powerpc/mouse-modules b/debian/installer/modules/powerpc/mouse-modules
new file mode 100644
index 000000000..15fcb00ea
--- /dev/null
+++ b/debian/installer/modules/powerpc/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
diff --git a/debian/installer/modules/powerpc/multipath-modules b/debian/installer/modules/powerpc/multipath-modules
new file mode 100644
index 000000000..a8b69b253
--- /dev/null
+++ b/debian/installer/modules/powerpc/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
diff --git a/debian/installer/modules/powerpc/nbd-modules b/debian/installer/modules/powerpc/nbd-modules
new file mode 100644
index 000000000..3c9b3e5d4
--- /dev/null
+++ b/debian/installer/modules/powerpc/nbd-modules
@@ -0,0 +1 @@
+#include <nbd-modules>
diff --git a/debian/installer/modules/powerpc/nic-modules b/debian/installer/modules/powerpc/nic-modules
new file mode 100644
index 000000000..cdf8960d9
--- /dev/null
+++ b/debian/installer/modules/powerpc/nic-modules
@@ -0,0 +1,4 @@
+#include <nic-modules>
+
+# Include AppleTalk-IP driver
+ipddp
diff --git a/debian/installer/modules/powerpc/nic-pcmcia-modules b/debian/installer/modules/powerpc/nic-pcmcia-modules
new file mode 100644
index 000000000..7a0702cd5
--- /dev/null
+++ b/debian/installer/modules/powerpc/nic-pcmcia-modules
@@ -0,0 +1 @@
+#include <nic-pcmcia-modules>
diff --git a/debian/installer/modules/powerpc/nic-shared-modules b/debian/installer/modules/powerpc/nic-shared-modules
new file mode 100644
index 000000000..a6f274a44
--- /dev/null
+++ b/debian/installer/modules/powerpc/nic-shared-modules
@@ -0,0 +1,2 @@
+#include <nic-shared-modules>
+llc
diff --git a/debian/installer/modules/powerpc/nic-usb-modules b/debian/installer/modules/powerpc/nic-usb-modules
new file mode 100644
index 000000000..c479669b4
--- /dev/null
+++ b/debian/installer/modules/powerpc/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
diff --git a/debian/installer/modules/powerpc/nic-wireless-modules b/debian/installer/modules/powerpc/nic-wireless-modules
new file mode 100644
index 000000000..53fd18d7f
--- /dev/null
+++ b/debian/installer/modules/powerpc/nic-wireless-modules
@@ -0,0 +1 @@
+#include <nic-wireless-modules>
diff --git a/debian/installer/modules/powerpc/pata-modules b/debian/installer/modules/powerpc/pata-modules
new file mode 100644
index 000000000..b0cd6337a
--- /dev/null
+++ b/debian/installer/modules/powerpc/pata-modules
@@ -0,0 +1 @@
+#include <pata-modules>
diff --git a/debian/installer/modules/powerpc/pcmcia-modules b/debian/installer/modules/powerpc/pcmcia-modules
new file mode 100644
index 000000000..2bb5350fe
--- /dev/null
+++ b/debian/installer/modules/powerpc/pcmcia-modules
@@ -0,0 +1 @@
+#include <pcmcia-modules>
diff --git a/debian/installer/modules/powerpc/pcmcia-storage-modules b/debian/installer/modules/powerpc/pcmcia-storage-modules
new file mode 100644
index 000000000..9fbaff306
--- /dev/null
+++ b/debian/installer/modules/powerpc/pcmcia-storage-modules
@@ -0,0 +1,2 @@
+#include <pcmcia-storage-modules>
+
diff --git a/debian/installer/modules/powerpc/ppp-modules b/debian/installer/modules/powerpc/ppp-modules
new file mode 100644
index 000000000..f1ae9b3d1
--- /dev/null
+++ b/debian/installer/modules/powerpc/ppp-modules
@@ -0,0 +1,2 @@
+#include <ppp-modules>
+
diff --git a/debian/installer/modules/powerpc/sata-modules b/debian/installer/modules/powerpc/sata-modules
new file mode 100644
index 000000000..071cb860b
--- /dev/null
+++ b/debian/installer/modules/powerpc/sata-modules
@@ -0,0 +1,2 @@
+#include <sata-modules>
+
diff --git a/debian/installer/modules/powerpc/scsi-core-modules b/debian/installer/modules/powerpc/scsi-core-modules
new file mode 100644
index 000000000..dd65d6614
--- /dev/null
+++ b/debian/installer/modules/powerpc/scsi-core-modules
@@ -0,0 +1 @@
+#include <scsi-core-modules>
diff --git a/debian/installer/modules/powerpc/scsi-modules b/debian/installer/modules/powerpc/scsi-modules
new file mode 100644
index 000000000..8909dfb79
--- /dev/null
+++ b/debian/installer/modules/powerpc/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
diff --git a/debian/installer/modules/powerpc/scsi-nic-modules b/debian/installer/modules/powerpc/scsi-nic-modules
new file mode 100644
index 000000000..089dd5dc6
--- /dev/null
+++ b/debian/installer/modules/powerpc/scsi-nic-modules
@@ -0,0 +1 @@
+#include <scsi-nic-modules>
diff --git a/debian/installer/modules/powerpc/serial-modules b/debian/installer/modules/powerpc/serial-modules
new file mode 100644
index 000000000..6ab8b8c35
--- /dev/null
+++ b/debian/installer/modules/powerpc/serial-modules
@@ -0,0 +1 @@
+#include <serial-modules>
diff --git a/debian/installer/modules/powerpc/squashfs-modules b/debian/installer/modules/powerpc/squashfs-modules
new file mode 100644
index 000000000..42d77887a
--- /dev/null
+++ b/debian/installer/modules/powerpc/squashfs-modules
@@ -0,0 +1 @@
+#include <squashfs-modules>
diff --git a/debian/installer/modules/powerpc/udf-modules b/debian/installer/modules/powerpc/udf-modules
new file mode 100644
index 000000000..b90d7ee9b
--- /dev/null
+++ b/debian/installer/modules/powerpc/udf-modules
@@ -0,0 +1 @@
+#include <udf-modules>
diff --git a/debian/installer/modules/powerpc/uinput-modules b/debian/installer/modules/powerpc/uinput-modules
new file mode 100644
index 000000000..58a833779
--- /dev/null
+++ b/debian/installer/modules/powerpc/uinput-modules
@@ -0,0 +1 @@
+#include <uinput-modules>
diff --git a/debian/installer/modules/powerpc/usb-modules b/debian/installer/modules/powerpc/usb-modules
new file mode 100644
index 000000000..c598dedd8
--- /dev/null
+++ b/debian/installer/modules/powerpc/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
diff --git a/debian/installer/modules/powerpc/usb-serial-modules b/debian/installer/modules/powerpc/usb-serial-modules
new file mode 100644
index 000000000..c0a0dc3bd
--- /dev/null
+++ b/debian/installer/modules/powerpc/usb-serial-modules
@@ -0,0 +1 @@
+#include <usb-serial-modules>
diff --git a/debian/installer/modules/powerpc/usb-storage-modules b/debian/installer/modules/powerpc/usb-storage-modules
new file mode 100644
index 000000000..272d95e2e
--- /dev/null
+++ b/debian/installer/modules/powerpc/usb-storage-modules
@@ -0,0 +1,2 @@
+#include <usb-storage-modules>
+
diff --git a/debian/installer/modules/powerpc/xfs-modules b/debian/installer/modules/powerpc/xfs-modules
new file mode 100644
index 000000000..c020b5d39
--- /dev/null
+++ b/debian/installer/modules/powerpc/xfs-modules
@@ -0,0 +1,2 @@
+#include <xfs-modules>
+
diff --git a/debian/installer/modules/powerpc/zlib-modules b/debian/installer/modules/powerpc/zlib-modules
new file mode 100644
index 000000000..e02ad64bf
--- /dev/null
+++ b/debian/installer/modules/powerpc/zlib-modules
@@ -0,0 +1 @@
+#include <zlib-modules>
diff --git a/debian/installer/modules/ppc64 b/debian/installer/modules/ppc64
new file mode 120000
index 000000000..a3e2a5788
--- /dev/null
+++ b/debian/installer/modules/ppc64
@@ -0,0 +1 @@
+powerpc-powerpc64 \ No newline at end of file
diff --git a/debian/installer/modules/ppc64el/ata-modules b/debian/installer/modules/ppc64el/ata-modules
new file mode 100644
index 000000000..03599667e
--- /dev/null
+++ b/debian/installer/modules/ppc64el/ata-modules
@@ -0,0 +1 @@
+#include "../ppc64/ata-modules"
diff --git a/debian/installer/modules/ppc64el/btrfs-modules b/debian/installer/modules/ppc64el/btrfs-modules
new file mode 100644
index 000000000..1d9d7d86f
--- /dev/null
+++ b/debian/installer/modules/ppc64el/btrfs-modules
@@ -0,0 +1 @@
+#include "../ppc64/btrfs-modules"
diff --git a/debian/installer/modules/ppc64el/cdrom-core-modules b/debian/installer/modules/ppc64el/cdrom-core-modules
new file mode 100644
index 000000000..4e22480aa
--- /dev/null
+++ b/debian/installer/modules/ppc64el/cdrom-core-modules
@@ -0,0 +1 @@
+#include "../ppc64/cdrom-core-modules"
diff --git a/debian/installer/modules/ppc64el/compress-modules b/debian/installer/modules/ppc64el/compress-modules
new file mode 100644
index 000000000..804616619
--- /dev/null
+++ b/debian/installer/modules/ppc64el/compress-modules
@@ -0,0 +1 @@
+#include <compress-modules>
diff --git a/debian/installer/modules/ppc64el/crc-modules b/debian/installer/modules/ppc64el/crc-modules
new file mode 100644
index 000000000..6adf710ee
--- /dev/null
+++ b/debian/installer/modules/ppc64el/crc-modules
@@ -0,0 +1 @@
+#include "../ppc64/crc-modules"
diff --git a/debian/installer/modules/ppc64el/crypto-dm-modules b/debian/installer/modules/ppc64el/crypto-dm-modules
new file mode 100644
index 000000000..f00e29325
--- /dev/null
+++ b/debian/installer/modules/ppc64el/crypto-dm-modules
@@ -0,0 +1 @@
+#include "../ppc64/crypto-dm-modules"
diff --git a/debian/installer/modules/ppc64el/crypto-modules b/debian/installer/modules/ppc64el/crypto-modules
new file mode 100644
index 000000000..1d84b7f90
--- /dev/null
+++ b/debian/installer/modules/ppc64el/crypto-modules
@@ -0,0 +1 @@
+#include "../ppc64/crypto-modules"
diff --git a/debian/installer/modules/ppc64el/event-modules b/debian/installer/modules/ppc64el/event-modules
new file mode 100644
index 000000000..e4a33897e
--- /dev/null
+++ b/debian/installer/modules/ppc64el/event-modules
@@ -0,0 +1 @@
+#include "../ppc64/event-modules"
diff --git a/debian/installer/modules/ppc64el/ext4-modules b/debian/installer/modules/ppc64el/ext4-modules
new file mode 100644
index 000000000..b145b0d96
--- /dev/null
+++ b/debian/installer/modules/ppc64el/ext4-modules
@@ -0,0 +1 @@
+#include "../ppc64/ext4-modules"
diff --git a/debian/installer/modules/ppc64el/fancontrol-modules b/debian/installer/modules/ppc64el/fancontrol-modules
new file mode 100644
index 000000000..c3ace7562
--- /dev/null
+++ b/debian/installer/modules/ppc64el/fancontrol-modules
@@ -0,0 +1 @@
+#include "../ppc64/fancontrol-modules"
diff --git a/debian/installer/modules/ppc64el/fat-modules b/debian/installer/modules/ppc64el/fat-modules
new file mode 100644
index 000000000..016d97275
--- /dev/null
+++ b/debian/installer/modules/ppc64el/fat-modules
@@ -0,0 +1 @@
+#include "../ppc64/fat-modules"
diff --git a/debian/installer/modules/ppc64el/fb-modules b/debian/installer/modules/ppc64el/fb-modules
new file mode 100644
index 000000000..aba524d90
--- /dev/null
+++ b/debian/installer/modules/ppc64el/fb-modules
@@ -0,0 +1 @@
+#include <fb-modules>
diff --git a/debian/installer/modules/ppc64el/firewire-core-modules b/debian/installer/modules/ppc64el/firewire-core-modules
new file mode 100644
index 000000000..5a7791fe8
--- /dev/null
+++ b/debian/installer/modules/ppc64el/firewire-core-modules
@@ -0,0 +1 @@
+#include "../ppc64/firewire-core-modules"
diff --git a/debian/installer/modules/ppc64el/fuse-modules b/debian/installer/modules/ppc64el/fuse-modules
new file mode 100644
index 000000000..c90a988b2
--- /dev/null
+++ b/debian/installer/modules/ppc64el/fuse-modules
@@ -0,0 +1 @@
+#include "../ppc64/fuse-modules"
diff --git a/debian/installer/modules/ppc64el/hypervisor-modules b/debian/installer/modules/ppc64el/hypervisor-modules
new file mode 100644
index 000000000..2c8e7d824
--- /dev/null
+++ b/debian/installer/modules/ppc64el/hypervisor-modules
@@ -0,0 +1 @@
+#include "../ppc64/hypervisor-modules"
diff --git a/debian/installer/modules/ppc64el/i2c-modules b/debian/installer/modules/ppc64el/i2c-modules
new file mode 100644
index 000000000..1121952ac
--- /dev/null
+++ b/debian/installer/modules/ppc64el/i2c-modules
@@ -0,0 +1 @@
+#include "../ppc64/i2c-modules"
diff --git a/debian/installer/modules/ppc64el/input-modules b/debian/installer/modules/ppc64el/input-modules
new file mode 100644
index 000000000..94d6a1174
--- /dev/null
+++ b/debian/installer/modules/ppc64el/input-modules
@@ -0,0 +1 @@
+#include "../ppc64/input-modules"
diff --git a/debian/installer/modules/ppc64el/isofs-modules b/debian/installer/modules/ppc64el/isofs-modules
new file mode 100644
index 000000000..ff9a9e5cb
--- /dev/null
+++ b/debian/installer/modules/ppc64el/isofs-modules
@@ -0,0 +1 @@
+#include "../ppc64/isofs-modules"
diff --git a/debian/installer/modules/ppc64el/jfs-modules b/debian/installer/modules/ppc64el/jfs-modules
new file mode 100644
index 000000000..86a502bda
--- /dev/null
+++ b/debian/installer/modules/ppc64el/jfs-modules
@@ -0,0 +1 @@
+#include "../ppc64/jfs-modules"
diff --git a/debian/installer/modules/ppc64el/kernel-image b/debian/installer/modules/ppc64el/kernel-image
new file mode 100644
index 000000000..243665337
--- /dev/null
+++ b/debian/installer/modules/ppc64el/kernel-image
@@ -0,0 +1 @@
+#include "../ppc64/kernel-image"
diff --git a/debian/installer/modules/ppc64el/loop-modules b/debian/installer/modules/ppc64el/loop-modules
new file mode 100644
index 000000000..2373df643
--- /dev/null
+++ b/debian/installer/modules/ppc64el/loop-modules
@@ -0,0 +1 @@
+#include "../ppc64/loop-modules"
diff --git a/debian/installer/modules/ppc64el/md-modules b/debian/installer/modules/ppc64el/md-modules
new file mode 100644
index 000000000..be97ac8b0
--- /dev/null
+++ b/debian/installer/modules/ppc64el/md-modules
@@ -0,0 +1 @@
+#include "../ppc64/md-modules"
diff --git a/debian/installer/modules/ppc64el/mouse-modules b/debian/installer/modules/ppc64el/mouse-modules
new file mode 100644
index 000000000..fecdd47a4
--- /dev/null
+++ b/debian/installer/modules/ppc64el/mouse-modules
@@ -0,0 +1 @@
+#include "../ppc64/mouse-modules"
diff --git a/debian/installer/modules/ppc64el/mtd-core-modules b/debian/installer/modules/ppc64el/mtd-core-modules
new file mode 100644
index 000000000..28fdada60
--- /dev/null
+++ b/debian/installer/modules/ppc64el/mtd-core-modules
@@ -0,0 +1 @@
+#include <mtd-core-modules>
diff --git a/debian/installer/modules/ppc64el/multipath-modules b/debian/installer/modules/ppc64el/multipath-modules
new file mode 100644
index 000000000..d6965bdb8
--- /dev/null
+++ b/debian/installer/modules/ppc64el/multipath-modules
@@ -0,0 +1 @@
+#include "../ppc64/multipath-modules"
diff --git a/debian/installer/modules/ppc64el/nbd-modules b/debian/installer/modules/ppc64el/nbd-modules
new file mode 100644
index 000000000..9037d8f63
--- /dev/null
+++ b/debian/installer/modules/ppc64el/nbd-modules
@@ -0,0 +1 @@
+#include "../ppc64/nbd-modules"
diff --git a/debian/installer/modules/ppc64el/nic-modules b/debian/installer/modules/ppc64el/nic-modules
new file mode 100644
index 000000000..f69226417
--- /dev/null
+++ b/debian/installer/modules/ppc64el/nic-modules
@@ -0,0 +1 @@
+#include "../ppc64/nic-modules"
diff --git a/debian/installer/modules/ppc64el/nic-shared-modules b/debian/installer/modules/ppc64el/nic-shared-modules
new file mode 100644
index 000000000..c8ff13b12
--- /dev/null
+++ b/debian/installer/modules/ppc64el/nic-shared-modules
@@ -0,0 +1 @@
+#include "../ppc64/nic-shared-modules"
diff --git a/debian/installer/modules/ppc64el/nic-usb-modules b/debian/installer/modules/ppc64el/nic-usb-modules
new file mode 100644
index 000000000..c479669b4
--- /dev/null
+++ b/debian/installer/modules/ppc64el/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
diff --git a/debian/installer/modules/ppc64el/nic-wireless-modules b/debian/installer/modules/ppc64el/nic-wireless-modules
new file mode 100644
index 000000000..68609a32c
--- /dev/null
+++ b/debian/installer/modules/ppc64el/nic-wireless-modules
@@ -0,0 +1 @@
+#include "../ppc64/nic-wireless-modules"
diff --git a/debian/installer/modules/ppc64el/ppp-modules b/debian/installer/modules/ppc64el/ppp-modules
new file mode 100644
index 000000000..212615220
--- /dev/null
+++ b/debian/installer/modules/ppc64el/ppp-modules
@@ -0,0 +1 @@
+#include "../ppc64/ppp-modules"
diff --git a/debian/installer/modules/ppc64el/sata-modules b/debian/installer/modules/ppc64el/sata-modules
new file mode 100644
index 000000000..92f711ac9
--- /dev/null
+++ b/debian/installer/modules/ppc64el/sata-modules
@@ -0,0 +1 @@
+#include "../ppc64/sata-modules"
diff --git a/debian/installer/modules/ppc64el/scsi-core-modules b/debian/installer/modules/ppc64el/scsi-core-modules
new file mode 100644
index 000000000..b764c2b2e
--- /dev/null
+++ b/debian/installer/modules/ppc64el/scsi-core-modules
@@ -0,0 +1 @@
+#include "../ppc64/scsi-core-modules"
diff --git a/debian/installer/modules/ppc64el/scsi-modules b/debian/installer/modules/ppc64el/scsi-modules
new file mode 100644
index 000000000..c3979d673
--- /dev/null
+++ b/debian/installer/modules/ppc64el/scsi-modules
@@ -0,0 +1 @@
+#include "../ppc64/scsi-modules"
diff --git a/debian/installer/modules/ppc64el/scsi-nic-modules b/debian/installer/modules/ppc64el/scsi-nic-modules
new file mode 100644
index 000000000..089dd5dc6
--- /dev/null
+++ b/debian/installer/modules/ppc64el/scsi-nic-modules
@@ -0,0 +1 @@
+#include <scsi-nic-modules>
diff --git a/debian/installer/modules/ppc64el/serial-modules b/debian/installer/modules/ppc64el/serial-modules
new file mode 100644
index 000000000..111ebcd6d
--- /dev/null
+++ b/debian/installer/modules/ppc64el/serial-modules
@@ -0,0 +1 @@
+#include "../ppc64/serial-modules"
diff --git a/debian/installer/modules/ppc64el/squashfs-modules b/debian/installer/modules/ppc64el/squashfs-modules
new file mode 100644
index 000000000..557d0d204
--- /dev/null
+++ b/debian/installer/modules/ppc64el/squashfs-modules
@@ -0,0 +1 @@
+#include "../ppc64/squashfs-modules"
diff --git a/debian/installer/modules/ppc64el/udf-modules b/debian/installer/modules/ppc64el/udf-modules
new file mode 100644
index 000000000..c7471ab0b
--- /dev/null
+++ b/debian/installer/modules/ppc64el/udf-modules
@@ -0,0 +1 @@
+#include "../ppc64/udf-modules"
diff --git a/debian/installer/modules/ppc64el/uinput-modules b/debian/installer/modules/ppc64el/uinput-modules
new file mode 100644
index 000000000..4a3898f13
--- /dev/null
+++ b/debian/installer/modules/ppc64el/uinput-modules
@@ -0,0 +1 @@
+#include "../ppc64/uinput-modules"
diff --git a/debian/installer/modules/ppc64el/usb-modules b/debian/installer/modules/ppc64el/usb-modules
new file mode 100644
index 000000000..a113185a2
--- /dev/null
+++ b/debian/installer/modules/ppc64el/usb-modules
@@ -0,0 +1 @@
+#include "../ppc64/usb-modules"
diff --git a/debian/installer/modules/ppc64el/usb-serial-modules b/debian/installer/modules/ppc64el/usb-serial-modules
new file mode 100644
index 000000000..c7fe81a40
--- /dev/null
+++ b/debian/installer/modules/ppc64el/usb-serial-modules
@@ -0,0 +1 @@
+#include "../ppc64/usb-serial-modules"
diff --git a/debian/installer/modules/ppc64el/usb-storage-modules b/debian/installer/modules/ppc64el/usb-storage-modules
new file mode 100644
index 000000000..43d2811a9
--- /dev/null
+++ b/debian/installer/modules/ppc64el/usb-storage-modules
@@ -0,0 +1 @@
+#include "../ppc64/usb-storage-modules"
diff --git a/debian/installer/modules/ppc64el/xfs-modules b/debian/installer/modules/ppc64el/xfs-modules
new file mode 100644
index 000000000..3431331e9
--- /dev/null
+++ b/debian/installer/modules/ppc64el/xfs-modules
@@ -0,0 +1 @@
+#include "../ppc64/xfs-modules"
diff --git a/debian/installer/modules/ppp-modules b/debian/installer/modules/ppp-modules
new file mode 100644
index 000000000..0dd77f0b5
--- /dev/null
+++ b/debian/installer/modules/ppp-modules
@@ -0,0 +1,5 @@
+ppp_async ?
+ppp_deflate
+ppp_synctty ?
+pppoe
+pppox
diff --git a/debian/installer/modules/qnx4-modules b/debian/installer/modules/qnx4-modules
new file mode 100644
index 000000000..05d4adc62
--- /dev/null
+++ b/debian/installer/modules/qnx4-modules
@@ -0,0 +1 @@
+qnx4
diff --git a/debian/installer/modules/riscv64/ata-modules b/debian/installer/modules/riscv64/ata-modules
new file mode 100644
index 000000000..ab5e7fdf0
--- /dev/null
+++ b/debian/installer/modules/riscv64/ata-modules
@@ -0,0 +1 @@
+libata ?
diff --git a/debian/installer/modules/riscv64/btrfs-modules b/debian/installer/modules/riscv64/btrfs-modules
new file mode 100644
index 000000000..e261e1388
--- /dev/null
+++ b/debian/installer/modules/riscv64/btrfs-modules
@@ -0,0 +1 @@
+#include <btrfs-modules>
diff --git a/debian/installer/modules/riscv64/cdrom-core-modules b/debian/installer/modules/riscv64/cdrom-core-modules
new file mode 100644
index 000000000..3ff69b48f
--- /dev/null
+++ b/debian/installer/modules/riscv64/cdrom-core-modules
@@ -0,0 +1 @@
+#include <cdrom-core-modules>
diff --git a/debian/installer/modules/riscv64/compress-modules b/debian/installer/modules/riscv64/compress-modules
new file mode 100644
index 000000000..804616619
--- /dev/null
+++ b/debian/installer/modules/riscv64/compress-modules
@@ -0,0 +1 @@
+#include <compress-modules>
diff --git a/debian/installer/modules/riscv64/crc-modules b/debian/installer/modules/riscv64/crc-modules
new file mode 100644
index 000000000..7e00de705
--- /dev/null
+++ b/debian/installer/modules/riscv64/crc-modules
@@ -0,0 +1 @@
+#include <crc-modules>
diff --git a/debian/installer/modules/riscv64/crypto-dm-modules b/debian/installer/modules/riscv64/crypto-dm-modules
new file mode 100644
index 000000000..4c8f2354c
--- /dev/null
+++ b/debian/installer/modules/riscv64/crypto-dm-modules
@@ -0,0 +1 @@
+#include <crypto-dm-modules>
diff --git a/debian/installer/modules/riscv64/crypto-modules b/debian/installer/modules/riscv64/crypto-modules
new file mode 100644
index 000000000..3a1e862b4
--- /dev/null
+++ b/debian/installer/modules/riscv64/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
diff --git a/debian/installer/modules/riscv64/event-modules b/debian/installer/modules/riscv64/event-modules
new file mode 100644
index 000000000..f8819afd3
--- /dev/null
+++ b/debian/installer/modules/riscv64/event-modules
@@ -0,0 +1 @@
+#include <event-modules>
diff --git a/debian/installer/modules/riscv64/ext4-modules b/debian/installer/modules/riscv64/ext4-modules
new file mode 100644
index 000000000..394c577ce
--- /dev/null
+++ b/debian/installer/modules/riscv64/ext4-modules
@@ -0,0 +1 @@
+#include <ext4-modules>
diff --git a/debian/installer/modules/riscv64/fat-modules b/debian/installer/modules/riscv64/fat-modules
new file mode 100644
index 000000000..274584eb6
--- /dev/null
+++ b/debian/installer/modules/riscv64/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
diff --git a/debian/installer/modules/riscv64/fb-modules b/debian/installer/modules/riscv64/fb-modules
new file mode 100644
index 000000000..aba524d90
--- /dev/null
+++ b/debian/installer/modules/riscv64/fb-modules
@@ -0,0 +1 @@
+#include <fb-modules>
diff --git a/debian/installer/modules/riscv64/fuse-modules b/debian/installer/modules/riscv64/fuse-modules
new file mode 100644
index 000000000..0b6ba0c8c
--- /dev/null
+++ b/debian/installer/modules/riscv64/fuse-modules
@@ -0,0 +1 @@
+#include <fuse-modules>
diff --git a/debian/installer/modules/riscv64/i2c-modules b/debian/installer/modules/riscv64/i2c-modules
new file mode 100644
index 000000000..203a607e7
--- /dev/null
+++ b/debian/installer/modules/riscv64/i2c-modules
@@ -0,0 +1 @@
+#include <i2c-modules>
diff --git a/debian/installer/modules/riscv64/input-modules b/debian/installer/modules/riscv64/input-modules
new file mode 100644
index 000000000..5ecb595a4
--- /dev/null
+++ b/debian/installer/modules/riscv64/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
diff --git a/debian/installer/modules/riscv64/isofs-modules b/debian/installer/modules/riscv64/isofs-modules
new file mode 100644
index 000000000..da4fa9a3c
--- /dev/null
+++ b/debian/installer/modules/riscv64/isofs-modules
@@ -0,0 +1 @@
+#include <isofs-modules>
diff --git a/debian/installer/modules/riscv64/jfs-modules b/debian/installer/modules/riscv64/jfs-modules
new file mode 100644
index 000000000..7e4d912b9
--- /dev/null
+++ b/debian/installer/modules/riscv64/jfs-modules
@@ -0,0 +1 @@
+#include <jfs-modules>
diff --git a/debian/installer/modules/riscv64/kernel-image b/debian/installer/modules/riscv64/kernel-image
new file mode 100644
index 000000000..1d11b1921
--- /dev/null
+++ b/debian/installer/modules/riscv64/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
diff --git a/debian/installer/modules/riscv64/loop-modules b/debian/installer/modules/riscv64/loop-modules
new file mode 100644
index 000000000..c1c948fa3
--- /dev/null
+++ b/debian/installer/modules/riscv64/loop-modules
@@ -0,0 +1 @@
+#include <loop-modules>
diff --git a/debian/installer/modules/riscv64/md-modules b/debian/installer/modules/riscv64/md-modules
new file mode 100644
index 000000000..26115e10b
--- /dev/null
+++ b/debian/installer/modules/riscv64/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
diff --git a/debian/installer/modules/riscv64/mtd-core-modules b/debian/installer/modules/riscv64/mtd-core-modules
new file mode 100644
index 000000000..28fdada60
--- /dev/null
+++ b/debian/installer/modules/riscv64/mtd-core-modules
@@ -0,0 +1 @@
+#include <mtd-core-modules>
diff --git a/debian/installer/modules/riscv64/mtd-modules b/debian/installer/modules/riscv64/mtd-modules
new file mode 100644
index 000000000..5dd7997b2
--- /dev/null
+++ b/debian/installer/modules/riscv64/mtd-modules
@@ -0,0 +1 @@
+#include <mtd-modules>
diff --git a/debian/installer/modules/riscv64/multipath-modules b/debian/installer/modules/riscv64/multipath-modules
new file mode 100644
index 000000000..a8b69b253
--- /dev/null
+++ b/debian/installer/modules/riscv64/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
diff --git a/debian/installer/modules/riscv64/nbd-modules b/debian/installer/modules/riscv64/nbd-modules
new file mode 100644
index 000000000..3c9b3e5d4
--- /dev/null
+++ b/debian/installer/modules/riscv64/nbd-modules
@@ -0,0 +1 @@
+#include <nbd-modules>
diff --git a/debian/installer/modules/riscv64/nic-modules b/debian/installer/modules/riscv64/nic-modules
new file mode 100644
index 000000000..2512e8395
--- /dev/null
+++ b/debian/installer/modules/riscv64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
diff --git a/debian/installer/modules/riscv64/nic-shared-modules b/debian/installer/modules/riscv64/nic-shared-modules
new file mode 100644
index 000000000..cc84b14dc
--- /dev/null
+++ b/debian/installer/modules/riscv64/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
diff --git a/debian/installer/modules/riscv64/nic-usb-modules b/debian/installer/modules/riscv64/nic-usb-modules
new file mode 100644
index 000000000..c479669b4
--- /dev/null
+++ b/debian/installer/modules/riscv64/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
diff --git a/debian/installer/modules/riscv64/nic-wireless-modules b/debian/installer/modules/riscv64/nic-wireless-modules
new file mode 100644
index 000000000..53fd18d7f
--- /dev/null
+++ b/debian/installer/modules/riscv64/nic-wireless-modules
@@ -0,0 +1 @@
+#include <nic-wireless-modules>
diff --git a/debian/installer/modules/riscv64/pata-modules b/debian/installer/modules/riscv64/pata-modules
new file mode 100644
index 000000000..b0cd6337a
--- /dev/null
+++ b/debian/installer/modules/riscv64/pata-modules
@@ -0,0 +1 @@
+#include <pata-modules>
diff --git a/debian/installer/modules/riscv64/ppp-modules b/debian/installer/modules/riscv64/ppp-modules
new file mode 100644
index 000000000..1f26aa1ee
--- /dev/null
+++ b/debian/installer/modules/riscv64/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
diff --git a/debian/installer/modules/riscv64/sata-modules b/debian/installer/modules/riscv64/sata-modules
new file mode 100644
index 000000000..01318c258
--- /dev/null
+++ b/debian/installer/modules/riscv64/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
diff --git a/debian/installer/modules/riscv64/scsi-core-modules b/debian/installer/modules/riscv64/scsi-core-modules
new file mode 100644
index 000000000..dd65d6614
--- /dev/null
+++ b/debian/installer/modules/riscv64/scsi-core-modules
@@ -0,0 +1 @@
+#include <scsi-core-modules>
diff --git a/debian/installer/modules/riscv64/scsi-modules b/debian/installer/modules/riscv64/scsi-modules
new file mode 100644
index 000000000..675462a14
--- /dev/null
+++ b/debian/installer/modules/riscv64/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+
diff --git a/debian/installer/modules/riscv64/scsi-nic-modules b/debian/installer/modules/riscv64/scsi-nic-modules
new file mode 100644
index 000000000..089dd5dc6
--- /dev/null
+++ b/debian/installer/modules/riscv64/scsi-nic-modules
@@ -0,0 +1 @@
+#include <scsi-nic-modules>
diff --git a/debian/installer/modules/riscv64/squashfs-modules b/debian/installer/modules/riscv64/squashfs-modules
new file mode 100644
index 000000000..42d77887a
--- /dev/null
+++ b/debian/installer/modules/riscv64/squashfs-modules
@@ -0,0 +1 @@
+#include <squashfs-modules>
diff --git a/debian/installer/modules/riscv64/udf-modules b/debian/installer/modules/riscv64/udf-modules
new file mode 100644
index 000000000..b90d7ee9b
--- /dev/null
+++ b/debian/installer/modules/riscv64/udf-modules
@@ -0,0 +1 @@
+#include <udf-modules>
diff --git a/debian/installer/modules/riscv64/usb-modules b/debian/installer/modules/riscv64/usb-modules
new file mode 100644
index 000000000..c598dedd8
--- /dev/null
+++ b/debian/installer/modules/riscv64/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
diff --git a/debian/installer/modules/riscv64/usb-serial-modules b/debian/installer/modules/riscv64/usb-serial-modules
new file mode 100644
index 000000000..c0a0dc3bd
--- /dev/null
+++ b/debian/installer/modules/riscv64/usb-serial-modules
@@ -0,0 +1 @@
+#include <usb-serial-modules>
diff --git a/debian/installer/modules/riscv64/usb-storage-modules b/debian/installer/modules/riscv64/usb-storage-modules
new file mode 100644
index 000000000..8c5e81b55
--- /dev/null
+++ b/debian/installer/modules/riscv64/usb-storage-modules
@@ -0,0 +1 @@
+#include <usb-storage-modules>
diff --git a/debian/installer/modules/riscv64/zlib-modules b/debian/installer/modules/riscv64/zlib-modules
new file mode 100644
index 000000000..e02ad64bf
--- /dev/null
+++ b/debian/installer/modules/riscv64/zlib-modules
@@ -0,0 +1 @@
+#include <zlib-modules>
diff --git a/debian/installer/modules/rtc-modules b/debian/installer/modules/rtc-modules
new file mode 100644
index 000000000..0a78e7856
--- /dev/null
+++ b/debian/installer/modules/rtc-modules
@@ -0,0 +1,2 @@
+rtc ?
+rtc-cmos
diff --git a/debian/installer/modules/s390x/btrfs-modules b/debian/installer/modules/s390x/btrfs-modules
new file mode 100644
index 000000000..e261e1388
--- /dev/null
+++ b/debian/installer/modules/s390x/btrfs-modules
@@ -0,0 +1 @@
+#include <btrfs-modules>
diff --git a/debian/installer/modules/s390x/cdrom-core-modules b/debian/installer/modules/s390x/cdrom-core-modules
new file mode 100644
index 000000000..3ff69b48f
--- /dev/null
+++ b/debian/installer/modules/s390x/cdrom-core-modules
@@ -0,0 +1 @@
+#include <cdrom-core-modules>
diff --git a/debian/installer/modules/s390x/compress-modules b/debian/installer/modules/s390x/compress-modules
new file mode 100644
index 000000000..804616619
--- /dev/null
+++ b/debian/installer/modules/s390x/compress-modules
@@ -0,0 +1 @@
+#include <compress-modules>
diff --git a/debian/installer/modules/s390x/crc-modules b/debian/installer/modules/s390x/crc-modules
new file mode 100644
index 000000000..7e00de705
--- /dev/null
+++ b/debian/installer/modules/s390x/crc-modules
@@ -0,0 +1 @@
+#include <crc-modules>
diff --git a/debian/installer/modules/s390x/crypto-dm-modules b/debian/installer/modules/s390x/crypto-dm-modules
new file mode 100644
index 000000000..4c8f2354c
--- /dev/null
+++ b/debian/installer/modules/s390x/crypto-dm-modules
@@ -0,0 +1 @@
+#include <crypto-dm-modules>
diff --git a/debian/installer/modules/s390x/crypto-modules b/debian/installer/modules/s390x/crypto-modules
new file mode 100644
index 000000000..3a1e862b4
--- /dev/null
+++ b/debian/installer/modules/s390x/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
diff --git a/debian/installer/modules/s390x/dasd-extra-modules b/debian/installer/modules/s390x/dasd-extra-modules
new file mode 100644
index 000000000..ddd10cdfb
--- /dev/null
+++ b/debian/installer/modules/s390x/dasd-extra-modules
@@ -0,0 +1 @@
+dasd_diag_mod
diff --git a/debian/installer/modules/s390x/dasd-modules b/debian/installer/modules/s390x/dasd-modules
new file mode 100644
index 000000000..d3df219e7
--- /dev/null
+++ b/debian/installer/modules/s390x/dasd-modules
@@ -0,0 +1,2 @@
+dasd_eckd_mod
+dasd_fba_mod
diff --git a/debian/installer/modules/s390x/ext4-modules b/debian/installer/modules/s390x/ext4-modules
new file mode 100644
index 000000000..394c577ce
--- /dev/null
+++ b/debian/installer/modules/s390x/ext4-modules
@@ -0,0 +1 @@
+#include <ext4-modules>
diff --git a/debian/installer/modules/s390x/fat-modules b/debian/installer/modules/s390x/fat-modules
new file mode 100644
index 000000000..cce8fd30c
--- /dev/null
+++ b/debian/installer/modules/s390x/fat-modules
@@ -0,0 +1,2 @@
+#include <fat-modules>
+
diff --git a/debian/installer/modules/s390x/fuse-modules b/debian/installer/modules/s390x/fuse-modules
new file mode 100644
index 000000000..0b6ba0c8c
--- /dev/null
+++ b/debian/installer/modules/s390x/fuse-modules
@@ -0,0 +1 @@
+#include <fuse-modules>
diff --git a/debian/installer/modules/s390x/isofs-modules b/debian/installer/modules/s390x/isofs-modules
new file mode 100644
index 000000000..da4fa9a3c
--- /dev/null
+++ b/debian/installer/modules/s390x/isofs-modules
@@ -0,0 +1 @@
+#include <isofs-modules>
diff --git a/debian/installer/modules/s390x/kernel-image b/debian/installer/modules/s390x/kernel-image
new file mode 100644
index 000000000..fd8c3a772
--- /dev/null
+++ b/debian/installer/modules/s390x/kernel-image
@@ -0,0 +1,2 @@
+#include <kernel-image>
+vmcp ?
diff --git a/debian/installer/modules/s390x/loop-modules b/debian/installer/modules/s390x/loop-modules
new file mode 100644
index 000000000..c1c948fa3
--- /dev/null
+++ b/debian/installer/modules/s390x/loop-modules
@@ -0,0 +1 @@
+#include <loop-modules>
diff --git a/debian/installer/modules/s390x/md-modules b/debian/installer/modules/s390x/md-modules
new file mode 100644
index 000000000..ade088ddb
--- /dev/null
+++ b/debian/installer/modules/s390x/md-modules
@@ -0,0 +1,2 @@
+#include <md-modules>
+
diff --git a/debian/installer/modules/s390x/mtd-core-modules b/debian/installer/modules/s390x/mtd-core-modules
new file mode 100644
index 000000000..28fdada60
--- /dev/null
+++ b/debian/installer/modules/s390x/mtd-core-modules
@@ -0,0 +1 @@
+#include <mtd-core-modules>
diff --git a/debian/installer/modules/s390x/multipath-modules b/debian/installer/modules/s390x/multipath-modules
new file mode 100644
index 000000000..a8b69b253
--- /dev/null
+++ b/debian/installer/modules/s390x/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
diff --git a/debian/installer/modules/s390x/nbd-modules b/debian/installer/modules/s390x/nbd-modules
new file mode 100644
index 000000000..3c9b3e5d4
--- /dev/null
+++ b/debian/installer/modules/s390x/nbd-modules
@@ -0,0 +1 @@
+#include <nbd-modules>
diff --git a/debian/installer/modules/s390x/nic-modules b/debian/installer/modules/s390x/nic-modules
new file mode 100644
index 000000000..32056514d
--- /dev/null
+++ b/debian/installer/modules/s390x/nic-modules
@@ -0,0 +1,6 @@
+netiucv
+ctcm
+lcs
+qeth
+qeth_l2
+qeth_l3
diff --git a/debian/installer/modules/s390x/scsi-core-modules b/debian/installer/modules/s390x/scsi-core-modules
new file mode 100644
index 000000000..3537f8234
--- /dev/null
+++ b/debian/installer/modules/s390x/scsi-core-modules
@@ -0,0 +1,2 @@
+#include <scsi-core-modules>
+
diff --git a/debian/installer/modules/s390x/scsi-modules b/debian/installer/modules/s390x/scsi-modules
new file mode 100644
index 000000000..1f0171d7e
--- /dev/null
+++ b/debian/installer/modules/s390x/scsi-modules
@@ -0,0 +1 @@
+zfcp
diff --git a/debian/installer/modules/s390x/udf-modules b/debian/installer/modules/s390x/udf-modules
new file mode 100644
index 000000000..b90d7ee9b
--- /dev/null
+++ b/debian/installer/modules/s390x/udf-modules
@@ -0,0 +1 @@
+#include <udf-modules>
diff --git a/debian/installer/modules/s390x/xfs-modules b/debian/installer/modules/s390x/xfs-modules
new file mode 100644
index 000000000..c020b5d39
--- /dev/null
+++ b/debian/installer/modules/s390x/xfs-modules
@@ -0,0 +1,2 @@
+#include <xfs-modules>
+
diff --git a/debian/installer/modules/s390x/zlib-modules b/debian/installer/modules/s390x/zlib-modules
new file mode 100644
index 000000000..e02ad64bf
--- /dev/null
+++ b/debian/installer/modules/s390x/zlib-modules
@@ -0,0 +1 @@
+#include <zlib-modules>
diff --git a/debian/installer/modules/sata-modules b/debian/installer/modules/sata-modules
new file mode 100644
index 000000000..da038b739
--- /dev/null
+++ b/debian/installer/modules/sata-modules
@@ -0,0 +1,13 @@
+# Include SATA drivers by default
+drivers/ata/ahci* ?
+drivers/ata/sata_*
+
+# sata-sis depends on pata-sis; avoid a dependency
+pata_sis ?
+
+# Include more SATA drivers with unusual names
+acard-ahci ?
+ata_piix ?
+sx8 ?
+pdc_adma ?
+mtip32xx ?
diff --git a/debian/installer/modules/scsi-core-modules b/debian/installer/modules/scsi-core-modules
new file mode 100644
index 000000000..e0d1d8fca
--- /dev/null
+++ b/debian/installer/modules/scsi-core-modules
@@ -0,0 +1,4 @@
+scsi_mod
+sd_mod
+scsi_transport_sas ?
+scsi_transport_spi ?
diff --git a/debian/installer/modules/scsi-modules b/debian/installer/modules/scsi-modules
new file mode 100644
index 000000000..019f9a657
--- /dev/null
+++ b/debian/installer/modules/scsi-modules
@@ -0,0 +1,48 @@
+# Include SCSI controller drivers by default
+drivers/scsi/**
+DAC960 ?
+mptfc
+mptsas
+mptspi
+
+# Include iSCSI boot support
+iscsi_ibft ?
+
+# Include Xen block driver even though it's not SCSI
+xen-blkfront ?
+
+# Exclude PCMCIA drivers, which depend on pcmcia-modules (FIXME)
+drivers/scsi/pcmcia/* -
+
+# Exclude drivers for converged NICs, packaged in scsi-nic-modules
+drivers/scsi/cxgbi/* -
+cxgb3i -
+cxgb4i -
+qedf -
+qedi -
+
+# Exclude enclosure driver
+ses -
+
+# Exclude target drivers
+tcm_qla2xxx -
+
+# Exclude common code packaged in {cdrom,scsi}-core-modules
+scsi_mod -
+sd_mod -
+sr_mod -
+scsi_transport_sas -
+scsi_transport_spi -
+
+# Exclude any other common code that isn't pulled in by dependencies
+drivers/scsi/device_handler/* -
+drivers/scsi/lib** -
+drivers/scsi/osd/* -
+drivers/scsi/scsi_transport_* -
+fcoe -
+raid_class -
+scsi_debug -
+
+# XXX not actually SCSI
+nvme ?
+virtio_blk ?
diff --git a/debian/installer/modules/scsi-nic-modules b/debian/installer/modules/scsi-nic-modules
new file mode 100644
index 000000000..b2b8f5e5d
--- /dev/null
+++ b/debian/installer/modules/scsi-nic-modules
@@ -0,0 +1,4 @@
+cxgb3i
+cxgb4i
+qedf
+qedi
diff --git a/debian/installer/modules/serial-modules b/debian/installer/modules/serial-modules
new file mode 100644
index 000000000..738348dd6
--- /dev/null
+++ b/debian/installer/modules/serial-modules
@@ -0,0 +1,3 @@
+rp2 ?
+serial_cs ?
+synclink_cs ?
diff --git a/debian/installer/modules/sh4-sh7751r/btrfs-modules b/debian/installer/modules/sh4-sh7751r/btrfs-modules
new file mode 100644
index 000000000..e261e1388
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/btrfs-modules
@@ -0,0 +1 @@
+#include <btrfs-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/cdrom-core-modules b/debian/installer/modules/sh4-sh7751r/cdrom-core-modules
new file mode 100644
index 000000000..e264d7aa3
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/cdrom-core-modules
@@ -0,0 +1,2 @@
+#include <cdrom-core-modules>
+
diff --git a/debian/installer/modules/sh4-sh7751r/compress-modules b/debian/installer/modules/sh4-sh7751r/compress-modules
new file mode 100644
index 000000000..804616619
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/compress-modules
@@ -0,0 +1 @@
+#include <compress-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/crc-modules b/debian/installer/modules/sh4-sh7751r/crc-modules
new file mode 100644
index 000000000..7e00de705
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/crc-modules
@@ -0,0 +1 @@
+#include <crc-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/crypto-dm-modules b/debian/installer/modules/sh4-sh7751r/crypto-dm-modules
new file mode 100644
index 000000000..4c8f2354c
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/crypto-dm-modules
@@ -0,0 +1 @@
+#include <crypto-dm-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/crypto-modules b/debian/installer/modules/sh4-sh7751r/crypto-modules
new file mode 100644
index 000000000..3a1e862b4
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/ext4-modules b/debian/installer/modules/sh4-sh7751r/ext4-modules
new file mode 100644
index 000000000..394c577ce
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/ext4-modules
@@ -0,0 +1 @@
+#include <ext4-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/fat-modules b/debian/installer/modules/sh4-sh7751r/fat-modules
new file mode 100644
index 000000000..274584eb6
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/firewire-core-modules b/debian/installer/modules/sh4-sh7751r/firewire-core-modules
new file mode 100644
index 000000000..dcac80af9
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/firewire-core-modules
@@ -0,0 +1 @@
+#include <firewire-core-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/fuse-modules b/debian/installer/modules/sh4-sh7751r/fuse-modules
new file mode 100644
index 000000000..0b6ba0c8c
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/fuse-modules
@@ -0,0 +1 @@
+#include <fuse-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/i2c-modules b/debian/installer/modules/sh4-sh7751r/i2c-modules
new file mode 100644
index 000000000..203a607e7
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/i2c-modules
@@ -0,0 +1 @@
+#include <i2c-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/isofs-modules b/debian/installer/modules/sh4-sh7751r/isofs-modules
new file mode 100644
index 000000000..da4fa9a3c
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/isofs-modules
@@ -0,0 +1 @@
+#include <isofs-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/jfs-modules b/debian/installer/modules/sh4-sh7751r/jfs-modules
new file mode 100644
index 000000000..7e4d912b9
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/jfs-modules
@@ -0,0 +1 @@
+#include <jfs-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/kernel-image b/debian/installer/modules/sh4-sh7751r/kernel-image
new file mode 100644
index 000000000..1d11b1921
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
diff --git a/debian/installer/modules/sh4-sh7751r/loop-modules b/debian/installer/modules/sh4-sh7751r/loop-modules
new file mode 100644
index 000000000..c1c948fa3
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/loop-modules
@@ -0,0 +1 @@
+#include <loop-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/md-modules b/debian/installer/modules/sh4-sh7751r/md-modules
new file mode 100644
index 000000000..26115e10b
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/minix-modules b/debian/installer/modules/sh4-sh7751r/minix-modules
new file mode 100644
index 000000000..82b984372
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/minix-modules
@@ -0,0 +1 @@
+#include <minix-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/multipath-modules b/debian/installer/modules/sh4-sh7751r/multipath-modules
new file mode 100644
index 000000000..a8b69b253
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/nbd-modules b/debian/installer/modules/sh4-sh7751r/nbd-modules
new file mode 100644
index 000000000..3c9b3e5d4
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/nbd-modules
@@ -0,0 +1 @@
+#include <nbd-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/nic-modules b/debian/installer/modules/sh4-sh7751r/nic-modules
new file mode 100644
index 000000000..67761a69c
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/nic-modules
@@ -0,0 +1,6 @@
+3c59x ?
+8139too ?
+e100 ?
+e1000 ?
+ne2k-pci ?
+r8169 ?
diff --git a/debian/installer/modules/sh4-sh7751r/nic-shared-modules b/debian/installer/modules/sh4-sh7751r/nic-shared-modules
new file mode 100644
index 000000000..cc84b14dc
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/nic-usb-modules b/debian/installer/modules/sh4-sh7751r/nic-usb-modules
new file mode 100644
index 000000000..c479669b4
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/pata-modules b/debian/installer/modules/sh4-sh7751r/pata-modules
new file mode 100644
index 000000000..b0cd6337a
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/pata-modules
@@ -0,0 +1 @@
+#include <pata-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/ppp-modules b/debian/installer/modules/sh4-sh7751r/ppp-modules
new file mode 100644
index 000000000..1f26aa1ee
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/sata-modules b/debian/installer/modules/sh4-sh7751r/sata-modules
new file mode 100644
index 000000000..01318c258
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/sound-modules b/debian/installer/modules/sh4-sh7751r/sound-modules
new file mode 100644
index 000000000..68395ab3d
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/sound-modules
@@ -0,0 +1 @@
+#include <sound-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/speakup-modules b/debian/installer/modules/sh4-sh7751r/speakup-modules
new file mode 100644
index 000000000..29592721a
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/speakup-modules
@@ -0,0 +1 @@
+#include <speakup-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/squashfs-modules b/debian/installer/modules/sh4-sh7751r/squashfs-modules
new file mode 100644
index 000000000..42d77887a
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/squashfs-modules
@@ -0,0 +1 @@
+#include <squashfs-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/udf-modules b/debian/installer/modules/sh4-sh7751r/udf-modules
new file mode 100644
index 000000000..b90d7ee9b
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/udf-modules
@@ -0,0 +1 @@
+#include <udf-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/usb-serial-modules b/debian/installer/modules/sh4-sh7751r/usb-serial-modules
new file mode 100644
index 000000000..c0a0dc3bd
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/usb-serial-modules
@@ -0,0 +1 @@
+#include <usb-serial-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/usb-storage-modules b/debian/installer/modules/sh4-sh7751r/usb-storage-modules
new file mode 100644
index 000000000..8c5e81b55
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/usb-storage-modules
@@ -0,0 +1 @@
+#include <usb-storage-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/xfs-modules b/debian/installer/modules/sh4-sh7751r/xfs-modules
new file mode 100644
index 000000000..98374e2bb
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/xfs-modules
@@ -0,0 +1 @@
+#include <xfs-modules>
diff --git a/debian/installer/modules/sh4-sh7751r/zlib-modules b/debian/installer/modules/sh4-sh7751r/zlib-modules
new file mode 100644
index 000000000..e02ad64bf
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7751r/zlib-modules
@@ -0,0 +1 @@
+#include <zlib-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/btrfs-modules b/debian/installer/modules/sh4-sh7785lcr/btrfs-modules
new file mode 100644
index 000000000..e261e1388
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/btrfs-modules
@@ -0,0 +1 @@
+#include <btrfs-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/cdrom-core-modules b/debian/installer/modules/sh4-sh7785lcr/cdrom-core-modules
new file mode 100644
index 000000000..e264d7aa3
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/cdrom-core-modules
@@ -0,0 +1,2 @@
+#include <cdrom-core-modules>
+
diff --git a/debian/installer/modules/sh4-sh7785lcr/compress-modules b/debian/installer/modules/sh4-sh7785lcr/compress-modules
new file mode 100644
index 000000000..804616619
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/compress-modules
@@ -0,0 +1 @@
+#include <compress-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/crc-modules b/debian/installer/modules/sh4-sh7785lcr/crc-modules
new file mode 100644
index 000000000..7e00de705
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/crc-modules
@@ -0,0 +1 @@
+#include <crc-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/crypto-dm-modules b/debian/installer/modules/sh4-sh7785lcr/crypto-dm-modules
new file mode 100644
index 000000000..4c8f2354c
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/crypto-dm-modules
@@ -0,0 +1 @@
+#include <crypto-dm-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/crypto-modules b/debian/installer/modules/sh4-sh7785lcr/crypto-modules
new file mode 100644
index 000000000..3a1e862b4
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/ext4-modules b/debian/installer/modules/sh4-sh7785lcr/ext4-modules
new file mode 100644
index 000000000..394c577ce
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/ext4-modules
@@ -0,0 +1 @@
+#include <ext4-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/fat-modules b/debian/installer/modules/sh4-sh7785lcr/fat-modules
new file mode 100644
index 000000000..274584eb6
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/firewire-core-modules b/debian/installer/modules/sh4-sh7785lcr/firewire-core-modules
new file mode 100644
index 000000000..dcac80af9
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/firewire-core-modules
@@ -0,0 +1 @@
+#include <firewire-core-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/fuse-modules b/debian/installer/modules/sh4-sh7785lcr/fuse-modules
new file mode 100644
index 000000000..0b6ba0c8c
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/fuse-modules
@@ -0,0 +1 @@
+#include <fuse-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/isofs-modules b/debian/installer/modules/sh4-sh7785lcr/isofs-modules
new file mode 100644
index 000000000..da4fa9a3c
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/isofs-modules
@@ -0,0 +1 @@
+#include <isofs-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/jfs-modules b/debian/installer/modules/sh4-sh7785lcr/jfs-modules
new file mode 100644
index 000000000..7e4d912b9
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/jfs-modules
@@ -0,0 +1 @@
+#include <jfs-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/kernel-image b/debian/installer/modules/sh4-sh7785lcr/kernel-image
new file mode 100644
index 000000000..1d11b1921
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
diff --git a/debian/installer/modules/sh4-sh7785lcr/loop-modules b/debian/installer/modules/sh4-sh7785lcr/loop-modules
new file mode 100644
index 000000000..c1c948fa3
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/loop-modules
@@ -0,0 +1 @@
+#include <loop-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/md-modules b/debian/installer/modules/sh4-sh7785lcr/md-modules
new file mode 100644
index 000000000..26115e10b
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/minix-modules b/debian/installer/modules/sh4-sh7785lcr/minix-modules
new file mode 100644
index 000000000..82b984372
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/minix-modules
@@ -0,0 +1 @@
+#include <minix-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/multipath-modules b/debian/installer/modules/sh4-sh7785lcr/multipath-modules
new file mode 100644
index 000000000..a8b69b253
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/nbd-modules b/debian/installer/modules/sh4-sh7785lcr/nbd-modules
new file mode 100644
index 000000000..3c9b3e5d4
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/nbd-modules
@@ -0,0 +1 @@
+#include <nbd-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/nic-modules b/debian/installer/modules/sh4-sh7785lcr/nic-modules
new file mode 100644
index 000000000..67761a69c
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/nic-modules
@@ -0,0 +1,6 @@
+3c59x ?
+8139too ?
+e100 ?
+e1000 ?
+ne2k-pci ?
+r8169 ?
diff --git a/debian/installer/modules/sh4-sh7785lcr/nic-shared-modules b/debian/installer/modules/sh4-sh7785lcr/nic-shared-modules
new file mode 100644
index 000000000..cc84b14dc
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/nic-usb-modules b/debian/installer/modules/sh4-sh7785lcr/nic-usb-modules
new file mode 100644
index 000000000..c479669b4
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/pata-modules b/debian/installer/modules/sh4-sh7785lcr/pata-modules
new file mode 100644
index 000000000..b0cd6337a
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/pata-modules
@@ -0,0 +1 @@
+#include <pata-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/ppp-modules b/debian/installer/modules/sh4-sh7785lcr/ppp-modules
new file mode 100644
index 000000000..1f26aa1ee
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/sata-modules b/debian/installer/modules/sh4-sh7785lcr/sata-modules
new file mode 100644
index 000000000..01318c258
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/sound-modules b/debian/installer/modules/sh4-sh7785lcr/sound-modules
new file mode 100644
index 000000000..68395ab3d
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/sound-modules
@@ -0,0 +1 @@
+#include <sound-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/speakup-modules b/debian/installer/modules/sh4-sh7785lcr/speakup-modules
new file mode 100644
index 000000000..29592721a
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/speakup-modules
@@ -0,0 +1 @@
+#include <speakup-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/squashfs-modules b/debian/installer/modules/sh4-sh7785lcr/squashfs-modules
new file mode 100644
index 000000000..42d77887a
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/squashfs-modules
@@ -0,0 +1 @@
+#include <squashfs-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/udf-modules b/debian/installer/modules/sh4-sh7785lcr/udf-modules
new file mode 100644
index 000000000..b90d7ee9b
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/udf-modules
@@ -0,0 +1 @@
+#include <udf-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/usb-serial-modules b/debian/installer/modules/sh4-sh7785lcr/usb-serial-modules
new file mode 100644
index 000000000..c0a0dc3bd
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/usb-serial-modules
@@ -0,0 +1 @@
+#include <usb-serial-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/xfs-modules b/debian/installer/modules/sh4-sh7785lcr/xfs-modules
new file mode 100644
index 000000000..98374e2bb
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/xfs-modules
@@ -0,0 +1 @@
+#include <xfs-modules>
diff --git a/debian/installer/modules/sh4-sh7785lcr/zlib-modules b/debian/installer/modules/sh4-sh7785lcr/zlib-modules
new file mode 100644
index 000000000..e02ad64bf
--- /dev/null
+++ b/debian/installer/modules/sh4-sh7785lcr/zlib-modules
@@ -0,0 +1 @@
+#include <zlib-modules>
diff --git a/debian/installer/modules/sound-modules b/debian/installer/modules/sound-modules
new file mode 100644
index 000000000..7bd30ee8e
--- /dev/null
+++ b/debian/installer/modules/sound-modules
@@ -0,0 +1,15 @@
+# Include sound drivers by default
+sound/**
+
+# Exclude any core/shared modules that aren't pulled in by dependencies
+sound/core/** -
+sound/drivers/** -
+sound/i2c/** -
+
+# Exclude synthesiser drivers
+snd-adlib -
+sound/**-synth -
+
+# Exclude soft-modem drivers
+sound/**-modem -
+snd-intel8x0m -
diff --git a/debian/installer/modules/sparc64/ata-modules b/debian/installer/modules/sparc64/ata-modules
new file mode 100644
index 000000000..b81c0f38b
--- /dev/null
+++ b/debian/installer/modules/sparc64/ata-modules
@@ -0,0 +1 @@
+#include <ata-modules>
diff --git a/debian/installer/modules/sparc64/btrfs-modules b/debian/installer/modules/sparc64/btrfs-modules
new file mode 100644
index 000000000..e261e1388
--- /dev/null
+++ b/debian/installer/modules/sparc64/btrfs-modules
@@ -0,0 +1 @@
+#include <btrfs-modules>
diff --git a/debian/installer/modules/sparc64/cdrom-core-modules b/debian/installer/modules/sparc64/cdrom-core-modules
new file mode 100644
index 000000000..e264d7aa3
--- /dev/null
+++ b/debian/installer/modules/sparc64/cdrom-core-modules
@@ -0,0 +1,2 @@
+#include <cdrom-core-modules>
+
diff --git a/debian/installer/modules/sparc64/compress-modules b/debian/installer/modules/sparc64/compress-modules
new file mode 100644
index 000000000..804616619
--- /dev/null
+++ b/debian/installer/modules/sparc64/compress-modules
@@ -0,0 +1 @@
+#include <compress-modules>
diff --git a/debian/installer/modules/sparc64/crc-modules b/debian/installer/modules/sparc64/crc-modules
new file mode 100644
index 000000000..7e00de705
--- /dev/null
+++ b/debian/installer/modules/sparc64/crc-modules
@@ -0,0 +1 @@
+#include <crc-modules>
diff --git a/debian/installer/modules/sparc64/crypto-dm-modules b/debian/installer/modules/sparc64/crypto-dm-modules
new file mode 100644
index 000000000..4c8f2354c
--- /dev/null
+++ b/debian/installer/modules/sparc64/crypto-dm-modules
@@ -0,0 +1 @@
+#include <crypto-dm-modules>
diff --git a/debian/installer/modules/sparc64/crypto-modules b/debian/installer/modules/sparc64/crypto-modules
new file mode 100644
index 000000000..3a1e862b4
--- /dev/null
+++ b/debian/installer/modules/sparc64/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
diff --git a/debian/installer/modules/sparc64/ext4-modules b/debian/installer/modules/sparc64/ext4-modules
new file mode 100644
index 000000000..394c577ce
--- /dev/null
+++ b/debian/installer/modules/sparc64/ext4-modules
@@ -0,0 +1 @@
+#include <ext4-modules>
diff --git a/debian/installer/modules/sparc64/fat-modules b/debian/installer/modules/sparc64/fat-modules
new file mode 100644
index 000000000..cce8fd30c
--- /dev/null
+++ b/debian/installer/modules/sparc64/fat-modules
@@ -0,0 +1,2 @@
+#include <fat-modules>
+
diff --git a/debian/installer/modules/sparc64/fb-modules b/debian/installer/modules/sparc64/fb-modules
new file mode 100644
index 000000000..aba524d90
--- /dev/null
+++ b/debian/installer/modules/sparc64/fb-modules
@@ -0,0 +1 @@
+#include <fb-modules>
diff --git a/debian/installer/modules/sparc64/fuse-modules b/debian/installer/modules/sparc64/fuse-modules
new file mode 100644
index 000000000..0b6ba0c8c
--- /dev/null
+++ b/debian/installer/modules/sparc64/fuse-modules
@@ -0,0 +1 @@
+#include <fuse-modules>
diff --git a/debian/installer/modules/sparc64/i2c-modules b/debian/installer/modules/sparc64/i2c-modules
new file mode 100644
index 000000000..203a607e7
--- /dev/null
+++ b/debian/installer/modules/sparc64/i2c-modules
@@ -0,0 +1 @@
+#include <i2c-modules>
diff --git a/debian/installer/modules/sparc64/input-modules b/debian/installer/modules/sparc64/input-modules
new file mode 100644
index 000000000..5ecb595a4
--- /dev/null
+++ b/debian/installer/modules/sparc64/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
diff --git a/debian/installer/modules/sparc64/isofs-modules b/debian/installer/modules/sparc64/isofs-modules
new file mode 100644
index 000000000..da4fa9a3c
--- /dev/null
+++ b/debian/installer/modules/sparc64/isofs-modules
@@ -0,0 +1 @@
+#include <isofs-modules>
diff --git a/debian/installer/modules/sparc64/jfs-modules b/debian/installer/modules/sparc64/jfs-modules
new file mode 100644
index 000000000..7e4d912b9
--- /dev/null
+++ b/debian/installer/modules/sparc64/jfs-modules
@@ -0,0 +1 @@
+#include <jfs-modules>
diff --git a/debian/installer/modules/sparc64/kernel-image b/debian/installer/modules/sparc64/kernel-image
new file mode 100644
index 000000000..1d11b1921
--- /dev/null
+++ b/debian/installer/modules/sparc64/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
diff --git a/debian/installer/modules/sparc64/md-modules b/debian/installer/modules/sparc64/md-modules
new file mode 100644
index 000000000..ade088ddb
--- /dev/null
+++ b/debian/installer/modules/sparc64/md-modules
@@ -0,0 +1,2 @@
+#include <md-modules>
+
diff --git a/debian/installer/modules/sparc64/multipath-modules b/debian/installer/modules/sparc64/multipath-modules
new file mode 100644
index 000000000..a8b69b253
--- /dev/null
+++ b/debian/installer/modules/sparc64/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
diff --git a/debian/installer/modules/sparc64/nbd-modules b/debian/installer/modules/sparc64/nbd-modules
new file mode 100644
index 000000000..3c9b3e5d4
--- /dev/null
+++ b/debian/installer/modules/sparc64/nbd-modules
@@ -0,0 +1 @@
+#include <nbd-modules>
diff --git a/debian/installer/modules/sparc64/nic-modules b/debian/installer/modules/sparc64/nic-modules
new file mode 100644
index 000000000..ad212bc8b
--- /dev/null
+++ b/debian/installer/modules/sparc64/nic-modules
@@ -0,0 +1,4 @@
+#include <nic-modules>
+
+eql
+skfp
diff --git a/debian/installer/modules/sparc64/nic-shared-modules b/debian/installer/modules/sparc64/nic-shared-modules
new file mode 100644
index 000000000..cc84b14dc
--- /dev/null
+++ b/debian/installer/modules/sparc64/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
diff --git a/debian/installer/modules/sparc64/nic-usb-modules b/debian/installer/modules/sparc64/nic-usb-modules
new file mode 100644
index 000000000..c479669b4
--- /dev/null
+++ b/debian/installer/modules/sparc64/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
diff --git a/debian/installer/modules/sparc64/pata-modules b/debian/installer/modules/sparc64/pata-modules
new file mode 100644
index 000000000..b0cd6337a
--- /dev/null
+++ b/debian/installer/modules/sparc64/pata-modules
@@ -0,0 +1 @@
+#include <pata-modules>
diff --git a/debian/installer/modules/sparc64/ppp-modules b/debian/installer/modules/sparc64/ppp-modules
new file mode 100644
index 000000000..f1ae9b3d1
--- /dev/null
+++ b/debian/installer/modules/sparc64/ppp-modules
@@ -0,0 +1,2 @@
+#include <ppp-modules>
+
diff --git a/debian/installer/modules/sparc64/sata-modules b/debian/installer/modules/sparc64/sata-modules
new file mode 100644
index 000000000..01318c258
--- /dev/null
+++ b/debian/installer/modules/sparc64/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
diff --git a/debian/installer/modules/sparc64/scsi-core-modules b/debian/installer/modules/sparc64/scsi-core-modules
new file mode 100644
index 000000000..6026fdf46
--- /dev/null
+++ b/debian/installer/modules/sparc64/scsi-core-modules
@@ -0,0 +1,6 @@
+#include <scsi-core-modules>
+
+# Support for virtual disk devices as a client under Sun Logical Domains.
+# Does not really belong here, but it's better than adding a new kernel
+# udeb just for this module.
+sunvdc ?
diff --git a/debian/installer/modules/sparc64/scsi-modules b/debian/installer/modules/sparc64/scsi-modules
new file mode 100644
index 000000000..afceaf8ec
--- /dev/null
+++ b/debian/installer/modules/sparc64/scsi-modules
@@ -0,0 +1,27 @@
+3w-9xxx
+3w-xxxx
+aacraid
+aic79xx
+aic7xxx
+aic94xx
+arcmsr
+atp870u ?
+dc395x
+dmx3191d
+hptiop
+initio
+ipr
+lpfc
+megaraid
+megaraid_sas
+mpt3sas
+mptsas
+mptspi
+osst
+qla1280 ?
+qla2xxx ?
+qla4xxx ?
+qlogicpti ?
+stex
+sun_esp
+sym53c8xx
diff --git a/debian/installer/modules/sparc64/squashfs-modules b/debian/installer/modules/sparc64/squashfs-modules
new file mode 100644
index 000000000..42d77887a
--- /dev/null
+++ b/debian/installer/modules/sparc64/squashfs-modules
@@ -0,0 +1 @@
+#include <squashfs-modules>
diff --git a/debian/installer/modules/sparc64/udf-modules b/debian/installer/modules/sparc64/udf-modules
new file mode 100644
index 000000000..b90d7ee9b
--- /dev/null
+++ b/debian/installer/modules/sparc64/udf-modules
@@ -0,0 +1 @@
+#include <udf-modules>
diff --git a/debian/installer/modules/sparc64/ufs-modules b/debian/installer/modules/sparc64/ufs-modules
new file mode 100644
index 000000000..163ead095
--- /dev/null
+++ b/debian/installer/modules/sparc64/ufs-modules
@@ -0,0 +1 @@
+#include <ufs-modules>
diff --git a/debian/installer/modules/sparc64/usb-modules b/debian/installer/modules/sparc64/usb-modules
new file mode 100644
index 000000000..c598dedd8
--- /dev/null
+++ b/debian/installer/modules/sparc64/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
diff --git a/debian/installer/modules/sparc64/usb-serial-modules b/debian/installer/modules/sparc64/usb-serial-modules
new file mode 100644
index 000000000..c0a0dc3bd
--- /dev/null
+++ b/debian/installer/modules/sparc64/usb-serial-modules
@@ -0,0 +1 @@
+#include <usb-serial-modules>
diff --git a/debian/installer/modules/sparc64/usb-storage-modules b/debian/installer/modules/sparc64/usb-storage-modules
new file mode 100644
index 000000000..272d95e2e
--- /dev/null
+++ b/debian/installer/modules/sparc64/usb-storage-modules
@@ -0,0 +1,2 @@
+#include <usb-storage-modules>
+
diff --git a/debian/installer/modules/sparc64/xfs-modules b/debian/installer/modules/sparc64/xfs-modules
new file mode 100644
index 000000000..c020b5d39
--- /dev/null
+++ b/debian/installer/modules/sparc64/xfs-modules
@@ -0,0 +1,2 @@
+#include <xfs-modules>
+
diff --git a/debian/installer/modules/sparc64/zlib-modules b/debian/installer/modules/sparc64/zlib-modules
new file mode 100644
index 000000000..e02ad64bf
--- /dev/null
+++ b/debian/installer/modules/sparc64/zlib-modules
@@ -0,0 +1 @@
+#include <zlib-modules>
diff --git a/debian/installer/modules/speakup-modules b/debian/installer/modules/speakup-modules
new file mode 100644
index 000000000..16822b914
--- /dev/null
+++ b/debian/installer/modules/speakup-modules
@@ -0,0 +1,15 @@
+speakup
+speakup_acntpc ?
+speakup_acntsa
+speakup_apollo
+speakup_audptr
+speakup_bns
+speakup_decext
+speakup_dectlk
+speakup_dtlk ?
+speakup_dummy
+speakup_keypc ?
+speakup_ltlk
+speakup_soft
+speakup_spkout
+speakup_txprt
diff --git a/debian/installer/modules/squashfs-modules b/debian/installer/modules/squashfs-modules
new file mode 100644
index 000000000..7c1157fa3
--- /dev/null
+++ b/debian/installer/modules/squashfs-modules
@@ -0,0 +1 @@
+squashfs
diff --git a/debian/installer/modules/udf-modules b/debian/installer/modules/udf-modules
new file mode 100644
index 000000000..97c604ff2
--- /dev/null
+++ b/debian/installer/modules/udf-modules
@@ -0,0 +1 @@
+udf
diff --git a/debian/installer/modules/ufs-modules b/debian/installer/modules/ufs-modules
new file mode 100644
index 000000000..19173e9aa
--- /dev/null
+++ b/debian/installer/modules/ufs-modules
@@ -0,0 +1 @@
+ufs
diff --git a/debian/installer/modules/uinput-modules b/debian/installer/modules/uinput-modules
new file mode 100644
index 000000000..42bc0053c
--- /dev/null
+++ b/debian/installer/modules/uinput-modules
@@ -0,0 +1 @@
+uinput
diff --git a/debian/installer/modules/usb-modules b/debian/installer/modules/usb-modules
new file mode 100644
index 000000000..68490ca76
--- /dev/null
+++ b/debian/installer/modules/usb-modules
@@ -0,0 +1,21 @@
+# Include USB host and dual-role drivers by default
+drivers/usb/host/**
+drivers/usb/c67x00/* ?
+drivers/usb/chipidea/* ?
+drivers/usb/dwc2/* ?
+drivers/usb/dwc3/* ?
+drivers/usb/isp1760/* ?
+drivers/usb/musb/* ?
+drivers/usb/renesas_usbhs/* ?
+
+# Exclude some obscure host drivers
+hwa-hc -
+sl811_cs -
+sl811-hcd -
+u132-hcd -
+whci-hcd -
+
+# Include USB PHY drivers by default
+drivers/phy/phy-*-usb* ?
+drivers/phy/*/phy-*-usb* ?
+drivers/usb/phy/* ?
diff --git a/debian/installer/modules/usb-serial-modules b/debian/installer/modules/usb-serial-modules
new file mode 100644
index 000000000..28f3aa760
--- /dev/null
+++ b/debian/installer/modules/usb-serial-modules
@@ -0,0 +1,28 @@
+# Include USB serial drivers by default
+drivers/usb/serial/*
+
+# Exclude drivers that are useless for serial consoles
+aircable -
+cyberjack -
+cypress_m8 -
+empeg -
+garmin_gps -
+ipaq -
+ipw -
+ir-usb -
+iuu_phoenix -
+kobil_sct -
+metro-usb -
+navman -
+omninet -
+opticon -
+option -
+qcaux -
+qcserial -
+sierra -
+symbolserial -
+usb_debug -
+usb_wwan -
+visor -
+wishbone-serial -
+xsens_mt -
diff --git a/debian/installer/modules/usb-storage-modules b/debian/installer/modules/usb-storage-modules
new file mode 100644
index 000000000..013c58cfc
--- /dev/null
+++ b/debian/installer/modules/usb-storage-modules
@@ -0,0 +1,2 @@
+# Include USB storage drivers by default
+drivers/usb/storage/*
diff --git a/debian/installer/modules/xfs-modules b/debian/installer/modules/xfs-modules
new file mode 100644
index 000000000..7bd8fb2ac
--- /dev/null
+++ b/debian/installer/modules/xfs-modules
@@ -0,0 +1,2 @@
+# Not available currently on all kernel versions, so marked optional.
+xfs ?
diff --git a/debian/installer/modules/zlib-modules b/debian/installer/modules/zlib-modules
new file mode 100644
index 000000000..322c546d1
--- /dev/null
+++ b/debian/installer/modules/zlib-modules
@@ -0,0 +1 @@
+zlib_deflate
diff --git a/debian/installer/package-list b/debian/installer/package-list
new file mode 100644
index 000000000..7c59cc3ae
--- /dev/null
+++ b/debian/installer/package-list
@@ -0,0 +1,466 @@
+# This file is used to build up the control file. The kernel version and
+# "-di" are appended to the package names. Section can be left out. So can
+# architecture, which is derived from the files in the modules directory.
+#
+Package: kernel-image
+Provides_amd64: zlib-modules
+Provides_arm64: mmc-core-modules, zlib-modules
+Provides_armel: rtc-modules
+Provides_armmp: mmc-core-modules, mtd-core-modules
+Provides_i386: rtc-modules, zlib-modules
+Provides_ia64: efi-modules, zlib-modules
+Provides_loongson-3: i2c-modules, rtc-modules
+Provides_mips: rtc-modules
+Provides_mips64: rtc-modules
+Provides_mips64el: rtc-modules
+Provides_mips64r6: rtc-modules
+Provides_mips64r6el: rtc-modules
+Provides_mipsel: rtc-modules
+Provides_mipsr6: rtc-modules
+Provides_mipsr6el: rtc-modules
+Provides_parisc64-smp: i2c-modules
+Provides_powerpc: i2c-modules
+Provides_powerpc64:
+Provides_sh4: event-modules, fb-modules, input-modules, mouse-modules, nic-shared-modules, rtc-modules, uinput-modules, usb-modules
+Priority: standard
+Description: Linux kernel image and core modules for the Debian installer
+ This package contains the kernel image and core modules for the Debian
+ installer boot images. It does _not_ provide a usable kernel for your full
+ Debian system.
+
+Package: nic-modules
+Depends: kernel-image, nic-shared-modules, i2c-modules, crc-modules, zlib-modules, mtd-core-modules
+Provides: nic-extra-modules
+Priority: standard
+Description: NIC drivers
+ This package contains Ethernet and some paravirtualised network drivers
+ for the kernel.
+
+Package: nic-wireless-modules
+Depends: kernel-image, nic-shared-modules, usb-modules, mmc-core-modules, pcmcia-modules, crc-modules
+Priority: standard
+Description: Wireless NIC drivers
+ This package contains wireless NIC drivers for the kernel.
+ Includes crypto modules only needed for wireless (WEP, WPA).
+
+Package: nic-shared-modules
+Depends: kernel-image
+Priority: standard
+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.
+
+Package: serial-modules
+Depends: kernel-image, pcmcia-modules
+Depends_ia64: kernel-image, pcmcia-modules, sn-modules
+Priority: optional
+Description: Serial drivers
+ This package contains serial drivers for the kernel.
+
+Package: usb-serial-modules
+Depends: kernel-image, usb-modules
+Priority: optional
+Description: USB serial drivers
+ This package contains USB serial drivers for the kernel.
+
+Package: ppp-modules
+Depends: kernel-image, serial-modules, zlib-modules, crc-modules
+Priority: optional
+Description: PPP drivers
+ This package contains PPP drivers for the kernel.
+
+Package: pata-modules
+Depends: kernel-image, ata-modules
+Priority: standard
+Priority_armhf: optional
+Description: PATA drivers
+ This package contains PATA drivers for the kernel.
+
+Package: cdrom-core-modules
+Depends: kernel-image, scsi-core-modules, isofs-modules
+Depends_ia64: kernel-image, scsi-core-modules, ide-modules, isofs-modules
+Depends_m68k: kernel-image, scsi-core-modules, ide-modules
+Priority: standard
+Description: CDROM support
+ This package contains core CDROM support for the kernel.
+
+Package: firewire-core-modules
+Depends: kernel-image, scsi-core-modules, crc-modules
+Priority: standard
+Description: Core FireWire drivers
+ This package contains core FireWire drivers for the kernel.
+
+Package: scsi-core-modules
+Depends: kernel-image
+Priority: standard
+Description: Core SCSI subsystem
+ This package contains the core SCSI subsystem for the kernel.
+
+Package: scsi-modules
+Depends: kernel-image, scsi-core-modules, cdrom-core-modules, ata-modules
+Priority: standard
+Description: SCSI drivers
+ This package contains SCSI drivers for the kernel.
+
+Package: scsi-nic-modules
+Depends: scsi-modules, nic-modules
+Priority: optional
+Description: SCSI drivers for converged NICs
+ This package contains SCSI drivers that depend on net drivers.
+
+Package: loop-modules
+Depends: kernel-image
+Priority: standard
+Description: Loopback filesystem support
+ This package contains loopback filesystem support for the kernel.
+
+Package: ipv6-modules
+Depends: kernel-image
+Priority: optional
+Description: IPv6 driver
+ This package contains the IPv6 driver for the kernel.
+
+Package: btrfs-modules
+Depends: kernel-image, crc-modules, zlib-modules, compress-modules, md-modules
+Priority: optional
+Description: BTRFS filesystem support
+ This package contains the BTRFS filesystem module for the kernel.
+
+Package: ext4-modules
+Depends: kernel-image, crc-modules
+Provides: ext2-modules, ext3-modules
+Priority: standard
+Description: ext2/ext3/ext4 filesystem support
+ This package contains the ext4 filesystem module for the kernel, which
+ also supports ext2 and ext3.
+
+Package: isofs-modules
+Depends: kernel-image
+Priority: standard
+Description: ISOFS filesystem support
+ This package contains the ISOFS filesystem module for the kernel.
+
+Package: jffs2-modules
+Depends: kernel-image, zlib-modules, compress-modules, mtd-modules
+Priority: optional
+Description: JFFS2 filesystem support
+ This package contains the JFFS2 filesystem module for the kernel.
+
+Package: jfs-modules
+Depends: kernel-image
+Priority: standard
+Description: JFS filesystem support
+ This package contains the JFS filesystem module for the kernel.
+
+Package: ufs-modules
+Depends: kernel-image
+Priority: optional
+Description: UFS filesystem support
+ This package contains the UFS filesystem module for the kernel.
+
+Package: xfs-modules
+Depends: kernel-image, crc-modules
+Priority: standard
+Description: XFS filesystem support
+ This package contains the XFS filesystem module for the kernel.
+
+Package: fat-modules
+Depends: kernel-image
+Priority: optional
+Priority_amd64: standard
+Priority_i386: standard
+Priority_ia64: standard
+Description: FAT filesystem support
+ This package contains the FAT and VFAT filesystem modules for the kernel.
+
+Package: hfs-modules
+Depends: kernel-image
+Priority: optional
+Description: HFS filesystem support
+ This package contains the HFS and HFS+ filesystem modules for the kernel.
+
+Package: affs-modules
+Depends: kernel-image
+Priority: optional
+Description: Amiga filesystem support
+ This package contains the Amiga filesystem module for the kernel.
+
+Package: minix-modules
+Depends: kernel-image
+Priority: optional
+Description: Minix filesystem support
+ This package contains the Minix filesystem module for the kernel.
+
+Package: nfs-modules
+Depends: kernel-image
+Priority: optional
+Description: NFS filesystem support
+ This package contains the NFS filesystem module for the kernel.
+
+Package: md-modules
+Depends: kernel-image, crc-modules
+Priority: optional
+Description: RAID and LVM support
+ This package contains RAID and LVM modules for the kernel.
+
+Package: multipath-modules
+Depends: kernel-image, md-modules, scsi-core-modules
+Priority: optional
+Description: Multipath support
+ This package contains DM-Multipath modules for the kernel.
+
+Package: usb-modules
+Depends: kernel-image
+Priority: optional
+Description: USB support
+ This package contains core USB drivers for the kernel.
+
+Package: usb-storage-modules
+Depends: kernel-image, scsi-core-modules, usb-modules
+Priority: standard
+Description: USB storage support
+ This package contains the USB storage driver for the kernel.
+
+Package: pcmcia-storage-modules
+Depends: kernel-image, cdrom-core-modules, pcmcia-modules, ata-modules
+Priority: standard
+Description: PCMCIA storage drivers
+ This package contains PCMCIA storage drivers for the kernel.
+
+Package: fb-modules
+Depends: kernel-image, i2c-modules
+Depends_armel: kernel-image, usb-modules
+Priority: optional
+Priority_hppa: standard
+Description: Frame buffer support
+ This package contains Frame buffer drivers for the kernel.
+
+Package: input-modules
+Depends: kernel-image, usb-modules, i2c-modules
+Priority: optional
+Description: Input devices support
+ This package contains input device drivers for the kernel.
+
+Package: event-modules
+Depends: kernel-image
+Priority: optional
+Description: Event support
+ This package contains event drivers for the kernel.
+
+Package: mouse-modules
+Depends: kernel-image, event-modules, input-modules, usb-modules
+Priority: optional
+Description: Mouse support
+ This package contains mouse drivers for the kernel.
+
+Package: nic-pcmcia-modules
+Depends: kernel-image, nic-shared-modules, nic-wireless-modules, pcmcia-modules, mmc-core-modules
+Priority: standard
+Description: Common PCMCIA NIC drivers
+ This package contains common PCMCIA NIC drivers for the kernel.
+
+Package: pcmcia-modules
+Depends: kernel-image
+Priority: standard
+Description: Common PCMCIA drivers
+ This package contains common PCMCIA drivers for the kernel.
+
+Package: nic-usb-modules
+Depends: kernel-image, nic-shared-modules, nic-wireless-modules, usb-modules, crc-modules
+Priority: standard
+Description: USB NIC drivers
+ This package contains USB network adapter drivers for the kernel.
+
+Package: sata-modules
+Depends: kernel-image, scsi-core-modules, ata-modules
+Priority: standard
+Description: SATA drivers
+ This package contains SATA drivers for the kernel.
+
+Package: acpi-modules
+Depends: kernel-image
+Priority: optional
+Description: ACPI support modules
+ This package contains kernel modules for ACPI.
+
+Package: i2c-modules
+Depends: kernel-image
+Priority: optional
+Description: i2c support modules
+ This package contains basic i2c support modules.
+
+Package: crc-modules
+Depends: kernel-image
+Priority: optional
+Description: CRC modules
+ This package contains CRC support modules.
+
+Package: crypto-modules
+Depends: kernel-image
+Priority: optional
+Description: crypto modules
+ This package contains crypto modules.
+
+Package: crypto-dm-modules
+Depends: kernel-image, md-modules
+Priority: optional
+Description: devicemapper crypto module
+ This package contains the devicemapper crypto (dm-crypt) module.
+
+Package: efi-modules
+Depends: kernel-image
+Priority: optional
+Description: EFI modules
+ This package contains EFI modules.
+
+Package: ata-modules
+Depends: kernel-image, scsi-core-modules
+Priority: optional
+Description: ATA disk modules
+ This package contains core ATA disk modules used by both PATA and SATA
+ disk drivers.
+
+Package: mmc-core-modules
+Depends: kernel-image
+Priority: optional
+Description: MMC/SD/SDIO core modules
+ This package contains core modules for MMC/SD/SDIO support.
+
+Package: mmc-modules
+Depends: kernel-image, mmc-core-modules, usb-modules, crc-modules
+Priority: optional
+Description: MMC/SD card modules
+ This package contains modules needed to support MMC (multimedia) and
+ SD cards.
+
+Package: nbd-modules
+Depends: kernel-image
+Priority: optional
+Description: Network Block Device modules
+ This package contains the modules required for support of the Network Block
+ Device
+
+Package: squashfs-modules
+Depends: kernel-image, compress-modules
+Priority: optional
+Description: squashfs modules
+ This package contains squashfs modules.
+
+Package: speakup-modules
+Depends: kernel-image
+Priority: optional
+Description: speakup modules
+ This package contains speakup modules.
+
+Package: rtc-modules
+Depends: kernel-image
+Priority: optional
+Description: RTC modules
+ This package contains RTC modules.
+
+Package: uinput-modules
+Depends: kernel-image
+Priority: optional
+Description: uinput support
+ This package contains the uinput module.
+
+Package: sound-modules
+Depends: kernel-image, i2c-modules, usb-modules, pcmcia-modules, firewire-core-modules, crc-modules
+Priority: optional
+Description: sound support
+ This package contains sound modules.
+
+Package: zlib-modules
+Depends: kernel-image
+Priority: optional
+Description: zlib modules
+ This package contains zlib modules.
+
+Package: compress-modules
+Depends: kernel-image
+Priority: optional
+Description: lzo modules
+ This package contains lzo modules.
+
+Package: leds-modules
+Depends: kernel-image
+Priority: optional
+Description: LED modules
+ This package contains LED modules.
+
+Package: udf-modules
+Depends: kernel-image, crc-modules
+Priority: optional
+Description: UDF modules
+ This package contains the UDF filesystem module.
+
+Package: fuse-modules
+Depends: kernel-image
+Priority: optional
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.
+
+Package: mtd-modules
+Depends: kernel-image, mtd-core-modules
+Priority: optional
+Description: MTD driver modules
+ This package contains MTD driver modules.
+
+Package: mtd-core-modules
+Depends: kernel-image
+Priority: optional
+Description: MTD core
+ This package contains the MTD core.
+
+Package: srm-modules
+Depends: kernel-image
+Priority: standard
+Description: SRM modules
+ This package contains the srm_env module which provides access to the SRM
+ environment.
+
+Package: ide-core-modules
+Depends: kernel-image
+Priority: standard
+Description: IDE support
+ This package contains core IDE support for the kernel.
+
+Package: ide-modules
+Depends: kernel-image, ide-core-modules, sn-modules
+Priority: standard
+Description: IDE drivers
+ This package contains IDE drivers for the kernel.
+
+Package: sn-modules
+Depends: kernel-image
+Priority: optional
+Description: SN modules
+ This package contains SN modules for Altix systems
+
+Package: hypervisor-modules
+Depends: kernel-image
+Priority: standard
+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.
+
+Package: fancontrol-modules
+Depends: kernel-image
+Priority: standard
+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.
+
+Package: dasd-modules
+Depends: kernel-image
+Priority: standard
+Description: dasd modules
+ This package contains dasd modules.
+
+Package: dasd-extra-modules
+Depends: kernel-image, dasd-modules
+Priority: optional
+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.
diff --git a/debian/lib/python/debian_linux/__init__.py b/debian/lib/python/debian_linux/__init__.py
new file mode 100644
index 000000000..b785cebf7
--- /dev/null
+++ b/debian/lib/python/debian_linux/__init__.py
@@ -0,0 +1 @@
+# Module
diff --git a/debian/lib/python/debian_linux/abi.py b/debian/lib/python/debian_linux/abi.py
new file mode 100644
index 000000000..8532db16d
--- /dev/null
+++ b/debian/lib/python/debian_linux/abi.py
@@ -0,0 +1,42 @@
+class Symbol(object):
+ def __init__(self, name, module, version, export):
+ self.name, self.module = name, module
+ self.version, self.export = version, export
+
+ def __eq__(self, other):
+ if not isinstance(other, Symbol):
+ return NotImplemented
+
+ # Symbols are resolved to modules by depmod at installation/
+ # upgrade time, not compile time, so moving a symbol between
+ # modules is not an ABI change. Compare everything else.
+ if self.name != other.name:
+ return False
+ if self.version != other.version:
+ return False
+ if self.export != other.export:
+ return False
+
+ return True
+
+ def __ne__(self, other):
+ ret = self.__eq__(other)
+ if ret is NotImplemented:
+ return ret
+ return not ret
+
+
+class Symbols(dict):
+ def __init__(self, file=None):
+ if file:
+ self.read(file)
+
+ def read(self, file):
+ for line in file:
+ version, name, module, export = line.strip().split()
+ self[name] = Symbol(name, module, version, export)
+
+ def write(self, file):
+ for s in sorted(self.values(), key=lambda i: i.name):
+ file.write("%s %s %s %s\n" %
+ (s.version, s.name, s.module, s.export))
diff --git a/debian/lib/python/debian_linux/config.py b/debian/lib/python/debian_linux/config.py
new file mode 100644
index 000000000..37e3764ab
--- /dev/null
+++ b/debian/lib/python/debian_linux/config.py
@@ -0,0 +1,256 @@
+import collections
+import os
+import os.path
+import pickle
+import re
+import sys
+
+from configparser import RawConfigParser
+
+__all__ = [
+ 'ConfigCoreDump',
+ 'ConfigCoreHierarchy',
+ 'ConfigParser',
+]
+
+
+class SchemaItemBoolean(object):
+ def __call__(self, i):
+ i = i.strip().lower()
+ if i in ("true", "1"):
+ return True
+ if i in ("false", "0"):
+ return False
+ raise ValueError
+
+
+class SchemaItemInteger(object):
+ def __call__(self, i):
+ return int(i.strip(), 0)
+
+
+class SchemaItemList(object):
+ def __init__(self, type=r"\s+"):
+ self.type = type
+
+ def __call__(self, i):
+ i = i.strip()
+ if not i:
+ return []
+ return [j.strip() for j in re.split(self.type, i)]
+
+
+# Using OrderedDict instead of dict makes the pickled config reproducible
+class ConfigCore(collections.OrderedDict):
+ def get_merge(self, section, arch, featureset, flavour, key, default=None):
+ temp = []
+
+ if arch and featureset and flavour:
+ temp.append(self.get((section, arch, featureset, flavour), {})
+ .get(key))
+ temp.append(self.get((section, arch, None, flavour), {}).get(key))
+ if arch and featureset:
+ temp.append(self.get((section, arch, featureset), {}).get(key))
+ if arch:
+ temp.append(self.get((section, arch), {}).get(key))
+ if featureset:
+ temp.append(self.get((section, None, featureset), {}).get(key))
+ temp.append(self.get((section,), {}).get(key))
+
+ ret = []
+
+ for i in temp:
+ if i is None:
+ continue
+ elif isinstance(i, (list, tuple)):
+ ret.extend(i)
+ elif ret:
+ # TODO
+ return ret
+ else:
+ return i
+
+ return ret or default
+
+ def merge(self, section, arch=None, featureset=None, flavour=None):
+ ret = {}
+ ret.update(self.get((section,), {}))
+ if featureset:
+ ret.update(self.get((section, None, featureset), {}))
+ if arch:
+ ret.update(self.get((section, arch), {}))
+ if arch and featureset:
+ ret.update(self.get((section, arch, featureset), {}))
+ if arch and featureset and flavour:
+ ret.update(self.get((section, arch, None, flavour), {}))
+ ret.update(self.get((section, arch, featureset, flavour), {}))
+ return ret
+
+ def dump(self, fp):
+ pickle.dump(self, fp, 0)
+
+
+class ConfigCoreDump(object):
+ def __new__(self, fp):
+ return pickle.load(fp)
+
+
+class ConfigCoreHierarchy(object):
+ schema_base = {
+ 'base': {
+ 'arches': SchemaItemList(),
+ 'enabled': SchemaItemBoolean(),
+ 'featuresets': SchemaItemList(),
+ 'flavours': SchemaItemList(),
+ },
+ }
+
+ def __new__(cls, schema, dirs=[]):
+ schema_complete = cls.schema_base.copy()
+ for key, value in schema.items():
+ schema_complete.setdefault(key, {}).update(value)
+ return cls.Reader(dirs, schema_complete)()
+
+ class Reader(object):
+ config_name = "defines"
+
+ def __init__(self, dirs, schema):
+ self.dirs, self.schema = dirs, schema
+
+ def __call__(self):
+ ret = ConfigCore()
+ self.read(ret)
+ return ret
+
+ def get_files(self, *dirs):
+ dirs = list(dirs)
+ dirs.append(self.config_name)
+ return (os.path.join(i, *dirs) for i in self.dirs if i)
+
+ def read_arch(self, ret, arch):
+ config = ConfigParser(self.schema)
+ config.read(self.get_files(arch))
+
+ featuresets = config['base', ].get('featuresets', [])
+ flavours = config['base', ].get('flavours', [])
+
+ for section in iter(config):
+ if section[0] in featuresets:
+ real = (section[-1], arch, section[0])
+ elif len(section) > 1:
+ real = (section[-1], arch, None) + section[:-1]
+ else:
+ real = (section[-1], arch) + section[:-1]
+ s = ret.get(real, {})
+ s.update(config[section])
+ ret[tuple(real)] = s
+
+ for featureset in featuresets:
+ self.read_arch_featureset(ret, arch, featureset)
+
+ if flavours:
+ base = ret['base', arch]
+ featuresets.insert(0, 'none')
+ base['featuresets'] = featuresets
+ del base['flavours']
+ ret['base', arch] = base
+ ret['base', arch, 'none'] = {'flavours': flavours,
+ 'implicit-flavour': True}
+
+ def read_arch_featureset(self, ret, arch, featureset):
+ config = ConfigParser(self.schema)
+ config.read(self.get_files(arch, featureset))
+
+ for section in iter(config):
+ real = (section[-1], arch, featureset) + section[:-1]
+ s = ret.get(real, {})
+ s.update(config[section])
+ ret[tuple(real)] = s
+
+ def read(self, ret):
+ config = ConfigParser(self.schema)
+ config.read(self.get_files())
+
+ arches = config['base', ]['arches']
+ featuresets = config['base', ].get('featuresets', [])
+
+ for section in iter(config):
+ if section[0].startswith('featureset-'):
+ real = (section[-1], None, section[0][11:])
+ else:
+ real = (section[-1],) + section[1:]
+ ret[real] = config[section]
+
+ for arch in arches:
+ self.read_arch(ret, arch)
+ for featureset in featuresets:
+ self.read_featureset(ret, featureset)
+
+ def read_featureset(self, ret, featureset):
+ config = ConfigParser(self.schema)
+ config.read(self.get_files('featureset-%s' % featureset))
+
+ for section in iter(config):
+ real = (section[-1], None, featureset)
+ s = ret.get(real, {})
+ s.update(config[section])
+ ret[real] = s
+
+
+class ConfigParser(object):
+ __slots__ = '_config', 'schemas'
+
+ def __init__(self, schemas):
+ self.schemas = schemas
+
+ self._config = RawConfigParser()
+
+ def __getitem__(self, key):
+ return self._convert()[key]
+
+ def __iter__(self):
+ return iter(self._convert())
+
+ def __str__(self):
+ return '<%s(%s)>' % (self.__class__.__name__, self._convert())
+
+ def _convert(self):
+ ret = {}
+ for section in self._config.sections():
+ data = {}
+ for key, value in self._config.items(section):
+ data[key] = value
+ section_list = section.split('_')
+ section_base = section_list[-1]
+ if section_base in self.schemas:
+ section_ret = tuple(section_list)
+ data = self._convert_one(self.schemas[section_base], data)
+ else:
+ section_ret = (section, )
+ ret[section_ret] = data
+ return ret
+
+ def _convert_one(self, schema, data):
+ ret = {}
+ for key, value in data.items():
+ if key in schema:
+ value = schema[key](value)
+ ret[key] = value
+ return ret
+
+ def keys(self):
+ return self._convert().keys()
+
+ def read(self, data):
+ return self._config.read(data)
+
+
+if __name__ == '__main__':
+ sys.path.append('debian/lib/python')
+ config = ConfigCoreDump(open('debian/config.defines.dump', 'rb'))
+ for section, items in sorted(config.items(),
+ key=(lambda a: tuple(i or '' for i in a[0]))):
+ print(u"[%s]" % (section,))
+ for item, value in sorted(items.items()):
+ print(u"%s: %s" % (item, value))
+ print()
diff --git a/debian/lib/python/debian_linux/debian.py b/debian/lib/python/debian_linux/debian.py
new file mode 100644
index 000000000..6fb26185d
--- /dev/null
+++ b/debian/lib/python/debian_linux/debian.py
@@ -0,0 +1,700 @@
+import collections
+import collections.abc
+import os.path
+import re
+import unittest
+
+from . import utils
+
+
+class Changelog(list):
+ _top_rules = r"""
+^
+(?P<source>
+ \w[-+0-9a-z.]+
+)
+\
+\(
+(?P<version>
+ [^\(\)\ \t]+
+)
+\)
+\s+
+(?P<distribution>
+ [-+0-9a-zA-Z.]+
+)
+\;\s+urgency=
+(?P<urgency>
+ \w+
+)
+(?:,|\n)
+"""
+ _top_re = re.compile(_top_rules, re.X)
+ _bottom_rules = r"""
+^
+\ --\
+(?P<maintainer>
+ \S(?:\ ?\S)*
+)
+\ \
+(?P<date>
+ (.*)
+)
+\n
+"""
+ _bottom_re = re.compile(_bottom_rules, re.X)
+ _ignore_re = re.compile(r'^(?: |\s*\n)')
+
+ class Entry(object):
+ __slot__ = ('distribution', 'source', 'version', 'urgency',
+ 'maintainer', 'date')
+
+ def __init__(self, **kwargs):
+ for key, value in kwargs.items():
+ setattr(self, key, value)
+
+ def __init__(self, dir='', version=None, file=None):
+ if version is None:
+ version = Version
+ if file:
+ self._parse(version, file)
+ else:
+ with open(os.path.join(dir, "debian/changelog"),
+ encoding="UTF-8") as f:
+ self._parse(version, f)
+
+ def _parse(self, version, f):
+ top_match = None
+ line_no = 0
+
+ for line in f:
+ line_no += 1
+
+ if self._ignore_re.match(line):
+ pass
+ elif top_match is None:
+ top_match = self._top_re.match(line)
+ if not top_match:
+ raise Exception('invalid top line %d in changelog' %
+ line_no)
+ try:
+ v = version(top_match.group('version'))
+ except Exception:
+ if not len(self):
+ raise
+ v = Version(top_match.group('version'))
+ else:
+ bottom_match = self._bottom_re.match(line)
+ if not bottom_match:
+ raise Exception('invalid bottom line %d in changelog' %
+ line_no)
+
+ self.append(self.Entry(
+ distribution=top_match.group('distribution'),
+ source=top_match.group('source'),
+ version=v,
+ urgency=top_match.group('urgency'),
+ maintainer=bottom_match.group('maintainer'),
+ date=bottom_match.group('date')))
+ top_match = bottom_match = None
+
+
+class Version(object):
+ _epoch_re = re.compile(r'\d+$')
+ _upstream_re = re.compile(r'[0-9][A-Za-z0-9.+\-:~]*$')
+ _revision_re = re.compile(r'[A-Za-z0-9+.~]+$')
+
+ def __init__(self, version):
+ try:
+ split = version.index(':')
+ except ValueError:
+ epoch, rest = None, version
+ else:
+ epoch, rest = version[0:split], version[split+1:]
+ try:
+ split = rest.rindex('-')
+ except ValueError:
+ upstream, revision = rest, None
+ else:
+ upstream, revision = rest[0:split], rest[split+1:]
+ if (epoch is not None and not self._epoch_re.match(epoch)) or \
+ not self._upstream_re.match(upstream) or \
+ (revision is not None and not self._revision_re.match(revision)):
+ raise RuntimeError(u"Invalid debian version")
+ self.epoch = epoch and int(epoch)
+ self.upstream = upstream
+ self.revision = revision
+
+ def __str__(self):
+ return self.complete
+
+ @property
+ def complete(self):
+ if self.epoch is not None:
+ return u"%d:%s" % (self.epoch, self.complete_noepoch)
+ return self.complete_noepoch
+
+ @property
+ def complete_noepoch(self):
+ if self.revision is not None:
+ return u"%s-%s" % (self.upstream, self.revision)
+ return self.upstream
+
+ @property
+ def debian(self):
+ from warnings import warn
+ warn(u"debian argument was replaced by revision", DeprecationWarning,
+ stacklevel=2)
+ return self.revision
+
+
+class _VersionTest(unittest.TestCase):
+ def test_native(self):
+ v = Version('1.2+c~4')
+ self.assertEqual(v.epoch, None)
+ self.assertEqual(v.upstream, '1.2+c~4')
+ self.assertEqual(v.revision, None)
+ self.assertEqual(v.complete, '1.2+c~4')
+ self.assertEqual(v.complete_noepoch, '1.2+c~4')
+
+ def test_nonnative(self):
+ v = Version('1-2+d~3')
+ self.assertEqual(v.epoch, None)
+ self.assertEqual(v.upstream, '1')
+ self.assertEqual(v.revision, '2+d~3')
+ self.assertEqual(v.complete, '1-2+d~3')
+ self.assertEqual(v.complete_noepoch, '1-2+d~3')
+
+ def test_native_epoch(self):
+ v = Version('5:1.2.3')
+ self.assertEqual(v.epoch, 5)
+ self.assertEqual(v.upstream, '1.2.3')
+ self.assertEqual(v.revision, None)
+ self.assertEqual(v.complete, '5:1.2.3')
+ self.assertEqual(v.complete_noepoch, '1.2.3')
+
+ def test_nonnative_epoch(self):
+ v = Version('5:1.2.3-4')
+ self.assertEqual(v.epoch, 5)
+ self.assertEqual(v.upstream, '1.2.3')
+ self.assertEqual(v.revision, '4')
+ self.assertEqual(v.complete, '5:1.2.3-4')
+ self.assertEqual(v.complete_noepoch, '1.2.3-4')
+
+ def test_multi_hyphen(self):
+ v = Version('1-2-3')
+ self.assertEqual(v.epoch, None)
+ self.assertEqual(v.upstream, '1-2')
+ self.assertEqual(v.revision, '3')
+ self.assertEqual(v.complete, '1-2-3')
+
+ def test_multi_colon(self):
+ v = Version('1:2:3')
+ self.assertEqual(v.epoch, 1)
+ self.assertEqual(v.upstream, '2:3')
+ self.assertEqual(v.revision, None)
+
+ def test_invalid_epoch(self):
+ with self.assertRaises(RuntimeError):
+ Version('a:1')
+ with self.assertRaises(RuntimeError):
+ Version('-1:1')
+ with self.assertRaises(RuntimeError):
+ Version('1a:1')
+
+ def test_invalid_upstream(self):
+ with self.assertRaises(RuntimeError):
+ Version('1_2')
+ with self.assertRaises(RuntimeError):
+ Version('1/2')
+ with self.assertRaises(RuntimeError):
+ Version('a1')
+ with self.assertRaises(RuntimeError):
+ Version('1 2')
+
+ def test_invalid_revision(self):
+ with self.assertRaises(RuntimeError):
+ Version('1-2_3')
+ with self.assertRaises(RuntimeError):
+ Version('1-2/3')
+ with self.assertRaises(RuntimeError):
+ Version('1-2:3')
+
+
+class VersionLinux(Version):
+ _upstream_re = re.compile(r"""
+(?P<version>
+ \d+\.\d+
+)
+(?P<update>
+ (?:\.\d+)?
+ (?:-[a-z]+\d+)?
+)
+(?:
+ ~
+ (?P<modifier>
+ .+?
+ )
+)?
+(?:
+ \.dfsg\.
+ (?P<dfsg>
+ \d+
+ )
+)?
+$
+ """, re.X)
+ _revision_re = re.compile(r"""
+\d+
+(\.\d+)?
+(?:
+ (?P<revision_experimental>
+ ~exp\d+
+ )
+ |
+ (?P<revision_security>
+ (?:[~+]deb\d+u\d+)+
+ )?
+ (?P<revision_backports>
+ ~bpo\d+\+\d+
+ )?
+ |
+ (?P<revision_other>
+ .+?
+ )
+)
+(?:\+b\d+)?
+$
+ """, re.X)
+
+ def __init__(self, version):
+ super(VersionLinux, self).__init__(version)
+ up_match = self._upstream_re.match(self.upstream)
+ rev_match = self._revision_re.match(self.revision)
+ if up_match is None or rev_match is None:
+ raise RuntimeError(u"Invalid debian linux version")
+ d = up_match.groupdict()
+ self.linux_modifier = d['modifier']
+ self.linux_version = d['version']
+ if d['modifier'] is not None:
+ assert not d['update']
+ self.linux_upstream = '-'.join((d['version'], d['modifier']))
+ else:
+ self.linux_upstream = d['version']
+ self.linux_upstream_full = self.linux_upstream + d['update']
+ self.linux_dfsg = d['dfsg']
+ d = rev_match.groupdict()
+ self.linux_revision_experimental = d['revision_experimental'] and True
+ self.linux_revision_security = d['revision_security'] and True
+ self.linux_revision_backports = d['revision_backports'] and True
+ self.linux_revision_other = d['revision_other'] and True
+
+
+class _VersionLinuxTest(unittest.TestCase):
+ def test_stable(self):
+ v = VersionLinux('1.2.3-4')
+ self.assertEqual(v.linux_version, '1.2')
+ self.assertEqual(v.linux_upstream, '1.2')
+ self.assertEqual(v.linux_upstream_full, '1.2.3')
+ self.assertEqual(v.linux_modifier, None)
+ self.assertEqual(v.linux_dfsg, None)
+ self.assertFalse(v.linux_revision_experimental)
+ self.assertFalse(v.linux_revision_security)
+ self.assertFalse(v.linux_revision_backports)
+ self.assertFalse(v.linux_revision_other)
+
+ def test_rc(self):
+ v = VersionLinux('1.2~rc3-4')
+ self.assertEqual(v.linux_version, '1.2')
+ self.assertEqual(v.linux_upstream, '1.2-rc3')
+ self.assertEqual(v.linux_upstream_full, '1.2-rc3')
+ self.assertEqual(v.linux_modifier, 'rc3')
+ self.assertEqual(v.linux_dfsg, None)
+ self.assertFalse(v.linux_revision_experimental)
+ self.assertFalse(v.linux_revision_security)
+ self.assertFalse(v.linux_revision_backports)
+ self.assertFalse(v.linux_revision_other)
+
+ def test_dfsg(self):
+ v = VersionLinux('1.2~rc3.dfsg.1-4')
+ self.assertEqual(v.linux_version, '1.2')
+ self.assertEqual(v.linux_upstream, '1.2-rc3')
+ self.assertEqual(v.linux_upstream_full, '1.2-rc3')
+ self.assertEqual(v.linux_modifier, 'rc3')
+ self.assertEqual(v.linux_dfsg, '1')
+ self.assertFalse(v.linux_revision_experimental)
+ self.assertFalse(v.linux_revision_security)
+ self.assertFalse(v.linux_revision_backports)
+ self.assertFalse(v.linux_revision_other)
+
+ def test_experimental(self):
+ v = VersionLinux('1.2~rc3-4~exp5')
+ self.assertEqual(v.linux_upstream_full, '1.2-rc3')
+ self.assertTrue(v.linux_revision_experimental)
+ self.assertFalse(v.linux_revision_security)
+ self.assertFalse(v.linux_revision_backports)
+ self.assertFalse(v.linux_revision_other)
+
+ def test_security(self):
+ v = VersionLinux('1.2.3-4+deb10u1')
+ self.assertEqual(v.linux_upstream_full, '1.2.3')
+ self.assertFalse(v.linux_revision_experimental)
+ self.assertTrue(v.linux_revision_security)
+ self.assertFalse(v.linux_revision_backports)
+ self.assertFalse(v.linux_revision_other)
+
+ def test_backports(self):
+ v = VersionLinux('1.2.3-4~bpo9+10')
+ self.assertEqual(v.linux_upstream_full, '1.2.3')
+ self.assertFalse(v.linux_revision_experimental)
+ self.assertFalse(v.linux_revision_security)
+ self.assertTrue(v.linux_revision_backports)
+ self.assertFalse(v.linux_revision_other)
+
+ def test_security_backports(self):
+ v = VersionLinux('1.2.3-4+deb10u1~bpo9+10')
+ self.assertEqual(v.linux_upstream_full, '1.2.3')
+ self.assertFalse(v.linux_revision_experimental)
+ self.assertTrue(v.linux_revision_security)
+ self.assertTrue(v.linux_revision_backports)
+ self.assertFalse(v.linux_revision_other)
+
+ def test_lts_backports(self):
+ # Backport during LTS, as an extra package in the -security
+ # suite. Since this is not part of a -backports suite it
+ # shouldn't get the linux_revision_backports flag.
+ v = VersionLinux('1.2.3-4~deb9u10')
+ self.assertEqual(v.linux_upstream_full, '1.2.3')
+ self.assertFalse(v.linux_revision_experimental)
+ self.assertTrue(v.linux_revision_security)
+ self.assertFalse(v.linux_revision_backports)
+ self.assertFalse(v.linux_revision_other)
+
+ def test_lts_backports_2(self):
+ # Same but with two security extensions in the revision.
+ v = VersionLinux('1.2.3-4+deb10u1~deb9u10')
+ self.assertEqual(v.linux_upstream_full, '1.2.3')
+ self.assertFalse(v.linux_revision_experimental)
+ self.assertTrue(v.linux_revision_security)
+ self.assertFalse(v.linux_revision_backports)
+ self.assertFalse(v.linux_revision_other)
+
+ def test_binnmu(self):
+ v = VersionLinux('1.2.3-4+b1')
+ self.assertFalse(v.linux_revision_experimental)
+ self.assertFalse(v.linux_revision_security)
+ self.assertFalse(v.linux_revision_backports)
+ self.assertFalse(v.linux_revision_other)
+
+ def test_other_revision(self):
+ v = VersionLinux('4.16.5-1+revert+crng+ready') # from #898087
+ self.assertFalse(v.linux_revision_experimental)
+ self.assertFalse(v.linux_revision_security)
+ self.assertFalse(v.linux_revision_backports)
+ self.assertTrue(v.linux_revision_other)
+
+ def test_other_revision_binnmu(self):
+ v = VersionLinux('4.16.5-1+revert+crng+ready+b1')
+ self.assertFalse(v.linux_revision_experimental)
+ self.assertFalse(v.linux_revision_security)
+ self.assertFalse(v.linux_revision_backports)
+ self.assertTrue(v.linux_revision_other)
+
+
+class PackageArchitecture(collections.abc.MutableSet):
+ __slots__ = '_data'
+
+ def __init__(self, value=None):
+ self._data = set()
+ if value:
+ self.extend(value)
+
+ def __contains__(self, value):
+ return self._data.__contains__(value)
+
+ def __iter__(self):
+ return self._data.__iter__()
+
+ def __len__(self):
+ return self._data.__len__()
+
+ def __str__(self):
+ return ' '.join(sorted(self))
+
+ def add(self, value):
+ self._data.add(value)
+
+ def discard(self, value):
+ self._data.discard(value)
+
+ def extend(self, value):
+ if isinstance(value, str):
+ for i in re.split(r'\s', value.strip()):
+ self.add(i)
+ else:
+ raise RuntimeError
+
+
+class PackageDescription(object):
+ __slots__ = "short", "long"
+
+ def __init__(self, value=None):
+ self.short = []
+ self.long = []
+ if value is not None:
+ desc_split = value.split("\n", 1)
+ self.append_short(desc_split[0])
+ if len(desc_split) == 2:
+ self.append(desc_split[1])
+
+ def __str__(self):
+ wrap = utils.TextWrapper(width=74, fix_sentence_endings=True).wrap
+ short = ', '.join(self.short)
+ long_pars = []
+ for i in self.long:
+ long_pars.append(wrap(i))
+ long = '\n .\n '.join(['\n '.join(i) for i in long_pars])
+ return short + '\n ' + long if long else short
+
+ def append(self, str):
+ str = str.strip()
+ if str:
+ self.long.extend(str.split(u"\n.\n"))
+
+ def append_short(self, str):
+ for i in [i.strip() for i in str.split(u",")]:
+ if i:
+ self.short.append(i)
+
+ def extend(self, desc):
+ if isinstance(desc, PackageDescription):
+ self.short.extend(desc.short)
+ self.long.extend(desc.long)
+ else:
+ raise TypeError
+
+
+class PackageRelation(list):
+ def __init__(self, value=None, override_arches=None):
+ if value:
+ self.extend(value, override_arches)
+
+ def __str__(self):
+ return ', '.join(str(i) for i in self)
+
+ def _search_value(self, value):
+ for i in self:
+ if i._search_value(value):
+ return i
+ return None
+
+ def append(self, value, override_arches=None):
+ if isinstance(value, str):
+ value = PackageRelationGroup(value, override_arches)
+ elif not isinstance(value, PackageRelationGroup):
+ raise ValueError(u"got %s" % type(value))
+ j = self._search_value(value)
+ if j:
+ j._update_arches(value)
+ else:
+ super(PackageRelation, self).append(value)
+
+ def extend(self, value, override_arches=None):
+ if isinstance(value, str):
+ value = (j.strip() for j in re.split(r',', value.strip()))
+ for i in value:
+ self.append(i, override_arches)
+
+
+class PackageRelationGroup(list):
+ def __init__(self, value=None, override_arches=None):
+ if value:
+ self.extend(value, override_arches)
+
+ def __str__(self):
+ return ' | '.join(str(i) for i in self)
+
+ def _search_value(self, value):
+ for i, j in zip(self, value):
+ if i.name != j.name or i.operator != j.operator or \
+ i.version != j.version or i.restrictions != j.restrictions:
+ return None
+ return self
+
+ def _update_arches(self, value):
+ for i, j in zip(self, value):
+ if i.arches:
+ for arch in j.arches:
+ if arch not in i.arches:
+ i.arches.append(arch)
+
+ def append(self, value, override_arches=None):
+ if isinstance(value, str):
+ value = PackageRelationEntry(value, override_arches)
+ elif not isinstance(value, PackageRelationEntry):
+ raise ValueError
+ super(PackageRelationGroup, self).append(value)
+
+ def extend(self, value, override_arches=None):
+ if isinstance(value, str):
+ value = (j.strip() for j in re.split(r'\|', value.strip()))
+ for i in value:
+ self.append(i, override_arches)
+
+
+class PackageRelationEntry(object):
+ __slots__ = "name", "operator", "version", "arches", "restrictions"
+
+ _re = re.compile(r'^(\S+)(?: \((<<|<=|=|!=|>=|>>)\s*([^)]+)\))?'
+ r'(?: \[([^]]+)\])?(?: <([^>]+)>)?$')
+
+ class _operator(object):
+ OP_LT = 1
+ OP_LE = 2
+ OP_EQ = 3
+ OP_NE = 4
+ OP_GE = 5
+ OP_GT = 6
+
+ operators = {
+ '<<': OP_LT,
+ '<=': OP_LE,
+ '=': OP_EQ,
+ '!=': OP_NE,
+ '>=': OP_GE,
+ '>>': OP_GT,
+ }
+
+ operators_neg = {
+ OP_LT: OP_GE,
+ OP_LE: OP_GT,
+ OP_EQ: OP_NE,
+ OP_NE: OP_EQ,
+ OP_GE: OP_LT,
+ OP_GT: OP_LE,
+ }
+
+ operators_text = dict((b, a) for a, b in operators.items())
+
+ __slots__ = '_op',
+
+ def __init__(self, value):
+ self._op = self.operators[value]
+
+ def __neg__(self):
+ return self.__class__(
+ self.operators_text[self.operators_neg[self._op]])
+
+ def __str__(self):
+ return self.operators_text[self._op]
+
+ def __eq__(self, other):
+ return type(other) == type(self) and self._op == other._op
+
+ def __init__(self, value=None, override_arches=None):
+ if not isinstance(value, str):
+ raise ValueError
+
+ self.parse(value)
+
+ if override_arches:
+ self.arches = list(override_arches)
+
+ def __str__(self):
+ ret = [self.name]
+ if self.operator is not None and self.version is not None:
+ ret.extend((' (', str(self.operator), ' ', self.version, ')'))
+ if self.arches:
+ ret.extend((' [', ' '.join(self.arches), ']'))
+ if self.restrictions:
+ ret.extend((' <', ' '.join(self.restrictions), '>'))
+ return ''.join(ret)
+
+ def parse(self, value):
+ match = self._re.match(value)
+ if match is None:
+ raise RuntimeError(u"Can't parse dependency %s" % value)
+ match = match.groups()
+ self.name = match[0]
+ if match[1] is not None:
+ self.operator = self._operator(match[1])
+ else:
+ self.operator = None
+ self.version = match[2]
+ if match[3] is not None:
+ self.arches = re.split(r'\s+', match[3])
+ else:
+ self.arches = []
+ if match[4] is not None:
+ self.restrictions = re.split(r'\s+', match[4])
+ else:
+ self.restrictions = []
+
+
+class _ControlFileDict(dict):
+ def __setitem__(self, key, value):
+ try:
+ cls = self._fields[key]
+ if not isinstance(value, cls):
+ value = cls(value)
+ except KeyError:
+ pass
+ super(_ControlFileDict, self).__setitem__(key, value)
+
+ def keys(self):
+ keys = set(super(_ControlFileDict, self).keys())
+ for i in self._fields.keys():
+ if i in self:
+ keys.remove(i)
+ yield i
+ for i in sorted(list(keys)):
+ yield i
+
+ def items(self):
+ for i in self.keys():
+ yield (i, self[i])
+
+ def values(self):
+ for i in self.keys():
+ yield self[i]
+
+
+class Package(_ControlFileDict):
+ _fields = collections.OrderedDict((
+ ('Package', str),
+ ('Source', str),
+ ('Architecture', PackageArchitecture),
+ ('Section', str),
+ ('Priority', str),
+ ('Maintainer', str),
+ ('Uploaders', str),
+ ('Standards-Version', str),
+ ('Build-Depends', PackageRelation),
+ ('Build-Depends-Arch', PackageRelation),
+ ('Build-Depends-Indep', PackageRelation),
+ ('Provides', PackageRelation),
+ ('Pre-Depends', PackageRelation),
+ ('Depends', PackageRelation),
+ ('Recommends', PackageRelation),
+ ('Suggests', PackageRelation),
+ ('Replaces', PackageRelation),
+ ('Breaks', PackageRelation),
+ ('Conflicts', PackageRelation),
+ ('Description', PackageDescription),
+ ))
+
+
+class TestsControl(_ControlFileDict):
+ _fields = collections.OrderedDict((
+ ('Tests', str),
+ ('Test-Command', str),
+ ('Restrictions', str),
+ ('Features', str),
+ ('Depends', PackageRelation),
+ ('Tests-Directory', str),
+ ('Classes', str),
+ ))
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/debian/lib/python/debian_linux/firmware.py b/debian/lib/python/debian_linux/firmware.py
new file mode 100644
index 000000000..592a66a45
--- /dev/null
+++ b/debian/lib/python/debian_linux/firmware.py
@@ -0,0 +1,90 @@
+import re
+
+
+class FirmwareFile(object):
+ def __init__(self, binary, desc=None, source=None, version=None):
+ self.binary = binary
+ self.desc = desc
+ self.source = source
+ self.version = version
+
+
+class FirmwareSection(object):
+ def __init__(self, driver, files, licence):
+ self.driver = driver
+ self.files = files
+ self.licence = licence
+
+
+class FirmwareWhence(list):
+ def __init__(self, file):
+ self.read(file)
+
+ def read(self, file):
+ in_header = True
+ driver = None
+ files = {}
+ licence = None
+ binary = []
+ desc = None
+ source = []
+ version = None
+
+ for line in file:
+ if line.startswith('----------'):
+ if in_header:
+ in_header = False
+ else:
+ # Finish old section
+ if driver:
+ self.append(FirmwareSection(driver, files, licence))
+ driver = None
+ files = {}
+ licence = None
+ continue
+
+ if in_header:
+ continue
+
+ if line == '\n':
+ # End of field; end of file fields
+ for b in binary:
+ # XXX The WHENCE file isn't yet consistent in its
+ # association of binaries and their sources and
+ # metadata. This associates all sources and
+ # metadata in a group with each binary.
+ files[b] = FirmwareFile(b, desc, source, version)
+ binary = []
+ desc = None
+ source = []
+ version = None
+ continue
+
+ match = re.match(
+ r'(Driver|File|Info|Licen[cs]e|Source|Version'
+ r'|Original licen[cs]e info(?:rmation)?):\s*(.*)\n',
+ line)
+ if match:
+ keyword, value = match.group(1, 2)
+ if keyword == 'Driver':
+ driver = value.split(' ')[0].lower()
+ elif keyword == 'File':
+ match = re.match(r'(\S+)(?:\s+--\s+(.*))?', value)
+ binary.append(match.group(1))
+ desc = match.group(2)
+ elif keyword in ['Info', 'Version']:
+ version = value
+ elif keyword == 'Source':
+ source.append(value)
+ else:
+ licence = value
+ elif licence is not None:
+ licence = (licence + '\n'
+ + re.sub(r'^(?:[/ ]\*| \*/)?\s*(.*?)\s*$', r'\1',
+ line))
+
+ # Finish last section if non-empty
+ for b in binary:
+ files[b] = FirmwareFile(b, desc, source, version)
+ if driver:
+ self.append(FirmwareSection(driver, files, licence))
diff --git a/debian/lib/python/debian_linux/gencontrol.py b/debian/lib/python/debian_linux/gencontrol.py
new file mode 100644
index 000000000..69619da3e
--- /dev/null
+++ b/debian/lib/python/debian_linux/gencontrol.py
@@ -0,0 +1,418 @@
+import codecs
+import re
+from collections import OrderedDict
+
+from .debian import Changelog, PackageArchitecture, PackageDescription, \
+ PackageRelation, Version
+
+
+class PackagesList(OrderedDict):
+ def append(self, package):
+ self[package['Package']] = package
+
+ def extend(self, packages):
+ for package in packages:
+ self[package['Package']] = package
+
+
+class Makefile(object):
+ def __init__(self):
+ self.rules = {}
+ self.add('.NOTPARALLEL')
+
+ def add(self, name, deps=None, cmds=None):
+ if name in self.rules:
+ self.rules[name].add(deps, cmds)
+ else:
+ self.rules[name] = self.Rule(name, deps, cmds)
+ if deps is not None:
+ for i in deps:
+ if i not in self.rules:
+ self.rules[i] = self.Rule(i)
+
+ def write(self, out):
+ for i in sorted(self.rules.keys()):
+ self.rules[i].write(out)
+
+ class Rule(object):
+ def __init__(self, name, deps=None, cmds=None):
+ self.name = name
+ self.deps, self.cmds = set(), []
+ self.add(deps, cmds)
+
+ def add(self, deps=None, cmds=None):
+ if deps is not None:
+ self.deps.update(deps)
+ if cmds is not None:
+ self.cmds.append(cmds)
+
+ def write(self, out):
+ deps_string = ''
+ if self.deps:
+ deps = list(self.deps)
+ deps.sort()
+ deps_string = ' ' + ' '.join(deps)
+
+ if self.cmds:
+ if deps_string:
+ out.write('%s::%s\n' % (self.name, deps_string))
+ for c in self.cmds:
+ out.write('%s::\n' % self.name)
+ for i in c:
+ out.write('\t%s\n' % i)
+ else:
+ out.write('%s:%s\n' % (self.name, deps_string))
+
+
+class MakeFlags(dict):
+ def __str__(self):
+ return ' '.join("%s='%s'" % i for i in sorted(self.items()))
+
+ def copy(self):
+ return self.__class__(super(MakeFlags, self).copy())
+
+
+def iter_featuresets(config):
+ for featureset in config['base', ]['featuresets']:
+ if config.merge('base', None, featureset).get('enabled', True):
+ yield featureset
+
+
+def iter_arches(config):
+ return iter(config['base', ]['arches'])
+
+
+def iter_arch_featuresets(config, arch):
+ for featureset in config['base', arch].get('featuresets', []):
+ if config.merge('base', arch, featureset).get('enabled', True):
+ yield featureset
+
+
+def iter_flavours(config, arch, featureset):
+ return iter(config['base', arch, featureset]['flavours'])
+
+
+class Gencontrol(object):
+ makefile_targets = ('binary-arch', 'build-arch', 'setup')
+ makefile_targets_indep = ('binary-indep', 'build-indep', 'setup')
+
+ def __init__(self, config, templates, version=Version):
+ self.config, self.templates = config, templates
+ self.changelog = Changelog(version=version)
+ self.vars = {}
+
+ def __call__(self):
+ packages = PackagesList()
+ makefile = Makefile()
+
+ self.do_source(packages)
+ self.do_main(packages, makefile)
+ self.do_extra(packages, makefile)
+
+ self.merge_build_depends(packages)
+ self.write(packages, makefile)
+
+ def do_source(self, packages):
+ source = self.templates["control.source"][0]
+ if not source.get('Source'):
+ source['Source'] = self.changelog[0].source
+ packages['source'] = self.process_package(source, self.vars)
+
+ def do_main(self, packages, makefile):
+ vars = self.vars.copy()
+
+ makeflags = MakeFlags()
+ extra = {}
+
+ self.do_main_setup(vars, makeflags, extra)
+ self.do_main_makefile(makefile, makeflags, extra)
+ self.do_main_packages(packages, vars, makeflags, extra)
+ self.do_main_recurse(packages, makefile, vars, makeflags, extra)
+
+ def do_main_setup(self, vars, makeflags, extra):
+ pass
+
+ def do_main_makefile(self, makefile, makeflags, extra):
+ makefile.add('build-indep',
+ cmds=["$(MAKE) -f debian/rules.real build-indep %s" %
+ makeflags])
+ makefile.add('binary-indep',
+ cmds=["$(MAKE) -f debian/rules.real binary-indep %s" %
+ makeflags])
+
+ def do_main_packages(self, packages, vars, makeflags, extra):
+ pass
+
+ def do_main_recurse(self, packages, makefile, vars, makeflags, extra):
+ for featureset in iter_featuresets(self.config):
+ self.do_indep_featureset(packages, makefile, featureset,
+ vars.copy(), makeflags.copy(), extra)
+ for arch in iter_arches(self.config):
+ self.do_arch(packages, makefile, arch, vars.copy(),
+ makeflags.copy(), extra)
+
+ def do_extra(self, packages, makefile):
+ templates_extra = self.templates.get("control.extra", None)
+ if templates_extra is None:
+ return
+
+ packages_extra = self.process_packages(templates_extra, self.vars)
+ packages.extend(packages_extra)
+ extra_arches = {}
+ for package in packages_extra:
+ arches = package['Architecture']
+ for arch in arches:
+ i = extra_arches.get(arch, [])
+ i.append(package)
+ extra_arches[arch] = i
+ for arch in sorted(extra_arches.keys()):
+ cmds = []
+ for i in extra_arches[arch]:
+ cmds.append("$(MAKE) -f debian/rules.real install-dummy "
+ "ARCH='%s' DH_OPTIONS='-p%s'" %
+ (arch, i['Package']))
+ makefile.add('binary-arch_%s' % arch,
+ ['binary-arch_%s_extra' % arch])
+ makefile.add("binary-arch_%s_extra" % arch, cmds=cmds)
+
+ def do_indep_featureset(self, packages, makefile, featureset, vars,
+ makeflags, extra):
+ vars['localversion'] = ''
+ if featureset != 'none':
+ vars['localversion'] = '-' + featureset
+
+ self.do_indep_featureset_setup(vars, makeflags, featureset, extra)
+ self.do_indep_featureset_makefile(makefile, featureset, makeflags,
+ extra)
+ self.do_indep_featureset_packages(packages, makefile, featureset,
+ vars, makeflags, extra)
+
+ def do_indep_featureset_setup(self, vars, makeflags, featureset, extra):
+ pass
+
+ def do_indep_featureset_makefile(self, makefile, featureset, makeflags,
+ extra):
+ makeflags['FEATURESET'] = featureset
+
+ for i in self.makefile_targets_indep:
+ target1 = i
+ target2 = '_'.join((target1, featureset))
+ target3 = '_'.join((target2, 'real'))
+ makefile.add(target1, [target2])
+ makefile.add(target2, [target3])
+
+ def do_indep_featureset_packages(self, packages, makefile, featureset,
+ vars, makeflags, extra):
+ pass
+
+ def do_arch(self, packages, makefile, arch, vars, makeflags, extra):
+ vars['arch'] = arch
+
+ self.do_arch_setup(vars, makeflags, arch, extra)
+ self.do_arch_makefile(makefile, arch, makeflags, extra)
+ self.do_arch_packages(packages, makefile, arch, vars, makeflags, extra)
+ self.do_arch_recurse(packages, makefile, arch, vars, makeflags, extra)
+
+ def do_arch_setup(self, vars, makeflags, arch, extra):
+ pass
+
+ def do_arch_makefile(self, makefile, arch, makeflags, extra):
+ makeflags['ARCH'] = arch
+
+ for i in self.makefile_targets:
+ target1 = i
+ target2 = '_'.join((target1, arch))
+ target3 = '_'.join((target2, 'real'))
+ makefile.add(target1, [target2])
+ makefile.add(target2, [target3])
+
+ def do_arch_packages(self, packages, makefile, arch, vars, makeflags,
+ extra):
+ pass
+
+ def do_arch_recurse(self, packages, makefile, arch, vars, makeflags,
+ extra):
+ for featureset in iter_arch_featuresets(self.config, arch):
+ self.do_featureset(packages, makefile, arch, featureset,
+ vars.copy(), makeflags.copy(), extra)
+
+ def do_featureset(self, packages, makefile, arch, featureset, vars,
+ makeflags, extra):
+ vars['localversion'] = ''
+ if featureset != 'none':
+ vars['localversion'] = '-' + featureset
+
+ self.do_featureset_setup(vars, makeflags, arch, featureset, extra)
+ self.do_featureset_makefile(makefile, arch, featureset, makeflags,
+ extra)
+ self.do_featureset_packages(packages, makefile, arch, featureset, vars,
+ makeflags, extra)
+ self.do_featureset_recurse(packages, makefile, arch, featureset, vars,
+ makeflags, extra)
+
+ def do_featureset_setup(self, vars, makeflags, arch, featureset, extra):
+ pass
+
+ def do_featureset_makefile(self, makefile, arch, featureset, makeflags,
+ extra):
+ makeflags['FEATURESET'] = featureset
+
+ for i in self.makefile_targets:
+ target1 = '_'.join((i, arch))
+ target2 = '_'.join((target1, featureset))
+ target3 = '_'.join((target2, 'real'))
+ makefile.add(target1, [target2])
+ makefile.add(target2, [target3])
+
+ def do_featureset_packages(self, packages, makefile, arch, featureset,
+ vars, makeflags, extra):
+ pass
+
+ def do_featureset_recurse(self, packages, makefile, arch, featureset, vars,
+ makeflags, extra):
+ for flavour in iter_flavours(self.config, arch, featureset):
+ self.do_flavour(packages, makefile, arch, featureset, flavour,
+ vars.copy(), makeflags.copy(), extra)
+
+ def do_flavour(self, packages, makefile, arch, featureset, flavour, vars,
+ makeflags, extra):
+ vars['localversion'] += '-' + flavour
+
+ self.do_flavour_setup(vars, makeflags, arch, featureset, flavour,
+ extra)
+ self.do_flavour_makefile(makefile, arch, featureset, flavour,
+ makeflags, extra)
+ self.do_flavour_packages(packages, makefile, arch, featureset, flavour,
+ vars, makeflags, extra)
+
+ def do_flavour_setup(self, vars, makeflags, arch, featureset, flavour,
+ extra):
+ for i in (
+ ('kernel-arch', 'KERNEL_ARCH'),
+ ('localversion', 'LOCALVERSION'),
+ ):
+ if i[0] in vars:
+ makeflags[i[1]] = vars[i[0]]
+
+ def do_flavour_makefile(self, makefile, arch, featureset, flavour,
+ makeflags, extra):
+ makeflags['FLAVOUR'] = flavour
+
+ for i in self.makefile_targets:
+ target1 = '_'.join((i, arch, featureset))
+ target2 = '_'.join((target1, flavour))
+ target3 = '_'.join((target2, 'real'))
+ makefile.add(target1, [target2])
+ makefile.add(target2, [target3])
+
+ def do_flavour_packages(self, packages, makefile, arch, featureset,
+ flavour, vars, makeflags, extra):
+ pass
+
+ def process_relation(self, dep, vars):
+ import copy
+ dep = copy.deepcopy(dep)
+ for groups in dep:
+ for item in groups:
+ item.name = self.substitute(item.name, vars)
+ if item.version:
+ item.version = self.substitute(item.version, vars)
+ return dep
+
+ def process_description(self, in_desc, vars):
+ desc = in_desc.__class__()
+ desc.short = self.substitute(in_desc.short, vars)
+ for i in in_desc.long:
+ desc.append(self.substitute(i, vars))
+ return desc
+
+ def process_package(self, in_entry, vars={}):
+ entry = in_entry.__class__()
+ for key, value in in_entry.items():
+ if isinstance(value, PackageRelation):
+ value = self.process_relation(value, vars)
+ elif isinstance(value, PackageDescription):
+ value = self.process_description(value, vars)
+ else:
+ value = self.substitute(value, vars)
+ entry[key] = value
+ return entry
+
+ def process_packages(self, entries, vars):
+ return [self.process_package(i, vars) for i in entries]
+
+ def substitute(self, s, vars):
+ if isinstance(s, (list, tuple)):
+ return [self.substitute(i, vars) for i in s]
+
+ def subst(match):
+ return vars[match.group(1)]
+
+ return re.sub(r'@([-_a-z0-9]+)@', subst, str(s))
+
+ def merge_build_depends(self, packages):
+ # Merge Build-Depends pseudo-fields from binary packages into the
+ # source package
+ source = packages["source"]
+ arch_all = PackageArchitecture("all")
+ for name, package in packages.items():
+ if name == "source":
+ continue
+ dep = package.get("Build-Depends")
+ if not dep:
+ continue
+ del package["Build-Depends"]
+ for group in dep:
+ for item in group:
+ if package["Architecture"] != arch_all and not item.arches:
+ item.arches = sorted(package["Architecture"])
+ if package.get("Build-Profiles") and not item.restrictions:
+ profiles = package["Build-Profiles"]
+ assert profiles[0] == "<" and profiles[-1] == ">"
+ item.restrictions = re.split(r"\s+", profiles[1:-1])
+ if package["Architecture"] == arch_all:
+ dep_type = "Build-Depends-Indep"
+ else:
+ dep_type = "Build-Depends-Arch"
+ if dep_type not in source:
+ source[dep_type] = PackageRelation()
+ source[dep_type].extend(dep)
+
+ def write(self, packages, makefile):
+ self.write_control(packages.values())
+ self.write_makefile(makefile)
+
+ def write_control(self, list, name='debian/control'):
+ self.write_rfc822(codecs.open(name, 'w', 'utf-8'), list)
+
+ def write_makefile(self, makefile, name='debian/rules.gen'):
+ f = open(name, 'w')
+ makefile.write(f)
+ f.close()
+
+ def write_rfc822(self, f, list):
+ for entry in list:
+ for key, value in entry.items():
+ f.write(u"%s: %s\n" % (key, value))
+ f.write('\n')
+
+
+def merge_packages(packages, new, arch):
+ for new_package in new:
+ name = new_package['Package']
+ if name in packages:
+ package = packages.get(name)
+ package['Architecture'].add(arch)
+
+ for field in ('Depends', 'Provides', 'Suggests', 'Recommends',
+ 'Conflicts'):
+ if field in new_package:
+ if field in package:
+ v = package[field]
+ v.extend(new_package[field])
+ else:
+ package[field] = new_package[field]
+
+ else:
+ new_package['Architecture'] = arch
+ packages.append(new_package)
diff --git a/debian/lib/python/debian_linux/kconfig.py b/debian/lib/python/debian_linux/kconfig.py
new file mode 100644
index 000000000..73d491d7f
--- /dev/null
+++ b/debian/lib/python/debian_linux/kconfig.py
@@ -0,0 +1,93 @@
+from collections import OrderedDict
+
+__all__ = (
+ "KconfigFile",
+)
+
+
+class KConfigEntry(object):
+ __slots__ = 'name', 'value', 'comments'
+
+ def __init__(self, name, value, comments=None):
+ self.name, self.value = name, value
+ self.comments = comments or []
+
+ def __eq__(self, other):
+ return self.name == other.name and self.value == other.value
+
+ def __hash__(self):
+ return hash(self.name) | hash(self.value)
+
+ def __repr__(self):
+ return ('<{}({!r}, {!r}, {!r})>'
+ .format(self.__class__.__name__, self.name, self.value,
+ self.comments))
+
+ def __str__(self):
+ return 'CONFIG_{}={}'.format(self.name, self.value)
+
+ def write(self):
+ for comment in self.comments:
+ yield '#. ' + comment
+ yield str(self)
+
+
+class KConfigEntryTristate(KConfigEntry):
+ __slots__ = ()
+
+ VALUE_NO = False
+ VALUE_YES = True
+ VALUE_MOD = object()
+
+ def __init__(self, name, value, comments=None):
+ if value == 'n' or value is None:
+ value = self.VALUE_NO
+ elif value == 'y':
+ value = self.VALUE_YES
+ elif value == 'm':
+ value = self.VALUE_MOD
+ else:
+ raise NotImplementedError
+ super(KConfigEntryTristate, self).__init__(name, value, comments)
+
+ def __str__(self):
+ if self.value is self.VALUE_MOD:
+ return 'CONFIG_{}=m'.format(self.name)
+ if self.value:
+ return 'CONFIG_{}=y'.format(self.name)
+ return '# CONFIG_{} is not set'.format(self.name)
+
+
+class KconfigFile(OrderedDict):
+ def __str__(self):
+ ret = []
+ for i in self.str_iter():
+ ret.append(i)
+ return '\n'.join(ret) + '\n'
+
+ def read(self, f):
+ for line in iter(f.readlines()):
+ line = line.strip()
+ if line.startswith("CONFIG_"):
+ i = line.find('=')
+ option = line[7:i]
+ value = line[i + 1:]
+ self.set(option, value)
+ elif line.startswith("# CONFIG_"):
+ option = line[9:-11]
+ self.set(option, 'n')
+ elif line.startswith("#") or not line:
+ pass
+ else:
+ raise RuntimeError("Can't recognize %s" % line)
+
+ def set(self, key, value):
+ if value in ('y', 'm', 'n'):
+ entry = KConfigEntryTristate(key, value)
+ else:
+ entry = KConfigEntry(key, value)
+ self[key] = entry
+
+ def str_iter(self):
+ for key, value in self.items():
+ yield str(value)
diff --git a/debian/lib/python/debian_linux/utils.py b/debian/lib/python/debian_linux/utils.py
new file mode 100644
index 000000000..34c15536d
--- /dev/null
+++ b/debian/lib/python/debian_linux/utils.py
@@ -0,0 +1,97 @@
+import codecs
+import os
+import re
+import textwrap
+
+
+class Templates(object):
+ def __init__(self, dirs=["debian/templates"]):
+ self.dirs = dirs
+
+ self._cache = {}
+
+ def __getitem__(self, key):
+ ret = self.get(key)
+ if ret is not None:
+ return ret
+ raise KeyError(key)
+
+ def _read(self, name):
+ prefix, id = name.split('.', 1)
+
+ for suffix in ['.in', '']:
+ for dir in self.dirs:
+ filename = "%s/%s%s" % (dir, name, suffix)
+ if os.path.exists(filename):
+ f = codecs.open(filename, 'r', 'utf-8')
+ if prefix == 'control':
+ return read_control(f)
+ if prefix == 'tests-control':
+ return read_tests_control(f)
+ return f.read()
+
+ def get(self, key, default=None):
+ if key in self._cache:
+ return self._cache[key]
+
+ value = self._cache.setdefault(key, self._read(key))
+ if value is None:
+ return default
+ return value
+
+
+def read_control(f):
+ from .debian import Package
+ return _read_rfc822(f, Package)
+
+
+def read_tests_control(f):
+ from .debian import TestsControl
+ return _read_rfc822(f, TestsControl)
+
+
+def _read_rfc822(f, cls):
+ entries = []
+ eof = False
+
+ while not eof:
+ e = cls()
+ last = None
+ lines = []
+ while True:
+ line = f.readline()
+ if not line:
+ eof = True
+ break
+ # Strip comments rather than trying to preserve them
+ if line[0] == '#':
+ continue
+ line = line.strip('\n')
+ if not line:
+ break
+ if line[0] in ' \t':
+ if not last:
+ raise ValueError(
+ 'Continuation line seen before first header')
+ lines.append(line.lstrip())
+ continue
+ if last:
+ e[last] = '\n'.join(lines)
+ i = line.find(':')
+ if i < 0:
+ raise ValueError(u"Not a header, not a continuation: ``%s''" %
+ line)
+ last = line[:i]
+ lines = [line[i + 1:].lstrip()]
+ if last:
+ e[last] = '\n'.join(lines)
+ if e:
+ entries.append(e)
+
+ return entries
+
+
+class TextWrapper(textwrap.TextWrapper):
+ wordsep_re = re.compile(
+ r'(\s+|' # any whitespace
+ r'(?<=[\w\!\"\'\&\.\,\?])-{2,}(?=\w))') # em-dash
diff --git a/debian/libbpf-dev.install b/debian/libbpf-dev.install
new file mode 100644
index 000000000..11aaf7ec2
--- /dev/null
+++ b/debian/libbpf-dev.install
@@ -0,0 +1,4 @@
+usr/include/bpf
+usr/lib/*/libbpf.a
+usr/lib/*/libbpf.so
+usr/lib/*/pkgconfig/*
diff --git a/debian/libcpupower-dev.install b/debian/libcpupower-dev.install
new file mode 100644
index 000000000..f3800aad5
--- /dev/null
+++ b/debian/libcpupower-dev.install
@@ -0,0 +1,2 @@
+usr/include/*
+usr/lib/*/lib*.so
diff --git a/debian/libcpupower1.install b/debian/libcpupower1.install
new file mode 100644
index 000000000..3ddde5841
--- /dev/null
+++ b/debian/libcpupower1.install
@@ -0,0 +1 @@
+usr/lib/*/lib*.so.*
diff --git a/debian/libcpupower1.symbols b/debian/libcpupower1.symbols
new file mode 100644
index 000000000..bd3e8fbc8
--- /dev/null
+++ b/debian/libcpupower1.symbols
@@ -0,0 +1,38 @@
+libcpupower.so.1 libcpupower1 #MINVER#
+ cpu_topology_release@Base 4.7~rc2-1~exp1
+ cpufreq_get_affected_cpus@Base 4.7~rc2-1~exp1
+ cpufreq_get_available_frequencies@Base 4.7~rc2-1~exp1
+ cpufreq_get_available_governors@Base 4.7~rc2-1~exp1
+ cpufreq_get_driver@Base 4.7~rc2-1~exp1
+ cpufreq_get_freq_hardware@Base 4.7~rc2-1~exp1
+ cpufreq_get_freq_kernel@Base 4.7~rc2-1~exp1
+ cpufreq_get_hardware_limits@Base 4.7~rc2-1~exp1
+ cpufreq_get_policy@Base 4.7~rc2-1~exp1
+ cpufreq_get_related_cpus@Base 4.7~rc2-1~exp1
+ cpufreq_get_stats@Base 4.7~rc2-1~exp1
+ cpufreq_get_transition_latency@Base 4.7~rc2-1~exp1
+ cpufreq_get_transitions@Base 4.7~rc2-1~exp1
+ cpufreq_modify_policy_governor@Base 4.7~rc2-1~exp1
+ cpufreq_modify_policy_max@Base 4.7~rc2-1~exp1
+ cpufreq_modify_policy_min@Base 4.7~rc2-1~exp1
+ cpufreq_put_affected_cpus@Base 4.7~rc2-1~exp1
+ cpufreq_put_available_frequencies@Base 4.7~rc2-1~exp1
+ cpufreq_put_available_governors@Base 4.7~rc2-1~exp1
+ cpufreq_put_driver@Base 4.7~rc2-1~exp1
+ cpufreq_put_policy@Base 4.7~rc2-1~exp1
+ cpufreq_put_related_cpus@Base 4.7~rc2-1~exp1
+ cpufreq_put_stats@Base 4.7~rc2-1~exp1
+ cpufreq_set_frequency@Base 4.7~rc2-1~exp1
+ cpufreq_set_policy@Base 4.7~rc2-1~exp1
+ cpuidle_get_driver@Base 4.7~rc2-1~exp1
+ cpuidle_get_governor@Base 4.7~rc2-1~exp1
+ cpuidle_is_state_disabled@Base 4.7~rc2-1~exp1
+ cpuidle_state_count@Base 4.7~rc2-1~exp1
+ cpuidle_state_desc@Base 4.7~rc2-1~exp1
+ cpuidle_state_disable@Base 4.7~rc2-1~exp1
+ cpuidle_state_latency@Base 4.7~rc2-1~exp1
+ cpuidle_state_name@Base 4.7~rc2-1~exp1
+ cpuidle_state_time@Base 4.7~rc2-1~exp1
+ cpuidle_state_usage@Base 4.7~rc2-1~exp1
+ cpupower_is_cpu_online@Base 4.7~rc2-1~exp1
+ get_cpu_topology@Base 4.7~rc2-1~exp1
diff --git a/debian/linux-cpupower.install b/debian/linux-cpupower.install
new file mode 100755
index 000000000..cbed747b9
--- /dev/null
+++ b/debian/linux-cpupower.install
@@ -0,0 +1,4 @@
+#!/usr/bin/dh-exec
+usr/bin
+[i386 amd64 x32] usr/sbin
+usr/share/
diff --git a/debian/linux-cpupower.manpages b/debian/linux-cpupower.manpages
new file mode 100755
index 000000000..96f9593ef
--- /dev/null
+++ b/debian/linux-cpupower.manpages
@@ -0,0 +1,3 @@
+#!/usr/bin/dh-exec
+[i386 amd64 x32] tools/power/x86/turbostat/turbostat.8
+[i386 amd64 x32] tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy.8
diff --git a/debian/linux-headers-4.19.0-21-4kc-malta.postinst b/debian/linux-headers-4.19.0-21-4kc-malta.postinst
new file mode 100644
index 000000000..037cf540b
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-4kc-malta.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-5kc-malta.postinst b/debian/linux-headers-4.19.0-21-5kc-malta.postinst
new file mode 100644
index 000000000..dad315d24
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-5kc-malta.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-686-pae.postinst b/debian/linux-headers-4.19.0-21-686-pae.postinst
new file mode 100644
index 000000000..1bccbad2c
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-686-pae.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-686.postinst b/debian/linux-headers-4.19.0-21-686.postinst
new file mode 100644
index 000000000..ef9f17466
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-686.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-alpha-generic.postinst b/debian/linux-headers-4.19.0-21-alpha-generic.postinst
new file mode 100644
index 000000000..d7668e367
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-alpha-generic.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-alpha-smp.postinst b/debian/linux-headers-4.19.0-21-alpha-smp.postinst
new file mode 100644
index 000000000..aad7ef17a
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-alpha-smp.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-amd64.postinst b/debian/linux-headers-4.19.0-21-amd64.postinst
new file mode 100644
index 000000000..f085e1a3d
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-amd64.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-arm64.postinst b/debian/linux-headers-4.19.0-21-arm64.postinst
new file mode 100644
index 000000000..b75e77375
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-arm64.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-armmp-lpae.postinst b/debian/linux-headers-4.19.0-21-armmp-lpae.postinst
new file mode 100644
index 000000000..7613935f5
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-armmp-lpae.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-armmp.postinst b/debian/linux-headers-4.19.0-21-armmp.postinst
new file mode 100644
index 000000000..14f054953
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-armmp.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-cloud-amd64.postinst b/debian/linux-headers-4.19.0-21-cloud-amd64.postinst
new file mode 100644
index 000000000..a35a53112
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-cloud-amd64.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-itanium.postinst b/debian/linux-headers-4.19.0-21-itanium.postinst
new file mode 100644
index 000000000..0de8d136e
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-itanium.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-loongson-3.postinst b/debian/linux-headers-4.19.0-21-loongson-3.postinst
new file mode 100644
index 000000000..3e4e28706
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-loongson-3.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-m68k.postinst b/debian/linux-headers-4.19.0-21-m68k.postinst
new file mode 100644
index 000000000..532834cdb
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-m68k.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-marvell.postinst b/debian/linux-headers-4.19.0-21-marvell.postinst
new file mode 100644
index 000000000..3c2df9335
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-marvell.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-mckinley.postinst b/debian/linux-headers-4.19.0-21-mckinley.postinst
new file mode 100644
index 000000000..95e4eece3
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-mckinley.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-mips32r6.postinst b/debian/linux-headers-4.19.0-21-mips32r6.postinst
new file mode 100644
index 000000000..2d4c7e48a
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-mips32r6.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-mips32r6el.postinst b/debian/linux-headers-4.19.0-21-mips32r6el.postinst
new file mode 100644
index 000000000..0ce8c429f
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-mips32r6el.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-mips64r6.postinst b/debian/linux-headers-4.19.0-21-mips64r6.postinst
new file mode 100644
index 000000000..7a08987cf
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-mips64r6.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-mips64r6el.postinst b/debian/linux-headers-4.19.0-21-mips64r6el.postinst
new file mode 100644
index 000000000..82fbb978e
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-mips64r6el.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-octeon.postinst b/debian/linux-headers-4.19.0-21-octeon.postinst
new file mode 100644
index 000000000..37805fd77
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-octeon.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-parisc-smp.postinst b/debian/linux-headers-4.19.0-21-parisc-smp.postinst
new file mode 100644
index 000000000..f2b28b84f
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-parisc-smp.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-parisc-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 --git a/debian/linux-headers-4.19.0-21-parisc.postinst b/debian/linux-headers-4.19.0-21-parisc.postinst
new file mode 100644
index 000000000..217645db6
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-parisc.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-parisc64-smp.postinst b/debian/linux-headers-4.19.0-21-parisc64-smp.postinst
new file mode 100644
index 000000000..8b9b63c32
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-parisc64-smp.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-parisc64-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 --git a/debian/linux-headers-4.19.0-21-powerpc-smp.postinst b/debian/linux-headers-4.19.0-21-powerpc-smp.postinst
new file mode 100644
index 000000000..329d1e1f1
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-powerpc-smp.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-powerpc.postinst b/debian/linux-headers-4.19.0-21-powerpc.postinst
new file mode 100644
index 000000000..bc49c53bb
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-powerpc.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-powerpc64.postinst b/debian/linux-headers-4.19.0-21-powerpc64.postinst
new file mode 100644
index 000000000..61b77c8da
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-powerpc64.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-powerpc64le.postinst b/debian/linux-headers-4.19.0-21-powerpc64le.postinst
new file mode 100644
index 000000000..1b27cb868
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-powerpc64le.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-powerpcspe.postinst b/debian/linux-headers-4.19.0-21-powerpcspe.postinst
new file mode 100644
index 000000000..f416c9019
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-powerpcspe.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-powerpcspe";
+
+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 --git a/debian/linux-headers-4.19.0-21-riscv64.postinst b/debian/linux-headers-4.19.0-21-riscv64.postinst
new file mode 100644
index 000000000..85d9fb36c
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-riscv64.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-rpi.postinst b/debian/linux-headers-4.19.0-21-rpi.postinst
new file mode 100644
index 000000000..d1a6020f0
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-rpi.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-rt-686-pae.postinst b/debian/linux-headers-4.19.0-21-rt-686-pae.postinst
new file mode 100644
index 000000000..e6405f52d
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-rt-686-pae.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-rt-amd64.postinst b/debian/linux-headers-4.19.0-21-rt-amd64.postinst
new file mode 100644
index 000000000..b2d9fd46f
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-rt-amd64.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-rt-arm64.postinst b/debian/linux-headers-4.19.0-21-rt-arm64.postinst
new file mode 100644
index 000000000..409a346ca
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-rt-arm64.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-rt-armmp.postinst b/debian/linux-headers-4.19.0-21-rt-armmp.postinst
new file mode 100644
index 000000000..1acaa7f10
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-rt-armmp.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-s390x.postinst b/debian/linux-headers-4.19.0-21-s390x.postinst
new file mode 100644
index 000000000..19c1d0ffb
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-s390x.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-sh7751r.postinst b/debian/linux-headers-4.19.0-21-sh7751r.postinst
new file mode 100644
index 000000000..f831f260f
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-sh7751r.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-sh7785lcr.postinst b/debian/linux-headers-4.19.0-21-sh7785lcr.postinst
new file mode 100644
index 000000000..4e90dc2ba
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-sh7785lcr.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-sparc64-smp.postinst b/debian/linux-headers-4.19.0-21-sparc64-smp.postinst
new file mode 100644
index 000000000..c84570522
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-sparc64-smp.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-headers-4.19.0-21-sparc64.postinst b/debian/linux-headers-4.19.0-21-sparc64.postinst
new file mode 100644
index 000000000..7e9b21a6f
--- /dev/null
+++ b/debian/linux-headers-4.19.0-21-sparc64.postinst
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-4kc-malta-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-4kc-malta-dbg.lintian-overrides
new file mode 100755
index 000000000..0515f1ec9
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-4kc-malta-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-4kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-4kc-malta/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-4kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-4kc-malta/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-4kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-4kc-malta/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-4kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-4kc-malta/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-4kc-malta-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-4kc-malta/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-4kc-malta-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-4kc-malta/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-4kc-malta.postinst b/debian/linux-image-4.19.0-21-4kc-malta.postinst
new file mode 100644
index 000000000..a7c56cf90
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-4kc-malta.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-4kc-malta
+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 --git a/debian/linux-image-4.19.0-21-4kc-malta.postrm b/debian/linux-image-4.19.0-21-4kc-malta.postrm
new file mode 100644
index 000000000..d482dc42d
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-4kc-malta.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-4kc-malta
+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 --git a/debian/linux-image-4.19.0-21-4kc-malta.preinst b/debian/linux-image-4.19.0-21-4kc-malta.preinst
new file mode 100644
index 000000000..5abb3554e
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-4kc-malta.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-4kc-malta
+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 --git a/debian/linux-image-4.19.0-21-4kc-malta.prerm b/debian/linux-image-4.19.0-21-4kc-malta.prerm
new file mode 100644
index 000000000..cab91eeee
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-4kc-malta.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-4kc-malta
+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 --git a/debian/linux-image-4.19.0-21-5kc-malta-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-5kc-malta-dbg.lintian-overrides
new file mode 100755
index 000000000..d42798eb3
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-5kc-malta-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-5kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-5kc-malta/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-5kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-5kc-malta/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-5kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-5kc-malta/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-5kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-5kc-malta/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-5kc-malta-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-5kc-malta/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-5kc-malta-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-5kc-malta/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-5kc-malta.postinst b/debian/linux-image-4.19.0-21-5kc-malta.postinst
new file mode 100644
index 000000000..64f2759b0
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-5kc-malta.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-5kc-malta
+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 --git a/debian/linux-image-4.19.0-21-5kc-malta.postrm b/debian/linux-image-4.19.0-21-5kc-malta.postrm
new file mode 100644
index 000000000..eb3f559d2
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-5kc-malta.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-5kc-malta
+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 --git a/debian/linux-image-4.19.0-21-5kc-malta.preinst b/debian/linux-image-4.19.0-21-5kc-malta.preinst
new file mode 100644
index 000000000..5de43308e
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-5kc-malta.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-5kc-malta
+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 --git a/debian/linux-image-4.19.0-21-5kc-malta.prerm b/debian/linux-image-4.19.0-21-5kc-malta.prerm
new file mode 100644
index 000000000..5a7c3934f
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-5kc-malta.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-5kc-malta
+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 --git a/debian/linux-image-4.19.0-21-686-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-686-dbg.lintian-overrides
new file mode 100755
index 000000000..a35eb7bbe
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-686-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-686-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-686/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-686-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-686/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-686-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-686/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-686-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-686/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-686-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-686/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-686-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-686/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-686-pae-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-686-pae-dbg.lintian-overrides
new file mode 100755
index 000000000..399cd4345
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-686-pae-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-686-pae/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-686-pae/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-686-pae/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-686-pae/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-686-pae-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-686-pae/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-686-pae-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-686-pae/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-686-pae-unsigned.postinst b/debian/linux-image-4.19.0-21-686-pae-unsigned.postinst
new file mode 100644
index 000000000..ef039ed0b
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-686-pae-unsigned.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-686-pae-unsigned.postrm b/debian/linux-image-4.19.0-21-686-pae-unsigned.postrm
new file mode 100644
index 000000000..9a819fefc
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-686-pae-unsigned.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-686-pae-unsigned.preinst b/debian/linux-image-4.19.0-21-686-pae-unsigned.preinst
new file mode 100644
index 000000000..9d1913ebe
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-686-pae-unsigned.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-686-pae-unsigned.prerm b/debian/linux-image-4.19.0-21-686-pae-unsigned.prerm
new file mode 100644
index 000000000..cf6813501
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-686-pae-unsigned.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-686-unsigned.postinst b/debian/linux-image-4.19.0-21-686-unsigned.postinst
new file mode 100644
index 000000000..4329b113a
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-686-unsigned.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-686-unsigned.postrm b/debian/linux-image-4.19.0-21-686-unsigned.postrm
new file mode 100644
index 000000000..6a334f388
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-686-unsigned.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-686-unsigned.preinst b/debian/linux-image-4.19.0-21-686-unsigned.preinst
new file mode 100644
index 000000000..ea2c1f14c
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-686-unsigned.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-686-unsigned.prerm b/debian/linux-image-4.19.0-21-686-unsigned.prerm
new file mode 100644
index 000000000..72c591c37
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-686-unsigned.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-alpha-generic-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-alpha-generic-dbg.lintian-overrides
new file mode 100755
index 000000000..1f088dfcc
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-alpha-generic-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-alpha-generic-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-alpha-generic/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-alpha-generic-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-alpha-generic/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-alpha-generic-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-alpha-generic/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-alpha-generic-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-alpha-generic/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-alpha-generic-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-alpha-generic/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-alpha-generic-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-alpha-generic/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-alpha-generic.postinst b/debian/linux-image-4.19.0-21-alpha-generic.postinst
new file mode 100644
index 000000000..917b02df7
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-alpha-generic.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-alpha-generic.postrm b/debian/linux-image-4.19.0-21-alpha-generic.postrm
new file mode 100644
index 000000000..6feefe252
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-alpha-generic.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-alpha-generic.preinst b/debian/linux-image-4.19.0-21-alpha-generic.preinst
new file mode 100644
index 000000000..77bc345a6
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-alpha-generic.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-alpha-generic.prerm b/debian/linux-image-4.19.0-21-alpha-generic.prerm
new file mode 100644
index 000000000..f1d141a88
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-alpha-generic.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-alpha-smp-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-alpha-smp-dbg.lintian-overrides
new file mode 100755
index 000000000..11bd8768f
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-alpha-smp-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-alpha-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-alpha-smp/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-alpha-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-alpha-smp/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-alpha-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-alpha-smp/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-alpha-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-alpha-smp/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-alpha-smp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-alpha-smp/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-alpha-smp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-alpha-smp/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-alpha-smp.postinst b/debian/linux-image-4.19.0-21-alpha-smp.postinst
new file mode 100644
index 000000000..debb61b59
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-alpha-smp.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-alpha-smp.postrm b/debian/linux-image-4.19.0-21-alpha-smp.postrm
new file mode 100644
index 000000000..9fe55ebf4
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-alpha-smp.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-alpha-smp.preinst b/debian/linux-image-4.19.0-21-alpha-smp.preinst
new file mode 100644
index 000000000..f835f1b6e
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-alpha-smp.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-alpha-smp.prerm b/debian/linux-image-4.19.0-21-alpha-smp.prerm
new file mode 100644
index 000000000..faf4b4b78
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-alpha-smp.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-amd64-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-amd64-dbg.lintian-overrides
new file mode 100755
index 000000000..9cf92ad84
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-amd64-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-amd64/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-amd64/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-amd64/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-amd64/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-amd64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-amd64/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-amd64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-amd64/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-amd64-unsigned.postinst b/debian/linux-image-4.19.0-21-amd64-unsigned.postinst
new file mode 100644
index 000000000..27843671c
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-amd64-unsigned.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-amd64-unsigned.postrm b/debian/linux-image-4.19.0-21-amd64-unsigned.postrm
new file mode 100644
index 000000000..37446126b
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-amd64-unsigned.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-amd64-unsigned.preinst b/debian/linux-image-4.19.0-21-amd64-unsigned.preinst
new file mode 100644
index 000000000..26ae6679a
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-amd64-unsigned.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-amd64-unsigned.prerm b/debian/linux-image-4.19.0-21-amd64-unsigned.prerm
new file mode 100644
index 000000000..a9f807eda
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-amd64-unsigned.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-arm64-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-arm64-dbg.lintian-overrides
new file mode 100755
index 000000000..7db38d726
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-arm64-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-arm64/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-arm64/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-arm64/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-arm64/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-arm64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-arm64/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-arm64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-arm64/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-arm64-unsigned.postinst b/debian/linux-image-4.19.0-21-arm64-unsigned.postinst
new file mode 100644
index 000000000..9dd562e96
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-arm64-unsigned.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-arm64-unsigned.postrm b/debian/linux-image-4.19.0-21-arm64-unsigned.postrm
new file mode 100644
index 000000000..8fe9e2302
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-arm64-unsigned.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-arm64-unsigned.preinst b/debian/linux-image-4.19.0-21-arm64-unsigned.preinst
new file mode 100644
index 000000000..26b7ba685
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-arm64-unsigned.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-arm64-unsigned.prerm b/debian/linux-image-4.19.0-21-arm64-unsigned.prerm
new file mode 100644
index 000000000..75c22fddd
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-arm64-unsigned.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-armmp-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-armmp-dbg.lintian-overrides
new file mode 100755
index 000000000..649791b86
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-armmp-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-armmp/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-armmp/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-armmp/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-armmp/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-armmp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-armmp/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-armmp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-armmp/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-armmp-lpae-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-armmp-lpae-dbg.lintian-overrides
new file mode 100755
index 000000000..cc41b6282
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-armmp-lpae-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-armmp-lpae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-armmp-lpae/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-armmp-lpae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-armmp-lpae/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-armmp-lpae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-armmp-lpae/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-armmp-lpae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-armmp-lpae/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-armmp-lpae-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-armmp-lpae/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-armmp-lpae-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-armmp-lpae/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-armmp-lpae.postinst b/debian/linux-image-4.19.0-21-armmp-lpae.postinst
new file mode 100644
index 000000000..e97567c7f
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-armmp-lpae.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-armmp-lpae.postrm b/debian/linux-image-4.19.0-21-armmp-lpae.postrm
new file mode 100644
index 000000000..d10ed6790
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-armmp-lpae.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-armmp-lpae.preinst b/debian/linux-image-4.19.0-21-armmp-lpae.preinst
new file mode 100644
index 000000000..96cce9f01
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-armmp-lpae.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-armmp-lpae.prerm b/debian/linux-image-4.19.0-21-armmp-lpae.prerm
new file mode 100644
index 000000000..2348a4402
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-armmp-lpae.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-armmp.postinst b/debian/linux-image-4.19.0-21-armmp.postinst
new file mode 100644
index 000000000..a90f4aab3
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-armmp.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-armmp.postrm b/debian/linux-image-4.19.0-21-armmp.postrm
new file mode 100644
index 000000000..2bfdd0a7c
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-armmp.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-armmp.preinst b/debian/linux-image-4.19.0-21-armmp.preinst
new file mode 100644
index 000000000..e3cf14f90
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-armmp.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-armmp.prerm b/debian/linux-image-4.19.0-21-armmp.prerm
new file mode 100644
index 000000000..40f6106ac
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-armmp.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-cloud-amd64-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-cloud-amd64-dbg.lintian-overrides
new file mode 100755
index 000000000..1769e07c0
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-cloud-amd64-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-cloud-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-cloud-amd64/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-cloud-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-cloud-amd64/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-cloud-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-cloud-amd64/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-cloud-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-cloud-amd64/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-cloud-amd64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-cloud-amd64/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-cloud-amd64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-cloud-amd64/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-cloud-amd64-unsigned.postinst b/debian/linux-image-4.19.0-21-cloud-amd64-unsigned.postinst
new file mode 100644
index 000000000..c2fbe77a9
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-cloud-amd64-unsigned.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-cloud-amd64-unsigned.postrm b/debian/linux-image-4.19.0-21-cloud-amd64-unsigned.postrm
new file mode 100644
index 000000000..308f5ce38
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-cloud-amd64-unsigned.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-cloud-amd64-unsigned.preinst b/debian/linux-image-4.19.0-21-cloud-amd64-unsigned.preinst
new file mode 100644
index 000000000..62610a36d
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-cloud-amd64-unsigned.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-cloud-amd64-unsigned.prerm b/debian/linux-image-4.19.0-21-cloud-amd64-unsigned.prerm
new file mode 100644
index 000000000..e734921d5
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-cloud-amd64-unsigned.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-itanium-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-itanium-dbg.lintian-overrides
new file mode 100755
index 000000000..d465502c6
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-itanium-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-itanium-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-itanium/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-itanium-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-itanium/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-itanium-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-itanium/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-itanium-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-itanium/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-itanium-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-itanium/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-itanium-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-itanium/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-itanium.postinst b/debian/linux-image-4.19.0-21-itanium.postinst
new file mode 100644
index 000000000..434e8eab3
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-itanium.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-itanium.postrm b/debian/linux-image-4.19.0-21-itanium.postrm
new file mode 100644
index 000000000..486959df2
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-itanium.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-itanium.preinst b/debian/linux-image-4.19.0-21-itanium.preinst
new file mode 100644
index 000000000..1b1b533d6
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-itanium.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-itanium.prerm b/debian/linux-image-4.19.0-21-itanium.prerm
new file mode 100644
index 000000000..5826f1a0e
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-itanium.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-loongson-3-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-loongson-3-dbg.lintian-overrides
new file mode 100755
index 000000000..a42d9124e
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-loongson-3-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-loongson-3-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-loongson-3/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-loongson-3-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-loongson-3/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-loongson-3-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-loongson-3/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-loongson-3-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-loongson-3/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-loongson-3-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-loongson-3/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-loongson-3-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-loongson-3/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-loongson-3.postinst b/debian/linux-image-4.19.0-21-loongson-3.postinst
new file mode 100644
index 000000000..16910acea
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-loongson-3.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-loongson-3
+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 --git a/debian/linux-image-4.19.0-21-loongson-3.postrm b/debian/linux-image-4.19.0-21-loongson-3.postrm
new file mode 100644
index 000000000..13f1e446d
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-loongson-3.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-loongson-3
+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 --git a/debian/linux-image-4.19.0-21-loongson-3.preinst b/debian/linux-image-4.19.0-21-loongson-3.preinst
new file mode 100644
index 000000000..f52c99dd3
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-loongson-3.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-loongson-3
+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 --git a/debian/linux-image-4.19.0-21-loongson-3.prerm b/debian/linux-image-4.19.0-21-loongson-3.prerm
new file mode 100644
index 000000000..e1ad353a5
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-loongson-3.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-loongson-3
+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 --git a/debian/linux-image-4.19.0-21-m68k-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-m68k-dbg.lintian-overrides
new file mode 100755
index 000000000..a2c170e96
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-m68k-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-m68k-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-m68k/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-m68k-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-m68k/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-m68k-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-m68k/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-m68k-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-m68k/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-m68k-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-m68k/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-m68k-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-m68k/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-m68k.postinst b/debian/linux-image-4.19.0-21-m68k.postinst
new file mode 100644
index 000000000..747bbfd7d
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-m68k.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-m68k.postrm b/debian/linux-image-4.19.0-21-m68k.postrm
new file mode 100644
index 000000000..909348731
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-m68k.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-m68k.preinst b/debian/linux-image-4.19.0-21-m68k.preinst
new file mode 100644
index 000000000..5d386a44d
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-m68k.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-m68k.prerm b/debian/linux-image-4.19.0-21-m68k.prerm
new file mode 100644
index 000000000..40bcd7586
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-m68k.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-marvell-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-marvell-dbg.lintian-overrides
new file mode 100755
index 000000000..1a4651b69
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-marvell-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-marvell-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-marvell/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-marvell-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-marvell/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-marvell-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-marvell/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-marvell-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-marvell/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-marvell-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-marvell/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-marvell-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-marvell/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-marvell.postinst b/debian/linux-image-4.19.0-21-marvell.postinst
new file mode 100644
index 000000000..7f6736987
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-marvell.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-marvell.postrm b/debian/linux-image-4.19.0-21-marvell.postrm
new file mode 100644
index 000000000..11109754a
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-marvell.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-marvell.preinst b/debian/linux-image-4.19.0-21-marvell.preinst
new file mode 100644
index 000000000..4915f8da5
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-marvell.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-marvell.prerm b/debian/linux-image-4.19.0-21-marvell.prerm
new file mode 100644
index 000000000..11e024e79
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-marvell.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-mckinley-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-mckinley-dbg.lintian-overrides
new file mode 100755
index 000000000..3dd9e5c81
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mckinley-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-mckinley-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-mckinley/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-mckinley-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-mckinley/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-mckinley-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-mckinley/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-mckinley-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-mckinley/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-mckinley-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-mckinley/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-mckinley-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-mckinley/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-mckinley.postinst b/debian/linux-image-4.19.0-21-mckinley.postinst
new file mode 100644
index 000000000..8ea14d412
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mckinley.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-mckinley.postrm b/debian/linux-image-4.19.0-21-mckinley.postrm
new file mode 100644
index 000000000..05177d175
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mckinley.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-mckinley.preinst b/debian/linux-image-4.19.0-21-mckinley.preinst
new file mode 100644
index 000000000..6bdad538e
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mckinley.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-mckinley.prerm b/debian/linux-image-4.19.0-21-mckinley.prerm
new file mode 100644
index 000000000..ad43681e2
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mckinley.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-mips32r6-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-mips32r6-dbg.lintian-overrides
new file mode 100755
index 000000000..0591fb0be
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mips32r6-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-mips32r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-mips32r6/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-mips32r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-mips32r6/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-mips32r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-mips32r6/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-mips32r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-mips32r6/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-mips32r6-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-mips32r6/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-mips32r6-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-mips32r6/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-mips32r6.postinst b/debian/linux-image-4.19.0-21-mips32r6.postinst
new file mode 100644
index 000000000..8d468728e
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mips32r6.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-mips32r6.postrm b/debian/linux-image-4.19.0-21-mips32r6.postrm
new file mode 100644
index 000000000..058bf878c
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mips32r6.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-mips32r6.preinst b/debian/linux-image-4.19.0-21-mips32r6.preinst
new file mode 100644
index 000000000..3470de97b
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mips32r6.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-mips32r6.prerm b/debian/linux-image-4.19.0-21-mips32r6.prerm
new file mode 100644
index 000000000..b8358d69f
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mips32r6.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-mips32r6el-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-mips32r6el-dbg.lintian-overrides
new file mode 100755
index 000000000..1e6b30850
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mips32r6el-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-mips32r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-mips32r6el/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-mips32r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-mips32r6el/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-mips32r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-mips32r6el/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-mips32r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-mips32r6el/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-mips32r6el-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-mips32r6el/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-mips32r6el-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-mips32r6el/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-mips32r6el.postinst b/debian/linux-image-4.19.0-21-mips32r6el.postinst
new file mode 100644
index 000000000..04e2a789d
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mips32r6el.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-mips32r6el.postrm b/debian/linux-image-4.19.0-21-mips32r6el.postrm
new file mode 100644
index 000000000..dd796ee71
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mips32r6el.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-mips32r6el.preinst b/debian/linux-image-4.19.0-21-mips32r6el.preinst
new file mode 100644
index 000000000..421a94c6d
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mips32r6el.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-mips32r6el.prerm b/debian/linux-image-4.19.0-21-mips32r6el.prerm
new file mode 100644
index 000000000..dc5650f0b
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mips32r6el.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-mips64r6-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-mips64r6-dbg.lintian-overrides
new file mode 100755
index 000000000..b6321bf53
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mips64r6-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-mips64r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-mips64r6/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-mips64r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-mips64r6/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-mips64r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-mips64r6/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-mips64r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-mips64r6/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-mips64r6-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-mips64r6/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-mips64r6-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-mips64r6/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-mips64r6.postinst b/debian/linux-image-4.19.0-21-mips64r6.postinst
new file mode 100644
index 000000000..ba3a71a9f
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mips64r6.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-mips64r6.postrm b/debian/linux-image-4.19.0-21-mips64r6.postrm
new file mode 100644
index 000000000..82b1b7008
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mips64r6.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-mips64r6.preinst b/debian/linux-image-4.19.0-21-mips64r6.preinst
new file mode 100644
index 000000000..40c8a4a68
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mips64r6.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-mips64r6.prerm b/debian/linux-image-4.19.0-21-mips64r6.prerm
new file mode 100644
index 000000000..65d3bbaa8
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mips64r6.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-mips64r6el-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-mips64r6el-dbg.lintian-overrides
new file mode 100755
index 000000000..1ed5088b9
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mips64r6el-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-mips64r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-mips64r6el/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-mips64r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-mips64r6el/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-mips64r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-mips64r6el/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-mips64r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-mips64r6el/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-mips64r6el-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-mips64r6el/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-mips64r6el-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-mips64r6el/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-mips64r6el.postinst b/debian/linux-image-4.19.0-21-mips64r6el.postinst
new file mode 100644
index 000000000..acabdb843
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mips64r6el.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-mips64r6el.postrm b/debian/linux-image-4.19.0-21-mips64r6el.postrm
new file mode 100644
index 000000000..7f6b8e2d8
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mips64r6el.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-mips64r6el.preinst b/debian/linux-image-4.19.0-21-mips64r6el.preinst
new file mode 100644
index 000000000..efb862349
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mips64r6el.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-mips64r6el.prerm b/debian/linux-image-4.19.0-21-mips64r6el.prerm
new file mode 100644
index 000000000..40941c177
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-mips64r6el.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-octeon-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-octeon-dbg.lintian-overrides
new file mode 100755
index 000000000..840dc636e
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-octeon-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-octeon-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-octeon/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-octeon-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-octeon/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-octeon-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-octeon/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-octeon-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-octeon/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-octeon-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-octeon/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-octeon-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-octeon/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-octeon.postinst b/debian/linux-image-4.19.0-21-octeon.postinst
new file mode 100644
index 000000000..a09cf3aed
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-octeon.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-octeon.postrm b/debian/linux-image-4.19.0-21-octeon.postrm
new file mode 100644
index 000000000..d7fe9df3d
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-octeon.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-octeon.preinst b/debian/linux-image-4.19.0-21-octeon.preinst
new file mode 100644
index 000000000..c06814254
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-octeon.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-octeon.prerm b/debian/linux-image-4.19.0-21-octeon.prerm
new file mode 100644
index 000000000..258dbbb6a
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-octeon.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-parisc-smp.postinst b/debian/linux-image-4.19.0-21-parisc-smp.postinst
new file mode 100644
index 000000000..246871c7f
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-parisc-smp.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-parisc-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 --git a/debian/linux-image-4.19.0-21-parisc-smp.postrm b/debian/linux-image-4.19.0-21-parisc-smp.postrm
new file mode 100644
index 000000000..8f485bab1
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-parisc-smp.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-parisc-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 --git a/debian/linux-image-4.19.0-21-parisc-smp.preinst b/debian/linux-image-4.19.0-21-parisc-smp.preinst
new file mode 100644
index 000000000..1ec290ea0
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-parisc-smp.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-parisc-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 --git a/debian/linux-image-4.19.0-21-parisc-smp.prerm b/debian/linux-image-4.19.0-21-parisc-smp.prerm
new file mode 100644
index 000000000..7f0c9b1d0
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-parisc-smp.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-parisc-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 --git a/debian/linux-image-4.19.0-21-parisc.postinst b/debian/linux-image-4.19.0-21-parisc.postinst
new file mode 100644
index 000000000..42d139475
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-parisc.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-parisc.postrm b/debian/linux-image-4.19.0-21-parisc.postrm
new file mode 100644
index 000000000..135c75a39
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-parisc.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-parisc.preinst b/debian/linux-image-4.19.0-21-parisc.preinst
new file mode 100644
index 000000000..399e919f7
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-parisc.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-parisc.prerm b/debian/linux-image-4.19.0-21-parisc.prerm
new file mode 100644
index 000000000..b753860e9
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-parisc.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-parisc64-smp.postinst b/debian/linux-image-4.19.0-21-parisc64-smp.postinst
new file mode 100644
index 000000000..eeeb85677
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-parisc64-smp.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-parisc64-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 --git a/debian/linux-image-4.19.0-21-parisc64-smp.postrm b/debian/linux-image-4.19.0-21-parisc64-smp.postrm
new file mode 100644
index 000000000..98a84ddf6
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-parisc64-smp.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-parisc64-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 --git a/debian/linux-image-4.19.0-21-parisc64-smp.preinst b/debian/linux-image-4.19.0-21-parisc64-smp.preinst
new file mode 100644
index 000000000..e6b7900bb
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-parisc64-smp.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-parisc64-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 --git a/debian/linux-image-4.19.0-21-parisc64-smp.prerm b/debian/linux-image-4.19.0-21-parisc64-smp.prerm
new file mode 100644
index 000000000..41f4d5bf0
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-parisc64-smp.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-parisc64-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 --git a/debian/linux-image-4.19.0-21-powerpc-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-powerpc-dbg.lintian-overrides
new file mode 100755
index 000000000..5abb03c85
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpc-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-powerpc-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-powerpc/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-powerpc-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-powerpc/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-powerpc-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-powerpc/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-powerpc-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-powerpc/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-powerpc-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-powerpc/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-powerpc-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-powerpc/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-powerpc-smp-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-powerpc-smp-dbg.lintian-overrides
new file mode 100755
index 000000000..8b629f330
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpc-smp-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-powerpc-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-powerpc-smp/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-powerpc-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-powerpc-smp/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-powerpc-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-powerpc-smp/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-powerpc-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-powerpc-smp/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-powerpc-smp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-powerpc-smp/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-powerpc-smp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-powerpc-smp/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-powerpc-smp.postinst b/debian/linux-image-4.19.0-21-powerpc-smp.postinst
new file mode 100644
index 000000000..2a6b90a3e
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpc-smp.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-powerpc-smp.postrm b/debian/linux-image-4.19.0-21-powerpc-smp.postrm
new file mode 100644
index 000000000..935152371
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpc-smp.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-powerpc-smp.preinst b/debian/linux-image-4.19.0-21-powerpc-smp.preinst
new file mode 100644
index 000000000..103fa5f5c
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpc-smp.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-powerpc-smp.prerm b/debian/linux-image-4.19.0-21-powerpc-smp.prerm
new file mode 100644
index 000000000..9bd1b30de
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpc-smp.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-powerpc.postinst b/debian/linux-image-4.19.0-21-powerpc.postinst
new file mode 100644
index 000000000..e01fc3312
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpc.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-powerpc.postrm b/debian/linux-image-4.19.0-21-powerpc.postrm
new file mode 100644
index 000000000..98436cf1a
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpc.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-powerpc.preinst b/debian/linux-image-4.19.0-21-powerpc.preinst
new file mode 100644
index 000000000..4724ce990
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpc.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-powerpc.prerm b/debian/linux-image-4.19.0-21-powerpc.prerm
new file mode 100644
index 000000000..47b929c08
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpc.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-powerpc64-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-powerpc64-dbg.lintian-overrides
new file mode 100755
index 000000000..7a7851208
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpc64-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-powerpc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-powerpc64/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-powerpc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-powerpc64/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-powerpc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-powerpc64/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-powerpc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-powerpc64/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-powerpc64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-powerpc64/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-powerpc64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-powerpc64/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-powerpc64.postinst b/debian/linux-image-4.19.0-21-powerpc64.postinst
new file mode 100644
index 000000000..75639c833
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpc64.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-powerpc64.postrm b/debian/linux-image-4.19.0-21-powerpc64.postrm
new file mode 100644
index 000000000..94b8344ae
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpc64.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-powerpc64.preinst b/debian/linux-image-4.19.0-21-powerpc64.preinst
new file mode 100644
index 000000000..ac1fea61f
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpc64.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-powerpc64.prerm b/debian/linux-image-4.19.0-21-powerpc64.prerm
new file mode 100644
index 000000000..2bb1f7954
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpc64.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-powerpc64le-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-powerpc64le-dbg.lintian-overrides
new file mode 100755
index 000000000..b72fb6321
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpc64le-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-powerpc64le-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-powerpc64le/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-powerpc64le-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-powerpc64le/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-powerpc64le-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-powerpc64le/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-powerpc64le-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-powerpc64le/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-powerpc64le-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-powerpc64le/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-powerpc64le-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-powerpc64le/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-powerpc64le.postinst b/debian/linux-image-4.19.0-21-powerpc64le.postinst
new file mode 100644
index 000000000..080468246
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpc64le.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-powerpc64le.postrm b/debian/linux-image-4.19.0-21-powerpc64le.postrm
new file mode 100644
index 000000000..4ba4aa508
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpc64le.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-powerpc64le.preinst b/debian/linux-image-4.19.0-21-powerpc64le.preinst
new file mode 100644
index 000000000..c02853b6f
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpc64le.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-powerpc64le.prerm b/debian/linux-image-4.19.0-21-powerpc64le.prerm
new file mode 100644
index 000000000..567fb46ae
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpc64le.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-powerpcspe-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-powerpcspe-dbg.lintian-overrides
new file mode 100755
index 000000000..2aeb825f0
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpcspe-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-powerpcspe-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-4.19.0-21-powerpcspe-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-powerpcspe/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-powerpcspe-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-powerpcspe/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-powerpcspe-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-powerpcspe/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-powerpcspe-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-powerpcspe/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-powerpcspe-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-powerpcspe/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-powerpcspe-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-powerpcspe/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-powerpcspe.postinst b/debian/linux-image-4.19.0-21-powerpcspe.postinst
new file mode 100644
index 000000000..3abbab6fd
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpcspe.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-powerpcspe
+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 --git a/debian/linux-image-4.19.0-21-powerpcspe.postrm b/debian/linux-image-4.19.0-21-powerpcspe.postrm
new file mode 100644
index 000000000..4f7f1a67b
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpcspe.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-powerpcspe
+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 --git a/debian/linux-image-4.19.0-21-powerpcspe.preinst b/debian/linux-image-4.19.0-21-powerpcspe.preinst
new file mode 100644
index 000000000..75285ce67
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpcspe.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-powerpcspe
+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 --git a/debian/linux-image-4.19.0-21-powerpcspe.prerm b/debian/linux-image-4.19.0-21-powerpcspe.prerm
new file mode 100644
index 000000000..0ee2f9371
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-powerpcspe.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-powerpcspe
+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 --git a/debian/linux-image-4.19.0-21-riscv64-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-riscv64-dbg.lintian-overrides
new file mode 100755
index 000000000..064e25c31
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-riscv64-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-riscv64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-riscv64/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-riscv64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-riscv64/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-riscv64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-riscv64/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-riscv64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-riscv64/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-riscv64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-riscv64/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-riscv64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-riscv64/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-riscv64.postinst b/debian/linux-image-4.19.0-21-riscv64.postinst
new file mode 100644
index 000000000..16d9ce1ac
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-riscv64.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-riscv64.postrm b/debian/linux-image-4.19.0-21-riscv64.postrm
new file mode 100644
index 000000000..4d5252d59
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-riscv64.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-riscv64.preinst b/debian/linux-image-4.19.0-21-riscv64.preinst
new file mode 100644
index 000000000..046063210
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-riscv64.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-riscv64.prerm b/debian/linux-image-4.19.0-21-riscv64.prerm
new file mode 100644
index 000000000..7e5d3e6a8
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-riscv64.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-rpi-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-rpi-dbg.lintian-overrides
new file mode 100755
index 000000000..52518add8
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rpi-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-rpi-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-rpi/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-rpi-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-rpi/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-rpi-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-rpi/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-rpi-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-rpi/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-rpi-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-rpi/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-rpi-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-rpi/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-rpi.postinst b/debian/linux-image-4.19.0-21-rpi.postinst
new file mode 100644
index 000000000..ff0a5a9ac
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rpi.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-rpi.postrm b/debian/linux-image-4.19.0-21-rpi.postrm
new file mode 100644
index 000000000..fc8f57ca0
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rpi.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-rpi.preinst b/debian/linux-image-4.19.0-21-rpi.preinst
new file mode 100644
index 000000000..79fe14fc5
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rpi.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-rpi.prerm b/debian/linux-image-4.19.0-21-rpi.prerm
new file mode 100644
index 000000000..6967daf55
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rpi.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-rt-686-pae-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-rt-686-pae-dbg.lintian-overrides
new file mode 100755
index 000000000..3b20ab29a
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rt-686-pae-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-rt-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-rt-686-pae/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-rt-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-rt-686-pae/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-rt-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-rt-686-pae/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-rt-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-rt-686-pae/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-rt-686-pae-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-rt-686-pae/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-rt-686-pae-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-rt-686-pae/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-rt-686-pae-unsigned.postinst b/debian/linux-image-4.19.0-21-rt-686-pae-unsigned.postinst
new file mode 100644
index 000000000..87c20282b
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rt-686-pae-unsigned.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-rt-686-pae-unsigned.postrm b/debian/linux-image-4.19.0-21-rt-686-pae-unsigned.postrm
new file mode 100644
index 000000000..5c0c2c9eb
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rt-686-pae-unsigned.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-rt-686-pae-unsigned.preinst b/debian/linux-image-4.19.0-21-rt-686-pae-unsigned.preinst
new file mode 100644
index 000000000..c1a5895cd
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rt-686-pae-unsigned.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-rt-686-pae-unsigned.prerm b/debian/linux-image-4.19.0-21-rt-686-pae-unsigned.prerm
new file mode 100644
index 000000000..868339434
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rt-686-pae-unsigned.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-rt-amd64-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-rt-amd64-dbg.lintian-overrides
new file mode 100755
index 000000000..f27136cf9
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rt-amd64-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-rt-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-rt-amd64/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-rt-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-rt-amd64/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-rt-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-rt-amd64/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-rt-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-rt-amd64/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-rt-amd64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-rt-amd64/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-rt-amd64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-rt-amd64/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-rt-amd64-unsigned.postinst b/debian/linux-image-4.19.0-21-rt-amd64-unsigned.postinst
new file mode 100644
index 000000000..0cca16891
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rt-amd64-unsigned.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-rt-amd64-unsigned.postrm b/debian/linux-image-4.19.0-21-rt-amd64-unsigned.postrm
new file mode 100644
index 000000000..778e9dd6e
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rt-amd64-unsigned.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-rt-amd64-unsigned.preinst b/debian/linux-image-4.19.0-21-rt-amd64-unsigned.preinst
new file mode 100644
index 000000000..7764c3ad2
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rt-amd64-unsigned.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-rt-amd64-unsigned.prerm b/debian/linux-image-4.19.0-21-rt-amd64-unsigned.prerm
new file mode 100644
index 000000000..c8c2e00f5
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rt-amd64-unsigned.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-rt-arm64-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-rt-arm64-dbg.lintian-overrides
new file mode 100755
index 000000000..94e2a1df6
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rt-arm64-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-rt-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-rt-arm64/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-rt-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-rt-arm64/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-rt-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-rt-arm64/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-rt-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-rt-arm64/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-rt-arm64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-rt-arm64/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-rt-arm64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-rt-arm64/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-rt-arm64-unsigned.postinst b/debian/linux-image-4.19.0-21-rt-arm64-unsigned.postinst
new file mode 100644
index 000000000..bc4f3841e
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rt-arm64-unsigned.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-rt-arm64-unsigned.postrm b/debian/linux-image-4.19.0-21-rt-arm64-unsigned.postrm
new file mode 100644
index 000000000..b9cf9b238
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rt-arm64-unsigned.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-rt-arm64-unsigned.preinst b/debian/linux-image-4.19.0-21-rt-arm64-unsigned.preinst
new file mode 100644
index 000000000..ef2bccffd
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rt-arm64-unsigned.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-rt-arm64-unsigned.prerm b/debian/linux-image-4.19.0-21-rt-arm64-unsigned.prerm
new file mode 100644
index 000000000..154fa2ff4
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rt-arm64-unsigned.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-rt-armmp-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-rt-armmp-dbg.lintian-overrides
new file mode 100755
index 000000000..51c551282
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rt-armmp-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-rt-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-rt-armmp/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-rt-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-rt-armmp/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-rt-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-rt-armmp/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-rt-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-rt-armmp/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-rt-armmp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-rt-armmp/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-rt-armmp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-rt-armmp/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-rt-armmp.postinst b/debian/linux-image-4.19.0-21-rt-armmp.postinst
new file mode 100644
index 000000000..bccf62c91
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rt-armmp.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-rt-armmp.postrm b/debian/linux-image-4.19.0-21-rt-armmp.postrm
new file mode 100644
index 000000000..64a768b7c
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rt-armmp.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-rt-armmp.preinst b/debian/linux-image-4.19.0-21-rt-armmp.preinst
new file mode 100644
index 000000000..c09f7cf05
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rt-armmp.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-rt-armmp.prerm b/debian/linux-image-4.19.0-21-rt-armmp.prerm
new file mode 100644
index 000000000..e7c890617
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-rt-armmp.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-s390x-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-s390x-dbg.lintian-overrides
new file mode 100755
index 000000000..c74d81ee1
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-s390x-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-s390x-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-s390x/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-s390x-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-s390x/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-s390x-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-s390x/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-s390x-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-s390x/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-s390x-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-s390x/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-s390x-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-s390x/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-s390x.postinst b/debian/linux-image-4.19.0-21-s390x.postinst
new file mode 100644
index 000000000..11cf10a95
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-s390x.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-s390x.postrm b/debian/linux-image-4.19.0-21-s390x.postrm
new file mode 100644
index 000000000..bf8ad6dd9
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-s390x.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-s390x.preinst b/debian/linux-image-4.19.0-21-s390x.preinst
new file mode 100644
index 000000000..7b2777ae5
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-s390x.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-s390x.prerm b/debian/linux-image-4.19.0-21-s390x.prerm
new file mode 100644
index 000000000..e32ae421a
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-s390x.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-sh7751r-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-sh7751r-dbg.lintian-overrides
new file mode 100755
index 000000000..aac58dc40
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-sh7751r-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-sh7751r-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-sh7751r/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-sh7751r-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-sh7751r/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-sh7751r-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-sh7751r/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-sh7751r-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-sh7751r/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-sh7751r-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-sh7751r/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-sh7751r-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-sh7751r/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-sh7751r.postinst b/debian/linux-image-4.19.0-21-sh7751r.postinst
new file mode 100644
index 000000000..1fb8427e7
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-sh7751r.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-sh7751r.postrm b/debian/linux-image-4.19.0-21-sh7751r.postrm
new file mode 100644
index 000000000..81ecc8429
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-sh7751r.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-sh7751r.preinst b/debian/linux-image-4.19.0-21-sh7751r.preinst
new file mode 100644
index 000000000..76b65f08e
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-sh7751r.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-sh7751r.prerm b/debian/linux-image-4.19.0-21-sh7751r.prerm
new file mode 100644
index 000000000..2890915a5
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-sh7751r.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-sh7785lcr-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-sh7785lcr-dbg.lintian-overrides
new file mode 100755
index 000000000..fdd9bb84c
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-sh7785lcr-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-sh7785lcr-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-sh7785lcr/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-sh7785lcr-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-sh7785lcr/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-sh7785lcr-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-sh7785lcr/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-sh7785lcr-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-sh7785lcr/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-sh7785lcr-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-sh7785lcr/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-sh7785lcr-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-sh7785lcr/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-sh7785lcr.postinst b/debian/linux-image-4.19.0-21-sh7785lcr.postinst
new file mode 100644
index 000000000..252118e39
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-sh7785lcr.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-sh7785lcr.postrm b/debian/linux-image-4.19.0-21-sh7785lcr.postrm
new file mode 100644
index 000000000..2d3d03ee1
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-sh7785lcr.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-sh7785lcr.preinst b/debian/linux-image-4.19.0-21-sh7785lcr.preinst
new file mode 100644
index 000000000..140010364
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-sh7785lcr.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-sh7785lcr.prerm b/debian/linux-image-4.19.0-21-sh7785lcr.prerm
new file mode 100644
index 000000000..b49c4a391
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-sh7785lcr.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-sparc64-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-sparc64-dbg.lintian-overrides
new file mode 100755
index 000000000..c405d9569
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-sparc64-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-sparc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-sparc64/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-sparc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-sparc64/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-sparc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-sparc64/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-sparc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-sparc64/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-sparc64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-sparc64/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-sparc64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-sparc64/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-sparc64-smp-dbg.lintian-overrides b/debian/linux-image-4.19.0-21-sparc64-smp-dbg.lintian-overrides
new file mode 100755
index 000000000..cc4ba51d0
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-sparc64-smp-dbg.lintian-overrides
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-4.19.0-21-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-4.19.0-21-sparc64-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-sparc64-smp/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-4.19.0-21-sparc64-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-sparc64-smp/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-4.19.0-21-sparc64-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-sparc64-smp/vdso/vdso64.so
+[amd64] linux-image-4.19.0-21-sparc64-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/4.19.0-21-sparc64-smp/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-4.19.0-21-sparc64-smp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-sparc64-smp/vdso/vdso32.so
+[amd64] linux-image-4.19.0-21-sparc64-smp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/4.19.0-21-sparc64-smp/vdso/vdsox32.so
diff --git a/debian/linux-image-4.19.0-21-sparc64-smp.postinst b/debian/linux-image-4.19.0-21-sparc64-smp.postinst
new file mode 100644
index 000000000..4c834a323
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-sparc64-smp.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-sparc64-smp.postrm b/debian/linux-image-4.19.0-21-sparc64-smp.postrm
new file mode 100644
index 000000000..6236938ef
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-sparc64-smp.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-sparc64-smp.preinst b/debian/linux-image-4.19.0-21-sparc64-smp.preinst
new file mode 100644
index 000000000..aa3deedec
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-sparc64-smp.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-sparc64-smp.prerm b/debian/linux-image-4.19.0-21-sparc64-smp.prerm
new file mode 100644
index 000000000..29c0c54cf
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-sparc64-smp.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-sparc64.postinst b/debian/linux-image-4.19.0-21-sparc64.postinst
new file mode 100644
index 000000000..b75cba7f9
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-sparc64.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-sparc64.postrm b/debian/linux-image-4.19.0-21-sparc64.postrm
new file mode 100644
index 000000000..1832c6f73
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-sparc64.postrm
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-sparc64.preinst b/debian/linux-image-4.19.0-21-sparc64.preinst
new file mode 100644
index 000000000..7e39a485a
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-sparc64.preinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-image-4.19.0-21-sparc64.prerm b/debian/linux-image-4.19.0-21-sparc64.prerm
new file mode 100644
index 000000000..83cbd317e
--- /dev/null
+++ b/debian/linux-image-4.19.0-21-sparc64.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=4.19.0-21-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 --git a/debian/linux-perf-4.19.lintian-overrides b/debian/linux-perf-4.19.lintian-overrides
new file mode 100644
index 000000000..507aa81bc
--- /dev/null
+++ b/debian/linux-perf-4.19.lintian-overrides
@@ -0,0 +1,3 @@
+# These executables are needed to handle processes running in compat mode
+linux-perf-4.19: binary-from-other-architecture usr/lib/perf_4.19-core/perf-read-vdso32
+linux-perf-4.19: binary-from-other-architecture usr/lib/perf_4.19-core/perf-read-vdsox32
diff --git a/debian/patches-rt/0001-ARM-at91-add-TCB-registers-definitions.patch b/debian/patches-rt/0001-ARM-at91-add-TCB-registers-definitions.patch
new file mode 100644
index 000000000..39c411035
--- /dev/null
+++ b/debian/patches-rt/0001-ARM-at91-add-TCB-registers-definitions.patch
@@ -0,0 +1,210 @@
+From c7b29fd1b38b96426c553ddda13ebf7b8c823fd6 Mon Sep 17 00:00:00 2001
+From: Alexandre Belloni <alexandre.belloni@bootlin.com>
+Date: Thu, 13 Sep 2018 13:30:18 +0200
+Subject: [PATCH 001/347] ARM: at91: add TCB registers definitions
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Add registers and bits definitions for the timer counter blocks found on
+Atmel ARM SoCs.
+
+Tested-by: Alexander Dahl <ada@thorsis.com>
+Tested-by: Andras Szemzo <szemzo.andras@gmail.com>
+Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/soc/at91/atmel_tcb.h | 183 +++++++++++++++++++++++++++++++++++
+ 1 file changed, 183 insertions(+)
+ create mode 100644 include/soc/at91/atmel_tcb.h
+
+diff --git a/include/soc/at91/atmel_tcb.h b/include/soc/at91/atmel_tcb.h
+new file mode 100644
+index 000000000000..657e234b1483
+--- /dev/null
++++ b/include/soc/at91/atmel_tcb.h
+@@ -0,0 +1,183 @@
++//SPDX-License-Identifier: GPL-2.0
++/* Copyright (C) 2018 Microchip */
++
++#ifndef __SOC_ATMEL_TCB_H
++#define __SOC_ATMEL_TCB_H
++
++/* Channel registers */
++#define ATMEL_TC_COFFS(c) ((c) * 0x40)
++#define ATMEL_TC_CCR(c) ATMEL_TC_COFFS(c)
++#define ATMEL_TC_CMR(c) (ATMEL_TC_COFFS(c) + 0x4)
++#define ATMEL_TC_SMMR(c) (ATMEL_TC_COFFS(c) + 0x8)
++#define ATMEL_TC_RAB(c) (ATMEL_TC_COFFS(c) + 0xc)
++#define ATMEL_TC_CV(c) (ATMEL_TC_COFFS(c) + 0x10)
++#define ATMEL_TC_RA(c) (ATMEL_TC_COFFS(c) + 0x14)
++#define ATMEL_TC_RB(c) (ATMEL_TC_COFFS(c) + 0x18)
++#define ATMEL_TC_RC(c) (ATMEL_TC_COFFS(c) + 0x1c)
++#define ATMEL_TC_SR(c) (ATMEL_TC_COFFS(c) + 0x20)
++#define ATMEL_TC_IER(c) (ATMEL_TC_COFFS(c) + 0x24)
++#define ATMEL_TC_IDR(c) (ATMEL_TC_COFFS(c) + 0x28)
++#define ATMEL_TC_IMR(c) (ATMEL_TC_COFFS(c) + 0x2c)
++#define ATMEL_TC_EMR(c) (ATMEL_TC_COFFS(c) + 0x30)
++
++/* Block registers */
++#define ATMEL_TC_BCR 0xc0
++#define ATMEL_TC_BMR 0xc4
++#define ATMEL_TC_QIER 0xc8
++#define ATMEL_TC_QIDR 0xcc
++#define ATMEL_TC_QIMR 0xd0
++#define ATMEL_TC_QISR 0xd4
++#define ATMEL_TC_FMR 0xd8
++#define ATMEL_TC_WPMR 0xe4
++
++/* CCR fields */
++#define ATMEL_TC_CCR_CLKEN BIT(0)
++#define ATMEL_TC_CCR_CLKDIS BIT(1)
++#define ATMEL_TC_CCR_SWTRG BIT(2)
++
++/* Common CMR fields */
++#define ATMEL_TC_CMR_TCLKS_MSK GENMASK(2, 0)
++#define ATMEL_TC_CMR_TCLK(x) (x)
++#define ATMEL_TC_CMR_XC(x) ((x) + 5)
++#define ATMEL_TC_CMR_CLKI BIT(3)
++#define ATMEL_TC_CMR_BURST_MSK GENMASK(5, 4)
++#define ATMEL_TC_CMR_BURST_XC(x) (((x) + 1) << 4)
++#define ATMEL_TC_CMR_WAVE BIT(15)
++
++/* Capture mode CMR fields */
++#define ATMEL_TC_CMR_LDBSTOP BIT(6)
++#define ATMEL_TC_CMR_LDBDIS BIT(7)
++#define ATMEL_TC_CMR_ETRGEDG_MSK GENMASK(9, 8)
++#define ATMEL_TC_CMR_ETRGEDG_NONE (0 << 8)
++#define ATMEL_TC_CMR_ETRGEDG_RISING (1 << 8)
++#define ATMEL_TC_CMR_ETRGEDG_FALLING (2 << 8)
++#define ATMEL_TC_CMR_ETRGEDG_BOTH (3 << 8)
++#define ATMEL_TC_CMR_ABETRG BIT(10)
++#define ATMEL_TC_CMR_CPCTRG BIT(14)
++#define ATMEL_TC_CMR_LDRA_MSK GENMASK(17, 16)
++#define ATMEL_TC_CMR_LDRA_NONE (0 << 16)
++#define ATMEL_TC_CMR_LDRA_RISING (1 << 16)
++#define ATMEL_TC_CMR_LDRA_FALLING (2 << 16)
++#define ATMEL_TC_CMR_LDRA_BOTH (3 << 16)
++#define ATMEL_TC_CMR_LDRB_MSK GENMASK(19, 18)
++#define ATMEL_TC_CMR_LDRB_NONE (0 << 18)
++#define ATMEL_TC_CMR_LDRB_RISING (1 << 18)
++#define ATMEL_TC_CMR_LDRB_FALLING (2 << 18)
++#define ATMEL_TC_CMR_LDRB_BOTH (3 << 18)
++#define ATMEL_TC_CMR_SBSMPLR_MSK GENMASK(22, 20)
++#define ATMEL_TC_CMR_SBSMPLR(x) ((x) << 20)
++
++/* Waveform mode CMR fields */
++#define ATMEL_TC_CMR_CPCSTOP BIT(6)
++#define ATMEL_TC_CMR_CPCDIS BIT(7)
++#define ATMEL_TC_CMR_EEVTEDG_MSK GENMASK(9, 8)
++#define ATMEL_TC_CMR_EEVTEDG_NONE (0 << 8)
++#define ATMEL_TC_CMR_EEVTEDG_RISING (1 << 8)
++#define ATMEL_TC_CMR_EEVTEDG_FALLING (2 << 8)
++#define ATMEL_TC_CMR_EEVTEDG_BOTH (3 << 8)
++#define ATMEL_TC_CMR_EEVT_MSK GENMASK(11, 10)
++#define ATMEL_TC_CMR_EEVT_XC(x) (((x) + 1) << 10)
++#define ATMEL_TC_CMR_ENETRG BIT(12)
++#define ATMEL_TC_CMR_WAVESEL_MSK GENMASK(14, 13)
++#define ATMEL_TC_CMR_WAVESEL_UP (0 << 13)
++#define ATMEL_TC_CMR_WAVESEL_UPDOWN (1 << 13)
++#define ATMEL_TC_CMR_WAVESEL_UPRC (2 << 13)
++#define ATMEL_TC_CMR_WAVESEL_UPDOWNRC (3 << 13)
++#define ATMEL_TC_CMR_ACPA_MSK GENMASK(17, 16)
++#define ATMEL_TC_CMR_ACPA(a) (ATMEL_TC_CMR_ACTION_##a << 16)
++#define ATMEL_TC_CMR_ACPC_MSK GENMASK(19, 18)
++#define ATMEL_TC_CMR_ACPC(a) (ATMEL_TC_CMR_ACTION_##a << 18)
++#define ATMEL_TC_CMR_AEEVT_MSK GENMASK(21, 20)
++#define ATMEL_TC_CMR_AEEVT(a) (ATMEL_TC_CMR_ACTION_##a << 20)
++#define ATMEL_TC_CMR_ASWTRG_MSK GENMASK(23, 22)
++#define ATMEL_TC_CMR_ASWTRG(a) (ATMEL_TC_CMR_ACTION_##a << 22)
++#define ATMEL_TC_CMR_BCPB_MSK GENMASK(25, 24)
++#define ATMEL_TC_CMR_BCPB(a) (ATMEL_TC_CMR_ACTION_##a << 24)
++#define ATMEL_TC_CMR_BCPC_MSK GENMASK(27, 26)
++#define ATMEL_TC_CMR_BCPC(a) (ATMEL_TC_CMR_ACTION_##a << 26)
++#define ATMEL_TC_CMR_BEEVT_MSK GENMASK(29, 28)
++#define ATMEL_TC_CMR_BEEVT(a) (ATMEL_TC_CMR_ACTION_##a << 28)
++#define ATMEL_TC_CMR_BSWTRG_MSK GENMASK(31, 30)
++#define ATMEL_TC_CMR_BSWTRG(a) (ATMEL_TC_CMR_ACTION_##a << 30)
++#define ATMEL_TC_CMR_ACTION_NONE 0
++#define ATMEL_TC_CMR_ACTION_SET 1
++#define ATMEL_TC_CMR_ACTION_CLEAR 2
++#define ATMEL_TC_CMR_ACTION_TOGGLE 3
++
++/* SMMR fields */
++#define ATMEL_TC_SMMR_GCEN BIT(0)
++#define ATMEL_TC_SMMR_DOWN BIT(1)
++
++/* SR/IER/IDR/IMR fields */
++#define ATMEL_TC_COVFS BIT(0)
++#define ATMEL_TC_LOVRS BIT(1)
++#define ATMEL_TC_CPAS BIT(2)
++#define ATMEL_TC_CPBS BIT(3)
++#define ATMEL_TC_CPCS BIT(4)
++#define ATMEL_TC_LDRAS BIT(5)
++#define ATMEL_TC_LDRBS BIT(6)
++#define ATMEL_TC_ETRGS BIT(7)
++#define ATMEL_TC_CLKSTA BIT(16)
++#define ATMEL_TC_MTIOA BIT(17)
++#define ATMEL_TC_MTIOB BIT(18)
++
++/* EMR fields */
++#define ATMEL_TC_EMR_TRIGSRCA_MSK GENMASK(1, 0)
++#define ATMEL_TC_EMR_TRIGSRCA_TIOA 0
++#define ATMEL_TC_EMR_TRIGSRCA_PWMX 1
++#define ATMEL_TC_EMR_TRIGSRCB_MSK GENMASK(5, 4)
++#define ATMEL_TC_EMR_TRIGSRCB_TIOB (0 << 4)
++#define ATMEL_TC_EMR_TRIGSRCB_PWM (1 << 4)
++#define ATMEL_TC_EMR_NOCLKDIV BIT(8)
++
++/* BCR fields */
++#define ATMEL_TC_BCR_SYNC BIT(0)
++
++/* BMR fields */
++#define ATMEL_TC_BMR_TCXC_MSK(c) GENMASK(((c) * 2) + 1, (c) * 2)
++#define ATMEL_TC_BMR_TCXC(x, c) ((x) << (2 * (c)))
++#define ATMEL_TC_BMR_QDEN BIT(8)
++#define ATMEL_TC_BMR_POSEN BIT(9)
++#define ATMEL_TC_BMR_SPEEDEN BIT(10)
++#define ATMEL_TC_BMR_QDTRANS BIT(11)
++#define ATMEL_TC_BMR_EDGPHA BIT(12)
++#define ATMEL_TC_BMR_INVA BIT(13)
++#define ATMEL_TC_BMR_INVB BIT(14)
++#define ATMEL_TC_BMR_INVIDX BIT(15)
++#define ATMEL_TC_BMR_SWAP BIT(16)
++#define ATMEL_TC_BMR_IDXPHB BIT(17)
++#define ATMEL_TC_BMR_AUTOC BIT(18)
++#define ATMEL_TC_MAXFILT_MSK GENMASK(25, 20)
++#define ATMEL_TC_MAXFILT(x) (((x) - 1) << 20)
++#define ATMEL_TC_MAXCMP_MSK GENMASK(29, 26)
++#define ATMEL_TC_MAXCMP(x) ((x) << 26)
++
++/* QEDC fields */
++#define ATMEL_TC_QEDC_IDX BIT(0)
++#define ATMEL_TC_QEDC_DIRCHG BIT(1)
++#define ATMEL_TC_QEDC_QERR BIT(2)
++#define ATMEL_TC_QEDC_MPE BIT(3)
++#define ATMEL_TC_QEDC_DIR BIT(8)
++
++/* FMR fields */
++#define ATMEL_TC_FMR_ENCF(x) BIT(x)
++
++/* WPMR fields */
++#define ATMEL_TC_WPMR_WPKEY (0x54494d << 8)
++#define ATMEL_TC_WPMR_WPEN BIT(0)
++
++static const u8 atmel_tc_divisors[5] = { 2, 8, 32, 128, 0, };
++
++static const struct of_device_id atmel_tcb_dt_ids[] = {
++ {
++ .compatible = "atmel,at91rm9200-tcb",
++ .data = (void *)16,
++ }, {
++ .compatible = "atmel,at91sam9x5-tcb",
++ .data = (void *)32,
++ }, {
++ /* sentinel */
++ }
++};
++
++#endif /* __SOC_ATMEL_TCB_H */
+--
+2.36.1
+
diff --git a/debian/patches-rt/0002-clocksource-drivers-Add-a-new-driver-for-the-Atmel-A.patch b/debian/patches-rt/0002-clocksource-drivers-Add-a-new-driver-for-the-Atmel-A.patch
new file mode 100644
index 000000000..6f8c04a6c
--- /dev/null
+++ b/debian/patches-rt/0002-clocksource-drivers-Add-a-new-driver-for-the-Atmel-A.patch
@@ -0,0 +1,485 @@
+From ad55e9aff22686f2ddf3d898aac7aef214a5ed82 Mon Sep 17 00:00:00 2001
+From: Alexandre Belloni <alexandre.belloni@bootlin.com>
+Date: Thu, 13 Sep 2018 13:30:19 +0200
+Subject: [PATCH 002/347] clocksource/drivers: Add a new driver for the Atmel
+ ARM TC blocks
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Add a driver for the Atmel Timer Counter Blocks. This driver provides a
+clocksource and two clockevent devices.
+
+One of the clockevent device is linked to the clocksource counter and so it
+will run at the same frequency. This will be used when there is only on TCB
+channel available for timers.
+
+The other clockevent device runs on a separate TCB channel when available.
+
+This driver uses regmap and syscon to be able to probe early in the boot
+and avoid having to switch on the TCB clocksource later. Using regmap also
+means that unused TCB channels may be used by other drivers (PWM for
+example). read/writel are still used to access channel specific registers
+to avoid the performance impact of regmap (mainly locking).
+
+Tested-by: Alexander Dahl <ada@thorsis.com>
+Tested-by: Andras Szemzo <szemzo.andras@gmail.com>
+Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/clocksource/Kconfig | 8 +
+ drivers/clocksource/Makefile | 3 +-
+ drivers/clocksource/timer-atmel-tcb.c | 410 ++++++++++++++++++++++++++
+ 3 files changed, 420 insertions(+), 1 deletion(-)
+ create mode 100644 drivers/clocksource/timer-atmel-tcb.c
+
+diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
+index 06504384c376..9422ea3a52ac 100644
+--- a/drivers/clocksource/Kconfig
++++ b/drivers/clocksource/Kconfig
+@@ -416,6 +416,14 @@ config ATMEL_ST
+ help
+ Support for the Atmel ST timer.
+
++config ATMEL_ARM_TCB_CLKSRC
++ bool "Microchip ARM TC Block" if COMPILE_TEST
++ select REGMAP_MMIO
++ depends on GENERIC_CLOCKEVENTS
++ help
++ This enables build of clocksource and clockevent driver for
++ the integrated Timer Counter Blocks in Microchip ARM SoCs.
++
+ config CLKSRC_EXYNOS_MCT
+ bool "Exynos multi core timer driver" if COMPILE_TEST
+ depends on ARM || ARM64
+diff --git a/drivers/clocksource/Makefile b/drivers/clocksource/Makefile
+index db51b2427e8a..0df9384a1230 100644
+--- a/drivers/clocksource/Makefile
++++ b/drivers/clocksource/Makefile
+@@ -3,7 +3,8 @@ obj-$(CONFIG_TIMER_OF) += timer-of.o
+ obj-$(CONFIG_TIMER_PROBE) += timer-probe.o
+ obj-$(CONFIG_ATMEL_PIT) += timer-atmel-pit.o
+ obj-$(CONFIG_ATMEL_ST) += timer-atmel-st.o
+-obj-$(CONFIG_ATMEL_TCB_CLKSRC) += tcb_clksrc.o
++obj-$(CONFIG_ATMEL_TCB_CLKSRC) += tcb_clksrc.o
++obj-$(CONFIG_ATMEL_ARM_TCB_CLKSRC) += timer-atmel-tcb.o
+ obj-$(CONFIG_X86_PM_TIMER) += acpi_pm.o
+ obj-$(CONFIG_SCx200HR_TIMER) += scx200_hrt.o
+ obj-$(CONFIG_CS5535_CLOCK_EVENT_SRC) += cs5535-clockevt.o
+diff --git a/drivers/clocksource/timer-atmel-tcb.c b/drivers/clocksource/timer-atmel-tcb.c
+new file mode 100644
+index 000000000000..21fbe430f91b
+--- /dev/null
++++ b/drivers/clocksource/timer-atmel-tcb.c
+@@ -0,0 +1,410 @@
++// SPDX-License-Identifier: GPL-2.0
++#include <linux/clk.h>
++#include <linux/clockchips.h>
++#include <linux/clocksource.h>
++#include <linux/interrupt.h>
++#include <linux/kernel.h>
++#include <linux/mfd/syscon.h>
++#include <linux/of_address.h>
++#include <linux/of_irq.h>
++#include <linux/regmap.h>
++#include <linux/sched_clock.h>
++#include <soc/at91/atmel_tcb.h>
++
++struct atmel_tcb_clksrc {
++ struct clocksource clksrc;
++ struct clock_event_device clkevt;
++ struct regmap *regmap;
++ void __iomem *base;
++ struct clk *clk[2];
++ char name[20];
++ int channels[2];
++ int bits;
++ int irq;
++ struct {
++ u32 cmr;
++ u32 imr;
++ u32 rc;
++ bool clken;
++ } cache[2];
++ u32 bmr_cache;
++ bool registered;
++ bool clk_enabled;
++};
++
++static struct atmel_tcb_clksrc tc;
++
++static struct clk *tcb_clk_get(struct device_node *node, int channel)
++{
++ struct clk *clk;
++ char clk_name[] = "t0_clk";
++
++ clk_name[1] += channel;
++ clk = of_clk_get_by_name(node->parent, clk_name);
++ if (!IS_ERR(clk))
++ return clk;
++
++ return of_clk_get_by_name(node->parent, "t0_clk");
++}
++
++/*
++ * Clocksource and clockevent using the same channel(s)
++ */
++static u64 tc_get_cycles(struct clocksource *cs)
++{
++ u32 lower, upper;
++
++ do {
++ upper = readl_relaxed(tc.base + ATMEL_TC_CV(tc.channels[1]));
++ lower = readl_relaxed(tc.base + ATMEL_TC_CV(tc.channels[0]));
++ } while (upper != readl_relaxed(tc.base + ATMEL_TC_CV(tc.channels[1])));
++
++ return (upper << 16) | lower;
++}
++
++static u64 tc_get_cycles32(struct clocksource *cs)
++{
++ return readl_relaxed(tc.base + ATMEL_TC_CV(tc.channels[0]));
++}
++
++static u64 notrace tc_sched_clock_read(void)
++{
++ return tc_get_cycles(&tc.clksrc);
++}
++
++static u64 notrace tc_sched_clock_read32(void)
++{
++ return tc_get_cycles32(&tc.clksrc);
++}
++
++static int tcb_clkevt_next_event(unsigned long delta,
++ struct clock_event_device *d)
++{
++ u32 old, next, cur;
++
++ old = readl(tc.base + ATMEL_TC_CV(tc.channels[0]));
++ next = old + delta;
++ writel(next, tc.base + ATMEL_TC_RC(tc.channels[0]));
++ cur = readl(tc.base + ATMEL_TC_CV(tc.channels[0]));
++
++ /* check whether the delta elapsed while setting the register */
++ if ((next < old && cur < old && cur > next) ||
++ (next > old && (cur < old || cur > next))) {
++ /*
++ * Clear the CPCS bit in the status register to avoid
++ * generating a spurious interrupt next time a valid
++ * timer event is configured.
++ */
++ old = readl(tc.base + ATMEL_TC_SR(tc.channels[0]));
++ return -ETIME;
++ }
++
++ writel(ATMEL_TC_CPCS, tc.base + ATMEL_TC_IER(tc.channels[0]));
++
++ return 0;
++}
++
++static irqreturn_t tc_clkevt_irq(int irq, void *handle)
++{
++ unsigned int sr;
++
++ sr = readl(tc.base + ATMEL_TC_SR(tc.channels[0]));
++ if (sr & ATMEL_TC_CPCS) {
++ tc.clkevt.event_handler(&tc.clkevt);
++ return IRQ_HANDLED;
++ }
++
++ return IRQ_NONE;
++}
++
++static int tcb_clkevt_oneshot(struct clock_event_device *dev)
++{
++ if (clockevent_state_oneshot(dev))
++ return 0;
++
++ /*
++ * Because both clockevent devices may share the same IRQ, we don't want
++ * the less likely one to stay requested
++ */
++ return request_irq(tc.irq, tc_clkevt_irq, IRQF_TIMER | IRQF_SHARED,
++ tc.name, &tc);
++}
++
++static int tcb_clkevt_shutdown(struct clock_event_device *dev)
++{
++ writel(0xff, tc.base + ATMEL_TC_IDR(tc.channels[0]));
++ if (tc.bits == 16)
++ writel(0xff, tc.base + ATMEL_TC_IDR(tc.channels[1]));
++
++ if (!clockevent_state_detached(dev))
++ free_irq(tc.irq, &tc);
++
++ return 0;
++}
++
++static void __init tcb_setup_dual_chan(struct atmel_tcb_clksrc *tc,
++ int mck_divisor_idx)
++{
++ /* first channel: waveform mode, input mclk/8, clock TIOA on overflow */
++ writel(mck_divisor_idx /* likely divide-by-8 */
++ | ATMEL_TC_CMR_WAVE
++ | ATMEL_TC_CMR_WAVESEL_UP /* free-run */
++ | ATMEL_TC_CMR_ACPA(SET) /* TIOA rises at 0 */
++ | ATMEL_TC_CMR_ACPC(CLEAR), /* (duty cycle 50%) */
++ tc->base + ATMEL_TC_CMR(tc->channels[0]));
++ writel(0x0000, tc->base + ATMEL_TC_RA(tc->channels[0]));
++ writel(0x8000, tc->base + ATMEL_TC_RC(tc->channels[0]));
++ writel(0xff, tc->base + ATMEL_TC_IDR(tc->channels[0])); /* no irqs */
++ writel(ATMEL_TC_CCR_CLKEN, tc->base + ATMEL_TC_CCR(tc->channels[0]));
++
++ /* second channel: waveform mode, input TIOA */
++ writel(ATMEL_TC_CMR_XC(tc->channels[1]) /* input: TIOA */
++ | ATMEL_TC_CMR_WAVE
++ | ATMEL_TC_CMR_WAVESEL_UP, /* free-run */
++ tc->base + ATMEL_TC_CMR(tc->channels[1]));
++ writel(0xff, tc->base + ATMEL_TC_IDR(tc->channels[1])); /* no irqs */
++ writel(ATMEL_TC_CCR_CLKEN, tc->base + ATMEL_TC_CCR(tc->channels[1]));
++
++ /* chain both channel, we assume the previous channel */
++ regmap_write(tc->regmap, ATMEL_TC_BMR,
++ ATMEL_TC_BMR_TCXC(1 + tc->channels[1], tc->channels[1]));
++ /* then reset all the timers */
++ regmap_write(tc->regmap, ATMEL_TC_BCR, ATMEL_TC_BCR_SYNC);
++}
++
++static void __init tcb_setup_single_chan(struct atmel_tcb_clksrc *tc,
++ int mck_divisor_idx)
++{
++ /* channel 0: waveform mode, input mclk/8 */
++ writel(mck_divisor_idx /* likely divide-by-8 */
++ | ATMEL_TC_CMR_WAVE
++ | ATMEL_TC_CMR_WAVESEL_UP, /* free-run */
++ tc->base + ATMEL_TC_CMR(tc->channels[0]));
++ writel(0xff, tc->base + ATMEL_TC_IDR(tc->channels[0])); /* no irqs */
++ writel(ATMEL_TC_CCR_CLKEN, tc->base + ATMEL_TC_CCR(tc->channels[0]));
++
++ /* then reset all the timers */
++ regmap_write(tc->regmap, ATMEL_TC_BCR, ATMEL_TC_BCR_SYNC);
++}
++
++static void tc_clksrc_suspend(struct clocksource *cs)
++{
++ int i;
++
++ for (i = 0; i < 1 + (tc.bits == 16); i++) {
++ tc.cache[i].cmr = readl(tc.base + ATMEL_TC_CMR(tc.channels[i]));
++ tc.cache[i].imr = readl(tc.base + ATMEL_TC_IMR(tc.channels[i]));
++ tc.cache[i].rc = readl(tc.base + ATMEL_TC_RC(tc.channels[i]));
++ tc.cache[i].clken = !!(readl(tc.base +
++ ATMEL_TC_SR(tc.channels[i])) &
++ ATMEL_TC_CLKSTA);
++ }
++
++ if (tc.bits == 16)
++ regmap_read(tc.regmap, ATMEL_TC_BMR, &tc.bmr_cache);
++}
++
++static void tc_clksrc_resume(struct clocksource *cs)
++{
++ int i;
++
++ for (i = 0; i < 1 + (tc.bits == 16); i++) {
++ /* Restore registers for the channel, RA and RB are not used */
++ writel(tc.cache[i].cmr, tc.base + ATMEL_TC_CMR(tc.channels[i]));
++ writel(tc.cache[i].rc, tc.base + ATMEL_TC_RC(tc.channels[i]));
++ writel(0, tc.base + ATMEL_TC_RA(tc.channels[i]));
++ writel(0, tc.base + ATMEL_TC_RB(tc.channels[i]));
++ /* Disable all the interrupts */
++ writel(0xff, tc.base + ATMEL_TC_IDR(tc.channels[i]));
++ /* Reenable interrupts that were enabled before suspending */
++ writel(tc.cache[i].imr, tc.base + ATMEL_TC_IER(tc.channels[i]));
++
++ /* Start the clock if it was used */
++ if (tc.cache[i].clken)
++ writel(ATMEL_TC_CCR_CLKEN, tc.base +
++ ATMEL_TC_CCR(tc.channels[i]));
++ }
++
++ /* in case of dual channel, chain channels */
++ if (tc.bits == 16)
++ regmap_write(tc.regmap, ATMEL_TC_BMR, tc.bmr_cache);
++ /* Finally, trigger all the channels*/
++ regmap_write(tc.regmap, ATMEL_TC_BCR, ATMEL_TC_BCR_SYNC);
++}
++
++static int __init tcb_clksrc_register(struct device_node *node,
++ struct regmap *regmap, void __iomem *base,
++ int channel, int channel1, int irq,
++ int bits)
++{
++ u32 rate, divided_rate = 0;
++ int best_divisor_idx = -1;
++ int i, err = -1;
++ u64 (*tc_sched_clock)(void);
++
++ tc.regmap = regmap;
++ tc.base = base;
++ tc.channels[0] = channel;
++ tc.channels[1] = channel1;
++ tc.irq = irq;
++ tc.bits = bits;
++
++ tc.clk[0] = tcb_clk_get(node, tc.channels[0]);
++ if (IS_ERR(tc.clk[0]))
++ return PTR_ERR(tc.clk[0]);
++ err = clk_prepare_enable(tc.clk[0]);
++ if (err) {
++ pr_debug("can't enable T0 clk\n");
++ goto err_clk;
++ }
++
++ /* How fast will we be counting? Pick something over 5 MHz. */
++ rate = (u32)clk_get_rate(tc.clk[0]);
++ for (i = 0; i < 5; i++) {
++ unsigned int divisor = atmel_tc_divisors[i];
++ unsigned int tmp;
++
++ if (!divisor)
++ continue;
++
++ tmp = rate / divisor;
++ pr_debug("TC: %u / %-3u [%d] --> %u\n", rate, divisor, i, tmp);
++ if (best_divisor_idx > 0) {
++ if (tmp < 5 * 1000 * 1000)
++ continue;
++ }
++ divided_rate = tmp;
++ best_divisor_idx = i;
++ }
++
++ if (tc.bits == 32) {
++ tc.clksrc.read = tc_get_cycles32;
++ tcb_setup_single_chan(&tc, best_divisor_idx);
++ tc_sched_clock = tc_sched_clock_read32;
++ snprintf(tc.name, sizeof(tc.name), "%s:%d",
++ kbasename(node->parent->full_name), tc.channels[0]);
++ } else {
++ tc.clk[1] = tcb_clk_get(node, tc.channels[1]);
++ if (IS_ERR(tc.clk[1]))
++ goto err_disable_t0;
++
++ err = clk_prepare_enable(tc.clk[1]);
++ if (err) {
++ pr_debug("can't enable T1 clk\n");
++ goto err_clk1;
++ }
++ tc.clksrc.read = tc_get_cycles,
++ tcb_setup_dual_chan(&tc, best_divisor_idx);
++ tc_sched_clock = tc_sched_clock_read;
++ snprintf(tc.name, sizeof(tc.name), "%s:%d,%d",
++ kbasename(node->parent->full_name), tc.channels[0],
++ tc.channels[1]);
++ }
++
++ pr_debug("%s at %d.%03d MHz\n", tc.name,
++ divided_rate / 1000000,
++ ((divided_rate + 500000) % 1000000) / 1000);
++
++ tc.clksrc.name = tc.name;
++ tc.clksrc.suspend = tc_clksrc_suspend;
++ tc.clksrc.resume = tc_clksrc_resume;
++ tc.clksrc.rating = 200;
++ tc.clksrc.mask = CLOCKSOURCE_MASK(32);
++ tc.clksrc.flags = CLOCK_SOURCE_IS_CONTINUOUS;
++
++ err = clocksource_register_hz(&tc.clksrc, divided_rate);
++ if (err)
++ goto err_disable_t1;
++
++ sched_clock_register(tc_sched_clock, 32, divided_rate);
++
++ tc.registered = true;
++
++ /* Set up and register clockevents */
++ tc.clkevt.name = tc.name;
++ tc.clkevt.cpumask = cpumask_of(0);
++ tc.clkevt.set_next_event = tcb_clkevt_next_event;
++ tc.clkevt.set_state_oneshot = tcb_clkevt_oneshot;
++ tc.clkevt.set_state_shutdown = tcb_clkevt_shutdown;
++ tc.clkevt.features = CLOCK_EVT_FEAT_ONESHOT;
++ tc.clkevt.rating = 125;
++
++ clockevents_config_and_register(&tc.clkevt, divided_rate, 1,
++ BIT(tc.bits) - 1);
++
++ return 0;
++
++err_disable_t1:
++ if (tc.bits == 16)
++ clk_disable_unprepare(tc.clk[1]);
++
++err_clk1:
++ if (tc.bits == 16)
++ clk_put(tc.clk[1]);
++
++err_disable_t0:
++ clk_disable_unprepare(tc.clk[0]);
++
++err_clk:
++ clk_put(tc.clk[0]);
++
++ pr_err("%s: unable to register clocksource/clockevent\n",
++ tc.clksrc.name);
++
++ return err;
++}
++
++static int __init tcb_clksrc_init(struct device_node *node)
++{
++ const struct of_device_id *match;
++ struct regmap *regmap;
++ void __iomem *tcb_base;
++ u32 channel;
++ int irq, err, chan1 = -1;
++ unsigned bits;
++
++ if (tc.registered)
++ return -ENODEV;
++
++ /*
++ * The regmap has to be used to access registers that are shared
++ * between channels on the same TCB but we keep direct IO access for
++ * the counters to avoid the impact on performance
++ */
++ regmap = syscon_node_to_regmap(node->parent);
++ if (IS_ERR(regmap))
++ return PTR_ERR(regmap);
++
++ tcb_base = of_iomap(node->parent, 0);
++ if (!tcb_base) {
++ pr_err("%s +%d %s\n", __FILE__, __LINE__, __func__);
++ return -ENXIO;
++ }
++
++ match = of_match_node(atmel_tcb_dt_ids, node->parent);
++ bits = (uintptr_t)match->data;
++
++ err = of_property_read_u32_index(node, "reg", 0, &channel);
++ if (err)
++ return err;
++
++ irq = of_irq_get(node->parent, channel);
++ if (irq < 0) {
++ irq = of_irq_get(node->parent, 0);
++ if (irq < 0)
++ return irq;
++ }
++
++ if (bits == 16) {
++ of_property_read_u32_index(node, "reg", 1, &chan1);
++ if (chan1 == -1) {
++ pr_err("%s: clocksource needs two channels\n",
++ node->parent->full_name);
++ return -EINVAL;
++ }
++ }
++
++ return tcb_clksrc_register(node, regmap, tcb_base, channel, chan1, irq,
++ bits);
++}
++TIMER_OF_DECLARE(atmel_tcb_clksrc, "atmel,tcb-timer", tcb_clksrc_init);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0003-clocksource-drivers-timer-atmel-tcb-add-clockevent-d.patch b/debian/patches-rt/0003-clocksource-drivers-timer-atmel-tcb-add-clockevent-d.patch
new file mode 100644
index 000000000..4d1f366c3
--- /dev/null
+++ b/debian/patches-rt/0003-clocksource-drivers-timer-atmel-tcb-add-clockevent-d.patch
@@ -0,0 +1,271 @@
+From fd06bfd5716c6f1f5905db9be97507fda425080c Mon Sep 17 00:00:00 2001
+From: Alexandre Belloni <alexandre.belloni@bootlin.com>
+Date: Thu, 13 Sep 2018 13:30:20 +0200
+Subject: [PATCH 003/347] clocksource/drivers: timer-atmel-tcb: add clockevent
+ device on separate channel
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Add an other clockevent device that uses a separate TCB channel when
+available.
+
+Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/clocksource/timer-atmel-tcb.c | 217 +++++++++++++++++++++++++-
+ 1 file changed, 212 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/clocksource/timer-atmel-tcb.c b/drivers/clocksource/timer-atmel-tcb.c
+index 21fbe430f91b..63ce3b69338a 100644
+--- a/drivers/clocksource/timer-atmel-tcb.c
++++ b/drivers/clocksource/timer-atmel-tcb.c
+@@ -32,7 +32,7 @@ struct atmel_tcb_clksrc {
+ bool clk_enabled;
+ };
+
+-static struct atmel_tcb_clksrc tc;
++static struct atmel_tcb_clksrc tc, tce;
+
+ static struct clk *tcb_clk_get(struct device_node *node, int channel)
+ {
+@@ -47,6 +47,203 @@ static struct clk *tcb_clk_get(struct device_node *node, int channel)
+ return of_clk_get_by_name(node->parent, "t0_clk");
+ }
+
++/*
++ * Clockevent device using its own channel
++ */
++
++static void tc_clkevt2_clk_disable(struct clock_event_device *d)
++{
++ clk_disable(tce.clk[0]);
++ tce.clk_enabled = false;
++}
++
++static void tc_clkevt2_clk_enable(struct clock_event_device *d)
++{
++ if (tce.clk_enabled)
++ return;
++ clk_enable(tce.clk[0]);
++ tce.clk_enabled = true;
++}
++
++static int tc_clkevt2_stop(struct clock_event_device *d)
++{
++ writel(0xff, tce.base + ATMEL_TC_IDR(tce.channels[0]));
++ writel(ATMEL_TC_CCR_CLKDIS, tce.base + ATMEL_TC_CCR(tce.channels[0]));
++
++ return 0;
++}
++
++static int tc_clkevt2_shutdown(struct clock_event_device *d)
++{
++ tc_clkevt2_stop(d);
++ if (!clockevent_state_detached(d))
++ tc_clkevt2_clk_disable(d);
++
++ return 0;
++}
++
++/* For now, we always use the 32K clock ... this optimizes for NO_HZ,
++ * because using one of the divided clocks would usually mean the
++ * tick rate can never be less than several dozen Hz (vs 0.5 Hz).
++ *
++ * A divided clock could be good for high resolution timers, since
++ * 30.5 usec resolution can seem "low".
++ */
++static int tc_clkevt2_set_oneshot(struct clock_event_device *d)
++{
++ if (clockevent_state_oneshot(d) || clockevent_state_periodic(d))
++ tc_clkevt2_stop(d);
++
++ tc_clkevt2_clk_enable(d);
++
++ /* slow clock, count up to RC, then irq and stop */
++ writel(ATMEL_TC_CMR_TCLK(4) | ATMEL_TC_CMR_CPCSTOP |
++ ATMEL_TC_CMR_WAVE | ATMEL_TC_CMR_WAVESEL_UPRC,
++ tce.base + ATMEL_TC_CMR(tce.channels[0]));
++ writel(ATMEL_TC_CPCS, tce.base + ATMEL_TC_IER(tce.channels[0]));
++
++ return 0;
++}
++
++static int tc_clkevt2_set_periodic(struct clock_event_device *d)
++{
++ if (clockevent_state_oneshot(d) || clockevent_state_periodic(d))
++ tc_clkevt2_stop(d);
++
++ /* By not making the gentime core emulate periodic mode on top
++ * of oneshot, we get lower overhead and improved accuracy.
++ */
++ tc_clkevt2_clk_enable(d);
++
++ /* slow clock, count up to RC, then irq and restart */
++ writel(ATMEL_TC_CMR_TCLK(4) | ATMEL_TC_CMR_WAVE |
++ ATMEL_TC_CMR_WAVESEL_UPRC,
++ tce.base + ATMEL_TC_CMR(tce.channels[0]));
++ writel((32768 + HZ / 2) / HZ, tce.base + ATMEL_TC_RC(tce.channels[0]));
++
++ /* Enable clock and interrupts on RC compare */
++ writel(ATMEL_TC_CPCS, tce.base + ATMEL_TC_IER(tce.channels[0]));
++ writel(ATMEL_TC_CCR_CLKEN | ATMEL_TC_CCR_SWTRG,
++ tce.base + ATMEL_TC_CCR(tce.channels[0]));
++
++ return 0;
++}
++
++static int tc_clkevt2_next_event(unsigned long delta,
++ struct clock_event_device *d)
++{
++ writel(delta, tce.base + ATMEL_TC_RC(tce.channels[0]));
++ writel(ATMEL_TC_CCR_CLKEN | ATMEL_TC_CCR_SWTRG,
++ tce.base + ATMEL_TC_CCR(tce.channels[0]));
++
++ return 0;
++}
++
++static irqreturn_t tc_clkevt2_irq(int irq, void *handle)
++{
++ unsigned int sr;
++
++ sr = readl(tce.base + ATMEL_TC_SR(tce.channels[0]));
++ if (sr & ATMEL_TC_CPCS) {
++ tce.clkevt.event_handler(&tce.clkevt);
++ return IRQ_HANDLED;
++ }
++
++ return IRQ_NONE;
++}
++
++static void tc_clkevt2_suspend(struct clock_event_device *d)
++{
++ tce.cache[0].cmr = readl(tce.base + ATMEL_TC_CMR(tce.channels[0]));
++ tce.cache[0].imr = readl(tce.base + ATMEL_TC_IMR(tce.channels[0]));
++ tce.cache[0].rc = readl(tce.base + ATMEL_TC_RC(tce.channels[0]));
++ tce.cache[0].clken = !!(readl(tce.base + ATMEL_TC_SR(tce.channels[0])) &
++ ATMEL_TC_CLKSTA);
++}
++
++static void tc_clkevt2_resume(struct clock_event_device *d)
++{
++ /* Restore registers for the channel, RA and RB are not used */
++ writel(tce.cache[0].cmr, tc.base + ATMEL_TC_CMR(tce.channels[0]));
++ writel(tce.cache[0].rc, tc.base + ATMEL_TC_RC(tce.channels[0]));
++ writel(0, tc.base + ATMEL_TC_RA(tce.channels[0]));
++ writel(0, tc.base + ATMEL_TC_RB(tce.channels[0]));
++ /* Disable all the interrupts */
++ writel(0xff, tc.base + ATMEL_TC_IDR(tce.channels[0]));
++ /* Reenable interrupts that were enabled before suspending */
++ writel(tce.cache[0].imr, tc.base + ATMEL_TC_IER(tce.channels[0]));
++
++ /* Start the clock if it was used */
++ if (tce.cache[0].clken)
++ writel(ATMEL_TC_CCR_CLKEN | ATMEL_TC_CCR_SWTRG,
++ tc.base + ATMEL_TC_CCR(tce.channels[0]));
++}
++
++static int __init tc_clkevt_register(struct device_node *node,
++ struct regmap *regmap, void __iomem *base,
++ int channel, int irq, int bits)
++{
++ int ret;
++ struct clk *slow_clk;
++
++ tce.regmap = regmap;
++ tce.base = base;
++ tce.channels[0] = channel;
++ tce.irq = irq;
++
++ slow_clk = of_clk_get_by_name(node->parent, "slow_clk");
++ if (IS_ERR(slow_clk))
++ return PTR_ERR(slow_clk);
++
++ ret = clk_prepare_enable(slow_clk);
++ if (ret)
++ return ret;
++
++ tce.clk[0] = tcb_clk_get(node, tce.channels[0]);
++ if (IS_ERR(tce.clk[0])) {
++ ret = PTR_ERR(tce.clk[0]);
++ goto err_slow;
++ }
++
++ snprintf(tce.name, sizeof(tce.name), "%s:%d",
++ kbasename(node->parent->full_name), channel);
++ tce.clkevt.cpumask = cpumask_of(0);
++ tce.clkevt.name = tce.name;
++ tce.clkevt.set_next_event = tc_clkevt2_next_event,
++ tce.clkevt.set_state_shutdown = tc_clkevt2_shutdown,
++ tce.clkevt.set_state_periodic = tc_clkevt2_set_periodic,
++ tce.clkevt.set_state_oneshot = tc_clkevt2_set_oneshot,
++ tce.clkevt.suspend = tc_clkevt2_suspend,
++ tce.clkevt.resume = tc_clkevt2_resume,
++ tce.clkevt.features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT;
++ tce.clkevt.rating = 140;
++
++ /* try to enable clk to avoid future errors in mode change */
++ ret = clk_prepare_enable(tce.clk[0]);
++ if (ret)
++ goto err_slow;
++ clk_disable(tce.clk[0]);
++
++ clockevents_config_and_register(&tce.clkevt, 32768, 1,
++ CLOCKSOURCE_MASK(bits));
++
++ ret = request_irq(tce.irq, tc_clkevt2_irq, IRQF_TIMER | IRQF_SHARED,
++ tce.clkevt.name, &tce);
++ if (ret)
++ goto err_clk;
++
++ tce.registered = true;
++
++ return 0;
++
++err_clk:
++ clk_unprepare(tce.clk[0]);
++err_slow:
++ clk_disable_unprepare(slow_clk);
++
++ return ret;
++}
++
+ /*
+ * Clocksource and clockevent using the same channel(s)
+ */
+@@ -363,7 +560,7 @@ static int __init tcb_clksrc_init(struct device_node *node)
+ int irq, err, chan1 = -1;
+ unsigned bits;
+
+- if (tc.registered)
++ if (tc.registered && tce.registered)
+ return -ENODEV;
+
+ /*
+@@ -395,12 +592,22 @@ static int __init tcb_clksrc_init(struct device_node *node)
+ return irq;
+ }
+
++ if (tc.registered)
++ return tc_clkevt_register(node, regmap, tcb_base, channel, irq,
++ bits);
++
+ if (bits == 16) {
+ of_property_read_u32_index(node, "reg", 1, &chan1);
+ if (chan1 == -1) {
+- pr_err("%s: clocksource needs two channels\n",
+- node->parent->full_name);
+- return -EINVAL;
++ if (tce.registered) {
++ pr_err("%s: clocksource needs two channels\n",
++ node->parent->full_name);
++ return -EINVAL;
++ } else {
++ return tc_clkevt_register(node, regmap,
++ tcb_base, channel,
++ irq, bits);
++ }
+ }
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0004-clocksource-drivers-atmel-pit-make-option-silent.patch b/debian/patches-rt/0004-clocksource-drivers-atmel-pit-make-option-silent.patch
new file mode 100644
index 000000000..c506f1465
--- /dev/null
+++ b/debian/patches-rt/0004-clocksource-drivers-atmel-pit-make-option-silent.patch
@@ -0,0 +1,36 @@
+From e8dbe99dae1d78e7094d87357a904c2e30572fc3 Mon Sep 17 00:00:00 2001
+From: Alexandre Belloni <alexandre.belloni@bootlin.com>
+Date: Thu, 13 Sep 2018 13:30:21 +0200
+Subject: [PATCH 004/347] clocksource/drivers: atmel-pit: make option silent
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+To conform with the other option, make the ATMEL_PIT option silent so it
+can be selected from the platform
+
+Tested-by: Alexander Dahl <ada@thorsis.com>
+Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/clocksource/Kconfig | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
+index 9422ea3a52ac..1dbd40f6c01d 100644
+--- a/drivers/clocksource/Kconfig
++++ b/drivers/clocksource/Kconfig
+@@ -405,8 +405,11 @@ config ARMV7M_SYSTICK
+ This options enables support for the ARMv7M system timer unit
+
+ config ATMEL_PIT
++ bool "Microchip ARM Periodic Interval Timer (PIT)" if COMPILE_TEST
+ select TIMER_OF if OF
+- def_bool SOC_AT91SAM9 || SOC_SAMA5
++ help
++ This enables build of clocksource and clockevent driver for
++ the integrated PIT in Microchip ARM SoCs.
+
+ config ATMEL_ST
+ bool "Atmel ST timer support" if COMPILE_TEST
+--
+2.36.1
+
diff --git a/debian/patches-rt/0005-ARM-at91-Implement-clocksource-selection.patch b/debian/patches-rt/0005-ARM-at91-Implement-clocksource-selection.patch
new file mode 100644
index 000000000..561c3c162
--- /dev/null
+++ b/debian/patches-rt/0005-ARM-at91-Implement-clocksource-selection.patch
@@ -0,0 +1,55 @@
+From 4071bcd6aab6d507cb20f20cfc9f111cfa5a406f Mon Sep 17 00:00:00 2001
+From: Alexandre Belloni <alexandre.belloni@bootlin.com>
+Date: Thu, 13 Sep 2018 13:30:22 +0200
+Subject: [PATCH 005/347] ARM: at91: Implement clocksource selection
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Allow selecting and unselecting the PIT clocksource driver so it doesn't
+have to be compile when unused.
+
+Tested-by: Alexander Dahl <ada@thorsis.com>
+Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/arm/mach-at91/Kconfig | 25 +++++++++++++++++++++++++
+ 1 file changed, 25 insertions(+)
+
+diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
+index 903f23c309df..fa493a86e2bb 100644
+--- a/arch/arm/mach-at91/Kconfig
++++ b/arch/arm/mach-at91/Kconfig
+@@ -107,6 +107,31 @@ config SOC_AT91SAM9
+ AT91SAM9X35
+ AT91SAM9XE
+
++comment "Clocksource driver selection"
++
++config ATMEL_CLOCKSOURCE_PIT
++ bool "Periodic Interval Timer (PIT) support"
++ depends on SOC_AT91SAM9 || SOC_SAMA5
++ default SOC_AT91SAM9 || SOC_SAMA5
++ select ATMEL_PIT
++ help
++ Select this to get a clocksource based on the Atmel Periodic Interval
++ Timer. It has a relatively low resolution and the TC Block clocksource
++ should be preferred.
++
++config ATMEL_CLOCKSOURCE_TCB
++ bool "Timer Counter Blocks (TCB) support"
++ depends on SOC_AT91RM9200 || SOC_AT91SAM9 || SOC_SAMA5 || COMPILE_TEST
++ default SOC_AT91RM9200 || SOC_AT91SAM9 || SOC_SAMA5
++ depends on !ATMEL_TCLIB
++ select ATMEL_ARM_TCB_CLKSRC
++ help
++ Select this to get a high precision clocksource based on a
++ TC block with a 5+ MHz base clock rate.
++ On platforms with 16-bit counters, two timer channels are combined
++ to make a single 32-bit timer.
++ It can also be used as a clock event device supporting oneshot mode.
++
+ config HAVE_AT91_UTMI
+ bool
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0006-ARM-configs-at91-use-new-TCB-timer-driver.patch b/debian/patches-rt/0006-ARM-configs-at91-use-new-TCB-timer-driver.patch
new file mode 100644
index 000000000..8d93a1f2d
--- /dev/null
+++ b/debian/patches-rt/0006-ARM-configs-at91-use-new-TCB-timer-driver.patch
@@ -0,0 +1,43 @@
+From 39aa1ef47843270c427a2c8f4d787ca29d944140 Mon Sep 17 00:00:00 2001
+From: Alexandre Belloni <alexandre.belloni@bootlin.com>
+Date: Thu, 13 Sep 2018 13:30:23 +0200
+Subject: [PATCH 006/347] ARM: configs: at91: use new TCB timer driver
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Unselecting ATMEL_TCLIB switches the TCB timer driver from tcb_clksrc to
+timer-atmel-tcb.
+
+Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/arm/configs/at91_dt_defconfig | 1 -
+ arch/arm/configs/sama5_defconfig | 1 -
+ 2 files changed, 2 deletions(-)
+
+diff --git a/arch/arm/configs/at91_dt_defconfig b/arch/arm/configs/at91_dt_defconfig
+index e4b1be66b3f5..09f262e59fef 100644
+--- a/arch/arm/configs/at91_dt_defconfig
++++ b/arch/arm/configs/at91_dt_defconfig
+@@ -64,7 +64,6 @@ CONFIG_BLK_DEV_LOOP=y
+ CONFIG_BLK_DEV_RAM=y
+ CONFIG_BLK_DEV_RAM_COUNT=4
+ CONFIG_BLK_DEV_RAM_SIZE=8192
+-CONFIG_ATMEL_TCLIB=y
+ CONFIG_ATMEL_SSC=y
+ CONFIG_SCSI=y
+ CONFIG_BLK_DEV_SD=y
+diff --git a/arch/arm/configs/sama5_defconfig b/arch/arm/configs/sama5_defconfig
+index 2080025556b5..f2bbc6339ca6 100644
+--- a/arch/arm/configs/sama5_defconfig
++++ b/arch/arm/configs/sama5_defconfig
+@@ -75,7 +75,6 @@ CONFIG_BLK_DEV_LOOP=y
+ CONFIG_BLK_DEV_RAM=y
+ CONFIG_BLK_DEV_RAM_COUNT=4
+ CONFIG_BLK_DEV_RAM_SIZE=8192
+-CONFIG_ATMEL_TCLIB=y
+ CONFIG_ATMEL_SSC=y
+ CONFIG_EEPROM_AT24=y
+ CONFIG_SCSI=y
+--
+2.36.1
+
diff --git a/debian/patches-rt/0007-ARM-configs-at91-unselect-PIT.patch b/debian/patches-rt/0007-ARM-configs-at91-unselect-PIT.patch
new file mode 100644
index 000000000..a2e5c5d39
--- /dev/null
+++ b/debian/patches-rt/0007-ARM-configs-at91-unselect-PIT.patch
@@ -0,0 +1,44 @@
+From 4e7ea26bf6a9dc935b6db1085488bde47f63f68e Mon Sep 17 00:00:00 2001
+From: Alexandre Belloni <alexandre.belloni@bootlin.com>
+Date: Thu, 13 Sep 2018 13:30:24 +0200
+Subject: [PATCH 007/347] ARM: configs: at91: unselect PIT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The PIT is not required anymore to successfully boot and may actually harm
+in case preempt-rt is used because the PIT interrupt is shared.
+Disable it so the TCB clocksource is used.
+
+Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/arm/configs/at91_dt_defconfig | 1 +
+ arch/arm/configs/sama5_defconfig | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/arch/arm/configs/at91_dt_defconfig b/arch/arm/configs/at91_dt_defconfig
+index 09f262e59fef..f4b253bd05ed 100644
+--- a/arch/arm/configs/at91_dt_defconfig
++++ b/arch/arm/configs/at91_dt_defconfig
+@@ -19,6 +19,7 @@ CONFIG_ARCH_MULTI_V5=y
+ CONFIG_ARCH_AT91=y
+ CONFIG_SOC_AT91RM9200=y
+ CONFIG_SOC_AT91SAM9=y
++# CONFIG_ATMEL_CLOCKSOURCE_PIT is not set
+ CONFIG_AEABI=y
+ CONFIG_UACCESS_WITH_MEMCPY=y
+ CONFIG_ZBOOT_ROM_TEXT=0x0
+diff --git a/arch/arm/configs/sama5_defconfig b/arch/arm/configs/sama5_defconfig
+index f2bbc6339ca6..be92871ab155 100644
+--- a/arch/arm/configs/sama5_defconfig
++++ b/arch/arm/configs/sama5_defconfig
+@@ -20,6 +20,7 @@ CONFIG_ARCH_AT91=y
+ CONFIG_SOC_SAMA5D2=y
+ CONFIG_SOC_SAMA5D3=y
+ CONFIG_SOC_SAMA5D4=y
++# CONFIG_ATMEL_CLOCKSOURCE_PIT is not set
+ CONFIG_AEABI=y
+ CONFIG_UACCESS_WITH_MEMCPY=y
+ CONFIG_ZBOOT_ROM_TEXT=0x0
+--
+2.36.1
+
diff --git a/debian/patches-rt/0008-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch b/debian/patches-rt/0008-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch
new file mode 100644
index 000000000..ebeacb299
--- /dev/null
+++ b/debian/patches-rt/0008-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch
@@ -0,0 +1,171 @@
+From c85652aaa06764a7d68d8da3c6e146cf2650bff8 Mon Sep 17 00:00:00 2001
+From: Marc Zyngier <marc.zyngier@arm.com>
+Date: Fri, 27 Jul 2018 13:38:54 +0100
+Subject: [PATCH 008/347] irqchip/gic-v3-its: Move pending table allocation to
+ init time
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/irqchip/irq-gic-v3-its.c | 80 +++++++++++++++++++-----------
+ include/linux/irqchip/arm-gic-v3.h | 1 +
+ 2 files changed, 53 insertions(+), 28 deletions(-)
+
+diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
+index 86334aef4bd0..f51970b6b51a 100644
+--- a/drivers/irqchip/irq-gic-v3-its.c
++++ b/drivers/irqchip/irq-gic-v3-its.c
+@@ -178,6 +178,7 @@ static DEFINE_RAW_SPINLOCK(vmovp_lock);
+ static DEFINE_IDA(its_vpeid_ida);
+
+ #define gic_data_rdist() (raw_cpu_ptr(gic_rdists->rdist))
++#define gic_data_rdist_cpu(cpu) (per_cpu_ptr(gic_rdists->rdist, cpu))
+ #define gic_data_rdist_rd_base() (gic_data_rdist()->rd_base)
+ #define gic_data_rdist_vlpi_base() (gic_data_rdist_rd_base() + SZ_128K)
+
+@@ -1658,7 +1659,7 @@ static void its_free_prop_table(struct page *prop_page)
+ get_order(LPI_PROPBASE_SZ));
+ }
+
+-static int __init its_alloc_lpi_tables(void)
++static int __init its_alloc_lpi_prop_table(void)
+ {
+ phys_addr_t paddr;
+
+@@ -2006,30 +2007,47 @@ static u64 its_clear_vpend_valid(void __iomem *vlpi_base)
+ return val;
+ }
+
+-static void its_cpu_init_lpis(void)
++static int __init allocate_lpi_tables(void)
+ {
+- void __iomem *rbase = gic_data_rdist_rd_base();
+- struct page *pend_page;
+- u64 val, tmp;
++ int err, cpu;
+
+- /* If we didn't allocate the pending table yet, do it now */
+- pend_page = gic_data_rdist()->pend_page;
+- if (!pend_page) {
+- phys_addr_t paddr;
++ err = its_alloc_lpi_prop_table();
++ if (err)
++ return err;
++
++ /*
++ * We allocate all the pending tables anyway, as we may have a
++ * mix of RDs that have had LPIs enabled, and some that
++ * don't. We'll free the unused ones as each CPU comes online.
++ */
++ for_each_possible_cpu(cpu) {
++ struct page *pend_page;
+
+ pend_page = its_allocate_pending_table(GFP_NOWAIT);
+ if (!pend_page) {
+- pr_err("Failed to allocate PENDBASE for CPU%d\n",
+- smp_processor_id());
+- return;
++ pr_err("Failed to allocate PENDBASE for CPU%d\n", cpu);
++ return -ENOMEM;
+ }
+
+- paddr = page_to_phys(pend_page);
+- pr_info("CPU%d: using LPI pending table @%pa\n",
+- smp_processor_id(), &paddr);
+- gic_data_rdist()->pend_page = pend_page;
++ gic_data_rdist_cpu(cpu)->pend_page = pend_page;
+ }
+
++ return 0;
++}
++
++static void its_cpu_init_lpis(void)
++{
++ void __iomem *rbase = gic_data_rdist_rd_base();
++ struct page *pend_page;
++ phys_addr_t paddr;
++ u64 val, tmp;
++
++ if (gic_data_rdist()->lpi_enabled)
++ return;
++
++ pend_page = gic_data_rdist()->pend_page;
++ paddr = page_to_phys(pend_page);
++
+ /* set PROPBASE */
+ val = (page_to_phys(gic_rdists->prop_page) |
+ GICR_PROPBASER_InnerShareable |
+@@ -2105,6 +2123,10 @@ static void its_cpu_init_lpis(void)
+
+ /* Make sure the GIC has seen the above */
+ dsb(sy);
++ gic_data_rdist()->lpi_enabled = true;
++ pr_info("GICv3: CPU%d: using LPI pending table @%pa\n",
++ smp_processor_id(),
++ &paddr);
+ }
+
+ static void its_cpu_init_collection(struct its_node *its)
+@@ -3584,16 +3606,6 @@ static int redist_disable_lpis(void)
+ u64 timeout = USEC_PER_SEC;
+ u64 val;
+
+- /*
+- * If coming via a CPU hotplug event, we don't need to disable
+- * LPIs before trying to re-enable them. They are already
+- * configured and all is well in the world. Detect this case
+- * by checking the allocation of the pending table for the
+- * current CPU.
+- */
+- if (gic_data_rdist()->pend_page)
+- return 0;
+-
+ if (!gic_rdists_supports_plpis()) {
+ pr_info("CPU%d: LPIs not supported\n", smp_processor_id());
+ return -ENXIO;
+@@ -3603,7 +3615,18 @@ static int redist_disable_lpis(void)
+ if (!(val & GICR_CTLR_ENABLE_LPIS))
+ return 0;
+
+- pr_warn("CPU%d: Booted with LPIs enabled, memory probably corrupted\n",
++ /*
++ * If coming via a CPU hotplug event, we don't need to disable
++ * LPIs before trying to re-enable them. They are already
++ * configured and all is well in the world.
++ */
++ if (gic_data_rdist()->lpi_enabled)
++ return 0;
++
++ /*
++ * From that point on, we only try to do some damage control.
++ */
++ pr_warn("GICv3: CPU%d: Booted with LPIs enabled, memory probably corrupted\n",
+ smp_processor_id());
+ add_taint(TAINT_CRAP, LOCKDEP_STILL_OK);
+
+@@ -3859,7 +3882,8 @@ int __init its_init(struct fwnode_handle *handle, struct rdists *rdists,
+ }
+
+ gic_rdists = rdists;
+- err = its_alloc_lpi_tables();
++
++ err = allocate_lpi_tables();
+ if (err)
+ return err;
+
+diff --git a/include/linux/irqchip/arm-gic-v3.h b/include/linux/irqchip/arm-gic-v3.h
+index 1d21e98d6854..fdddead7e307 100644
+--- a/include/linux/irqchip/arm-gic-v3.h
++++ b/include/linux/irqchip/arm-gic-v3.h
+@@ -585,6 +585,7 @@ struct rdists {
+ void __iomem *rd_base;
+ struct page *pend_page;
+ phys_addr_t phys_base;
++ bool lpi_enabled;
+ } __percpu *rdist;
+ struct page *prop_page;
+ u64 flags;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0009-kthread-convert-worker-lock-to-raw-spinlock.patch b/debian/patches-rt/0009-kthread-convert-worker-lock-to-raw-spinlock.patch
new file mode 100644
index 000000000..2d5f5508f
--- /dev/null
+++ b/debian/patches-rt/0009-kthread-convert-worker-lock-to-raw-spinlock.patch
@@ -0,0 +1,203 @@
+From 3384b42fd998f06c79b4536609c48e3147adb1eb Mon Sep 17 00:00:00 2001
+From: Julia Cartwright <julia@ni.com>
+Date: Fri, 28 Sep 2018 21:03:51 +0000
+Subject: [PATCH 009/347] kthread: convert worker lock to raw spinlock
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+In order to enable the queuing of kthread work items from hardirq
+context even when PREEMPT_RT_FULL is enabled, convert the worker
+spin_lock to a raw_spin_lock.
+
+This is only acceptable to do because the work performed under the lock
+is well-bounded and minimal.
+
+Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Cc: Guenter Roeck <linux@roeck-us.net>
+Reported-and-tested-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
+Reported-by: Tim Sander <tim@krieglstein.org>
+Signed-off-by: Julia Cartwright <julia@ni.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/kthread.h | 2 +-
+ kernel/kthread.c | 42 ++++++++++++++++++++---------------------
+ 2 files changed, 22 insertions(+), 22 deletions(-)
+
+diff --git a/include/linux/kthread.h b/include/linux/kthread.h
+index 72308c38e06c..e0498e46d642 100644
+--- a/include/linux/kthread.h
++++ b/include/linux/kthread.h
+@@ -88,7 +88,7 @@ enum {
+
+ struct kthread_worker {
+ unsigned int flags;
+- spinlock_t lock;
++ raw_spinlock_t lock;
+ struct list_head work_list;
+ struct list_head delayed_work_list;
+ struct task_struct *task;
+diff --git a/kernel/kthread.c b/kernel/kthread.c
+index 9750f4f7f901..c8cf4731ced8 100644
+--- a/kernel/kthread.c
++++ b/kernel/kthread.c
+@@ -637,7 +637,7 @@ void __kthread_init_worker(struct kthread_worker *worker,
+ struct lock_class_key *key)
+ {
+ memset(worker, 0, sizeof(struct kthread_worker));
+- spin_lock_init(&worker->lock);
++ raw_spin_lock_init(&worker->lock);
+ lockdep_set_class_and_name(&worker->lock, key, name);
+ INIT_LIST_HEAD(&worker->work_list);
+ INIT_LIST_HEAD(&worker->delayed_work_list);
+@@ -679,21 +679,21 @@ int kthread_worker_fn(void *worker_ptr)
+
+ if (kthread_should_stop()) {
+ __set_current_state(TASK_RUNNING);
+- spin_lock_irq(&worker->lock);
++ raw_spin_lock_irq(&worker->lock);
+ worker->task = NULL;
+- spin_unlock_irq(&worker->lock);
++ raw_spin_unlock_irq(&worker->lock);
+ return 0;
+ }
+
+ work = NULL;
+- spin_lock_irq(&worker->lock);
++ raw_spin_lock_irq(&worker->lock);
+ if (!list_empty(&worker->work_list)) {
+ work = list_first_entry(&worker->work_list,
+ struct kthread_work, node);
+ list_del_init(&work->node);
+ }
+ worker->current_work = work;
+- spin_unlock_irq(&worker->lock);
++ raw_spin_unlock_irq(&worker->lock);
+
+ if (work) {
+ __set_current_state(TASK_RUNNING);
+@@ -850,12 +850,12 @@ bool kthread_queue_work(struct kthread_worker *worker,
+ bool ret = false;
+ unsigned long flags;
+
+- spin_lock_irqsave(&worker->lock, flags);
++ raw_spin_lock_irqsave(&worker->lock, flags);
+ if (!queuing_blocked(worker, work)) {
+ kthread_insert_work(worker, work, &worker->work_list);
+ ret = true;
+ }
+- spin_unlock_irqrestore(&worker->lock, flags);
++ raw_spin_unlock_irqrestore(&worker->lock, flags);
+ return ret;
+ }
+ EXPORT_SYMBOL_GPL(kthread_queue_work);
+@@ -881,7 +881,7 @@ void kthread_delayed_work_timer_fn(struct timer_list *t)
+ if (WARN_ON_ONCE(!worker))
+ return;
+
+- spin_lock(&worker->lock);
++ raw_spin_lock(&worker->lock);
+ /* Work must not be used with >1 worker, see kthread_queue_work(). */
+ WARN_ON_ONCE(work->worker != worker);
+
+@@ -891,7 +891,7 @@ void kthread_delayed_work_timer_fn(struct timer_list *t)
+ if (!work->canceling)
+ kthread_insert_work(worker, work, &worker->work_list);
+
+- spin_unlock(&worker->lock);
++ raw_spin_unlock(&worker->lock);
+ }
+ EXPORT_SYMBOL(kthread_delayed_work_timer_fn);
+
+@@ -947,14 +947,14 @@ bool kthread_queue_delayed_work(struct kthread_worker *worker,
+ unsigned long flags;
+ bool ret = false;
+
+- spin_lock_irqsave(&worker->lock, flags);
++ raw_spin_lock_irqsave(&worker->lock, flags);
+
+ if (!queuing_blocked(worker, work)) {
+ __kthread_queue_delayed_work(worker, dwork, delay);
+ ret = true;
+ }
+
+- spin_unlock_irqrestore(&worker->lock, flags);
++ raw_spin_unlock_irqrestore(&worker->lock, flags);
+ return ret;
+ }
+ EXPORT_SYMBOL_GPL(kthread_queue_delayed_work);
+@@ -990,7 +990,7 @@ void kthread_flush_work(struct kthread_work *work)
+ if (!worker)
+ return;
+
+- spin_lock_irq(&worker->lock);
++ raw_spin_lock_irq(&worker->lock);
+ /* Work must not be used with >1 worker, see kthread_queue_work(). */
+ WARN_ON_ONCE(work->worker != worker);
+
+@@ -1002,7 +1002,7 @@ void kthread_flush_work(struct kthread_work *work)
+ else
+ noop = true;
+
+- spin_unlock_irq(&worker->lock);
++ raw_spin_unlock_irq(&worker->lock);
+
+ if (!noop)
+ wait_for_completion(&fwork.done);
+@@ -1030,9 +1030,9 @@ static void kthread_cancel_delayed_work_timer(struct kthread_work *work,
+ * any queuing is blocked by setting the canceling counter.
+ */
+ work->canceling++;
+- spin_unlock_irqrestore(&worker->lock, *flags);
++ raw_spin_unlock_irqrestore(&worker->lock, *flags);
+ del_timer_sync(&dwork->timer);
+- spin_lock_irqsave(&worker->lock, *flags);
++ raw_spin_lock_irqsave(&worker->lock, *flags);
+ work->canceling--;
+ }
+
+@@ -1094,7 +1094,7 @@ bool kthread_mod_delayed_work(struct kthread_worker *worker,
+ unsigned long flags;
+ int ret = false;
+
+- spin_lock_irqsave(&worker->lock, flags);
++ raw_spin_lock_irqsave(&worker->lock, flags);
+
+ /* Do not bother with canceling when never queued. */
+ if (!work->worker)
+@@ -1123,7 +1123,7 @@ bool kthread_mod_delayed_work(struct kthread_worker *worker,
+ fast_queue:
+ __kthread_queue_delayed_work(worker, dwork, delay);
+ out:
+- spin_unlock_irqrestore(&worker->lock, flags);
++ raw_spin_unlock_irqrestore(&worker->lock, flags);
+ return ret;
+ }
+ EXPORT_SYMBOL_GPL(kthread_mod_delayed_work);
+@@ -1137,7 +1137,7 @@ static bool __kthread_cancel_work_sync(struct kthread_work *work, bool is_dwork)
+ if (!worker)
+ goto out;
+
+- spin_lock_irqsave(&worker->lock, flags);
++ raw_spin_lock_irqsave(&worker->lock, flags);
+ /* Work must not be used with >1 worker, see kthread_queue_work(). */
+ WARN_ON_ONCE(work->worker != worker);
+
+@@ -1154,13 +1154,13 @@ static bool __kthread_cancel_work_sync(struct kthread_work *work, bool is_dwork)
+ * In the meantime, block any queuing by setting the canceling counter.
+ */
+ work->canceling++;
+- spin_unlock_irqrestore(&worker->lock, flags);
++ raw_spin_unlock_irqrestore(&worker->lock, flags);
+ kthread_flush_work(work);
+- spin_lock_irqsave(&worker->lock, flags);
++ raw_spin_lock_irqsave(&worker->lock, flags);
+ work->canceling--;
+
+ out_fast:
+- spin_unlock_irqrestore(&worker->lock, flags);
++ raw_spin_unlock_irqrestore(&worker->lock, flags);
+ out:
+ return ret;
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0010-crypto-caam-qi-simplify-CGR-allocation-freeing.patch b/debian/patches-rt/0010-crypto-caam-qi-simplify-CGR-allocation-freeing.patch
new file mode 100644
index 000000000..924b46797
--- /dev/null
+++ b/debian/patches-rt/0010-crypto-caam-qi-simplify-CGR-allocation-freeing.patch
@@ -0,0 +1,140 @@
+From c752e0c3b941130c799de323f647d8547ff04a81 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Horia=20Geant=C4=83?= <horia.geanta@nxp.com>
+Date: Mon, 8 Oct 2018 14:09:37 +0300
+Subject: [PATCH 010/347] crypto: caam/qi - simplify CGR allocation, freeing
+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/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[Upstream commit 29e83c757006fd751966bdc53392bb22d74179c6]
+
+CGRs (Congestion Groups) have to be freed by the same CPU that
+initialized them.
+This is why currently the driver takes special measures; however, using
+set_cpus_allowed_ptr() is incorrect - as reported by Sebastian.
+
+Instead of the generic solution of replacing set_cpus_allowed_ptr() with
+work_on_cpu_safe(), we use the qman_delete_cgr_safe() QBMan API instead
+of qman_delete_cgr() - which internally takes care of proper CGR
+deletion.
+
+Link: https://lkml.kernel.org/r/20181005125443.dfhd2asqktm22ney@linutronix.de
+Reported-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+---
+ drivers/crypto/caam/qi.c | 43 ++++------------------------------------
+ drivers/crypto/caam/qi.h | 2 +-
+ 2 files changed, 5 insertions(+), 40 deletions(-)
+
+diff --git a/drivers/crypto/caam/qi.c b/drivers/crypto/caam/qi.c
+index 67f7f8c42c93..b84e6c8b1e13 100644
+--- a/drivers/crypto/caam/qi.c
++++ b/drivers/crypto/caam/qi.c
+@@ -83,13 +83,6 @@ EXPORT_SYMBOL(caam_congested);
+ static u64 times_congested;
+ #endif
+
+-/*
+- * CPU from where the module initialised. This is required because QMan driver
+- * requires CGRs to be removed from same CPU from where they were originally
+- * allocated.
+- */
+-static int mod_init_cpu;
+-
+ /*
+ * This is a a cache of buffers, from which the users of CAAM QI driver
+ * can allocate short (CAAM_QI_MEMCACHE_SIZE) buffers. It's faster than
+@@ -492,12 +485,11 @@ void caam_drv_ctx_rel(struct caam_drv_ctx *drv_ctx)
+ }
+ EXPORT_SYMBOL(caam_drv_ctx_rel);
+
+-int caam_qi_shutdown(struct device *qidev)
++void caam_qi_shutdown(struct device *qidev)
+ {
+- int i, ret;
++ int i;
+ struct caam_qi_priv *priv = dev_get_drvdata(qidev);
+ const cpumask_t *cpus = qman_affine_cpus();
+- struct cpumask old_cpumask = current->cpus_allowed;
+
+ for_each_cpu(i, cpus) {
+ struct napi_struct *irqtask;
+@@ -510,26 +502,12 @@ int caam_qi_shutdown(struct device *qidev)
+ dev_err(qidev, "Rsp FQ kill failed, cpu: %d\n", i);
+ }
+
+- /*
+- * QMan driver requires CGRs to be deleted from same CPU from where they
+- * were instantiated. Hence we get the module removal execute from the
+- * same CPU from where it was originally inserted.
+- */
+- set_cpus_allowed_ptr(current, get_cpu_mask(mod_init_cpu));
+-
+- ret = qman_delete_cgr(&priv->cgr);
+- if (ret)
+- dev_err(qidev, "Deletion of CGR failed: %d\n", ret);
+- else
+- qman_release_cgrid(priv->cgr.cgrid);
++ qman_delete_cgr_safe(&priv->cgr);
++ qman_release_cgrid(priv->cgr.cgrid);
+
+ kmem_cache_destroy(qi_cache);
+
+- /* Now that we're done with the CGRs, restore the cpus allowed mask */
+- set_cpus_allowed_ptr(current, &old_cpumask);
+-
+ platform_device_unregister(priv->qi_pdev);
+- return ret;
+ }
+
+ static void cgr_cb(struct qman_portal *qm, struct qman_cgr *cgr, int congested)
+@@ -718,22 +696,11 @@ int caam_qi_init(struct platform_device *caam_pdev)
+ struct device *ctrldev = &caam_pdev->dev, *qidev;
+ struct caam_drv_private *ctrlpriv;
+ const cpumask_t *cpus = qman_affine_cpus();
+- struct cpumask old_cpumask = current->cpus_allowed;
+ static struct platform_device_info qi_pdev_info = {
+ .name = "caam_qi",
+ .id = PLATFORM_DEVID_NONE
+ };
+
+- /*
+- * QMAN requires CGRs to be removed from same CPU+portal from where it
+- * was originally allocated. Hence we need to note down the
+- * initialisation CPU and use the same CPU for module exit.
+- * We select the first CPU to from the list of portal owning CPUs.
+- * Then we pin module init to this CPU.
+- */
+- mod_init_cpu = cpumask_first(cpus);
+- set_cpus_allowed_ptr(current, get_cpu_mask(mod_init_cpu));
+-
+ qi_pdev_info.parent = ctrldev;
+ qi_pdev_info.dma_mask = dma_get_mask(ctrldev);
+ qi_pdev = platform_device_register_full(&qi_pdev_info);
+@@ -795,8 +762,6 @@ int caam_qi_init(struct platform_device *caam_pdev)
+ return -ENOMEM;
+ }
+
+- /* Done with the CGRs; restore the cpus allowed mask */
+- set_cpus_allowed_ptr(current, &old_cpumask);
+ #ifdef CONFIG_DEBUG_FS
+ debugfs_create_file("qi_congested", 0444, ctrlpriv->ctl,
+ &times_congested, &caam_fops_u64_ro);
+diff --git a/drivers/crypto/caam/qi.h b/drivers/crypto/caam/qi.h
+index 357b69f57072..b6c8acc30853 100644
+--- a/drivers/crypto/caam/qi.h
++++ b/drivers/crypto/caam/qi.h
+@@ -174,7 +174,7 @@ int caam_drv_ctx_update(struct caam_drv_ctx *drv_ctx, u32 *sh_desc);
+ void caam_drv_ctx_rel(struct caam_drv_ctx *drv_ctx);
+
+ int caam_qi_init(struct platform_device *pdev);
+-int caam_qi_shutdown(struct device *dev);
++void caam_qi_shutdown(struct device *dev);
+
+ /**
+ * qi_cache_alloc - Allocate buffers from CAAM-QI cache
+--
+2.36.1
+
diff --git a/debian/patches-rt/0011-sched-fair-Robustify-CFS-bandwidth-timer-locking.patch b/debian/patches-rt/0011-sched-fair-Robustify-CFS-bandwidth-timer-locking.patch
new file mode 100644
index 000000000..e250e2aa4
--- /dev/null
+++ b/debian/patches-rt/0011-sched-fair-Robustify-CFS-bandwidth-timer-locking.patch
@@ -0,0 +1,148 @@
+From e19a4689e9aa66751202caf5aeade89ecb118f2c Mon Sep 17 00:00:00 2001
+From: Peter Zijlstra <peterz@infradead.org>
+Date: Mon, 7 Jan 2019 13:52:31 +0100
+Subject: [PATCH 011/347] sched/fair: Robustify CFS-bandwidth timer locking
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Traditionally hrtimer callbacks were run with IRQs disabled, but with
+the introduction of HRTIMER_MODE_SOFT it is possible they run from
+SoftIRQ context, which does _NOT_ have IRQs disabled.
+
+Allow for the CFS bandwidth timers (period_timer and slack_timer) to
+be ran from SoftIRQ context; this entails removing the assumption that
+IRQs are already disabled from the locking.
+
+While mainline doesn't strictly need this, -RT forces all timers not
+explicitly marked with MODE_HARD into MODE_SOFT and trips over this.
+And marking these timers as MODE_HARD doesn't make sense as they're
+not required for RT operation and can potentially be quite expensive.
+
+Cc: Ingo Molnar <mingo@redhat.com>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Reported-by: Tom Putzeys <tom.putzeys@be.atlascopco.com>
+Tested-by: Mike Galbraith <efault@gmx.de>
+Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
+Link: https://lkml.kernel.org/r/20190107125231.GE14122@hirez.programming.kicks-ass.net
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/sched/fair.c | 30 ++++++++++++++++--------------
+ 1 file changed, 16 insertions(+), 14 deletions(-)
+
+diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
+index 84e7efda98da..e84a056f783f 100644
+--- a/kernel/sched/fair.c
++++ b/kernel/sched/fair.c
+@@ -4597,7 +4597,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b, u64 remaining)
+ struct rq *rq = rq_of(cfs_rq);
+ struct rq_flags rf;
+
+- rq_lock(rq, &rf);
++ rq_lock_irqsave(rq, &rf);
+ if (!cfs_rq_throttled(cfs_rq))
+ goto next;
+
+@@ -4616,7 +4616,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b, u64 remaining)
+ unthrottle_cfs_rq(cfs_rq);
+
+ next:
+- rq_unlock(rq, &rf);
++ rq_unlock_irqrestore(rq, &rf);
+
+ if (!remaining)
+ break;
+@@ -4632,7 +4632,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b, u64 remaining)
+ * period the timer is deactivated until scheduling resumes; cfs_b->idle is
+ * used to track this state.
+ */
+-static int do_sched_cfs_period_timer(struct cfs_bandwidth *cfs_b, int overrun)
++static int do_sched_cfs_period_timer(struct cfs_bandwidth *cfs_b, int overrun, unsigned long flags)
+ {
+ u64 runtime;
+ int throttled;
+@@ -4672,10 +4672,10 @@ static int do_sched_cfs_period_timer(struct cfs_bandwidth *cfs_b, int overrun)
+ while (throttled && cfs_b->runtime > 0 && !cfs_b->distribute_running) {
+ runtime = cfs_b->runtime;
+ cfs_b->distribute_running = 1;
+- raw_spin_unlock(&cfs_b->lock);
++ raw_spin_unlock_irqrestore(&cfs_b->lock, flags);
+ /* we can't nest cfs_b->lock while distributing bandwidth */
+ runtime = distribute_cfs_runtime(cfs_b, runtime);
+- raw_spin_lock(&cfs_b->lock);
++ raw_spin_lock_irqsave(&cfs_b->lock, flags);
+
+ cfs_b->distribute_running = 0;
+ throttled = !list_empty(&cfs_b->throttled_cfs_rq);
+@@ -4783,16 +4783,17 @@ static __always_inline void return_cfs_rq_runtime(struct cfs_rq *cfs_rq)
+ static void do_sched_cfs_slack_timer(struct cfs_bandwidth *cfs_b)
+ {
+ u64 runtime = 0, slice = sched_cfs_bandwidth_slice();
++ unsigned long flags;
+
+ /* confirm we're still not at a refresh boundary */
+- raw_spin_lock(&cfs_b->lock);
++ raw_spin_lock_irqsave(&cfs_b->lock, flags);
+ if (cfs_b->distribute_running) {
+- raw_spin_unlock(&cfs_b->lock);
++ raw_spin_unlock_irqrestore(&cfs_b->lock, flags);
+ return;
+ }
+
+ if (runtime_refresh_within(cfs_b, min_bandwidth_expiration)) {
+- raw_spin_unlock(&cfs_b->lock);
++ raw_spin_unlock_irqrestore(&cfs_b->lock, flags);
+ return;
+ }
+
+@@ -4802,17 +4803,17 @@ static void do_sched_cfs_slack_timer(struct cfs_bandwidth *cfs_b)
+ if (runtime)
+ cfs_b->distribute_running = 1;
+
+- raw_spin_unlock(&cfs_b->lock);
++ raw_spin_unlock_irqrestore(&cfs_b->lock, flags);
+
+ if (!runtime)
+ return;
+
+ runtime = distribute_cfs_runtime(cfs_b, runtime);
+
+- raw_spin_lock(&cfs_b->lock);
++ raw_spin_lock_irqsave(&cfs_b->lock, flags);
+ cfs_b->runtime -= min(runtime, cfs_b->runtime);
+ cfs_b->distribute_running = 0;
+- raw_spin_unlock(&cfs_b->lock);
++ raw_spin_unlock_irqrestore(&cfs_b->lock, flags);
+ }
+
+ /*
+@@ -4892,11 +4893,12 @@ static enum hrtimer_restart sched_cfs_period_timer(struct hrtimer *timer)
+ {
+ struct cfs_bandwidth *cfs_b =
+ container_of(timer, struct cfs_bandwidth, period_timer);
++ unsigned long flags;
+ int overrun;
+ int idle = 0;
+ int count = 0;
+
+- raw_spin_lock(&cfs_b->lock);
++ raw_spin_lock_irqsave(&cfs_b->lock, flags);
+ for (;;) {
+ overrun = hrtimer_forward_now(timer, cfs_b->period);
+ if (!overrun)
+@@ -4932,11 +4934,11 @@ static enum hrtimer_restart sched_cfs_period_timer(struct hrtimer *timer)
+ count = 0;
+ }
+
+- idle = do_sched_cfs_period_timer(cfs_b, overrun);
++ idle = do_sched_cfs_period_timer(cfs_b, overrun, flags);
+ }
+ if (idle)
+ cfs_b->period_active = 0;
+- raw_spin_unlock(&cfs_b->lock);
++ raw_spin_unlock_irqrestore(&cfs_b->lock, flags);
+
+ return idle ? HRTIMER_NORESTART : HRTIMER_RESTART;
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0012-arm-Convert-arm-boot_lock-to-raw.patch b/debian/patches-rt/0012-arm-Convert-arm-boot_lock-to-raw.patch
new file mode 100644
index 000000000..2ad1e225e
--- /dev/null
+++ b/debian/patches-rt/0012-arm-Convert-arm-boot_lock-to-raw.patch
@@ -0,0 +1,432 @@
+From 794763d18a168f7eb7dd98185021fd74a3d0778f Mon Sep 17 00:00:00 2001
+From: Frank Rowand <frank.rowand@am.sony.com>
+Date: Mon, 19 Sep 2011 14:51:14 -0700
+Subject: [PATCH 012/347] arm: Convert arm boot_lock to raw
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The arm boot_lock is used by the secondary processor startup code. The locking
+task is the idle thread, which has idle->sched_class == &idle_sched_class.
+idle_sched_class->enqueue_task == NULL, so if the idle task blocks on the
+lock, the attempt to wake it when the lock becomes available will fail:
+
+try_to_wake_up()
+ ...
+ activate_task()
+ enqueue_task()
+ p->sched_class->enqueue_task(rq, p, flags)
+
+Fix by converting boot_lock to a raw spin lock.
+
+Signed-off-by: Frank Rowand <frank.rowand@am.sony.com>
+Link: http://lkml.kernel.org/r/4E77B952.3010606@am.sony.com
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Tested-by: Tony Lindgren <tony@atomide.com>
+Acked-by: Krzysztof Kozlowski <krzk@kernel.org>
+Tested-by: Krzysztof Kozlowski <krzk@kernel.org> [Exynos5422 Linaro PM-QA]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/arm/mach-exynos/platsmp.c | 12 ++++++------
+ arch/arm/mach-hisi/platmcpm.c | 22 +++++++++++-----------
+ arch/arm/mach-omap2/omap-smp.c | 10 +++++-----
+ arch/arm/mach-prima2/platsmp.c | 10 +++++-----
+ arch/arm/mach-qcom/platsmp.c | 10 +++++-----
+ arch/arm/mach-spear/platsmp.c | 10 +++++-----
+ arch/arm/mach-sti/platsmp.c | 10 +++++-----
+ arch/arm/plat-versatile/platsmp.c | 10 +++++-----
+ 8 files changed, 47 insertions(+), 47 deletions(-)
+
+diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c
+index 6a1e682371b3..17dca0ff336e 100644
+--- a/arch/arm/mach-exynos/platsmp.c
++++ b/arch/arm/mach-exynos/platsmp.c
+@@ -239,7 +239,7 @@ static void write_pen_release(int val)
+ sync_cache_w(&pen_release);
+ }
+
+-static DEFINE_SPINLOCK(boot_lock);
++static DEFINE_RAW_SPINLOCK(boot_lock);
+
+ static void exynos_secondary_init(unsigned int cpu)
+ {
+@@ -252,8 +252,8 @@ static void exynos_secondary_init(unsigned int cpu)
+ /*
+ * Synchronise with the boot thread.
+ */
+- spin_lock(&boot_lock);
+- spin_unlock(&boot_lock);
++ raw_spin_lock(&boot_lock);
++ raw_spin_unlock(&boot_lock);
+ }
+
+ int exynos_set_boot_addr(u32 core_id, unsigned long boot_addr)
+@@ -317,7 +317,7 @@ static int exynos_boot_secondary(unsigned int cpu, struct task_struct *idle)
+ * Set synchronisation state between this boot processor
+ * and the secondary one
+ */
+- spin_lock(&boot_lock);
++ raw_spin_lock(&boot_lock);
+
+ /*
+ * The secondary processor is waiting to be released from
+@@ -344,7 +344,7 @@ static int exynos_boot_secondary(unsigned int cpu, struct task_struct *idle)
+
+ if (timeout == 0) {
+ printk(KERN_ERR "cpu1 power enable failed");
+- spin_unlock(&boot_lock);
++ raw_spin_unlock(&boot_lock);
+ return -ETIMEDOUT;
+ }
+ }
+@@ -390,7 +390,7 @@ static int exynos_boot_secondary(unsigned int cpu, struct task_struct *idle)
+ * calibrations, then wait for it to finish
+ */
+ fail:
+- spin_unlock(&boot_lock);
++ raw_spin_unlock(&boot_lock);
+
+ return pen_release != -1 ? ret : 0;
+ }
+diff --git a/arch/arm/mach-hisi/platmcpm.c b/arch/arm/mach-hisi/platmcpm.c
+index f66815c3dd07..00524abd963f 100644
+--- a/arch/arm/mach-hisi/platmcpm.c
++++ b/arch/arm/mach-hisi/platmcpm.c
+@@ -61,7 +61,7 @@
+
+ static void __iomem *sysctrl, *fabric;
+ static int hip04_cpu_table[HIP04_MAX_CLUSTERS][HIP04_MAX_CPUS_PER_CLUSTER];
+-static DEFINE_SPINLOCK(boot_lock);
++static DEFINE_RAW_SPINLOCK(boot_lock);
+ static u32 fabric_phys_addr;
+ /*
+ * [0]: bootwrapper physical address
+@@ -113,7 +113,7 @@ static int hip04_boot_secondary(unsigned int l_cpu, struct task_struct *idle)
+ if (cluster >= HIP04_MAX_CLUSTERS || cpu >= HIP04_MAX_CPUS_PER_CLUSTER)
+ return -EINVAL;
+
+- spin_lock_irq(&boot_lock);
++ raw_spin_lock_irq(&boot_lock);
+
+ if (hip04_cpu_table[cluster][cpu])
+ goto out;
+@@ -147,7 +147,7 @@ static int hip04_boot_secondary(unsigned int l_cpu, struct task_struct *idle)
+
+ out:
+ hip04_cpu_table[cluster][cpu]++;
+- spin_unlock_irq(&boot_lock);
++ raw_spin_unlock_irq(&boot_lock);
+
+ return 0;
+ }
+@@ -162,11 +162,11 @@ static void hip04_cpu_die(unsigned int l_cpu)
+ cpu = MPIDR_AFFINITY_LEVEL(mpidr, 0);
+ cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1);
+
+- spin_lock(&boot_lock);
++ raw_spin_lock(&boot_lock);
+ hip04_cpu_table[cluster][cpu]--;
+ if (hip04_cpu_table[cluster][cpu] == 1) {
+ /* A power_up request went ahead of us. */
+- spin_unlock(&boot_lock);
++ raw_spin_unlock(&boot_lock);
+ return;
+ } else if (hip04_cpu_table[cluster][cpu] > 1) {
+ pr_err("Cluster %d CPU%d boots multiple times\n", cluster, cpu);
+@@ -174,7 +174,7 @@ static void hip04_cpu_die(unsigned int l_cpu)
+ }
+
+ last_man = hip04_cluster_is_down(cluster);
+- spin_unlock(&boot_lock);
++ raw_spin_unlock(&boot_lock);
+ if (last_man) {
+ /* Since it's Cortex A15, disable L2 prefetching. */
+ asm volatile(
+@@ -203,7 +203,7 @@ static int hip04_cpu_kill(unsigned int l_cpu)
+ cpu >= HIP04_MAX_CPUS_PER_CLUSTER);
+
+ count = TIMEOUT_MSEC / POLL_MSEC;
+- spin_lock_irq(&boot_lock);
++ raw_spin_lock_irq(&boot_lock);
+ for (tries = 0; tries < count; tries++) {
+ if (hip04_cpu_table[cluster][cpu])
+ goto err;
+@@ -211,10 +211,10 @@ static int hip04_cpu_kill(unsigned int l_cpu)
+ data = readl_relaxed(sysctrl + SC_CPU_RESET_STATUS(cluster));
+ if (data & CORE_WFI_STATUS(cpu))
+ break;
+- spin_unlock_irq(&boot_lock);
++ raw_spin_unlock_irq(&boot_lock);
+ /* Wait for clean L2 when the whole cluster is down. */
+ msleep(POLL_MSEC);
+- spin_lock_irq(&boot_lock);
++ raw_spin_lock_irq(&boot_lock);
+ }
+ if (tries >= count)
+ goto err;
+@@ -231,10 +231,10 @@ static int hip04_cpu_kill(unsigned int l_cpu)
+ goto err;
+ if (hip04_cluster_is_down(cluster))
+ hip04_set_snoop_filter(cluster, 0);
+- spin_unlock_irq(&boot_lock);
++ raw_spin_unlock_irq(&boot_lock);
+ return 1;
+ err:
+- spin_unlock_irq(&boot_lock);
++ raw_spin_unlock_irq(&boot_lock);
+ return 0;
+ }
+ #endif
+diff --git a/arch/arm/mach-omap2/omap-smp.c b/arch/arm/mach-omap2/omap-smp.c
+index 1c73694c871a..ac4d2f030b87 100644
+--- a/arch/arm/mach-omap2/omap-smp.c
++++ b/arch/arm/mach-omap2/omap-smp.c
+@@ -69,7 +69,7 @@ static const struct omap_smp_config omap5_cfg __initconst = {
+ .startup_addr = omap5_secondary_startup,
+ };
+
+-static DEFINE_SPINLOCK(boot_lock);
++static DEFINE_RAW_SPINLOCK(boot_lock);
+
+ void __iomem *omap4_get_scu_base(void)
+ {
+@@ -177,8 +177,8 @@ static void omap4_secondary_init(unsigned int cpu)
+ /*
+ * Synchronise with the boot thread.
+ */
+- spin_lock(&boot_lock);
+- spin_unlock(&boot_lock);
++ raw_spin_lock(&boot_lock);
++ raw_spin_unlock(&boot_lock);
+ }
+
+ static int omap4_boot_secondary(unsigned int cpu, struct task_struct *idle)
+@@ -191,7 +191,7 @@ static int omap4_boot_secondary(unsigned int cpu, struct task_struct *idle)
+ * Set synchronisation state between this boot processor
+ * and the secondary one
+ */
+- spin_lock(&boot_lock);
++ raw_spin_lock(&boot_lock);
+
+ /*
+ * Update the AuxCoreBoot0 with boot state for secondary core.
+@@ -270,7 +270,7 @@ static int omap4_boot_secondary(unsigned int cpu, struct task_struct *idle)
+ * Now the secondary core is starting up let it run its
+ * calibrations, then wait for it to finish
+ */
+- spin_unlock(&boot_lock);
++ raw_spin_unlock(&boot_lock);
+
+ return 0;
+ }
+diff --git a/arch/arm/mach-prima2/platsmp.c b/arch/arm/mach-prima2/platsmp.c
+index 75ef5d4be554..c17c86e5d860 100644
+--- a/arch/arm/mach-prima2/platsmp.c
++++ b/arch/arm/mach-prima2/platsmp.c
+@@ -22,7 +22,7 @@
+
+ static void __iomem *clk_base;
+
+-static DEFINE_SPINLOCK(boot_lock);
++static DEFINE_RAW_SPINLOCK(boot_lock);
+
+ static void sirfsoc_secondary_init(unsigned int cpu)
+ {
+@@ -36,8 +36,8 @@ static void sirfsoc_secondary_init(unsigned int cpu)
+ /*
+ * Synchronise with the boot thread.
+ */
+- spin_lock(&boot_lock);
+- spin_unlock(&boot_lock);
++ raw_spin_lock(&boot_lock);
++ raw_spin_unlock(&boot_lock);
+ }
+
+ static const struct of_device_id clk_ids[] = {
+@@ -75,7 +75,7 @@ static int sirfsoc_boot_secondary(unsigned int cpu, struct task_struct *idle)
+ /* make sure write buffer is drained */
+ mb();
+
+- spin_lock(&boot_lock);
++ raw_spin_lock(&boot_lock);
+
+ /*
+ * The secondary processor is waiting to be released from
+@@ -107,7 +107,7 @@ static int sirfsoc_boot_secondary(unsigned int cpu, struct task_struct *idle)
+ * now the secondary core is starting up let it run its
+ * calibrations, then wait for it to finish
+ */
+- spin_unlock(&boot_lock);
++ raw_spin_unlock(&boot_lock);
+
+ return pen_release != -1 ? -ENOSYS : 0;
+ }
+diff --git a/arch/arm/mach-qcom/platsmp.c b/arch/arm/mach-qcom/platsmp.c
+index 5494c9e0c909..e8ce157d3548 100644
+--- a/arch/arm/mach-qcom/platsmp.c
++++ b/arch/arm/mach-qcom/platsmp.c
+@@ -46,7 +46,7 @@
+
+ extern void secondary_startup_arm(void);
+
+-static DEFINE_SPINLOCK(boot_lock);
++static DEFINE_RAW_SPINLOCK(boot_lock);
+
+ #ifdef CONFIG_HOTPLUG_CPU
+ static void qcom_cpu_die(unsigned int cpu)
+@@ -60,8 +60,8 @@ static void qcom_secondary_init(unsigned int cpu)
+ /*
+ * Synchronise with the boot thread.
+ */
+- spin_lock(&boot_lock);
+- spin_unlock(&boot_lock);
++ raw_spin_lock(&boot_lock);
++ raw_spin_unlock(&boot_lock);
+ }
+
+ static int scss_release_secondary(unsigned int cpu)
+@@ -284,7 +284,7 @@ static int qcom_boot_secondary(unsigned int cpu, int (*func)(unsigned int))
+ * set synchronisation state between this boot processor
+ * and the secondary one
+ */
+- spin_lock(&boot_lock);
++ raw_spin_lock(&boot_lock);
+
+ /*
+ * Send the secondary CPU a soft interrupt, thereby causing
+@@ -297,7 +297,7 @@ static int qcom_boot_secondary(unsigned int cpu, int (*func)(unsigned int))
+ * now the secondary core is starting up let it run its
+ * calibrations, then wait for it to finish
+ */
+- spin_unlock(&boot_lock);
++ raw_spin_unlock(&boot_lock);
+
+ return ret;
+ }
+diff --git a/arch/arm/mach-spear/platsmp.c b/arch/arm/mach-spear/platsmp.c
+index 39038a03836a..6da5c93872bf 100644
+--- a/arch/arm/mach-spear/platsmp.c
++++ b/arch/arm/mach-spear/platsmp.c
+@@ -32,7 +32,7 @@ static void write_pen_release(int val)
+ sync_cache_w(&pen_release);
+ }
+
+-static DEFINE_SPINLOCK(boot_lock);
++static DEFINE_RAW_SPINLOCK(boot_lock);
+
+ static void __iomem *scu_base = IOMEM(VA_SCU_BASE);
+
+@@ -47,8 +47,8 @@ static void spear13xx_secondary_init(unsigned int cpu)
+ /*
+ * Synchronise with the boot thread.
+ */
+- spin_lock(&boot_lock);
+- spin_unlock(&boot_lock);
++ raw_spin_lock(&boot_lock);
++ raw_spin_unlock(&boot_lock);
+ }
+
+ static int spear13xx_boot_secondary(unsigned int cpu, struct task_struct *idle)
+@@ -59,7 +59,7 @@ static int spear13xx_boot_secondary(unsigned int cpu, struct task_struct *idle)
+ * set synchronisation state between this boot processor
+ * and the secondary one
+ */
+- spin_lock(&boot_lock);
++ raw_spin_lock(&boot_lock);
+
+ /*
+ * The secondary processor is waiting to be released from
+@@ -84,7 +84,7 @@ static int spear13xx_boot_secondary(unsigned int cpu, struct task_struct *idle)
+ * now the secondary core is starting up let it run its
+ * calibrations, then wait for it to finish
+ */
+- spin_unlock(&boot_lock);
++ raw_spin_unlock(&boot_lock);
+
+ return pen_release != -1 ? -ENOSYS : 0;
+ }
+diff --git a/arch/arm/mach-sti/platsmp.c b/arch/arm/mach-sti/platsmp.c
+index 231f19e17436..a3419b7003e6 100644
+--- a/arch/arm/mach-sti/platsmp.c
++++ b/arch/arm/mach-sti/platsmp.c
+@@ -35,7 +35,7 @@ static void write_pen_release(int val)
+ sync_cache_w(&pen_release);
+ }
+
+-static DEFINE_SPINLOCK(boot_lock);
++static DEFINE_RAW_SPINLOCK(boot_lock);
+
+ static void sti_secondary_init(unsigned int cpu)
+ {
+@@ -48,8 +48,8 @@ static void sti_secondary_init(unsigned int cpu)
+ /*
+ * Synchronise with the boot thread.
+ */
+- spin_lock(&boot_lock);
+- spin_unlock(&boot_lock);
++ raw_spin_lock(&boot_lock);
++ raw_spin_unlock(&boot_lock);
+ }
+
+ static int sti_boot_secondary(unsigned int cpu, struct task_struct *idle)
+@@ -60,7 +60,7 @@ static int sti_boot_secondary(unsigned int cpu, struct task_struct *idle)
+ * set synchronisation state between this boot processor
+ * and the secondary one
+ */
+- spin_lock(&boot_lock);
++ raw_spin_lock(&boot_lock);
+
+ /*
+ * The secondary processor is waiting to be released from
+@@ -91,7 +91,7 @@ static int sti_boot_secondary(unsigned int cpu, struct task_struct *idle)
+ * now the secondary core is starting up let it run its
+ * calibrations, then wait for it to finish
+ */
+- spin_unlock(&boot_lock);
++ raw_spin_unlock(&boot_lock);
+
+ return pen_release != -1 ? -ENOSYS : 0;
+ }
+diff --git a/arch/arm/plat-versatile/platsmp.c b/arch/arm/plat-versatile/platsmp.c
+index c2366510187a..6b60f582b738 100644
+--- a/arch/arm/plat-versatile/platsmp.c
++++ b/arch/arm/plat-versatile/platsmp.c
+@@ -32,7 +32,7 @@ static void write_pen_release(int val)
+ sync_cache_w(&pen_release);
+ }
+
+-static DEFINE_SPINLOCK(boot_lock);
++static DEFINE_RAW_SPINLOCK(boot_lock);
+
+ void versatile_secondary_init(unsigned int cpu)
+ {
+@@ -45,8 +45,8 @@ void versatile_secondary_init(unsigned int cpu)
+ /*
+ * Synchronise with the boot thread.
+ */
+- spin_lock(&boot_lock);
+- spin_unlock(&boot_lock);
++ raw_spin_lock(&boot_lock);
++ raw_spin_unlock(&boot_lock);
+ }
+
+ int versatile_boot_secondary(unsigned int cpu, struct task_struct *idle)
+@@ -57,7 +57,7 @@ int versatile_boot_secondary(unsigned int cpu, struct task_struct *idle)
+ * Set synchronisation state between this boot processor
+ * and the secondary one
+ */
+- spin_lock(&boot_lock);
++ raw_spin_lock(&boot_lock);
+
+ /*
+ * This is really belt and braces; we hold unintended secondary
+@@ -87,7 +87,7 @@ int versatile_boot_secondary(unsigned int cpu, struct task_struct *idle)
+ * now the secondary core is starting up let it run its
+ * calibrations, then wait for it to finish
+ */
+- spin_unlock(&boot_lock);
++ raw_spin_unlock(&boot_lock);
+
+ return pen_release != -1 ? -ENOSYS : 0;
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0013-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch b/debian/patches-rt/0013-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch
new file mode 100644
index 000000000..5c222cfd8
--- /dev/null
+++ b/debian/patches-rt/0013-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch
@@ -0,0 +1,101 @@
+From 39f1823e7293c365e7abdc19c1b15d772fc0dbc1 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Tue, 17 Jul 2018 18:25:31 +0200
+Subject: [PATCH 013/347] x86/ioapic: Don't let setaffinity unmask threaded EOI
+ interrupt too early
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+There is an issue with threaded interrupts which are marked ONESHOT
+and using the fasteoi handler.
+
+ if (IS_ONESHOT())
+ mask_irq();
+
+ ....
+ ....
+
+ cond_unmask_eoi_irq()
+ chip->irq_eoi();
+
+So if setaffinity is pending then the interrupt will be moved and then
+unmasked, which is wrong as it should be kept masked up to the point where
+the threaded handler finished. It's not a real problem, the interrupt will
+just be able to fire before the threaded handler has finished, though the irq
+masked state will be wrong for a bit.
+
+The patch below should cure the issue. It also renames the horribly
+misnomed functions so it becomes clear what they are supposed to do.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+[bigeasy: add the body of the patch, use the same functions in both
+ ifdef paths (spotted by Andy Shevchenko)]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/x86/kernel/apic/io_apic.c | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
+index 677508baf95a..b1a7f453415f 100644
+--- a/arch/x86/kernel/apic/io_apic.c
++++ b/arch/x86/kernel/apic/io_apic.c
+@@ -1732,7 +1732,7 @@ static bool io_apic_level_ack_pending(struct mp_chip_data *data)
+ return false;
+ }
+
+-static inline bool ioapic_irqd_mask(struct irq_data *data)
++static inline bool ioapic_prepare_move(struct irq_data *data)
+ {
+ /* If we are moving the IRQ we need to mask it */
+ if (unlikely(irqd_is_setaffinity_pending(data))) {
+@@ -1743,9 +1743,9 @@ static inline bool ioapic_irqd_mask(struct irq_data *data)
+ return false;
+ }
+
+-static inline void ioapic_irqd_unmask(struct irq_data *data, bool masked)
++static inline void ioapic_finish_move(struct irq_data *data, bool moveit)
+ {
+- if (unlikely(masked)) {
++ if (unlikely(moveit)) {
+ /* Only migrate the irq if the ack has been received.
+ *
+ * On rare occasions the broadcast level triggered ack gets
+@@ -1780,11 +1780,11 @@ static inline void ioapic_irqd_unmask(struct irq_data *data, bool masked)
+ }
+ }
+ #else
+-static inline bool ioapic_irqd_mask(struct irq_data *data)
++static inline bool ioapic_prepare_move(struct irq_data *data)
+ {
+ return false;
+ }
+-static inline void ioapic_irqd_unmask(struct irq_data *data, bool masked)
++static inline void ioapic_finish_move(struct irq_data *data, bool moveit)
+ {
+ }
+ #endif
+@@ -1793,11 +1793,11 @@ static void ioapic_ack_level(struct irq_data *irq_data)
+ {
+ struct irq_cfg *cfg = irqd_cfg(irq_data);
+ unsigned long v;
+- bool masked;
++ bool moveit;
+ int i;
+
+ irq_complete_move(cfg);
+- masked = ioapic_irqd_mask(irq_data);
++ moveit = ioapic_prepare_move(irq_data);
+
+ /*
+ * It appears there is an erratum which affects at least version 0x11
+@@ -1852,7 +1852,7 @@ static void ioapic_ack_level(struct irq_data *irq_data)
+ eoi_ioapic_pin(cfg->vector, irq_data->chip_data);
+ }
+
+- ioapic_irqd_unmask(irq_data, masked);
++ ioapic_finish_move(irq_data, moveit);
+ }
+
+ static void ioapic_ir_ack_level(struct irq_data *irq_data)
+--
+2.36.1
+
diff --git a/debian/patches-rt/0014-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch b/debian/patches-rt/0014-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch
new file mode 100644
index 000000000..6d9213b5b
--- /dev/null
+++ b/debian/patches-rt/0014-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch
@@ -0,0 +1,50 @@
+From 9cbe69b64cc03234634926f56a219900edb90899 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 3 Jul 2018 18:19:48 +0200
+Subject: [PATCH 014/347] cgroup: use irqsave in cgroup_rstat_flush_locked()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+All callers of cgroup_rstat_flush_locked() acquire cgroup_rstat_lock
+either with spin_lock_irq() or spin_lock_irqsave().
+cgroup_rstat_flush_locked() itself acquires cgroup_rstat_cpu_lock which
+is a raw_spin_lock. This lock is also acquired in cgroup_rstat_updated()
+in IRQ context and therefore requires _irqsave() locking suffix in
+cgroup_rstat_flush_locked().
+Since there is no difference between spin_lock_t and raw_spin_lock_t
+on !RT lockdep does not complain here. On RT lockdep complains because
+the interrupts were not disabled here and a deadlock is possible.
+
+Acquire the raw_spin_lock_t with disabled interrupts.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/cgroup/rstat.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/kernel/cgroup/rstat.c b/kernel/cgroup/rstat.c
+index d0ed410b4127..3c949c46c6b3 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)
+ raw_spinlock_t *cpu_lock = per_cpu_ptr(&cgroup_rstat_cpu_lock,
+ cpu);
+ struct cgroup *pos = NULL;
++ unsigned long flags;
+
+- raw_spin_lock(cpu_lock);
++ raw_spin_lock_irqsave(cpu_lock, flags);
+ while ((pos = cgroup_rstat_cpu_pop_updated(pos, cgrp, cpu))) {
+ struct cgroup_subsys_state *css;
+
+@@ -162,7 +163,7 @@ static void cgroup_rstat_flush_locked(struct cgroup *cgrp, bool may_sleep)
+ css->ss->css_rstat_flush(css, cpu);
+ rcu_read_unlock();
+ }
+- raw_spin_unlock(cpu_lock);
++ raw_spin_unlock_irqrestore(cpu_lock, flags);
+
+ /* if @may_sleep, play nice and yield if necessary */
+ if (may_sleep && (need_resched() ||
+--
+2.36.1
+
diff --git a/debian/patches-rt/0015-fscache-initialize-cookie-hash-table-raw-spinlocks.patch b/debian/patches-rt/0015-fscache-initialize-cookie-hash-table-raw-spinlocks.patch
new file mode 100644
index 000000000..1aef96ead
--- /dev/null
+++ b/debian/patches-rt/0015-fscache-initialize-cookie-hash-table-raw-spinlocks.patch
@@ -0,0 +1,64 @@
+From efd6f660496f4a70e788963b4b914791eed32c42 Mon Sep 17 00:00:00 2001
+From: Clark Williams <williams@redhat.com>
+Date: Tue, 3 Jul 2018 13:34:30 -0500
+Subject: [PATCH 015/347] fscache: initialize cookie hash table raw spinlocks
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The fscache cookie mechanism uses a hash table of hlist_bl_head structures. The
+PREEMPT_RT patcheset adds a raw spinlock to this structure and so on PREEMPT_RT
+the structures get used uninitialized, causing warnings about bad magic numbers
+when spinlock debugging is turned on.
+
+Use the init function for fscache cookies.
+
+Signed-off-by: Clark Williams <williams@redhat.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ fs/fscache/cookie.c | 8 ++++++++
+ fs/fscache/main.c | 1 +
+ include/linux/fscache.h | 1 +
+ 3 files changed, 10 insertions(+)
+
+diff --git a/fs/fscache/cookie.c b/fs/fscache/cookie.c
+index 2ff05adfc22a..b2b9a85a4ba5 100644
+--- a/fs/fscache/cookie.c
++++ b/fs/fscache/cookie.c
+@@ -950,3 +950,11 @@ int __fscache_check_consistency(struct fscache_cookie *cookie,
+ return -ESTALE;
+ }
+ EXPORT_SYMBOL(__fscache_check_consistency);
++
++void __init fscache_cookie_init(void)
++{
++ int i;
++
++ for (i = 0; i < (1 << fscache_cookie_hash_shift) - 1; i++)
++ INIT_HLIST_BL_HEAD(&fscache_cookie_hash[i]);
++}
+diff --git a/fs/fscache/main.c b/fs/fscache/main.c
+index aa49234e9520..95a0798de381 100644
+--- a/fs/fscache/main.c
++++ b/fs/fscache/main.c
+@@ -188,6 +188,7 @@ static int __init fscache_init(void)
+ ret = -ENOMEM;
+ goto error_cookie_jar;
+ }
++ fscache_cookie_init();
+
+ fscache_root = kobject_create_and_add("fscache", kernel_kobj);
+ if (!fscache_root)
+diff --git a/include/linux/fscache.h b/include/linux/fscache.h
+index 84b90a79d75a..87a9330eafa2 100644
+--- a/include/linux/fscache.h
++++ b/include/linux/fscache.h
+@@ -230,6 +230,7 @@ extern void __fscache_readpages_cancel(struct fscache_cookie *cookie,
+ extern void __fscache_disable_cookie(struct fscache_cookie *, const void *, bool);
+ extern void __fscache_enable_cookie(struct fscache_cookie *, const void *, loff_t,
+ bool (*)(void *), void *);
++extern void fscache_cookie_init(void);
+
+ /**
+ * fscache_register_netfs - Register a filesystem as desiring caching services
+--
+2.36.1
+
diff --git a/debian/patches-rt/0016-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch b/debian/patches-rt/0016-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch
new file mode 100644
index 000000000..bdbfbb7d7
--- /dev/null
+++ b/debian/patches-rt/0016-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch
@@ -0,0 +1,40 @@
+From 8feaa1571755787a4012cb74fbb937f8c436939e Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 29 Aug 2018 21:59:04 +0200
+Subject: [PATCH 016/347] Drivers: hv: vmbus: include header for get_irq_regs()
+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/4.19/older/patches-4.19.246-rt110.tar.xz
+
+On !RT the header file get_irq_regs() gets pulled in via other header files. On
+RT it does not and the build fails:
+
+ drivers/hv/vmbus_drv.c:975 implicit declaration of function ‘get_irq_regs’ [-Werror=implicit-function-declaration]
+ drivers/hv/hv.c:115 implicit declaration of function ‘get_irq_regs’ [-Werror=implicit-function-declaration]
+
+Add the header file for get_irq_regs() in a common header so it used by
+vmbus_drv.c by hv.c for their get_irq_regs() usage.
+
+Reported-by: Bernhard Landauer <oberon@manjaro.org>
+Reported-by: Ralf Ramsauer <ralf.ramsauer@oth-regensburg.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/hv/hyperv_vmbus.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
+index c4ad51889024..14af29c0ea1c 100644
+--- a/drivers/hv/hyperv_vmbus.h
++++ b/drivers/hv/hyperv_vmbus.h
+@@ -32,6 +32,7 @@
+ #include <linux/atomic.h>
+ #include <linux/hyperv.h>
+ #include <linux/interrupt.h>
++#include <linux/irq.h>
+
+ #include "hv_trace.h"
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0017-percpu-include-irqflags.h-for-raw_local_irq_save.patch b/debian/patches-rt/0017-percpu-include-irqflags.h-for-raw_local_irq_save.patch
new file mode 100644
index 000000000..0b8f0b08b
--- /dev/null
+++ b/debian/patches-rt/0017-percpu-include-irqflags.h-for-raw_local_irq_save.patch
@@ -0,0 +1,33 @@
+From 8af0819c5a38547ea3f6b09ff350092c21c13e73 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 11 Oct 2018 16:39:59 +0200
+Subject: [PATCH 017/347] percpu: include irqflags.h for raw_local_irq_save()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The header percpu.h header file is using raw_local_irq_save() but does
+not include irqflags.h for its definition. It compiles because the
+header file is included via an other header file.
+On -RT the build fails because raw_local_irq_save() is not defined.
+
+Include irqflags.h in percpu.h.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/asm-generic/percpu.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/asm-generic/percpu.h b/include/asm-generic/percpu.h
+index 1817a8415a5e..942d64c0476e 100644
+--- a/include/asm-generic/percpu.h
++++ b/include/asm-generic/percpu.h
+@@ -5,6 +5,7 @@
+ #include <linux/compiler.h>
+ #include <linux/threads.h>
+ #include <linux/percpu-defs.h>
++#include <linux/irqflags.h>
+
+ #ifdef CONFIG_SMP
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0018-efi-Allow-efi-runtime.patch b/debian/patches-rt/0018-efi-Allow-efi-runtime.patch
new file mode 100644
index 000000000..b31c9ad25
--- /dev/null
+++ b/debian/patches-rt/0018-efi-Allow-efi-runtime.patch
@@ -0,0 +1,32 @@
+From f62b786096a94d0a49da8d0c97bc1d5b6213e6a6 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 26 Jul 2018 15:06:10 +0200
+Subject: [PATCH 018/347] efi: Allow efi=runtime
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+In case the option "efi=noruntime" is default at built-time, the user
+could overwrite its sate by `efi=runtime' and allow it again.
+
+Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/firmware/efi/efi.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
+index 7098744f9276..e89932f1ae65 100644
+--- a/drivers/firmware/efi/efi.c
++++ b/drivers/firmware/efi/efi.c
+@@ -113,6 +113,9 @@ static int __init parse_efi_cmdline(char *str)
+ if (parse_option_str(str, "noruntime"))
+ disable_runtime = true;
+
++ if (parse_option_str(str, "runtime"))
++ disable_runtime = false;
++
+ return 0;
+ }
+ early_param("efi", parse_efi_cmdline);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0019-x86-efi-drop-task_lock-from-efi_switch_mm.patch b/debian/patches-rt/0019-x86-efi-drop-task_lock-from-efi_switch_mm.patch
new file mode 100644
index 000000000..cc5aa4db1
--- /dev/null
+++ b/debian/patches-rt/0019-x86-efi-drop-task_lock-from-efi_switch_mm.patch
@@ -0,0 +1,55 @@
+From dc7eee776061da65e8343c30c068e3862a192bef Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 24 Jul 2018 14:48:55 +0200
+Subject: [PATCH 019/347] x86/efi: drop task_lock() from efi_switch_mm()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+efi_switch_mm() is a wrapper around switch_mm() which saves current's
+->active_mm, sets the requests mm as ->active_mm and invokes
+switch_mm().
+I don't think that task_lock() is required during that procedure. It
+protects ->mm which isn't changed here.
+
+It needs to be mentioned that during the whole procedure (switch to
+EFI's mm and back) the preemption needs to be disabled. A context switch
+at this point would reset the cr3 value based on current->mm. Also, this
+function may not be invoked at the same time on a different CPU because
+it would overwrite the efi_scratch.prev_mm information.
+
+Remove task_lock() and also update the comment to reflect it.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/x86/platform/efi/efi_64.c | 10 ++++------
+ 1 file changed, 4 insertions(+), 6 deletions(-)
+
+diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c
+index 77d05b56089a..cd7e4bfb43cf 100644
+--- a/arch/x86/platform/efi/efi_64.c
++++ b/arch/x86/platform/efi/efi_64.c
+@@ -619,18 +619,16 @@ void __init efi_dump_pagetable(void)
+
+ /*
+ * Makes the calling thread switch to/from efi_mm context. Can be used
+- * for SetVirtualAddressMap() i.e. current->active_mm == init_mm as well
+- * as during efi runtime calls i.e current->active_mm == current_mm.
+- * We are not mm_dropping()/mm_grabbing() any mm, because we are not
+- * losing/creating any references.
++ * in a kernel thread and user context. Preemption needs to remain disabled
++ * while the EFI-mm is borrowed. mmgrab()/mmdrop() is not used because the mm
++ * can not change under us.
++ * It should be ensured that there are no concurent calls to this function.
+ */
+ void efi_switch_mm(struct mm_struct *mm)
+ {
+- task_lock(current);
+ efi_scratch.prev_mm = current->active_mm;
+ current->active_mm = mm;
+ switch_mm(efi_scratch.prev_mm, mm, NULL);
+- task_unlock(current);
+ }
+
+ #ifdef CONFIG_EFI_MIXED
+--
+2.36.1
+
diff --git a/debian/patches-rt/0020-arm64-KVM-compute_layout-before-altenates-are-applie.patch b/debian/patches-rt/0020-arm64-KVM-compute_layout-before-altenates-are-applie.patch
new file mode 100644
index 000000000..9ebe84c33
--- /dev/null
+++ b/debian/patches-rt/0020-arm64-KVM-compute_layout-before-altenates-are-applie.patch
@@ -0,0 +1,83 @@
+From 67b8d4ae9c2cf65bccbb75f2099bca2da5e78de5 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 26 Jul 2018 09:13:42 +0200
+Subject: [PATCH 020/347] arm64: KVM: compute_layout before altenates are
+ applied
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+compute_layout() is invoked as part of an alternative fixup under
+stop_machine() and needs a sleeping lock as part of get_random_long().
+
+Invoke compute_layout() before the alternatives are applied.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/arm64/include/asm/alternative.h | 6 ++++++
+ arch/arm64/kernel/alternative.c | 1 +
+ arch/arm64/kvm/va_layout.c | 7 +------
+ 3 files changed, 8 insertions(+), 6 deletions(-)
+
+diff --git a/arch/arm64/include/asm/alternative.h b/arch/arm64/include/asm/alternative.h
+index 4fbbcdda70d7..99b215602a1a 100644
+--- a/arch/arm64/include/asm/alternative.h
++++ b/arch/arm64/include/asm/alternative.h
+@@ -35,6 +35,12 @@ void apply_alternatives_module(void *start, size_t length);
+ static inline void apply_alternatives_module(void *start, size_t length) { }
+ #endif
+
++#ifdef CONFIG_KVM_ARM_HOST
++void kvm_compute_layout(void);
++#else
++static inline void kvm_compute_layout(void) { }
++#endif
++
+ #define ALTINSTR_ENTRY(feature) \
+ " .word 661b - .\n" /* label */ \
+ " .word 663f - .\n" /* new instruction */ \
+diff --git a/arch/arm64/kernel/alternative.c b/arch/arm64/kernel/alternative.c
+index 3747c8d87bdb..75ccb5b279a2 100644
+--- a/arch/arm64/kernel/alternative.c
++++ b/arch/arm64/kernel/alternative.c
+@@ -212,6 +212,7 @@ static int __apply_alternatives_multi_stop(void *unused)
+ void __init apply_alternatives_all(void)
+ {
+ /* better not try code patching on a live SMP system */
++ kvm_compute_layout();
+ stop_machine(__apply_alternatives_multi_stop, NULL, cpu_online_mask);
+ }
+
+diff --git a/arch/arm64/kvm/va_layout.c b/arch/arm64/kvm/va_layout.c
+index c712a7376bc1..792da0e125de 100644
+--- a/arch/arm64/kvm/va_layout.c
++++ b/arch/arm64/kvm/va_layout.c
+@@ -33,7 +33,7 @@ static u8 tag_lsb;
+ static u64 tag_val;
+ static u64 va_mask;
+
+-static void compute_layout(void)
++__init void kvm_compute_layout(void)
+ {
+ phys_addr_t idmap_addr = __pa_symbol(__hyp_idmap_text_start);
+ u64 hyp_va_msb;
+@@ -121,8 +121,6 @@ void __init kvm_update_va_mask(struct alt_instr *alt,
+
+ BUG_ON(nr_inst != 5);
+
+- if (!has_vhe() && !va_mask)
+- compute_layout();
+
+ for (i = 0; i < nr_inst; i++) {
+ u32 rd, rn, insn, oinsn;
+@@ -167,9 +165,6 @@ void kvm_patch_vector_branch(struct alt_instr *alt,
+ return;
+ }
+
+- if (!va_mask)
+- compute_layout();
+-
+ /*
+ * Compute HYP VA by using the same computation as kern_hyp_va()
+ */
+--
+2.36.1
+
diff --git a/debian/patches-rt/0021-of-allocate-free-phandle-cache-outside-of-the-devtre.patch b/debian/patches-rt/0021-of-allocate-free-phandle-cache-outside-of-the-devtre.patch
new file mode 100644
index 000000000..9b53b3722
--- /dev/null
+++ b/debian/patches-rt/0021-of-allocate-free-phandle-cache-outside-of-the-devtre.patch
@@ -0,0 +1,103 @@
+From aafa075abaa80a17d9ac105e72ab235ddb573aac Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 31 Aug 2018 14:16:30 +0200
+Subject: [PATCH 021/347] of: allocate / free phandle cache outside of the
+ devtree_lock
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The phandle cache code allocates memory while holding devtree_lock which
+is a raw_spinlock_t. Memory allocation (and free()) is not possible on
+RT while a raw_spinlock_t is held.
+Invoke the kfree() and kcalloc() while the lock is dropped.
+
+Cc: Rob Herring <robh+dt@kernel.org>
+Cc: Frank Rowand <frowand.list@gmail.com>
+Cc: devicetree@vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/of/base.c | 19 +++++++++++++------
+ 1 file changed, 13 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/of/base.c b/drivers/of/base.c
+index f0dbb7ad88cf..c59b30bab0e0 100644
+--- a/drivers/of/base.c
++++ b/drivers/of/base.c
+@@ -130,31 +130,34 @@ static u32 phandle_cache_mask;
+ /*
+ * Caller must hold devtree_lock.
+ */
+-static void __of_free_phandle_cache(void)
++static struct device_node** __of_free_phandle_cache(void)
+ {
+ u32 cache_entries = phandle_cache_mask + 1;
+ u32 k;
++ struct device_node **shadow;
+
+ if (!phandle_cache)
+- return;
++ return NULL;
+
+ for (k = 0; k < cache_entries; k++)
+ of_node_put(phandle_cache[k]);
+
+- kfree(phandle_cache);
++ shadow = phandle_cache;
+ phandle_cache = NULL;
++ return shadow;
+ }
+
+ int of_free_phandle_cache(void)
+ {
+ unsigned long flags;
++ struct device_node **shadow;
+
+ raw_spin_lock_irqsave(&devtree_lock, flags);
+
+- __of_free_phandle_cache();
++ shadow = __of_free_phandle_cache();
+
+ raw_spin_unlock_irqrestore(&devtree_lock, flags);
+-
++ kfree(shadow);
+ return 0;
+ }
+ #if !defined(CONFIG_MODULES)
+@@ -189,10 +192,11 @@ void of_populate_phandle_cache(void)
+ u32 cache_entries;
+ struct device_node *np;
+ u32 phandles = 0;
++ struct device_node **shadow;
+
+ raw_spin_lock_irqsave(&devtree_lock, flags);
+
+- __of_free_phandle_cache();
++ shadow = __of_free_phandle_cache();
+
+ for_each_of_allnodes(np)
+ if (np->phandle && np->phandle != OF_PHANDLE_ILLEGAL)
+@@ -200,12 +204,14 @@ void of_populate_phandle_cache(void)
+
+ if (!phandles)
+ goto out;
++ raw_spin_unlock_irqrestore(&devtree_lock, flags);
+
+ cache_entries = roundup_pow_of_two(phandles);
+ phandle_cache_mask = cache_entries - 1;
+
+ phandle_cache = kcalloc(cache_entries, sizeof(*phandle_cache),
+ GFP_ATOMIC);
++ raw_spin_lock_irqsave(&devtree_lock, flags);
+ if (!phandle_cache)
+ goto out;
+
+@@ -217,6 +223,7 @@ void of_populate_phandle_cache(void)
+
+ out:
+ raw_spin_unlock_irqrestore(&devtree_lock, flags);
++ kfree(shadow);
+ }
+
+ void __init of_core_init(void)
+--
+2.36.1
+
diff --git a/debian/patches-rt/0022-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch b/debian/patches-rt/0022-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch
new file mode 100644
index 000000000..0d6a6458f
--- /dev/null
+++ b/debian/patches-rt/0022-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch
@@ -0,0 +1,98 @@
+From 4613446aa7e0744f1f4895714184b4a5608153bd Mon Sep 17 00:00:00 2001
+From: Clark Williams <williams@redhat.com>
+Date: Tue, 18 Sep 2018 10:29:31 -0500
+Subject: [PATCH 022/347] mm/kasan: make quarantine_lock a raw_spinlock_t
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The static lock quarantine_lock is used in quarantine.c to protect the
+quarantine queue datastructures. It is taken inside quarantine queue
+manipulation routines (quarantine_put(), quarantine_reduce() and
+quarantine_remove_cache()), with IRQs disabled.
+This is not a problem on a stock kernel but is problematic on an RT
+kernel where spin locks are sleeping spinlocks, which can sleep and can
+not be acquired with disabled interrupts.
+
+Convert the quarantine_lock to a raw spinlock_t. The usage of
+quarantine_lock is confined to quarantine.c and the work performed while
+the lock is held is limited.
+
+Signed-off-by: Clark Williams <williams@redhat.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ mm/kasan/quarantine.c | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/mm/kasan/quarantine.c b/mm/kasan/quarantine.c
+index 3a8ddf8baf7d..b209dbaefde8 100644
+--- a/mm/kasan/quarantine.c
++++ b/mm/kasan/quarantine.c
+@@ -103,7 +103,7 @@ static int quarantine_head;
+ static int quarantine_tail;
+ /* Total size of all objects in global_quarantine across all batches. */
+ static unsigned long quarantine_size;
+-static DEFINE_SPINLOCK(quarantine_lock);
++static DEFINE_RAW_SPINLOCK(quarantine_lock);
+ DEFINE_STATIC_SRCU(remove_cache_srcu);
+
+ /* Maximum size of the global queue. */
+@@ -190,7 +190,7 @@ void quarantine_put(struct kasan_free_meta *info, struct kmem_cache *cache)
+ if (unlikely(q->bytes > QUARANTINE_PERCPU_SIZE)) {
+ qlist_move_all(q, &temp);
+
+- spin_lock(&quarantine_lock);
++ raw_spin_lock(&quarantine_lock);
+ WRITE_ONCE(quarantine_size, quarantine_size + temp.bytes);
+ qlist_move_all(&temp, &global_quarantine[quarantine_tail]);
+ if (global_quarantine[quarantine_tail].bytes >=
+@@ -203,7 +203,7 @@ void quarantine_put(struct kasan_free_meta *info, struct kmem_cache *cache)
+ if (new_tail != quarantine_head)
+ quarantine_tail = new_tail;
+ }
+- spin_unlock(&quarantine_lock);
++ raw_spin_unlock(&quarantine_lock);
+ }
+
+ local_irq_restore(flags);
+@@ -230,7 +230,7 @@ void quarantine_reduce(void)
+ * expected case).
+ */
+ srcu_idx = srcu_read_lock(&remove_cache_srcu);
+- spin_lock_irqsave(&quarantine_lock, flags);
++ raw_spin_lock_irqsave(&quarantine_lock, flags);
+
+ /*
+ * Update quarantine size in case of hotplug. Allocate a fraction of
+@@ -254,7 +254,7 @@ void quarantine_reduce(void)
+ quarantine_head = 0;
+ }
+
+- spin_unlock_irqrestore(&quarantine_lock, flags);
++ raw_spin_unlock_irqrestore(&quarantine_lock, flags);
+
+ qlist_free_all(&to_free, NULL);
+ srcu_read_unlock(&remove_cache_srcu, srcu_idx);
+@@ -310,17 +310,17 @@ void quarantine_remove_cache(struct kmem_cache *cache)
+ */
+ on_each_cpu(per_cpu_remove_cache, cache, 1);
+
+- spin_lock_irqsave(&quarantine_lock, flags);
++ raw_spin_lock_irqsave(&quarantine_lock, flags);
+ for (i = 0; i < QUARANTINE_BATCHES; i++) {
+ if (qlist_empty(&global_quarantine[i]))
+ continue;
+ qlist_move_cache(&global_quarantine[i], &to_free, cache);
+ /* Scanning whole quarantine can take a while. */
+- spin_unlock_irqrestore(&quarantine_lock, flags);
++ raw_spin_unlock_irqrestore(&quarantine_lock, flags);
+ cond_resched();
+- spin_lock_irqsave(&quarantine_lock, flags);
++ raw_spin_lock_irqsave(&quarantine_lock, flags);
+ }
+- spin_unlock_irqrestore(&quarantine_lock, flags);
++ raw_spin_unlock_irqrestore(&quarantine_lock, flags);
+
+ qlist_free_all(&to_free, cache);
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0023-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch b/debian/patches-rt/0023-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch
new file mode 100644
index 000000000..576cef248
--- /dev/null
+++ b/debian/patches-rt/0023-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch
@@ -0,0 +1,51 @@
+From 502b30371ea2dc6a5ba4ec401468053719944d93 Mon Sep 17 00:00:00 2001
+From: "Paul E. McKenney" <paulmck@linux.ibm.com>
+Date: Mon, 29 Oct 2018 11:53:01 +0100
+Subject: [PATCH 023/347] EXP rcu: Revert expedited GP parallelization
+ cleverness
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+(Commit 258ba8e089db23f760139266c232f01bad73f85c from linux-rcu)
+
+This commit reverts a series of commits starting with fcc635436501 ("rcu:
+Make expedited GPs handle CPU 0 being offline") and its successors, thus
+queueing each rcu_node structure's expedited grace-period initialization
+work on the first CPU of that rcu_node structure.
+
+Suggested-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/rcu/tree_exp.h | 9 +--------
+ 1 file changed, 1 insertion(+), 8 deletions(-)
+
+diff --git a/kernel/rcu/tree_exp.h b/kernel/rcu/tree_exp.h
+index 72770a551c24..ac6d6fdf5783 100644
+--- a/kernel/rcu/tree_exp.h
++++ b/kernel/rcu/tree_exp.h
+@@ -472,7 +472,6 @@ static void sync_rcu_exp_select_node_cpus(struct work_struct *wp)
+ static void sync_rcu_exp_select_cpus(struct rcu_state *rsp,
+ smp_call_func_t func)
+ {
+- int cpu;
+ struct rcu_node *rnp;
+
+ trace_rcu_exp_grace_period(rsp->name, rcu_exp_gp_seq_endval(rsp), TPS("reset"));
+@@ -494,13 +493,7 @@ static void sync_rcu_exp_select_cpus(struct rcu_state *rsp,
+ continue;
+ }
+ INIT_WORK(&rnp->rew.rew_work, sync_rcu_exp_select_node_cpus);
+- preempt_disable();
+- cpu = cpumask_next(rnp->grplo - 1, cpu_online_mask);
+- /* If all offline, queue the work on an unbound CPU. */
+- if (unlikely(cpu > rnp->grphi))
+- cpu = WORK_CPU_UNBOUND;
+- queue_work_on(cpu, rcu_par_gp_wq, &rnp->rew.rew_work);
+- preempt_enable();
++ queue_work_on(rnp->grplo, rcu_par_gp_wq, &rnp->rew.rew_work);
+ rnp->exp_need_flush = true;
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0024-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch b/debian/patches-rt/0024-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch
new file mode 100644
index 000000000..13c6dabe9
--- /dev/null
+++ b/debian/patches-rt/0024-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch
@@ -0,0 +1,169 @@
+From 4de935e0bd7598a837928fb0d15048e5b04c5b05 Mon Sep 17 00:00:00 2001
+From: He Zhe <zhe.he@windriver.com>
+Date: Wed, 19 Dec 2018 16:30:57 +0100
+Subject: [PATCH 024/347] kmemleak: Turn kmemleak_lock to raw spinlock on RT
+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/4.19/older/patches-4.19.246-rt110.tar.xz
+
+kmemleak_lock, as a rwlock on RT, can possibly be held in atomic context and
+causes the follow BUG.
+
+BUG: scheduling while atomic: migration/15/132/0x00000002
+Preemption disabled at:
+[<ffffffff8c927c11>] cpu_stopper_thread+0x71/0x100
+CPU: 15 PID: 132 Comm: migration/15 Not tainted 4.19.0-rt1-preempt-rt #1
+Call Trace:
+ schedule+0x3d/0xe0
+ __rt_spin_lock+0x26/0x30
+ __write_rt_lock+0x23/0x1a0
+ rt_write_lock+0x2a/0x30
+ find_and_remove_object+0x1e/0x80
+ delete_object_full+0x10/0x20
+ kmemleak_free+0x32/0x50
+ kfree+0x104/0x1f0
+ intel_pmu_cpu_dying+0x67/0x70
+ x86_pmu_dying_cpu+0x1a/0x30
+ cpuhp_invoke_callback+0x92/0x700
+ take_cpu_down+0x70/0xa0
+ multi_cpu_stop+0x62/0xc0
+ cpu_stopper_thread+0x79/0x100
+ smpboot_thread_fn+0x20f/0x2d0
+ kthread+0x121/0x140
+
+And on v4.18 stable tree the following call trace, caused by grabbing
+kmemleak_lock again, is also observed.
+
+kernel BUG at kernel/locking/rtmutex.c:1048!
+CPU: 5 PID: 689 Comm: mkfs.ext4 Not tainted 4.18.16-rt9-preempt-rt #1
+Call Trace:
+ rt_write_lock+0x2a/0x30
+ create_object+0x17d/0x2b0
+ kmemleak_alloc+0x34/0x50
+ kmem_cache_alloc+0x146/0x220
+ mempool_alloc_slab+0x15/0x20
+ mempool_alloc+0x65/0x170
+ sg_pool_alloc+0x21/0x60
+ sg_alloc_table_chained+0x8b/0xb0
+…
+ blk_flush_plug_list+0x204/0x230
+ schedule+0x87/0xe0
+ rt_write_lock+0x2a/0x30
+ create_object+0x17d/0x2b0
+ kmemleak_alloc+0x34/0x50
+ __kmalloc_node+0x1cd/0x340
+ alloc_request_size+0x30/0x70
+ mempool_alloc+0x65/0x170
+ get_request+0x4e3/0x8d0
+ blk_queue_bio+0x153/0x470
+ generic_make_request+0x1dc/0x3f0
+ submit_bio+0x49/0x140
+…
+
+kmemleak is an error detecting feature. We would not expect as good performance
+as without it. As there is no raw rwlock defining helpers, we turn kmemleak_lock
+to a raw spinlock.
+
+Signed-off-by: He Zhe <zhe.he@windriver.com>
+Cc: catalin.marinas@arm.com
+Cc: bigeasy@linutronix.de
+Cc: tglx@linutronix.de
+Cc: rostedt@goodmis.org
+Acked-by: Catalin Marinas <catalin.marinas@arm.com>
+Link: https://lkml.kernel.org/r/1542877459-144382-1-git-send-email-zhe.he@windriver.com
+Link: https://lkml.kernel.org/r/20181218150744.GB20197@arrakis.emea.arm.com
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ mm/kmemleak.c | 20 ++++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/mm/kmemleak.c b/mm/kmemleak.c
+index 639acbb91fd5..5b6718dd3a64 100644
+--- a/mm/kmemleak.c
++++ b/mm/kmemleak.c
+@@ -26,7 +26,7 @@
+ *
+ * The following locks and mutexes are used by kmemleak:
+ *
+- * - kmemleak_lock (rwlock): protects the object_list modifications and
++ * - kmemleak_lock (raw spinlock): protects the object_list modifications and
+ * accesses to the object_tree_root. The object_list is the main list
+ * holding the metadata (struct kmemleak_object) for the allocated memory
+ * blocks. The object_tree_root is a red black tree used to look-up
+@@ -197,7 +197,7 @@ static LIST_HEAD(gray_list);
+ /* search tree for object boundaries */
+ static struct rb_root object_tree_root = RB_ROOT;
+ /* rw_lock protecting the access to object_list and object_tree_root */
+-static DEFINE_RWLOCK(kmemleak_lock);
++static DEFINE_RAW_SPINLOCK(kmemleak_lock);
+
+ /* allocation caches for kmemleak internal data */
+ static struct kmem_cache *object_cache;
+@@ -491,9 +491,9 @@ static struct kmemleak_object *find_and_get_object(unsigned long ptr, int alias)
+ struct kmemleak_object *object;
+
+ rcu_read_lock();
+- read_lock_irqsave(&kmemleak_lock, flags);
++ raw_spin_lock_irqsave(&kmemleak_lock, flags);
+ object = lookup_object(ptr, alias);
+- read_unlock_irqrestore(&kmemleak_lock, flags);
++ raw_spin_unlock_irqrestore(&kmemleak_lock, flags);
+
+ /* check whether the object is still available */
+ if (object && !get_object(object))
+@@ -513,13 +513,13 @@ static struct kmemleak_object *find_and_remove_object(unsigned long ptr, int ali
+ unsigned long flags;
+ struct kmemleak_object *object;
+
+- write_lock_irqsave(&kmemleak_lock, flags);
++ raw_spin_lock_irqsave(&kmemleak_lock, flags);
+ object = lookup_object(ptr, alias);
+ if (object) {
+ rb_erase(&object->rb_node, &object_tree_root);
+ list_del_rcu(&object->object_list);
+ }
+- write_unlock_irqrestore(&kmemleak_lock, flags);
++ raw_spin_unlock_irqrestore(&kmemleak_lock, flags);
+
+ return object;
+ }
+@@ -593,7 +593,7 @@ static struct kmemleak_object *create_object(unsigned long ptr, size_t size,
+ /* kernel backtrace */
+ object->trace_len = __save_stack_trace(object->trace);
+
+- write_lock_irqsave(&kmemleak_lock, flags);
++ raw_spin_lock_irqsave(&kmemleak_lock, flags);
+
+ min_addr = min(min_addr, ptr);
+ max_addr = max(max_addr, ptr + size);
+@@ -624,7 +624,7 @@ static struct kmemleak_object *create_object(unsigned long ptr, size_t size,
+
+ list_add_tail_rcu(&object->object_list, &object_list);
+ out:
+- write_unlock_irqrestore(&kmemleak_lock, flags);
++ raw_spin_unlock_irqrestore(&kmemleak_lock, flags);
+ return object;
+ }
+
+@@ -1310,7 +1310,7 @@ static void scan_block(void *_start, void *_end,
+ unsigned long *end = _end - (BYTES_PER_POINTER - 1);
+ unsigned long flags;
+
+- read_lock_irqsave(&kmemleak_lock, flags);
++ raw_spin_lock_irqsave(&kmemleak_lock, flags);
+ for (ptr = start; ptr < end; ptr++) {
+ struct kmemleak_object *object;
+ unsigned long pointer;
+@@ -1367,7 +1367,7 @@ static void scan_block(void *_start, void *_end,
+ spin_unlock(&object->lock);
+ }
+ }
+- read_unlock_irqrestore(&kmemleak_lock, flags);
++ raw_spin_unlock_irqrestore(&kmemleak_lock, flags);
+ }
+
+ /*
+--
+2.36.1
+
diff --git a/debian/patches-rt/0025-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch b/debian/patches-rt/0025-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch
new file mode 100644
index 000000000..837bf02da
--- /dev/null
+++ b/debian/patches-rt/0025-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch
@@ -0,0 +1,136 @@
+From a21527d57f8b1d303be3a91b055080f68bd83448 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 28 Oct 2016 23:05:11 +0200
+Subject: [PATCH 025/347] NFSv4: replace seqcount_t with a seqlock_t
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The raw_write_seqcount_begin() in nfs4_reclaim_open_state() bugs me
+because it maps to preempt_disable() in -RT which I can't have at this
+point. So I took a look at the code.
+It the lockdep part was removed in commit abbec2da13f0 ("NFS: Use
+raw_write_seqcount_begin/end int nfs4_reclaim_open_state") because
+lockdep complained. The whole seqcount thing was introduced in commit
+c137afabe330 ("NFSv4: Allow the state manager to mark an open_owner as
+being recovered").
+The recovery threads runs only once.
+write_seqlock() does not work on !RT because it disables preemption and it the
+writer side is preemptible (has to remain so despite the fact that it will
+block readers).
+
+Reported-by: kernel test robot <xiaolong.ye@intel.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ fs/nfs/delegation.c | 4 ++--
+ fs/nfs/nfs4_fs.h | 2 +-
+ fs/nfs/nfs4proc.c | 4 ++--
+ fs/nfs/nfs4state.c | 22 ++++++++++++++++------
+ 4 files changed, 21 insertions(+), 11 deletions(-)
+
+diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c
+index b0c0c2fc2fba..26565ba05dc1 100644
+--- a/fs/nfs/delegation.c
++++ b/fs/nfs/delegation.c
+@@ -162,11 +162,11 @@ static int nfs_delegation_claim_opens(struct inode *inode,
+ sp = state->owner;
+ /* Block nfs4_proc_unlck */
+ mutex_lock(&sp->so_delegreturn_mutex);
+- seq = raw_seqcount_begin(&sp->so_reclaim_seqcount);
++ seq = read_seqbegin(&sp->so_reclaim_seqlock);
+ err = nfs4_open_delegation_recall(ctx, state, stateid);
+ if (!err)
+ err = nfs_delegation_claim_locks(state, stateid);
+- if (!err && read_seqcount_retry(&sp->so_reclaim_seqcount, seq))
++ if (!err && read_seqretry(&sp->so_reclaim_seqlock, seq))
+ err = -EAGAIN;
+ mutex_unlock(&sp->so_delegreturn_mutex);
+ put_nfs_open_context(ctx);
+diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h
+index 5ac7bf24c507..b15a7a2f64fe 100644
+--- a/fs/nfs/nfs4_fs.h
++++ b/fs/nfs/nfs4_fs.h
+@@ -114,7 +114,7 @@ struct nfs4_state_owner {
+ unsigned long so_flags;
+ struct list_head so_states;
+ struct nfs_seqid_counter so_seqid;
+- seqcount_t so_reclaim_seqcount;
++ seqlock_t so_reclaim_seqlock;
+ struct mutex so_delegreturn_mutex;
+ };
+
+diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
+index 759c834b60fd..256a4b0c4407 100644
+--- a/fs/nfs/nfs4proc.c
++++ b/fs/nfs/nfs4proc.c
+@@ -2874,7 +2874,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,
+ unsigned int seq;
+ int ret;
+
+- seq = raw_seqcount_begin(&sp->so_reclaim_seqcount);
++ seq = raw_seqcount_begin(&sp->so_reclaim_seqlock.seqcount);
+
+ ret = _nfs4_proc_open(opendata, ctx);
+ if (ret != 0)
+@@ -2915,7 +2915,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,
+
+ if (d_inode(dentry) == state->inode) {
+ nfs_inode_attach_open_context(ctx);
+- if (read_seqcount_retry(&sp->so_reclaim_seqcount, seq))
++ if (read_seqretry(&sp->so_reclaim_seqlock, seq))
+ nfs4_schedule_stateid_recovery(server, state);
+ }
+
+diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
+index 30576a10a1f4..e0b94cbce3bf 100644
+--- a/fs/nfs/nfs4state.c
++++ b/fs/nfs/nfs4state.c
+@@ -516,7 +516,7 @@ nfs4_alloc_state_owner(struct nfs_server *server,
+ nfs4_init_seqid_counter(&sp->so_seqid);
+ atomic_set(&sp->so_count, 1);
+ INIT_LIST_HEAD(&sp->so_lru);
+- seqcount_init(&sp->so_reclaim_seqcount);
++ seqlock_init(&sp->so_reclaim_seqlock);
+ mutex_init(&sp->so_delegreturn_mutex);
+ return sp;
+ }
+@@ -1584,8 +1584,12 @@ static int nfs4_reclaim_open_state(struct nfs4_state_owner *sp, const struct nfs
+ * recovering after a network partition or a reboot from a
+ * server that doesn't support a grace period.
+ */
++#ifdef CONFIG_PREEMPT_RT_FULL
++ write_seqlock(&sp->so_reclaim_seqlock);
++#else
++ write_seqcount_begin(&sp->so_reclaim_seqlock.seqcount);
++#endif
+ spin_lock(&sp->so_lock);
+- raw_write_seqcount_begin(&sp->so_reclaim_seqcount);
+ restart:
+ list_for_each_entry(state, &sp->so_states, open_states) {
+ if (!test_and_clear_bit(ops->state_flag_bit, &state->flags))
+@@ -1672,14 +1676,20 @@ static int nfs4_reclaim_open_state(struct nfs4_state_owner *sp, const struct nfs
+ spin_lock(&sp->so_lock);
+ goto restart;
+ }
+- raw_write_seqcount_end(&sp->so_reclaim_seqcount);
+ spin_unlock(&sp->so_lock);
++#ifdef CONFIG_PREEMPT_RT_FULL
++ write_sequnlock(&sp->so_reclaim_seqlock);
++#else
++ write_seqcount_end(&sp->so_reclaim_seqlock.seqcount);
++#endif
+ return 0;
+ out_err:
+ nfs4_put_open_state(state);
+- spin_lock(&sp->so_lock);
+- raw_write_seqcount_end(&sp->so_reclaim_seqcount);
+- spin_unlock(&sp->so_lock);
++#ifdef CONFIG_PREEMPT_RT_FULL
++ write_sequnlock(&sp->so_reclaim_seqlock);
++#else
++ write_seqcount_end(&sp->so_reclaim_seqlock.seqcount);
++#endif
+ return status;
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0026-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch b/debian/patches-rt/0026-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch
new file mode 100644
index 000000000..f8d5cd7db
--- /dev/null
+++ b/debian/patches-rt/0026-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch
@@ -0,0 +1,785 @@
+From 3f55ace58d1fbc90dd64acd3564cb4713f74a45e Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 4 Apr 2017 12:50:16 +0200
+Subject: [PATCH 026/347] kernel: sched: Provide a pointer to the valid CPU
+ mask
+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/4.19/older/patches-4.19.246-rt110.tar.xz
+
+In commit 4b53a3412d66 ("sched/core: Remove the tsk_nr_cpus_allowed()
+wrapper") the tsk_nr_cpus_allowed() wrapper was removed. There was not
+much difference in !RT but in RT we used this to implement
+migrate_disable(). Within a migrate_disable() section the CPU mask is
+restricted to single CPU while the "normal" CPU mask remains untouched.
+
+As an alternative implementation Ingo suggested to use
+ struct task_struct {
+ const cpumask_t *cpus_ptr;
+ cpumask_t cpus_mask;
+ };
+with
+ t->cpus_allowed_ptr = &t->cpus_allowed;
+
+In -RT we then can switch the cpus_ptr to
+ t->cpus_allowed_ptr = &cpumask_of(task_cpu(p));
+
+in a migration disabled region. The rules are simple:
+- Code that 'uses' ->cpus_allowed would use the pointer.
+- Code that 'modifies' ->cpus_allowed would use the direct mask.
+
+While converting the existing users I tried to stick with the rules
+above however… well mostly CPUFREQ tries to temporary switch the CPU
+mask to do something on a certain CPU and then switches the mask back it
+its original value. So in theory `cpus_ptr' could or should be used.
+However if this is invoked in a migration disabled region (which is not
+the case because it would require something like preempt_disable() and
+set_cpus_allowed_ptr() might sleep so it can't be) then the "restore"
+part would restore the wrong mask. So it only looks strange and I go for
+the pointer…
+
+Some drivers copy the cpumask without cpumask_copy() and others use
+cpumask_copy but without alloc_cpumask_var(). I did not fix those as
+part of this, could do this as a follow up…
+
+So is this the way we want it?
+Is the usage of `cpus_ptr' vs `cpus_mask' for the set + restore part
+(see cpufreq users) what we want? At some point it looks like they
+should use a different interface for their doing. I am not sure why
+switching to certain CPU is important but maybe it could be done via a
+workqueue from the CPUFREQ core (so we have a comment desribing why are
+doing this and a get_online_cpus() to ensure that the CPU does not go
+offline too early).
+
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Cc: Mike Galbraith <efault@gmx.de>
+Cc: Ingo Molnar <mingo@elte.hu>
+Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/ia64/kernel/mca.c | 2 +-
+ arch/mips/include/asm/switch_to.h | 4 +--
+ arch/mips/kernel/mips-mt-fpaff.c | 2 +-
+ arch/mips/kernel/traps.c | 6 ++--
+ arch/powerpc/platforms/cell/spufs/sched.c | 2 +-
+ arch/x86/kernel/cpu/intel_rdt_pseudo_lock.c | 2 +-
+ drivers/infiniband/hw/hfi1/affinity.c | 6 ++--
+ drivers/infiniband/hw/hfi1/sdma.c | 3 +-
+ drivers/infiniband/hw/qib/qib_file_ops.c | 7 ++--
+ fs/proc/array.c | 4 +--
+ include/linux/sched.h | 5 +--
+ init/init_task.c | 3 +-
+ kernel/cgroup/cpuset.c | 2 +-
+ kernel/fork.c | 2 ++
+ kernel/sched/core.c | 40 ++++++++++-----------
+ kernel/sched/cpudeadline.c | 4 +--
+ kernel/sched/cpupri.c | 4 +--
+ kernel/sched/deadline.c | 6 ++--
+ kernel/sched/fair.c | 32 ++++++++---------
+ kernel/sched/rt.c | 4 +--
+ kernel/trace/trace_hwlat.c | 2 +-
+ lib/smp_processor_id.c | 2 +-
+ samples/trace_events/trace-events-sample.c | 2 +-
+ 23 files changed, 74 insertions(+), 72 deletions(-)
+
+diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c
+index d7400b2844f1..40abc24b3b02 100644
+--- a/arch/ia64/kernel/mca.c
++++ b/arch/ia64/kernel/mca.c
+@@ -1824,7 +1824,7 @@ format_mca_init_stack(void *mca_data, unsigned long offset,
+ ti->cpu = cpu;
+ p->stack = ti;
+ p->state = TASK_UNINTERRUPTIBLE;
+- cpumask_set_cpu(cpu, &p->cpus_allowed);
++ cpumask_set_cpu(cpu, &p->cpus_mask);
+ INIT_LIST_HEAD(&p->tasks);
+ p->parent = p->real_parent = p->group_leader = p;
+ INIT_LIST_HEAD(&p->children);
+diff --git a/arch/mips/include/asm/switch_to.h b/arch/mips/include/asm/switch_to.h
+index e610473d61b8..1428b4febbc9 100644
+--- a/arch/mips/include/asm/switch_to.h
++++ b/arch/mips/include/asm/switch_to.h
+@@ -42,7 +42,7 @@ extern struct task_struct *ll_task;
+ * inline to try to keep the overhead down. If we have been forced to run on
+ * a "CPU" with an FPU because of a previous high level of FP computation,
+ * but did not actually use the FPU during the most recent time-slice (CU1
+- * isn't set), we undo the restriction on cpus_allowed.
++ * isn't set), we undo the restriction on cpus_mask.
+ *
+ * We're not calling set_cpus_allowed() here, because we have no need to
+ * force prompt migration - we're already switching the current CPU to a
+@@ -57,7 +57,7 @@ do { \
+ test_ti_thread_flag(__prev_ti, TIF_FPUBOUND) && \
+ (!(KSTK_STATUS(prev) & ST0_CU1))) { \
+ clear_ti_thread_flag(__prev_ti, TIF_FPUBOUND); \
+- prev->cpus_allowed = prev->thread.user_cpus_allowed; \
++ prev->cpus_mask = prev->thread.user_cpus_allowed; \
+ } \
+ next->thread.emulated_fp = 0; \
+ } while(0)
+diff --git a/arch/mips/kernel/mips-mt-fpaff.c b/arch/mips/kernel/mips-mt-fpaff.c
+index a7c0f97e4b0d..1a08428eedcf 100644
+--- a/arch/mips/kernel/mips-mt-fpaff.c
++++ b/arch/mips/kernel/mips-mt-fpaff.c
+@@ -177,7 +177,7 @@ asmlinkage long mipsmt_sys_sched_getaffinity(pid_t pid, unsigned int len,
+ if (retval)
+ goto out_unlock;
+
+- cpumask_or(&allowed, &p->thread.user_cpus_allowed, &p->cpus_allowed);
++ cpumask_or(&allowed, &p->thread.user_cpus_allowed, p->cpus_ptr);
+ cpumask_and(&mask, &allowed, cpu_active_mask);
+
+ out_unlock:
+diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
+index 0ca4185cc5e3..97bf5291130a 100644
+--- a/arch/mips/kernel/traps.c
++++ b/arch/mips/kernel/traps.c
+@@ -1174,12 +1174,12 @@ static void mt_ase_fp_affinity(void)
+ * restricted the allowed set to exclude any CPUs with FPUs,
+ * we'll skip the procedure.
+ */
+- if (cpumask_intersects(&current->cpus_allowed, &mt_fpu_cpumask)) {
++ if (cpumask_intersects(&current->cpus_mask, &mt_fpu_cpumask)) {
+ cpumask_t tmask;
+
+ current->thread.user_cpus_allowed
+- = current->cpus_allowed;
+- cpumask_and(&tmask, &current->cpus_allowed,
++ = current->cpus_mask;
++ cpumask_and(&tmask, &current->cpus_mask,
+ &mt_fpu_cpumask);
+ set_cpus_allowed_ptr(current, &tmask);
+ set_thread_flag(TIF_FPUBOUND);
+diff --git a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c
+index c9ef3c532169..cb10249b1125 100644
+--- a/arch/powerpc/platforms/cell/spufs/sched.c
++++ b/arch/powerpc/platforms/cell/spufs/sched.c
+@@ -141,7 +141,7 @@ void __spu_update_sched_info(struct spu_context *ctx)
+ * runqueue. The context will be rescheduled on the proper node
+ * if it is timesliced or preempted.
+ */
+- cpumask_copy(&ctx->cpus_allowed, &current->cpus_allowed);
++ cpumask_copy(&ctx->cpus_allowed, current->cpus_ptr);
+
+ /* Save the current cpu id for spu interrupt routing. */
+ ctx->last_ran = raw_smp_processor_id();
+diff --git a/arch/x86/kernel/cpu/intel_rdt_pseudo_lock.c b/arch/x86/kernel/cpu/intel_rdt_pseudo_lock.c
+index a999a58ca331..d6410d0740ea 100644
+--- a/arch/x86/kernel/cpu/intel_rdt_pseudo_lock.c
++++ b/arch/x86/kernel/cpu/intel_rdt_pseudo_lock.c
+@@ -1445,7 +1445,7 @@ static int pseudo_lock_dev_mmap(struct file *filp, struct vm_area_struct *vma)
+ * may be scheduled elsewhere and invalidate entries in the
+ * pseudo-locked region.
+ */
+- if (!cpumask_subset(&current->cpus_allowed, &plr->d->cpu_mask)) {
++ if (!cpumask_subset(current->cpus_ptr, &plr->d->cpu_mask)) {
+ mutex_unlock(&rdtgroup_mutex);
+ return -EINVAL;
+ }
+diff --git a/drivers/infiniband/hw/hfi1/affinity.c b/drivers/infiniband/hw/hfi1/affinity.c
+index 01ed0a667928..2c62de6b5bf1 100644
+--- a/drivers/infiniband/hw/hfi1/affinity.c
++++ b/drivers/infiniband/hw/hfi1/affinity.c
+@@ -1039,7 +1039,7 @@ int hfi1_get_proc_affinity(int node)
+ struct hfi1_affinity_node *entry;
+ cpumask_var_t diff, hw_thread_mask, available_mask, intrs_mask;
+ const struct cpumask *node_mask,
+- *proc_mask = &current->cpus_allowed;
++ *proc_mask = current->cpus_ptr;
+ struct hfi1_affinity_node_list *affinity = &node_affinity;
+ struct cpu_mask_set *set = &affinity->proc;
+
+@@ -1047,7 +1047,7 @@ int hfi1_get_proc_affinity(int node)
+ * check whether process/context affinity has already
+ * been set
+ */
+- if (cpumask_weight(proc_mask) == 1) {
++ if (current->nr_cpus_allowed == 1) {
+ hfi1_cdbg(PROC, "PID %u %s affinity set to CPU %*pbl",
+ current->pid, current->comm,
+ cpumask_pr_args(proc_mask));
+@@ -1058,7 +1058,7 @@ int hfi1_get_proc_affinity(int node)
+ cpu = cpumask_first(proc_mask);
+ cpumask_set_cpu(cpu, &set->used);
+ goto done;
+- } else if (cpumask_weight(proc_mask) < cpumask_weight(&set->mask)) {
++ } else if (current->nr_cpus_allowed < cpumask_weight(&set->mask)) {
+ hfi1_cdbg(PROC, "PID %u %s affinity set to CPU set(s) %*pbl",
+ current->pid, current->comm,
+ cpumask_pr_args(proc_mask));
+diff --git a/drivers/infiniband/hw/hfi1/sdma.c b/drivers/infiniband/hw/hfi1/sdma.c
+index 38258de75a94..3ee680fc3fda 100644
+--- a/drivers/infiniband/hw/hfi1/sdma.c
++++ b/drivers/infiniband/hw/hfi1/sdma.c
+@@ -853,14 +853,13 @@ struct sdma_engine *sdma_select_user_engine(struct hfi1_devdata *dd,
+ {
+ struct sdma_rht_node *rht_node;
+ struct sdma_engine *sde = NULL;
+- const struct cpumask *current_mask = &current->cpus_allowed;
+ unsigned long cpu_id;
+
+ /*
+ * To ensure that always the same sdma engine(s) will be
+ * selected make sure the process is pinned to this CPU only.
+ */
+- if (cpumask_weight(current_mask) != 1)
++ if (current->nr_cpus_allowed != 1)
+ goto out;
+
+ cpu_id = smp_processor_id();
+diff --git a/drivers/infiniband/hw/qib/qib_file_ops.c b/drivers/infiniband/hw/qib/qib_file_ops.c
+index 98e1ce14fa2a..5d3828625017 100644
+--- a/drivers/infiniband/hw/qib/qib_file_ops.c
++++ b/drivers/infiniband/hw/qib/qib_file_ops.c
+@@ -1142,7 +1142,7 @@ static __poll_t qib_poll(struct file *fp, struct poll_table_struct *pt)
+ static void assign_ctxt_affinity(struct file *fp, struct qib_devdata *dd)
+ {
+ struct qib_filedata *fd = fp->private_data;
+- const unsigned int weight = cpumask_weight(&current->cpus_allowed);
++ const unsigned int weight = current->nr_cpus_allowed;
+ const struct cpumask *local_mask = cpumask_of_pcibus(dd->pcidev->bus);
+ int local_cpu;
+
+@@ -1623,9 +1623,8 @@ static int qib_assign_ctxt(struct file *fp, const struct qib_user_info *uinfo)
+ ret = find_free_ctxt(i_minor - 1, fp, uinfo);
+ else {
+ int unit;
+- const unsigned int cpu = cpumask_first(&current->cpus_allowed);
+- const unsigned int weight =
+- cpumask_weight(&current->cpus_allowed);
++ const unsigned int cpu = cpumask_first(current->cpus_ptr);
++ const unsigned int weight = current->nr_cpus_allowed;
+
+ if (weight == 1 && !test_bit(cpu, qib_cpulist))
+ if (!find_hca(cpu, &unit) && unit >= 0)
+diff --git a/fs/proc/array.c b/fs/proc/array.c
+index 9eb99a43f849..e4d0cfebaac5 100644
+--- a/fs/proc/array.c
++++ b/fs/proc/array.c
+@@ -381,9 +381,9 @@ static inline void task_context_switch_counts(struct seq_file *m,
+ static void task_cpus_allowed(struct seq_file *m, struct task_struct *task)
+ {
+ seq_printf(m, "Cpus_allowed:\t%*pb\n",
+- cpumask_pr_args(&task->cpus_allowed));
++ cpumask_pr_args(task->cpus_ptr));
+ seq_printf(m, "Cpus_allowed_list:\t%*pbl\n",
+- cpumask_pr_args(&task->cpus_allowed));
++ cpumask_pr_args(task->cpus_ptr));
+ }
+
+ static inline void task_core_dumping(struct seq_file *m, struct mm_struct *mm)
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index f92d5ae6d04e..fc5f476c2aca 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -660,7 +660,8 @@ struct task_struct {
+
+ unsigned int policy;
+ int nr_cpus_allowed;
+- cpumask_t cpus_allowed;
++ const cpumask_t *cpus_ptr;
++ cpumask_t cpus_mask;
+
+ #ifdef CONFIG_PREEMPT_RCU
+ int rcu_read_lock_nesting;
+@@ -1398,7 +1399,7 @@ extern struct pid *cad_pid;
+ #define PF_KTHREAD 0x00200000 /* I am a kernel thread */
+ #define PF_RANDOMIZE 0x00400000 /* Randomize virtual address space */
+ #define PF_SWAPWRITE 0x00800000 /* Allowed to write to swap */
+-#define PF_NO_SETAFFINITY 0x04000000 /* Userland is not allowed to meddle with cpus_allowed */
++#define PF_NO_SETAFFINITY 0x04000000 /* Userland is not allowed to meddle with cpus_mask */
+ #define PF_MCE_EARLY 0x08000000 /* Early kill for mce process policy */
+ #define PF_MUTEX_TESTER 0x20000000 /* Thread belongs to the rt mutex tester */
+ #define PF_FREEZER_SKIP 0x40000000 /* Freezer should not count it as freezable */
+diff --git a/init/init_task.c b/init/init_task.c
+index 994ffe018120..d71054b95528 100644
+--- a/init/init_task.c
++++ b/init/init_task.c
+@@ -71,7 +71,8 @@ struct task_struct init_task
+ .static_prio = MAX_PRIO - 20,
+ .normal_prio = MAX_PRIO - 20,
+ .policy = SCHED_NORMAL,
+- .cpus_allowed = CPU_MASK_ALL,
++ .cpus_ptr = &init_task.cpus_mask,
++ .cpus_mask = CPU_MASK_ALL,
+ .nr_cpus_allowed= NR_CPUS,
+ .mm = NULL,
+ .active_mm = &init_mm,
+diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
+index dcd5755b1fe2..35541e1dfad9 100644
+--- a/kernel/cgroup/cpuset.c
++++ b/kernel/cgroup/cpuset.c
+@@ -2096,7 +2096,7 @@ static void cpuset_fork(struct task_struct *task)
+ if (task_css_is_root(task, cpuset_cgrp_id))
+ return;
+
+- set_cpus_allowed_ptr(task, &current->cpus_allowed);
++ set_cpus_allowed_ptr(task, current->cpus_ptr);
+ task->mems_allowed = current->mems_allowed;
+ }
+
+diff --git a/kernel/fork.c b/kernel/fork.c
+index b65871600507..a18d695259af 100644
+--- a/kernel/fork.c
++++ b/kernel/fork.c
+@@ -850,6 +850,8 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node)
+ #ifdef CONFIG_STACKPROTECTOR
+ tsk->stack_canary = get_random_canary();
+ #endif
++ if (orig->cpus_ptr == &orig->cpus_mask)
++ tsk->cpus_ptr = &tsk->cpus_mask;
+
+ /*
+ * One for us, one for whoever does the "release_task()" (usually
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 32af895bd86b..3fb7638a8863 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -878,7 +878,7 @@ static inline bool is_per_cpu_kthread(struct task_struct *p)
+ */
+ static inline bool is_cpu_allowed(struct task_struct *p, int cpu)
+ {
+- if (!cpumask_test_cpu(cpu, &p->cpus_allowed))
++ if (!cpumask_test_cpu(cpu, p->cpus_ptr))
+ return false;
+
+ if (is_per_cpu_kthread(p))
+@@ -973,7 +973,7 @@ static int migration_cpu_stop(void *data)
+ local_irq_disable();
+ /*
+ * We need to explicitly wake pending tasks before running
+- * __migrate_task() such that we will not miss enforcing cpus_allowed
++ * __migrate_task() such that we will not miss enforcing cpus_ptr
+ * during wakeups, see set_cpus_allowed_ptr()'s TASK_WAKING test.
+ */
+ sched_ttwu_pending();
+@@ -1004,7 +1004,7 @@ static int migration_cpu_stop(void *data)
+ */
+ void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_mask)
+ {
+- cpumask_copy(&p->cpus_allowed, new_mask);
++ cpumask_copy(&p->cpus_mask, new_mask);
+ p->nr_cpus_allowed = cpumask_weight(new_mask);
+ }
+
+@@ -1074,7 +1074,7 @@ static int __set_cpus_allowed_ptr(struct task_struct *p,
+ goto out;
+ }
+
+- if (cpumask_equal(&p->cpus_allowed, new_mask))
++ if (cpumask_equal(p->cpus_ptr, new_mask))
+ goto out;
+
+ dest_cpu = cpumask_any_and(cpu_valid_mask, new_mask);
+@@ -1237,10 +1237,10 @@ static int migrate_swap_stop(void *data)
+ if (task_cpu(arg->src_task) != arg->src_cpu)
+ goto unlock;
+
+- if (!cpumask_test_cpu(arg->dst_cpu, &arg->src_task->cpus_allowed))
++ if (!cpumask_test_cpu(arg->dst_cpu, arg->src_task->cpus_ptr))
+ goto unlock;
+
+- if (!cpumask_test_cpu(arg->src_cpu, &arg->dst_task->cpus_allowed))
++ if (!cpumask_test_cpu(arg->src_cpu, arg->dst_task->cpus_ptr))
+ goto unlock;
+
+ __migrate_swap_task(arg->src_task, arg->dst_cpu);
+@@ -1282,10 +1282,10 @@ int migrate_swap(struct task_struct *cur, struct task_struct *p,
+ if (!cpu_active(arg.src_cpu) || !cpu_active(arg.dst_cpu))
+ goto out;
+
+- if (!cpumask_test_cpu(arg.dst_cpu, &arg.src_task->cpus_allowed))
++ if (!cpumask_test_cpu(arg.dst_cpu, arg.src_task->cpus_ptr))
+ goto out;
+
+- if (!cpumask_test_cpu(arg.src_cpu, &arg.dst_task->cpus_allowed))
++ if (!cpumask_test_cpu(arg.src_cpu, arg.dst_task->cpus_ptr))
+ goto out;
+
+ trace_sched_swap_numa(cur, arg.src_cpu, p, arg.dst_cpu);
+@@ -1430,7 +1430,7 @@ void kick_process(struct task_struct *p)
+ EXPORT_SYMBOL_GPL(kick_process);
+
+ /*
+- * ->cpus_allowed is protected by both rq->lock and p->pi_lock
++ * ->cpus_ptr is protected by both rq->lock and p->pi_lock
+ *
+ * A few notes on cpu_active vs cpu_online:
+ *
+@@ -1470,14 +1470,14 @@ static int select_fallback_rq(int cpu, struct task_struct *p)
+ for_each_cpu(dest_cpu, nodemask) {
+ if (!cpu_active(dest_cpu))
+ continue;
+- if (cpumask_test_cpu(dest_cpu, &p->cpus_allowed))
++ if (cpumask_test_cpu(dest_cpu, p->cpus_ptr))
+ return dest_cpu;
+ }
+ }
+
+ for (;;) {
+ /* Any allowed, online CPU? */
+- for_each_cpu(dest_cpu, &p->cpus_allowed) {
++ for_each_cpu(dest_cpu, p->cpus_ptr) {
+ if (!is_cpu_allowed(p, dest_cpu))
+ continue;
+
+@@ -1521,7 +1521,7 @@ static int select_fallback_rq(int cpu, struct task_struct *p)
+ }
+
+ /*
+- * The caller (fork, wakeup) owns p->pi_lock, ->cpus_allowed is stable.
++ * The caller (fork, wakeup) owns p->pi_lock, ->cpus_ptr is stable.
+ */
+ static inline
+ int select_task_rq(struct task_struct *p, int cpu, int sd_flags, int wake_flags)
+@@ -1531,11 +1531,11 @@ int select_task_rq(struct task_struct *p, int cpu, int sd_flags, int wake_flags)
+ if (p->nr_cpus_allowed > 1)
+ cpu = p->sched_class->select_task_rq(p, cpu, sd_flags, wake_flags);
+ else
+- cpu = cpumask_any(&p->cpus_allowed);
++ cpu = cpumask_any(p->cpus_ptr);
+
+ /*
+ * In order not to call set_task_cpu() on a blocking task we need
+- * to rely on ttwu() to place the task on a valid ->cpus_allowed
++ * to rely on ttwu() to place the task on a valid ->cpus_ptr
+ * CPU.
+ *
+ * Since this is common to all placement strategies, this lives here.
+@@ -2406,7 +2406,7 @@ void wake_up_new_task(struct task_struct *p)
+ #ifdef CONFIG_SMP
+ /*
+ * Fork balancing, do it here and not earlier because:
+- * - cpus_allowed can change in the fork path
++ * - cpus_ptr can change in the fork path
+ * - any previously selected CPU might disappear through hotplug
+ *
+ * Use __set_task_cpu() to avoid calling sched_class::migrate_task_rq,
+@@ -4322,7 +4322,7 @@ static int __sched_setscheduler(struct task_struct *p,
+ * the entire root_domain to become SCHED_DEADLINE. We
+ * will also fail if there's no bandwidth available.
+ */
+- if (!cpumask_subset(span, &p->cpus_allowed) ||
++ if (!cpumask_subset(span, p->cpus_ptr) ||
+ rq->rd->dl_bw.bw == 0) {
+ task_rq_unlock(rq, p, &rf);
+ return -EPERM;
+@@ -4921,7 +4921,7 @@ long sched_getaffinity(pid_t pid, struct cpumask *mask)
+ goto out_unlock;
+
+ raw_spin_lock_irqsave(&p->pi_lock, flags);
+- cpumask_and(mask, &p->cpus_allowed, cpu_active_mask);
++ cpumask_and(mask, &p->cpus_mask, cpu_active_mask);
+ raw_spin_unlock_irqrestore(&p->pi_lock, flags);
+
+ out_unlock:
+@@ -5498,7 +5498,7 @@ int task_can_attach(struct task_struct *p,
+ * allowed nodes is unnecessary. Thus, cpusets are not
+ * applicable for such threads. This prevents checking for
+ * success of set_cpus_allowed_ptr() on all attached tasks
+- * before cpus_allowed may be changed.
++ * before cpus_mask may be changed.
+ */
+ if (p->flags & PF_NO_SETAFFINITY) {
+ ret = -EINVAL;
+@@ -5525,7 +5525,7 @@ int migrate_task_to(struct task_struct *p, int target_cpu)
+ if (curr_cpu == target_cpu)
+ return 0;
+
+- if (!cpumask_test_cpu(target_cpu, &p->cpus_allowed))
++ if (!cpumask_test_cpu(target_cpu, p->cpus_ptr))
+ return -EINVAL;
+
+ /* TODO: This is not properly updating schedstats */
+@@ -5664,7 +5664,7 @@ static void migrate_tasks(struct rq *dead_rq, struct rq_flags *rf)
+ put_prev_task(rq, next);
+
+ /*
+- * Rules for changing task_struct::cpus_allowed are holding
++ * Rules for changing task_struct::cpus_mask are holding
+ * both pi_lock and rq->lock, such that holding either
+ * stabilizes the mask.
+ *
+diff --git a/kernel/sched/cpudeadline.c b/kernel/sched/cpudeadline.c
+index 50316455ea66..d57fb2f8ae67 100644
+--- a/kernel/sched/cpudeadline.c
++++ b/kernel/sched/cpudeadline.c
+@@ -124,14 +124,14 @@ int cpudl_find(struct cpudl *cp, struct task_struct *p,
+ const struct sched_dl_entity *dl_se = &p->dl;
+
+ if (later_mask &&
+- cpumask_and(later_mask, cp->free_cpus, &p->cpus_allowed)) {
++ cpumask_and(later_mask, cp->free_cpus, p->cpus_ptr)) {
+ return 1;
+ } else {
+ int best_cpu = cpudl_maximum(cp);
+
+ WARN_ON(best_cpu != -1 && !cpu_present(best_cpu));
+
+- if (cpumask_test_cpu(best_cpu, &p->cpus_allowed) &&
++ if (cpumask_test_cpu(best_cpu, p->cpus_ptr) &&
+ dl_time_before(dl_se->deadline, cp->elements[0].dl)) {
+ if (later_mask)
+ cpumask_set_cpu(best_cpu, later_mask);
+diff --git a/kernel/sched/cpupri.c b/kernel/sched/cpupri.c
+index daaadf939ccb..f7d2c10b4c92 100644
+--- a/kernel/sched/cpupri.c
++++ b/kernel/sched/cpupri.c
+@@ -98,11 +98,11 @@ int cpupri_find(struct cpupri *cp, struct task_struct *p,
+ if (skip)
+ continue;
+
+- if (cpumask_any_and(&p->cpus_allowed, vec->mask) >= nr_cpu_ids)
++ if (cpumask_any_and(p->cpus_ptr, vec->mask) >= nr_cpu_ids)
+ continue;
+
+ if (lowest_mask) {
+- cpumask_and(lowest_mask, &p->cpus_allowed, vec->mask);
++ cpumask_and(lowest_mask, p->cpus_ptr, vec->mask);
+
+ /*
+ * We have to ensure that we have at least one bit
+diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
+index beec5081a55a..95ebbb2074c7 100644
+--- a/kernel/sched/deadline.c
++++ b/kernel/sched/deadline.c
+@@ -539,7 +539,7 @@ static struct rq *dl_task_offline_migration(struct rq *rq, struct task_struct *p
+ * If we cannot preempt any rq, fall back to pick any
+ * online CPU:
+ */
+- cpu = cpumask_any_and(cpu_active_mask, &p->cpus_allowed);
++ cpu = cpumask_any_and(cpu_active_mask, p->cpus_ptr);
+ if (cpu >= nr_cpu_ids) {
+ /*
+ * Failed to find any suitable CPU.
+@@ -1857,7 +1857,7 @@ static void set_curr_task_dl(struct rq *rq)
+ static int pick_dl_task(struct rq *rq, struct task_struct *p, int cpu)
+ {
+ if (!task_running(rq, p) &&
+- cpumask_test_cpu(cpu, &p->cpus_allowed))
++ cpumask_test_cpu(cpu, p->cpus_ptr))
+ return 1;
+ return 0;
+ }
+@@ -2007,7 +2007,7 @@ static struct rq *find_lock_later_rq(struct task_struct *task, struct rq *rq)
+ /* Retry if something changed. */
+ if (double_lock_balance(rq, later_rq)) {
+ if (unlikely(task_rq(task) != rq ||
+- !cpumask_test_cpu(later_rq->cpu, &task->cpus_allowed) ||
++ !cpumask_test_cpu(later_rq->cpu, task->cpus_ptr) ||
+ task_running(rq, task) ||
+ !dl_task(task) ||
+ !task_on_rq_queued(task))) {
+diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
+index e84a056f783f..16940416d526 100644
+--- a/kernel/sched/fair.c
++++ b/kernel/sched/fair.c
+@@ -1691,7 +1691,7 @@ static void task_numa_compare(struct task_numa_env *env,
+ * be incurred if the tasks were swapped.
+ */
+ /* Skip this swap candidate if cannot move to the source cpu */
+- if (!cpumask_test_cpu(env->src_cpu, &cur->cpus_allowed))
++ if (!cpumask_test_cpu(env->src_cpu, cur->cpus_ptr))
+ goto unlock;
+
+ /*
+@@ -1789,7 +1789,7 @@ static void task_numa_find_cpu(struct task_numa_env *env,
+
+ for_each_cpu(cpu, cpumask_of_node(env->dst_nid)) {
+ /* Skip this CPU if the source task cannot migrate */
+- if (!cpumask_test_cpu(cpu, &env->p->cpus_allowed))
++ if (!cpumask_test_cpu(cpu, env->p->cpus_ptr))
+ continue;
+
+ env->dst_cpu = cpu;
+@@ -5803,7 +5803,7 @@ find_idlest_group(struct sched_domain *sd, struct task_struct *p,
+
+ /* Skip over this group if it has no CPUs allowed */
+ if (!cpumask_intersects(sched_group_span(group),
+- &p->cpus_allowed))
++ p->cpus_ptr))
+ continue;
+
+ local_group = cpumask_test_cpu(this_cpu,
+@@ -5935,7 +5935,7 @@ find_idlest_group_cpu(struct sched_group *group, struct task_struct *p, int this
+ return cpumask_first(sched_group_span(group));
+
+ /* Traverse only the allowed CPUs */
+- for_each_cpu_and(i, sched_group_span(group), &p->cpus_allowed) {
++ for_each_cpu_and(i, sched_group_span(group), p->cpus_ptr) {
+ if (available_idle_cpu(i)) {
+ struct rq *rq = cpu_rq(i);
+ struct cpuidle_state *idle = idle_get_state(rq);
+@@ -5975,7 +5975,7 @@ static inline int find_idlest_cpu(struct sched_domain *sd, struct task_struct *p
+ {
+ int new_cpu = cpu;
+
+- if (!cpumask_intersects(sched_domain_span(sd), &p->cpus_allowed))
++ if (!cpumask_intersects(sched_domain_span(sd), p->cpus_ptr))
+ return prev_cpu;
+
+ /*
+@@ -6092,7 +6092,7 @@ static int select_idle_core(struct task_struct *p, struct sched_domain *sd, int
+ if (!test_idle_cores(target, false))
+ return -1;
+
+- cpumask_and(cpus, sched_domain_span(sd), &p->cpus_allowed);
++ cpumask_and(cpus, sched_domain_span(sd), p->cpus_ptr);
+
+ for_each_cpu_wrap(core, cpus, target) {
+ bool idle = true;
+@@ -6126,7 +6126,7 @@ static int select_idle_smt(struct task_struct *p, struct sched_domain *sd, int t
+ return -1;
+
+ for_each_cpu(cpu, cpu_smt_mask(target)) {
+- if (!cpumask_test_cpu(cpu, &p->cpus_allowed))
++ if (!cpumask_test_cpu(cpu, p->cpus_ptr))
+ continue;
+ if (available_idle_cpu(cpu))
+ return cpu;
+@@ -6187,7 +6187,7 @@ static int select_idle_cpu(struct task_struct *p, struct sched_domain *sd, int t
+
+ time = local_clock();
+
+- cpumask_and(cpus, sched_domain_span(sd), &p->cpus_allowed);
++ cpumask_and(cpus, sched_domain_span(sd), p->cpus_ptr);
+
+ for_each_cpu_wrap(cpu, cpus, target) {
+ if (!--nr)
+@@ -6227,7 +6227,7 @@ static int select_idle_sibling(struct task_struct *p, int prev, int target)
+ recent_used_cpu != target &&
+ cpus_share_cache(recent_used_cpu, target) &&
+ available_idle_cpu(recent_used_cpu) &&
+- cpumask_test_cpu(p->recent_used_cpu, &p->cpus_allowed)) {
++ cpumask_test_cpu(p->recent_used_cpu, p->cpus_ptr)) {
+ /*
+ * Replace recent_used_cpu with prev as it is a potential
+ * candidate for the next wake:
+@@ -6445,7 +6445,7 @@ select_task_rq_fair(struct task_struct *p, int prev_cpu, int sd_flag, int wake_f
+ if (sd_flag & SD_BALANCE_WAKE) {
+ record_wakee(p);
+ want_affine = !wake_wide(p) && !wake_cap(p, cpu, prev_cpu)
+- && cpumask_test_cpu(cpu, &p->cpus_allowed);
++ && cpumask_test_cpu(cpu, p->cpus_ptr);
+ }
+
+ rcu_read_lock();
+@@ -7184,14 +7184,14 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env)
+ /*
+ * We do not migrate tasks that are:
+ * 1) throttled_lb_pair, or
+- * 2) cannot be migrated to this CPU due to cpus_allowed, or
++ * 2) cannot be migrated to this CPU due to cpus_ptr, or
+ * 3) running (obviously), or
+ * 4) are cache-hot on their current CPU.
+ */
+ if (throttled_lb_pair(task_group(p), env->src_cpu, env->dst_cpu))
+ return 0;
+
+- if (!cpumask_test_cpu(env->dst_cpu, &p->cpus_allowed)) {
++ if (!cpumask_test_cpu(env->dst_cpu, p->cpus_ptr)) {
+ int cpu;
+
+ schedstat_inc(p->se.statistics.nr_failed_migrations_affine);
+@@ -7211,7 +7211,7 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env)
+
+ /* Prevent to re-select dst_cpu via env's CPUs: */
+ for_each_cpu_and(cpu, env->dst_grpmask, env->cpus) {
+- if (cpumask_test_cpu(cpu, &p->cpus_allowed)) {
++ if (cpumask_test_cpu(cpu, p->cpus_ptr)) {
+ env->flags |= LBF_DST_PINNED;
+ env->new_dst_cpu = cpu;
+ break;
+@@ -7836,7 +7836,7 @@ check_cpu_capacity(struct rq *rq, struct sched_domain *sd)
+
+ /*
+ * Group imbalance indicates (and tries to solve) the problem where balancing
+- * groups is inadequate due to ->cpus_allowed constraints.
++ * groups is inadequate due to ->cpus_ptr constraints.
+ *
+ * Imagine a situation of two groups of 4 CPUs each and 4 tasks each with a
+ * cpumask covering 1 CPU of the first group and 3 CPUs of the second group.
+@@ -8451,7 +8451,7 @@ static struct sched_group *find_busiest_group(struct lb_env *env)
+ /*
+ * If the busiest group is imbalanced the below checks don't
+ * work because they assume all things are equal, which typically
+- * isn't true due to cpus_allowed constraints and the like.
++ * isn't true due to cpus_ptr constraints and the like.
+ */
+ if (busiest->group_type == group_imbalanced)
+ goto force_balance;
+@@ -8847,7 +8847,7 @@ static int load_balance(int this_cpu, struct rq *this_rq,
+ * if the curr task on busiest CPU can't be
+ * moved to this_cpu:
+ */
+- if (!cpumask_test_cpu(this_cpu, &busiest->curr->cpus_allowed)) {
++ if (!cpumask_test_cpu(this_cpu, busiest->curr->cpus_ptr)) {
+ raw_spin_unlock_irqrestore(&busiest->lock,
+ flags);
+ env.flags |= LBF_ALL_PINNED;
+diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
+index 70e8cd395474..52b55144d8ad 100644
+--- a/kernel/sched/rt.c
++++ b/kernel/sched/rt.c
+@@ -1620,7 +1620,7 @@ static void put_prev_task_rt(struct rq *rq, struct task_struct *p)
+ static int pick_rt_task(struct rq *rq, struct task_struct *p, int cpu)
+ {
+ if (!task_running(rq, p) &&
+- cpumask_test_cpu(cpu, &p->cpus_allowed))
++ cpumask_test_cpu(cpu, p->cpus_ptr))
+ return 1;
+
+ return 0;
+@@ -1757,7 +1757,7 @@ static struct rq *find_lock_lowest_rq(struct task_struct *task, struct rq *rq)
+ * Also make sure that it wasn't scheduled on its rq.
+ */
+ if (unlikely(task_rq(task) != rq ||
+- !cpumask_test_cpu(lowest_rq->cpu, &task->cpus_allowed) ||
++ !cpumask_test_cpu(lowest_rq->cpu, task->cpus_ptr) ||
+ task_running(rq, task) ||
+ !rt_task(task) ||
+ !task_on_rq_queued(task))) {
+diff --git a/kernel/trace/trace_hwlat.c b/kernel/trace/trace_hwlat.c
+index ade6c3070c62..164e5c618cce 100644
+--- a/kernel/trace/trace_hwlat.c
++++ b/kernel/trace/trace_hwlat.c
+@@ -280,7 +280,7 @@ static void move_to_next_cpu(void)
+ * of this thread, than stop migrating for the duration
+ * of the current test.
+ */
+- if (!cpumask_equal(current_mask, &current->cpus_allowed))
++ if (!cpumask_equal(current_mask, current->cpus_ptr))
+ goto disable;
+
+ get_online_cpus();
+diff --git a/lib/smp_processor_id.c b/lib/smp_processor_id.c
+index 85925aaa4fff..fb35c45b9421 100644
+--- a/lib/smp_processor_id.c
++++ b/lib/smp_processor_id.c
+@@ -22,7 +22,7 @@ notrace static unsigned int check_preemption_disabled(const char *what1,
+ * Kernel threads bound to a single CPU can safely use
+ * smp_processor_id():
+ */
+- if (cpumask_equal(&current->cpus_allowed, cpumask_of(this_cpu)))
++ if (cpumask_equal(current->cpus_ptr, cpumask_of(this_cpu)))
+ goto out;
+
+ /*
+diff --git a/samples/trace_events/trace-events-sample.c b/samples/trace_events/trace-events-sample.c
+index 5522692100ba..8b4be8e1802a 100644
+--- a/samples/trace_events/trace-events-sample.c
++++ b/samples/trace_events/trace-events-sample.c
+@@ -33,7 +33,7 @@ static void simple_thread_func(int cnt)
+
+ /* Silly tracepoints */
+ trace_foo_bar("hello", cnt, array, random_strings[len],
+- &current->cpus_allowed);
++ current->cpus_ptr);
+
+ trace_foo_with_template_simple("HELLO", cnt);
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0027-kernel-sched-core-add-migrate_disable.patch b/debian/patches-rt/0027-kernel-sched-core-add-migrate_disable.patch
new file mode 100644
index 000000000..bd257b53a
--- /dev/null
+++ b/debian/patches-rt/0027-kernel-sched-core-add-migrate_disable.patch
@@ -0,0 +1,266 @@
+From 842b16f6165e848057d292bb2e2a17a5c143bc55 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Sat, 27 May 2017 19:02:06 +0200
+Subject: [PATCH 027/347] kernel/sched/core: add migrate_disable()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+---
+ include/linux/preempt.h | 23 +++++++
+ include/linux/sched.h | 7 +++
+ include/linux/smp.h | 3 +
+ kernel/sched/core.c | 130 +++++++++++++++++++++++++++++++++++++++-
+ kernel/sched/debug.c | 4 ++
+ 5 files changed, 165 insertions(+), 2 deletions(-)
+
+diff --git a/include/linux/preempt.h b/include/linux/preempt.h
+index c01813c3fbe9..3196d0e76719 100644
+--- a/include/linux/preempt.h
++++ b/include/linux/preempt.h
+@@ -185,6 +185,22 @@ do { \
+
+ #define preemptible() (preempt_count() == 0 && !irqs_disabled())
+
++#ifdef CONFIG_SMP
++
++extern void migrate_disable(void);
++extern void migrate_enable(void);
++
++int __migrate_disabled(struct task_struct *p);
++
++#else
++#define migrate_disable() barrier()
++#define migrate_enable() barrier()
++static inline int __migrate_disabled(struct task_struct *p)
++{
++ return 0;
++}
++#endif
++
+ #ifdef CONFIG_PREEMPT
+ #define preempt_enable() \
+ do { \
+@@ -253,6 +269,13 @@ do { \
+ #define preempt_enable_notrace() barrier()
+ #define preemptible() 0
+
++#define migrate_disable() barrier()
++#define migrate_enable() barrier()
++
++static inline int __migrate_disabled(struct task_struct *p)
++{
++ return 0;
++}
+ #endif /* CONFIG_PREEMPT_COUNT */
+
+ #ifdef MODULE
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index fc5f476c2aca..52069b9ddce8 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -662,6 +662,13 @@ struct task_struct {
+ int nr_cpus_allowed;
+ const cpumask_t *cpus_ptr;
+ cpumask_t cpus_mask;
++#if defined(CONFIG_PREEMPT_COUNT) && defined(CONFIG_SMP)
++ int migrate_disable;
++ int migrate_disable_update;
++# ifdef CONFIG_SCHED_DEBUG
++ int migrate_disable_atomic;
++# endif
++#endif
+
+ #ifdef CONFIG_PREEMPT_RCU
+ int rcu_read_lock_nesting;
+diff --git a/include/linux/smp.h b/include/linux/smp.h
+index 6bb7f07bc1dd..039da089482c 100644
+--- a/include/linux/smp.h
++++ b/include/linux/smp.h
+@@ -202,6 +202,9 @@ static inline int get_boot_cpu_id(void)
+ #define get_cpu() ({ preempt_disable(); smp_processor_id(); })
+ #define put_cpu() preempt_enable()
+
++#define get_cpu_light() ({ migrate_disable(); smp_processor_id(); })
++#define put_cpu_light() migrate_enable()
++
+ /*
+ * Callback to arch code if there's nosmp or maxcpus=0 on the
+ * boot command line:
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 3fb7638a8863..5a691d2bfbfe 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -1008,7 +1008,15 @@ void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_ma
+ p->nr_cpus_allowed = cpumask_weight(new_mask);
+ }
+
+-void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
++#if defined(CONFIG_PREEMPT_COUNT) && defined(CONFIG_SMP)
++int __migrate_disabled(struct task_struct *p)
++{
++ return p->migrate_disable;
++}
++#endif
++
++static void __do_set_cpus_allowed_tail(struct task_struct *p,
++ const struct cpumask *new_mask)
+ {
+ struct rq *rq = task_rq(p);
+ bool queued, running;
+@@ -1037,6 +1045,20 @@ void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
+ set_curr_task(rq, p);
+ }
+
++void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
++{
++#if defined(CONFIG_PREEMPT_COUNT) && defined(CONFIG_SMP)
++ if (__migrate_disabled(p)) {
++ lockdep_assert_held(&p->pi_lock);
++
++ cpumask_copy(&p->cpus_mask, new_mask);
++ p->migrate_disable_update = 1;
++ return;
++ }
++#endif
++ __do_set_cpus_allowed_tail(p, new_mask);
++}
++
+ /*
+ * Change a given task's CPU affinity. Migrate the thread to a
+ * proper CPU and schedule it away if the CPU it's executing on
+@@ -1096,9 +1118,16 @@ static int __set_cpus_allowed_ptr(struct task_struct *p,
+ }
+
+ /* Can the task run on the task's current CPU? If so, we're done */
+- if (cpumask_test_cpu(task_cpu(p), new_mask))
++ if (cpumask_test_cpu(task_cpu(p), new_mask) || __migrate_disabled(p))
+ goto out;
+
++#if defined(CONFIG_PREEMPT_COUNT) && defined(CONFIG_SMP)
++ if (__migrate_disabled(p)) {
++ p->migrate_disable_update = 1;
++ goto out;
++ }
++#endif
++
+ if (task_running(rq, p) || p->state == TASK_WAKING) {
+ struct migration_arg arg = { p, dest_cpu };
+ /* Need help from migration thread: drop lock and wait. */
+@@ -7108,3 +7137,100 @@ const u32 sched_prio_to_wmult[40] = {
+ };
+
+ #undef CREATE_TRACE_POINTS
++
++#if defined(CONFIG_PREEMPT_COUNT) && defined(CONFIG_SMP)
++
++void migrate_disable(void)
++{
++ struct task_struct *p = current;
++
++ if (in_atomic() || irqs_disabled()) {
++#ifdef CONFIG_SCHED_DEBUG
++ p->migrate_disable_atomic++;
++#endif
++ return;
++ }
++#ifdef CONFIG_SCHED_DEBUG
++ WARN_ON_ONCE(p->migrate_disable_atomic);
++#endif
++
++ if (p->migrate_disable) {
++ p->migrate_disable++;
++ return;
++ }
++
++ preempt_disable();
++ p->migrate_disable = 1;
++
++ p->cpus_ptr = cpumask_of(smp_processor_id());
++ p->nr_cpus_allowed = 1;
++
++ preempt_enable();
++}
++EXPORT_SYMBOL(migrate_disable);
++
++void migrate_enable(void)
++{
++ struct task_struct *p = current;
++
++ if (in_atomic() || irqs_disabled()) {
++#ifdef CONFIG_SCHED_DEBUG
++ p->migrate_disable_atomic--;
++#endif
++ return;
++ }
++
++#ifdef CONFIG_SCHED_DEBUG
++ WARN_ON_ONCE(p->migrate_disable_atomic);
++#endif
++
++ WARN_ON_ONCE(p->migrate_disable <= 0);
++ if (p->migrate_disable > 1) {
++ p->migrate_disable--;
++ return;
++ }
++
++ preempt_disable();
++
++ p->cpus_ptr = &p->cpus_mask;
++ p->nr_cpus_allowed = cpumask_weight(&p->cpus_mask);
++ p->migrate_disable = 0;
++
++ if (p->migrate_disable_update) {
++ struct rq *rq;
++ struct rq_flags rf;
++
++ rq = task_rq_lock(p, &rf);
++ update_rq_clock(rq);
++
++ __do_set_cpus_allowed_tail(p, &p->cpus_mask);
++ task_rq_unlock(rq, p, &rf);
++
++ p->migrate_disable_update = 0;
++
++ WARN_ON(smp_processor_id() != task_cpu(p));
++ if (!cpumask_test_cpu(task_cpu(p), &p->cpus_mask)) {
++ const struct cpumask *cpu_valid_mask = cpu_active_mask;
++ struct migration_arg arg;
++ unsigned int dest_cpu;
++
++ if (p->flags & PF_KTHREAD) {
++ /*
++ * Kernel threads are allowed on online && !active CPUs
++ */
++ cpu_valid_mask = cpu_online_mask;
++ }
++ dest_cpu = cpumask_any_and(cpu_valid_mask, &p->cpus_mask);
++ arg.task = p;
++ arg.dest_cpu = dest_cpu;
++
++ preempt_enable();
++ stop_one_cpu(task_cpu(p), migration_cpu_stop, &arg);
++ tlb_migrate_finish(p->mm);
++ return;
++ }
++ }
++ preempt_enable();
++}
++EXPORT_SYMBOL(migrate_enable);
++#endif
+diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c
+index b1ef4f2e7edc..dc3f3e6fa0bd 100644
+--- a/kernel/sched/debug.c
++++ b/kernel/sched/debug.c
+@@ -988,6 +988,10 @@ void proc_sched_show_task(struct task_struct *p, struct pid_namespace *ns,
+ P(dl.runtime);
+ P(dl.deadline);
+ }
++#if defined(CONFIG_PREEMPT_COUNT) && defined(CONFIG_SMP)
++ P(migrate_disable);
++#endif
++ P(nr_cpus_allowed);
+ #undef PN_SCHEDSTAT
+ #undef PN
+ #undef __PN
+--
+2.36.1
+
diff --git a/debian/patches-rt/0028-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch b/debian/patches-rt/0028-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch
new file mode 100644
index 000000000..f4980bd69
--- /dev/null
+++ b/debian/patches-rt/0028-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch
@@ -0,0 +1,38 @@
+From 4df960200f0e46c435a32baad0ba0e90ec8db1a5 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 9 Oct 2018 17:34:50 +0200
+Subject: [PATCH 028/347] sched/migrate_disable: Add export_symbol_gpl for
+ __migrate_disabled
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Jonathan reported that lttng/modules can't use __migrate_disabled().
+This function is only used by sched/core itself and the tracing
+infrastructure to report the migrate counter (lttng does probably the
+same). Since the rework migrate_disable() it moved from sched.h to
+preempt.h and is became an exported function instead of a "static
+inline" due to the header recursion of preempt vs sched.
+
+Since the compiler inlines the function for sched/core usage, add a
+EXPORT_SYMBOL_GPL to allow the module/LTTNG usage.
+
+Reported-by: Jonathan Rajott <jonathan.rajotte-julien@efficios.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/sched/core.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 5a691d2bfbfe..0a51a66f5a63 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -1013,6 +1013,7 @@ int __migrate_disabled(struct task_struct *p)
+ {
+ return p->migrate_disable;
+ }
++EXPORT_SYMBOL_GPL(__migrate_disabled);
+ #endif
+
+ static void __do_set_cpus_allowed_tail(struct task_struct *p,
+--
+2.36.1
+
diff --git a/debian/patches-rt/0029-arm-at91-do-not-disable-enable-clocks-in-a-row.patch b/debian/patches-rt/0029-arm-at91-do-not-disable-enable-clocks-in-a-row.patch
new file mode 100644
index 000000000..8bf2d54e0
--- /dev/null
+++ b/debian/patches-rt/0029-arm-at91-do-not-disable-enable-clocks-in-a-row.patch
@@ -0,0 +1,98 @@
+From 61b697c120be1e50542dfa879ebb522bf834b8d2 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 9 Mar 2016 10:51:06 +0100
+Subject: [PATCH 029/347] arm: at91: do not disable/enable clocks in a row
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Currently the driver will disable the clock and enable it one line later
+if it is switching from periodic mode into one shot.
+This can be avoided and causes a needless warning on -RT.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/clocksource/tcb_clksrc.c | 33 ++++++++++++++++++++++++++++----
+ 1 file changed, 29 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/clocksource/tcb_clksrc.c b/drivers/clocksource/tcb_clksrc.c
+index 43f4d5c4d6fa..de6baf564dfe 100644
+--- a/drivers/clocksource/tcb_clksrc.c
++++ b/drivers/clocksource/tcb_clksrc.c
+@@ -126,6 +126,7 @@ static struct clocksource clksrc = {
+ struct tc_clkevt_device {
+ struct clock_event_device clkevt;
+ struct clk *clk;
++ bool clk_enabled;
+ void __iomem *regs;
+ };
+
+@@ -143,6 +144,24 @@ static struct tc_clkevt_device *to_tc_clkevt(struct clock_event_device *clkevt)
+ */
+ static u32 timer_clock;
+
++static void tc_clk_disable(struct clock_event_device *d)
++{
++ struct tc_clkevt_device *tcd = to_tc_clkevt(d);
++
++ clk_disable(tcd->clk);
++ tcd->clk_enabled = false;
++}
++
++static void tc_clk_enable(struct clock_event_device *d)
++{
++ struct tc_clkevt_device *tcd = to_tc_clkevt(d);
++
++ if (tcd->clk_enabled)
++ return;
++ clk_enable(tcd->clk);
++ tcd->clk_enabled = true;
++}
++
+ static int tc_shutdown(struct clock_event_device *d)
+ {
+ struct tc_clkevt_device *tcd = to_tc_clkevt(d);
+@@ -150,8 +169,14 @@ static int tc_shutdown(struct clock_event_device *d)
+
+ writel(0xff, regs + ATMEL_TC_REG(2, IDR));
+ writel(ATMEL_TC_CLKDIS, regs + ATMEL_TC_REG(2, CCR));
++ return 0;
++}
++
++static int tc_shutdown_clk_off(struct clock_event_device *d)
++{
++ tc_shutdown(d);
+ if (!clockevent_state_detached(d))
+- clk_disable(tcd->clk);
++ tc_clk_disable(d);
+
+ return 0;
+ }
+@@ -164,7 +189,7 @@ static int tc_set_oneshot(struct clock_event_device *d)
+ if (clockevent_state_oneshot(d) || clockevent_state_periodic(d))
+ tc_shutdown(d);
+
+- clk_enable(tcd->clk);
++ tc_clk_enable(d);
+
+ /* slow clock, count up to RC, then irq and stop */
+ writel(timer_clock | ATMEL_TC_CPCSTOP | ATMEL_TC_WAVE |
+@@ -186,7 +211,7 @@ static int tc_set_periodic(struct clock_event_device *d)
+ /* By not making the gentime core emulate periodic mode on top
+ * of oneshot, we get lower overhead and improved accuracy.
+ */
+- clk_enable(tcd->clk);
++ tc_clk_enable(d);
+
+ /* slow clock, count up to RC, then irq and restart */
+ writel(timer_clock | ATMEL_TC_WAVE | ATMEL_TC_WAVESEL_UP_AUTO,
+@@ -220,7 +245,7 @@ static struct tc_clkevt_device clkevt = {
+ /* Should be lower than at91rm9200's system timer */
+ .rating = 125,
+ .set_next_event = tc_next_event,
+- .set_state_shutdown = tc_shutdown,
++ .set_state_shutdown = tc_shutdown_clk_off,
+ .set_state_periodic = tc_set_periodic,
+ .set_state_oneshot = tc_set_oneshot,
+ },
+--
+2.36.1
+
diff --git a/debian/patches-rt/0030-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch b/debian/patches-rt/0030-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch
new file mode 100644
index 000000000..92ac4b1e3
--- /dev/null
+++ b/debian/patches-rt/0030-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch
@@ -0,0 +1,170 @@
+From 785e3ab127a7476bb4da35910092b0d2fd767a47 Mon Sep 17 00:00:00 2001
+From: Benedikt Spranger <b.spranger@linutronix.de>
+Date: Mon, 8 Mar 2010 18:57:04 +0100
+Subject: [PATCH 030/347] clocksource: TCLIB: Allow higher clock rates for
+ clock events
+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/4.19/older/patches-4.19.246-rt110.tar.xz
+
+As default the TCLIB uses the 32KiHz base clock rate for clock events.
+Add a compile time selection to allow higher clock resulution.
+
+(fixed up by Sami Pietikäinen <Sami.Pietikainen@wapice.com>)
+
+Signed-off-by: Benedikt Spranger <b.spranger@linutronix.de>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ drivers/clocksource/tcb_clksrc.c | 36 +++++++++++++++++++-------------
+ drivers/misc/Kconfig | 12 +++++++++--
+ 2 files changed, 31 insertions(+), 17 deletions(-)
+
+diff --git a/drivers/clocksource/tcb_clksrc.c b/drivers/clocksource/tcb_clksrc.c
+index de6baf564dfe..ba15242a6066 100644
+--- a/drivers/clocksource/tcb_clksrc.c
++++ b/drivers/clocksource/tcb_clksrc.c
+@@ -25,8 +25,7 @@
+ * this 32 bit free-running counter. the second channel is not used.
+ *
+ * - The third channel may be used to provide a 16-bit clockevent
+- * source, used in either periodic or oneshot mode. This runs
+- * at 32 KiHZ, and can handle delays of up to two seconds.
++ * source, used in either periodic or oneshot mode.
+ *
+ * A boot clocksource and clockevent source are also currently needed,
+ * unless the relevant platforms (ARM/AT91, AVR32/AT32) are changed so
+@@ -127,6 +126,7 @@ struct tc_clkevt_device {
+ struct clock_event_device clkevt;
+ struct clk *clk;
+ bool clk_enabled;
++ u32 freq;
+ void __iomem *regs;
+ };
+
+@@ -135,13 +135,6 @@ static struct tc_clkevt_device *to_tc_clkevt(struct clock_event_device *clkevt)
+ return container_of(clkevt, struct tc_clkevt_device, clkevt);
+ }
+
+-/* For now, we always use the 32K clock ... this optimizes for NO_HZ,
+- * because using one of the divided clocks would usually mean the
+- * tick rate can never be less than several dozen Hz (vs 0.5 Hz).
+- *
+- * A divided clock could be good for high resolution timers, since
+- * 30.5 usec resolution can seem "low".
+- */
+ static u32 timer_clock;
+
+ static void tc_clk_disable(struct clock_event_device *d)
+@@ -191,7 +184,7 @@ static int tc_set_oneshot(struct clock_event_device *d)
+
+ tc_clk_enable(d);
+
+- /* slow clock, count up to RC, then irq and stop */
++ /* count up to RC, then irq and stop */
+ writel(timer_clock | ATMEL_TC_CPCSTOP | ATMEL_TC_WAVE |
+ ATMEL_TC_WAVESEL_UP_AUTO, regs + ATMEL_TC_REG(2, CMR));
+ writel(ATMEL_TC_CPCS, regs + ATMEL_TC_REG(2, IER));
+@@ -213,10 +206,10 @@ static int tc_set_periodic(struct clock_event_device *d)
+ */
+ tc_clk_enable(d);
+
+- /* slow clock, count up to RC, then irq and restart */
++ /* count up to RC, then irq and restart */
+ writel(timer_clock | ATMEL_TC_WAVE | ATMEL_TC_WAVESEL_UP_AUTO,
+ regs + ATMEL_TC_REG(2, CMR));
+- writel((32768 + HZ / 2) / HZ, tcaddr + ATMEL_TC_REG(2, RC));
++ writel((tcd->freq + HZ / 2) / HZ, tcaddr + ATMEL_TC_REG(2, RC));
+
+ /* Enable clock and interrupts on RC compare */
+ writel(ATMEL_TC_CPCS, regs + ATMEL_TC_REG(2, IER));
+@@ -243,7 +236,11 @@ static struct tc_clkevt_device clkevt = {
+ .features = CLOCK_EVT_FEAT_PERIODIC |
+ CLOCK_EVT_FEAT_ONESHOT,
+ /* Should be lower than at91rm9200's system timer */
++#ifdef CONFIG_ATMEL_TCB_CLKSRC_USE_SLOW_CLOCK
+ .rating = 125,
++#else
++ .rating = 200,
++#endif
+ .set_next_event = tc_next_event,
+ .set_state_shutdown = tc_shutdown_clk_off,
+ .set_state_periodic = tc_set_periodic,
+@@ -265,8 +262,9 @@ static irqreturn_t ch2_irq(int irq, void *handle)
+ return IRQ_NONE;
+ }
+
+-static int __init setup_clkevents(struct atmel_tc *tc, int clk32k_divisor_idx)
++static int __init setup_clkevents(struct atmel_tc *tc, int divisor_idx)
+ {
++ unsigned divisor = atmel_tc_divisors[divisor_idx];
+ int ret;
+ struct clk *t2_clk = tc->clk[2];
+ int irq = tc->irq[2];
+@@ -287,7 +285,11 @@ static int __init setup_clkevents(struct atmel_tc *tc, int clk32k_divisor_idx)
+ clkevt.regs = tc->regs;
+ clkevt.clk = t2_clk;
+
+- timer_clock = clk32k_divisor_idx;
++ timer_clock = divisor_idx;
++ if (!divisor)
++ clkevt.freq = 32768;
++ else
++ clkevt.freq = clk_get_rate(t2_clk) / divisor;
+
+ clkevt.clkevt.cpumask = cpumask_of(0);
+
+@@ -298,7 +300,7 @@ static int __init setup_clkevents(struct atmel_tc *tc, int clk32k_divisor_idx)
+ return ret;
+ }
+
+- clockevents_config_and_register(&clkevt.clkevt, 32768, 1, 0xffff);
++ clockevents_config_and_register(&clkevt.clkevt, clkevt.freq, 1, 0xffff);
+
+ return ret;
+ }
+@@ -435,7 +437,11 @@ static int __init tcb_clksrc_init(void)
+ goto err_disable_t1;
+
+ /* channel 2: periodic and oneshot timer support */
++#ifdef CONFIG_ATMEL_TCB_CLKSRC_USE_SLOW_CLOCK
+ ret = setup_clkevents(tc, clk32k_divisor_idx);
++#else
++ ret = setup_clkevents(tc, best_divisor_idx);
++#endif
+ if (ret)
+ goto err_unregister_clksrc;
+
+diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
+index 3726eacdf65d..0900dec7ec04 100644
+--- a/drivers/misc/Kconfig
++++ b/drivers/misc/Kconfig
+@@ -69,8 +69,7 @@ config ATMEL_TCB_CLKSRC
+ are combined to make a single 32-bit timer.
+
+ When GENERIC_CLOCKEVENTS is defined, the third timer channel
+- may be used as a clock event device supporting oneshot mode
+- (delays of up to two seconds) based on the 32 KiHz clock.
++ may be used as a clock event device supporting oneshot mode.
+
+ config ATMEL_TCB_CLKSRC_BLOCK
+ int
+@@ -83,6 +82,15 @@ config ATMEL_TCB_CLKSRC_BLOCK
+ TC can be used for other purposes, such as PWM generation and
+ interval timing.
+
++config ATMEL_TCB_CLKSRC_USE_SLOW_CLOCK
++ bool "TC Block use 32 KiHz clock"
++ depends on ATMEL_TCB_CLKSRC
++ default y
++ help
++ Select this to use 32 KiHz base clock rate as TC block clock
++ source for clock events.
++
++
+ config DUMMY_IRQ
+ tristate "Dummy IRQ handler"
+ default n
+--
+2.36.1
+
diff --git a/debian/patches-rt/0031-timekeeping-Split-jiffies-seqlock.patch b/debian/patches-rt/0031-timekeeping-Split-jiffies-seqlock.patch
new file mode 100644
index 000000000..0b4af0dee
--- /dev/null
+++ b/debian/patches-rt/0031-timekeeping-Split-jiffies-seqlock.patch
@@ -0,0 +1,171 @@
+From 8af466b69f15bf4b922703f7b7d6bba72f2ae86c Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Thu, 14 Feb 2013 22:36:59 +0100
+Subject: [PATCH 031/347] timekeeping: Split jiffies seqlock
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Replace jiffies_lock seqlock with a simple seqcounter and a rawlock so
+it can be taken in atomic context on RT.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ kernel/time/jiffies.c | 7 ++++---
+ kernel/time/tick-common.c | 10 ++++++----
+ kernel/time/tick-sched.c | 19 ++++++++++++-------
+ kernel/time/timekeeping.c | 6 ++++--
+ kernel/time/timekeeping.h | 3 ++-
+ 5 files changed, 28 insertions(+), 17 deletions(-)
+
+diff --git a/kernel/time/jiffies.c b/kernel/time/jiffies.c
+index 497719127bf9..62acb8914c9e 100644
+--- a/kernel/time/jiffies.c
++++ b/kernel/time/jiffies.c
+@@ -74,7 +74,8 @@ static struct clocksource clocksource_jiffies = {
+ .max_cycles = 10,
+ };
+
+-__cacheline_aligned_in_smp DEFINE_SEQLOCK(jiffies_lock);
++__cacheline_aligned_in_smp DEFINE_RAW_SPINLOCK(jiffies_lock);
++__cacheline_aligned_in_smp seqcount_t jiffies_seq;
+
+ #if (BITS_PER_LONG < 64)
+ u64 get_jiffies_64(void)
+@@ -83,9 +84,9 @@ u64 get_jiffies_64(void)
+ u64 ret;
+
+ do {
+- seq = read_seqbegin(&jiffies_lock);
++ seq = read_seqcount_begin(&jiffies_seq);
+ ret = jiffies_64;
+- } while (read_seqretry(&jiffies_lock, seq));
++ } while (read_seqcount_retry(&jiffies_seq, seq));
+ return ret;
+ }
+ EXPORT_SYMBOL(get_jiffies_64);
+diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c
+index 0a3cc37e4b83..7bd136b646d4 100644
+--- a/kernel/time/tick-common.c
++++ b/kernel/time/tick-common.c
+@@ -80,13 +80,15 @@ int tick_is_oneshot_available(void)
+ static void tick_periodic(int cpu)
+ {
+ if (tick_do_timer_cpu == cpu) {
+- write_seqlock(&jiffies_lock);
++ raw_spin_lock(&jiffies_lock);
++ write_seqcount_begin(&jiffies_seq);
+
+ /* Keep track of the next tick event */
+ tick_next_period = ktime_add(tick_next_period, tick_period);
+
+ do_timer(1);
+- write_sequnlock(&jiffies_lock);
++ write_seqcount_end(&jiffies_seq);
++ raw_spin_unlock(&jiffies_lock);
+ update_wall_time();
+ }
+
+@@ -158,9 +160,9 @@ void tick_setup_periodic(struct clock_event_device *dev, int broadcast)
+ ktime_t next;
+
+ do {
+- seq = read_seqbegin(&jiffies_lock);
++ seq = read_seqcount_begin(&jiffies_seq);
+ next = tick_next_period;
+- } while (read_seqretry(&jiffies_lock, seq));
++ } while (read_seqcount_retry(&jiffies_seq, seq));
+
+ clockevents_switch_state(dev, CLOCK_EVT_STATE_ONESHOT);
+
+diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
+index 48403fb653c2..e774a49176cc 100644
+--- a/kernel/time/tick-sched.c
++++ b/kernel/time/tick-sched.c
+@@ -68,7 +68,8 @@ static void tick_do_update_jiffies64(ktime_t now)
+ return;
+
+ /* Reevaluate with jiffies_lock held */
+- write_seqlock(&jiffies_lock);
++ raw_spin_lock(&jiffies_lock);
++ write_seqcount_begin(&jiffies_seq);
+
+ delta = ktime_sub(now, last_jiffies_update);
+ if (delta >= tick_period) {
+@@ -94,10 +95,12 @@ static void tick_do_update_jiffies64(ktime_t now)
+ /* Keep the tick_next_period variable up to date */
+ tick_next_period = ktime_add(last_jiffies_update, tick_period);
+ } else {
+- write_sequnlock(&jiffies_lock);
++ write_seqcount_end(&jiffies_seq);
++ raw_spin_unlock(&jiffies_lock);
+ return;
+ }
+- write_sequnlock(&jiffies_lock);
++ write_seqcount_end(&jiffies_seq);
++ raw_spin_unlock(&jiffies_lock);
+ update_wall_time();
+ }
+
+@@ -108,12 +111,14 @@ static ktime_t tick_init_jiffy_update(void)
+ {
+ ktime_t period;
+
+- write_seqlock(&jiffies_lock);
++ raw_spin_lock(&jiffies_lock);
++ write_seqcount_begin(&jiffies_seq);
+ /* Did we start the jiffies update yet ? */
+ if (last_jiffies_update == 0)
+ last_jiffies_update = tick_next_period;
+ period = last_jiffies_update;
+- write_sequnlock(&jiffies_lock);
++ write_seqcount_end(&jiffies_seq);
++ raw_spin_unlock(&jiffies_lock);
+ return period;
+ }
+
+@@ -656,10 +661,10 @@ static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu)
+
+ /* Read jiffies and the time when jiffies were updated last */
+ do {
+- seq = read_seqbegin(&jiffies_lock);
++ seq = read_seqcount_begin(&jiffies_seq);
+ basemono = last_jiffies_update;
+ basejiff = jiffies;
+- } while (read_seqretry(&jiffies_lock, seq));
++ } while (read_seqcount_retry(&jiffies_seq, seq));
+ ts->last_jiffies = basejiff;
+ ts->timer_expires_base = basemono;
+
+diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
+index f246818e35db..2cc8a1e8e94f 100644
+--- a/kernel/time/timekeeping.c
++++ b/kernel/time/timekeeping.c
+@@ -2392,8 +2392,10 @@ EXPORT_SYMBOL(hardpps);
+ */
+ void xtime_update(unsigned long ticks)
+ {
+- write_seqlock(&jiffies_lock);
++ raw_spin_lock(&jiffies_lock);
++ write_seqcount_begin(&jiffies_seq);
+ do_timer(ticks);
+- write_sequnlock(&jiffies_lock);
++ write_seqcount_end(&jiffies_seq);
++ raw_spin_unlock(&jiffies_lock);
+ update_wall_time();
+ }
+diff --git a/kernel/time/timekeeping.h b/kernel/time/timekeeping.h
+index 141ab3ab0354..099737f6f10c 100644
+--- a/kernel/time/timekeeping.h
++++ b/kernel/time/timekeeping.h
+@@ -25,7 +25,8 @@ static inline void sched_clock_resume(void) { }
+ extern void do_timer(unsigned long ticks);
+ extern void update_wall_time(void);
+
+-extern seqlock_t jiffies_lock;
++extern raw_spinlock_t jiffies_lock;
++extern seqcount_t jiffies_seq;
+
+ #define CS_NAME_LEN 32
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0032-signal-Revert-ptrace-preempt-magic.patch b/debian/patches-rt/0032-signal-Revert-ptrace-preempt-magic.patch
new file mode 100644
index 000000000..584eaea9c
--- /dev/null
+++ b/debian/patches-rt/0032-signal-Revert-ptrace-preempt-magic.patch
@@ -0,0 +1,38 @@
+From a52b4b412745dea30d5833c35df527de9aceaf70 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 21 Sep 2011 19:57:12 +0200
+Subject: [PATCH 032/347] signal: Revert ptrace preempt magic
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Upstream commit '53da1d9456fe7f8 fix ptrace slowness' is nothing more
+than a bandaid around the ptrace design trainwreck. It's not a
+correctness issue, it's merily a cosmetic bandaid.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ kernel/signal.c | 8 --------
+ 1 file changed, 8 deletions(-)
+
+diff --git a/kernel/signal.c b/kernel/signal.c
+index 4cc3f3ba13a9..23764988b5d1 100644
+--- a/kernel/signal.c
++++ b/kernel/signal.c
+@@ -2099,15 +2099,7 @@ static void ptrace_stop(int exit_code, int why, int clear_code, siginfo_t *info)
+ if (gstop_done && ptrace_reparented(current))
+ do_notify_parent_cldstop(current, false, why);
+
+- /*
+- * Don't want to allow preemption here, because
+- * sys_ptrace() needs this task to be inactive.
+- *
+- * XXX: implement read_unlock_no_resched().
+- */
+- preempt_disable();
+ read_unlock(&tasklist_lock);
+- preempt_enable_no_resched();
+ freezable_schedule();
+ } else {
+ /*
+--
+2.36.1
+
diff --git a/debian/patches-rt/0033-net-sched-Use-msleep-instead-of-yield.patch b/debian/patches-rt/0033-net-sched-Use-msleep-instead-of-yield.patch
new file mode 100644
index 000000000..04ac2a1dd
--- /dev/null
+++ b/debian/patches-rt/0033-net-sched-Use-msleep-instead-of-yield.patch
@@ -0,0 +1,64 @@
+From 6312157ef6ed82e76dfab7c719dc7b5f731eb189 Mon Sep 17 00:00:00 2001
+From: Marc Kleine-Budde <mkl@pengutronix.de>
+Date: Wed, 5 Mar 2014 00:49:47 +0100
+Subject: [PATCH 033/347] net: sched: Use msleep() instead of yield()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+On PREEMPT_RT enabled systems the interrupt handler run as threads at prio 50
+(by default). If a high priority userspace process tries to shut down a busy
+network interface it might spin in a yield loop waiting for the device to
+become idle. With the interrupt thread having a lower priority than the
+looping process it might never be scheduled and so result in a deadlock on UP
+systems.
+
+With Magic SysRq the following backtrace can be produced:
+
+> test_app R running 0 174 168 0x00000000
+> [<c02c7070>] (__schedule+0x220/0x3fc) from [<c02c7870>] (preempt_schedule_irq+0x48/0x80)
+> [<c02c7870>] (preempt_schedule_irq+0x48/0x80) from [<c0008fa8>] (svc_preempt+0x8/0x20)
+> [<c0008fa8>] (svc_preempt+0x8/0x20) from [<c001a984>] (local_bh_enable+0x18/0x88)
+> [<c001a984>] (local_bh_enable+0x18/0x88) from [<c025316c>] (dev_deactivate_many+0x220/0x264)
+> [<c025316c>] (dev_deactivate_many+0x220/0x264) from [<c023be04>] (__dev_close_many+0x64/0xd4)
+> [<c023be04>] (__dev_close_many+0x64/0xd4) from [<c023be9c>] (__dev_close+0x28/0x3c)
+> [<c023be9c>] (__dev_close+0x28/0x3c) from [<c023f7f0>] (__dev_change_flags+0x88/0x130)
+> [<c023f7f0>] (__dev_change_flags+0x88/0x130) from [<c023f904>] (dev_change_flags+0x10/0x48)
+> [<c023f904>] (dev_change_flags+0x10/0x48) from [<c024c140>] (do_setlink+0x370/0x7ec)
+> [<c024c140>] (do_setlink+0x370/0x7ec) from [<c024d2f0>] (rtnl_newlink+0x2b4/0x450)
+> [<c024d2f0>] (rtnl_newlink+0x2b4/0x450) from [<c024cfa0>] (rtnetlink_rcv_msg+0x158/0x1f4)
+> [<c024cfa0>] (rtnetlink_rcv_msg+0x158/0x1f4) from [<c0256740>] (netlink_rcv_skb+0xac/0xc0)
+> [<c0256740>] (netlink_rcv_skb+0xac/0xc0) from [<c024bbd8>] (rtnetlink_rcv+0x18/0x24)
+> [<c024bbd8>] (rtnetlink_rcv+0x18/0x24) from [<c02561b8>] (netlink_unicast+0x13c/0x198)
+> [<c02561b8>] (netlink_unicast+0x13c/0x198) from [<c025651c>] (netlink_sendmsg+0x264/0x2e0)
+> [<c025651c>] (netlink_sendmsg+0x264/0x2e0) from [<c022af98>] (sock_sendmsg+0x78/0x98)
+> [<c022af98>] (sock_sendmsg+0x78/0x98) from [<c022bb50>] (___sys_sendmsg.part.25+0x268/0x278)
+> [<c022bb50>] (___sys_sendmsg.part.25+0x268/0x278) from [<c022cf08>] (__sys_sendmsg+0x48/0x78)
+> [<c022cf08>] (__sys_sendmsg+0x48/0x78) from [<c0009320>] (ret_fast_syscall+0x0/0x2c)
+
+This patch works around the problem by replacing yield() by msleep(1), giving
+the interrupt thread time to finish, similar to other changes contained in the
+rt patch set. Using wait_for_completion() instead would probably be a better
+solution.
+
+
+Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ net/sched/sch_generic.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
+index 7c1b1eff84f4..42a776abdf2f 100644
+--- a/net/sched/sch_generic.c
++++ b/net/sched/sch_generic.c
+@@ -1253,7 +1253,7 @@ void dev_deactivate_many(struct list_head *head)
+ /* Wait for outstanding qdisc_run calls. */
+ list_for_each_entry(dev, head, close_list) {
+ while (some_qdisc_is_busy(dev))
+- yield();
++ msleep(1);
+ /* The new qdisc is assigned at this point so we can safely
+ * unwind stale skb lists and qdisc statistics
+ */
+--
+2.36.1
+
diff --git a/debian/patches-rt/0034-dm-rq-remove-BUG_ON-irqs_disabled-check.patch b/debian/patches-rt/0034-dm-rq-remove-BUG_ON-irqs_disabled-check.patch
new file mode 100644
index 000000000..ee27e4207
--- /dev/null
+++ b/debian/patches-rt/0034-dm-rq-remove-BUG_ON-irqs_disabled-check.patch
@@ -0,0 +1,37 @@
+From 7437113ac72d093e8ee118ccfd6174f199811e3e Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 27 Mar 2018 16:24:15 +0200
+Subject: [PATCH 034/347] dm rq: remove BUG_ON(!irqs_disabled) check
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+In commit 052189a2ec95 ("dm: remove superfluous irq disablement in
+dm_request_fn") the spin_lock_irq() was replaced with spin_lock() + a
+check for disabled interrupts. Later the locking part was removed in
+commit 2eb6e1e3aa87 ("dm: submit stacked requests in irq enabled
+context") but the BUG_ON() check remained.
+
+Since the original purpose for the "are-irqs-off" check is gone (the
+->queue_lock has been removed) remove it.
+
+Cc: Keith Busch <keith.busch@intel.com>
+Cc: Mike Snitzer <snitzer@redhat.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/md/dm-rq.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/drivers/md/dm-rq.c b/drivers/md/dm-rq.c
+index 2957a3763f01..bc8192b4e7b2 100644
+--- a/drivers/md/dm-rq.c
++++ b/drivers/md/dm-rq.c
+@@ -689,7 +689,6 @@ static void dm_old_request_fn(struct request_queue *q)
+ /* Establish tio->ti before queuing work (map_tio_request) */
+ tio->ti = ti;
+ kthread_queue_work(&md->kworker, &tio->work);
+- BUG_ON(!irqs_disabled());
+ }
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0035-usb-do-no-disable-interrupts-in-giveback.patch b/debian/patches-rt/0035-usb-do-no-disable-interrupts-in-giveback.patch
new file mode 100644
index 000000000..07b1ab8e9
--- /dev/null
+++ b/debian/patches-rt/0035-usb-do-no-disable-interrupts-in-giveback.patch
@@ -0,0 +1,46 @@
+From 58c679541448da375ccc262585f3172e913811f3 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 8 Nov 2013 17:34:54 +0100
+Subject: [PATCH 035/347] usb: do no disable interrupts in giveback
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Since commit 94dfd7ed ("USB: HCD: support giveback of URB in tasklet
+context") the USB code disables interrupts before invoking the complete
+callback.
+This should not be required the HCD completes the URBs either in hard-irq
+context or in BH context. Lockdep may report false positives if one has two
+HCDs (one completes in IRQ and the other in BH context) and is using the same
+USB driver (device) with both HCDs. This is safe since the same URBs are never
+mixed with those two HCDs.
+Longeterm we should force all HCDs to complete in the same context.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/usb/core/hcd.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
+index df661460e9f9..1a1487d312d0 100644
+--- a/drivers/usb/core/hcd.c
++++ b/drivers/usb/core/hcd.c
+@@ -1752,7 +1752,6 @@ static void __usb_hcd_giveback_urb(struct urb *urb)
+ struct usb_hcd *hcd = bus_to_hcd(urb->dev->bus);
+ struct usb_anchor *anchor = urb->anchor;
+ int status = urb->unlinked;
+- unsigned long flags;
+
+ urb->hcpriv = NULL;
+ if (unlikely((urb->transfer_flags & URB_SHORT_NOT_OK) &&
+@@ -1780,9 +1779,7 @@ static void __usb_hcd_giveback_urb(struct urb *urb)
+ * and no one may trigger the above deadlock situation when
+ * running complete() in tasklet.
+ */
+- local_irq_save(flags);
+ urb->complete(urb);
+- local_irq_restore(flags);
+
+ usb_anchor_resume_wakeups(anchor);
+ atomic_dec(&urb->use_count);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0036-rt-Provide-PREEMPT_RT_BASE-config-switch.patch b/debian/patches-rt/0036-rt-Provide-PREEMPT_RT_BASE-config-switch.patch
new file mode 100644
index 000000000..06f68e211
--- /dev/null
+++ b/debian/patches-rt/0036-rt-Provide-PREEMPT_RT_BASE-config-switch.patch
@@ -0,0 +1,64 @@
+From a32da1fe301b84a5d1e22c83472290f0f10e8b12 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Fri, 17 Jun 2011 12:39:57 +0200
+Subject: [PATCH 036/347] rt: Provide PREEMPT_RT_BASE config switch
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Introduce PREEMPT_RT_BASE which enables parts of
+PREEMPT_RT_FULL. Forces interrupt threading and enables some of the RT
+substitutions for testing.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ kernel/Kconfig.preempt | 21 ++++++++++++++++++---
+ 1 file changed, 18 insertions(+), 3 deletions(-)
+
+diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt
+index cd1655122ec0..027db5976c2f 100644
+--- a/kernel/Kconfig.preempt
++++ b/kernel/Kconfig.preempt
+@@ -1,3 +1,10 @@
++config PREEMPT
++ bool
++ select PREEMPT_COUNT
++
++config PREEMPT_RT_BASE
++ bool
++ select PREEMPT
+
+ choice
+ prompt "Preemption Model"
+@@ -34,10 +41,10 @@ config PREEMPT_VOLUNTARY
+
+ Select this if you are building a kernel for a desktop system.
+
+-config PREEMPT
++config PREEMPT__LL
+ bool "Preemptible Kernel (Low-Latency Desktop)"
+ depends on !ARCH_NO_PREEMPT
+- select PREEMPT_COUNT
++ select PREEMPT
+ select UNINLINE_SPIN_UNLOCK if !ARCH_INLINE_SPIN_UNLOCK
+ help
+ This option reduces the latency of the kernel by making
+@@ -54,7 +61,15 @@ config PREEMPT
+ embedded system with latency requirements in the milliseconds
+ range.
+
++config PREEMPT_RTB
++ bool "Preemptible Kernel (Basic RT)"
++ select PREEMPT_RT_BASE
++ help
++ This option is basically the same as (Low-Latency Desktop) but
++ enables changes which are preliminary for the full preemptible
++ RT kernel.
++
+ endchoice
+
+ config PREEMPT_COUNT
+- bool
+\ No newline at end of file
++ bool
+--
+2.36.1
+
diff --git a/debian/patches-rt/0037-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch b/debian/patches-rt/0037-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
new file mode 100644
index 000000000..f5e098023
--- /dev/null
+++ b/debian/patches-rt/0037-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
@@ -0,0 +1,76 @@
+From ecd952b9f170afff929edaa1b5b7a172b07881c8 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 14 Dec 2011 01:03:49 +0100
+Subject: [PATCH 037/347] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+There are "valid" GFP_ATOMIC allocations such as
+
+|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:931
+|in_atomic(): 1, irqs_disabled(): 0, pid: 2130, name: tar
+|1 lock held by tar/2130:
+| #0: (&mm->mmap_sem){++++++}, at: [<ffffffff811d4e89>] SyS_brk+0x39/0x190
+|Preemption disabled at:[<ffffffff81063048>] flush_tlb_mm_range+0x28/0x350
+|
+|CPU: 1 PID: 2130 Comm: tar Tainted: G W 4.8.2-rt2+ #747
+|Call Trace:
+| [<ffffffff814d52dc>] dump_stack+0x86/0xca
+| [<ffffffff810a26fb>] ___might_sleep+0x14b/0x240
+| [<ffffffff819bc1d4>] rt_spin_lock+0x24/0x60
+| [<ffffffff81194fba>] get_page_from_freelist+0x83a/0x11b0
+| [<ffffffff81195e8b>] __alloc_pages_nodemask+0x15b/0x1190
+| [<ffffffff811f0b81>] alloc_pages_current+0xa1/0x1f0
+| [<ffffffff811f7df5>] new_slab+0x3e5/0x690
+| [<ffffffff811fb0d5>] ___slab_alloc+0x495/0x660
+| [<ffffffff811fb311>] __slab_alloc.isra.79+0x71/0xc0
+| [<ffffffff811fb447>] __kmalloc_node+0xe7/0x240
+| [<ffffffff814d4ee0>] alloc_cpumask_var_node+0x20/0x50
+| [<ffffffff814d4f3e>] alloc_cpumask_var+0xe/0x10
+| [<ffffffff810430c1>] native_send_call_func_ipi+0x21/0x130
+| [<ffffffff8111c13f>] smp_call_function_many+0x22f/0x370
+| [<ffffffff81062b64>] native_flush_tlb_others+0x1a4/0x3a0
+| [<ffffffff8106309b>] flush_tlb_mm_range+0x7b/0x350
+| [<ffffffff811c88e2>] tlb_flush_mmu_tlbonly+0x62/0xd0
+| [<ffffffff811c9af4>] tlb_finish_mmu+0x14/0x50
+| [<ffffffff811d1c84>] unmap_region+0xe4/0x110
+| [<ffffffff811d3db3>] do_munmap+0x293/0x470
+| [<ffffffff811d4f8c>] SyS_brk+0x13c/0x190
+| [<ffffffff810032e2>] do_fast_syscall_32+0xb2/0x2f0
+| [<ffffffff819be181>] entry_SYSENTER_compat+0x51/0x60
+
+which forbid allocations at run-time.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ arch/x86/Kconfig | 2 +-
+ lib/Kconfig | 1 +
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
+index be4403a8e1b4..a8ec5d0c024e 100644
+--- a/arch/x86/Kconfig
++++ b/arch/x86/Kconfig
+@@ -935,7 +935,7 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT
+ config MAXSMP
+ bool "Enable Maximum number of SMP Processors and NUMA Nodes"
+ depends on X86_64 && SMP && DEBUG_KERNEL
+- select CPUMASK_OFFSTACK
++ select CPUMASK_OFFSTACK if !PREEMPT_RT_FULL
+ ---help---
+ Enable maximum number of CPUS and NUMA Nodes for this architecture.
+ If unsure, say N.
+diff --git a/lib/Kconfig b/lib/Kconfig
+index 714ec2f50bb1..4857bb4c490a 100644
+--- a/lib/Kconfig
++++ b/lib/Kconfig
+@@ -440,6 +440,7 @@ config CHECK_SIGNATURE
+
+ config CPUMASK_OFFSTACK
+ bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
++ depends on !PREEMPT_RT_FULL
+ help
+ Use dynamic allocation for cpumask_var_t, instead of putting
+ them on the stack. This is a bit more expensive, but avoids
+--
+2.36.1
+
diff --git a/debian/patches-rt/0038-jump-label-disable-if-stop_machine-is-used.patch b/debian/patches-rt/0038-jump-label-disable-if-stop_machine-is-used.patch
new file mode 100644
index 000000000..2492e61a1
--- /dev/null
+++ b/debian/patches-rt/0038-jump-label-disable-if-stop_machine-is-used.patch
@@ -0,0 +1,42 @@
+From d1a6d4880db516353e443bbe3b11ce97767dd75e Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 8 Jul 2015 17:14:48 +0200
+Subject: [PATCH 038/347] jump-label: disable if stop_machine() is used
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Some architectures are using stop_machine() while switching the opcode which
+leads to latency spikes.
+The architectures which use stop_machine() atm:
+- ARM stop machine
+- s390 stop machine
+
+The architecures which use other sorcery:
+- MIPS
+- X86
+- powerpc
+- sparc
+- arm64
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+[bigeasy: only ARM for now]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/arm/Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+index d89d013f586c..32d59b815b52 100644
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -51,7 +51,7 @@ config ARM
+ select HARDIRQS_SW_RESEND
+ select HAVE_ARCH_AUDITSYSCALL if (AEABI && !OABI_COMPAT)
+ select HAVE_ARCH_BITREVERSE if (CPU_32v7M || CPU_32v7) && !CPU_32v6
+- select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL && !CPU_ENDIAN_BE32 && MMU
++ select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL && !CPU_ENDIAN_BE32 && MMU && !PREEMPT_RT_BASE
+ select HAVE_ARCH_KGDB if !CPU_ENDIAN_BE32 && MMU
+ select HAVE_ARCH_MMAP_RND_BITS if MMU
+ select HAVE_ARCH_SECCOMP_FILTER if (AEABI && !OABI_COMPAT)
+--
+2.36.1
+
diff --git a/debian/patches-rt/0039-kconfig-Disable-config-options-which-are-not-RT-comp.patch b/debian/patches-rt/0039-kconfig-Disable-config-options-which-are-not-RT-comp.patch
new file mode 100644
index 000000000..20f55cc87
--- /dev/null
+++ b/debian/patches-rt/0039-kconfig-Disable-config-options-which-are-not-RT-comp.patch
@@ -0,0 +1,43 @@
+From 92e84c0530709b63ff982d19ccf2ae0523aa712a Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Sun, 24 Jul 2011 12:11:43 +0200
+Subject: [PATCH 039/347] kconfig: Disable config options which are not RT
+ compatible
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Disable stuff which is known to have issues on RT
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ arch/Kconfig | 1 +
+ mm/Kconfig | 2 +-
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/arch/Kconfig b/arch/Kconfig
+index dd71b34fe4f5..f53e81602922 100644
+--- a/arch/Kconfig
++++ b/arch/Kconfig
+@@ -28,6 +28,7 @@ config OPROFILE
+ tristate "OProfile system profiling"
+ depends on PROFILING
+ depends on HAVE_OPROFILE
++ depends on !PREEMPT_RT_FULL
+ select RING_BUFFER
+ select RING_BUFFER_ALLOW_SWAP
+ help
+diff --git a/mm/Kconfig b/mm/Kconfig
+index b457e94ae618..0dddbb2a3282 100644
+--- a/mm/Kconfig
++++ b/mm/Kconfig
+@@ -377,7 +377,7 @@ config NOMMU_INITIAL_TRIM_EXCESS
+
+ config TRANSPARENT_HUGEPAGE
+ bool "Transparent Hugepage Support"
+- depends on HAVE_ARCH_TRANSPARENT_HUGEPAGE
++ depends on HAVE_ARCH_TRANSPARENT_HUGEPAGE && !PREEMPT_RT_FULL
+ select COMPACTION
+ select RADIX_TREE_MULTIORDER
+ help
+--
+2.36.1
+
diff --git a/debian/patches-rt/0040-lockdep-disable-self-test.patch b/debian/patches-rt/0040-lockdep-disable-self-test.patch
new file mode 100644
index 000000000..ff859feb8
--- /dev/null
+++ b/debian/patches-rt/0040-lockdep-disable-self-test.patch
@@ -0,0 +1,35 @@
+From 563448c3c6d54ac0304256d02827bd841ba65a2f Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 17 Oct 2017 16:36:18 +0200
+Subject: [PATCH 040/347] 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/4.19/older/patches-4.19.246-rt110.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
+still reported false positives. Now the selftest locks up the system
+during boot and it needs to be investigated…
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ lib/Kconfig.debug | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
+index 621859a453f8..02f962c9b199 100644
+--- a/lib/Kconfig.debug
++++ b/lib/Kconfig.debug
+@@ -1206,7 +1206,7 @@ config DEBUG_ATOMIC_SLEEP
+
+ config DEBUG_LOCKING_API_SELFTESTS
+ bool "Locking API boot-time self-tests"
+- depends on DEBUG_KERNEL
++ depends on DEBUG_KERNEL && !PREEMPT_RT_FULL
+ help
+ 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.36.1
+
diff --git a/debian/patches-rt/0041-mm-Allow-only-slub-on-RT.patch b/debian/patches-rt/0041-mm-Allow-only-slub-on-RT.patch
new file mode 100644
index 000000000..b41b5188e
--- /dev/null
+++ b/debian/patches-rt/0041-mm-Allow-only-slub-on-RT.patch
@@ -0,0 +1,37 @@
+From 8b775963cebd7cc5b3416a9d8f85ef4c343874df Mon Sep 17 00:00:00 2001
+From: Ingo Molnar <mingo@elte.hu>
+Date: Fri, 3 Jul 2009 08:44:03 -0500
+Subject: [PATCH 041/347] mm: Allow only slub on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Disable SLAB and SLOB on -RT. Only SLUB is adopted to -RT needs.
+
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ init/Kconfig | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/init/Kconfig b/init/Kconfig
+index 15c02e15d3fd..45a9846f1464 100644
+--- a/init/Kconfig
++++ b/init/Kconfig
+@@ -1650,6 +1650,7 @@ choice
+
+ config SLAB
+ bool "SLAB"
++ depends on !PREEMPT_RT_FULL
+ select HAVE_HARDENED_USERCOPY_ALLOCATOR
+ help
+ The regular slab allocator that is established and known to work
+@@ -1670,6 +1671,7 @@ config SLUB
+ config SLOB
+ depends on EXPERT
+ bool "SLOB (Simple Allocator)"
++ depends on !PREEMPT_RT_FULL
+ help
+ SLOB replaces the stock allocator with a drastically simpler
+ allocator. SLOB is generally more space efficient but
+--
+2.36.1
+
diff --git a/debian/patches-rt/0042-locking-Disable-spin-on-owner-for-RT.patch b/debian/patches-rt/0042-locking-Disable-spin-on-owner-for-RT.patch
new file mode 100644
index 000000000..f17f2534e
--- /dev/null
+++ b/debian/patches-rt/0042-locking-Disable-spin-on-owner-for-RT.patch
@@ -0,0 +1,38 @@
+From 08935fef7d8bf9943412aabcac4133066923333f Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Sun, 17 Jul 2011 21:51:45 +0200
+Subject: [PATCH 042/347] locking: Disable spin on owner for RT
+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/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Drop spin on owner for mutex / rwsem. We are most likely not using it
+but…
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ kernel/Kconfig.locks | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/kernel/Kconfig.locks b/kernel/Kconfig.locks
+index 84d882f3e299..af27c4000812 100644
+--- a/kernel/Kconfig.locks
++++ b/kernel/Kconfig.locks
+@@ -225,11 +225,11 @@ config ARCH_SUPPORTS_ATOMIC_RMW
+
+ config MUTEX_SPIN_ON_OWNER
+ def_bool y
+- depends on SMP && ARCH_SUPPORTS_ATOMIC_RMW
++ depends on SMP && ARCH_SUPPORTS_ATOMIC_RMW && !PREEMPT_RT_FULL
+
+ config RWSEM_SPIN_ON_OWNER
+ def_bool y
+- depends on SMP && RWSEM_XCHGADD_ALGORITHM && ARCH_SUPPORTS_ATOMIC_RMW
++ depends on SMP && RWSEM_XCHGADD_ALGORITHM && ARCH_SUPPORTS_ATOMIC_RMW && !PREEMPT_RT_FULL
+
+ config LOCK_SPIN_ON_OWNER
+ def_bool y
+--
+2.36.1
+
diff --git a/debian/patches-rt/0043-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch b/debian/patches-rt/0043-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch
new file mode 100644
index 000000000..7f601cc2e
--- /dev/null
+++ b/debian/patches-rt/0043-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch
@@ -0,0 +1,30 @@
+From bf68f45a17d9185950e69e908fcbff3fe28f7764 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Sun, 28 Oct 2012 13:26:09 +0000
+Subject: [PATCH 043/347] rcu: Disable RCU_FAST_NO_HZ on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+This uses a timer_list timer from the irq disabled guts of the idle
+code. Disable it for now to prevent wreckage.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ kernel/rcu/Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kernel/rcu/Kconfig b/kernel/rcu/Kconfig
+index 9210379c0353..644264be90f0 100644
+--- a/kernel/rcu/Kconfig
++++ b/kernel/rcu/Kconfig
+@@ -172,7 +172,7 @@ config RCU_FANOUT_LEAF
+
+ config RCU_FAST_NO_HZ
+ bool "Accelerate last non-dyntick-idle CPU's grace periods"
+- depends on NO_HZ_COMMON && SMP && RCU_EXPERT
++ depends on NO_HZ_COMMON && SMP && RCU_EXPERT && !PREEMPT_RT_FULL
+ default n
+ help
+ This option permits CPUs to enter dynticks-idle state even if
+--
+2.36.1
+
diff --git a/debian/patches-rt/0044-rcu-make-RCU_BOOST-default-on-RT.patch b/debian/patches-rt/0044-rcu-make-RCU_BOOST-default-on-RT.patch
new file mode 100644
index 000000000..41c8f5cf1
--- /dev/null
+++ b/debian/patches-rt/0044-rcu-make-RCU_BOOST-default-on-RT.patch
@@ -0,0 +1,34 @@
+From 54dcdf587a5ea4e590122c0666760e151bb3f122 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 21 Mar 2014 20:19:05 +0100
+Subject: [PATCH 044/347] rcu: make RCU_BOOST default on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Since it is no longer invoked from the softirq people run into OOM more
+often if the priority of the RCU thread is too low. Making boosting
+default on RT should help in those case and it can be switched off if
+someone knows better.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/rcu/Kconfig | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/kernel/rcu/Kconfig b/kernel/rcu/Kconfig
+index 644264be90f0..a243a78ff38c 100644
+--- a/kernel/rcu/Kconfig
++++ b/kernel/rcu/Kconfig
+@@ -190,8 +190,8 @@ config RCU_FAST_NO_HZ
+
+ config RCU_BOOST
+ bool "Enable RCU priority boosting"
+- depends on RT_MUTEXES && PREEMPT_RCU && RCU_EXPERT
+- default n
++ depends on (RT_MUTEXES && PREEMPT_RCU && RCU_EXPERT) || PREEMPT_RT_FULL
++ default y if PREEMPT_RT_FULL
+ help
+ This option boosts the priority of preempted RCU readers that
+ block the current preemptible RCU grace period for too long.
+--
+2.36.1
+
diff --git a/debian/patches-rt/0045-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch b/debian/patches-rt/0045-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch
new file mode 100644
index 000000000..f7214c126
--- /dev/null
+++ b/debian/patches-rt/0045-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch
@@ -0,0 +1,35 @@
+From 99a129e243d912aefe039e78e82c3f39204fd05c Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Mon, 18 Jul 2011 17:03:52 +0200
+Subject: [PATCH 045/347] sched: Disable CONFIG_RT_GROUP_SCHED on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Carsten reported problems when running:
+
+ taskset 01 chrt -f 1 sleep 1
+
+from within rc.local on a F15 machine. The task stays running and
+never gets on the run queue because some of the run queues have
+rt_throttled=1 which does not go away. Works nice from a ssh login
+shell. Disabling CONFIG_RT_GROUP_SCHED solves that as well.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ init/Kconfig | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/init/Kconfig b/init/Kconfig
+index 45a9846f1464..1793e8bd71ef 100644
+--- a/init/Kconfig
++++ b/init/Kconfig
+@@ -787,6 +787,7 @@ config CFS_BANDWIDTH
+ config RT_GROUP_SCHED
+ bool "Group scheduling for SCHED_RR/FIFO"
+ depends on CGROUP_SCHED
++ depends on !PREEMPT_RT_FULL
+ default n
+ help
+ This feature lets you explicitly allocate real CPU bandwidth
+--
+2.36.1
+
diff --git a/debian/patches-rt/0046-net-core-disable-NET_RX_BUSY_POLL.patch b/debian/patches-rt/0046-net-core-disable-NET_RX_BUSY_POLL.patch
new file mode 100644
index 000000000..7eb1fc029
--- /dev/null
+++ b/debian/patches-rt/0046-net-core-disable-NET_RX_BUSY_POLL.patch
@@ -0,0 +1,38 @@
+From ad59d8a0c65befc94d4dc8d0f000ab096011f737 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Sat, 27 May 2017 19:02:06 +0200
+Subject: [PATCH 046/347] net/core: disable NET_RX_BUSY_POLL
+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/4.19/older/patches-4.19.246-rt110.tar.xz
+
+sk_busy_loop() does preempt_disable() followed by a few operations which can
+take sleeping locks and may get long.
+I _think_ that we could use preempt_disable_nort() (in sk_busy_loop()) instead
+but after a successfull cmpxchg(&napi->state, …) we would gain the ressource
+and could be scheduled out. At this point nobody knows who (which context) owns
+it and so it could take a while until the state is realeased and napi_poll()
+could be invoked again.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ net/Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/net/Kconfig b/net/Kconfig
+index 228dfa382eec..bc8d01996f22 100644
+--- a/net/Kconfig
++++ b/net/Kconfig
+@@ -275,7 +275,7 @@ config CGROUP_NET_CLASSID
+
+ config NET_RX_BUSY_POLL
+ bool
+- default y
++ default y if !PREEMPT_RT_FULL
+
+ config BQL
+ bool
+--
+2.36.1
+
diff --git a/debian/patches-rt/0047-arm-disable-NEON-in-kernel-mode.patch b/debian/patches-rt/0047-arm-disable-NEON-in-kernel-mode.patch
new file mode 100644
index 000000000..03e38de78
--- /dev/null
+++ b/debian/patches-rt/0047-arm-disable-NEON-in-kernel-mode.patch
@@ -0,0 +1,166 @@
+From 8cd6e5200e3869218d2da84e16e4638eb6de6923 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 1 Dec 2017 10:42:03 +0100
+Subject: [PATCH 047/347] arm*: disable NEON in kernel mode
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+NEON in kernel mode is used by the crypto algorithms and raid6 code.
+While the raid6 code looks okay, the crypto algorithms do not: NEON
+is enabled on first invocation and may allocate/free/map memory before
+the NEON mode is disabled again.
+This needs to be changed until it can be enabled.
+On ARM NEON in kernel mode can be simply disabled. on ARM64 it needs to
+stay on due to possible EFI callbacks so here I disable each algorithm.
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/arm/Kconfig | 2 +-
+ arch/arm64/crypto/Kconfig | 28 ++++++++++++++--------------
+ arch/arm64/crypto/crc32-ce-glue.c | 3 ++-
+ 3 files changed, 17 insertions(+), 16 deletions(-)
+
+diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+index 32d59b815b52..ec99422059e3 100644
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -2166,7 +2166,7 @@ config NEON
+
+ config KERNEL_MODE_NEON
+ bool "Support for NEON in kernel mode"
+- depends on NEON && AEABI
++ depends on NEON && AEABI && !PREEMPT_RT_BASE
+ help
+ Say Y to include support for NEON in kernel mode.
+
+diff --git a/arch/arm64/crypto/Kconfig b/arch/arm64/crypto/Kconfig
+index d51944ff9f91..0d4b3f0cfba6 100644
+--- a/arch/arm64/crypto/Kconfig
++++ b/arch/arm64/crypto/Kconfig
+@@ -19,43 +19,43 @@ config CRYPTO_SHA512_ARM64
+
+ config CRYPTO_SHA1_ARM64_CE
+ tristate "SHA-1 digest algorithm (ARMv8 Crypto Extensions)"
+- depends on KERNEL_MODE_NEON
++ depends on KERNEL_MODE_NEON && !PREEMPT_RT_BASE
+ select CRYPTO_HASH
+ select CRYPTO_SHA1
+
+ config CRYPTO_SHA2_ARM64_CE
+ tristate "SHA-224/SHA-256 digest algorithm (ARMv8 Crypto Extensions)"
+- depends on KERNEL_MODE_NEON
++ depends on KERNEL_MODE_NEON && !PREEMPT_RT_BASE
+ select CRYPTO_HASH
+ select CRYPTO_SHA256_ARM64
+
+ config CRYPTO_SHA512_ARM64_CE
+ tristate "SHA-384/SHA-512 digest algorithm (ARMv8 Crypto Extensions)"
+- depends on KERNEL_MODE_NEON
++ depends on KERNEL_MODE_NEON && !PREEMPT_RT_BASE
+ select CRYPTO_HASH
+ select CRYPTO_SHA512_ARM64
+
+ config CRYPTO_SHA3_ARM64
+ tristate "SHA3 digest algorithm (ARMv8.2 Crypto Extensions)"
+- depends on KERNEL_MODE_NEON
++ depends on KERNEL_MODE_NEON && !PREEMPT_RT_BASE
+ select CRYPTO_HASH
+ select CRYPTO_SHA3
+
+ config CRYPTO_SM3_ARM64_CE
+ tristate "SM3 digest algorithm (ARMv8.2 Crypto Extensions)"
+- depends on KERNEL_MODE_NEON
++ depends on KERNEL_MODE_NEON && !PREEMPT_RT_BASE
+ select CRYPTO_HASH
+ select CRYPTO_SM3
+
+ config CRYPTO_SM4_ARM64_CE
+ tristate "SM4 symmetric cipher (ARMv8.2 Crypto Extensions)"
+- depends on KERNEL_MODE_NEON
++ depends on KERNEL_MODE_NEON && !PREEMPT_RT_BASE
+ select CRYPTO_ALGAPI
+ select CRYPTO_SM4
+
+ config CRYPTO_GHASH_ARM64_CE
+ tristate "GHASH/AES-GCM using ARMv8 Crypto Extensions"
+- depends on KERNEL_MODE_NEON
++ depends on KERNEL_MODE_NEON && !PREEMPT_RT_BASE
+ select CRYPTO_HASH
+ select CRYPTO_GF128MUL
+ select CRYPTO_AES
+@@ -63,7 +63,7 @@ config CRYPTO_GHASH_ARM64_CE
+
+ config CRYPTO_CRCT10DIF_ARM64_CE
+ tristate "CRCT10DIF digest algorithm using PMULL instructions"
+- depends on KERNEL_MODE_NEON && CRC_T10DIF
++ depends on KERNEL_MODE_NEON && CRC_T10DIF && !PREEMPT_RT_BASE
+ select CRYPTO_HASH
+
+ config CRYPTO_CRC32_ARM64_CE
+@@ -77,13 +77,13 @@ config CRYPTO_AES_ARM64
+
+ config CRYPTO_AES_ARM64_CE
+ tristate "AES core cipher using ARMv8 Crypto Extensions"
+- depends on ARM64 && KERNEL_MODE_NEON
++ depends on ARM64 && KERNEL_MODE_NEON && !PREEMPT_RT_BASE
+ select CRYPTO_ALGAPI
+ select CRYPTO_AES_ARM64
+
+ config CRYPTO_AES_ARM64_CE_CCM
+ tristate "AES in CCM mode using ARMv8 Crypto Extensions"
+- depends on ARM64 && KERNEL_MODE_NEON
++ depends on ARM64 && KERNEL_MODE_NEON && !PREEMPT_RT_BASE
+ select CRYPTO_ALGAPI
+ select CRYPTO_AES_ARM64_CE
+ select CRYPTO_AES_ARM64
+@@ -91,7 +91,7 @@ config CRYPTO_AES_ARM64_CE_CCM
+
+ config CRYPTO_AES_ARM64_CE_BLK
+ tristate "AES in ECB/CBC/CTR/XTS modes using ARMv8 Crypto Extensions"
+- depends on KERNEL_MODE_NEON
++ depends on KERNEL_MODE_NEON && !PREEMPT_RT_BASE
+ select CRYPTO_BLKCIPHER
+ select CRYPTO_AES_ARM64_CE
+ select CRYPTO_AES_ARM64
+@@ -99,7 +99,7 @@ config CRYPTO_AES_ARM64_CE_BLK
+
+ config CRYPTO_AES_ARM64_NEON_BLK
+ tristate "AES in ECB/CBC/CTR/XTS modes using NEON instructions"
+- depends on KERNEL_MODE_NEON
++ depends on KERNEL_MODE_NEON && !PREEMPT_RT_BASE
+ select CRYPTO_BLKCIPHER
+ select CRYPTO_AES_ARM64
+ select CRYPTO_AES
+@@ -107,13 +107,13 @@ config CRYPTO_AES_ARM64_NEON_BLK
+
+ config CRYPTO_CHACHA20_NEON
+ tristate "NEON accelerated ChaCha20 symmetric cipher"
+- depends on KERNEL_MODE_NEON
++ depends on KERNEL_MODE_NEON && !PREEMPT_RT_BASE
+ select CRYPTO_BLKCIPHER
+ select CRYPTO_CHACHA20
+
+ config CRYPTO_AES_ARM64_BS
+ tristate "AES in ECB/CBC/CTR/XTS modes using bit-sliced NEON algorithm"
+- depends on KERNEL_MODE_NEON
++ depends on KERNEL_MODE_NEON && !PREEMPT_RT_BASE
+ select CRYPTO_BLKCIPHER
+ select CRYPTO_AES_ARM64_NEON_BLK
+ select CRYPTO_AES_ARM64
+diff --git a/arch/arm64/crypto/crc32-ce-glue.c b/arch/arm64/crypto/crc32-ce-glue.c
+index 34b4e3d46aab..ae055cdad8cf 100644
+--- a/arch/arm64/crypto/crc32-ce-glue.c
++++ b/arch/arm64/crypto/crc32-ce-glue.c
+@@ -208,7 +208,8 @@ static struct shash_alg crc32_pmull_algs[] = { {
+
+ static int __init crc32_pmull_mod_init(void)
+ {
+- if (IS_ENABLED(CONFIG_KERNEL_MODE_NEON) && (elf_hwcap & HWCAP_PMULL)) {
++ if (IS_ENABLED(CONFIG_KERNEL_MODE_NEON) &&
++ !IS_ENABLED(CONFIG_PREEMPT_RT_BASE) && (elf_hwcap & HWCAP_PMULL)) {
+ crc32_pmull_algs[0].update = crc32_pmull_update;
+ crc32_pmull_algs[1].update = crc32c_pmull_update;
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0048-powerpc-Use-generic-rwsem-on-RT.patch b/debian/patches-rt/0048-powerpc-Use-generic-rwsem-on-RT.patch
new file mode 100644
index 000000000..24e9ef59e
--- /dev/null
+++ b/debian/patches-rt/0048-powerpc-Use-generic-rwsem-on-RT.patch
@@ -0,0 +1,33 @@
+From 030e3aaf44e1d067c8b44227ace30a35b90b1dda Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Tue, 14 Jul 2015 14:26:34 +0200
+Subject: [PATCH 048/347] powerpc: Use generic rwsem on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Use generic code which uses rtmutex
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ arch/powerpc/Kconfig | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
+index f0e09d5f0bed..d6aae022d8c3 100644
+--- a/arch/powerpc/Kconfig
++++ b/arch/powerpc/Kconfig
+@@ -105,10 +105,11 @@ config LOCKDEP_SUPPORT
+
+ config RWSEM_GENERIC_SPINLOCK
+ bool
++ default y if PREEMPT_RT_FULL
+
+ config RWSEM_XCHGADD_ALGORITHM
+ bool
+- default y
++ default y if !PREEMPT_RT_FULL
+
+ config GENERIC_LOCKBREAK
+ bool
+--
+2.36.1
+
diff --git a/debian/patches-rt/0049-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch b/debian/patches-rt/0049-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch
new file mode 100644
index 000000000..f019d3e49
--- /dev/null
+++ b/debian/patches-rt/0049-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch
@@ -0,0 +1,45 @@
+From d20454871d553f909f09445def1ccc5edee641de Mon Sep 17 00:00:00 2001
+From: Bogdan Purcareata <bogdan.purcareata@freescale.com>
+Date: Fri, 24 Apr 2015 15:53:13 +0000
+Subject: [PATCH 049/347] powerpc/kvm: Disable in-kernel MPIC emulation for
+ PREEMPT_RT_FULL
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+directed delivery mode with a multiple CPU mask, the emulated openpic will loop
+through all of the VCPUs, and for each VCPUs, it call IRQ_check, which will loop
+through all the pending interrupts for that VCPU. This is done while holding the
+raw_lock, meaning that in all this time the interrupts and preemption are
+disabled on the host Linux. A malicious user app can max both these number and
+cause a DoS.
+
+This temporary fix is sent for two reasons. First is so that users who want to
+use the in-kernel MPIC emulation are aware of the potential latencies, thus
+making sure that the hardware MPIC and their usage scenario does not involve
+interrupts sent in directed delivery mode, and the number of possible pending
+interrupts is kept small. Secondly, this should incentivize the development of a
+proper openpic emulation that would be better suited for RT.
+
+Acked-by: Scott Wood <scottwood@freescale.com>
+Signed-off-by: Bogdan Purcareata <bogdan.purcareata@freescale.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/powerpc/kvm/Kconfig | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/arch/powerpc/kvm/Kconfig b/arch/powerpc/kvm/Kconfig
+index 68a0e9d5b440..6f4d5d7615af 100644
+--- a/arch/powerpc/kvm/Kconfig
++++ b/arch/powerpc/kvm/Kconfig
+@@ -178,6 +178,7 @@ config KVM_E500MC
+ config KVM_MPIC
+ bool "KVM in-kernel MPIC emulation"
+ depends on KVM && E500
++ depends on !PREEMPT_RT_FULL
+ select HAVE_KVM_IRQCHIP
+ select HAVE_KVM_IRQFD
+ select HAVE_KVM_IRQ_ROUTING
+--
+2.36.1
+
diff --git a/debian/patches-rt/0050-powerpc-Disable-highmem-on-RT.patch b/debian/patches-rt/0050-powerpc-Disable-highmem-on-RT.patch
new file mode 100644
index 000000000..75dd3f847
--- /dev/null
+++ b/debian/patches-rt/0050-powerpc-Disable-highmem-on-RT.patch
@@ -0,0 +1,29 @@
+From fb0a390ea78c69d7d649e3cca6252b3f18659432 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Mon, 18 Jul 2011 17:08:34 +0200
+Subject: [PATCH 050/347] powerpc: Disable highmem on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The current highmem handling on -RT is not compatible and needs fixups.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ arch/powerpc/Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
+index d6aae022d8c3..f4517f4be192 100644
+--- a/arch/powerpc/Kconfig
++++ b/arch/powerpc/Kconfig
+@@ -400,7 +400,7 @@ menu "Kernel options"
+
+ config HIGHMEM
+ bool "High memory support"
+- depends on PPC32
++ depends on PPC32 && !PREEMPT_RT_FULL
+
+ source kernel/Kconfig.hz
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0051-mips-Disable-highmem-on-RT.patch b/debian/patches-rt/0051-mips-Disable-highmem-on-RT.patch
new file mode 100644
index 000000000..775a7da1c
--- /dev/null
+++ b/debian/patches-rt/0051-mips-Disable-highmem-on-RT.patch
@@ -0,0 +1,29 @@
+From 4ee6a41454883114c19ed1d09d6337846d8fe685 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Mon, 18 Jul 2011 17:10:12 +0200
+Subject: [PATCH 051/347] mips: Disable highmem on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The current highmem handling on -RT is not compatible and needs fixups.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ arch/mips/Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
+index 8a227a80f6bd..bbd790058e46 100644
+--- a/arch/mips/Kconfig
++++ b/arch/mips/Kconfig
+@@ -2523,7 +2523,7 @@ config MIPS_CRC_SUPPORT
+ #
+ config HIGHMEM
+ bool "High Memory Support"
+- depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA
++ depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA && !PREEMPT_RT_FULL
+
+ config CPU_SUPPORTS_HIGHMEM
+ bool
+--
+2.36.1
+
diff --git a/debian/patches-rt/0052-x86-Use-generic-rwsem_spinlocks-on-rt.patch b/debian/patches-rt/0052-x86-Use-generic-rwsem_spinlocks-on-rt.patch
new file mode 100644
index 000000000..61295d2a3
--- /dev/null
+++ b/debian/patches-rt/0052-x86-Use-generic-rwsem_spinlocks-on-rt.patch
@@ -0,0 +1,34 @@
+From ba7790a3c551c3de98d561dbdfc21b1ee3da42b7 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Sun, 26 Jul 2009 02:21:32 +0200
+Subject: [PATCH 052/347] x86: Use generic rwsem_spinlocks on -rt
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Simplifies the separation of anon_rw_semaphores and rw_semaphores for
+-rt.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ arch/x86/Kconfig | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
+index a8ec5d0c024e..6ee7220e7f47 100644
+--- a/arch/x86/Kconfig
++++ b/arch/x86/Kconfig
+@@ -264,8 +264,11 @@ config ARCH_MAY_HAVE_PC_FDC
+ def_bool y
+ depends on ISA_DMA_API
+
++config RWSEM_GENERIC_SPINLOCK
++ def_bool PREEMPT_RT_FULL
++
+ config RWSEM_XCHGADD_ALGORITHM
+- def_bool y
++ def_bool !RWSEM_GENERIC_SPINLOCK && !PREEMPT_RT_FULL
+
+ config GENERIC_CALIBRATE_DELAY
+ def_bool y
+--
+2.36.1
+
diff --git a/debian/patches-rt/0053-leds-trigger-disable-CPU-trigger-on-RT.patch b/debian/patches-rt/0053-leds-trigger-disable-CPU-trigger-on-RT.patch
new file mode 100644
index 000000000..d8b93a3b6
--- /dev/null
+++ b/debian/patches-rt/0053-leds-trigger-disable-CPU-trigger-on-RT.patch
@@ -0,0 +1,41 @@
+From 2f974cb740c62b0919de64dfd6adffd2ee6de05e Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 23 Jan 2014 14:45:59 +0100
+Subject: [PATCH 053/347] leds: trigger: disable CPU trigger on -RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+as it triggers:
+|CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.8-rt10 #141
+|[<c0014aa4>] (unwind_backtrace+0x0/0xf8) from [<c0012788>] (show_stack+0x1c/0x20)
+|[<c0012788>] (show_stack+0x1c/0x20) from [<c043c8dc>] (dump_stack+0x20/0x2c)
+|[<c043c8dc>] (dump_stack+0x20/0x2c) from [<c004c5e8>] (__might_sleep+0x13c/0x170)
+|[<c004c5e8>] (__might_sleep+0x13c/0x170) from [<c043f270>] (__rt_spin_lock+0x28/0x38)
+|[<c043f270>] (__rt_spin_lock+0x28/0x38) from [<c043fa00>] (rt_read_lock+0x68/0x7c)
+|[<c043fa00>] (rt_read_lock+0x68/0x7c) from [<c036cf74>] (led_trigger_event+0x2c/0x5c)
+|[<c036cf74>] (led_trigger_event+0x2c/0x5c) from [<c036e0bc>] (ledtrig_cpu+0x54/0x5c)
+|[<c036e0bc>] (ledtrig_cpu+0x54/0x5c) from [<c000ffd8>] (arch_cpu_idle_exit+0x18/0x1c)
+|[<c000ffd8>] (arch_cpu_idle_exit+0x18/0x1c) from [<c00590b8>] (cpu_startup_entry+0xa8/0x234)
+|[<c00590b8>] (cpu_startup_entry+0xa8/0x234) from [<c043b2cc>] (rest_init+0xb8/0xe0)
+|[<c043b2cc>] (rest_init+0xb8/0xe0) from [<c061ebe0>] (start_kernel+0x2c4/0x380)
+
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/leds/trigger/Kconfig | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/leds/trigger/Kconfig b/drivers/leds/trigger/Kconfig
+index 4018af769969..b4ce8c115949 100644
+--- a/drivers/leds/trigger/Kconfig
++++ b/drivers/leds/trigger/Kconfig
+@@ -63,6 +63,7 @@ config LEDS_TRIGGER_BACKLIGHT
+
+ config LEDS_TRIGGER_CPU
+ bool "LED CPU Trigger"
++ depends on !PREEMPT_RT_BASE
+ help
+ 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.36.1
+
diff --git a/debian/patches-rt/0054-cpufreq-drop-K8-s-driver-from-beeing-selected.patch b/debian/patches-rt/0054-cpufreq-drop-K8-s-driver-from-beeing-selected.patch
new file mode 100644
index 000000000..d93572692
--- /dev/null
+++ b/debian/patches-rt/0054-cpufreq-drop-K8-s-driver-from-beeing-selected.patch
@@ -0,0 +1,39 @@
+From b7705efed15774a4424b72dc695c15636b458a3b Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 9 Apr 2015 15:23:01 +0200
+Subject: [PATCH 054/347] cpufreq: drop K8's driver from beeing selected
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Ralf posted a picture of a backtrace from
+
+| powernowk8_target_fn() -> transition_frequency_fidvid() and then at the
+| end:
+| 932 policy = cpufreq_cpu_get(smp_processor_id());
+| 933 cpufreq_cpu_put(policy);
+
+crashing the system on -RT. I assumed that policy was a NULL pointer but
+was rulled out. Since Ralf can't do any more investigations on this and
+I have no machine with this, I simply switch it off.
+
+Reported-by: Ralf Mardorf <ralf.mardorf@alice-dsl.net>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/cpufreq/Kconfig.x86 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/cpufreq/Kconfig.x86 b/drivers/cpufreq/Kconfig.x86
+index 35f71825b7f3..bb4a6160d0f7 100644
+--- a/drivers/cpufreq/Kconfig.x86
++++ b/drivers/cpufreq/Kconfig.x86
+@@ -125,7 +125,7 @@ config X86_POWERNOW_K7_ACPI
+
+ config X86_POWERNOW_K8
+ tristate "AMD Opteron/Athlon64 PowerNow!"
+- depends on ACPI && ACPI_PROCESSOR && X86_ACPI_CPUFREQ
++ depends on ACPI && ACPI_PROCESSOR && X86_ACPI_CPUFREQ && !PREEMPT_RT_BASE
+ help
+ This adds the CPUFreq driver for K8/early Opteron/Athlon64 processors.
+ Support for K10 and newer processors is now in acpi-cpufreq.
+--
+2.36.1
+
diff --git a/debian/patches-rt/0055-md-disable-bcache.patch b/debian/patches-rt/0055-md-disable-bcache.patch
new file mode 100644
index 000000000..f2de464c8
--- /dev/null
+++ b/debian/patches-rt/0055-md-disable-bcache.patch
@@ -0,0 +1,41 @@
+From 660157bd8a977bb04e9ef58df7270b51f7e315e1 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 29 Aug 2013 11:48:57 +0200
+Subject: [PATCH 055/347] md: disable bcache
+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/4.19/older/patches-4.19.246-rt110.tar.xz
+
+It uses anon semaphores
+|drivers/md/bcache/request.c: In function ‘cached_dev_write_complete’:
+|drivers/md/bcache/request.c:1007:2: error: implicit declaration of function ‘up_read_non_owner’ [-Werror=implicit-function-declaration]
+| up_read_non_owner(&dc->writeback_lock);
+| ^
+|drivers/md/bcache/request.c: In function ‘request_write’:
+|drivers/md/bcache/request.c:1033:2: error: implicit declaration of function ‘down_read_non_owner’ [-Werror=implicit-function-declaration]
+| down_read_non_owner(&dc->writeback_lock);
+| ^
+
+either we get rid of those or we have to introduce them…
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/md/bcache/Kconfig | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/md/bcache/Kconfig b/drivers/md/bcache/Kconfig
+index f6e0a8b3a61e..18c03d79a442 100644
+--- a/drivers/md/bcache/Kconfig
++++ b/drivers/md/bcache/Kconfig
+@@ -1,6 +1,7 @@
+
+ config BCACHE
+ tristate "Block device as cache"
++ depends on !PREEMPT_RT_FULL
+ select CRC64
+ help
+ Allows a block device to be used as cache for other devices; uses
+--
+2.36.1
+
diff --git a/debian/patches-rt/0056-efi-Disable-runtime-services-on-RT.patch b/debian/patches-rt/0056-efi-Disable-runtime-services-on-RT.patch
new file mode 100644
index 000000000..fe647f6c4
--- /dev/null
+++ b/debian/patches-rt/0056-efi-Disable-runtime-services-on-RT.patch
@@ -0,0 +1,46 @@
+From 6c62319a5f5caaf647997706f6996ce4e8dfc939 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 26 Jul 2018 15:03:16 +0200
+Subject: [PATCH 056/347] efi: Disable runtime services on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Based on meassurements the EFI functions get_variable /
+get_next_variable take up to 2us which looks okay.
+The functions get_time, set_time take around 10ms. Those 10ms are too
+much. Even one ms would be too much.
+Ard mentioned that SetVariable might even trigger larger latencies if
+the firware will erase flash blocks on NOR.
+
+The time-functions are used by efi-rtc and can be triggered during
+runtimed (either via explicit read/write or ntp sync).
+
+The variable write could be used by pstore.
+These functions can be disabled without much of a loss. The poweroff /
+reboot hooks may be provided by PSCI.
+
+Disable EFI's runtime wrappers.
+
+This was observed on "EFI v2.60 by SoftIron Overdrive 1000".
+
+Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/firmware/efi/efi.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
+index e89932f1ae65..221957ccdb0b 100644
+--- a/drivers/firmware/efi/efi.c
++++ b/drivers/firmware/efi/efi.c
+@@ -87,7 +87,7 @@ struct mm_struct efi_mm = {
+
+ struct workqueue_struct *efi_rts_wq;
+
+-static bool disable_runtime;
++static bool disable_runtime = IS_ENABLED(CONFIG_PREEMPT_RT_BASE);
+ static int __init setup_noefi(char *arg)
+ {
+ disable_runtime = true;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0057-printk-Add-a-printk-kill-switch.patch b/debian/patches-rt/0057-printk-Add-a-printk-kill-switch.patch
new file mode 100644
index 000000000..54f3d96d2
--- /dev/null
+++ b/debian/patches-rt/0057-printk-Add-a-printk-kill-switch.patch
@@ -0,0 +1,174 @@
+From 0450159a3552782546de4c88cbeae98683079ee9 Mon Sep 17 00:00:00 2001
+From: Ingo Molnar <mingo@elte.hu>
+Date: Fri, 22 Jul 2011 17:58:40 +0200
+Subject: [PATCH 057/347] printk: Add a printk kill switch
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Add a prinkt-kill-switch. This is used from (NMI) watchdog to ensure that
+it does not dead-lock with the early printk code.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/printk.h | 2 ++
+ kernel/printk/printk.c | 79 +++++++++++++++++++++++++++++++-----------
+ kernel/watchdog_hld.c | 10 ++++++
+ 3 files changed, 71 insertions(+), 20 deletions(-)
+
+diff --git a/include/linux/printk.h b/include/linux/printk.h
+index 6dd867e39365..b9d050428456 100644
+--- a/include/linux/printk.h
++++ b/include/linux/printk.h
+@@ -140,9 +140,11 @@ struct va_format {
+ #ifdef CONFIG_EARLY_PRINTK
+ extern asmlinkage __printf(1, 2)
+ void early_printk(const char *fmt, ...);
++extern void printk_kill(void);
+ #else
+ static inline __printf(1, 2) __cold
+ void early_printk(const char *s, ...) { }
++static inline void printk_kill(void) { }
+ #endif
+
+ #ifdef CONFIG_PRINTK_NMI
+diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
+index 2ba16c426ba5..963c20ab9548 100644
+--- a/kernel/printk/printk.c
++++ b/kernel/printk/printk.c
+@@ -407,6 +407,58 @@ DEFINE_RAW_SPINLOCK(logbuf_lock);
+ printk_safe_exit_irqrestore(flags); \
+ } while (0)
+
++#ifdef CONFIG_EARLY_PRINTK
++struct console *early_console;
++
++static void early_vprintk(const char *fmt, va_list ap)
++{
++ if (early_console) {
++ char buf[512];
++ int n = vscnprintf(buf, sizeof(buf), fmt, ap);
++
++ early_console->write(early_console, buf, n);
++ }
++}
++
++asmlinkage void early_printk(const char *fmt, ...)
++{
++ va_list ap;
++
++ va_start(ap, fmt);
++ early_vprintk(fmt, ap);
++ va_end(ap);
++}
++
++/*
++ * This is independent of any log levels - a global
++ * kill switch that turns off all of printk.
++ *
++ * Used by the NMI watchdog if early-printk is enabled.
++ */
++static bool __read_mostly printk_killswitch;
++
++void printk_kill(void)
++{
++ printk_killswitch = true;
++}
++
++#ifdef CONFIG_PRINTK
++static int forced_early_printk(const char *fmt, va_list ap)
++{
++ if (!printk_killswitch)
++ return 0;
++ early_vprintk(fmt, ap);
++ return 1;
++}
++#endif
++
++#else
++static inline int forced_early_printk(const char *fmt, va_list ap)
++{
++ return 0;
++}
++#endif
++
+ #ifdef CONFIG_PRINTK
+ DECLARE_WAIT_QUEUE_HEAD(log_wait);
+ /* the next printk record to read by syslog(READ) or /proc/kmsg */
+@@ -1935,6 +1987,13 @@ asmlinkage int vprintk_emit(int facility, int level,
+ unsigned long flags;
+ u64 curr_log_seq;
+
++ /*
++ * Fall back to early_printk if a debugging subsystem has
++ * killed printk output
++ */
++ if (unlikely(forced_early_printk(fmt, args)))
++ return 1;
++
+ if (level == LOGLEVEL_SCHED) {
+ level = LOGLEVEL_DEFAULT;
+ in_sched = true;
+@@ -2079,26 +2138,6 @@ static bool suppress_message_printing(int level) { return false; }
+
+ #endif /* CONFIG_PRINTK */
+
+-#ifdef CONFIG_EARLY_PRINTK
+-struct console *early_console;
+-
+-asmlinkage __visible void early_printk(const char *fmt, ...)
+-{
+- va_list ap;
+- char buf[512];
+- int n;
+-
+- if (!early_console)
+- return;
+-
+- va_start(ap, fmt);
+- n = vscnprintf(buf, sizeof(buf), fmt, ap);
+- va_end(ap);
+-
+- early_console->write(early_console, buf, n);
+-}
+-#endif
+-
+ static int __add_preferred_console(char *name, int idx, char *options,
+ char *brl_options)
+ {
+diff --git a/kernel/watchdog_hld.c b/kernel/watchdog_hld.c
+index 71381168dede..685443375dc0 100644
+--- a/kernel/watchdog_hld.c
++++ b/kernel/watchdog_hld.c
+@@ -24,6 +24,8 @@ static DEFINE_PER_CPU(bool, hard_watchdog_warn);
+ static DEFINE_PER_CPU(bool, watchdog_nmi_touch);
+ static DEFINE_PER_CPU(struct perf_event *, watchdog_ev);
+ static DEFINE_PER_CPU(struct perf_event *, dead_event);
++static DEFINE_RAW_SPINLOCK(watchdog_output_lock);
++
+ static struct cpumask dead_events_mask;
+
+ static unsigned long hardlockup_allcpu_dumped;
+@@ -134,6 +136,13 @@ static void watchdog_overflow_callback(struct perf_event *event,
+ /* only print hardlockups once */
+ if (__this_cpu_read(hard_watchdog_warn) == true)
+ return;
++ /*
++ * If early-printk is enabled then make sure we do not
++ * lock up in printk() and kill console logging:
++ */
++ printk_kill();
++
++ raw_spin_lock(&watchdog_output_lock);
+
+ pr_emerg("Watchdog detected hard LOCKUP on cpu %d", this_cpu);
+ print_modules();
+@@ -151,6 +160,7 @@ static void watchdog_overflow_callback(struct perf_event *event,
+ !test_and_set_bit(0, &hardlockup_allcpu_dumped))
+ trigger_allbutself_cpu_backtrace();
+
++ raw_spin_unlock(&watchdog_output_lock);
+ if (hardlockup_panic)
+ nmi_panic(regs, "Hard LOCKUP");
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0058-printk-Add-force_early_printk-boot-param-to-help-wit.patch b/debian/patches-rt/0058-printk-Add-force_early_printk-boot-param-to-help-wit.patch
new file mode 100644
index 000000000..68fc30c35
--- /dev/null
+++ b/debian/patches-rt/0058-printk-Add-force_early_printk-boot-param-to-help-wit.patch
@@ -0,0 +1,39 @@
+From fa9f6eea1ebbb987a57d889ad00f142a21aa1843 Mon Sep 17 00:00:00 2001
+From: Peter Zijlstra <peterz@infradead.org>
+Date: Fri, 2 Sep 2011 14:41:29 +0200
+Subject: [PATCH 058/347] printk: Add "force_early_printk" boot param to help
+ with debugging
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Gives me an option to screw printk and actually see what the machine
+says.
+
+Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
+Link: http://lkml.kernel.org/r/1314967289.1301.11.camel@twins
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Link: http://lkml.kernel.org/n/tip-ykb97nsfmobq44xketrxs977@git.kernel.org
+---
+ kernel/printk/printk.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
+index 963c20ab9548..7b774743e1ac 100644
+--- a/kernel/printk/printk.c
++++ b/kernel/printk/printk.c
+@@ -437,6 +437,13 @@ asmlinkage void early_printk(const char *fmt, ...)
+ */
+ static bool __read_mostly printk_killswitch;
+
++static int __init force_early_printk_setup(char *str)
++{
++ printk_killswitch = true;
++ return 0;
++}
++early_param("force_early_printk", force_early_printk_setup);
++
+ void printk_kill(void)
+ {
+ printk_killswitch = true;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0059-preempt-Provide-preempt_-_-no-rt-variants.patch b/debian/patches-rt/0059-preempt-Provide-preempt_-_-no-rt-variants.patch
new file mode 100644
index 000000000..c4b54be3a
--- /dev/null
+++ b/debian/patches-rt/0059-preempt-Provide-preempt_-_-no-rt-variants.patch
@@ -0,0 +1,53 @@
+From 284c759a4a661cea5ac84fac628731f6b79d6b2e Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Fri, 24 Jul 2009 12:38:56 +0200
+Subject: [PATCH 059/347] preempt: Provide preempt_*_(no)rt variants
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+RT needs a few preempt_disable/enable points which are not necessary
+otherwise. Implement variants to avoid #ifdeffery.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/preempt.h | 18 +++++++++++++++++-
+ 1 file changed, 17 insertions(+), 1 deletion(-)
+
+diff --git a/include/linux/preempt.h b/include/linux/preempt.h
+index 3196d0e76719..f7a17fcc3fec 100644
+--- a/include/linux/preempt.h
++++ b/include/linux/preempt.h
+@@ -181,7 +181,11 @@ do { \
+ preempt_count_dec(); \
+ } while (0)
+
+-#define preempt_enable_no_resched() sched_preempt_enable_no_resched()
++#ifdef CONFIG_PREEMPT_RT_BASE
++# define preempt_enable_no_resched() sched_preempt_enable_no_resched()
++#else
++# define preempt_enable_no_resched() preempt_enable()
++#endif
+
+ #define preemptible() (preempt_count() == 0 && !irqs_disabled())
+
+@@ -298,6 +302,18 @@ do { \
+ set_preempt_need_resched(); \
+ } while (0)
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++# define preempt_disable_rt() preempt_disable()
++# define preempt_enable_rt() preempt_enable()
++# define preempt_disable_nort() barrier()
++# define preempt_enable_nort() barrier()
++#else
++# define preempt_disable_rt() barrier()
++# define preempt_enable_rt() barrier()
++# define preempt_disable_nort() preempt_disable()
++# define preempt_enable_nort() preempt_enable()
++#endif
++
+ #ifdef CONFIG_PREEMPT_NOTIFIERS
+
+ struct preempt_notifier;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0060-futex-workaround-migrate_disable-enable-in-different.patch b/debian/patches-rt/0060-futex-workaround-migrate_disable-enable-in-different.patch
new file mode 100644
index 000000000..373f02a64
--- /dev/null
+++ b/debian/patches-rt/0060-futex-workaround-migrate_disable-enable-in-different.patch
@@ -0,0 +1,70 @@
+From d142001fdbdd8cc5fb558e9c3fa110f575875355 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 8 Mar 2017 14:23:35 +0100
+Subject: [PATCH 060/347] futex: workaround migrate_disable/enable in different
+ context
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+migrate_disable()/migrate_enable() takes a different path in atomic() vs
+!atomic() context. These little hacks ensure that we don't underflow / overflow
+the migrate code counts properly while we lock the hb lockwith interrupts
+enabled and unlock it with interrupts disabled.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/futex.c | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
+
+diff --git a/kernel/futex.c b/kernel/futex.c
+index 3c67da9b8408..fac994367189 100644
+--- a/kernel/futex.c
++++ b/kernel/futex.c
+@@ -2998,6 +2998,14 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
+ * before __rt_mutex_start_proxy_lock() is done.
+ */
+ raw_spin_lock_irq(&q.pi_state->pi_mutex.wait_lock);
++ /*
++ * the migrate_disable() here disables migration in the in_atomic() fast
++ * path which is enabled again in the following spin_unlock(). We have
++ * one migrate_disable() pending in the slow-path which is reversed
++ * after the raw_spin_unlock_irq() where we leave the atomic context.
++ */
++ migrate_disable();
++
+ spin_unlock(q.lock_ptr);
+ /*
+ * __rt_mutex_start_proxy_lock() unconditionally enqueues the @rt_waiter
+@@ -3006,6 +3014,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
+ */
+ ret = __rt_mutex_start_proxy_lock(&q.pi_state->pi_mutex, &rt_waiter, current);
+ raw_spin_unlock_irq(&q.pi_state->pi_mutex.wait_lock);
++ migrate_enable();
+
+ if (ret) {
+ if (ret == 1)
+@@ -3140,11 +3149,21 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags)
+ * rt_waiter. Also see the WARN in wake_futex_pi().
+ */
+ raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock);
++ /*
++ * Magic trickery for now to make the RT migrate disable
++ * logic happy. The following spin_unlock() happens with
++ * interrupts disabled so the internal migrate_enable()
++ * won't undo the migrate_disable() which was issued when
++ * locking hb->lock.
++ */
++ migrate_disable();
+ spin_unlock(&hb->lock);
+
+ /* drops pi_state->pi_mutex.wait_lock */
+ ret = wake_futex_pi(uaddr, uval, pi_state);
+
++ migrate_enable();
++
+ put_pi_state(pi_state);
+
+ /*
+--
+2.36.1
+
diff --git a/debian/patches-rt/0061-rt-Add-local-irq-locks.patch b/debian/patches-rt/0061-rt-Add-local-irq-locks.patch
new file mode 100644
index 000000000..205579b09
--- /dev/null
+++ b/debian/patches-rt/0061-rt-Add-local-irq-locks.patch
@@ -0,0 +1,341 @@
+From d870e74a28988a6bb802f1e4bffd33297e63053f Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Mon, 20 Jun 2011 09:03:47 +0200
+Subject: [PATCH 061/347] rt: Add local irq locks
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+map to a spinlock. This makes preemption possible and locked "ressource"
+gets the lockdep anotation it wouldn't have otherwise. The locks are
+recursive for owner == current. Also, all locks user migrate_disable()
+which ensures that the task is not migrated to another CPU while the lock
+is held and the owner is preempted.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/locallock.h | 271 ++++++++++++++++++++++++++++++++++++++
+ include/linux/percpu.h | 29 ++++
+ 2 files changed, 300 insertions(+)
+ create mode 100644 include/linux/locallock.h
+
+diff --git a/include/linux/locallock.h b/include/linux/locallock.h
+new file mode 100644
+index 000000000000..d658c2552601
+--- /dev/null
++++ b/include/linux/locallock.h
+@@ -0,0 +1,271 @@
++#ifndef _LINUX_LOCALLOCK_H
++#define _LINUX_LOCALLOCK_H
++
++#include <linux/percpu.h>
++#include <linux/spinlock.h>
++
++#ifdef CONFIG_PREEMPT_RT_BASE
++
++#ifdef CONFIG_DEBUG_SPINLOCK
++# define LL_WARN(cond) WARN_ON(cond)
++#else
++# define LL_WARN(cond) do { } while (0)
++#endif
++
++/*
++ * per cpu lock based substitute for local_irq_*()
++ */
++struct local_irq_lock {
++ spinlock_t lock;
++ struct task_struct *owner;
++ int nestcnt;
++ unsigned long flags;
++};
++
++#define DEFINE_LOCAL_IRQ_LOCK(lvar) \
++ DEFINE_PER_CPU(struct local_irq_lock, lvar) = { \
++ .lock = __SPIN_LOCK_UNLOCKED((lvar).lock) }
++
++#define DECLARE_LOCAL_IRQ_LOCK(lvar) \
++ DECLARE_PER_CPU(struct local_irq_lock, lvar)
++
++#define local_irq_lock_init(lvar) \
++ do { \
++ int __cpu; \
++ for_each_possible_cpu(__cpu) \
++ spin_lock_init(&per_cpu(lvar, __cpu).lock); \
++ } while (0)
++
++static inline void __local_lock(struct local_irq_lock *lv)
++{
++ if (lv->owner != current) {
++ spin_lock(&lv->lock);
++ LL_WARN(lv->owner);
++ LL_WARN(lv->nestcnt);
++ lv->owner = current;
++ }
++ lv->nestcnt++;
++}
++
++#define local_lock(lvar) \
++ do { __local_lock(&get_local_var(lvar)); } while (0)
++
++#define local_lock_on(lvar, cpu) \
++ do { __local_lock(&per_cpu(lvar, cpu)); } while (0)
++
++static inline int __local_trylock(struct local_irq_lock *lv)
++{
++ if (lv->owner != current && spin_trylock(&lv->lock)) {
++ LL_WARN(lv->owner);
++ LL_WARN(lv->nestcnt);
++ lv->owner = current;
++ lv->nestcnt = 1;
++ return 1;
++ } else if (lv->owner == current) {
++ lv->nestcnt++;
++ return 1;
++ }
++ return 0;
++}
++
++#define local_trylock(lvar) \
++ ({ \
++ int __locked; \
++ __locked = __local_trylock(&get_local_var(lvar)); \
++ if (!__locked) \
++ put_local_var(lvar); \
++ __locked; \
++ })
++
++static inline void __local_unlock(struct local_irq_lock *lv)
++{
++ LL_WARN(lv->nestcnt == 0);
++ LL_WARN(lv->owner != current);
++ if (--lv->nestcnt)
++ return;
++
++ lv->owner = NULL;
++ spin_unlock(&lv->lock);
++}
++
++#define local_unlock(lvar) \
++ do { \
++ __local_unlock(this_cpu_ptr(&lvar)); \
++ put_local_var(lvar); \
++ } while (0)
++
++#define local_unlock_on(lvar, cpu) \
++ do { __local_unlock(&per_cpu(lvar, cpu)); } while (0)
++
++static inline void __local_lock_irq(struct local_irq_lock *lv)
++{
++ spin_lock_irqsave(&lv->lock, lv->flags);
++ LL_WARN(lv->owner);
++ LL_WARN(lv->nestcnt);
++ lv->owner = current;
++ lv->nestcnt = 1;
++}
++
++#define local_lock_irq(lvar) \
++ do { __local_lock_irq(&get_local_var(lvar)); } while (0)
++
++#define local_lock_irq_on(lvar, cpu) \
++ do { __local_lock_irq(&per_cpu(lvar, cpu)); } while (0)
++
++static inline void __local_unlock_irq(struct local_irq_lock *lv)
++{
++ LL_WARN(!lv->nestcnt);
++ LL_WARN(lv->owner != current);
++ lv->owner = NULL;
++ lv->nestcnt = 0;
++ spin_unlock_irq(&lv->lock);
++}
++
++#define local_unlock_irq(lvar) \
++ do { \
++ __local_unlock_irq(this_cpu_ptr(&lvar)); \
++ put_local_var(lvar); \
++ } while (0)
++
++#define local_unlock_irq_on(lvar, cpu) \
++ do { \
++ __local_unlock_irq(&per_cpu(lvar, cpu)); \
++ } while (0)
++
++static inline int __local_lock_irqsave(struct local_irq_lock *lv)
++{
++ if (lv->owner != current) {
++ __local_lock_irq(lv);
++ return 0;
++ } else {
++ lv->nestcnt++;
++ return 1;
++ }
++}
++
++#define local_lock_irqsave(lvar, _flags) \
++ do { \
++ if (__local_lock_irqsave(&get_local_var(lvar))) \
++ put_local_var(lvar); \
++ _flags = __this_cpu_read(lvar.flags); \
++ } while (0)
++
++#define local_lock_irqsave_on(lvar, _flags, cpu) \
++ do { \
++ __local_lock_irqsave(&per_cpu(lvar, cpu)); \
++ _flags = per_cpu(lvar, cpu).flags; \
++ } while (0)
++
++static inline int __local_unlock_irqrestore(struct local_irq_lock *lv,
++ unsigned long flags)
++{
++ LL_WARN(!lv->nestcnt);
++ LL_WARN(lv->owner != current);
++ if (--lv->nestcnt)
++ return 0;
++
++ lv->owner = NULL;
++ spin_unlock_irqrestore(&lv->lock, lv->flags);
++ return 1;
++}
++
++#define local_unlock_irqrestore(lvar, flags) \
++ do { \
++ if (__local_unlock_irqrestore(this_cpu_ptr(&lvar), flags)) \
++ put_local_var(lvar); \
++ } while (0)
++
++#define local_unlock_irqrestore_on(lvar, flags, cpu) \
++ do { \
++ __local_unlock_irqrestore(&per_cpu(lvar, cpu), flags); \
++ } while (0)
++
++#define local_spin_trylock_irq(lvar, lock) \
++ ({ \
++ int __locked; \
++ local_lock_irq(lvar); \
++ __locked = spin_trylock(lock); \
++ if (!__locked) \
++ local_unlock_irq(lvar); \
++ __locked; \
++ })
++
++#define local_spin_lock_irq(lvar, lock) \
++ do { \
++ local_lock_irq(lvar); \
++ spin_lock(lock); \
++ } while (0)
++
++#define local_spin_unlock_irq(lvar, lock) \
++ do { \
++ spin_unlock(lock); \
++ local_unlock_irq(lvar); \
++ } while (0)
++
++#define local_spin_lock_irqsave(lvar, lock, flags) \
++ do { \
++ local_lock_irqsave(lvar, flags); \
++ spin_lock(lock); \
++ } while (0)
++
++#define local_spin_unlock_irqrestore(lvar, lock, flags) \
++ do { \
++ spin_unlock(lock); \
++ local_unlock_irqrestore(lvar, flags); \
++ } while (0)
++
++#define get_locked_var(lvar, var) \
++ (*({ \
++ local_lock(lvar); \
++ this_cpu_ptr(&var); \
++ }))
++
++#define put_locked_var(lvar, var) local_unlock(lvar);
++
++#define local_lock_cpu(lvar) \
++ ({ \
++ local_lock(lvar); \
++ smp_processor_id(); \
++ })
++
++#define local_unlock_cpu(lvar) local_unlock(lvar)
++
++#else /* PREEMPT_RT_BASE */
++
++#define DEFINE_LOCAL_IRQ_LOCK(lvar) __typeof__(const int) lvar
++#define DECLARE_LOCAL_IRQ_LOCK(lvar) extern __typeof__(const int) lvar
++
++static inline void local_irq_lock_init(int lvar) { }
++
++#define local_trylock(lvar) \
++ ({ \
++ preempt_disable(); \
++ 1; \
++ })
++
++#define local_lock(lvar) preempt_disable()
++#define local_unlock(lvar) preempt_enable()
++#define local_lock_irq(lvar) local_irq_disable()
++#define local_lock_irq_on(lvar, cpu) local_irq_disable()
++#define local_unlock_irq(lvar) local_irq_enable()
++#define local_unlock_irq_on(lvar, cpu) local_irq_enable()
++#define local_lock_irqsave(lvar, flags) local_irq_save(flags)
++#define local_unlock_irqrestore(lvar, flags) local_irq_restore(flags)
++
++#define local_spin_trylock_irq(lvar, lock) spin_trylock_irq(lock)
++#define local_spin_lock_irq(lvar, lock) spin_lock_irq(lock)
++#define local_spin_unlock_irq(lvar, lock) spin_unlock_irq(lock)
++#define local_spin_lock_irqsave(lvar, lock, flags) \
++ spin_lock_irqsave(lock, flags)
++#define local_spin_unlock_irqrestore(lvar, lock, flags) \
++ spin_unlock_irqrestore(lock, flags)
++
++#define get_locked_var(lvar, var) get_cpu_var(var)
++#define put_locked_var(lvar, var) put_cpu_var(var)
++
++#define local_lock_cpu(lvar) get_cpu()
++#define local_unlock_cpu(lvar) put_cpu()
++
++#endif
++
++#endif
+diff --git a/include/linux/percpu.h b/include/linux/percpu.h
+index 70b7123f38c7..24421bf8c4b3 100644
+--- a/include/linux/percpu.h
++++ b/include/linux/percpu.h
+@@ -19,6 +19,35 @@
+ #define PERCPU_MODULE_RESERVE 0
+ #endif
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++
++#define get_local_var(var) (*({ \
++ migrate_disable(); \
++ this_cpu_ptr(&var); }))
++
++#define put_local_var(var) do { \
++ (void)&(var); \
++ migrate_enable(); \
++} while (0)
++
++# define get_local_ptr(var) ({ \
++ migrate_disable(); \
++ this_cpu_ptr(var); })
++
++# define put_local_ptr(var) do { \
++ (void)(var); \
++ migrate_enable(); \
++} while (0)
++
++#else
++
++#define get_local_var(var) get_cpu_var(var)
++#define put_local_var(var) put_cpu_var(var)
++#define get_local_ptr(var) get_cpu_ptr(var)
++#define put_local_ptr(var) put_cpu_ptr(var)
++
++#endif
++
+ /* minimum unit size, also is the maximum supported allocation size */
+ #define PCPU_MIN_UNIT_SIZE PFN_ALIGN(32 << 10)
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0062-locallock-provide-get-put-_locked_ptr-variants.patch b/debian/patches-rt/0062-locallock-provide-get-put-_locked_ptr-variants.patch
new file mode 100644
index 000000000..d3d7ffdeb
--- /dev/null
+++ b/debian/patches-rt/0062-locallock-provide-get-put-_locked_ptr-variants.patch
@@ -0,0 +1,49 @@
+From 5b024e1bb773440c6f4c48fdb21090bfadab8a7a Mon Sep 17 00:00:00 2001
+From: Julia Cartwright <julia@ni.com>
+Date: Mon, 7 May 2018 08:58:56 -0500
+Subject: [PATCH 062/347] locallock: provide {get,put}_locked_ptr() variants
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Provide a set of locallocked accessors for pointers to per-CPU data;
+this is useful for dynamically-allocated per-CPU regions, for example.
+
+These are symmetric with the {get,put}_cpu_ptr() per-CPU accessor
+variants.
+
+Signed-off-by: Julia Cartwright <julia@ni.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/locallock.h | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/include/linux/locallock.h b/include/linux/locallock.h
+index d658c2552601..921eab83cd34 100644
+--- a/include/linux/locallock.h
++++ b/include/linux/locallock.h
+@@ -222,6 +222,14 @@ static inline int __local_unlock_irqrestore(struct local_irq_lock *lv,
+
+ #define put_locked_var(lvar, var) local_unlock(lvar);
+
++#define get_locked_ptr(lvar, var) \
++ ({ \
++ local_lock(lvar); \
++ this_cpu_ptr(var); \
++ })
++
++#define put_locked_ptr(lvar, var) local_unlock(lvar);
++
+ #define local_lock_cpu(lvar) \
+ ({ \
+ local_lock(lvar); \
+@@ -262,6 +270,8 @@ static inline void local_irq_lock_init(int lvar) { }
+
+ #define get_locked_var(lvar, var) get_cpu_var(var)
+ #define put_locked_var(lvar, var) put_cpu_var(var)
++#define get_locked_ptr(lvar, var) get_cpu_ptr(var)
++#define put_locked_ptr(lvar, var) put_cpu_ptr(var)
+
+ #define local_lock_cpu(lvar) get_cpu()
+ #define local_unlock_cpu(lvar) put_cpu()
+--
+2.36.1
+
diff --git a/debian/patches-rt/0063-mm-scatterlist-Do-not-disable-irqs-on-RT.patch b/debian/patches-rt/0063-mm-scatterlist-Do-not-disable-irqs-on-RT.patch
new file mode 100644
index 000000000..368da63b4
--- /dev/null
+++ b/debian/patches-rt/0063-mm-scatterlist-Do-not-disable-irqs-on-RT.patch
@@ -0,0 +1,30 @@
+From 48680d53abae6cad7df7eb850fb2acb81da70ef8 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Fri, 3 Jul 2009 08:44:34 -0500
+Subject: [PATCH 063/347] mm/scatterlist: Do not disable irqs on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+For -RT it is enough to keep pagefault disabled (which is currently handled by
+kmap_atomic()).
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ lib/scatterlist.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/scatterlist.c b/lib/scatterlist.c
+index 3b859201f84c..093c3aa3d895 100644
+--- a/lib/scatterlist.c
++++ b/lib/scatterlist.c
+@@ -777,7 +777,7 @@ void sg_miter_stop(struct sg_mapping_iter *miter)
+ flush_kernel_dcache_page(miter->page);
+
+ if (miter->__flags & SG_MITER_ATOMIC) {
+- WARN_ON_ONCE(preemptible());
++ WARN_ON_ONCE(!pagefault_disabled());
+ kunmap_atomic(miter->addr);
+ } else
+ kunmap(miter->page);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0064-signal-x86-Delay-calling-signals-in-atomic.patch b/debian/patches-rt/0064-signal-x86-Delay-calling-signals-in-atomic.patch
new file mode 100644
index 000000000..8acb6a058
--- /dev/null
+++ b/debian/patches-rt/0064-signal-x86-Delay-calling-signals-in-atomic.patch
@@ -0,0 +1,154 @@
+From 47c69a6b85d4820b49840b1bd914a970e7eb6851 Mon Sep 17 00:00:00 2001
+From: Oleg Nesterov <oleg@redhat.com>
+Date: Tue, 14 Jul 2015 14:26:34 +0200
+Subject: [PATCH 064/347] signal/x86: Delay calling signals in atomic
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+a per CPU debug stack defined by the IST. If we schedule out, another task
+can come in and use the same stack and cause the stack to be corrupted
+and crash the kernel on return.
+
+When CONFIG_PREEMPT_RT_FULL is enabled, spin_locks become mutexes, and
+one of these is the spin lock used in signal handling.
+
+Some of the debug code (int3) causes do_trap() to send a signal.
+This function calls a spin lock that has been converted to a mutex
+and has the possibility to sleep. If this happens, the above issues with
+the corrupted stack is possible.
+
+Instead of calling the signal right away, for PREEMPT_RT and x86_64,
+the signal information is stored on the stacks task_struct and
+TIF_NOTIFY_RESUME is set. Then on exit of the trap, the signal resume
+code will send the signal when preemption is enabled.
+
+[ rostedt: Switched from #ifdef CONFIG_PREEMPT_RT_FULL to
+ ARCH_RT_DELAYS_SIGNAL_SEND and added comments to the code. ]
+
+
+Signed-off-by: Oleg Nesterov <oleg@redhat.com>
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ arch/x86/entry/common.c | 7 +++++++
+ arch/x86/include/asm/signal.h | 13 ++++++++++++
+ include/linux/sched.h | 4 ++++
+ kernel/signal.c | 37 +++++++++++++++++++++++++++++++++--
+ 4 files changed, 59 insertions(+), 2 deletions(-)
+
+diff --git a/arch/x86/entry/common.c b/arch/x86/entry/common.c
+index 8353348ddeaf..91676b0d2d4c 100644
+--- a/arch/x86/entry/common.c
++++ b/arch/x86/entry/common.c
+@@ -152,6 +152,13 @@ static void exit_to_usermode_loop(struct pt_regs *regs, u32 cached_flags)
+ if (cached_flags & _TIF_NEED_RESCHED)
+ schedule();
+
++#ifdef ARCH_RT_DELAYS_SIGNAL_SEND
++ if (unlikely(current->forced_info.si_signo)) {
++ struct task_struct *t = current;
++ force_sig_info(t->forced_info.si_signo, &t->forced_info, t);
++ t->forced_info.si_signo = 0;
++ }
++#endif
+ if (cached_flags & _TIF_UPROBE)
+ uprobe_notify_resume(regs);
+
+diff --git a/arch/x86/include/asm/signal.h b/arch/x86/include/asm/signal.h
+index 33d3c88a7225..fb0438d06ca7 100644
+--- a/arch/x86/include/asm/signal.h
++++ b/arch/x86/include/asm/signal.h
+@@ -28,6 +28,19 @@ typedef struct {
+ #define SA_IA32_ABI 0x02000000u
+ #define SA_X32_ABI 0x01000000u
+
++/*
++ * Because some traps use the IST stack, we must keep preemption
++ * disabled while calling do_trap(), but do_trap() may call
++ * force_sig_info() which will grab the signal spin_locks for the
++ * task, which in PREEMPT_RT_FULL are mutexes. By defining
++ * ARCH_RT_DELAYS_SIGNAL_SEND the force_sig_info() will set
++ * TIF_NOTIFY_RESUME and set up the signal to be sent on exit of the
++ * trap.
++ */
++#if defined(CONFIG_PREEMPT_RT_FULL) && defined(CONFIG_X86_64)
++#define ARCH_RT_DELAYS_SIGNAL_SEND
++#endif
++
+ #ifndef CONFIG_COMPAT
+ typedef sigset_t compat_sigset_t;
+ #endif
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index 52069b9ddce8..56047f57ebc7 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -881,6 +881,10 @@ struct task_struct {
+ /* Restored if set_restore_sigmask() was used: */
+ sigset_t saved_sigmask;
+ struct sigpending pending;
++#ifdef CONFIG_PREEMPT_RT_FULL
++ /* TODO: move me into ->restart_block ? */
++ struct siginfo forced_info;
++#endif
+ unsigned long sas_ss_sp;
+ size_t sas_ss_size;
+ unsigned int sas_ss_flags;
+diff --git a/kernel/signal.c b/kernel/signal.c
+index 23764988b5d1..58bd3b3dd499 100644
+--- a/kernel/signal.c
++++ b/kernel/signal.c
+@@ -1283,8 +1283,8 @@ int do_send_sig_info(int sig, struct siginfo *info, struct task_struct *p,
+ * We don't want to have recursive SIGSEGV's etc, for example,
+ * that is why we also clear SIGNAL_UNKILLABLE.
+ */
+-int
+-force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
++static int
++do_force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
+ {
+ unsigned long int flags;
+ int ret, blocked, ignored;
+@@ -1313,6 +1313,39 @@ force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
+ return ret;
+ }
+
++int force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
++{
++/*
++ * On some archs, PREEMPT_RT has to delay sending a signal from a trap
++ * since it can not enable preemption, and the signal code's spin_locks
++ * turn into mutexes. Instead, it must set TIF_NOTIFY_RESUME which will
++ * send the signal on exit of the trap.
++ */
++#ifdef ARCH_RT_DELAYS_SIGNAL_SEND
++ if (in_atomic()) {
++ if (WARN_ON_ONCE(t != current))
++ return 0;
++ if (WARN_ON_ONCE(t->forced_info.si_signo))
++ return 0;
++
++ if (is_si_special(info)) {
++ WARN_ON_ONCE(info != SEND_SIG_PRIV);
++ t->forced_info.si_signo = sig;
++ t->forced_info.si_errno = 0;
++ t->forced_info.si_code = SI_KERNEL;
++ t->forced_info.si_pid = 0;
++ t->forced_info.si_uid = 0;
++ } else {
++ t->forced_info = *info;
++ }
++
++ set_tsk_thread_flag(t, TIF_NOTIFY_RESUME);
++ return 0;
++ }
++#endif
++ return do_force_sig_info(sig, info, t);
++}
++
+ /*
+ * Nuke all other threads in the group.
+ */
+--
+2.36.1
+
diff --git a/debian/patches-rt/0065-x86-signal-delay-calling-signals-on-32bit.patch b/debian/patches-rt/0065-x86-signal-delay-calling-signals-on-32bit.patch
new file mode 100644
index 000000000..d03ec8bc1
--- /dev/null
+++ b/debian/patches-rt/0065-x86-signal-delay-calling-signals-on-32bit.patch
@@ -0,0 +1,49 @@
+From b2265189b45c7240033cc856851c5bbf4c2dc323 Mon Sep 17 00:00:00 2001
+From: Yang Shi <yang.shi@linaro.org>
+Date: Thu, 10 Dec 2015 10:58:51 -0800
+Subject: [PATCH 065/347] x86/signal: delay calling signals on 32bit
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+When running some ptrace single step tests on x86-32 machine, the below problem
+is triggered:
+
+BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:917
+in_atomic(): 1, irqs_disabled(): 0, pid: 1041, name: dummy2
+Preemption disabled at:[<c100326f>] do_debug+0x1f/0x1a0
+
+CPU: 10 PID: 1041 Comm: dummy2 Tainted: G W 4.1.13-rt13 #1
+Call Trace:
+ [<c1aa8306>] dump_stack+0x46/0x5c
+ [<c1080517>] ___might_sleep+0x137/0x220
+ [<c1ab0eff>] rt_spin_lock+0x1f/0x80
+ [<c1064b5a>] do_force_sig_info+0x2a/0xc0
+ [<c106567d>] force_sig_info+0xd/0x10
+ [<c1010cff>] send_sigtrap+0x6f/0x80
+ [<c10033b1>] do_debug+0x161/0x1a0
+ [<c1ab2921>] debug_stack_correct+0x2e/0x35
+
+This happens since 959274753857 ("x86, traps: Track entry into and exit
+from IST context") which was merged in v4.1-rc1.
+
+Signed-off-by: Yang Shi <yang.shi@linaro.org>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/x86/include/asm/signal.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/x86/include/asm/signal.h b/arch/x86/include/asm/signal.h
+index fb0438d06ca7..c00e27af2205 100644
+--- a/arch/x86/include/asm/signal.h
++++ b/arch/x86/include/asm/signal.h
+@@ -37,7 +37,7 @@ typedef struct {
+ * TIF_NOTIFY_RESUME and set up the signal to be sent on exit of the
+ * trap.
+ */
+-#if defined(CONFIG_PREEMPT_RT_FULL) && defined(CONFIG_X86_64)
++#if defined(CONFIG_PREEMPT_RT_FULL)
+ #define ARCH_RT_DELAYS_SIGNAL_SEND
+ #endif
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0066-buffer_head-Replace-bh_uptodate_lock-for-rt.patch b/debian/patches-rt/0066-buffer_head-Replace-bh_uptodate_lock-for-rt.patch
new file mode 100644
index 000000000..711c91563
--- /dev/null
+++ b/debian/patches-rt/0066-buffer_head-Replace-bh_uptodate_lock-for-rt.patch
@@ -0,0 +1,197 @@
+From a309856cae0c403bb844c9c89bd345168c2f6ee1 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Fri, 18 Mar 2011 09:18:52 +0100
+Subject: [PATCH 066/347] buffer_head: Replace bh_uptodate_lock for -rt
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Wrap the bit_spin_lock calls into a separate inline and add the RT
+replacements with a real spinlock.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ fs/buffer.c | 21 +++++++--------------
+ fs/ext4/page-io.c | 6 ++----
+ fs/ntfs/aops.c | 10 +++-------
+ include/linux/buffer_head.h | 34 ++++++++++++++++++++++++++++++++++
+ 4 files changed, 46 insertions(+), 25 deletions(-)
+
+diff --git a/fs/buffer.c b/fs/buffer.c
+index 356e289d19f2..ab18ec733ed3 100644
+--- a/fs/buffer.c
++++ b/fs/buffer.c
+@@ -274,8 +274,7 @@ static void end_buffer_async_read(struct buffer_head *bh, int uptodate)
+ * decide that the page is now completely done.
+ */
+ first = page_buffers(page);
+- local_irq_save(flags);
+- bit_spin_lock(BH_Uptodate_Lock, &first->b_state);
++ flags = bh_uptodate_lock_irqsave(first);
+ clear_buffer_async_read(bh);
+ unlock_buffer(bh);
+ tmp = bh;
+@@ -288,8 +287,7 @@ static void end_buffer_async_read(struct buffer_head *bh, int uptodate)
+ }
+ tmp = tmp->b_this_page;
+ } while (tmp != bh);
+- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
+- local_irq_restore(flags);
++ bh_uptodate_unlock_irqrestore(first, flags);
+
+ /*
+ * If none of the buffers had errors and they are all
+@@ -301,9 +299,7 @@ static void end_buffer_async_read(struct buffer_head *bh, int uptodate)
+ return;
+
+ still_busy:
+- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
+- local_irq_restore(flags);
+- return;
++ bh_uptodate_unlock_irqrestore(first, flags);
+ }
+
+ /*
+@@ -330,8 +326,7 @@ void end_buffer_async_write(struct buffer_head *bh, int uptodate)
+ }
+
+ first = page_buffers(page);
+- local_irq_save(flags);
+- bit_spin_lock(BH_Uptodate_Lock, &first->b_state);
++ flags = bh_uptodate_lock_irqsave(first);
+
+ clear_buffer_async_write(bh);
+ unlock_buffer(bh);
+@@ -343,15 +338,12 @@ void end_buffer_async_write(struct buffer_head *bh, int uptodate)
+ }
+ tmp = tmp->b_this_page;
+ }
+- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
+- local_irq_restore(flags);
++ bh_uptodate_unlock_irqrestore(first, flags);
+ end_page_writeback(page);
+ return;
+
+ still_busy:
+- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
+- local_irq_restore(flags);
+- return;
++ bh_uptodate_unlock_irqrestore(first, flags);
+ }
+ EXPORT_SYMBOL(end_buffer_async_write);
+
+@@ -3372,6 +3364,7 @@ struct buffer_head *alloc_buffer_head(gfp_t gfp_flags)
+ struct buffer_head *ret = kmem_cache_zalloc(bh_cachep, gfp_flags);
+ if (ret) {
+ INIT_LIST_HEAD(&ret->b_assoc_buffers);
++ buffer_head_init_locks(ret);
+ preempt_disable();
+ __this_cpu_inc(bh_accounting.nr);
+ recalc_bh_state();
+diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c
+index 3de933354a08..838d9f4fc554 100644
+--- a/fs/ext4/page-io.c
++++ b/fs/ext4/page-io.c
+@@ -95,8 +95,7 @@ static void ext4_finish_bio(struct bio *bio)
+ * We check all buffers in the page under BH_Uptodate_Lock
+ * to avoid races with other end io clearing async_write flags
+ */
+- local_irq_save(flags);
+- bit_spin_lock(BH_Uptodate_Lock, &head->b_state);
++ flags = bh_uptodate_lock_irqsave(head);
+ do {
+ if (bh_offset(bh) < bio_start ||
+ bh_offset(bh) + bh->b_size > bio_end) {
+@@ -110,8 +109,7 @@ static void ext4_finish_bio(struct bio *bio)
+ buffer_io_error(bh);
+ }
+ } while ((bh = bh->b_this_page) != head);
+- bit_spin_unlock(BH_Uptodate_Lock, &head->b_state);
+- local_irq_restore(flags);
++ bh_uptodate_unlock_irqrestore(head, flags);
+ if (!under_io) {
+ #ifdef CONFIG_EXT4_FS_ENCRYPTION
+ if (data_page)
+diff --git a/fs/ntfs/aops.c b/fs/ntfs/aops.c
+index 8946130c87ad..71d0b3ba70f8 100644
+--- a/fs/ntfs/aops.c
++++ b/fs/ntfs/aops.c
+@@ -106,8 +106,7 @@ static void ntfs_end_buffer_async_read(struct buffer_head *bh, int uptodate)
+ "0x%llx.", (unsigned long long)bh->b_blocknr);
+ }
+ first = page_buffers(page);
+- local_irq_save(flags);
+- bit_spin_lock(BH_Uptodate_Lock, &first->b_state);
++ flags = bh_uptodate_lock_irqsave(first);
+ clear_buffer_async_read(bh);
+ unlock_buffer(bh);
+ tmp = bh;
+@@ -122,8 +121,7 @@ static void ntfs_end_buffer_async_read(struct buffer_head *bh, int uptodate)
+ }
+ tmp = tmp->b_this_page;
+ } while (tmp != bh);
+- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
+- local_irq_restore(flags);
++ bh_uptodate_unlock_irqrestore(first, flags);
+ /*
+ * If none of the buffers had errors then we can set the page uptodate,
+ * but we first have to perform the post read mst fixups, if the
+@@ -156,9 +154,7 @@ static void ntfs_end_buffer_async_read(struct buffer_head *bh, int uptodate)
+ unlock_page(page);
+ return;
+ still_busy:
+- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
+- local_irq_restore(flags);
+- return;
++ bh_uptodate_unlock_irqrestore(first, flags);
+ }
+
+ /**
+diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h
+index 9168fc33a4f7..572541d6cc90 100644
+--- a/include/linux/buffer_head.h
++++ b/include/linux/buffer_head.h
+@@ -76,8 +76,42 @@ struct buffer_head {
+ struct address_space *b_assoc_map; /* mapping this buffer is
+ associated with */
+ atomic_t b_count; /* users using this buffer_head */
++#ifdef CONFIG_PREEMPT_RT_BASE
++ spinlock_t b_uptodate_lock;
++#endif
+ };
+
++static inline unsigned long bh_uptodate_lock_irqsave(struct buffer_head *bh)
++{
++ unsigned long flags;
++
++#ifndef CONFIG_PREEMPT_RT_BASE
++ local_irq_save(flags);
++ bit_spin_lock(BH_Uptodate_Lock, &bh->b_state);
++#else
++ spin_lock_irqsave(&bh->b_uptodate_lock, flags);
++#endif
++ return flags;
++}
++
++static inline void
++bh_uptodate_unlock_irqrestore(struct buffer_head *bh, unsigned long flags)
++{
++#ifndef CONFIG_PREEMPT_RT_BASE
++ bit_spin_unlock(BH_Uptodate_Lock, &bh->b_state);
++ local_irq_restore(flags);
++#else
++ spin_unlock_irqrestore(&bh->b_uptodate_lock, flags);
++#endif
++}
++
++static inline void buffer_head_init_locks(struct buffer_head *bh)
++{
++#ifdef CONFIG_PREEMPT_RT_BASE
++ spin_lock_init(&bh->b_uptodate_lock);
++#endif
++}
++
+ /*
+ * macro tricks to expand the set_buffer_foo(), clear_buffer_foo()
+ * and buffer_foo() functions.
+--
+2.36.1
+
diff --git a/debian/patches-rt/0067-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch b/debian/patches-rt/0067-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch
new file mode 100644
index 000000000..46bb6aca2
--- /dev/null
+++ b/debian/patches-rt/0067-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch
@@ -0,0 +1,110 @@
+From 18cc82093eb65f5fc2db7ff78b49fd443c52da5c Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Fri, 18 Mar 2011 10:11:25 +0100
+Subject: [PATCH 067/347] fs: jbd/jbd2: Make state lock and journal head lock
+ rt safe
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+bit_spin_locks break under RT.
+
+Based on a previous patch from Steven Rostedt <rostedt@goodmis.org>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+--
+ include/linux/buffer_head.h | 8 ++++++++
+ include/linux/jbd2.h | 24 ++++++++++++++++++++++++
+ 2 files changed, 32 insertions(+)
+---
+ include/linux/buffer_head.h | 8 ++++++++
+ include/linux/jbd2.h | 24 ++++++++++++++++++++++++
+ 2 files changed, 32 insertions(+)
+
+diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h
+index 572541d6cc90..703bf3335a3d 100644
+--- a/include/linux/buffer_head.h
++++ b/include/linux/buffer_head.h
+@@ -78,6 +78,10 @@ struct buffer_head {
+ atomic_t b_count; /* users using this buffer_head */
+ #ifdef CONFIG_PREEMPT_RT_BASE
+ spinlock_t b_uptodate_lock;
++#if IS_ENABLED(CONFIG_JBD2)
++ spinlock_t b_state_lock;
++ spinlock_t b_journal_head_lock;
++#endif
+ #endif
+ };
+
+@@ -109,6 +113,10 @@ static inline void buffer_head_init_locks(struct buffer_head *bh)
+ {
+ #ifdef CONFIG_PREEMPT_RT_BASE
+ spin_lock_init(&bh->b_uptodate_lock);
++#if IS_ENABLED(CONFIG_JBD2)
++ spin_lock_init(&bh->b_state_lock);
++ spin_lock_init(&bh->b_journal_head_lock);
++#endif
+ #endif
+ }
+
+diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h
+index 268f3000d1b3..8f5d6ecb802e 100644
+--- a/include/linux/jbd2.h
++++ b/include/linux/jbd2.h
+@@ -347,32 +347,56 @@ static inline struct journal_head *bh2jh(struct buffer_head *bh)
+
+ static inline void jbd_lock_bh_state(struct buffer_head *bh)
+ {
++#ifndef CONFIG_PREEMPT_RT_BASE
+ bit_spin_lock(BH_State, &bh->b_state);
++#else
++ spin_lock(&bh->b_state_lock);
++#endif
+ }
+
+ static inline int jbd_trylock_bh_state(struct buffer_head *bh)
+ {
++#ifndef CONFIG_PREEMPT_RT_BASE
+ return bit_spin_trylock(BH_State, &bh->b_state);
++#else
++ return spin_trylock(&bh->b_state_lock);
++#endif
+ }
+
+ static inline int jbd_is_locked_bh_state(struct buffer_head *bh)
+ {
++#ifndef CONFIG_PREEMPT_RT_BASE
+ return bit_spin_is_locked(BH_State, &bh->b_state);
++#else
++ return spin_is_locked(&bh->b_state_lock);
++#endif
+ }
+
+ static inline void jbd_unlock_bh_state(struct buffer_head *bh)
+ {
++#ifndef CONFIG_PREEMPT_RT_BASE
+ bit_spin_unlock(BH_State, &bh->b_state);
++#else
++ spin_unlock(&bh->b_state_lock);
++#endif
+ }
+
+ static inline void jbd_lock_bh_journal_head(struct buffer_head *bh)
+ {
++#ifndef CONFIG_PREEMPT_RT_BASE
+ bit_spin_lock(BH_JournalHead, &bh->b_state);
++#else
++ spin_lock(&bh->b_journal_head_lock);
++#endif
+ }
+
+ static inline void jbd_unlock_bh_journal_head(struct buffer_head *bh)
+ {
++#ifndef CONFIG_PREEMPT_RT_BASE
+ bit_spin_unlock(BH_JournalHead, &bh->b_state);
++#else
++ spin_unlock(&bh->b_journal_head_lock);
++#endif
+ }
+
+ #define J_ASSERT(assert) BUG_ON(!(assert))
+--
+2.36.1
+
diff --git a/debian/patches-rt/0068-list_bl-Make-list-head-locking-RT-safe.patch b/debian/patches-rt/0068-list_bl-Make-list-head-locking-RT-safe.patch
new file mode 100644
index 000000000..940959051
--- /dev/null
+++ b/debian/patches-rt/0068-list_bl-Make-list-head-locking-RT-safe.patch
@@ -0,0 +1,121 @@
+From c1eeae383297bbad06f5e7b6d1dafa5ff5fb286e Mon Sep 17 00:00:00 2001
+From: Paul Gortmaker <paul.gortmaker@windriver.com>
+Date: Fri, 21 Jun 2013 15:07:25 -0400
+Subject: [PATCH 068/347] list_bl: Make list head locking RT safe
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+As per changes in include/linux/jbd_common.h for avoiding the
+bit_spin_locks on RT ("fs: jbd/jbd2: Make state lock and journal
+head lock rt safe") we do the same thing here.
+
+We use the non atomic __set_bit and __clear_bit inside the scope of
+the lock to preserve the ability of the existing LIST_DEBUG code to
+use the zero'th bit in the sanity checks.
+
+As a bit spinlock, we had no lockdep visibility into the usage
+of the list head locking. Now, if we were to implement it as a
+standard non-raw spinlock, we would see:
+
+BUG: sleeping function called from invalid context at kernel/rtmutex.c:658
+in_atomic(): 1, irqs_disabled(): 0, pid: 122, name: udevd
+5 locks held by udevd/122:
+ #0: (&sb->s_type->i_mutex_key#7/1){+.+.+.}, at: [<ffffffff811967e8>] lock_rename+0xe8/0xf0
+ #1: (rename_lock){+.+...}, at: [<ffffffff811a277c>] d_move+0x2c/0x60
+ #2: (&dentry->d_lock){+.+...}, at: [<ffffffff811a0763>] dentry_lock_for_move+0xf3/0x130
+ #3: (&dentry->d_lock/2){+.+...}, at: [<ffffffff811a0734>] dentry_lock_for_move+0xc4/0x130
+ #4: (&dentry->d_lock/3){+.+...}, at: [<ffffffff811a0747>] dentry_lock_for_move+0xd7/0x130
+Pid: 122, comm: udevd Not tainted 3.4.47-rt62 #7
+Call Trace:
+ [<ffffffff810b9624>] __might_sleep+0x134/0x1f0
+ [<ffffffff817a24d4>] rt_spin_lock+0x24/0x60
+ [<ffffffff811a0c4c>] __d_shrink+0x5c/0xa0
+ [<ffffffff811a1b2d>] __d_drop+0x1d/0x40
+ [<ffffffff811a24be>] __d_move+0x8e/0x320
+ [<ffffffff811a278e>] d_move+0x3e/0x60
+ [<ffffffff81199598>] vfs_rename+0x198/0x4c0
+ [<ffffffff8119b093>] sys_renameat+0x213/0x240
+ [<ffffffff817a2de5>] ? _raw_spin_unlock+0x35/0x60
+ [<ffffffff8107781c>] ? do_page_fault+0x1ec/0x4b0
+ [<ffffffff817a32ca>] ? retint_swapgs+0xe/0x13
+ [<ffffffff813eb0e6>] ? trace_hardirqs_on_thunk+0x3a/0x3f
+ [<ffffffff8119b0db>] sys_rename+0x1b/0x20
+ [<ffffffff817a3b96>] system_call_fastpath+0x1a/0x1f
+
+Since we are only taking the lock during short lived list operations,
+lets assume for now that it being raw won't be a significant latency
+concern.
+
+
+Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/list_bl.h | 28 ++++++++++++++++++++++++++--
+ 1 file changed, 26 insertions(+), 2 deletions(-)
+
+diff --git a/include/linux/list_bl.h b/include/linux/list_bl.h
+index 3fc2cc57ba1b..69b659259bac 100644
+--- a/include/linux/list_bl.h
++++ b/include/linux/list_bl.h
+@@ -3,6 +3,7 @@
+ #define _LINUX_LIST_BL_H
+
+ #include <linux/list.h>
++#include <linux/spinlock.h>
+ #include <linux/bit_spinlock.h>
+
+ /*
+@@ -33,13 +34,22 @@
+
+ struct hlist_bl_head {
+ struct hlist_bl_node *first;
++#ifdef CONFIG_PREEMPT_RT_BASE
++ raw_spinlock_t lock;
++#endif
+ };
+
+ struct hlist_bl_node {
+ struct hlist_bl_node *next, **pprev;
+ };
+-#define INIT_HLIST_BL_HEAD(ptr) \
+- ((ptr)->first = NULL)
++
++static inline void INIT_HLIST_BL_HEAD(struct hlist_bl_head *h)
++{
++ h->first = NULL;
++#ifdef CONFIG_PREEMPT_RT_BASE
++ raw_spin_lock_init(&h->lock);
++#endif
++}
+
+ static inline void INIT_HLIST_BL_NODE(struct hlist_bl_node *h)
+ {
+@@ -119,12 +129,26 @@ static inline void hlist_bl_del_init(struct hlist_bl_node *n)
+
+ static inline void hlist_bl_lock(struct hlist_bl_head *b)
+ {
++#ifndef CONFIG_PREEMPT_RT_BASE
+ bit_spin_lock(0, (unsigned long *)b);
++#else
++ raw_spin_lock(&b->lock);
++#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)
++ __set_bit(0, (unsigned long *)b);
++#endif
++#endif
+ }
+
+ static inline void hlist_bl_unlock(struct hlist_bl_head *b)
+ {
++#ifndef CONFIG_PREEMPT_RT_BASE
+ __bit_spin_unlock(0, (unsigned long *)b);
++#else
++#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)
++ __clear_bit(0, (unsigned long *)b);
++#endif
++ raw_spin_unlock(&b->lock);
++#endif
+ }
+
+ static inline bool hlist_bl_is_locked(struct hlist_bl_head *b)
+--
+2.36.1
+
diff --git a/debian/patches-rt/0069-list_bl-fixup-bogus-lockdep-warning.patch b/debian/patches-rt/0069-list_bl-fixup-bogus-lockdep-warning.patch
new file mode 100644
index 000000000..9fe3abb77
--- /dev/null
+++ b/debian/patches-rt/0069-list_bl-fixup-bogus-lockdep-warning.patch
@@ -0,0 +1,104 @@
+From 6702144cc338594e14d79ce9dd255f50d21840f9 Mon Sep 17 00:00:00 2001
+From: Josh Cartwright <joshc@ni.com>
+Date: Thu, 31 Mar 2016 00:04:25 -0500
+Subject: [PATCH 069/347] list_bl: fixup bogus lockdep warning
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+At first glance, the use of 'static inline' seems appropriate for
+INIT_HLIST_BL_HEAD().
+
+However, when a 'static inline' function invocation is inlined by gcc,
+all callers share any static local data declared within that inline
+function.
+
+This presents a problem for how lockdep classes are setup. raw_spinlocks, for
+example, when CONFIG_DEBUG_SPINLOCK,
+
+ # define raw_spin_lock_init(lock) \
+ do { \
+ static struct lock_class_key __key; \
+ \
+ __raw_spin_lock_init((lock), #lock, &__key); \
+ } while (0)
+
+When this macro is expanded into a 'static inline' caller, like
+INIT_HLIST_BL_HEAD():
+
+ static inline INIT_HLIST_BL_HEAD(struct hlist_bl_head *h)
+ {
+ h->first = NULL;
+ raw_spin_lock_init(&h->lock);
+ }
+
+...the static local lock_class_key object is made a function static.
+
+For compilation units which initialize invoke INIT_HLIST_BL_HEAD() more
+than once, then, all of the invocations share this same static local
+object.
+
+This can lead to some very confusing lockdep splats (example below).
+Solve this problem by forcing the INIT_HLIST_BL_HEAD() to be a macro,
+which prevents the lockdep class object sharing.
+
+ =============================================
+ [ INFO: possible recursive locking detected ]
+ 4.4.4-rt11 #4 Not tainted
+ ---------------------------------------------
+ kswapd0/59 is trying to acquire lock:
+ (&h->lock#2){+.+.-.}, at: mb_cache_shrink_scan
+
+ but task is already holding lock:
+ (&h->lock#2){+.+.-.}, at: mb_cache_shrink_scan
+
+ other info that might help us debug this:
+ Possible unsafe locking scenario:
+
+ CPU0
+ ----
+ lock(&h->lock#2);
+ lock(&h->lock#2);
+
+ *** DEADLOCK ***
+
+ May be due to missing lock nesting notation
+
+ 2 locks held by kswapd0/59:
+ #0: (shrinker_rwsem){+.+...}, at: rt_down_read_trylock
+ #1: (&h->lock#2){+.+.-.}, at: mb_cache_shrink_scan
+
+Reported-by: Luis Claudio R. Goncalves <lclaudio@uudg.org>
+Tested-by: Luis Claudio R. Goncalves <lclaudio@uudg.org>
+Signed-off-by: Josh Cartwright <joshc@ni.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/list_bl.h | 12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/include/linux/list_bl.h b/include/linux/list_bl.h
+index 69b659259bac..0b5de7d9ffcf 100644
+--- a/include/linux/list_bl.h
++++ b/include/linux/list_bl.h
+@@ -43,13 +43,15 @@ struct hlist_bl_node {
+ struct hlist_bl_node *next, **pprev;
+ };
+
+-static inline void INIT_HLIST_BL_HEAD(struct hlist_bl_head *h)
+-{
+- h->first = NULL;
+ #ifdef CONFIG_PREEMPT_RT_BASE
+- raw_spin_lock_init(&h->lock);
++#define INIT_HLIST_BL_HEAD(h) \
++do { \
++ (h)->first = NULL; \
++ raw_spin_lock_init(&(h)->lock); \
++} while (0)
++#else
++#define INIT_HLIST_BL_HEAD(h) (h)->first = NULL
+ #endif
+-}
+
+ static inline void INIT_HLIST_BL_NODE(struct hlist_bl_node *h)
+ {
+--
+2.36.1
+
diff --git a/debian/patches-rt/0070-genirq-Disable-irqpoll-on-rt.patch b/debian/patches-rt/0070-genirq-Disable-irqpoll-on-rt.patch
new file mode 100644
index 000000000..1bb671732
--- /dev/null
+++ b/debian/patches-rt/0070-genirq-Disable-irqpoll-on-rt.patch
@@ -0,0 +1,43 @@
+From 9e5ed96dec7a2d9bf3359966eec008c2434610d6 Mon Sep 17 00:00:00 2001
+From: Ingo Molnar <mingo@elte.hu>
+Date: Fri, 3 Jul 2009 08:29:57 -0500
+Subject: [PATCH 070/347] genirq: Disable irqpoll on -rt
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Creates long latencies for no value
+
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ kernel/irq/spurious.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/kernel/irq/spurious.c b/kernel/irq/spurious.c
+index d867d6ddafdd..cd12ee86c01e 100644
+--- a/kernel/irq/spurious.c
++++ b/kernel/irq/spurious.c
+@@ -442,6 +442,10 @@ MODULE_PARM_DESC(noirqdebug, "Disable irq lockup detection when true");
+
+ static int __init irqfixup_setup(char *str)
+ {
++#ifdef CONFIG_PREEMPT_RT_BASE
++ pr_warn("irqfixup boot option not supported w/ CONFIG_PREEMPT_RT_BASE\n");
++ return 1;
++#endif
+ irqfixup = 1;
+ printk(KERN_WARNING "Misrouted IRQ fixup support enabled.\n");
+ printk(KERN_WARNING "This may impact system performance.\n");
+@@ -454,6 +458,10 @@ module_param(irqfixup, int, 0644);
+
+ static int __init irqpoll_setup(char *str)
+ {
++#ifdef CONFIG_PREEMPT_RT_BASE
++ pr_warn("irqpoll boot option not supported w/ CONFIG_PREEMPT_RT_BASE\n");
++ return 1;
++#endif
+ irqfixup = 2;
+ printk(KERN_WARNING "Misrouted IRQ fixup and polling support "
+ "enabled\n");
+--
+2.36.1
+
diff --git a/debian/patches-rt/0071-genirq-Force-interrupt-thread-on-RT.patch b/debian/patches-rt/0071-genirq-Force-interrupt-thread-on-RT.patch
new file mode 100644
index 000000000..9eb44beb4
--- /dev/null
+++ b/debian/patches-rt/0071-genirq-Force-interrupt-thread-on-RT.patch
@@ -0,0 +1,54 @@
+From d4c832ada3bdbd395d69e11232761697f6ed9523 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Sun, 3 Apr 2011 11:57:29 +0200
+Subject: [PATCH 071/347] genirq: Force interrupt thread on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Force threaded_irqs and optimize the code (force_irqthreads) in regard
+to this.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/interrupt.h | 4 ++++
+ kernel/irq/manage.c | 2 ++
+ 2 files changed, 6 insertions(+)
+
+diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
+index eeceac3376fc..315f852b4981 100644
+--- a/include/linux/interrupt.h
++++ b/include/linux/interrupt.h
+@@ -427,7 +427,11 @@ extern int irq_set_irqchip_state(unsigned int irq, enum irqchip_irq_state which,
+ bool state);
+
+ #ifdef CONFIG_IRQ_FORCED_THREADING
++# ifdef CONFIG_PREEMPT_RT_BASE
++# define force_irqthreads (true)
++# else
+ extern bool force_irqthreads;
++# endif
+ #else
+ #define force_irqthreads (0)
+ #endif
+diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
+index 18f3cdbf41fd..f12f50f5b605 100644
+--- a/kernel/irq/manage.c
++++ b/kernel/irq/manage.c
+@@ -24,6 +24,7 @@
+ #include "internals.h"
+
+ #ifdef CONFIG_IRQ_FORCED_THREADING
++# ifndef CONFIG_PREEMPT_RT_BASE
+ __read_mostly bool force_irqthreads;
+ EXPORT_SYMBOL_GPL(force_irqthreads);
+
+@@ -33,6 +34,7 @@ static int __init setup_forced_irqthreads(char *arg)
+ return 0;
+ }
+ early_param("threadirqs", setup_forced_irqthreads);
++# endif
+ #endif
+
+ static void __synchronize_hardirq(struct irq_desc *desc, bool sync_chip)
+--
+2.36.1
+
diff --git a/debian/patches-rt/0072-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch b/debian/patches-rt/0072-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch
new file mode 100644
index 000000000..deadce9a4
--- /dev/null
+++ b/debian/patches-rt/0072-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch
@@ -0,0 +1,173 @@
+From a2351869ba46346be8b541abd8f1ca7a81df2537 Mon Sep 17 00:00:00 2001
+From: Peter Zijlstra <peterz@infradead.org>
+Date: Mon, 28 May 2018 15:24:20 +0200
+Subject: [PATCH 072/347] Split IRQ-off and zone->lock while freeing pages from
+ PCP list #1
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Split the IRQ-off section while accessing the PCP list from zone->lock
+while freeing pages.
+Introcude isolate_pcp_pages() which separates the pages from the PCP
+list onto a temporary list and then free the temporary list via
+free_pcppages_bulk().
+
+Signed-off-by: Peter Zijlstra <peterz@infradead.org>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ mm/page_alloc.c | 82 +++++++++++++++++++++++++++++++------------------
+ 1 file changed, 52 insertions(+), 30 deletions(-)
+
+diff --git a/mm/page_alloc.c b/mm/page_alloc.c
+index 9c35403d9646..6763dfc2dde0 100644
+--- a/mm/page_alloc.c
++++ b/mm/page_alloc.c
+@@ -1096,7 +1096,7 @@ static inline void prefetch_buddy(struct page *page)
+ }
+
+ /*
+- * Frees a number of pages from the PCP lists
++ * Frees a number of pages which have been collected from the pcp lists.
+ * Assumes all pages on list are in same zone, and of same order.
+ * count is the number of pages to free.
+ *
+@@ -1107,14 +1107,41 @@ static inline void prefetch_buddy(struct page *page)
+ * pinned" detection logic.
+ */
+ static void free_pcppages_bulk(struct zone *zone, int count,
+- struct per_cpu_pages *pcp)
++ struct list_head *head)
++{
++ bool isolated_pageblocks;
++ struct page *page, *tmp;
++ unsigned long flags;
++
++ spin_lock_irqsave(&zone->lock, flags);
++ isolated_pageblocks = has_isolate_pageblock(zone);
++
++ /*
++ * Use safe version since after __free_one_page(),
++ * page->lru.next will not point to original list.
++ */
++ list_for_each_entry_safe(page, tmp, head, lru) {
++ int mt = get_pcppage_migratetype(page);
++ /* MIGRATE_ISOLATE page should not go to pcplists */
++ VM_BUG_ON_PAGE(is_migrate_isolate(mt), page);
++ /* Pageblock could have been isolated meanwhile */
++ if (unlikely(isolated_pageblocks))
++ mt = get_pageblock_migratetype(page);
++
++ __free_one_page(page, page_to_pfn(page), zone, 0, mt);
++ trace_mm_page_pcpu_drain(page, 0, mt);
++ }
++ spin_unlock_irqrestore(&zone->lock, flags);
++}
++
++static void isolate_pcp_pages(int count, struct per_cpu_pages *pcp,
++ struct list_head *dst)
++
+ {
+ int migratetype = 0;
+ int batch_free = 0;
+ int prefetch_nr = 0;
+- bool isolated_pageblocks;
+- struct page *page, *tmp;
+- LIST_HEAD(head);
++ struct page *page;
+
+ /*
+ * Ensure proper count is passed which otherwise would stuck in the
+@@ -1151,7 +1178,7 @@ static void free_pcppages_bulk(struct zone *zone, int count,
+ if (bulkfree_pcp_prepare(page))
+ continue;
+
+- list_add_tail(&page->lru, &head);
++ list_add_tail(&page->lru, dst);
+
+ /*
+ * We are going to put the page back to the global
+@@ -1166,26 +1193,6 @@ static void free_pcppages_bulk(struct zone *zone, int count,
+ prefetch_buddy(page);
+ } while (--count && --batch_free && !list_empty(list));
+ }
+-
+- spin_lock(&zone->lock);
+- isolated_pageblocks = has_isolate_pageblock(zone);
+-
+- /*
+- * Use safe version since after __free_one_page(),
+- * page->lru.next will not point to original list.
+- */
+- list_for_each_entry_safe(page, tmp, &head, lru) {
+- int mt = get_pcppage_migratetype(page);
+- /* MIGRATE_ISOLATE page should not go to pcplists */
+- VM_BUG_ON_PAGE(is_migrate_isolate(mt), page);
+- /* Pageblock could have been isolated meanwhile */
+- if (unlikely(isolated_pageblocks))
+- mt = get_pageblock_migratetype(page);
+-
+- __free_one_page(page, page_to_pfn(page), zone, 0, mt);
+- trace_mm_page_pcpu_drain(page, 0, mt);
+- }
+- spin_unlock(&zone->lock);
+ }
+
+ static void free_one_page(struct zone *zone,
+@@ -2546,13 +2553,18 @@ void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp)
+ {
+ unsigned long flags;
+ int to_drain, batch;
++ LIST_HEAD(dst);
+
+ local_irq_save(flags);
+ batch = READ_ONCE(pcp->batch);
+ to_drain = min(pcp->count, batch);
+ if (to_drain > 0)
+- free_pcppages_bulk(zone, to_drain, pcp);
++ isolate_pcp_pages(to_drain, pcp, &dst);
++
+ local_irq_restore(flags);
++
++ if (to_drain > 0)
++ free_pcppages_bulk(zone, to_drain, &dst);
+ }
+ #endif
+
+@@ -2568,14 +2580,21 @@ static void drain_pages_zone(unsigned int cpu, struct zone *zone)
+ unsigned long flags;
+ struct per_cpu_pageset *pset;
+ struct per_cpu_pages *pcp;
++ LIST_HEAD(dst);
++ int count;
+
+ local_irq_save(flags);
+ pset = per_cpu_ptr(zone->pageset, cpu);
+
+ pcp = &pset->pcp;
+- if (pcp->count)
+- free_pcppages_bulk(zone, pcp->count, pcp);
++ count = pcp->count;
++ if (count)
++ isolate_pcp_pages(count, pcp, &dst);
++
+ local_irq_restore(flags);
++
++ if (count)
++ free_pcppages_bulk(zone, count, &dst);
+ }
+
+ /*
+@@ -2797,7 +2816,10 @@ static void free_unref_page_commit(struct page *page, unsigned long pfn)
+ pcp->count++;
+ if (pcp->count >= pcp->high) {
+ unsigned long batch = READ_ONCE(pcp->batch);
+- free_pcppages_bulk(zone, batch, pcp);
++ LIST_HEAD(dst);
++
++ isolate_pcp_pages(batch, pcp, &dst);
++ free_pcppages_bulk(zone, batch, &dst);
+ }
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0073-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch b/debian/patches-rt/0073-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch
new file mode 100644
index 000000000..f19c558a2
--- /dev/null
+++ b/debian/patches-rt/0073-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch
@@ -0,0 +1,172 @@
+From 2c267f4e1c964c28022ee12c9b86f07854427ac5 Mon Sep 17 00:00:00 2001
+From: Peter Zijlstra <peterz@infradead.org>
+Date: Mon, 28 May 2018 15:24:21 +0200
+Subject: [PATCH 073/347] Split IRQ-off and zone->lock while freeing pages from
+ PCP list #2
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Split the IRQ-off section while accessing the PCP list from zone->lock
+while freeing pages.
+Introcude isolate_pcp_pages() which separates the pages from the PCP
+list onto a temporary list and then free the temporary list via
+free_pcppages_bulk().
+
+Signed-off-by: Peter Zijlstra <peterz@infradead.org>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ mm/page_alloc.c | 60 ++++++++++++++++++++++++++++++++++++++++---------
+ 1 file changed, 50 insertions(+), 10 deletions(-)
+
+diff --git a/mm/page_alloc.c b/mm/page_alloc.c
+index 6763dfc2dde0..ba6f9b334073 100644
+--- a/mm/page_alloc.c
++++ b/mm/page_alloc.c
+@@ -1106,8 +1106,8 @@ static inline void prefetch_buddy(struct page *page)
+ * And clear the zone's pages_scanned counter, to hold off the "all pages are
+ * pinned" detection logic.
+ */
+-static void free_pcppages_bulk(struct zone *zone, int count,
+- struct list_head *head)
++static void free_pcppages_bulk(struct zone *zone, struct list_head *head,
++ bool zone_retry)
+ {
+ bool isolated_pageblocks;
+ struct page *page, *tmp;
+@@ -1122,12 +1122,27 @@ static void free_pcppages_bulk(struct zone *zone, int count,
+ */
+ list_for_each_entry_safe(page, tmp, head, lru) {
+ int mt = get_pcppage_migratetype(page);
++
++ if (page_zone(page) != zone) {
++ /*
++ * free_unref_page_list() sorts pages by zone. If we end
++ * up with pages from a different NUMA nodes belonging
++ * to the same ZONE index then we need to redo with the
++ * correct ZONE pointer. Skip the page for now, redo it
++ * on the next iteration.
++ */
++ WARN_ON_ONCE(zone_retry == false);
++ if (zone_retry)
++ continue;
++ }
++
+ /* MIGRATE_ISOLATE page should not go to pcplists */
+ VM_BUG_ON_PAGE(is_migrate_isolate(mt), page);
+ /* Pageblock could have been isolated meanwhile */
+ if (unlikely(isolated_pageblocks))
+ mt = get_pageblock_migratetype(page);
+
++ list_del(&page->lru);
+ __free_one_page(page, page_to_pfn(page), zone, 0, mt);
+ trace_mm_page_pcpu_drain(page, 0, mt);
+ }
+@@ -2564,7 +2579,7 @@ void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp)
+ local_irq_restore(flags);
+
+ if (to_drain > 0)
+- free_pcppages_bulk(zone, to_drain, &dst);
++ free_pcppages_bulk(zone, &dst, false);
+ }
+ #endif
+
+@@ -2594,7 +2609,7 @@ static void drain_pages_zone(unsigned int cpu, struct zone *zone)
+ local_irq_restore(flags);
+
+ if (count)
+- free_pcppages_bulk(zone, count, &dst);
++ free_pcppages_bulk(zone, &dst, false);
+ }
+
+ /*
+@@ -2787,7 +2802,8 @@ static bool free_unref_page_prepare(struct page *page, unsigned long pfn)
+ return true;
+ }
+
+-static void free_unref_page_commit(struct page *page, unsigned long pfn)
++static void free_unref_page_commit(struct page *page, unsigned long pfn,
++ struct list_head *dst)
+ {
+ struct zone *zone = page_zone(page);
+ struct per_cpu_pages *pcp;
+@@ -2816,10 +2832,8 @@ static void free_unref_page_commit(struct page *page, unsigned long pfn)
+ pcp->count++;
+ if (pcp->count >= pcp->high) {
+ unsigned long batch = READ_ONCE(pcp->batch);
+- LIST_HEAD(dst);
+
+- isolate_pcp_pages(batch, pcp, &dst);
+- free_pcppages_bulk(zone, batch, &dst);
++ isolate_pcp_pages(batch, pcp, dst);
+ }
+ }
+
+@@ -2830,13 +2844,17 @@ void free_unref_page(struct page *page)
+ {
+ unsigned long flags;
+ unsigned long pfn = page_to_pfn(page);
++ struct zone *zone = page_zone(page);
++ LIST_HEAD(dst);
+
+ if (!free_unref_page_prepare(page, pfn))
+ return;
+
+ local_irq_save(flags);
+- free_unref_page_commit(page, pfn);
++ free_unref_page_commit(page, pfn, &dst);
+ local_irq_restore(flags);
++ if (!list_empty(&dst))
++ free_pcppages_bulk(zone, &dst, false);
+ }
+
+ /*
+@@ -2847,6 +2865,11 @@ void free_unref_page_list(struct list_head *list)
+ struct page *page, *next;
+ unsigned long flags, pfn;
+ int batch_count = 0;
++ struct list_head dsts[__MAX_NR_ZONES];
++ int i;
++
++ for (i = 0; i < __MAX_NR_ZONES; i++)
++ INIT_LIST_HEAD(&dsts[i]);
+
+ /* Prepare pages for freeing */
+ list_for_each_entry_safe(page, next, list, lru) {
+@@ -2859,10 +2882,12 @@ void free_unref_page_list(struct list_head *list)
+ local_irq_save(flags);
+ list_for_each_entry_safe(page, next, list, lru) {
+ unsigned long pfn = page_private(page);
++ enum zone_type type;
+
+ set_page_private(page, 0);
+ trace_mm_page_free_batched(page);
+- free_unref_page_commit(page, pfn);
++ type = page_zonenum(page);
++ free_unref_page_commit(page, pfn, &dsts[type]);
+
+ /*
+ * Guard against excessive IRQ disabled times when we get
+@@ -2875,6 +2900,21 @@ void free_unref_page_list(struct list_head *list)
+ }
+ }
+ local_irq_restore(flags);
++
++ for (i = 0; i < __MAX_NR_ZONES; ) {
++ struct page *page;
++ struct zone *zone;
++
++ if (list_empty(&dsts[i])) {
++ i++;
++ continue;
++ }
++
++ page = list_first_entry(&dsts[i], struct page, lru);
++ zone = page_zone(page);
++
++ free_pcppages_bulk(zone, &dsts[i], true);
++ }
+ }
+
+ /*
+--
+2.36.1
+
diff --git a/debian/patches-rt/0074-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch b/debian/patches-rt/0074-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch
new file mode 100644
index 000000000..564ebe845
--- /dev/null
+++ b/debian/patches-rt/0074-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch
@@ -0,0 +1,619 @@
+From 3e8b37b77db38c83eaff3b8fdcd23e91f8d78613 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Mon, 28 May 2018 15:24:22 +0200
+Subject: [PATCH 074/347] mm/SLxB: change list_lock to raw_spinlock_t
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+the same on !RT.
+This patch changes it for SLAB and SLUB since both share the same header
+file for struct kmem_cache_node defintion.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ mm/slab.c | 94 +++++++++++++++++++++++++++----------------------------
+ mm/slab.h | 2 +-
+ mm/slub.c | 50 ++++++++++++++---------------
+ 3 files changed, 73 insertions(+), 73 deletions(-)
+
+diff --git a/mm/slab.c b/mm/slab.c
+index 46f21e73db2f..38f6609343b3 100644
+--- a/mm/slab.c
++++ b/mm/slab.c
+@@ -233,7 +233,7 @@ static void kmem_cache_node_init(struct kmem_cache_node *parent)
+ parent->shared = NULL;
+ parent->alien = NULL;
+ parent->colour_next = 0;
+- spin_lock_init(&parent->list_lock);
++ raw_spin_lock_init(&parent->list_lock);
+ parent->free_objects = 0;
+ parent->free_touched = 0;
+ }
+@@ -600,9 +600,9 @@ static noinline void cache_free_pfmemalloc(struct kmem_cache *cachep,
+ page_node = page_to_nid(page);
+ n = get_node(cachep, page_node);
+
+- spin_lock(&n->list_lock);
++ raw_spin_lock(&n->list_lock);
+ free_block(cachep, &objp, 1, page_node, &list);
+- spin_unlock(&n->list_lock);
++ raw_spin_unlock(&n->list_lock);
+
+ slabs_destroy(cachep, &list);
+ }
+@@ -731,7 +731,7 @@ static void __drain_alien_cache(struct kmem_cache *cachep,
+ struct kmem_cache_node *n = get_node(cachep, node);
+
+ if (ac->avail) {
+- spin_lock(&n->list_lock);
++ raw_spin_lock(&n->list_lock);
+ /*
+ * Stuff objects into the remote nodes shared array first.
+ * That way we could avoid the overhead of putting the objects
+@@ -742,7 +742,7 @@ static void __drain_alien_cache(struct kmem_cache *cachep,
+
+ free_block(cachep, ac->entry, ac->avail, node, list);
+ ac->avail = 0;
+- spin_unlock(&n->list_lock);
++ raw_spin_unlock(&n->list_lock);
+ }
+ }
+
+@@ -815,9 +815,9 @@ static int __cache_free_alien(struct kmem_cache *cachep, void *objp,
+ slabs_destroy(cachep, &list);
+ } else {
+ n = get_node(cachep, page_node);
+- spin_lock(&n->list_lock);
++ raw_spin_lock(&n->list_lock);
+ free_block(cachep, &objp, 1, page_node, &list);
+- spin_unlock(&n->list_lock);
++ raw_spin_unlock(&n->list_lock);
+ slabs_destroy(cachep, &list);
+ }
+ return 1;
+@@ -858,10 +858,10 @@ static int init_cache_node(struct kmem_cache *cachep, int node, gfp_t gfp)
+ */
+ n = get_node(cachep, node);
+ if (n) {
+- spin_lock_irq(&n->list_lock);
++ raw_spin_lock_irq(&n->list_lock);
+ n->free_limit = (1 + nr_cpus_node(node)) * cachep->batchcount +
+ cachep->num;
+- spin_unlock_irq(&n->list_lock);
++ raw_spin_unlock_irq(&n->list_lock);
+
+ return 0;
+ }
+@@ -940,7 +940,7 @@ static int setup_kmem_cache_node(struct kmem_cache *cachep,
+ goto fail;
+
+ n = get_node(cachep, node);
+- spin_lock_irq(&n->list_lock);
++ raw_spin_lock_irq(&n->list_lock);
+ if (n->shared && force_change) {
+ free_block(cachep, n->shared->entry,
+ n->shared->avail, node, &list);
+@@ -958,7 +958,7 @@ static int setup_kmem_cache_node(struct kmem_cache *cachep,
+ new_alien = NULL;
+ }
+
+- spin_unlock_irq(&n->list_lock);
++ raw_spin_unlock_irq(&n->list_lock);
+ slabs_destroy(cachep, &list);
+
+ /*
+@@ -997,7 +997,7 @@ static void cpuup_canceled(long cpu)
+ if (!n)
+ continue;
+
+- spin_lock_irq(&n->list_lock);
++ raw_spin_lock_irq(&n->list_lock);
+
+ /* Free limit for this kmem_cache_node */
+ n->free_limit -= cachep->batchcount;
+@@ -1010,7 +1010,7 @@ static void cpuup_canceled(long cpu)
+ }
+
+ if (!cpumask_empty(mask)) {
+- spin_unlock_irq(&n->list_lock);
++ raw_spin_unlock_irq(&n->list_lock);
+ goto free_slab;
+ }
+
+@@ -1024,7 +1024,7 @@ static void cpuup_canceled(long cpu)
+ alien = n->alien;
+ n->alien = NULL;
+
+- spin_unlock_irq(&n->list_lock);
++ raw_spin_unlock_irq(&n->list_lock);
+
+ kfree(shared);
+ if (alien) {
+@@ -1208,7 +1208,7 @@ static void __init init_list(struct kmem_cache *cachep, struct kmem_cache_node *
+ /*
+ * Do not assume that spinlocks can be initialized via memcpy:
+ */
+- spin_lock_init(&ptr->list_lock);
++ raw_spin_lock_init(&ptr->list_lock);
+
+ MAKE_ALL_LISTS(cachep, ptr, nodeid);
+ cachep->node[nodeid] = ptr;
+@@ -1379,11 +1379,11 @@ slab_out_of_memory(struct kmem_cache *cachep, gfp_t gfpflags, int nodeid)
+ for_each_kmem_cache_node(cachep, node, n) {
+ unsigned long total_slabs, free_slabs, free_objs;
+
+- spin_lock_irqsave(&n->list_lock, flags);
++ raw_spin_lock_irqsave(&n->list_lock, flags);
+ total_slabs = n->total_slabs;
+ free_slabs = n->free_slabs;
+ free_objs = n->free_objects;
+- spin_unlock_irqrestore(&n->list_lock, flags);
++ raw_spin_unlock_irqrestore(&n->list_lock, flags);
+
+ pr_warn(" node %d: slabs: %ld/%ld, objs: %ld/%ld\n",
+ node, total_slabs - free_slabs, total_slabs,
+@@ -2178,7 +2178,7 @@ static void check_spinlock_acquired(struct kmem_cache *cachep)
+ {
+ #ifdef CONFIG_SMP
+ check_irq_off();
+- assert_spin_locked(&get_node(cachep, numa_mem_id())->list_lock);
++ assert_raw_spin_locked(&get_node(cachep, numa_mem_id())->list_lock);
+ #endif
+ }
+
+@@ -2186,7 +2186,7 @@ static void check_spinlock_acquired_node(struct kmem_cache *cachep, int node)
+ {
+ #ifdef CONFIG_SMP
+ check_irq_off();
+- assert_spin_locked(&get_node(cachep, node)->list_lock);
++ assert_raw_spin_locked(&get_node(cachep, node)->list_lock);
+ #endif
+ }
+
+@@ -2226,9 +2226,9 @@ static void do_drain(void *arg)
+ check_irq_off();
+ ac = cpu_cache_get(cachep);
+ n = get_node(cachep, node);
+- spin_lock(&n->list_lock);
++ raw_spin_lock(&n->list_lock);
+ free_block(cachep, ac->entry, ac->avail, node, &list);
+- spin_unlock(&n->list_lock);
++ raw_spin_unlock(&n->list_lock);
+ slabs_destroy(cachep, &list);
+ ac->avail = 0;
+ }
+@@ -2246,9 +2246,9 @@ static void drain_cpu_caches(struct kmem_cache *cachep)
+ drain_alien_cache(cachep, n->alien);
+
+ for_each_kmem_cache_node(cachep, node, n) {
+- spin_lock_irq(&n->list_lock);
++ raw_spin_lock_irq(&n->list_lock);
+ drain_array_locked(cachep, n->shared, node, true, &list);
+- spin_unlock_irq(&n->list_lock);
++ raw_spin_unlock_irq(&n->list_lock);
+
+ slabs_destroy(cachep, &list);
+ }
+@@ -2270,10 +2270,10 @@ static int drain_freelist(struct kmem_cache *cache,
+ nr_freed = 0;
+ while (nr_freed < tofree && !list_empty(&n->slabs_free)) {
+
+- spin_lock_irq(&n->list_lock);
++ raw_spin_lock_irq(&n->list_lock);
+ p = n->slabs_free.prev;
+ if (p == &n->slabs_free) {
+- spin_unlock_irq(&n->list_lock);
++ raw_spin_unlock_irq(&n->list_lock);
+ goto out;
+ }
+
+@@ -2286,7 +2286,7 @@ static int drain_freelist(struct kmem_cache *cache,
+ * to the cache.
+ */
+ n->free_objects -= cache->num;
+- spin_unlock_irq(&n->list_lock);
++ raw_spin_unlock_irq(&n->list_lock);
+ slab_destroy(cache, page);
+ nr_freed++;
+ }
+@@ -2734,7 +2734,7 @@ static void cache_grow_end(struct kmem_cache *cachep, struct page *page)
+ INIT_LIST_HEAD(&page->lru);
+ n = get_node(cachep, page_to_nid(page));
+
+- spin_lock(&n->list_lock);
++ raw_spin_lock(&n->list_lock);
+ n->total_slabs++;
+ if (!page->active) {
+ list_add_tail(&page->lru, &(n->slabs_free));
+@@ -2744,7 +2744,7 @@ static void cache_grow_end(struct kmem_cache *cachep, struct page *page)
+
+ STATS_INC_GROWN(cachep);
+ n->free_objects += cachep->num - page->active;
+- spin_unlock(&n->list_lock);
++ raw_spin_unlock(&n->list_lock);
+
+ fixup_objfreelist_debug(cachep, &list);
+ }
+@@ -2912,7 +2912,7 @@ static struct page *get_first_slab(struct kmem_cache_node *n, bool pfmemalloc)
+ {
+ struct page *page;
+
+- assert_spin_locked(&n->list_lock);
++ assert_raw_spin_locked(&n->list_lock);
+ page = list_first_entry_or_null(&n->slabs_partial, struct page, lru);
+ if (!page) {
+ n->free_touched = 1;
+@@ -2938,10 +2938,10 @@ static noinline void *cache_alloc_pfmemalloc(struct kmem_cache *cachep,
+ if (!gfp_pfmemalloc_allowed(flags))
+ return NULL;
+
+- spin_lock(&n->list_lock);
++ raw_spin_lock(&n->list_lock);
+ page = get_first_slab(n, true);
+ if (!page) {
+- spin_unlock(&n->list_lock);
++ raw_spin_unlock(&n->list_lock);
+ return NULL;
+ }
+
+@@ -2950,7 +2950,7 @@ static noinline void *cache_alloc_pfmemalloc(struct kmem_cache *cachep,
+
+ fixup_slab_list(cachep, n, page, &list);
+
+- spin_unlock(&n->list_lock);
++ raw_spin_unlock(&n->list_lock);
+ fixup_objfreelist_debug(cachep, &list);
+
+ return obj;
+@@ -3009,7 +3009,7 @@ static void *cache_alloc_refill(struct kmem_cache *cachep, gfp_t flags)
+ if (!n->free_objects && (!shared || !shared->avail))
+ goto direct_grow;
+
+- spin_lock(&n->list_lock);
++ raw_spin_lock(&n->list_lock);
+ shared = READ_ONCE(n->shared);
+
+ /* See if we can refill from the shared array */
+@@ -3033,7 +3033,7 @@ static void *cache_alloc_refill(struct kmem_cache *cachep, gfp_t flags)
+ must_grow:
+ n->free_objects -= ac->avail;
+ alloc_done:
+- spin_unlock(&n->list_lock);
++ raw_spin_unlock(&n->list_lock);
+ fixup_objfreelist_debug(cachep, &list);
+
+ direct_grow:
+@@ -3258,7 +3258,7 @@ static void *____cache_alloc_node(struct kmem_cache *cachep, gfp_t flags,
+ BUG_ON(!n);
+
+ check_irq_off();
+- spin_lock(&n->list_lock);
++ raw_spin_lock(&n->list_lock);
+ page = get_first_slab(n, false);
+ if (!page)
+ goto must_grow;
+@@ -3276,12 +3276,12 @@ static void *____cache_alloc_node(struct kmem_cache *cachep, gfp_t flags,
+
+ fixup_slab_list(cachep, n, page, &list);
+
+- spin_unlock(&n->list_lock);
++ raw_spin_unlock(&n->list_lock);
+ fixup_objfreelist_debug(cachep, &list);
+ return obj;
+
+ must_grow:
+- spin_unlock(&n->list_lock);
++ raw_spin_unlock(&n->list_lock);
+ page = cache_grow_begin(cachep, gfp_exact_node(flags), nodeid);
+ if (page) {
+ /* This slab isn't counted yet so don't update free_objects */
+@@ -3457,7 +3457,7 @@ static void cache_flusharray(struct kmem_cache *cachep, struct array_cache *ac)
+
+ check_irq_off();
+ n = get_node(cachep, node);
+- spin_lock(&n->list_lock);
++ raw_spin_lock(&n->list_lock);
+ if (n->shared) {
+ struct array_cache *shared_array = n->shared;
+ int max = shared_array->limit - shared_array->avail;
+@@ -3486,7 +3486,7 @@ static void cache_flusharray(struct kmem_cache *cachep, struct array_cache *ac)
+ STATS_SET_FREEABLE(cachep, i);
+ }
+ #endif
+- spin_unlock(&n->list_lock);
++ raw_spin_unlock(&n->list_lock);
+ slabs_destroy(cachep, &list);
+ ac->avail -= batchcount;
+ memmove(ac->entry, &(ac->entry[batchcount]), sizeof(void *)*ac->avail);
+@@ -3896,9 +3896,9 @@ static int __do_tune_cpucache(struct kmem_cache *cachep, int limit,
+
+ node = cpu_to_mem(cpu);
+ n = get_node(cachep, node);
+- spin_lock_irq(&n->list_lock);
++ raw_spin_lock_irq(&n->list_lock);
+ free_block(cachep, ac->entry, ac->avail, node, &list);
+- spin_unlock_irq(&n->list_lock);
++ raw_spin_unlock_irq(&n->list_lock);
+ slabs_destroy(cachep, &list);
+ }
+ free_percpu(prev);
+@@ -4023,9 +4023,9 @@ static void drain_array(struct kmem_cache *cachep, struct kmem_cache_node *n,
+ return;
+ }
+
+- spin_lock_irq(&n->list_lock);
++ raw_spin_lock_irq(&n->list_lock);
+ drain_array_locked(cachep, ac, node, false, &list);
+- spin_unlock_irq(&n->list_lock);
++ raw_spin_unlock_irq(&n->list_lock);
+
+ slabs_destroy(cachep, &list);
+ }
+@@ -4109,7 +4109,7 @@ void get_slabinfo(struct kmem_cache *cachep, struct slabinfo *sinfo)
+
+ for_each_kmem_cache_node(cachep, node, n) {
+ check_irq_on();
+- spin_lock_irq(&n->list_lock);
++ raw_spin_lock_irq(&n->list_lock);
+
+ total_slabs += n->total_slabs;
+ free_slabs += n->free_slabs;
+@@ -4118,7 +4118,7 @@ void get_slabinfo(struct kmem_cache *cachep, struct slabinfo *sinfo)
+ if (n->shared)
+ shared_avail += n->shared->avail;
+
+- spin_unlock_irq(&n->list_lock);
++ raw_spin_unlock_irq(&n->list_lock);
+ }
+ num_objs = total_slabs * cachep->num;
+ active_slabs = total_slabs - free_slabs;
+@@ -4338,13 +4338,13 @@ static int leaks_show(struct seq_file *m, void *p)
+ for_each_kmem_cache_node(cachep, node, n) {
+
+ check_irq_on();
+- spin_lock_irq(&n->list_lock);
++ raw_spin_lock_irq(&n->list_lock);
+
+ list_for_each_entry(page, &n->slabs_full, lru)
+ handle_slab(x, cachep, page);
+ list_for_each_entry(page, &n->slabs_partial, lru)
+ handle_slab(x, cachep, page);
+- spin_unlock_irq(&n->list_lock);
++ raw_spin_unlock_irq(&n->list_lock);
+ }
+ } while (!is_store_user_clean(cachep));
+
+diff --git a/mm/slab.h b/mm/slab.h
+index 0ed7a463f476..12b7da32bcd0 100644
+--- a/mm/slab.h
++++ b/mm/slab.h
+@@ -454,7 +454,7 @@ static inline void slab_post_alloc_hook(struct kmem_cache *s, gfp_t flags,
+ * The slab lists for all objects.
+ */
+ struct kmem_cache_node {
+- spinlock_t list_lock;
++ raw_spinlock_t list_lock;
+
+ #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 499fb073d1ff..0e4670add1e9 100644
+--- a/mm/slub.c
++++ b/mm/slub.c
+@@ -1182,7 +1182,7 @@ static noinline int free_debug_processing(
+ unsigned long uninitialized_var(flags);
+ int ret = 0;
+
+- spin_lock_irqsave(&n->list_lock, flags);
++ raw_spin_lock_irqsave(&n->list_lock, flags);
+ slab_lock(page);
+
+ if (s->flags & SLAB_CONSISTENCY_CHECKS) {
+@@ -1217,7 +1217,7 @@ static noinline int free_debug_processing(
+ bulk_cnt, cnt);
+
+ slab_unlock(page);
+- spin_unlock_irqrestore(&n->list_lock, flags);
++ raw_spin_unlock_irqrestore(&n->list_lock, flags);
+ if (!ret)
+ slab_fix(s, "Object at 0x%p not freed", object);
+ return ret;
+@@ -1829,7 +1829,7 @@ static void *get_partial_node(struct kmem_cache *s, struct kmem_cache_node *n,
+ if (!n || !n->nr_partial)
+ return NULL;
+
+- spin_lock(&n->list_lock);
++ raw_spin_lock(&n->list_lock);
+ list_for_each_entry_safe(page, page2, &n->partial, lru) {
+ void *t;
+
+@@ -1854,7 +1854,7 @@ static void *get_partial_node(struct kmem_cache *s, struct kmem_cache_node *n,
+ break;
+
+ }
+- spin_unlock(&n->list_lock);
++ raw_spin_unlock(&n->list_lock);
+ return object;
+ }
+
+@@ -2106,7 +2106,7 @@ static void deactivate_slab(struct kmem_cache *s, struct page *page,
+ * that acquire_slab() will see a slab page that
+ * is frozen
+ */
+- spin_lock(&n->list_lock);
++ raw_spin_lock(&n->list_lock);
+ }
+ } else {
+ m = M_FULL;
+@@ -2117,7 +2117,7 @@ static void deactivate_slab(struct kmem_cache *s, struct page *page,
+ * slabs from diagnostic functions will not see
+ * any frozen slabs.
+ */
+- spin_lock(&n->list_lock);
++ raw_spin_lock(&n->list_lock);
+ }
+ }
+
+@@ -2152,7 +2152,7 @@ static void deactivate_slab(struct kmem_cache *s, struct page *page,
+ goto redo;
+
+ if (lock)
+- spin_unlock(&n->list_lock);
++ raw_spin_unlock(&n->list_lock);
+
+ if (m == M_FREE) {
+ stat(s, DEACTIVATE_EMPTY);
+@@ -2187,10 +2187,10 @@ static void unfreeze_partials(struct kmem_cache *s,
+ n2 = get_node(s, page_to_nid(page));
+ if (n != n2) {
+ if (n)
+- spin_unlock(&n->list_lock);
++ raw_spin_unlock(&n->list_lock);
+
+ n = n2;
+- spin_lock(&n->list_lock);
++ raw_spin_lock(&n->list_lock);
+ }
+
+ do {
+@@ -2219,7 +2219,7 @@ static void unfreeze_partials(struct kmem_cache *s,
+ }
+
+ if (n)
+- spin_unlock(&n->list_lock);
++ raw_spin_unlock(&n->list_lock);
+
+ while (discard_page) {
+ page = discard_page;
+@@ -2388,10 +2388,10 @@ static unsigned long count_partial(struct kmem_cache_node *n,
+ unsigned long x = 0;
+ struct page *page;
+
+- spin_lock_irqsave(&n->list_lock, flags);
++ raw_spin_lock_irqsave(&n->list_lock, flags);
+ list_for_each_entry(page, &n->partial, lru)
+ x += get_count(page);
+- spin_unlock_irqrestore(&n->list_lock, flags);
++ raw_spin_unlock_irqrestore(&n->list_lock, flags);
+ return x;
+ }
+ #endif /* CONFIG_SLUB_DEBUG || CONFIG_SYSFS */
+@@ -2836,7 +2836,7 @@ static void __slab_free(struct kmem_cache *s, struct page *page,
+
+ do {
+ if (unlikely(n)) {
+- spin_unlock_irqrestore(&n->list_lock, flags);
++ raw_spin_unlock_irqrestore(&n->list_lock, flags);
+ n = NULL;
+ }
+ prior = page->freelist;
+@@ -2868,7 +2868,7 @@ static void __slab_free(struct kmem_cache *s, struct page *page,
+ * Otherwise the list_lock will synchronize with
+ * other processors updating the list of slabs.
+ */
+- spin_lock_irqsave(&n->list_lock, flags);
++ raw_spin_lock_irqsave(&n->list_lock, flags);
+
+ }
+ }
+@@ -2910,7 +2910,7 @@ static void __slab_free(struct kmem_cache *s, struct page *page,
+ add_partial(n, page, DEACTIVATE_TO_TAIL);
+ stat(s, FREE_ADD_PARTIAL);
+ }
+- spin_unlock_irqrestore(&n->list_lock, flags);
++ raw_spin_unlock_irqrestore(&n->list_lock, flags);
+ return;
+
+ slab_empty:
+@@ -2925,7 +2925,7 @@ static void __slab_free(struct kmem_cache *s, struct page *page,
+ remove_full(s, n, page);
+ }
+
+- spin_unlock_irqrestore(&n->list_lock, flags);
++ raw_spin_unlock_irqrestore(&n->list_lock, flags);
+ stat(s, FREE_SLAB);
+ discard_slab(s, page);
+ }
+@@ -3323,7 +3323,7 @@ static void
+ init_kmem_cache_node(struct kmem_cache_node *n)
+ {
+ n->nr_partial = 0;
+- spin_lock_init(&n->list_lock);
++ raw_spin_lock_init(&n->list_lock);
+ INIT_LIST_HEAD(&n->partial);
+ #ifdef CONFIG_SLUB_DEBUG
+ atomic_long_set(&n->nr_slabs, 0);
+@@ -3710,7 +3710,7 @@ static void free_partial(struct kmem_cache *s, struct kmem_cache_node *n)
+ struct page *page, *h;
+
+ BUG_ON(irqs_disabled());
+- spin_lock_irq(&n->list_lock);
++ raw_spin_lock_irq(&n->list_lock);
+ list_for_each_entry_safe(page, h, &n->partial, lru) {
+ if (!page->inuse) {
+ remove_partial(n, page);
+@@ -3720,7 +3720,7 @@ static void free_partial(struct kmem_cache *s, struct kmem_cache_node *n)
+ "Objects remaining in %s on __kmem_cache_shutdown()");
+ }
+ }
+- spin_unlock_irq(&n->list_lock);
++ raw_spin_unlock_irq(&n->list_lock);
+
+ list_for_each_entry_safe(page, h, &discard, lru)
+ discard_slab(s, page);
+@@ -3993,7 +3993,7 @@ int __kmem_cache_shrink(struct kmem_cache *s)
+ for (i = 0; i < SHRINK_PROMOTE_MAX; i++)
+ INIT_LIST_HEAD(promote + i);
+
+- spin_lock_irqsave(&n->list_lock, flags);
++ raw_spin_lock_irqsave(&n->list_lock, flags);
+
+ /*
+ * Build lists of slabs to discard or promote.
+@@ -4024,7 +4024,7 @@ int __kmem_cache_shrink(struct kmem_cache *s)
+ for (i = SHRINK_PROMOTE_MAX - 1; i >= 0; i--)
+ list_splice(promote + i, &n->partial);
+
+- spin_unlock_irqrestore(&n->list_lock, flags);
++ raw_spin_unlock_irqrestore(&n->list_lock, flags);
+
+ /* Release empty slabs */
+ list_for_each_entry_safe(page, t, &discard, lru)
+@@ -4438,7 +4438,7 @@ static int validate_slab_node(struct kmem_cache *s,
+ struct page *page;
+ unsigned long flags;
+
+- spin_lock_irqsave(&n->list_lock, flags);
++ raw_spin_lock_irqsave(&n->list_lock, flags);
+
+ list_for_each_entry(page, &n->partial, lru) {
+ validate_slab_slab(s, page, map);
+@@ -4460,7 +4460,7 @@ static int validate_slab_node(struct kmem_cache *s,
+ s->name, count, atomic_long_read(&n->nr_slabs));
+
+ out:
+- spin_unlock_irqrestore(&n->list_lock, flags);
++ raw_spin_unlock_irqrestore(&n->list_lock, flags);
+ return count;
+ }
+
+@@ -4650,12 +4650,12 @@ static int list_locations(struct kmem_cache *s, char *buf,
+ if (!atomic_long_read(&n->nr_slabs))
+ continue;
+
+- spin_lock_irqsave(&n->list_lock, flags);
++ raw_spin_lock_irqsave(&n->list_lock, flags);
+ list_for_each_entry(page, &n->partial, lru)
+ process_slab(&t, s, page, alloc, map);
+ list_for_each_entry(page, &n->full, lru)
+ process_slab(&t, s, page, alloc, map);
+- spin_unlock_irqrestore(&n->list_lock, flags);
++ raw_spin_unlock_irqrestore(&n->list_lock, flags);
+ }
+
+ for (i = 0; i < t.count; i++) {
+--
+2.36.1
+
diff --git a/debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch b/debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch
new file mode 100644
index 000000000..c62fd4658
--- /dev/null
+++ b/debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch
@@ -0,0 +1,223 @@
+From 77ff019039696fc4bd8962110c689eb3520386b1 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Thu, 21 Jun 2018 17:29:19 +0200
+Subject: [PATCH 075/347] mm/SLUB: delay giving back empty slubs to IRQ enabled
+ regions
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+__free_slab() is invoked with disabled interrupts which increases the
+irq-off time while __free_pages() is doing the work.
+Allow __free_slab() to be invoked with enabled interrupts and move
+everything from interrupts-off invocations to a temporary per-CPU list
+so it can be processed later.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ mm/slub.c | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++----
+ 1 file changed, 69 insertions(+), 5 deletions(-)
+
+diff --git a/mm/slub.c b/mm/slub.c
+index 0e4670add1e9..a5a086ed4493 100644
+--- a/mm/slub.c
++++ b/mm/slub.c
+@@ -1350,6 +1350,12 @@ static bool freelist_corrupted(struct kmem_cache *s, struct page *page,
+ }
+ #endif /* CONFIG_SLUB_DEBUG */
+
++struct slub_free_list {
++ raw_spinlock_t lock;
++ struct list_head list;
++};
++static DEFINE_PER_CPU(struct slub_free_list, slub_free_list);
++
+ /*
+ * Hooks for other subsystems that check memory allocations. In a typical
+ * production configuration these hooks all should produce no code at all.
+@@ -1711,6 +1717,16 @@ static void __free_slab(struct kmem_cache *s, struct page *page)
+ __free_pages(page, order);
+ }
+
++static void free_delayed(struct list_head *h)
++{
++ while (!list_empty(h)) {
++ struct page *page = list_first_entry(h, struct page, lru);
++
++ list_del(&page->lru);
++ __free_slab(page->slab_cache, page);
++ }
++}
++
+ static void rcu_free_slab(struct rcu_head *h)
+ {
+ struct page *page = container_of(h, struct page, rcu_head);
+@@ -1722,6 +1738,12 @@ static void free_slab(struct kmem_cache *s, struct page *page)
+ {
+ if (unlikely(s->flags & SLAB_TYPESAFE_BY_RCU)) {
+ call_rcu(&page->rcu_head, rcu_free_slab);
++ } else if (irqs_disabled()) {
++ struct slub_free_list *f = this_cpu_ptr(&slub_free_list);
++
++ raw_spin_lock(&f->lock);
++ list_add(&page->lru, &f->list);
++ raw_spin_unlock(&f->lock);
+ } else
+ __free_slab(s, page);
+ }
+@@ -2256,14 +2278,21 @@ static void put_cpu_partial(struct kmem_cache *s, struct page *page, int drain)
+ pobjects = oldpage->pobjects;
+ pages = oldpage->pages;
+ if (drain && pobjects > s->cpu_partial) {
++ struct slub_free_list *f;
+ unsigned long flags;
++ LIST_HEAD(tofree);
+ /*
+ * partial array is full. Move the existing
+ * set to the per node partial list.
+ */
+ local_irq_save(flags);
+ unfreeze_partials(s, this_cpu_ptr(s->cpu_slab));
++ f = this_cpu_ptr(&slub_free_list);
++ raw_spin_lock(&f->lock);
++ list_splice_init(&f->list, &tofree);
++ raw_spin_unlock(&f->lock);
+ local_irq_restore(flags);
++ free_delayed(&tofree);
+ oldpage = NULL;
+ pobjects = 0;
+ pages = 0;
+@@ -2333,7 +2362,22 @@ static bool has_cpu_slab(int cpu, void *info)
+
+ static void flush_all(struct kmem_cache *s)
+ {
++ LIST_HEAD(tofree);
++ int cpu;
++
+ on_each_cpu_cond(has_cpu_slab, flush_cpu_slab, s, 1, GFP_ATOMIC);
++ for_each_online_cpu(cpu) {
++ struct slub_free_list *f;
++
++ if (!has_cpu_slab(cpu, s))
++ continue;
++
++ f = &per_cpu(slub_free_list, cpu);
++ raw_spin_lock_irq(&f->lock);
++ list_splice_init(&f->list, &tofree);
++ raw_spin_unlock_irq(&f->lock);
++ free_delayed(&tofree);
++ }
+ }
+
+ /*
+@@ -2531,8 +2575,10 @@ static inline void *get_freelist(struct kmem_cache *s, struct page *page)
+ * already disabled (which is the case for bulk allocation).
+ */
+ static void *___slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,
+- unsigned long addr, struct kmem_cache_cpu *c)
++ unsigned long addr, struct kmem_cache_cpu *c,
++ struct list_head *to_free)
+ {
++ struct slub_free_list *f;
+ void *freelist;
+ struct page *page;
+
+@@ -2598,6 +2644,13 @@ static void *___slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,
+ VM_BUG_ON(!c->page->frozen);
+ c->freelist = get_freepointer(s, freelist);
+ c->tid = next_tid(c->tid);
++
++out:
++ f = this_cpu_ptr(&slub_free_list);
++ raw_spin_lock(&f->lock);
++ list_splice_init(&f->list, to_free);
++ raw_spin_unlock(&f->lock);
++
+ return freelist;
+
+ new_slab:
+@@ -2613,7 +2666,7 @@ static void *___slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,
+
+ if (unlikely(!freelist)) {
+ slab_out_of_memory(s, gfpflags, node);
+- return NULL;
++ goto out;
+ }
+
+ page = c->page;
+@@ -2626,7 +2679,7 @@ static void *___slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,
+ goto new_slab; /* Slab failed checks. Next slab needed */
+
+ deactivate_slab(s, page, get_freepointer(s, freelist), c);
+- return freelist;
++ goto out;
+ }
+
+ /*
+@@ -2638,6 +2691,7 @@ static void *__slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,
+ {
+ void *p;
+ unsigned long flags;
++ LIST_HEAD(tofree);
+
+ local_irq_save(flags);
+ #ifdef CONFIG_PREEMPT
+@@ -2649,8 +2703,9 @@ static void *__slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,
+ c = this_cpu_ptr(s->cpu_slab);
+ #endif
+
+- p = ___slab_alloc(s, gfpflags, node, addr, c);
++ p = ___slab_alloc(s, gfpflags, node, addr, c, &tofree);
+ local_irq_restore(flags);
++ free_delayed(&tofree);
+ return p;
+ }
+
+@@ -3130,6 +3185,7 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, gfp_t flags, size_t size,
+ void **p)
+ {
+ struct kmem_cache_cpu *c;
++ LIST_HEAD(to_free);
+ int i;
+
+ /* memcg and kmem_cache debug support */
+@@ -3162,7 +3218,7 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, gfp_t flags, size_t size,
+ * of re-populating per CPU c->freelist
+ */
+ p[i] = ___slab_alloc(s, flags, NUMA_NO_NODE,
+- _RET_IP_, c);
++ _RET_IP_, c, &to_free);
+ if (unlikely(!p[i]))
+ goto error;
+
+@@ -3174,6 +3230,7 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, gfp_t flags, size_t size,
+ }
+ c->tid = next_tid(c->tid);
+ local_irq_enable();
++ free_delayed(&to_free);
+
+ /* Clear memory outside IRQ disabled fastpath loop */
+ if (unlikely(flags & __GFP_ZERO)) {
+@@ -3188,6 +3245,7 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, gfp_t flags, size_t size,
+ return i;
+ error:
+ local_irq_enable();
++ free_delayed(&to_free);
+ slab_post_alloc_hook(s, flags, i, p);
+ __kmem_cache_free_bulk(s, i, p);
+ return 0;
+@@ -4237,6 +4295,12 @@ void __init kmem_cache_init(void)
+ {
+ static __initdata struct kmem_cache boot_kmem_cache,
+ boot_kmem_cache_node;
++ int cpu;
++
++ for_each_possible_cpu(cpu) {
++ raw_spin_lock_init(&per_cpu(slub_free_list, cpu).lock);
++ INIT_LIST_HEAD(&per_cpu(slub_free_list, cpu).list);
++ }
+
+ if (debug_guardpage_minorder())
+ slub_max_order = 0;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0076-mm-page_alloc-rt-friendly-per-cpu-pages.patch b/debian/patches-rt/0076-mm-page_alloc-rt-friendly-per-cpu-pages.patch
new file mode 100644
index 000000000..819fc71a0
--- /dev/null
+++ b/debian/patches-rt/0076-mm-page_alloc-rt-friendly-per-cpu-pages.patch
@@ -0,0 +1,239 @@
+From 85f14b575e2fadf9ab80ef7b3e5158833d79939e Mon Sep 17 00:00:00 2001
+From: Ingo Molnar <mingo@elte.hu>
+Date: Fri, 3 Jul 2009 08:29:37 -0500
+Subject: [PATCH 076/347] mm: page_alloc: rt-friendly per-cpu pages
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+rt-friendly per-cpu pages: convert the irqs-off per-cpu locking
+method into a preemptible, explicit-per-cpu-locks method.
+
+Contains fixes from:
+ Peter Zijlstra <a.p.zijlstra@chello.nl>
+ Thomas Gleixner <tglx@linutronix.de>
+
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ mm/page_alloc.c | 63 +++++++++++++++++++++++++++++++++----------------
+ 1 file changed, 43 insertions(+), 20 deletions(-)
+
+diff --git a/mm/page_alloc.c b/mm/page_alloc.c
+index ba6f9b334073..59ea701ecfe0 100644
+--- a/mm/page_alloc.c
++++ b/mm/page_alloc.c
+@@ -60,6 +60,7 @@
+ #include <linux/hugetlb.h>
+ #include <linux/sched/rt.h>
+ #include <linux/sched/mm.h>
++#include <linux/locallock.h>
+ #include <linux/page_owner.h>
+ #include <linux/kthread.h>
+ #include <linux/memcontrol.h>
+@@ -292,6 +293,18 @@ EXPORT_SYMBOL(nr_node_ids);
+ EXPORT_SYMBOL(nr_online_nodes);
+ #endif
+
++static DEFINE_LOCAL_IRQ_LOCK(pa_lock);
++
++#ifdef CONFIG_PREEMPT_RT_BASE
++# define cpu_lock_irqsave(cpu, flags) \
++ local_lock_irqsave_on(pa_lock, flags, cpu)
++# define cpu_unlock_irqrestore(cpu, flags) \
++ local_unlock_irqrestore_on(pa_lock, flags, cpu)
++#else
++# define cpu_lock_irqsave(cpu, flags) local_irq_save(flags)
++# define cpu_unlock_irqrestore(cpu, flags) local_irq_restore(flags)
++#endif
++
+ int page_group_by_mobility_disabled __read_mostly;
+
+ #ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT
+@@ -1302,10 +1315,10 @@ static void __free_pages_ok(struct page *page, unsigned int order)
+ return;
+
+ migratetype = get_pfnblock_migratetype(page, pfn);
+- local_irq_save(flags);
++ local_lock_irqsave(pa_lock, flags);
+ __count_vm_events(PGFREE, 1 << order);
+ free_one_page(page_zone(page), page, pfn, order, migratetype);
+- local_irq_restore(flags);
++ local_unlock_irqrestore(pa_lock, flags);
+ }
+
+ static void __init __free_pages_boot_core(struct page *page, unsigned int order)
+@@ -2570,13 +2583,13 @@ void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp)
+ int to_drain, batch;
+ LIST_HEAD(dst);
+
+- local_irq_save(flags);
++ local_lock_irqsave(pa_lock, flags);
+ batch = READ_ONCE(pcp->batch);
+ to_drain = min(pcp->count, batch);
+ if (to_drain > 0)
+ isolate_pcp_pages(to_drain, pcp, &dst);
+
+- local_irq_restore(flags);
++ local_unlock_irqrestore(pa_lock, flags);
+
+ if (to_drain > 0)
+ free_pcppages_bulk(zone, &dst, false);
+@@ -2598,7 +2611,7 @@ static void drain_pages_zone(unsigned int cpu, struct zone *zone)
+ LIST_HEAD(dst);
+ int count;
+
+- local_irq_save(flags);
++ cpu_lock_irqsave(cpu, flags);
+ pset = per_cpu_ptr(zone->pageset, cpu);
+
+ pcp = &pset->pcp;
+@@ -2606,7 +2619,7 @@ static void drain_pages_zone(unsigned int cpu, struct zone *zone)
+ if (count)
+ isolate_pcp_pages(count, pcp, &dst);
+
+- local_irq_restore(flags);
++ cpu_unlock_irqrestore(cpu, flags);
+
+ if (count)
+ free_pcppages_bulk(zone, &dst, false);
+@@ -2644,6 +2657,7 @@ void drain_local_pages(struct zone *zone)
+ drain_pages(cpu);
+ }
+
++#ifndef CONFIG_PREEMPT_RT_BASE
+ static void drain_local_pages_wq(struct work_struct *work)
+ {
+ /*
+@@ -2657,6 +2671,7 @@ static void drain_local_pages_wq(struct work_struct *work)
+ drain_local_pages(NULL);
+ preempt_enable();
+ }
++#endif
+
+ /*
+ * Spill all the per-cpu pages from all CPUs back into the buddy allocator.
+@@ -2723,7 +2738,14 @@ void drain_all_pages(struct zone *zone)
+ else
+ cpumask_clear_cpu(cpu, &cpus_with_pcps);
+ }
+-
++#ifdef CONFIG_PREEMPT_RT_BASE
++ for_each_cpu(cpu, &cpus_with_pcps) {
++ if (zone)
++ drain_pages_zone(cpu, zone);
++ else
++ drain_pages(cpu);
++ }
++#else
+ for_each_cpu(cpu, &cpus_with_pcps) {
+ struct work_struct *work = per_cpu_ptr(&pcpu_drain, cpu);
+ INIT_WORK(work, drain_local_pages_wq);
+@@ -2731,6 +2753,7 @@ void drain_all_pages(struct zone *zone)
+ }
+ for_each_cpu(cpu, &cpus_with_pcps)
+ flush_work(per_cpu_ptr(&pcpu_drain, cpu));
++#endif
+
+ mutex_unlock(&pcpu_drain_mutex);
+ }
+@@ -2850,9 +2873,9 @@ void free_unref_page(struct page *page)
+ if (!free_unref_page_prepare(page, pfn))
+ return;
+
+- local_irq_save(flags);
++ local_lock_irqsave(pa_lock, flags);
+ free_unref_page_commit(page, pfn, &dst);
+- local_irq_restore(flags);
++ local_unlock_irqrestore(pa_lock, flags);
+ if (!list_empty(&dst))
+ free_pcppages_bulk(zone, &dst, false);
+ }
+@@ -2879,7 +2902,7 @@ void free_unref_page_list(struct list_head *list)
+ set_page_private(page, pfn);
+ }
+
+- local_irq_save(flags);
++ local_lock_irqsave(pa_lock, flags);
+ list_for_each_entry_safe(page, next, list, lru) {
+ unsigned long pfn = page_private(page);
+ enum zone_type type;
+@@ -2894,12 +2917,12 @@ void free_unref_page_list(struct list_head *list)
+ * a large list of pages to free.
+ */
+ if (++batch_count == SWAP_CLUSTER_MAX) {
+- local_irq_restore(flags);
++ local_unlock_irqrestore(pa_lock, flags);
+ batch_count = 0;
+- local_irq_save(flags);
++ local_lock_irqsave(pa_lock, flags);
+ }
+ }
+- local_irq_restore(flags);
++ local_unlock_irqrestore(pa_lock, flags);
+
+ for (i = 0; i < __MAX_NR_ZONES; ) {
+ struct page *page;
+@@ -3048,7 +3071,7 @@ static struct page *rmqueue_pcplist(struct zone *preferred_zone,
+ struct page *page;
+ unsigned long flags;
+
+- local_irq_save(flags);
++ local_lock_irqsave(pa_lock, flags);
+ pcp = &this_cpu_ptr(zone->pageset)->pcp;
+ list = &pcp->lists[migratetype];
+ page = __rmqueue_pcplist(zone, migratetype, pcp, list);
+@@ -3056,7 +3079,7 @@ static struct page *rmqueue_pcplist(struct zone *preferred_zone,
+ __count_zid_vm_events(PGALLOC, page_zonenum(page), 1 << order);
+ zone_statistics(preferred_zone, zone);
+ }
+- local_irq_restore(flags);
++ local_unlock_irqrestore(pa_lock, flags);
+ return page;
+ }
+
+@@ -3083,7 +3106,7 @@ struct page *rmqueue(struct zone *preferred_zone,
+ * allocate greater than order-1 page units with __GFP_NOFAIL.
+ */
+ WARN_ON_ONCE((gfp_flags & __GFP_NOFAIL) && (order > 1));
+- spin_lock_irqsave(&zone->lock, flags);
++ local_spin_lock_irqsave(pa_lock, &zone->lock, flags);
+
+ do {
+ page = NULL;
+@@ -3103,14 +3126,14 @@ struct page *rmqueue(struct zone *preferred_zone,
+
+ __count_zid_vm_events(PGALLOC, page_zonenum(page), 1 << order);
+ zone_statistics(preferred_zone, zone);
+- local_irq_restore(flags);
++ local_unlock_irqrestore(pa_lock, flags);
+
+ out:
+ VM_BUG_ON_PAGE(page && bad_range(zone, page), page);
+ return page;
+
+ failed:
+- local_irq_restore(flags);
++ local_unlock_irqrestore(pa_lock, flags);
+ return NULL;
+ }
+
+@@ -8146,7 +8169,7 @@ void zone_pcp_reset(struct zone *zone)
+ struct per_cpu_pageset *pset;
+
+ /* avoid races with drain_pages() */
+- local_irq_save(flags);
++ local_lock_irqsave(pa_lock, flags);
+ if (zone->pageset != &boot_pageset) {
+ for_each_online_cpu(cpu) {
+ pset = per_cpu_ptr(zone->pageset, cpu);
+@@ -8155,7 +8178,7 @@ void zone_pcp_reset(struct zone *zone)
+ free_percpu(zone->pageset);
+ zone->pageset = &boot_pageset;
+ }
+- local_irq_restore(flags);
++ local_unlock_irqrestore(pa_lock, flags);
+ }
+
+ #ifdef CONFIG_MEMORY_HOTREMOVE
+--
+2.36.1
+
diff --git a/debian/patches-rt/0077-mm-swap-Convert-to-percpu-locked.patch b/debian/patches-rt/0077-mm-swap-Convert-to-percpu-locked.patch
new file mode 100644
index 000000000..a2925871b
--- /dev/null
+++ b/debian/patches-rt/0077-mm-swap-Convert-to-percpu-locked.patch
@@ -0,0 +1,211 @@
+From cba209957a582e2758768ae3c7e5be17d11fc94a Mon Sep 17 00:00:00 2001
+From: Ingo Molnar <mingo@elte.hu>
+Date: Fri, 3 Jul 2009 08:29:51 -0500
+Subject: [PATCH 077/347] mm/swap: Convert to percpu locked
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Replace global locks (get_cpu + local_irq_save) with "local_locks()".
+Currently there is one of for "rotate" and one for "swap".
+
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/swap.h | 2 ++
+ mm/compaction.c | 6 ++++--
+ mm/page_alloc.c | 3 ++-
+ mm/swap.c | 38 ++++++++++++++++++++++----------------
+ 4 files changed, 30 insertions(+), 19 deletions(-)
+
+diff --git a/include/linux/swap.h b/include/linux/swap.h
+index ee8f9f554a9e..2ad000e362bd 100644
+--- a/include/linux/swap.h
++++ b/include/linux/swap.h
+@@ -12,6 +12,7 @@
+ #include <linux/fs.h>
+ #include <linux/atomic.h>
+ #include <linux/page-flags.h>
++#include <linux/locallock.h>
+ #include <asm/page.h>
+
+ struct notifier_block;
+@@ -331,6 +332,7 @@ extern unsigned long nr_free_pagecache_pages(void);
+
+
+ /* linux/mm/swap.c */
++DECLARE_LOCAL_IRQ_LOCK(swapvec_lock);
+ extern void lru_cache_add(struct page *);
+ extern void lru_cache_add_anon(struct page *page);
+ extern void lru_cache_add_file(struct page *page);
+diff --git a/mm/compaction.c b/mm/compaction.c
+index 5079ddbec8f9..c40d3a13cbbd 100644
+--- a/mm/compaction.c
++++ b/mm/compaction.c
+@@ -1668,10 +1668,12 @@ static enum compact_result compact_zone(struct zone *zone, struct compact_contro
+ block_start_pfn(cc->migrate_pfn, cc->order);
+
+ if (cc->last_migrated_pfn < current_block_start) {
+- cpu = get_cpu();
++ cpu = get_cpu_light();
++ local_lock_irq(swapvec_lock);
+ lru_add_drain_cpu(cpu);
++ local_unlock_irq(swapvec_lock);
+ drain_local_pages(zone);
+- put_cpu();
++ put_cpu_light();
+ /* No more flushing until we migrate again */
+ cc->last_migrated_pfn = 0;
+ }
+diff --git a/mm/page_alloc.c b/mm/page_alloc.c
+index 59ea701ecfe0..11c08cfd6dfb 100644
+--- a/mm/page_alloc.c
++++ b/mm/page_alloc.c
+@@ -7257,8 +7257,9 @@ void __init free_area_init(unsigned long *zones_size)
+
+ static int page_alloc_cpu_dead(unsigned int cpu)
+ {
+-
++ local_lock_irq_on(swapvec_lock, cpu);
+ lru_add_drain_cpu(cpu);
++ local_unlock_irq_on(swapvec_lock, cpu);
+ drain_pages(cpu);
+
+ /*
+diff --git a/mm/swap.c b/mm/swap.c
+index 45fdbfb6b2a6..92f994b962f0 100644
+--- a/mm/swap.c
++++ b/mm/swap.c
+@@ -33,6 +33,7 @@
+ #include <linux/memcontrol.h>
+ #include <linux/gfp.h>
+ #include <linux/uio.h>
++#include <linux/locallock.h>
+ #include <linux/hugetlb.h>
+ #include <linux/page_idle.h>
+
+@@ -51,6 +52,8 @@ static DEFINE_PER_CPU(struct pagevec, lru_lazyfree_pvecs);
+ #ifdef CONFIG_SMP
+ static DEFINE_PER_CPU(struct pagevec, activate_page_pvecs);
+ #endif
++static DEFINE_LOCAL_IRQ_LOCK(rotate_lock);
++DEFINE_LOCAL_IRQ_LOCK(swapvec_lock);
+
+ /*
+ * This path almost never happens for VM activity - pages are normally
+@@ -253,11 +256,11 @@ void rotate_reclaimable_page(struct page *page)
+ unsigned long flags;
+
+ get_page(page);
+- local_irq_save(flags);
++ local_lock_irqsave(rotate_lock, flags);
+ pvec = this_cpu_ptr(&lru_rotate_pvecs);
+ if (!pagevec_add(pvec, page) || PageCompound(page))
+ pagevec_move_tail(pvec);
+- local_irq_restore(flags);
++ local_unlock_irqrestore(rotate_lock, flags);
+ }
+ }
+
+@@ -307,12 +310,13 @@ void activate_page(struct page *page)
+ {
+ page = compound_head(page);
+ if (PageLRU(page) && !PageActive(page) && !PageUnevictable(page)) {
+- struct pagevec *pvec = &get_cpu_var(activate_page_pvecs);
++ struct pagevec *pvec = &get_locked_var(swapvec_lock,
++ activate_page_pvecs);
+
+ get_page(page);
+ if (!pagevec_add(pvec, page) || PageCompound(page))
+ pagevec_lru_move_fn(pvec, __activate_page, NULL);
+- put_cpu_var(activate_page_pvecs);
++ put_locked_var(swapvec_lock, activate_page_pvecs);
+ }
+ }
+
+@@ -334,7 +338,7 @@ void activate_page(struct page *page)
+
+ static void __lru_cache_activate_page(struct page *page)
+ {
+- struct pagevec *pvec = &get_cpu_var(lru_add_pvec);
++ struct pagevec *pvec = &get_locked_var(swapvec_lock, lru_add_pvec);
+ int i;
+
+ /*
+@@ -356,7 +360,7 @@ static void __lru_cache_activate_page(struct page *page)
+ }
+ }
+
+- put_cpu_var(lru_add_pvec);
++ put_locked_var(swapvec_lock, lru_add_pvec);
+ }
+
+ /*
+@@ -398,12 +402,12 @@ EXPORT_SYMBOL(mark_page_accessed);
+
+ static void __lru_cache_add(struct page *page)
+ {
+- struct pagevec *pvec = &get_cpu_var(lru_add_pvec);
++ struct pagevec *pvec = &get_locked_var(swapvec_lock, lru_add_pvec);
+
+ get_page(page);
+ if (!pagevec_add(pvec, page) || PageCompound(page))
+ __pagevec_lru_add(pvec);
+- put_cpu_var(lru_add_pvec);
++ put_locked_var(swapvec_lock, lru_add_pvec);
+ }
+
+ /**
+@@ -581,9 +585,9 @@ void lru_add_drain_cpu(int cpu)
+ unsigned long flags;
+
+ /* No harm done if a racing interrupt already did this */
+- local_irq_save(flags);
++ local_lock_irqsave(rotate_lock, flags);
+ pagevec_move_tail(pvec);
+- local_irq_restore(flags);
++ local_unlock_irqrestore(rotate_lock, flags);
+ }
+
+ pvec = &per_cpu(lru_deactivate_file_pvecs, cpu);
+@@ -615,11 +619,12 @@ void deactivate_file_page(struct page *page)
+ return;
+
+ if (likely(get_page_unless_zero(page))) {
+- struct pagevec *pvec = &get_cpu_var(lru_deactivate_file_pvecs);
++ struct pagevec *pvec = &get_locked_var(swapvec_lock,
++ lru_deactivate_file_pvecs);
+
+ if (!pagevec_add(pvec, page) || PageCompound(page))
+ pagevec_lru_move_fn(pvec, lru_deactivate_file_fn, NULL);
+- put_cpu_var(lru_deactivate_file_pvecs);
++ put_locked_var(swapvec_lock, lru_deactivate_file_pvecs);
+ }
+ }
+
+@@ -634,19 +639,20 @@ void mark_page_lazyfree(struct page *page)
+ {
+ if (PageLRU(page) && PageAnon(page) && PageSwapBacked(page) &&
+ !PageSwapCache(page) && !PageUnevictable(page)) {
+- struct pagevec *pvec = &get_cpu_var(lru_lazyfree_pvecs);
++ struct pagevec *pvec = &get_locked_var(swapvec_lock,
++ lru_lazyfree_pvecs);
+
+ get_page(page);
+ if (!pagevec_add(pvec, page) || PageCompound(page))
+ pagevec_lru_move_fn(pvec, lru_lazyfree_fn, NULL);
+- put_cpu_var(lru_lazyfree_pvecs);
++ put_locked_var(swapvec_lock, lru_lazyfree_pvecs);
+ }
+ }
+
+ void lru_add_drain(void)
+ {
+- lru_add_drain_cpu(get_cpu());
+- put_cpu();
++ lru_add_drain_cpu(local_lock_cpu(swapvec_lock));
++ local_unlock_cpu(swapvec_lock);
+ }
+
+ #ifdef CONFIG_SMP
+--
+2.36.1
+
diff --git a/debian/patches-rt/0078-mm-perform-lru_add_drain_all-remotely.patch b/debian/patches-rt/0078-mm-perform-lru_add_drain_all-remotely.patch
new file mode 100644
index 000000000..0983e2795
--- /dev/null
+++ b/debian/patches-rt/0078-mm-perform-lru_add_drain_all-remotely.patch
@@ -0,0 +1,109 @@
+From 9336f220ffe2a225210342f5977ec2636ffc8717 Mon Sep 17 00:00:00 2001
+From: Luiz Capitulino <lcapitulino@redhat.com>
+Date: Fri, 27 May 2016 15:03:28 +0200
+Subject: [PATCH 078/347] mm: perform lru_add_drain_all() remotely
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+lru_add_drain_all() works by scheduling lru_add_drain_cpu() to run
+on all CPUs that have non-empty LRU pagevecs and then waiting for
+the scheduled work to complete. However, workqueue threads may never
+have the chance to run on a CPU that's running a SCHED_FIFO task.
+This causes lru_add_drain_all() to block forever.
+
+This commit solves this problem by changing lru_add_drain_all()
+to drain the LRU pagevecs of remote CPUs. This is done by grabbing
+swapvec_lock and calling lru_add_drain_cpu().
+
+PS: This is based on an idea and initial implementation by
+ Rik van Riel.
+
+Signed-off-by: Rik van Riel <riel@redhat.com>
+Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ mm/swap.c | 36 ++++++++++++++++++++++++++++++------
+ 1 file changed, 30 insertions(+), 6 deletions(-)
+
+diff --git a/mm/swap.c b/mm/swap.c
+index 92f994b962f0..3885645a45ce 100644
+--- a/mm/swap.c
++++ b/mm/swap.c
+@@ -585,9 +585,15 @@ void lru_add_drain_cpu(int cpu)
+ unsigned long flags;
+
+ /* No harm done if a racing interrupt already did this */
++#ifdef CONFIG_PREEMPT_RT_BASE
++ local_lock_irqsave_on(rotate_lock, flags, cpu);
++ pagevec_move_tail(pvec);
++ local_unlock_irqrestore_on(rotate_lock, flags, cpu);
++#else
+ local_lock_irqsave(rotate_lock, flags);
+ pagevec_move_tail(pvec);
+ local_unlock_irqrestore(rotate_lock, flags);
++#endif
+ }
+
+ pvec = &per_cpu(lru_deactivate_file_pvecs, cpu);
+@@ -657,6 +663,16 @@ void lru_add_drain(void)
+
+ #ifdef CONFIG_SMP
+
++#ifdef CONFIG_PREEMPT_RT_BASE
++static inline void remote_lru_add_drain(int cpu, struct cpumask *has_work)
++{
++ local_lock_on(swapvec_lock, cpu);
++ lru_add_drain_cpu(cpu);
++ local_unlock_on(swapvec_lock, cpu);
++}
++
++#else
++
+ static DEFINE_PER_CPU(struct work_struct, lru_add_drain_work);
+
+ static void lru_add_drain_per_cpu(struct work_struct *dummy)
+@@ -664,6 +680,16 @@ static void lru_add_drain_per_cpu(struct work_struct *dummy)
+ lru_add_drain();
+ }
+
++static inline void remote_lru_add_drain(int cpu, struct cpumask *has_work)
++{
++ struct work_struct *work = &per_cpu(lru_add_drain_work, cpu);
++
++ INIT_WORK(work, lru_add_drain_per_cpu);
++ queue_work_on(cpu, mm_percpu_wq, work);
++ cpumask_set_cpu(cpu, has_work);
++}
++#endif
++
+ /*
+ * Doesn't need any cpu hotplug locking because we do rely on per-cpu
+ * kworkers being shut down before our page_alloc_cpu_dead callback is
+@@ -688,21 +714,19 @@ void lru_add_drain_all(void)
+ cpumask_clear(&has_work);
+
+ for_each_online_cpu(cpu) {
+- struct work_struct *work = &per_cpu(lru_add_drain_work, cpu);
+
+ if (pagevec_count(&per_cpu(lru_add_pvec, cpu)) ||
+ pagevec_count(&per_cpu(lru_rotate_pvecs, cpu)) ||
+ pagevec_count(&per_cpu(lru_deactivate_file_pvecs, cpu)) ||
+ pagevec_count(&per_cpu(lru_lazyfree_pvecs, cpu)) ||
+- need_activate_page_drain(cpu)) {
+- INIT_WORK(work, lru_add_drain_per_cpu);
+- queue_work_on(cpu, mm_percpu_wq, work);
+- cpumask_set_cpu(cpu, &has_work);
+- }
++ need_activate_page_drain(cpu))
++ remote_lru_add_drain(cpu, &has_work);
+ }
+
++#ifndef CONFIG_PREEMPT_RT_BASE
+ for_each_cpu(cpu, &has_work)
+ flush_work(&per_cpu(lru_add_drain_work, cpu));
++#endif
+
+ mutex_unlock(&lock);
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0079-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch b/debian/patches-rt/0079-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch
new file mode 100644
index 000000000..0c7ea39e8
--- /dev/null
+++ b/debian/patches-rt/0079-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch
@@ -0,0 +1,145 @@
+From a61a39e63a0af178f57da615a22877b00fee0a58 Mon Sep 17 00:00:00 2001
+From: Ingo Molnar <mingo@elte.hu>
+Date: Fri, 3 Jul 2009 08:30:13 -0500
+Subject: [PATCH 079/347] mm/vmstat: Protect per cpu variables with preempt
+ disable on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+same ressources is not updated in parallel due to preemption.
+
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/vmstat.h | 4 ++++
+ mm/vmstat.c | 12 ++++++++++++
+ 2 files changed, 16 insertions(+)
+
+diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h
+index f25cef84b41d..febee8649220 100644
+--- a/include/linux/vmstat.h
++++ b/include/linux/vmstat.h
+@@ -54,7 +54,9 @@ DECLARE_PER_CPU(struct vm_event_state, vm_event_states);
+ */
+ static inline void __count_vm_event(enum vm_event_item item)
+ {
++ preempt_disable_rt();
+ raw_cpu_inc(vm_event_states.event[item]);
++ preempt_enable_rt();
+ }
+
+ static inline void count_vm_event(enum vm_event_item item)
+@@ -64,7 +66,9 @@ static inline void count_vm_event(enum vm_event_item item)
+
+ static inline void __count_vm_events(enum vm_event_item item, long delta)
+ {
++ preempt_disable_rt();
+ raw_cpu_add(vm_event_states.event[item], delta);
++ preempt_enable_rt();
+ }
+
+ static inline void count_vm_events(enum vm_event_item item, long delta)
+diff --git a/mm/vmstat.c b/mm/vmstat.c
+index 21e07e71ea2d..ff7c0d08f2b6 100644
+--- a/mm/vmstat.c
++++ b/mm/vmstat.c
+@@ -320,6 +320,7 @@ void __mod_zone_page_state(struct zone *zone, enum zone_stat_item item,
+ long x;
+ long t;
+
++ preempt_disable_rt();
+ x = delta + __this_cpu_read(*p);
+
+ t = __this_cpu_read(pcp->stat_threshold);
+@@ -329,6 +330,7 @@ void __mod_zone_page_state(struct zone *zone, enum zone_stat_item item,
+ x = 0;
+ }
+ __this_cpu_write(*p, x);
++ preempt_enable_rt();
+ }
+ EXPORT_SYMBOL(__mod_zone_page_state);
+
+@@ -340,6 +342,7 @@ void __mod_node_page_state(struct pglist_data *pgdat, enum node_stat_item item,
+ long x;
+ long t;
+
++ preempt_disable_rt();
+ x = delta + __this_cpu_read(*p);
+
+ t = __this_cpu_read(pcp->stat_threshold);
+@@ -349,6 +352,7 @@ void __mod_node_page_state(struct pglist_data *pgdat, enum node_stat_item item,
+ x = 0;
+ }
+ __this_cpu_write(*p, x);
++ preempt_enable_rt();
+ }
+ EXPORT_SYMBOL(__mod_node_page_state);
+
+@@ -381,6 +385,7 @@ void __inc_zone_state(struct zone *zone, enum zone_stat_item item)
+ s8 __percpu *p = pcp->vm_stat_diff + item;
+ s8 v, t;
+
++ preempt_disable_rt();
+ v = __this_cpu_inc_return(*p);
+ t = __this_cpu_read(pcp->stat_threshold);
+ if (unlikely(v > t)) {
+@@ -389,6 +394,7 @@ void __inc_zone_state(struct zone *zone, enum zone_stat_item item)
+ zone_page_state_add(v + overstep, zone, item);
+ __this_cpu_write(*p, -overstep);
+ }
++ preempt_enable_rt();
+ }
+
+ void __inc_node_state(struct pglist_data *pgdat, enum node_stat_item item)
+@@ -397,6 +403,7 @@ void __inc_node_state(struct pglist_data *pgdat, enum node_stat_item item)
+ s8 __percpu *p = pcp->vm_node_stat_diff + item;
+ s8 v, t;
+
++ preempt_disable_rt();
+ v = __this_cpu_inc_return(*p);
+ t = __this_cpu_read(pcp->stat_threshold);
+ if (unlikely(v > t)) {
+@@ -405,6 +412,7 @@ void __inc_node_state(struct pglist_data *pgdat, enum node_stat_item item)
+ node_page_state_add(v + overstep, pgdat, item);
+ __this_cpu_write(*p, -overstep);
+ }
++ preempt_enable_rt();
+ }
+
+ void __inc_zone_page_state(struct page *page, enum zone_stat_item item)
+@@ -425,6 +433,7 @@ void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
+ s8 __percpu *p = pcp->vm_stat_diff + item;
+ s8 v, t;
+
++ preempt_disable_rt();
+ v = __this_cpu_dec_return(*p);
+ t = __this_cpu_read(pcp->stat_threshold);
+ if (unlikely(v < - t)) {
+@@ -433,6 +442,7 @@ void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
+ zone_page_state_add(v - overstep, zone, item);
+ __this_cpu_write(*p, overstep);
+ }
++ preempt_enable_rt();
+ }
+
+ void __dec_node_state(struct pglist_data *pgdat, enum node_stat_item item)
+@@ -441,6 +451,7 @@ void __dec_node_state(struct pglist_data *pgdat, enum node_stat_item item)
+ s8 __percpu *p = pcp->vm_node_stat_diff + item;
+ s8 v, t;
+
++ preempt_disable_rt();
+ v = __this_cpu_dec_return(*p);
+ t = __this_cpu_read(pcp->stat_threshold);
+ if (unlikely(v < - t)) {
+@@ -449,6 +460,7 @@ void __dec_node_state(struct pglist_data *pgdat, enum node_stat_item item)
+ node_page_state_add(v - overstep, pgdat, item);
+ __this_cpu_write(*p, overstep);
+ }
++ preempt_enable_rt();
+ }
+
+ void __dec_zone_page_state(struct page *page, enum zone_stat_item item)
+--
+2.36.1
+
diff --git a/debian/patches-rt/0080-ARM-Initialize-split-page-table-locks-for-vector-pag.patch b/debian/patches-rt/0080-ARM-Initialize-split-page-table-locks-for-vector-pag.patch
new file mode 100644
index 000000000..d983a6470
--- /dev/null
+++ b/debian/patches-rt/0080-ARM-Initialize-split-page-table-locks-for-vector-pag.patch
@@ -0,0 +1,76 @@
+From 2056bb928af7ba7036b8d058c0a52a182cd0b9b6 Mon Sep 17 00:00:00 2001
+From: Frank Rowand <frank.rowand@am.sony.com>
+Date: Sat, 1 Oct 2011 18:58:13 -0700
+Subject: [PATCH 080/347] ARM: Initialize split page table locks for vector
+ page
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Without this patch, ARM can not use SPLIT_PTLOCK_CPUS if
+PREEMPT_RT_FULL=y because vectors_user_mapping() creates a
+VM_ALWAYSDUMP mapping of the vector page (address 0xffff0000), but no
+ptl->lock has been allocated for the page. An attempt to coredump
+that page will result in a kernel NULL pointer dereference when
+follow_page() attempts to lock the page.
+
+The call tree to the NULL pointer dereference is:
+
+ do_notify_resume()
+ get_signal_to_deliver()
+ do_coredump()
+ elf_core_dump()
+ get_dump_page()
+ __get_user_pages()
+ follow_page()
+ pte_offset_map_lock() <----- a #define
+ ...
+ rt_spin_lock()
+
+The underlying problem is exposed by mm-shrink-the-page-frame-to-rt-size.patch.
+
+Signed-off-by: Frank Rowand <frank.rowand@am.sony.com>
+Cc: Frank <Frank_Rowand@sonyusa.com>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Link: http://lkml.kernel.org/r/4E87C535.2030907@am.sony.com
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ arch/arm/kernel/process.c | 24 ++++++++++++++++++++++++
+ 1 file changed, 24 insertions(+)
+
+diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
+index 82ab015bf42b..8d3c7ce34c24 100644
+--- a/arch/arm/kernel/process.c
++++ b/arch/arm/kernel/process.c
+@@ -324,6 +324,30 @@ unsigned long arch_randomize_brk(struct mm_struct *mm)
+ }
+
+ #ifdef CONFIG_MMU
++/*
++ * CONFIG_SPLIT_PTLOCK_CPUS results in a page->ptl lock. If the lock is not
++ * initialized by pgtable_page_ctor() then a coredump of the vector page will
++ * fail.
++ */
++static int __init vectors_user_mapping_init_page(void)
++{
++ struct page *page;
++ unsigned long addr = 0xffff0000;
++ pgd_t *pgd;
++ pud_t *pud;
++ pmd_t *pmd;
++
++ pgd = pgd_offset_k(addr);
++ pud = pud_offset(pgd, addr);
++ pmd = pmd_offset(pud, addr);
++ page = pmd_page(*(pmd));
++
++ pgtable_page_ctor(page);
++
++ return 0;
++}
++late_initcall(vectors_user_mapping_init_page);
++
+ #ifdef CONFIG_KUSER_HELPERS
+ /*
+ * The vectors page is always readable from user space for the
+--
+2.36.1
+
diff --git a/debian/patches-rt/0081-mm-Enable-SLUB-for-RT.patch b/debian/patches-rt/0081-mm-Enable-SLUB-for-RT.patch
new file mode 100644
index 000000000..4d6e35faa
--- /dev/null
+++ b/debian/patches-rt/0081-mm-Enable-SLUB-for-RT.patch
@@ -0,0 +1,42 @@
+From 24cc0bd393e472cf081687c51f59d2677a0ca367 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Thu, 25 Oct 2012 10:32:35 +0100
+Subject: [PATCH 081/347] mm: Enable SLUB for RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Avoid the memory allocation in IRQ section
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+[bigeasy: factor out everything except the kcalloc() workaorund ]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ mm/slub.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/mm/slub.c b/mm/slub.c
+index a5a086ed4493..959ccf873292 100644
+--- a/mm/slub.c
++++ b/mm/slub.c
+@@ -3734,6 +3734,11 @@ static void list_slab_objects(struct kmem_cache *s, struct page *page,
+ const char *text)
+ {
+ #ifdef CONFIG_SLUB_DEBUG
++#ifdef CONFIG_PREEMPT_RT_BASE
++ /* XXX move out of irq-off section */
++ slab_err(s, page, text, s->name);
++#else
++
+ void *addr = page_address(page);
+ void *p;
+ unsigned long *map = kcalloc(BITS_TO_LONGS(page->objects),
+@@ -3755,6 +3760,7 @@ static void list_slab_objects(struct kmem_cache *s, struct page *page,
+ slab_unlock(page);
+ kfree(map);
+ #endif
++#endif
+ }
+
+ /*
+--
+2.36.1
+
diff --git a/debian/patches-rt/0082-slub-Enable-irqs-for-__GFP_WAIT.patch b/debian/patches-rt/0082-slub-Enable-irqs-for-__GFP_WAIT.patch
new file mode 100644
index 000000000..05fa462e3
--- /dev/null
+++ b/debian/patches-rt/0082-slub-Enable-irqs-for-__GFP_WAIT.patch
@@ -0,0 +1,48 @@
+From e2e03d2e904d1df3d1e70dd70d5d939a6f5ccb26 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 9 Jan 2013 12:08:15 +0100
+Subject: [PATCH 082/347] slub: Enable irqs for __GFP_WAIT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ mm/slub.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/mm/slub.c b/mm/slub.c
+index 959ccf873292..3b1edb545215 100644
+--- a/mm/slub.c
++++ b/mm/slub.c
+@@ -1597,10 +1597,17 @@ static struct page *allocate_slab(struct kmem_cache *s, gfp_t flags, int node)
+ void *start, *p;
+ int idx, order;
+ bool shuffle;
++ bool enableirqs = false;
+
+ flags &= gfp_allowed_mask;
+
+ if (gfpflags_allow_blocking(flags))
++ enableirqs = true;
++#ifdef CONFIG_PREEMPT_RT_FULL
++ if (system_state > SYSTEM_BOOTING)
++ enableirqs = true;
++#endif
++ if (enableirqs)
+ local_irq_enable();
+
+ flags |= s->allocflags;
+@@ -1659,7 +1666,7 @@ static struct page *allocate_slab(struct kmem_cache *s, gfp_t flags, int node)
+ page->frozen = 1;
+
+ out:
+- if (gfpflags_allow_blocking(flags))
++ if (enableirqs)
+ local_irq_disable();
+ if (!page)
+ return NULL;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0083-slub-Disable-SLUB_CPU_PARTIAL.patch b/debian/patches-rt/0083-slub-Disable-SLUB_CPU_PARTIAL.patch
new file mode 100644
index 000000000..12eef9aa5
--- /dev/null
+++ b/debian/patches-rt/0083-slub-Disable-SLUB_CPU_PARTIAL.patch
@@ -0,0 +1,54 @@
+From 1a6400867d9fa3d3e0c8d816c8ae5bb10c202e8a Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 15 Apr 2015 19:00:47 +0200
+Subject: [PATCH 083/347] slub: Disable SLUB_CPU_PARTIAL
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+|1 lock held by rcuop/7/87:
+| #0: (rcu_callback){......}, at: [<ffffffff8112c76a>] rcu_nocb_kthread+0x1ca/0x5d0
+|Preemption disabled at:[<ffffffff811eebd9>] put_cpu_partial+0x29/0x220
+|
+|CPU: 0 PID: 87 Comm: rcuop/7 Tainted: G W 4.0.0-rt0+ #477
+|Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.7.5-20140531_083030-gandalf 04/01/2014
+| 000000000007a9fc ffff88013987baf8 ffffffff817441c7 0000000000000007
+| 0000000000000000 ffff88013987bb18 ffffffff810eee51 0000000000000000
+| ffff88013fc10200 ffff88013987bb48 ffffffff8174a1c4 000000000007a9fc
+|Call Trace:
+| [<ffffffff817441c7>] dump_stack+0x4f/0x90
+| [<ffffffff810eee51>] ___might_sleep+0x121/0x1b0
+| [<ffffffff8174a1c4>] rt_spin_lock+0x24/0x60
+| [<ffffffff811a689a>] __free_pages_ok+0xaa/0x540
+| [<ffffffff811a729d>] __free_pages+0x1d/0x30
+| [<ffffffff811eddd5>] __free_slab+0xc5/0x1e0
+| [<ffffffff811edf46>] free_delayed+0x56/0x70
+| [<ffffffff811eecfd>] put_cpu_partial+0x14d/0x220
+| [<ffffffff811efc98>] __slab_free+0x158/0x2c0
+| [<ffffffff811f0021>] kmem_cache_free+0x221/0x2d0
+| [<ffffffff81204d0c>] file_free_rcu+0x2c/0x40
+| [<ffffffff8112c7e3>] rcu_nocb_kthread+0x243/0x5d0
+| [<ffffffff810e951c>] kthread+0xfc/0x120
+| [<ffffffff8174abc8>] ret_from_fork+0x58/0x90
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ init/Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/init/Kconfig b/init/Kconfig
+index 1793e8bd71ef..0c912e74ee40 100644
+--- a/init/Kconfig
++++ b/init/Kconfig
+@@ -1714,7 +1714,7 @@ config SLAB_FREELIST_HARDENED
+
+ config SLUB_CPU_PARTIAL
+ default y
+- depends on SLUB && SMP
++ depends on SLUB && SMP && !PREEMPT_RT_FULL
+ bool "SLUB per cpu partial cache"
+ help
+ Per cpu partial caches accellerate objects allocation and freeing
+--
+2.36.1
+
diff --git a/debian/patches-rt/0084-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch b/debian/patches-rt/0084-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch
new file mode 100644
index 000000000..ddb288711
--- /dev/null
+++ b/debian/patches-rt/0084-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch
@@ -0,0 +1,75 @@
+From 6b3d7c229967c2b2c01394e4dadcc8f210d52fa0 Mon Sep 17 00:00:00 2001
+From: Yang Shi <yang.shi@windriver.com>
+Date: Wed, 30 Oct 2013 11:48:33 -0700
+Subject: [PATCH 084/347] mm/memcontrol: Don't call schedule_work_on in
+ preemption disabled context
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The following trace is triggered when running ltp oom test cases:
+
+BUG: sleeping function called from invalid context at kernel/rtmutex.c:659
+in_atomic(): 1, irqs_disabled(): 0, pid: 17188, name: oom03
+Preemption disabled at:[<ffffffff8112ba70>] mem_cgroup_reclaim+0x90/0xe0
+
+CPU: 2 PID: 17188 Comm: oom03 Not tainted 3.10.10-rt3 #2
+Hardware name: Intel Corporation Calpella platform/MATXM-CORE-411-B, BIOS 4.6.3 08/18/2010
+ffff88007684d730 ffff880070df9b58 ffffffff8169918d ffff880070df9b70
+ffffffff8106db31 ffff88007688b4a0 ffff880070df9b88 ffffffff8169d9c0
+ffff88007688b4a0 ffff880070df9bc8 ffffffff81059da1 0000000170df9bb0
+Call Trace:
+[<ffffffff8169918d>] dump_stack+0x19/0x1b
+[<ffffffff8106db31>] __might_sleep+0xf1/0x170
+[<ffffffff8169d9c0>] rt_spin_lock+0x20/0x50
+[<ffffffff81059da1>] queue_work_on+0x61/0x100
+[<ffffffff8112b361>] drain_all_stock+0xe1/0x1c0
+[<ffffffff8112ba70>] mem_cgroup_reclaim+0x90/0xe0
+[<ffffffff8112beda>] __mem_cgroup_try_charge+0x41a/0xc40
+[<ffffffff810f1c91>] ? release_pages+0x1b1/0x1f0
+[<ffffffff8106f200>] ? sched_exec+0x40/0xb0
+[<ffffffff8112cc87>] mem_cgroup_charge_common+0x37/0x70
+[<ffffffff8112e2c6>] mem_cgroup_newpage_charge+0x26/0x30
+[<ffffffff8110af68>] handle_pte_fault+0x618/0x840
+[<ffffffff8103ecf6>] ? unpin_current_cpu+0x16/0x70
+[<ffffffff81070f94>] ? migrate_enable+0xd4/0x200
+[<ffffffff8110cde5>] handle_mm_fault+0x145/0x1e0
+[<ffffffff810301e1>] __do_page_fault+0x1a1/0x4c0
+[<ffffffff8169c9eb>] ? preempt_schedule_irq+0x4b/0x70
+[<ffffffff8169e3b7>] ? retint_kernel+0x37/0x40
+[<ffffffff8103053e>] do_page_fault+0xe/0x10
+[<ffffffff8169e4c2>] page_fault+0x22/0x30
+
+So, to prevent schedule_work_on from being called in preempt disabled context,
+replace the pair of get/put_cpu() to get/put_cpu_light().
+
+
+Signed-off-by: Yang Shi <yang.shi@windriver.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ mm/memcontrol.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/mm/memcontrol.c b/mm/memcontrol.c
+index f3aa6e6214d5..281d74f86892 100644
+--- a/mm/memcontrol.c
++++ b/mm/memcontrol.c
+@@ -2084,7 +2084,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg)
+ * as well as workers from this path always operate on the local
+ * per-cpu data. CPU up doesn't touch memcg_stock at all.
+ */
+- curcpu = get_cpu();
++ curcpu = get_cpu_light();
+ for_each_online_cpu(cpu) {
+ struct memcg_stock_pcp *stock = &per_cpu(memcg_stock, cpu);
+ struct mem_cgroup *memcg;
+@@ -2104,7 +2104,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg)
+ }
+ css_put(&memcg->css);
+ }
+- put_cpu();
++ put_cpu_light();
+ mutex_unlock(&percpu_charge_mutex);
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0085-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch b/debian/patches-rt/0085-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch
new file mode 100644
index 000000000..8da70c668
--- /dev/null
+++ b/debian/patches-rt/0085-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch
@@ -0,0 +1,124 @@
+From d5d11c92081bb9edd9eb11cd752a325f8822a0a5 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 28 Jan 2015 17:14:16 +0100
+Subject: [PATCH 085/347] mm/memcontrol: Replace local_irq_disable with local
+ locks
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+There are a few local_irq_disable() which then take sleeping locks. This
+patch converts them local locks.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ mm/memcontrol.c | 24 ++++++++++++++++--------
+ 1 file changed, 16 insertions(+), 8 deletions(-)
+
+diff --git a/mm/memcontrol.c b/mm/memcontrol.c
+index 281d74f86892..239fec6eac9f 100644
+--- a/mm/memcontrol.c
++++ b/mm/memcontrol.c
+@@ -69,6 +69,7 @@
+ #include <net/sock.h>
+ #include <net/ip.h>
+ #include "slab.h"
++#include <linux/locallock.h>
+
+ #include <linux/uaccess.h>
+
+@@ -94,6 +95,8 @@ int do_swap_account __read_mostly;
+ #define do_swap_account 0
+ #endif
+
++static DEFINE_LOCAL_IRQ_LOCK(event_lock);
++
+ /* Whether legacy memory+swap accounting is active */
+ static bool do_memsw_account(void)
+ {
+@@ -4933,12 +4936,12 @@ static int mem_cgroup_move_account(struct page *page,
+
+ ret = 0;
+
+- local_irq_disable();
++ local_lock_irq(event_lock);
+ mem_cgroup_charge_statistics(to, page, compound, nr_pages);
+ memcg_check_events(to, page);
+ mem_cgroup_charge_statistics(from, page, compound, -nr_pages);
+ memcg_check_events(from, page);
+- local_irq_enable();
++ local_unlock_irq(event_lock);
+ out_unlock:
+ unlock_page(page);
+ out:
+@@ -6057,10 +6060,10 @@ void mem_cgroup_commit_charge(struct page *page, struct mem_cgroup *memcg,
+
+ commit_charge(page, memcg, lrucare);
+
+- local_irq_disable();
++ local_lock_irq(event_lock);
+ mem_cgroup_charge_statistics(memcg, page, compound, nr_pages);
+ memcg_check_events(memcg, page);
+- local_irq_enable();
++ local_unlock_irq(event_lock);
+
+ if (do_memsw_account() && PageSwapCache(page)) {
+ swp_entry_t entry = { .val = page_private(page) };
+@@ -6129,7 +6132,7 @@ static void uncharge_batch(const struct uncharge_gather *ug)
+ memcg_oom_recover(ug->memcg);
+ }
+
+- local_irq_save(flags);
++ local_lock_irqsave(event_lock, flags);
+ __mod_memcg_state(ug->memcg, MEMCG_RSS, -ug->nr_anon);
+ __mod_memcg_state(ug->memcg, MEMCG_CACHE, -ug->nr_file);
+ __mod_memcg_state(ug->memcg, MEMCG_RSS_HUGE, -ug->nr_huge);
+@@ -6137,7 +6140,7 @@ static void uncharge_batch(const struct uncharge_gather *ug)
+ __count_memcg_events(ug->memcg, PGPGOUT, ug->pgpgout);
+ __this_cpu_add(ug->memcg->stat_cpu->nr_page_events, nr_pages);
+ memcg_check_events(ug->memcg, ug->dummy_page);
+- local_irq_restore(flags);
++ local_unlock_irqrestore(event_lock, flags);
+
+ if (!mem_cgroup_is_root(ug->memcg))
+ css_put_many(&ug->memcg->css, nr_pages);
+@@ -6300,10 +6303,10 @@ void mem_cgroup_migrate(struct page *oldpage, struct page *newpage)
+
+ commit_charge(newpage, memcg, false);
+
+- local_irq_save(flags);
++ local_lock_irqsave(event_lock, flags);
+ mem_cgroup_charge_statistics(memcg, newpage, compound, nr_pages);
+ memcg_check_events(memcg, newpage);
+- local_irq_restore(flags);
++ local_unlock_irqrestore(event_lock, flags);
+ }
+
+ DEFINE_STATIC_KEY_FALSE(memcg_sockets_enabled_key);
+@@ -6485,6 +6488,7 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry)
+ struct mem_cgroup *memcg, *swap_memcg;
+ unsigned int nr_entries;
+ unsigned short oldid;
++ unsigned long flags;
+
+ VM_BUG_ON_PAGE(PageLRU(page), page);
+ VM_BUG_ON_PAGE(page_count(page), page);
+@@ -6530,13 +6534,17 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry)
+ * important here to have the interrupts disabled because it is the
+ * only synchronisation we have for updating the per-CPU variables.
+ */
++ local_lock_irqsave(event_lock, flags);
++#ifndef CONFIG_PREEMPT_RT_BASE
+ VM_BUG_ON(!irqs_disabled());
++#endif
+ mem_cgroup_charge_statistics(memcg, page, PageTransHuge(page),
+ -nr_entries);
+ memcg_check_events(memcg, page);
+
+ if (!mem_cgroup_is_root(memcg))
+ css_put_many(&memcg->css, nr_entries);
++ local_unlock_irqrestore(event_lock, flags);
+ }
+
+ /**
+--
+2.36.1
+
diff --git a/debian/patches-rt/0086-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch b/debian/patches-rt/0086-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch
new file mode 100644
index 000000000..a3f158052
--- /dev/null
+++ b/debian/patches-rt/0086-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch
@@ -0,0 +1,203 @@
+From 7041bc73c6e3c572934b9c42968151577521955e Mon Sep 17 00:00:00 2001
+From: Mike Galbraith <umgwanakikbuti@gmail.com>
+Date: Tue, 22 Mar 2016 11:16:09 +0100
+Subject: [PATCH 086/347] mm/zsmalloc: copy with get_cpu_var() and locking
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+get_cpu_var() disables preemption and triggers a might_sleep() splat later.
+This is replaced with get_locked_var().
+This bitspinlocks are replaced with a proper mutex which requires a slightly
+larger struct to allocate.
+
+Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
+[bigeasy: replace the bitspin_lock() with a mutex, get_locked_var(). Mike then
+fixed the size magic]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ mm/zsmalloc.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++----
+ 1 file changed, 74 insertions(+), 6 deletions(-)
+
+diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
+index 4d71356ea66a..50c5c3922b07 100644
+--- a/mm/zsmalloc.c
++++ b/mm/zsmalloc.c
+@@ -56,6 +56,7 @@
+ #include <linux/wait.h>
+ #include <linux/pagemap.h>
+ #include <linux/fs.h>
++#include <linux/locallock.h>
+
+ #define ZSPAGE_MAGIC 0x58
+
+@@ -73,9 +74,22 @@
+ */
+ #define ZS_MAX_ZSPAGE_ORDER 2
+ #define ZS_MAX_PAGES_PER_ZSPAGE (_AC(1, UL) << ZS_MAX_ZSPAGE_ORDER)
+-
+ #define ZS_HANDLE_SIZE (sizeof(unsigned long))
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++
++struct zsmalloc_handle {
++ unsigned long addr;
++ struct mutex lock;
++};
++
++#define ZS_HANDLE_ALLOC_SIZE (sizeof(struct zsmalloc_handle))
++
++#else
++
++#define ZS_HANDLE_ALLOC_SIZE (sizeof(unsigned long))
++#endif
++
+ /*
+ * Object location (<PFN>, <obj_idx>) is encoded as
+ * as single (unsigned long) handle value.
+@@ -325,7 +339,7 @@ static void SetZsPageMovable(struct zs_pool *pool, struct zspage *zspage) {}
+
+ static int create_cache(struct zs_pool *pool)
+ {
+- pool->handle_cachep = kmem_cache_create("zs_handle", ZS_HANDLE_SIZE,
++ pool->handle_cachep = kmem_cache_create("zs_handle", ZS_HANDLE_ALLOC_SIZE,
+ 0, 0, NULL);
+ if (!pool->handle_cachep)
+ return 1;
+@@ -349,10 +363,27 @@ static void destroy_cache(struct zs_pool *pool)
+
+ static unsigned long cache_alloc_handle(struct zs_pool *pool, gfp_t gfp)
+ {
+- return (unsigned long)kmem_cache_alloc(pool->handle_cachep,
+- gfp & ~(__GFP_HIGHMEM|__GFP_MOVABLE));
++ void *p;
++
++ p = kmem_cache_alloc(pool->handle_cachep,
++ gfp & ~(__GFP_HIGHMEM|__GFP_MOVABLE));
++#ifdef CONFIG_PREEMPT_RT_FULL
++ if (p) {
++ struct zsmalloc_handle *zh = p;
++
++ mutex_init(&zh->lock);
++ }
++#endif
++ return (unsigned long)p;
+ }
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++static struct zsmalloc_handle *zs_get_pure_handle(unsigned long handle)
++{
++ return (void *)(handle &~((1 << OBJ_TAG_BITS) - 1));
++}
++#endif
++
+ static void cache_free_handle(struct zs_pool *pool, unsigned long handle)
+ {
+ kmem_cache_free(pool->handle_cachep, (void *)handle);
+@@ -371,12 +402,18 @@ static void cache_free_zspage(struct zs_pool *pool, struct zspage *zspage)
+
+ static void record_obj(unsigned long handle, unsigned long obj)
+ {
++#ifdef CONFIG_PREEMPT_RT_FULL
++ struct zsmalloc_handle *zh = zs_get_pure_handle(handle);
++
++ WRITE_ONCE(zh->addr, obj);
++#else
+ /*
+ * lsb of @obj represents handle lock while other bits
+ * represent object value the handle is pointing so
+ * updating shouldn't do store tearing.
+ */
+ WRITE_ONCE(*(unsigned long *)handle, obj);
++#endif
+ }
+
+ /* zpool driver */
+@@ -458,6 +495,7 @@ MODULE_ALIAS("zpool-zsmalloc");
+
+ /* per-cpu VM mapping areas for zspage accesses that cross page boundaries */
+ static DEFINE_PER_CPU(struct mapping_area, zs_map_area);
++static DEFINE_LOCAL_IRQ_LOCK(zs_map_area_lock);
+
+ static bool is_zspage_isolated(struct zspage *zspage)
+ {
+@@ -887,7 +925,13 @@ static unsigned long location_to_obj(struct page *page, unsigned int obj_idx)
+
+ static unsigned long handle_to_obj(unsigned long handle)
+ {
++#ifdef CONFIG_PREEMPT_RT_FULL
++ struct zsmalloc_handle *zh = zs_get_pure_handle(handle);
++
++ return zh->addr;
++#else
+ return *(unsigned long *)handle;
++#endif
+ }
+
+ static unsigned long obj_to_head(struct page *page, void *obj)
+@@ -901,22 +945,46 @@ static unsigned long obj_to_head(struct page *page, void *obj)
+
+ static inline int testpin_tag(unsigned long handle)
+ {
++#ifdef CONFIG_PREEMPT_RT_FULL
++ struct zsmalloc_handle *zh = zs_get_pure_handle(handle);
++
++ return mutex_is_locked(&zh->lock);
++#else
+ return bit_spin_is_locked(HANDLE_PIN_BIT, (unsigned long *)handle);
++#endif
+ }
+
+ static inline int trypin_tag(unsigned long handle)
+ {
++#ifdef CONFIG_PREEMPT_RT_FULL
++ struct zsmalloc_handle *zh = zs_get_pure_handle(handle);
++
++ return mutex_trylock(&zh->lock);
++#else
+ return bit_spin_trylock(HANDLE_PIN_BIT, (unsigned long *)handle);
++#endif
+ }
+
+ static void pin_tag(unsigned long handle)
+ {
++#ifdef CONFIG_PREEMPT_RT_FULL
++ struct zsmalloc_handle *zh = zs_get_pure_handle(handle);
++
++ return mutex_lock(&zh->lock);
++#else
+ bit_spin_lock(HANDLE_PIN_BIT, (unsigned long *)handle);
++#endif
+ }
+
+ static void unpin_tag(unsigned long handle)
+ {
++#ifdef CONFIG_PREEMPT_RT_FULL
++ struct zsmalloc_handle *zh = zs_get_pure_handle(handle);
++
++ return mutex_unlock(&zh->lock);
++#else
+ bit_spin_unlock(HANDLE_PIN_BIT, (unsigned long *)handle);
++#endif
+ }
+
+ static void reset_page(struct page *page)
+@@ -1342,7 +1410,7 @@ void *zs_map_object(struct zs_pool *pool, unsigned long handle,
+ class = pool->size_class[class_idx];
+ off = (class->size * obj_idx) & ~PAGE_MASK;
+
+- area = &get_cpu_var(zs_map_area);
++ area = &get_locked_var(zs_map_area_lock, zs_map_area);
+ area->vm_mm = mm;
+ if (off + class->size <= PAGE_SIZE) {
+ /* this object is contained entirely within a page */
+@@ -1396,7 +1464,7 @@ void zs_unmap_object(struct zs_pool *pool, unsigned long handle)
+
+ __zs_unmap_object(area, pages, off, class->size);
+ }
+- put_cpu_var(zs_map_area);
++ put_locked_var(zs_map_area_lock, zs_map_area);
+
+ migrate_read_unlock(zspage);
+ unpin_tag(handle);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0087-x86-mm-pat-disable-preemption-__split_large_page-aft.patch b/debian/patches-rt/0087-x86-mm-pat-disable-preemption-__split_large_page-aft.patch
new file mode 100644
index 000000000..6f9e4c5a0
--- /dev/null
+++ b/debian/patches-rt/0087-x86-mm-pat-disable-preemption-__split_large_page-aft.patch
@@ -0,0 +1,62 @@
+From 0d3b3e949716c72656373354c9658f523cf369a2 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 11 Dec 2018 21:53:43 +0100
+Subject: [PATCH 087/347] x86/mm/pat: disable preemption __split_large_page()
+ after spin_lock()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Commit "x86/mm/pat: Disable preemption around __flush_tlb_all()" added a
+warning if __flush_tlb_all() is invoked in preemptible context. On !RT
+the warning does not trigger because a spin lock is acquired which
+disables preemption. On RT the spin lock does not disable preemption and
+so the warning is seen.
+
+Disable preemption to avoid the warning __flush_tlb_all().
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/x86/mm/pageattr.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
+index 101f3ad0d6ad..0b0396261ca1 100644
+--- a/arch/x86/mm/pageattr.c
++++ b/arch/x86/mm/pageattr.c
+@@ -687,12 +687,18 @@ __split_large_page(struct cpa_data *cpa, pte_t *kpte, unsigned long address,
+ pgprot_t ref_prot;
+
+ spin_lock(&pgd_lock);
++ /*
++ * Keep preemption disabled after __flush_tlb_all() which expects not be
++ * preempted during the flush of the local TLB.
++ */
++ preempt_disable();
+ /*
+ * Check for races, another CPU might have split this page
+ * up for us already:
+ */
+ tmp = _lookup_address_cpa(cpa, address, &level);
+ if (tmp != kpte) {
++ preempt_enable();
+ spin_unlock(&pgd_lock);
+ return 1;
+ }
+@@ -726,6 +732,7 @@ __split_large_page(struct cpa_data *cpa, pte_t *kpte, unsigned long address,
+ break;
+
+ default:
++ preempt_enable();
+ spin_unlock(&pgd_lock);
+ return 1;
+ }
+@@ -764,6 +771,7 @@ __split_large_page(struct cpa_data *cpa, pte_t *kpte, unsigned long address,
+ * going on.
+ */
+ __flush_tlb_all();
++ preempt_enable();
+ spin_unlock(&pgd_lock);
+
+ return 0;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0088-radix-tree-use-local-locks.patch b/debian/patches-rt/0088-radix-tree-use-local-locks.patch
new file mode 100644
index 000000000..97af42757
--- /dev/null
+++ b/debian/patches-rt/0088-radix-tree-use-local-locks.patch
@@ -0,0 +1,176 @@
+From af6ad9480a842859f957315fdf189b6ad041a4be Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 25 Jan 2017 16:34:27 +0100
+Subject: [PATCH 088/347] radix-tree: use local locks
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The preload functionality uses per-CPU variables and preempt-disable to
+ensure that it does not switch CPUs during its usage. This patch adds
+local_locks() instead preempt_disable() for the same purpose and to
+remain preemptible on -RT.
+
+Cc: stable-rt@vger.kernel.org
+Reported-and-debugged-by: Mike Galbraith <efault@gmx.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/idr.h | 5 +----
+ include/linux/radix-tree.h | 7 ++-----
+ lib/radix-tree.c | 32 +++++++++++++++++++++++---------
+ 3 files changed, 26 insertions(+), 18 deletions(-)
+
+diff --git a/include/linux/idr.h b/include/linux/idr.h
+index b6c6151c7446..81c9df5c04fa 100644
+--- a/include/linux/idr.h
++++ b/include/linux/idr.h
+@@ -169,10 +169,7 @@ static inline bool idr_is_empty(const struct idr *idr)
+ * Each idr_preload() should be matched with an invocation of this
+ * function. See idr_preload() for details.
+ */
+-static inline void idr_preload_end(void)
+-{
+- preempt_enable();
+-}
++void idr_preload_end(void);
+
+ /**
+ * idr_for_each_entry() - Iterate over an IDR's elements of a given type.
+diff --git a/include/linux/radix-tree.h b/include/linux/radix-tree.h
+index 34149e8b5f73..affb0fc4c5b6 100644
+--- a/include/linux/radix-tree.h
++++ b/include/linux/radix-tree.h
+@@ -330,6 +330,8 @@ unsigned int radix_tree_gang_lookup_slot(const struct radix_tree_root *,
+ int radix_tree_preload(gfp_t gfp_mask);
+ int radix_tree_maybe_preload(gfp_t gfp_mask);
+ int radix_tree_maybe_preload_order(gfp_t gfp_mask, int order);
++void radix_tree_preload_end(void);
++
+ void radix_tree_init(void);
+ void *radix_tree_tag_set(struct radix_tree_root *,
+ unsigned long index, unsigned int tag);
+@@ -349,11 +351,6 @@ unsigned int radix_tree_gang_lookup_tag_slot(const struct radix_tree_root *,
+ unsigned int max_items, unsigned int tag);
+ int radix_tree_tagged(const struct radix_tree_root *, unsigned int tag);
+
+-static inline void radix_tree_preload_end(void)
+-{
+- preempt_enable();
+-}
+-
+ int radix_tree_split_preload(unsigned old_order, unsigned new_order, gfp_t);
+ int radix_tree_split(struct radix_tree_root *, unsigned long index,
+ unsigned new_order);
+diff --git a/lib/radix-tree.c b/lib/radix-tree.c
+index e5cab5c4e383..9309e813bc1f 100644
+--- a/lib/radix-tree.c
++++ b/lib/radix-tree.c
+@@ -38,7 +38,7 @@
+ #include <linux/rcupdate.h>
+ #include <linux/slab.h>
+ #include <linux/string.h>
+-
++#include <linux/locallock.h>
+
+ /* Number of nodes in fully populated tree of given height */
+ static unsigned long height_to_maxnodes[RADIX_TREE_MAX_PATH + 1] __read_mostly;
+@@ -87,6 +87,7 @@ struct radix_tree_preload {
+ struct radix_tree_node *nodes;
+ };
+ static DEFINE_PER_CPU(struct radix_tree_preload, radix_tree_preloads) = { 0, };
++static DEFINE_LOCAL_IRQ_LOCK(radix_tree_preloads_lock);
+
+ static inline struct radix_tree_node *entry_to_node(void *ptr)
+ {
+@@ -405,12 +406,13 @@ radix_tree_node_alloc(gfp_t gfp_mask, struct radix_tree_node *parent,
+ * succeed in getting a node here (and never reach
+ * kmem_cache_alloc)
+ */
+- rtp = this_cpu_ptr(&radix_tree_preloads);
++ rtp = &get_locked_var(radix_tree_preloads_lock, radix_tree_preloads);
+ if (rtp->nr) {
+ ret = rtp->nodes;
+ rtp->nodes = ret->parent;
+ rtp->nr--;
+ }
++ put_locked_var(radix_tree_preloads_lock, radix_tree_preloads);
+ /*
+ * Update the allocation stack trace as this is more useful
+ * for debugging.
+@@ -476,14 +478,14 @@ static __must_check int __radix_tree_preload(gfp_t gfp_mask, unsigned nr)
+ */
+ gfp_mask &= ~__GFP_ACCOUNT;
+
+- preempt_disable();
++ local_lock(radix_tree_preloads_lock);
+ rtp = this_cpu_ptr(&radix_tree_preloads);
+ while (rtp->nr < nr) {
+- preempt_enable();
++ local_unlock(radix_tree_preloads_lock);
+ node = kmem_cache_alloc(radix_tree_node_cachep, gfp_mask);
+ if (node == NULL)
+ goto out;
+- preempt_disable();
++ local_lock(radix_tree_preloads_lock);
+ rtp = this_cpu_ptr(&radix_tree_preloads);
+ if (rtp->nr < nr) {
+ node->parent = rtp->nodes;
+@@ -525,7 +527,7 @@ int radix_tree_maybe_preload(gfp_t gfp_mask)
+ if (gfpflags_allow_blocking(gfp_mask))
+ return __radix_tree_preload(gfp_mask, RADIX_TREE_PRELOAD_SIZE);
+ /* Preloading doesn't help anything with this gfp mask, skip it */
+- preempt_disable();
++ local_lock(radix_tree_preloads_lock);
+ return 0;
+ }
+ EXPORT_SYMBOL(radix_tree_maybe_preload);
+@@ -563,7 +565,7 @@ int radix_tree_maybe_preload_order(gfp_t gfp_mask, int order)
+
+ /* Preloading doesn't help anything with this gfp mask, skip it */
+ if (!gfpflags_allow_blocking(gfp_mask)) {
+- preempt_disable();
++ local_lock(radix_tree_preloads_lock);
+ return 0;
+ }
+
+@@ -597,6 +599,12 @@ int radix_tree_maybe_preload_order(gfp_t gfp_mask, int order)
+ return __radix_tree_preload(gfp_mask, nr_nodes);
+ }
+
++void radix_tree_preload_end(void)
++{
++ local_unlock(radix_tree_preloads_lock);
++}
++EXPORT_SYMBOL(radix_tree_preload_end);
++
+ static unsigned radix_tree_load_root(const struct radix_tree_root *root,
+ struct radix_tree_node **nodep, unsigned long *maxindex)
+ {
+@@ -2102,10 +2110,16 @@ EXPORT_SYMBOL(radix_tree_tagged);
+ void idr_preload(gfp_t gfp_mask)
+ {
+ if (__radix_tree_preload(gfp_mask, IDR_PRELOAD_SIZE))
+- preempt_disable();
++ local_lock(radix_tree_preloads_lock);
+ }
+ EXPORT_SYMBOL(idr_preload);
+
++void idr_preload_end(void)
++{
++ local_unlock(radix_tree_preloads_lock);
++}
++EXPORT_SYMBOL(idr_preload_end);
++
+ int ida_pre_get(struct ida *ida, gfp_t gfp)
+ {
+ /*
+@@ -2114,7 +2128,7 @@ int ida_pre_get(struct ida *ida, gfp_t gfp)
+ * to return to the ida_pre_get() step.
+ */
+ if (!__radix_tree_preload(gfp, IDA_PRELOAD_SIZE))
+- preempt_enable();
++ local_unlock(radix_tree_preloads_lock);
+
+ if (!this_cpu_read(ida_bitmap)) {
+ struct ida_bitmap *bitmap = kzalloc(sizeof(*bitmap), gfp);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch b/debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch
new file mode 100644
index 000000000..35a649740
--- /dev/null
+++ b/debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch
@@ -0,0 +1,176 @@
+From 413cdf16e5561fbf143c28525fe70c1fd441a624 Mon Sep 17 00:00:00 2001
+From: Ingo Molnar <mingo@elte.hu>
+Date: Fri, 3 Jul 2009 08:29:34 -0500
+Subject: [PATCH 089/347] timers: Prepare for full preemption
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+When softirqs can be preempted we need to make sure that cancelling
+the timer from the active thread can not deadlock vs. a running timer
+callback. Add a waitqueue to resolve that.
+
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/timer.h | 2 +-
+ kernel/sched/core.c | 9 +++++++--
+ kernel/time/timer.c | 45 +++++++++++++++++++++++++++++++++++++++----
+ 3 files changed, 49 insertions(+), 7 deletions(-)
+
+diff --git a/include/linux/timer.h b/include/linux/timer.h
+index 7b066fd38248..54627d046b3a 100644
+--- a/include/linux/timer.h
++++ b/include/linux/timer.h
+@@ -172,7 +172,7 @@ extern void add_timer(struct timer_list *timer);
+
+ extern int try_to_del_timer_sync(struct timer_list *timer);
+
+-#ifdef CONFIG_SMP
++#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT_FULL)
+ extern int del_timer_sync(struct timer_list *timer);
+ #else
+ # define del_timer_sync(t) del_timer(t)
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 0a51a66f5a63..974d92afd23e 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -498,11 +498,14 @@ void resched_cpu(int cpu)
+ */
+ int get_nohz_timer_target(void)
+ {
+- int i, cpu = smp_processor_id();
++ int i, cpu;
+ struct sched_domain *sd;
+
++ preempt_disable_rt();
++ cpu = smp_processor_id();
++
+ if (!idle_cpu(cpu) && housekeeping_cpu(cpu, HK_FLAG_TIMER))
+- return cpu;
++ goto preempt_en_rt;
+
+ rcu_read_lock();
+ for_each_domain(cpu, sd) {
+@@ -521,6 +524,8 @@ int get_nohz_timer_target(void)
+ cpu = housekeeping_any_cpu(HK_FLAG_TIMER);
+ unlock:
+ rcu_read_unlock();
++preempt_en_rt:
++ preempt_enable_rt();
+ return cpu;
+ }
+
+diff --git a/kernel/time/timer.c b/kernel/time/timer.c
+index a6e88d9bb931..0043bf8e2c90 100644
+--- a/kernel/time/timer.c
++++ b/kernel/time/timer.c
+@@ -45,6 +45,7 @@
+ #include <linux/slab.h>
+ #include <linux/compat.h>
+ #include <linux/random.h>
++#include <linux/swait.h>
+
+ #include <linux/uaccess.h>
+ #include <asm/unistd.h>
+@@ -198,6 +199,9 @@ EXPORT_SYMBOL(jiffies_64);
+ struct timer_base {
+ raw_spinlock_t lock;
+ struct timer_list *running_timer;
++#ifdef CONFIG_PREEMPT_RT_FULL
++ struct swait_queue_head wait_for_running_timer;
++#endif
+ unsigned long clk;
+ unsigned long next_expiry;
+ unsigned int cpu;
+@@ -1190,6 +1194,33 @@ void add_timer_on(struct timer_list *timer, int cpu)
+ }
+ EXPORT_SYMBOL_GPL(add_timer_on);
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++/*
++ * Wait for a running timer
++ */
++static void wait_for_running_timer(struct timer_list *timer)
++{
++ struct timer_base *base;
++ u32 tf = timer->flags;
++
++ if (tf & TIMER_MIGRATING)
++ return;
++
++ base = get_timer_base(tf);
++ swait_event_exclusive(base->wait_for_running_timer,
++ base->running_timer != timer);
++}
++
++# define wakeup_timer_waiters(b) swake_up_all(&(b)->wait_for_running_timer)
++#else
++static inline void wait_for_running_timer(struct timer_list *timer)
++{
++ cpu_relax();
++}
++
++# define wakeup_timer_waiters(b) do { } while (0)
++#endif
++
+ /**
+ * del_timer - deactivate a timer.
+ * @timer: the timer to be deactivated
+@@ -1245,7 +1276,7 @@ int try_to_del_timer_sync(struct timer_list *timer)
+ }
+ EXPORT_SYMBOL(try_to_del_timer_sync);
+
+-#ifdef CONFIG_SMP
++#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT_FULL)
+ /**
+ * del_timer_sync - deactivate a timer and wait for the handler to finish.
+ * @timer: the timer to be deactivated
+@@ -1305,7 +1336,7 @@ int del_timer_sync(struct timer_list *timer)
+ int ret = try_to_del_timer_sync(timer);
+ if (ret >= 0)
+ return ret;
+- cpu_relax();
++ wait_for_running_timer(timer);
+ }
+ }
+ EXPORT_SYMBOL(del_timer_sync);
+@@ -1366,13 +1397,16 @@ static void expire_timers(struct timer_base *base, struct hlist_head *head)
+
+ fn = timer->function;
+
+- if (timer->flags & TIMER_IRQSAFE) {
++ if (!IS_ENABLED(CONFIG_PREEMPT_RT_FULL) &&
++ timer->flags & TIMER_IRQSAFE) {
+ raw_spin_unlock(&base->lock);
+ call_timer_fn(timer, fn);
++ base->running_timer = NULL;
+ raw_spin_lock(&base->lock);
+ } else {
+ raw_spin_unlock_irq(&base->lock);
+ call_timer_fn(timer, fn);
++ base->running_timer = NULL;
+ raw_spin_lock_irq(&base->lock);
+ }
+ }
+@@ -1695,8 +1729,8 @@ static inline void __run_timers(struct timer_base *base)
+ while (levels--)
+ expire_timers(base, heads + levels);
+ }
+- base->running_timer = NULL;
+ raw_spin_unlock_irq(&base->lock);
++ wakeup_timer_waiters(base);
+ }
+
+ /*
+@@ -1941,6 +1975,9 @@ static void __init init_timer_cpu(int cpu)
+ base->cpu = cpu;
+ raw_spin_lock_init(&base->lock);
+ base->clk = jiffies;
++#ifdef CONFIG_PREEMPT_RT_FULL
++ init_swait_queue_head(&base->wait_for_running_timer);
++#endif
+ }
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0090-x86-kvm-Require-const-tsc-for-RT.patch b/debian/patches-rt/0090-x86-kvm-Require-const-tsc-for-RT.patch
new file mode 100644
index 000000000..f748cb9d8
--- /dev/null
+++ b/debian/patches-rt/0090-x86-kvm-Require-const-tsc-for-RT.patch
@@ -0,0 +1,37 @@
+From 53f33d36d7741754ec7b7f2e4a0c62faa30d6902 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Sun, 6 Nov 2011 12:26:18 +0100
+Subject: [PATCH 090/347] x86: kvm Require const tsc for RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Non constant TSC is a nightmare on bare metal already, but with
+virtualization it becomes a complete disaster because the workarounds
+are horrible latency wise. That's also a preliminary for running RT in
+a guest on top of a RT host.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ arch/x86/kvm/x86.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
+index 417abc9ba1ad..9829e0fbdd41 100644
+--- a/arch/x86/kvm/x86.c
++++ b/arch/x86/kvm/x86.c
+@@ -6875,6 +6875,13 @@ int kvm_arch_init(void *opaque)
+ goto out;
+ }
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++ if (!boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) {
++ printk(KERN_ERR "RT requires X86_FEATURE_CONSTANT_TSC\n");
++ return -EOPNOTSUPP;
++ }
++#endif
++
+ r = kvm_mmu_module_init();
+ if (r)
+ goto out_free_percpu;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0091-pci-switchtec-Don-t-use-completion-s-wait-queue.patch b/debian/patches-rt/0091-pci-switchtec-Don-t-use-completion-s-wait-queue.patch
new file mode 100644
index 000000000..c42b306c1
--- /dev/null
+++ b/debian/patches-rt/0091-pci-switchtec-Don-t-use-completion-s-wait-queue.patch
@@ -0,0 +1,115 @@
+From aec60cbb460a43de9b530e8b08d24c032292c210 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 4 Oct 2017 10:24:23 +0200
+Subject: [PATCH 091/347] pci/switchtec: Don't use completion's wait queue
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The poll callback is using completion's wait_queue_head_t member and
+puts it in poll_wait() so the poll() caller gets a wakeup after command
+completed. This does not work on RT because we don't have a
+wait_queue_head_t in our completion implementation. Nobody in tree does
+like that in tree so this is the only driver that breaks.
+
+Instead of using the completion here is waitqueue with a status flag as
+suggested by Logan.
+
+I don't have the HW so I have no idea if it works as expected, so please
+test it.
+
+Cc: Kurt Schwemmer <kurt.schwemmer@microsemi.com>
+Cc: Logan Gunthorpe <logang@deltatee.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/pci/switch/switchtec.c | 22 +++++++++++++---------
+ 1 file changed, 13 insertions(+), 9 deletions(-)
+
+diff --git a/drivers/pci/switch/switchtec.c b/drivers/pci/switch/switchtec.c
+index 291c0074ad6f..a8df847bedee 100644
+--- a/drivers/pci/switch/switchtec.c
++++ b/drivers/pci/switch/switchtec.c
+@@ -43,10 +43,11 @@ struct switchtec_user {
+
+ enum mrpc_state state;
+
+- struct completion comp;
++ wait_queue_head_t cmd_comp;
+ struct kref kref;
+ struct list_head list;
+
++ bool cmd_done;
+ u32 cmd;
+ u32 status;
+ u32 return_code;
+@@ -68,7 +69,7 @@ static struct switchtec_user *stuser_create(struct switchtec_dev *stdev)
+ stuser->stdev = stdev;
+ kref_init(&stuser->kref);
+ INIT_LIST_HEAD(&stuser->list);
+- init_completion(&stuser->comp);
++ init_waitqueue_head(&stuser->cmd_comp);
+ stuser->event_cnt = atomic_read(&stdev->event_cnt);
+
+ dev_dbg(&stdev->dev, "%s: %p\n", __func__, stuser);
+@@ -147,7 +148,7 @@ static int mrpc_queue_cmd(struct switchtec_user *stuser)
+ kref_get(&stuser->kref);
+ stuser->read_len = sizeof(stuser->data);
+ stuser_set_state(stuser, MRPC_QUEUED);
+- reinit_completion(&stuser->comp);
++ stuser->cmd_done = false;
+ list_add_tail(&stuser->list, &stdev->mrpc_queue);
+
+ mrpc_cmd_submit(stdev);
+@@ -184,7 +185,8 @@ static void mrpc_complete_cmd(struct switchtec_dev *stdev)
+ stuser->read_len);
+
+ out:
+- complete_all(&stuser->comp);
++ stuser->cmd_done = true;
++ wake_up_interruptible(&stuser->cmd_comp);
+ list_del_init(&stuser->list);
+ stuser_put(stuser);
+ stdev->mrpc_busy = 0;
+@@ -454,10 +456,11 @@ static ssize_t switchtec_dev_read(struct file *filp, char __user *data,
+ mutex_unlock(&stdev->mrpc_mutex);
+
+ if (filp->f_flags & O_NONBLOCK) {
+- if (!try_wait_for_completion(&stuser->comp))
++ if (!READ_ONCE(stuser->cmd_done))
+ return -EAGAIN;
+ } else {
+- rc = wait_for_completion_interruptible(&stuser->comp);
++ rc = wait_event_interruptible(stuser->cmd_comp,
++ stuser->cmd_done);
+ if (rc < 0)
+ return rc;
+ }
+@@ -505,7 +508,7 @@ static __poll_t switchtec_dev_poll(struct file *filp, poll_table *wait)
+ struct switchtec_dev *stdev = stuser->stdev;
+ __poll_t ret = 0;
+
+- poll_wait(filp, &stuser->comp.wait, wait);
++ poll_wait(filp, &stuser->cmd_comp, wait);
+ poll_wait(filp, &stdev->event_wq, wait);
+
+ if (lock_mutex_and_test_alive(stdev))
+@@ -513,7 +516,7 @@ static __poll_t switchtec_dev_poll(struct file *filp, poll_table *wait)
+
+ mutex_unlock(&stdev->mrpc_mutex);
+
+- if (try_wait_for_completion(&stuser->comp))
++ if (READ_ONCE(stuser->cmd_done))
+ ret |= EPOLLIN | EPOLLRDNORM;
+
+ if (stuser->event_cnt != atomic_read(&stdev->event_cnt))
+@@ -1037,7 +1040,8 @@ static void stdev_kill(struct switchtec_dev *stdev)
+
+ /* Wake up and kill any users waiting on an MRPC request */
+ list_for_each_entry_safe(stuser, tmpuser, &stdev->mrpc_queue, list) {
+- complete_all(&stuser->comp);
++ stuser->cmd_done = true;
++ wake_up_interruptible(&stuser->cmd_comp);
+ list_del_init(&stuser->list);
+ stuser_put(stuser);
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0092-wait.h-include-atomic.h.patch b/debian/patches-rt/0092-wait.h-include-atomic.h.patch
new file mode 100644
index 000000000..03bf6c567
--- /dev/null
+++ b/debian/patches-rt/0092-wait.h-include-atomic.h.patch
@@ -0,0 +1,42 @@
+From d06c78959ab56d0307d0d41aa75324ab707d0ca3 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Mon, 28 Oct 2013 12:19:57 +0100
+Subject: [PATCH 092/347] 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/4.19/older/patches-4.19.246-rt110.tar.xz
+
+| CC init/main.o
+|In file included from include/linux/mmzone.h:9:0,
+| from include/linux/gfp.h:4,
+| from include/linux/kmod.h:22,
+| from include/linux/module.h:13,
+| from init/main.c:15:
+|include/linux/wait.h: In function ‘wait_on_atomic_t’:
+|include/linux/wait.h:982:2: error: implicit declaration of function ‘atomic_read’ [-Werror=implicit-function-declaration]
+| if (atomic_read(val) == 0)
+| ^
+
+This pops up on ARM. Non-RT gets its atomic.h include from spinlock.h
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/wait.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/linux/wait.h b/include/linux/wait.h
+index 1d726d79063c..189da6e44756 100644
+--- a/include/linux/wait.h
++++ b/include/linux/wait.h
+@@ -10,6 +10,7 @@
+
+ #include <asm/current.h>
+ #include <uapi/linux/wait.h>
++#include <linux/atomic.h>
+
+ typedef struct wait_queue_entry wait_queue_entry_t;
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0093-work-simple-Simple-work-queue-implemenation.patch b/debian/patches-rt/0093-work-simple-Simple-work-queue-implemenation.patch
new file mode 100644
index 000000000..4c0335469
--- /dev/null
+++ b/debian/patches-rt/0093-work-simple-Simple-work-queue-implemenation.patch
@@ -0,0 +1,246 @@
+From fd404eb0247d5c8b5574eb138485984a7e7568ef Mon Sep 17 00:00:00 2001
+From: Daniel Wagner <daniel.wagner@bmw-carit.de>
+Date: Fri, 11 Jul 2014 15:26:11 +0200
+Subject: [PATCH 093/347] work-simple: Simple work queue implemenation
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Provides a framework for enqueuing callbacks from irq context
+PREEMPT_RT_FULL safe. The callbacks are executed in kthread context.
+
+Bases on wait-simple.
+
+Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
+---
+ include/linux/swork.h | 24 ++++++
+ kernel/sched/Makefile | 2 +-
+ kernel/sched/swork.c | 173 ++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 198 insertions(+), 1 deletion(-)
+ create mode 100644 include/linux/swork.h
+ create mode 100644 kernel/sched/swork.c
+
+diff --git a/include/linux/swork.h b/include/linux/swork.h
+new file mode 100644
+index 000000000000..f175fa9a6016
+--- /dev/null
++++ b/include/linux/swork.h
+@@ -0,0 +1,24 @@
++#ifndef _LINUX_SWORK_H
++#define _LINUX_SWORK_H
++
++#include <linux/list.h>
++
++struct swork_event {
++ struct list_head item;
++ unsigned long flags;
++ void (*func)(struct swork_event *);
++};
++
++static inline void INIT_SWORK(struct swork_event *event,
++ void (*func)(struct swork_event *))
++{
++ event->flags = 0;
++ event->func = func;
++}
++
++bool swork_queue(struct swork_event *sev);
++
++int swork_get(void);
++void swork_put(void);
++
++#endif /* _LINUX_SWORK_H */
+diff --git a/kernel/sched/Makefile b/kernel/sched/Makefile
+index 7fe183404c38..2b765aa4e2c4 100644
+--- a/kernel/sched/Makefile
++++ b/kernel/sched/Makefile
+@@ -18,7 +18,7 @@ endif
+
+ obj-y += core.o loadavg.o clock.o cputime.o
+ obj-y += idle.o fair.o rt.o deadline.o
+-obj-y += wait.o wait_bit.o swait.o completion.o
++obj-y += wait.o wait_bit.o swait.o swork.o completion.o
+
+ obj-$(CONFIG_SMP) += cpupri.o cpudeadline.o topology.o stop_task.o pelt.o
+ obj-$(CONFIG_SCHED_AUTOGROUP) += autogroup.o
+diff --git a/kernel/sched/swork.c b/kernel/sched/swork.c
+new file mode 100644
+index 000000000000..a5b89fdacf19
+--- /dev/null
++++ b/kernel/sched/swork.c
+@@ -0,0 +1,173 @@
++/*
++ * Copyright (C) 2014 BMW Car IT GmbH, Daniel Wagner daniel.wagner@bmw-carit.de
++ *
++ * Provides a framework for enqueuing callbacks from irq context
++ * PREEMPT_RT_FULL safe. The callbacks are executed in kthread context.
++ */
++
++#include <linux/swait.h>
++#include <linux/swork.h>
++#include <linux/kthread.h>
++#include <linux/slab.h>
++#include <linux/spinlock.h>
++#include <linux/export.h>
++
++#define SWORK_EVENT_PENDING (1 << 0)
++
++static DEFINE_MUTEX(worker_mutex);
++static struct sworker *glob_worker;
++
++struct sworker {
++ struct list_head events;
++ struct swait_queue_head wq;
++
++ raw_spinlock_t lock;
++
++ struct task_struct *task;
++ int refs;
++};
++
++static bool swork_readable(struct sworker *worker)
++{
++ bool r;
++
++ if (kthread_should_stop())
++ return true;
++
++ raw_spin_lock_irq(&worker->lock);
++ r = !list_empty(&worker->events);
++ raw_spin_unlock_irq(&worker->lock);
++
++ return r;
++}
++
++static int swork_kthread(void *arg)
++{
++ struct sworker *worker = arg;
++
++ for (;;) {
++ swait_event_interruptible_exclusive(worker->wq,
++ swork_readable(worker));
++ if (kthread_should_stop())
++ break;
++
++ raw_spin_lock_irq(&worker->lock);
++ while (!list_empty(&worker->events)) {
++ struct swork_event *sev;
++
++ sev = list_first_entry(&worker->events,
++ struct swork_event, item);
++ list_del(&sev->item);
++ raw_spin_unlock_irq(&worker->lock);
++
++ WARN_ON_ONCE(!test_and_clear_bit(SWORK_EVENT_PENDING,
++ &sev->flags));
++ sev->func(sev);
++ raw_spin_lock_irq(&worker->lock);
++ }
++ raw_spin_unlock_irq(&worker->lock);
++ }
++ return 0;
++}
++
++static struct sworker *swork_create(void)
++{
++ struct sworker *worker;
++
++ worker = kzalloc(sizeof(*worker), GFP_KERNEL);
++ if (!worker)
++ return ERR_PTR(-ENOMEM);
++
++ INIT_LIST_HEAD(&worker->events);
++ raw_spin_lock_init(&worker->lock);
++ init_swait_queue_head(&worker->wq);
++
++ worker->task = kthread_run(swork_kthread, worker, "kswork");
++ if (IS_ERR(worker->task)) {
++ kfree(worker);
++ return ERR_PTR(-ENOMEM);
++ }
++
++ return worker;
++}
++
++static void swork_destroy(struct sworker *worker)
++{
++ kthread_stop(worker->task);
++
++ WARN_ON(!list_empty(&worker->events));
++ kfree(worker);
++}
++
++/**
++ * swork_queue - queue swork
++ *
++ * Returns %false if @work was already on a queue, %true otherwise.
++ *
++ * The work is queued and processed on a random CPU
++ */
++bool swork_queue(struct swork_event *sev)
++{
++ unsigned long flags;
++
++ if (test_and_set_bit(SWORK_EVENT_PENDING, &sev->flags))
++ return false;
++
++ raw_spin_lock_irqsave(&glob_worker->lock, flags);
++ list_add_tail(&sev->item, &glob_worker->events);
++ raw_spin_unlock_irqrestore(&glob_worker->lock, flags);
++
++ swake_up_one(&glob_worker->wq);
++ return true;
++}
++EXPORT_SYMBOL_GPL(swork_queue);
++
++/**
++ * swork_get - get an instance of the sworker
++ *
++ * Returns an negative error code if the initialization if the worker did not
++ * work, %0 otherwise.
++ *
++ */
++int swork_get(void)
++{
++ struct sworker *worker;
++
++ mutex_lock(&worker_mutex);
++ if (!glob_worker) {
++ worker = swork_create();
++ if (IS_ERR(worker)) {
++ mutex_unlock(&worker_mutex);
++ return -ENOMEM;
++ }
++
++ glob_worker = worker;
++ }
++
++ glob_worker->refs++;
++ mutex_unlock(&worker_mutex);
++
++ return 0;
++}
++EXPORT_SYMBOL_GPL(swork_get);
++
++/**
++ * swork_put - puts an instance of the sworker
++ *
++ * Will destroy the sworker thread. This function must not be called until all
++ * queued events have been completed.
++ */
++void swork_put(void)
++{
++ mutex_lock(&worker_mutex);
++
++ glob_worker->refs--;
++ if (glob_worker->refs > 0)
++ goto out;
++
++ swork_destroy(glob_worker);
++ glob_worker = NULL;
++out:
++ mutex_unlock(&worker_mutex);
++}
++EXPORT_SYMBOL_GPL(swork_put);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0094-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch b/debian/patches-rt/0094-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch
new file mode 100644
index 000000000..873809a1b
--- /dev/null
+++ b/debian/patches-rt/0094-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch
@@ -0,0 +1,37 @@
+From eb5624af6c4a8461799304ee91b9d0fe34acfcb2 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Mon, 10 Sep 2018 18:00:31 +0200
+Subject: [PATCH 094/347] work-simple: drop a shit statement in
+ SWORK_EVENT_PENDING
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Dan Carpenter reported
+| smatch warnings:
+|kernel/sched/swork.c:63 swork_kthread() warn: test_bit() takes a bit number
+
+This is not a bug because we shift by zero (and use the same value in
+both places).
+Nevertheless I'm dropping that shift by zero to keep smatch quiet.
+
+Cc: Daniel Wagner <daniel.wagner@siemens.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/sched/swork.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kernel/sched/swork.c b/kernel/sched/swork.c
+index a5b89fdacf19..c90d14b9b126 100644
+--- a/kernel/sched/swork.c
++++ b/kernel/sched/swork.c
+@@ -12,7 +12,7 @@
+ #include <linux/spinlock.h>
+ #include <linux/export.h>
+
+-#define SWORK_EVENT_PENDING (1 << 0)
++#define SWORK_EVENT_PENDING 1
+
+ static DEFINE_MUTEX(worker_mutex);
+ static struct sworker *glob_worker;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0095-completion-Use-simple-wait-queues.patch b/debian/patches-rt/0095-completion-Use-simple-wait-queues.patch
new file mode 100644
index 000000000..34be7740f
--- /dev/null
+++ b/debian/patches-rt/0095-completion-Use-simple-wait-queues.patch
@@ -0,0 +1,391 @@
+From 6a60230ca64d58b651171ad00c84b251a7fd2046 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Fri, 11 Jan 2013 11:23:51 +0100
+Subject: [PATCH 095/347] completion: Use simple wait queues
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Completions have no long lasting callbacks and therefor do not need
+the complex waitqueue variant. Use simple waitqueues which reduces the
+contention on the waitqueue lock.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ arch/powerpc/platforms/ps3/device-init.c | 4 +--
+ .../wireless/intersil/orinoco/orinoco_usb.c | 4 +--
+ drivers/usb/gadget/function/f_fs.c | 2 +-
+ drivers/usb/gadget/legacy/inode.c | 4 +--
+ include/linux/completion.h | 8 ++---
+ include/linux/suspend.h | 6 ++++
+ include/linux/swait.h | 2 ++
+ kernel/power/hibernate.c | 7 ++++
+ kernel/power/suspend.c | 4 +++
+ kernel/sched/completion.c | 34 +++++++++----------
+ kernel/sched/core.c | 10 ++++--
+ kernel/sched/swait.c | 21 +++++++++++-
+ 12 files changed, 75 insertions(+), 31 deletions(-)
+
+diff --git a/arch/powerpc/platforms/ps3/device-init.c b/arch/powerpc/platforms/ps3/device-init.c
+index e7075aaff1bb..1580464a9d5b 100644
+--- a/arch/powerpc/platforms/ps3/device-init.c
++++ b/arch/powerpc/platforms/ps3/device-init.c
+@@ -752,8 +752,8 @@ static int ps3_notification_read_write(struct ps3_notification_device *dev,
+ }
+ pr_debug("%s:%u: notification %s issued\n", __func__, __LINE__, op);
+
+- res = wait_event_interruptible(dev->done.wait,
+- dev->done.done || kthread_should_stop());
++ res = swait_event_interruptible_exclusive(dev->done.wait,
++ dev->done.done || kthread_should_stop());
+ if (kthread_should_stop())
+ res = -EINTR;
+ if (res) {
+diff --git a/drivers/net/wireless/intersil/orinoco/orinoco_usb.c b/drivers/net/wireless/intersil/orinoco/orinoco_usb.c
+index a04d59843022..e0046c35a0bd 100644
+--- a/drivers/net/wireless/intersil/orinoco/orinoco_usb.c
++++ b/drivers/net/wireless/intersil/orinoco/orinoco_usb.c
+@@ -697,8 +697,8 @@ static void ezusb_req_ctx_wait(struct ezusb_priv *upriv,
+ while (!ctx->done.done && msecs--)
+ udelay(1000);
+ } else {
+- wait_event_interruptible(ctx->done.wait,
+- ctx->done.done);
++ swait_event_interruptible_exclusive(ctx->done.wait,
++ ctx->done.done);
+ }
+ break;
+ default:
+diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c
+index 49eb4e3c760f..49fc75368aa2 100644
+--- a/drivers/usb/gadget/function/f_fs.c
++++ b/drivers/usb/gadget/function/f_fs.c
+@@ -1626,7 +1626,7 @@ static void ffs_data_put(struct ffs_data *ffs)
+ ffs_data_clear(ffs);
+ ffs_release_dev(ffs->private_data);
+ BUG_ON(waitqueue_active(&ffs->ev.waitq) ||
+- waitqueue_active(&ffs->ep0req_completion.wait) ||
++ swait_active(&ffs->ep0req_completion.wait) ||
+ waitqueue_active(&ffs->wait));
+ destroy_workqueue(ffs->io_completion_wq);
+ kfree(ffs->dev_name);
+diff --git a/drivers/usb/gadget/legacy/inode.c b/drivers/usb/gadget/legacy/inode.c
+index 3ebcbd199a79..a2240aa9f4ab 100644
+--- a/drivers/usb/gadget/legacy/inode.c
++++ b/drivers/usb/gadget/legacy/inode.c
+@@ -345,7 +345,7 @@ ep_io (struct ep_data *epdata, void *buf, unsigned len)
+ spin_unlock_irq (&epdata->dev->lock);
+
+ if (likely (value == 0)) {
+- value = wait_event_interruptible (done.wait, done.done);
++ value = swait_event_interruptible_exclusive(done.wait, done.done);
+ if (value != 0) {
+ spin_lock_irq (&epdata->dev->lock);
+ if (likely (epdata->ep != NULL)) {
+@@ -354,7 +354,7 @@ ep_io (struct ep_data *epdata, void *buf, unsigned len)
+ usb_ep_dequeue (epdata->ep, epdata->req);
+ spin_unlock_irq (&epdata->dev->lock);
+
+- wait_event (done.wait, done.done);
++ swait_event_exclusive(done.wait, done.done);
+ if (epdata->status == -ECONNRESET)
+ epdata->status = -EINTR;
+ } else {
+diff --git a/include/linux/completion.h b/include/linux/completion.h
+index 519e94915d18..bf8e77001f18 100644
+--- a/include/linux/completion.h
++++ b/include/linux/completion.h
+@@ -9,7 +9,7 @@
+ * See kernel/sched/completion.c for details.
+ */
+
+-#include <linux/wait.h>
++#include <linux/swait.h>
+
+ /*
+ * struct completion - structure used to maintain state for a "completion"
+@@ -25,7 +25,7 @@
+ */
+ struct completion {
+ unsigned int done;
+- wait_queue_head_t wait;
++ struct swait_queue_head wait;
+ };
+
+ #define init_completion_map(x, m) __init_completion(x)
+@@ -34,7 +34,7 @@ static inline void complete_acquire(struct completion *x) {}
+ static inline void complete_release(struct completion *x) {}
+
+ #define COMPLETION_INITIALIZER(work) \
+- { 0, __WAIT_QUEUE_HEAD_INITIALIZER((work).wait) }
++ { 0, __SWAIT_QUEUE_HEAD_INITIALIZER((work).wait) }
+
+ #define COMPLETION_INITIALIZER_ONSTACK_MAP(work, map) \
+ (*({ init_completion_map(&(work), &(map)); &(work); }))
+@@ -85,7 +85,7 @@ static inline void complete_release(struct completion *x) {}
+ static inline void __init_completion(struct completion *x)
+ {
+ x->done = 0;
+- init_waitqueue_head(&x->wait);
++ init_swait_queue_head(&x->wait);
+ }
+
+ /**
+diff --git a/include/linux/suspend.h b/include/linux/suspend.h
+index 3f529ad9a9d2..328439ce71f5 100644
+--- a/include/linux/suspend.h
++++ b/include/linux/suspend.h
+@@ -196,6 +196,12 @@ struct platform_s2idle_ops {
+ void (*end)(void);
+ };
+
++#if defined(CONFIG_SUSPEND) || defined(CONFIG_HIBERNATION)
++extern bool pm_in_action;
++#else
++# define pm_in_action false
++#endif
++
+ #ifdef CONFIG_SUSPEND
+ extern suspend_state_t mem_sleep_current;
+ extern suspend_state_t mem_sleep_default;
+diff --git a/include/linux/swait.h b/include/linux/swait.h
+index 73e06e9986d4..f426a0661aa0 100644
+--- a/include/linux/swait.h
++++ b/include/linux/swait.h
+@@ -160,7 +160,9 @@ static inline bool swq_has_sleeper(struct swait_queue_head *wq)
+ extern void swake_up_one(struct swait_queue_head *q);
+ extern void swake_up_all(struct swait_queue_head *q);
+ extern void swake_up_locked(struct swait_queue_head *q);
++extern void swake_up_all_locked(struct swait_queue_head *q);
+
++extern void __prepare_to_swait(struct swait_queue_head *q, struct swait_queue *wait);
+ extern void prepare_to_swait_exclusive(struct swait_queue_head *q, struct swait_queue *wait, int state);
+ extern long prepare_to_swait_event(struct swait_queue_head *q, struct swait_queue *wait, int state);
+
+diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
+index 6abdfdf571ee..7020a6582a4c 100644
+--- a/kernel/power/hibernate.c
++++ b/kernel/power/hibernate.c
+@@ -690,6 +690,10 @@ static int load_image_and_restore(void)
+ return error;
+ }
+
++#ifndef CONFIG_SUSPEND
++bool pm_in_action;
++#endif
++
+ /**
+ * hibernate - Carry out system hibernation, including saving the image.
+ */
+@@ -703,6 +707,8 @@ int hibernate(void)
+ return -EPERM;
+ }
+
++ pm_in_action = true;
++
+ lock_system_sleep();
+ /* The snapshot device should not be opened while we're running */
+ if (!atomic_add_unless(&snapshot_device_available, -1, 0)) {
+@@ -781,6 +787,7 @@ int hibernate(void)
+ atomic_inc(&snapshot_device_available);
+ Unlock:
+ unlock_system_sleep();
++ pm_in_action = false;
+ pr_info("hibernation exit\n");
+
+ return error;
+diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c
+index 0bd595a0b610..a4456772d98e 100644
+--- a/kernel/power/suspend.c
++++ b/kernel/power/suspend.c
+@@ -600,6 +600,8 @@ static int enter_state(suspend_state_t state)
+ return error;
+ }
+
++bool pm_in_action;
++
+ /**
+ * pm_suspend - Externally visible function for suspending the system.
+ * @state: System sleep state to enter.
+@@ -614,6 +616,7 @@ int pm_suspend(suspend_state_t state)
+ if (state <= PM_SUSPEND_ON || state >= PM_SUSPEND_MAX)
+ return -EINVAL;
+
++ pm_in_action = true;
+ pr_info("suspend entry (%s)\n", mem_sleep_labels[state]);
+ error = enter_state(state);
+ if (error) {
+@@ -623,6 +626,7 @@ int pm_suspend(suspend_state_t state)
+ suspend_stats.success++;
+ }
+ pr_info("suspend exit\n");
++ pm_in_action = false;
+ return error;
+ }
+ EXPORT_SYMBOL(pm_suspend);
+diff --git a/kernel/sched/completion.c b/kernel/sched/completion.c
+index a1ad5b7d5521..755a58084978 100644
+--- a/kernel/sched/completion.c
++++ b/kernel/sched/completion.c
+@@ -29,12 +29,12 @@ void complete(struct completion *x)
+ {
+ unsigned long flags;
+
+- spin_lock_irqsave(&x->wait.lock, flags);
++ raw_spin_lock_irqsave(&x->wait.lock, flags);
+
+ if (x->done != UINT_MAX)
+ x->done++;
+- __wake_up_locked(&x->wait, TASK_NORMAL, 1);
+- spin_unlock_irqrestore(&x->wait.lock, flags);
++ swake_up_locked(&x->wait);
++ raw_spin_unlock_irqrestore(&x->wait.lock, flags);
+ }
+ EXPORT_SYMBOL(complete);
+
+@@ -58,10 +58,10 @@ void complete_all(struct completion *x)
+ {
+ unsigned long flags;
+
+- spin_lock_irqsave(&x->wait.lock, flags);
++ raw_spin_lock_irqsave(&x->wait.lock, flags);
+ x->done = UINT_MAX;
+- __wake_up_locked(&x->wait, TASK_NORMAL, 0);
+- spin_unlock_irqrestore(&x->wait.lock, flags);
++ swake_up_all_locked(&x->wait);
++ raw_spin_unlock_irqrestore(&x->wait.lock, flags);
+ }
+ EXPORT_SYMBOL(complete_all);
+
+@@ -70,20 +70,20 @@ do_wait_for_common(struct completion *x,
+ long (*action)(long), long timeout, int state)
+ {
+ if (!x->done) {
+- DECLARE_WAITQUEUE(wait, current);
++ DECLARE_SWAITQUEUE(wait);
+
+- __add_wait_queue_entry_tail_exclusive(&x->wait, &wait);
++ __prepare_to_swait(&x->wait, &wait);
+ do {
+ if (signal_pending_state(state, current)) {
+ timeout = -ERESTARTSYS;
+ break;
+ }
+ __set_current_state(state);
+- spin_unlock_irq(&x->wait.lock);
++ raw_spin_unlock_irq(&x->wait.lock);
+ timeout = action(timeout);
+- spin_lock_irq(&x->wait.lock);
++ raw_spin_lock_irq(&x->wait.lock);
+ } while (!x->done && timeout);
+- __remove_wait_queue(&x->wait, &wait);
++ __finish_swait(&x->wait, &wait);
+ if (!x->done)
+ return timeout;
+ }
+@@ -100,9 +100,9 @@ __wait_for_common(struct completion *x,
+
+ complete_acquire(x);
+
+- spin_lock_irq(&x->wait.lock);
++ raw_spin_lock_irq(&x->wait.lock);
+ timeout = do_wait_for_common(x, action, timeout, state);
+- spin_unlock_irq(&x->wait.lock);
++ raw_spin_unlock_irq(&x->wait.lock);
+
+ complete_release(x);
+
+@@ -291,12 +291,12 @@ bool try_wait_for_completion(struct completion *x)
+ if (!READ_ONCE(x->done))
+ return false;
+
+- spin_lock_irqsave(&x->wait.lock, flags);
++ raw_spin_lock_irqsave(&x->wait.lock, flags);
+ if (!x->done)
+ ret = false;
+ else if (x->done != UINT_MAX)
+ x->done--;
+- spin_unlock_irqrestore(&x->wait.lock, flags);
++ raw_spin_unlock_irqrestore(&x->wait.lock, flags);
+ return ret;
+ }
+ EXPORT_SYMBOL(try_wait_for_completion);
+@@ -322,8 +322,8 @@ bool completion_done(struct completion *x)
+ * otherwise we can end up freeing the completion before complete()
+ * is done referencing it.
+ */
+- spin_lock_irqsave(&x->wait.lock, flags);
+- spin_unlock_irqrestore(&x->wait.lock, flags);
++ raw_spin_lock_irqsave(&x->wait.lock, flags);
++ raw_spin_unlock_irqrestore(&x->wait.lock, flags);
+ return true;
+ }
+ EXPORT_SYMBOL(completion_done);
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 974d92afd23e..3c5999476609 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -7157,7 +7157,10 @@ void migrate_disable(void)
+ return;
+ }
+ #ifdef CONFIG_SCHED_DEBUG
+- WARN_ON_ONCE(p->migrate_disable_atomic);
++ if (unlikely(p->migrate_disable_atomic)) {
++ tracing_off();
++ WARN_ON_ONCE(1);
++ }
+ #endif
+
+ if (p->migrate_disable) {
+@@ -7187,7 +7190,10 @@ void migrate_enable(void)
+ }
+
+ #ifdef CONFIG_SCHED_DEBUG
+- WARN_ON_ONCE(p->migrate_disable_atomic);
++ if (unlikely(p->migrate_disable_atomic)) {
++ tracing_off();
++ WARN_ON_ONCE(1);
++ }
+ #endif
+
+ WARN_ON_ONCE(p->migrate_disable <= 0);
+diff --git a/kernel/sched/swait.c b/kernel/sched/swait.c
+index 66b59ac77c22..c7cb30cdd1b7 100644
+--- a/kernel/sched/swait.c
++++ b/kernel/sched/swait.c
+@@ -32,6 +32,25 @@ void swake_up_locked(struct swait_queue_head *q)
+ }
+ EXPORT_SYMBOL(swake_up_locked);
+
++void swake_up_all_locked(struct swait_queue_head *q)
++{
++ struct swait_queue *curr;
++ int wakes = 0;
++
++ while (!list_empty(&q->task_list)) {
++
++ curr = list_first_entry(&q->task_list, typeof(*curr),
++ task_list);
++ wake_up_process(curr->task);
++ list_del_init(&curr->task_list);
++ wakes++;
++ }
++ if (pm_in_action)
++ return;
++ WARN(wakes > 2, "complete_all() with %d waiters\n", wakes);
++}
++EXPORT_SYMBOL(swake_up_all_locked);
++
+ void swake_up_one(struct swait_queue_head *q)
+ {
+ unsigned long flags;
+@@ -69,7 +88,7 @@ void swake_up_all(struct swait_queue_head *q)
+ }
+ EXPORT_SYMBOL(swake_up_all);
+
+-static void __prepare_to_swait(struct swait_queue_head *q, struct swait_queue *wait)
++void __prepare_to_swait(struct swait_queue_head *q, struct swait_queue *wait)
+ {
+ wait->task = current;
+ if (list_empty(&wait->task_list))
+--
+2.36.1
+
diff --git a/debian/patches-rt/0096-fs-aio-simple-simple-work.patch b/debian/patches-rt/0096-fs-aio-simple-simple-work.patch
new file mode 100644
index 000000000..3ac3a9d89
--- /dev/null
+++ b/debian/patches-rt/0096-fs-aio-simple-simple-work.patch
@@ -0,0 +1,89 @@
+From ccc2aded5c27d9bb441bcbe15f50369c098d4440 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Mon, 16 Feb 2015 18:49:10 +0100
+Subject: [PATCH 096/347] fs/aio: simple simple work
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:768
+|in_atomic(): 1, irqs_disabled(): 0, pid: 26, name: rcuos/2
+|2 locks held by rcuos/2/26:
+| #0: (rcu_callback){.+.+..}, at: [<ffffffff810b1a12>] rcu_nocb_kthread+0x1e2/0x380
+| #1: (rcu_read_lock_sched){.+.+..}, at: [<ffffffff812acd26>] percpu_ref_kill_rcu+0xa6/0x1c0
+|Preemption disabled at:[<ffffffff810b1a93>] rcu_nocb_kthread+0x263/0x380
+|Call Trace:
+| [<ffffffff81582e9e>] dump_stack+0x4e/0x9c
+| [<ffffffff81077aeb>] __might_sleep+0xfb/0x170
+| [<ffffffff81589304>] rt_spin_lock+0x24/0x70
+| [<ffffffff811c5790>] free_ioctx_users+0x30/0x130
+| [<ffffffff812ace34>] percpu_ref_kill_rcu+0x1b4/0x1c0
+| [<ffffffff810b1a93>] rcu_nocb_kthread+0x263/0x380
+| [<ffffffff8106e046>] kthread+0xd6/0xf0
+| [<ffffffff81591eec>] ret_from_fork+0x7c/0xb0
+
+replace this preempt_disable() friendly swork.
+
+Reported-By: Mike Galbraith <umgwanakikbuti@gmail.com>
+Suggested-by: Benjamin LaHaise <bcrl@kvack.org>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ fs/aio.c | 15 +++++++++++++--
+ 1 file changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/fs/aio.c b/fs/aio.c
+index 9635c29b83da..21eacb0f3f56 100644
+--- a/fs/aio.c
++++ b/fs/aio.c
+@@ -42,6 +42,7 @@
+ #include <linux/ramfs.h>
+ #include <linux/percpu-refcount.h>
+ #include <linux/mount.h>
++#include <linux/swork.h>
+
+ #include <asm/kmap_types.h>
+ #include <linux/uaccess.h>
+@@ -121,6 +122,7 @@ struct kioctx {
+ long nr_pages;
+
+ struct rcu_work free_rwork; /* see free_ioctx() */
++ struct swork_event free_swork; /* see free_ioctx() */
+
+ /*
+ * signals when all in-flight requests are done
+@@ -267,6 +269,7 @@ static int __init aio_setup(void)
+ .mount = aio_mount,
+ .kill_sb = kill_anon_super,
+ };
++ BUG_ON(swork_get());
+ aio_mnt = kern_mount(&aio_fs);
+ if (IS_ERR(aio_mnt))
+ panic("Failed to create aio fs mount.");
+@@ -608,9 +611,9 @@ static void free_ioctx_reqs(struct percpu_ref *ref)
+ * and ctx->users has dropped to 0, so we know no more kiocbs can be submitted -
+ * now it's safe to cancel any that need to be.
+ */
+-static void free_ioctx_users(struct percpu_ref *ref)
++static void free_ioctx_users_work(struct swork_event *sev)
+ {
+- struct kioctx *ctx = container_of(ref, struct kioctx, users);
++ struct kioctx *ctx = container_of(sev, struct kioctx, free_swork);
+ struct aio_kiocb *req;
+
+ spin_lock_irq(&ctx->ctx_lock);
+@@ -628,6 +631,14 @@ static void free_ioctx_users(struct percpu_ref *ref)
+ percpu_ref_put(&ctx->reqs);
+ }
+
++static void free_ioctx_users(struct percpu_ref *ref)
++{
++ struct kioctx *ctx = container_of(ref, struct kioctx, users);
++
++ INIT_SWORK(&ctx->free_swork, free_ioctx_users_work);
++ swork_queue(&ctx->free_swork);
++}
++
+ static int ioctx_add_table(struct kioctx *ctx, struct mm_struct *mm)
+ {
+ unsigned i, new_nr;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0097-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch b/debian/patches-rt/0097-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch
new file mode 100644
index 000000000..c3dd3b73e
--- /dev/null
+++ b/debian/patches-rt/0097-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch
@@ -0,0 +1,60 @@
+From 97abf968e205dd81621ca60a59060f3eda0c7081 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 15 Nov 2017 17:29:51 +0100
+Subject: [PATCH 097/347] time/hrtimer: avoid schedule_work() with interrupts
+ disabled
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The NOHZ code tries to schedule a workqueue with interrupts disabled.
+Since this does not work -RT I am switching it to swork instead.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/time/timer.c | 15 +++++++++++----
+ 1 file changed, 11 insertions(+), 4 deletions(-)
+
+diff --git a/kernel/time/timer.c b/kernel/time/timer.c
+index 0043bf8e2c90..3cb79167852f 100644
+--- a/kernel/time/timer.c
++++ b/kernel/time/timer.c
+@@ -218,8 +218,7 @@ static DEFINE_PER_CPU(struct timer_base, timer_bases[NR_BASES]);
+ static DEFINE_STATIC_KEY_FALSE(timers_nohz_active);
+ static DEFINE_MUTEX(timer_keys_mutex);
+
+-static void timer_update_keys(struct work_struct *work);
+-static DECLARE_WORK(timer_update_work, timer_update_keys);
++static struct swork_event timer_update_swork;
+
+ #ifdef CONFIG_SMP
+ unsigned int sysctl_timer_migration = 1;
+@@ -237,7 +236,7 @@ static void timers_update_migration(void)
+ static inline void timers_update_migration(void) { }
+ #endif /* !CONFIG_SMP */
+
+-static void timer_update_keys(struct work_struct *work)
++static void timer_update_keys(struct swork_event *event)
+ {
+ mutex_lock(&timer_keys_mutex);
+ timers_update_migration();
+@@ -247,9 +246,17 @@ static void timer_update_keys(struct work_struct *work)
+
+ void timers_update_nohz(void)
+ {
+- schedule_work(&timer_update_work);
++ swork_queue(&timer_update_swork);
+ }
+
++static __init int hrtimer_init_thread(void)
++{
++ WARN_ON(swork_get());
++ INIT_SWORK(&timer_update_swork, timer_update_keys);
++ return 0;
++}
++early_initcall(hrtimer_init_thread);
++
+ int timer_migration_handler(struct ctl_table *table, int write,
+ void __user *buffer, size_t *lenp,
+ loff_t *ppos)
+--
+2.36.1
+
diff --git a/debian/patches-rt/0098-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch b/debian/patches-rt/0098-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch
new file mode 100644
index 000000000..997af2fb1
--- /dev/null
+++ b/debian/patches-rt/0098-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch
@@ -0,0 +1,290 @@
+From 4b2913d980738fe5078dd581af6d6183c40a0616 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 3 Jul 2018 11:25:41 +0200
+Subject: [PATCH 098/347] hrtimer: consolidate hrtimer_init() +
+ hrtimer_init_sleeper() calls
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+hrtimer_init_sleeper() calls require a prior initialisation of the
+hrtimer object with hrtimer_init(). Lets make the initialisation of
+the hrtimer object part of hrtimer_init_sleeper(). To remain
+consistent consider init_on_stack as well.
+
+Beside adapting the hrtimer_init_sleeper[_on_stack]() functions, call
+sites need to be updated as well.
+
+Link: http://lkml.kernel.org/r/20180703092541.2870-1-anna-maria@linutronix.de
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+[anna-maria: Updating the commit message, add staging/android/vsoc.c]
+Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de>
+---
+ block/blk-mq.c | 3 +--
+ drivers/staging/android/vsoc.c | 6 ++---
+ include/linux/hrtimer.h | 19 +++++++++++---
+ include/linux/wait.h | 4 +--
+ kernel/futex.c | 19 ++++++--------
+ kernel/time/hrtimer.c | 46 ++++++++++++++++++++++++++--------
+ net/core/pktgen.c | 4 +--
+ 7 files changed, 67 insertions(+), 34 deletions(-)
+
+diff --git a/block/blk-mq.c b/block/blk-mq.c
+index ae70b4809bec..ffa97d90bde9 100644
+--- a/block/blk-mq.c
++++ b/block/blk-mq.c
+@@ -3139,10 +3139,9 @@ static bool blk_mq_poll_hybrid_sleep(struct request_queue *q,
+ kt = nsecs;
+
+ mode = HRTIMER_MODE_REL;
+- hrtimer_init_on_stack(&hs.timer, CLOCK_MONOTONIC, mode);
++ hrtimer_init_sleeper_on_stack(&hs, CLOCK_MONOTONIC, mode, current);
+ hrtimer_set_expires(&hs.timer, kt);
+
+- hrtimer_init_sleeper(&hs, current);
+ do {
+ if (blk_mq_rq_state(rq) == MQ_RQ_COMPLETE)
+ break;
+diff --git a/drivers/staging/android/vsoc.c b/drivers/staging/android/vsoc.c
+index 034d86869772..d089b2cb5dd7 100644
+--- a/drivers/staging/android/vsoc.c
++++ b/drivers/staging/android/vsoc.c
+@@ -438,12 +438,10 @@ static int handle_vsoc_cond_wait(struct file *filp, struct vsoc_cond_wait *arg)
+ return -EINVAL;
+ wake_time = ktime_set(arg->wake_time_sec, arg->wake_time_nsec);
+
+- hrtimer_init_on_stack(&to->timer, CLOCK_MONOTONIC,
+- HRTIMER_MODE_ABS);
++ hrtimer_init_sleeper_on_stack(to, CLOCK_MONOTONIC,
++ HRTIMER_MODE_ABS, current);
+ hrtimer_set_expires_range_ns(&to->timer, wake_time,
+ current->timer_slack_ns);
+-
+- hrtimer_init_sleeper(to, current);
+ }
+
+ while (1) {
+diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
+index 542b4fa2cda9..cbd041b22088 100644
+--- a/include/linux/hrtimer.h
++++ b/include/linux/hrtimer.h
+@@ -364,10 +364,17 @@ DECLARE_PER_CPU(struct tick_device, tick_cpu_device);
+ /* Initialize timers: */
+ extern void hrtimer_init(struct hrtimer *timer, clockid_t which_clock,
+ enum hrtimer_mode mode);
++extern void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, clockid_t clock_id,
++ enum hrtimer_mode mode,
++ struct task_struct *task);
+
+ #ifdef CONFIG_DEBUG_OBJECTS_TIMERS
+ extern void hrtimer_init_on_stack(struct hrtimer *timer, clockid_t which_clock,
+ enum hrtimer_mode mode);
++extern void hrtimer_init_sleeper_on_stack(struct hrtimer_sleeper *sl,
++ clockid_t clock_id,
++ enum hrtimer_mode mode,
++ struct task_struct *task);
+
+ extern void destroy_hrtimer_on_stack(struct hrtimer *timer);
+ #else
+@@ -377,6 +384,15 @@ static inline void hrtimer_init_on_stack(struct hrtimer *timer,
+ {
+ hrtimer_init(timer, which_clock, mode);
+ }
++
++static inline void hrtimer_init_sleeper_on_stack(struct hrtimer_sleeper *sl,
++ clockid_t clock_id,
++ enum hrtimer_mode mode,
++ struct task_struct *task)
++{
++ hrtimer_init_sleeper(sl, clock_id, mode, task);
++}
++
+ static inline void destroy_hrtimer_on_stack(struct hrtimer *timer) { }
+ #endif
+
+@@ -486,9 +502,6 @@ extern long hrtimer_nanosleep(const struct timespec64 *rqtp,
+ const enum hrtimer_mode mode,
+ const clockid_t clockid);
+
+-extern void hrtimer_init_sleeper(struct hrtimer_sleeper *sl,
+- struct task_struct *tsk);
+-
+ extern int schedule_hrtimeout_range(ktime_t *expires, u64 delta,
+ const enum hrtimer_mode mode);
+ extern int schedule_hrtimeout_range_clock(ktime_t *expires,
+diff --git a/include/linux/wait.h b/include/linux/wait.h
+index 189da6e44756..523c68edc48a 100644
+--- a/include/linux/wait.h
++++ b/include/linux/wait.h
+@@ -515,8 +515,8 @@ do { \
+ int __ret = 0; \
+ struct hrtimer_sleeper __t; \
+ \
+- hrtimer_init_on_stack(&__t.timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); \
+- hrtimer_init_sleeper(&__t, current); \
++ hrtimer_init_sleeper_on_stack(&__t, CLOCK_MONOTONIC, HRTIMER_MODE_REL, \
++ current); \
+ if ((timeout) != KTIME_MAX) \
+ hrtimer_start_range_ns(&__t.timer, timeout, \
+ current->timer_slack_ns, \
+diff --git a/kernel/futex.c b/kernel/futex.c
+index fac994367189..ac015d1dd16c 100644
+--- a/kernel/futex.c
++++ b/kernel/futex.c
+@@ -2816,10 +2816,9 @@ static int futex_wait(u32 __user *uaddr, unsigned int flags, u32 val,
+ if (abs_time) {
+ to = &timeout;
+
+- hrtimer_init_on_stack(&to->timer, (flags & FLAGS_CLOCKRT) ?
+- CLOCK_REALTIME : CLOCK_MONOTONIC,
+- HRTIMER_MODE_ABS);
+- hrtimer_init_sleeper(to, current);
++ hrtimer_init_sleeper_on_stack(to, (flags & FLAGS_CLOCKRT) ?
++ CLOCK_REALTIME : CLOCK_MONOTONIC,
++ HRTIMER_MODE_ABS, current);
+ hrtimer_set_expires_range_ns(&to->timer, *abs_time,
+ current->timer_slack_ns);
+ }
+@@ -2917,9 +2916,8 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
+
+ if (time) {
+ to = &timeout;
+- hrtimer_init_on_stack(&to->timer, CLOCK_REALTIME,
+- HRTIMER_MODE_ABS);
+- hrtimer_init_sleeper(to, current);
++ hrtimer_init_sleeper_on_stack(to, CLOCK_REALTIME,
++ HRTIMER_MODE_ABS, current);
+ hrtimer_set_expires(&to->timer, *time);
+ }
+
+@@ -3349,10 +3347,9 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+
+ if (abs_time) {
+ to = &timeout;
+- hrtimer_init_on_stack(&to->timer, (flags & FLAGS_CLOCKRT) ?
+- CLOCK_REALTIME : CLOCK_MONOTONIC,
+- HRTIMER_MODE_ABS);
+- hrtimer_init_sleeper(to, current);
++ hrtimer_init_sleeper_on_stack(to, (flags & FLAGS_CLOCKRT) ?
++ CLOCK_REALTIME : CLOCK_MONOTONIC,
++ HRTIMER_MODE_ABS, current);
+ hrtimer_set_expires_range_ns(&to->timer, *abs_time,
+ current->timer_slack_ns);
+ }
+diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
+index 32ee24f5142a..1e03d7fab81c 100644
+--- a/kernel/time/hrtimer.c
++++ b/kernel/time/hrtimer.c
+@@ -1715,13 +1715,44 @@ static enum hrtimer_restart hrtimer_wakeup(struct hrtimer *timer)
+ return HRTIMER_NORESTART;
+ }
+
+-void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, struct task_struct *task)
++static void __hrtimer_init_sleeper(struct hrtimer_sleeper *sl,
++ clockid_t clock_id,
++ enum hrtimer_mode mode,
++ struct task_struct *task)
+ {
++ __hrtimer_init(&sl->timer, clock_id, mode);
+ sl->timer.function = hrtimer_wakeup;
+ sl->task = task;
+ }
++
++/**
++ * hrtimer_init_sleeper - initialize sleeper to the given clock
++ * @sl: sleeper to be initialized
++ * @clock_id: the clock to be used
++ * @mode: timer mode abs/rel
++ * @task: the task to wake up
++ */
++void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, clockid_t clock_id,
++ enum hrtimer_mode mode, struct task_struct *task)
++{
++ debug_init(&sl->timer, clock_id, mode);
++ __hrtimer_init_sleeper(sl, clock_id, mode, task);
++
++}
+ EXPORT_SYMBOL_GPL(hrtimer_init_sleeper);
+
++#ifdef CONFIG_DEBUG_OBJECTS_TIMERS
++void hrtimer_init_sleeper_on_stack(struct hrtimer_sleeper *sl,
++ clockid_t clock_id,
++ enum hrtimer_mode mode,
++ struct task_struct *task)
++{
++ debug_object_init_on_stack(&sl->timer, &hrtimer_debug_descr);
++ __hrtimer_init_sleeper(sl, clock_id, mode, task);
++}
++EXPORT_SYMBOL_GPL(hrtimer_init_sleeper_on_stack);
++#endif
++
+ int nanosleep_copyout(struct restart_block *restart, struct timespec64 *ts)
+ {
+ switch(restart->nanosleep.type) {
+@@ -1745,8 +1776,6 @@ static int __sched do_nanosleep(struct hrtimer_sleeper *t, enum hrtimer_mode mod
+ {
+ struct restart_block *restart;
+
+- hrtimer_init_sleeper(t, current);
+-
+ do {
+ set_current_state(TASK_INTERRUPTIBLE);
+ hrtimer_start_expires(&t->timer, mode);
+@@ -1783,10 +1812,9 @@ static long __sched hrtimer_nanosleep_restart(struct restart_block *restart)
+ struct hrtimer_sleeper t;
+ int ret;
+
+- hrtimer_init_on_stack(&t.timer, restart->nanosleep.clockid,
+- HRTIMER_MODE_ABS);
++ hrtimer_init_sleeper_on_stack(&t, restart->nanosleep.clockid,
++ HRTIMER_MODE_ABS, current);
+ hrtimer_set_expires_tv64(&t.timer, restart->nanosleep.expires);
+-
+ ret = do_nanosleep(&t, HRTIMER_MODE_ABS);
+ destroy_hrtimer_on_stack(&t.timer);
+ return ret;
+@@ -1804,7 +1832,7 @@ long hrtimer_nanosleep(const struct timespec64 *rqtp,
+ if (dl_task(current) || rt_task(current))
+ slack = 0;
+
+- hrtimer_init_on_stack(&t.timer, clockid, mode);
++ hrtimer_init_sleeper_on_stack(&t, clockid, mode, current);
+ hrtimer_set_expires_range_ns(&t.timer, timespec64_to_ktime(*rqtp), slack);
+ ret = do_nanosleep(&t, mode);
+ if (ret != -ERESTART_RESTARTBLOCK)
+@@ -2003,11 +2031,9 @@ schedule_hrtimeout_range_clock(ktime_t *expires, u64 delta,
+ return -EINTR;
+ }
+
+- hrtimer_init_on_stack(&t.timer, clock_id, mode);
++ hrtimer_init_sleeper_on_stack(&t, clock_id, mode, current);
+ hrtimer_set_expires_range_ns(&t.timer, *expires, delta);
+
+- hrtimer_init_sleeper(&t, current);
+-
+ hrtimer_start_expires(&t.timer, mode);
+
+ if (likely(t.task))
+diff --git a/net/core/pktgen.c b/net/core/pktgen.c
+index 3714cd9e3111..2cea192b1475 100644
+--- a/net/core/pktgen.c
++++ b/net/core/pktgen.c
+@@ -2160,7 +2160,8 @@ static void spin(struct pktgen_dev *pkt_dev, ktime_t spin_until)
+ s64 remaining;
+ struct hrtimer_sleeper t;
+
+- hrtimer_init_on_stack(&t.timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
++ hrtimer_init_sleeper_on_stack(&t, CLOCK_MONOTONIC, HRTIMER_MODE_ABS,
++ current);
+ hrtimer_set_expires(&t.timer, spin_until);
+
+ remaining = ktime_to_ns(hrtimer_expires_remaining(&t.timer));
+@@ -2175,7 +2176,6 @@ static void spin(struct pktgen_dev *pkt_dev, ktime_t spin_until)
+ } while (ktime_compare(end_time, spin_until) < 0);
+ } else {
+ /* see do_nanosleep */
+- hrtimer_init_sleeper(&t, current);
+ do {
+ set_current_state(TASK_INTERRUPTIBLE);
+ hrtimer_start_expires(&t.timer, HRTIMER_MODE_ABS);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch b/debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch
new file mode 100644
index 000000000..897f91d52
--- /dev/null
+++ b/debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch
@@ -0,0 +1,290 @@
+From a5aed5c2dd54bdd010ed396577c328505028990d Mon Sep 17 00:00:00 2001
+From: Ingo Molnar <mingo@elte.hu>
+Date: Fri, 3 Jul 2009 08:29:34 -0500
+Subject: [PATCH 099/347] hrtimers: Prepare full preemption
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Make cancellation of a running callback in softirq context safe
+against preemption.
+
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ fs/timerfd.c | 5 ++++-
+ include/linux/hrtimer.h | 13 +++++++++++-
+ include/linux/posix-timers.h | 2 +-
+ kernel/time/alarmtimer.c | 2 +-
+ kernel/time/hrtimer.c | 33 +++++++++++++++++++++++++++++-
+ kernel/time/itimer.c | 1 +
+ kernel/time/posix-timers.c | 39 ++++++++++++++++++++++++++++++++++--
+ 7 files changed, 88 insertions(+), 7 deletions(-)
+
+diff --git a/fs/timerfd.c b/fs/timerfd.c
+index d69ad801eb80..82d0f52414a6 100644
+--- a/fs/timerfd.c
++++ b/fs/timerfd.c
+@@ -471,7 +471,10 @@ static int do_timerfd_settime(int ufd, int flags,
+ break;
+ }
+ spin_unlock_irq(&ctx->wqh.lock);
+- cpu_relax();
++ if (isalarm(ctx))
++ hrtimer_wait_for_timer(&ctx->t.alarm.timer);
++ else
++ hrtimer_wait_for_timer(&ctx->t.tmr);
+ }
+
+ /*
+diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
+index cbd041b22088..8714f1a37d84 100644
+--- a/include/linux/hrtimer.h
++++ b/include/linux/hrtimer.h
+@@ -22,6 +22,7 @@
+ #include <linux/percpu.h>
+ #include <linux/timer.h>
+ #include <linux/timerqueue.h>
++#include <linux/wait.h>
+
+ struct hrtimer_clock_base;
+ struct hrtimer_cpu_base;
+@@ -216,6 +217,9 @@ struct hrtimer_cpu_base {
+ ktime_t expires_next;
+ struct hrtimer *next_timer;
+ ktime_t softirq_expires_next;
++#ifdef CONFIG_PREEMPT_RT_BASE
++ wait_queue_head_t wait;
++#endif
+ struct hrtimer *softirq_next_timer;
+ struct hrtimer_clock_base clock_base[HRTIMER_MAX_CLOCK_BASES];
+ } ____cacheline_aligned;
+@@ -433,6 +437,13 @@ static inline void hrtimer_restart(struct hrtimer *timer)
+ hrtimer_start_expires(timer, HRTIMER_MODE_ABS);
+ }
+
++/* Softirq preemption could deadlock timer removal */
++#ifdef CONFIG_PREEMPT_RT_BASE
++ extern void hrtimer_wait_for_timer(const struct hrtimer *timer);
++#else
++# define hrtimer_wait_for_timer(timer) do { cpu_relax(); } while (0)
++#endif
++
+ /* Query timers: */
+ extern ktime_t __hrtimer_get_remaining(const struct hrtimer *timer, bool adjust);
+
+@@ -464,7 +475,7 @@ static inline bool hrtimer_is_queued(struct hrtimer *timer)
+ * Helper function to check, whether the timer is running the callback
+ * function
+ */
+-static inline int hrtimer_callback_running(struct hrtimer *timer)
++static inline int hrtimer_callback_running(const struct hrtimer *timer)
+ {
+ return timer->base->running == timer;
+ }
+diff --git a/include/linux/posix-timers.h b/include/linux/posix-timers.h
+index ee7e987ea1b4..0571b498db73 100644
+--- a/include/linux/posix-timers.h
++++ b/include/linux/posix-timers.h
+@@ -114,8 +114,8 @@ struct k_itimer {
+ struct {
+ struct alarm alarmtimer;
+ } alarm;
+- struct rcu_head rcu;
+ } it;
++ struct rcu_head rcu;
+ };
+
+ void run_posix_cpu_timers(struct task_struct *task);
+diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c
+index 6a2ba39889bd..f4c8cfde00b0 100644
+--- a/kernel/time/alarmtimer.c
++++ b/kernel/time/alarmtimer.c
+@@ -438,7 +438,7 @@ int alarm_cancel(struct alarm *alarm)
+ int ret = alarm_try_to_cancel(alarm);
+ if (ret >= 0)
+ return ret;
+- cpu_relax();
++ hrtimer_wait_for_timer(&alarm->timer);
+ }
+ }
+ EXPORT_SYMBOL_GPL(alarm_cancel);
+diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
+index 1e03d7fab81c..8bbde17325c7 100644
+--- a/kernel/time/hrtimer.c
++++ b/kernel/time/hrtimer.c
+@@ -957,6 +957,33 @@ u64 hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval)
+ }
+ EXPORT_SYMBOL_GPL(hrtimer_forward);
+
++#ifdef CONFIG_PREEMPT_RT_BASE
++# define wake_up_timer_waiters(b) wake_up(&(b)->wait)
++
++/**
++ * hrtimer_wait_for_timer - Wait for a running timer
++ *
++ * @timer: timer to wait for
++ *
++ * The function waits in case the timers callback function is
++ * currently executed on the waitqueue of the timer base. The
++ * waitqueue is woken up after the timer callback function has
++ * finished execution.
++ */
++void hrtimer_wait_for_timer(const struct hrtimer *timer)
++{
++ struct hrtimer_clock_base *base = timer->base;
++
++ if (base && base->cpu_base &&
++ base->index >= HRTIMER_BASE_MONOTONIC_SOFT)
++ wait_event(base->cpu_base->wait,
++ !(hrtimer_callback_running(timer)));
++}
++
++#else
++# define wake_up_timer_waiters(b) do { } while (0)
++#endif
++
+ /*
+ * enqueue_hrtimer - internal function to (re)start a timer
+ *
+@@ -1238,7 +1265,7 @@ int hrtimer_cancel(struct hrtimer *timer)
+
+ if (ret >= 0)
+ return ret;
+- cpu_relax();
++ hrtimer_wait_for_timer(timer);
+ }
+ }
+ EXPORT_SYMBOL_GPL(hrtimer_cancel);
+@@ -1544,6 +1571,7 @@ static __latent_entropy void hrtimer_run_softirq(struct softirq_action *h)
+ hrtimer_update_softirq_timer(cpu_base, true);
+
+ raw_spin_unlock_irqrestore(&cpu_base->lock, flags);
++ wake_up_timer_waiters(cpu_base);
+ }
+
+ #ifdef CONFIG_HIGH_RES_TIMERS
+@@ -1913,6 +1941,9 @@ int hrtimers_prepare_cpu(unsigned int cpu)
+ cpu_base->softirq_next_timer = NULL;
+ cpu_base->expires_next = KTIME_MAX;
+ cpu_base->softirq_expires_next = KTIME_MAX;
++#ifdef CONFIG_PREEMPT_RT_BASE
++ init_waitqueue_head(&cpu_base->wait);
++#endif
+ return 0;
+ }
+
+diff --git a/kernel/time/itimer.c b/kernel/time/itimer.c
+index 2e2b335ef101..7650ee736964 100644
+--- a/kernel/time/itimer.c
++++ b/kernel/time/itimer.c
+@@ -211,6 +211,7 @@ int do_setitimer(int which, struct itimerval *value, struct itimerval *ovalue)
+ /* We are sharing ->siglock with it_real_fn() */
+ if (hrtimer_try_to_cancel(timer) < 0) {
+ spin_unlock_irq(&tsk->sighand->siglock);
++ hrtimer_wait_for_timer(&tsk->signal->real_timer);
+ goto again;
+ }
+ expires = timeval_to_ktime(value->it_value);
+diff --git a/kernel/time/posix-timers.c b/kernel/time/posix-timers.c
+index 48758108e055..2cf5aa704106 100644
+--- a/kernel/time/posix-timers.c
++++ b/kernel/time/posix-timers.c
+@@ -463,7 +463,7 @@ static struct k_itimer * alloc_posix_timer(void)
+
+ static void k_itimer_rcu_free(struct rcu_head *head)
+ {
+- struct k_itimer *tmr = container_of(head, struct k_itimer, it.rcu);
++ struct k_itimer *tmr = container_of(head, struct k_itimer, rcu);
+
+ kmem_cache_free(posix_timers_cache, tmr);
+ }
+@@ -480,7 +480,7 @@ static void release_posix_timer(struct k_itimer *tmr, int it_id_set)
+ }
+ put_pid(tmr->it_pid);
+ sigqueue_free(tmr->sigq);
+- call_rcu(&tmr->it.rcu, k_itimer_rcu_free);
++ call_rcu(&tmr->rcu, k_itimer_rcu_free);
+ }
+
+ static int common_timer_create(struct k_itimer *new_timer)
+@@ -821,6 +821,22 @@ static void common_hrtimer_arm(struct k_itimer *timr, ktime_t expires,
+ hrtimer_start_expires(timer, HRTIMER_MODE_ABS);
+ }
+
++/*
++ * Protected by RCU!
++ */
++static void timer_wait_for_callback(const struct k_clock *kc, struct k_itimer *timr)
++{
++#ifdef CONFIG_PREEMPT_RT_FULL
++ if (kc->timer_arm == common_hrtimer_arm)
++ hrtimer_wait_for_timer(&timr->it.real.timer);
++ else if (kc == &alarm_clock)
++ hrtimer_wait_for_timer(&timr->it.alarm.alarmtimer.timer);
++ else
++ /* FIXME: Whacky hack for posix-cpu-timers */
++ schedule_timeout(1);
++#endif
++}
++
+ static int common_hrtimer_try_to_cancel(struct k_itimer *timr)
+ {
+ return hrtimer_try_to_cancel(&timr->it.real.timer);
+@@ -885,6 +901,7 @@ static int do_timer_settime(timer_t timer_id, int flags,
+ if (!timr)
+ return -EINVAL;
+
++ rcu_read_lock();
+ kc = timr->kclock;
+ if (WARN_ON_ONCE(!kc || !kc->timer_set))
+ error = -EINVAL;
+@@ -893,9 +910,12 @@ static int do_timer_settime(timer_t timer_id, int flags,
+
+ unlock_timer(timr, flag);
+ if (error == TIMER_RETRY) {
++ timer_wait_for_callback(kc, timr);
+ old_spec64 = NULL; // We already got the old time...
++ rcu_read_unlock();
+ goto retry;
+ }
++ rcu_read_unlock();
+
+ return error;
+ }
+@@ -977,10 +997,15 @@ SYSCALL_DEFINE1(timer_delete, timer_t, timer_id)
+ if (!timer)
+ return -EINVAL;
+
++ rcu_read_lock();
+ if (timer_delete_hook(timer) == TIMER_RETRY) {
+ unlock_timer(timer, flags);
++ timer_wait_for_callback(clockid_to_kclock(timer->it_clock),
++ timer);
++ rcu_read_unlock();
+ goto retry_delete;
+ }
++ rcu_read_unlock();
+
+ spin_lock(&current->sighand->siglock);
+ list_del(&timer->list);
+@@ -1006,8 +1031,18 @@ static void itimer_delete(struct k_itimer *timer)
+ retry_delete:
+ spin_lock_irqsave(&timer->it_lock, flags);
+
++ /* On RT we can race with a deletion */
++ if (!timer->it_signal) {
++ unlock_timer(timer, flags);
++ return;
++ }
++
+ if (timer_delete_hook(timer) == TIMER_RETRY) {
++ rcu_read_lock();
+ unlock_timer(timer, flags);
++ timer_wait_for_callback(clockid_to_kclock(timer->it_clock),
++ timer);
++ rcu_read_unlock();
+ goto retry_delete;
+ }
+ list_del(&timer->list);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0100-hrtimer-by-timers-by-default-into-the-softirq-contex.patch b/debian/patches-rt/0100-hrtimer-by-timers-by-default-into-the-softirq-contex.patch
new file mode 100644
index 000000000..1b924bac1
--- /dev/null
+++ b/debian/patches-rt/0100-hrtimer-by-timers-by-default-into-the-softirq-contex.patch
@@ -0,0 +1,237 @@
+From 8a7e45b02f567fa32754c24195d5c0d095069685 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 3 Jul 2009 08:44:31 -0500
+Subject: [PATCH 100/347] hrtimer: by timers by default into the softirq
+ context
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+We can't have hrtimers callbacks running in hardirq context on RT. Therefore
+the timers are deferred to the softirq context by default.
+There are few timers which expect to be run in hardirq context even on RT.
+Those are:
+- very short running where low latency is critical (kvm lapic)
+- timers which take raw locks and need run in hard-irq context (perf, sched)
+- wake up related timer (kernel side of clock_nanosleep() and so on)
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/x86/kvm/lapic.c | 2 +-
+ include/linux/hrtimer.h | 6 ++++++
+ kernel/events/core.c | 4 ++--
+ kernel/sched/core.c | 2 +-
+ kernel/sched/deadline.c | 2 +-
+ kernel/sched/fair.c | 4 ++--
+ kernel/sched/rt.c | 4 ++--
+ kernel/time/hrtimer.c | 21 +++++++++++++++++++--
+ kernel/time/tick-broadcast-hrtimer.c | 2 +-
+ kernel/time/tick-sched.c | 2 +-
+ kernel/watchdog.c | 2 +-
+ 11 files changed, 37 insertions(+), 14 deletions(-)
+
+diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
+index 89d07312e58c..037dbe04fda2 100644
+--- a/arch/x86/kvm/lapic.c
++++ b/arch/x86/kvm/lapic.c
+@@ -2258,7 +2258,7 @@ int kvm_create_lapic(struct kvm_vcpu *vcpu)
+ apic->vcpu = vcpu;
+
+ hrtimer_init(&apic->lapic_timer.timer, CLOCK_MONOTONIC,
+- HRTIMER_MODE_ABS_PINNED);
++ HRTIMER_MODE_ABS_PINNED_HARD);
+ apic->lapic_timer.timer.function = apic_timer_fn;
+
+ /*
+diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
+index 8714f1a37d84..082147c07831 100644
+--- a/include/linux/hrtimer.h
++++ b/include/linux/hrtimer.h
+@@ -42,6 +42,7 @@ enum hrtimer_mode {
+ HRTIMER_MODE_REL = 0x01,
+ HRTIMER_MODE_PINNED = 0x02,
+ HRTIMER_MODE_SOFT = 0x04,
++ HRTIMER_MODE_HARD = 0x08,
+
+ HRTIMER_MODE_ABS_PINNED = HRTIMER_MODE_ABS | HRTIMER_MODE_PINNED,
+ HRTIMER_MODE_REL_PINNED = HRTIMER_MODE_REL | HRTIMER_MODE_PINNED,
+@@ -52,6 +53,11 @@ enum hrtimer_mode {
+ HRTIMER_MODE_ABS_PINNED_SOFT = HRTIMER_MODE_ABS_PINNED | HRTIMER_MODE_SOFT,
+ HRTIMER_MODE_REL_PINNED_SOFT = HRTIMER_MODE_REL_PINNED | HRTIMER_MODE_SOFT,
+
++ HRTIMER_MODE_ABS_HARD = HRTIMER_MODE_ABS | HRTIMER_MODE_HARD,
++ HRTIMER_MODE_REL_HARD = HRTIMER_MODE_REL | HRTIMER_MODE_HARD,
++
++ HRTIMER_MODE_ABS_PINNED_HARD = HRTIMER_MODE_ABS_PINNED | HRTIMER_MODE_HARD,
++ HRTIMER_MODE_REL_PINNED_HARD = HRTIMER_MODE_REL_PINNED | HRTIMER_MODE_HARD,
+ };
+
+ /*
+diff --git a/kernel/events/core.c b/kernel/events/core.c
+index 88dd1398ae88..7f2441f671d3 100644
+--- a/kernel/events/core.c
++++ b/kernel/events/core.c
+@@ -1108,7 +1108,7 @@ static void __perf_mux_hrtimer_init(struct perf_cpu_context *cpuctx, int cpu)
+ cpuctx->hrtimer_interval = ns_to_ktime(NSEC_PER_MSEC * interval);
+
+ raw_spin_lock_init(&cpuctx->hrtimer_lock);
+- hrtimer_init(timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_PINNED);
++ hrtimer_init(timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_PINNED_HARD);
+ timer->function = perf_mux_hrtimer_handler;
+ }
+
+@@ -9311,7 +9311,7 @@ static void perf_swevent_init_hrtimer(struct perf_event *event)
+ if (!is_sampling_event(event))
+ return;
+
+- hrtimer_init(&hwc->hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
++ hrtimer_init(&hwc->hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
+ hwc->hrtimer.function = perf_swevent_hrtimer;
+
+ /*
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 3c5999476609..0f949b7738fd 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -315,7 +315,7 @@ static void hrtick_rq_init(struct rq *rq)
+ rq->hrtick_csd.info = rq;
+ #endif
+
+- hrtimer_init(&rq->hrtick_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
++ hrtimer_init(&rq->hrtick_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
+ rq->hrtick_timer.function = hrtick;
+ }
+ #else /* CONFIG_SCHED_HRTICK */
+diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
+index 95ebbb2074c7..1a285367081c 100644
+--- a/kernel/sched/deadline.c
++++ b/kernel/sched/deadline.c
+@@ -1086,7 +1086,7 @@ void init_dl_task_timer(struct sched_dl_entity *dl_se)
+ {
+ struct hrtimer *timer = &dl_se->dl_timer;
+
+- hrtimer_init(timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
++ hrtimer_init(timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
+ timer->function = dl_task_timer;
+ }
+
+diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
+index 16940416d526..d804b5443bb9 100644
+--- a/kernel/sched/fair.c
++++ b/kernel/sched/fair.c
+@@ -4951,9 +4951,9 @@ void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b)
+ cfs_b->period = ns_to_ktime(default_cfs_period());
+
+ INIT_LIST_HEAD(&cfs_b->throttled_cfs_rq);
+- hrtimer_init(&cfs_b->period_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_PINNED);
++ hrtimer_init(&cfs_b->period_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_PINNED_HARD);
+ cfs_b->period_timer.function = sched_cfs_period_timer;
+- hrtimer_init(&cfs_b->slack_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
++ hrtimer_init(&cfs_b->slack_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
+ cfs_b->slack_timer.function = sched_cfs_slack_timer;
+ cfs_b->distribute_running = 0;
+ }
+diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
+index 52b55144d8ad..a2f2c6c91e05 100644
+--- a/kernel/sched/rt.c
++++ b/kernel/sched/rt.c
+@@ -45,8 +45,8 @@ void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime)
+
+ raw_spin_lock_init(&rt_b->rt_runtime_lock);
+
+- hrtimer_init(&rt_b->rt_period_timer,
+- CLOCK_MONOTONIC, HRTIMER_MODE_REL);
++ hrtimer_init(&rt_b->rt_period_timer, CLOCK_MONOTONIC,
++ HRTIMER_MODE_REL_HARD);
+ rt_b->rt_period_timer.function = sched_rt_period_timer;
+ }
+
+diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
+index 8bbde17325c7..e947f3b344ac 100644
+--- a/kernel/time/hrtimer.c
++++ b/kernel/time/hrtimer.c
+@@ -1202,7 +1202,9 @@ void hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
+ * Check whether the HRTIMER_MODE_SOFT bit and hrtimer.is_soft
+ * match.
+ */
++#ifndef CONFIG_PREEMPT_RT_BASE
+ WARN_ON_ONCE(!(mode & HRTIMER_MODE_SOFT) ^ !timer->is_soft);
++#endif
+
+ base = lock_hrtimer_base(timer, &flags);
+
+@@ -1362,10 +1364,17 @@ static inline int hrtimer_clockid_to_base(clockid_t clock_id)
+ static void __hrtimer_init(struct hrtimer *timer, clockid_t clock_id,
+ enum hrtimer_mode mode)
+ {
+- bool softtimer = !!(mode & HRTIMER_MODE_SOFT);
+- int base = softtimer ? HRTIMER_MAX_CLOCK_BASES / 2 : 0;
++ bool softtimer;
++ int base;
+ struct hrtimer_cpu_base *cpu_base;
+
++ softtimer = !!(mode & HRTIMER_MODE_SOFT);
++#ifdef CONFIG_PREEMPT_RT_FULL
++ if (!softtimer && !(mode & HRTIMER_MODE_HARD))
++ softtimer = true;
++#endif
++ base = softtimer ? HRTIMER_MAX_CLOCK_BASES / 2 : 0;
++
+ memset(timer, 0, sizeof(struct hrtimer));
+
+ cpu_base = raw_cpu_ptr(&hrtimer_bases);
+@@ -1748,6 +1757,14 @@ static void __hrtimer_init_sleeper(struct hrtimer_sleeper *sl,
+ enum hrtimer_mode mode,
+ struct task_struct *task)
+ {
++#ifdef CONFIG_PREEMPT_RT_FULL
++ if (!(mode & (HRTIMER_MODE_SOFT | HRTIMER_MODE_HARD))) {
++ if (task_is_realtime(current) || system_state != SYSTEM_RUNNING)
++ mode |= HRTIMER_MODE_HARD;
++ else
++ mode |= HRTIMER_MODE_SOFT;
++ }
++#endif
+ __hrtimer_init(&sl->timer, clock_id, mode);
+ sl->timer.function = hrtimer_wakeup;
+ sl->task = task;
+diff --git a/kernel/time/tick-broadcast-hrtimer.c b/kernel/time/tick-broadcast-hrtimer.c
+index a836efd34589..c50e8f3262de 100644
+--- a/kernel/time/tick-broadcast-hrtimer.c
++++ b/kernel/time/tick-broadcast-hrtimer.c
+@@ -107,7 +107,7 @@ static enum hrtimer_restart bc_handler(struct hrtimer *t)
+
+ void tick_setup_hrtimer_broadcast(void)
+ {
+- hrtimer_init(&bctimer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
++ hrtimer_init(&bctimer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_HARD);
+ bctimer.function = bc_handler;
+ clockevents_register_device(&ce_broadcast_hrtimer);
+ }
+diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
+index e774a49176cc..012bc81879bf 100644
+--- a/kernel/time/tick-sched.c
++++ b/kernel/time/tick-sched.c
+@@ -1314,7 +1314,7 @@ void tick_setup_sched_timer(void)
+ /*
+ * Emulate tick processing via per-CPU hrtimers:
+ */
+- hrtimer_init(&ts->sched_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
++ hrtimer_init(&ts->sched_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_HARD);
+ ts->sched_timer.function = tick_sched_timer;
+
+ /* Get the next period (per-CPU) */
+diff --git a/kernel/watchdog.c b/kernel/watchdog.c
+index 6d60701dc636..328620fe85f6 100644
+--- a/kernel/watchdog.c
++++ b/kernel/watchdog.c
+@@ -485,7 +485,7 @@ static void watchdog_enable(unsigned int cpu)
+ * Start the timer first to prevent the NMI watchdog triggering
+ * before the timer has a chance to fire.
+ */
+- hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
++ hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
+ hrtimer->function = watchdog_timer_fn;
+ hrtimer_start(hrtimer, ns_to_ktime(sample_period),
+ HRTIMER_MODE_REL_PINNED);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0101-sched-fair-Make-the-hrtimers-non-hard-again.patch b/debian/patches-rt/0101-sched-fair-Make-the-hrtimers-non-hard-again.patch
new file mode 100644
index 000000000..5e4c29b6b
--- /dev/null
+++ b/debian/patches-rt/0101-sched-fair-Make-the-hrtimers-non-hard-again.patch
@@ -0,0 +1,34 @@
+From 79daa2a0bfdb433f8f4dfb8fe3b3652199bf7cb8 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 8 Jan 2019 12:31:06 +0100
+Subject: [PATCH 101/347] sched/fair: Make the hrtimers non-hard again
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Since commit "sched/fair: Robustify CFS-bandwidth timer locking" both
+hrtimer can run in softirq context because now interrupts are disabled
+as part of the locking procedure.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/sched/fair.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
+index d804b5443bb9..16940416d526 100644
+--- a/kernel/sched/fair.c
++++ b/kernel/sched/fair.c
+@@ -4951,9 +4951,9 @@ void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b)
+ cfs_b->period = ns_to_ktime(default_cfs_period());
+
+ INIT_LIST_HEAD(&cfs_b->throttled_cfs_rq);
+- hrtimer_init(&cfs_b->period_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_PINNED_HARD);
++ hrtimer_init(&cfs_b->period_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_PINNED);
+ cfs_b->period_timer.function = sched_cfs_period_timer;
+- hrtimer_init(&cfs_b->slack_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
++ hrtimer_init(&cfs_b->slack_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
+ cfs_b->slack_timer.function = sched_cfs_slack_timer;
+ cfs_b->distribute_running = 0;
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0102-hrtimer-Move-schedule_work-call-to-helper-thread.patch b/debian/patches-rt/0102-hrtimer-Move-schedule_work-call-to-helper-thread.patch
new file mode 100644
index 000000000..59bec99cb
--- /dev/null
+++ b/debian/patches-rt/0102-hrtimer-Move-schedule_work-call-to-helper-thread.patch
@@ -0,0 +1,98 @@
+From da39809d4f91a8c4a41fdf3f17fc892dc71dd9ae Mon Sep 17 00:00:00 2001
+From: Yang Shi <yang.shi@windriver.com>
+Date: Mon, 16 Sep 2013 14:09:19 -0700
+Subject: [PATCH 102/347] hrtimer: Move schedule_work call to helper thread
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+When run ltp leapsec_timer test, the following call trace is caught:
+
+BUG: sleeping function called from invalid context at kernel/rtmutex.c:659
+in_atomic(): 1, irqs_disabled(): 1, pid: 0, name: swapper/1
+Preemption disabled at:[<ffffffff810857f3>] cpu_startup_entry+0x133/0x310
+
+CPU: 1 PID: 0 Comm: swapper/1 Not tainted 3.10.10-rt3 #2
+Hardware name: Intel Corporation Calpella platform/MATXM-CORE-411-B, BIOS 4.6.3 08/18/2010
+ffffffff81c2f800 ffff880076843e40 ffffffff8169918d ffff880076843e58
+ffffffff8106db31 ffff88007684b4a0 ffff880076843e70 ffffffff8169d9c0
+ffff88007684b4a0 ffff880076843eb0 ffffffff81059da1 0000001876851200
+Call Trace:
+<IRQ> [<ffffffff8169918d>] dump_stack+0x19/0x1b
+[<ffffffff8106db31>] __might_sleep+0xf1/0x170
+[<ffffffff8169d9c0>] rt_spin_lock+0x20/0x50
+[<ffffffff81059da1>] queue_work_on+0x61/0x100
+[<ffffffff81065aa1>] clock_was_set_delayed+0x21/0x30
+[<ffffffff810883be>] do_timer+0x40e/0x660
+[<ffffffff8108f487>] tick_do_update_jiffies64+0xf7/0x140
+[<ffffffff8108fe42>] tick_check_idle+0x92/0xc0
+[<ffffffff81044327>] irq_enter+0x57/0x70
+[<ffffffff816a040e>] smp_apic_timer_interrupt+0x3e/0x9b
+[<ffffffff8169f80a>] apic_timer_interrupt+0x6a/0x70
+<EOI> [<ffffffff8155ea1c>] ? cpuidle_enter_state+0x4c/0xc0
+[<ffffffff8155eb68>] cpuidle_idle_call+0xd8/0x2d0
+[<ffffffff8100b59e>] arch_cpu_idle+0xe/0x30
+[<ffffffff8108585e>] cpu_startup_entry+0x19e/0x310
+[<ffffffff8168efa2>] start_secondary+0x1ad/0x1b0
+
+The clock_was_set_delayed is called in hard IRQ handler (timer interrupt), which
+calls schedule_work.
+
+Under PREEMPT_RT_FULL, schedule_work calls spinlocks which could sleep, so it's
+not safe to call schedule_work in interrupt context.
+
+Reference upstream commit b68d61c705ef02384c0538b8d9374545097899ca
+(rt,ntp: Move call to schedule_delayed_work() to helper thread)
+from git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git, which
+makes a similar change.
+
+Signed-off-by: Yang Shi <yang.shi@windriver.com>
+[bigeasy: use swork_queue() instead a helper thread]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/time/hrtimer.c | 24 ++++++++++++++++++++++++
+ 1 file changed, 24 insertions(+)
+
+diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
+index e947f3b344ac..0833e5cf224d 100644
+--- a/kernel/time/hrtimer.c
++++ b/kernel/time/hrtimer.c
+@@ -748,6 +748,29 @@ static void hrtimer_switch_to_hres(void)
+ retrigger_next_event(NULL);
+ }
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++
++static struct swork_event clock_set_delay_work;
++
++static void run_clock_set_delay(struct swork_event *event)
++{
++ clock_was_set();
++}
++
++void clock_was_set_delayed(void)
++{
++ swork_queue(&clock_set_delay_work);
++}
++
++static __init int create_clock_set_delay_thread(void)
++{
++ WARN_ON(swork_get());
++ INIT_SWORK(&clock_set_delay_work, run_clock_set_delay);
++ return 0;
++}
++early_initcall(create_clock_set_delay_thread);
++#else /* PREEMPT_RT_FULL */
++
+ static void clock_was_set_work(struct work_struct *work)
+ {
+ clock_was_set();
+@@ -763,6 +786,7 @@ void clock_was_set_delayed(void)
+ {
+ schedule_work(&hrtimer_work);
+ }
++#endif
+
+ #else
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0103-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch b/debian/patches-rt/0103-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch
new file mode 100644
index 000000000..d93342369
--- /dev/null
+++ b/debian/patches-rt/0103-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch
@@ -0,0 +1,51 @@
+From baa58a4f1714630ef1a780575a907b4f80344e19 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 6 Dec 2018 10:15:13 +0100
+Subject: [PATCH 103/347] hrtimer: move state change before hrtimer_cancel in
+ do_nanosleep()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+There is a small window between setting t->task to NULL and waking the
+task up (which would set TASK_RUNNING). So the timer would fire, run and
+set ->task to NULL while the other side/do_nanosleep() wouldn't enter
+freezable_schedule(). After all we are peemptible here (in
+do_nanosleep() and on the timer wake up path) and on KVM/virt the
+virt-CPU might get preempted.
+So do_nanosleep() wouldn't enter freezable_schedule() but cancel the
+timer which is still running and wait for it via
+hrtimer_wait_for_timer(). Then wait_event()/might_sleep() would complain
+that it is invoked with state != TASK_RUNNING.
+This isn't a problem since it would be reset to TASK_RUNNING later
+anyway and we don't rely on the previous state.
+
+Move the state update to TASK_RUNNING before hrtimer_cancel() so there
+are no complains from might_sleep() about wrong state.
+
+Cc: stable-rt@vger.kernel.org
+Reviewed-by: Daniel Bristot de Oliveira <bristot@redhat.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/time/hrtimer.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
+index 0833e5cf224d..009001f06d33 100644
+--- a/kernel/time/hrtimer.c
++++ b/kernel/time/hrtimer.c
+@@ -1852,12 +1852,12 @@ static int __sched do_nanosleep(struct hrtimer_sleeper *t, enum hrtimer_mode mod
+ if (likely(t->task))
+ freezable_schedule();
+
++ __set_current_state(TASK_RUNNING);
+ hrtimer_cancel(&t->timer);
+ mode = HRTIMER_MODE_ABS;
+
+ } while (t->task && !signal_pending(current));
+
+- __set_current_state(TASK_RUNNING);
+
+ if (!t->task)
+ return 0;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0104-posix-timers-Thread-posix-cpu-timers-on-rt.patch b/debian/patches-rt/0104-posix-timers-Thread-posix-cpu-timers-on-rt.patch
new file mode 100644
index 000000000..36a78b986
--- /dev/null
+++ b/debian/patches-rt/0104-posix-timers-Thread-posix-cpu-timers-on-rt.patch
@@ -0,0 +1,269 @@
+From 59ac8673b0cb63baa55b3058ba0cb36ecb14a9d7 Mon Sep 17 00:00:00 2001
+From: John Stultz <johnstul@us.ibm.com>
+Date: Fri, 3 Jul 2009 08:29:58 -0500
+Subject: [PATCH 104/347] posix-timers: Thread posix-cpu-timers on -rt
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+posix-cpu-timer code takes non -rt safe locks in hard irq
+context. Move it to a thread.
+
+[ 3.0 fixes from Peter Zijlstra <peterz@infradead.org> ]
+
+Signed-off-by: John Stultz <johnstul@us.ibm.com>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/sched.h | 3 +
+ init/init_task.c | 7 ++
+ kernel/fork.c | 3 +
+ kernel/time/posix-cpu-timers.c | 154 ++++++++++++++++++++++++++++++++-
+ 4 files changed, 164 insertions(+), 3 deletions(-)
+
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index 56047f57ebc7..5369eb1fd456 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -832,6 +832,9 @@ struct task_struct {
+ #ifdef CONFIG_POSIX_TIMERS
+ struct task_cputime cputime_expires;
+ struct list_head cpu_timers[3];
++#ifdef CONFIG_PREEMPT_RT_BASE
++ struct task_struct *posix_timer_list;
++#endif
+ #endif
+
+ /* Process credentials: */
+diff --git a/init/init_task.c b/init/init_task.c
+index d71054b95528..634becebd713 100644
+--- a/init/init_task.c
++++ b/init/init_task.c
+@@ -50,6 +50,12 @@ static struct sighand_struct init_sighand = {
+ .signalfd_wqh = __WAIT_QUEUE_HEAD_INITIALIZER(init_sighand.signalfd_wqh),
+ };
+
++#if defined(CONFIG_POSIX_TIMERS) && defined(CONFIG_PREEMPT_RT_BASE)
++# define INIT_TIMER_LIST .posix_timer_list = NULL,
++#else
++# define INIT_TIMER_LIST
++#endif
++
+ /*
+ * Set up the first task table, touch at your own risk!. Base=0,
+ * limit=0x1fffff (=2MB)
+@@ -119,6 +125,7 @@ struct task_struct init_task
+ INIT_CPU_TIMERS(init_task)
+ .pi_lock = __RAW_SPIN_LOCK_UNLOCKED(init_task.pi_lock),
+ .timer_slack_ns = 50000, /* 50 usec default slack */
++ INIT_TIMER_LIST
+ .thread_pid = &init_struct_pid,
+ .thread_group = LIST_HEAD_INIT(init_task.thread_group),
+ .thread_node = LIST_HEAD_INIT(init_signals.thread_head),
+diff --git a/kernel/fork.c b/kernel/fork.c
+index a18d695259af..c27c196fd70e 100644
+--- a/kernel/fork.c
++++ b/kernel/fork.c
+@@ -1587,6 +1587,9 @@ static void rt_mutex_init_task(struct task_struct *p)
+ */
+ static void posix_cpu_timers_init(struct task_struct *tsk)
+ {
++#ifdef CONFIG_PREEMPT_RT_BASE
++ tsk->posix_timer_list = NULL;
++#endif
+ tsk->cputime_expires.prof_exp = 0;
+ tsk->cputime_expires.virt_exp = 0;
+ tsk->cputime_expires.sched_exp = 0;
+diff --git a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c
+index bfaa44a80c03..2d29b269dc83 100644
+--- a/kernel/time/posix-cpu-timers.c
++++ b/kernel/time/posix-cpu-timers.c
+@@ -3,8 +3,10 @@
+ * Implement CPU time clocks for the POSIX clock interface.
+ */
+
++#include <uapi/linux/sched/types.h>
+ #include <linux/sched/signal.h>
+ #include <linux/sched/cputime.h>
++#include <linux/sched/rt.h>
+ #include <linux/posix-timers.h>
+ #include <linux/errno.h>
+ #include <linux/math64.h>
+@@ -15,6 +17,7 @@
+ #include <linux/workqueue.h>
+ #include <linux/compat.h>
+ #include <linux/sched/deadline.h>
++#include <linux/smpboot.h>
+
+ #include "posix-timers.h"
+
+@@ -1140,14 +1143,12 @@ static inline int fastpath_timer_check(struct task_struct *tsk)
+ * already updated our counts. We need to check if any timers fire now.
+ * Interrupts are disabled.
+ */
+-void run_posix_cpu_timers(struct task_struct *tsk)
++static void __run_posix_cpu_timers(struct task_struct *tsk)
+ {
+ LIST_HEAD(firing);
+ struct k_itimer *timer, *next;
+ unsigned long flags;
+
+- lockdep_assert_irqs_disabled();
+-
+ /*
+ * The fast path checks that there are no expired thread or thread
+ * group timers. If that's so, just return.
+@@ -1200,6 +1201,153 @@ void run_posix_cpu_timers(struct task_struct *tsk)
+ }
+ }
+
++#ifdef CONFIG_PREEMPT_RT_BASE
++#include <linux/kthread.h>
++#include <linux/cpu.h>
++DEFINE_PER_CPU(struct task_struct *, posix_timer_task);
++DEFINE_PER_CPU(struct task_struct *, posix_timer_tasklist);
++DEFINE_PER_CPU(bool, posix_timer_th_active);
++
++static void posix_cpu_kthread_fn(unsigned int cpu)
++{
++ struct task_struct *tsk = NULL;
++ struct task_struct *next = NULL;
++
++ BUG_ON(per_cpu(posix_timer_task, cpu) != current);
++
++ /* grab task list */
++ raw_local_irq_disable();
++ tsk = per_cpu(posix_timer_tasklist, cpu);
++ per_cpu(posix_timer_tasklist, cpu) = NULL;
++ raw_local_irq_enable();
++
++ /* its possible the list is empty, just return */
++ if (!tsk)
++ return;
++
++ /* Process task list */
++ while (1) {
++ /* save next */
++ next = tsk->posix_timer_list;
++
++ /* run the task timers, clear its ptr and
++ * unreference it
++ */
++ __run_posix_cpu_timers(tsk);
++ tsk->posix_timer_list = NULL;
++ put_task_struct(tsk);
++
++ /* check if this is the last on the list */
++ if (next == tsk)
++ break;
++ tsk = next;
++ }
++}
++
++static inline int __fastpath_timer_check(struct task_struct *tsk)
++{
++ /* tsk == current, ensure it is safe to use ->signal/sighand */
++ if (unlikely(tsk->exit_state))
++ return 0;
++
++ if (!task_cputime_zero(&tsk->cputime_expires))
++ return 1;
++
++ if (!task_cputime_zero(&tsk->signal->cputime_expires))
++ return 1;
++
++ return 0;
++}
++
++void run_posix_cpu_timers(struct task_struct *tsk)
++{
++ unsigned int cpu = smp_processor_id();
++ struct task_struct *tasklist;
++
++ BUG_ON(!irqs_disabled());
++
++ if (per_cpu(posix_timer_th_active, cpu) != true)
++ return;
++
++ /* get per-cpu references */
++ tasklist = per_cpu(posix_timer_tasklist, cpu);
++
++ /* check to see if we're already queued */
++ if (!tsk->posix_timer_list && __fastpath_timer_check(tsk)) {
++ get_task_struct(tsk);
++ if (tasklist) {
++ tsk->posix_timer_list = tasklist;
++ } else {
++ /*
++ * The list is terminated by a self-pointing
++ * task_struct
++ */
++ tsk->posix_timer_list = tsk;
++ }
++ per_cpu(posix_timer_tasklist, cpu) = tsk;
++
++ wake_up_process(per_cpu(posix_timer_task, cpu));
++ }
++}
++
++static int posix_cpu_kthread_should_run(unsigned int cpu)
++{
++ return __this_cpu_read(posix_timer_tasklist) != NULL;
++}
++
++static void posix_cpu_kthread_park(unsigned int cpu)
++{
++ this_cpu_write(posix_timer_th_active, false);
++}
++
++static void posix_cpu_kthread_unpark(unsigned int cpu)
++{
++ this_cpu_write(posix_timer_th_active, true);
++}
++
++static void posix_cpu_kthread_setup(unsigned int cpu)
++{
++ struct sched_param sp;
++
++ sp.sched_priority = MAX_RT_PRIO - 1;
++ sched_setscheduler_nocheck(current, SCHED_FIFO, &sp);
++ posix_cpu_kthread_unpark(cpu);
++}
++
++static struct smp_hotplug_thread posix_cpu_thread = {
++ .store = &posix_timer_task,
++ .thread_should_run = posix_cpu_kthread_should_run,
++ .thread_fn = posix_cpu_kthread_fn,
++ .thread_comm = "posixcputmr/%u",
++ .setup = posix_cpu_kthread_setup,
++ .park = posix_cpu_kthread_park,
++ .unpark = posix_cpu_kthread_unpark,
++};
++
++static int __init posix_cpu_thread_init(void)
++{
++ /* Start one for boot CPU. */
++ unsigned long cpu;
++ int ret;
++
++ /* init the per-cpu posix_timer_tasklets */
++ for_each_possible_cpu(cpu)
++ per_cpu(posix_timer_tasklist, cpu) = NULL;
++
++ ret = smpboot_register_percpu_thread(&posix_cpu_thread);
++ WARN_ON(ret);
++
++ return 0;
++}
++early_initcall(posix_cpu_thread_init);
++#else /* CONFIG_PREEMPT_RT_BASE */
++void run_posix_cpu_timers(struct task_struct *tsk)
++{
++ lockdep_assert_irqs_disabled();
++ __run_posix_cpu_timers(tsk);
++}
++#endif /* CONFIG_PREEMPT_RT_BASE */
++
+ /*
+ * Set one of the process-wide special case CPU timers or RLIMIT_CPU.
+ * The tsk->sighand->siglock must be held by the caller.
+--
+2.36.1
+
diff --git a/debian/patches-rt/0105-sched-Move-task_struct-cleanup-to-RCU.patch b/debian/patches-rt/0105-sched-Move-task_struct-cleanup-to-RCU.patch
new file mode 100644
index 000000000..8883673e8
--- /dev/null
+++ b/debian/patches-rt/0105-sched-Move-task_struct-cleanup-to-RCU.patch
@@ -0,0 +1,96 @@
+From 6b5806854133faa2eda014a6553665c6fa393d5e Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Tue, 31 May 2011 16:59:16 +0200
+Subject: [PATCH 105/347] sched: Move task_struct cleanup to RCU
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+__put_task_struct() does quite some expensive work. We don't want to
+burden random tasks with that.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/sched.h | 3 +++
+ include/linux/sched/task.h | 11 ++++++++++-
+ kernel/fork.c | 15 ++++++++++++++-
+ 3 files changed, 27 insertions(+), 2 deletions(-)
+
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index 5369eb1fd456..5e2ec9c86b4b 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -1196,6 +1196,9 @@ struct task_struct {
+ unsigned int sequential_io;
+ unsigned int sequential_io_avg;
+ #endif
++#ifdef CONFIG_PREEMPT_RT_BASE
++ struct rcu_head put_rcu;
++#endif
+ #ifdef CONFIG_DEBUG_ATOMIC_SLEEP
+ unsigned long task_state_change;
+ #endif
+diff --git a/include/linux/sched/task.h b/include/linux/sched/task.h
+index 91401309b1aa..5f8c1d53bc11 100644
+--- a/include/linux/sched/task.h
++++ b/include/linux/sched/task.h
+@@ -90,6 +90,15 @@ extern void sched_exec(void);
+
+ #define get_task_struct(tsk) do { atomic_inc(&(tsk)->usage); } while(0)
+
++#ifdef CONFIG_PREEMPT_RT_BASE
++extern void __put_task_struct_cb(struct rcu_head *rhp);
++
++static inline void put_task_struct(struct task_struct *t)
++{
++ if (atomic_dec_and_test(&t->usage))
++ call_rcu(&t->put_rcu, __put_task_struct_cb);
++}
++#else
+ extern void __put_task_struct(struct task_struct *t);
+
+ static inline void put_task_struct(struct task_struct *t)
+@@ -97,7 +106,7 @@ static inline void put_task_struct(struct task_struct *t)
+ if (atomic_dec_and_test(&t->usage))
+ __put_task_struct(t);
+ }
+-
++#endif
+ struct task_struct *task_rcu_dereference(struct task_struct **ptask);
+
+ #ifdef CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT
+diff --git a/kernel/fork.c b/kernel/fork.c
+index c27c196fd70e..f5a4c42233f0 100644
+--- a/kernel/fork.c
++++ b/kernel/fork.c
+@@ -676,7 +676,9 @@ static inline void put_signal_struct(struct signal_struct *sig)
+ if (atomic_dec_and_test(&sig->sigcnt))
+ free_signal_struct(sig);
+ }
+-
++#ifdef CONFIG_PREEMPT_RT_BASE
++static
++#endif
+ void __put_task_struct(struct task_struct *tsk)
+ {
+ WARN_ON(!tsk->exit_state);
+@@ -693,7 +695,18 @@ void __put_task_struct(struct task_struct *tsk)
+ if (!profile_handoff_task(tsk))
+ free_task(tsk);
+ }
++#ifndef CONFIG_PREEMPT_RT_BASE
+ EXPORT_SYMBOL_GPL(__put_task_struct);
++#else
++void __put_task_struct_cb(struct rcu_head *rhp)
++{
++ struct task_struct *tsk = container_of(rhp, struct task_struct, put_rcu);
++
++ __put_task_struct(tsk);
++
++}
++EXPORT_SYMBOL_GPL(__put_task_struct_cb);
++#endif
+
+ void __init __weak arch_task_cache_init(void) { }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0106-sched-Limit-the-number-of-task-migrations-per-batch.patch b/debian/patches-rt/0106-sched-Limit-the-number-of-task-migrations-per-batch.patch
new file mode 100644
index 000000000..7c34d3924
--- /dev/null
+++ b/debian/patches-rt/0106-sched-Limit-the-number-of-task-migrations-per-batch.patch
@@ -0,0 +1,33 @@
+From 6447e629affa080b84d75e0f685848104a5601ee Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Mon, 6 Jun 2011 12:12:51 +0200
+Subject: [PATCH 106/347] sched: Limit the number of task migrations per batch
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Put an upper limit on the number of tasks which are migrated per batch
+to avoid large latencies.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ kernel/sched/core.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 0f949b7738fd..4cc39856c4c6 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -44,7 +44,11 @@ const_debug unsigned int sysctl_sched_features =
+ * Number of tasks to iterate in a single balance run.
+ * Limited because this is done with IRQs disabled.
+ */
++#ifdef CONFIG_PREEMPT_RT_FULL
++const_debug unsigned int sysctl_sched_nr_migrate = 8;
++#else
+ const_debug unsigned int sysctl_sched_nr_migrate = 32;
++#endif
+
+ /*
+ * period over which we measure -rt task CPU usage in us.
+--
+2.36.1
+
diff --git a/debian/patches-rt/0107-sched-Move-mmdrop-to-RCU-on-RT.patch b/debian/patches-rt/0107-sched-Move-mmdrop-to-RCU-on-RT.patch
new file mode 100644
index 000000000..9c6b2f686
--- /dev/null
+++ b/debian/patches-rt/0107-sched-Move-mmdrop-to-RCU-on-RT.patch
@@ -0,0 +1,115 @@
+From 977952ae9f00231e71587f8dc135949a2bed15e2 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Mon, 6 Jun 2011 12:20:33 +0200
+Subject: [PATCH 107/347] sched: Move mmdrop to RCU on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Takes sleeping locks and calls into the memory allocator, so nothing
+we want to do in task switch and oder atomic contexts.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/mm_types.h | 4 ++++
+ include/linux/sched/mm.h | 11 +++++++++++
+ kernel/fork.c | 13 +++++++++++++
+ kernel/sched/core.c | 7 ++++++-
+ 4 files changed, 34 insertions(+), 1 deletion(-)
+
+diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
+index 3a9a996af229..202b736ccbfa 100644
+--- a/include/linux/mm_types.h
++++ b/include/linux/mm_types.h
+@@ -12,6 +12,7 @@
+ #include <linux/completion.h>
+ #include <linux/cpumask.h>
+ #include <linux/uprobes.h>
++#include <linux/rcupdate.h>
+ #include <linux/page-flags-layout.h>
+ #include <linux/workqueue.h>
+
+@@ -487,6 +488,9 @@ struct mm_struct {
+ bool tlb_flush_batched;
+ #endif
+ struct uprobes_state uprobes_state;
++#ifdef CONFIG_PREEMPT_RT_BASE
++ struct rcu_head delayed_drop;
++#endif
+ #ifdef CONFIG_HUGETLB_PAGE
+ atomic_long_t hugetlb_usage;
+ #endif
+diff --git a/include/linux/sched/mm.h b/include/linux/sched/mm.h
+index ef54f4b3f1e4..88e1a563f762 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)
+ __mmdrop(mm);
+ }
+
++#ifdef CONFIG_PREEMPT_RT_BASE
++extern void __mmdrop_delayed(struct rcu_head *rhp);
++static inline void mmdrop_delayed(struct mm_struct *mm)
++{
++ if (atomic_dec_and_test(&mm->mm_count))
++ call_rcu(&mm->delayed_drop, __mmdrop_delayed);
++}
++#else
++# define mmdrop_delayed(mm) mmdrop(mm)
++#endif
++
+ void mmdrop(struct mm_struct *mm);
+
+ /*
+diff --git a/kernel/fork.c b/kernel/fork.c
+index f5a4c42233f0..114ff9724b02 100644
+--- a/kernel/fork.c
++++ b/kernel/fork.c
+@@ -642,6 +642,19 @@ void __mmdrop(struct mm_struct *mm)
+ }
+ EXPORT_SYMBOL_GPL(__mmdrop);
+
++#ifdef CONFIG_PREEMPT_RT_BASE
++/*
++ * RCU callback for delayed mm drop. Not strictly rcu, but we don't
++ * want another facility to make this work.
++ */
++void __mmdrop_delayed(struct rcu_head *rhp)
++{
++ struct mm_struct *mm = container_of(rhp, struct mm_struct, delayed_drop);
++
++ __mmdrop(mm);
++}
++#endif
++
+ static void mmdrop_async_fn(struct work_struct *work)
+ {
+ struct mm_struct *mm;
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 4cc39856c4c6..676b9b213991 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -2734,9 +2734,13 @@ static struct rq *finish_task_switch(struct task_struct *prev)
+ * provided by mmdrop(),
+ * - a sync_core for SYNC_CORE.
+ */
++ /*
++ * We use mmdrop_delayed() here so we don't have to do the
++ * full __mmdrop() when we are the last user.
++ */
+ if (mm) {
+ membarrier_mm_sync_core_before_usermode(mm);
+- mmdrop(mm);
++ mmdrop_delayed(mm);
+ }
+ if (unlikely(prev_state == TASK_DEAD)) {
+ if (prev->sched_class->task_dead)
+@@ -5603,6 +5607,7 @@ void sched_setnuma(struct task_struct *p, int nid)
+ #endif /* CONFIG_NUMA_BALANCING */
+
+ #ifdef CONFIG_HOTPLUG_CPU
++
+ /*
+ * Ensure that the idle task is using init_mm right before its CPU goes
+ * offline.
+--
+2.36.1
+
diff --git a/debian/patches-rt/0108-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch b/debian/patches-rt/0108-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch
new file mode 100644
index 000000000..da1b8eee6
--- /dev/null
+++ b/debian/patches-rt/0108-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch
@@ -0,0 +1,70 @@
+From 3028eeca5a3657762aa36512dac687f987462a80 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Mon, 21 Nov 2016 19:31:08 +0100
+Subject: [PATCH 108/347] kernel/sched: move stack + kprobe clean up to
+ __put_task_struct()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+CONFIG_THREAD_INFO_IN_TASK")). This also comes handy on -RT because we can't
+free memory in preempt disabled region.
+
+Cc: stable-rt@vger.kernel.org #for kprobe_flush_task()
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/fork.c | 10 ++++++++++
+ kernel/sched/core.c | 9 ---------
+ 2 files changed, 10 insertions(+), 9 deletions(-)
+
+diff --git a/kernel/fork.c b/kernel/fork.c
+index 114ff9724b02..efe690af29f1 100644
+--- a/kernel/fork.c
++++ b/kernel/fork.c
+@@ -40,6 +40,7 @@
+ #include <linux/hmm.h>
+ #include <linux/fs.h>
+ #include <linux/mm.h>
++#include <linux/kprobes.h>
+ #include <linux/vmacache.h>
+ #include <linux/nsproxy.h>
+ #include <linux/capability.h>
+@@ -698,6 +699,15 @@ void __put_task_struct(struct task_struct *tsk)
+ WARN_ON(atomic_read(&tsk->usage));
+ WARN_ON(tsk == current);
+
++ /*
++ * Remove function-return probe instances associated with this
++ * task and put them back on the free list.
++ */
++ kprobe_flush_task(tsk);
++
++ /* Task is done with its stack. */
++ put_task_stack(tsk);
++
+ cgroup_free(tsk);
+ task_numa_free(tsk, true);
+ security_task_free(tsk);
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 676b9b213991..089779e18440 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -2746,15 +2746,6 @@ static struct rq *finish_task_switch(struct task_struct *prev)
+ if (prev->sched_class->task_dead)
+ prev->sched_class->task_dead(prev);
+
+- /*
+- * Remove function-return probe instances associated with this
+- * task and put them back on the free list.
+- */
+- kprobe_flush_task(prev);
+-
+- /* Task is done with its stack. */
+- put_task_stack(prev);
+-
+ put_task_struct(prev);
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0109-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch b/debian/patches-rt/0109-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch
new file mode 100644
index 000000000..f8b1532fb
--- /dev/null
+++ b/debian/patches-rt/0109-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch
@@ -0,0 +1,108 @@
+From 84facacc5994009491bb74f5bee0c8399540c9b5 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Sat, 25 Jun 2011 09:21:04 +0200
+Subject: [PATCH 109/347] sched: Add saved_state for tasks blocked on sleeping
+ locks
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+the lock contention. If a regular wakeup (not a RTmutex related
+wakeup) happens, the saved_state is updated to running. When the lock
+sleep is done, the saved state is restored.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/sched.h | 3 +++
+ kernel/sched/core.c | 33 ++++++++++++++++++++++++++++++++-
+ kernel/sched/sched.h | 1 +
+ 3 files changed, 36 insertions(+), 1 deletion(-)
+
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index 5e2ec9c86b4b..1b2884889dd0 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -600,6 +600,8 @@ struct task_struct {
+ #endif
+ /* -1 unrunnable, 0 runnable, >0 stopped: */
+ volatile long state;
++ /* saved state for "spinlock sleepers" */
++ volatile long saved_state;
+
+ /*
+ * This begins the randomizable portion of task_struct. Only
+@@ -1621,6 +1623,7 @@ extern struct task_struct *find_get_task_by_vpid(pid_t nr);
+
+ extern int wake_up_state(struct task_struct *tsk, unsigned int state);
+ extern int wake_up_process(struct task_struct *tsk);
++extern int wake_up_lock_sleeper(struct task_struct *tsk);
+ extern void wake_up_new_task(struct task_struct *tsk);
+
+ #ifdef CONFIG_SMP
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 089779e18440..3ec69104d0e0 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -2002,8 +2002,27 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags)
+ */
+ raw_spin_lock_irqsave(&p->pi_lock, flags);
+ smp_mb__after_spinlock();
+- if (!(p->state & state))
++ if (!(p->state & state)) {
++ /*
++ * The task might be running due to a spinlock sleeper
++ * wakeup. Check the saved state and set it to running
++ * if the wakeup condition is true.
++ */
++ if (!(wake_flags & WF_LOCK_SLEEPER)) {
++ if (p->saved_state & state) {
++ p->saved_state = TASK_RUNNING;
++ success = 1;
++ }
++ }
+ goto out;
++ }
++
++ /*
++ * If this is a regular wakeup, then we can unconditionally
++ * clear the saved state of a "lock sleeper".
++ */
++ if (!(wake_flags & WF_LOCK_SLEEPER))
++ p->saved_state = TASK_RUNNING;
+
+ trace_sched_waking(p);
+
+@@ -2167,6 +2186,18 @@ int wake_up_process(struct task_struct *p)
+ }
+ EXPORT_SYMBOL(wake_up_process);
+
++/**
++ * wake_up_lock_sleeper - Wake up a specific process blocked on a "sleeping lock"
++ * @p: The process to be woken up.
++ *
++ * Same as wake_up_process() above, but wake_flags=WF_LOCK_SLEEPER to indicate
++ * the nature of the wakeup.
++ */
++int wake_up_lock_sleeper(struct task_struct *p)
++{
++ return try_to_wake_up(p, TASK_UNINTERRUPTIBLE, WF_LOCK_SLEEPER);
++}
++
+ int wake_up_state(struct task_struct *p, unsigned int state)
+ {
+ return try_to_wake_up(p, state, 0);
+diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
+index 55e695080fc6..637c408fb2dc 100644
+--- a/kernel/sched/sched.h
++++ b/kernel/sched/sched.h
+@@ -1448,6 +1448,7 @@ static inline int task_on_rq_migrating(struct task_struct *p)
+ #define WF_SYNC 0x01 /* Waker goes to sleep after wakeup */
+ #define WF_FORK 0x02 /* Child wakeup after fork */
+ #define WF_MIGRATED 0x4 /* Internal use, task got migrated */
++#define WF_LOCK_SLEEPER 0x08 /* wakeup spinlock "sleeper" */
+
+ /*
+ * To aid in avoiding the subversion of "niceness" due to uneven distribution
+--
+2.36.1
+
diff --git a/debian/patches-rt/0110-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch b/debian/patches-rt/0110-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch
new file mode 100644
index 000000000..f7f28c137
--- /dev/null
+++ b/debian/patches-rt/0110-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch
@@ -0,0 +1,57 @@
+From f56cb07175c10678a26521bb7be0f493ffd5d544 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Tue, 7 Jun 2011 09:19:06 +0200
+Subject: [PATCH 110/347] sched: Do not account rcu_preempt_depth on RT in
+ might_sleep()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+RT changes the rcu_preempt_depth semantics, so we cannot check for it
+in might_sleep().
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/rcupdate.h | 7 +++++++
+ kernel/sched/core.c | 2 +-
+ 2 files changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
+index 68cbe111420b..027c58cdbb6e 100644
+--- a/include/linux/rcupdate.h
++++ b/include/linux/rcupdate.h
+@@ -73,6 +73,11 @@ void synchronize_rcu(void);
+ * types of kernel builds, the rcu_read_lock() nesting depth is unknowable.
+ */
+ #define rcu_preempt_depth() (current->rcu_read_lock_nesting)
++#ifndef CONFIG_PREEMPT_RT_FULL
++#define sched_rcu_preempt_depth() rcu_preempt_depth()
++#else
++static inline int sched_rcu_preempt_depth(void) { return 0; }
++#endif
+
+ #else /* #ifdef CONFIG_PREEMPT_RCU */
+
+@@ -96,6 +101,8 @@ static inline int rcu_preempt_depth(void)
+ return 0;
+ }
+
++#define sched_rcu_preempt_depth() rcu_preempt_depth()
++
+ #endif /* #else #ifdef CONFIG_PREEMPT_RCU */
+
+ /* Internal to kernel */
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 3ec69104d0e0..52e821ac5872 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -6192,7 +6192,7 @@ void __init sched_init(void)
+ #ifdef CONFIG_DEBUG_ATOMIC_SLEEP
+ static inline int preempt_count_equals(int preempt_offset)
+ {
+- int nested = preempt_count() + rcu_preempt_depth();
++ int nested = preempt_count() + sched_rcu_preempt_depth();
+
+ return (nested == preempt_offset);
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0111-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch b/debian/patches-rt/0111-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch
new file mode 100644
index 000000000..eccb1e428
--- /dev/null
+++ b/debian/patches-rt/0111-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch
@@ -0,0 +1,33 @@
+From 5c317385aa997812acc4dd102c34f7d843bd7eb6 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Sun, 17 Jul 2011 22:51:33 +0200
+Subject: [PATCH 111/347] sched: Use the proper LOCK_OFFSET for cond_resched()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+RT does not increment preempt count when a 'sleeping' spinlock is
+locked. Update PREEMPT_LOCK_OFFSET for that case.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/preempt.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/include/linux/preempt.h b/include/linux/preempt.h
+index f7a17fcc3fec..b7fe717eb1f4 100644
+--- a/include/linux/preempt.h
++++ b/include/linux/preempt.h
+@@ -118,7 +118,11 @@
+ /*
+ * The preempt_count offset after spin_lock()
+ */
++#if !defined(CONFIG_PREEMPT_RT_FULL)
+ #define PREEMPT_LOCK_OFFSET PREEMPT_DISABLE_OFFSET
++#else
++#define PREEMPT_LOCK_OFFSET 0
++#endif
+
+ /*
+ * The preempt_count offset needed for things like:
+--
+2.36.1
+
diff --git a/debian/patches-rt/0112-sched-Disable-TTWU_QUEUE-on-RT.patch b/debian/patches-rt/0112-sched-Disable-TTWU_QUEUE-on-RT.patch
new file mode 100644
index 000000000..8e44536b2
--- /dev/null
+++ b/debian/patches-rt/0112-sched-Disable-TTWU_QUEUE-on-RT.patch
@@ -0,0 +1,38 @@
+From 31cdcd445b6fbf09238e8e3a25c2dd72be0bb187 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Tue, 13 Sep 2011 16:42:35 +0200
+Subject: [PATCH 112/347] sched: Disable TTWU_QUEUE on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The queued remote wakeup mechanism can introduce rather large
+latencies if the number of migrated tasks is high. Disable it for RT.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ kernel/sched/features.h | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/kernel/sched/features.h b/kernel/sched/features.h
+index 85ae8488039c..68de18405857 100644
+--- a/kernel/sched/features.h
++++ b/kernel/sched/features.h
+@@ -46,11 +46,16 @@ SCHED_FEAT(LB_BIAS, true)
+ */
+ SCHED_FEAT(NONTASK_CAPACITY, true)
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++SCHED_FEAT(TTWU_QUEUE, false)
++#else
++
+ /*
+ * Queue remote wakeups on the target CPU and process them
+ * using the scheduler IPI. Reduces rq->lock contention/bounces.
+ */
+ SCHED_FEAT(TTWU_QUEUE, true)
++#endif
+
+ /*
+ * When doing wakeups, attempt to limit superfluous scans of the LLC domain.
+--
+2.36.1
+
diff --git a/debian/patches-rt/0113-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch b/debian/patches-rt/0113-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch
new file mode 100644
index 000000000..e02a45c7e
--- /dev/null
+++ b/debian/patches-rt/0113-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch
@@ -0,0 +1,45 @@
+From 495d970d1b7c60361c296ff0e613787355a1cbd3 Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <rostedt@goodmis.org>
+Date: Mon, 18 Mar 2013 15:12:49 -0400
+Subject: [PATCH 113/347] sched/workqueue: Only wake up idle workers if not
+ blocked on sleeping spin lock
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+In -rt, most spin_locks() turn into mutexes. One of these spin_lock
+conversions is performed on the workqueue gcwq->lock. When the idle
+worker is worken, the first thing it will do is grab that same lock and
+it too will block, possibly jumping into the same code, but because
+nr_running would already be decremented it prevents an infinite loop.
+
+But this is still a waste of CPU cycles, and it doesn't follow the method
+of mainline, as new workers should only be woken when a worker thread is
+truly going to sleep, and not just blocked on a spin_lock().
+
+Check the saved_state too before waking up new workers.
+
+
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/sched/core.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 52e821ac5872..dadf92046f01 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -3544,8 +3544,10 @@ static void __sched notrace __schedule(bool preempt)
+ * If a worker went to sleep, notify and ask workqueue
+ * whether it wants to wake up a task to maintain
+ * concurrency.
++ * Only call wake up if prev isn't blocked on a sleeping
++ * spin lock.
+ */
+- if (prev->flags & PF_WQ_WORKER) {
++ if (prev->flags & PF_WQ_WORKER && !prev->saved_state) {
+ struct task_struct *to_wakeup;
+
+ to_wakeup = wq_worker_sleeping(prev);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0114-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch b/debian/patches-rt/0114-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch
new file mode 100644
index 000000000..16febe92b
--- /dev/null
+++ b/debian/patches-rt/0114-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch
@@ -0,0 +1,162 @@
+From fbd999856a435086bb3dced2d54c5ece42c00fd6 Mon Sep 17 00:00:00 2001
+From: Daniel Bristot de Oliveira <bristot@redhat.com>
+Date: Mon, 26 Jun 2017 17:07:15 +0200
+Subject: [PATCH 114/347] rt: Increase/decrease the nr of migratory tasks when
+ enabling/disabling migration
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+There is a problem in the migrate_disable()/enable() implementation
+regarding the number of migratory tasks in the rt/dl RQs. The problem
+is the following:
+
+When a task is attached to the rt runqueue, it is checked if it either
+can run in more than one CPU, or if it is with migration disable. If
+either check is true, the rt_rq->rt_nr_migratory counter is not
+increased. The counter increases otherwise.
+
+When the task is detached, the same check is done. If either check is
+true, the rt_rq->rt_nr_migratory counter is not decreased. The counter
+decreases otherwise. The same check is done in the dl scheduler.
+
+One important thing is that, migrate disable/enable does not touch this
+counter for tasks attached to the rt rq. So suppose the following chain
+of events.
+
+Assumptions:
+Task A is the only runnable task in A Task B runs on the CPU B
+Task A runs on CFS (non-rt) Task B has RT priority
+Thus, rt_nr_migratory is 0 B is running
+Task A can run on all CPUS.
+
+Timeline:
+ CPU A/TASK A CPU B/TASK B
+A takes the rt mutex X .
+A disables migration .
+ . B tries to take the rt mutex X
+ . As it is held by A {
+ . A inherits the rt priority of B
+ . A is dequeued from CFS RQ of CPU A
+ . A is enqueued in the RT RQ of CPU A
+ . As migration is disabled
+ . rt_nr_migratory in A is not increased
+ .
+A enables migration
+A releases the rt mutex X {
+ A returns to its original priority
+ A ask to be dequeued from RT RQ {
+ As migration is now enabled and it can run on all CPUS {
+ rt_nr_migratory should be decreased
+ As rt_nr_migratory is 0, rt_nr_migratory under flows
+ }
+}
+
+This variable is important because it notifies if there are more than one
+runnable & migratory task in the runqueue. If there are more than one
+tasks, the rt_rq is set as overloaded, and then tries to migrate some
+tasks. This rule is important to keep the scheduler working conserving,
+that is, in a system with M CPUs, the M highest priority tasks should be
+running.
+
+As rt_nr_migratory is unsigned, it will become > 0, notifying that the
+RQ is overloaded, activating pushing mechanism without need.
+
+This patch fixes this problem by decreasing/increasing the
+rt/dl_nr_migratory in the migrate disable/enable operations.
+
+Reported-by: Pei Zhang <pezhang@redhat.com>
+Reported-by: Luiz Capitulino <lcapitulino@redhat.com>
+Signed-off-by: Daniel Bristot de Oliveira <bristot@redhat.com>
+Cc: Luis Claudio R. Goncalves <lgoncalv@redhat.com>
+Cc: Clark Williams <williams@redhat.com>
+Cc: Luiz Capitulino <lcapitulino@redhat.com>
+Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Cc: Steven Rostedt <rostedt@goodmis.org>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: Ingo Molnar <mingo@kernel.org>
+Cc: LKML <linux-kernel@vger.kernel.org>
+Cc: linux-rt-users <linux-rt-users@vger.kernel.org>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/sched/core.c | 49 ++++++++++++++++++++++++++++++++++++++++-----
+ 1 file changed, 44 insertions(+), 5 deletions(-)
+
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index dadf92046f01..ba6f445ac9e8 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -7179,6 +7179,47 @@ const u32 sched_prio_to_wmult[40] = {
+
+ #if defined(CONFIG_PREEMPT_COUNT) && defined(CONFIG_SMP)
+
++static inline void
++update_nr_migratory(struct task_struct *p, long delta)
++{
++ if (unlikely((p->sched_class == &rt_sched_class ||
++ p->sched_class == &dl_sched_class) &&
++ p->nr_cpus_allowed > 1)) {
++ if (p->sched_class == &rt_sched_class)
++ task_rq(p)->rt.rt_nr_migratory += delta;
++ else
++ task_rq(p)->dl.dl_nr_migratory += delta;
++ }
++}
++
++static inline void
++migrate_disable_update_cpus_allowed(struct task_struct *p)
++{
++ struct rq *rq;
++ struct rq_flags rf;
++
++ p->cpus_ptr = cpumask_of(smp_processor_id());
++
++ rq = task_rq_lock(p, &rf);
++ update_nr_migratory(p, -1);
++ p->nr_cpus_allowed = 1;
++ task_rq_unlock(rq, p, &rf);
++}
++
++static inline void
++migrate_enable_update_cpus_allowed(struct task_struct *p)
++{
++ struct rq *rq;
++ struct rq_flags rf;
++
++ p->cpus_ptr = &p->cpus_mask;
++
++ rq = task_rq_lock(p, &rf);
++ p->nr_cpus_allowed = cpumask_weight(&p->cpus_mask);
++ update_nr_migratory(p, 1);
++ task_rq_unlock(rq, p, &rf);
++}
++
+ void migrate_disable(void)
+ {
+ struct task_struct *p = current;
+@@ -7202,10 +7243,9 @@ void migrate_disable(void)
+ }
+
+ preempt_disable();
+- p->migrate_disable = 1;
+
+- p->cpus_ptr = cpumask_of(smp_processor_id());
+- p->nr_cpus_allowed = 1;
++ migrate_disable_update_cpus_allowed(p);
++ p->migrate_disable = 1;
+
+ preempt_enable();
+ }
+@@ -7237,9 +7277,8 @@ void migrate_enable(void)
+
+ preempt_disable();
+
+- p->cpus_ptr = &p->cpus_mask;
+- p->nr_cpus_allowed = cpumask_weight(&p->cpus_mask);
+ p->migrate_disable = 0;
++ migrate_enable_update_cpus_allowed(p);
+
+ if (p->migrate_disable_update) {
+ struct rq *rq;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0115-hotplug-Lightweight-get-online-cpus.patch b/debian/patches-rt/0115-hotplug-Lightweight-get-online-cpus.patch
new file mode 100644
index 000000000..5561bbcf7
--- /dev/null
+++ b/debian/patches-rt/0115-hotplug-Lightweight-get-online-cpus.patch
@@ -0,0 +1,101 @@
+From bf07bc52ad387c3cec5179aac1a8a08bfe0e24f7 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 15 Jun 2011 12:36:06 +0200
+Subject: [PATCH 115/347] hotplug: Lightweight get online cpus
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+get_online_cpus() is a heavy weight function which involves a global
+mutex. migrate_disable() wants a simpler construct which prevents only
+a CPU from going doing while a task is in a migrate disabled section.
+
+Implement a per cpu lockless mechanism, which serializes only in the
+real unplug case on a global mutex. That serialization affects only
+tasks on the cpu which should be brought down.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/cpu.h | 5 +++++
+ kernel/cpu.c | 15 +++++++++++++++
+ kernel/sched/core.c | 4 ++++
+ 3 files changed, 24 insertions(+)
+
+diff --git a/include/linux/cpu.h b/include/linux/cpu.h
+index aab4273810e3..e67645924404 100644
+--- a/include/linux/cpu.h
++++ b/include/linux/cpu.h
+@@ -118,6 +118,8 @@ extern void cpu_hotplug_disable(void);
+ extern void cpu_hotplug_enable(void);
+ void clear_tasks_mm_cpumask(int cpu);
+ int cpu_down(unsigned int cpu);
++extern void pin_current_cpu(void);
++extern void unpin_current_cpu(void);
+
+ #else /* CONFIG_HOTPLUG_CPU */
+
+@@ -129,6 +131,9 @@ static inline int cpus_read_trylock(void) { return true; }
+ static inline void lockdep_assert_cpus_held(void) { }
+ static inline void cpu_hotplug_disable(void) { }
+ static inline void cpu_hotplug_enable(void) { }
++static inline void pin_current_cpu(void) { }
++static inline void unpin_current_cpu(void) { }
++
+ #endif /* !CONFIG_HOTPLUG_CPU */
+
+ /* Wrappers which go away once all code is converted */
+diff --git a/kernel/cpu.c b/kernel/cpu.c
+index d6fd362afc81..89a96cc14b39 100644
+--- a/kernel/cpu.c
++++ b/kernel/cpu.c
+@@ -283,6 +283,21 @@ static int cpu_hotplug_disabled;
+
+ #ifdef CONFIG_HOTPLUG_CPU
+
++/**
++ * pin_current_cpu - Prevent the current cpu from being unplugged
++ */
++void pin_current_cpu(void)
++{
++
++}
++
++/**
++ * unpin_current_cpu - Allow unplug of current cpu
++ */
++void unpin_current_cpu(void)
++{
++}
++
+ DEFINE_STATIC_PERCPU_RWSEM(cpu_hotplug_lock);
+
+ void cpus_read_lock(void)
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index ba6f445ac9e8..ed79f921a84e 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -7243,6 +7243,7 @@ void migrate_disable(void)
+ }
+
+ preempt_disable();
++ pin_current_cpu();
+
+ migrate_disable_update_cpus_allowed(p);
+ p->migrate_disable = 1;
+@@ -7308,12 +7309,15 @@ void migrate_enable(void)
+ arg.task = p;
+ arg.dest_cpu = dest_cpu;
+
++ unpin_current_cpu();
+ preempt_enable();
+ stop_one_cpu(task_cpu(p), migration_cpu_stop, &arg);
+ tlb_migrate_finish(p->mm);
++
+ return;
+ }
+ }
++ unpin_current_cpu();
+ preempt_enable();
+ }
+ EXPORT_SYMBOL(migrate_enable);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0116-trace-Add-migrate-disabled-counter-to-tracing-output.patch b/debian/patches-rt/0116-trace-Add-migrate-disabled-counter-to-tracing-output.patch
new file mode 100644
index 000000000..9f41d515a
--- /dev/null
+++ b/debian/patches-rt/0116-trace-Add-migrate-disabled-counter-to-tracing-output.patch
@@ -0,0 +1,86 @@
+From 54b651a215692cc3d5d07f69dd37f1c3eb1ee353 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Sun, 17 Jul 2011 21:56:42 +0200
+Subject: [PATCH 116/347] trace: Add migrate-disabled counter to tracing output
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/trace_events.h | 2 ++
+ kernel/trace/trace.c | 9 ++++++---
+ kernel/trace/trace_events.c | 2 ++
+ kernel/trace/trace_output.c | 5 +++++
+ 4 files changed, 15 insertions(+), 3 deletions(-)
+
+diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h
+index 0643c083ed86..1cc4d2da954c 100644
+--- a/include/linux/trace_events.h
++++ b/include/linux/trace_events.h
+@@ -62,6 +62,8 @@ struct trace_entry {
+ unsigned char flags;
+ unsigned char preempt_count;
+ int pid;
++ unsigned short migrate_disable;
++ unsigned short padding;
+ };
+
+ #define TRACE_EVENT_TYPE_MAX \
+diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
+index 063b434c89d2..2a8b830d42f1 100644
+--- a/kernel/trace/trace.c
++++ b/kernel/trace/trace.c
+@@ -2165,6 +2165,8 @@ tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags,
+ ((pc & SOFTIRQ_OFFSET) ? TRACE_FLAG_SOFTIRQ : 0) |
+ (tif_need_resched() ? TRACE_FLAG_NEED_RESCHED : 0) |
+ (test_preempt_need_resched() ? TRACE_FLAG_PREEMPT_RESCHED : 0);
++
++ entry->migrate_disable = (tsk) ? __migrate_disabled(tsk) & 0xFF : 0;
+ }
+ EXPORT_SYMBOL_GPL(tracing_generic_entry_update);
+
+@@ -3367,9 +3369,10 @@ static void print_lat_help_header(struct seq_file *m)
+ "# | / _----=> need-resched \n"
+ "# || / _---=> hardirq/softirq \n"
+ "# ||| / _--=> preempt-depth \n"
+- "# |||| / delay \n"
+- "# cmd pid ||||| time | caller \n"
+- "# \\ / ||||| \\ | / \n");
++ "# |||| / _--=> migrate-disable\n"
++ "# ||||| / delay \n"
++ "# cmd pid |||||| time | caller \n"
++ "# \\ / ||||| \\ | / \n");
+ }
+
+ static void print_event_info(struct trace_buffer *buf, struct seq_file *m)
+diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
+index 1ca64a9296d0..fbb04cf1d5bc 100644
+--- a/kernel/trace/trace_events.c
++++ b/kernel/trace/trace_events.c
+@@ -188,6 +188,8 @@ static int trace_define_common_fields(void)
+ __common_field(unsigned char, flags);
+ __common_field(unsigned char, preempt_count);
+ __common_field(int, pid);
++ __common_field(unsigned short, migrate_disable);
++ __common_field(unsigned short, padding);
+
+ return ret;
+ }
+diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c
+index 6e6cc64faa38..46c96744f09d 100644
+--- a/kernel/trace/trace_output.c
++++ b/kernel/trace/trace_output.c
+@@ -494,6 +494,11 @@ int trace_print_lat_fmt(struct trace_seq *s, struct trace_entry *entry)
+ else
+ trace_seq_putc(s, '.');
+
++ if (entry->migrate_disable)
++ trace_seq_printf(s, "%x", entry->migrate_disable);
++ else
++ trace_seq_putc(s, '.');
++
+ return !trace_seq_has_overflowed(s);
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0117-lockdep-Make-it-RT-aware.patch b/debian/patches-rt/0117-lockdep-Make-it-RT-aware.patch
new file mode 100644
index 000000000..445f08b7b
--- /dev/null
+++ b/debian/patches-rt/0117-lockdep-Make-it-RT-aware.patch
@@ -0,0 +1,78 @@
+From 847045ea96b917f8dab8df5053e66280a83c84e4 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Sun, 17 Jul 2011 18:51:23 +0200
+Subject: [PATCH 117/347] lockdep: Make it RT aware
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+teach lockdep that we don't really do softirqs on -RT.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/irqflags.h | 23 +++++++++++++++--------
+ kernel/locking/lockdep.c | 2 ++
+ 2 files changed, 17 insertions(+), 8 deletions(-)
+
+diff --git a/include/linux/irqflags.h b/include/linux/irqflags.h
+index 21619c92c377..b20eeb25e9fa 100644
+--- a/include/linux/irqflags.h
++++ b/include/linux/irqflags.h
+@@ -43,14 +43,6 @@ do { \
+ do { \
+ current->hardirq_context--; \
+ } while (0)
+-# define lockdep_softirq_enter() \
+-do { \
+- current->softirq_context++; \
+-} while (0)
+-# define lockdep_softirq_exit() \
+-do { \
+- current->softirq_context--; \
+-} while (0)
+ #else
+ # define trace_hardirqs_on() do { } while (0)
+ # define trace_hardirqs_off() do { } while (0)
+@@ -64,6 +56,21 @@ do { \
+ # define lockdep_softirq_exit() do { } while (0)
+ #endif
+
++#if defined(CONFIG_TRACE_IRQFLAGS) && !defined(CONFIG_PREEMPT_RT_FULL)
++# define lockdep_softirq_enter() \
++do { \
++ current->softirq_context++; \
++} while (0)
++# define lockdep_softirq_exit() \
++do { \
++ current->softirq_context--; \
++} while (0)
++
++#else
++# define lockdep_softirq_enter() do { } while (0)
++# define lockdep_softirq_exit() do { } while (0)
++#endif
++
+ #if defined(CONFIG_IRQSOFF_TRACER) || \
+ defined(CONFIG_PREEMPT_TRACER)
+ extern void stop_critical_timings(void);
+diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
+index 4dc79f57af82..4dd83428b56d 100644
+--- a/kernel/locking/lockdep.c
++++ b/kernel/locking/lockdep.c
+@@ -3831,6 +3831,7 @@ static void check_flags(unsigned long flags)
+ }
+ }
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ /*
+ * We dont accurately track softirq state in e.g.
+ * hardirq contexts (such as on 4KSTACKS), so only
+@@ -3845,6 +3846,7 @@ static void check_flags(unsigned long flags)
+ DEBUG_LOCKS_WARN_ON(!current->softirqs_enabled);
+ }
+ }
++#endif
+
+ if (!debug_locks)
+ print_irqtrace_events(current);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0118-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch b/debian/patches-rt/0118-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch
new file mode 100644
index 000000000..2885b4101
--- /dev/null
+++ b/debian/patches-rt/0118-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch
@@ -0,0 +1,303 @@
+From ff4b7bd98df1b1100237e3ac2f11c687a486c18b Mon Sep 17 00:00:00 2001
+From: Ingo Molnar <mingo@elte.hu>
+Date: Tue, 29 Nov 2011 20:18:22 -0500
+Subject: [PATCH 118/347] tasklet: Prevent tasklets from going into infinite
+ spin in RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+When CONFIG_PREEMPT_RT_FULL is enabled, tasklets run as threads,
+and spinlocks turn are mutexes. But this can cause issues with
+tasks disabling tasklets. A tasklet runs under ksoftirqd, and
+if a tasklets are disabled with tasklet_disable(), the tasklet
+count is increased. When a tasklet runs, it checks this counter
+and if it is set, it adds itself back on the softirq queue and
+returns.
+
+The problem arises in RT because ksoftirq will see that a softirq
+is ready to run (the tasklet softirq just re-armed itself), and will
+not sleep, but instead run the softirqs again. The tasklet softirq
+will still see that the count is non-zero and will not execute
+the tasklet and requeue itself on the softirq again, which will
+cause ksoftirqd to run it again and again and again.
+
+It gets worse because ksoftirqd runs as a real-time thread.
+If it preempted the task that disabled tasklets, and that task
+has migration disabled, or can't run for other reasons, the tasklet
+softirq will never run because the count will never be zero, and
+ksoftirqd will go into an infinite loop. As an RT task, it this
+becomes a big problem.
+
+This is a hack solution to have tasklet_disable stop tasklets, and
+when a tasklet runs, instead of requeueing the tasklet softirqd
+it delays it. When tasklet_enable() is called, and tasklets are
+waiting, then the tasklet_enable() will kick the tasklets to continue.
+This prevents the lock up from ksoftirq going into an infinite loop.
+
+[ rostedt@goodmis.org: ported to 3.0-rt ]
+
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/interrupt.h | 33 +++++-----
+ kernel/softirq.c | 126 ++++++++++++++++++++++++++++++++------
+ 2 files changed, 125 insertions(+), 34 deletions(-)
+
+diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
+index 315f852b4981..35fa335c475b 100644
+--- a/include/linux/interrupt.h
++++ b/include/linux/interrupt.h
+@@ -536,8 +536,9 @@ static inline struct task_struct *this_cpu_ksoftirqd(void)
+ to be executed on some cpu at least once after this.
+ * If the tasklet is already scheduled, but its execution is still not
+ started, it will be executed only once.
+- * If this tasklet is already running on another CPU (or schedule is called
+- from tasklet itself), it is rescheduled for later.
++ * If this tasklet is already running on another CPU, it is rescheduled
++ for later.
++ * Schedule must not be called from the tasklet itself (a lockup occurs)
+ * Tasklet is strictly serialized wrt itself, but not
+ wrt another tasklets. If client needs some intertask synchronization,
+ he makes it with spinlocks.
+@@ -562,27 +563,36 @@ struct tasklet_struct name = { NULL, 0, ATOMIC_INIT(1), func, data }
+ enum
+ {
+ TASKLET_STATE_SCHED, /* Tasklet is scheduled for execution */
+- TASKLET_STATE_RUN /* Tasklet is running (SMP only) */
++ TASKLET_STATE_RUN, /* Tasklet is running (SMP only) */
++ TASKLET_STATE_PENDING /* Tasklet is pending */
+ };
+
+-#ifdef CONFIG_SMP
++#define TASKLET_STATEF_SCHED (1 << TASKLET_STATE_SCHED)
++#define TASKLET_STATEF_RUN (1 << TASKLET_STATE_RUN)
++#define TASKLET_STATEF_PENDING (1 << TASKLET_STATE_PENDING)
++
++#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT_FULL)
+ static inline int tasklet_trylock(struct tasklet_struct *t)
+ {
+ return !test_and_set_bit(TASKLET_STATE_RUN, &(t)->state);
+ }
+
++static inline int tasklet_tryunlock(struct tasklet_struct *t)
++{
++ return cmpxchg(&t->state, TASKLET_STATEF_RUN, 0) == TASKLET_STATEF_RUN;
++}
++
+ static inline void tasklet_unlock(struct tasklet_struct *t)
+ {
+ smp_mb__before_atomic();
+ clear_bit(TASKLET_STATE_RUN, &(t)->state);
+ }
+
+-static inline void tasklet_unlock_wait(struct tasklet_struct *t)
+-{
+- while (test_bit(TASKLET_STATE_RUN, &(t)->state)) { barrier(); }
+-}
++extern void tasklet_unlock_wait(struct tasklet_struct *t);
++
+ #else
+ #define tasklet_trylock(t) 1
++#define tasklet_tryunlock(t) 1
+ #define tasklet_unlock_wait(t) do { } while (0)
+ #define tasklet_unlock(t) do { } while (0)
+ #endif
+@@ -616,12 +626,7 @@ static inline void tasklet_disable(struct tasklet_struct *t)
+ smp_mb();
+ }
+
+-static inline void tasklet_enable(struct tasklet_struct *t)
+-{
+- smp_mb__before_atomic();
+- atomic_dec(&t->count);
+-}
+-
++extern void tasklet_enable(struct tasklet_struct *t);
+ extern void tasklet_kill(struct tasklet_struct *t);
+ extern void tasklet_kill_immediate(struct tasklet_struct *t, unsigned int cpu);
+ extern void tasklet_init(struct tasklet_struct *t,
+diff --git a/kernel/softirq.c b/kernel/softirq.c
+index 6f584861d329..1d3a482246cc 100644
+--- a/kernel/softirq.c
++++ b/kernel/softirq.c
+@@ -21,6 +21,7 @@
+ #include <linux/freezer.h>
+ #include <linux/kthread.h>
+ #include <linux/rcupdate.h>
++#include <linux/delay.h>
+ #include <linux/ftrace.h>
+ #include <linux/smp.h>
+ #include <linux/smpboot.h>
+@@ -475,11 +476,38 @@ static void __tasklet_schedule_common(struct tasklet_struct *t,
+ unsigned long flags;
+
+ local_irq_save(flags);
++ if (!tasklet_trylock(t)) {
++ local_irq_restore(flags);
++ return;
++ }
++
+ head = this_cpu_ptr(headp);
+- t->next = NULL;
+- *head->tail = t;
+- head->tail = &(t->next);
+- raise_softirq_irqoff(softirq_nr);
++again:
++ /* We may have been preempted before tasklet_trylock
++ * and __tasklet_action may have already run.
++ * So double check the sched bit while the takslet
++ * is locked before adding it to the list.
++ */
++ if (test_bit(TASKLET_STATE_SCHED, &t->state)) {
++ t->next = NULL;
++ *head->tail = t;
++ head->tail = &(t->next);
++ raise_softirq_irqoff(softirq_nr);
++ tasklet_unlock(t);
++ } else {
++ /* This is subtle. If we hit the corner case above
++ * It is possible that we get preempted right here,
++ * and another task has successfully called
++ * tasklet_schedule(), then this function, and
++ * failed on the trylock. Thus we must be sure
++ * before releasing the tasklet lock, that the
++ * SCHED_BIT is clear. Otherwise the tasklet
++ * may get its SCHED_BIT set, but not added to the
++ * list
++ */
++ if (!tasklet_tryunlock(t))
++ goto again;
++ }
+ local_irq_restore(flags);
+ }
+
+@@ -497,11 +525,21 @@ void __tasklet_hi_schedule(struct tasklet_struct *t)
+ }
+ EXPORT_SYMBOL(__tasklet_hi_schedule);
+
++void tasklet_enable(struct tasklet_struct *t)
++{
++ if (!atomic_dec_and_test(&t->count))
++ return;
++ if (test_and_clear_bit(TASKLET_STATE_PENDING, &t->state))
++ tasklet_schedule(t);
++}
++EXPORT_SYMBOL(tasklet_enable);
++
+ static void tasklet_action_common(struct softirq_action *a,
+ struct tasklet_head *tl_head,
+ unsigned int softirq_nr)
+ {
+ struct tasklet_struct *list;
++ int loops = 1000000;
+
+ local_irq_disable();
+ list = tl_head->head;
+@@ -513,25 +551,56 @@ static void tasklet_action_common(struct softirq_action *a,
+ struct tasklet_struct *t = list;
+
+ list = list->next;
++ /*
++ * Should always succeed - after a tasklist got on the
++ * list (after getting the SCHED bit set from 0 to 1),
++ * nothing but the tasklet softirq it got queued to can
++ * lock it:
++ */
++ if (!tasklet_trylock(t)) {
++ WARN_ON(1);
++ continue;
++ }
+
+- if (tasklet_trylock(t)) {
+- if (!atomic_read(&t->count)) {
+- if (!test_and_clear_bit(TASKLET_STATE_SCHED,
+- &t->state))
+- BUG();
+- t->func(t->data);
++ t->next = NULL;
++
++ if (unlikely(atomic_read(&t->count))) {
++out_disabled:
++ /* implicit unlock: */
++ wmb();
++ t->state = TASKLET_STATEF_PENDING;
++ continue;
++ }
++ /*
++ * After this point on the tasklet might be rescheduled
++ * on another CPU, but it can only be added to another
++ * CPU's tasklet list if we unlock the tasklet (which we
++ * dont do yet).
++ */
++ if (!test_and_clear_bit(TASKLET_STATE_SCHED, &t->state))
++ WARN_ON(1);
++again:
++ t->func(t->data);
++
++ while (!tasklet_tryunlock(t)) {
++ /*
++ * If it got disabled meanwhile, bail out:
++ */
++ if (atomic_read(&t->count))
++ goto out_disabled;
++ /*
++ * If it got scheduled meanwhile, re-execute
++ * the tasklet function:
++ */
++ if (test_and_clear_bit(TASKLET_STATE_SCHED, &t->state))
++ goto again;
++ if (!--loops) {
++ printk("hm, tasklet state: %08lx\n", t->state);
++ WARN_ON(1);
+ tasklet_unlock(t);
+- continue;
++ break;
+ }
+- tasklet_unlock(t);
+ }
+-
+- local_irq_disable();
+- t->next = NULL;
+- *tl_head->tail = t;
+- tl_head->tail = &t->next;
+- __raise_softirq_irqoff(softirq_nr);
+- local_irq_enable();
+ }
+ }
+
+@@ -563,7 +632,7 @@ void tasklet_kill(struct tasklet_struct *t)
+
+ while (test_and_set_bit(TASKLET_STATE_SCHED, &t->state)) {
+ do {
+- yield();
++ msleep(1);
+ } while (test_bit(TASKLET_STATE_SCHED, &t->state));
+ }
+ tasklet_unlock_wait(t);
+@@ -637,6 +706,23 @@ void __init softirq_init(void)
+ open_softirq(HI_SOFTIRQ, tasklet_hi_action);
+ }
+
++#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT_FULL)
++void tasklet_unlock_wait(struct tasklet_struct *t)
++{
++ while (test_bit(TASKLET_STATE_RUN, &(t)->state)) {
++ /*
++ * Hack for now to avoid this busy-loop:
++ */
++#ifdef CONFIG_PREEMPT_RT_FULL
++ msleep(1);
++#else
++ barrier();
++#endif
++ }
++}
++EXPORT_SYMBOL(tasklet_unlock_wait);
++#endif
++
+ static int ksoftirqd_should_run(unsigned int cpu)
+ {
+ return local_softirq_pending();
+--
+2.36.1
+
diff --git a/debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch b/debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch
new file mode 100644
index 000000000..fbf761018
--- /dev/null
+++ b/debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch
@@ -0,0 +1,180 @@
+From 45feb7680d31346f7a6da9926cdb23a37b640f47 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Sun, 13 Nov 2011 17:17:09 +0100
+Subject: [PATCH 119/347] softirq: Check preemption after reenabling interrupts
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+raise_softirq_irqoff() disables interrupts and wakes the softirq
+daemon, but after reenabling interrupts there is no preemption check,
+so the execution of the softirq thread might be delayed arbitrarily.
+
+In principle we could add that check to local_irq_enable/restore, but
+that's overkill as the rasie_softirq_irqoff() sections are the only
+ones which show this behaviour.
+
+Reported-by: Carsten Emde <cbe@osadl.org>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ block/blk-softirq.c | 3 +++
+ include/linux/preempt.h | 3 +++
+ lib/irq_poll.c | 5 +++++
+ net/core/dev.c | 7 +++++++
+ 4 files changed, 18 insertions(+)
+
+diff --git a/block/blk-softirq.c b/block/blk-softirq.c
+index 15c1f5e12eb8..1628277885a1 100644
+--- a/block/blk-softirq.c
++++ b/block/blk-softirq.c
+@@ -53,6 +53,7 @@ static void trigger_softirq(void *data)
+ raise_softirq_irqoff(BLOCK_SOFTIRQ);
+
+ local_irq_restore(flags);
++ preempt_check_resched_rt();
+ }
+
+ /*
+@@ -91,6 +92,7 @@ static int blk_softirq_cpu_dead(unsigned int cpu)
+ this_cpu_ptr(&blk_cpu_done));
+ raise_softirq_irqoff(BLOCK_SOFTIRQ);
+ local_irq_enable();
++ preempt_check_resched_rt();
+
+ return 0;
+ }
+@@ -143,6 +145,7 @@ void __blk_complete_request(struct request *req)
+ goto do_local;
+
+ local_irq_restore(flags);
++ preempt_check_resched_rt();
+ }
+ EXPORT_SYMBOL(__blk_complete_request);
+
+diff --git a/include/linux/preempt.h b/include/linux/preempt.h
+index b7fe717eb1f4..9984f2b75b73 100644
+--- a/include/linux/preempt.h
++++ b/include/linux/preempt.h
+@@ -187,8 +187,10 @@ do { \
+
+ #ifdef CONFIG_PREEMPT_RT_BASE
+ # define preempt_enable_no_resched() sched_preempt_enable_no_resched()
++# define preempt_check_resched_rt() preempt_check_resched()
+ #else
+ # define preempt_enable_no_resched() preempt_enable()
++# define preempt_check_resched_rt() barrier();
+ #endif
+
+ #define preemptible() (preempt_count() == 0 && !irqs_disabled())
+@@ -275,6 +277,7 @@ do { \
+ #define preempt_disable_notrace() barrier()
+ #define preempt_enable_no_resched_notrace() barrier()
+ #define preempt_enable_notrace() barrier()
++#define preempt_check_resched_rt() barrier()
+ #define preemptible() 0
+
+ #define migrate_disable() barrier()
+diff --git a/lib/irq_poll.c b/lib/irq_poll.c
+index 86a709954f5a..9c069ef83d6d 100644
+--- a/lib/irq_poll.c
++++ b/lib/irq_poll.c
+@@ -37,6 +37,7 @@ void irq_poll_sched(struct irq_poll *iop)
+ list_add_tail(&iop->list, this_cpu_ptr(&blk_cpu_iopoll));
+ __raise_softirq_irqoff(IRQ_POLL_SOFTIRQ);
+ local_irq_restore(flags);
++ preempt_check_resched_rt();
+ }
+ EXPORT_SYMBOL(irq_poll_sched);
+
+@@ -72,6 +73,7 @@ void irq_poll_complete(struct irq_poll *iop)
+ local_irq_save(flags);
+ __irq_poll_complete(iop);
+ local_irq_restore(flags);
++ preempt_check_resched_rt();
+ }
+ EXPORT_SYMBOL(irq_poll_complete);
+
+@@ -96,6 +98,7 @@ static void __latent_entropy irq_poll_softirq(struct softirq_action *h)
+ }
+
+ local_irq_enable();
++ preempt_check_resched_rt();
+
+ /* Even though interrupts have been re-enabled, this
+ * access is safe because interrupts can only add new
+@@ -133,6 +136,7 @@ static void __latent_entropy irq_poll_softirq(struct softirq_action *h)
+ __raise_softirq_irqoff(IRQ_POLL_SOFTIRQ);
+
+ local_irq_enable();
++ preempt_check_resched_rt();
+ }
+
+ /**
+@@ -196,6 +200,7 @@ static int irq_poll_cpu_dead(unsigned int cpu)
+ this_cpu_ptr(&blk_cpu_iopoll));
+ __raise_softirq_irqoff(IRQ_POLL_SOFTIRQ);
+ local_irq_enable();
++ preempt_check_resched_rt();
+
+ return 0;
+ }
+diff --git a/net/core/dev.c b/net/core/dev.c
+index 42f6ff8b9703..b8e3ae050bcc 100644
+--- a/net/core/dev.c
++++ b/net/core/dev.c
+@@ -2725,6 +2725,7 @@ static void __netif_reschedule(struct Qdisc *q)
+ sd->output_queue_tailp = &q->next_sched;
+ raise_softirq_irqoff(NET_TX_SOFTIRQ);
+ local_irq_restore(flags);
++ preempt_check_resched_rt();
+ }
+
+ void __netif_schedule(struct Qdisc *q)
+@@ -2787,6 +2788,7 @@ void __dev_kfree_skb_irq(struct sk_buff *skb, enum skb_free_reason reason)
+ __this_cpu_write(softnet_data.completion_queue, skb);
+ raise_softirq_irqoff(NET_TX_SOFTIRQ);
+ local_irq_restore(flags);
++ preempt_check_resched_rt();
+ }
+ EXPORT_SYMBOL(__dev_kfree_skb_irq);
+
+@@ -4269,6 +4271,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu,
+ rps_unlock(sd);
+
+ local_irq_restore(flags);
++ preempt_check_resched_rt();
+
+ atomic_long_inc(&skb->dev->rx_dropped);
+ kfree_skb(skb);
+@@ -5820,12 +5823,14 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd)
+ sd->rps_ipi_list = NULL;
+
+ local_irq_enable();
++ preempt_check_resched_rt();
+
+ /* Send pending IPI's to kick RPS processing on remote cpus. */
+ net_rps_send_ipi(remsd);
+ } else
+ #endif
+ local_irq_enable();
++ preempt_check_resched_rt();
+ }
+
+ static bool sd_has_rps_ipi_waiting(struct softnet_data *sd)
+@@ -5903,6 +5908,7 @@ void __napi_schedule(struct napi_struct *n)
+ local_irq_save(flags);
+ ____napi_schedule(this_cpu_ptr(&softnet_data), n);
+ local_irq_restore(flags);
++ preempt_check_resched_rt();
+ }
+ EXPORT_SYMBOL(__napi_schedule);
+
+@@ -9527,6 +9533,7 @@ static int dev_cpu_dead(unsigned int oldcpu)
+
+ raise_softirq_irqoff(NET_TX_SOFTIRQ);
+ local_irq_enable();
++ preempt_check_resched_rt();
+
+ #ifdef CONFIG_RPS
+ remsd = oldsd->rps_ipi_list;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0120-softirq-Disable-softirq-stacks-for-RT.patch b/debian/patches-rt/0120-softirq-Disable-softirq-stacks-for-RT.patch
new file mode 100644
index 000000000..3c4ba7e3e
--- /dev/null
+++ b/debian/patches-rt/0120-softirq-Disable-softirq-stacks-for-RT.patch
@@ -0,0 +1,177 @@
+From 7e198889f2947f9bfeecdda6955492f55399a621 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Mon, 18 Jul 2011 13:59:17 +0200
+Subject: [PATCH 120/347] softirq: Disable softirq stacks for RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Disable extra stacks for softirqs. We want to preempt softirqs and
+having them on special IRQ-stack does not make this easier.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ arch/powerpc/kernel/irq.c | 2 ++
+ arch/powerpc/kernel/misc_32.S | 2 ++
+ arch/powerpc/kernel/misc_64.S | 2 ++
+ arch/sh/kernel/irq.c | 2 ++
+ arch/sparc/kernel/irq_64.c | 2 ++
+ arch/x86/entry/entry_64.S | 2 ++
+ arch/x86/kernel/irq_32.c | 2 ++
+ include/linux/interrupt.h | 2 +-
+ 8 files changed, 15 insertions(+), 1 deletion(-)
+
+diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
+index d37704ebccdb..b45a9849b687 100644
+--- a/arch/powerpc/kernel/irq.c
++++ b/arch/powerpc/kernel/irq.c
+@@ -766,6 +766,7 @@ void irq_ctx_init(void)
+ }
+ }
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ void do_softirq_own_stack(void)
+ {
+ struct thread_info *curtp, *irqtp;
+@@ -783,6 +784,7 @@ void do_softirq_own_stack(void)
+ if (irqtp->flags)
+ set_bits(irqtp->flags, &curtp->flags);
+ }
++#endif
+
+ 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 695b24a2d954..032ada21b7bd 100644
+--- a/arch/powerpc/kernel/misc_32.S
++++ b/arch/powerpc/kernel/misc_32.S
+@@ -42,6 +42,7 @@
+ * We store the saved ksp_limit in the unused part
+ * of the STACK_FRAME_OVERHEAD
+ */
++#ifndef CONFIG_PREEMPT_RT_FULL
+ _GLOBAL(call_do_softirq)
+ mflr r0
+ stw r0,4(r1)
+@@ -58,6 +59,7 @@ _GLOBAL(call_do_softirq)
+ stw r10,THREAD+KSP_LIMIT(r2)
+ mtlr r0
+ blr
++#endif
+
+ /*
+ * void call_do_irq(struct pt_regs *regs, struct thread_info *irqtp);
+diff --git a/arch/powerpc/kernel/misc_64.S b/arch/powerpc/kernel/misc_64.S
+index facc02964ab3..8b1774186c68 100644
+--- a/arch/powerpc/kernel/misc_64.S
++++ b/arch/powerpc/kernel/misc_64.S
+@@ -32,6 +32,7 @@
+
+ .text
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ _GLOBAL(call_do_softirq)
+ mflr r0
+ std r0,16(r1)
+@@ -42,6 +43,7 @@ _GLOBAL(call_do_softirq)
+ ld r0,16(r1)
+ mtlr r0
+ blr
++#endif
+
+ _GLOBAL(call_do_irq)
+ mflr r0
+diff --git a/arch/sh/kernel/irq.c b/arch/sh/kernel/irq.c
+index 5717c7cbdd97..66dd399b2007 100644
+--- a/arch/sh/kernel/irq.c
++++ b/arch/sh/kernel/irq.c
+@@ -148,6 +148,7 @@ void irq_ctx_exit(int cpu)
+ hardirq_ctx[cpu] = NULL;
+ }
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ void do_softirq_own_stack(void)
+ {
+ struct thread_info *curctx;
+@@ -175,6 +176,7 @@ void do_softirq_own_stack(void)
+ "r5", "r6", "r7", "r8", "r9", "r15", "t", "pr"
+ );
+ }
++#endif
+ #else
+ 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 713670e6d13d..5dfc715343f9 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)
+ set_irq_regs(old_regs);
+ }
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ void do_softirq_own_stack(void)
+ {
+ void *orig_sp, *sp = softirq_stack[smp_processor_id()];
+@@ -868,6 +869,7 @@ void do_softirq_own_stack(void)
+ __asm__ __volatile__("mov %0, %%sp"
+ : : "r" (orig_sp));
+ }
++#endif
+
+ #ifdef CONFIG_HOTPLUG_CPU
+ void fixup_irqs(void)
+diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
+index dfe26f3cfffc..f53d995b1370 100644
+--- a/arch/x86/entry/entry_64.S
++++ b/arch/x86/entry/entry_64.S
+@@ -1084,6 +1084,7 @@ EXPORT_SYMBOL(native_load_gs_index)
+ jmp 2b
+ .previous
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ /* Call softirq on interrupt stack. Interrupts are off. */
+ ENTRY(do_softirq_own_stack)
+ pushq %rbp
+@@ -1094,6 +1095,7 @@ ENTRY(do_softirq_own_stack)
+ leaveq
+ ret
+ ENDPROC(do_softirq_own_stack)
++#endif
+
+ #ifdef CONFIG_XEN
+ idtentry hypervisor_callback xen_do_hypervisor_callback has_error_code=0
+diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c
+index 95600a99ae93..9192d76085ba 100644
+--- a/arch/x86/kernel/irq_32.c
++++ b/arch/x86/kernel/irq_32.c
+@@ -130,6 +130,7 @@ void irq_ctx_init(int cpu)
+ cpu, per_cpu(hardirq_stack, cpu), per_cpu(softirq_stack, cpu));
+ }
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ void do_softirq_own_stack(void)
+ {
+ struct irq_stack *irqstk;
+@@ -146,6 +147,7 @@ void do_softirq_own_stack(void)
+
+ call_on_stack(__do_softirq, isp);
+ }
++#endif
+
+ bool handle_irq(struct irq_desc *desc, struct pt_regs *regs)
+ {
+diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
+index 35fa335c475b..eec4bec454b5 100644
+--- a/include/linux/interrupt.h
++++ b/include/linux/interrupt.h
+@@ -500,7 +500,7 @@ struct softirq_action
+ asmlinkage void do_softirq(void);
+ asmlinkage void __do_softirq(void);
+
+-#ifdef __ARCH_HAS_DO_SOFTIRQ
++#if defined(__ARCH_HAS_DO_SOFTIRQ) && !defined(CONFIG_PREEMPT_RT_FULL)
+ void do_softirq_own_stack(void);
+ #else
+ static inline void do_softirq_own_stack(void)
+--
+2.36.1
+
diff --git a/debian/patches-rt/0121-softirq-Split-softirq-locks.patch b/debian/patches-rt/0121-softirq-Split-softirq-locks.patch
new file mode 100644
index 000000000..e3aeafa1d
--- /dev/null
+++ b/debian/patches-rt/0121-softirq-Split-softirq-locks.patch
@@ -0,0 +1,832 @@
+From 4f304d0db14e45c0b23ed9ed8ee6749255dd180a Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Thu, 4 Oct 2012 14:20:47 +0100
+Subject: [PATCH 121/347] softirq: Split softirq locks
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The 3.x RT series removed the split softirq implementation in favour
+of pushing softirq processing into the context of the thread which
+raised it. Though this prevents us from handling the various softirqs
+at different priorities. Now instead of reintroducing the split
+softirq threads we split the locks which serialize the softirq
+processing.
+
+If a softirq is raised in context of a thread, then the softirq is
+noted on a per thread field, if the thread is in a bh disabled
+region. If the softirq is raised from hard interrupt context, then the
+bit is set in the flag field of ksoftirqd and ksoftirqd is invoked.
+When a thread leaves a bh disabled region, then it tries to execute
+the softirqs which have been raised in its own context. It acquires
+the per softirq / per cpu lock for the softirq and then checks,
+whether the softirq is still pending in the per cpu
+local_softirq_pending() field. If yes, it runs the softirq. If no,
+then some other task executed it already. This allows for zero config
+softirq elevation in the context of user space tasks or interrupt
+threads.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/bottom_half.h | 34 +++
+ include/linux/interrupt.h | 15 +-
+ include/linux/preempt.h | 15 +-
+ include/linux/sched.h | 3 +
+ init/main.c | 1 +
+ kernel/softirq.c | 491 ++++++++++++++++++++++++++++++------
+ kernel/time/tick-sched.c | 9 +-
+ 7 files changed, 478 insertions(+), 90 deletions(-)
+
+diff --git a/include/linux/bottom_half.h b/include/linux/bottom_half.h
+index a19519f4241d..40dd5ef9c154 100644
+--- a/include/linux/bottom_half.h
++++ b/include/linux/bottom_half.h
+@@ -4,6 +4,39 @@
+
+ #include <linux/preempt.h>
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++
++extern void __local_bh_disable(void);
++extern void _local_bh_enable(void);
++extern void __local_bh_enable(void);
++
++static inline void local_bh_disable(void)
++{
++ __local_bh_disable();
++}
++
++static inline void __local_bh_disable_ip(unsigned long ip, unsigned int cnt)
++{
++ __local_bh_disable();
++}
++
++static inline void local_bh_enable(void)
++{
++ __local_bh_enable();
++}
++
++static inline void __local_bh_enable_ip(unsigned long ip, unsigned int cnt)
++{
++ __local_bh_enable();
++}
++
++static inline void local_bh_enable_ip(unsigned long ip)
++{
++ __local_bh_enable();
++}
++
++#else
++
+ #ifdef CONFIG_TRACE_IRQFLAGS
+ extern void __local_bh_disable_ip(unsigned long ip, unsigned int cnt);
+ #else
+@@ -31,5 +64,6 @@ static inline void local_bh_enable(void)
+ {
+ __local_bh_enable_ip(_THIS_IP_, SOFTIRQ_DISABLE_OFFSET);
+ }
++#endif
+
+ #endif /* _LINUX_BH_H */
+diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
+index eec4bec454b5..cf9860d49d57 100644
+--- a/include/linux/interrupt.h
++++ b/include/linux/interrupt.h
+@@ -497,10 +497,11 @@ struct softirq_action
+ void (*action)(struct softirq_action *);
+ };
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ asmlinkage void do_softirq(void);
+ asmlinkage void __do_softirq(void);
+-
+-#if defined(__ARCH_HAS_DO_SOFTIRQ) && !defined(CONFIG_PREEMPT_RT_FULL)
++static inline void thread_do_softirq(void) { do_softirq(); }
++#ifdef __ARCH_HAS_DO_SOFTIRQ
+ void do_softirq_own_stack(void);
+ #else
+ static inline void do_softirq_own_stack(void)
+@@ -508,6 +509,9 @@ static inline void do_softirq_own_stack(void)
+ __do_softirq();
+ }
+ #endif
++#else
++extern void thread_do_softirq(void);
++#endif
+
+ extern void open_softirq(int nr, void (*action)(struct softirq_action *));
+ extern void softirq_init(void);
+@@ -515,6 +519,7 @@ extern void __raise_softirq_irqoff(unsigned int nr);
+
+ extern void raise_softirq_irqoff(unsigned int nr);
+ extern void raise_softirq(unsigned int nr);
++extern void softirq_check_pending_idle(void);
+
+ DECLARE_PER_CPU(struct task_struct *, ksoftirqd);
+
+@@ -632,6 +637,12 @@ extern void tasklet_kill_immediate(struct tasklet_struct *t, unsigned int cpu);
+ extern void tasklet_init(struct tasklet_struct *t,
+ void (*func)(unsigned long), unsigned long data);
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++extern void softirq_early_init(void);
++#else
++static inline void softirq_early_init(void) { }
++#endif
++
+ struct tasklet_hrtimer {
+ struct hrtimer timer;
+ struct tasklet_struct tasklet;
+diff --git a/include/linux/preempt.h b/include/linux/preempt.h
+index 9984f2b75b73..27c3176d88d2 100644
+--- a/include/linux/preempt.h
++++ b/include/linux/preempt.h
+@@ -51,7 +51,11 @@
+ #define HARDIRQ_OFFSET (1UL << HARDIRQ_SHIFT)
+ #define NMI_OFFSET (1UL << NMI_SHIFT)
+
+-#define SOFTIRQ_DISABLE_OFFSET (2 * SOFTIRQ_OFFSET)
++#ifndef CONFIG_PREEMPT_RT_FULL
++# define SOFTIRQ_DISABLE_OFFSET (2 * SOFTIRQ_OFFSET)
++#else
++# define SOFTIRQ_DISABLE_OFFSET (0)
++#endif
+
+ /* We use the MSB mostly because its available */
+ #define PREEMPT_NEED_RESCHED 0x80000000
+@@ -81,9 +85,15 @@
+ #include <asm/preempt.h>
+
+ #define hardirq_count() (preempt_count() & HARDIRQ_MASK)
+-#define softirq_count() (preempt_count() & SOFTIRQ_MASK)
+ #define irq_count() (preempt_count() & (HARDIRQ_MASK | SOFTIRQ_MASK \
+ | NMI_MASK))
++#ifndef CONFIG_PREEMPT_RT_FULL
++# define softirq_count() (preempt_count() & SOFTIRQ_MASK)
++# define in_serving_softirq() (softirq_count() & SOFTIRQ_OFFSET)
++#else
++# define softirq_count() ((unsigned long)current->softirq_nestcnt)
++extern int in_serving_softirq(void);
++#endif
+
+ /*
+ * Are we doing bottom half or hardware interrupt processing?
+@@ -101,7 +111,6 @@
+ #define in_irq() (hardirq_count())
+ #define in_softirq() (softirq_count())
+ #define in_interrupt() (irq_count())
+-#define in_serving_softirq() (softirq_count() & SOFTIRQ_OFFSET)
+ #define in_nmi() (preempt_count() & NMI_MASK)
+ #define in_task() (!(preempt_count() & \
+ (NMI_MASK | HARDIRQ_MASK | SOFTIRQ_OFFSET)))
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index 1b2884889dd0..63a97f24d138 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -1200,6 +1200,8 @@ struct task_struct {
+ #endif
+ #ifdef CONFIG_PREEMPT_RT_BASE
+ struct rcu_head put_rcu;
++ int softirq_nestcnt;
++ unsigned int softirqs_raised;
+ #endif
+ #ifdef CONFIG_DEBUG_ATOMIC_SLEEP
+ unsigned long task_state_change;
+@@ -1397,6 +1399,7 @@ extern struct pid *cad_pid;
+ /*
+ * Per process flags
+ */
++#define PF_IN_SOFTIRQ 0x00000001 /* Task is serving softirq */
+ #define PF_IDLE 0x00000002 /* I am an IDLE thread */
+ #define PF_EXITING 0x00000004 /* Getting shut down */
+ #define PF_VCPU 0x00000010 /* I'm a virtual CPU */
+diff --git a/init/main.c b/init/main.c
+index 272ec131211c..0d5763c5da28 100644
+--- a/init/main.c
++++ b/init/main.c
+@@ -560,6 +560,7 @@ asmlinkage __visible void __init start_kernel(void)
+ setup_command_line(command_line);
+ setup_nr_cpu_ids();
+ setup_per_cpu_areas();
++ softirq_early_init();
+ smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
+ boot_cpu_hotplug_init();
+
+diff --git a/kernel/softirq.c b/kernel/softirq.c
+index 1d3a482246cc..fd89f8ab85ac 100644
+--- a/kernel/softirq.c
++++ b/kernel/softirq.c
+@@ -26,7 +26,9 @@
+ #include <linux/smp.h>
+ #include <linux/smpboot.h>
+ #include <linux/tick.h>
++#include <linux/locallock.h>
+ #include <linux/irq.h>
++#include <linux/sched/types.h>
+
+ #define CREATE_TRACE_POINTS
+ #include <trace/events/irq.h>
+@@ -63,6 +65,98 @@ const char * const softirq_to_name[NR_SOFTIRQS] = {
+ "TASKLET", "SCHED", "HRTIMER", "RCU"
+ };
+
++#ifdef CONFIG_NO_HZ_COMMON
++# ifdef CONFIG_PREEMPT_RT_FULL
++
++struct softirq_runner {
++ struct task_struct *runner[NR_SOFTIRQS];
++};
++
++static DEFINE_PER_CPU(struct softirq_runner, softirq_runners);
++
++static inline void softirq_set_runner(unsigned int sirq)
++{
++ struct softirq_runner *sr = this_cpu_ptr(&softirq_runners);
++
++ sr->runner[sirq] = current;
++}
++
++static inline void softirq_clr_runner(unsigned int sirq)
++{
++ struct softirq_runner *sr = this_cpu_ptr(&softirq_runners);
++
++ sr->runner[sirq] = NULL;
++}
++
++/*
++ * On preempt-rt a softirq running context might be blocked on a
++ * lock. There might be no other runnable task on this CPU because the
++ * lock owner runs on some other CPU. So we have to go into idle with
++ * the pending bit set. Therefor we need to check this otherwise we
++ * warn about false positives which confuses users and defeats the
++ * whole purpose of this test.
++ *
++ * This code is called with interrupts disabled.
++ */
++void softirq_check_pending_idle(void)
++{
++ static int rate_limit;
++ struct softirq_runner *sr = this_cpu_ptr(&softirq_runners);
++ u32 warnpending;
++ int i;
++
++ if (rate_limit >= 10)
++ return;
++
++ warnpending = local_softirq_pending() & SOFTIRQ_STOP_IDLE_MASK;
++ for (i = 0; i < NR_SOFTIRQS; i++) {
++ struct task_struct *tsk = sr->runner[i];
++
++ /*
++ * The wakeup code in rtmutex.c wakes up the task
++ * _before_ it sets pi_blocked_on to NULL under
++ * tsk->pi_lock. So we need to check for both: state
++ * and pi_blocked_on.
++ */
++ if (tsk) {
++ raw_spin_lock(&tsk->pi_lock);
++ if (tsk->pi_blocked_on || tsk->state == TASK_RUNNING) {
++ /* Clear all bits pending in that task */
++ warnpending &= ~(tsk->softirqs_raised);
++ warnpending &= ~(1 << i);
++ }
++ raw_spin_unlock(&tsk->pi_lock);
++ }
++ }
++
++ if (warnpending) {
++ printk(KERN_ERR "NOHZ: local_softirq_pending %02x\n",
++ warnpending);
++ rate_limit++;
++ }
++}
++# else
++/*
++ * On !PREEMPT_RT we just printk rate limited:
++ */
++void softirq_check_pending_idle(void)
++{
++ static int rate_limit;
++
++ if (rate_limit < 10 &&
++ (local_softirq_pending() & SOFTIRQ_STOP_IDLE_MASK)) {
++ printk(KERN_ERR "NOHZ: local_softirq_pending %02x\n",
++ local_softirq_pending());
++ rate_limit++;
++ }
++}
++# endif
++
++#else /* !CONFIG_NO_HZ_COMMON */
++static inline void softirq_set_runner(unsigned int sirq) { }
++static inline void softirq_clr_runner(unsigned int sirq) { }
++#endif
++
+ /*
+ * we cannot loop indefinitely here to avoid userspace starvation,
+ * but we also don't want to introduce a worst case 1/HZ latency
+@@ -78,6 +172,27 @@ static void wakeup_softirqd(void)
+ wake_up_process(tsk);
+ }
+
++static void handle_softirq(unsigned int vec_nr)
++{
++ struct softirq_action *h = softirq_vec + vec_nr;
++ int prev_count;
++
++ prev_count = preempt_count();
++
++ kstat_incr_softirqs_this_cpu(vec_nr);
++
++ trace_softirq_entry(vec_nr);
++ h->action(h);
++ trace_softirq_exit(vec_nr);
++ if (unlikely(prev_count != preempt_count())) {
++ pr_err("huh, entered softirq %u %s %p with preempt_count %08x, exited with %08x?\n",
++ vec_nr, softirq_to_name[vec_nr], h->action,
++ prev_count, preempt_count());
++ preempt_count_set(prev_count);
++ }
++}
++
++#ifndef CONFIG_PREEMPT_RT_FULL
+ /*
+ * If ksoftirqd is scheduled, we do not want to process pending softirqs
+ * right now. Let ksoftirqd handle this at its own rate, to get fairness,
+@@ -93,6 +208,47 @@ static bool ksoftirqd_running(unsigned long pending)
+ return tsk && (tsk->state == TASK_RUNNING);
+ }
+
++static inline int ksoftirqd_softirq_pending(void)
++{
++ return local_softirq_pending();
++}
++
++static void handle_pending_softirqs(u32 pending)
++{
++ struct softirq_action *h = softirq_vec;
++ int softirq_bit;
++
++ local_irq_enable();
++
++ h = softirq_vec;
++
++ while ((softirq_bit = ffs(pending))) {
++ unsigned int vec_nr;
++
++ h += softirq_bit - 1;
++ vec_nr = h - softirq_vec;
++ handle_softirq(vec_nr);
++
++ h++;
++ pending >>= softirq_bit;
++ }
++
++ rcu_bh_qs();
++ local_irq_disable();
++}
++
++static void run_ksoftirqd(unsigned int cpu)
++{
++ local_irq_disable();
++ if (ksoftirqd_softirq_pending()) {
++ __do_softirq();
++ local_irq_enable();
++ cond_resched();
++ return;
++ }
++ local_irq_enable();
++}
++
+ /*
+ * preempt_count and SOFTIRQ_OFFSET usage:
+ * - preempt_count is changed by SOFTIRQ_OFFSET on entering or leaving
+@@ -252,10 +408,8 @@ asmlinkage __visible void __softirq_entry __do_softirq(void)
+ unsigned long end = jiffies + MAX_SOFTIRQ_TIME;
+ unsigned long old_flags = current->flags;
+ int max_restart = MAX_SOFTIRQ_RESTART;
+- struct softirq_action *h;
+ bool in_hardirq;
+ __u32 pending;
+- int softirq_bit;
+
+ /*
+ * Mask out PF_MEMALLOC s current task context is borrowed for the
+@@ -274,36 +428,7 @@ asmlinkage __visible void __softirq_entry __do_softirq(void)
+ /* Reset the pending bitmask before enabling irqs */
+ set_softirq_pending(0);
+
+- local_irq_enable();
+-
+- h = softirq_vec;
+-
+- while ((softirq_bit = ffs(pending))) {
+- unsigned int vec_nr;
+- int prev_count;
+-
+- h += softirq_bit - 1;
+-
+- vec_nr = h - softirq_vec;
+- prev_count = preempt_count();
+-
+- kstat_incr_softirqs_this_cpu(vec_nr);
+-
+- trace_softirq_entry(vec_nr);
+- h->action(h);
+- trace_softirq_exit(vec_nr);
+- if (unlikely(prev_count != preempt_count())) {
+- pr_err("huh, entered softirq %u %s %p with preempt_count %08x, exited with %08x?\n",
+- vec_nr, softirq_to_name[vec_nr], h->action,
+- prev_count, preempt_count());
+- preempt_count_set(prev_count);
+- }
+- h++;
+- pending >>= softirq_bit;
+- }
+-
+- rcu_bh_qs();
+- local_irq_disable();
++ handle_pending_softirqs(pending);
+
+ pending = local_softirq_pending();
+ if (pending) {
+@@ -339,6 +464,248 @@ asmlinkage __visible void do_softirq(void)
+ local_irq_restore(flags);
+ }
+
++/*
++ * This function must run with irqs disabled!
++ */
++void raise_softirq_irqoff(unsigned int nr)
++{
++ __raise_softirq_irqoff(nr);
++
++ /*
++ * If we're in an interrupt or softirq, we're done
++ * (this also catches softirq-disabled code). We will
++ * actually run the softirq once we return from
++ * the irq or softirq.
++ *
++ * Otherwise we wake up ksoftirqd to make sure we
++ * schedule the softirq soon.
++ */
++ if (!in_interrupt())
++ wakeup_softirqd();
++}
++
++void __raise_softirq_irqoff(unsigned int nr)
++{
++ trace_softirq_raise(nr);
++ or_softirq_pending(1UL << nr);
++}
++
++static inline void local_bh_disable_nort(void) { local_bh_disable(); }
++static inline void _local_bh_enable_nort(void) { _local_bh_enable(); }
++static void ksoftirqd_set_sched_params(unsigned int cpu) { }
++static void ksoftirqd_clr_sched_params(unsigned int cpu, bool online) { }
++
++#else /* !PREEMPT_RT_FULL */
++
++/*
++ * On RT we serialize softirq execution with a cpu local lock per softirq
++ */
++static DEFINE_PER_CPU(struct local_irq_lock [NR_SOFTIRQS], local_softirq_locks);
++
++void __init softirq_early_init(void)
++{
++ int i;
++
++ for (i = 0; i < NR_SOFTIRQS; i++)
++ local_irq_lock_init(local_softirq_locks[i]);
++}
++
++static void lock_softirq(int which)
++{
++ local_lock(local_softirq_locks[which]);
++}
++
++static void unlock_softirq(int which)
++{
++ local_unlock(local_softirq_locks[which]);
++}
++
++static void do_single_softirq(int which)
++{
++ unsigned long old_flags = current->flags;
++
++ current->flags &= ~PF_MEMALLOC;
++ vtime_account_irq_enter(current);
++ current->flags |= PF_IN_SOFTIRQ;
++ lockdep_softirq_enter();
++ local_irq_enable();
++ handle_softirq(which);
++ local_irq_disable();
++ lockdep_softirq_exit();
++ current->flags &= ~PF_IN_SOFTIRQ;
++ vtime_account_irq_enter(current);
++ current_restore_flags(old_flags, PF_MEMALLOC);
++}
++
++/*
++ * Called with interrupts disabled. Process softirqs which were raised
++ * in current context (or on behalf of ksoftirqd).
++ */
++static void do_current_softirqs(void)
++{
++ while (current->softirqs_raised) {
++ int i = __ffs(current->softirqs_raised);
++ unsigned int pending, mask = (1U << i);
++
++ current->softirqs_raised &= ~mask;
++ local_irq_enable();
++
++ /*
++ * If the lock is contended, we boost the owner to
++ * process the softirq or leave the critical section
++ * now.
++ */
++ lock_softirq(i);
++ local_irq_disable();
++ softirq_set_runner(i);
++ /*
++ * Check with the local_softirq_pending() bits,
++ * whether we need to process this still or if someone
++ * else took care of it.
++ */
++ pending = local_softirq_pending();
++ if (pending & mask) {
++ set_softirq_pending(pending & ~mask);
++ do_single_softirq(i);
++ }
++ softirq_clr_runner(i);
++ WARN_ON(current->softirq_nestcnt != 1);
++ local_irq_enable();
++ unlock_softirq(i);
++ local_irq_disable();
++ }
++}
++
++void __local_bh_disable(void)
++{
++ if (++current->softirq_nestcnt == 1)
++ migrate_disable();
++}
++EXPORT_SYMBOL(__local_bh_disable);
++
++void __local_bh_enable(void)
++{
++ if (WARN_ON(current->softirq_nestcnt == 0))
++ return;
++
++ local_irq_disable();
++ if (current->softirq_nestcnt == 1 && current->softirqs_raised)
++ do_current_softirqs();
++ local_irq_enable();
++
++ if (--current->softirq_nestcnt == 0)
++ migrate_enable();
++}
++EXPORT_SYMBOL(__local_bh_enable);
++
++int in_serving_softirq(void)
++{
++ return current->flags & PF_IN_SOFTIRQ;
++}
++EXPORT_SYMBOL(in_serving_softirq);
++
++/* Called with preemption disabled */
++static void run_ksoftirqd(unsigned int cpu)
++{
++ local_irq_disable();
++ current->softirq_nestcnt++;
++
++ do_current_softirqs();
++ current->softirq_nestcnt--;
++ local_irq_enable();
++ cond_resched();
++}
++
++/*
++ * Called from netif_rx_ni(). Preemption enabled, but migration
++ * disabled. So the cpu can't go away under us.
++ */
++void thread_do_softirq(void)
++{
++ if (!in_serving_softirq() && current->softirqs_raised) {
++ current->softirq_nestcnt++;
++ do_current_softirqs();
++ current->softirq_nestcnt--;
++ }
++}
++
++static void do_raise_softirq_irqoff(unsigned int nr)
++{
++ trace_softirq_raise(nr);
++ or_softirq_pending(1UL << nr);
++
++ /*
++ * If we are not in a hard interrupt and inside a bh disabled
++ * region, we simply raise the flag on current. local_bh_enable()
++ * will make sure that the softirq is executed. Otherwise we
++ * delegate it to ksoftirqd.
++ */
++ if (!in_irq() && current->softirq_nestcnt)
++ current->softirqs_raised |= (1U << nr);
++ else if (__this_cpu_read(ksoftirqd))
++ __this_cpu_read(ksoftirqd)->softirqs_raised |= (1U << nr);
++}
++
++void __raise_softirq_irqoff(unsigned int nr)
++{
++ do_raise_softirq_irqoff(nr);
++ if (!in_irq() && !current->softirq_nestcnt)
++ wakeup_softirqd();
++}
++
++/*
++ * This function must run with irqs disabled!
++ */
++void raise_softirq_irqoff(unsigned int nr)
++{
++ do_raise_softirq_irqoff(nr);
++
++ /*
++ * If we're in an hard interrupt we let irq return code deal
++ * with the wakeup of ksoftirqd.
++ */
++ if (in_irq())
++ return;
++ /*
++ * If we are in thread context but outside of a bh disabled
++ * region, we need to wake ksoftirqd as well.
++ *
++ * CHECKME: Some of the places which do that could be wrapped
++ * into local_bh_disable/enable pairs. Though it's unclear
++ * whether this is worth the effort. To find those places just
++ * raise a WARN() if the condition is met.
++ */
++ if (!current->softirq_nestcnt)
++ wakeup_softirqd();
++}
++
++static inline int ksoftirqd_softirq_pending(void)
++{
++ return current->softirqs_raised;
++}
++
++static inline void local_bh_disable_nort(void) { }
++static inline void _local_bh_enable_nort(void) { }
++
++static inline void ksoftirqd_set_sched_params(unsigned int cpu)
++{
++ struct sched_param param = { .sched_priority = 1 };
++
++ sched_setscheduler(current, SCHED_FIFO, &param);
++ /* Take over all pending softirqs when starting */
++ local_irq_disable();
++ current->softirqs_raised = local_softirq_pending();
++ local_irq_enable();
++}
++
++static inline void ksoftirqd_clr_sched_params(unsigned int cpu, bool online)
++{
++ struct sched_param param = { .sched_priority = 0 };
++
++ sched_setscheduler(current, SCHED_NORMAL, &param);
++}
++
++#endif /* PREEMPT_RT_FULL */
+ /*
+ * Enter an interrupt context.
+ */
+@@ -350,9 +717,9 @@ void irq_enter(void)
+ * Prevent raise_softirq from needlessly waking up ksoftirqd
+ * here, as softirq will be serviced on return from interrupt.
+ */
+- local_bh_disable();
++ local_bh_disable_nort();
+ tick_irq_enter();
+- _local_bh_enable();
++ _local_bh_enable_nort();
+ }
+
+ __irq_enter();
+@@ -360,6 +727,7 @@ void irq_enter(void)
+
+ static inline void invoke_softirq(void)
+ {
++#ifndef CONFIG_PREEMPT_RT_FULL
+ if (ksoftirqd_running(local_softirq_pending()))
+ return;
+
+@@ -382,6 +750,15 @@ static inline void invoke_softirq(void)
+ } else {
+ wakeup_softirqd();
+ }
++#else /* PREEMPT_RT_FULL */
++ unsigned long flags;
++
++ local_irq_save(flags);
++ if (__this_cpu_read(ksoftirqd) &&
++ __this_cpu_read(ksoftirqd)->softirqs_raised)
++ wakeup_softirqd();
++ local_irq_restore(flags);
++#endif
+ }
+
+ static inline void tick_irq_exit(void)
+@@ -417,26 +794,6 @@ void irq_exit(void)
+ trace_hardirq_exit(); /* must be last! */
+ }
+
+-/*
+- * This function must run with irqs disabled!
+- */
+-inline void raise_softirq_irqoff(unsigned int nr)
+-{
+- __raise_softirq_irqoff(nr);
+-
+- /*
+- * If we're in an interrupt or softirq, we're done
+- * (this also catches softirq-disabled code). We will
+- * actually run the softirq once we return from
+- * the irq or softirq.
+- *
+- * Otherwise we wake up ksoftirqd to make sure we
+- * schedule the softirq soon.
+- */
+- if (!in_interrupt())
+- wakeup_softirqd();
+-}
+-
+ void raise_softirq(unsigned int nr)
+ {
+ unsigned long flags;
+@@ -446,12 +803,6 @@ void raise_softirq(unsigned int nr)
+ local_irq_restore(flags);
+ }
+
+-void __raise_softirq_irqoff(unsigned int nr)
+-{
+- trace_softirq_raise(nr);
+- or_softirq_pending(1UL << nr);
+-}
+-
+ void open_softirq(int nr, void (*action)(struct softirq_action *))
+ {
+ softirq_vec[nr].action = action;
+@@ -725,23 +1076,7 @@ EXPORT_SYMBOL(tasklet_unlock_wait);
+
+ static int ksoftirqd_should_run(unsigned int cpu)
+ {
+- return local_softirq_pending();
+-}
+-
+-static void run_ksoftirqd(unsigned int cpu)
+-{
+- local_irq_disable();
+- if (local_softirq_pending()) {
+- /*
+- * We can safely run softirq on inline stack, as we are not deep
+- * in the task stack here.
+- */
+- __do_softirq();
+- local_irq_enable();
+- cond_resched();
+- return;
+- }
+- local_irq_enable();
++ return ksoftirqd_softirq_pending();
+ }
+
+ #ifdef CONFIG_HOTPLUG_CPU
+@@ -808,6 +1143,8 @@ static int takeover_tasklets(unsigned int cpu)
+
+ static struct smp_hotplug_thread softirq_threads = {
+ .store = &ksoftirqd,
++ .setup = ksoftirqd_set_sched_params,
++ .cleanup = ksoftirqd_clr_sched_params,
+ .thread_should_run = ksoftirqd_should_run,
+ .thread_fn = run_ksoftirqd,
+ .thread_comm = "ksoftirqd/%u",
+diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
+index 012bc81879bf..2b0ddd50e879 100644
+--- a/kernel/time/tick-sched.c
++++ b/kernel/time/tick-sched.c
+@@ -895,14 +895,7 @@ static bool can_stop_idle_tick(int cpu, struct tick_sched *ts)
+ return false;
+
+ if (unlikely(local_softirq_pending() && cpu_online(cpu))) {
+- static int ratelimit;
+-
+- if (ratelimit < 10 &&
+- (local_softirq_pending() & SOFTIRQ_STOP_IDLE_MASK)) {
+- pr_warn("NOHZ: local_softirq_pending %02x\n",
+- (unsigned int) local_softirq_pending());
+- ratelimit++;
+- }
++ softirq_check_pending_idle();
+ return false;
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0122-net-core-use-local_bh_disable-in-netif_rx_ni.patch b/debian/patches-rt/0122-net-core-use-local_bh_disable-in-netif_rx_ni.patch
new file mode 100644
index 000000000..6f4fcdbeb
--- /dev/null
+++ b/debian/patches-rt/0122-net-core-use-local_bh_disable-in-netif_rx_ni.patch
@@ -0,0 +1,41 @@
+From 2e2c294b277d487a55a1b9cd56dd172795e0f3f8 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 16 Jun 2017 19:03:16 +0200
+Subject: [PATCH 122/347] net/core: use local_bh_disable() in netif_rx_ni()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+is required because netif_rx() raises the softirq but does not invoke
+it. The preempt_disable() is required to remain on the same CPU which added the
+skb to the per-CPU list.
+All this can be avoided be putting this into a local_bh_disable()ed
+section. The local_bh_enable() part will invoke do_softirq() if
+required.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ net/core/dev.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/net/core/dev.c b/net/core/dev.c
+index b8e3ae050bcc..315bdaf00ac8 100644
+--- a/net/core/dev.c
++++ b/net/core/dev.c
+@@ -4537,11 +4537,9 @@ int netif_rx_ni(struct sk_buff *skb)
+
+ trace_netif_rx_ni_entry(skb);
+
+- preempt_disable();
++ local_bh_disable();
+ err = netif_rx_internal(skb);
+- if (local_softirq_pending())
+- do_softirq();
+- preempt_enable();
++ local_bh_enable();
+
+ return err;
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0123-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch b/debian/patches-rt/0123-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch
new file mode 100644
index 000000000..d24e2a815
--- /dev/null
+++ b/debian/patches-rt/0123-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch
@@ -0,0 +1,144 @@
+From 70cfb822ccb0d82006eb62a4774d58021b340151 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Tue, 31 Jan 2012 13:01:27 +0100
+Subject: [PATCH 123/347] genirq: Allow disabling of softirq processing in irq
+ thread context
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The processing of softirqs in irq thread context is a performance gain
+for the non-rt workloads of a system, but it's counterproductive for
+interrupts which are explicitely related to the realtime
+workload. Allow such interrupts to prevent softirq processing in their
+thread context.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/interrupt.h | 2 ++
+ include/linux/irq.h | 4 +++-
+ kernel/irq/manage.c | 3 +++
+ kernel/irq/settings.h | 12 ++++++++++++
+ kernel/softirq.c | 9 +++++++++
+ 5 files changed, 29 insertions(+), 1 deletion(-)
+
+diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
+index cf9860d49d57..e1438fe66467 100644
+--- a/include/linux/interrupt.h
++++ b/include/linux/interrupt.h
+@@ -61,6 +61,7 @@
+ * interrupt handler after suspending interrupts. For system
+ * wakeup devices users need to implement wakeup detection in
+ * their interrupt handlers.
++ * IRQF_NO_SOFTIRQ_CALL - Do not process softirqs in the irq thread context (RT)
+ */
+ #define IRQF_SHARED 0x00000080
+ #define IRQF_PROBE_SHARED 0x00000100
+@@ -74,6 +75,7 @@
+ #define IRQF_NO_THREAD 0x00010000
+ #define IRQF_EARLY_RESUME 0x00020000
+ #define IRQF_COND_SUSPEND 0x00040000
++#define IRQF_NO_SOFTIRQ_CALL 0x00080000
+
+ #define IRQF_TIMER (__IRQF_TIMER | IRQF_NO_SUSPEND | IRQF_NO_THREAD)
+
+diff --git a/include/linux/irq.h b/include/linux/irq.h
+index 9504267414a4..0f1babb9775a 100644
+--- a/include/linux/irq.h
++++ b/include/linux/irq.h
+@@ -69,6 +69,7 @@ enum irqchip_irq_state;
+ * IRQ_IS_POLLED - Always polled by another interrupt. Exclude
+ * it from the spurious interrupt detection
+ * mechanism and from core side polling.
++ * IRQ_NO_SOFTIRQ_CALL - No softirq processing in the irq thread context (RT)
+ * IRQ_DISABLE_UNLAZY - Disable lazy irq disable
+ */
+ enum {
+@@ -96,13 +97,14 @@ enum {
+ IRQ_PER_CPU_DEVID = (1 << 17),
+ IRQ_IS_POLLED = (1 << 18),
+ IRQ_DISABLE_UNLAZY = (1 << 19),
++ IRQ_NO_SOFTIRQ_CALL = (1 << 20),
+ };
+
+ #define IRQF_MODIFY_MASK \
+ (IRQ_TYPE_SENSE_MASK | IRQ_NOPROBE | IRQ_NOREQUEST | \
+ IRQ_NOAUTOEN | IRQ_MOVE_PCNTXT | IRQ_LEVEL | IRQ_NO_BALANCING | \
+ IRQ_PER_CPU | IRQ_NESTED_THREAD | IRQ_NOTHREAD | IRQ_PER_CPU_DEVID | \
+- IRQ_IS_POLLED | IRQ_DISABLE_UNLAZY)
++ IRQ_IS_POLLED | IRQ_DISABLE_UNLAZY | IRQ_NO_SOFTIRQ_CALL)
+
+ #define IRQ_NO_BALANCING_MASK (IRQ_PER_CPU | IRQ_NO_BALANCING)
+
+diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
+index f12f50f5b605..2bb77b0ebac8 100644
+--- a/kernel/irq/manage.c
++++ b/kernel/irq/manage.c
+@@ -1533,6 +1533,9 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
+ irqd_set(&desc->irq_data, IRQD_NO_BALANCING);
+ }
+
++ if (new->flags & IRQF_NO_SOFTIRQ_CALL)
++ irq_settings_set_no_softirq_call(desc);
++
+ if (irq_settings_can_autoenable(desc)) {
+ irq_startup(desc, IRQ_RESEND, IRQ_START_COND);
+ } else {
+diff --git a/kernel/irq/settings.h b/kernel/irq/settings.h
+index e43795cd2ccf..47e2f9e23586 100644
+--- a/kernel/irq/settings.h
++++ b/kernel/irq/settings.h
+@@ -17,6 +17,7 @@ enum {
+ _IRQ_PER_CPU_DEVID = IRQ_PER_CPU_DEVID,
+ _IRQ_IS_POLLED = IRQ_IS_POLLED,
+ _IRQ_DISABLE_UNLAZY = IRQ_DISABLE_UNLAZY,
++ _IRQ_NO_SOFTIRQ_CALL = IRQ_NO_SOFTIRQ_CALL,
+ _IRQF_MODIFY_MASK = IRQF_MODIFY_MASK,
+ };
+
+@@ -31,6 +32,7 @@ enum {
+ #define IRQ_PER_CPU_DEVID GOT_YOU_MORON
+ #define IRQ_IS_POLLED GOT_YOU_MORON
+ #define IRQ_DISABLE_UNLAZY GOT_YOU_MORON
++#define IRQ_NO_SOFTIRQ_CALL GOT_YOU_MORON
+ #undef IRQF_MODIFY_MASK
+ #define IRQF_MODIFY_MASK GOT_YOU_MORON
+
+@@ -41,6 +43,16 @@ irq_settings_clr_and_set(struct irq_desc *desc, u32 clr, u32 set)
+ desc->status_use_accessors |= (set & _IRQF_MODIFY_MASK);
+ }
+
++static inline bool irq_settings_no_softirq_call(struct irq_desc *desc)
++{
++ return desc->status_use_accessors & _IRQ_NO_SOFTIRQ_CALL;
++}
++
++static inline void irq_settings_set_no_softirq_call(struct irq_desc *desc)
++{
++ desc->status_use_accessors |= _IRQ_NO_SOFTIRQ_CALL;
++}
++
+ static inline bool irq_settings_is_per_cpu(struct irq_desc *desc)
+ {
+ return desc->status_use_accessors & _IRQ_PER_CPU;
+diff --git a/kernel/softirq.c b/kernel/softirq.c
+index fd89f8ab85ac..3e9333d148ad 100644
+--- a/kernel/softirq.c
++++ b/kernel/softirq.c
+@@ -598,6 +598,15 @@ void __local_bh_enable(void)
+ }
+ EXPORT_SYMBOL(__local_bh_enable);
+
++void _local_bh_enable(void)
++{
++ if (WARN_ON(current->softirq_nestcnt == 0))
++ return;
++ if (--current->softirq_nestcnt == 0)
++ migrate_enable();
++}
++EXPORT_SYMBOL(_local_bh_enable);
++
+ int in_serving_softirq(void)
+ {
+ return current->flags & PF_IN_SOFTIRQ;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0124-softirq-split-timer-softirqs-out-of-ksoftirqd.patch b/debian/patches-rt/0124-softirq-split-timer-softirqs-out-of-ksoftirqd.patch
new file mode 100644
index 000000000..b6bb8cca8
--- /dev/null
+++ b/debian/patches-rt/0124-softirq-split-timer-softirqs-out-of-ksoftirqd.patch
@@ -0,0 +1,215 @@
+From 883087f48f717058bc203cd47430b55f77275fbd Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 20 Jan 2016 16:34:17 +0100
+Subject: [PATCH 124/347] softirq: split timer softirqs out of ksoftirqd
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The softirqd runs in -RT with SCHED_FIFO (prio 1) and deals mostly with
+timer wakeup which can not happen in hardirq context. The prio has been
+risen from the normal SCHED_OTHER so the timer wakeup does not happen
+too late.
+With enough networking load it is possible that the system never goes
+idle and schedules ksoftirqd and everything else with a higher priority.
+One of the tasks left behind is one of RCU's threads and so we see stalls
+and eventually run out of memory.
+This patch moves the TIMER and HRTIMER softirqs out of the `ksoftirqd`
+thread into its own `ktimersoftd`. The former can now run SCHED_OTHER
+(same as mainline) and the latter at SCHED_FIFO due to the wakeups.
+
+From networking point of view: The NAPI callback runs after the network
+interrupt thread completes. If its run time takes too long the NAPI code
+itself schedules the `ksoftirqd`. Here in the thread it can run at
+SCHED_OTHER priority and it won't defer RCU anymore.
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/softirq.c | 85 +++++++++++++++++++++++++++++++++++++++++-------
+ 1 file changed, 73 insertions(+), 12 deletions(-)
+
+diff --git a/kernel/softirq.c b/kernel/softirq.c
+index 3e9333d148ad..fe4e59c80a08 100644
+--- a/kernel/softirq.c
++++ b/kernel/softirq.c
+@@ -59,6 +59,10 @@ EXPORT_PER_CPU_SYMBOL(irq_stat);
+ static struct softirq_action softirq_vec[NR_SOFTIRQS] __cacheline_aligned_in_smp;
+
+ DEFINE_PER_CPU(struct task_struct *, ksoftirqd);
++#ifdef CONFIG_PREEMPT_RT_FULL
++#define TIMER_SOFTIRQS ((1 << TIMER_SOFTIRQ) | (1 << HRTIMER_SOFTIRQ))
++DEFINE_PER_CPU(struct task_struct *, ktimer_softirqd);
++#endif
+
+ const char * const softirq_to_name[NR_SOFTIRQS] = {
+ "HI", "TIMER", "NET_TX", "NET_RX", "BLOCK", "IRQ_POLL",
+@@ -172,6 +176,17 @@ static void wakeup_softirqd(void)
+ wake_up_process(tsk);
+ }
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++static void wakeup_timer_softirqd(void)
++{
++ /* Interrupts are disabled: no need to stop preemption */
++ struct task_struct *tsk = __this_cpu_read(ktimer_softirqd);
++
++ if (tsk && tsk->state != TASK_RUNNING)
++ wake_up_process(tsk);
++}
++#endif
++
+ static void handle_softirq(unsigned int vec_nr)
+ {
+ struct softirq_action *h = softirq_vec + vec_nr;
+@@ -493,7 +508,6 @@ void __raise_softirq_irqoff(unsigned int nr)
+ static inline void local_bh_disable_nort(void) { local_bh_disable(); }
+ static inline void _local_bh_enable_nort(void) { _local_bh_enable(); }
+ static void ksoftirqd_set_sched_params(unsigned int cpu) { }
+-static void ksoftirqd_clr_sched_params(unsigned int cpu, bool online) { }
+
+ #else /* !PREEMPT_RT_FULL */
+
+@@ -640,8 +654,12 @@ void thread_do_softirq(void)
+
+ static void do_raise_softirq_irqoff(unsigned int nr)
+ {
++ unsigned int mask;
++
++ mask = 1UL << nr;
++
+ trace_softirq_raise(nr);
+- or_softirq_pending(1UL << nr);
++ or_softirq_pending(mask);
+
+ /*
+ * If we are not in a hard interrupt and inside a bh disabled
+@@ -650,16 +668,29 @@ static void do_raise_softirq_irqoff(unsigned int nr)
+ * delegate it to ksoftirqd.
+ */
+ if (!in_irq() && current->softirq_nestcnt)
+- current->softirqs_raised |= (1U << nr);
+- else if (__this_cpu_read(ksoftirqd))
+- __this_cpu_read(ksoftirqd)->softirqs_raised |= (1U << nr);
++ current->softirqs_raised |= mask;
++ else if (!__this_cpu_read(ksoftirqd) || !__this_cpu_read(ktimer_softirqd))
++ return;
++
++ if (mask & TIMER_SOFTIRQS)
++ __this_cpu_read(ktimer_softirqd)->softirqs_raised |= mask;
++ else
++ __this_cpu_read(ksoftirqd)->softirqs_raised |= mask;
++}
++
++static void wakeup_proper_softirq(unsigned int nr)
++{
++ if ((1UL << nr) & TIMER_SOFTIRQS)
++ wakeup_timer_softirqd();
++ else
++ wakeup_softirqd();
+ }
+
+ void __raise_softirq_irqoff(unsigned int nr)
+ {
+ do_raise_softirq_irqoff(nr);
+ if (!in_irq() && !current->softirq_nestcnt)
+- wakeup_softirqd();
++ wakeup_proper_softirq(nr);
+ }
+
+ /*
+@@ -685,7 +716,7 @@ void raise_softirq_irqoff(unsigned int nr)
+ * raise a WARN() if the condition is met.
+ */
+ if (!current->softirq_nestcnt)
+- wakeup_softirqd();
++ wakeup_proper_softirq(nr);
+ }
+
+ static inline int ksoftirqd_softirq_pending(void)
+@@ -697,23 +728,38 @@ static inline void local_bh_disable_nort(void) { }
+ static inline void _local_bh_enable_nort(void) { }
+
+ static inline void ksoftirqd_set_sched_params(unsigned int cpu)
++{
++ /* Take over all but timer pending softirqs when starting */
++ local_irq_disable();
++ current->softirqs_raised = local_softirq_pending() & ~TIMER_SOFTIRQS;
++ local_irq_enable();
++}
++
++static inline void ktimer_softirqd_set_sched_params(unsigned int cpu)
+ {
+ struct sched_param param = { .sched_priority = 1 };
+
+ sched_setscheduler(current, SCHED_FIFO, &param);
+- /* Take over all pending softirqs when starting */
++
++ /* Take over timer pending softirqs when starting */
+ local_irq_disable();
+- current->softirqs_raised = local_softirq_pending();
++ current->softirqs_raised = local_softirq_pending() & TIMER_SOFTIRQS;
+ local_irq_enable();
+ }
+
+-static inline void ksoftirqd_clr_sched_params(unsigned int cpu, bool online)
++static inline void ktimer_softirqd_clr_sched_params(unsigned int cpu,
++ bool online)
+ {
+ struct sched_param param = { .sched_priority = 0 };
+
+ sched_setscheduler(current, SCHED_NORMAL, &param);
+ }
+
++static int ktimer_softirqd_should_run(unsigned int cpu)
++{
++ return current->softirqs_raised;
++}
++
+ #endif /* PREEMPT_RT_FULL */
+ /*
+ * Enter an interrupt context.
+@@ -766,6 +812,9 @@ static inline void invoke_softirq(void)
+ if (__this_cpu_read(ksoftirqd) &&
+ __this_cpu_read(ksoftirqd)->softirqs_raised)
+ wakeup_softirqd();
++ if (__this_cpu_read(ktimer_softirqd) &&
++ __this_cpu_read(ktimer_softirqd)->softirqs_raised)
++ wakeup_timer_softirqd();
+ local_irq_restore(flags);
+ #endif
+ }
+@@ -1153,18 +1202,30 @@ static int takeover_tasklets(unsigned int cpu)
+ static struct smp_hotplug_thread softirq_threads = {
+ .store = &ksoftirqd,
+ .setup = ksoftirqd_set_sched_params,
+- .cleanup = ksoftirqd_clr_sched_params,
+ .thread_should_run = ksoftirqd_should_run,
+ .thread_fn = run_ksoftirqd,
+ .thread_comm = "ksoftirqd/%u",
+ };
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++static struct smp_hotplug_thread softirq_timer_threads = {
++ .store = &ktimer_softirqd,
++ .setup = ktimer_softirqd_set_sched_params,
++ .cleanup = ktimer_softirqd_clr_sched_params,
++ .thread_should_run = ktimer_softirqd_should_run,
++ .thread_fn = run_ksoftirqd,
++ .thread_comm = "ktimersoftd/%u",
++};
++#endif
++
+ static __init int spawn_ksoftirqd(void)
+ {
+ cpuhp_setup_state_nocalls(CPUHP_SOFTIRQ_DEAD, "softirq:dead", NULL,
+ takeover_tasklets);
+ BUG_ON(smpboot_register_percpu_thread(&softirq_threads));
+-
++#ifdef CONFIG_PREEMPT_RT_FULL
++ BUG_ON(smpboot_register_percpu_thread(&softirq_timer_threads));
++#endif
+ return 0;
+ }
+ early_initcall(spawn_ksoftirqd);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0125-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch b/debian/patches-rt/0125-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch
new file mode 100644
index 000000000..1302bc0ef
--- /dev/null
+++ b/debian/patches-rt/0125-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch
@@ -0,0 +1,112 @@
+From 287a0b153109b1e2d548befe904bc14f3de5f2c8 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Mon, 18 Feb 2019 13:19:59 +0100
+Subject: [PATCH 125/347] softirq: Avoid "local_softirq_pending" messages if
+ ksoftirqd is blocked
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+If the ksoftirqd thread has a softirq pending and is blocked on the
+`local_softirq_locks' lock then softirq_check_pending_idle() won't
+complain because the "lock owner" will mask away this softirq from the
+mask of pending softirqs.
+If ksoftirqd has an additional softirq pending then it won't be masked
+out because we never look at ksoftirqd's mask.
+
+If there are still pending softirqs while going to idle check
+ksoftirqd's and ktimersfotd's mask before complaining about unhandled
+softirqs.
+
+Cc: stable-rt@vger.kernel.org
+Tested-by: Juri Lelli <juri.lelli@redhat.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/softirq.c | 57 ++++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 41 insertions(+), 16 deletions(-)
+
+diff --git a/kernel/softirq.c b/kernel/softirq.c
+index fe4e59c80a08..1920985eeb09 100644
+--- a/kernel/softirq.c
++++ b/kernel/softirq.c
+@@ -92,6 +92,31 @@ static inline void softirq_clr_runner(unsigned int sirq)
+ sr->runner[sirq] = NULL;
+ }
+
++static bool softirq_check_runner_tsk(struct task_struct *tsk,
++ unsigned int *pending)
++{
++ bool ret = false;
++
++ if (!tsk)
++ return ret;
++
++ /*
++ * The wakeup code in rtmutex.c wakes up the task
++ * _before_ it sets pi_blocked_on to NULL under
++ * tsk->pi_lock. So we need to check for both: state
++ * and pi_blocked_on.
++ */
++ raw_spin_lock(&tsk->pi_lock);
++ if (tsk->pi_blocked_on || tsk->state == TASK_RUNNING) {
++ /* Clear all bits pending in that task */
++ *pending &= ~(tsk->softirqs_raised);
++ ret = true;
++ }
++ raw_spin_unlock(&tsk->pi_lock);
++
++ return ret;
++}
++
+ /*
+ * On preempt-rt a softirq running context might be blocked on a
+ * lock. There might be no other runnable task on this CPU because the
+@@ -104,6 +129,7 @@ static inline void softirq_clr_runner(unsigned int sirq)
+ */
+ void softirq_check_pending_idle(void)
+ {
++ struct task_struct *tsk;
+ static int rate_limit;
+ struct softirq_runner *sr = this_cpu_ptr(&softirq_runners);
+ u32 warnpending;
+@@ -113,24 +139,23 @@ void softirq_check_pending_idle(void)
+ return;
+
+ warnpending = local_softirq_pending() & SOFTIRQ_STOP_IDLE_MASK;
++ if (!warnpending)
++ return;
+ for (i = 0; i < NR_SOFTIRQS; i++) {
+- struct task_struct *tsk = sr->runner[i];
++ tsk = sr->runner[i];
+
+- /*
+- * The wakeup code in rtmutex.c wakes up the task
+- * _before_ it sets pi_blocked_on to NULL under
+- * tsk->pi_lock. So we need to check for both: state
+- * and pi_blocked_on.
+- */
+- if (tsk) {
+- raw_spin_lock(&tsk->pi_lock);
+- if (tsk->pi_blocked_on || tsk->state == TASK_RUNNING) {
+- /* Clear all bits pending in that task */
+- warnpending &= ~(tsk->softirqs_raised);
+- warnpending &= ~(1 << i);
+- }
+- raw_spin_unlock(&tsk->pi_lock);
+- }
++ if (softirq_check_runner_tsk(tsk, &warnpending))
++ warnpending &= ~(1 << i);
++ }
++
++ if (warnpending) {
++ tsk = __this_cpu_read(ksoftirqd);
++ softirq_check_runner_tsk(tsk, &warnpending);
++ }
++
++ if (warnpending) {
++ tsk = __this_cpu_read(ktimer_softirqd);
++ softirq_check_runner_tsk(tsk, &warnpending);
+ }
+
+ if (warnpending) {
+--
+2.36.1
+
diff --git a/debian/patches-rt/0126-softirq-Avoid-local_softirq_pending-messages-if-task.patch b/debian/patches-rt/0126-softirq-Avoid-local_softirq_pending-messages-if-task.patch
new file mode 100644
index 000000000..965311d51
--- /dev/null
+++ b/debian/patches-rt/0126-softirq-Avoid-local_softirq_pending-messages-if-task.patch
@@ -0,0 +1,41 @@
+From 7879ba227dbde103356be2bef58a9733a930c0a0 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 19 Feb 2019 16:49:29 +0100
+Subject: [PATCH 126/347] softirq: Avoid "local_softirq_pending" messages if
+ task is in cpu_chill()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+If the softirq thread enters cpu_chill() then ->state is UNINTERRUPTIBLE
+and has no ->pi_blocked_on set and so its mask is not taken into account.
+
+->sleeping_lock is increased by cpu_chill() since it is also requried to
+avoid a splat by RCU in case cpu_chill() is used while a RCU-read lock
+is held. Use the same mechanism for the softirq-pending check.
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/softirq.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/kernel/softirq.c b/kernel/softirq.c
+index 1920985eeb09..27a4bb2303d0 100644
+--- a/kernel/softirq.c
++++ b/kernel/softirq.c
+@@ -105,9 +105,12 @@ static bool softirq_check_runner_tsk(struct task_struct *tsk,
+ * _before_ it sets pi_blocked_on to NULL under
+ * tsk->pi_lock. So we need to check for both: state
+ * and pi_blocked_on.
++ * The test against UNINTERRUPTIBLE + ->sleeping_lock is in case the
++ * task does cpu_chill().
+ */
+ raw_spin_lock(&tsk->pi_lock);
+- if (tsk->pi_blocked_on || tsk->state == TASK_RUNNING) {
++ if (tsk->pi_blocked_on || tsk->state == TASK_RUNNING ||
++ (tsk->state == TASK_UNINTERRUPTIBLE && tsk->sleeping_lock)) {
+ /* Clear all bits pending in that task */
+ *pending &= ~(tsk->softirqs_raised);
+ ret = true;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0127-rtmutex-trylock-is-okay-on-RT.patch b/debian/patches-rt/0127-rtmutex-trylock-is-okay-on-RT.patch
new file mode 100644
index 000000000..292becc02
--- /dev/null
+++ b/debian/patches-rt/0127-rtmutex-trylock-is-okay-on-RT.patch
@@ -0,0 +1,34 @@
+From 0b94209cb7e2a97538d5f7cf08c0d1433cc83b05 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 2 Dec 2015 11:34:07 +0100
+Subject: [PATCH 127/347] rtmutex: trylock is okay on -RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+non-RT kernel could deadlock on rt_mutex_trylock() in softirq context. On
+-RT we don't run softirqs in IRQ context but in thread context so it is
+not a issue here.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/locking/rtmutex.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
+index a5ec4f68527e..4bec24dfafc6 100644
+--- a/kernel/locking/rtmutex.c
++++ b/kernel/locking/rtmutex.c
+@@ -1583,7 +1583,11 @@ int __sched rt_mutex_trylock(struct rt_mutex *lock)
+ {
+ int ret;
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++ if (WARN_ON_ONCE(in_irq() || in_nmi()))
++#else
+ if (WARN_ON_ONCE(in_irq() || in_nmi() || in_serving_softirq()))
++#endif
+ return 0;
+
+ ret = rt_mutex_fasttrylock(lock, rt_mutex_slowtrylock);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0128-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch b/debian/patches-rt/0128-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch
new file mode 100644
index 000000000..4ff90ed43
--- /dev/null
+++ b/debian/patches-rt/0128-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch
@@ -0,0 +1,151 @@
+From dbfda01f7e6e30541e35b49f6972022917fd685a Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 15 Sep 2016 10:51:27 +0200
+Subject: [PATCH 128/347] fs/nfs: turn rmdir_sem into a semaphore
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The RW semaphore had a reader side which used the _non_owner version
+because it most likely took the reader lock in one thread and released it
+in another which would cause lockdep to complain if the "regular"
+version was used.
+On -RT we need the owner because the rw lock is turned into a rtmutex.
+The semaphores on the hand are "plain simple" and should work as
+expected. We can't have multiple readers but on -RT we don't allow
+multiple readers anyway so that is not a loss.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ fs/nfs/dir.c | 8 ++++++++
+ fs/nfs/inode.c | 4 ++++
+ fs/nfs/unlink.c | 31 +++++++++++++++++++++++++++----
+ include/linux/nfs_fs.h | 4 ++++
+ 4 files changed, 43 insertions(+), 4 deletions(-)
+
+diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
+index 10bc04af2882..4999bd148491 100644
+--- a/fs/nfs/dir.c
++++ b/fs/nfs/dir.c
+@@ -1857,7 +1857,11 @@ int nfs_rmdir(struct inode *dir, struct dentry *dentry)
+
+ trace_nfs_rmdir_enter(dir, dentry);
+ if (d_really_is_positive(dentry)) {
++#ifdef CONFIG_PREEMPT_RT_BASE
++ down(&NFS_I(d_inode(dentry))->rmdir_sem);
++#else
+ down_write(&NFS_I(d_inode(dentry))->rmdir_sem);
++#endif
+ error = NFS_PROTO(dir)->rmdir(dir, &dentry->d_name);
+ /* Ensure the VFS deletes this inode */
+ switch (error) {
+@@ -1867,7 +1871,11 @@ int nfs_rmdir(struct inode *dir, struct dentry *dentry)
+ case -ENOENT:
+ nfs_dentry_handle_enoent(dentry);
+ }
++#ifdef CONFIG_PREEMPT_RT_BASE
++ up(&NFS_I(d_inode(dentry))->rmdir_sem);
++#else
+ up_write(&NFS_I(d_inode(dentry))->rmdir_sem);
++#endif
+ } else
+ error = NFS_PROTO(dir)->rmdir(dir, &dentry->d_name);
+ trace_nfs_rmdir_exit(dir, dentry, error);
+diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
+index 592b95ab378b..4fc14fb50068 100644
+--- a/fs/nfs/inode.c
++++ b/fs/nfs/inode.c
+@@ -2105,7 +2105,11 @@ static void init_once(void *foo)
+ atomic_long_set(&nfsi->nrequests, 0);
+ atomic_long_set(&nfsi->commit_info.ncommit, 0);
+ atomic_set(&nfsi->commit_info.rpcs_out, 0);
++#ifdef CONFIG_PREEMPT_RT_BASE
++ sema_init(&nfsi->rmdir_sem, 1);
++#else
+ init_rwsem(&nfsi->rmdir_sem);
++#endif
+ mutex_init(&nfsi->commit_mutex);
+ nfs4_init_once(nfsi);
+ }
+diff --git a/fs/nfs/unlink.c b/fs/nfs/unlink.c
+index fd61bf0fce63..ce9100b5604d 100644
+--- a/fs/nfs/unlink.c
++++ b/fs/nfs/unlink.c
+@@ -52,6 +52,29 @@ static void nfs_async_unlink_done(struct rpc_task *task, void *calldata)
+ rpc_restart_call_prepare(task);
+ }
+
++#ifdef CONFIG_PREEMPT_RT_BASE
++static void nfs_down_anon(struct semaphore *sema)
++{
++ down(sema);
++}
++
++static void nfs_up_anon(struct semaphore *sema)
++{
++ up(sema);
++}
++
++#else
++static void nfs_down_anon(struct rw_semaphore *rwsem)
++{
++ down_read_non_owner(rwsem);
++}
++
++static void nfs_up_anon(struct rw_semaphore *rwsem)
++{
++ up_read_non_owner(rwsem);
++}
++#endif
++
+ /**
+ * nfs_async_unlink_release - Release the sillydelete data.
+ * @task: rpc_task of the sillydelete
+@@ -65,7 +88,7 @@ static void nfs_async_unlink_release(void *calldata)
+ struct dentry *dentry = data->dentry;
+ struct super_block *sb = dentry->d_sb;
+
+- up_read_non_owner(&NFS_I(d_inode(dentry->d_parent))->rmdir_sem);
++ nfs_up_anon(&NFS_I(d_inode(dentry->d_parent))->rmdir_sem);
+ d_lookup_done(dentry);
+ nfs_free_unlinkdata(data);
+ dput(dentry);
+@@ -118,10 +141,10 @@ static int nfs_call_unlink(struct dentry *dentry, struct inode *inode, struct nf
+ struct inode *dir = d_inode(dentry->d_parent);
+ struct dentry *alias;
+
+- down_read_non_owner(&NFS_I(dir)->rmdir_sem);
++ nfs_down_anon(&NFS_I(dir)->rmdir_sem);
+ alias = d_alloc_parallel(dentry->d_parent, &data->args.name, &data->wq);
+ if (IS_ERR(alias)) {
+- up_read_non_owner(&NFS_I(dir)->rmdir_sem);
++ nfs_up_anon(&NFS_I(dir)->rmdir_sem);
+ return 0;
+ }
+ if (!d_in_lookup(alias)) {
+@@ -143,7 +166,7 @@ static int nfs_call_unlink(struct dentry *dentry, struct inode *inode, struct nf
+ ret = 0;
+ spin_unlock(&alias->d_lock);
+ dput(alias);
+- up_read_non_owner(&NFS_I(dir)->rmdir_sem);
++ nfs_up_anon(&NFS_I(dir)->rmdir_sem);
+ /*
+ * If we'd displaced old cached devname, free it. At that
+ * point dentry is definitely not a root, so we won't need
+diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
+index 8ea7ceed8285..d52dfae05d2a 100644
+--- a/include/linux/nfs_fs.h
++++ b/include/linux/nfs_fs.h
+@@ -164,7 +164,11 @@ struct nfs_inode {
+
+ /* Readers: in-flight sillydelete RPC calls */
+ /* Writers: rmdir */
++#ifdef CONFIG_PREEMPT_RT_BASE
++ struct semaphore rmdir_sem;
++#else
+ struct rw_semaphore rmdir_sem;
++#endif
+ struct mutex commit_mutex;
+
+ #if IS_ENABLED(CONFIG_NFS_V4)
+--
+2.36.1
+
diff --git a/debian/patches-rt/0129-rtmutex-Handle-the-various-new-futex-race-conditions.patch b/debian/patches-rt/0129-rtmutex-Handle-the-various-new-futex-race-conditions.patch
new file mode 100644
index 000000000..bdf75c3c6
--- /dev/null
+++ b/debian/patches-rt/0129-rtmutex-Handle-the-various-new-futex-race-conditions.patch
@@ -0,0 +1,254 @@
+From 9c83cf8ce7911f4f00f4fc71b365a30ebed5fdf4 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Fri, 10 Jun 2011 11:04:15 +0200
+Subject: [PATCH 129/347] rtmutex: Handle the various new futex race conditions
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+therefor not disabling preemption.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ kernel/futex.c | 77 ++++++++++++++++++++++++++-------
+ kernel/locking/rtmutex.c | 36 ++++++++++++---
+ kernel/locking/rtmutex_common.h | 2 +
+ 3 files changed, 94 insertions(+), 21 deletions(-)
+
+diff --git a/kernel/futex.c b/kernel/futex.c
+index ac015d1dd16c..dc2d81d11b17 100644
+--- a/kernel/futex.c
++++ b/kernel/futex.c
+@@ -2253,6 +2253,16 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
+ requeue_pi_wake_futex(this, &key2, hb2);
+ drop_count++;
+ continue;
++ } else if (ret == -EAGAIN) {
++ /*
++ * Waiter was woken by timeout or
++ * signal and has set pi_blocked_on to
++ * PI_WAKEUP_INPROGRESS before we
++ * tried to enqueue it on the rtmutex.
++ */
++ this->pi_state = NULL;
++ put_pi_state(pi_state);
++ continue;
+ } else if (ret) {
+ /*
+ * rt_mutex_start_proxy_lock() detected a
+@@ -3331,7 +3341,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+ {
+ struct hrtimer_sleeper timeout, *to = NULL;
+ struct rt_mutex_waiter rt_waiter;
+- struct futex_hash_bucket *hb;
++ struct futex_hash_bucket *hb, *hb2;
+ union futex_key key2 = FUTEX_KEY_INIT;
+ struct futex_q q = futex_q_init;
+ int res, ret;
+@@ -3389,20 +3399,55 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+ /* Queue the futex_q, drop the hb lock, wait for wakeup. */
+ futex_wait_queue_me(hb, &q, to);
+
+- spin_lock(&hb->lock);
+- ret = handle_early_requeue_pi_wakeup(hb, &q, &key2, to);
+- spin_unlock(&hb->lock);
+- if (ret)
+- goto out_put_keys;
++ /*
++ * On RT we must avoid races with requeue and trying to block
++ * on two mutexes (hb->lock and uaddr2's rtmutex) by
++ * serializing access to pi_blocked_on with pi_lock.
++ */
++ raw_spin_lock_irq(&current->pi_lock);
++ if (current->pi_blocked_on) {
++ /*
++ * We have been requeued or are in the process of
++ * being requeued.
++ */
++ raw_spin_unlock_irq(&current->pi_lock);
++ } else {
++ /*
++ * Setting pi_blocked_on to PI_WAKEUP_INPROGRESS
++ * prevents a concurrent requeue from moving us to the
++ * uaddr2 rtmutex. After that we can safely acquire
++ * (and possibly block on) hb->lock.
++ */
++ current->pi_blocked_on = PI_WAKEUP_INPROGRESS;
++ raw_spin_unlock_irq(&current->pi_lock);
++
++ spin_lock(&hb->lock);
++
++ /*
++ * Clean up pi_blocked_on. We might leak it otherwise
++ * when we succeeded with the hb->lock in the fast
++ * path.
++ */
++ raw_spin_lock_irq(&current->pi_lock);
++ current->pi_blocked_on = NULL;
++ raw_spin_unlock_irq(&current->pi_lock);
++
++ ret = handle_early_requeue_pi_wakeup(hb, &q, &key2, to);
++ spin_unlock(&hb->lock);
++ if (ret)
++ goto out_put_keys;
++ }
+
+ /*
+- * In order for us to be here, we know our q.key == key2, and since
+- * we took the hb->lock above, we also know that futex_requeue() has
+- * completed and we no longer have to concern ourselves with a wakeup
+- * race with the atomic proxy lock acquisition by the requeue code. The
+- * futex_requeue dropped our key1 reference and incremented our key2
+- * reference count.
++ * In order to be here, we have either been requeued, are in
++ * the process of being requeued, or requeue successfully
++ * acquired uaddr2 on our behalf. If pi_blocked_on was
++ * non-null above, we may be racing with a requeue. Do not
++ * rely on q->lock_ptr to be hb2->lock until after blocking on
++ * hb->lock or hb2->lock. The futex_requeue dropped our key1
++ * reference and incremented our key2 reference count.
+ */
++ hb2 = hash_futex(&key2);
+
+ /* Check if the requeue code acquired the second futex for us. */
+ if (!q.rt_waiter) {
+@@ -3411,14 +3456,15 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+ * did a lock-steal - fix up the PI-state in that case.
+ */
+ if (q.pi_state && (q.pi_state->owner != current)) {
+- spin_lock(q.lock_ptr);
++ spin_lock(&hb2->lock);
++ BUG_ON(&hb2->lock != q.lock_ptr);
+ ret = fixup_pi_state_owner(uaddr2, &q, current);
+ /*
+ * Drop the reference to the pi state which
+ * the requeue_pi() code acquired for us.
+ */
+ put_pi_state(q.pi_state);
+- spin_unlock(q.lock_ptr);
++ spin_unlock(&hb2->lock);
+ /*
+ * Adjust the return value. It's either -EFAULT or
+ * success (1) but the caller expects 0 for success.
+@@ -3437,7 +3483,8 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+ pi_mutex = &q.pi_state->pi_mutex;
+ ret = rt_mutex_wait_proxy_lock(pi_mutex, to, &rt_waiter);
+
+- spin_lock(q.lock_ptr);
++ spin_lock(&hb2->lock);
++ BUG_ON(&hb2->lock != q.lock_ptr);
+ if (ret && !rt_mutex_cleanup_proxy_lock(pi_mutex, &rt_waiter))
+ ret = 0;
+
+diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
+index 4bec24dfafc6..9d472eb48ba7 100644
+--- a/kernel/locking/rtmutex.c
++++ b/kernel/locking/rtmutex.c
+@@ -135,6 +135,11 @@ static void fixup_rt_mutex_waiters(struct rt_mutex *lock)
+ WRITE_ONCE(*p, owner & ~RT_MUTEX_HAS_WAITERS);
+ }
+
++static int rt_mutex_real_waiter(struct rt_mutex_waiter *waiter)
++{
++ return waiter && waiter != PI_WAKEUP_INPROGRESS;
++}
++
+ /*
+ * We can speed up the acquire/release, if there's no debugging state to be
+ * set up.
+@@ -379,7 +384,8 @@ int max_lock_depth = 1024;
+
+ static inline struct rt_mutex *task_blocked_on_lock(struct task_struct *p)
+ {
+- return p->pi_blocked_on ? p->pi_blocked_on->lock : NULL;
++ return rt_mutex_real_waiter(p->pi_blocked_on) ?
++ p->pi_blocked_on->lock : NULL;
+ }
+
+ /*
+@@ -515,7 +521,7 @@ static int rt_mutex_adjust_prio_chain(struct task_struct *task,
+ * reached or the state of the chain has changed while we
+ * dropped the locks.
+ */
+- if (!waiter)
++ if (!rt_mutex_real_waiter(waiter))
+ goto out_unlock_pi;
+
+ /*
+@@ -951,6 +957,22 @@ static int task_blocks_on_rt_mutex(struct rt_mutex *lock,
+ return -EDEADLK;
+
+ raw_spin_lock(&task->pi_lock);
++ /*
++ * In the case of futex requeue PI, this will be a proxy
++ * lock. The task will wake unaware that it is enqueueed on
++ * this lock. Avoid blocking on two locks and corrupting
++ * pi_blocked_on via the PI_WAKEUP_INPROGRESS
++ * flag. futex_wait_requeue_pi() sets this when it wakes up
++ * before requeue (due to a signal or timeout). Do not enqueue
++ * the task if PI_WAKEUP_INPROGRESS is set.
++ */
++ if (task != current && task->pi_blocked_on == PI_WAKEUP_INPROGRESS) {
++ raw_spin_unlock(&task->pi_lock);
++ return -EAGAIN;
++ }
++
++ BUG_ON(rt_mutex_real_waiter(task->pi_blocked_on));
++
+ waiter->task = task;
+ waiter->lock = lock;
+ waiter->prio = task->prio;
+@@ -974,7 +996,7 @@ static int task_blocks_on_rt_mutex(struct rt_mutex *lock,
+ rt_mutex_enqueue_pi(owner, waiter);
+
+ rt_mutex_adjust_prio(owner);
+- if (owner->pi_blocked_on)
++ if (rt_mutex_real_waiter(owner->pi_blocked_on))
+ chain_walk = 1;
+ } else if (rt_mutex_cond_detect_deadlock(waiter, chwalk)) {
+ chain_walk = 1;
+@@ -1070,7 +1092,7 @@ static void remove_waiter(struct rt_mutex *lock,
+ {
+ bool is_top_waiter = (waiter == rt_mutex_top_waiter(lock));
+ struct task_struct *owner = rt_mutex_owner(lock);
+- struct rt_mutex *next_lock;
++ struct rt_mutex *next_lock = NULL;
+
+ lockdep_assert_held(&lock->wait_lock);
+
+@@ -1096,7 +1118,8 @@ static void remove_waiter(struct rt_mutex *lock,
+ rt_mutex_adjust_prio(owner);
+
+ /* Store the lock on which owner is blocked or NULL */
+- next_lock = task_blocked_on_lock(owner);
++ if (rt_mutex_real_waiter(owner->pi_blocked_on))
++ next_lock = task_blocked_on_lock(owner);
+
+ raw_spin_unlock(&owner->pi_lock);
+
+@@ -1132,7 +1155,8 @@ void rt_mutex_adjust_pi(struct task_struct *task)
+ raw_spin_lock_irqsave(&task->pi_lock, flags);
+
+ waiter = task->pi_blocked_on;
+- if (!waiter || rt_mutex_waiter_equal(waiter, task_to_waiter(task))) {
++ if (!rt_mutex_real_waiter(waiter) ||
++ rt_mutex_waiter_equal(waiter, task_to_waiter(task))) {
+ raw_spin_unlock_irqrestore(&task->pi_lock, flags);
+ return;
+ }
+diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h
+index ca6fb489007b..8f39bc139735 100644
+--- a/kernel/locking/rtmutex_common.h
++++ b/kernel/locking/rtmutex_common.h
+@@ -130,6 +130,8 @@ enum rtmutex_chainwalk {
+ /*
+ * PI-futex support (proxy locking functions, etc.):
+ */
++#define PI_WAKEUP_INPROGRESS ((struct rt_mutex_waiter *) 1)
++
+ extern struct task_struct *rt_mutex_next_owner(struct rt_mutex *lock);
+ extern void rt_mutex_init_proxy_locked(struct rt_mutex *lock,
+ struct task_struct *proxy_owner);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0130-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch b/debian/patches-rt/0130-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch
new file mode 100644
index 000000000..1b73b4e00
--- /dev/null
+++ b/debian/patches-rt/0130-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch
@@ -0,0 +1,121 @@
+From e4bd34c056ee1cfe80dbe490977b5496ba5eeb70 Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <rostedt@goodmis.org>
+Date: Tue, 14 Jul 2015 14:26:34 +0200
+Subject: [PATCH 130/347] futex: Fix bug on when a requeued RT task times out
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Requeue with timeout causes a bug with PREEMPT_RT_FULL.
+
+The bug comes from a timed out condition.
+
+
+ TASK 1 TASK 2
+ ------ ------
+ futex_wait_requeue_pi()
+ futex_wait_queue_me()
+ <timed out>
+
+ double_lock_hb();
+
+ raw_spin_lock(pi_lock);
+ if (current->pi_blocked_on) {
+ } else {
+ current->pi_blocked_on = PI_WAKE_INPROGRESS;
+ run_spin_unlock(pi_lock);
+ spin_lock(hb->lock); <-- blocked!
+
+
+ plist_for_each_entry_safe(this) {
+ rt_mutex_start_proxy_lock();
+ task_blocks_on_rt_mutex();
+ BUG_ON(task->pi_blocked_on)!!!!
+
+The BUG_ON() actually has a check for PI_WAKE_INPROGRESS, but the
+problem is that, after TASK 1 sets PI_WAKE_INPROGRESS, it then tries to
+grab the hb->lock, which it fails to do so. As the hb->lock is a mutex,
+it will block and set the "pi_blocked_on" to the hb->lock.
+
+When TASK 2 goes to requeue it, the check for PI_WAKE_INPROGESS fails
+because the task1's pi_blocked_on is no longer set to that, but instead,
+set to the hb->lock.
+
+The fix:
+
+When calling rt_mutex_start_proxy_lock() a check is made to see
+if the proxy tasks pi_blocked_on is set. If so, exit out early.
+Otherwise set it to a new flag PI_REQUEUE_INPROGRESS, which notifies
+the proxy task that it is being requeued, and will handle things
+appropriately.
+
+
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ kernel/locking/rtmutex.c | 31 ++++++++++++++++++++++++++++++-
+ kernel/locking/rtmutex_common.h | 1 +
+ 2 files changed, 31 insertions(+), 1 deletion(-)
+
+diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
+index 9d472eb48ba7..069f025180b8 100644
+--- a/kernel/locking/rtmutex.c
++++ b/kernel/locking/rtmutex.c
+@@ -137,7 +137,8 @@ static void fixup_rt_mutex_waiters(struct rt_mutex *lock)
+
+ static int rt_mutex_real_waiter(struct rt_mutex_waiter *waiter)
+ {
+- return waiter && waiter != PI_WAKEUP_INPROGRESS;
++ return waiter && waiter != PI_WAKEUP_INPROGRESS &&
++ waiter != PI_REQUEUE_INPROGRESS;
+ }
+
+ /*
+@@ -1783,6 +1784,34 @@ int __rt_mutex_start_proxy_lock(struct rt_mutex *lock,
+ if (try_to_take_rt_mutex(lock, task, NULL))
+ return 1;
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++ /*
++ * In PREEMPT_RT there's an added race.
++ * If the task, that we are about to requeue, times out,
++ * it can set the PI_WAKEUP_INPROGRESS. This tells the requeue
++ * to skip this task. But right after the task sets
++ * its pi_blocked_on to PI_WAKEUP_INPROGRESS it can then
++ * block on the spin_lock(&hb->lock), which in RT is an rtmutex.
++ * This will replace the PI_WAKEUP_INPROGRESS with the actual
++ * lock that it blocks on. We *must not* place this task
++ * on this proxy lock in that case.
++ *
++ * To prevent this race, we first take the task's pi_lock
++ * and check if it has updated its pi_blocked_on. If it has,
++ * we assume that it woke up and we return -EAGAIN.
++ * Otherwise, we set the task's pi_blocked_on to
++ * PI_REQUEUE_INPROGRESS, so that if the task is waking up
++ * it will know that we are in the process of requeuing it.
++ */
++ raw_spin_lock(&task->pi_lock);
++ if (task->pi_blocked_on) {
++ raw_spin_unlock(&task->pi_lock);
++ return -EAGAIN;
++ }
++ task->pi_blocked_on = PI_REQUEUE_INPROGRESS;
++ raw_spin_unlock(&task->pi_lock);
++#endif
++
+ /* We enforce deadlock detection for futexes */
+ 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 8f39bc139735..202e2b0d1251 100644
+--- a/kernel/locking/rtmutex_common.h
++++ b/kernel/locking/rtmutex_common.h
+@@ -131,6 +131,7 @@ enum rtmutex_chainwalk {
+ * PI-futex support (proxy locking functions, etc.):
+ */
+ #define PI_WAKEUP_INPROGRESS ((struct rt_mutex_waiter *) 1)
++#define PI_REQUEUE_INPROGRESS ((struct rt_mutex_waiter *) 2)
+
+ extern struct task_struct *rt_mutex_next_owner(struct rt_mutex *lock);
+ extern void rt_mutex_init_proxy_locked(struct rt_mutex *lock,
+--
+2.36.1
+
diff --git a/debian/patches-rt/0131-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch b/debian/patches-rt/0131-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch
new file mode 100644
index 000000000..385cbe279
--- /dev/null
+++ b/debian/patches-rt/0131-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch
@@ -0,0 +1,50 @@
+From be3ec67dc13250ace8bd04c65a4fb643d683c9c1 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Fri, 1 Mar 2013 11:17:42 +0100
+Subject: [PATCH 131/347] futex: Ensure lock/unlock symetry versus pi_lock and
+ hash bucket lock
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+In exit_pi_state_list() we have the following locking construct:
+
+ spin_lock(&hb->lock);
+ raw_spin_lock_irq(&curr->pi_lock);
+
+ ...
+ spin_unlock(&hb->lock);
+
+In !RT this works, but on RT the migrate_enable() function which is
+called from spin_unlock() sees atomic context due to the held pi_lock
+and just decrements the migrate_disable_atomic counter of the
+task. Now the next call to migrate_disable() sees the counter being
+negative and issues a warning. That check should be in
+migrate_enable() already.
+
+Fix this by dropping pi_lock before unlocking hb->lock and reaquire
+pi_lock after that again. This is safe as the loop code reevaluates
+head again under the pi_lock.
+
+Reported-by: Yong Zhang <yong.zhang@windriver.com>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/futex.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/kernel/futex.c b/kernel/futex.c
+index dc2d81d11b17..0e136045a720 100644
+--- a/kernel/futex.c
++++ b/kernel/futex.c
+@@ -962,7 +962,9 @@ static void exit_pi_state_list(struct task_struct *curr)
+ if (head->next != next) {
+ /* retain curr->pi_lock for the loop invariant */
+ raw_spin_unlock(&pi_state->pi_mutex.wait_lock);
++ raw_spin_unlock_irq(&curr->pi_lock);
+ spin_unlock(&hb->lock);
++ raw_spin_lock_irq(&curr->pi_lock);
+ put_pi_state(pi_state);
+ continue;
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0132-pid.h-include-atomic.h.patch b/debian/patches-rt/0132-pid.h-include-atomic.h.patch
new file mode 100644
index 000000000..74e014526
--- /dev/null
+++ b/debian/patches-rt/0132-pid.h-include-atomic.h.patch
@@ -0,0 +1,43 @@
+From 4893375573fc1c881fe9d5f74f5c3199a8adafd7 Mon Sep 17 00:00:00 2001
+From: Grygorii Strashko <Grygorii.Strashko@linaro.org>
+Date: Tue, 21 Jul 2015 19:43:56 +0300
+Subject: [PATCH 132/347] pid.h: include atomic.h
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+This patch fixes build error:
+ CC kernel/pid_namespace.o
+In file included from kernel/pid_namespace.c:11:0:
+include/linux/pid.h: In function 'get_pid':
+include/linux/pid.h:78:3: error: implicit declaration of function 'atomic_inc' [-Werror=implicit-function-declaration]
+ atomic_inc(&pid->count);
+ ^
+which happens when
+ CONFIG_PROVE_LOCKING=n
+ CONFIG_DEBUG_SPINLOCK=n
+ CONFIG_DEBUG_MUTEXES=n
+ CONFIG_DEBUG_LOCK_ALLOC=n
+ CONFIG_PID_NS=y
+
+Vanilla gets this via spinlock.h.
+
+Signed-off-by: Grygorii Strashko <Grygorii.Strashko@linaro.org>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/pid.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/linux/pid.h b/include/linux/pid.h
+index 14a9a39da9c7..a9026a5da196 100644
+--- a/include/linux/pid.h
++++ b/include/linux/pid.h
+@@ -3,6 +3,7 @@
+ #define _LINUX_PID_H
+
+ #include <linux/rculist.h>
++#include <linux/atomic.h>
+
+ enum pid_type
+ {
+--
+2.36.1
+
diff --git a/debian/patches-rt/0133-arm-include-definition-for-cpumask_t.patch b/debian/patches-rt/0133-arm-include-definition-for-cpumask_t.patch
new file mode 100644
index 000000000..770c1d0d6
--- /dev/null
+++ b/debian/patches-rt/0133-arm-include-definition-for-cpumask_t.patch
@@ -0,0 +1,31 @@
+From 83a90ab3e2bccc269afe608919d57872e41d3518 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 22 Dec 2016 17:28:33 +0100
+Subject: [PATCH 133/347] arm: include definition for cpumask_t
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+This definition gets pulled in by other files. With the (later) split of
+RCU and spinlock.h it won't compile anymore.
+The split is done in ("rbtree: don't include the rcu header").
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/arm/include/asm/irq.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/arch/arm/include/asm/irq.h b/arch/arm/include/asm/irq.h
+index 46d41140df27..c421b5b81946 100644
+--- a/arch/arm/include/asm/irq.h
++++ b/arch/arm/include/asm/irq.h
+@@ -23,6 +23,8 @@
+ #endif
+
+ #ifndef __ASSEMBLY__
++#include <linux/cpumask.h>
++
+ struct irqaction;
+ struct pt_regs;
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0134-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch b/debian/patches-rt/0134-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch
new file mode 100644
index 000000000..2777ffd6a
--- /dev/null
+++ b/debian/patches-rt/0134-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch
@@ -0,0 +1,34 @@
+From 651a6a4d30c878862e8ba912da5d7140d5e23a6e Mon Sep 17 00:00:00 2001
+From: "Wolfgang M. Reimer" <linuxball@gmail.com>
+Date: Tue, 21 Jul 2015 16:20:07 +0200
+Subject: [PATCH 134/347] locking: locktorture: Do NOT include rwlock.h
+ directly
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Including rwlock.h directly will cause kernel builds to fail
+if CONFIG_PREEMPT_RT_FULL is defined. The correct header file
+(rwlock_rt.h OR rwlock.h) will be included by spinlock.h which
+is included by locktorture.c anyway.
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Wolfgang M. Reimer <linuxball@gmail.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/locking/locktorture.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/kernel/locking/locktorture.c b/kernel/locking/locktorture.c
+index 95395ef5922a..5748c1936edb 100644
+--- a/kernel/locking/locktorture.c
++++ b/kernel/locking/locktorture.c
+@@ -29,7 +29,6 @@
+ #include <linux/kthread.h>
+ #include <linux/sched/rt.h>
+ #include <linux/spinlock.h>
+-#include <linux/rwlock.h>
+ #include <linux/mutex.h>
+ #include <linux/rwsem.h>
+ #include <linux/smp.h>
+--
+2.36.1
+
diff --git a/debian/patches-rt/0135-rtmutex-Add-rtmutex_lock_killable.patch b/debian/patches-rt/0135-rtmutex-Add-rtmutex_lock_killable.patch
new file mode 100644
index 000000000..92652b7a1
--- /dev/null
+++ b/debian/patches-rt/0135-rtmutex-Add-rtmutex_lock_killable.patch
@@ -0,0 +1,60 @@
+From 12727f37858de62d47250dc9fcee2ce4ea19dd66 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Thu, 9 Jun 2011 11:43:52 +0200
+Subject: [PATCH 135/347] rtmutex: Add rtmutex_lock_killable()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Add "killable" type to rtmutex. We need this since rtmutex are used as
+"normal" mutexes which do use this type.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/rtmutex.h | 1 +
+ kernel/locking/rtmutex.c | 19 +++++++++++++++++++
+ 2 files changed, 20 insertions(+)
+
+diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h
+index 6fd615a0eea9..81ece6a8291a 100644
+--- a/include/linux/rtmutex.h
++++ b/include/linux/rtmutex.h
+@@ -115,6 +115,7 @@ extern void rt_mutex_lock(struct rt_mutex *lock);
+ #endif
+
+ extern int rt_mutex_lock_interruptible(struct rt_mutex *lock);
++extern int rt_mutex_lock_killable(struct rt_mutex *lock);
+ extern int rt_mutex_timed_lock(struct rt_mutex *lock,
+ struct hrtimer_sleeper *timeout);
+
+diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
+index 069f025180b8..81bae2e3d82e 100644
+--- a/kernel/locking/rtmutex.c
++++ b/kernel/locking/rtmutex.c
+@@ -1562,6 +1562,25 @@ int __sched __rt_mutex_futex_trylock(struct rt_mutex *lock)
+ return __rt_mutex_slowtrylock(lock);
+ }
+
++/**
++ * rt_mutex_lock_killable - lock a rt_mutex killable
++ *
++ * @lock: the rt_mutex to be locked
++ * @detect_deadlock: deadlock detection on/off
++ *
++ * Returns:
++ * 0 on success
++ * -EINTR when interrupted by a signal
++ * -EDEADLK when the lock would deadlock (when deadlock detection is on)
++ */
++int __sched rt_mutex_lock_killable(struct rt_mutex *lock)
++{
++ might_sleep();
++
++ return rt_mutex_fastlock(lock, TASK_KILLABLE, rt_mutex_slowlock);
++}
++EXPORT_SYMBOL_GPL(rt_mutex_lock_killable);
++
+ /**
+ * rt_mutex_timed_lock - lock a rt_mutex interruptible
+ * the timeout structure is provided
+--
+2.36.1
+
diff --git a/debian/patches-rt/0136-rtmutex-Make-lock_killable-work.patch b/debian/patches-rt/0136-rtmutex-Make-lock_killable-work.patch
new file mode 100644
index 000000000..605d0286e
--- /dev/null
+++ b/debian/patches-rt/0136-rtmutex-Make-lock_killable-work.patch
@@ -0,0 +1,51 @@
+From 36064ed74738cac8ebb382e5ce34d55a8f2e24a8 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Sat, 1 Apr 2017 12:50:59 +0200
+Subject: [PATCH 136/347] rtmutex: Make lock_killable work
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Locking an rt mutex killable does not work because signal handling is
+restricted to TASK_INTERRUPTIBLE.
+
+Use signal_pending_state() unconditionaly.
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/locking/rtmutex.c | 19 +++++++------------
+ 1 file changed, 7 insertions(+), 12 deletions(-)
+
+diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
+index 81bae2e3d82e..333c4b7aa8e8 100644
+--- a/kernel/locking/rtmutex.c
++++ b/kernel/locking/rtmutex.c
+@@ -1201,18 +1201,13 @@ __rt_mutex_slowlock(struct rt_mutex *lock, int state,
+ if (try_to_take_rt_mutex(lock, current, waiter))
+ break;
+
+- /*
+- * TASK_INTERRUPTIBLE checks for signals and
+- * timeout. Ignored otherwise.
+- */
+- if (likely(state == TASK_INTERRUPTIBLE)) {
+- /* Signal pending? */
+- if (signal_pending(current))
+- ret = -EINTR;
+- if (timeout && !timeout->task)
+- ret = -ETIMEDOUT;
+- if (ret)
+- break;
++ if (timeout && !timeout->task) {
++ ret = -ETIMEDOUT;
++ break;
++ }
++ if (signal_pending_state(state, current)) {
++ ret = -EINTR;
++ break;
+ }
+
+ raw_spin_unlock_irq(&lock->wait_lock);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0137-spinlock-Split-the-lock-types-header.patch b/debian/patches-rt/0137-spinlock-Split-the-lock-types-header.patch
new file mode 100644
index 000000000..472048028
--- /dev/null
+++ b/debian/patches-rt/0137-spinlock-Split-the-lock-types-header.patch
@@ -0,0 +1,221 @@
+From ea56713a6d4b07d5d16d350f989ea6e4575feb41 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 29 Jun 2011 19:34:01 +0200
+Subject: [PATCH 137/347] spinlock: Split the lock types header
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+spinlocks.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/rwlock_types.h | 4 ++
+ include/linux/spinlock_types.h | 71 +----------------------------
+ include/linux/spinlock_types_nort.h | 33 ++++++++++++++
+ include/linux/spinlock_types_raw.h | 55 ++++++++++++++++++++++
+ 4 files changed, 94 insertions(+), 69 deletions(-)
+ create mode 100644 include/linux/spinlock_types_nort.h
+ create mode 100644 include/linux/spinlock_types_raw.h
+
+diff --git a/include/linux/rwlock_types.h b/include/linux/rwlock_types.h
+index 857a72ceb794..c21683f3e14a 100644
+--- a/include/linux/rwlock_types.h
++++ b/include/linux/rwlock_types.h
+@@ -1,6 +1,10 @@
+ #ifndef __LINUX_RWLOCK_TYPES_H
+ #define __LINUX_RWLOCK_TYPES_H
+
++#if !defined(__LINUX_SPINLOCK_TYPES_H)
++# error "Do not include directly, include spinlock_types.h"
++#endif
++
+ /*
+ * 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 24b4e6f2c1a2..5c8664d57fb8 100644
+--- a/include/linux/spinlock_types.h
++++ b/include/linux/spinlock_types.h
+@@ -9,76 +9,9 @@
+ * Released under the General Public License (GPL).
+ */
+
+-#if defined(CONFIG_SMP)
+-# include <asm/spinlock_types.h>
+-#else
+-# include <linux/spinlock_types_up.h>
+-#endif
++#include <linux/spinlock_types_raw.h>
+
+-#include <linux/lockdep.h>
+-
+-typedef struct raw_spinlock {
+- arch_spinlock_t raw_lock;
+-#ifdef CONFIG_DEBUG_SPINLOCK
+- unsigned int magic, owner_cpu;
+- void *owner;
+-#endif
+-#ifdef CONFIG_DEBUG_LOCK_ALLOC
+- struct lockdep_map dep_map;
+-#endif
+-} raw_spinlock_t;
+-
+-#define SPINLOCK_MAGIC 0xdead4ead
+-
+-#define SPINLOCK_OWNER_INIT ((void *)-1L)
+-
+-#ifdef CONFIG_DEBUG_LOCK_ALLOC
+-# define SPIN_DEP_MAP_INIT(lockname) .dep_map = { .name = #lockname }
+-#else
+-# define SPIN_DEP_MAP_INIT(lockname)
+-#endif
+-
+-#ifdef CONFIG_DEBUG_SPINLOCK
+-# define SPIN_DEBUG_INIT(lockname) \
+- .magic = SPINLOCK_MAGIC, \
+- .owner_cpu = -1, \
+- .owner = SPINLOCK_OWNER_INIT,
+-#else
+-# define SPIN_DEBUG_INIT(lockname)
+-#endif
+-
+-#define __RAW_SPIN_LOCK_INITIALIZER(lockname) \
+- { \
+- .raw_lock = __ARCH_SPIN_LOCK_UNLOCKED, \
+- SPIN_DEBUG_INIT(lockname) \
+- SPIN_DEP_MAP_INIT(lockname) }
+-
+-#define __RAW_SPIN_LOCK_UNLOCKED(lockname) \
+- (raw_spinlock_t) __RAW_SPIN_LOCK_INITIALIZER(lockname)
+-
+-#define DEFINE_RAW_SPINLOCK(x) raw_spinlock_t x = __RAW_SPIN_LOCK_UNLOCKED(x)
+-
+-typedef struct spinlock {
+- union {
+- struct raw_spinlock rlock;
+-
+-#ifdef CONFIG_DEBUG_LOCK_ALLOC
+-# define LOCK_PADSIZE (offsetof(struct raw_spinlock, dep_map))
+- struct {
+- u8 __padding[LOCK_PADSIZE];
+- struct lockdep_map dep_map;
+- };
+-#endif
+- };
+-} spinlock_t;
+-
+-#define __SPIN_LOCK_INITIALIZER(lockname) \
+- { { .rlock = __RAW_SPIN_LOCK_INITIALIZER(lockname) } }
+-
+-#define __SPIN_LOCK_UNLOCKED(lockname) \
+- (spinlock_t ) __SPIN_LOCK_INITIALIZER(lockname)
+-
+-#define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
++#include <linux/spinlock_types_nort.h>
+
+ #include <linux/rwlock_types.h>
+
+diff --git a/include/linux/spinlock_types_nort.h b/include/linux/spinlock_types_nort.h
+new file mode 100644
+index 000000000000..f1dac1fb1d6a
+--- /dev/null
++++ b/include/linux/spinlock_types_nort.h
+@@ -0,0 +1,33 @@
++#ifndef __LINUX_SPINLOCK_TYPES_NORT_H
++#define __LINUX_SPINLOCK_TYPES_NORT_H
++
++#ifndef __LINUX_SPINLOCK_TYPES_H
++#error "Do not include directly. Include spinlock_types.h instead"
++#endif
++
++/*
++ * The non RT version maps spinlocks to raw_spinlocks
++ */
++typedef struct spinlock {
++ union {
++ struct raw_spinlock rlock;
++
++#ifdef CONFIG_DEBUG_LOCK_ALLOC
++# define LOCK_PADSIZE (offsetof(struct raw_spinlock, dep_map))
++ struct {
++ u8 __padding[LOCK_PADSIZE];
++ struct lockdep_map dep_map;
++ };
++#endif
++ };
++} spinlock_t;
++
++#define __SPIN_LOCK_INITIALIZER(lockname) \
++ { { .rlock = __RAW_SPIN_LOCK_INITIALIZER(lockname) } }
++
++#define __SPIN_LOCK_UNLOCKED(lockname) \
++ (spinlock_t ) __SPIN_LOCK_INITIALIZER(lockname)
++
++#define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
++
++#endif
+diff --git a/include/linux/spinlock_types_raw.h b/include/linux/spinlock_types_raw.h
+new file mode 100644
+index 000000000000..822bf64a61d3
+--- /dev/null
++++ b/include/linux/spinlock_types_raw.h
+@@ -0,0 +1,55 @@
++#ifndef __LINUX_SPINLOCK_TYPES_RAW_H
++#define __LINUX_SPINLOCK_TYPES_RAW_H
++
++#include <linux/types.h>
++
++#if defined(CONFIG_SMP)
++# include <asm/spinlock_types.h>
++#else
++# include <linux/spinlock_types_up.h>
++#endif
++
++#include <linux/lockdep.h>
++
++typedef struct raw_spinlock {
++ arch_spinlock_t raw_lock;
++#ifdef CONFIG_DEBUG_SPINLOCK
++ unsigned int magic, owner_cpu;
++ void *owner;
++#endif
++#ifdef CONFIG_DEBUG_LOCK_ALLOC
++ struct lockdep_map dep_map;
++#endif
++} raw_spinlock_t;
++
++#define SPINLOCK_MAGIC 0xdead4ead
++
++#define SPINLOCK_OWNER_INIT ((void *)-1L)
++
++#ifdef CONFIG_DEBUG_LOCK_ALLOC
++# define SPIN_DEP_MAP_INIT(lockname) .dep_map = { .name = #lockname }
++#else
++# define SPIN_DEP_MAP_INIT(lockname)
++#endif
++
++#ifdef CONFIG_DEBUG_SPINLOCK
++# define SPIN_DEBUG_INIT(lockname) \
++ .magic = SPINLOCK_MAGIC, \
++ .owner_cpu = -1, \
++ .owner = SPINLOCK_OWNER_INIT,
++#else
++# define SPIN_DEBUG_INIT(lockname)
++#endif
++
++#define __RAW_SPIN_LOCK_INITIALIZER(lockname) \
++ { \
++ .raw_lock = __ARCH_SPIN_LOCK_UNLOCKED, \
++ SPIN_DEBUG_INIT(lockname) \
++ SPIN_DEP_MAP_INIT(lockname) }
++
++#define __RAW_SPIN_LOCK_UNLOCKED(lockname) \
++ (raw_spinlock_t) __RAW_SPIN_LOCK_INITIALIZER(lockname)
++
++#define DEFINE_RAW_SPINLOCK(x) raw_spinlock_t x = __RAW_SPIN_LOCK_UNLOCKED(x)
++
++#endif
+--
+2.36.1
+
diff --git a/debian/patches-rt/0138-rtmutex-Avoid-include-hell.patch b/debian/patches-rt/0138-rtmutex-Avoid-include-hell.patch
new file mode 100644
index 000000000..7ffdecc51
--- /dev/null
+++ b/debian/patches-rt/0138-rtmutex-Avoid-include-hell.patch
@@ -0,0 +1,30 @@
+From b243e04054c677bb38c429d31e62f64af1db11fe Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 29 Jun 2011 20:06:39 +0200
+Subject: [PATCH 138/347] rtmutex: Avoid include hell
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/rtmutex.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h
+index 81ece6a8291a..a355289b1fa1 100644
+--- a/include/linux/rtmutex.h
++++ b/include/linux/rtmutex.h
+@@ -15,7 +15,7 @@
+
+ #include <linux/linkage.h>
+ #include <linux/rbtree.h>
+-#include <linux/spinlock_types.h>
++#include <linux/spinlock_types_raw.h>
+
+ extern int max_lock_depth; /* for sysctl */
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0139-rbtree-don-t-include-the-rcu-header.patch b/debian/patches-rt/0139-rbtree-don-t-include-the-rcu-header.patch
new file mode 100644
index 000000000..e300e5d34
--- /dev/null
+++ b/debian/patches-rt/0139-rbtree-don-t-include-the-rcu-header.patch
@@ -0,0 +1,175 @@
+From 5bd4fe94ce198734cd4b23d3486b154486f137ae Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 26 Feb 2019 16:56:02 +0100
+Subject: [PATCH 139/347] rbtree: don't include the rcu header
+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/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The RCU header pulls in spinlock.h and fails due not yet defined types:
+
+|In file included from include/linux/spinlock.h:275:0,
+| from include/linux/rcupdate.h:38,
+| from include/linux/rbtree.h:34,
+| from include/linux/rtmutex.h:17,
+| from include/linux/spinlock_types.h:18,
+| from kernel/bounds.c:13:
+|include/linux/rwlock_rt.h:16:38: error: unknown type name ‘rwlock_t’
+| extern void __lockfunc rt_write_lock(rwlock_t *rwlock);
+| ^
+
+This patch moves the required RCU function from the rcupdate.h header file into
+a new header file which can be included by both users.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/rbtree.h | 2 +-
+ include/linux/rcu_assign_pointer.h | 54 ++++++++++++++++++++++++++++++
+ include/linux/rcupdate.h | 49 +--------------------------
+ 3 files changed, 56 insertions(+), 49 deletions(-)
+ create mode 100644 include/linux/rcu_assign_pointer.h
+
+diff --git a/include/linux/rbtree.h b/include/linux/rbtree.h
+index fcbeed4053ef..2aa2aec354c2 100644
+--- a/include/linux/rbtree.h
++++ b/include/linux/rbtree.h
+@@ -31,7 +31,7 @@
+
+ #include <linux/kernel.h>
+ #include <linux/stddef.h>
+-#include <linux/rcupdate.h>
++#include <linux/rcu_assign_pointer.h>
+
+ struct rb_node {
+ unsigned long __rb_parent_color;
+diff --git a/include/linux/rcu_assign_pointer.h b/include/linux/rcu_assign_pointer.h
+new file mode 100644
+index 000000000000..7066962a4379
+--- /dev/null
++++ b/include/linux/rcu_assign_pointer.h
+@@ -0,0 +1,54 @@
++#ifndef __LINUX_RCU_ASSIGN_POINTER_H__
++#define __LINUX_RCU_ASSIGN_POINTER_H__
++#include <linux/compiler.h>
++#include <asm/barrier.h>
++
++/**
++ * RCU_INITIALIZER() - statically initialize an RCU-protected global variable
++ * @v: The value to statically initialize with.
++ */
++#define RCU_INITIALIZER(v) (typeof(*(v)) __force __rcu *)(v)
++
++/**
++ * rcu_assign_pointer() - assign to RCU-protected pointer
++ * @p: pointer to assign to
++ * @v: value to assign (publish)
++ *
++ * Assigns the specified value to the specified RCU-protected
++ * pointer, ensuring that any concurrent RCU readers will see
++ * any prior initialization.
++ *
++ * Inserts memory barriers on architectures that require them
++ * (which is most of them), and also prevents the compiler from
++ * reordering the code that initializes the structure after the pointer
++ * assignment. More importantly, this call documents which pointers
++ * will be dereferenced by RCU read-side code.
++ *
++ * In some special cases, you may use RCU_INIT_POINTER() instead
++ * of rcu_assign_pointer(). RCU_INIT_POINTER() is a bit faster due
++ * to the fact that it does not constrain either the CPU or the compiler.
++ * That said, using RCU_INIT_POINTER() when you should have used
++ * rcu_assign_pointer() is a very bad thing that results in
++ * impossible-to-diagnose memory corruption. So please be careful.
++ * See the RCU_INIT_POINTER() comment header for details.
++ *
++ * Note that rcu_assign_pointer() evaluates each of its arguments only
++ * once, appearances notwithstanding. One of the "extra" evaluations
++ * is in typeof() and the other visible only to sparse (__CHECKER__),
++ * neither of which actually execute the argument. As with most cpp
++ * macros, this execute-arguments-only-once property is important, so
++ * please be careful when making changes to rcu_assign_pointer() and the
++ * other macros that it invokes.
++ */
++#define rcu_assign_pointer(p, v) \
++({ \
++ uintptr_t _r_a_p__v = (uintptr_t)(v); \
++ \
++ if (__builtin_constant_p(v) && (_r_a_p__v) == (uintptr_t)NULL) \
++ WRITE_ONCE((p), (typeof(p))(_r_a_p__v)); \
++ else \
++ smp_store_release(&p, RCU_INITIALIZER((typeof(p))_r_a_p__v)); \
++ _r_a_p__v; \
++})
++
++#endif
+diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
+index 027c58cdbb6e..e6733d7911e9 100644
+--- a/include/linux/rcupdate.h
++++ b/include/linux/rcupdate.h
+@@ -42,6 +42,7 @@
+ #include <linux/lockdep.h>
+ #include <asm/processor.h>
+ #include <linux/cpumask.h>
++#include <linux/rcu_assign_pointer.h>
+
+ #define ULONG_CMP_GE(a, b) (ULONG_MAX / 2 >= (a) - (b))
+ #define ULONG_CMP_LT(a, b) (ULONG_MAX / 2 < (a) - (b))
+@@ -369,54 +370,6 @@ static inline void rcu_preempt_sleep_check(void) { }
+ ((typeof(*p) __force __kernel *)(________p1)); \
+ })
+
+-/**
+- * RCU_INITIALIZER() - statically initialize an RCU-protected global variable
+- * @v: The value to statically initialize with.
+- */
+-#define RCU_INITIALIZER(v) (typeof(*(v)) __force __rcu *)(v)
+-
+-/**
+- * rcu_assign_pointer() - assign to RCU-protected pointer
+- * @p: pointer to assign to
+- * @v: value to assign (publish)
+- *
+- * Assigns the specified value to the specified RCU-protected
+- * pointer, ensuring that any concurrent RCU readers will see
+- * any prior initialization.
+- *
+- * Inserts memory barriers on architectures that require them
+- * (which is most of them), and also prevents the compiler from
+- * reordering the code that initializes the structure after the pointer
+- * assignment. More importantly, this call documents which pointers
+- * will be dereferenced by RCU read-side code.
+- *
+- * In some special cases, you may use RCU_INIT_POINTER() instead
+- * of rcu_assign_pointer(). RCU_INIT_POINTER() is a bit faster due
+- * to the fact that it does not constrain either the CPU or the compiler.
+- * That said, using RCU_INIT_POINTER() when you should have used
+- * rcu_assign_pointer() is a very bad thing that results in
+- * impossible-to-diagnose memory corruption. So please be careful.
+- * See the RCU_INIT_POINTER() comment header for details.
+- *
+- * Note that rcu_assign_pointer() evaluates each of its arguments only
+- * once, appearances notwithstanding. One of the "extra" evaluations
+- * is in typeof() and the other visible only to sparse (__CHECKER__),
+- * neither of which actually execute the argument. As with most cpp
+- * macros, this execute-arguments-only-once property is important, so
+- * please be careful when making changes to rcu_assign_pointer() and the
+- * other macros that it invokes.
+- */
+-#define rcu_assign_pointer(p, v) \
+-({ \
+- uintptr_t _r_a_p__v = (uintptr_t)(v); \
+- \
+- if (__builtin_constant_p(v) && (_r_a_p__v) == (uintptr_t)NULL) \
+- WRITE_ONCE((p), (typeof(p))(_r_a_p__v)); \
+- else \
+- smp_store_release(&p, RCU_INITIALIZER((typeof(p))_r_a_p__v)); \
+- _r_a_p__v; \
+-})
+-
+ /**
+ * rcu_swap_protected() - swap an RCU and a regular pointer
+ * @rcu_ptr: RCU pointer
+--
+2.36.1
+
diff --git a/debian/patches-rt/0140-rtmutex-Provide-rt_mutex_slowlock_locked.patch b/debian/patches-rt/0140-rtmutex-Provide-rt_mutex_slowlock_locked.patch
new file mode 100644
index 000000000..d63649047
--- /dev/null
+++ b/debian/patches-rt/0140-rtmutex-Provide-rt_mutex_slowlock_locked.patch
@@ -0,0 +1,145 @@
+From 2263182a5f18a0abbe7ba2d582f42308580bbd31 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Thu, 12 Oct 2017 16:14:22 +0200
+Subject: [PATCH 140/347] rtmutex: Provide rt_mutex_slowlock_locked()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+This is the inner-part of rt_mutex_slowlock(), required for rwsem-rt.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/locking/rtmutex.c | 67 +++++++++++++++++++--------------
+ kernel/locking/rtmutex_common.h | 7 ++++
+ 2 files changed, 45 insertions(+), 29 deletions(-)
+
+diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
+index 333c4b7aa8e8..e9255b28de8f 100644
+--- a/kernel/locking/rtmutex.c
++++ b/kernel/locking/rtmutex.c
+@@ -1244,35 +1244,16 @@ static void rt_mutex_handle_deadlock(int res, int detect_deadlock,
+ }
+ }
+
+-/*
+- * Slow path lock function:
+- */
+-static int __sched
+-rt_mutex_slowlock(struct rt_mutex *lock, int state,
+- struct hrtimer_sleeper *timeout,
+- enum rtmutex_chainwalk chwalk)
++int __sched rt_mutex_slowlock_locked(struct rt_mutex *lock, int state,
++ struct hrtimer_sleeper *timeout,
++ enum rtmutex_chainwalk chwalk,
++ struct rt_mutex_waiter *waiter)
+ {
+- struct rt_mutex_waiter waiter;
+- unsigned long flags;
+- int ret = 0;
+-
+- rt_mutex_init_waiter(&waiter);
+-
+- /*
+- * Technically we could use raw_spin_[un]lock_irq() here, but this can
+- * be called in early boot if the cmpxchg() fast path is disabled
+- * (debug, no architecture support). In this case we will acquire the
+- * rtmutex with lock->wait_lock held. But we cannot unconditionally
+- * enable interrupts in that early boot case. So we need to use the
+- * irqsave/restore variants.
+- */
+- raw_spin_lock_irqsave(&lock->wait_lock, flags);
++ int ret;
+
+ /* Try to acquire the lock again: */
+- if (try_to_take_rt_mutex(lock, current, NULL)) {
+- raw_spin_unlock_irqrestore(&lock->wait_lock, flags);
++ if (try_to_take_rt_mutex(lock, current, NULL))
+ return 0;
+- }
+
+ set_current_state(state);
+
+@@ -1280,16 +1261,16 @@ rt_mutex_slowlock(struct rt_mutex *lock, int state,
+ if (unlikely(timeout))
+ hrtimer_start_expires(&timeout->timer, HRTIMER_MODE_ABS);
+
+- ret = task_blocks_on_rt_mutex(lock, &waiter, current, chwalk);
++ ret = task_blocks_on_rt_mutex(lock, waiter, current, chwalk);
+
+ if (likely(!ret))
+ /* sleep on the mutex */
+- ret = __rt_mutex_slowlock(lock, state, timeout, &waiter);
++ ret = __rt_mutex_slowlock(lock, state, timeout, waiter);
+
+ if (unlikely(ret)) {
+ __set_current_state(TASK_RUNNING);
+- remove_waiter(lock, &waiter);
+- rt_mutex_handle_deadlock(ret, chwalk, &waiter);
++ remove_waiter(lock, waiter);
++ rt_mutex_handle_deadlock(ret, chwalk, waiter);
+ }
+
+ /*
+@@ -1297,6 +1278,34 @@ rt_mutex_slowlock(struct rt_mutex *lock, int state,
+ * unconditionally. We might have to fix that up.
+ */
+ fixup_rt_mutex_waiters(lock);
++ return ret;
++}
++
++/*
++ * Slow path lock function:
++ */
++static int __sched
++rt_mutex_slowlock(struct rt_mutex *lock, int state,
++ struct hrtimer_sleeper *timeout,
++ enum rtmutex_chainwalk chwalk)
++{
++ struct rt_mutex_waiter waiter;
++ unsigned long flags;
++ int ret = 0;
++
++ rt_mutex_init_waiter(&waiter);
++
++ /*
++ * Technically we could use raw_spin_[un]lock_irq() here, but this can
++ * be called in early boot if the cmpxchg() fast path is disabled
++ * (debug, no architecture support). In this case we will acquire the
++ * rtmutex with lock->wait_lock held. But we cannot unconditionally
++ * enable interrupts in that early boot case. So we need to use the
++ * irqsave/restore variants.
++ */
++ raw_spin_lock_irqsave(&lock->wait_lock, flags);
++
++ ret = rt_mutex_slowlock_locked(lock, state, timeout, chwalk, &waiter);
+
+ raw_spin_unlock_irqrestore(&lock->wait_lock, flags);
+
+diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h
+index 202e2b0d1251..66deb94765fb 100644
+--- a/kernel/locking/rtmutex_common.h
++++ b/kernel/locking/rtmutex_common.h
+@@ -15,6 +15,7 @@
+
+ #include <linux/rtmutex.h>
+ #include <linux/sched/wake_q.h>
++#include <linux/sched/debug.h>
+
+ /*
+ * This is the control structure for tasks blocked on a rt_mutex,
+@@ -158,6 +159,12 @@ extern bool __rt_mutex_futex_unlock(struct rt_mutex *lock,
+ struct wake_q_head *wqh);
+
+ extern void rt_mutex_postunlock(struct wake_q_head *wake_q);
++/* RW semaphore special interface */
++
++int __sched rt_mutex_slowlock_locked(struct rt_mutex *lock, int state,
++ struct hrtimer_sleeper *timeout,
++ enum rtmutex_chainwalk chwalk,
++ struct rt_mutex_waiter *waiter);
+
+ #ifdef CONFIG_DEBUG_RT_MUTEXES
+ # include "rtmutex-debug.h"
+--
+2.36.1
+
diff --git a/debian/patches-rt/0141-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch b/debian/patches-rt/0141-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch
new file mode 100644
index 000000000..23300e884
--- /dev/null
+++ b/debian/patches-rt/0141-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch
@@ -0,0 +1,153 @@
+From 1b3711a9fe0b85e927a131441083be32b7879496 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Thu, 12 Oct 2017 16:36:39 +0200
+Subject: [PATCH 141/347] rtmutex: export lockdep-less version of rt_mutex's
+ lock, trylock and unlock
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Required for lock implementation ontop of rtmutex.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/locking/rtmutex.c | 67 +++++++++++++++++++++------------
+ kernel/locking/rtmutex_common.h | 3 ++
+ 2 files changed, 46 insertions(+), 24 deletions(-)
+
+diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
+index e9255b28de8f..e24699290bb7 100644
+--- a/kernel/locking/rtmutex.c
++++ b/kernel/locking/rtmutex.c
+@@ -1494,12 +1494,33 @@ rt_mutex_fastunlock(struct rt_mutex *lock,
+ rt_mutex_postunlock(&wake_q);
+ }
+
+-static inline void __rt_mutex_lock(struct rt_mutex *lock, unsigned int subclass)
++int __sched __rt_mutex_lock_state(struct rt_mutex *lock, int state)
+ {
+ might_sleep();
++ return rt_mutex_fastlock(lock, state, rt_mutex_slowlock);
++}
++
++/**
++ * rt_mutex_lock_state - lock a rt_mutex with a given state
++ *
++ * @lock: The rt_mutex to be locked
++ * @state: The state to set when blocking on the rt_mutex
++ */
++static inline int __sched rt_mutex_lock_state(struct rt_mutex *lock,
++ unsigned int subclass, int state)
++{
++ int ret;
+
+ mutex_acquire(&lock->dep_map, subclass, 0, _RET_IP_);
+- rt_mutex_fastlock(lock, TASK_UNINTERRUPTIBLE, rt_mutex_slowlock);
++ ret = __rt_mutex_lock_state(lock, state);
++ if (ret)
++ mutex_release(&lock->dep_map, 1, _RET_IP_);
++ return ret;
++}
++
++static inline void __rt_mutex_lock(struct rt_mutex *lock, unsigned int subclass)
++{
++ rt_mutex_lock_state(lock, subclass, TASK_UNINTERRUPTIBLE);
+ }
+
+ #ifdef CONFIG_DEBUG_LOCK_ALLOC
+@@ -1540,16 +1561,7 @@ EXPORT_SYMBOL_GPL(rt_mutex_lock);
+ */
+ int __sched rt_mutex_lock_interruptible(struct rt_mutex *lock)
+ {
+- int ret;
+-
+- might_sleep();
+-
+- mutex_acquire(&lock->dep_map, 0, 0, _RET_IP_);
+- ret = rt_mutex_fastlock(lock, TASK_INTERRUPTIBLE, rt_mutex_slowlock);
+- if (ret)
+- mutex_release(&lock->dep_map, 1, _RET_IP_);
+-
+- return ret;
++ return rt_mutex_lock_state(lock, 0, TASK_INTERRUPTIBLE);
+ }
+ EXPORT_SYMBOL_GPL(rt_mutex_lock_interruptible);
+
+@@ -1575,13 +1587,10 @@ int __sched __rt_mutex_futex_trylock(struct rt_mutex *lock)
+ * Returns:
+ * 0 on success
+ * -EINTR when interrupted by a signal
+- * -EDEADLK when the lock would deadlock (when deadlock detection is on)
+ */
+ int __sched rt_mutex_lock_killable(struct rt_mutex *lock)
+ {
+- might_sleep();
+-
+- return rt_mutex_fastlock(lock, TASK_KILLABLE, rt_mutex_slowlock);
++ return rt_mutex_lock_state(lock, 0, TASK_KILLABLE);
+ }
+ EXPORT_SYMBOL_GPL(rt_mutex_lock_killable);
+
+@@ -1616,6 +1625,18 @@ rt_mutex_timed_lock(struct rt_mutex *lock, struct hrtimer_sleeper *timeout)
+ }
+ EXPORT_SYMBOL_GPL(rt_mutex_timed_lock);
+
++int __sched __rt_mutex_trylock(struct rt_mutex *lock)
++{
++#ifdef CONFIG_PREEMPT_RT_FULL
++ if (WARN_ON_ONCE(in_irq() || in_nmi()))
++#else
++ if (WARN_ON_ONCE(in_irq() || in_nmi() || in_serving_softirq()))
++#endif
++ return 0;
++
++ return rt_mutex_fasttrylock(lock, rt_mutex_slowtrylock);
++}
++
+ /**
+ * rt_mutex_trylock - try to lock a rt_mutex
+ *
+@@ -1631,14 +1652,7 @@ int __sched rt_mutex_trylock(struct rt_mutex *lock)
+ {
+ int ret;
+
+-#ifdef CONFIG_PREEMPT_RT_FULL
+- if (WARN_ON_ONCE(in_irq() || in_nmi()))
+-#else
+- if (WARN_ON_ONCE(in_irq() || in_nmi() || in_serving_softirq()))
+-#endif
+- return 0;
+-
+- ret = rt_mutex_fasttrylock(lock, rt_mutex_slowtrylock);
++ ret = __rt_mutex_trylock(lock);
+ if (ret)
+ mutex_acquire(&lock->dep_map, 0, 1, _RET_IP_);
+
+@@ -1646,6 +1660,11 @@ int __sched rt_mutex_trylock(struct rt_mutex *lock)
+ }
+ EXPORT_SYMBOL_GPL(rt_mutex_trylock);
+
++void __sched __rt_mutex_unlock(struct rt_mutex *lock)
++{
++ rt_mutex_fastunlock(lock, rt_mutex_slowunlock);
++}
++
+ /**
+ * rt_mutex_unlock - unlock a rt_mutex
+ *
+diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h
+index 66deb94765fb..53a8c5d03d28 100644
+--- a/kernel/locking/rtmutex_common.h
++++ b/kernel/locking/rtmutex_common.h
+@@ -161,6 +161,9 @@ extern bool __rt_mutex_futex_unlock(struct rt_mutex *lock,
+ extern void rt_mutex_postunlock(struct wake_q_head *wake_q);
+ /* RW semaphore special interface */
+
++extern int __rt_mutex_lock_state(struct rt_mutex *lock, int state);
++extern int __rt_mutex_trylock(struct rt_mutex *lock);
++extern void __rt_mutex_unlock(struct rt_mutex *lock);
+ int __sched rt_mutex_slowlock_locked(struct rt_mutex *lock, int state,
+ struct hrtimer_sleeper *timeout,
+ enum rtmutex_chainwalk chwalk,
+--
+2.36.1
+
diff --git a/debian/patches-rt/0142-rtmutex-add-sleeping-lock-implementation.patch b/debian/patches-rt/0142-rtmutex-add-sleeping-lock-implementation.patch
new file mode 100644
index 000000000..1e1934085
--- /dev/null
+++ b/debian/patches-rt/0142-rtmutex-add-sleeping-lock-implementation.patch
@@ -0,0 +1,1209 @@
+From 16d4ed57212cef457bf87864ffb00f8b297f06e2 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Thu, 12 Oct 2017 17:11:19 +0200
+Subject: [PATCH 142/347] rtmutex: add sleeping lock implementation
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/kernel.h | 4 +
+ include/linux/rtmutex.h | 21 +-
+ include/linux/sched.h | 8 +
+ include/linux/sched/wake_q.h | 27 +-
+ include/linux/spinlock_rt.h | 156 +++++++++++
+ include/linux/spinlock_types_rt.h | 48 ++++
+ kernel/fork.c | 1 +
+ kernel/futex.c | 10 +-
+ kernel/locking/rtmutex.c | 436 +++++++++++++++++++++++++++---
+ kernel/locking/rtmutex_common.h | 14 +-
+ kernel/sched/core.c | 28 +-
+ 11 files changed, 695 insertions(+), 58 deletions(-)
+ create mode 100644 include/linux/spinlock_rt.h
+ create mode 100644 include/linux/spinlock_types_rt.h
+
+diff --git a/include/linux/kernel.h b/include/linux/kernel.h
+index 50733abbe548..64ef575435bb 100644
+--- a/include/linux/kernel.h
++++ b/include/linux/kernel.h
+@@ -260,6 +260,9 @@ extern int _cond_resched(void);
+ */
+ # define might_sleep() \
+ do { __might_sleep(__FILE__, __LINE__, 0); might_resched(); } while (0)
++
++# define might_sleep_no_state_check() \
++ do { ___might_sleep(__FILE__, __LINE__, 0); might_resched(); } while (0)
+ # define sched_annotate_sleep() (current->task_state_change = 0)
+ #else
+ static inline void ___might_sleep(const char *file, int line,
+@@ -267,6 +270,7 @@ extern int _cond_resched(void);
+ static inline void __might_sleep(const char *file, int line,
+ int preempt_offset) { }
+ # define might_sleep() do { might_resched(); } while (0)
++# define might_sleep_no_state_check() do { might_resched(); } while (0)
+ # define sched_annotate_sleep() do { } while (0)
+ #endif
+
+diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h
+index a355289b1fa1..138bd1e183e0 100644
+--- a/include/linux/rtmutex.h
++++ b/include/linux/rtmutex.h
+@@ -14,11 +14,15 @@
+ #define __LINUX_RT_MUTEX_H
+
+ #include <linux/linkage.h>
+-#include <linux/rbtree.h>
+ #include <linux/spinlock_types_raw.h>
++#include <linux/rbtree.h>
+
+ extern int max_lock_depth; /* for sysctl */
+
++#ifdef CONFIG_DEBUG_MUTEXES
++#include <linux/debug_locks.h>
++#endif
++
+ /**
+ * The rt_mutex structure
+ *
+@@ -31,8 +35,8 @@ struct rt_mutex {
+ raw_spinlock_t wait_lock;
+ struct rb_root_cached waiters;
+ struct task_struct *owner;
+-#ifdef CONFIG_DEBUG_RT_MUTEXES
+ int save_state;
++#ifdef CONFIG_DEBUG_RT_MUTEXES
+ const char *name, *file;
+ int line;
+ void *magic;
+@@ -82,16 +86,23 @@ do { \
+ #define __DEP_MAP_RT_MUTEX_INITIALIZER(mutexname)
+ #endif
+
+-#define __RT_MUTEX_INITIALIZER(mutexname) \
+- { .wait_lock = __RAW_SPIN_LOCK_UNLOCKED(mutexname.wait_lock) \
++#define __RT_MUTEX_INITIALIZER_PLAIN(mutexname) \
++ .wait_lock = __RAW_SPIN_LOCK_UNLOCKED(mutexname.wait_lock) \
+ , .waiters = RB_ROOT_CACHED \
+ , .owner = NULL \
+ __DEBUG_RT_MUTEX_INITIALIZER(mutexname) \
+- __DEP_MAP_RT_MUTEX_INITIALIZER(mutexname)}
++ __DEP_MAP_RT_MUTEX_INITIALIZER(mutexname)
++
++#define __RT_MUTEX_INITIALIZER(mutexname) \
++ { __RT_MUTEX_INITIALIZER_PLAIN(mutexname) }
+
+ #define DEFINE_RT_MUTEX(mutexname) \
+ struct rt_mutex mutexname = __RT_MUTEX_INITIALIZER(mutexname)
+
++#define __RT_MUTEX_INITIALIZER_SAVE_STATE(mutexname) \
++ { __RT_MUTEX_INITIALIZER_PLAIN(mutexname) \
++ , .save_state = 1 }
++
+ /**
+ * rt_mutex_is_locked - is the mutex locked
+ * @lock: the mutex to be queried
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index 63a97f24d138..e4e206a1e7dd 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -134,6 +134,9 @@ struct task_group;
+ smp_store_mb(current->state, (state_value)); \
+ } while (0)
+
++#define __set_current_state_no_track(state_value) \
++ current->state = (state_value);
++
+ #define set_special_state(state_value) \
+ do { \
+ unsigned long flags; /* may shadow */ \
+@@ -143,6 +146,7 @@ struct task_group;
+ current->state = (state_value); \
+ raw_spin_unlock_irqrestore(&current->pi_lock, flags); \
+ } while (0)
++
+ #else
+ /*
+ * set_current_state() includes a barrier so that the write of current->state
+@@ -187,6 +191,9 @@ struct task_group;
+ #define set_current_state(state_value) \
+ smp_store_mb(current->state, (state_value))
+
++#define __set_current_state_no_track(state_value) \
++ __set_current_state(state_value)
++
+ /*
+ * set_special_state() should be used for those states when the blocking task
+ * can not use the regular condition based wait-loop. In that case we must
+@@ -914,6 +921,7 @@ struct task_struct {
+ raw_spinlock_t pi_lock;
+
+ struct wake_q_node wake_q;
++ struct wake_q_node wake_q_sleeper;
+
+ #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 10b19a192b2d..ce3ccff3d9d8 100644
+--- a/include/linux/sched/wake_q.h
++++ b/include/linux/sched/wake_q.h
+@@ -47,8 +47,29 @@ static inline void wake_q_init(struct wake_q_head *head)
+ head->lastp = &head->first;
+ }
+
+-extern void wake_q_add(struct wake_q_head *head,
+- struct task_struct *task);
+-extern void wake_up_q(struct wake_q_head *head);
++extern void __wake_q_add(struct wake_q_head *head,
++ struct task_struct *task, bool sleeper);
++static inline void wake_q_add(struct wake_q_head *head,
++ struct task_struct *task)
++{
++ __wake_q_add(head, task, false);
++}
++
++static inline void wake_q_add_sleeper(struct wake_q_head *head,
++ struct task_struct *task)
++{
++ __wake_q_add(head, task, true);
++}
++
++extern void __wake_up_q(struct wake_q_head *head, bool sleeper);
++static inline void wake_up_q(struct wake_q_head *head)
++{
++ __wake_up_q(head, false);
++}
++
++static inline void wake_up_q_sleeper(struct wake_q_head *head)
++{
++ __wake_up_q(head, true);
++}
+
+ #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..3696a77fa77d
+--- /dev/null
++++ b/include/linux/spinlock_rt.h
+@@ -0,0 +1,156 @@
++#ifndef __LINUX_SPINLOCK_RT_H
++#define __LINUX_SPINLOCK_RT_H
++
++#ifndef __LINUX_SPINLOCK_H
++#error Do not include directly. Use spinlock.h
++#endif
++
++#include <linux/bug.h>
++
++extern void
++__rt_spin_lock_init(spinlock_t *lock, const char *name, struct lock_class_key *key);
++
++#define spin_lock_init(slock) \
++do { \
++ static struct lock_class_key __key; \
++ \
++ rt_mutex_init(&(slock)->lock); \
++ __rt_spin_lock_init(slock, #slock, &__key); \
++} while (0)
++
++extern void __lockfunc rt_spin_lock(spinlock_t *lock);
++extern unsigned long __lockfunc rt_spin_lock_trace_flags(spinlock_t *lock);
++extern void __lockfunc rt_spin_lock_nested(spinlock_t *lock, int subclass);
++extern void __lockfunc rt_spin_unlock(spinlock_t *lock);
++extern void __lockfunc rt_spin_unlock_wait(spinlock_t *lock);
++extern int __lockfunc rt_spin_trylock_irqsave(spinlock_t *lock, unsigned long *flags);
++extern int __lockfunc rt_spin_trylock_bh(spinlock_t *lock);
++extern int __lockfunc rt_spin_trylock(spinlock_t *lock);
++extern int atomic_dec_and_spin_lock(atomic_t *atomic, spinlock_t *lock);
++
++/*
++ * lockdep-less calls, for derived types like rwlock:
++ * (for trylock they can use rt_mutex_trylock() directly.
++ * Migrate disable handling must be done at the call site.
++ */
++extern void __lockfunc __rt_spin_lock(struct rt_mutex *lock);
++extern void __lockfunc __rt_spin_trylock(struct rt_mutex *lock);
++extern void __lockfunc __rt_spin_unlock(struct rt_mutex *lock);
++
++#define spin_lock(lock) rt_spin_lock(lock)
++
++#define spin_lock_bh(lock) \
++ do { \
++ local_bh_disable(); \
++ rt_spin_lock(lock); \
++ } while (0)
++
++#define spin_lock_irq(lock) spin_lock(lock)
++
++#define spin_do_trylock(lock) __cond_lock(lock, rt_spin_trylock(lock))
++
++#define spin_trylock(lock) \
++({ \
++ int __locked; \
++ __locked = spin_do_trylock(lock); \
++ __locked; \
++})
++
++#ifdef CONFIG_LOCKDEP
++# define spin_lock_nested(lock, subclass) \
++ do { \
++ rt_spin_lock_nested(lock, subclass); \
++ } while (0)
++
++#define spin_lock_bh_nested(lock, subclass) \
++ do { \
++ local_bh_disable(); \
++ rt_spin_lock_nested(lock, subclass); \
++ } while (0)
++
++# define spin_lock_irqsave_nested(lock, flags, subclass) \
++ do { \
++ typecheck(unsigned long, flags); \
++ flags = 0; \
++ rt_spin_lock_nested(lock, subclass); \
++ } while (0)
++#else
++# define spin_lock_nested(lock, subclass) spin_lock(lock)
++# define spin_lock_bh_nested(lock, subclass) spin_lock_bh(lock)
++
++# define spin_lock_irqsave_nested(lock, flags, subclass) \
++ do { \
++ typecheck(unsigned long, flags); \
++ flags = 0; \
++ spin_lock(lock); \
++ } while (0)
++#endif
++
++#define spin_lock_irqsave(lock, flags) \
++ do { \
++ typecheck(unsigned long, flags); \
++ flags = 0; \
++ spin_lock(lock); \
++ } while (0)
++
++static inline unsigned long spin_lock_trace_flags(spinlock_t *lock)
++{
++ unsigned long flags = 0;
++#ifdef CONFIG_TRACE_IRQFLAGS
++ flags = rt_spin_lock_trace_flags(lock);
++#else
++ spin_lock(lock); /* lock_local */
++#endif
++ return flags;
++}
++
++/* FIXME: we need rt_spin_lock_nest_lock */
++#define spin_lock_nest_lock(lock, nest_lock) spin_lock_nested(lock, 0)
++
++#define spin_unlock(lock) rt_spin_unlock(lock)
++
++#define spin_unlock_bh(lock) \
++ do { \
++ rt_spin_unlock(lock); \
++ local_bh_enable(); \
++ } while (0)
++
++#define spin_unlock_irq(lock) spin_unlock(lock)
++
++#define spin_unlock_irqrestore(lock, flags) \
++ do { \
++ typecheck(unsigned long, flags); \
++ (void) flags; \
++ spin_unlock(lock); \
++ } while (0)
++
++#define spin_trylock_bh(lock) __cond_lock(lock, rt_spin_trylock_bh(lock))
++#define spin_trylock_irq(lock) spin_trylock(lock)
++
++#define spin_trylock_irqsave(lock, flags) \
++ rt_spin_trylock_irqsave(lock, &(flags))
++
++#define spin_unlock_wait(lock) rt_spin_unlock_wait(lock)
++
++#ifdef CONFIG_GENERIC_LOCKBREAK
++# define spin_is_contended(lock) ((lock)->break_lock)
++#else
++# define spin_is_contended(lock) (((void)(lock), 0))
++#endif
++
++static inline int spin_can_lock(spinlock_t *lock)
++{
++ return !rt_mutex_is_locked(&lock->lock);
++}
++
++static inline int spin_is_locked(spinlock_t *lock)
++{
++ return rt_mutex_is_locked(&lock->lock);
++}
++
++static inline void assert_spin_locked(spinlock_t *lock)
++{
++ BUG_ON(!spin_is_locked(lock));
++}
++
++#endif
+diff --git a/include/linux/spinlock_types_rt.h b/include/linux/spinlock_types_rt.h
+new file mode 100644
+index 000000000000..3e3d8c5f7a9a
+--- /dev/null
++++ b/include/linux/spinlock_types_rt.h
+@@ -0,0 +1,48 @@
++#ifndef __LINUX_SPINLOCK_TYPES_RT_H
++#define __LINUX_SPINLOCK_TYPES_RT_H
++
++#ifndef __LINUX_SPINLOCK_TYPES_H
++#error "Do not include directly. Include spinlock_types.h instead"
++#endif
++
++#include <linux/cache.h>
++
++/*
++ * PREEMPT_RT: spinlocks - an RT mutex plus lock-break field:
++ */
++typedef struct spinlock {
++ struct rt_mutex lock;
++ unsigned int break_lock;
++#ifdef CONFIG_DEBUG_LOCK_ALLOC
++ struct lockdep_map dep_map;
++#endif
++} spinlock_t;
++
++#ifdef CONFIG_DEBUG_RT_MUTEXES
++# define __RT_SPIN_INITIALIZER(name) \
++ { \
++ .wait_lock = __RAW_SPIN_LOCK_UNLOCKED(name.wait_lock), \
++ .save_state = 1, \
++ .file = __FILE__, \
++ .line = __LINE__ , \
++ }
++#else
++# define __RT_SPIN_INITIALIZER(name) \
++ { \
++ .wait_lock = __RAW_SPIN_LOCK_UNLOCKED(name.wait_lock), \
++ .save_state = 1, \
++ }
++#endif
++
++/*
++.wait_list = PLIST_HEAD_INIT_RAW((name).lock.wait_list, (name).lock.wait_lock)
++*/
++
++#define __SPIN_LOCK_UNLOCKED(name) \
++ { .lock = __RT_SPIN_INITIALIZER(name.lock), \
++ SPIN_DEP_MAP_INIT(name) }
++
++#define DEFINE_SPINLOCK(name) \
++ spinlock_t name = __SPIN_LOCK_UNLOCKED(name)
++
++#endif
+diff --git a/kernel/fork.c b/kernel/fork.c
+index efe690af29f1..51ec12803c0b 100644
+--- a/kernel/fork.c
++++ b/kernel/fork.c
+@@ -900,6 +900,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node)
+ tsk->splice_pipe = NULL;
+ tsk->task_frag.page = NULL;
+ tsk->wake_q.next = NULL;
++ tsk->wake_q_sleeper.next = NULL;
+
+ account_kernel_stack(tsk, 1);
+
+diff --git a/kernel/futex.c b/kernel/futex.c
+index 0e136045a720..a5a263a3efbf 100644
+--- a/kernel/futex.c
++++ b/kernel/futex.c
+@@ -1575,6 +1575,7 @@ static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_pi_state *pi_
+ struct task_struct *new_owner;
+ bool postunlock = false;
+ DEFINE_WAKE_Q(wake_q);
++ DEFINE_WAKE_Q(wake_sleeper_q);
+ int ret = 0;
+
+ new_owner = rt_mutex_next_owner(&pi_state->pi_mutex);
+@@ -1624,14 +1625,15 @@ static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_pi_state *pi_
+ * not fail.
+ */
+ pi_state_update_owner(pi_state, new_owner);
+- postunlock = __rt_mutex_futex_unlock(&pi_state->pi_mutex, &wake_q);
++ postunlock = __rt_mutex_futex_unlock(&pi_state->pi_mutex, &wake_q,
++ &wake_sleeper_q);
+ }
+
+ out_unlock:
+ raw_spin_unlock_irq(&pi_state->pi_mutex.wait_lock);
+
+ if (postunlock)
+- rt_mutex_postunlock(&wake_q);
++ rt_mutex_postunlock(&wake_q, &wake_sleeper_q);
+
+ return ret;
+ }
+@@ -2992,7 +2994,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
+ goto no_block;
+ }
+
+- rt_mutex_init_waiter(&rt_waiter);
++ rt_mutex_init_waiter(&rt_waiter, false);
+
+ /*
+ * On PREEMPT_RT_FULL, when hb->lock becomes an rt_mutex, we must not
+@@ -3370,7 +3372,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+ * The waiter is allocated on our stack, manipulated by the requeue
+ * code while we sleep on uaddr.
+ */
+- rt_mutex_init_waiter(&rt_waiter);
++ rt_mutex_init_waiter(&rt_waiter, false);
+
+ ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2, VERIFY_WRITE);
+ if (unlikely(ret != 0))
+diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
+index e24699290bb7..5ff2189f1199 100644
+--- a/kernel/locking/rtmutex.c
++++ b/kernel/locking/rtmutex.c
+@@ -7,6 +7,11 @@
+ * Copyright (C) 2005-2006 Timesys Corp., Thomas Gleixner <tglx@timesys.com>
+ * Copyright (C) 2005 Kihon Technologies Inc., Steven Rostedt
+ * Copyright (C) 2006 Esben Nielsen
++ * Adaptive Spinlocks:
++ * Copyright (C) 2008 Novell, Inc., Gregory Haskins, Sven Dietrich,
++ * and Peter Morreale,
++ * Adaptive Spinlocks simplification:
++ * Copyright (C) 2008 Red Hat, Inc., Steven Rostedt <srostedt@redhat.com>
+ *
+ * See Documentation/locking/rt-mutex-design.txt for details.
+ */
+@@ -234,7 +239,7 @@ static inline bool unlock_rt_mutex_safe(struct rt_mutex *lock,
+ * Only use with rt_mutex_waiter_{less,equal}()
+ */
+ #define task_to_waiter(p) \
+- &(struct rt_mutex_waiter){ .prio = (p)->prio, .deadline = (p)->dl.deadline }
++ &(struct rt_mutex_waiter){ .prio = (p)->prio, .deadline = (p)->dl.deadline, .task = (p) }
+
+ static inline int
+ rt_mutex_waiter_less(struct rt_mutex_waiter *left,
+@@ -274,6 +279,27 @@ rt_mutex_waiter_equal(struct rt_mutex_waiter *left,
+ return 1;
+ }
+
++#define STEAL_NORMAL 0
++#define STEAL_LATERAL 1
++
++static inline int
++rt_mutex_steal(struct rt_mutex *lock, struct rt_mutex_waiter *waiter, int mode)
++{
++ struct rt_mutex_waiter *top_waiter = rt_mutex_top_waiter(lock);
++
++ if (waiter == top_waiter || rt_mutex_waiter_less(waiter, top_waiter))
++ return 1;
++
++ /*
++ * Note that RT tasks are excluded from lateral-steals
++ * to prevent the introduction of an unbounded latency.
++ */
++ if (mode == STEAL_NORMAL || rt_task(waiter->task))
++ return 0;
++
++ return rt_mutex_waiter_equal(waiter, top_waiter);
++}
++
+ static void
+ rt_mutex_enqueue(struct rt_mutex *lock, struct rt_mutex_waiter *waiter)
+ {
+@@ -378,6 +404,14 @@ static bool rt_mutex_cond_detect_deadlock(struct rt_mutex_waiter *waiter,
+ return debug_rt_mutex_detect_deadlock(waiter, chwalk);
+ }
+
++static void rt_mutex_wake_waiter(struct rt_mutex_waiter *waiter)
++{
++ if (waiter->savestate)
++ wake_up_lock_sleeper(waiter->task);
++ else
++ wake_up_process(waiter->task);
++}
++
+ /*
+ * Max number of times we'll walk the boosting chain:
+ */
+@@ -703,13 +737,16 @@ static int rt_mutex_adjust_prio_chain(struct task_struct *task,
+ * follow here. This is the end of the chain we are walking.
+ */
+ if (!rt_mutex_owner(lock)) {
++ struct rt_mutex_waiter *lock_top_waiter;
++
+ /*
+ * If the requeue [7] above changed the top waiter,
+ * then we need to wake the new top waiter up to try
+ * to get the lock.
+ */
+- if (prerequeue_top_waiter != rt_mutex_top_waiter(lock))
+- wake_up_process(rt_mutex_top_waiter(lock)->task);
++ lock_top_waiter = rt_mutex_top_waiter(lock);
++ if (prerequeue_top_waiter != lock_top_waiter)
++ rt_mutex_wake_waiter(lock_top_waiter);
+ raw_spin_unlock_irq(&lock->wait_lock);
+ return 0;
+ }
+@@ -811,9 +848,11 @@ static int rt_mutex_adjust_prio_chain(struct task_struct *task,
+ * @task: The task which wants to acquire the lock
+ * @waiter: The waiter that is queued to the lock's wait tree if the
+ * callsite called task_blocked_on_lock(), otherwise NULL
++ * @mode: Lock steal mode (STEAL_NORMAL, STEAL_LATERAL)
+ */
+-static int try_to_take_rt_mutex(struct rt_mutex *lock, struct task_struct *task,
+- struct rt_mutex_waiter *waiter)
++static int __try_to_take_rt_mutex(struct rt_mutex *lock,
++ struct task_struct *task,
++ struct rt_mutex_waiter *waiter, int mode)
+ {
+ lockdep_assert_held(&lock->wait_lock);
+
+@@ -849,12 +888,11 @@ static int try_to_take_rt_mutex(struct rt_mutex *lock, struct task_struct *task,
+ */
+ if (waiter) {
+ /*
+- * If waiter is not the highest priority waiter of
+- * @lock, give up.
++ * If waiter is not the highest priority waiter of @lock,
++ * or its peer when lateral steal is allowed, give up.
+ */
+- if (waiter != rt_mutex_top_waiter(lock))
++ if (!rt_mutex_steal(lock, waiter, mode))
+ return 0;
+-
+ /*
+ * We can acquire the lock. Remove the waiter from the
+ * lock waiters tree.
+@@ -872,14 +910,12 @@ static int try_to_take_rt_mutex(struct rt_mutex *lock, struct task_struct *task,
+ */
+ if (rt_mutex_has_waiters(lock)) {
+ /*
+- * If @task->prio is greater than or equal to
+- * the top waiter priority (kernel view),
+- * @task lost.
++ * If @task->prio is greater than the top waiter
++ * priority (kernel view), or equal to it when a
++ * lateral steal is forbidden, @task lost.
+ */
+- if (!rt_mutex_waiter_less(task_to_waiter(task),
+- rt_mutex_top_waiter(lock)))
++ if (!rt_mutex_steal(lock, task_to_waiter(task), mode))
+ return 0;
+-
+ /*
+ * The current top waiter stays enqueued. We
+ * don't have to change anything in the lock
+@@ -926,6 +962,296 @@ static int try_to_take_rt_mutex(struct rt_mutex *lock, struct task_struct *task,
+ return 1;
+ }
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++/*
++ * preemptible spin_lock functions:
++ */
++static inline void rt_spin_lock_fastlock(struct rt_mutex *lock,
++ void (*slowfn)(struct rt_mutex *lock))
++{
++ might_sleep_no_state_check();
++
++ if (likely(rt_mutex_cmpxchg_acquire(lock, NULL, current)))
++ return;
++ else
++ slowfn(lock);
++}
++
++static inline void rt_spin_lock_fastunlock(struct rt_mutex *lock,
++ void (*slowfn)(struct rt_mutex *lock))
++{
++ if (likely(rt_mutex_cmpxchg_release(lock, current, NULL)))
++ return;
++ else
++ slowfn(lock);
++}
++#ifdef CONFIG_SMP
++/*
++ * Note that owner is a speculative pointer and dereferencing relies
++ * on rcu_read_lock() and the check against the lock owner.
++ */
++static int adaptive_wait(struct rt_mutex *lock,
++ struct task_struct *owner)
++{
++ int res = 0;
++
++ rcu_read_lock();
++ for (;;) {
++ if (owner != rt_mutex_owner(lock))
++ break;
++ /*
++ * Ensure that owner->on_cpu is dereferenced _after_
++ * checking the above to be valid.
++ */
++ barrier();
++ if (!owner->on_cpu) {
++ res = 1;
++ break;
++ }
++ cpu_relax();
++ }
++ rcu_read_unlock();
++ return res;
++}
++#else
++static int adaptive_wait(struct rt_mutex *lock,
++ struct task_struct *orig_owner)
++{
++ return 1;
++}
++#endif
++
++static int task_blocks_on_rt_mutex(struct rt_mutex *lock,
++ struct rt_mutex_waiter *waiter,
++ struct task_struct *task,
++ enum rtmutex_chainwalk chwalk);
++/*
++ * Slow path lock function spin_lock style: this variant is very
++ * careful not to miss any non-lock wakeups.
++ *
++ * We store the current state under p->pi_lock in p->saved_state and
++ * the try_to_wake_up() code handles this accordingly.
++ */
++void __sched rt_spin_lock_slowlock_locked(struct rt_mutex *lock,
++ struct rt_mutex_waiter *waiter,
++ unsigned long flags)
++{
++ struct task_struct *lock_owner, *self = current;
++ struct rt_mutex_waiter *top_waiter;
++ int ret;
++
++ if (__try_to_take_rt_mutex(lock, self, NULL, STEAL_LATERAL))
++ return;
++
++ BUG_ON(rt_mutex_owner(lock) == self);
++
++ /*
++ * We save whatever state the task is in and we'll restore it
++ * after acquiring the lock taking real wakeups into account
++ * as well. We are serialized via pi_lock against wakeups. See
++ * try_to_wake_up().
++ */
++ raw_spin_lock(&self->pi_lock);
++ self->saved_state = self->state;
++ __set_current_state_no_track(TASK_UNINTERRUPTIBLE);
++ raw_spin_unlock(&self->pi_lock);
++
++ ret = task_blocks_on_rt_mutex(lock, waiter, self, RT_MUTEX_MIN_CHAINWALK);
++ BUG_ON(ret);
++
++ for (;;) {
++ /* Try to acquire the lock again. */
++ if (__try_to_take_rt_mutex(lock, self, waiter, STEAL_LATERAL))
++ break;
++
++ top_waiter = rt_mutex_top_waiter(lock);
++ lock_owner = rt_mutex_owner(lock);
++
++ raw_spin_unlock_irqrestore(&lock->wait_lock, flags);
++
++ debug_rt_mutex_print_deadlock(waiter);
++
++ if (top_waiter != waiter || adaptive_wait(lock, lock_owner))
++ schedule();
++
++ raw_spin_lock_irqsave(&lock->wait_lock, flags);
++
++ raw_spin_lock(&self->pi_lock);
++ __set_current_state_no_track(TASK_UNINTERRUPTIBLE);
++ raw_spin_unlock(&self->pi_lock);
++ }
++
++ /*
++ * Restore the task state to current->saved_state. We set it
++ * to the original state above and the try_to_wake_up() code
++ * has possibly updated it when a real (non-rtmutex) wakeup
++ * happened while we were blocked. Clear saved_state so
++ * try_to_wakeup() does not get confused.
++ */
++ raw_spin_lock(&self->pi_lock);
++ __set_current_state_no_track(self->saved_state);
++ self->saved_state = TASK_RUNNING;
++ raw_spin_unlock(&self->pi_lock);
++
++ /*
++ * try_to_take_rt_mutex() sets the waiter bit
++ * unconditionally. We might have to fix that up:
++ */
++ fixup_rt_mutex_waiters(lock);
++
++ BUG_ON(rt_mutex_has_waiters(lock) && waiter == rt_mutex_top_waiter(lock));
++ BUG_ON(!RB_EMPTY_NODE(&waiter->tree_entry));
++}
++
++static void noinline __sched rt_spin_lock_slowlock(struct rt_mutex *lock)
++{
++ struct rt_mutex_waiter waiter;
++ unsigned long flags;
++
++ rt_mutex_init_waiter(&waiter, true);
++
++ raw_spin_lock_irqsave(&lock->wait_lock, flags);
++ rt_spin_lock_slowlock_locked(lock, &waiter, flags);
++ raw_spin_unlock_irqrestore(&lock->wait_lock, flags);
++ debug_rt_mutex_free_waiter(&waiter);
++}
++
++static bool __sched __rt_mutex_unlock_common(struct rt_mutex *lock,
++ struct wake_q_head *wake_q,
++ struct wake_q_head *wq_sleeper);
++/*
++ * Slow path to release a rt_mutex spin_lock style
++ */
++void __sched rt_spin_lock_slowunlock(struct rt_mutex *lock)
++{
++ unsigned long flags;
++ DEFINE_WAKE_Q(wake_q);
++ DEFINE_WAKE_Q(wake_sleeper_q);
++ bool postunlock;
++
++ raw_spin_lock_irqsave(&lock->wait_lock, flags);
++ postunlock = __rt_mutex_unlock_common(lock, &wake_q, &wake_sleeper_q);
++ raw_spin_unlock_irqrestore(&lock->wait_lock, flags);
++
++ if (postunlock)
++ rt_mutex_postunlock(&wake_q, &wake_sleeper_q);
++}
++
++void __lockfunc rt_spin_lock(spinlock_t *lock)
++{
++ migrate_disable();
++ spin_acquire(&lock->dep_map, 0, 0, _RET_IP_);
++ rt_spin_lock_fastlock(&lock->lock, rt_spin_lock_slowlock);
++}
++EXPORT_SYMBOL(rt_spin_lock);
++
++void __lockfunc __rt_spin_lock(struct rt_mutex *lock)
++{
++ rt_spin_lock_fastlock(lock, rt_spin_lock_slowlock);
++}
++
++#ifdef CONFIG_DEBUG_LOCK_ALLOC
++void __lockfunc rt_spin_lock_nested(spinlock_t *lock, int subclass)
++{
++ migrate_disable();
++ spin_acquire(&lock->dep_map, subclass, 0, _RET_IP_);
++ rt_spin_lock_fastlock(&lock->lock, rt_spin_lock_slowlock);
++}
++EXPORT_SYMBOL(rt_spin_lock_nested);
++#endif
++
++void __lockfunc rt_spin_unlock(spinlock_t *lock)
++{
++ /* NOTE: we always pass in '1' for nested, for simplicity */
++ spin_release(&lock->dep_map, 1, _RET_IP_);
++ rt_spin_lock_fastunlock(&lock->lock, rt_spin_lock_slowunlock);
++ migrate_enable();
++}
++EXPORT_SYMBOL(rt_spin_unlock);
++
++void __lockfunc __rt_spin_unlock(struct rt_mutex *lock)
++{
++ rt_spin_lock_fastunlock(lock, rt_spin_lock_slowunlock);
++}
++EXPORT_SYMBOL(__rt_spin_unlock);
++
++/*
++ * Wait for the lock to get unlocked: instead of polling for an unlock
++ * (like raw spinlocks do), we lock and unlock, to force the kernel to
++ * schedule if there's contention:
++ */
++void __lockfunc rt_spin_unlock_wait(spinlock_t *lock)
++{
++ spin_lock(lock);
++ spin_unlock(lock);
++}
++EXPORT_SYMBOL(rt_spin_unlock_wait);
++
++int __lockfunc rt_spin_trylock(spinlock_t *lock)
++{
++ int ret;
++
++ migrate_disable();
++ ret = __rt_mutex_trylock(&lock->lock);
++ if (ret)
++ spin_acquire(&lock->dep_map, 0, 1, _RET_IP_);
++ else
++ migrate_enable();
++ return ret;
++}
++EXPORT_SYMBOL(rt_spin_trylock);
++
++int __lockfunc rt_spin_trylock_bh(spinlock_t *lock)
++{
++ int ret;
++
++ local_bh_disable();
++ ret = __rt_mutex_trylock(&lock->lock);
++ if (ret) {
++ migrate_disable();
++ spin_acquire(&lock->dep_map, 0, 1, _RET_IP_);
++ } else
++ local_bh_enable();
++ return ret;
++}
++EXPORT_SYMBOL(rt_spin_trylock_bh);
++
++int __lockfunc rt_spin_trylock_irqsave(spinlock_t *lock, unsigned long *flags)
++{
++ int ret;
++
++ *flags = 0;
++ ret = __rt_mutex_trylock(&lock->lock);
++ if (ret) {
++ migrate_disable();
++ spin_acquire(&lock->dep_map, 0, 1, _RET_IP_);
++ }
++ return ret;
++}
++EXPORT_SYMBOL(rt_spin_trylock_irqsave);
++
++void
++__rt_spin_lock_init(spinlock_t *lock, const char *name, struct lock_class_key *key)
++{
++#ifdef CONFIG_DEBUG_LOCK_ALLOC
++ /*
++ * Make sure we are not reinitializing a held lock:
++ */
++ debug_check_no_locks_freed((void *)lock, sizeof(*lock));
++ lockdep_init_map(&lock->dep_map, name, key, 0);
++#endif
++}
++EXPORT_SYMBOL(__rt_spin_lock_init);
++
++#endif /* PREEMPT_RT_FULL */
++
++static inline int
++try_to_take_rt_mutex(struct rt_mutex *lock, struct task_struct *task,
++ struct rt_mutex_waiter *waiter)
++{
++ return __try_to_take_rt_mutex(lock, task, waiter, STEAL_NORMAL);
++}
++
+ /*
+ * Task blocks on lock.
+ *
+@@ -1039,6 +1365,7 @@ static int task_blocks_on_rt_mutex(struct rt_mutex *lock,
+ * Called with lock->wait_lock held and interrupts disabled.
+ */
+ static void mark_wakeup_next_waiter(struct wake_q_head *wake_q,
++ struct wake_q_head *wake_sleeper_q,
+ struct rt_mutex *lock)
+ {
+ struct rt_mutex_waiter *waiter;
+@@ -1078,7 +1405,10 @@ static void mark_wakeup_next_waiter(struct wake_q_head *wake_q,
+ * Pairs with preempt_enable() in rt_mutex_postunlock();
+ */
+ preempt_disable();
+- wake_q_add(wake_q, waiter->task);
++ if (waiter->savestate)
++ wake_q_add_sleeper(wake_sleeper_q, waiter->task);
++ else
++ wake_q_add(wake_q, waiter->task);
+ raw_spin_unlock(&current->pi_lock);
+ }
+
+@@ -1162,21 +1492,22 @@ void rt_mutex_adjust_pi(struct task_struct *task)
+ return;
+ }
+ next_lock = waiter->lock;
+- raw_spin_unlock_irqrestore(&task->pi_lock, flags);
+
+ /* gets dropped in rt_mutex_adjust_prio_chain()! */
+ get_task_struct(task);
+
++ raw_spin_unlock_irqrestore(&task->pi_lock, flags);
+ rt_mutex_adjust_prio_chain(task, RT_MUTEX_MIN_CHAINWALK, NULL,
+ next_lock, NULL, task);
+ }
+
+-void rt_mutex_init_waiter(struct rt_mutex_waiter *waiter)
++void rt_mutex_init_waiter(struct rt_mutex_waiter *waiter, bool savestate)
+ {
+ debug_rt_mutex_init_waiter(waiter);
+ RB_CLEAR_NODE(&waiter->pi_tree_entry);
+ RB_CLEAR_NODE(&waiter->tree_entry);
+ waiter->task = NULL;
++ waiter->savestate = savestate;
+ }
+
+ /**
+@@ -1293,7 +1624,7 @@ rt_mutex_slowlock(struct rt_mutex *lock, int state,
+ unsigned long flags;
+ int ret = 0;
+
+- rt_mutex_init_waiter(&waiter);
++ rt_mutex_init_waiter(&waiter, false);
+
+ /*
+ * Technically we could use raw_spin_[un]lock_irq() here, but this can
+@@ -1366,7 +1697,8 @@ static inline int rt_mutex_slowtrylock(struct rt_mutex *lock)
+ * Return whether the current task needs to call rt_mutex_postunlock().
+ */
+ static bool __sched rt_mutex_slowunlock(struct rt_mutex *lock,
+- struct wake_q_head *wake_q)
++ struct wake_q_head *wake_q,
++ struct wake_q_head *wake_sleeper_q)
+ {
+ unsigned long flags;
+
+@@ -1420,7 +1752,7 @@ static bool __sched rt_mutex_slowunlock(struct rt_mutex *lock,
+ *
+ * Queue the next waiter for wakeup once we release the wait_lock.
+ */
+- mark_wakeup_next_waiter(wake_q, lock);
++ mark_wakeup_next_waiter(wake_q, wake_sleeper_q, lock);
+ raw_spin_unlock_irqrestore(&lock->wait_lock, flags);
+
+ return true; /* call rt_mutex_postunlock() */
+@@ -1472,9 +1804,11 @@ rt_mutex_fasttrylock(struct rt_mutex *lock,
+ /*
+ * Performs the wakeup of the the top-waiter and re-enables preemption.
+ */
+-void rt_mutex_postunlock(struct wake_q_head *wake_q)
++void rt_mutex_postunlock(struct wake_q_head *wake_q,
++ struct wake_q_head *wake_sleeper_q)
+ {
+ wake_up_q(wake_q);
++ wake_up_q_sleeper(wake_sleeper_q);
+
+ /* Pairs with preempt_disable() in rt_mutex_slowunlock() */
+ preempt_enable();
+@@ -1483,15 +1817,17 @@ void rt_mutex_postunlock(struct wake_q_head *wake_q)
+ static inline void
+ rt_mutex_fastunlock(struct rt_mutex *lock,
+ bool (*slowfn)(struct rt_mutex *lock,
+- struct wake_q_head *wqh))
++ struct wake_q_head *wqh,
++ struct wake_q_head *wq_sleeper))
+ {
+ DEFINE_WAKE_Q(wake_q);
++ DEFINE_WAKE_Q(wake_sleeper_q);
+
+ if (likely(rt_mutex_cmpxchg_release(lock, current, NULL)))
+ return;
+
+- if (slowfn(lock, &wake_q))
+- rt_mutex_postunlock(&wake_q);
++ if (slowfn(lock, &wake_q, &wake_sleeper_q))
++ rt_mutex_postunlock(&wake_q, &wake_sleeper_q);
+ }
+
+ int __sched __rt_mutex_lock_state(struct rt_mutex *lock, int state)
+@@ -1673,16 +2009,13 @@ void __sched __rt_mutex_unlock(struct rt_mutex *lock)
+ void __sched rt_mutex_unlock(struct rt_mutex *lock)
+ {
+ mutex_release(&lock->dep_map, 1, _RET_IP_);
+- rt_mutex_fastunlock(lock, rt_mutex_slowunlock);
++ __rt_mutex_unlock(lock);
+ }
+ EXPORT_SYMBOL_GPL(rt_mutex_unlock);
+
+-/**
+- * Futex variant, that since futex variants do not use the fast-path, can be
+- * simple and will not need to retry.
+- */
+-bool __sched __rt_mutex_futex_unlock(struct rt_mutex *lock,
+- struct wake_q_head *wake_q)
++static bool __sched __rt_mutex_unlock_common(struct rt_mutex *lock,
++ struct wake_q_head *wake_q,
++ struct wake_q_head *wq_sleeper)
+ {
+ lockdep_assert_held(&lock->wait_lock);
+
+@@ -1699,23 +2032,35 @@ bool __sched __rt_mutex_futex_unlock(struct rt_mutex *lock,
+ * avoid inversion prior to the wakeup. preempt_disable()
+ * therein pairs with rt_mutex_postunlock().
+ */
+- mark_wakeup_next_waiter(wake_q, lock);
++ mark_wakeup_next_waiter(wake_q, wq_sleeper, lock);
+
+ return true; /* call postunlock() */
+ }
+
++/**
++ * Futex variant, that since futex variants do not use the fast-path, can be
++ * simple and will not need to retry.
++ */
++bool __sched __rt_mutex_futex_unlock(struct rt_mutex *lock,
++ struct wake_q_head *wake_q,
++ struct wake_q_head *wq_sleeper)
++{
++ return __rt_mutex_unlock_common(lock, wake_q, wq_sleeper);
++}
++
+ void __sched rt_mutex_futex_unlock(struct rt_mutex *lock)
+ {
+ DEFINE_WAKE_Q(wake_q);
++ DEFINE_WAKE_Q(wake_sleeper_q);
+ unsigned long flags;
+ bool postunlock;
+
+ raw_spin_lock_irqsave(&lock->wait_lock, flags);
+- postunlock = __rt_mutex_futex_unlock(lock, &wake_q);
++ postunlock = __rt_mutex_futex_unlock(lock, &wake_q, &wake_sleeper_q);
+ raw_spin_unlock_irqrestore(&lock->wait_lock, flags);
+
+ if (postunlock)
+- rt_mutex_postunlock(&wake_q);
++ rt_mutex_postunlock(&wake_q, &wake_sleeper_q);
+ }
+
+ /**
+@@ -1754,7 +2099,7 @@ void __rt_mutex_init(struct rt_mutex *lock, const char *name,
+ if (name && key)
+ debug_rt_mutex_init(lock, name, key);
+ }
+-EXPORT_SYMBOL_GPL(__rt_mutex_init);
++EXPORT_SYMBOL(__rt_mutex_init);
+
+ /**
+ * rt_mutex_init_proxy_locked - initialize and lock a rt_mutex on behalf of a
+@@ -1948,6 +2293,7 @@ int rt_mutex_wait_proxy_lock(struct rt_mutex *lock,
+ struct hrtimer_sleeper *to,
+ struct rt_mutex_waiter *waiter)
+ {
++ struct task_struct *tsk = current;
+ int ret;
+
+ raw_spin_lock_irq(&lock->wait_lock);
+@@ -1959,6 +2305,24 @@ int rt_mutex_wait_proxy_lock(struct rt_mutex *lock,
+ * have to fix that up.
+ */
+ fixup_rt_mutex_waiters(lock);
++ /*
++ * RT has a problem here when the wait got interrupted by a timeout
++ * or a signal. task->pi_blocked_on is still set. The task must
++ * acquire the hash bucket lock when returning from this function.
++ *
++ * If the hash bucket lock is contended then the
++ * BUG_ON(rt_mutex_real_waiter(task->pi_blocked_on)) in
++ * task_blocks_on_rt_mutex() will trigger. This can be avoided by
++ * clearing task->pi_blocked_on which removes the task from the
++ * boosting chain of the rtmutex. That's correct because the task
++ * is not longer blocked on it.
++ */
++ if (ret) {
++ raw_spin_lock(&tsk->pi_lock);
++ tsk->pi_blocked_on = NULL;
++ raw_spin_unlock(&tsk->pi_lock);
++ }
++
+ raw_spin_unlock_irq(&lock->wait_lock);
+
+ return ret;
+diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h
+index 53a8c5d03d28..7c1dd1bd95c7 100644
+--- a/kernel/locking/rtmutex_common.h
++++ b/kernel/locking/rtmutex_common.h
+@@ -30,6 +30,7 @@ struct rt_mutex_waiter {
+ struct rb_node pi_tree_entry;
+ struct task_struct *task;
+ struct rt_mutex *lock;
++ bool savestate;
+ #ifdef CONFIG_DEBUG_RT_MUTEXES
+ unsigned long ip;
+ struct pid *deadlock_task_pid;
+@@ -138,7 +139,7 @@ extern struct task_struct *rt_mutex_next_owner(struct rt_mutex *lock);
+ extern void rt_mutex_init_proxy_locked(struct rt_mutex *lock,
+ struct task_struct *proxy_owner);
+ extern void rt_mutex_proxy_unlock(struct rt_mutex *lock);
+-extern void rt_mutex_init_waiter(struct rt_mutex_waiter *waiter);
++extern void rt_mutex_init_waiter(struct rt_mutex_waiter *waiter, bool savetate);
+ extern int __rt_mutex_start_proxy_lock(struct rt_mutex *lock,
+ struct rt_mutex_waiter *waiter,
+ struct task_struct *task);
+@@ -156,9 +157,12 @@ extern int __rt_mutex_futex_trylock(struct rt_mutex *l);
+
+ extern void rt_mutex_futex_unlock(struct rt_mutex *lock);
+ extern bool __rt_mutex_futex_unlock(struct rt_mutex *lock,
+- struct wake_q_head *wqh);
++ struct wake_q_head *wqh,
++ struct wake_q_head *wq_sleeper);
++
++extern void rt_mutex_postunlock(struct wake_q_head *wake_q,
++ struct wake_q_head *wake_sleeper_q);
+
+-extern void rt_mutex_postunlock(struct wake_q_head *wake_q);
+ /* RW semaphore special interface */
+
+ extern int __rt_mutex_lock_state(struct rt_mutex *lock, int state);
+@@ -168,6 +172,10 @@ int __sched rt_mutex_slowlock_locked(struct rt_mutex *lock, int state,
+ struct hrtimer_sleeper *timeout,
+ enum rtmutex_chainwalk chwalk,
+ struct rt_mutex_waiter *waiter);
++void __sched rt_spin_lock_slowlock_locked(struct rt_mutex *lock,
++ struct rt_mutex_waiter *waiter,
++ unsigned long flags);
++void __sched rt_spin_lock_slowunlock(struct rt_mutex *lock);
+
+ #ifdef CONFIG_DEBUG_RT_MUTEXES
+ # include "rtmutex-debug.h"
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index ed79f921a84e..1f450a7649f0 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -401,9 +401,15 @@ static bool set_nr_if_polling(struct task_struct *p)
+ #endif
+ #endif
+
+-void wake_q_add(struct wake_q_head *head, struct task_struct *task)
++void __wake_q_add(struct wake_q_head *head, struct task_struct *task,
++ bool sleeper)
+ {
+- struct wake_q_node *node = &task->wake_q;
++ struct wake_q_node *node;
++
++ if (sleeper)
++ node = &task->wake_q_sleeper;
++ else
++ node = &task->wake_q;
+
+ /*
+ * Atomically grab the task, if ->wake_q is !nil already it means
+@@ -426,24 +432,32 @@ void wake_q_add(struct wake_q_head *head, struct task_struct *task)
+ head->lastp = &node->next;
+ }
+
+-void wake_up_q(struct wake_q_head *head)
++void __wake_up_q(struct wake_q_head *head, bool sleeper)
+ {
+ struct wake_q_node *node = head->first;
+
+ while (node != WAKE_Q_TAIL) {
+ struct task_struct *task;
+
+- task = container_of(node, struct task_struct, wake_q);
++ if (sleeper)
++ task = container_of(node, struct task_struct, wake_q_sleeper);
++ else
++ task = container_of(node, struct task_struct, wake_q);
+ BUG_ON(!task);
+ /* Task can safely be re-inserted now: */
+ node = node->next;
+- task->wake_q.next = NULL;
+-
++ if (sleeper)
++ task->wake_q_sleeper.next = NULL;
++ else
++ task->wake_q.next = NULL;
+ /*
+ * wake_up_process() executes a full barrier, which pairs with
+ * the queueing in wake_q_add() so as not to miss wakeups.
+ */
+- wake_up_process(task);
++ if (sleeper)
++ wake_up_lock_sleeper(task);
++ else
++ wake_up_process(task);
+ put_task_struct(task);
+ }
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0143-rtmutex-add-mutex-implementation-based-on-rtmutex.patch b/debian/patches-rt/0143-rtmutex-add-mutex-implementation-based-on-rtmutex.patch
new file mode 100644
index 000000000..268579aea
--- /dev/null
+++ b/debian/patches-rt/0143-rtmutex-add-mutex-implementation-based-on-rtmutex.patch
@@ -0,0 +1,383 @@
+From df07ee70a0dfe4c5f6c6b8a01afd04d748635c84 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Thu, 12 Oct 2017 17:17:03 +0200
+Subject: [PATCH 143/347] rtmutex: add mutex implementation based on rtmutex
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/mutex_rt.h | 130 ++++++++++++++++++++++
+ kernel/locking/mutex-rt.c | 223 ++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 353 insertions(+)
+ create mode 100644 include/linux/mutex_rt.h
+ create mode 100644 kernel/locking/mutex-rt.c
+
+diff --git a/include/linux/mutex_rt.h b/include/linux/mutex_rt.h
+new file mode 100644
+index 000000000000..3fcb5edb1d2b
+--- /dev/null
++++ b/include/linux/mutex_rt.h
+@@ -0,0 +1,130 @@
++#ifndef __LINUX_MUTEX_RT_H
++#define __LINUX_MUTEX_RT_H
++
++#ifndef __LINUX_MUTEX_H
++#error "Please include mutex.h"
++#endif
++
++#include <linux/rtmutex.h>
++
++/* FIXME: Just for __lockfunc */
++#include <linux/spinlock.h>
++
++struct mutex {
++ struct rt_mutex lock;
++#ifdef CONFIG_DEBUG_LOCK_ALLOC
++ struct lockdep_map dep_map;
++#endif
++};
++
++#define __MUTEX_INITIALIZER(mutexname) \
++ { \
++ .lock = __RT_MUTEX_INITIALIZER(mutexname.lock) \
++ __DEP_MAP_MUTEX_INITIALIZER(mutexname) \
++ }
++
++#define DEFINE_MUTEX(mutexname) \
++ struct mutex mutexname = __MUTEX_INITIALIZER(mutexname)
++
++extern void __mutex_do_init(struct mutex *lock, const char *name, struct lock_class_key *key);
++extern void __lockfunc _mutex_lock(struct mutex *lock);
++extern void __lockfunc _mutex_lock_io(struct mutex *lock);
++extern void __lockfunc _mutex_lock_io_nested(struct mutex *lock, int subclass);
++extern int __lockfunc _mutex_lock_interruptible(struct mutex *lock);
++extern int __lockfunc _mutex_lock_killable(struct mutex *lock);
++extern void __lockfunc _mutex_lock_nested(struct mutex *lock, int subclass);
++extern void __lockfunc _mutex_lock_nest_lock(struct mutex *lock, struct lockdep_map *nest_lock);
++extern int __lockfunc _mutex_lock_interruptible_nested(struct mutex *lock, int subclass);
++extern int __lockfunc _mutex_lock_killable_nested(struct mutex *lock, int subclass);
++extern int __lockfunc _mutex_trylock(struct mutex *lock);
++extern void __lockfunc _mutex_unlock(struct mutex *lock);
++
++#define mutex_is_locked(l) rt_mutex_is_locked(&(l)->lock)
++#define mutex_lock(l) _mutex_lock(l)
++#define mutex_lock_interruptible(l) _mutex_lock_interruptible(l)
++#define mutex_lock_killable(l) _mutex_lock_killable(l)
++#define mutex_trylock(l) _mutex_trylock(l)
++#define mutex_unlock(l) _mutex_unlock(l)
++#define mutex_lock_io(l) _mutex_lock_io(l);
++
++#define __mutex_owner(l) ((l)->lock.owner)
++
++#ifdef CONFIG_DEBUG_MUTEXES
++#define mutex_destroy(l) rt_mutex_destroy(&(l)->lock)
++#else
++static inline void mutex_destroy(struct mutex *lock) {}
++#endif
++
++#ifdef CONFIG_DEBUG_LOCK_ALLOC
++# define mutex_lock_nested(l, s) _mutex_lock_nested(l, s)
++# define mutex_lock_interruptible_nested(l, s) \
++ _mutex_lock_interruptible_nested(l, s)
++# define mutex_lock_killable_nested(l, s) \
++ _mutex_lock_killable_nested(l, s)
++# define mutex_lock_io_nested(l, s) _mutex_lock_io_nested(l, s)
++
++# define mutex_lock_nest_lock(lock, nest_lock) \
++do { \
++ typecheck(struct lockdep_map *, &(nest_lock)->dep_map); \
++ _mutex_lock_nest_lock(lock, &(nest_lock)->dep_map); \
++} while (0)
++
++#else
++# define mutex_lock_nested(l, s) _mutex_lock(l)
++# define mutex_lock_interruptible_nested(l, s) \
++ _mutex_lock_interruptible(l)
++# define mutex_lock_killable_nested(l, s) \
++ _mutex_lock_killable(l)
++# define mutex_lock_nest_lock(lock, nest_lock) mutex_lock(lock)
++# define mutex_lock_io_nested(l, s) _mutex_lock_io(l)
++#endif
++
++# define mutex_init(mutex) \
++do { \
++ static struct lock_class_key __key; \
++ \
++ rt_mutex_init(&(mutex)->lock); \
++ __mutex_do_init((mutex), #mutex, &__key); \
++} while (0)
++
++# define __mutex_init(mutex, name, key) \
++do { \
++ rt_mutex_init(&(mutex)->lock); \
++ __mutex_do_init((mutex), name, key); \
++} while (0)
++
++/**
++ * These values are chosen such that FAIL and SUCCESS match the
++ * values of the regular mutex_trylock().
++ */
++enum mutex_trylock_recursive_enum {
++ MUTEX_TRYLOCK_FAILED = 0,
++ MUTEX_TRYLOCK_SUCCESS = 1,
++ MUTEX_TRYLOCK_RECURSIVE,
++};
++/**
++ * mutex_trylock_recursive - trylock variant that allows recursive locking
++ * @lock: mutex to be locked
++ *
++ * This function should not be used, _ever_. It is purely for hysterical GEM
++ * raisins, and once those are gone this will be removed.
++ *
++ * Returns:
++ * MUTEX_TRYLOCK_FAILED - trylock failed,
++ * MUTEX_TRYLOCK_SUCCESS - lock acquired,
++ * MUTEX_TRYLOCK_RECURSIVE - we already owned the lock.
++ */
++int __rt_mutex_owner_current(struct rt_mutex *lock);
++
++static inline /* __deprecated */ __must_check enum mutex_trylock_recursive_enum
++mutex_trylock_recursive(struct mutex *lock)
++{
++ if (unlikely(__rt_mutex_owner_current(&lock->lock)))
++ return MUTEX_TRYLOCK_RECURSIVE;
++
++ return mutex_trylock(lock);
++}
++
++extern int atomic_dec_and_mutex_lock(atomic_t *cnt, struct mutex *lock);
++
++#endif
+diff --git a/kernel/locking/mutex-rt.c b/kernel/locking/mutex-rt.c
+new file mode 100644
+index 000000000000..4f81595c0f52
+--- /dev/null
++++ b/kernel/locking/mutex-rt.c
+@@ -0,0 +1,223 @@
++/*
++ * kernel/rt.c
++ *
++ * Real-Time Preemption Support
++ *
++ * started by Ingo Molnar:
++ *
++ * Copyright (C) 2004-2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com>
++ * Copyright (C) 2006, Timesys Corp., Thomas Gleixner <tglx@timesys.com>
++ *
++ * historic credit for proving that Linux spinlocks can be implemented via
++ * RT-aware mutexes goes to many people: The Pmutex project (Dirk Grambow
++ * and others) who prototyped it on 2.4 and did lots of comparative
++ * research and analysis; TimeSys, for proving that you can implement a
++ * fully preemptible kernel via the use of IRQ threading and mutexes;
++ * Bill Huey for persuasively arguing on lkml that the mutex model is the
++ * right one; and to MontaVista, who ported pmutexes to 2.6.
++ *
++ * This code is a from-scratch implementation and is not based on pmutexes,
++ * but the idea of converting spinlocks to mutexes is used here too.
++ *
++ * lock debugging, locking tree, deadlock detection:
++ *
++ * Copyright (C) 2004, LynuxWorks, Inc., Igor Manyilov, Bill Huey
++ * Released under the General Public License (GPL).
++ *
++ * Includes portions of the generic R/W semaphore implementation from:
++ *
++ * Copyright (c) 2001 David Howells (dhowells@redhat.com).
++ * - Derived partially from idea by Andrea Arcangeli <andrea@suse.de>
++ * - Derived also from comments by Linus
++ *
++ * Pending ownership of locks and ownership stealing:
++ *
++ * Copyright (C) 2005, Kihon Technologies Inc., Steven Rostedt
++ *
++ * (also by Steven Rostedt)
++ * - Converted single pi_lock to individual task locks.
++ *
++ * By Esben Nielsen:
++ * Doing priority inheritance with help of the scheduler.
++ *
++ * Copyright (C) 2006, Timesys Corp., Thomas Gleixner <tglx@timesys.com>
++ * - major rework based on Esben Nielsens initial patch
++ * - replaced thread_info references by task_struct refs
++ * - removed task->pending_owner dependency
++ * - BKL drop/reacquire for semaphore style locks to avoid deadlocks
++ * in the scheduler return path as discussed with Steven Rostedt
++ *
++ * Copyright (C) 2006, Kihon Technologies Inc.
++ * Steven Rostedt <rostedt@goodmis.org>
++ * - debugged and patched Thomas Gleixner's rework.
++ * - added back the cmpxchg to the rework.
++ * - turned atomic require back on for SMP.
++ */
++
++#include <linux/spinlock.h>
++#include <linux/rtmutex.h>
++#include <linux/sched.h>
++#include <linux/delay.h>
++#include <linux/module.h>
++#include <linux/kallsyms.h>
++#include <linux/syscalls.h>
++#include <linux/interrupt.h>
++#include <linux/plist.h>
++#include <linux/fs.h>
++#include <linux/futex.h>
++#include <linux/hrtimer.h>
++
++#include "rtmutex_common.h"
++
++/*
++ * struct mutex functions
++ */
++void __mutex_do_init(struct mutex *mutex, const char *name,
++ struct lock_class_key *key)
++{
++#ifdef CONFIG_DEBUG_LOCK_ALLOC
++ /*
++ * Make sure we are not reinitializing a held lock:
++ */
++ debug_check_no_locks_freed((void *)mutex, sizeof(*mutex));
++ lockdep_init_map(&mutex->dep_map, name, key, 0);
++#endif
++ mutex->lock.save_state = 0;
++}
++EXPORT_SYMBOL(__mutex_do_init);
++
++void __lockfunc _mutex_lock(struct mutex *lock)
++{
++ mutex_acquire(&lock->dep_map, 0, 0, _RET_IP_);
++ __rt_mutex_lock_state(&lock->lock, TASK_UNINTERRUPTIBLE);
++}
++EXPORT_SYMBOL(_mutex_lock);
++
++void __lockfunc _mutex_lock_io(struct mutex *lock)
++{
++ int token;
++
++ token = io_schedule_prepare();
++ _mutex_lock(lock);
++ io_schedule_finish(token);
++}
++EXPORT_SYMBOL_GPL(_mutex_lock_io);
++
++int __lockfunc _mutex_lock_interruptible(struct mutex *lock)
++{
++ int ret;
++
++ mutex_acquire(&lock->dep_map, 0, 0, _RET_IP_);
++ ret = __rt_mutex_lock_state(&lock->lock, TASK_INTERRUPTIBLE);
++ if (ret)
++ mutex_release(&lock->dep_map, 1, _RET_IP_);
++ return ret;
++}
++EXPORT_SYMBOL(_mutex_lock_interruptible);
++
++int __lockfunc _mutex_lock_killable(struct mutex *lock)
++{
++ int ret;
++
++ mutex_acquire(&lock->dep_map, 0, 0, _RET_IP_);
++ ret = __rt_mutex_lock_state(&lock->lock, TASK_KILLABLE);
++ if (ret)
++ mutex_release(&lock->dep_map, 1, _RET_IP_);
++ return ret;
++}
++EXPORT_SYMBOL(_mutex_lock_killable);
++
++#ifdef CONFIG_DEBUG_LOCK_ALLOC
++void __lockfunc _mutex_lock_nested(struct mutex *lock, int subclass)
++{
++ mutex_acquire_nest(&lock->dep_map, subclass, 0, NULL, _RET_IP_);
++ __rt_mutex_lock_state(&lock->lock, TASK_UNINTERRUPTIBLE);
++}
++EXPORT_SYMBOL(_mutex_lock_nested);
++
++void __lockfunc _mutex_lock_io_nested(struct mutex *lock, int subclass)
++{
++ int token;
++
++ token = io_schedule_prepare();
++
++ mutex_acquire_nest(&lock->dep_map, subclass, 0, NULL, _RET_IP_);
++ __rt_mutex_lock_state(&lock->lock, TASK_UNINTERRUPTIBLE);
++
++ io_schedule_finish(token);
++}
++EXPORT_SYMBOL_GPL(_mutex_lock_io_nested);
++
++void __lockfunc _mutex_lock_nest_lock(struct mutex *lock, struct lockdep_map *nest)
++{
++ mutex_acquire_nest(&lock->dep_map, 0, 0, nest, _RET_IP_);
++ __rt_mutex_lock_state(&lock->lock, TASK_UNINTERRUPTIBLE);
++}
++EXPORT_SYMBOL(_mutex_lock_nest_lock);
++
++int __lockfunc _mutex_lock_interruptible_nested(struct mutex *lock, int subclass)
++{
++ int ret;
++
++ mutex_acquire_nest(&lock->dep_map, subclass, 0, NULL, _RET_IP_);
++ ret = __rt_mutex_lock_state(&lock->lock, TASK_INTERRUPTIBLE);
++ if (ret)
++ mutex_release(&lock->dep_map, 1, _RET_IP_);
++ return ret;
++}
++EXPORT_SYMBOL(_mutex_lock_interruptible_nested);
++
++int __lockfunc _mutex_lock_killable_nested(struct mutex *lock, int subclass)
++{
++ int ret;
++
++ mutex_acquire(&lock->dep_map, subclass, 0, _RET_IP_);
++ ret = __rt_mutex_lock_state(&lock->lock, TASK_KILLABLE);
++ if (ret)
++ mutex_release(&lock->dep_map, 1, _RET_IP_);
++ return ret;
++}
++EXPORT_SYMBOL(_mutex_lock_killable_nested);
++#endif
++
++int __lockfunc _mutex_trylock(struct mutex *lock)
++{
++ int ret = __rt_mutex_trylock(&lock->lock);
++
++ if (ret)
++ mutex_acquire(&lock->dep_map, 0, 1, _RET_IP_);
++
++ return ret;
++}
++EXPORT_SYMBOL(_mutex_trylock);
++
++void __lockfunc _mutex_unlock(struct mutex *lock)
++{
++ mutex_release(&lock->dep_map, 1, _RET_IP_);
++ __rt_mutex_unlock(&lock->lock);
++}
++EXPORT_SYMBOL(_mutex_unlock);
++
++/**
++ * atomic_dec_and_mutex_lock - return holding mutex if we dec to 0
++ * @cnt: the atomic which we are to dec
++ * @lock: the mutex to return holding if we dec to 0
++ *
++ * return true and hold lock if we dec to 0, return false otherwise
++ */
++int atomic_dec_and_mutex_lock(atomic_t *cnt, struct mutex *lock)
++{
++ /* dec if we can't possibly hit 0 */
++ if (atomic_add_unless(cnt, -1, 1))
++ return 0;
++ /* we might hit 0, so take the lock */
++ mutex_lock(lock);
++ if (!atomic_dec_and_test(cnt)) {
++ /* when we actually did the dec, we didn't hit 0 */
++ mutex_unlock(lock);
++ return 0;
++ }
++ /* we hit 0, and we hold the lock */
++ return 1;
++}
++EXPORT_SYMBOL(atomic_dec_and_mutex_lock);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0144-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch b/debian/patches-rt/0144-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch
new file mode 100644
index 000000000..b05b5ef45
--- /dev/null
+++ b/debian/patches-rt/0144-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch
@@ -0,0 +1,427 @@
+From d5648fc940b9d669cad909970b95064ee3634612 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Thu, 12 Oct 2017 17:28:34 +0200
+Subject: [PATCH 144/347] rtmutex: add rwsem implementation based on rtmutex
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+priority or budget.
+
+The single reader restricting is painful in various ways:
+
+ - Performance bottleneck for multi-threaded applications in the page fault
+ path (mmap sem)
+
+ - Progress blocker for drivers which are carefully crafted to avoid the
+ potential reader/writer deadlock in mainline.
+
+The analysis of the writer code pathes shows, that properly written RT tasks
+should not take them. Syscalls like mmap(), file access which take mmap sem
+write locked have unbound latencies which are completely unrelated to mmap
+sem. Other R/W sem users like graphics drivers are not suitable for RT tasks
+either.
+
+So there is little risk to hurt RT tasks when the RT rwsem implementation is
+changed in the following way:
+
+ - Allow concurrent readers
+
+ - Make writers block until the last reader left the critical section. This
+ blocking is not subject to priority/budget inheritance.
+
+ - Readers blocked on a writer inherit their priority/budget in the normal
+ way.
+
+There is a drawback with this scheme. R/W semaphores become writer unfair
+though the applications which have triggered writer starvation (mostly on
+mmap_sem) in the past are not really the typical workloads running on a RT
+system. So while it's unlikely to hit writer starvation, it's possible. If
+there are unexpected workloads on RT systems triggering it, we need to rethink
+the approach.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/rwsem_rt.h | 68 +++++++++
+ kernel/locking/rwsem-rt.c | 293 ++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 361 insertions(+)
+ create mode 100644 include/linux/rwsem_rt.h
+ create mode 100644 kernel/locking/rwsem-rt.c
+
+diff --git a/include/linux/rwsem_rt.h b/include/linux/rwsem_rt.h
+new file mode 100644
+index 000000000000..2018ff77904a
+--- /dev/null
++++ b/include/linux/rwsem_rt.h
+@@ -0,0 +1,68 @@
++#ifndef _LINUX_RWSEM_RT_H
++#define _LINUX_RWSEM_RT_H
++
++#ifndef _LINUX_RWSEM_H
++#error "Include rwsem.h"
++#endif
++
++#include <linux/rtmutex.h>
++#include <linux/swait.h>
++
++#define READER_BIAS (1U << 31)
++#define WRITER_BIAS (1U << 30)
++
++struct rw_semaphore {
++ atomic_t readers;
++ struct rt_mutex rtmutex;
++#ifdef CONFIG_DEBUG_LOCK_ALLOC
++ struct lockdep_map dep_map;
++#endif
++};
++
++#define __RWSEM_INITIALIZER(name) \
++{ \
++ .readers = ATOMIC_INIT(READER_BIAS), \
++ .rtmutex = __RT_MUTEX_INITIALIZER(name.rtmutex), \
++ RW_DEP_MAP_INIT(name) \
++}
++
++#define DECLARE_RWSEM(lockname) \
++ struct rw_semaphore lockname = __RWSEM_INITIALIZER(lockname)
++
++extern void __rwsem_init(struct rw_semaphore *rwsem, const char *name,
++ struct lock_class_key *key);
++
++#define __init_rwsem(sem, name, key) \
++do { \
++ rt_mutex_init(&(sem)->rtmutex); \
++ __rwsem_init((sem), (name), (key)); \
++} while (0)
++
++#define init_rwsem(sem) \
++do { \
++ static struct lock_class_key __key; \
++ \
++ __init_rwsem((sem), #sem, &__key); \
++} while (0)
++
++static inline int rwsem_is_locked(struct rw_semaphore *sem)
++{
++ return atomic_read(&sem->readers) != READER_BIAS;
++}
++
++static inline int rwsem_is_contended(struct rw_semaphore *sem)
++{
++ return atomic_read(&sem->readers) > 0;
++}
++
++extern void __down_read(struct rw_semaphore *sem);
++extern int __down_read_killable(struct rw_semaphore *sem);
++extern int __down_read_trylock(struct rw_semaphore *sem);
++extern void __down_write(struct rw_semaphore *sem);
++extern int __must_check __down_write_killable(struct rw_semaphore *sem);
++extern int __down_write_trylock(struct rw_semaphore *sem);
++extern void __up_read(struct rw_semaphore *sem);
++extern void __up_write(struct rw_semaphore *sem);
++extern void __downgrade_write(struct rw_semaphore *sem);
++
++#endif
+diff --git a/kernel/locking/rwsem-rt.c b/kernel/locking/rwsem-rt.c
+new file mode 100644
+index 000000000000..7d3c5cf3d23d
+--- /dev/null
++++ b/kernel/locking/rwsem-rt.c
+@@ -0,0 +1,293 @@
++/*
++ */
++#include <linux/rwsem.h>
++#include <linux/sched/debug.h>
++#include <linux/sched/signal.h>
++#include <linux/export.h>
++
++#include "rtmutex_common.h"
++
++/*
++ * RT-specific reader/writer semaphores
++ *
++ * down_write()
++ * 1) Lock sem->rtmutex
++ * 2) Remove the reader BIAS to force readers into the slow path
++ * 3) Wait until all readers have left the critical region
++ * 4) Mark it write locked
++ *
++ * up_write()
++ * 1) Remove the write locked marker
++ * 2) Set the reader BIAS so readers can use the fast path again
++ * 3) Unlock sem->rtmutex to release blocked readers
++ *
++ * down_read()
++ * 1) Try fast path acquisition (reader BIAS is set)
++ * 2) Take sem->rtmutex.wait_lock which protects the writelocked flag
++ * 3) If !writelocked, acquire it for read
++ * 4) If writelocked, block on sem->rtmutex
++ * 5) unlock sem->rtmutex, goto 1)
++ *
++ * up_read()
++ * 1) Try fast path release (reader count != 1)
++ * 2) Wake the writer waiting in down_write()#3
++ *
++ * down_read()#3 has the consequence, that rw semaphores on RT are not writer
++ * fair, but writers, which should be avoided in RT tasks (think mmap_sem),
++ * are subject to the rtmutex priority/DL inheritance mechanism.
++ *
++ * It's possible to make the rw semaphores writer fair by keeping a list of
++ * active readers. A blocked writer would force all newly incoming readers to
++ * block on the rtmutex, but the rtmutex would have to be proxy locked for one
++ * reader after the other. We can't use multi-reader inheritance because there
++ * is no way to support that with SCHED_DEADLINE. Implementing the one by one
++ * reader boosting/handover mechanism is a major surgery for a very dubious
++ * value.
++ *
++ * The risk of writer starvation is there, but the pathological use cases
++ * which trigger it are not necessarily the typical RT workloads.
++ */
++
++void __rwsem_init(struct rw_semaphore *sem, const char *name,
++ struct lock_class_key *key)
++{
++#ifdef CONFIG_DEBUG_LOCK_ALLOC
++ /*
++ * Make sure we are not reinitializing a held semaphore:
++ */
++ debug_check_no_locks_freed((void *)sem, sizeof(*sem));
++ lockdep_init_map(&sem->dep_map, name, key, 0);
++#endif
++ atomic_set(&sem->readers, READER_BIAS);
++}
++EXPORT_SYMBOL(__rwsem_init);
++
++int __down_read_trylock(struct rw_semaphore *sem)
++{
++ int r, old;
++
++ /*
++ * Increment reader count, if sem->readers < 0, i.e. READER_BIAS is
++ * set.
++ */
++ for (r = atomic_read(&sem->readers); r < 0;) {
++ old = atomic_cmpxchg(&sem->readers, r, r + 1);
++ if (likely(old == r))
++ return 1;
++ r = old;
++ }
++ return 0;
++}
++
++static int __sched __down_read_common(struct rw_semaphore *sem, int state)
++{
++ struct rt_mutex *m = &sem->rtmutex;
++ struct rt_mutex_waiter waiter;
++ int ret;
++
++ if (__down_read_trylock(sem))
++ return 0;
++
++ might_sleep();
++ raw_spin_lock_irq(&m->wait_lock);
++ /*
++ * Allow readers as long as the writer has not completely
++ * acquired the semaphore for write.
++ */
++ if (atomic_read(&sem->readers) != WRITER_BIAS) {
++ atomic_inc(&sem->readers);
++ raw_spin_unlock_irq(&m->wait_lock);
++ return 0;
++ }
++
++ /*
++ * Call into the slow lock path with the rtmutex->wait_lock
++ * held, so this can't result in the following race:
++ *
++ * Reader1 Reader2 Writer
++ * down_read()
++ * down_write()
++ * rtmutex_lock(m)
++ * swait()
++ * down_read()
++ * unlock(m->wait_lock)
++ * up_read()
++ * swake()
++ * lock(m->wait_lock)
++ * sem->writelocked=true
++ * unlock(m->wait_lock)
++ *
++ * up_write()
++ * sem->writelocked=false
++ * rtmutex_unlock(m)
++ * down_read()
++ * down_write()
++ * rtmutex_lock(m)
++ * swait()
++ * rtmutex_lock(m)
++ *
++ * That would put Reader1 behind the writer waiting on
++ * Reader2 to call up_read() which might be unbound.
++ */
++ rt_mutex_init_waiter(&waiter, false);
++ ret = rt_mutex_slowlock_locked(m, state, NULL, RT_MUTEX_MIN_CHAINWALK,
++ &waiter);
++ /*
++ * 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
++ * the reader count and immediately drop the rtmutex again.
++ * For ret != 0 we don't hold the rtmutex and need unlock the wait_lock.
++ * We don't own the lock then.
++ */
++ if (!ret)
++ atomic_inc(&sem->readers);
++ raw_spin_unlock_irq(&m->wait_lock);
++ if (!ret)
++ __rt_mutex_unlock(m);
++
++ debug_rt_mutex_free_waiter(&waiter);
++ return ret;
++}
++
++void __down_read(struct rw_semaphore *sem)
++{
++ int ret;
++
++ ret = __down_read_common(sem, TASK_UNINTERRUPTIBLE);
++ WARN_ON_ONCE(ret);
++}
++
++int __down_read_killable(struct rw_semaphore *sem)
++{
++ int ret;
++
++ ret = __down_read_common(sem, TASK_KILLABLE);
++ if (likely(!ret))
++ return ret;
++ WARN_ONCE(ret != -EINTR, "Unexpected state: %d\n", ret);
++ return -EINTR;
++}
++
++void __up_read(struct rw_semaphore *sem)
++{
++ struct rt_mutex *m = &sem->rtmutex;
++ struct task_struct *tsk;
++
++ /*
++ * sem->readers can only hit 0 when a writer is waiting for the
++ * active readers to leave the critical region.
++ */
++ if (!atomic_dec_and_test(&sem->readers))
++ return;
++
++ might_sleep();
++ raw_spin_lock_irq(&m->wait_lock);
++ /*
++ * Wake the writer, i.e. the rtmutex owner. It might release the
++ * rtmutex concurrently in the fast path (due to a signal), but to
++ * clean up the rwsem it needs to acquire m->wait_lock. The worst
++ * case which can happen is a spurious wakeup.
++ */
++ tsk = rt_mutex_owner(m);
++ if (tsk)
++ wake_up_process(tsk);
++
++ raw_spin_unlock_irq(&m->wait_lock);
++}
++
++static void __up_write_unlock(struct rw_semaphore *sem, int bias,
++ unsigned long flags)
++{
++ struct rt_mutex *m = &sem->rtmutex;
++
++ atomic_add(READER_BIAS - bias, &sem->readers);
++ raw_spin_unlock_irqrestore(&m->wait_lock, flags);
++ __rt_mutex_unlock(m);
++}
++
++static int __sched __down_write_common(struct rw_semaphore *sem, int state)
++{
++ struct rt_mutex *m = &sem->rtmutex;
++ unsigned long flags;
++
++ /* Take the rtmutex as a first step */
++ if (__rt_mutex_lock_state(m, state))
++ return -EINTR;
++
++ /* Force readers into slow path */
++ atomic_sub(READER_BIAS, &sem->readers);
++ might_sleep();
++
++ set_current_state(state);
++ for (;;) {
++ raw_spin_lock_irqsave(&m->wait_lock, flags);
++ /* Have all readers left the critical region? */
++ if (!atomic_read(&sem->readers)) {
++ atomic_set(&sem->readers, WRITER_BIAS);
++ __set_current_state(TASK_RUNNING);
++ raw_spin_unlock_irqrestore(&m->wait_lock, flags);
++ return 0;
++ }
++
++ if (signal_pending_state(state, current)) {
++ __set_current_state(TASK_RUNNING);
++ __up_write_unlock(sem, 0, flags);
++ return -EINTR;
++ }
++ raw_spin_unlock_irqrestore(&m->wait_lock, flags);
++
++ if (atomic_read(&sem->readers) != 0) {
++ schedule();
++ set_current_state(state);
++ }
++ }
++}
++
++void __sched __down_write(struct rw_semaphore *sem)
++{
++ __down_write_common(sem, TASK_UNINTERRUPTIBLE);
++}
++
++int __sched __down_write_killable(struct rw_semaphore *sem)
++{
++ return __down_write_common(sem, TASK_KILLABLE);
++}
++
++int __down_write_trylock(struct rw_semaphore *sem)
++{
++ struct rt_mutex *m = &sem->rtmutex;
++ unsigned long flags;
++
++ if (!__rt_mutex_trylock(m))
++ return 0;
++
++ atomic_sub(READER_BIAS, &sem->readers);
++
++ raw_spin_lock_irqsave(&m->wait_lock, flags);
++ if (!atomic_read(&sem->readers)) {
++ atomic_set(&sem->readers, WRITER_BIAS);
++ raw_spin_unlock_irqrestore(&m->wait_lock, flags);
++ return 1;
++ }
++ __up_write_unlock(sem, 0, flags);
++ return 0;
++}
++
++void __up_write(struct rw_semaphore *sem)
++{
++ struct rt_mutex *m = &sem->rtmutex;
++ unsigned long flags;
++
++ raw_spin_lock_irqsave(&m->wait_lock, flags);
++ __up_write_unlock(sem, WRITER_BIAS, flags);
++}
++
++void __downgrade_write(struct rw_semaphore *sem)
++{
++ struct rt_mutex *m = &sem->rtmutex;
++ unsigned long flags;
++
++ raw_spin_lock_irqsave(&m->wait_lock, flags);
++ /* Release it and account current as reader */
++ __up_write_unlock(sem, WRITER_BIAS - 1, flags);
++}
+--
+2.36.1
+
diff --git a/debian/patches-rt/0145-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch b/debian/patches-rt/0145-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch
new file mode 100644
index 000000000..3045accc9
--- /dev/null
+++ b/debian/patches-rt/0145-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch
@@ -0,0 +1,582 @@
+From f6a36a3573a2474292d6b6e71f206f52212b6cd5 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Thu, 12 Oct 2017 17:18:06 +0200
+Subject: [PATCH 145/347] rtmutex: add rwlock implementation based on rtmutex
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The implementation is bias-based, similar to the rwsem implementation.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/rwlock_rt.h | 119 +++++++++++
+ include/linux/rwlock_types_rt.h | 55 +++++
+ kernel/locking/rwlock-rt.c | 368 ++++++++++++++++++++++++++++++++
+ 3 files changed, 542 insertions(+)
+ create mode 100644 include/linux/rwlock_rt.h
+ create mode 100644 include/linux/rwlock_types_rt.h
+ create mode 100644 kernel/locking/rwlock-rt.c
+
+diff --git a/include/linux/rwlock_rt.h b/include/linux/rwlock_rt.h
+new file mode 100644
+index 000000000000..a9c4c2ac4d1f
+--- /dev/null
++++ b/include/linux/rwlock_rt.h
+@@ -0,0 +1,119 @@
++#ifndef __LINUX_RWLOCK_RT_H
++#define __LINUX_RWLOCK_RT_H
++
++#ifndef __LINUX_SPINLOCK_H
++#error Do not include directly. Use spinlock.h
++#endif
++
++extern void __lockfunc rt_write_lock(rwlock_t *rwlock);
++extern void __lockfunc rt_read_lock(rwlock_t *rwlock);
++extern int __lockfunc rt_write_trylock(rwlock_t *rwlock);
++extern int __lockfunc rt_read_trylock(rwlock_t *rwlock);
++extern void __lockfunc rt_write_unlock(rwlock_t *rwlock);
++extern void __lockfunc rt_read_unlock(rwlock_t *rwlock);
++extern int __lockfunc rt_read_can_lock(rwlock_t *rwlock);
++extern int __lockfunc rt_write_can_lock(rwlock_t *rwlock);
++extern void __rt_rwlock_init(rwlock_t *rwlock, char *name, struct lock_class_key *key);
++
++#define read_can_lock(rwlock) rt_read_can_lock(rwlock)
++#define write_can_lock(rwlock) rt_write_can_lock(rwlock)
++
++#define read_trylock(lock) __cond_lock(lock, rt_read_trylock(lock))
++#define write_trylock(lock) __cond_lock(lock, rt_write_trylock(lock))
++
++static inline int __write_trylock_rt_irqsave(rwlock_t *lock, unsigned long *flags)
++{
++ /* XXX ARCH_IRQ_ENABLED */
++ *flags = 0;
++ return rt_write_trylock(lock);
++}
++
++#define write_trylock_irqsave(lock, flags) \
++ __cond_lock(lock, __write_trylock_rt_irqsave(lock, &(flags)))
++
++#define read_lock_irqsave(lock, flags) \
++ do { \
++ typecheck(unsigned long, flags); \
++ rt_read_lock(lock); \
++ flags = 0; \
++ } while (0)
++
++#define write_lock_irqsave(lock, flags) \
++ do { \
++ typecheck(unsigned long, flags); \
++ rt_write_lock(lock); \
++ flags = 0; \
++ } while (0)
++
++#define read_lock(lock) rt_read_lock(lock)
++
++#define read_lock_bh(lock) \
++ do { \
++ local_bh_disable(); \
++ rt_read_lock(lock); \
++ } while (0)
++
++#define read_lock_irq(lock) read_lock(lock)
++
++#define write_lock(lock) rt_write_lock(lock)
++
++#define write_lock_bh(lock) \
++ do { \
++ local_bh_disable(); \
++ rt_write_lock(lock); \
++ } while (0)
++
++#define write_lock_irq(lock) write_lock(lock)
++
++#define read_unlock(lock) rt_read_unlock(lock)
++
++#define read_unlock_bh(lock) \
++ do { \
++ rt_read_unlock(lock); \
++ local_bh_enable(); \
++ } while (0)
++
++#define read_unlock_irq(lock) read_unlock(lock)
++
++#define write_unlock(lock) rt_write_unlock(lock)
++
++#define write_unlock_bh(lock) \
++ do { \
++ rt_write_unlock(lock); \
++ local_bh_enable(); \
++ } while (0)
++
++#define write_unlock_irq(lock) write_unlock(lock)
++
++#define read_unlock_irqrestore(lock, flags) \
++ do { \
++ typecheck(unsigned long, flags); \
++ (void) flags; \
++ rt_read_unlock(lock); \
++ } while (0)
++
++#define write_unlock_irqrestore(lock, flags) \
++ do { \
++ typecheck(unsigned long, flags); \
++ (void) flags; \
++ rt_write_unlock(lock); \
++ } while (0)
++
++#define rwlock_init(rwl) \
++do { \
++ static struct lock_class_key __key; \
++ \
++ __rt_rwlock_init(rwl, #rwl, &__key); \
++} while (0)
++
++/*
++ * Internal functions made global for CPU pinning
++ */
++void __read_rt_lock(struct rt_rw_lock *lock);
++int __read_rt_trylock(struct rt_rw_lock *lock);
++void __write_rt_lock(struct rt_rw_lock *lock);
++int __write_rt_trylock(struct rt_rw_lock *lock);
++void __read_rt_unlock(struct rt_rw_lock *lock);
++void __write_rt_unlock(struct rt_rw_lock *lock);
++
++#endif
+diff --git a/include/linux/rwlock_types_rt.h b/include/linux/rwlock_types_rt.h
+new file mode 100644
+index 000000000000..546a1f8f1274
+--- /dev/null
++++ b/include/linux/rwlock_types_rt.h
+@@ -0,0 +1,55 @@
++#ifndef __LINUX_RWLOCK_TYPES_RT_H
++#define __LINUX_RWLOCK_TYPES_RT_H
++
++#ifndef __LINUX_SPINLOCK_TYPES_H
++#error "Do not include directly. Include spinlock_types.h instead"
++#endif
++
++#ifdef CONFIG_DEBUG_LOCK_ALLOC
++# define RW_DEP_MAP_INIT(lockname) .dep_map = { .name = #lockname }
++#else
++# define RW_DEP_MAP_INIT(lockname)
++#endif
++
++typedef struct rt_rw_lock rwlock_t;
++
++#define __RW_LOCK_UNLOCKED(name) __RWLOCK_RT_INITIALIZER(name)
++
++#define DEFINE_RWLOCK(name) \
++ rwlock_t name = __RW_LOCK_UNLOCKED(name)
++
++/*
++ * A reader biased implementation primarily for CPU pinning.
++ *
++ * Can be selected as general replacement for the single reader RT rwlock
++ * variant
++ */
++struct rt_rw_lock {
++ struct rt_mutex rtmutex;
++ atomic_t readers;
++#ifdef CONFIG_DEBUG_LOCK_ALLOC
++ struct lockdep_map dep_map;
++#endif
++};
++
++#define READER_BIAS (1U << 31)
++#define WRITER_BIAS (1U << 30)
++
++#define __RWLOCK_RT_INITIALIZER(name) \
++{ \
++ .readers = ATOMIC_INIT(READER_BIAS), \
++ .rtmutex = __RT_MUTEX_INITIALIZER_SAVE_STATE(name.rtmutex), \
++ RW_DEP_MAP_INIT(name) \
++}
++
++void __rwlock_biased_rt_init(struct rt_rw_lock *lock, const char *name,
++ struct lock_class_key *key);
++
++#define rwlock_biased_rt_init(rwlock) \
++ do { \
++ static struct lock_class_key __key; \
++ \
++ __rwlock_biased_rt_init((rwlock), #rwlock, &__key); \
++ } while (0)
++
++#endif
+diff --git a/kernel/locking/rwlock-rt.c b/kernel/locking/rwlock-rt.c
+new file mode 100644
+index 000000000000..aebb7ce25bc6
+--- /dev/null
++++ b/kernel/locking/rwlock-rt.c
+@@ -0,0 +1,368 @@
++/*
++ */
++#include <linux/sched/debug.h>
++#include <linux/export.h>
++
++#include "rtmutex_common.h"
++#include <linux/rwlock_types_rt.h>
++
++/*
++ * RT-specific reader/writer locks
++ *
++ * write_lock()
++ * 1) Lock lock->rtmutex
++ * 2) Remove the reader BIAS to force readers into the slow path
++ * 3) Wait until all readers have left the critical region
++ * 4) Mark it write locked
++ *
++ * write_unlock()
++ * 1) Remove the write locked marker
++ * 2) Set the reader BIAS so readers can use the fast path again
++ * 3) Unlock lock->rtmutex to release blocked readers
++ *
++ * read_lock()
++ * 1) Try fast path acquisition (reader BIAS is set)
++ * 2) Take lock->rtmutex.wait_lock which protects the writelocked flag
++ * 3) If !writelocked, acquire it for read
++ * 4) If writelocked, block on lock->rtmutex
++ * 5) unlock lock->rtmutex, goto 1)
++ *
++ * read_unlock()
++ * 1) Try fast path release (reader count != 1)
++ * 2) Wake the writer waiting in write_lock()#3
++ *
++ * read_lock()#3 has the consequence, that rw locks on RT are not writer
++ * fair, but writers, which should be avoided in RT tasks (think tasklist
++ * lock), are subject to the rtmutex priority/DL inheritance mechanism.
++ *
++ * It's possible to make the rw locks writer fair by keeping a list of
++ * active readers. A blocked writer would force all newly incoming readers
++ * to block on the rtmutex, but the rtmutex would have to be proxy locked
++ * for one reader after the other. We can't use multi-reader inheritance
++ * because there is no way to support that with
++ * SCHED_DEADLINE. Implementing the one by one reader boosting/handover
++ * mechanism is a major surgery for a very dubious value.
++ *
++ * The risk of writer starvation is there, but the pathological use cases
++ * which trigger it are not necessarily the typical RT workloads.
++ */
++
++void __rwlock_biased_rt_init(struct rt_rw_lock *lock, const char *name,
++ struct lock_class_key *key)
++{
++#ifdef CONFIG_DEBUG_LOCK_ALLOC
++ /*
++ * Make sure we are not reinitializing a held semaphore:
++ */
++ debug_check_no_locks_freed((void *)lock, sizeof(*lock));
++ lockdep_init_map(&lock->dep_map, name, key, 0);
++#endif
++ atomic_set(&lock->readers, READER_BIAS);
++ rt_mutex_init(&lock->rtmutex);
++ lock->rtmutex.save_state = 1;
++}
++
++int __read_rt_trylock(struct rt_rw_lock *lock)
++{
++ int r, old;
++
++ /*
++ * Increment reader count, if lock->readers < 0, i.e. READER_BIAS is
++ * set.
++ */
++ for (r = atomic_read(&lock->readers); r < 0;) {
++ old = atomic_cmpxchg(&lock->readers, r, r + 1);
++ if (likely(old == r))
++ return 1;
++ r = old;
++ }
++ return 0;
++}
++
++void __sched __read_rt_lock(struct rt_rw_lock *lock)
++{
++ struct rt_mutex *m = &lock->rtmutex;
++ struct rt_mutex_waiter waiter;
++ unsigned long flags;
++
++ if (__read_rt_trylock(lock))
++ return;
++
++ raw_spin_lock_irqsave(&m->wait_lock, flags);
++ /*
++ * Allow readers as long as the writer has not completely
++ * acquired the semaphore for write.
++ */
++ if (atomic_read(&lock->readers) != WRITER_BIAS) {
++ atomic_inc(&lock->readers);
++ raw_spin_unlock_irqrestore(&m->wait_lock, flags);
++ return;
++ }
++
++ /*
++ * Call into the slow lock path with the rtmutex->wait_lock
++ * held, so this can't result in the following race:
++ *
++ * Reader1 Reader2 Writer
++ * read_lock()
++ * write_lock()
++ * rtmutex_lock(m)
++ * swait()
++ * read_lock()
++ * unlock(m->wait_lock)
++ * read_unlock()
++ * swake()
++ * lock(m->wait_lock)
++ * lock->writelocked=true
++ * unlock(m->wait_lock)
++ *
++ * write_unlock()
++ * lock->writelocked=false
++ * rtmutex_unlock(m)
++ * read_lock()
++ * write_lock()
++ * rtmutex_lock(m)
++ * swait()
++ * rtmutex_lock(m)
++ *
++ * That would put Reader1 behind the writer waiting on
++ * Reader2 to call read_unlock() which might be unbound.
++ */
++ rt_mutex_init_waiter(&waiter, false);
++ rt_spin_lock_slowlock_locked(m, &waiter, flags);
++ /*
++ * The slowlock() above is guaranteed to return with the rtmutex is
++ * now held, so there can't be a writer active. Increment the reader
++ * count and immediately drop the rtmutex again.
++ */
++ atomic_inc(&lock->readers);
++ raw_spin_unlock_irqrestore(&m->wait_lock, flags);
++ rt_spin_lock_slowunlock(m);
++
++ debug_rt_mutex_free_waiter(&waiter);
++}
++
++void __read_rt_unlock(struct rt_rw_lock *lock)
++{
++ struct rt_mutex *m = &lock->rtmutex;
++ struct task_struct *tsk;
++
++ /*
++ * sem->readers can only hit 0 when a writer is waiting for the
++ * active readers to leave the critical region.
++ */
++ if (!atomic_dec_and_test(&lock->readers))
++ return;
++
++ raw_spin_lock_irq(&m->wait_lock);
++ /*
++ * Wake the writer, i.e. the rtmutex owner. It might release the
++ * rtmutex concurrently in the fast path, but to clean up the rw
++ * lock it needs to acquire m->wait_lock. The worst case which can
++ * happen is a spurious wakeup.
++ */
++ tsk = rt_mutex_owner(m);
++ if (tsk)
++ wake_up_process(tsk);
++
++ raw_spin_unlock_irq(&m->wait_lock);
++}
++
++static void __write_unlock_common(struct rt_rw_lock *lock, int bias,
++ unsigned long flags)
++{
++ struct rt_mutex *m = &lock->rtmutex;
++
++ atomic_add(READER_BIAS - bias, &lock->readers);
++ raw_spin_unlock_irqrestore(&m->wait_lock, flags);
++ rt_spin_lock_slowunlock(m);
++}
++
++void __sched __write_rt_lock(struct rt_rw_lock *lock)
++{
++ struct rt_mutex *m = &lock->rtmutex;
++ struct task_struct *self = current;
++ unsigned long flags;
++
++ /* Take the rtmutex as a first step */
++ __rt_spin_lock(m);
++
++ /* Force readers into slow path */
++ atomic_sub(READER_BIAS, &lock->readers);
++
++ raw_spin_lock_irqsave(&m->wait_lock, flags);
++
++ raw_spin_lock(&self->pi_lock);
++ self->saved_state = self->state;
++ __set_current_state_no_track(TASK_UNINTERRUPTIBLE);
++ raw_spin_unlock(&self->pi_lock);
++
++ for (;;) {
++ /* Have all readers left the critical region? */
++ if (!atomic_read(&lock->readers)) {
++ atomic_set(&lock->readers, WRITER_BIAS);
++ raw_spin_lock(&self->pi_lock);
++ __set_current_state_no_track(self->saved_state);
++ self->saved_state = TASK_RUNNING;
++ raw_spin_unlock(&self->pi_lock);
++ raw_spin_unlock_irqrestore(&m->wait_lock, flags);
++ return;
++ }
++
++ raw_spin_unlock_irqrestore(&m->wait_lock, flags);
++
++ if (atomic_read(&lock->readers) != 0)
++ schedule();
++
++ raw_spin_lock_irqsave(&m->wait_lock, flags);
++
++ raw_spin_lock(&self->pi_lock);
++ __set_current_state_no_track(TASK_UNINTERRUPTIBLE);
++ raw_spin_unlock(&self->pi_lock);
++ }
++}
++
++int __write_rt_trylock(struct rt_rw_lock *lock)
++{
++ struct rt_mutex *m = &lock->rtmutex;
++ unsigned long flags;
++
++ if (!__rt_mutex_trylock(m))
++ return 0;
++
++ atomic_sub(READER_BIAS, &lock->readers);
++
++ raw_spin_lock_irqsave(&m->wait_lock, flags);
++ if (!atomic_read(&lock->readers)) {
++ atomic_set(&lock->readers, WRITER_BIAS);
++ raw_spin_unlock_irqrestore(&m->wait_lock, flags);
++ return 1;
++ }
++ __write_unlock_common(lock, 0, flags);
++ return 0;
++}
++
++void __write_rt_unlock(struct rt_rw_lock *lock)
++{
++ struct rt_mutex *m = &lock->rtmutex;
++ unsigned long flags;
++
++ raw_spin_lock_irqsave(&m->wait_lock, flags);
++ __write_unlock_common(lock, WRITER_BIAS, flags);
++}
++
++/* Map the reader biased implementation */
++static inline int do_read_rt_trylock(rwlock_t *rwlock)
++{
++ return __read_rt_trylock(rwlock);
++}
++
++static inline int do_write_rt_trylock(rwlock_t *rwlock)
++{
++ return __write_rt_trylock(rwlock);
++}
++
++static inline void do_read_rt_lock(rwlock_t *rwlock)
++{
++ __read_rt_lock(rwlock);
++}
++
++static inline void do_write_rt_lock(rwlock_t *rwlock)
++{
++ __write_rt_lock(rwlock);
++}
++
++static inline void do_read_rt_unlock(rwlock_t *rwlock)
++{
++ __read_rt_unlock(rwlock);
++}
++
++static inline void do_write_rt_unlock(rwlock_t *rwlock)
++{
++ __write_rt_unlock(rwlock);
++}
++
++static inline void do_rwlock_rt_init(rwlock_t *rwlock, const char *name,
++ struct lock_class_key *key)
++{
++ __rwlock_biased_rt_init(rwlock, name, key);
++}
++
++int __lockfunc rt_read_can_lock(rwlock_t *rwlock)
++{
++ return atomic_read(&rwlock->readers) < 0;
++}
++
++int __lockfunc rt_write_can_lock(rwlock_t *rwlock)
++{
++ return atomic_read(&rwlock->readers) == READER_BIAS;
++}
++
++/*
++ * The common functions which get wrapped into the rwlock API.
++ */
++int __lockfunc rt_read_trylock(rwlock_t *rwlock)
++{
++ int ret;
++
++ migrate_disable();
++ ret = do_read_rt_trylock(rwlock);
++ if (ret)
++ rwlock_acquire_read(&rwlock->dep_map, 0, 1, _RET_IP_);
++ else
++ migrate_enable();
++ return ret;
++}
++EXPORT_SYMBOL(rt_read_trylock);
++
++int __lockfunc rt_write_trylock(rwlock_t *rwlock)
++{
++ int ret;
++
++ migrate_disable();
++ ret = do_write_rt_trylock(rwlock);
++ if (ret)
++ rwlock_acquire(&rwlock->dep_map, 0, 1, _RET_IP_);
++ else
++ migrate_enable();
++ return ret;
++}
++EXPORT_SYMBOL(rt_write_trylock);
++
++void __lockfunc rt_read_lock(rwlock_t *rwlock)
++{
++ migrate_disable();
++ rwlock_acquire_read(&rwlock->dep_map, 0, 0, _RET_IP_);
++ do_read_rt_lock(rwlock);
++}
++EXPORT_SYMBOL(rt_read_lock);
++
++void __lockfunc rt_write_lock(rwlock_t *rwlock)
++{
++ migrate_disable();
++ rwlock_acquire(&rwlock->dep_map, 0, 0, _RET_IP_);
++ do_write_rt_lock(rwlock);
++}
++EXPORT_SYMBOL(rt_write_lock);
++
++void __lockfunc rt_read_unlock(rwlock_t *rwlock)
++{
++ rwlock_release(&rwlock->dep_map, 1, _RET_IP_);
++ do_read_rt_unlock(rwlock);
++ migrate_enable();
++}
++EXPORT_SYMBOL(rt_read_unlock);
++
++void __lockfunc rt_write_unlock(rwlock_t *rwlock)
++{
++ rwlock_release(&rwlock->dep_map, 1, _RET_IP_);
++ do_write_rt_unlock(rwlock);
++ migrate_enable();
++}
++EXPORT_SYMBOL(rt_write_unlock);
++
++void __rt_rwlock_init(rwlock_t *rwlock, char *name, struct lock_class_key *key)
++{
++ do_rwlock_rt_init(rwlock, name, key);
++}
++EXPORT_SYMBOL(__rt_rwlock_init);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0146-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch b/debian/patches-rt/0146-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch
new file mode 100644
index 000000000..44b53bba1
--- /dev/null
+++ b/debian/patches-rt/0146-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch
@@ -0,0 +1,33 @@
+From 0e2b5eb41fc6820a80428de4a73ede6f47d74cf0 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 11 Jan 2019 21:16:31 +0100
+Subject: [PATCH 146/347] rtmutex/rwlock: preserve state like a sleeping lock
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The rwlock is spinning while acquiring a lock. Therefore it must become
+a sleeping lock on RT and preserve its task state while sleeping and
+waiting for the lock to become available.
+
+Reported-by: Joe Korty <Joe.Korty@concurrent-rt.com>
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/locking/rwlock-rt.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kernel/locking/rwlock-rt.c b/kernel/locking/rwlock-rt.c
+index aebb7ce25bc6..8f90afe111ce 100644
+--- a/kernel/locking/rwlock-rt.c
++++ b/kernel/locking/rwlock-rt.c
+@@ -128,7 +128,7 @@ void __sched __read_rt_lock(struct rt_rw_lock *lock)
+ * That would put Reader1 behind the writer waiting on
+ * Reader2 to call read_unlock() which might be unbound.
+ */
+- rt_mutex_init_waiter(&waiter, false);
++ rt_mutex_init_waiter(&waiter, true);
+ rt_spin_lock_slowlock_locked(m, &waiter, flags);
+ /*
+ * The slowlock() above is guaranteed to return with the rtmutex is
+--
+2.36.1
+
diff --git a/debian/patches-rt/0147-rtmutex-wire-up-RT-s-locking.patch b/debian/patches-rt/0147-rtmutex-wire-up-RT-s-locking.patch
new file mode 100644
index 000000000..8110605a3
--- /dev/null
+++ b/debian/patches-rt/0147-rtmutex-wire-up-RT-s-locking.patch
@@ -0,0 +1,271 @@
+From d334127aee6c64a7cdf5e5d3420666bcfdeb8ba6 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Thu, 12 Oct 2017 17:31:14 +0200
+Subject: [PATCH 147/347] rtmutex: wire up RT's locking
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/mutex.h | 20 +++++++++++++-------
+ include/linux/rwsem.h | 11 +++++++++++
+ include/linux/spinlock.h | 12 +++++++++++-
+ include/linux/spinlock_api_smp.h | 4 +++-
+ include/linux/spinlock_types.h | 11 ++++++++---
+ kernel/locking/Makefile | 9 ++++++++-
+ kernel/locking/spinlock.c | 7 +++++++
+ kernel/locking/spinlock_debug.c | 5 +++++
+ 8 files changed, 66 insertions(+), 13 deletions(-)
+
+diff --git a/include/linux/mutex.h b/include/linux/mutex.h
+index 8f7cdf83f359..6aa217c6e3ca 100644
+--- a/include/linux/mutex.h
++++ b/include/linux/mutex.h
+@@ -22,6 +22,17 @@
+
+ struct ww_acquire_ctx;
+
++#ifdef CONFIG_DEBUG_LOCK_ALLOC
++# define __DEP_MAP_MUTEX_INITIALIZER(lockname) \
++ , .dep_map = { .name = #lockname }
++#else
++# define __DEP_MAP_MUTEX_INITIALIZER(lockname)
++#endif
++
++#ifdef CONFIG_PREEMPT_RT_FULL
++# include <linux/mutex_rt.h>
++#else
++
+ /*
+ * Simple, straightforward mutexes with strict semantics:
+ *
+@@ -118,13 +129,6 @@ do { \
+ __mutex_init((mutex), #mutex, &__key); \
+ } while (0)
+
+-#ifdef CONFIG_DEBUG_LOCK_ALLOC
+-# define __DEP_MAP_MUTEX_INITIALIZER(lockname) \
+- , .dep_map = { .name = #lockname }
+-#else
+-# define __DEP_MAP_MUTEX_INITIALIZER(lockname)
+-#endif
+-
+ #define __MUTEX_INITIALIZER(lockname) \
+ { .owner = ATOMIC_LONG_INIT(0) \
+ , .wait_lock = __SPIN_LOCK_UNLOCKED(lockname.wait_lock) \
+@@ -229,4 +233,6 @@ mutex_trylock_recursive(struct mutex *lock)
+ return mutex_trylock(lock);
+ }
+
++#endif /* !PREEMPT_RT_FULL */
++
+ #endif /* __LINUX_MUTEX_H */
+diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h
+index ab93b6eae696..b1e32373f44f 100644
+--- a/include/linux/rwsem.h
++++ b/include/linux/rwsem.h
+@@ -20,6 +20,10 @@
+ #include <linux/osq_lock.h>
+ #endif
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++#include <linux/rwsem_rt.h>
++#else /* PREEMPT_RT_FULL */
++
+ struct rw_semaphore;
+
+ #ifdef CONFIG_RWSEM_GENERIC_SPINLOCK
+@@ -114,6 +118,13 @@ static inline int rwsem_is_contended(struct rw_semaphore *sem)
+ return !list_empty(&sem->wait_list);
+ }
+
++#endif /* !PREEMPT_RT_FULL */
++
++/*
++ * The functions below are the same for all rwsem implementations including
++ * the RT specific variant.
++ */
++
+ /*
+ * lock for reading
+ */
+diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h
+index e089157dcf97..5f5ad0630a26 100644
+--- a/include/linux/spinlock.h
++++ b/include/linux/spinlock.h
+@@ -298,7 +298,11 @@ static inline void do_raw_spin_unlock(raw_spinlock_t *lock) __releases(lock)
+ })
+
+ /* Include rwlock functions */
+-#include <linux/rwlock.h>
++#ifdef CONFIG_PREEMPT_RT_FULL
++# include <linux/rwlock_rt.h>
++#else
++# include <linux/rwlock.h>
++#endif
+
+ /*
+ * Pull the _spin_*()/_read_*()/_write_*() functions/declarations:
+@@ -309,6 +313,10 @@ static inline void do_raw_spin_unlock(raw_spinlock_t *lock) __releases(lock)
+ # include <linux/spinlock_api_up.h>
+ #endif
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++# include <linux/spinlock_rt.h>
++#else /* PREEMPT_RT_FULL */
++
+ /*
+ * Map the spin_lock functions to the raw variants for PREEMPT_RT=n
+ */
+@@ -429,6 +437,8 @@ static __always_inline int spin_is_contended(spinlock_t *lock)
+
+ #define assert_spin_locked(lock) assert_raw_spin_locked(&(lock)->rlock)
+
++#endif /* !PREEMPT_RT_FULL */
++
+ /*
+ * 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 42dfab89e740..29d99ae5a8ab 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)
+ return 0;
+ }
+
+-#include <linux/rwlock_api_smp.h>
++#ifndef CONFIG_PREEMPT_RT_FULL
++# include <linux/rwlock_api_smp.h>
++#endif
+
+ #endif /* __LINUX_SPINLOCK_API_SMP_H */
+diff --git a/include/linux/spinlock_types.h b/include/linux/spinlock_types.h
+index 5c8664d57fb8..10bac715ea96 100644
+--- a/include/linux/spinlock_types.h
++++ b/include/linux/spinlock_types.h
+@@ -11,8 +11,13 @@
+
+ #include <linux/spinlock_types_raw.h>
+
+-#include <linux/spinlock_types_nort.h>
+-
+-#include <linux/rwlock_types.h>
++#ifndef CONFIG_PREEMPT_RT_FULL
++# include <linux/spinlock_types_nort.h>
++# include <linux/rwlock_types.h>
++#else
++# include <linux/rtmutex.h>
++# include <linux/spinlock_types_rt.h>
++# include <linux/rwlock_types_rt.h>
++#endif
+
+ #endif /* __LINUX_SPINLOCK_TYPES_H */
+diff --git a/kernel/locking/Makefile b/kernel/locking/Makefile
+index 392c7f23af76..c0bf04b6b965 100644
+--- a/kernel/locking/Makefile
++++ b/kernel/locking/Makefile
+@@ -3,7 +3,7 @@
+ # and is generally not a function of system call inputs.
+ KCOV_INSTRUMENT := n
+
+-obj-y += mutex.o semaphore.o rwsem.o percpu-rwsem.o
++obj-y += semaphore.o percpu-rwsem.o
+
+ ifdef CONFIG_FUNCTION_TRACER
+ CFLAGS_REMOVE_lockdep.o = $(CC_FLAGS_FTRACE)
+@@ -12,7 +12,11 @@ CFLAGS_REMOVE_mutex-debug.o = $(CC_FLAGS_FTRACE)
+ CFLAGS_REMOVE_rtmutex-debug.o = $(CC_FLAGS_FTRACE)
+ endif
+
++ifneq ($(CONFIG_PREEMPT_RT_FULL),y)
++obj-y += mutex.o
+ obj-$(CONFIG_DEBUG_MUTEXES) += mutex-debug.o
++endif
++obj-y += rwsem.o
+ obj-$(CONFIG_LOCKDEP) += lockdep.o
+ ifeq ($(CONFIG_PROC_FS),y)
+ obj-$(CONFIG_LOCKDEP) += lockdep_proc.o
+@@ -25,8 +29,11 @@ obj-$(CONFIG_RT_MUTEXES) += rtmutex.o
+ obj-$(CONFIG_DEBUG_RT_MUTEXES) += rtmutex-debug.o
+ obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock.o
+ obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock_debug.o
++ifneq ($(CONFIG_PREEMPT_RT_FULL),y)
+ obj-$(CONFIG_RWSEM_GENERIC_SPINLOCK) += rwsem-spinlock.o
+ obj-$(CONFIG_RWSEM_XCHGADD_ALGORITHM) += rwsem-xadd.o
++endif
++obj-$(CONFIG_PREEMPT_RT_FULL) += mutex-rt.o rwsem-rt.o rwlock-rt.o
+ obj-$(CONFIG_QUEUED_RWLOCKS) += qrwlock.o
+ obj-$(CONFIG_LOCK_TORTURE_TEST) += locktorture.o
+ obj-$(CONFIG_WW_MUTEX_SELFTEST) += test-ww_mutex.o
+diff --git a/kernel/locking/spinlock.c b/kernel/locking/spinlock.c
+index 936f3d14dd6b..e89b70f474af 100644
+--- a/kernel/locking/spinlock.c
++++ b/kernel/locking/spinlock.c
+@@ -117,8 +117,11 @@ void __lockfunc __raw_##op##_lock_bh(locktype##_t *lock) \
+ * __[spin|read|write]_lock_bh()
+ */
+ BUILD_LOCK_OPS(spin, raw_spinlock);
++
++#ifndef CONFIG_PREEMPT_RT_FULL
+ BUILD_LOCK_OPS(read, rwlock);
+ BUILD_LOCK_OPS(write, rwlock);
++#endif
+
+ #endif
+
+@@ -202,6 +205,8 @@ void __lockfunc _raw_spin_unlock_bh(raw_spinlock_t *lock)
+ EXPORT_SYMBOL(_raw_spin_unlock_bh);
+ #endif
+
++#ifndef CONFIG_PREEMPT_RT_FULL
++
+ #ifndef CONFIG_INLINE_READ_TRYLOCK
+ int __lockfunc _raw_read_trylock(rwlock_t *lock)
+ {
+@@ -346,6 +351,8 @@ void __lockfunc _raw_write_unlock_bh(rwlock_t *lock)
+ EXPORT_SYMBOL(_raw_write_unlock_bh);
+ #endif
+
++#endif /* !PREEMPT_RT_FULL */
++
+ #ifdef CONFIG_DEBUG_LOCK_ALLOC
+
+ 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 03595c29c566..d63df281b495 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,
+
+ EXPORT_SYMBOL(__raw_spin_lock_init);
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ void __rwlock_init(rwlock_t *lock, const char *name,
+ struct lock_class_key *key)
+ {
+@@ -48,6 +49,7 @@ void __rwlock_init(rwlock_t *lock, const char *name,
+ }
+
+ EXPORT_SYMBOL(__rwlock_init);
++#endif
+
+ static void spin_dump(raw_spinlock_t *lock, const char *msg)
+ {
+@@ -135,6 +137,7 @@ void do_raw_spin_unlock(raw_spinlock_t *lock)
+ arch_spin_unlock(&lock->raw_lock);
+ }
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ static void rwlock_bug(rwlock_t *lock, const char *msg)
+ {
+ if (!debug_locks_off())
+@@ -224,3 +227,5 @@ void do_raw_write_unlock(rwlock_t *lock)
+ debug_write_unlock(lock);
+ arch_write_unlock(&lock->raw_lock);
+ }
++
++#endif
+--
+2.36.1
+
diff --git a/debian/patches-rt/0148-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch b/debian/patches-rt/0148-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch
new file mode 100644
index 000000000..86e8aed22
--- /dev/null
+++ b/debian/patches-rt/0148-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch
@@ -0,0 +1,445 @@
+From d33397686c7cab5c3c263709534ec1e58ac42b54 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 12 Oct 2017 17:34:38 +0200
+Subject: [PATCH 148/347] rtmutex: add ww_mutex addon for mutex-rt
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/locking/rtmutex.c | 271 ++++++++++++++++++++++++++++++--
+ kernel/locking/rtmutex_common.h | 2 +
+ kernel/locking/rwsem-rt.c | 2 +-
+ 3 files changed, 261 insertions(+), 14 deletions(-)
+
+diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
+index 5ff2189f1199..cc47d5aa93a1 100644
+--- a/kernel/locking/rtmutex.c
++++ b/kernel/locking/rtmutex.c
+@@ -23,6 +23,7 @@
+ #include <linux/sched/wake_q.h>
+ #include <linux/sched/debug.h>
+ #include <linux/timer.h>
++#include <linux/ww_mutex.h>
+
+ #include "rtmutex_common.h"
+
+@@ -1245,6 +1246,40 @@ EXPORT_SYMBOL(__rt_spin_lock_init);
+
+ #endif /* PREEMPT_RT_FULL */
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++ static inline int __sched
++__mutex_lock_check_stamp(struct rt_mutex *lock, struct ww_acquire_ctx *ctx)
++{
++ struct ww_mutex *ww = container_of(lock, struct ww_mutex, base.lock);
++ struct ww_acquire_ctx *hold_ctx = READ_ONCE(ww->ctx);
++
++ if (!hold_ctx)
++ return 0;
++
++ if (unlikely(ctx == hold_ctx))
++ return -EALREADY;
++
++ if (ctx->stamp - hold_ctx->stamp <= LONG_MAX &&
++ (ctx->stamp != hold_ctx->stamp || ctx > hold_ctx)) {
++#ifdef CONFIG_DEBUG_MUTEXES
++ DEBUG_LOCKS_WARN_ON(ctx->contending_lock);
++ ctx->contending_lock = ww;
++#endif
++ return -EDEADLK;
++ }
++
++ return 0;
++}
++#else
++ static inline int __sched
++__mutex_lock_check_stamp(struct rt_mutex *lock, struct ww_acquire_ctx *ctx)
++{
++ BUG();
++ return 0;
++}
++
++#endif
++
+ static inline int
+ try_to_take_rt_mutex(struct rt_mutex *lock, struct task_struct *task,
+ struct rt_mutex_waiter *waiter)
+@@ -1523,7 +1558,8 @@ void rt_mutex_init_waiter(struct rt_mutex_waiter *waiter, bool savestate)
+ static int __sched
+ __rt_mutex_slowlock(struct rt_mutex *lock, int state,
+ struct hrtimer_sleeper *timeout,
+- struct rt_mutex_waiter *waiter)
++ struct rt_mutex_waiter *waiter,
++ struct ww_acquire_ctx *ww_ctx)
+ {
+ int ret = 0;
+
+@@ -1541,6 +1577,12 @@ __rt_mutex_slowlock(struct rt_mutex *lock, int state,
+ break;
+ }
+
++ if (ww_ctx && ww_ctx->acquired > 0) {
++ ret = __mutex_lock_check_stamp(lock, ww_ctx);
++ if (ret)
++ break;
++ }
++
+ raw_spin_unlock_irq(&lock->wait_lock);
+
+ debug_rt_mutex_print_deadlock(waiter);
+@@ -1575,16 +1617,106 @@ static void rt_mutex_handle_deadlock(int res, int detect_deadlock,
+ }
+ }
+
++static __always_inline void ww_mutex_lock_acquired(struct ww_mutex *ww,
++ struct ww_acquire_ctx *ww_ctx)
++{
++#ifdef CONFIG_DEBUG_MUTEXES
++ /*
++ * If this WARN_ON triggers, you used ww_mutex_lock to acquire,
++ * but released with a normal mutex_unlock in this call.
++ *
++ * This should never happen, always use ww_mutex_unlock.
++ */
++ DEBUG_LOCKS_WARN_ON(ww->ctx);
++
++ /*
++ * Not quite done after calling ww_acquire_done() ?
++ */
++ DEBUG_LOCKS_WARN_ON(ww_ctx->done_acquire);
++
++ if (ww_ctx->contending_lock) {
++ /*
++ * After -EDEADLK you tried to
++ * acquire a different ww_mutex? Bad!
++ */
++ DEBUG_LOCKS_WARN_ON(ww_ctx->contending_lock != ww);
++
++ /*
++ * You called ww_mutex_lock after receiving -EDEADLK,
++ * but 'forgot' to unlock everything else first?
++ */
++ DEBUG_LOCKS_WARN_ON(ww_ctx->acquired > 0);
++ ww_ctx->contending_lock = NULL;
++ }
++
++ /*
++ * Naughty, using a different class will lead to undefined behavior!
++ */
++ DEBUG_LOCKS_WARN_ON(ww_ctx->ww_class != ww->ww_class);
++#endif
++ ww_ctx->acquired++;
++}
++
++#ifdef CONFIG_PREEMPT_RT_FULL
++static void ww_mutex_account_lock(struct rt_mutex *lock,
++ struct ww_acquire_ctx *ww_ctx)
++{
++ struct ww_mutex *ww = container_of(lock, struct ww_mutex, base.lock);
++ struct rt_mutex_waiter *waiter, *n;
++
++ /*
++ * This branch gets optimized out for the common case,
++ * and is only important for ww_mutex_lock.
++ */
++ ww_mutex_lock_acquired(ww, ww_ctx);
++ ww->ctx = ww_ctx;
++
++ /*
++ * Give any possible sleeping processes the chance to wake up,
++ * so they can recheck if they have to back off.
++ */
++ rbtree_postorder_for_each_entry_safe(waiter, n, &lock->waiters.rb_root,
++ tree_entry) {
++ /* XXX debug rt mutex waiter wakeup */
++
++ BUG_ON(waiter->lock != lock);
++ rt_mutex_wake_waiter(waiter);
++ }
++}
++
++#else
++
++static void ww_mutex_account_lock(struct rt_mutex *lock,
++ struct ww_acquire_ctx *ww_ctx)
++{
++ BUG();
++}
++#endif
++
+ int __sched rt_mutex_slowlock_locked(struct rt_mutex *lock, int state,
+ struct hrtimer_sleeper *timeout,
+ enum rtmutex_chainwalk chwalk,
++ struct ww_acquire_ctx *ww_ctx,
+ struct rt_mutex_waiter *waiter)
+ {
+ int ret;
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++ if (ww_ctx) {
++ struct ww_mutex *ww;
++
++ ww = container_of(lock, struct ww_mutex, base.lock);
++ if (unlikely(ww_ctx == READ_ONCE(ww->ctx)))
++ return -EALREADY;
++ }
++#endif
++
+ /* Try to acquire the lock again: */
+- if (try_to_take_rt_mutex(lock, current, NULL))
++ if (try_to_take_rt_mutex(lock, current, NULL)) {
++ if (ww_ctx)
++ ww_mutex_account_lock(lock, ww_ctx);
+ return 0;
++ }
+
+ set_current_state(state);
+
+@@ -1594,14 +1726,24 @@ int __sched rt_mutex_slowlock_locked(struct rt_mutex *lock, int state,
+
+ ret = task_blocks_on_rt_mutex(lock, waiter, current, chwalk);
+
+- if (likely(!ret))
++ if (likely(!ret)) {
+ /* sleep on the mutex */
+- ret = __rt_mutex_slowlock(lock, state, timeout, waiter);
++ ret = __rt_mutex_slowlock(lock, state, timeout, waiter,
++ ww_ctx);
++ } else if (ww_ctx) {
++ /* ww_mutex received EDEADLK, let it become EALREADY */
++ ret = __mutex_lock_check_stamp(lock, ww_ctx);
++ BUG_ON(!ret);
++ }
+
+ if (unlikely(ret)) {
+ __set_current_state(TASK_RUNNING);
+ remove_waiter(lock, waiter);
+- rt_mutex_handle_deadlock(ret, chwalk, waiter);
++ /* ww_mutex wants to report EDEADLK/EALREADY, let it */
++ if (!ww_ctx)
++ rt_mutex_handle_deadlock(ret, chwalk, waiter);
++ } else if (ww_ctx) {
++ ww_mutex_account_lock(lock, ww_ctx);
+ }
+
+ /*
+@@ -1618,7 +1760,8 @@ int __sched rt_mutex_slowlock_locked(struct rt_mutex *lock, int state,
+ static int __sched
+ rt_mutex_slowlock(struct rt_mutex *lock, int state,
+ struct hrtimer_sleeper *timeout,
+- enum rtmutex_chainwalk chwalk)
++ enum rtmutex_chainwalk chwalk,
++ struct ww_acquire_ctx *ww_ctx)
+ {
+ struct rt_mutex_waiter waiter;
+ unsigned long flags;
+@@ -1636,7 +1779,8 @@ rt_mutex_slowlock(struct rt_mutex *lock, int state,
+ */
+ raw_spin_lock_irqsave(&lock->wait_lock, flags);
+
+- ret = rt_mutex_slowlock_locked(lock, state, timeout, chwalk, &waiter);
++ ret = rt_mutex_slowlock_locked(lock, state, timeout, chwalk, ww_ctx,
++ &waiter);
+
+ raw_spin_unlock_irqrestore(&lock->wait_lock, flags);
+
+@@ -1766,29 +1910,33 @@ static bool __sched rt_mutex_slowunlock(struct rt_mutex *lock,
+ */
+ static inline int
+ rt_mutex_fastlock(struct rt_mutex *lock, int state,
++ struct ww_acquire_ctx *ww_ctx,
+ int (*slowfn)(struct rt_mutex *lock, int state,
+ struct hrtimer_sleeper *timeout,
+- enum rtmutex_chainwalk chwalk))
++ enum rtmutex_chainwalk chwalk,
++ struct ww_acquire_ctx *ww_ctx))
+ {
+ if (likely(rt_mutex_cmpxchg_acquire(lock, NULL, current)))
+ return 0;
+
+- return slowfn(lock, state, NULL, RT_MUTEX_MIN_CHAINWALK);
++ return slowfn(lock, state, NULL, RT_MUTEX_MIN_CHAINWALK, ww_ctx);
+ }
+
+ static inline int
+ rt_mutex_timed_fastlock(struct rt_mutex *lock, int state,
+ struct hrtimer_sleeper *timeout,
+ enum rtmutex_chainwalk chwalk,
++ struct ww_acquire_ctx *ww_ctx,
+ int (*slowfn)(struct rt_mutex *lock, int state,
+ struct hrtimer_sleeper *timeout,
+- enum rtmutex_chainwalk chwalk))
++ enum rtmutex_chainwalk chwalk,
++ struct ww_acquire_ctx *ww_ctx))
+ {
+ if (chwalk == RT_MUTEX_MIN_CHAINWALK &&
+ likely(rt_mutex_cmpxchg_acquire(lock, NULL, current)))
+ return 0;
+
+- return slowfn(lock, state, timeout, chwalk);
++ return slowfn(lock, state, timeout, chwalk, ww_ctx);
+ }
+
+ static inline int
+@@ -1833,7 +1981,7 @@ rt_mutex_fastunlock(struct rt_mutex *lock,
+ int __sched __rt_mutex_lock_state(struct rt_mutex *lock, int state)
+ {
+ might_sleep();
+- return rt_mutex_fastlock(lock, state, rt_mutex_slowlock);
++ return rt_mutex_fastlock(lock, state, NULL, rt_mutex_slowlock);
+ }
+
+ /**
+@@ -1953,6 +2101,7 @@ rt_mutex_timed_lock(struct rt_mutex *lock, struct hrtimer_sleeper *timeout)
+ mutex_acquire(&lock->dep_map, 0, 0, _RET_IP_);
+ ret = rt_mutex_timed_fastlock(lock, TASK_INTERRUPTIBLE, timeout,
+ RT_MUTEX_MIN_CHAINWALK,
++ NULL,
+ rt_mutex_slowlock);
+ if (ret)
+ mutex_release(&lock->dep_map, 1, _RET_IP_);
+@@ -2299,7 +2448,7 @@ int rt_mutex_wait_proxy_lock(struct rt_mutex *lock,
+ raw_spin_lock_irq(&lock->wait_lock);
+ /* sleep on the mutex */
+ set_current_state(TASK_INTERRUPTIBLE);
+- ret = __rt_mutex_slowlock(lock, TASK_INTERRUPTIBLE, to, waiter);
++ ret = __rt_mutex_slowlock(lock, TASK_INTERRUPTIBLE, to, waiter, NULL);
+ /*
+ * try_to_take_rt_mutex() sets the waiter bit unconditionally. We might
+ * have to fix that up.
+@@ -2384,3 +2533,99 @@ bool rt_mutex_cleanup_proxy_lock(struct rt_mutex *lock,
+
+ return cleanup;
+ }
++
++static inline int
++ww_mutex_deadlock_injection(struct ww_mutex *lock, struct ww_acquire_ctx *ctx)
++{
++#ifdef CONFIG_DEBUG_WW_MUTEX_SLOWPATH
++ unsigned tmp;
++
++ if (ctx->deadlock_inject_countdown-- == 0) {
++ tmp = ctx->deadlock_inject_interval;
++ if (tmp > UINT_MAX/4)
++ tmp = UINT_MAX;
++ else
++ tmp = tmp*2 + tmp + tmp/2;
++
++ ctx->deadlock_inject_interval = tmp;
++ ctx->deadlock_inject_countdown = tmp;
++ ctx->contending_lock = lock;
++
++ ww_mutex_unlock(lock);
++
++ return -EDEADLK;
++ }
++#endif
++
++ return 0;
++}
++
++#ifdef CONFIG_PREEMPT_RT_FULL
++int __sched
++ww_mutex_lock_interruptible(struct ww_mutex *lock, struct ww_acquire_ctx *ctx)
++{
++ int ret;
++
++ might_sleep();
++
++ mutex_acquire_nest(&lock->base.dep_map, 0, 0,
++ ctx ? &ctx->dep_map : NULL, _RET_IP_);
++ ret = rt_mutex_slowlock(&lock->base.lock, TASK_INTERRUPTIBLE, NULL, 0,
++ ctx);
++ if (ret)
++ mutex_release(&lock->base.dep_map, 1, _RET_IP_);
++ else if (!ret && ctx && ctx->acquired > 1)
++ return ww_mutex_deadlock_injection(lock, ctx);
++
++ return ret;
++}
++EXPORT_SYMBOL_GPL(ww_mutex_lock_interruptible);
++
++int __sched
++ww_mutex_lock(struct ww_mutex *lock, struct ww_acquire_ctx *ctx)
++{
++ int ret;
++
++ might_sleep();
++
++ mutex_acquire_nest(&lock->base.dep_map, 0, 0,
++ ctx ? &ctx->dep_map : NULL, _RET_IP_);
++ ret = rt_mutex_slowlock(&lock->base.lock, TASK_UNINTERRUPTIBLE, NULL, 0,
++ ctx);
++ if (ret)
++ mutex_release(&lock->base.dep_map, 1, _RET_IP_);
++ else if (!ret && ctx && ctx->acquired > 1)
++ return ww_mutex_deadlock_injection(lock, ctx);
++
++ return ret;
++}
++EXPORT_SYMBOL_GPL(ww_mutex_lock);
++
++void __sched ww_mutex_unlock(struct ww_mutex *lock)
++{
++ int nest = !!lock->ctx;
++
++ /*
++ * The unlocking fastpath is the 0->1 transition from 'locked'
++ * into 'unlocked' state:
++ */
++ if (nest) {
++#ifdef CONFIG_DEBUG_MUTEXES
++ DEBUG_LOCKS_WARN_ON(!lock->ctx->acquired);
++#endif
++ if (lock->ctx->acquired > 0)
++ lock->ctx->acquired--;
++ lock->ctx = NULL;
++ }
++
++ mutex_release(&lock->base.dep_map, nest, _RET_IP_);
++ __rt_mutex_unlock(&lock->base.lock);
++}
++EXPORT_SYMBOL(ww_mutex_unlock);
++
++int __rt_mutex_owner_current(struct rt_mutex *lock)
++{
++ return rt_mutex_owner(lock) == current;
++}
++EXPORT_SYMBOL(__rt_mutex_owner_current);
++#endif
+diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h
+index 7c1dd1bd95c7..8e0c592273e6 100644
+--- a/kernel/locking/rtmutex_common.h
++++ b/kernel/locking/rtmutex_common.h
+@@ -164,6 +164,7 @@ extern void rt_mutex_postunlock(struct wake_q_head *wake_q,
+ struct wake_q_head *wake_sleeper_q);
+
+ /* RW semaphore special interface */
++struct ww_acquire_ctx;
+
+ extern int __rt_mutex_lock_state(struct rt_mutex *lock, int state);
+ extern int __rt_mutex_trylock(struct rt_mutex *lock);
+@@ -171,6 +172,7 @@ extern void __rt_mutex_unlock(struct rt_mutex *lock);
+ int __sched rt_mutex_slowlock_locked(struct rt_mutex *lock, int state,
+ struct hrtimer_sleeper *timeout,
+ enum rtmutex_chainwalk chwalk,
++ struct ww_acquire_ctx *ww_ctx,
+ struct rt_mutex_waiter *waiter);
+ 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 7d3c5cf3d23d..660e22caf709 100644
+--- a/kernel/locking/rwsem-rt.c
++++ b/kernel/locking/rwsem-rt.c
+@@ -131,7 +131,7 @@ static int __sched __down_read_common(struct rw_semaphore *sem, int state)
+ */
+ rt_mutex_init_waiter(&waiter, false);
+ ret = rt_mutex_slowlock_locked(m, state, NULL, RT_MUTEX_MIN_CHAINWALK,
+- &waiter);
++ NULL, &waiter);
+ /*
+ * 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.36.1
+
diff --git a/debian/patches-rt/0149-kconfig-Add-PREEMPT_RT_FULL.patch b/debian/patches-rt/0149-kconfig-Add-PREEMPT_RT_FULL.patch
new file mode 100644
index 000000000..a9ee49334
--- /dev/null
+++ b/debian/patches-rt/0149-kconfig-Add-PREEMPT_RT_FULL.patch
@@ -0,0 +1,69 @@
+From 484511a754ae9320cc61d583c24e811d3cc476ff Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 29 Jun 2011 14:58:57 +0200
+Subject: [PATCH 149/347] kconfig: Add PREEMPT_RT_FULL
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Introduce the final symbol for PREEMPT_RT_FULL.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ init/Makefile | 2 +-
+ kernel/Kconfig.preempt | 8 ++++++++
+ scripts/mkcompile_h | 4 +++-
+ 3 files changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/init/Makefile b/init/Makefile
+index a3e5ce2bcf08..7779232563ae 100644
+--- a/init/Makefile
++++ b/init/Makefile
+@@ -34,4 +34,4 @@ $(obj)/version.o: include/generated/compile.h
+ include/generated/compile.h: FORCE
+ @$($(quiet)chk_compile.h)
+ $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkcompile_h $@ \
+- "$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CC) $(KBUILD_CFLAGS)"
++ "$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CONFIG_PREEMPT_RT_FULL)" "$(CC) $(KBUILD_CFLAGS)"
+diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt
+index 027db5976c2f..907d72b3ba95 100644
+--- a/kernel/Kconfig.preempt
++++ b/kernel/Kconfig.preempt
+@@ -69,6 +69,14 @@ config PREEMPT_RTB
+ enables changes which are preliminary for the full preemptible
+ RT kernel.
+
++config PREEMPT_RT_FULL
++ bool "Fully Preemptible Kernel (RT)"
++ depends on IRQ_FORCED_THREADING
++ select PREEMPT_RT_BASE
++ select PREEMPT_RCU
++ help
++ All and everything
++
+ endchoice
+
+ config PREEMPT_COUNT
+diff --git a/scripts/mkcompile_h b/scripts/mkcompile_h
+index 662fe19da990..089200debc38 100755
+--- a/scripts/mkcompile_h
++++ b/scripts/mkcompile_h
+@@ -5,7 +5,8 @@ TARGET=$1
+ ARCH=$2
+ SMP=$3
+ PREEMPT=$4
+-CC=$5
++RT=$5
++CC=$6
+
+ vecho() { [ "${quiet}" = "silent_" ] || echo "$@" ; }
+
+@@ -53,6 +54,7 @@ UTS_VERSION="#$VERSION"
+ CONFIG_FLAGS=""
+ if [ -n "$SMP" ] ; then CONFIG_FLAGS="SMP"; fi
+ if [ -n "$PREEMPT" ] ; then CONFIG_FLAGS="$CONFIG_FLAGS PREEMPT"; fi
++if [ -n "$RT" ] ; then CONFIG_FLAGS="$CONFIG_FLAGS RT"; fi
+ UTS_VERSION="$UTS_VERSION $CONFIG_FLAGS $TIMESTAMP"
+
+ # Truncate to maximum length
+--
+2.36.1
+
diff --git a/debian/patches-rt/0150-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch b/debian/patches-rt/0150-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch
new file mode 100644
index 000000000..5404d73d6
--- /dev/null
+++ b/debian/patches-rt/0150-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch
@@ -0,0 +1,81 @@
+From d6b1373a76eff772848ccbfed73baf94c807e464 Mon Sep 17 00:00:00 2001
+From: Mikulas Patocka <mpatocka@redhat.com>
+Date: Mon, 13 Nov 2017 12:56:53 -0500
+Subject: [PATCH 150/347] locking/rt-mutex: fix deadlock in device mapper /
+ block-IO
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+When some block device driver creates a bio and submits it to another
+block device driver, the bio is added to current->bio_list (in order to
+avoid unbounded recursion).
+
+However, this queuing of bios can cause deadlocks, in order to avoid them,
+device mapper registers a function flush_current_bio_list. This function
+is called when device mapper driver blocks. It redirects bios queued on
+current->bio_list to helper workqueues, so that these bios can proceed
+even if the driver is blocked.
+
+The problem with CONFIG_PREEMPT_RT_FULL is that when the device mapper
+driver blocks, it won't call flush_current_bio_list (because
+tsk_is_pi_blocked returns true in sched_submit_work), so deadlocks in
+block device stack can happen.
+
+Note that we can't call blk_schedule_flush_plug if tsk_is_pi_blocked
+returns true - that would cause
+BUG_ON(rt_mutex_real_waiter(task->pi_blocked_on)) in
+task_blocks_on_rt_mutex when flush_current_bio_list attempts to take a
+spinlock.
+
+So the proper fix is to call blk_schedule_flush_plug in rt_mutex_fastlock,
+when fast acquire failed and when the task is about to block.
+
+CC: stable-rt@vger.kernel.org
+[bigeasy: The deadlock is not device-mapper specific, it can also occur
+ in plain EXT4]
+Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/locking/rtmutex.c | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
+index cc47d5aa93a1..721e3a4916d9 100644
+--- a/kernel/locking/rtmutex.c
++++ b/kernel/locking/rtmutex.c
+@@ -24,6 +24,7 @@
+ #include <linux/sched/debug.h>
+ #include <linux/timer.h>
+ #include <linux/ww_mutex.h>
++#include <linux/blkdev.h>
+
+ #include "rtmutex_common.h"
+
+@@ -1919,6 +1920,15 @@ rt_mutex_fastlock(struct rt_mutex *lock, int state,
+ if (likely(rt_mutex_cmpxchg_acquire(lock, NULL, current)))
+ return 0;
+
++ /*
++ * If rt_mutex blocks, the function sched_submit_work will not call
++ * blk_schedule_flush_plug (because tsk_is_pi_blocked would be true).
++ * We must call blk_schedule_flush_plug here, if we don't call it,
++ * a deadlock in I/O may happen.
++ */
++ if (unlikely(blk_needs_flush_plug(current)))
++ blk_schedule_flush_plug(current);
++
+ return slowfn(lock, state, NULL, RT_MUTEX_MIN_CHAINWALK, ww_ctx);
+ }
+
+@@ -1936,6 +1946,9 @@ rt_mutex_timed_fastlock(struct rt_mutex *lock, int state,
+ likely(rt_mutex_cmpxchg_acquire(lock, NULL, current)))
+ return 0;
+
++ if (unlikely(blk_needs_flush_plug(current)))
++ blk_schedule_flush_plug(current);
++
+ return slowfn(lock, state, timeout, chwalk, ww_ctx);
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0151-locking-rt-mutex-Flush-block-plug-on-__down_read.patch b/debian/patches-rt/0151-locking-rt-mutex-Flush-block-plug-on-__down_read.patch
new file mode 100644
index 000000000..3128f971d
--- /dev/null
+++ b/debian/patches-rt/0151-locking-rt-mutex-Flush-block-plug-on-__down_read.patch
@@ -0,0 +1,46 @@
+From 229f57115cd91a8632a85152d6e43e781ebd367e Mon Sep 17 00:00:00 2001
+From: Scott Wood <swood@redhat.com>
+Date: Fri, 4 Jan 2019 15:33:21 -0500
+Subject: [PATCH 151/347] locking/rt-mutex: Flush block plug on __down_read()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+__down_read() bypasses the rtmutex frontend to call
+rt_mutex_slowlock_locked() directly, and thus it needs to call
+blk_schedule_flush_flug() itself.
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Scott Wood <swood@redhat.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/locking/rwsem-rt.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/kernel/locking/rwsem-rt.c b/kernel/locking/rwsem-rt.c
+index 660e22caf709..f518495bd6cc 100644
+--- a/kernel/locking/rwsem-rt.c
++++ b/kernel/locking/rwsem-rt.c
+@@ -1,5 +1,6 @@
+ /*
+ */
++#include <linux/blkdev.h>
+ #include <linux/rwsem.h>
+ #include <linux/sched/debug.h>
+ #include <linux/sched/signal.h>
+@@ -87,6 +88,14 @@ static int __sched __down_read_common(struct rw_semaphore *sem, int state)
+
+ if (__down_read_trylock(sem))
+ return 0;
++ /*
++ * If rt_mutex blocks, the function sched_submit_work will not call
++ * blk_schedule_flush_plug (because tsk_is_pi_blocked would be true).
++ * We must call blk_schedule_flush_plug here, if we don't call it,
++ * a deadlock in I/O may happen.
++ */
++ if (unlikely(blk_needs_flush_plug(current)))
++ blk_schedule_flush_plug(current);
+
+ might_sleep();
+ raw_spin_lock_irq(&m->wait_lock);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0152-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch b/debian/patches-rt/0152-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch
new file mode 100644
index 000000000..d3b273dbb
--- /dev/null
+++ b/debian/patches-rt/0152-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch
@@ -0,0 +1,39 @@
+From b30a729eace6fa1b27e10316b55cfe2d0c7dbf9a Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 16 Nov 2017 16:48:48 +0100
+Subject: [PATCH 152/347] locking/rtmutex: re-init the wait_lock in
+ rt_mutex_init_proxy_locked()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+We could provide a key-class for the lockdep (and fixup all callers) or
+move the init to all callers (like it was) in order to avoid lockdep
+seeing a double-lock of the wait_lock.
+
+Reported-by: Fernando Lopez-Lezcano <nando@ccrma.Stanford.EDU>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/locking/rtmutex.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
+index 721e3a4916d9..11bcae2184c4 100644
+--- a/kernel/locking/rtmutex.c
++++ b/kernel/locking/rtmutex.c
+@@ -2281,6 +2281,14 @@ void rt_mutex_init_proxy_locked(struct rt_mutex *lock,
+ struct task_struct *proxy_owner)
+ {
+ __rt_mutex_init(lock, NULL, NULL);
++#ifdef CONFIG_DEBUG_SPINLOCK
++ /*
++ * get another key class for the wait_lock. LOCK_PI and UNLOCK_PI is
++ * holding the ->wait_lock of the proxy_lock while unlocking a sleeping
++ * lock.
++ */
++ raw_spin_lock_init(&lock->wait_lock);
++#endif
+ debug_rt_mutex_proxy_lock(lock, proxy_owner);
+ rt_mutex_set_owner(lock, proxy_owner);
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0153-ptrace-fix-ptrace-vs-tasklist_lock-race.patch b/debian/patches-rt/0153-ptrace-fix-ptrace-vs-tasklist_lock-race.patch
new file mode 100644
index 000000000..fa509ce15
--- /dev/null
+++ b/debian/patches-rt/0153-ptrace-fix-ptrace-vs-tasklist_lock-race.patch
@@ -0,0 +1,166 @@
+From 590484060b22c2d41b6e33ab142e7bf68ad3d85a Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 29 Aug 2013 18:21:04 +0200
+Subject: [PATCH 153/347] ptrace: fix ptrace vs tasklist_lock race
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+As explained by Alexander Fyodorov <halcy@yandex.ru>:
+
+|read_lock(&tasklist_lock) in ptrace_stop() is converted to mutex on RT kernel,
+|and it can remove __TASK_TRACED from task->state (by moving it to
+|task->saved_state). If parent does wait() on child followed by a sys_ptrace
+|call, the following race can happen:
+|
+|- child sets __TASK_TRACED in ptrace_stop()
+|- parent does wait() which eventually calls wait_task_stopped() and returns
+| child's pid
+|- child blocks on read_lock(&tasklist_lock) in ptrace_stop() and moves
+| __TASK_TRACED flag to saved_state
+|- parent calls sys_ptrace, which calls ptrace_check_attach() and wait_task_inactive()
+
+The patch is based on his initial patch where an additional check is
+added in case the __TASK_TRACED moved to ->saved_state. The pi_lock is
+taken in case the caller is interrupted between looking into ->state and
+->saved_state.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/sched.h | 49 +++++++++++++++++++++++++++++++++++++++----
+ kernel/ptrace.c | 9 +++++++-
+ kernel/sched/core.c | 17 +++++++++++++--
+ 3 files changed, 68 insertions(+), 7 deletions(-)
+
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index e4e206a1e7dd..5374ade34b87 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -101,12 +101,8 @@ struct task_group;
+ __TASK_TRACED | EXIT_DEAD | EXIT_ZOMBIE | \
+ TASK_PARKED)
+
+-#define task_is_traced(task) ((task->state & __TASK_TRACED) != 0)
+-
+ #define task_is_stopped(task) ((task->state & __TASK_STOPPED) != 0)
+
+-#define task_is_stopped_or_traced(task) ((task->state & (__TASK_STOPPED | __TASK_TRACED)) != 0)
+-
+ #define task_contributes_to_load(task) ((task->state & TASK_UNINTERRUPTIBLE) != 0 && \
+ (task->flags & PF_FROZEN) == 0 && \
+ (task->state & TASK_NOLOAD) == 0)
+@@ -1717,6 +1713,51 @@ static inline int test_tsk_need_resched(struct task_struct *tsk)
+ return unlikely(test_tsk_thread_flag(tsk,TIF_NEED_RESCHED));
+ }
+
++static inline bool __task_is_stopped_or_traced(struct task_struct *task)
++{
++ if (task->state & (__TASK_STOPPED | __TASK_TRACED))
++ return true;
++#ifdef CONFIG_PREEMPT_RT_FULL
++ if (task->saved_state & (__TASK_STOPPED | __TASK_TRACED))
++ return true;
++#endif
++ return false;
++}
++
++static inline bool task_is_stopped_or_traced(struct task_struct *task)
++{
++ bool traced_stopped;
++
++#ifdef CONFIG_PREEMPT_RT_FULL
++ unsigned long flags;
++
++ raw_spin_lock_irqsave(&task->pi_lock, flags);
++ traced_stopped = __task_is_stopped_or_traced(task);
++ raw_spin_unlock_irqrestore(&task->pi_lock, flags);
++#else
++ traced_stopped = __task_is_stopped_or_traced(task);
++#endif
++ return traced_stopped;
++}
++
++static inline bool task_is_traced(struct task_struct *task)
++{
++ bool traced = false;
++
++ if (task->state & __TASK_TRACED)
++ return true;
++#ifdef CONFIG_PREEMPT_RT_FULL
++ /* in case the task is sleeping on tasklist_lock */
++ raw_spin_lock_irq(&task->pi_lock);
++ if (task->state & __TASK_TRACED)
++ traced = true;
++ else if (task->saved_state & __TASK_TRACED)
++ traced = true;
++ raw_spin_unlock_irq(&task->pi_lock);
++#endif
++ return traced;
++}
++
+ /*
+ * 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 8a98e3e78c70..9c59e523f3cd 100644
+--- a/kernel/ptrace.c
++++ b/kernel/ptrace.c
+@@ -190,7 +190,14 @@ static bool ptrace_freeze_traced(struct task_struct *task)
+ spin_lock_irq(&task->sighand->siglock);
+ if (task_is_traced(task) && !looks_like_a_spurious_pid(task) &&
+ !__fatal_signal_pending(task)) {
+- task->state = __TASK_TRACED;
++ unsigned long flags;
++
++ raw_spin_lock_irqsave(&task->pi_lock, flags);
++ if (task->state & __TASK_TRACED)
++ task->state = __TASK_TRACED;
++ else
++ task->saved_state = __TASK_TRACED;
++ raw_spin_unlock_irqrestore(&task->pi_lock, flags);
+ ret = true;
+ }
+ spin_unlock_irq(&task->sighand->siglock);
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 1f450a7649f0..9494e2007118 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -1349,6 +1349,18 @@ int migrate_swap(struct task_struct *cur, struct task_struct *p,
+ }
+ #endif /* CONFIG_NUMA_BALANCING */
+
++static bool check_task_state(struct task_struct *p, long match_state)
++{
++ bool match = false;
++
++ raw_spin_lock_irq(&p->pi_lock);
++ if (p->state == match_state || p->saved_state == match_state)
++ match = true;
++ raw_spin_unlock_irq(&p->pi_lock);
++
++ return match;
++}
++
+ /*
+ * wait_task_inactive - wait for a thread to unschedule.
+ *
+@@ -1393,7 +1405,7 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state)
+ * is actually now running somewhere else!
+ */
+ while (task_running(rq, p)) {
+- if (match_state && unlikely(p->state != match_state))
++ if (match_state && !check_task_state(p, match_state))
+ return 0;
+ cpu_relax();
+ }
+@@ -1408,7 +1420,8 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state)
+ running = task_running(rq, p);
+ queued = task_on_rq_queued(p);
+ ncsw = 0;
+- if (!match_state || p->state == match_state)
++ if (!match_state || p->state == match_state ||
++ p->saved_state == match_state)
+ ncsw = p->nvcsw | LONG_MIN; /* sets MSB */
+ task_rq_unlock(rq, p, &rf);
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0154-rtmutex-annotate-sleeping-lock-context.patch b/debian/patches-rt/0154-rtmutex-annotate-sleeping-lock-context.patch
new file mode 100644
index 000000000..916d8d802
--- /dev/null
+++ b/debian/patches-rt/0154-rtmutex-annotate-sleeping-lock-context.patch
@@ -0,0 +1,308 @@
+From ac520c8f628b0eeff2af71b77289199262510960 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 21 Sep 2017 14:25:13 +0200
+Subject: [PATCH 154/347] rtmutex: annotate sleeping lock context
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The RCU code complains on schedule() within a rcu_readlock() section.
+The valid scenario on -RT is if a sleeping is held. In order to suppress
+the warning the mirgrate_disable counter was used to identify the
+invocation of schedule() due to lock contention.
+
+Grygorii Strashko report that during CPU hotplug we might see the
+warning via
+ rt_spin_lock() -> migrate_disable() -> pin_current_cpu() -> __read_rt_lock()
+
+because the counter is not yet set.
+It is also possible to trigger the warning from cpu_chill()
+(seen on a kblockd_mod_delayed_work_on() caller).
+
+To address this RCU warning I annotate the sleeping lock context. The
+counter is incremented before migrate_disable() so the warning Grygorii
+should not trigger anymore. Additionally I use that counter in
+cpu_chill() to avoid the RCU warning from there.
+
+Reported-by: Grygorii Strashko <grygorii.strashko@ti.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/preempt.h | 9 ++++++++
+ include/linux/sched.h | 26 ++++++++++++++++++++++
+ kernel/locking/rtmutex.c | 12 ++++++++--
+ kernel/locking/rwlock-rt.c | 18 +++++++++++----
+ kernel/rcu/tree_plugin.h | 6 ++++-
+ kernel/sched/core.c | 45 ++++++++++++++++++++++++++++++++++++++
+ 6 files changed, 109 insertions(+), 7 deletions(-)
+
+diff --git a/include/linux/preempt.h b/include/linux/preempt.h
+index 27c3176d88d2..9eafc34898b4 100644
+--- a/include/linux/preempt.h
++++ b/include/linux/preempt.h
+@@ -211,6 +211,15 @@ extern void migrate_enable(void);
+
+ int __migrate_disabled(struct task_struct *p);
+
++#elif !defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
++
++extern void migrate_disable(void);
++extern void migrate_enable(void);
++static inline int __migrate_disabled(struct task_struct *p)
++{
++ return 0;
++}
++
+ #else
+ #define migrate_disable() barrier()
+ #define migrate_enable() barrier()
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index 5374ade34b87..4f8fcba23c1d 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -673,6 +673,15 @@ struct task_struct {
+ # ifdef CONFIG_SCHED_DEBUG
+ int migrate_disable_atomic;
+ # endif
++
++#elif !defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
++ int migrate_disable;
++# ifdef CONFIG_SCHED_DEBUG
++ int migrate_disable_atomic;
++# endif
++#endif
++#ifdef CONFIG_PREEMPT_RT_FULL
++ int sleeping_lock;
+ #endif
+
+ #ifdef CONFIG_PREEMPT_RCU
+@@ -1810,6 +1819,23 @@ static __always_inline bool need_resched(void)
+ return unlikely(tif_need_resched());
+ }
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++static inline void sleeping_lock_inc(void)
++{
++ current->sleeping_lock++;
++}
++
++static inline void sleeping_lock_dec(void)
++{
++ current->sleeping_lock--;
++}
++
++#else
++
++static inline void sleeping_lock_inc(void) { }
++static inline void sleeping_lock_dec(void) { }
++#endif
++
+ /*
+ * Wrappers for p->thread_info->cpu access. No-op on UP.
+ */
+diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
+index 11bcae2184c4..ded2296f848a 100644
+--- a/kernel/locking/rtmutex.c
++++ b/kernel/locking/rtmutex.c
+@@ -1141,6 +1141,7 @@ void __sched rt_spin_lock_slowunlock(struct rt_mutex *lock)
+
+ void __lockfunc rt_spin_lock(spinlock_t *lock)
+ {
++ sleeping_lock_inc();
+ migrate_disable();
+ spin_acquire(&lock->dep_map, 0, 0, _RET_IP_);
+ rt_spin_lock_fastlock(&lock->lock, rt_spin_lock_slowlock);
+@@ -1155,6 +1156,7 @@ void __lockfunc __rt_spin_lock(struct rt_mutex *lock)
+ #ifdef CONFIG_DEBUG_LOCK_ALLOC
+ void __lockfunc rt_spin_lock_nested(spinlock_t *lock, int subclass)
+ {
++ sleeping_lock_inc();
+ migrate_disable();
+ spin_acquire(&lock->dep_map, subclass, 0, _RET_IP_);
+ rt_spin_lock_fastlock(&lock->lock, rt_spin_lock_slowlock);
+@@ -1168,6 +1170,7 @@ void __lockfunc rt_spin_unlock(spinlock_t *lock)
+ spin_release(&lock->dep_map, 1, _RET_IP_);
+ rt_spin_lock_fastunlock(&lock->lock, rt_spin_lock_slowunlock);
+ migrate_enable();
++ sleeping_lock_dec();
+ }
+ EXPORT_SYMBOL(rt_spin_unlock);
+
+@@ -1193,12 +1196,15 @@ int __lockfunc rt_spin_trylock(spinlock_t *lock)
+ {
+ int ret;
+
++ sleeping_lock_inc();
+ migrate_disable();
+ ret = __rt_mutex_trylock(&lock->lock);
+- if (ret)
++ if (ret) {
+ spin_acquire(&lock->dep_map, 0, 1, _RET_IP_);
+- else
++ } else {
+ migrate_enable();
++ sleeping_lock_dec();
++ }
+ return ret;
+ }
+ EXPORT_SYMBOL(rt_spin_trylock);
+@@ -1210,6 +1216,7 @@ int __lockfunc rt_spin_trylock_bh(spinlock_t *lock)
+ local_bh_disable();
+ ret = __rt_mutex_trylock(&lock->lock);
+ if (ret) {
++ sleeping_lock_inc();
+ migrate_disable();
+ spin_acquire(&lock->dep_map, 0, 1, _RET_IP_);
+ } else
+@@ -1225,6 +1232,7 @@ int __lockfunc rt_spin_trylock_irqsave(spinlock_t *lock, unsigned long *flags)
+ *flags = 0;
+ ret = __rt_mutex_trylock(&lock->lock);
+ if (ret) {
++ sleeping_lock_inc();
+ migrate_disable();
+ spin_acquire(&lock->dep_map, 0, 1, _RET_IP_);
+ }
+diff --git a/kernel/locking/rwlock-rt.c b/kernel/locking/rwlock-rt.c
+index 8f90afe111ce..c3b91205161c 100644
+--- a/kernel/locking/rwlock-rt.c
++++ b/kernel/locking/rwlock-rt.c
+@@ -305,12 +305,15 @@ int __lockfunc rt_read_trylock(rwlock_t *rwlock)
+ {
+ int ret;
+
++ sleeping_lock_inc();
+ migrate_disable();
+ ret = do_read_rt_trylock(rwlock);
+- if (ret)
++ if (ret) {
+ rwlock_acquire_read(&rwlock->dep_map, 0, 1, _RET_IP_);
+- else
++ } else {
+ migrate_enable();
++ sleeping_lock_dec();
++ }
+ return ret;
+ }
+ EXPORT_SYMBOL(rt_read_trylock);
+@@ -319,18 +322,22 @@ int __lockfunc rt_write_trylock(rwlock_t *rwlock)
+ {
+ int ret;
+
++ sleeping_lock_inc();
+ migrate_disable();
+ ret = do_write_rt_trylock(rwlock);
+- if (ret)
++ if (ret) {
+ rwlock_acquire(&rwlock->dep_map, 0, 1, _RET_IP_);
+- else
++ } else {
+ migrate_enable();
++ sleeping_lock_dec();
++ }
+ return ret;
+ }
+ EXPORT_SYMBOL(rt_write_trylock);
+
+ void __lockfunc rt_read_lock(rwlock_t *rwlock)
+ {
++ sleeping_lock_inc();
+ migrate_disable();
+ rwlock_acquire_read(&rwlock->dep_map, 0, 0, _RET_IP_);
+ do_read_rt_lock(rwlock);
+@@ -339,6 +346,7 @@ EXPORT_SYMBOL(rt_read_lock);
+
+ void __lockfunc rt_write_lock(rwlock_t *rwlock)
+ {
++ sleeping_lock_inc();
+ migrate_disable();
+ rwlock_acquire(&rwlock->dep_map, 0, 0, _RET_IP_);
+ do_write_rt_lock(rwlock);
+@@ -350,6 +358,7 @@ void __lockfunc rt_read_unlock(rwlock_t *rwlock)
+ rwlock_release(&rwlock->dep_map, 1, _RET_IP_);
+ do_read_rt_unlock(rwlock);
+ migrate_enable();
++ sleeping_lock_dec();
+ }
+ EXPORT_SYMBOL(rt_read_unlock);
+
+@@ -358,6 +367,7 @@ void __lockfunc rt_write_unlock(rwlock_t *rwlock)
+ rwlock_release(&rwlock->dep_map, 1, _RET_IP_);
+ do_write_rt_unlock(rwlock);
+ migrate_enable();
++ sleeping_lock_dec();
+ }
+ EXPORT_SYMBOL(rt_write_unlock);
+
+diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
+index 5f6de49dc78e..35f3552b7463 100644
+--- a/kernel/rcu/tree_plugin.h
++++ b/kernel/rcu/tree_plugin.h
+@@ -337,9 +337,13 @@ static void rcu_preempt_note_context_switch(bool preempt)
+ struct task_struct *t = current;
+ struct rcu_data *rdp;
+ struct rcu_node *rnp;
++ int sleeping_l = 0;
+
+ lockdep_assert_irqs_disabled();
+- WARN_ON_ONCE(!preempt && t->rcu_read_lock_nesting > 0);
++#if defined(CONFIG_PREEMPT_RT_FULL)
++ sleeping_l = t->sleeping_lock;
++#endif
++ WARN_ON_ONCE(!preempt && t->rcu_read_lock_nesting > 0 && !sleeping_l);
+ if (t->rcu_read_lock_nesting > 0 &&
+ !t->rcu_read_unlock_special.b.blocked) {
+
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 9494e2007118..555dea10764e 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -7348,4 +7348,49 @@ void migrate_enable(void)
+ preempt_enable();
+ }
+ EXPORT_SYMBOL(migrate_enable);
++
++#elif !defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
++void migrate_disable(void)
++{
++ struct task_struct *p = current;
++
++ if (in_atomic() || irqs_disabled()) {
++#ifdef CONFIG_SCHED_DEBUG
++ p->migrate_disable_atomic++;
++#endif
++ return;
++ }
++#ifdef CONFIG_SCHED_DEBUG
++ if (unlikely(p->migrate_disable_atomic)) {
++ tracing_off();
++ WARN_ON_ONCE(1);
++ }
++#endif
++
++ p->migrate_disable++;
++}
++EXPORT_SYMBOL(migrate_disable);
++
++void migrate_enable(void)
++{
++ struct task_struct *p = current;
++
++ if (in_atomic() || irqs_disabled()) {
++#ifdef CONFIG_SCHED_DEBUG
++ p->migrate_disable_atomic--;
++#endif
++ return;
++ }
++
++#ifdef CONFIG_SCHED_DEBUG
++ if (unlikely(p->migrate_disable_atomic)) {
++ tracing_off();
++ WARN_ON_ONCE(1);
++ }
++#endif
++
++ WARN_ON_ONCE(p->migrate_disable <= 0);
++ p->migrate_disable--;
++}
++EXPORT_SYMBOL(migrate_enable);
+ #endif
+--
+2.36.1
+
diff --git a/debian/patches-rt/0155-sched-migrate_disable-fallback-to-preempt_disable-in.patch b/debian/patches-rt/0155-sched-migrate_disable-fallback-to-preempt_disable-in.patch
new file mode 100644
index 000000000..c471ea20d
--- /dev/null
+++ b/debian/patches-rt/0155-sched-migrate_disable-fallback-to-preempt_disable-in.patch
@@ -0,0 +1,204 @@
+From e85e95b0e59b7d493402419e3a63a06978a06452 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 5 Jul 2018 14:44:51 +0200
+Subject: [PATCH 155/347] sched/migrate_disable: fallback to preempt_disable()
+ instead barrier()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+On SMP + !RT migrate_disable() is still around. It is not part of spin_lock()
+anymore so it has almost no users. However the futex code has a workaround for
+the !in_atomic() part of migrate disable which fails because the matching
+migrade_disable() is no longer part of spin_lock().
+
+On !SMP + !RT migrate_disable() is reduced to barrier(). This is not optimal
+because we few spots where a "preempt_disable()" statement was replaced with
+"migrate_disable()".
+
+We also used the migration_disable counter to figure out if a sleeping lock is
+acquired so RCU does not complain about schedule() during rcu_read_lock() while
+a sleeping lock is held. This changed, we no longer use it, we have now a
+sleeping_lock counter for the RCU purpose.
+
+This means we can now:
+- for SMP + RT_BASE
+ full migration program, nothing changes here
+
+- for !SMP + RT_BASE
+ the migration counting is no longer required. It used to ensure that the task
+ is not migrated to another CPU and that this CPU remains online. !SMP ensures
+ that already.
+ Move it to CONFIG_SCHED_DEBUG so the counting is done for debugging purpose
+ only.
+
+- for all other cases including !RT
+ fallback to preempt_disable(). The only remaining users of migrate_disable()
+ are those which were converted from preempt_disable() and the futex
+ workaround which is already in the preempt_disable() section due to the
+ spin_lock that is held.
+
+Cc: stable-rt@vger.kernel.org
+Reported-by: joe.korty@concurrent-rt.com
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/preempt.h | 6 +++---
+ include/linux/sched.h | 4 ++--
+ kernel/sched/core.c | 23 +++++++++++------------
+ kernel/sched/debug.c | 2 +-
+ 4 files changed, 17 insertions(+), 18 deletions(-)
+
+diff --git a/include/linux/preempt.h b/include/linux/preempt.h
+index 9eafc34898b4..ed8413e7140f 100644
+--- a/include/linux/preempt.h
++++ b/include/linux/preempt.h
+@@ -204,7 +204,7 @@ do { \
+
+ #define preemptible() (preempt_count() == 0 && !irqs_disabled())
+
+-#ifdef CONFIG_SMP
++#if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
+
+ extern void migrate_disable(void);
+ extern void migrate_enable(void);
+@@ -221,8 +221,8 @@ static inline int __migrate_disabled(struct task_struct *p)
+ }
+
+ #else
+-#define migrate_disable() barrier()
+-#define migrate_enable() barrier()
++#define migrate_disable() preempt_disable()
++#define migrate_enable() preempt_enable()
+ static inline int __migrate_disabled(struct task_struct *p)
+ {
+ return 0;
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index 4f8fcba23c1d..ceb3bdfb6bc4 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -667,7 +667,7 @@ struct task_struct {
+ int nr_cpus_allowed;
+ const cpumask_t *cpus_ptr;
+ cpumask_t cpus_mask;
+-#if defined(CONFIG_PREEMPT_COUNT) && defined(CONFIG_SMP)
++#if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
+ int migrate_disable;
+ int migrate_disable_update;
+ # ifdef CONFIG_SCHED_DEBUG
+@@ -675,8 +675,8 @@ struct task_struct {
+ # endif
+
+ #elif !defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
+- int migrate_disable;
+ # ifdef CONFIG_SCHED_DEBUG
++ int migrate_disable;
+ int migrate_disable_atomic;
+ # endif
+ #endif
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 555dea10764e..0c44c16244a1 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -1031,7 +1031,7 @@ void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_ma
+ p->nr_cpus_allowed = cpumask_weight(new_mask);
+ }
+
+-#if defined(CONFIG_PREEMPT_COUNT) && defined(CONFIG_SMP)
++#if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
+ int __migrate_disabled(struct task_struct *p)
+ {
+ return p->migrate_disable;
+@@ -1071,7 +1071,7 @@ static void __do_set_cpus_allowed_tail(struct task_struct *p,
+
+ void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
+ {
+-#if defined(CONFIG_PREEMPT_COUNT) && defined(CONFIG_SMP)
++#if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
+ if (__migrate_disabled(p)) {
+ lockdep_assert_held(&p->pi_lock);
+
+@@ -1145,7 +1145,7 @@ static int __set_cpus_allowed_ptr(struct task_struct *p,
+ if (cpumask_test_cpu(task_cpu(p), new_mask) || __migrate_disabled(p))
+ goto out;
+
+-#if defined(CONFIG_PREEMPT_COUNT) && defined(CONFIG_SMP)
++#if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
+ if (__migrate_disabled(p)) {
+ p->migrate_disable_update = 1;
+ goto out;
+@@ -7204,7 +7204,7 @@ const u32 sched_prio_to_wmult[40] = {
+
+ #undef CREATE_TRACE_POINTS
+
+-#if defined(CONFIG_PREEMPT_COUNT) && defined(CONFIG_SMP)
++#if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
+
+ static inline void
+ update_nr_migratory(struct task_struct *p, long delta)
+@@ -7352,45 +7352,44 @@ EXPORT_SYMBOL(migrate_enable);
+ #elif !defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
+ void migrate_disable(void)
+ {
++#ifdef CONFIG_SCHED_DEBUG
+ struct task_struct *p = current;
+
+ if (in_atomic() || irqs_disabled()) {
+-#ifdef CONFIG_SCHED_DEBUG
+ p->migrate_disable_atomic++;
+-#endif
+ return;
+ }
+-#ifdef CONFIG_SCHED_DEBUG
++
+ if (unlikely(p->migrate_disable_atomic)) {
+ tracing_off();
+ WARN_ON_ONCE(1);
+ }
+-#endif
+
+ p->migrate_disable++;
++#endif
++ barrier();
+ }
+ EXPORT_SYMBOL(migrate_disable);
+
+ void migrate_enable(void)
+ {
++#ifdef CONFIG_SCHED_DEBUG
+ struct task_struct *p = current;
+
+ if (in_atomic() || irqs_disabled()) {
+-#ifdef CONFIG_SCHED_DEBUG
+ p->migrate_disable_atomic--;
+-#endif
+ return;
+ }
+
+-#ifdef CONFIG_SCHED_DEBUG
+ if (unlikely(p->migrate_disable_atomic)) {
+ tracing_off();
+ WARN_ON_ONCE(1);
+ }
+-#endif
+
+ WARN_ON_ONCE(p->migrate_disable <= 0);
+ p->migrate_disable--;
++#endif
++ barrier();
+ }
+ EXPORT_SYMBOL(migrate_enable);
+ #endif
+diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c
+index dc3f3e6fa0bd..169b98c12da7 100644
+--- a/kernel/sched/debug.c
++++ b/kernel/sched/debug.c
+@@ -988,7 +988,7 @@ void proc_sched_show_task(struct task_struct *p, struct pid_namespace *ns,
+ P(dl.runtime);
+ P(dl.deadline);
+ }
+-#if defined(CONFIG_PREEMPT_COUNT) && defined(CONFIG_SMP)
++#if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
+ P(migrate_disable);
+ #endif
+ P(nr_cpus_allowed);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0156-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch b/debian/patches-rt/0156-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch
new file mode 100644
index 000000000..b8812e5b3
--- /dev/null
+++ b/debian/patches-rt/0156-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch
@@ -0,0 +1,182 @@
+From af3f791cb33d8bb0c19a9057198100a3bae10cb9 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 4 Aug 2017 17:40:42 +0200
+Subject: [PATCH 156/347] locking: don't check for __LINUX_SPINLOCK_TYPES_H on
+ -RT archs
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Upstream uses arch_spinlock_t within spinlock_t and requests that
+spinlock_types.h header file is included first.
+On -RT we have the rt_mutex with its raw_lock wait_lock which needs
+architectures' spinlock_types.h header file for its definition. However
+we need rt_mutex first because it is used to build the spinlock_t so
+that check does not work for us.
+Therefore I am dropping that check.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/alpha/include/asm/spinlock_types.h | 4 ----
+ arch/arm/include/asm/spinlock_types.h | 4 ----
+ arch/arm64/include/asm/spinlock_types.h | 4 ----
+ arch/hexagon/include/asm/spinlock_types.h | 4 ----
+ arch/ia64/include/asm/spinlock_types.h | 4 ----
+ arch/powerpc/include/asm/spinlock_types.h | 4 ----
+ arch/s390/include/asm/spinlock_types.h | 4 ----
+ arch/sh/include/asm/spinlock_types.h | 4 ----
+ arch/xtensa/include/asm/spinlock_types.h | 4 ----
+ include/linux/spinlock_types_up.h | 4 ----
+ 10 files changed, 40 deletions(-)
+
+diff --git a/arch/alpha/include/asm/spinlock_types.h b/arch/alpha/include/asm/spinlock_types.h
+index 1d5716bc060b..6883bc952d22 100644
+--- a/arch/alpha/include/asm/spinlock_types.h
++++ b/arch/alpha/include/asm/spinlock_types.h
+@@ -2,10 +2,6 @@
+ #ifndef _ALPHA_SPINLOCK_TYPES_H
+ #define _ALPHA_SPINLOCK_TYPES_H
+
+-#ifndef __LINUX_SPINLOCK_TYPES_H
+-# error "please don't include this file directly"
+-#endif
+-
+ typedef struct {
+ 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
+--- a/arch/arm/include/asm/spinlock_types.h
++++ b/arch/arm/include/asm/spinlock_types.h
+@@ -2,10 +2,6 @@
+ #ifndef __ASM_SPINLOCK_TYPES_H
+ #define __ASM_SPINLOCK_TYPES_H
+
+-#ifndef __LINUX_SPINLOCK_TYPES_H
+-# error "please don't include this file directly"
+-#endif
+-
+ #define TICKET_SHIFT 16
+
+ typedef struct {
+diff --git a/arch/arm64/include/asm/spinlock_types.h b/arch/arm64/include/asm/spinlock_types.h
+index a157ff465e27..f952fdda8346 100644
+--- a/arch/arm64/include/asm/spinlock_types.h
++++ b/arch/arm64/include/asm/spinlock_types.h
+@@ -16,10 +16,6 @@
+ #ifndef __ASM_SPINLOCK_TYPES_H
+ #define __ASM_SPINLOCK_TYPES_H
+
+-#if !defined(__LINUX_SPINLOCK_TYPES_H) && !defined(__ASM_SPINLOCK_H)
+-# error "please don't include this file directly"
+-#endif
+-
+ #include <asm-generic/qspinlock_types.h>
+ #include <asm-generic/qrwlock_types.h>
+
+diff --git a/arch/hexagon/include/asm/spinlock_types.h b/arch/hexagon/include/asm/spinlock_types.h
+index 7a906b5214a4..d8f596fec022 100644
+--- a/arch/hexagon/include/asm/spinlock_types.h
++++ b/arch/hexagon/include/asm/spinlock_types.h
+@@ -21,10 +21,6 @@
+ #ifndef _ASM_SPINLOCK_TYPES_H
+ #define _ASM_SPINLOCK_TYPES_H
+
+-#ifndef __LINUX_SPINLOCK_TYPES_H
+-# error "please don't include this file directly"
+-#endif
+-
+ typedef struct {
+ 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
+--- a/arch/ia64/include/asm/spinlock_types.h
++++ b/arch/ia64/include/asm/spinlock_types.h
+@@ -2,10 +2,6 @@
+ #ifndef _ASM_IA64_SPINLOCK_TYPES_H
+ #define _ASM_IA64_SPINLOCK_TYPES_H
+
+-#ifndef __LINUX_SPINLOCK_TYPES_H
+-# error "please don't include this file directly"
+-#endif
+-
+ typedef struct {
+ 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 87adaf13b7e8..7305cb6a53e4 100644
+--- a/arch/powerpc/include/asm/spinlock_types.h
++++ b/arch/powerpc/include/asm/spinlock_types.h
+@@ -2,10 +2,6 @@
+ #ifndef _ASM_POWERPC_SPINLOCK_TYPES_H
+ #define _ASM_POWERPC_SPINLOCK_TYPES_H
+
+-#ifndef __LINUX_SPINLOCK_TYPES_H
+-# error "please don't include this file directly"
+-#endif
+-
+ typedef struct {
+ volatile unsigned int slock;
+ } arch_spinlock_t;
+diff --git a/arch/s390/include/asm/spinlock_types.h b/arch/s390/include/asm/spinlock_types.h
+index cfed272e4fd5..8e28e8176ec8 100644
+--- a/arch/s390/include/asm/spinlock_types.h
++++ b/arch/s390/include/asm/spinlock_types.h
+@@ -2,10 +2,6 @@
+ #ifndef __ASM_SPINLOCK_TYPES_H
+ #define __ASM_SPINLOCK_TYPES_H
+
+-#ifndef __LINUX_SPINLOCK_TYPES_H
+-# error "please don't include this file directly"
+-#endif
+-
+ typedef struct {
+ 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
+--- a/arch/sh/include/asm/spinlock_types.h
++++ b/arch/sh/include/asm/spinlock_types.h
+@@ -2,10 +2,6 @@
+ #ifndef __ASM_SH_SPINLOCK_TYPES_H
+ #define __ASM_SH_SPINLOCK_TYPES_H
+
+-#ifndef __LINUX_SPINLOCK_TYPES_H
+-# error "please don't include this file directly"
+-#endif
+-
+ typedef struct {
+ 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 bb1fe6c1816e..8a22f1e7b6c9 100644
+--- a/arch/xtensa/include/asm/spinlock_types.h
++++ b/arch/xtensa/include/asm/spinlock_types.h
+@@ -2,10 +2,6 @@
+ #ifndef __ASM_SPINLOCK_TYPES_H
+ #define __ASM_SPINLOCK_TYPES_H
+
+-#ifndef __LINUX_SPINLOCK_TYPES_H
+-# error "please don't include this file directly"
+-#endif
+-
+ typedef struct {
+ volatile unsigned int slock;
+ } arch_spinlock_t;
+diff --git a/include/linux/spinlock_types_up.h b/include/linux/spinlock_types_up.h
+index c09b6407ae1b..b0243ba07fb7 100644
+--- a/include/linux/spinlock_types_up.h
++++ b/include/linux/spinlock_types_up.h
+@@ -1,10 +1,6 @@
+ #ifndef __LINUX_SPINLOCK_TYPES_UP_H
+ #define __LINUX_SPINLOCK_TYPES_UP_H
+
+-#ifndef __LINUX_SPINLOCK_TYPES_H
+-# error "please don't include this file directly"
+-#endif
+-
+ /*
+ * include/linux/spinlock_types_up.h - spinlock type definitions for UP
+ *
+--
+2.36.1
+
diff --git a/debian/patches-rt/0157-rcu-Frob-softirq-test.patch b/debian/patches-rt/0157-rcu-Frob-softirq-test.patch
new file mode 100644
index 000000000..f69f7c094
--- /dev/null
+++ b/debian/patches-rt/0157-rcu-Frob-softirq-test.patch
@@ -0,0 +1,173 @@
+From 638391362ce6f052267016840a592cad59ee3eef Mon Sep 17 00:00:00 2001
+From: Peter Zijlstra <a.p.zijlstra@chello.nl>
+Date: Sat, 13 Aug 2011 00:23:17 +0200
+Subject: [PATCH 157/347] rcu: Frob softirq test
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+With RT_FULL we get the below wreckage:
+
+[ 126.060484] =======================================================
+[ 126.060486] [ INFO: possible circular locking dependency detected ]
+[ 126.060489] 3.0.1-rt10+ #30
+[ 126.060490] -------------------------------------------------------
+[ 126.060492] irq/24-eth0/1235 is trying to acquire lock:
+[ 126.060495] (&(lock)->wait_lock#2){+.+...}, at: [<ffffffff81501c81>] rt_mutex_slowunlock+0x16/0x55
+[ 126.060503]
+[ 126.060504] but task is already holding lock:
+[ 126.060506] (&p->pi_lock){-...-.}, at: [<ffffffff81074fdc>] try_to_wake_up+0x35/0x429
+[ 126.060511]
+[ 126.060511] which lock already depends on the new lock.
+[ 126.060513]
+[ 126.060514]
+[ 126.060514] the existing dependency chain (in reverse order) is:
+[ 126.060516]
+[ 126.060516] -> #1 (&p->pi_lock){-...-.}:
+[ 126.060519] [<ffffffff810afe9e>] lock_acquire+0x145/0x18a
+[ 126.060524] [<ffffffff8150291e>] _raw_spin_lock_irqsave+0x4b/0x85
+[ 126.060527] [<ffffffff810b5aa4>] task_blocks_on_rt_mutex+0x36/0x20f
+[ 126.060531] [<ffffffff815019bb>] rt_mutex_slowlock+0xd1/0x15a
+[ 126.060534] [<ffffffff81501ae3>] rt_mutex_lock+0x2d/0x2f
+[ 126.060537] [<ffffffff810d9020>] rcu_boost+0xad/0xde
+[ 126.060541] [<ffffffff810d90ce>] rcu_boost_kthread+0x7d/0x9b
+[ 126.060544] [<ffffffff8109a760>] kthread+0x99/0xa1
+[ 126.060547] [<ffffffff81509b14>] kernel_thread_helper+0x4/0x10
+[ 126.060551]
+[ 126.060552] -> #0 (&(lock)->wait_lock#2){+.+...}:
+[ 126.060555] [<ffffffff810af1b8>] __lock_acquire+0x1157/0x1816
+[ 126.060558] [<ffffffff810afe9e>] lock_acquire+0x145/0x18a
+[ 126.060561] [<ffffffff8150279e>] _raw_spin_lock+0x40/0x73
+[ 126.060564] [<ffffffff81501c81>] rt_mutex_slowunlock+0x16/0x55
+[ 126.060566] [<ffffffff81501ce7>] rt_mutex_unlock+0x27/0x29
+[ 126.060569] [<ffffffff810d9f86>] rcu_read_unlock_special+0x17e/0x1c4
+[ 126.060573] [<ffffffff810da014>] __rcu_read_unlock+0x48/0x89
+[ 126.060576] [<ffffffff8106847a>] select_task_rq_rt+0xc7/0xd5
+[ 126.060580] [<ffffffff8107511c>] try_to_wake_up+0x175/0x429
+[ 126.060583] [<ffffffff81075425>] wake_up_process+0x15/0x17
+[ 126.060585] [<ffffffff81080a51>] wakeup_softirqd+0x24/0x26
+[ 126.060590] [<ffffffff81081df9>] irq_exit+0x49/0x55
+[ 126.060593] [<ffffffff8150a3bd>] smp_apic_timer_interrupt+0x8a/0x98
+[ 126.060597] [<ffffffff81509793>] apic_timer_interrupt+0x13/0x20
+[ 126.060600] [<ffffffff810d5952>] irq_forced_thread_fn+0x1b/0x44
+[ 126.060603] [<ffffffff810d582c>] irq_thread+0xde/0x1af
+[ 126.060606] [<ffffffff8109a760>] kthread+0x99/0xa1
+[ 126.060608] [<ffffffff81509b14>] kernel_thread_helper+0x4/0x10
+[ 126.060611]
+[ 126.060612] other info that might help us debug this:
+[ 126.060614]
+[ 126.060615] Possible unsafe locking scenario:
+[ 126.060616]
+[ 126.060617] CPU0 CPU1
+[ 126.060619] ---- ----
+[ 126.060620] lock(&p->pi_lock);
+[ 126.060623] lock(&(lock)->wait_lock);
+[ 126.060625] lock(&p->pi_lock);
+[ 126.060627] lock(&(lock)->wait_lock);
+[ 126.060629]
+[ 126.060629] *** DEADLOCK ***
+[ 126.060630]
+[ 126.060632] 1 lock held by irq/24-eth0/1235:
+[ 126.060633] #0: (&p->pi_lock){-...-.}, at: [<ffffffff81074fdc>] try_to_wake_up+0x35/0x429
+[ 126.060638]
+[ 126.060638] stack backtrace:
+[ 126.060641] Pid: 1235, comm: irq/24-eth0 Not tainted 3.0.1-rt10+ #30
+[ 126.060643] Call Trace:
+[ 126.060644] <IRQ> [<ffffffff810acbde>] print_circular_bug+0x289/0x29a
+[ 126.060651] [<ffffffff810af1b8>] __lock_acquire+0x1157/0x1816
+[ 126.060655] [<ffffffff810ab3aa>] ? trace_hardirqs_off_caller+0x1f/0x99
+[ 126.060658] [<ffffffff81501c81>] ? rt_mutex_slowunlock+0x16/0x55
+[ 126.060661] [<ffffffff810afe9e>] lock_acquire+0x145/0x18a
+[ 126.060664] [<ffffffff81501c81>] ? rt_mutex_slowunlock+0x16/0x55
+[ 126.060668] [<ffffffff8150279e>] _raw_spin_lock+0x40/0x73
+[ 126.060671] [<ffffffff81501c81>] ? rt_mutex_slowunlock+0x16/0x55
+[ 126.060674] [<ffffffff810d9655>] ? rcu_report_qs_rsp+0x87/0x8c
+[ 126.060677] [<ffffffff81501c81>] rt_mutex_slowunlock+0x16/0x55
+[ 126.060680] [<ffffffff810d9ea3>] ? rcu_read_unlock_special+0x9b/0x1c4
+[ 126.060683] [<ffffffff81501ce7>] rt_mutex_unlock+0x27/0x29
+[ 126.060687] [<ffffffff810d9f86>] rcu_read_unlock_special+0x17e/0x1c4
+[ 126.060690] [<ffffffff810da014>] __rcu_read_unlock+0x48/0x89
+[ 126.060693] [<ffffffff8106847a>] select_task_rq_rt+0xc7/0xd5
+[ 126.060696] [<ffffffff810683da>] ? select_task_rq_rt+0x27/0xd5
+[ 126.060701] [<ffffffff810a852a>] ? clockevents_program_event+0x8e/0x90
+[ 126.060704] [<ffffffff8107511c>] try_to_wake_up+0x175/0x429
+[ 126.060708] [<ffffffff810a95dc>] ? tick_program_event+0x1f/0x21
+[ 126.060711] [<ffffffff81075425>] wake_up_process+0x15/0x17
+[ 126.060715] [<ffffffff81080a51>] wakeup_softirqd+0x24/0x26
+[ 126.060718] [<ffffffff81081df9>] irq_exit+0x49/0x55
+[ 126.060721] [<ffffffff8150a3bd>] smp_apic_timer_interrupt+0x8a/0x98
+[ 126.060724] [<ffffffff81509793>] apic_timer_interrupt+0x13/0x20
+[ 126.060726] <EOI> [<ffffffff81072855>] ? migrate_disable+0x75/0x12d
+[ 126.060733] [<ffffffff81080a61>] ? local_bh_disable+0xe/0x1f
+[ 126.060736] [<ffffffff81080a70>] ? local_bh_disable+0x1d/0x1f
+[ 126.060739] [<ffffffff810d5952>] irq_forced_thread_fn+0x1b/0x44
+[ 126.060742] [<ffffffff81502ac0>] ? _raw_spin_unlock_irq+0x3b/0x59
+[ 126.060745] [<ffffffff810d582c>] irq_thread+0xde/0x1af
+[ 126.060748] [<ffffffff810d5937>] ? irq_thread_fn+0x3a/0x3a
+[ 126.060751] [<ffffffff810d574e>] ? irq_finalize_oneshot+0xd1/0xd1
+[ 126.060754] [<ffffffff810d574e>] ? irq_finalize_oneshot+0xd1/0xd1
+[ 126.060757] [<ffffffff8109a760>] kthread+0x99/0xa1
+[ 126.060761] [<ffffffff81509b14>] kernel_thread_helper+0x4/0x10
+[ 126.060764] [<ffffffff81069ed7>] ? finish_task_switch+0x87/0x10a
+[ 126.060768] [<ffffffff81502ec4>] ? retint_restore_args+0xe/0xe
+[ 126.060771] [<ffffffff8109a6c7>] ? __init_kthread_worker+0x8c/0x8c
+[ 126.060774] [<ffffffff81509b10>] ? gs_change+0xb/0xb
+
+Because irq_exit() does:
+
+void irq_exit(void)
+{
+ account_system_vtime(current);
+ trace_hardirq_exit();
+ sub_preempt_count(IRQ_EXIT_OFFSET);
+ if (!in_interrupt() && local_softirq_pending())
+ invoke_softirq();
+
+ ...
+}
+
+Which triggers a wakeup, which uses RCU, now if the interrupted task has
+t->rcu_read_unlock_special set, the rcu usage from the wakeup will end
+up in rcu_read_unlock_special(). rcu_read_unlock_special() will test
+for in_irq(), which will fail as we just decremented preempt_count
+with IRQ_EXIT_OFFSET, and in_sering_softirq(), which for
+PREEMPT_RT_FULL reads:
+
+int in_serving_softirq(void)
+{
+ int res;
+
+ preempt_disable();
+ res = __get_cpu_var(local_softirq_runner) == current;
+ preempt_enable();
+ return res;
+}
+
+Which will thus also fail, resulting in the above wreckage.
+
+The 'somewhat' ugly solution is to open-code the preempt_count() test
+in rcu_read_unlock_special().
+
+Also, we're not at all sure how ->rcu_read_unlock_special gets set
+here... so this is very likely a bandaid and more thought is required.
+
+Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
+Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
+---
+ kernel/rcu/tree_plugin.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
+index 35f3552b7463..e9ce51e19e87 100644
+--- a/kernel/rcu/tree_plugin.h
++++ b/kernel/rcu/tree_plugin.h
+@@ -524,7 +524,7 @@ static void rcu_read_unlock_special(struct task_struct *t)
+ }
+
+ /* Hardware IRQ handlers cannot block, complain if they get here. */
+- if (in_irq() || in_serving_softirq()) {
++ if (preempt_count() & (HARDIRQ_MASK | SOFTIRQ_OFFSET)) {
+ lockdep_rcu_suspicious(__FILE__, __LINE__,
+ "rcu_read_unlock() from irq or softirq with blocking in critical section!!!\n");
+ pr_alert("->rcu_read_unlock_special: %#x (b: %d, enq: %d nq: %d)\n",
+--
+2.36.1
+
diff --git a/debian/patches-rt/0158-rcu-Merge-RCU-bh-into-RCU-preempt.patch b/debian/patches-rt/0158-rcu-Merge-RCU-bh-into-RCU-preempt.patch
new file mode 100644
index 000000000..1c3897d25
--- /dev/null
+++ b/debian/patches-rt/0158-rcu-Merge-RCU-bh-into-RCU-preempt.patch
@@ -0,0 +1,351 @@
+From d21751c3efb035a08326d8a28789b91cb769ea70 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 5 Oct 2011 11:59:38 -0700
+Subject: [PATCH 158/347] rcu: Merge RCU-bh into RCU-preempt
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The Linux kernel has long RCU-bh read-side critical sections that
+intolerably increase scheduling latency under mainline's RCU-bh rules,
+which include RCU-bh read-side critical sections being non-preemptible.
+This patch therefore arranges for RCU-bh to be implemented in terms of
+RCU-preempt for CONFIG_PREEMPT_RT_FULL=y.
+
+This has the downside of defeating the purpose of RCU-bh, namely,
+handling the case where the system is subjected to a network-based
+denial-of-service attack that keeps at least one CPU doing full-time
+softirq processing. This issue will be fixed by a later commit.
+
+The current commit will need some work to make it appropriate for
+mainline use, for example, it needs to be extended to cover Tiny RCU.
+
+[ paulmck: Added a useful changelog ]
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
+Link: http://lkml.kernel.org/r/20111005185938.GA20403@linux.vnet.ibm.com
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/rcupdate.h | 19 +++++++++++++++++++
+ include/linux/rcutree.h | 8 ++++++++
+ kernel/rcu/rcu.h | 11 +++++++++--
+ kernel/rcu/rcutorture.c | 7 +++++++
+ kernel/rcu/tree.c | 26 ++++++++++++++++++++++++++
+ kernel/rcu/tree.h | 2 ++
+ kernel/rcu/update.c | 2 ++
+ 7 files changed, 73 insertions(+), 2 deletions(-)
+
+diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
+index e6733d7911e9..08d64e5713fc 100644
+--- a/include/linux/rcupdate.h
++++ b/include/linux/rcupdate.h
+@@ -56,7 +56,11 @@ void call_rcu(struct rcu_head *head, rcu_callback_t func);
+ #define call_rcu call_rcu_sched
+ #endif /* #else #ifdef CONFIG_PREEMPT_RCU */
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++#define call_rcu_bh call_rcu
++#else
+ void call_rcu_bh(struct rcu_head *head, rcu_callback_t func);
++#endif
+ void call_rcu_sched(struct rcu_head *head, rcu_callback_t func);
+ void synchronize_sched(void);
+ void rcu_barrier_tasks(void);
+@@ -261,7 +265,14 @@ extern struct lockdep_map rcu_sched_lock_map;
+ extern struct lockdep_map rcu_callback_map;
+ int debug_lockdep_rcu_enabled(void);
+ int rcu_read_lock_held(void);
++#ifdef CONFIG_PREEMPT_RT_FULL
++static inline int rcu_read_lock_bh_held(void)
++{
++ return rcu_read_lock_held();
++}
++#else
+ int rcu_read_lock_bh_held(void);
++#endif
+ int rcu_read_lock_sched_held(void);
+
+ #else /* #ifdef CONFIG_DEBUG_LOCK_ALLOC */
+@@ -661,10 +672,14 @@ static inline void rcu_read_unlock(void)
+ static inline void rcu_read_lock_bh(void)
+ {
+ local_bh_disable();
++#ifdef CONFIG_PREEMPT_RT_FULL
++ rcu_read_lock();
++#else
+ __acquire(RCU_BH);
+ rcu_lock_acquire(&rcu_bh_lock_map);
+ RCU_LOCKDEP_WARN(!rcu_is_watching(),
+ "rcu_read_lock_bh() used illegally while idle");
++#endif
+ }
+
+ /*
+@@ -674,10 +689,14 @@ static inline void rcu_read_lock_bh(void)
+ */
+ static inline void rcu_read_unlock_bh(void)
+ {
++#ifdef CONFIG_PREEMPT_RT_FULL
++ rcu_read_unlock();
++#else
+ RCU_LOCKDEP_WARN(!rcu_is_watching(),
+ "rcu_read_unlock_bh() used illegally while idle");
+ rcu_lock_release(&rcu_bh_lock_map);
+ __release(RCU_BH);
++#endif
+ local_bh_enable();
+ }
+
+diff --git a/include/linux/rcutree.h b/include/linux/rcutree.h
+index 914655848ef6..462ce061bac7 100644
+--- a/include/linux/rcutree.h
++++ b/include/linux/rcutree.h
+@@ -44,7 +44,11 @@ static inline void rcu_virt_note_context_switch(int cpu)
+ rcu_note_context_switch(false);
+ }
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++# define synchronize_rcu_bh synchronize_rcu
++#else
+ void synchronize_rcu_bh(void);
++#endif
+ void synchronize_sched_expedited(void);
+ void synchronize_rcu_expedited(void);
+
+@@ -72,7 +76,11 @@ static inline void synchronize_rcu_bh_expedited(void)
+ }
+
+ void rcu_barrier(void);
++#ifdef CONFIG_PREEMPT_RT_FULL
++# define rcu_barrier_bh rcu_barrier
++#else
+ void rcu_barrier_bh(void);
++#endif
+ void rcu_barrier_sched(void);
+ bool rcu_eqs_special_set(int cpu);
+ unsigned long get_state_synchronize_rcu(void);
+diff --git a/kernel/rcu/rcu.h b/kernel/rcu/rcu.h
+index 4d04683c31b2..808cce9a5d43 100644
+--- a/kernel/rcu/rcu.h
++++ b/kernel/rcu/rcu.h
+@@ -528,7 +528,6 @@ static inline void show_rcu_gp_kthreads(void) { }
+ static inline int rcu_get_gp_kthreads_prio(void) { return 0; }
+ #else /* #ifdef CONFIG_TINY_RCU */
+ unsigned long rcu_get_gp_seq(void);
+-unsigned long rcu_bh_get_gp_seq(void);
+ unsigned long rcu_sched_get_gp_seq(void);
+ unsigned long rcu_exp_batches_completed(void);
+ unsigned long rcu_exp_batches_completed_sched(void);
+@@ -536,10 +535,18 @@ unsigned long srcu_batches_completed(struct srcu_struct *sp);
+ void show_rcu_gp_kthreads(void);
+ int rcu_get_gp_kthreads_prio(void);
+ void rcu_force_quiescent_state(void);
+-void rcu_bh_force_quiescent_state(void);
+ void rcu_sched_force_quiescent_state(void);
+ extern struct workqueue_struct *rcu_gp_wq;
+ extern struct workqueue_struct *rcu_par_gp_wq;
++
++#ifdef CONFIG_PREEMPT_RT_FULL
++#define rcu_bh_get_gp_seq rcu_get_gp_seq
++#define rcu_bh_force_quiescent_state rcu_force_quiescent_state
++#else
++unsigned long rcu_bh_get_gp_seq(void);
++void rcu_bh_force_quiescent_state(void);
++#endif
++
+ #endif /* #else #ifdef CONFIG_TINY_RCU */
+
+ #ifdef CONFIG_RCU_NOCB_CPU
+diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
+index 0b7af7e2bcbb..e95d121efc80 100644
+--- a/kernel/rcu/rcutorture.c
++++ b/kernel/rcu/rcutorture.c
+@@ -434,6 +434,7 @@ static struct rcu_torture_ops rcu_ops = {
+ .name = "rcu"
+ };
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ /*
+ * Definitions for rcu_bh torture testing.
+ */
+@@ -475,6 +476,12 @@ static struct rcu_torture_ops rcu_bh_ops = {
+ .name = "rcu_bh"
+ };
+
++#else
++static struct rcu_torture_ops rcu_bh_ops = {
++ .ttype = INVALID_RCU_FLAVOR,
++};
++#endif
++
+ /*
+ * Don't even think about trying any of these in real life!!!
+ * The names includes "busted", and they really means it!
+diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
+index f7e89c989df7..1456a3d97971 100644
+--- a/kernel/rcu/tree.c
++++ b/kernel/rcu/tree.c
+@@ -244,6 +244,7 @@ void rcu_sched_qs(void)
+ this_cpu_ptr(&rcu_sched_data), true);
+ }
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ void rcu_bh_qs(void)
+ {
+ RCU_LOCKDEP_WARN(preemptible(), "rcu_bh_qs() invoked with preemption enabled!!!");
+@@ -254,6 +255,11 @@ void rcu_bh_qs(void)
+ __this_cpu_write(rcu_bh_data.cpu_no_qs.b.norm, false);
+ }
+ }
++#else
++void rcu_bh_qs(void)
++{
++}
++#endif
+
+ /*
+ * Steal a bit from the bottom of ->dynticks for idle entry/exit
+@@ -568,6 +574,7 @@ unsigned long rcu_sched_get_gp_seq(void)
+ }
+ EXPORT_SYMBOL_GPL(rcu_sched_get_gp_seq);
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ /*
+ * Return the number of RCU-bh GPs completed thus far for debug & stats.
+ */
+@@ -576,6 +583,7 @@ unsigned long rcu_bh_get_gp_seq(void)
+ return READ_ONCE(rcu_bh_state.gp_seq);
+ }
+ EXPORT_SYMBOL_GPL(rcu_bh_get_gp_seq);
++#endif
+
+ /*
+ * Return the number of RCU expedited batches completed thus far for
+@@ -599,6 +607,7 @@ unsigned long rcu_exp_batches_completed_sched(void)
+ }
+ EXPORT_SYMBOL_GPL(rcu_exp_batches_completed_sched);
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ /*
+ * Force a quiescent state.
+ */
+@@ -617,6 +626,13 @@ void rcu_bh_force_quiescent_state(void)
+ }
+ EXPORT_SYMBOL_GPL(rcu_bh_force_quiescent_state);
+
++#else
++void rcu_force_quiescent_state(void)
++{
++}
++EXPORT_SYMBOL_GPL(rcu_force_quiescent_state);
++#endif
++
+ /*
+ * Force a quiescent state for RCU-sched.
+ */
+@@ -674,9 +690,11 @@ void rcutorture_get_gp_data(enum rcutorture_type test_type, int *flags,
+ case RCU_FLAVOR:
+ rsp = rcu_state_p;
+ break;
++#ifndef CONFIG_PREEMPT_RT_FULL
+ case RCU_BH_FLAVOR:
+ rsp = &rcu_bh_state;
+ break;
++#endif
+ case RCU_SCHED_FLAVOR:
+ rsp = &rcu_sched_state;
+ break;
+@@ -3057,6 +3075,7 @@ void call_rcu_sched(struct rcu_head *head, rcu_callback_t func)
+ }
+ EXPORT_SYMBOL_GPL(call_rcu_sched);
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ /**
+ * call_rcu_bh() - Queue an RCU for invocation after a quicker grace period.
+ * @head: structure to be used for queueing the RCU updates.
+@@ -3084,6 +3103,7 @@ void call_rcu_bh(struct rcu_head *head, rcu_callback_t func)
+ __call_rcu(head, func, &rcu_bh_state, -1, 0);
+ }
+ EXPORT_SYMBOL_GPL(call_rcu_bh);
++#endif
+
+ /*
+ * Queue an RCU callback for lazy invocation after a grace period.
+@@ -3169,6 +3189,7 @@ void synchronize_sched(void)
+ }
+ EXPORT_SYMBOL_GPL(synchronize_sched);
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ /**
+ * synchronize_rcu_bh - wait until an rcu_bh grace period has elapsed.
+ *
+@@ -3195,6 +3216,7 @@ void synchronize_rcu_bh(void)
+ wait_rcu_gp(call_rcu_bh);
+ }
+ EXPORT_SYMBOL_GPL(synchronize_rcu_bh);
++#endif
+
+ /**
+ * get_state_synchronize_rcu - Snapshot current RCU state
+@@ -3502,6 +3524,7 @@ static void _rcu_barrier(struct rcu_state *rsp)
+ mutex_unlock(&rsp->barrier_mutex);
+ }
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ /**
+ * rcu_barrier_bh - Wait until all in-flight call_rcu_bh() callbacks complete.
+ */
+@@ -3510,6 +3533,7 @@ void rcu_barrier_bh(void)
+ _rcu_barrier(&rcu_bh_state);
+ }
+ EXPORT_SYMBOL_GPL(rcu_barrier_bh);
++#endif
+
+ /**
+ * rcu_barrier_sched - Wait for in-flight call_rcu_sched() callbacks.
+@@ -4157,7 +4181,9 @@ void __init rcu_init(void)
+
+ rcu_bootup_announce();
+ rcu_init_geometry();
++#ifndef CONFIG_PREEMPT_RT_FULL
+ rcu_init_one(&rcu_bh_state);
++#endif
+ rcu_init_one(&rcu_sched_state);
+ if (dump_tree)
+ rcu_dump_rcu_node_tree(&rcu_sched_state);
+diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h
+index 4e74df768c57..fbbff7c21148 100644
+--- a/kernel/rcu/tree.h
++++ b/kernel/rcu/tree.h
+@@ -413,7 +413,9 @@ extern struct list_head rcu_struct_flavors;
+ */
+ extern struct rcu_state rcu_sched_state;
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ extern struct rcu_state rcu_bh_state;
++#endif
+
+ #ifdef CONFIG_PREEMPT_RCU
+ extern struct rcu_state rcu_preempt_state;
+diff --git a/kernel/rcu/update.c b/kernel/rcu/update.c
+index 81688a133552..6ffafb1b1584 100644
+--- a/kernel/rcu/update.c
++++ b/kernel/rcu/update.c
+@@ -288,6 +288,7 @@ int rcu_read_lock_held(void)
+ }
+ EXPORT_SYMBOL_GPL(rcu_read_lock_held);
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ /**
+ * rcu_read_lock_bh_held() - might we be in RCU-bh read-side critical section?
+ *
+@@ -314,6 +315,7 @@ int rcu_read_lock_bh_held(void)
+ return in_softirq() || irqs_disabled();
+ }
+ EXPORT_SYMBOL_GPL(rcu_read_lock_bh_held);
++#endif
+
+ #endif /* #ifdef CONFIG_DEBUG_LOCK_ALLOC */
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0159-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch b/debian/patches-rt/0159-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch
new file mode 100644
index 000000000..44b6d052a
--- /dev/null
+++ b/debian/patches-rt/0159-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch
@@ -0,0 +1,117 @@
+From 19f2644a64bbf80c134cc923b59d5448d76af806 Mon Sep 17 00:00:00 2001
+From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
+Date: Wed, 5 Oct 2011 11:45:18 -0700
+Subject: [PATCH 159/347] rcu: Make ksoftirqd do RCU quiescent states
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Implementing RCU-bh in terms of RCU-preempt makes the system vulnerable
+to network-based denial-of-service attacks. This patch therefore
+makes __do_softirq() invoke rcu_bh_qs(), but only when __do_softirq()
+is running in ksoftirqd context. A wrapper layer in interposed so that
+other calls to __do_softirq() avoid invoking rcu_bh_qs(). The underlying
+function __do_softirq_common() does the actual work.
+
+The reason that rcu_bh_qs() is bad in these non-ksoftirqd contexts is
+that there might be a local_bh_enable() inside an RCU-preempt read-side
+critical section. This local_bh_enable() can invoke __do_softirq()
+directly, so if __do_softirq() were to invoke rcu_bh_qs() (which just
+calls rcu_preempt_qs() in the PREEMPT_RT_FULL case), there would be
+an illegal RCU-preempt quiescent state in the middle of an RCU-preempt
+read-side critical section. Therefore, quiescent states can only happen
+in cases where __do_softirq() is invoked directly from ksoftirqd.
+
+Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
+Link: http://lkml.kernel.org/r/20111005184518.GA21601@linux.vnet.ibm.com
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ kernel/rcu/tree.c | 18 +++++++++++++-----
+ kernel/rcu/tree_plugin.h | 8 +++++++-
+ 2 files changed, 20 insertions(+), 6 deletions(-)
+
+diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
+index 1456a3d97971..1a40e3d44cb8 100644
+--- a/kernel/rcu/tree.c
++++ b/kernel/rcu/tree.c
+@@ -244,7 +244,19 @@ void rcu_sched_qs(void)
+ this_cpu_ptr(&rcu_sched_data), true);
+ }
+
+-#ifndef CONFIG_PREEMPT_RT_FULL
++#ifdef CONFIG_PREEMPT_RT_FULL
++static void rcu_preempt_qs(void);
++
++void rcu_bh_qs(void)
++{
++ unsigned long flags;
++
++ /* Callers to this function, rcu_preempt_qs(), must disable irqs. */
++ local_irq_save(flags);
++ rcu_preempt_qs();
++ local_irq_restore(flags);
++}
++#else
+ void rcu_bh_qs(void)
+ {
+ RCU_LOCKDEP_WARN(preemptible(), "rcu_bh_qs() invoked with preemption enabled!!!");
+@@ -255,10 +267,6 @@ void rcu_bh_qs(void)
+ __this_cpu_write(rcu_bh_data.cpu_no_qs.b.norm, false);
+ }
+ }
+-#else
+-void rcu_bh_qs(void)
+-{
+-}
+ #endif
+
+ /*
+diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
+index e9ce51e19e87..938e64c69d18 100644
+--- a/kernel/rcu/tree_plugin.h
++++ b/kernel/rcu/tree_plugin.h
+@@ -29,6 +29,7 @@
+ #include <linux/oom.h>
+ #include <linux/sched/debug.h>
+ #include <linux/smpboot.h>
++#include <linux/jiffies.h>
+ #include <linux/sched/isolation.h>
+ #include <uapi/linux/sched/types.h>
+ #include "../time/tick-internal.h"
+@@ -1408,7 +1409,7 @@ static void rcu_prepare_kthreads(int cpu)
+
+ #endif /* #else #ifdef CONFIG_RCU_BOOST */
+
+-#if !defined(CONFIG_RCU_FAST_NO_HZ)
++#if !defined(CONFIG_RCU_FAST_NO_HZ) || defined(CONFIG_PREEMPT_RT_FULL)
+
+ /*
+ * Check to see if any future RCU-related work will need to be done
+@@ -1424,7 +1425,9 @@ int rcu_needs_cpu(u64 basemono, u64 *nextevt)
+ *nextevt = KTIME_MAX;
+ return rcu_cpu_has_callbacks(NULL);
+ }
++#endif /* !defined(CONFIG_RCU_FAST_NO_HZ) || defined(CONFIG_PREEMPT_RT_FULL) */
+
++#if !defined(CONFIG_RCU_FAST_NO_HZ)
+ /*
+ * Because we do not have RCU_FAST_NO_HZ, don't bother cleaning up
+ * after it.
+@@ -1521,6 +1524,8 @@ static bool __maybe_unused rcu_try_advance_all_cbs(void)
+ return cbs_ready;
+ }
+
++#ifndef CONFIG_PREEMPT_RT_FULL
++
+ /*
+ * Allow the CPU to enter dyntick-idle mode unless it has callbacks ready
+ * to invoke. If the CPU has callbacks, try to advance them. Tell the
+@@ -1563,6 +1568,7 @@ int rcu_needs_cpu(u64 basemono, u64 *nextevt)
+ *nextevt = basemono + dj * TICK_NSEC;
+ return 0;
+ }
++#endif /* #ifndef CONFIG_PREEMPT_RT_FULL */
+
+ /*
+ * Prepare a CPU for idle from an RCU perspective. The first major task
+--
+2.36.1
+
diff --git a/debian/patches-rt/0160-rcu-Eliminate-softirq-processing-from-rcutree.patch b/debian/patches-rt/0160-rcu-Eliminate-softirq-processing-from-rcutree.patch
new file mode 100644
index 000000000..d4a6e3195
--- /dev/null
+++ b/debian/patches-rt/0160-rcu-Eliminate-softirq-processing-from-rcutree.patch
@@ -0,0 +1,423 @@
+From 4fa514eb294144f8698e721f4b5a4de0447be272 Mon Sep 17 00:00:00 2001
+From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
+Date: Mon, 4 Nov 2013 13:21:10 -0800
+Subject: [PATCH 160/347] rcu: Eliminate softirq processing from rcutree
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Running RCU out of softirq is a problem for some workloads that would
+like to manage RCU core processing independently of other softirq work,
+for example, setting kthread priority. This commit therefore moves the
+RCU core work from softirq to a per-CPU/per-flavor SCHED_OTHER kthread
+named rcuc. The SCHED_OTHER approach avoids the scalability problems
+that appeared with the earlier attempt to move RCU core processing to
+from softirq to kthreads. That said, kernels built with RCU_BOOST=y
+will run the rcuc kthreads at the RCU-boosting priority.
+
+Reported-by: Thomas Gleixner <tglx@linutronix.de>
+Tested-by: Mike Galbraith <bitbucket@online.de>
+Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/rcu/tree.c | 114 ++++++++++++++++++++++++++++---
+ kernel/rcu/tree.h | 4 +-
+ kernel/rcu/tree_plugin.h | 142 +++------------------------------------
+ 3 files changed, 115 insertions(+), 145 deletions(-)
+
+diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
+index 1a40e3d44cb8..ae716ca783bc 100644
+--- a/kernel/rcu/tree.c
++++ b/kernel/rcu/tree.c
+@@ -61,6 +61,13 @@
+ #include <linux/trace_events.h>
+ #include <linux/suspend.h>
+ #include <linux/ftrace.h>
++#include <linux/delay.h>
++#include <linux/gfp.h>
++#include <linux/oom.h>
++#include <linux/smpboot.h>
++#include <linux/jiffies.h>
++#include <linux/sched/isolation.h>
++#include "../time/tick-internal.h"
+
+ #include "tree.h"
+ #include "rcu.h"
+@@ -2896,18 +2903,17 @@ __rcu_process_callbacks(struct rcu_state *rsp)
+ /*
+ * Do RCU core processing for the current CPU.
+ */
+-static __latent_entropy void rcu_process_callbacks(struct softirq_action *unused)
++static __latent_entropy void rcu_process_callbacks(void)
+ {
+ struct rcu_state *rsp;
+
+ if (cpu_is_offline(smp_processor_id()))
+ return;
+- trace_rcu_utilization(TPS("Start RCU core"));
+ for_each_rcu_flavor(rsp)
+ __rcu_process_callbacks(rsp);
+- trace_rcu_utilization(TPS("End RCU core"));
+ }
+
++static DEFINE_PER_CPU(struct task_struct *, rcu_cpu_kthread_task);
+ /*
+ * Schedule RCU callback invocation. If the specified type of RCU
+ * does not support RCU priority boosting, just do a direct call,
+@@ -2919,18 +2925,105 @@ static void invoke_rcu_callbacks(struct rcu_state *rsp, struct rcu_data *rdp)
+ {
+ if (unlikely(!READ_ONCE(rcu_scheduler_fully_active)))
+ return;
+- if (likely(!rsp->boost)) {
+- rcu_do_batch(rsp, rdp);
+- return;
+- }
+- invoke_rcu_callbacks_kthread();
++ rcu_do_batch(rsp, rdp);
++}
++
++static void rcu_wake_cond(struct task_struct *t, int status)
++{
++ /*
++ * If the thread is yielding, only wake it when this
++ * is invoked from idle
++ */
++ if (t && (status != RCU_KTHREAD_YIELDING || is_idle_task(current)))
++ wake_up_process(t);
+ }
+
++/*
++ * Wake up this CPU's rcuc kthread to do RCU core processing.
++ */
+ static void invoke_rcu_core(void)
+ {
+- if (cpu_online(smp_processor_id()))
+- raise_softirq(RCU_SOFTIRQ);
++ unsigned long flags;
++ struct task_struct *t;
++
++ if (!cpu_online(smp_processor_id()))
++ return;
++ local_irq_save(flags);
++ __this_cpu_write(rcu_cpu_has_work, 1);
++ t = __this_cpu_read(rcu_cpu_kthread_task);
++ if (t != NULL && current != t)
++ rcu_wake_cond(t, __this_cpu_read(rcu_cpu_kthread_status));
++ local_irq_restore(flags);
++}
++
++static void rcu_cpu_kthread_park(unsigned int cpu)
++{
++ per_cpu(rcu_cpu_kthread_status, cpu) = RCU_KTHREAD_OFFCPU;
++}
++
++static int rcu_cpu_kthread_should_run(unsigned int cpu)
++{
++ return __this_cpu_read(rcu_cpu_has_work);
++}
++
++/*
++ * Per-CPU kernel thread that invokes RCU callbacks. This replaces the
++ * RCU softirq used in flavors and configurations of RCU that do not
++ * support RCU priority boosting.
++ */
++static void rcu_cpu_kthread(unsigned int cpu)
++{
++ unsigned int *statusp = this_cpu_ptr(&rcu_cpu_kthread_status);
++ char work, *workp = this_cpu_ptr(&rcu_cpu_has_work);
++ int spincnt;
++
++ for (spincnt = 0; spincnt < 10; spincnt++) {
++ trace_rcu_utilization(TPS("Start CPU kthread@rcu_wait"));
++ local_bh_disable();
++ *statusp = RCU_KTHREAD_RUNNING;
++ this_cpu_inc(rcu_cpu_kthread_loops);
++ local_irq_disable();
++ work = *workp;
++ *workp = 0;
++ local_irq_enable();
++ if (work)
++ rcu_process_callbacks();
++ local_bh_enable();
++ if (*workp == 0) {
++ trace_rcu_utilization(TPS("End CPU kthread@rcu_wait"));
++ *statusp = RCU_KTHREAD_WAITING;
++ return;
++ }
++ }
++ *statusp = RCU_KTHREAD_YIELDING;
++ trace_rcu_utilization(TPS("Start CPU kthread@rcu_yield"));
++ schedule_timeout_interruptible(2);
++ trace_rcu_utilization(TPS("End CPU kthread@rcu_yield"));
++ *statusp = RCU_KTHREAD_WAITING;
++}
++
++static struct smp_hotplug_thread rcu_cpu_thread_spec = {
++ .store = &rcu_cpu_kthread_task,
++ .thread_should_run = rcu_cpu_kthread_should_run,
++ .thread_fn = rcu_cpu_kthread,
++ .thread_comm = "rcuc/%u",
++ .setup = rcu_cpu_kthread_setup,
++ .park = rcu_cpu_kthread_park,
++};
++
++/*
++ * Spawn per-CPU RCU core processing kthreads.
++ */
++static int __init rcu_spawn_core_kthreads(void)
++{
++ int cpu;
++
++ for_each_possible_cpu(cpu)
++ per_cpu(rcu_cpu_has_work, cpu) = 0;
++ BUG_ON(smpboot_register_percpu_thread(&rcu_cpu_thread_spec));
++ return 0;
+ }
++early_initcall(rcu_spawn_core_kthreads);
+
+ /*
+ * Handle any core-RCU processing required by a call_rcu() invocation.
+@@ -4196,7 +4289,6 @@ void __init rcu_init(void)
+ if (dump_tree)
+ rcu_dump_rcu_node_tree(&rcu_sched_state);
+ __rcu_init_preempt();
+- open_softirq(RCU_SOFTIRQ, rcu_process_callbacks);
+
+ /*
+ * We don't need protection against CPU-hotplug here because
+diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h
+index fbbff7c21148..98257d20feb2 100644
+--- a/kernel/rcu/tree.h
++++ b/kernel/rcu/tree.h
+@@ -423,12 +423,10 @@ extern struct rcu_state rcu_preempt_state;
+
+ int rcu_dynticks_snap(struct rcu_dynticks *rdtp);
+
+-#ifdef CONFIG_RCU_BOOST
+ DECLARE_PER_CPU(unsigned int, rcu_cpu_kthread_status);
+ DECLARE_PER_CPU(int, rcu_cpu_kthread_cpu);
+ DECLARE_PER_CPU(unsigned int, rcu_cpu_kthread_loops);
+ DECLARE_PER_CPU(char, rcu_cpu_has_work);
+-#endif /* #ifdef CONFIG_RCU_BOOST */
+
+ #ifndef RCU_TREE_NONCORE
+
+@@ -451,8 +449,8 @@ static void dump_blkd_tasks(struct rcu_state *rsp, struct rcu_node *rnp,
+ int ncheck);
+ static void rcu_initiate_boost(struct rcu_node *rnp, unsigned long flags);
+ static void rcu_preempt_boost_start_gp(struct rcu_node *rnp);
+-static void invoke_rcu_callbacks_kthread(void);
+ static bool rcu_is_callbacks_kthread(void);
++static void rcu_cpu_kthread_setup(unsigned int cpu);
+ #ifdef CONFIG_RCU_BOOST
+ static int rcu_spawn_one_boost_kthread(struct rcu_state *rsp,
+ struct rcu_node *rnp);
+diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
+index 938e64c69d18..56639c8ed550 100644
+--- a/kernel/rcu/tree_plugin.h
++++ b/kernel/rcu/tree_plugin.h
+@@ -24,42 +24,16 @@
+ * Paul E. McKenney <paulmck@linux.vnet.ibm.com>
+ */
+
+-#include <linux/delay.h>
+-#include <linux/gfp.h>
+-#include <linux/oom.h>
+-#include <linux/sched/debug.h>
+-#include <linux/smpboot.h>
+-#include <linux/jiffies.h>
+-#include <linux/sched/isolation.h>
+-#include <uapi/linux/sched/types.h>
+-#include "../time/tick-internal.h"
+-
+-#ifdef CONFIG_RCU_BOOST
+-
+ #include "../locking/rtmutex_common.h"
+
+ /*
+ * Control variables for per-CPU and per-rcu_node kthreads. These
+ * handle all flavors of RCU.
+ */
+-static DEFINE_PER_CPU(struct task_struct *, rcu_cpu_kthread_task);
+ DEFINE_PER_CPU(unsigned int, rcu_cpu_kthread_status);
+ DEFINE_PER_CPU(unsigned int, rcu_cpu_kthread_loops);
+ DEFINE_PER_CPU(char, rcu_cpu_has_work);
+
+-#else /* #ifdef CONFIG_RCU_BOOST */
+-
+-/*
+- * Some architectures do not define rt_mutexes, but if !CONFIG_RCU_BOOST,
+- * all uses are in dead code. Provide a definition to keep the compiler
+- * happy, but add WARN_ON_ONCE() to complain if used in the wrong place.
+- * This probably needs to be excluded from -rt builds.
+- */
+-#define rt_mutex_owner(a) ({ WARN_ON_ONCE(1); NULL; })
+-#define rt_mutex_futex_unlock(x) WARN_ON_ONCE(1)
+-
+-#endif /* #else #ifdef CONFIG_RCU_BOOST */
+-
+ #ifdef CONFIG_RCU_NOCB_CPU
+ static cpumask_var_t rcu_nocb_mask; /* CPUs to have callbacks offloaded. */
+ static bool __read_mostly rcu_nocb_poll; /* Offload kthread are to poll. */
+@@ -1028,18 +1002,21 @@ dump_blkd_tasks(struct rcu_state *rsp, struct rcu_node *rnp, int ncheck)
+
+ #endif /* #else #ifdef CONFIG_PREEMPT_RCU */
+
++/*
++ * If boosting, set rcuc kthreads to realtime priority.
++ */
++static void rcu_cpu_kthread_setup(unsigned int cpu)
++{
+ #ifdef CONFIG_RCU_BOOST
++ struct sched_param sp;
+
+-static void rcu_wake_cond(struct task_struct *t, int status)
+-{
+- /*
+- * If the thread is yielding, only wake it when this
+- * is invoked from idle
+- */
+- if (status != RCU_KTHREAD_YIELDING || is_idle_task(current))
+- wake_up_process(t);
++ sp.sched_priority = kthread_prio;
++ sched_setscheduler_nocheck(current, SCHED_FIFO, &sp);
++#endif /* #ifdef CONFIG_RCU_BOOST */
+ }
+
++#ifdef CONFIG_RCU_BOOST
++
+ /*
+ * Carry out RCU priority boosting on the task indicated by ->exp_tasks
+ * or ->boost_tasks, advancing the pointer to the next task in the
+@@ -1177,23 +1154,6 @@ static void rcu_initiate_boost(struct rcu_node *rnp, unsigned long flags)
+ }
+ }
+
+-/*
+- * Wake up the per-CPU kthread to invoke RCU callbacks.
+- */
+-static void invoke_rcu_callbacks_kthread(void)
+-{
+- unsigned long flags;
+-
+- local_irq_save(flags);
+- __this_cpu_write(rcu_cpu_has_work, 1);
+- if (__this_cpu_read(rcu_cpu_kthread_task) != NULL &&
+- current != __this_cpu_read(rcu_cpu_kthread_task)) {
+- rcu_wake_cond(__this_cpu_read(rcu_cpu_kthread_task),
+- __this_cpu_read(rcu_cpu_kthread_status));
+- }
+- local_irq_restore(flags);
+-}
+-
+ /*
+ * Is the current CPU running the RCU-callbacks kthread?
+ * Caller must have preemption disabled.
+@@ -1248,67 +1208,6 @@ static int rcu_spawn_one_boost_kthread(struct rcu_state *rsp,
+ return 0;
+ }
+
+-static void rcu_kthread_do_work(void)
+-{
+- rcu_do_batch(&rcu_sched_state, this_cpu_ptr(&rcu_sched_data));
+- rcu_do_batch(&rcu_bh_state, this_cpu_ptr(&rcu_bh_data));
+- rcu_do_batch(&rcu_preempt_state, this_cpu_ptr(&rcu_preempt_data));
+-}
+-
+-static void rcu_cpu_kthread_setup(unsigned int cpu)
+-{
+- struct sched_param sp;
+-
+- sp.sched_priority = kthread_prio;
+- sched_setscheduler_nocheck(current, SCHED_FIFO, &sp);
+-}
+-
+-static void rcu_cpu_kthread_park(unsigned int cpu)
+-{
+- per_cpu(rcu_cpu_kthread_status, cpu) = RCU_KTHREAD_OFFCPU;
+-}
+-
+-static int rcu_cpu_kthread_should_run(unsigned int cpu)
+-{
+- return __this_cpu_read(rcu_cpu_has_work);
+-}
+-
+-/*
+- * Per-CPU kernel thread that invokes RCU callbacks. This replaces the
+- * RCU softirq used in flavors and configurations of RCU that do not
+- * support RCU priority boosting.
+- */
+-static void rcu_cpu_kthread(unsigned int cpu)
+-{
+- unsigned int *statusp = this_cpu_ptr(&rcu_cpu_kthread_status);
+- char work, *workp = this_cpu_ptr(&rcu_cpu_has_work);
+- int spincnt;
+-
+- for (spincnt = 0; spincnt < 10; spincnt++) {
+- trace_rcu_utilization(TPS("Start CPU kthread@rcu_wait"));
+- local_bh_disable();
+- *statusp = RCU_KTHREAD_RUNNING;
+- this_cpu_inc(rcu_cpu_kthread_loops);
+- local_irq_disable();
+- work = *workp;
+- *workp = 0;
+- local_irq_enable();
+- if (work)
+- rcu_kthread_do_work();
+- local_bh_enable();
+- if (*workp == 0) {
+- trace_rcu_utilization(TPS("End CPU kthread@rcu_wait"));
+- *statusp = RCU_KTHREAD_WAITING;
+- return;
+- }
+- }
+- *statusp = RCU_KTHREAD_YIELDING;
+- trace_rcu_utilization(TPS("Start CPU kthread@rcu_yield"));
+- schedule_timeout_interruptible(2);
+- trace_rcu_utilization(TPS("End CPU kthread@rcu_yield"));
+- *statusp = RCU_KTHREAD_WAITING;
+-}
+-
+ /*
+ * Set the per-rcu_node kthread's affinity to cover all CPUs that are
+ * served by the rcu_node in question. The CPU hotplug lock is still
+@@ -1339,26 +1238,12 @@ static void rcu_boost_kthread_setaffinity(struct rcu_node *rnp, int outgoingcpu)
+ free_cpumask_var(cm);
+ }
+
+-static struct smp_hotplug_thread rcu_cpu_thread_spec = {
+- .store = &rcu_cpu_kthread_task,
+- .thread_should_run = rcu_cpu_kthread_should_run,
+- .thread_fn = rcu_cpu_kthread,
+- .thread_comm = "rcuc/%u",
+- .setup = rcu_cpu_kthread_setup,
+- .park = rcu_cpu_kthread_park,
+-};
+-
+ /*
+ * Spawn boost kthreads -- called as soon as the scheduler is running.
+ */
+ static void __init rcu_spawn_boost_kthreads(void)
+ {
+ struct rcu_node *rnp;
+- int cpu;
+-
+- for_each_possible_cpu(cpu)
+- per_cpu(rcu_cpu_has_work, cpu) = 0;
+- BUG_ON(smpboot_register_percpu_thread(&rcu_cpu_thread_spec));
+ rcu_for_each_leaf_node(rcu_state_p, rnp)
+ (void)rcu_spawn_one_boost_kthread(rcu_state_p, rnp);
+ }
+@@ -1381,11 +1266,6 @@ static void rcu_initiate_boost(struct rcu_node *rnp, unsigned long flags)
+ raw_spin_unlock_irqrestore_rcu_node(rnp, flags);
+ }
+
+-static void invoke_rcu_callbacks_kthread(void)
+-{
+- WARN_ON_ONCE(1);
+-}
+-
+ static bool rcu_is_callbacks_kthread(void)
+ {
+ return false;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0161-srcu-use-cpu_online-instead-custom-check.patch b/debian/patches-rt/0161-srcu-use-cpu_online-instead-custom-check.patch
new file mode 100644
index 000000000..626188f7a
--- /dev/null
+++ b/debian/patches-rt/0161-srcu-use-cpu_online-instead-custom-check.patch
@@ -0,0 +1,96 @@
+From 4ce509b22af5e28f62c90f342169dad726731a39 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 13 Sep 2017 14:43:41 +0200
+Subject: [PATCH 161/347] srcu: use cpu_online() instead custom check
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The current check via srcu_online is slightly racy because after looking
+at srcu_online there could be an interrupt that interrupted us long
+enough until the CPU we checked against went offline.
+An alternative would be to hold the hotplug rwsem (so the CPUs don't
+change their state) and then check based on cpu_online() if we queue it
+on a specific CPU or not. queue_work_on() itself can handle if something
+is enqueued on an offline CPU but a timer which is enqueued on an offline
+CPU won't fire until the CPU is back online.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/rcu/srcutree.c | 22 ++++------------------
+ kernel/rcu/tree.c | 4 ----
+ 2 files changed, 4 insertions(+), 22 deletions(-)
+
+diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c
+index 1ff17e297f0c..df0375453ba1 100644
+--- a/kernel/rcu/srcutree.c
++++ b/kernel/rcu/srcutree.c
+@@ -38,6 +38,7 @@
+ #include <linux/delay.h>
+ #include <linux/module.h>
+ #include <linux/srcu.h>
++#include <linux/cpu.h>
+
+ #include "rcu.h"
+ #include "rcu_segcblist.h"
+@@ -460,21 +461,6 @@ static void srcu_gp_start(struct srcu_struct *sp)
+ WARN_ON_ONCE(state != SRCU_STATE_SCAN1);
+ }
+
+-/*
+- * Track online CPUs to guide callback workqueue placement.
+- */
+-DEFINE_PER_CPU(bool, srcu_online);
+-
+-void srcu_online_cpu(unsigned int cpu)
+-{
+- WRITE_ONCE(per_cpu(srcu_online, cpu), true);
+-}
+-
+-void srcu_offline_cpu(unsigned int cpu)
+-{
+- WRITE_ONCE(per_cpu(srcu_online, cpu), false);
+-}
+-
+ /*
+ * Place the workqueue handler on the specified CPU if online, otherwise
+ * just run it whereever. This is useful for placing workqueue handlers
+@@ -486,12 +472,12 @@ static bool srcu_queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
+ {
+ bool ret;
+
+- preempt_disable();
+- if (READ_ONCE(per_cpu(srcu_online, cpu)))
++ cpus_read_lock();
++ if (cpu_online(cpu))
+ ret = queue_delayed_work_on(cpu, wq, dwork, delay);
+ else
+ ret = queue_delayed_work(wq, dwork, delay);
+- preempt_enable();
++ cpus_read_unlock();
+ return ret;
+ }
+
+diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
+index ae716ca783bc..f162a4f54b05 100644
+--- a/kernel/rcu/tree.c
++++ b/kernel/rcu/tree.c
+@@ -3784,8 +3784,6 @@ int rcutree_online_cpu(unsigned int cpu)
+ rnp->ffmask |= rdp->grpmask;
+ raw_spin_unlock_irqrestore_rcu_node(rnp, flags);
+ }
+- if (IS_ENABLED(CONFIG_TREE_SRCU))
+- srcu_online_cpu(cpu);
+ if (rcu_scheduler_active == RCU_SCHEDULER_INACTIVE)
+ return 0; /* Too early in boot for scheduler work. */
+ sync_sched_exp_online_cleanup(cpu);
+@@ -3813,8 +3811,6 @@ int rcutree_offline_cpu(unsigned int cpu)
+ }
+
+ rcutree_affinity_setting(cpu, cpu);
+- if (IS_ENABLED(CONFIG_TREE_SRCU))
+- srcu_offline_cpu(cpu);
+ return 0;
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0162-srcu-replace-local_irqsave-with-a-locallock.patch b/debian/patches-rt/0162-srcu-replace-local_irqsave-with-a-locallock.patch
new file mode 100644
index 000000000..5cdde2079
--- /dev/null
+++ b/debian/patches-rt/0162-srcu-replace-local_irqsave-with-a-locallock.patch
@@ -0,0 +1,77 @@
+From 62524e62d2f224889aee36c1c134f0efb2fba025 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 12 Oct 2017 18:37:12 +0200
+Subject: [PATCH 162/347] srcu: replace local_irqsave() with a locallock
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+There are two instances which disable interrupts in order to become a
+stable this_cpu_ptr() pointer. The restore part is coupled with
+spin_unlock_irqrestore() which does not work on RT.
+Replace the local_irq_save() call with the appropriate local_lock()
+version of it.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/rcu/srcutree.c | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c
+index df0375453ba1..0f09a1a9e17c 100644
+--- a/kernel/rcu/srcutree.c
++++ b/kernel/rcu/srcutree.c
+@@ -39,6 +39,7 @@
+ #include <linux/module.h>
+ #include <linux/srcu.h>
+ #include <linux/cpu.h>
++#include <linux/locallock.h>
+
+ #include "rcu.h"
+ #include "rcu_segcblist.h"
+@@ -760,6 +761,8 @@ static void srcu_flip(struct srcu_struct *sp)
+ * negligible when amoritized over that time period, and the extra latency
+ * of a needlessly non-expedited grace period is similarly negligible.
+ */
++static DEFINE_LOCAL_IRQ_LOCK(sp_llock);
++
+ static bool srcu_might_be_idle(struct srcu_struct *sp)
+ {
+ unsigned long curseq;
+@@ -768,13 +771,13 @@ static bool srcu_might_be_idle(struct srcu_struct *sp)
+ unsigned long t;
+
+ /* If the local srcu_data structure has callbacks, not idle. */
+- local_irq_save(flags);
++ local_lock_irqsave(sp_llock, flags);
+ sdp = this_cpu_ptr(sp->sda);
+ if (rcu_segcblist_pend_cbs(&sdp->srcu_cblist)) {
+- local_irq_restore(flags);
++ local_unlock_irqrestore(sp_llock, flags);
+ return false; /* Callbacks already present, so not idle. */
+ }
+- local_irq_restore(flags);
++ local_unlock_irqrestore(sp_llock, flags);
+
+ /*
+ * No local callbacks, so probabalistically probe global state.
+@@ -852,7 +855,7 @@ void __call_srcu(struct srcu_struct *sp, struct rcu_head *rhp,
+ return;
+ }
+ rhp->func = func;
+- local_irq_save(flags);
++ local_lock_irqsave(sp_llock, flags);
+ sdp = this_cpu_ptr(sp->sda);
+ spin_lock_rcu_node(sdp);
+ rcu_segcblist_enqueue(&sdp->srcu_cblist, rhp, false);
+@@ -868,7 +871,8 @@ void __call_srcu(struct srcu_struct *sp, struct rcu_head *rhp,
+ sdp->srcu_gp_seq_needed_exp = s;
+ needexp = true;
+ }
+- spin_unlock_irqrestore_rcu_node(sdp, flags);
++ spin_unlock_rcu_node(sdp);
++ local_unlock_irqrestore(sp_llock, flags);
+ if (needgp)
+ srcu_funnel_gp_start(sp, sdp, s, do_norm);
+ else if (needexp)
+--
+2.36.1
+
diff --git a/debian/patches-rt/0163-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch b/debian/patches-rt/0163-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch
new file mode 100644
index 000000000..495aa2d9d
--- /dev/null
+++ b/debian/patches-rt/0163-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch
@@ -0,0 +1,37 @@
+From 4da02c2768978a9206e437ab36a1d6e9ed2641af Mon Sep 17 00:00:00 2001
+From: Julia Cartwright <julia@ni.com>
+Date: Wed, 12 Oct 2016 11:21:14 -0500
+Subject: [PATCH 163/347] rcu: enable rcu_normal_after_boot by default for RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The forcing of an expedited grace period is an expensive and very
+RT-application unfriendly operation, as it forcibly preempts all running
+tasks on CPUs which are preventing the gp from expiring.
+
+By default, as a policy decision, disable the expediting of grace
+periods (after boot) on configurations which enable PREEMPT_RT_FULL.
+
+Suggested-by: Luiz Capitulino <lcapitulino@redhat.com>
+Acked-by: Paul E. McKenney <paulmck@linux.ibm.com>
+Signed-off-by: Julia Cartwright <julia@ni.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/rcu/update.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kernel/rcu/update.c b/kernel/rcu/update.c
+index 6ffafb1b1584..16d8dba23329 100644
+--- a/kernel/rcu/update.c
++++ b/kernel/rcu/update.c
+@@ -68,7 +68,7 @@ extern int rcu_expedited; /* from sysctl */
+ module_param(rcu_expedited, int, 0);
+ extern int rcu_normal; /* from sysctl */
+ module_param(rcu_normal, int, 0);
+-static int rcu_normal_after_boot;
++static int rcu_normal_after_boot = IS_ENABLED(CONFIG_PREEMPT_RT_FULL);
+ module_param(rcu_normal_after_boot, int, 0);
+ #endif /* #ifndef CONFIG_TINY_RCU */
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0164-tty-serial-omap-Make-the-locking-RT-aware.patch b/debian/patches-rt/0164-tty-serial-omap-Make-the-locking-RT-aware.patch
new file mode 100644
index 000000000..842a20687
--- /dev/null
+++ b/debian/patches-rt/0164-tty-serial-omap-Make-the-locking-RT-aware.patch
@@ -0,0 +1,49 @@
+From ebe8e211893ebd446569ab83eeb7277a77db835f Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Thu, 28 Jul 2011 13:32:57 +0200
+Subject: [PATCH 164/347] tty/serial/omap: Make the locking RT aware
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ drivers/tty/serial/omap-serial.c | 12 ++++--------
+ 1 file changed, 4 insertions(+), 8 deletions(-)
+
+diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
+index 6420ae581a80..0f4f41ed9ffa 100644
+--- a/drivers/tty/serial/omap-serial.c
++++ b/drivers/tty/serial/omap-serial.c
+@@ -1307,13 +1307,10 @@ serial_omap_console_write(struct console *co, const char *s,
+
+ pm_runtime_get_sync(up->dev);
+
+- local_irq_save(flags);
+- if (up->port.sysrq)
+- locked = 0;
+- else if (oops_in_progress)
+- locked = spin_trylock(&up->port.lock);
++ if (up->port.sysrq || oops_in_progress)
++ locked = spin_trylock_irqsave(&up->port.lock, flags);
+ else
+- spin_lock(&up->port.lock);
++ spin_lock_irqsave(&up->port.lock, flags);
+
+ /*
+ * First save the IER then disable the interrupts
+@@ -1342,8 +1339,7 @@ serial_omap_console_write(struct console *co, const char *s,
+ pm_runtime_mark_last_busy(up->dev);
+ pm_runtime_put_autosuspend(up->dev);
+ if (locked)
+- spin_unlock(&up->port.lock);
+- local_irq_restore(flags);
++ spin_unlock_irqrestore(&up->port.lock, flags);
+ }
+
+ static int __init
+--
+2.36.1
+
diff --git a/debian/patches-rt/0165-tty-serial-pl011-Make-the-locking-work-on-RT.patch b/debian/patches-rt/0165-tty-serial-pl011-Make-the-locking-work-on-RT.patch
new file mode 100644
index 000000000..6309f7e50
--- /dev/null
+++ b/debian/patches-rt/0165-tty-serial-pl011-Make-the-locking-work-on-RT.patch
@@ -0,0 +1,54 @@
+From e699af6cca35d036a6876b5c9ec0b1355cc16842 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Tue, 8 Jan 2013 21:36:51 +0100
+Subject: [PATCH 165/347] tty/serial/pl011: Make the locking work on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ drivers/tty/serial/amba-pl011.c | 15 ++++++++++-----
+ 1 file changed, 10 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
+index 5edc3813a9b9..7d4aee4c5091 100644
+--- a/drivers/tty/serial/amba-pl011.c
++++ b/drivers/tty/serial/amba-pl011.c
+@@ -2196,13 +2196,19 @@ pl011_console_write(struct console *co, const char *s, unsigned int count)
+
+ clk_enable(uap->clk);
+
+- local_irq_save(flags);
++ /*
++ * local_irq_save(flags);
++ *
++ * This local_irq_save() is nonsense. If we come in via sysrq
++ * handling then interrupts are already disabled. Aside of
++ * that the port.sysrq check is racy on SMP regardless.
++ */
+ if (uap->port.sysrq)
+ locked = 0;
+ else if (oops_in_progress)
+- locked = spin_trylock(&uap->port.lock);
++ locked = spin_trylock_irqsave(&uap->port.lock, flags);
+ else
+- spin_lock(&uap->port.lock);
++ spin_lock_irqsave(&uap->port.lock, flags);
+
+ /*
+ * First save the CR then disable the interrupts
+@@ -2228,8 +2234,7 @@ pl011_console_write(struct console *co, const char *s, unsigned int count)
+ pl011_write(old_cr, uap, REG_CR);
+
+ if (locked)
+- spin_unlock(&uap->port.lock);
+- local_irq_restore(flags);
++ spin_unlock_irqrestore(&uap->port.lock, flags);
+
+ clk_disable(uap->clk);
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0166-tty-serial-pl011-explicitly-initialize-the-flags-var.patch b/debian/patches-rt/0166-tty-serial-pl011-explicitly-initialize-the-flags-var.patch
new file mode 100644
index 000000000..abf490978
--- /dev/null
+++ b/debian/patches-rt/0166-tty-serial-pl011-explicitly-initialize-the-flags-var.patch
@@ -0,0 +1,45 @@
+From 59b39d4106f01f2ad2f1e7999490b5afc54f8b49 Mon Sep 17 00:00:00 2001
+From: Kurt Kanzenbach <kurt@linutronix.de>
+Date: Mon, 24 Sep 2018 10:29:01 +0200
+Subject: [PATCH 166/347] tty: serial: pl011: explicitly initialize the flags
+ variable
+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/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Silence the following gcc warning:
+
+drivers/tty/serial/amba-pl011.c: In function ‘pl011_console_write’:
+./include/linux/spinlock.h:260:3: warning: ‘flags’ may be used uninitialized in this function [-Wmaybe-uninitialized]
+ _raw_spin_unlock_irqrestore(lock, flags); \
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
+drivers/tty/serial/amba-pl011.c:2214:16: note: ‘flags’ was declared here
+ unsigned long flags;
+ ^~~~~
+
+The code is correct. Thus, initializing flags to zero doesn't change the
+behavior and resolves the warning.
+
+Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/tty/serial/amba-pl011.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
+index 7d4aee4c5091..9666a20f23ec 100644
+--- a/drivers/tty/serial/amba-pl011.c
++++ b/drivers/tty/serial/amba-pl011.c
+@@ -2191,7 +2191,7 @@ pl011_console_write(struct console *co, const char *s, unsigned int count)
+ {
+ struct uart_amba_port *uap = amba_ports[co->index];
+ unsigned int old_cr = 0, new_cr;
+- unsigned long flags;
++ unsigned long flags = 0;
+ int locked = 1;
+
+ clk_enable(uap->clk);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0167-rt-Improve-the-serial-console-PASS_LIMIT.patch b/debian/patches-rt/0167-rt-Improve-the-serial-console-PASS_LIMIT.patch
new file mode 100644
index 000000000..aa552dbab
--- /dev/null
+++ b/debian/patches-rt/0167-rt-Improve-the-serial-console-PASS_LIMIT.patch
@@ -0,0 +1,47 @@
+From 2ca7e055b4220689e58ff53c7e64caf5e8eadb37 Mon Sep 17 00:00:00 2001
+From: Ingo Molnar <mingo@elte.hu>
+Date: Wed, 14 Dec 2011 13:05:54 +0100
+Subject: [PATCH 167/347] rt: Improve the serial console PASS_LIMIT
+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/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Beyond the warning:
+
+ drivers/tty/serial/8250/8250.c:1613:6: warning: unused variable ‘pass_counter’ [-Wunused-variable]
+
+the solution of just looping infinitely was ugly - up it to 1 million to
+give it a chance to continue in some really ugly situation.
+
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ drivers/tty/serial/8250/8250_core.c | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c
+index d2df7d71d666..57fd29b2ddf5 100644
+--- a/drivers/tty/serial/8250/8250_core.c
++++ b/drivers/tty/serial/8250/8250_core.c
+@@ -54,7 +54,16 @@ static struct uart_driver serial8250_reg;
+
+ static unsigned int skip_txen_test; /* force skip of txen test at init time */
+
+-#define PASS_LIMIT 512
++/*
++ * On -rt we can have a more delays, and legitimately
++ * so - so don't drop work spuriously and spam the
++ * syslog:
++ */
++#ifdef CONFIG_PREEMPT_RT_FULL
++# define PASS_LIMIT 1000000
++#else
++# define PASS_LIMIT 512
++#endif
+
+ #include <asm/serial.h>
+ /*
+--
+2.36.1
+
diff --git a/debian/patches-rt/0168-tty-serial-8250-don-t-take-the-trylock-during-oops.patch b/debian/patches-rt/0168-tty-serial-8250-don-t-take-the-trylock-during-oops.patch
new file mode 100644
index 000000000..8cb91d2aa
--- /dev/null
+++ b/debian/patches-rt/0168-tty-serial-8250-don-t-take-the-trylock-during-oops.patch
@@ -0,0 +1,35 @@
+From bf2010a260b11e805d39d0d1a6d0302b1d3e7210 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Mon, 11 Apr 2016 16:55:02 +0200
+Subject: [PATCH 168/347] tty: serial: 8250: don't take the trylock during oops
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+An oops with irqs off (panic() from irqsafe hrtimer like the watchdog
+timer) will lead to a lockdep warning on each invocation and as such
+never completes.
+Therefore we skip the trylock in the oops case.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/tty/serial/8250/8250_port.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c
+index 34687c354f5e..ef8bccc0823c 100644
+--- a/drivers/tty/serial/8250/8250_port.c
++++ b/drivers/tty/serial/8250/8250_port.c
+@@ -3294,10 +3294,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s,
+
+ serial8250_rpm_get(up);
+
+- if (port->sysrq)
++ if (port->sysrq || oops_in_progress)
+ locked = 0;
+- else if (oops_in_progress)
+- locked = spin_trylock_irqsave(&port->lock, flags);
+ else
+ spin_lock_irqsave(&port->lock, flags);
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0169-locking-percpu-rwsem-Remove-preempt_disable-variants.patch b/debian/patches-rt/0169-locking-percpu-rwsem-Remove-preempt_disable-variants.patch
new file mode 100644
index 000000000..a6a0cd7c4
--- /dev/null
+++ b/debian/patches-rt/0169-locking-percpu-rwsem-Remove-preempt_disable-variants.patch
@@ -0,0 +1,226 @@
+From 80adc8fb1dabebcc9d41cb6c0f122860061c12a3 Mon Sep 17 00:00:00 2001
+From: Peter Zijlstra <peterz@infradead.org>
+Date: Wed, 23 Nov 2016 16:29:32 +0100
+Subject: [PATCH 169/347] locking/percpu-rwsem: Remove preempt_disable variants
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Effective revert commit:
+
+ 87709e28dc7c ("fs/locks: Use percpu_down_read_preempt_disable()")
+
+This is causing major pain for PREEMPT_RT and is only a very small
+performance issue for PREEMPT=y.
+
+Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
+---
+ fs/locks.c | 32 ++++++++++++++++----------------
+ include/linux/percpu-rwsem.h | 24 ++++--------------------
+ 2 files changed, 20 insertions(+), 36 deletions(-)
+
+diff --git a/fs/locks.c b/fs/locks.c
+index 28270e74be34..552476d6f6bb 100644
+--- a/fs/locks.c
++++ b/fs/locks.c
+@@ -936,7 +936,7 @@ static int flock_lock_inode(struct inode *inode, struct file_lock *request)
+ return -ENOMEM;
+ }
+
+- percpu_down_read_preempt_disable(&file_rwsem);
++ percpu_down_read(&file_rwsem);
+ spin_lock(&ctx->flc_lock);
+ if (request->fl_flags & FL_ACCESS)
+ goto find_conflict;
+@@ -977,7 +977,7 @@ static int flock_lock_inode(struct inode *inode, struct file_lock *request)
+
+ out:
+ spin_unlock(&ctx->flc_lock);
+- percpu_up_read_preempt_enable(&file_rwsem);
++ percpu_up_read(&file_rwsem);
+ if (new_fl)
+ locks_free_lock(new_fl);
+ locks_dispose_list(&dispose);
+@@ -1015,7 +1015,7 @@ static int posix_lock_inode(struct inode *inode, struct file_lock *request,
+ new_fl2 = locks_alloc_lock();
+ }
+
+- percpu_down_read_preempt_disable(&file_rwsem);
++ percpu_down_read(&file_rwsem);
+ spin_lock(&ctx->flc_lock);
+ /*
+ * New lock request. Walk all POSIX locks and look for conflicts. If
+@@ -1187,7 +1187,7 @@ static int posix_lock_inode(struct inode *inode, struct file_lock *request,
+ }
+ out:
+ spin_unlock(&ctx->flc_lock);
+- percpu_up_read_preempt_enable(&file_rwsem);
++ percpu_up_read(&file_rwsem);
+ /*
+ * Free any unused locks.
+ */
+@@ -1462,7 +1462,7 @@ int __break_lease(struct inode *inode, unsigned int mode, unsigned int type)
+ return error;
+ }
+
+- percpu_down_read_preempt_disable(&file_rwsem);
++ percpu_down_read(&file_rwsem);
+ spin_lock(&ctx->flc_lock);
+
+ time_out_leases(inode, &dispose);
+@@ -1514,13 +1514,13 @@ int __break_lease(struct inode *inode, unsigned int mode, unsigned int type)
+ locks_insert_block(fl, new_fl);
+ trace_break_lease_block(inode, new_fl);
+ spin_unlock(&ctx->flc_lock);
+- percpu_up_read_preempt_enable(&file_rwsem);
++ percpu_up_read(&file_rwsem);
+
+ locks_dispose_list(&dispose);
+ error = wait_event_interruptible_timeout(new_fl->fl_wait,
+ !new_fl->fl_next, break_time);
+
+- percpu_down_read_preempt_disable(&file_rwsem);
++ percpu_down_read(&file_rwsem);
+ spin_lock(&ctx->flc_lock);
+ trace_break_lease_unblock(inode, new_fl);
+ locks_delete_block(new_fl);
+@@ -1537,7 +1537,7 @@ int __break_lease(struct inode *inode, unsigned int mode, unsigned int type)
+ }
+ out:
+ spin_unlock(&ctx->flc_lock);
+- percpu_up_read_preempt_enable(&file_rwsem);
++ percpu_up_read(&file_rwsem);
+ locks_dispose_list(&dispose);
+ locks_free_lock(new_fl);
+ return error;
+@@ -1609,7 +1609,7 @@ int fcntl_getlease(struct file *filp)
+
+ ctx = smp_load_acquire(&inode->i_flctx);
+ if (ctx && !list_empty_careful(&ctx->flc_lease)) {
+- percpu_down_read_preempt_disable(&file_rwsem);
++ percpu_down_read(&file_rwsem);
+ spin_lock(&ctx->flc_lock);
+ time_out_leases(inode, &dispose);
+ list_for_each_entry(fl, &ctx->flc_lease, fl_list) {
+@@ -1619,7 +1619,7 @@ int fcntl_getlease(struct file *filp)
+ break;
+ }
+ spin_unlock(&ctx->flc_lock);
+- percpu_up_read_preempt_enable(&file_rwsem);
++ percpu_up_read(&file_rwsem);
+
+ locks_dispose_list(&dispose);
+ }
+@@ -1693,7 +1693,7 @@ generic_add_lease(struct file *filp, long arg, struct file_lock **flp, void **pr
+ return -EINVAL;
+ }
+
+- percpu_down_read_preempt_disable(&file_rwsem);
++ percpu_down_read(&file_rwsem);
+ spin_lock(&ctx->flc_lock);
+ time_out_leases(inode, &dispose);
+ error = check_conflicting_open(dentry, arg, lease->fl_flags);
+@@ -1764,7 +1764,7 @@ generic_add_lease(struct file *filp, long arg, struct file_lock **flp, void **pr
+ lease->fl_lmops->lm_setup(lease, priv);
+ out:
+ spin_unlock(&ctx->flc_lock);
+- percpu_up_read_preempt_enable(&file_rwsem);
++ percpu_up_read(&file_rwsem);
+ locks_dispose_list(&dispose);
+ if (is_deleg)
+ inode_unlock(inode);
+@@ -1787,7 +1787,7 @@ static int generic_delete_lease(struct file *filp, void *owner)
+ return error;
+ }
+
+- percpu_down_read_preempt_disable(&file_rwsem);
++ percpu_down_read(&file_rwsem);
+ spin_lock(&ctx->flc_lock);
+ list_for_each_entry(fl, &ctx->flc_lease, fl_list) {
+ if (fl->fl_file == filp &&
+@@ -1800,7 +1800,7 @@ static int generic_delete_lease(struct file *filp, void *owner)
+ if (victim)
+ error = fl->fl_lmops->lm_change(victim, F_UNLCK, &dispose);
+ spin_unlock(&ctx->flc_lock);
+- percpu_up_read_preempt_enable(&file_rwsem);
++ percpu_up_read(&file_rwsem);
+ locks_dispose_list(&dispose);
+ return error;
+ }
+@@ -2531,13 +2531,13 @@ locks_remove_lease(struct file *filp, struct file_lock_context *ctx)
+ if (list_empty(&ctx->flc_lease))
+ return;
+
+- percpu_down_read_preempt_disable(&file_rwsem);
++ percpu_down_read(&file_rwsem);
+ spin_lock(&ctx->flc_lock);
+ list_for_each_entry_safe(fl, tmp, &ctx->flc_lease, fl_list)
+ if (filp == fl->fl_file)
+ lease_modify(fl, F_UNLCK, &dispose);
+ spin_unlock(&ctx->flc_lock);
+- percpu_up_read_preempt_enable(&file_rwsem);
++ percpu_up_read(&file_rwsem);
+
+ locks_dispose_list(&dispose);
+ }
+diff --git a/include/linux/percpu-rwsem.h b/include/linux/percpu-rwsem.h
+index 79b99d653e03..fb44e237316d 100644
+--- a/include/linux/percpu-rwsem.h
++++ b/include/linux/percpu-rwsem.h
+@@ -29,7 +29,7 @@ static struct percpu_rw_semaphore name = { \
+ extern int __percpu_down_read(struct percpu_rw_semaphore *, int);
+ extern void __percpu_up_read(struct percpu_rw_semaphore *);
+
+-static inline void percpu_down_read_preempt_disable(struct percpu_rw_semaphore *sem)
++static inline void percpu_down_read(struct percpu_rw_semaphore *sem)
+ {
+ might_sleep();
+
+@@ -47,16 +47,10 @@ static inline void percpu_down_read_preempt_disable(struct percpu_rw_semaphore *
+ __this_cpu_inc(*sem->read_count);
+ if (unlikely(!rcu_sync_is_idle(&sem->rss)))
+ __percpu_down_read(sem, false); /* Unconditional memory barrier */
+- barrier();
+ /*
+- * The barrier() prevents the compiler from
++ * The preempt_enable() prevents the compiler from
+ * bleeding the critical section out.
+ */
+-}
+-
+-static inline void percpu_down_read(struct percpu_rw_semaphore *sem)
+-{
+- percpu_down_read_preempt_disable(sem);
+ preempt_enable();
+ }
+
+@@ -83,13 +77,9 @@ static inline int percpu_down_read_trylock(struct percpu_rw_semaphore *sem)
+ return ret;
+ }
+
+-static inline void percpu_up_read_preempt_enable(struct percpu_rw_semaphore *sem)
++static inline void percpu_up_read(struct percpu_rw_semaphore *sem)
+ {
+- /*
+- * The barrier() prevents the compiler from
+- * bleeding the critical section out.
+- */
+- barrier();
++ preempt_disable();
+ /*
+ * Same as in percpu_down_read().
+ */
+@@ -102,12 +92,6 @@ static inline void percpu_up_read_preempt_enable(struct percpu_rw_semaphore *sem
+ rwsem_release(&sem->rw_sem.dep_map, 1, _RET_IP_);
+ }
+
+-static inline void percpu_up_read(struct percpu_rw_semaphore *sem)
+-{
+- preempt_disable();
+- percpu_up_read_preempt_enable(sem);
+-}
+-
+ extern void percpu_down_write(struct percpu_rw_semaphore *);
+ extern void percpu_up_write(struct percpu_rw_semaphore *);
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0170-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch b/debian/patches-rt/0170-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch
new file mode 100644
index 000000000..f39bdbeba
--- /dev/null
+++ b/debian/patches-rt/0170-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch
@@ -0,0 +1,82 @@
+From 67c3a14d6fbac8e692c9e7a999b7fe8d062529bc Mon Sep 17 00:00:00 2001
+From: Yong Zhang <yong.zhang0@gmail.com>
+Date: Tue, 15 May 2012 13:53:56 +0800
+Subject: [PATCH 170/347] mm: Protect activate_mm() by
+ preempt_[disable&enable]_rt()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+User preempt_*_rt instead of local_irq_*_rt or otherwise there will be
+warning on ARM like below:
+
+WARNING: at build/linux/kernel/smp.c:459 smp_call_function_many+0x98/0x264()
+Modules linked in:
+[<c0013bb4>] (unwind_backtrace+0x0/0xe4) from [<c001be94>] (warn_slowpath_common+0x4c/0x64)
+[<c001be94>] (warn_slowpath_common+0x4c/0x64) from [<c001bec4>] (warn_slowpath_null+0x18/0x1c)
+[<c001bec4>] (warn_slowpath_null+0x18/0x1c) from [<c0053ff8>](smp_call_function_many+0x98/0x264)
+[<c0053ff8>] (smp_call_function_many+0x98/0x264) from [<c0054364>] (smp_call_function+0x44/0x6c)
+[<c0054364>] (smp_call_function+0x44/0x6c) from [<c0017d50>] (__new_context+0xbc/0x124)
+[<c0017d50>] (__new_context+0xbc/0x124) from [<c009e49c>] (flush_old_exec+0x460/0x5e4)
+[<c009e49c>] (flush_old_exec+0x460/0x5e4) from [<c00d61ac>] (load_elf_binary+0x2e0/0x11ac)
+[<c00d61ac>] (load_elf_binary+0x2e0/0x11ac) from [<c009d060>] (search_binary_handler+0x94/0x2a4)
+[<c009d060>] (search_binary_handler+0x94/0x2a4) from [<c009e8fc>] (do_execve+0x254/0x364)
+[<c009e8fc>] (do_execve+0x254/0x364) from [<c0010e84>] (sys_execve+0x34/0x54)
+[<c0010e84>] (sys_execve+0x34/0x54) from [<c000da00>] (ret_fast_syscall+0x0/0x30)
+---[ end trace 0000000000000002 ]---
+
+The reason is that ARM need irq enabled when doing activate_mm().
+According to mm-protect-activate-switch-mm.patch, actually
+preempt_[disable|enable]_rt() is sufficient.
+
+Inspired-by: Steven Rostedt <rostedt@goodmis.org>
+Signed-off-by: Yong Zhang <yong.zhang0@gmail.com>
+Cc: Steven Rostedt <rostedt@goodmis.org>
+Link: http://lkml.kernel.org/r/1337061236-1766-1-git-send-email-yong.zhang0@gmail.com
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ fs/exec.c | 2 ++
+ mm/mmu_context.c | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/fs/exec.c b/fs/exec.c
+index 28e3b5eb2f4a..2c15772a1feb 100644
+--- a/fs/exec.c
++++ b/fs/exec.c
+@@ -1028,6 +1028,7 @@ static int exec_mmap(struct mm_struct *mm)
+ }
+ }
+ task_lock(tsk);
++ preempt_disable_rt();
+
+ local_irq_disable();
+ active_mm = tsk->active_mm;
+@@ -1047,6 +1048,7 @@ static int exec_mmap(struct mm_struct *mm)
+ local_irq_enable();
+ tsk->mm->vmacache_seqnum = 0;
+ vmacache_flush(tsk);
++ preempt_enable_rt();
+ task_unlock(tsk);
+ if (old_mm) {
+ up_read(&old_mm->mmap_sem);
+diff --git a/mm/mmu_context.c b/mm/mmu_context.c
+index 3e612ae748e9..d0ccc070979f 100644
+--- a/mm/mmu_context.c
++++ b/mm/mmu_context.c
+@@ -25,6 +25,7 @@ void use_mm(struct mm_struct *mm)
+ struct task_struct *tsk = current;
+
+ task_lock(tsk);
++ preempt_disable_rt();
+ active_mm = tsk->active_mm;
+ if (active_mm != mm) {
+ mmgrab(mm);
+@@ -32,6 +33,7 @@ void use_mm(struct mm_struct *mm)
+ }
+ tsk->mm = mm;
+ switch_mm(active_mm, mm, tsk);
++ preempt_enable_rt();
+ task_unlock(tsk);
+ #ifdef finish_arch_post_lock_switch
+ finish_arch_post_lock_switch();
+--
+2.36.1
+
diff --git a/debian/patches-rt/0171-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch b/debian/patches-rt/0171-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch
new file mode 100644
index 000000000..c6db9639d
--- /dev/null
+++ b/debian/patches-rt/0171-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch
@@ -0,0 +1,61 @@
+From 54729c769ee68192a795377f27cc479b959ca152 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 13 Sep 2017 12:32:34 +0200
+Subject: [PATCH 171/347] fs/dcache: bring back explicit INIT_HLIST_BL_HEAD
+ init
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Commit 3d375d78593c ("mm: update callers to use HASH_ZERO flag") removed
+INIT_HLIST_BL_HEAD and uses the ZERO flag instead for the init. However
+on RT we have also a spinlock which needs an init call so we can't use
+that.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ fs/dcache.c | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/fs/dcache.c b/fs/dcache.c
+index 1897833a4668..b5e53587d14b 100644
+--- a/fs/dcache.c
++++ b/fs/dcache.c
+@@ -3077,6 +3077,8 @@ __setup("dhash_entries=", set_dhash_entries);
+
+ static void __init dcache_init_early(void)
+ {
++ unsigned int loop;
++
+ /* If hashes are distributed across NUMA nodes, defer
+ * hash allocation until vmalloc space is available.
+ */
+@@ -3093,11 +3095,16 @@ static void __init dcache_init_early(void)
+ NULL,
+ 0,
+ 0);
++
++ for (loop = 0; loop < (1U << d_hash_shift); loop++)
++ INIT_HLIST_BL_HEAD(dentry_hashtable + loop);
++
+ d_hash_shift = 32 - d_hash_shift;
+ }
+
+ static void __init dcache_init(void)
+ {
++ unsigned int loop;
+ /*
+ * A constructor could be added for stable state like the lists,
+ * but it is probably not worth it because of the cache nature
+@@ -3121,6 +3128,10 @@ static void __init dcache_init(void)
+ NULL,
+ 0,
+ 0);
++
++ for (loop = 0; loop < (1U << d_hash_shift); loop++)
++ INIT_HLIST_BL_HEAD(dentry_hashtable + loop);
++
+ d_hash_shift = 32 - d_hash_shift;
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0172-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch b/debian/patches-rt/0172-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch
new file mode 100644
index 000000000..83ac5e6c0
--- /dev/null
+++ b/debian/patches-rt/0172-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch
@@ -0,0 +1,99 @@
+From 44eeab3501a8354ba4c3fe6414168df6ccf60b74 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 20 Oct 2017 11:29:53 +0200
+Subject: [PATCH 172/347] fs/dcache: disable preemption on i_dir_seq's write
+ side
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+held. The problem is that during the write process on RT the preemption
+is still enabled and if this process is interrupted by a reader with RT
+priority then we lock up.
+To avoid that lock up I am disabling the preemption during the update.
+The rename of i_dir_seq is here to ensure to catch new write sides in
+future.
+
+Cc: stable-rt@vger.kernel.org
+Reported-by: Oleg.Karfich@wago.com
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ fs/dcache.c | 12 +++++++-----
+ fs/inode.c | 2 +-
+ include/linux/fs.h | 2 +-
+ 3 files changed, 9 insertions(+), 7 deletions(-)
+
+diff --git a/fs/dcache.c b/fs/dcache.c
+index b5e53587d14b..1ae163d54925 100644
+--- a/fs/dcache.c
++++ b/fs/dcache.c
+@@ -2406,9 +2406,10 @@ EXPORT_SYMBOL(d_rehash);
+ static inline unsigned start_dir_add(struct inode *dir)
+ {
+
++ preempt_disable_rt();
+ for (;;) {
+- unsigned n = dir->i_dir_seq;
+- if (!(n & 1) && cmpxchg(&dir->i_dir_seq, n, n + 1) == n)
++ unsigned n = dir->__i_dir_seq;
++ if (!(n & 1) && cmpxchg(&dir->__i_dir_seq, n, n + 1) == n)
+ return n;
+ cpu_relax();
+ }
+@@ -2416,7 +2417,8 @@ static inline unsigned start_dir_add(struct inode *dir)
+
+ static inline void end_dir_add(struct inode *dir, unsigned n)
+ {
+- smp_store_release(&dir->i_dir_seq, n + 2);
++ smp_store_release(&dir->__i_dir_seq, n + 2);
++ preempt_enable_rt();
+ }
+
+ static void d_wait_lookup(struct dentry *dentry)
+@@ -2449,7 +2451,7 @@ struct dentry *d_alloc_parallel(struct dentry *parent,
+
+ retry:
+ rcu_read_lock();
+- seq = smp_load_acquire(&parent->d_inode->i_dir_seq);
++ seq = smp_load_acquire(&parent->d_inode->__i_dir_seq);
+ r_seq = read_seqbegin(&rename_lock);
+ dentry = __d_lookup_rcu(parent, name, &d_seq);
+ if (unlikely(dentry)) {
+@@ -2477,7 +2479,7 @@ struct dentry *d_alloc_parallel(struct dentry *parent,
+ }
+
+ hlist_bl_lock(b);
+- if (unlikely(READ_ONCE(parent->d_inode->i_dir_seq) != seq)) {
++ if (unlikely(READ_ONCE(parent->d_inode->__i_dir_seq) != seq)) {
+ hlist_bl_unlock(b);
+ rcu_read_unlock();
+ goto retry;
+diff --git a/fs/inode.c b/fs/inode.c
+index c9eb5041ffae..e1fb0b743c96 100644
+--- a/fs/inode.c
++++ b/fs/inode.c
+@@ -156,7 +156,7 @@ int inode_init_always(struct super_block *sb, struct inode *inode)
+ inode->i_bdev = NULL;
+ inode->i_cdev = NULL;
+ inode->i_link = NULL;
+- inode->i_dir_seq = 0;
++ inode->__i_dir_seq = 0;
+ inode->i_rdev = 0;
+ inode->dirtied_when = 0;
+
+diff --git a/include/linux/fs.h b/include/linux/fs.h
+index 86f884e78b6b..029870aca4ff 100644
+--- a/include/linux/fs.h
++++ b/include/linux/fs.h
+@@ -679,7 +679,7 @@ struct inode {
+ struct block_device *i_bdev;
+ struct cdev *i_cdev;
+ char *i_link;
+- unsigned i_dir_seq;
++ unsigned __i_dir_seq;
+ };
+
+ __u32 i_generation;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0173-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch b/debian/patches-rt/0173-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch
new file mode 100644
index 000000000..e885134f9
--- /dev/null
+++ b/debian/patches-rt/0173-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch
@@ -0,0 +1,72 @@
+From 98873b747e4321516bb428c214fde307593e19f8 Mon Sep 17 00:00:00 2001
+From: Julia Cartwright <julia@ni.com>
+Date: Mon, 7 May 2018 08:58:57 -0500
+Subject: [PATCH 173/347] squashfs: make use of local lock in multi_cpu
+ decompressor
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Currently, the squashfs multi_cpu decompressor makes use of
+get_cpu_ptr()/put_cpu_ptr(), which unconditionally disable preemption
+during decompression.
+
+Because the workload is distributed across CPUs, all CPUs can observe a
+very high wakeup latency, which has been seen to be as much as 8000us.
+
+Convert this decompressor to make use of a local lock, which will allow
+execution of the decompressor with preemption-enabled, but also ensure
+concurrent accesses to the percpu compressor data on the local CPU will
+be serialized.
+
+Cc: stable-rt@vger.kernel.org
+Reported-by: Alexander Stein <alexander.stein@systec-electronic.com>
+Tested-by: Alexander Stein <alexander.stein@systec-electronic.com>
+Signed-off-by: Julia Cartwright <julia@ni.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ fs/squashfs/decompressor_multi_percpu.c | 16 ++++++++++++----
+ 1 file changed, 12 insertions(+), 4 deletions(-)
+
+diff --git a/fs/squashfs/decompressor_multi_percpu.c b/fs/squashfs/decompressor_multi_percpu.c
+index 23a9c28ad8ea..6a73c4fa88e7 100644
+--- a/fs/squashfs/decompressor_multi_percpu.c
++++ b/fs/squashfs/decompressor_multi_percpu.c
+@@ -10,6 +10,7 @@
+ #include <linux/slab.h>
+ #include <linux/percpu.h>
+ #include <linux/buffer_head.h>
++#include <linux/locallock.h>
+
+ #include "squashfs_fs.h"
+ #include "squashfs_fs_sb.h"
+@@ -25,6 +26,8 @@ struct squashfs_stream {
+ void *stream;
+ };
+
++static DEFINE_LOCAL_IRQ_LOCK(stream_lock);
++
+ void *squashfs_decompressor_create(struct squashfs_sb_info *msblk,
+ void *comp_opts)
+ {
+@@ -79,10 +82,15 @@ int squashfs_decompress(struct squashfs_sb_info *msblk, struct buffer_head **bh,
+ {
+ struct squashfs_stream __percpu *percpu =
+ (struct squashfs_stream __percpu *) msblk->stream;
+- struct squashfs_stream *stream = get_cpu_ptr(percpu);
+- int res = msblk->decompressor->decompress(msblk, stream->stream, bh, b,
+- offset, length, output);
+- put_cpu_ptr(stream);
++ struct squashfs_stream *stream;
++ int res;
++
++ stream = get_locked_ptr(stream_lock, percpu);
++
++ res = msblk->decompressor->decompress(msblk, stream->stream, bh, b,
++ offset, length, output);
++
++ put_locked_ptr(stream_lock, stream);
+
+ if (res < 0)
+ ERROR("%s decompression failed, data probably corrupt\n",
+--
+2.36.1
+
diff --git a/debian/patches-rt/0174-thermal-Defer-thermal-wakups-to-threads.patch b/debian/patches-rt/0174-thermal-Defer-thermal-wakups-to-threads.patch
new file mode 100644
index 000000000..87e9fc777
--- /dev/null
+++ b/debian/patches-rt/0174-thermal-Defer-thermal-wakups-to-threads.patch
@@ -0,0 +1,137 @@
+From add227c3c4d74e71f3d02036aed9c6ceae6a6f6c Mon Sep 17 00:00:00 2001
+From: Daniel Wagner <wagi@monom.org>
+Date: Tue, 17 Feb 2015 09:37:44 +0100
+Subject: [PATCH 174/347] thermal: Defer thermal wakups to threads
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+On RT the spin lock in pkg_temp_thermal_platfrom_thermal_notify will
+call schedule while we run in irq context.
+
+[<ffffffff816850ac>] dump_stack+0x4e/0x8f
+[<ffffffff81680f7d>] __schedule_bug+0xa6/0xb4
+[<ffffffff816896b4>] __schedule+0x5b4/0x700
+[<ffffffff8168982a>] schedule+0x2a/0x90
+[<ffffffff8168a8b5>] rt_spin_lock_slowlock+0xe5/0x2d0
+[<ffffffff8168afd5>] rt_spin_lock+0x25/0x30
+[<ffffffffa03a7b75>] pkg_temp_thermal_platform_thermal_notify+0x45/0x134 [x86_pkg_temp_thermal]
+[<ffffffff8103d4db>] ? therm_throt_process+0x1b/0x160
+[<ffffffff8103d831>] intel_thermal_interrupt+0x211/0x250
+[<ffffffff8103d8c1>] smp_thermal_interrupt+0x21/0x40
+[<ffffffff8169415d>] thermal_interrupt+0x6d/0x80
+
+Let's defer the work to a kthread.
+
+Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
+[bigeasy: reoder init/denit position. TODO: flush swork on exit]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/thermal/x86_pkg_temp_thermal.c | 52 ++++++++++++++++++++++++--
+ 1 file changed, 49 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/thermal/x86_pkg_temp_thermal.c b/drivers/thermal/x86_pkg_temp_thermal.c
+index 1ef937d799e4..a5991cbb408f 100644
+--- a/drivers/thermal/x86_pkg_temp_thermal.c
++++ b/drivers/thermal/x86_pkg_temp_thermal.c
+@@ -29,6 +29,7 @@
+ #include <linux/pm.h>
+ #include <linux/thermal.h>
+ #include <linux/debugfs.h>
++#include <linux/swork.h>
+ #include <asm/cpu_device_id.h>
+ #include <asm/mce.h>
+
+@@ -329,7 +330,7 @@ static void pkg_thermal_schedule_work(int cpu, struct delayed_work *work)
+ schedule_delayed_work_on(cpu, work, ms);
+ }
+
+-static int pkg_thermal_notify(u64 msr_val)
++static void pkg_thermal_notify_work(struct swork_event *event)
+ {
+ int cpu = smp_processor_id();
+ struct pkg_device *pkgdev;
+@@ -348,9 +349,47 @@ static int pkg_thermal_notify(u64 msr_val)
+ }
+
+ spin_unlock_irqrestore(&pkg_temp_lock, flags);
++}
++
++#ifdef CONFIG_PREEMPT_RT_FULL
++static struct swork_event notify_work;
++
++static int pkg_thermal_notify_work_init(void)
++{
++ int err;
++
++ err = swork_get();
++ if (err)
++ return err;
++
++ INIT_SWORK(&notify_work, pkg_thermal_notify_work);
+ return 0;
+ }
+
++static void pkg_thermal_notify_work_cleanup(void)
++{
++ swork_put();
++}
++
++static int pkg_thermal_notify(u64 msr_val)
++{
++ swork_queue(&notify_work);
++ return 0;
++}
++
++#else /* !CONFIG_PREEMPT_RT_FULL */
++
++static int pkg_thermal_notify_work_init(void) { return 0; }
++
++static void pkg_thermal_notify_work_cleanup(void) { }
++
++static int pkg_thermal_notify(u64 msr_val)
++{
++ pkg_thermal_notify_work(NULL);
++ return 0;
++}
++#endif /* CONFIG_PREEMPT_RT_FULL */
++
+ static int pkg_temp_thermal_device_add(unsigned int cpu)
+ {
+ int pkgid = topology_logical_package_id(cpu);
+@@ -515,11 +554,16 @@ static int __init pkg_temp_thermal_init(void)
+ if (!x86_match_cpu(pkg_temp_thermal_ids))
+ return -ENODEV;
+
++ if (!pkg_thermal_notify_work_init())
++ return -ENODEV;
++
+ max_packages = topology_max_packages();
+ packages = kcalloc(max_packages, sizeof(struct pkg_device *),
+ GFP_KERNEL);
+- if (!packages)
+- return -ENOMEM;
++ if (!packages) {
++ ret = -ENOMEM;
++ goto err;
++ }
+
+ ret = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "thermal/x86_pkg:online",
+ pkg_thermal_cpu_online, pkg_thermal_cpu_offline);
+@@ -537,6 +581,7 @@ static int __init pkg_temp_thermal_init(void)
+ return 0;
+
+ err:
++ pkg_thermal_notify_work_cleanup();
+ kfree(packages);
+ return ret;
+ }
+@@ -550,6 +595,7 @@ static void __exit pkg_temp_thermal_exit(void)
+ cpuhp_remove_state(pkg_thermal_hp_state);
+ debugfs_remove_recursive(debugfs);
+ kfree(packages);
++ pkg_thermal_notify_work_cleanup();
+ }
+ module_exit(pkg_temp_thermal_exit)
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0175-x86-fpu-Disable-preemption-around-local_bh_disable.patch b/debian/patches-rt/0175-x86-fpu-Disable-preemption-around-local_bh_disable.patch
new file mode 100644
index 000000000..1aaf1d6d1
--- /dev/null
+++ b/debian/patches-rt/0175-x86-fpu-Disable-preemption-around-local_bh_disable.patch
@@ -0,0 +1,38 @@
+From b666ce0515d1940495c2bbb0ca0f32c1fea9ef38 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 11 Dec 2018 15:10:33 +0100
+Subject: [PATCH 175/347] x86/fpu: Disable preemption around local_bh_disable()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+__fpu__restore_sig() restores the content of the FPU state in the CPUs
+and in order to avoid concurency it disbles BH. On !RT it also disables
+preemption but on RT we can get preempted in BH.
+
+Add preempt_disable() while the FPU state is restored.
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/x86/kernel/fpu/signal.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/arch/x86/kernel/fpu/signal.c b/arch/x86/kernel/fpu/signal.c
+index 86a231338bbf..e5c8d5245289 100644
+--- a/arch/x86/kernel/fpu/signal.c
++++ b/arch/x86/kernel/fpu/signal.c
+@@ -351,10 +351,12 @@ static int __fpu__restore_sig(void __user *buf, void __user *buf_fx, int size)
+ sanitize_restored_xstate(tsk, &env, xfeatures, fx_only);
+ }
+
++ preempt_disable();
+ local_bh_disable();
+ fpu->initialized = 1;
+ fpu__restore(fpu);
+ local_bh_enable();
++ preempt_enable();
+
+ /* Failure is already handled */
+ return err;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0176-fs-epoll-Do-not-disable-preemption-on-RT.patch b/debian/patches-rt/0176-fs-epoll-Do-not-disable-preemption-on-RT.patch
new file mode 100644
index 000000000..bf911af26
--- /dev/null
+++ b/debian/patches-rt/0176-fs-epoll-Do-not-disable-preemption-on-RT.patch
@@ -0,0 +1,37 @@
+From 6507a3f1c5cfe4486efb5aada6114437dd6d099f Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Fri, 8 Jul 2011 16:35:35 +0200
+Subject: [PATCH 176/347] fs/epoll: Do not disable preemption on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+ep_call_nested() takes a sleeping lock so we can't disable preemption.
+The light version is enough since ep_call_nested() doesn't mind beeing
+invoked twice on the same CPU.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ fs/eventpoll.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/fs/eventpoll.c b/fs/eventpoll.c
+index a4a32b79e832..8569db5eceb0 100644
+--- a/fs/eventpoll.c
++++ b/fs/eventpoll.c
+@@ -569,12 +569,12 @@ static int ep_poll_wakeup_proc(void *priv, void *cookie, int call_nests)
+
+ static void ep_poll_safewake(wait_queue_head_t *wq)
+ {
+- int this_cpu = get_cpu();
++ int this_cpu = get_cpu_light();
+
+ ep_call_nested(&poll_safewake_ncalls, EP_MAX_NESTS,
+ ep_poll_wakeup_proc, NULL, wq, (void *) (long) this_cpu);
+
+- put_cpu();
++ put_cpu_light();
+ }
+
+ #else
+--
+2.36.1
+
diff --git a/debian/patches-rt/0177-mm-vmalloc-Another-preempt-disable-region-which-suck.patch b/debian/patches-rt/0177-mm-vmalloc-Another-preempt-disable-region-which-suck.patch
new file mode 100644
index 000000000..54171e08f
--- /dev/null
+++ b/debian/patches-rt/0177-mm-vmalloc-Another-preempt-disable-region-which-suck.patch
@@ -0,0 +1,73 @@
+From 1bb6422feb2c5d6c151b91f71dac97b33685af69 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Tue, 12 Jul 2011 11:39:36 +0200
+Subject: [PATCH 177/347] mm/vmalloc: Another preempt disable region which
+ sucks
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Avoid the preempt disable version of get_cpu_var(). The inner-lock should
+provide enough serialisation.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ mm/vmalloc.c | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/mm/vmalloc.c b/mm/vmalloc.c
+index 1817871b0239..aa06badc76f4 100644
+--- a/mm/vmalloc.c
++++ b/mm/vmalloc.c
+@@ -853,7 +853,7 @@ static void *new_vmap_block(unsigned int order, gfp_t gfp_mask)
+ struct vmap_block *vb;
+ struct vmap_area *va;
+ unsigned long vb_idx;
+- int node, err;
++ int node, err, cpu;
+ void *vaddr;
+
+ node = numa_node_id();
+@@ -896,11 +896,12 @@ static void *new_vmap_block(unsigned int order, gfp_t gfp_mask)
+ BUG_ON(err);
+ radix_tree_preload_end();
+
+- vbq = &get_cpu_var(vmap_block_queue);
++ cpu = get_cpu_light();
++ vbq = this_cpu_ptr(&vmap_block_queue);
+ spin_lock(&vbq->lock);
+ list_add_tail_rcu(&vb->free_list, &vbq->free);
+ spin_unlock(&vbq->lock);
+- put_cpu_var(vmap_block_queue);
++ put_cpu_light();
+
+ return vaddr;
+ }
+@@ -969,6 +970,7 @@ static void *vb_alloc(unsigned long size, gfp_t gfp_mask)
+ struct vmap_block *vb;
+ void *vaddr = NULL;
+ unsigned int order;
++ int cpu;
+
+ BUG_ON(offset_in_page(size));
+ BUG_ON(size > PAGE_SIZE*VMAP_MAX_ALLOC);
+@@ -983,7 +985,8 @@ static void *vb_alloc(unsigned long size, gfp_t gfp_mask)
+ order = get_order(size);
+
+ rcu_read_lock();
+- vbq = &get_cpu_var(vmap_block_queue);
++ cpu = get_cpu_light();
++ vbq = this_cpu_ptr(&vmap_block_queue);
+ list_for_each_entry_rcu(vb, &vbq->free, free_list) {
+ unsigned long pages_off;
+
+@@ -1006,7 +1009,7 @@ static void *vb_alloc(unsigned long size, gfp_t gfp_mask)
+ break;
+ }
+
+- put_cpu_var(vmap_block_queue);
++ put_cpu_light();
+ rcu_read_unlock();
+
+ /* Allocate new block if nothing was found */
+--
+2.36.1
+
diff --git a/debian/patches-rt/0178-block-mq-use-cpu_light.patch b/debian/patches-rt/0178-block-mq-use-cpu_light.patch
new file mode 100644
index 000000000..127e4aeb1
--- /dev/null
+++ b/debian/patches-rt/0178-block-mq-use-cpu_light.patch
@@ -0,0 +1,36 @@
+From 0d89852edf5dc2169659eb46bba1b5dc4f92444b Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 9 Apr 2014 10:37:23 +0200
+Subject: [PATCH 178/347] block: mq: use cpu_light()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+there is a might sleep splat because get_cpu() disables preemption and
+later we grab a lock. As a workaround for this we use get_cpu_light().
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ block/blk-mq.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/block/blk-mq.h b/block/blk-mq.h
+index 5ad9251627f8..5a96c97991b6 100644
+--- a/block/blk-mq.h
++++ b/block/blk-mq.h
+@@ -113,12 +113,12 @@ static inline struct blk_mq_ctx *__blk_mq_get_ctx(struct request_queue *q,
+ */
+ static inline struct blk_mq_ctx *blk_mq_get_ctx(struct request_queue *q)
+ {
+- return __blk_mq_get_ctx(q, get_cpu());
++ return __blk_mq_get_ctx(q, get_cpu_light());
+ }
+
+ static inline void blk_mq_put_ctx(struct blk_mq_ctx *ctx)
+ {
+- put_cpu();
++ put_cpu_light();
+ }
+
+ struct blk_mq_alloc_data {
+--
+2.36.1
+
diff --git a/debian/patches-rt/0179-block-mq-do-not-invoke-preempt_disable.patch b/debian/patches-rt/0179-block-mq-do-not-invoke-preempt_disable.patch
new file mode 100644
index 000000000..c6d47b2d4
--- /dev/null
+++ b/debian/patches-rt/0179-block-mq-do-not-invoke-preempt_disable.patch
@@ -0,0 +1,58 @@
+From 438290ebaac377f499a9c17e07ffa735ff6db1c2 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 14 Jul 2015 14:26:34 +0200
+Subject: [PATCH 179/347] block/mq: do not invoke preempt_disable()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+preempt_disable() and get_cpu() don't play well together with the sleeping
+locks it tries to allocate later.
+It seems to be enough to replace it with get_cpu_light() and migrate_disable().
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ block/blk-mq.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/block/blk-mq.c b/block/blk-mq.c
+index ffa97d90bde9..ea41d67e4db5 100644
+--- a/block/blk-mq.c
++++ b/block/blk-mq.c
+@@ -570,7 +570,7 @@ static void __blk_mq_complete_request(struct request *rq)
+ return;
+ }
+
+- cpu = get_cpu();
++ cpu = get_cpu_light();
+ if (!test_bit(QUEUE_FLAG_SAME_FORCE, &rq->q->queue_flags))
+ shared = cpus_share_cache(cpu, ctx->cpu);
+
+@@ -582,7 +582,7 @@ static void __blk_mq_complete_request(struct request *rq)
+ } else {
+ rq->q->softirq_done_fn(rq);
+ }
+- put_cpu();
++ put_cpu_light();
+ }
+
+ static void hctx_unlock(struct blk_mq_hw_ctx *hctx, int srcu_idx)
+@@ -1387,14 +1387,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)) {
+- int cpu = get_cpu();
++ int cpu = get_cpu_light();
+ if (cpumask_test_cpu(cpu, hctx->cpumask)) {
+ __blk_mq_run_hw_queue(hctx);
+- put_cpu();
++ put_cpu_light();
+ return;
+ }
+
+- put_cpu();
++ put_cpu_light();
+ }
+
+ kblockd_mod_delayed_work_on(blk_mq_hctx_next_cpu(hctx), &hctx->run_work,
+--
+2.36.1
+
diff --git a/debian/patches-rt/0180-block-mq-don-t-complete-requests-via-IPI.patch b/debian/patches-rt/0180-block-mq-don-t-complete-requests-via-IPI.patch
new file mode 100644
index 000000000..b29ad2ead
--- /dev/null
+++ b/debian/patches-rt/0180-block-mq-don-t-complete-requests-via-IPI.patch
@@ -0,0 +1,119 @@
+From 229760413c4138a40587def4f9420bdb432fa502 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 29 Jan 2015 15:10:08 +0100
+Subject: [PATCH 180/347] block/mq: don't complete requests via IPI
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The IPI runs in hardirq context and there are sleeping locks. This patch
+moves the completion into a workqueue.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ block/blk-core.c | 3 +++
+ block/blk-mq.c | 23 +++++++++++++++++++++++
+ include/linux/blk-mq.h | 2 +-
+ include/linux/blkdev.h | 3 +++
+ 4 files changed, 30 insertions(+), 1 deletion(-)
+
+diff --git a/block/blk-core.c b/block/blk-core.c
+index 80f3e729fdd4..461a93c08c14 100644
+--- a/block/blk-core.c
++++ b/block/blk-core.c
+@@ -189,6 +189,9 @@ void blk_rq_init(struct request_queue *q, struct request *rq)
+
+ INIT_LIST_HEAD(&rq->queuelist);
+ INIT_LIST_HEAD(&rq->timeout_list);
++#ifdef CONFIG_PREEMPT_RT_FULL
++ INIT_WORK(&rq->work, __blk_mq_complete_request_remote_work);
++#endif
+ rq->cpu = -1;
+ rq->q = q;
+ rq->__sector = (sector_t) -1;
+diff --git a/block/blk-mq.c b/block/blk-mq.c
+index ea41d67e4db5..0f8dcb68b8a8 100644
+--- a/block/blk-mq.c
++++ b/block/blk-mq.c
+@@ -320,6 +320,9 @@ static struct request *blk_mq_rq_ctx_init(struct blk_mq_alloc_data *data,
+ rq->extra_len = 0;
+ rq->__deadline = 0;
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++ INIT_WORK(&rq->work, __blk_mq_complete_request_remote_work);
++#endif
+ INIT_LIST_HEAD(&rq->timeout_list);
+ rq->timeout = 0;
+
+@@ -547,12 +550,24 @@ void blk_mq_end_request(struct request *rq, blk_status_t error)
+ }
+ EXPORT_SYMBOL(blk_mq_end_request);
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++
++void __blk_mq_complete_request_remote_work(struct work_struct *work)
++{
++ struct request *rq = container_of(work, struct request, work);
++
++ rq->q->softirq_done_fn(rq);
++}
++
++#else
++
+ static void __blk_mq_complete_request_remote(void *data)
+ {
+ struct request *rq = data;
+
+ rq->q->softirq_done_fn(rq);
+ }
++#endif
+
+ static void __blk_mq_complete_request(struct request *rq)
+ {
+@@ -575,10 +590,18 @@ static void __blk_mq_complete_request(struct request *rq)
+ shared = cpus_share_cache(cpu, ctx->cpu);
+
+ if (cpu != ctx->cpu && !shared && cpu_online(ctx->cpu)) {
++#ifdef CONFIG_PREEMPT_RT_FULL
++ /*
++ * We could force QUEUE_FLAG_SAME_FORCE then we would not get in
++ * here. But we could try to invoke it one the CPU like this.
++ */
++ schedule_work_on(ctx->cpu, &rq->work);
++#else
+ rq->csd.func = __blk_mq_complete_request_remote;
+ rq->csd.info = rq;
+ rq->csd.flags = 0;
+ smp_call_function_single_async(ctx->cpu, &rq->csd);
++#endif
+ } else {
+ rq->q->softirq_done_fn(rq);
+ }
+diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h
+index 2885dce1ad49..8dbb9ecf9993 100644
+--- a/include/linux/blk-mq.h
++++ b/include/linux/blk-mq.h
+@@ -256,7 +256,7 @@ static inline u16 blk_mq_unique_tag_to_tag(u32 unique_tag)
+ return unique_tag & BLK_MQ_UNIQUE_TAG_MASK;
+ }
+
+-
++void __blk_mq_complete_request_remote_work(struct work_struct *work);
+ int blk_mq_request_started(struct request *rq);
+ void blk_mq_start_request(struct request *rq);
+ void blk_mq_end_request(struct request *rq, blk_status_t error);
+diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
+index 56fe682d9beb..39d90bf9b5fa 100644
+--- a/include/linux/blkdev.h
++++ b/include/linux/blkdev.h
+@@ -157,6 +157,9 @@ enum mq_rq_state {
+ */
+ struct request {
+ struct request_queue *q;
++#ifdef CONFIG_PREEMPT_RT_FULL
++ struct work_struct work;
++#endif
+ struct blk_mq_ctx *mq_ctx;
+
+ int cpu;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0181-md-raid5-Make-raid5_percpu-handling-RT-aware.patch b/debian/patches-rt/0181-md-raid5-Make-raid5_percpu-handling-RT-aware.patch
new file mode 100644
index 000000000..e1f7c3fce
--- /dev/null
+++ b/debian/patches-rt/0181-md-raid5-Make-raid5_percpu-handling-RT-aware.patch
@@ -0,0 +1,77 @@
+From 17db75361d2ecbea4026acde76a744fdecc4c475 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Tue, 6 Apr 2010 16:51:31 +0200
+Subject: [PATCH 181/347] md: raid5: Make raid5_percpu handling RT aware
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+__raid_run_ops() disables preemption with get_cpu() around the access
+to the raid5_percpu variables. That causes scheduling while atomic
+spews on RT.
+
+Serialize the access to the percpu data with a lock and keep the code
+preemptible.
+
+Reported-by: Udo van den Heuvel <udovdh@xs4all.nl>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Tested-by: Udo van den Heuvel <udovdh@xs4all.nl>
+---
+ drivers/md/raid5.c | 8 +++++---
+ drivers/md/raid5.h | 1 +
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
+index c7bda4b0bced..8eb234732c9b 100644
+--- a/drivers/md/raid5.c
++++ b/drivers/md/raid5.c
+@@ -2069,8 +2069,9 @@ static void raid_run_ops(struct stripe_head *sh, unsigned long ops_request)
+ struct raid5_percpu *percpu;
+ unsigned long cpu;
+
+- cpu = get_cpu();
++ cpu = get_cpu_light();
+ percpu = per_cpu_ptr(conf->percpu, cpu);
++ spin_lock(&percpu->lock);
+ if (test_bit(STRIPE_OP_BIOFILL, &ops_request)) {
+ ops_run_biofill(sh);
+ overlap_clear++;
+@@ -2129,7 +2130,8 @@ static void raid_run_ops(struct stripe_head *sh, unsigned long ops_request)
+ if (test_and_clear_bit(R5_Overlap, &dev->flags))
+ wake_up(&sh->raid_conf->wait_for_overlap);
+ }
+- put_cpu();
++ spin_unlock(&percpu->lock);
++ put_cpu_light();
+ }
+
+ static void free_stripe(struct kmem_cache *sc, struct stripe_head *sh)
+@@ -6816,6 +6818,7 @@ static int raid456_cpu_up_prepare(unsigned int cpu, struct hlist_node *node)
+ __func__, cpu);
+ return -ENOMEM;
+ }
++ spin_lock_init(&per_cpu_ptr(conf->percpu, cpu)->lock);
+ return 0;
+ }
+
+@@ -6826,7 +6829,6 @@ static int raid5_alloc_percpu(struct r5conf *conf)
+ conf->percpu = alloc_percpu(struct raid5_percpu);
+ if (!conf->percpu)
+ return -ENOMEM;
+-
+ err = cpuhp_state_add_instance(CPUHP_MD_RAID5_PREPARE, &conf->node);
+ if (!err) {
+ conf->scribble_disks = max(conf->raid_disks,
+diff --git a/drivers/md/raid5.h b/drivers/md/raid5.h
+index 8474c224127b..a3bf907ab2af 100644
+--- a/drivers/md/raid5.h
++++ b/drivers/md/raid5.h
+@@ -637,6 +637,7 @@ struct r5conf {
+ int recovery_disabled;
+ /* per cpu variables */
+ struct raid5_percpu {
++ spinlock_t lock; /* Protection for -RT */
+ struct page *spare_page; /* Used when checking P/Q in raid6 */
+ struct flex_array *scribble; /* space for constructing buffer
+ * lists and performing address
+--
+2.36.1
+
diff --git a/debian/patches-rt/0182-rt-Introduce-cpu_chill.patch b/debian/patches-rt/0182-rt-Introduce-cpu_chill.patch
new file mode 100644
index 000000000..4980e8e7b
--- /dev/null
+++ b/debian/patches-rt/0182-rt-Introduce-cpu_chill.patch
@@ -0,0 +1,113 @@
+From 7c3cf849b26619430967542431dbe55c30629824 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 7 Mar 2012 20:51:03 +0100
+Subject: [PATCH 182/347] rt: Introduce cpu_chill()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Retry loops on RT might loop forever when the modifying side was
+preempted. Add cpu_chill() to replace cpu_relax(). cpu_chill()
+defaults to cpu_relax() for non RT. On RT it puts the looping task to
+sleep for a tick so the preempted task can make progress.
+
+Steven Rostedt changed it to use a hrtimer instead of msleep():
+|
+|Ulrich Obergfell pointed out that cpu_chill() calls msleep() which is woken
+|up by the ksoftirqd running the TIMER softirq. But as the cpu_chill() is
+|called from softirq context, it may block the ksoftirqd() from running, in
+|which case, it may never wake up the msleep() causing the deadlock.
+
++ bigeasy later changed to schedule_hrtimeout()
+|If a task calls cpu_chill() and gets woken up by a regular or spurious
+|wakeup and has a signal pending, then it exits the sleep loop in
+|do_nanosleep() and sets up the restart block. If restart->nanosleep.type is
+|not TI_NONE then this results in accessing a stale user pointer from a
+|previously interrupted syscall and a copy to user based on the stale
+|pointer or a BUG() when 'type' is not supported in nanosleep_copyout().
+
++ bigeasy: add PF_NOFREEZE:
+| [....] Waiting for /dev to be fully populated...
+| =====================================
+| [ BUG: udevd/229 still has locks held! ]
+| 3.12.11-rt17 #23 Not tainted
+| -------------------------------------
+| 1 lock held by udevd/229:
+| #0: (&type->i_mutex_dir_key#2){+.+.+.}, at: lookup_slow+0x28/0x98
+|
+| stack backtrace:
+| CPU: 0 PID: 229 Comm: udevd Not tainted 3.12.11-rt17 #23
+| (unwind_backtrace+0x0/0xf8) from (show_stack+0x10/0x14)
+| (show_stack+0x10/0x14) from (dump_stack+0x74/0xbc)
+| (dump_stack+0x74/0xbc) from (do_nanosleep+0x120/0x160)
+| (do_nanosleep+0x120/0x160) from (hrtimer_nanosleep+0x90/0x110)
+| (hrtimer_nanosleep+0x90/0x110) from (cpu_chill+0x30/0x38)
+| (cpu_chill+0x30/0x38) from (dentry_kill+0x158/0x1ec)
+| (dentry_kill+0x158/0x1ec) from (dput+0x74/0x15c)
+| (dput+0x74/0x15c) from (lookup_real+0x4c/0x50)
+| (lookup_real+0x4c/0x50) from (__lookup_hash+0x34/0x44)
+| (__lookup_hash+0x34/0x44) from (lookup_slow+0x38/0x98)
+| (lookup_slow+0x38/0x98) from (path_lookupat+0x208/0x7fc)
+| (path_lookupat+0x208/0x7fc) from (filename_lookup+0x20/0x60)
+| (filename_lookup+0x20/0x60) from (user_path_at_empty+0x50/0x7c)
+| (user_path_at_empty+0x50/0x7c) from (user_path_at+0x14/0x1c)
+| (user_path_at+0x14/0x1c) from (vfs_fstatat+0x48/0x94)
+| (vfs_fstatat+0x48/0x94) from (SyS_stat64+0x14/0x30)
+| (SyS_stat64+0x14/0x30) from (ret_fast_syscall+0x0/0x48)
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/delay.h | 6 ++++++
+ kernel/time/hrtimer.c | 21 +++++++++++++++++++++
+ 2 files changed, 27 insertions(+)
+
+diff --git a/include/linux/delay.h b/include/linux/delay.h
+index b78bab4395d8..7c4bc414a504 100644
+--- a/include/linux/delay.h
++++ b/include/linux/delay.h
+@@ -64,4 +64,10 @@ static inline void ssleep(unsigned int seconds)
+ msleep(seconds * 1000);
+ }
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++extern void cpu_chill(void);
++#else
++# define cpu_chill() cpu_relax()
++#endif
++
+ #endif /* defined(_LINUX_DELAY_H) */
+diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
+index 009001f06d33..0b94f54453ef 100644
+--- a/kernel/time/hrtimer.c
++++ b/kernel/time/hrtimer.c
+@@ -1961,6 +1961,27 @@ COMPAT_SYSCALL_DEFINE2(nanosleep, struct compat_timespec __user *, rqtp,
+ }
+ #endif
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++/*
++ * Sleep for 1 ms in hope whoever holds what we want will let it go.
++ */
++void cpu_chill(void)
++{
++ ktime_t chill_time;
++ unsigned int freeze_flag = current->flags & PF_NOFREEZE;
++
++ chill_time = ktime_set(0, NSEC_PER_MSEC);
++ set_current_state(TASK_UNINTERRUPTIBLE);
++ current->flags |= PF_NOFREEZE;
++ sleeping_lock_inc();
++ schedule_hrtimeout(&chill_time, HRTIMER_MODE_REL_HARD);
++ sleeping_lock_dec();
++ if (!freeze_flag)
++ current->flags &= ~PF_NOFREEZE;
++}
++EXPORT_SYMBOL(cpu_chill);
++#endif
++
+ /*
+ * Functions related to boot-time initialization:
+ */
+--
+2.36.1
+
diff --git a/debian/patches-rt/0183-hrtimer-Don-t-lose-state-in-cpu_chill.patch b/debian/patches-rt/0183-hrtimer-Don-t-lose-state-in-cpu_chill.patch
new file mode 100644
index 000000000..bb9264a1f
--- /dev/null
+++ b/debian/patches-rt/0183-hrtimer-Don-t-lose-state-in-cpu_chill.patch
@@ -0,0 +1,48 @@
+From f5a443f1a8355f1e2aca72d20e931d136b979ac9 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 19 Feb 2019 16:59:15 +0100
+Subject: [PATCH 183/347] hrtimer: Don't lose state in cpu_chill()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+In cpu_chill() the state is set to TASK_UNINTERRUPTIBLE and a timer is
+programmed. On return the state is always TASK_RUNNING which means we
+lose the state if it was something other than RUNNING. Also
+set_current_state() sets ->task_state_change to within cpu_chill() which
+is not expected.
+
+Save the task state on entry and restore it on return. Simply set the
+state in order to avoid updating ->task_state_change.
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/time/hrtimer.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
+index 0b94f54453ef..96e505abf939 100644
+--- a/kernel/time/hrtimer.c
++++ b/kernel/time/hrtimer.c
+@@ -1969,15 +1969,18 @@ void cpu_chill(void)
+ {
+ ktime_t chill_time;
+ unsigned int freeze_flag = current->flags & PF_NOFREEZE;
++ long saved_state;
+
++ saved_state = current->state;
+ chill_time = ktime_set(0, NSEC_PER_MSEC);
+- set_current_state(TASK_UNINTERRUPTIBLE);
++ __set_current_state_no_track(TASK_UNINTERRUPTIBLE);
+ current->flags |= PF_NOFREEZE;
+ sleeping_lock_inc();
+ schedule_hrtimeout(&chill_time, HRTIMER_MODE_REL_HARD);
+ sleeping_lock_dec();
+ if (!freeze_flag)
+ current->flags &= ~PF_NOFREEZE;
++ __set_current_state_no_track(saved_state);
+ }
+ EXPORT_SYMBOL(cpu_chill);
+ #endif
+--
+2.36.1
+
diff --git a/debian/patches-rt/0184-hrtimer-cpu_chill-save-task-state-in-saved_state.patch b/debian/patches-rt/0184-hrtimer-cpu_chill-save-task-state-in-saved_state.patch
new file mode 100644
index 000000000..6917a5783
--- /dev/null
+++ b/debian/patches-rt/0184-hrtimer-cpu_chill-save-task-state-in-saved_state.patch
@@ -0,0 +1,63 @@
+From 351c688963d6bfafec5cf05168e195effc77811c Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 26 Feb 2019 12:31:10 +0100
+Subject: [PATCH 184/347] hrtimer: cpu_chill(): save task state in
+ ->saved_state()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+In the previous change I saved the current task state on stack. This was
+bad because while the task is scheduled-out it might receive a wake-up.
+The wake up changes the task state and we must not destroy it.
+
+Save the task-state in ->saved_state under a PI-lock to unsure that
+state changes during are not missed while the task temporary scheduled
+out.
+
+Reported-by: Mike Galbraith <efault@gmx.de>
+Tested-by: Mike Galbraith <efault@gmx.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/time/hrtimer.c | 18 +++++++++++++-----
+ 1 file changed, 13 insertions(+), 5 deletions(-)
+
+diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
+index 96e505abf939..aa8f3177580a 100644
+--- a/kernel/time/hrtimer.c
++++ b/kernel/time/hrtimer.c
+@@ -1967,20 +1967,28 @@ COMPAT_SYSCALL_DEFINE2(nanosleep, struct compat_timespec __user *, rqtp,
+ */
+ void cpu_chill(void)
+ {
+- ktime_t chill_time;
+ unsigned int freeze_flag = current->flags & PF_NOFREEZE;
+- long saved_state;
++ struct task_struct *self = current;
++ ktime_t chill_time;
+
+- saved_state = current->state;
+- chill_time = ktime_set(0, NSEC_PER_MSEC);
++ raw_spin_lock_irq(&self->pi_lock);
++ self->saved_state = self->state;
+ __set_current_state_no_track(TASK_UNINTERRUPTIBLE);
++ raw_spin_unlock_irq(&self->pi_lock);
++
++ chill_time = ktime_set(0, NSEC_PER_MSEC);
++
+ current->flags |= PF_NOFREEZE;
+ sleeping_lock_inc();
+ schedule_hrtimeout(&chill_time, HRTIMER_MODE_REL_HARD);
+ sleeping_lock_dec();
+ if (!freeze_flag)
+ current->flags &= ~PF_NOFREEZE;
+- __set_current_state_no_track(saved_state);
++
++ raw_spin_lock_irq(&self->pi_lock);
++ __set_current_state_no_track(self->saved_state);
++ self->saved_state = TASK_RUNNING;
++ raw_spin_unlock_irq(&self->pi_lock);
+ }
+ EXPORT_SYMBOL(cpu_chill);
+ #endif
+--
+2.36.1
+
diff --git a/debian/patches-rt/0185-block-blk-mq-move-blk_queue_usage_counter_release-in.patch b/debian/patches-rt/0185-block-blk-mq-move-blk_queue_usage_counter_release-in.patch
new file mode 100644
index 000000000..802e53619
--- /dev/null
+++ b/debian/patches-rt/0185-block-blk-mq-move-blk_queue_usage_counter_release-in.patch
@@ -0,0 +1,120 @@
+From 3c180d9b5b9620bc5c18e0a7fb9f02059b333db3 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 13 Mar 2018 13:49:16 +0100
+Subject: [PATCH 185/347] block: blk-mq: move blk_queue_usage_counter_release()
+ into process context
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+| BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914
+| in_atomic(): 1, irqs_disabled(): 0, pid: 255, name: kworker/u257:6
+| 5 locks held by kworker/u257:6/255:
+| #0: ("events_unbound"){.+.+.+}, at: [<ffffffff8108edf1>] process_one_work+0x171/0x5e0
+| #1: ((&entry->work)){+.+.+.}, at: [<ffffffff8108edf1>] process_one_work+0x171/0x5e0
+| #2: (&shost->scan_mutex){+.+.+.}, at: [<ffffffffa000faa3>] __scsi_add_device+0xa3/0x130 [scsi_mod]
+| #3: (&set->tag_list_lock){+.+...}, at: [<ffffffff812f09fa>] blk_mq_init_queue+0x96a/0xa50
+| #4: (rcu_read_lock_sched){......}, at: [<ffffffff8132887d>] percpu_ref_kill_and_confirm+0x1d/0x120
+| Preemption disabled at:[<ffffffff812eff76>] blk_mq_freeze_queue_start+0x56/0x70
+|
+| CPU: 2 PID: 255 Comm: kworker/u257:6 Not tainted 3.18.7-rt0+ #1
+| Workqueue: events_unbound async_run_entry_fn
+| 0000000000000003 ffff8800bc29f998 ffffffff815b3a12 0000000000000000
+| 0000000000000000 ffff8800bc29f9b8 ffffffff8109aa16 ffff8800bc29fa28
+| ffff8800bc5d1bc8 ffff8800bc29f9e8 ffffffff815b8dd4 ffff880000000000
+| Call Trace:
+| [<ffffffff815b3a12>] dump_stack+0x4f/0x7c
+| [<ffffffff8109aa16>] __might_sleep+0x116/0x190
+| [<ffffffff815b8dd4>] rt_spin_lock+0x24/0x60
+| [<ffffffff810b6089>] __wake_up+0x29/0x60
+| [<ffffffff812ee06e>] blk_mq_usage_counter_release+0x1e/0x20
+| [<ffffffff81328966>] percpu_ref_kill_and_confirm+0x106/0x120
+| [<ffffffff812eff76>] blk_mq_freeze_queue_start+0x56/0x70
+| [<ffffffff812f0000>] blk_mq_update_tag_set_depth+0x40/0xd0
+| [<ffffffff812f0a1c>] blk_mq_init_queue+0x98c/0xa50
+| [<ffffffffa000dcf0>] scsi_mq_alloc_queue+0x20/0x60 [scsi_mod]
+| [<ffffffffa000ea35>] scsi_alloc_sdev+0x2f5/0x370 [scsi_mod]
+| [<ffffffffa000f494>] scsi_probe_and_add_lun+0x9e4/0xdd0 [scsi_mod]
+| [<ffffffffa000fb26>] __scsi_add_device+0x126/0x130 [scsi_mod]
+| [<ffffffffa013033f>] ata_scsi_scan_host+0xaf/0x200 [libata]
+| [<ffffffffa012b5b6>] async_port_probe+0x46/0x60 [libata]
+| [<ffffffff810978fb>] async_run_entry_fn+0x3b/0xf0
+| [<ffffffff8108ee81>] process_one_work+0x201/0x5e0
+
+percpu_ref_kill_and_confirm() invokes blk_mq_usage_counter_release() in
+a rcu-sched region. swait based wake queue can't be used due to
+wake_up_all() usage and disabled interrupts in !RT configs (as reported
+by Corey Minyard).
+The wq_has_sleeper() check has been suggested by Peter Zijlstra.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ block/blk-core.c | 14 +++++++++++++-
+ include/linux/blkdev.h | 2 ++
+ 2 files changed, 15 insertions(+), 1 deletion(-)
+
+diff --git a/block/blk-core.c b/block/blk-core.c
+index 461a93c08c14..02835970ef1e 100644
+--- a/block/blk-core.c
++++ b/block/blk-core.c
+@@ -973,12 +973,21 @@ void blk_queue_exit(struct request_queue *q)
+ percpu_ref_put(&q->q_usage_counter);
+ }
+
++static void blk_queue_usage_counter_release_swork(struct swork_event *sev)
++{
++ struct request_queue *q =
++ container_of(sev, struct request_queue, mq_pcpu_wake);
++
++ wake_up_all(&q->mq_freeze_wq);
++}
++
+ static void blk_queue_usage_counter_release(struct percpu_ref *ref)
+ {
+ struct request_queue *q =
+ container_of(ref, struct request_queue, q_usage_counter);
+
+- wake_up_all(&q->mq_freeze_wq);
++ if (wq_has_sleeper(&q->mq_freeze_wq))
++ swork_queue(&q->mq_pcpu_wake);
+ }
+
+ static void blk_rq_timed_out_timer(struct timer_list *t)
+@@ -1078,6 +1087,7 @@ struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id,
+ queue_flag_set_unlocked(QUEUE_FLAG_BYPASS, q);
+
+ init_waitqueue_head(&q->mq_freeze_wq);
++ INIT_SWORK(&q->mq_pcpu_wake, blk_queue_usage_counter_release_swork);
+
+ /*
+ * Init percpu_ref in atomic mode so that it's faster to shutdown.
+@@ -3967,6 +3977,8 @@ int __init blk_dev_init(void)
+ if (!kblockd_workqueue)
+ panic("Failed to create kblockd\n");
+
++ BUG_ON(swork_get());
++
+ request_cachep = kmem_cache_create("blkdev_requests",
+ sizeof(struct request), 0, SLAB_PANIC, NULL);
+
+diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
+index 39d90bf9b5fa..0313098a428d 100644
+--- a/include/linux/blkdev.h
++++ b/include/linux/blkdev.h
+@@ -27,6 +27,7 @@
+ #include <linux/percpu-refcount.h>
+ #include <linux/scatterlist.h>
+ #include <linux/blkzoned.h>
++#include <linux/swork.h>
+
+ struct module;
+ struct scsi_ioctl_command;
+@@ -664,6 +665,7 @@ struct request_queue {
+ #endif
+ struct rcu_head rcu_head;
+ wait_queue_head_t mq_freeze_wq;
++ struct swork_event mq_pcpu_wake;
+ struct percpu_ref q_usage_counter;
+ struct list_head all_q_node;
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0186-block-Use-cpu_chill-for-retry-loops.patch b/debian/patches-rt/0186-block-Use-cpu_chill-for-retry-loops.patch
new file mode 100644
index 000000000..1e0c86edd
--- /dev/null
+++ b/debian/patches-rt/0186-block-Use-cpu_chill-for-retry-loops.patch
@@ -0,0 +1,51 @@
+From f13997a9d1ad83528116e8daabc9b2247530ec63 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Thu, 20 Dec 2012 18:28:26 +0100
+Subject: [PATCH 186/347] block: Use cpu_chill() for retry loops
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Retry loops on RT might loop forever when the modifying side was
+preempted. Steven also observed a live lock when there was a
+concurrent priority boosting going on.
+
+Use cpu_chill() instead of cpu_relax() to let the system
+make progress.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ block/blk-ioc.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/block/blk-ioc.c b/block/blk-ioc.c
+index 4c810969c3e2..48089f5bcc11 100644
+--- a/block/blk-ioc.c
++++ b/block/blk-ioc.c
+@@ -9,6 +9,7 @@
+ #include <linux/blkdev.h>
+ #include <linux/slab.h>
+ #include <linux/sched/task.h>
++#include <linux/delay.h>
+
+ #include "blk.h"
+
+@@ -119,7 +120,7 @@ static void ioc_release_fn(struct work_struct *work)
+ spin_unlock(q->queue_lock);
+ } else {
+ spin_unlock_irqrestore(&ioc->lock, flags);
+- cpu_relax();
++ cpu_chill();
+ spin_lock_irqsave_nested(&ioc->lock, flags, 1);
+ }
+ }
+@@ -203,7 +204,7 @@ void put_io_context_active(struct io_context *ioc)
+ spin_unlock(icq->q->queue_lock);
+ } else {
+ spin_unlock_irqrestore(&ioc->lock, flags);
+- cpu_relax();
++ cpu_chill();
+ goto retry;
+ }
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0187-fs-dcache-Use-cpu_chill-in-trylock-loops.patch b/debian/patches-rt/0187-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
new file mode 100644
index 000000000..2df32b031
--- /dev/null
+++ b/debian/patches-rt/0187-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
@@ -0,0 +1,66 @@
+From d12da2a9ddfd2e6803327ef9856a63caedb4c653 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 7 Mar 2012 21:00:34 +0100
+Subject: [PATCH 187/347] fs: dcache: Use cpu_chill() in trylock loops
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+make progress.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ fs/autofs/expire.c | 3 ++-
+ fs/namespace.c | 8 ++++++--
+ 2 files changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/fs/autofs/expire.c b/fs/autofs/expire.c
+index 70e9afe589fb..1a6b88ad4fe0 100644
+--- a/fs/autofs/expire.c
++++ b/fs/autofs/expire.c
+@@ -8,6 +8,7 @@
+ * option, any later version, incorporated herein by reference.
+ */
+
++#include <linux/delay.h>
+ #include "autofs_i.h"
+
+ /* Check if a dentry can be expired */
+@@ -153,7 +154,7 @@ static struct dentry *get_next_positive_dentry(struct dentry *prev,
+ parent = p->d_parent;
+ if (!spin_trylock(&parent->d_lock)) {
+ spin_unlock(&p->d_lock);
+- cpu_relax();
++ cpu_chill();
+ goto relock;
+ }
+ spin_unlock(&p->d_lock);
+diff --git a/fs/namespace.c b/fs/namespace.c
+index 396ff1bcfdad..2c0ff275e978 100644
+--- a/fs/namespace.c
++++ b/fs/namespace.c
+@@ -14,6 +14,7 @@
+ #include <linux/mnt_namespace.h>
+ #include <linux/user_namespace.h>
+ #include <linux/namei.h>
++#include <linux/delay.h>
+ #include <linux/security.h>
+ #include <linux/cred.h>
+ #include <linux/idr.h>
+@@ -327,8 +328,11 @@ int __mnt_want_write(struct vfsmount *m)
+ * incremented count after it has set MNT_WRITE_HOLD.
+ */
+ smp_mb();
+- while (READ_ONCE(mnt->mnt.mnt_flags) & MNT_WRITE_HOLD)
+- cpu_relax();
++ while (READ_ONCE(mnt->mnt.mnt_flags) & MNT_WRITE_HOLD) {
++ preempt_enable();
++ cpu_chill();
++ preempt_disable();
++ }
+ /*
+ * 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.36.1
+
diff --git a/debian/patches-rt/0188-net-Use-cpu_chill-instead-of-cpu_relax.patch b/debian/patches-rt/0188-net-Use-cpu_chill-instead-of-cpu_relax.patch
new file mode 100644
index 000000000..eace39fdc
--- /dev/null
+++ b/debian/patches-rt/0188-net-Use-cpu_chill-instead-of-cpu_relax.patch
@@ -0,0 +1,70 @@
+From 6113e8d5c66aab6927b9d8656e1c5b1e8d7e35fb Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 7 Mar 2012 21:10:04 +0100
+Subject: [PATCH 188/347] net: Use cpu_chill() instead of cpu_relax()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+make progress.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ net/packet/af_packet.c | 5 +++--
+ net/rds/ib_rdma.c | 3 ++-
+ 2 files changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
+index f654f79e3310..31ce7d1fbee1 100644
+--- a/net/packet/af_packet.c
++++ b/net/packet/af_packet.c
+@@ -63,6 +63,7 @@
+ #include <linux/if_packet.h>
+ #include <linux/wireless.h>
+ #include <linux/kernel.h>
++#include <linux/delay.h>
+ #include <linux/kmod.h>
+ #include <linux/slab.h>
+ #include <linux/vmalloc.h>
+@@ -668,7 +669,7 @@ static void prb_retire_rx_blk_timer_expired(struct timer_list *t)
+ if (BLOCK_NUM_PKTS(pbd)) {
+ while (atomic_read(&pkc->blk_fill_in_prog)) {
+ /* Waiting for skb_copy_bits to finish... */
+- cpu_relax();
++ cpu_chill();
+ }
+ }
+
+@@ -930,7 +931,7 @@ static void prb_retire_current_block(struct tpacket_kbdq_core *pkc,
+ if (!(status & TP_STATUS_BLK_TMO)) {
+ while (atomic_read(&pkc->blk_fill_in_prog)) {
+ /* Waiting for skb_copy_bits to finish... */
+- cpu_relax();
++ cpu_chill();
+ }
+ }
+ prb_close_block(pkc, pbd, po, status);
+diff --git a/net/rds/ib_rdma.c b/net/rds/ib_rdma.c
+index 0b347f46b2f4..f395f06031bc 100644
+--- a/net/rds/ib_rdma.c
++++ b/net/rds/ib_rdma.c
+@@ -34,6 +34,7 @@
+ #include <linux/slab.h>
+ #include <linux/rculist.h>
+ #include <linux/llist.h>
++#include <linux/delay.h>
+
+ #include "rds_single_path.h"
+ #include "ib_mr.h"
+@@ -222,7 +223,7 @@ static inline void wait_clean_list_grace(void)
+ for_each_online_cpu(cpu) {
+ flag = &per_cpu(clean_list_grace, cpu);
+ while (test_bit(CLEAN_LIST_BUSY_BIT, flag))
+- cpu_relax();
++ cpu_chill();
+ }
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0189-fs-dcache-use-swait_queue-instead-of-waitqueue.patch b/debian/patches-rt/0189-fs-dcache-use-swait_queue-instead-of-waitqueue.patch
new file mode 100644
index 000000000..70a3b56d9
--- /dev/null
+++ b/debian/patches-rt/0189-fs-dcache-use-swait_queue-instead-of-waitqueue.patch
@@ -0,0 +1,241 @@
+From c6039e4946aa32ae6b790148a5a7357380e4a998 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 14 Sep 2016 14:35:49 +0200
+Subject: [PATCH 189/347] fs/dcache: use swait_queue instead of waitqueue
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ fs/cifs/readdir.c | 2 +-
+ fs/dcache.c | 27 +++++++++++++++------------
+ fs/fuse/dir.c | 2 +-
+ fs/namei.c | 4 ++--
+ fs/nfs/dir.c | 4 ++--
+ fs/nfs/unlink.c | 4 ++--
+ fs/proc/base.c | 2 +-
+ fs/proc/proc_sysctl.c | 2 +-
+ include/linux/dcache.h | 4 ++--
+ include/linux/nfs_xdr.h | 2 +-
+ kernel/sched/swait.c | 1 +
+ 11 files changed, 29 insertions(+), 25 deletions(-)
+
+diff --git a/fs/cifs/readdir.c b/fs/cifs/readdir.c
+index 3925a7bfc74d..33f7723fb83e 100644
+--- a/fs/cifs/readdir.c
++++ b/fs/cifs/readdir.c
+@@ -80,7 +80,7 @@ cifs_prime_dcache(struct dentry *parent, struct qstr *name,
+ struct inode *inode;
+ struct super_block *sb = parent->d_sb;
+ struct cifs_sb_info *cifs_sb = CIFS_SB(sb);
+- DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq);
++ DECLARE_SWAIT_QUEUE_HEAD_ONSTACK(wq);
+
+ cifs_dbg(FYI, "%s: for %s\n", __func__, name->name);
+
+diff --git a/fs/dcache.c b/fs/dcache.c
+index 1ae163d54925..6e1c0b4c04f4 100644
+--- a/fs/dcache.c
++++ b/fs/dcache.c
+@@ -2423,21 +2423,24 @@ static inline void end_dir_add(struct inode *dir, unsigned n)
+
+ static void d_wait_lookup(struct dentry *dentry)
+ {
+- if (d_in_lookup(dentry)) {
+- DECLARE_WAITQUEUE(wait, current);
+- add_wait_queue(dentry->d_wait, &wait);
+- do {
+- set_current_state(TASK_UNINTERRUPTIBLE);
+- spin_unlock(&dentry->d_lock);
+- schedule();
+- spin_lock(&dentry->d_lock);
+- } while (d_in_lookup(dentry));
+- }
++ struct swait_queue __wait;
++
++ if (!d_in_lookup(dentry))
++ return;
++
++ INIT_LIST_HEAD(&__wait.task_list);
++ do {
++ prepare_to_swait_exclusive(dentry->d_wait, &__wait, TASK_UNINTERRUPTIBLE);
++ spin_unlock(&dentry->d_lock);
++ schedule();
++ spin_lock(&dentry->d_lock);
++ } while (d_in_lookup(dentry));
++ finish_swait(dentry->d_wait, &__wait);
+ }
+
+ struct dentry *d_alloc_parallel(struct dentry *parent,
+ const struct qstr *name,
+- wait_queue_head_t *wq)
++ struct swait_queue_head *wq)
+ {
+ unsigned int hash = name->hash;
+ struct hlist_bl_head *b = in_lookup_hash(parent, hash);
+@@ -2552,7 +2555,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);
+- wake_up_all(dentry->d_wait);
++ swake_up_all(dentry->d_wait);
+ dentry->d_wait = NULL;
+ hlist_bl_unlock(b);
+ INIT_HLIST_NODE(&dentry->d_u.d_alias);
+diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
+index 6098e0c7f87b..9ce28840684a 100644
+--- a/fs/fuse/dir.c
++++ b/fs/fuse/dir.c
+@@ -1234,7 +1234,7 @@ static int fuse_direntplus_link(struct file *file,
+ struct inode *dir = d_inode(parent);
+ struct fuse_conn *fc;
+ struct inode *inode;
+- DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq);
++ DECLARE_SWAIT_QUEUE_HEAD_ONSTACK(wq);
+
+ if (!o->nodeid) {
+ /*
+diff --git a/fs/namei.c b/fs/namei.c
+index 327844fedf3d..5114c8111807 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -1646,7 +1646,7 @@ static struct dentry *__lookup_slow(const struct qstr *name,
+ {
+ struct dentry *dentry, *old;
+ struct inode *inode = dir->d_inode;
+- DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq);
++ DECLARE_SWAIT_QUEUE_HEAD_ONSTACK(wq);
+
+ /* Don't go there if it's already dead */
+ if (unlikely(IS_DEADDIR(inode)))
+@@ -3136,7 +3136,7 @@ static int lookup_open(struct nameidata *nd, struct path *path,
+ struct dentry *dentry;
+ int error, create_error = 0;
+ umode_t mode = op->mode;
+- DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq);
++ DECLARE_SWAIT_QUEUE_HEAD_ONSTACK(wq);
+
+ if (unlikely(IS_DEADDIR(dir_inode)))
+ return -ENOENT;
+diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
+index 4999bd148491..d8376dae3f7d 100644
+--- a/fs/nfs/dir.c
++++ b/fs/nfs/dir.c
+@@ -457,7 +457,7 @@ static
+ void nfs_prime_dcache(struct dentry *parent, struct nfs_entry *entry)
+ {
+ struct qstr filename = QSTR_INIT(entry->name, entry->len);
+- DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq);
++ DECLARE_SWAIT_QUEUE_HEAD_ONSTACK(wq);
+ struct dentry *dentry;
+ struct dentry *alias;
+ struct inode *dir = d_inode(parent);
+@@ -1519,7 +1519,7 @@ int nfs_atomic_open(struct inode *dir, struct dentry *dentry,
+ struct file *file, unsigned open_flags,
+ umode_t mode)
+ {
+- DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq);
++ DECLARE_SWAIT_QUEUE_HEAD_ONSTACK(wq);
+ struct nfs_open_context *ctx;
+ struct dentry *res;
+ struct iattr attr = { .ia_valid = ATTR_OPEN };
+diff --git a/fs/nfs/unlink.c b/fs/nfs/unlink.c
+index ce9100b5604d..839bfa76f41e 100644
+--- a/fs/nfs/unlink.c
++++ b/fs/nfs/unlink.c
+@@ -13,7 +13,7 @@
+ #include <linux/sunrpc/clnt.h>
+ #include <linux/nfs_fs.h>
+ #include <linux/sched.h>
+-#include <linux/wait.h>
++#include <linux/swait.h>
+ #include <linux/namei.h>
+ #include <linux/fsnotify.h>
+
+@@ -206,7 +206,7 @@ nfs_async_unlink(struct dentry *dentry, const struct qstr *name)
+ goto out_free_name;
+ }
+ data->res.dir_attr = &data->dir_attr;
+- init_waitqueue_head(&data->wq);
++ init_swait_queue_head(&data->wq);
+
+ status = -EBUSY;
+ spin_lock(&dentry->d_lock);
+diff --git a/fs/proc/base.c b/fs/proc/base.c
+index e3f10c110b74..accc230079bb 100644
+--- a/fs/proc/base.c
++++ b/fs/proc/base.c
+@@ -1889,7 +1889,7 @@ bool proc_fill_cache(struct file *file, struct dir_context *ctx,
+
+ child = d_hash_and_lookup(dir, &qname);
+ if (!child) {
+- DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq);
++ DECLARE_SWAIT_QUEUE_HEAD_ONSTACK(wq);
+ child = d_alloc_parallel(dir, &qname, &wq);
+ if (IS_ERR(child))
+ goto end_instantiate;
+diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
+index c95f32b83a94..75f500cb7e74 100644
+--- a/fs/proc/proc_sysctl.c
++++ b/fs/proc/proc_sysctl.c
+@@ -681,7 +681,7 @@ static bool proc_sys_fill_cache(struct file *file,
+
+ child = d_lookup(dir, &qname);
+ if (!child) {
+- DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq);
++ DECLARE_SWAIT_QUEUE_HEAD_ONSTACK(wq);
+ child = d_alloc_parallel(dir, &qname, &wq);
+ if (IS_ERR(child))
+ return false;
+diff --git a/include/linux/dcache.h b/include/linux/dcache.h
+index 02b1b40fea5b..50cbde278301 100644
+--- a/include/linux/dcache.h
++++ b/include/linux/dcache.h
+@@ -105,7 +105,7 @@ struct dentry {
+
+ union {
+ struct list_head d_lru; /* LRU list */
+- wait_queue_head_t *d_wait; /* in-lookup ones only */
++ struct swait_queue_head *d_wait; /* in-lookup ones only */
+ };
+ struct list_head d_child; /* child of parent list */
+ struct list_head d_subdirs; /* our children */
+@@ -236,7 +236,7 @@ extern struct dentry * d_alloc(struct dentry *, const struct qstr *);
+ extern struct dentry * d_alloc_anon(struct super_block *);
+ extern struct dentry * d_alloc_pseudo(struct super_block *, const struct qstr *);
+ extern struct dentry * d_alloc_parallel(struct dentry *, const struct qstr *,
+- wait_queue_head_t *);
++ struct swait_queue_head *);
+ extern struct dentry * d_splice_alias(struct inode *, struct dentry *);
+ 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 cab24a127feb..73b0d19ef0d9 100644
+--- a/include/linux/nfs_xdr.h
++++ b/include/linux/nfs_xdr.h
+@@ -1549,7 +1549,7 @@ struct nfs_unlinkdata {
+ struct nfs_removeargs args;
+ struct nfs_removeres res;
+ struct dentry *dentry;
+- wait_queue_head_t wq;
++ struct swait_queue_head wq;
+ struct rpc_cred *cred;
+ struct nfs_fattr dir_attr;
+ long timeout;
+diff --git a/kernel/sched/swait.c b/kernel/sched/swait.c
+index c7cb30cdd1b7..119a56d7f739 100644
+--- a/kernel/sched/swait.c
++++ b/kernel/sched/swait.c
+@@ -70,6 +70,7 @@ void swake_up_all(struct swait_queue_head *q)
+ struct swait_queue *curr;
+ LIST_HEAD(tmp);
+
++ WARN_ON(irqs_disabled());
+ raw_spin_lock_irq(&q->lock);
+ list_splice_init(&q->task_list, &tmp);
+ while (!list_empty(&tmp)) {
+--
+2.36.1
+
diff --git a/debian/patches-rt/0190-workqueue-Use-normal-rcu.patch b/debian/patches-rt/0190-workqueue-Use-normal-rcu.patch
new file mode 100644
index 000000000..ca3010992
--- /dev/null
+++ b/debian/patches-rt/0190-workqueue-Use-normal-rcu.patch
@@ -0,0 +1,360 @@
+From 8a58c9e05c039f23a1192df034ad9f56961ba52d Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 24 Jul 2013 15:26:54 +0200
+Subject: [PATCH 190/347] workqueue: Use normal rcu
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+There is no need for sched_rcu. The undocumented reason why sched_rcu
+is used is to avoid a few explicit rcu_read_lock()/unlock() pairs by
+abusing the fact that sched_rcu reader side critical sections are also
+protected by preempt or irq disabled regions.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ kernel/workqueue.c | 95 +++++++++++++++++++++++++---------------------
+ 1 file changed, 52 insertions(+), 43 deletions(-)
+
+diff --git a/kernel/workqueue.c b/kernel/workqueue.c
+index b1bb6cb5802e..3e2f67b77ab8 100644
+--- a/kernel/workqueue.c
++++ b/kernel/workqueue.c
+@@ -128,7 +128,7 @@ enum {
+ *
+ * PL: wq_pool_mutex protected.
+ *
+- * PR: wq_pool_mutex protected for writes. Sched-RCU protected for reads.
++ * PR: wq_pool_mutex protected for writes. RCU protected for reads.
+ *
+ * PW: wq_pool_mutex and wq->mutex protected for writes. Either for reads.
+ *
+@@ -137,7 +137,7 @@ enum {
+ *
+ * WQ: wq->mutex protected.
+ *
+- * WR: wq->mutex protected for writes. Sched-RCU protected for reads.
++ * WR: wq->mutex protected for writes. RCU protected for reads.
+ *
+ * MD: wq_mayday_lock protected.
+ */
+@@ -184,7 +184,7 @@ struct worker_pool {
+ atomic_t nr_running ____cacheline_aligned_in_smp;
+
+ /*
+- * Destruction of pool is sched-RCU protected to allow dereferences
++ * Destruction of pool is RCU protected to allow dereferences
+ * from get_work_pool().
+ */
+ struct rcu_head rcu;
+@@ -213,7 +213,7 @@ struct pool_workqueue {
+ /*
+ * Release of unbound pwq is punted to system_wq. See put_pwq()
+ * and pwq_unbound_release_workfn() for details. pool_workqueue
+- * itself is also sched-RCU protected so that the first pwq can be
++ * itself is also RCU protected so that the first pwq can be
+ * determined without grabbing wq->mutex.
+ */
+ struct work_struct unbound_release_work;
+@@ -358,20 +358,20 @@ static void workqueue_sysfs_unregister(struct workqueue_struct *wq);
+ #include <trace/events/workqueue.h>
+
+ #define assert_rcu_or_pool_mutex() \
+- RCU_LOCKDEP_WARN(!rcu_read_lock_sched_held() && \
++ RCU_LOCKDEP_WARN(!rcu_read_lock_held() && \
+ !lockdep_is_held(&wq_pool_mutex), \
+- "sched RCU or wq_pool_mutex should be held")
++ "RCU or wq_pool_mutex should be held")
+
+ #define assert_rcu_or_wq_mutex(wq) \
+- RCU_LOCKDEP_WARN(!rcu_read_lock_sched_held() && \
++ RCU_LOCKDEP_WARN(!rcu_read_lock_held() && \
+ !lockdep_is_held(&wq->mutex), \
+- "sched RCU or wq->mutex should be held")
++ "RCU or wq->mutex should be held")
+
+ #define assert_rcu_or_wq_mutex_or_pool_mutex(wq) \
+- RCU_LOCKDEP_WARN(!rcu_read_lock_sched_held() && \
++ RCU_LOCKDEP_WARN(!rcu_read_lock_held() && \
+ !lockdep_is_held(&wq->mutex) && \
+ !lockdep_is_held(&wq_pool_mutex), \
+- "sched RCU, wq->mutex or wq_pool_mutex should be held")
++ "RCU, wq->mutex or wq_pool_mutex should be held")
+
+ #define for_each_cpu_worker_pool(pool, cpu) \
+ for ((pool) = &per_cpu(cpu_worker_pools, cpu)[0]; \
+@@ -383,7 +383,7 @@ static void workqueue_sysfs_unregister(struct workqueue_struct *wq);
+ * @pool: iteration cursor
+ * @pi: integer used for iteration
+ *
+- * This must be called either with wq_pool_mutex held or sched RCU read
++ * This must be called either with wq_pool_mutex held or RCU read
+ * locked. If the pool needs to be used beyond the locking in effect, the
+ * caller is responsible for guaranteeing that the pool stays online.
+ *
+@@ -415,7 +415,7 @@ static void workqueue_sysfs_unregister(struct workqueue_struct *wq);
+ * @pwq: iteration cursor
+ * @wq: the target workqueue
+ *
+- * This must be called either with wq->mutex held or sched RCU read locked.
++ * This must be called either with wq->mutex held or RCU read locked.
+ * If the pwq needs to be used beyond the locking in effect, the caller is
+ * responsible for guaranteeing that the pwq stays online.
+ *
+@@ -551,7 +551,7 @@ static int worker_pool_assign_id(struct worker_pool *pool)
+ * @wq: the target workqueue
+ * @node: the node ID
+ *
+- * This must be called with any of wq_pool_mutex, wq->mutex or sched RCU
++ * This must be called with any of wq_pool_mutex, wq->mutex or RCU
+ * read locked.
+ * If the pwq needs to be used beyond the locking in effect, the caller is
+ * responsible for guaranteeing that the pwq stays online.
+@@ -695,8 +695,8 @@ static struct pool_workqueue *get_work_pwq(struct work_struct *work)
+ * @work: the work item of interest
+ *
+ * Pools are created and destroyed under wq_pool_mutex, and allows read
+- * access under sched-RCU read lock. As such, this function should be
+- * called under wq_pool_mutex or with preemption disabled.
++ * access under RCU read lock. As such, this function should be
++ * called under wq_pool_mutex or inside of a rcu_read_lock() region.
+ *
+ * All fields of the returned pool are accessible as long as the above
+ * mentioned locking is in effect. If the returned pool needs to be used
+@@ -1101,7 +1101,7 @@ static void put_pwq_unlocked(struct pool_workqueue *pwq)
+ {
+ if (pwq) {
+ /*
+- * As both pwqs and pools are sched-RCU protected, the
++ * As both pwqs and pools are RCU protected, the
+ * following lock operations are safe.
+ */
+ spin_lock_irq(&pwq->pool->lock);
+@@ -1229,6 +1229,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+ if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work)))
+ return 0;
+
++ rcu_read_lock();
+ /*
+ * The queueing is in progress, or it is already queued. Try to
+ * steal it from ->worklist without clearing WORK_STRUCT_PENDING.
+@@ -1267,10 +1268,12 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+ set_work_pool_and_keep_pending(work, pool->id);
+
+ spin_unlock(&pool->lock);
++ rcu_read_unlock();
+ return 1;
+ }
+ spin_unlock(&pool->lock);
+ fail:
++ rcu_read_unlock();
+ local_irq_restore(*flags);
+ if (work_is_canceling(work))
+ return -ENOENT;
+@@ -1383,6 +1386,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+ if (unlikely(wq->flags & __WQ_DRAINING) &&
+ WARN_ON_ONCE(!is_chained_work(wq)))
+ return;
++ rcu_read_lock();
+ retry:
+ /* pwq which will be used unless @work is executing elsewhere */
+ if (wq->flags & WQ_UNBOUND) {
+@@ -1441,10 +1445,8 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+ /* pwq determined, queue */
+ trace_workqueue_queue_work(req_cpu, pwq, work);
+
+- if (WARN_ON(!list_empty(&work->entry))) {
+- spin_unlock(&pwq->pool->lock);
+- return;
+- }
++ if (WARN_ON(!list_empty(&work->entry)))
++ goto out;
+
+ pwq->nr_in_flight[pwq->work_color]++;
+ work_flags = work_color_to_flags(pwq->work_color);
+@@ -1463,7 +1465,9 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+ debug_work_activate(work);
+ insert_work(pwq, work, worklist, work_flags);
+
++out:
+ spin_unlock(&pwq->pool->lock);
++ rcu_read_unlock();
+ }
+
+ /**
+@@ -2861,14 +2865,14 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr,
+
+ might_sleep();
+
+- local_irq_disable();
++ rcu_read_lock();
+ pool = get_work_pool(work);
+ if (!pool) {
+- local_irq_enable();
++ rcu_read_unlock();
+ return false;
+ }
+
+- spin_lock(&pool->lock);
++ spin_lock_irq(&pool->lock);
+ /* see the comment in try_to_grab_pending() with the same code */
+ pwq = get_work_pwq(work);
+ if (pwq) {
+@@ -2900,10 +2904,11 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr,
+ lock_map_acquire(&pwq->wq->lockdep_map);
+ lock_map_release(&pwq->wq->lockdep_map);
+ }
+-
++ rcu_read_unlock();
+ return true;
+ already_gone:
+ spin_unlock_irq(&pool->lock);
++ rcu_read_unlock();
+ return false;
+ }
+
+@@ -3350,7 +3355,7 @@ static void rcu_free_pool(struct rcu_head *rcu)
+ * put_unbound_pool - put a worker_pool
+ * @pool: worker_pool to put
+ *
+- * Put @pool. If its refcnt reaches zero, it gets destroyed in sched-RCU
++ * Put @pool. If its refcnt reaches zero, it gets destroyed in RCU
+ * safe manner. get_unbound_pool() calls this function on its failure path
+ * and this function should be able to release pools which went through,
+ * successfully or not, init_worker_pool().
+@@ -3404,8 +3409,8 @@ static void put_unbound_pool(struct worker_pool *pool)
+ del_timer_sync(&pool->idle_timer);
+ del_timer_sync(&pool->mayday_timer);
+
+- /* sched-RCU protected to allow dereferences from get_work_pool() */
+- call_rcu_sched(&pool->rcu, rcu_free_pool);
++ /* RCU protected to allow dereferences from get_work_pool() */
++ call_rcu(&pool->rcu, rcu_free_pool);
+ }
+
+ /**
+@@ -3518,14 +3523,14 @@ static void pwq_unbound_release_workfn(struct work_struct *work)
+ put_unbound_pool(pool);
+ mutex_unlock(&wq_pool_mutex);
+
+- call_rcu_sched(&pwq->rcu, rcu_free_pwq);
++ call_rcu(&pwq->rcu, rcu_free_pwq);
+
+ /*
+ * If we're the last pwq going away, @wq is already dead and no one
+ * is gonna access it anymore. Schedule RCU free.
+ */
+ if (is_last)
+- call_rcu_sched(&wq->rcu, rcu_free_wq);
++ call_rcu(&wq->rcu, rcu_free_wq);
+ }
+
+ /**
+@@ -4232,7 +4237,7 @@ void destroy_workqueue(struct workqueue_struct *wq)
+ * The base ref is never dropped on per-cpu pwqs. Directly
+ * schedule RCU free.
+ */
+- call_rcu_sched(&wq->rcu, rcu_free_wq);
++ call_rcu(&wq->rcu, rcu_free_wq);
+ } else {
+ /*
+ * We're the sole accessor of @wq at this point. Directly
+@@ -4342,7 +4347,8 @@ bool workqueue_congested(int cpu, struct workqueue_struct *wq)
+ struct pool_workqueue *pwq;
+ bool ret;
+
+- rcu_read_lock_sched();
++ rcu_read_lock();
++ preempt_disable();
+
+ if (cpu == WORK_CPU_UNBOUND)
+ cpu = smp_processor_id();
+@@ -4353,7 +4359,8 @@ bool workqueue_congested(int cpu, struct workqueue_struct *wq)
+ pwq = unbound_pwq_by_node(wq, cpu_to_node(cpu));
+
+ ret = !list_empty(&pwq->delayed_works);
+- rcu_read_unlock_sched();
++ preempt_enable();
++ rcu_read_unlock();
+
+ return ret;
+ }
+@@ -4379,15 +4386,15 @@ unsigned int work_busy(struct work_struct *work)
+ if (work_pending(work))
+ ret |= WORK_BUSY_PENDING;
+
+- local_irq_save(flags);
++ rcu_read_lock();
+ pool = get_work_pool(work);
+ if (pool) {
+- spin_lock(&pool->lock);
++ spin_lock_irqsave(&pool->lock, flags);
+ if (find_worker_executing_work(pool, work))
+ ret |= WORK_BUSY_RUNNING;
+- spin_unlock(&pool->lock);
++ spin_unlock_irqrestore(&pool->lock, flags);
+ }
+- local_irq_restore(flags);
++ rcu_read_unlock();
+
+ return ret;
+ }
+@@ -4572,7 +4579,7 @@ void show_workqueue_state(void)
+ unsigned long flags;
+ int pi;
+
+- rcu_read_lock_sched();
++ rcu_read_lock();
+
+ pr_info("Showing busy workqueues and worker pools:\n");
+
+@@ -4637,7 +4644,7 @@ void show_workqueue_state(void)
+ touch_nmi_watchdog();
+ }
+
+- rcu_read_unlock_sched();
++ rcu_read_unlock();
+ }
+
+ /* used to show worker information through /proc/PID/{comm,stat,status} */
+@@ -5024,16 +5031,16 @@ bool freeze_workqueues_busy(void)
+ * nr_active is monotonically decreasing. It's safe
+ * to peek without lock.
+ */
+- rcu_read_lock_sched();
++ rcu_read_lock();
+ for_each_pwq(pwq, wq) {
+ WARN_ON_ONCE(pwq->nr_active < 0);
+ if (pwq->nr_active) {
+ busy = true;
+- rcu_read_unlock_sched();
++ rcu_read_unlock();
+ goto out_unlock;
+ }
+ }
+- rcu_read_unlock_sched();
++ rcu_read_unlock();
+ }
+ out_unlock:
+ mutex_unlock(&wq_pool_mutex);
+@@ -5235,7 +5242,8 @@ static ssize_t wq_pool_ids_show(struct device *dev,
+ const char *delim = "";
+ int node, written = 0;
+
+- rcu_read_lock_sched();
++ get_online_cpus();
++ rcu_read_lock();
+ for_each_node(node) {
+ written += scnprintf(buf + written, PAGE_SIZE - written,
+ "%s%d:%d", delim, node,
+@@ -5243,7 +5251,8 @@ static ssize_t wq_pool_ids_show(struct device *dev,
+ delim = " ";
+ }
+ written += scnprintf(buf + written, PAGE_SIZE - written, "\n");
+- rcu_read_unlock_sched();
++ rcu_read_unlock();
++ put_online_cpus();
+
+ return written;
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0191-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch b/debian/patches-rt/0191-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch
new file mode 100644
index 000000000..d77219e80
--- /dev/null
+++ b/debian/patches-rt/0191-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch
@@ -0,0 +1,186 @@
+From c05bd3f09ed30bc24aa6a2fe5cfc0abd2fe883b3 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Sun, 17 Jul 2011 21:42:26 +0200
+Subject: [PATCH 191/347] workqueue: Use local irq lock instead of irq disable
+ regions
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Use a local_irq_lock as a replacement for irq off regions. We keep the
+semantic of irq-off in regard to the pool->lock and remain preemptible.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ kernel/workqueue.c | 45 ++++++++++++++++++++++++++++++---------------
+ 1 file changed, 30 insertions(+), 15 deletions(-)
+
+diff --git a/kernel/workqueue.c b/kernel/workqueue.c
+index 3e2f67b77ab8..2b4c052c51b3 100644
+--- a/kernel/workqueue.c
++++ b/kernel/workqueue.c
+@@ -50,6 +50,7 @@
+ #include <linux/sched/isolation.h>
+ #include <linux/nmi.h>
+ #include <linux/kvm_para.h>
++#include <linux/locallock.h>
+
+ #include "workqueue_internal.h"
+
+@@ -351,6 +352,8 @@ EXPORT_SYMBOL_GPL(system_power_efficient_wq);
+ struct workqueue_struct *system_freezable_power_efficient_wq __read_mostly;
+ EXPORT_SYMBOL_GPL(system_freezable_power_efficient_wq);
+
++static DEFINE_LOCAL_IRQ_LOCK(pendingb_lock);
++
+ static int worker_thread(void *__worker);
+ static void workqueue_sysfs_unregister(struct workqueue_struct *wq);
+
+@@ -1104,9 +1107,11 @@ static void put_pwq_unlocked(struct pool_workqueue *pwq)
+ * As both pwqs and pools are RCU protected, the
+ * following lock operations are safe.
+ */
+- spin_lock_irq(&pwq->pool->lock);
++ rcu_read_lock();
++ local_spin_lock_irq(pendingb_lock, &pwq->pool->lock);
+ put_pwq(pwq);
+- spin_unlock_irq(&pwq->pool->lock);
++ local_spin_unlock_irq(pendingb_lock, &pwq->pool->lock);
++ rcu_read_unlock();
+ }
+ }
+
+@@ -1210,7 +1215,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+ struct worker_pool *pool;
+ struct pool_workqueue *pwq;
+
+- local_irq_save(*flags);
++ local_lock_irqsave(pendingb_lock, *flags);
+
+ /* try to steal the timer if it exists */
+ if (is_dwork) {
+@@ -1274,7 +1279,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+ spin_unlock(&pool->lock);
+ fail:
+ rcu_read_unlock();
+- local_irq_restore(*flags);
++ local_unlock_irqrestore(pendingb_lock, *flags);
+ if (work_is_canceling(work))
+ return -ENOENT;
+ cpu_relax();
+@@ -1379,7 +1384,13 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+ * queued or lose PENDING. Grabbing PENDING and queueing should
+ * happen with IRQ disabled.
+ */
++#ifndef CONFIG_PREEMPT_RT_FULL
++ /*
++ * nort: On RT the "interrupts-disabled" rule has been replaced with
++ * pendingb_lock.
++ */
+ lockdep_assert_irqs_disabled();
++#endif
+
+
+ /* if draining, only works from the same workqueue are allowed */
+@@ -1487,14 +1498,14 @@ bool queue_work_on(int cpu, struct workqueue_struct *wq,
+ bool ret = false;
+ unsigned long flags;
+
+- local_irq_save(flags);
++ local_lock_irqsave(pendingb_lock,flags);
+
+ if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) {
+ __queue_work(cpu, wq, work);
+ ret = true;
+ }
+
+- local_irq_restore(flags);
++ local_unlock_irqrestore(pendingb_lock, flags);
+ return ret;
+ }
+ EXPORT_SYMBOL(queue_work_on);
+@@ -1503,8 +1514,11 @@ void delayed_work_timer_fn(struct timer_list *t)
+ {
+ struct delayed_work *dwork = from_timer(dwork, t, timer);
+
++ /* XXX */
++ /* local_lock(pendingb_lock); */
+ /* should have been called from irqsafe timer with irq already off */
+ __queue_work(dwork->cpu, dwork->wq, &dwork->work);
++ /* local_unlock(pendingb_lock); */
+ }
+ EXPORT_SYMBOL(delayed_work_timer_fn);
+
+@@ -1559,14 +1573,14 @@ bool queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
+ unsigned long flags;
+
+ /* read the comment in __queue_work() */
+- local_irq_save(flags);
++ local_lock_irqsave(pendingb_lock, flags);
+
+ if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) {
+ __queue_delayed_work(cpu, wq, dwork, delay);
+ ret = true;
+ }
+
+- local_irq_restore(flags);
++ local_unlock_irqrestore(pendingb_lock, flags);
+ return ret;
+ }
+ EXPORT_SYMBOL(queue_delayed_work_on);
+@@ -1601,7 +1615,7 @@ bool mod_delayed_work_on(int cpu, struct workqueue_struct *wq,
+
+ if (likely(ret >= 0)) {
+ __queue_delayed_work(cpu, wq, dwork, delay);
+- local_irq_restore(flags);
++ local_unlock_irqrestore(pendingb_lock, flags);
+ }
+
+ /* -ENOENT from try_to_grab_pending() becomes %true */
+@@ -1612,11 +1626,12 @@ EXPORT_SYMBOL_GPL(mod_delayed_work_on);
+ static void rcu_work_rcufn(struct rcu_head *rcu)
+ {
+ struct rcu_work *rwork = container_of(rcu, struct rcu_work, rcu);
++ unsigned long flags;
+
+ /* read the comment in __queue_work() */
+- local_irq_disable();
++ local_lock_irqsave(pendingb_lock, flags);
+ __queue_work(WORK_CPU_UNBOUND, rwork->wq, &rwork->work);
+- local_irq_enable();
++ local_unlock_irqrestore(pendingb_lock, flags);
+ }
+
+ /**
+@@ -3008,7 +3023,7 @@ static bool __cancel_work_timer(struct work_struct *work, bool is_dwork)
+
+ /* tell other tasks trying to grab @work to back off */
+ mark_work_canceling(work);
+- local_irq_restore(flags);
++ local_unlock_irqrestore(pendingb_lock, flags);
+
+ /*
+ * This allows canceling during early boot. We know that @work
+@@ -3069,10 +3084,10 @@ EXPORT_SYMBOL_GPL(cancel_work_sync);
+ */
+ bool flush_delayed_work(struct delayed_work *dwork)
+ {
+- local_irq_disable();
++ local_lock_irq(pendingb_lock);
+ if (del_timer_sync(&dwork->timer))
+ __queue_work(dwork->cpu, dwork->wq, &dwork->work);
+- local_irq_enable();
++ local_unlock_irq(pendingb_lock);
+ return flush_work(&dwork->work);
+ }
+ EXPORT_SYMBOL(flush_delayed_work);
+@@ -3110,7 +3125,7 @@ static bool __cancel_work(struct work_struct *work, bool is_dwork)
+ return false;
+
+ set_work_pool_and_clear_pending(work, get_work_pool_id(work));
+- local_irq_restore(flags);
++ local_unlock_irqrestore(pendingb_lock, flags);
+ return ret;
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0192-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch b/debian/patches-rt/0192-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch
new file mode 100644
index 000000000..28a95db99
--- /dev/null
+++ b/debian/patches-rt/0192-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch
@@ -0,0 +1,139 @@
+From c86179fe263e888b8dcffa0f1956e2b170b36b48 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Mon, 1 Jul 2013 11:02:42 +0200
+Subject: [PATCH 192/347] workqueue: Prevent workqueue versus ata-piix livelock
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+An Intel i7 system regularly detected rcu_preempt stalls after the kernel
+was upgraded from 3.6-rt to 3.8-rt. When the stall happened, disk I/O was no
+longer possible, unless the system was restarted.
+
+The kernel message was:
+INFO: rcu_preempt self-detected stall on CPU { 6}
+[..]
+NMI backtrace for cpu 6
+CPU 6
+Pid: 119, comm: irq/19-ata_piix Not tainted 3.8.13-rt13 #11 Shuttle Inc. SX58/SX58
+RIP: 0010:[<ffffffff8124ca60>] [<ffffffff8124ca60>] ip_compute_csum+0x30/0x30
+RSP: 0018:ffff880333303cb0 EFLAGS: 00000002
+RAX: 0000000000000006 RBX: 00000000000003e9 RCX: 0000000000000034
+RDX: 0000000000000000 RSI: ffffffff81aa16d0 RDI: 0000000000000001
+RBP: ffff880333303ce8 R08: ffffffff81aa16d0 R09: ffffffff81c1b8cc
+R10: 0000000000000000 R11: 0000000000000000 R12: 000000000005161f
+R13: 0000000000000006 R14: ffffffff81aa16d0 R15: 0000000000000002
+FS: 0000000000000000(0000) GS:ffff880333300000(0000) knlGS:0000000000000000
+CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
+CR2: 0000003c1b2bb420 CR3: 0000000001a0f000 CR4: 00000000000007e0
+DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
+DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
+Process irq/19-ata_piix (pid: 119, threadinfo ffff88032d88a000, task ffff88032df80000)
+Stack:
+ffffffff8124cb32 000000000005161e 00000000000003e9 0000000000001000
+0000000000009022 ffffffff81aa16d0 0000000000000002 ffff880333303cf8
+ffffffff8124caa9 ffff880333303d08 ffffffff8124cad2 ffff880333303d28
+Call Trace:
+<IRQ>
+[<ffffffff8124cb32>] ? delay_tsc+0x33/0xe3
+[<ffffffff8124caa9>] __delay+0xf/0x11
+[<ffffffff8124cad2>] __const_udelay+0x27/0x29
+[<ffffffff8102d1fa>] native_safe_apic_wait_icr_idle+0x39/0x45
+[<ffffffff8102dc9b>] __default_send_IPI_dest_field.constprop.0+0x1e/0x58
+[<ffffffff8102dd1e>] default_send_IPI_mask_sequence_phys+0x49/0x7d
+[<ffffffff81030326>] physflat_send_IPI_all+0x17/0x19
+[<ffffffff8102de53>] arch_trigger_all_cpu_backtrace+0x50/0x79
+[<ffffffff810b21d0>] rcu_check_callbacks+0x1cb/0x568
+[<ffffffff81048c9c>] ? raise_softirq+0x2e/0x35
+[<ffffffff81086be0>] ? tick_sched_do_timer+0x38/0x38
+[<ffffffff8104f653>] update_process_times+0x44/0x55
+[<ffffffff81086866>] tick_sched_handle+0x4a/0x59
+[<ffffffff81086c1c>] tick_sched_timer+0x3c/0x5b
+[<ffffffff81062845>] __run_hrtimer+0x9b/0x158
+[<ffffffff810631d8>] hrtimer_interrupt+0x172/0x2aa
+[<ffffffff8102d498>] smp_apic_timer_interrupt+0x76/0x89
+[<ffffffff814d881d>] apic_timer_interrupt+0x6d/0x80
+<EOI>
+[<ffffffff81057cd2>] ? __local_lock_irqsave+0x17/0x4a
+[<ffffffff81059336>] try_to_grab_pending+0x42/0x17e
+[<ffffffff8105a699>] mod_delayed_work_on+0x32/0x88
+[<ffffffff8105a70b>] mod_delayed_work+0x1c/0x1e
+[<ffffffff8122ae84>] blk_run_queue_async+0x37/0x39
+[<ffffffff81230985>] flush_end_io+0xf1/0x107
+[<ffffffff8122e0da>] blk_finish_request+0x21e/0x264
+[<ffffffff8122e162>] blk_end_bidi_request+0x42/0x60
+[<ffffffff8122e1ba>] blk_end_request+0x10/0x12
+[<ffffffff8132de46>] scsi_io_completion+0x1bf/0x492
+[<ffffffff81335cec>] ? sd_done+0x298/0x2ef
+[<ffffffff81325a02>] scsi_finish_command+0xe9/0xf2
+[<ffffffff8132dbcb>] scsi_softirq_done+0x106/0x10f
+[<ffffffff812333d3>] blk_done_softirq+0x77/0x87
+[<ffffffff8104826f>] do_current_softirqs+0x172/0x2e1
+[<ffffffff810aa820>] ? irq_thread_fn+0x3a/0x3a
+[<ffffffff81048466>] local_bh_enable+0x43/0x72
+[<ffffffff810aa866>] irq_forced_thread_fn+0x46/0x52
+[<ffffffff810ab089>] irq_thread+0x8c/0x17c
+[<ffffffff810ab179>] ? irq_thread+0x17c/0x17c
+[<ffffffff810aaffd>] ? wake_threads_waitq+0x44/0x44
+[<ffffffff8105eb18>] kthread+0x8d/0x95
+[<ffffffff8105ea8b>] ? __kthread_parkme+0x65/0x65
+[<ffffffff814d7b7c>] ret_from_fork+0x7c/0xb0
+[<ffffffff8105ea8b>] ? __kthread_parkme+0x65/0x65
+
+The state of softirqd of this CPU at the time of the crash was:
+ksoftirqd/6 R running task 0 53 2 0x00000000
+ffff88032fc39d18 0000000000000046 ffff88033330c4c0 ffff8803303f4710
+ffff88032fc39fd8 ffff88032fc39fd8 0000000000000000 0000000000062500
+ffff88032df88000 ffff8803303f4710 0000000000000000 ffff88032fc38000
+Call Trace:
+[<ffffffff8105a3ae>] ? __queue_work+0x27c/0x27c
+[<ffffffff814d178c>] preempt_schedule+0x61/0x76
+[<ffffffff8106cccf>] migrate_enable+0xe5/0x1df
+[<ffffffff8105a3ae>] ? __queue_work+0x27c/0x27c
+[<ffffffff8104ef52>] run_timer_softirq+0x161/0x1d6
+[<ffffffff8104826f>] do_current_softirqs+0x172/0x2e1
+[<ffffffff8104840b>] run_ksoftirqd+0x2d/0x45
+[<ffffffff8106658a>] smpboot_thread_fn+0x2ea/0x308
+[<ffffffff810662a0>] ? test_ti_thread_flag+0xc/0xc
+[<ffffffff810662a0>] ? test_ti_thread_flag+0xc/0xc
+[<ffffffff8105eb18>] kthread+0x8d/0x95
+[<ffffffff8105ea8b>] ? __kthread_parkme+0x65/0x65
+[<ffffffff814d7afc>] ret_from_fork+0x7c/0xb0
+[<ffffffff8105ea8b>] ? __kthread_parkme+0x65/0x65
+
+Apparently, the softirq demon and the ata_piix IRQ handler were waiting
+for each other to finish ending up in a livelock. After the below patch
+was applied, the system no longer crashes.
+
+Reported-by: Carsten Emde <C.Emde@osadl.org>
+Proposed-by: Thomas Gleixner <tglx@linutronix.de>
+Tested by: Carsten Emde <C.Emde@osadl.org>
+Signed-off-by: Carsten Emde <C.Emde@osadl.org>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/workqueue.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/kernel/workqueue.c b/kernel/workqueue.c
+index 2b4c052c51b3..6e73e3eaca5e 100644
+--- a/kernel/workqueue.c
++++ b/kernel/workqueue.c
+@@ -51,6 +51,7 @@
+ #include <linux/nmi.h>
+ #include <linux/kvm_para.h>
+ #include <linux/locallock.h>
++#include <linux/delay.h>
+
+ #include "workqueue_internal.h"
+
+@@ -1282,7 +1283,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+ local_unlock_irqrestore(pendingb_lock, *flags);
+ if (work_is_canceling(work))
+ return -ENOENT;
+- cpu_relax();
++ cpu_chill();
+ return -EAGAIN;
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0193-sched-Distangle-worker-accounting-from-rqlock.patch b/debian/patches-rt/0193-sched-Distangle-worker-accounting-from-rqlock.patch
new file mode 100644
index 000000000..5347efe07
--- /dev/null
+++ b/debian/patches-rt/0193-sched-Distangle-worker-accounting-from-rqlock.patch
@@ -0,0 +1,291 @@
+From a446a9e4a93ca3245891dbdac928195f604ee473 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 22 Jun 2011 19:47:03 +0200
+Subject: [PATCH 193/347] sched: Distangle worker accounting from rqlock
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The worker accounting for cpu bound workers is plugged into the core
+scheduler code and the wakeup code. This is not a hard requirement and
+can be avoided by keeping track of the state in the workqueue code
+itself.
+
+Keep track of the sleeping state in the worker itself and call the
+notifier before entering the core scheduler. There might be false
+positives when the task is woken between that call and actually
+scheduling, but that's not really different from scheduling and being
+woken immediately after switching away. There is also no harm from
+updating nr_running when the task returns from scheduling instead of
+accounting it in the wakeup code.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: Tejun Heo <tj@kernel.org>
+Cc: Jens Axboe <axboe@kernel.dk>
+Cc: Linus Torvalds <torvalds@linux-foundation.org>
+Link: http://lkml.kernel.org/r/20110622174919.135236139@linutronix.de
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+[bigeasy: preempt_disable() around wq_worker_sleeping() by Daniel Bristot de
+ Oliveira]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/sched/core.c | 90 +++++++++----------------------------
+ kernel/workqueue.c | 52 ++++++++++-----------
+ kernel/workqueue_internal.h | 5 ++-
+ 3 files changed, 47 insertions(+), 100 deletions(-)
+
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 0c44c16244a1..11afaa2c618a 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -1704,10 +1704,6 @@ static inline void ttwu_activate(struct rq *rq, struct task_struct *p, int en_fl
+ {
+ activate_task(rq, p, en_flags);
+ p->on_rq = TASK_ON_RQ_QUEUED;
+-
+- /* If a worker is waking up, notify the workqueue: */
+- if (p->flags & PF_WQ_WORKER)
+- wq_worker_waking_up(p, cpu_of(rq));
+ }
+
+ /*
+@@ -2146,56 +2142,6 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags)
+ return success;
+ }
+
+-/**
+- * try_to_wake_up_local - try to wake up a local task with rq lock held
+- * @p: the thread to be awakened
+- * @rf: request-queue flags for pinning
+- *
+- * Put @p on the run-queue if it's not already there. The caller must
+- * ensure that this_rq() is locked, @p is bound to this_rq() and not
+- * the current task.
+- */
+-static void try_to_wake_up_local(struct task_struct *p, struct rq_flags *rf)
+-{
+- struct rq *rq = task_rq(p);
+-
+- if (WARN_ON_ONCE(rq != this_rq()) ||
+- WARN_ON_ONCE(p == current))
+- return;
+-
+- lockdep_assert_held(&rq->lock);
+-
+- if (!raw_spin_trylock(&p->pi_lock)) {
+- /*
+- * This is OK, because current is on_cpu, which avoids it being
+- * picked for load-balance and preemption/IRQs are still
+- * disabled avoiding further scheduler activity on it and we've
+- * not yet picked a replacement task.
+- */
+- rq_unlock(rq, rf);
+- raw_spin_lock(&p->pi_lock);
+- rq_relock(rq, rf);
+- }
+-
+- if (!(p->state & TASK_NORMAL))
+- goto out;
+-
+- trace_sched_waking(p);
+-
+- if (!task_on_rq_queued(p)) {
+- if (p->in_iowait) {
+- delayacct_blkio_end(p);
+- atomic_dec(&rq->nr_iowait);
+- }
+- ttwu_activate(rq, p, ENQUEUE_WAKEUP | ENQUEUE_NOCLOCK);
+- }
+-
+- ttwu_do_wakeup(rq, p, 0, rf);
+- ttwu_stat(p, smp_processor_id(), 0);
+-out:
+- raw_spin_unlock(&p->pi_lock);
+-}
+-
+ /**
+ * wake_up_process - Wake up a specific process
+ * @p: The process to be woken up.
+@@ -3566,21 +3512,6 @@ static void __sched notrace __schedule(bool preempt)
+ atomic_inc(&rq->nr_iowait);
+ delayacct_blkio_start();
+ }
+-
+- /*
+- * If a worker went to sleep, notify and ask workqueue
+- * whether it wants to wake up a task to maintain
+- * concurrency.
+- * Only call wake up if prev isn't blocked on a sleeping
+- * spin lock.
+- */
+- if (prev->flags & PF_WQ_WORKER && !prev->saved_state) {
+- struct task_struct *to_wakeup;
+-
+- to_wakeup = wq_worker_sleeping(prev);
+- if (to_wakeup)
+- try_to_wake_up_local(to_wakeup, &rf);
+- }
+ }
+ switch_count = &prev->nvcsw;
+ }
+@@ -3640,6 +3571,20 @@ static inline void sched_submit_work(struct task_struct *tsk)
+ {
+ if (!tsk->state || tsk_is_pi_blocked(tsk))
+ return;
++
++ /*
++ * If a worker went to sleep, notify and ask workqueue whether
++ * it wants to wake up a task to maintain concurrency.
++ * As this function is called inside the schedule() context,
++ * we disable preemption to avoid it calling schedule() again
++ * in the possible wakeup of a kworker.
++ */
++ if (tsk->flags & PF_WQ_WORKER) {
++ preempt_disable();
++ wq_worker_sleeping(tsk);
++ preempt_enable_no_resched();
++ }
++
+ /*
+ * If we are going to sleep and we have plugged IO queued,
+ * make sure to submit it to avoid deadlocks.
+@@ -3648,6 +3593,12 @@ static inline void sched_submit_work(struct task_struct *tsk)
+ blk_schedule_flush_plug(tsk);
+ }
+
++static void sched_update_worker(struct task_struct *tsk)
++{
++ if (tsk->flags & PF_WQ_WORKER)
++ wq_worker_running(tsk);
++}
++
+ asmlinkage __visible void __sched schedule(void)
+ {
+ struct task_struct *tsk = current;
+@@ -3658,6 +3609,7 @@ asmlinkage __visible void __sched schedule(void)
+ __schedule(false);
+ sched_preempt_enable_no_resched();
+ } while (need_resched());
++ sched_update_worker(tsk);
+ }
+ EXPORT_SYMBOL(schedule);
+
+diff --git a/kernel/workqueue.c b/kernel/workqueue.c
+index 6e73e3eaca5e..0c529f920232 100644
+--- a/kernel/workqueue.c
++++ b/kernel/workqueue.c
+@@ -844,43 +844,32 @@ static void wake_up_worker(struct worker_pool *pool)
+ }
+
+ /**
+- * wq_worker_waking_up - a worker is waking up
++ * wq_worker_running - a worker is running again
+ * @task: task waking up
+- * @cpu: CPU @task is waking up to
+ *
+- * This function is called during try_to_wake_up() when a worker is
+- * being awoken.
+- *
+- * CONTEXT:
+- * spin_lock_irq(rq->lock)
++ * This function is called when a worker returns from schedule()
+ */
+-void wq_worker_waking_up(struct task_struct *task, int cpu)
++void wq_worker_running(struct task_struct *task)
+ {
+ struct worker *worker = kthread_data(task);
+
+- if (!(worker->flags & WORKER_NOT_RUNNING)) {
+- WARN_ON_ONCE(worker->pool->cpu != cpu);
++ if (!worker->sleeping)
++ return;
++ if (!(worker->flags & WORKER_NOT_RUNNING))
+ atomic_inc(&worker->pool->nr_running);
+- }
++ worker->sleeping = 0;
+ }
+
+ /**
+ * wq_worker_sleeping - a worker is going to sleep
+ * @task: task going to sleep
+ *
+- * This function is called during schedule() when a busy worker is
+- * going to sleep. Worker on the same cpu can be woken up by
+- * returning pointer to its task.
+- *
+- * CONTEXT:
+- * spin_lock_irq(rq->lock)
+- *
+- * Return:
+- * Worker task on @cpu to wake up, %NULL if none.
++ * This function is called from schedule() when a busy worker is
++ * going to sleep.
+ */
+-struct task_struct *wq_worker_sleeping(struct task_struct *task)
++void wq_worker_sleeping(struct task_struct *task)
+ {
+- struct worker *worker = kthread_data(task), *to_wakeup = NULL;
++ struct worker *next, *worker = kthread_data(task);
+ struct worker_pool *pool;
+
+ /*
+@@ -889,13 +878,15 @@ struct task_struct *wq_worker_sleeping(struct task_struct *task)
+ * checking NOT_RUNNING.
+ */
+ if (worker->flags & WORKER_NOT_RUNNING)
+- return NULL;
++ return;
+
+ pool = worker->pool;
+
+- /* this can only happen on the local cpu */
+- if (WARN_ON_ONCE(pool->cpu != raw_smp_processor_id()))
+- return NULL;
++ if (WARN_ON_ONCE(worker->sleeping))
++ return;
++
++ worker->sleeping = 1;
++ spin_lock_irq(&pool->lock);
+
+ /*
+ * The counterpart of the following dec_and_test, implied mb,
+@@ -909,9 +900,12 @@ struct task_struct *wq_worker_sleeping(struct task_struct *task)
+ * lock is safe.
+ */
+ if (atomic_dec_and_test(&pool->nr_running) &&
+- !list_empty(&pool->worklist))
+- to_wakeup = first_idle_worker(pool);
+- return to_wakeup ? to_wakeup->task : NULL;
++ !list_empty(&pool->worklist)) {
++ next = first_idle_worker(pool);
++ if (next)
++ wake_up_process(next->task);
++ }
++ spin_unlock_irq(&pool->lock);
+ }
+
+ /**
+diff --git a/kernel/workqueue_internal.h b/kernel/workqueue_internal.h
+index 66fbb5a9e633..30cfed226b39 100644
+--- a/kernel/workqueue_internal.h
++++ b/kernel/workqueue_internal.h
+@@ -44,6 +44,7 @@ struct worker {
+ unsigned long last_active; /* L: last active timestamp */
+ unsigned int flags; /* X: flags */
+ int id; /* I: worker id */
++ int sleeping; /* None */
+
+ /*
+ * Opaque string set with work_set_desc(). Printed out with task
+@@ -69,7 +70,7 @@ static inline struct worker *current_wq_worker(void)
+ * Scheduler hooks for concurrency managed workqueue. Only to be used from
+ * sched/core.c and workqueue.c.
+ */
+-void wq_worker_waking_up(struct task_struct *task, int cpu);
+-struct task_struct *wq_worker_sleeping(struct task_struct *task);
++void wq_worker_running(struct task_struct *task);
++void wq_worker_sleeping(struct task_struct *task);
+
+ #endif /* _KERNEL_WORKQUEUE_INTERNAL_H */
+--
+2.36.1
+
diff --git a/debian/patches-rt/0194-debugobjects-Make-RT-aware.patch b/debian/patches-rt/0194-debugobjects-Make-RT-aware.patch
new file mode 100644
index 000000000..3fd87b158
--- /dev/null
+++ b/debian/patches-rt/0194-debugobjects-Make-RT-aware.patch
@@ -0,0 +1,32 @@
+From eaad8379256de9e0327feb6fac10f692aaee4498 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Sun, 17 Jul 2011 21:41:35 +0200
+Subject: [PATCH 194/347] debugobjects: Make RT aware
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Avoid filling the pool / allocating memory with irqs off().
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ lib/debugobjects.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/lib/debugobjects.c b/lib/debugobjects.c
+index 14afeeb7d6ef..e28481c402ae 100644
+--- a/lib/debugobjects.c
++++ b/lib/debugobjects.c
+@@ -376,7 +376,10 @@ __debug_object_init(void *addr, struct debug_obj_descr *descr, int onstack)
+ struct debug_obj *obj;
+ unsigned long flags;
+
+- fill_pool();
++#ifdef CONFIG_PREEMPT_RT_FULL
++ if (preempt_count() == 0 && !irqs_disabled())
++#endif
++ fill_pool();
+
+ db = get_bucket((unsigned long) addr);
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0195-seqlock-Prevent-rt-starvation.patch b/debian/patches-rt/0195-seqlock-Prevent-rt-starvation.patch
new file mode 100644
index 000000000..6398461d7
--- /dev/null
+++ b/debian/patches-rt/0195-seqlock-Prevent-rt-starvation.patch
@@ -0,0 +1,195 @@
+From d2adc15afeaebd45ad21834295e100c5627a7fa2 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 22 Feb 2012 12:03:30 +0100
+Subject: [PATCH 195/347] seqlock: Prevent rt starvation
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+If a low prio writer gets preempted while holding the seqlock write
+locked, a high prio reader spins forever on RT.
+
+To prevent this let the reader grab the spinlock, so it blocks and
+eventually boosts the writer. This way the writer can proceed and
+endless spinning is prevented.
+
+For seqcount writers we disable preemption over the update code
+path. Thanks to Al Viro for distangling some VFS code to make that
+possible.
+
+Nicholas Mc Guire:
+- spin_lock+unlock => spin_unlock_wait
+- __write_seqcount_begin => __raw_write_seqcount_begin
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/seqlock.h | 57 ++++++++++++++++++++++++++++++++---------
+ include/net/neighbour.h | 6 ++---
+ 2 files changed, 48 insertions(+), 15 deletions(-)
+
+diff --git a/include/linux/seqlock.h b/include/linux/seqlock.h
+index a42a29952889..a3768cfce914 100644
+--- a/include/linux/seqlock.h
++++ b/include/linux/seqlock.h
+@@ -221,20 +221,30 @@ static inline int read_seqcount_retry(const seqcount_t *s, unsigned start)
+ return __read_seqcount_retry(s, start);
+ }
+
+-
+-
+-static inline void raw_write_seqcount_begin(seqcount_t *s)
++static inline void __raw_write_seqcount_begin(seqcount_t *s)
+ {
+ s->sequence++;
+ smp_wmb();
+ }
+
+-static inline void raw_write_seqcount_end(seqcount_t *s)
++static inline void raw_write_seqcount_begin(seqcount_t *s)
++{
++ preempt_disable_rt();
++ __raw_write_seqcount_begin(s);
++}
++
++static inline void __raw_write_seqcount_end(seqcount_t *s)
+ {
+ smp_wmb();
+ s->sequence++;
+ }
+
++static inline void raw_write_seqcount_end(seqcount_t *s)
++{
++ __raw_write_seqcount_end(s);
++ preempt_enable_rt();
++}
++
+ /**
+ * raw_write_seqcount_barrier - do a seq write barrier
+ * @s: pointer to seqcount_t
+@@ -435,10 +445,33 @@ typedef struct {
+ /*
+ * Read side functions for starting and finalizing a read side section.
+ */
++#ifndef CONFIG_PREEMPT_RT_FULL
+ static inline unsigned read_seqbegin(const seqlock_t *sl)
+ {
+ return read_seqcount_begin(&sl->seqcount);
+ }
++#else
++/*
++ * Starvation safe read side for RT
++ */
++static inline unsigned read_seqbegin(seqlock_t *sl)
++{
++ unsigned ret;
++
++repeat:
++ ret = READ_ONCE(sl->seqcount.sequence);
++ if (unlikely(ret & 1)) {
++ /*
++ * Take the lock and let the writer proceed (i.e. evtl
++ * boost it), otherwise we could loop here forever.
++ */
++ spin_unlock_wait(&sl->lock);
++ goto repeat;
++ }
++ smp_rmb();
++ return ret;
++}
++#endif
+
+ static inline unsigned read_seqretry(const seqlock_t *sl, unsigned start)
+ {
+@@ -453,36 +486,36 @@ static inline unsigned read_seqretry(const seqlock_t *sl, unsigned start)
+ static inline void write_seqlock(seqlock_t *sl)
+ {
+ spin_lock(&sl->lock);
+- write_seqcount_begin(&sl->seqcount);
++ __raw_write_seqcount_begin(&sl->seqcount);
+ }
+
+ static inline void write_sequnlock(seqlock_t *sl)
+ {
+- write_seqcount_end(&sl->seqcount);
++ __raw_write_seqcount_end(&sl->seqcount);
+ spin_unlock(&sl->lock);
+ }
+
+ static inline void write_seqlock_bh(seqlock_t *sl)
+ {
+ spin_lock_bh(&sl->lock);
+- write_seqcount_begin(&sl->seqcount);
++ __raw_write_seqcount_begin(&sl->seqcount);
+ }
+
+ static inline void write_sequnlock_bh(seqlock_t *sl)
+ {
+- write_seqcount_end(&sl->seqcount);
++ __raw_write_seqcount_end(&sl->seqcount);
+ spin_unlock_bh(&sl->lock);
+ }
+
+ static inline void write_seqlock_irq(seqlock_t *sl)
+ {
+ spin_lock_irq(&sl->lock);
+- write_seqcount_begin(&sl->seqcount);
++ __raw_write_seqcount_begin(&sl->seqcount);
+ }
+
+ static inline void write_sequnlock_irq(seqlock_t *sl)
+ {
+- write_seqcount_end(&sl->seqcount);
++ __raw_write_seqcount_end(&sl->seqcount);
+ spin_unlock_irq(&sl->lock);
+ }
+
+@@ -491,7 +524,7 @@ static inline unsigned long __write_seqlock_irqsave(seqlock_t *sl)
+ unsigned long flags;
+
+ spin_lock_irqsave(&sl->lock, flags);
+- write_seqcount_begin(&sl->seqcount);
++ __raw_write_seqcount_begin(&sl->seqcount);
+ return flags;
+ }
+
+@@ -501,7 +534,7 @@ static inline unsigned long __write_seqlock_irqsave(seqlock_t *sl)
+ static inline void
+ write_sequnlock_irqrestore(seqlock_t *sl, unsigned long flags)
+ {
+- write_seqcount_end(&sl->seqcount);
++ __raw_write_seqcount_end(&sl->seqcount);
+ spin_unlock_irqrestore(&sl->lock, flags);
+ }
+
+diff --git a/include/net/neighbour.h b/include/net/neighbour.h
+index 5ce035984a4d..1166fc17b757 100644
+--- a/include/net/neighbour.h
++++ b/include/net/neighbour.h
+@@ -451,7 +451,7 @@ static inline int neigh_hh_bridge(struct hh_cache *hh, struct sk_buff *skb)
+ }
+ #endif
+
+-static inline int neigh_hh_output(const struct hh_cache *hh, struct sk_buff *skb)
++static inline int neigh_hh_output(struct hh_cache *hh, struct sk_buff *skb)
+ {
+ unsigned int hh_alen = 0;
+ unsigned int seq;
+@@ -493,7 +493,7 @@ static inline int neigh_hh_output(const struct hh_cache *hh, struct sk_buff *skb
+
+ static inline int neigh_output(struct neighbour *n, struct sk_buff *skb)
+ {
+- const struct hh_cache *hh = &n->hh;
++ struct hh_cache *hh = &n->hh;
+
+ if ((n->nud_state & NUD_CONNECTED) && hh->hh_len)
+ return neigh_hh_output(hh, skb);
+@@ -534,7 +534,7 @@ struct neighbour_cb {
+
+ #define NEIGH_CB(skb) ((struct neighbour_cb *)(skb)->cb)
+
+-static inline void neigh_ha_snapshot(char *dst, const struct neighbour *n,
++static inline void neigh_ha_snapshot(char *dst, struct neighbour *n,
+ const struct net_device *dev)
+ {
+ unsigned int seq;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0196-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch b/debian/patches-rt/0196-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch
new file mode 100644
index 000000000..e55b80bd6
--- /dev/null
+++ b/debian/patches-rt/0196-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch
@@ -0,0 +1,61 @@
+From f1452101ff124dd5a82d5345b6f92f98d891054f Mon Sep 17 00:00:00 2001
+From: Mike Galbraith <umgwanakikbuti@gmail.com>
+Date: Wed, 18 Feb 2015 16:05:28 +0100
+Subject: [PATCH 196/347] sunrpc: Make svc_xprt_do_enqueue() use
+ get_cpu_light()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+|Preemption disabled at:[<ffffffffa06bf0bb>] svc_xprt_received+0x4b/0xc0 [sunrpc]
+|CPU: 6 PID: 3194 Comm: rpc.nfsd Not tainted 3.18.7-rt1 #9
+|Hardware name: MEDION MS-7848/MS-7848, BIOS M7848W08.404 11/06/2014
+| ffff880409630000 ffff8800d9a33c78 ffffffff815bdeb5 0000000000000002
+| 0000000000000000 ffff8800d9a33c98 ffffffff81073c86 ffff880408dd6008
+| ffff880408dd6000 ffff8800d9a33cb8 ffffffff815c3d84 ffff88040b3ac000
+|Call Trace:
+| [<ffffffff815bdeb5>] dump_stack+0x4f/0x9e
+| [<ffffffff81073c86>] __might_sleep+0xe6/0x150
+| [<ffffffff815c3d84>] rt_spin_lock+0x24/0x50
+| [<ffffffffa06beec0>] svc_xprt_do_enqueue+0x80/0x230 [sunrpc]
+| [<ffffffffa06bf0bb>] svc_xprt_received+0x4b/0xc0 [sunrpc]
+| [<ffffffffa06c03ed>] svc_add_new_perm_xprt+0x6d/0x80 [sunrpc]
+| [<ffffffffa06b2693>] svc_addsock+0x143/0x200 [sunrpc]
+| [<ffffffffa072e69c>] write_ports+0x28c/0x340 [nfsd]
+| [<ffffffffa072d2ac>] nfsctl_transaction_write+0x4c/0x80 [nfsd]
+| [<ffffffff8117ee83>] vfs_write+0xb3/0x1d0
+| [<ffffffff8117f889>] SyS_write+0x49/0xb0
+| [<ffffffff815c4556>] system_call_fastpath+0x16/0x1b
+
+
+Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ net/sunrpc/svc_xprt.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c
+index 4b56b949a463..83a4a0a13a1c 100644
+--- a/net/sunrpc/svc_xprt.c
++++ b/net/sunrpc/svc_xprt.c
+@@ -402,7 +402,7 @@ void svc_xprt_do_enqueue(struct svc_xprt *xprt)
+ if (test_and_set_bit(XPT_BUSY, &xprt->xpt_flags))
+ return;
+
+- cpu = get_cpu();
++ cpu = get_cpu_light();
+ pool = svc_pool_for_cpu(xprt->xpt_server, cpu);
+
+ atomic_long_inc(&pool->sp_stats.packets);
+@@ -426,7 +426,7 @@ void svc_xprt_do_enqueue(struct svc_xprt *xprt)
+ rqstp = NULL;
+ out_unlock:
+ rcu_read_unlock();
+- put_cpu();
++ put_cpu_light();
+ trace_svc_xprt_do_enqueue(xprt, rqstp);
+ }
+ EXPORT_SYMBOL_GPL(svc_xprt_do_enqueue);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0197-net-Use-skbufhead-with-raw-lock.patch b/debian/patches-rt/0197-net-Use-skbufhead-with-raw-lock.patch
new file mode 100644
index 000000000..f54ab15b6
--- /dev/null
+++ b/debian/patches-rt/0197-net-Use-skbufhead-with-raw-lock.patch
@@ -0,0 +1,148 @@
+From 8c4af88efcc296bc2daa2be90fbea82190799883 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Tue, 12 Jul 2011 15:38:34 +0200
+Subject: [PATCH 197/347] net: Use skbufhead with raw lock
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+to the softirq and use the tofree_queue list for it (similar to process_queue).
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/netdevice.h | 1 +
+ include/linux/skbuff.h | 7 +++++++
+ net/core/dev.c | 26 ++++++++++++++++++++------
+ 3 files changed, 28 insertions(+), 6 deletions(-)
+
+diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
+index 8d48b352ee74..d893dc112afc 100644
+--- a/include/linux/netdevice.h
++++ b/include/linux/netdevice.h
+@@ -2990,6 +2990,7 @@ struct softnet_data {
+ unsigned int dropped;
+ struct sk_buff_head input_pkt_queue;
+ struct napi_struct backlog;
++ struct sk_buff_head tofree_queue;
+
+ };
+
+diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
+index f97734f34746..3ede4f0eac10 100644
+--- a/include/linux/skbuff.h
++++ b/include/linux/skbuff.h
+@@ -287,6 +287,7 @@ struct sk_buff_head {
+
+ __u32 qlen;
+ spinlock_t lock;
++ raw_spinlock_t raw_lock;
+ };
+
+ struct sk_buff;
+@@ -1735,6 +1736,12 @@ static inline void skb_queue_head_init(struct sk_buff_head *list)
+ __skb_queue_head_init(list);
+ }
+
++static inline void skb_queue_head_init_raw(struct sk_buff_head *list)
++{
++ raw_spin_lock_init(&list->raw_lock);
++ __skb_queue_head_init(list);
++}
++
+ static inline void skb_queue_head_init_class(struct sk_buff_head *list,
+ struct lock_class_key *class)
+ {
+diff --git a/net/core/dev.c b/net/core/dev.c
+index 315bdaf00ac8..c279375fa5b9 100644
+--- a/net/core/dev.c
++++ b/net/core/dev.c
+@@ -219,14 +219,14 @@ static inline struct hlist_head *dev_index_hash(struct net *net, int ifindex)
+ static inline void rps_lock(struct softnet_data *sd)
+ {
+ #ifdef CONFIG_RPS
+- spin_lock(&sd->input_pkt_queue.lock);
++ raw_spin_lock(&sd->input_pkt_queue.raw_lock);
+ #endif
+ }
+
+ static inline void rps_unlock(struct softnet_data *sd)
+ {
+ #ifdef CONFIG_RPS
+- spin_unlock(&sd->input_pkt_queue.lock);
++ raw_spin_unlock(&sd->input_pkt_queue.raw_lock);
+ #endif
+ }
+
+@@ -5858,7 +5858,9 @@ static int process_backlog(struct napi_struct *napi, int quota)
+ while (again) {
+ struct sk_buff *skb;
+
++ local_irq_disable();
+ while ((skb = __skb_dequeue(&sd->process_queue))) {
++ local_irq_enable();
+ rcu_read_lock();
+ __netif_receive_skb(skb);
+ rcu_read_unlock();
+@@ -5866,9 +5868,9 @@ static int process_backlog(struct napi_struct *napi, int quota)
+ if (++work >= quota)
+ return work;
+
++ local_irq_disable();
+ }
+
+- local_irq_disable();
+ rps_lock(sd);
+ if (skb_queue_empty(&sd->input_pkt_queue)) {
+ /*
+@@ -6341,13 +6343,21 @@ static __latent_entropy void net_rx_action(struct softirq_action *h)
+ unsigned long time_limit = jiffies +
+ usecs_to_jiffies(netdev_budget_usecs);
+ int budget = netdev_budget;
++ struct sk_buff_head tofree_q;
++ struct sk_buff *skb;
+ LIST_HEAD(list);
+ LIST_HEAD(repoll);
+
++ __skb_queue_head_init(&tofree_q);
++
+ local_irq_disable();
++ skb_queue_splice_init(&sd->tofree_queue, &tofree_q);
+ list_splice_init(&sd->poll_list, &list);
+ local_irq_enable();
+
++ while ((skb = __skb_dequeue(&tofree_q)))
++ kfree_skb(skb);
++
+ for (;;) {
+ struct napi_struct *n;
+
+@@ -9545,10 +9555,13 @@ static int dev_cpu_dead(unsigned int oldcpu)
+ netif_rx_ni(skb);
+ input_queue_head_incr(oldsd);
+ }
+- while ((skb = skb_dequeue(&oldsd->input_pkt_queue))) {
++ while ((skb = __skb_dequeue(&oldsd->input_pkt_queue))) {
+ netif_rx_ni(skb);
+ input_queue_head_incr(oldsd);
+ }
++ while ((skb = __skb_dequeue(&oldsd->tofree_queue))) {
++ kfree_skb(skb);
++ }
+
+ return 0;
+ }
+@@ -9859,8 +9872,9 @@ static int __init net_dev_init(void)
+
+ INIT_WORK(flush, flush_backlog);
+
+- skb_queue_head_init(&sd->input_pkt_queue);
+- skb_queue_head_init(&sd->process_queue);
++ skb_queue_head_init_raw(&sd->input_pkt_queue);
++ skb_queue_head_init_raw(&sd->process_queue);
++ skb_queue_head_init_raw(&sd->tofree_queue);
+ #ifdef CONFIG_XFRM_OFFLOAD
+ skb_queue_head_init(&sd->xfrm_backlog);
+ #endif
+--
+2.36.1
+
diff --git a/debian/patches-rt/0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch b/debian/patches-rt/0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch
new file mode 100644
index 000000000..242d9fd91
--- /dev/null
+++ b/debian/patches-rt/0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch
@@ -0,0 +1,189 @@
+From 5b1c12f86da1a979d45cda068adc9b597bc37e53 Mon Sep 17 00:00:00 2001
+From: Clark Williams <williams@redhat.com>
+Date: Fri, 17 Dec 2021 14:31:31 -0600
+Subject: [PATCH 198/347] net: move xmit_recursion to per-task variable on -RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+A softirq on -RT can be preempted. That means one task is in
+__dev_queue_xmit(), gets preempted and another task may enter
+__dev_queue_xmit() aw well. netperf together with a bridge device
+will then trigger the `recursion alert` because each task increments
+the xmit_recursion variable which is per-CPU.
+A virtual device like br0 is required to trigger this warning.
+
+This patch moves the lock owner and counter to be per task instead per-CPU so
+it counts the recursion properly on -RT. The owner is also a task now and not a
+CPU number.
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Clark Williams <williams@redhat.com>
+---
+ include/linux/netdevice.h | 71 +++++++++++++++++++++++++++++++++++++--
+ include/linux/sched.h | 3 ++
+ net/core/dev.c | 6 +++-
+ 3 files changed, 77 insertions(+), 3 deletions(-)
+
+diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
+index d893dc112afc..dfec34087039 100644
+--- a/include/linux/netdevice.h
++++ b/include/linux/netdevice.h
+@@ -588,7 +588,11 @@ struct netdev_queue {
+ * write-mostly part
+ */
+ spinlock_t _xmit_lock ____cacheline_aligned_in_smp;
++#ifdef CONFIG_PREEMPT_RT_FULL
++ struct task_struct *xmit_lock_owner;
++#else
+ int xmit_lock_owner;
++#endif
+ /*
+ * Time (in jiffies) of last Tx
+ */
+@@ -3009,14 +3013,38 @@ static inline void input_queue_tail_incr_save(struct softnet_data *sd,
+ #endif
+ }
+
++#define XMIT_RECURSION_LIMIT 8
+ DECLARE_PER_CPU_ALIGNED(struct softnet_data, softnet_data);
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++static inline int dev_recursion_level(void)
++{
++ return current->xmit_recursion;
++}
++
++static inline bool dev_xmit_recursion(void)
++{
++ return unlikely(current->xmit_recursion >
++ XMIT_RECURSION_LIMIT);
++}
++
++static inline void dev_xmit_recursion_inc(void)
++{
++ current->xmit_recursion++;
++}
++
++static inline void dev_xmit_recursion_dec(void)
++{
++ current->xmit_recursion--;
++}
++
++#else
++
+ static inline int dev_recursion_level(void)
+ {
+ return this_cpu_read(softnet_data.xmit.recursion);
+ }
+
+-#define XMIT_RECURSION_LIMIT 8
+ static inline bool dev_xmit_recursion(void)
+ {
+ return unlikely(__this_cpu_read(softnet_data.xmit.recursion) >
+@@ -3032,6 +3060,7 @@ static inline void dev_xmit_recursion_dec(void)
+ {
+ __this_cpu_dec(softnet_data.xmit.recursion);
+ }
++#endif
+
+ void __netif_schedule(struct Qdisc *q);
+ void netif_schedule_queue(struct netdev_queue *txq);
+@@ -3841,6 +3870,44 @@ static inline u32 netif_msg_init(int debug_value, int default_msg_enable_bits)
+ return (1U << debug_value) - 1;
+ }
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++static inline void netdev_queue_set_owner(struct netdev_queue *txq, int cpu)
++{
++ txq->xmit_lock_owner = current;
++}
++
++static inline void netdev_queue_clear_owner(struct netdev_queue *txq)
++{
++ txq->xmit_lock_owner = NULL;
++}
++
++static inline bool netdev_queue_has_owner(struct netdev_queue *txq)
++{
++ if (txq->xmit_lock_owner != NULL)
++ return true;
++ return false;
++}
++
++#else
++
++static inline void netdev_queue_set_owner(struct netdev_queue *txq, int cpu)
++{
++ txq->xmit_lock_owner = cpu;
++}
++
++static inline void netdev_queue_clear_owner(struct netdev_queue *txq)
++{
++ txq->xmit_lock_owner = -1;
++}
++
++static inline bool netdev_queue_has_owner(struct netdev_queue *txq)
++{
++ if (txq->xmit_lock_owner != -1)
++ return true;
++ return false;
++}
++#endif
++
+ static inline void __netif_tx_lock(struct netdev_queue *txq, int cpu)
+ {
+ spin_lock(&txq->_xmit_lock);
+@@ -3893,7 +3960,7 @@ static inline void __netif_tx_unlock_bh(struct netdev_queue *txq)
+
+ static inline void txq_trans_update(struct netdev_queue *txq)
+ {
+- if (txq->xmit_lock_owner != -1)
++ if (netdev_queue_has_owner(txq))
+ txq->trans_start = jiffies;
+ }
+
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index ceb3bdfb6bc4..b7a357635d60 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -1218,6 +1218,9 @@ struct task_struct {
+ #endif
+ #ifdef CONFIG_DEBUG_ATOMIC_SLEEP
+ unsigned long task_state_change;
++#endif
++#ifdef CONFIG_PREEMPT_RT_FULL
++ int xmit_recursion;
+ #endif
+ int pagefault_disabled;
+ #ifdef CONFIG_MMU
+diff --git a/net/core/dev.c b/net/core/dev.c
+index c279375fa5b9..a59b1db02f8b 100644
+--- a/net/core/dev.c
++++ b/net/core/dev.c
+@@ -3833,10 +3833,14 @@ static int __dev_queue_xmit(struct sk_buff *skb, struct net_device *sb_dev)
+ if (dev->flags & IFF_UP) {
+ int cpu = smp_processor_id(); /* ok because BHs are off */
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++ if (READ_ONCE(txq->xmit_lock_owner) != current) {
++#else
+ /* Other cpus might concurrently change txq->xmit_lock_owner
+ * to -1 or to their cpu id, but not to our id.
+ */
+ if (READ_ONCE(txq->xmit_lock_owner) != cpu) {
++#endif
+ if (dev_xmit_recursion())
+ goto recursion_alert;
+
+@@ -8594,7 +8598,7 @@ static void netdev_init_one_queue(struct net_device *dev,
+ /* Initialize queue lock */
+ spin_lock_init(&queue->_xmit_lock);
+ netdev_set_xmit_lockdep_class(&queue->_xmit_lock, dev->type);
+- queue->xmit_lock_owner = -1;
++ netdev_queue_clear_owner(queue);
+ netdev_queue_numa_node_write(queue, NUMA_NO_NODE);
+ queue->dev = dev;
+ #ifdef CONFIG_BQL
+--
+2.36.1
+
diff --git a/debian/patches-rt/0199-net-provide-a-way-to-delegate-processing-a-softirq-t.patch b/debian/patches-rt/0199-net-provide-a-way-to-delegate-processing-a-softirq-t.patch
new file mode 100644
index 000000000..ad68c8b6d
--- /dev/null
+++ b/debian/patches-rt/0199-net-provide-a-way-to-delegate-processing-a-softirq-t.patch
@@ -0,0 +1,89 @@
+From e035c89c203c5d80fa945338da5efe3ec563c7f7 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 20 Jan 2016 15:39:05 +0100
+Subject: [PATCH 199/347] net: provide a way to delegate processing a softirq
+ to ksoftirqd
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+If the NET_RX uses up all of his budget it moves the following NAPI
+invocations into the `ksoftirqd`. On -RT it does not do so. Instead it
+rises the NET_RX softirq in its current context again.
+
+In order to get closer to mainline's behaviour this patch provides
+__raise_softirq_irqoff_ksoft() which raises the softirq in the ksoftird.
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/interrupt.h | 8 ++++++++
+ kernel/softirq.c | 21 +++++++++++++++++++++
+ net/core/dev.c | 2 +-
+ 3 files changed, 30 insertions(+), 1 deletion(-)
+
+diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
+index e1438fe66467..97d9ba26915e 100644
+--- a/include/linux/interrupt.h
++++ b/include/linux/interrupt.h
+@@ -518,6 +518,14 @@ extern void thread_do_softirq(void);
+ extern void open_softirq(int nr, void (*action)(struct softirq_action *));
+ extern void softirq_init(void);
+ extern void __raise_softirq_irqoff(unsigned int nr);
++#ifdef CONFIG_PREEMPT_RT_FULL
++extern void __raise_softirq_irqoff_ksoft(unsigned int nr);
++#else
++static inline void __raise_softirq_irqoff_ksoft(unsigned int nr)
++{
++ __raise_softirq_irqoff(nr);
++}
++#endif
+
+ extern void raise_softirq_irqoff(unsigned int nr);
+ extern void raise_softirq(unsigned int nr);
+diff --git a/kernel/softirq.c b/kernel/softirq.c
+index 27a4bb2303d0..25bcf2f2714b 100644
+--- a/kernel/softirq.c
++++ b/kernel/softirq.c
+@@ -721,6 +721,27 @@ void __raise_softirq_irqoff(unsigned int nr)
+ wakeup_proper_softirq(nr);
+ }
+
++/*
++ * Same as __raise_softirq_irqoff() but will process them in ksoftirqd
++ */
++void __raise_softirq_irqoff_ksoft(unsigned int nr)
++{
++ unsigned int mask;
++
++ if (WARN_ON_ONCE(!__this_cpu_read(ksoftirqd) ||
++ !__this_cpu_read(ktimer_softirqd)))
++ return;
++ mask = 1UL << nr;
++
++ trace_softirq_raise(nr);
++ or_softirq_pending(mask);
++ if (mask & TIMER_SOFTIRQS)
++ __this_cpu_read(ktimer_softirqd)->softirqs_raised |= mask;
++ else
++ __this_cpu_read(ksoftirqd)->softirqs_raised |= mask;
++ wakeup_proper_softirq(nr);
++}
++
+ /*
+ * This function must run with irqs disabled!
+ */
+diff --git a/net/core/dev.c b/net/core/dev.c
+index a59b1db02f8b..2bf357d5602b 100644
+--- a/net/core/dev.c
++++ b/net/core/dev.c
+@@ -6391,7 +6391,7 @@ static __latent_entropy void net_rx_action(struct softirq_action *h)
+ list_splice_tail(&repoll, &list);
+ list_splice(&list, &sd->poll_list);
+ if (!list_empty(&sd->poll_list))
+- __raise_softirq_irqoff(NET_RX_SOFTIRQ);
++ __raise_softirq_irqoff_ksoft(NET_RX_SOFTIRQ);
+
+ net_rps_action_and_irq_enable(sd);
+ out:
+--
+2.36.1
+
diff --git a/debian/patches-rt/0200-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch b/debian/patches-rt/0200-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch
new file mode 100644
index 000000000..026e263e5
--- /dev/null
+++ b/debian/patches-rt/0200-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch
@@ -0,0 +1,42 @@
+From e58c64de87f7c5ae3df17d3f8c9615e1655176eb Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 30 Mar 2016 13:36:29 +0200
+Subject: [PATCH 200/347] net: dev: always take qdisc's busylock in
+ __dev_xmit_skb()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+by a task with a higher priority then the task with the higher priority
+won't be able to submit packets to the NIC directly instead they will be
+enqueued into the Qdisc. The NIC will remain idle until the task(s) with
+higher priority leave the CPU and the task with lower priority gets back
+and finishes the job.
+
+If we take always the busylock we ensure that the RT task can boost the
+low-prio task and submit the packet.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ net/core/dev.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/net/core/dev.c b/net/core/dev.c
+index 2bf357d5602b..7c59fa4d3ecf 100644
+--- a/net/core/dev.c
++++ b/net/core/dev.c
+@@ -3472,7 +3472,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.
+ */
++#ifdef CONFIG_PREEMPT_RT_FULL
++ contended = true;
++#else
+ contended = qdisc_is_running(q);
++#endif
+ if (unlikely(contended))
+ spin_lock(&q->busylock);
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0201-net-Qdisc-use-a-seqlock-instead-seqcount.patch b/debian/patches-rt/0201-net-Qdisc-use-a-seqlock-instead-seqcount.patch
new file mode 100644
index 000000000..8d15d62a7
--- /dev/null
+++ b/debian/patches-rt/0201-net-Qdisc-use-a-seqlock-instead-seqcount.patch
@@ -0,0 +1,293 @@
+From 561eb0fa2d08a2b919983a6deaaef8022a6d0707 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 14 Sep 2016 17:36:35 +0200
+Subject: [PATCH 201/347] net/Qdisc: use a seqlock instead seqcount
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+scheduled out. The seqlock on the other hand will serialize / sleep on
+the lock while writer is active.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/seqlock.h | 9 +++++++++
+ include/net/gen_stats.h | 9 +++++----
+ include/net/net_seq_lock.h | 15 +++++++++++++++
+ include/net/sch_generic.h | 19 +++++++++++++++++--
+ net/core/gen_estimator.c | 6 +++---
+ net/core/gen_stats.c | 8 ++++----
+ net/sched/sch_api.c | 2 +-
+ net/sched/sch_generic.c | 12 ++++++++++++
+ 8 files changed, 66 insertions(+), 14 deletions(-)
+ create mode 100644 include/net/net_seq_lock.h
+
+diff --git a/include/linux/seqlock.h b/include/linux/seqlock.h
+index a3768cfce914..31bc2cc99bf0 100644
+--- a/include/linux/seqlock.h
++++ b/include/linux/seqlock.h
+@@ -489,6 +489,15 @@ static inline void write_seqlock(seqlock_t *sl)
+ __raw_write_seqcount_begin(&sl->seqcount);
+ }
+
++static inline int try_write_seqlock(seqlock_t *sl)
++{
++ if (spin_trylock(&sl->lock)) {
++ __raw_write_seqcount_begin(&sl->seqcount);
++ return 1;
++ }
++ return 0;
++}
++
+ static inline void write_sequnlock(seqlock_t *sl)
+ {
+ __raw_write_seqcount_end(&sl->seqcount);
+diff --git a/include/net/gen_stats.h b/include/net/gen_stats.h
+index 883bb9085f15..3b593cdeb9af 100644
+--- a/include/net/gen_stats.h
++++ b/include/net/gen_stats.h
+@@ -6,6 +6,7 @@
+ #include <linux/socket.h>
+ #include <linux/rtnetlink.h>
+ #include <linux/pkt_sched.h>
++#include <net/net_seq_lock.h>
+
+ struct gnet_stats_basic_cpu {
+ struct gnet_stats_basic_packed bstats;
+@@ -36,11 +37,11 @@ int gnet_stats_start_copy_compat(struct sk_buff *skb, int type,
+ spinlock_t *lock, struct gnet_dump *d,
+ int padattr);
+
+-int gnet_stats_copy_basic(const seqcount_t *running,
++int gnet_stats_copy_basic(net_seqlock_t *running,
+ struct gnet_dump *d,
+ struct gnet_stats_basic_cpu __percpu *cpu,
+ struct gnet_stats_basic_packed *b);
+-void __gnet_stats_copy_basic(const seqcount_t *running,
++void __gnet_stats_copy_basic(net_seqlock_t *running,
+ struct gnet_stats_basic_packed *bstats,
+ struct gnet_stats_basic_cpu __percpu *cpu,
+ struct gnet_stats_basic_packed *b);
+@@ -60,13 +61,13 @@ int gen_new_estimator(struct gnet_stats_basic_packed *bstats,
+ struct gnet_stats_basic_cpu __percpu *cpu_bstats,
+ struct net_rate_estimator __rcu **rate_est,
+ spinlock_t *lock,
+- seqcount_t *running, struct nlattr *opt);
++ net_seqlock_t *running, struct nlattr *opt);
+ void gen_kill_estimator(struct net_rate_estimator __rcu **ptr);
+ int gen_replace_estimator(struct gnet_stats_basic_packed *bstats,
+ struct gnet_stats_basic_cpu __percpu *cpu_bstats,
+ struct net_rate_estimator __rcu **ptr,
+ spinlock_t *lock,
+- seqcount_t *running, struct nlattr *opt);
++ net_seqlock_t *running, struct nlattr *opt);
+ bool gen_estimator_active(struct net_rate_estimator __rcu **ptr);
+ bool gen_estimator_read(struct net_rate_estimator __rcu **ptr,
+ 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..a7034298a82a
+--- /dev/null
++++ b/include/net/net_seq_lock.h
+@@ -0,0 +1,15 @@
++#ifndef __NET_NET_SEQ_LOCK_H__
++#define __NET_NET_SEQ_LOCK_H__
++
++#ifdef CONFIG_PREEMPT_RT_BASE
++# define net_seqlock_t seqlock_t
++# define net_seq_begin(__r) read_seqbegin(__r)
++# define net_seq_retry(__r, __s) read_seqretry(__r, __s)
++
++#else
++# define net_seqlock_t seqcount_t
++# define net_seq_begin(__r) read_seqcount_begin(__r)
++# define net_seq_retry(__r, __s) read_seqcount_retry(__r, __s)
++#endif
++
++#endif
+diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
+index 483303adf3df..038204c7b05e 100644
+--- a/include/net/sch_generic.h
++++ b/include/net/sch_generic.h
+@@ -10,6 +10,7 @@
+ #include <linux/percpu.h>
+ #include <linux/dynamic_queue_limits.h>
+ #include <linux/list.h>
++#include <net/net_seq_lock.h>
+ #include <linux/refcount.h>
+ #include <linux/workqueue.h>
+ #include <net/gen_stats.h>
+@@ -100,7 +101,7 @@ struct Qdisc {
+ struct sk_buff_head gso_skb ____cacheline_aligned_in_smp;
+ struct qdisc_skb_head q;
+ struct gnet_stats_basic_packed bstats;
+- seqcount_t running;
++ net_seqlock_t running;
+ struct gnet_stats_queue qstats;
+ unsigned long state;
+ struct Qdisc *next_sched;
+@@ -135,7 +136,11 @@ static inline bool qdisc_is_running(struct Qdisc *qdisc)
+ {
+ if (qdisc->flags & TCQ_F_NOLOCK)
+ return spin_is_locked(&qdisc->seqlock);
++#ifdef CONFIG_PREEMPT_RT_BASE
++ return spin_is_locked(&qdisc->running.lock) ? true : false;
++#else
+ return (raw_read_seqcount(&qdisc->running) & 1) ? true : false;
++#endif
+ }
+
+ static inline bool qdisc_run_begin(struct Qdisc *qdisc)
+@@ -146,17 +151,27 @@ static inline bool qdisc_run_begin(struct Qdisc *qdisc)
+ } else if (qdisc_is_running(qdisc)) {
+ return false;
+ }
++#ifdef CONFIG_PREEMPT_RT_BASE
++ if (try_write_seqlock(&qdisc->running))
++ return true;
++ return false;
++#else
+ /* Variant of write_seqcount_begin() telling lockdep a trylock
+ * was attempted.
+ */
+ raw_write_seqcount_begin(&qdisc->running);
+ seqcount_acquire(&qdisc->running.dep_map, 0, 1, _RET_IP_);
+ return true;
++#endif
+ }
+
+ static inline void qdisc_run_end(struct Qdisc *qdisc)
+ {
++#ifdef CONFIG_PREEMPT_RT_BASE
++ write_sequnlock(&qdisc->running);
++#else
+ write_seqcount_end(&qdisc->running);
++#endif
+ if (qdisc->flags & TCQ_F_NOLOCK)
+ spin_unlock(&qdisc->seqlock);
+ }
+@@ -475,7 +490,7 @@ static inline spinlock_t *qdisc_root_sleeping_lock(const struct Qdisc *qdisc)
+ return qdisc_lock(root);
+ }
+
+-static inline seqcount_t *qdisc_root_sleeping_running(const struct Qdisc *qdisc)
++static inline net_seqlock_t *qdisc_root_sleeping_running(const struct Qdisc *qdisc)
+ {
+ struct Qdisc *root = qdisc_root_sleeping(qdisc);
+
+diff --git a/net/core/gen_estimator.c b/net/core/gen_estimator.c
+index 752744db11ff..7112e28b4130 100644
+--- a/net/core/gen_estimator.c
++++ b/net/core/gen_estimator.c
+@@ -46,7 +46,7 @@
+ struct net_rate_estimator {
+ struct gnet_stats_basic_packed *bstats;
+ spinlock_t *stats_lock;
+- seqcount_t *running;
++ net_seqlock_t *running;
+ struct gnet_stats_basic_cpu __percpu *cpu_bstats;
+ u8 ewma_log;
+ u8 intvl_log; /* period : (250ms << intvl_log) */
+@@ -129,7 +129,7 @@ int gen_new_estimator(struct gnet_stats_basic_packed *bstats,
+ struct gnet_stats_basic_cpu __percpu *cpu_bstats,
+ struct net_rate_estimator __rcu **rate_est,
+ spinlock_t *lock,
+- seqcount_t *running,
++ net_seqlock_t *running,
+ struct nlattr *opt)
+ {
+ struct gnet_estimator *parm = nla_data(opt);
+@@ -230,7 +230,7 @@ int gen_replace_estimator(struct gnet_stats_basic_packed *bstats,
+ struct gnet_stats_basic_cpu __percpu *cpu_bstats,
+ struct net_rate_estimator __rcu **rate_est,
+ spinlock_t *lock,
+- seqcount_t *running, struct nlattr *opt)
++ net_seqlock_t *running, struct nlattr *opt)
+ {
+ 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 e2fd8baec65f..8bab88738691 100644
+--- a/net/core/gen_stats.c
++++ b/net/core/gen_stats.c
+@@ -142,7 +142,7 @@ __gnet_stats_copy_basic_cpu(struct gnet_stats_basic_packed *bstats,
+ }
+
+ void
+-__gnet_stats_copy_basic(const seqcount_t *running,
++__gnet_stats_copy_basic(net_seqlock_t *running,
+ struct gnet_stats_basic_packed *bstats,
+ struct gnet_stats_basic_cpu __percpu *cpu,
+ struct gnet_stats_basic_packed *b)
+@@ -155,10 +155,10 @@ __gnet_stats_copy_basic(const seqcount_t *running,
+ }
+ do {
+ if (running)
+- seq = read_seqcount_begin(running);
++ seq = net_seq_begin(running);
+ bstats->bytes = b->bytes;
+ bstats->packets = b->packets;
+- } while (running && read_seqcount_retry(running, seq));
++ } while (running && net_seq_retry(running, seq));
+ }
+ EXPORT_SYMBOL(__gnet_stats_copy_basic);
+
+@@ -176,7 +176,7 @@ EXPORT_SYMBOL(__gnet_stats_copy_basic);
+ * if the room in the socket buffer was not sufficient.
+ */
+ int
+-gnet_stats_copy_basic(const seqcount_t *running,
++gnet_stats_copy_basic(net_seqlock_t *running,
+ struct gnet_dump *d,
+ 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 424e70907b96..6b4ee7c98d69 100644
+--- a/net/sched/sch_api.c
++++ b/net/sched/sch_api.c
+@@ -1191,7 +1191,7 @@ static struct Qdisc *qdisc_create(struct net_device *dev,
+ rcu_assign_pointer(sch->stab, stab);
+ }
+ if (tca[TCA_RATE]) {
+- seqcount_t *running;
++ net_seqlock_t *running;
+
+ err = -EOPNOTSUPP;
+ if (sch->flags & TCQ_F_MQROOT) {
+diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
+index 42a776abdf2f..cc4c4309a2b8 100644
+--- a/net/sched/sch_generic.c
++++ b/net/sched/sch_generic.c
+@@ -576,7 +576,11 @@ struct Qdisc noop_qdisc = {
+ .ops = &noop_qdisc_ops,
+ .q.lock = __SPIN_LOCK_UNLOCKED(noop_qdisc.q.lock),
+ .dev_queue = &noop_netdev_queue,
++#ifdef CONFIG_PREEMPT_RT_BASE
++ .running = __SEQLOCK_UNLOCKED(noop_qdisc.running),
++#else
+ .running = SEQCNT_ZERO(noop_qdisc.running),
++#endif
+ .busylock = __SPIN_LOCK_UNLOCKED(noop_qdisc.busylock),
+ .gso_skb = {
+ .next = (struct sk_buff *)&noop_qdisc.gso_skb,
+@@ -877,9 +881,17 @@ struct Qdisc *qdisc_alloc(struct netdev_queue *dev_queue,
+ lockdep_set_class(&sch->busylock,
+ dev->qdisc_tx_busylock ?: &qdisc_tx_busylock);
+
++#ifdef CONFIG_PREEMPT_RT_BASE
++ seqlock_init(&sch->running);
++ lockdep_set_class(&sch->running.seqcount,
++ dev->qdisc_running_key ?: &qdisc_running_key);
++ lockdep_set_class(&sch->running.lock,
++ dev->qdisc_running_key ?: &qdisc_running_key);
++#else
+ seqcount_init(&sch->running);
+ lockdep_set_class(&sch->running,
+ dev->qdisc_running_key ?: &qdisc_running_key);
++#endif
+
+ sch->ops = ops;
+ sch->flags = ops->static_flags;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0202-net-add-back-the-missing-serialization-in-ip_send_un.patch b/debian/patches-rt/0202-net-add-back-the-missing-serialization-in-ip_send_un.patch
new file mode 100644
index 000000000..b6925c62f
--- /dev/null
+++ b/debian/patches-rt/0202-net-add-back-the-missing-serialization-in-ip_send_un.patch
@@ -0,0 +1,99 @@
+From 3254a7bf68224051974bf79f76549e4592e45262 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 31 Aug 2016 17:21:56 +0200
+Subject: [PATCH 202/347] net: add back the missing serialization in
+ ip_send_unicast_reply()
+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/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Some time ago Sami Pietikäinen reported a crash on -RT in
+ip_send_unicast_reply() which was later fixed by Nicholas Mc Guire
+(v3.12.8-rt11). Later (v3.18.8) the code was reworked and I dropped the
+patch. As it turns out it was mistake.
+I have reports that the same crash is possible with a similar backtrace.
+It seems that vanilla protects access to this_cpu_ptr() via
+local_bh_disable(). This does not work the on -RT since we can have
+NET_RX and NET_TX running in parallel on the same CPU.
+This is brings back the old locks.
+
+|Unable to handle kernel NULL pointer dereference at virtual address 00000010
+|PC is at __ip_make_skb+0x198/0x3e8
+|[<c04e39d8>] (__ip_make_skb) from [<c04e3ca8>] (ip_push_pending_frames+0x20/0x40)
+|[<c04e3ca8>] (ip_push_pending_frames) from [<c04e3ff0>] (ip_send_unicast_reply+0x210/0x22c)
+|[<c04e3ff0>] (ip_send_unicast_reply) from [<c04fbb54>] (tcp_v4_send_reset+0x190/0x1c0)
+|[<c04fbb54>] (tcp_v4_send_reset) from [<c04fcc1c>] (tcp_v4_do_rcv+0x22c/0x288)
+|[<c04fcc1c>] (tcp_v4_do_rcv) from [<c0474364>] (release_sock+0xb4/0x150)
+|[<c0474364>] (release_sock) from [<c04ed904>] (tcp_close+0x240/0x454)
+|[<c04ed904>] (tcp_close) from [<c0511408>] (inet_release+0x74/0x7c)
+|[<c0511408>] (inet_release) from [<c0470728>] (sock_release+0x30/0xb0)
+|[<c0470728>] (sock_release) from [<c0470abc>] (sock_close+0x1c/0x24)
+|[<c0470abc>] (sock_close) from [<c0115ec4>] (__fput+0xe8/0x20c)
+|[<c0115ec4>] (__fput) from [<c0116050>] (____fput+0x18/0x1c)
+|[<c0116050>] (____fput) from [<c0058138>] (task_work_run+0xa4/0xb8)
+|[<c0058138>] (task_work_run) from [<c0011478>] (do_work_pending+0xd0/0xe4)
+|[<c0011478>] (do_work_pending) from [<c000e740>] (work_pending+0xc/0x20)
+|Code: e3530001 8a000001 e3a00040 ea000011 (e5973010)
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ net/ipv4/tcp_ipv4.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
+index 2719c60f285b..8e2db5007f59 100644
+--- a/net/ipv4/tcp_ipv4.c
++++ b/net/ipv4/tcp_ipv4.c
+@@ -62,6 +62,7 @@
+ #include <linux/init.h>
+ #include <linux/times.h>
+ #include <linux/slab.h>
++#include <linux/locallock.h>
+
+ #include <net/net_namespace.h>
+ #include <net/icmp.h>
+@@ -637,6 +638,7 @@ void tcp_v4_send_check(struct sock *sk, struct sk_buff *skb)
+ }
+ EXPORT_SYMBOL(tcp_v4_send_check);
+
++static DEFINE_LOCAL_IRQ_LOCK(tcp_sk_lock);
+ /*
+ * This routine will send an RST to the other tcp.
+ *
+@@ -771,6 +773,7 @@ static void tcp_v4_send_reset(const struct sock *sk, struct sk_buff *skb)
+ arg.tos = ip_hdr(skb)->tos;
+ arg.uid = sock_net_uid(net, sk && sk_fullsock(sk) ? sk : NULL);
+ local_bh_disable();
++ local_lock(tcp_sk_lock);
+ ctl_sk = *this_cpu_ptr(net->ipv4.tcp_sk);
+ if (sk)
+ ctl_sk->sk_mark = (sk->sk_state == TCP_TIME_WAIT) ?
+@@ -783,6 +786,7 @@ static void tcp_v4_send_reset(const struct sock *sk, struct sk_buff *skb)
+ ctl_sk->sk_mark = 0;
+ __TCP_INC_STATS(net, TCP_MIB_OUTSEGS);
+ __TCP_INC_STATS(net, TCP_MIB_OUTRSTS);
++ local_unlock(tcp_sk_lock);
+ local_bh_enable();
+
+ #ifdef CONFIG_TCP_MD5SIG
+@@ -863,6 +867,7 @@ static void tcp_v4_send_ack(const struct sock *sk,
+ arg.tos = tos;
+ arg.uid = sock_net_uid(net, sk_fullsock(sk) ? sk : NULL);
+ local_bh_disable();
++ local_lock(tcp_sk_lock);
+ ctl_sk = *this_cpu_ptr(net->ipv4.tcp_sk);
+ if (sk)
+ ctl_sk->sk_mark = (sk->sk_state == TCP_TIME_WAIT) ?
+@@ -874,6 +879,7 @@ static void tcp_v4_send_ack(const struct sock *sk,
+
+ ctl_sk->sk_mark = 0;
+ __TCP_INC_STATS(net, TCP_MIB_OUTSEGS);
++ local_unlock(tcp_sk_lock);
+ local_bh_enable();
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0203-net-add-a-lock-around-icmp_sk.patch b/debian/patches-rt/0203-net-add-a-lock-around-icmp_sk.patch
new file mode 100644
index 000000000..fa2ad051e
--- /dev/null
+++ b/debian/patches-rt/0203-net-add-a-lock-around-icmp_sk.patch
@@ -0,0 +1,65 @@
+From 95179968fe9e7b7b6484facb14b8ac985cc0d779 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 31 Aug 2016 17:54:09 +0200
+Subject: [PATCH 203/347] net: add a lock around icmp_sk()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+It looks like the this_cpu_ptr() access in icmp_sk() is protected with
+local_bh_disable(). To avoid missing serialization in -RT I am adding
+here a local lock. No crash has been observed, this is just precaution.
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ net/ipv4/icmp.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c
+index fe10a565b7d8..d35719e08aef 100644
+--- a/net/ipv4/icmp.c
++++ b/net/ipv4/icmp.c
+@@ -77,6 +77,7 @@
+ #include <linux/string.h>
+ #include <linux/netfilter_ipv4.h>
+ #include <linux/slab.h>
++#include <linux/locallock.h>
+ #include <net/snmp.h>
+ #include <net/ip.h>
+ #include <net/route.h>
+@@ -204,6 +205,8 @@ static const struct icmp_control icmp_pointers[NR_ICMP_TYPES+1];
+ *
+ * On SMP we have one ICMP socket per-cpu.
+ */
++static DEFINE_LOCAL_IRQ_LOCK(icmp_sk_lock);
++
+ static struct sock *icmp_sk(struct net *net)
+ {
+ return *this_cpu_ptr(net->ipv4.icmp_sk);
+@@ -214,12 +217,16 @@ static inline struct sock *icmp_xmit_lock(struct net *net)
+ {
+ struct sock *sk;
+
++ if (!local_trylock(icmp_sk_lock))
++ return NULL;
++
+ sk = icmp_sk(net);
+
+ if (unlikely(!spin_trylock(&sk->sk_lock.slock))) {
+ /* This can happen if the output path signals a
+ * dst_link_failure() for an outgoing ICMP packet.
+ */
++ local_unlock(icmp_sk_lock);
+ return NULL;
+ }
+ return sk;
+@@ -228,6 +235,7 @@ static inline struct sock *icmp_xmit_lock(struct net *net)
+ static inline void icmp_xmit_unlock(struct sock *sk)
+ {
+ spin_unlock(&sk->sk_lock.slock);
++ local_unlock(icmp_sk_lock);
+ }
+
+ int sysctl_icmp_msgs_per_sec __read_mostly = 1000;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0204-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch b/debian/patches-rt/0204-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch
new file mode 100644
index 000000000..5a4aed73f
--- /dev/null
+++ b/debian/patches-rt/0204-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch
@@ -0,0 +1,77 @@
+From 2faaff72af2ce49a00236dbfe09246e3099229ec Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <rostedt@goodmis.org>
+Date: Tue, 6 Dec 2016 17:50:30 -0500
+Subject: [PATCH 204/347] net: Have __napi_schedule_irqoff() disable interrupts
+ on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+A customer hit a crash where the napi sd->poll_list became corrupted.
+The customer had the bnx2x driver, which does a
+__napi_schedule_irqoff() in its interrupt handler. Unfortunately, when
+running with CONFIG_PREEMPT_RT_FULL, this interrupt handler is run as a
+thread and is preemptable. The call to ____napi_schedule() must be done
+with interrupts disabled to protect the per cpu softnet_data's
+"poll_list, which is protected by disabling interrupts (disabling
+preemption is enough when all interrupts are threaded and
+local_bh_disable() can't preempt)."
+
+As bnx2x isn't the only driver that does this, the safest thing to do
+is to make __napi_schedule_irqoff() call __napi_schedule() instead when
+CONFIG_PREEMPT_RT_FULL is enabled, which will call local_irq_save()
+before calling ____napi_schedule().
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Steven Rostedt (Red Hat) <rostedt@goodmis.org>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/netdevice.h | 12 ++++++++++++
+ net/core/dev.c | 2 ++
+ 2 files changed, 14 insertions(+)
+
+diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
+index dfec34087039..c4713217b20e 100644
+--- a/include/linux/netdevice.h
++++ b/include/linux/netdevice.h
+@@ -423,7 +423,19 @@ typedef enum rx_handler_result rx_handler_result_t;
+ typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **pskb);
+
+ void __napi_schedule(struct napi_struct *n);
++
++/*
++ * When PREEMPT_RT_FULL is defined, all device interrupt handlers
++ * run as threads, and they can also be preempted (without PREEMPT_RT
++ * interrupt threads can not be preempted). Which means that calling
++ * __napi_schedule_irqoff() from an interrupt handler can be preempted
++ * and can corrupt the napi->poll_list.
++ */
++#ifdef CONFIG_PREEMPT_RT_FULL
++#define __napi_schedule_irqoff(n) __napi_schedule(n)
++#else
+ void __napi_schedule_irqoff(struct napi_struct *n);
++#endif
+
+ static inline bool napi_disable_pending(struct napi_struct *n)
+ {
+diff --git a/net/core/dev.c b/net/core/dev.c
+index 7c59fa4d3ecf..e65dc7a7cc13 100644
+--- a/net/core/dev.c
++++ b/net/core/dev.c
+@@ -5953,6 +5953,7 @@ bool napi_schedule_prep(struct napi_struct *n)
+ }
+ EXPORT_SYMBOL(napi_schedule_prep);
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ /**
+ * __napi_schedule_irqoff - schedule for receive
+ * @n: entry to schedule
+@@ -5971,6 +5972,7 @@ void __napi_schedule_irqoff(struct napi_struct *n)
+ __napi_schedule(n);
+ }
+ EXPORT_SYMBOL(__napi_schedule_irqoff);
++#endif
+
+ bool napi_complete_done(struct napi_struct *n, int work_done)
+ {
+--
+2.36.1
+
diff --git a/debian/patches-rt/0205-irqwork-push-most-work-into-softirq-context.patch b/debian/patches-rt/0205-irqwork-push-most-work-into-softirq-context.patch
new file mode 100644
index 000000000..964c52d2e
--- /dev/null
+++ b/debian/patches-rt/0205-irqwork-push-most-work-into-softirq-context.patch
@@ -0,0 +1,264 @@
+From c0405a2b67942dd7f8564a25fa5580c8f2774765 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 23 Jun 2015 15:32:51 +0200
+Subject: [PATCH 205/347] irqwork: push most work into softirq context
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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.
+The NOHZ trigger (nohz_full_kick_work) was the first user that did not work
+as expected if it did not run in the original irqwork context so we had to
+bring it back somehow for it. push_irq_work_func is the second one that
+requires this.
+
+This patch adds the IRQ_WORK_HARD_IRQ which makes sure the callback runs
+in raw-irq context. Everything else is defered into softirq context. Without
+-RT we have the orignal behavior.
+
+This patch incorporates tglx orignal work which revoked a little bringing back
+the arch_irq_work_raise() if possible and a few fixes from Steven Rostedt and
+Mike Galbraith,
+
+[bigeasy: melt tglx's irq_work_tick_soft() which splits irq_work_tick() into a
+ hard and soft variant]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/irq_work.h | 8 +++++
+ kernel/irq_work.c | 75 ++++++++++++++++++++++++++++++----------
+ kernel/rcu/tree.c | 1 +
+ kernel/sched/topology.c | 1 +
+ kernel/time/tick-sched.c | 1 +
+ kernel/time/timer.c | 2 ++
+ 6 files changed, 70 insertions(+), 18 deletions(-)
+
+diff --git a/include/linux/irq_work.h b/include/linux/irq_work.h
+index b11fcdfd0770..0c50559987c5 100644
+--- a/include/linux/irq_work.h
++++ b/include/linux/irq_work.h
+@@ -18,6 +18,8 @@
+
+ /* Doesn't want IPI, wait for tick: */
+ #define IRQ_WORK_LAZY BIT(2)
++/* Run hard IRQ context, even on RT */
++#define IRQ_WORK_HARD_IRQ BIT(3)
+
+ #define IRQ_WORK_CLAIMED (IRQ_WORK_PENDING | IRQ_WORK_BUSY)
+
+@@ -52,4 +54,10 @@ static inline bool irq_work_needs_cpu(void) { return false; }
+ static inline void irq_work_run(void) { }
+ #endif
+
++#if defined(CONFIG_IRQ_WORK) && defined(CONFIG_PREEMPT_RT_FULL)
++void irq_work_tick_soft(void);
++#else
++static inline void irq_work_tick_soft(void) { }
++#endif
++
+ #endif /* _LINUX_IRQ_WORK_H */
+diff --git a/kernel/irq_work.c b/kernel/irq_work.c
+index 73288914ed5e..2940622da5b3 100644
+--- a/kernel/irq_work.c
++++ b/kernel/irq_work.c
+@@ -17,6 +17,7 @@
+ #include <linux/cpu.h>
+ #include <linux/notifier.h>
+ #include <linux/smp.h>
++#include <linux/interrupt.h>
+ #include <asm/processor.h>
+
+
+@@ -57,29 +58,35 @@ void __weak arch_irq_work_raise(void)
+ }
+
+ /* Enqueue on current CPU, work must already be claimed and preempt disabled */
+-static void __irq_work_queue_local(struct irq_work *work)
++static void __irq_work_queue_local(struct irq_work *work, struct llist_head *list)
+ {
+- /* If the work is "lazy", handle it from next tick if any */
+- if (work->flags & IRQ_WORK_LAZY) {
+- if (llist_add(&work->llnode, this_cpu_ptr(&lazy_list)) &&
+- tick_nohz_tick_stopped())
+- arch_irq_work_raise();
+- } else {
+- if (llist_add(&work->llnode, this_cpu_ptr(&raised_list)))
+- arch_irq_work_raise();
+- }
++ bool empty;
++
++ empty = llist_add(&work->llnode, list);
++
++ if (empty &&
++ (!(work->flags & IRQ_WORK_LAZY) ||
++ tick_nohz_tick_stopped()))
++ arch_irq_work_raise();
+ }
+
+ /* Enqueue the irq work @work on the current CPU */
+ bool irq_work_queue(struct irq_work *work)
+ {
++ struct llist_head *list;
++
+ /* Only queue if not already pending */
+ if (!irq_work_claim(work))
+ return false;
+
+ /* Queue the entry and raise the IPI if needed. */
+ preempt_disable();
+- __irq_work_queue_local(work);
++ if (IS_ENABLED(CONFIG_PREEMPT_RT_FULL) && !(work->flags & IRQ_WORK_HARD_IRQ))
++ list = this_cpu_ptr(&lazy_list);
++ else
++ list = this_cpu_ptr(&raised_list);
++
++ __irq_work_queue_local(work, list);
+ preempt_enable();
+
+ return true;
+@@ -98,6 +105,9 @@ bool irq_work_queue_on(struct irq_work *work, int cpu)
+ return irq_work_queue(work);
+
+ #else /* CONFIG_SMP: */
++ struct llist_head *list;
++ bool lazy_work, realtime = IS_ENABLED(CONFIG_PREEMPT_RT_FULL);
++
+ /* All work should have been flushed before going offline */
+ WARN_ON_ONCE(cpu_is_offline(cpu));
+
+@@ -106,13 +116,21 @@ bool irq_work_queue_on(struct irq_work *work, int cpu)
+ return false;
+
+ preempt_disable();
++
++ lazy_work = work->flags & IRQ_WORK_LAZY;
++
++ if (lazy_work || (realtime && !(work->flags & IRQ_WORK_HARD_IRQ)))
++ list = &per_cpu(lazy_list, cpu);
++ else
++ list = &per_cpu(raised_list, cpu);
++
+ if (cpu != smp_processor_id()) {
+ /* Arch remote IPI send/receive backend aren't NMI safe */
+ WARN_ON_ONCE(in_nmi());
+- if (llist_add(&work->llnode, &per_cpu(raised_list, cpu)))
++ if (llist_add(&work->llnode, list))
+ arch_send_call_function_single_ipi(cpu);
+ } else {
+- __irq_work_queue_local(work);
++ __irq_work_queue_local(work, list);
+ }
+ preempt_enable();
+
+@@ -128,9 +146,8 @@ bool irq_work_needs_cpu(void)
+ raised = this_cpu_ptr(&raised_list);
+ lazy = this_cpu_ptr(&lazy_list);
+
+- if (llist_empty(raised) || arch_irq_work_has_interrupt())
+- if (llist_empty(lazy))
+- return false;
++ if (llist_empty(raised) && llist_empty(lazy))
++ return false;
+
+ /* All work should have been flushed before going offline */
+ WARN_ON_ONCE(cpu_is_offline(smp_processor_id()));
+@@ -144,8 +161,12 @@ static void irq_work_run_list(struct llist_head *list)
+ struct llist_node *llnode;
+ unsigned long flags;
+
++#ifndef CONFIG_PREEMPT_RT_FULL
++ /*
++ * nort: On RT IRQ-work may run in SOFTIRQ context.
++ */
+ BUG_ON(!irqs_disabled());
+-
++#endif
+ if (llist_empty(list))
+ return;
+
+@@ -177,7 +198,16 @@ static void irq_work_run_list(struct llist_head *list)
+ void irq_work_run(void)
+ {
+ irq_work_run_list(this_cpu_ptr(&raised_list));
+- irq_work_run_list(this_cpu_ptr(&lazy_list));
++ if (IS_ENABLED(CONFIG_PREEMPT_RT_FULL)) {
++ /*
++ * NOTE: we raise softirq via IPI for safety,
++ * and execute in irq_work_tick() to move the
++ * overhead from hard to soft irq context.
++ */
++ if (!llist_empty(this_cpu_ptr(&lazy_list)))
++ raise_softirq(TIMER_SOFTIRQ);
++ } else
++ irq_work_run_list(this_cpu_ptr(&lazy_list));
+ }
+ EXPORT_SYMBOL_GPL(irq_work_run);
+
+@@ -187,8 +217,17 @@ void irq_work_tick(void)
+
+ if (!llist_empty(raised) && !arch_irq_work_has_interrupt())
+ irq_work_run_list(raised);
++
++ if (!IS_ENABLED(CONFIG_PREEMPT_RT_FULL))
++ irq_work_run_list(this_cpu_ptr(&lazy_list));
++}
++
++#if defined(CONFIG_IRQ_WORK) && defined(CONFIG_PREEMPT_RT_FULL)
++void irq_work_tick_soft(void)
++{
+ irq_work_run_list(this_cpu_ptr(&lazy_list));
+ }
++#endif
+
+ /*
+ * Synchronize against the irq_work @entry, ensures the entry is not
+diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
+index f162a4f54b05..278fe66bfb70 100644
+--- a/kernel/rcu/tree.c
++++ b/kernel/rcu/tree.c
+@@ -1296,6 +1296,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp)
+ !rdp->rcu_iw_pending && rdp->rcu_iw_gp_seq != rnp->gp_seq &&
+ (rnp->ffmask & rdp->grpmask)) {
+ init_irq_work(&rdp->rcu_iw, rcu_iw_handler);
++ rdp->rcu_iw.flags = IRQ_WORK_HARD_IRQ;
+ rdp->rcu_iw_pending = true;
+ rdp->rcu_iw_gp_seq = rnp->gp_seq;
+ irq_work_queue_on(&rdp->rcu_iw, rdp->cpu);
+diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
+index 02e85cd233d4..208af1181bf5 100644
+--- a/kernel/sched/topology.c
++++ b/kernel/sched/topology.c
+@@ -279,6 +279,7 @@ static int init_rootdomain(struct root_domain *rd)
+ rd->rto_cpu = -1;
+ raw_spin_lock_init(&rd->rto_lock);
+ init_irq_work(&rd->rto_push_work, rto_push_irq_work_func);
++ rd->rto_push_work.flags |= IRQ_WORK_HARD_IRQ;
+ #endif
+
+ init_dl_bw(&rd->dl_bw);
+diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
+index 2b0ddd50e879..4d31ec98e968 100644
+--- a/kernel/time/tick-sched.c
++++ b/kernel/time/tick-sched.c
+@@ -236,6 +236,7 @@ static void nohz_full_kick_func(struct irq_work *work)
+
+ static DEFINE_PER_CPU(struct irq_work, nohz_full_kick_work) = {
+ .func = nohz_full_kick_func,
++ .flags = IRQ_WORK_HARD_IRQ,
+ };
+
+ /*
+diff --git a/kernel/time/timer.c b/kernel/time/timer.c
+index 3cb79167852f..c7bd68db6f63 100644
+--- a/kernel/time/timer.c
++++ b/kernel/time/timer.c
+@@ -1747,6 +1747,8 @@ static __latent_entropy void run_timer_softirq(struct softirq_action *h)
+ {
+ struct timer_base *base = this_cpu_ptr(&timer_bases[BASE_STD]);
+
++ irq_work_tick_soft();
++
+ __run_timers(base);
+ if (IS_ENABLED(CONFIG_NO_HZ_COMMON))
+ __run_timers(this_cpu_ptr(&timer_bases[BASE_DEF]));
+--
+2.36.1
+
diff --git a/debian/patches-rt/0206-printk-Make-rt-aware.patch b/debian/patches-rt/0206-printk-Make-rt-aware.patch
new file mode 100644
index 000000000..0ca16f202
--- /dev/null
+++ b/debian/patches-rt/0206-printk-Make-rt-aware.patch
@@ -0,0 +1,114 @@
+From fe512f6331aa2cda166c08988965010dd06d68e3 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 19 Sep 2012 14:50:37 +0200
+Subject: [PATCH 206/347] printk: Make rt aware
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Drop the lock before calling the console driver and do not disable
+interrupts while printing to a serial console.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ kernel/printk/printk.c | 33 ++++++++++++++++++++++++++++++---
+ 1 file changed, 30 insertions(+), 3 deletions(-)
+
+diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
+index 7b774743e1ac..c06b1e00448d 100644
+--- a/kernel/printk/printk.c
++++ b/kernel/printk/printk.c
+@@ -1654,6 +1654,7 @@ SYSCALL_DEFINE3(syslog, int, type, char __user *, buf, int, len)
+ return do_syslog(type, buf, len, SYSLOG_FROM_READER);
+ }
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ /*
+ * 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.
+@@ -1794,6 +1795,15 @@ static int console_trylock_spinning(void)
+ return 1;
+ }
+
++#else
++
++static int console_trylock_spinning(void)
++{
++ return console_trylock();
++}
++
++#endif
++
+ /*
+ * Call the console drivers, asking them to write out
+ * log_buf[start] to log_buf[end - 1].
+@@ -1809,6 +1819,7 @@ static void call_console_drivers(const char *ext_text, size_t ext_len,
+ if (!console_drivers)
+ return;
+
++ migrate_disable();
+ for_each_console(con) {
+ if (exclusive_console && con != exclusive_console)
+ continue;
+@@ -1824,6 +1835,7 @@ static void call_console_drivers(const char *ext_text, size_t ext_len,
+ else
+ con->write(con, text, len);
+ }
++ migrate_enable();
+ }
+
+ int printk_delay_msec __read_mostly;
+@@ -2018,20 +2030,30 @@ asmlinkage int vprintk_emit(int facility, int level,
+
+ /* If called from the scheduler, we can not call up(). */
+ if (!in_sched && pending_output) {
++ int may_trylock = 1;
++
++#ifdef CONFIG_PREEMPT_RT_FULL
++ /*
++ * we can't take a sleeping lock with IRQs or preeption disabled
++ * so we can't print in these contexts
++ */
++ if (!(preempt_count() == 0 && !irqs_disabled()))
++ may_trylock = 0;
++#endif
+ /*
+ * Disable preemption to avoid being preempted while holding
+ * console_sem which would prevent anyone from printing to
+ * console
+ */
+- preempt_disable();
++ migrate_disable();
+ /*
+ * Try to acquire and then immediately release the console
+ * semaphore. The release will print out buffers and wake up
+ * /dev/kmsg and syslog() users.
+ */
+- if (console_trylock_spinning())
++ if (may_trylock && console_trylock_spinning())
+ console_unlock();
+- preempt_enable();
++ migrate_enable();
+ }
+
+ if (pending_output)
+@@ -2503,6 +2525,10 @@ void console_unlock(void)
+ console_seq++;
+ raw_spin_unlock(&logbuf_lock);
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++ printk_safe_exit_irqrestore(flags);
++ call_console_drivers(ext_text, ext_len, text, len);
++#else
+ /*
+ * While actively printing out messages, if another printk()
+ * were to occur on another CPU, it may wait for this one to
+@@ -2521,6 +2547,7 @@ void console_unlock(void)
+ }
+
+ printk_safe_exit_irqrestore(flags);
++#endif
+
+ if (do_cond_resched)
+ cond_resched();
+--
+2.36.1
+
diff --git a/debian/patches-rt/0207-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch b/debian/patches-rt/0207-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch
new file mode 100644
index 000000000..75627e24f
--- /dev/null
+++ b/debian/patches-rt/0207-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch
@@ -0,0 +1,48 @@
+From 5ff42463701b87deff98424f5417e808d69fd327 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 19 May 2016 17:45:27 +0200
+Subject: [PATCH 207/347] kernel/printk: Don't try to print from IRQ/NMI region
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+On -RT we try to acquire sleeping locks which might lead to warnings
+from lockdep or a warn_on() from spin_try_lock() (which is a rtmutex on
+RT).
+We don't print in general from a IRQ off region so we should not try
+this via console_unblank() / bust_spinlocks() as well.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/printk/printk.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
+index c06b1e00448d..273f2c7864b5 100644
+--- a/kernel/printk/printk.c
++++ b/kernel/printk/printk.c
+@@ -1819,6 +1819,11 @@ static void call_console_drivers(const char *ext_text, size_t ext_len,
+ if (!console_drivers)
+ return;
+
++ if (IS_ENABLED(CONFIG_PREEMPT_RT_BASE)) {
++ if (in_irq() || in_nmi())
++ return;
++ }
++
+ migrate_disable();
+ for_each_console(con) {
+ if (exclusive_console && con != exclusive_console)
+@@ -2595,6 +2600,11 @@ void console_unblank(void)
+ {
+ struct console *c;
+
++ if (IS_ENABLED(CONFIG_PREEMPT_RT_BASE)) {
++ if (in_irq() || in_nmi())
++ return;
++ }
++
+ /*
+ * console_unblank can no longer be called in interrupt context unless
+ * oops_in_progress is set to 1..
+--
+2.36.1
+
diff --git a/debian/patches-rt/0208-printk-Drop-the-logbuf_lock-more-often.patch b/debian/patches-rt/0208-printk-Drop-the-logbuf_lock-more-often.patch
new file mode 100644
index 000000000..bc4f44f50
--- /dev/null
+++ b/debian/patches-rt/0208-printk-Drop-the-logbuf_lock-more-often.patch
@@ -0,0 +1,83 @@
+From b4bf7654e00cd7da0d18577698e25eb199de2d57 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 21 Mar 2013 19:01:05 +0100
+Subject: [PATCH 208/347] printk: Drop the logbuf_lock more often
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The lock is hold with irgs off. The latency drops 500us+ on my arm bugs
+with a "full" buffer after executing "dmesg" on the shell.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/printk/printk.c | 28 ++++++++++++++++++++++++++++
+ 1 file changed, 28 insertions(+)
+
+diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
+index 273f2c7864b5..1e0988a0bb97 100644
+--- a/kernel/printk/printk.c
++++ b/kernel/printk/printk.c
+@@ -1457,12 +1457,23 @@ static int syslog_print_all(char __user *buf, int size, bool clear)
+ u64 next_seq;
+ u64 seq;
+ u32 idx;
++ int attempts = 0;
++ int num_msg;
+
+ text = kmalloc(LOG_LINE_MAX + PREFIX_MAX, GFP_KERNEL);
+ if (!text)
+ return -ENOMEM;
+
+ logbuf_lock_irq();
++
++try_again:
++ attempts++;
++ if (attempts > 10) {
++ len = -EBUSY;
++ goto out;
++ }
++ num_msg = 0;
++
+ /*
+ * Find first record that fits, including all following records,
+ * into the user-provided buffer for this dump.
+@@ -1475,6 +1486,14 @@ static int syslog_print_all(char __user *buf, int size, bool clear)
+ len += msg_print_text(msg, true, NULL, 0);
+ idx = log_next(idx);
+ seq++;
++ num_msg++;
++ if (num_msg > 5) {
++ num_msg = 0;
++ logbuf_unlock_irq();
++ logbuf_lock_irq();
++ if (clear_seq < log_first_seq)
++ goto try_again;
++ }
+ }
+
+ /* move first record forward until length fits into the buffer */
+@@ -1486,6 +1505,14 @@ static int syslog_print_all(char __user *buf, int size, bool clear)
+ len -= msg_print_text(msg, true, NULL, 0);
+ idx = log_next(idx);
+ seq++;
++ num_msg++;
++ if (num_msg > 5) {
++ num_msg = 0;
++ logbuf_unlock_irq();
++ logbuf_lock_irq();
++ if (clear_seq < log_first_seq)
++ goto try_again;
++ }
+ }
+
+ /* last message fitting into this dump */
+@@ -1523,6 +1550,7 @@ static int syslog_print_all(char __user *buf, int size, bool clear)
+ clear_seq = log_next_seq;
+ clear_idx = log_next_idx;
+ }
++out:
+ logbuf_unlock_irq();
+
+ kfree(text);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0209-ARM-enable-irq-in-translation-section-permission-fau.patch b/debian/patches-rt/0209-ARM-enable-irq-in-translation-section-permission-fau.patch
new file mode 100644
index 000000000..58d59fbae
--- /dev/null
+++ b/debian/patches-rt/0209-ARM-enable-irq-in-translation-section-permission-fau.patch
@@ -0,0 +1,96 @@
+From c4bff0275d502012b7673069a3d2da755e67cdfb Mon Sep 17 00:00:00 2001
+From: "Yadi.hu" <yadi.hu@windriver.com>
+Date: Wed, 10 Dec 2014 10:32:09 +0800
+Subject: [PATCH 209/347] ARM: enable irq in translation/section permission
+ fault handlers
+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/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Probably happens on all ARM, with
+CONFIG_PREEMPT_RT_FULL
+CONFIG_DEBUG_ATOMIC_SLEEP
+
+This simple program....
+
+int main() {
+ *((char*)0xc0001000) = 0;
+};
+
+[ 512.742724] BUG: sleeping function called from invalid context at kernel/rtmutex.c:658
+[ 512.743000] in_atomic(): 0, irqs_disabled(): 128, pid: 994, name: a
+[ 512.743217] INFO: lockdep is turned off.
+[ 512.743360] irq event stamp: 0
+[ 512.743482] hardirqs last enabled at (0): [< (null)>] (null)
+[ 512.743714] hardirqs last disabled at (0): [<c0426370>] copy_process+0x3b0/0x11c0
+[ 512.744013] softirqs last enabled at (0): [<c0426370>] copy_process+0x3b0/0x11c0
+[ 512.744303] softirqs last disabled at (0): [< (null)>] (null)
+[ 512.744631] [<c041872c>] (unwind_backtrace+0x0/0x104)
+[ 512.745001] [<c09af0c4>] (dump_stack+0x20/0x24)
+[ 512.745355] [<c0462490>] (__might_sleep+0x1dc/0x1e0)
+[ 512.745717] [<c09b6770>] (rt_spin_lock+0x34/0x6c)
+[ 512.746073] [<c0441bf0>] (do_force_sig_info+0x34/0xf0)
+[ 512.746457] [<c0442668>] (force_sig_info+0x18/0x1c)
+[ 512.746829] [<c041d880>] (__do_user_fault+0x9c/0xd8)
+[ 512.747185] [<c041d938>] (do_bad_area+0x7c/0x94)
+[ 512.747536] [<c041d990>] (do_sect_fault+0x40/0x48)
+[ 512.747898] [<c040841c>] (do_DataAbort+0x40/0xa0)
+[ 512.748181] Exception stack(0xecaa1fb0 to 0xecaa1ff8)
+
+Oxc0000000 belongs to kernel address space, user task can not be
+allowed to access it. For above condition, correct result is that
+test case should receive a “segment fault” and exits but not stacks.
+
+the root cause is commit 02fe2845d6a8 ("avoid enabling interrupts in
+prefetch/data abort handlers"),it deletes irq enable block in Data
+abort assemble code and move them into page/breakpiont/alignment fault
+handlers instead. But author does not enable irq in translation/section
+permission fault handlers. ARM disables irq when it enters exception/
+interrupt mode, if kernel doesn't enable irq, it would be still disabled
+during translation/section permission fault.
+
+We see the above splat because do_force_sig_info is still called with
+IRQs off, and that code eventually does a:
+
+ spin_lock_irqsave(&t->sighand->siglock, flags);
+
+As this is architecture independent code, and we've not seen any other
+need for other arch to have the siglock converted to raw lock, we can
+conclude that we should enable irq for ARM translation/section
+permission exception.
+
+
+Signed-off-by: Yadi.hu <yadi.hu@windriver.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/arm/mm/fault.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
+index a9ee0d9dc740..20b0e146de98 100644
+--- a/arch/arm/mm/fault.c
++++ b/arch/arm/mm/fault.c
+@@ -439,6 +439,9 @@ do_translation_fault(unsigned long addr, unsigned int fsr,
+ if (addr < TASK_SIZE)
+ return do_page_fault(addr, fsr, regs);
+
++ if (interrupts_enabled(regs))
++ local_irq_enable();
++
+ if (user_mode(regs))
+ goto bad_area;
+
+@@ -506,6 +509,9 @@ do_translation_fault(unsigned long addr, unsigned int fsr,
+ static int
+ do_sect_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
+ {
++ if (interrupts_enabled(regs))
++ local_irq_enable();
++
+ do_bad_area(addr, fsr, regs);
+ return 0;
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0210-genirq-update-irq_set_irqchip_state-documentation.patch b/debian/patches-rt/0210-genirq-update-irq_set_irqchip_state-documentation.patch
new file mode 100644
index 000000000..587d4cec5
--- /dev/null
+++ b/debian/patches-rt/0210-genirq-update-irq_set_irqchip_state-documentation.patch
@@ -0,0 +1,32 @@
+From ab960649ff425bcc7910011a0f591a4673e76df6 Mon Sep 17 00:00:00 2001
+From: Josh Cartwright <joshc@ni.com>
+Date: Thu, 11 Feb 2016 11:54:00 -0600
+Subject: [PATCH 210/347] genirq: update irq_set_irqchip_state documentation
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+irq_set_irqchip_state() documentation to reflect this.
+
+Signed-off-by: Josh Cartwright <joshc@ni.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/irq/manage.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
+index 2bb77b0ebac8..683debac6759 100644
+--- a/kernel/irq/manage.c
++++ b/kernel/irq/manage.c
+@@ -2335,7 +2335,7 @@ EXPORT_SYMBOL_GPL(irq_get_irqchip_state);
+ * This call sets the internal irqchip state of an interrupt,
+ * depending on the value of @which.
+ *
+- * This function should be called with preemption disabled if the
++ * This function should be called with migration disabled if the
+ * interrupt controller has per-cpu registers.
+ */
+ int irq_set_irqchip_state(unsigned int irq, enum irqchip_irq_state which,
+--
+2.36.1
+
diff --git a/debian/patches-rt/0211-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch b/debian/patches-rt/0211-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch
new file mode 100644
index 000000000..a49a4c01e
--- /dev/null
+++ b/debian/patches-rt/0211-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch
@@ -0,0 +1,59 @@
+From e3788b349ef7d4161dc666a0aca9fc054c913c04 Mon Sep 17 00:00:00 2001
+From: Josh Cartwright <joshc@ni.com>
+Date: Thu, 11 Feb 2016 11:54:01 -0600
+Subject: [PATCH 211/347] KVM: arm/arm64: downgrade preempt_disable()d region
+ to migrate_disable()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+another CPU. It does so to prevent the task from writing to the
+incorrect per-CPU GIC distributor registers.
+
+On -rt kernels, it's possible to maintain the same guarantee with the
+use of migrate_{disable,enable}(), with the added benefit that the
+migrate-disabled region is preemptible. Update
+kvm_arch_vcpu_ioctl_run() to do so.
+
+Cc: Christoffer Dall <christoffer.dall@linaro.org>
+Reported-by: Manish Jaggi <Manish.Jaggi@caviumnetworks.com>
+Signed-off-by: Josh Cartwright <joshc@ni.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ virt/kvm/arm/arm.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/virt/kvm/arm/arm.c b/virt/kvm/arm/arm.c
+index b943ec5345cb..ddc6db1e8cd2 100644
+--- a/virt/kvm/arm/arm.c
++++ b/virt/kvm/arm/arm.c
+@@ -725,7 +725,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)
+ * involves poking the GIC, which must be done in a
+ * non-preemptible context.
+ */
+- preempt_disable();
++ migrate_disable();
+
+ kvm_pmu_flush_hwstate(vcpu);
+
+@@ -774,7 +774,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)
+ kvm_timer_sync_hwstate(vcpu);
+ kvm_vgic_sync_hwstate(vcpu);
+ local_irq_enable();
+- preempt_enable();
++ migrate_enable();
+ continue;
+ }
+
+@@ -852,7 +852,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)
+ /* Exit types that need handling before we can be preempted */
+ handle_exit_early(vcpu, run, ret);
+
+- preempt_enable();
++ migrate_enable();
+
+ ret = handle_exit(vcpu, run, ret);
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0212-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch b/debian/patches-rt/0212-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch
new file mode 100644
index 000000000..5ac88e5fe
--- /dev/null
+++ b/debian/patches-rt/0212-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch
@@ -0,0 +1,171 @@
+From e6eac38976a1eebb792eb6a02fd95ed0868576fc Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 25 Jul 2018 14:02:38 +0200
+Subject: [PATCH 212/347] arm64: fpsimd: use preemp_disable in addition to
+ local_bh_disable()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+In v4.16-RT I noticed a number of warnings from task_fpsimd_load(). The
+code disables BH and expects that it is not preemptible. On -RT the
+task remains preemptible but remains the same CPU. This may corrupt the
+content of the SIMD registers if the task is preempted during
+saving/restoring those registers.
+
+Add preempt_disable()/enable() to enfore the required semantic on -RT.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/arm64/kernel/fpsimd.c | 31 +++++++++++++++++++++++++++++--
+ 1 file changed, 29 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c
+index 89ab68cb35bb..481793a5adc1 100644
+--- a/arch/arm64/kernel/fpsimd.c
++++ b/arch/arm64/kernel/fpsimd.c
+@@ -159,6 +159,16 @@ static void sve_free(struct task_struct *task)
+ __sve_free(task);
+ }
+
++static void *sve_free_atomic(struct task_struct *task)
++{
++ void *sve_state = task->thread.sve_state;
++
++ WARN_ON(test_tsk_thread_flag(task, TIF_SVE));
++
++ task->thread.sve_state = NULL;
++ return sve_state;
++}
++
+ /*
+ * TIF_SVE controls whether a task can use SVE without trapping while
+ * in userspace, and also the way a task's FPSIMD/SVE state is stored
+@@ -549,6 +559,7 @@ int sve_set_vector_length(struct task_struct *task,
+ * non-SVE thread.
+ */
+ if (task == current) {
++ preempt_disable();
+ local_bh_disable();
+
+ fpsimd_save();
+@@ -559,8 +570,10 @@ int sve_set_vector_length(struct task_struct *task,
+ if (test_and_clear_tsk_thread_flag(task, TIF_SVE))
+ sve_to_fpsimd(task);
+
+- if (task == current)
++ if (task == current) {
+ local_bh_enable();
++ preempt_enable();
++ }
+
+ /*
+ * Force reallocation of task SVE state to the correct size
+@@ -815,6 +828,7 @@ asmlinkage void do_sve_acc(unsigned int esr, struct pt_regs *regs)
+
+ sve_alloc(current);
+
++ preempt_disable();
+ local_bh_disable();
+
+ fpsimd_save();
+@@ -828,6 +842,7 @@ asmlinkage void do_sve_acc(unsigned int esr, struct pt_regs *regs)
+ WARN_ON(1); /* SVE access shouldn't have trapped */
+
+ local_bh_enable();
++ preempt_enable();
+ }
+
+ /*
+@@ -894,10 +909,12 @@ void fpsimd_thread_switch(struct task_struct *next)
+ void fpsimd_flush_thread(void)
+ {
+ int vl, supported_vl;
++ void *mem = NULL;
+
+ if (!system_supports_fpsimd())
+ return;
+
++ preempt_disable();
+ local_bh_disable();
+
+ memset(&current->thread.uw.fpsimd_state, 0,
+@@ -906,7 +923,7 @@ void fpsimd_flush_thread(void)
+
+ if (system_supports_sve()) {
+ clear_thread_flag(TIF_SVE);
+- sve_free(current);
++ mem = sve_free_atomic(current);
+
+ /*
+ * Reset the task vector length as required.
+@@ -942,6 +959,8 @@ void fpsimd_flush_thread(void)
+ set_thread_flag(TIF_FOREIGN_FPSTATE);
+
+ local_bh_enable();
++ preempt_enable();
++ kfree(mem);
+ }
+
+ /*
+@@ -953,9 +972,11 @@ void fpsimd_preserve_current_state(void)
+ if (!system_supports_fpsimd())
+ return;
+
++ preempt_disable();
+ local_bh_disable();
+ fpsimd_save();
+ local_bh_enable();
++ preempt_enable();
+ }
+
+ /*
+@@ -1026,6 +1047,7 @@ void fpsimd_restore_current_state(void)
+ return;
+ }
+
++ preempt_disable();
+ local_bh_disable();
+
+ if (test_and_clear_thread_flag(TIF_FOREIGN_FPSTATE)) {
+@@ -1034,6 +1056,7 @@ void fpsimd_restore_current_state(void)
+ }
+
+ local_bh_enable();
++ preempt_enable();
+ }
+
+ /*
+@@ -1046,6 +1069,7 @@ void fpsimd_update_current_state(struct user_fpsimd_state const *state)
+ if (WARN_ON(!system_supports_fpsimd()))
+ return;
+
++ preempt_disable();
+ local_bh_disable();
+
+ current->thread.uw.fpsimd_state = *state;
+@@ -1058,6 +1082,7 @@ void fpsimd_update_current_state(struct user_fpsimd_state const *state)
+ clear_thread_flag(TIF_FOREIGN_FPSTATE);
+
+ local_bh_enable();
++ preempt_enable();
+ }
+
+ /*
+@@ -1104,6 +1129,7 @@ void kernel_neon_begin(void)
+
+ BUG_ON(!may_use_simd());
+
++ preempt_disable();
+ local_bh_disable();
+
+ __this_cpu_write(kernel_neon_busy, true);
+@@ -1117,6 +1143,7 @@ void kernel_neon_begin(void)
+ preempt_disable();
+
+ local_bh_enable();
++ preempt_enable();
+ }
+ EXPORT_SYMBOL(kernel_neon_begin);
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0213-kgdb-serial-Short-term-workaround.patch b/debian/patches-rt/0213-kgdb-serial-Short-term-workaround.patch
new file mode 100644
index 000000000..464f4b0d7
--- /dev/null
+++ b/debian/patches-rt/0213-kgdb-serial-Short-term-workaround.patch
@@ -0,0 +1,86 @@
+From 63a68f078dbbdde2ffc3a7cb2928cef6b17a38a3 Mon Sep 17 00:00:00 2001
+From: Jason Wessel <jason.wessel@windriver.com>
+Date: Thu, 28 Jul 2011 12:42:23 -0500
+Subject: [PATCH 213/347] kgdb/serial: Short term workaround
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+On 07/27/2011 04:37 PM, Thomas Gleixner wrote:
+> - KGDB (not yet disabled) is reportedly unusable on -rt right now due
+> to missing hacks in the console locking which I dropped on purpose.
+>
+
+To work around this in the short term you can use this patch, in
+addition to the clocksource watchdog patch that Thomas brewed up.
+
+Comments are welcome of course. Ultimately the right solution is to
+change separation between the console and the HW to have a polled mode
++ work queue so as not to introduce any kind of latency.
+
+Thanks,
+Jason.
+---
+ drivers/tty/serial/8250/8250_port.c | 3 +++
+ include/linux/kdb.h | 2 ++
+ kernel/debug/kdb/kdb_io.c | 2 ++
+ 3 files changed, 7 insertions(+)
+
+diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c
+index ef8bccc0823c..418b9c818b2e 100644
+--- a/drivers/tty/serial/8250/8250_port.c
++++ b/drivers/tty/serial/8250/8250_port.c
+@@ -31,6 +31,7 @@
+ #include <linux/nmi.h>
+ #include <linux/mutex.h>
+ #include <linux/slab.h>
++#include <linux/kdb.h>
+ #include <linux/uaccess.h>
+ #include <linux/pm_runtime.h>
+ #include <linux/ktime.h>
+@@ -3296,6 +3297,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s,
+
+ if (port->sysrq || oops_in_progress)
+ locked = 0;
++ else if (in_kdb_printk())
++ locked = spin_trylock_irqsave(&port->lock, flags);
+ else
+ spin_lock_irqsave(&port->lock, flags);
+
+diff --git a/include/linux/kdb.h b/include/linux/kdb.h
+index 68bd88223417..e033b25b0b72 100644
+--- a/include/linux/kdb.h
++++ b/include/linux/kdb.h
+@@ -167,6 +167,7 @@ extern __printf(2, 0) int vkdb_printf(enum kdb_msgsrc src, const char *fmt,
+ extern __printf(1, 2) int kdb_printf(const char *, ...);
+ typedef __printf(1, 2) int (*kdb_printf_t)(const char *, ...);
+
++#define in_kdb_printk() (kdb_trap_printk)
+ extern void kdb_init(int level);
+
+ /* Access to kdb specific polling devices */
+@@ -201,6 +202,7 @@ extern int kdb_register_flags(char *, kdb_func_t, char *, char *,
+ extern int kdb_unregister(char *);
+ #else /* ! CONFIG_KGDB_KDB */
+ static inline __printf(1, 2) int kdb_printf(const char *fmt, ...) { return 0; }
++#define in_kdb_printk() (0)
+ static inline void kdb_init(int level) {}
+ static inline int kdb_register(char *cmd, kdb_func_t func, char *usage,
+ char *help, short minlen) { return 0; }
+diff --git a/kernel/debug/kdb/kdb_io.c b/kernel/debug/kdb/kdb_io.c
+index b45576ca3b0d..ad1a3bc7908f 100644
+--- a/kernel/debug/kdb/kdb_io.c
++++ b/kernel/debug/kdb/kdb_io.c
+@@ -861,9 +861,11 @@ int kdb_printf(const char *fmt, ...)
+ va_list ap;
+ int r;
+
++ kdb_trap_printk++;
+ va_start(ap, fmt);
+ r = vkdb_printf(KDB_MSGSRC_INTERNAL, fmt, ap);
+ va_end(ap);
++ kdb_trap_printk--;
+
+ return r;
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0214-sysfs-Add-sys-kernel-realtime-entry.patch b/debian/patches-rt/0214-sysfs-Add-sys-kernel-realtime-entry.patch
new file mode 100644
index 000000000..b477086ae
--- /dev/null
+++ b/debian/patches-rt/0214-sysfs-Add-sys-kernel-realtime-entry.patch
@@ -0,0 +1,54 @@
+From c48c3a32632d4b467e3609a87b4149f9136afff6 Mon Sep 17 00:00:00 2001
+From: Clark Williams <williams@redhat.com>
+Date: Sat, 30 Jul 2011 21:55:53 -0500
+Subject: [PATCH 214/347] sysfs: Add /sys/kernel/realtime entry
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Add a /sys/kernel entry to indicate that the kernel is a
+realtime kernel.
+
+Clark says that he needs this for udev rules, udev needs to evaluate
+if its a PREEMPT_RT kernel a few thousand times and parsing uname
+output is too slow or so.
+
+Are there better solutions? Should it exist and return 0 on !-rt?
+
+Signed-off-by: Clark Williams <williams@redhat.com>
+Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
+---
+ kernel/ksysfs.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/kernel/ksysfs.c b/kernel/ksysfs.c
+index 46ba853656f6..9a23632b6294 100644
+--- a/kernel/ksysfs.c
++++ b/kernel/ksysfs.c
+@@ -140,6 +140,15 @@ KERNEL_ATTR_RO(vmcoreinfo);
+
+ #endif /* CONFIG_CRASH_CORE */
+
++#if defined(CONFIG_PREEMPT_RT_FULL)
++static ssize_t realtime_show(struct kobject *kobj,
++ struct kobj_attribute *attr, char *buf)
++{
++ return sprintf(buf, "%d\n", 1);
++}
++KERNEL_ATTR_RO(realtime);
++#endif
++
+ /* whether file capabilities are enabled */
+ static ssize_t fscaps_show(struct kobject *kobj,
+ struct kobj_attribute *attr, char *buf)
+@@ -230,6 +239,9 @@ static struct attribute * kernel_attrs[] = {
+ #ifndef CONFIG_TINY_RCU
+ &rcu_expedited_attr.attr,
+ &rcu_normal_attr.attr,
++#endif
++#ifdef CONFIG_PREEMPT_RT_FULL
++ &realtime_attr.attr,
+ #endif
+ NULL
+ };
+--
+2.36.1
+
diff --git a/debian/patches-rt/0215-mm-rt-kmap_atomic-scheduling.patch b/debian/patches-rt/0215-mm-rt-kmap_atomic-scheduling.patch
new file mode 100644
index 000000000..fe9e29581
--- /dev/null
+++ b/debian/patches-rt/0215-mm-rt-kmap_atomic-scheduling.patch
@@ -0,0 +1,325 @@
+From 6ffc40164236bf03b6c7c3c8dc826f5f96d8d797 Mon Sep 17 00:00:00 2001
+From: Peter Zijlstra <peterz@infradead.org>
+Date: Thu, 28 Jul 2011 10:43:51 +0200
+Subject: [PATCH 215/347] mm, rt: kmap_atomic scheduling
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+In fact, with migrate_disable() existing one could play games with
+kmap_atomic. You could save/restore the kmap_atomic slots on context
+switch (if there are any in use of course), this should be esp easy now
+that we have a kmap_atomic stack.
+
+Something like the below.. it wants replacing all the preempt_disable()
+stuff with pagefault_disable() && migrate_disable() of course, but then
+you can flip kmaps around like below.
+
+Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
+[dvhart@linux.intel.com: build fix]
+Link: http://lkml.kernel.org/r/1311842631.5890.208.camel@twins
+
+[tglx@linutronix.de: Get rid of the per cpu variable and store the idx
+ and the pte content right away in the task struct.
+ Shortens the context switch code. ]
+---
+ arch/x86/kernel/process_32.c | 32 ++++++++++++++++++++++++++++++++
+ arch/x86/mm/highmem_32.c | 13 ++++++++++---
+ arch/x86/mm/iomap_32.c | 9 ++++++++-
+ include/linux/highmem.h | 31 +++++++++++++++++++++++++------
+ include/linux/sched.h | 7 +++++++
+ include/linux/uaccess.h | 2 ++
+ mm/highmem.c | 6 ++++--
+ 7 files changed, 88 insertions(+), 12 deletions(-)
+
+diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
+index 020efe0f9614..5d0c975559ad 100644
+--- a/arch/x86/kernel/process_32.c
++++ b/arch/x86/kernel/process_32.c
+@@ -38,6 +38,7 @@
+ #include <linux/io.h>
+ #include <linux/kdebug.h>
+ #include <linux/syscalls.h>
++#include <linux/highmem.h>
+
+ #include <asm/pgtable.h>
+ #include <asm/ldt.h>
+@@ -205,6 +206,35 @@ start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp)
+ }
+ EXPORT_SYMBOL_GPL(start_thread);
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++static void switch_kmaps(struct task_struct *prev_p, struct task_struct *next_p)
++{
++ int i;
++
++ /*
++ * Clear @prev's kmap_atomic mappings
++ */
++ for (i = 0; i < prev_p->kmap_idx; i++) {
++ int idx = i + KM_TYPE_NR * smp_processor_id();
++ pte_t *ptep = kmap_pte - idx;
++
++ kpte_clear_flush(ptep, __fix_to_virt(FIX_KMAP_BEGIN + idx));
++ }
++ /*
++ * Restore @next_p's kmap_atomic mappings
++ */
++ for (i = 0; i < next_p->kmap_idx; i++) {
++ int idx = i + KM_TYPE_NR * smp_processor_id();
++
++ if (!pte_none(next_p->kmap_pte[i]))
++ set_pte(kmap_pte - idx, next_p->kmap_pte[i]);
++ }
++}
++#else
++static inline void
++switch_kmaps(struct task_struct *prev_p, struct task_struct *next_p) { }
++#endif
++
+
+ /*
+ * switch_to(x,y) should switch tasks from x to y.
+@@ -274,6 +304,8 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
+
+ switch_to_extra(prev_p, next_p);
+
++ switch_kmaps(prev_p, next_p);
++
+ /*
+ * Leave lazy mode, flushing any hypercalls made here.
+ * This must be done before restoring TLS segments so
+diff --git a/arch/x86/mm/highmem_32.c b/arch/x86/mm/highmem_32.c
+index 6d18b70ed5a9..f752724c22e8 100644
+--- a/arch/x86/mm/highmem_32.c
++++ b/arch/x86/mm/highmem_32.c
+@@ -32,10 +32,11 @@ EXPORT_SYMBOL(kunmap);
+ */
+ void *kmap_atomic_prot(struct page *page, pgprot_t prot)
+ {
++ pte_t pte = mk_pte(page, prot);
+ unsigned long vaddr;
+ int idx, type;
+
+- preempt_disable();
++ preempt_disable_nort();
+ pagefault_disable();
+
+ if (!PageHighMem(page))
+@@ -45,7 +46,10 @@ void *kmap_atomic_prot(struct page *page, pgprot_t prot)
+ idx = type + KM_TYPE_NR*smp_processor_id();
+ vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
+ BUG_ON(!pte_none(*(kmap_pte-idx)));
+- set_pte(kmap_pte-idx, mk_pte(page, prot));
++#ifdef CONFIG_PREEMPT_RT_FULL
++ current->kmap_pte[type] = pte;
++#endif
++ set_pte(kmap_pte-idx, pte);
+ arch_flush_lazy_mmu_mode();
+
+ return (void *)vaddr;
+@@ -88,6 +92,9 @@ void __kunmap_atomic(void *kvaddr)
+ * is a bad idea also, in case the page changes cacheability
+ * attributes or becomes a protected page in a hypervisor.
+ */
++#ifdef CONFIG_PREEMPT_RT_FULL
++ current->kmap_pte[type] = __pte(0);
++#endif
+ kpte_clear_flush(kmap_pte-idx, vaddr);
+ kmap_atomic_idx_pop();
+ arch_flush_lazy_mmu_mode();
+@@ -100,7 +107,7 @@ void __kunmap_atomic(void *kvaddr)
+ #endif
+
+ pagefault_enable();
+- preempt_enable();
++ preempt_enable_nort();
+ }
+ EXPORT_SYMBOL(__kunmap_atomic);
+
+diff --git a/arch/x86/mm/iomap_32.c b/arch/x86/mm/iomap_32.c
+index b3294d36769d..d5a48210d0f6 100644
+--- a/arch/x86/mm/iomap_32.c
++++ b/arch/x86/mm/iomap_32.c
+@@ -59,6 +59,7 @@ EXPORT_SYMBOL_GPL(iomap_free);
+
+ void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot)
+ {
++ pte_t pte = pfn_pte(pfn, prot);
+ unsigned long vaddr;
+ int idx, type;
+
+@@ -68,7 +69,10 @@ void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot)
+ type = kmap_atomic_idx_push();
+ idx = type + KM_TYPE_NR * smp_processor_id();
+ vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
+- set_pte(kmap_pte - idx, pfn_pte(pfn, prot));
++#ifdef CONFIG_PREEMPT_RT_FULL
++ current->kmap_pte[type] = pte;
++#endif
++ set_pte(kmap_pte - idx, pte);
+ arch_flush_lazy_mmu_mode();
+
+ return (void *)vaddr;
+@@ -119,6 +123,9 @@ iounmap_atomic(void __iomem *kvaddr)
+ * is a bad idea also, in case the page changes cacheability
+ * attributes or becomes a protected page in a hypervisor.
+ */
++#ifdef CONFIG_PREEMPT_RT_FULL
++ current->kmap_pte[type] = __pte(0);
++#endif
+ kpte_clear_flush(kmap_pte-idx, vaddr);
+ kmap_atomic_idx_pop();
+ }
+diff --git a/include/linux/highmem.h b/include/linux/highmem.h
+index 0690679832d4..1ac89e4718bf 100644
+--- a/include/linux/highmem.h
++++ b/include/linux/highmem.h
+@@ -66,7 +66,7 @@ static inline void kunmap(struct page *page)
+
+ static inline void *kmap_atomic(struct page *page)
+ {
+- preempt_disable();
++ preempt_disable_nort();
+ pagefault_disable();
+ return page_address(page);
+ }
+@@ -75,7 +75,7 @@ static inline void *kmap_atomic(struct page *page)
+ static inline void __kunmap_atomic(void *addr)
+ {
+ pagefault_enable();
+- preempt_enable();
++ preempt_enable_nort();
+ }
+
+ #define kmap_atomic_pfn(pfn) kmap_atomic(pfn_to_page(pfn))
+@@ -87,32 +87,51 @@ static inline void __kunmap_atomic(void *addr)
+
+ #if defined(CONFIG_HIGHMEM) || defined(CONFIG_X86_32)
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ DECLARE_PER_CPU(int, __kmap_atomic_idx);
++#endif
+
+ static inline int kmap_atomic_idx_push(void)
+ {
++#ifndef CONFIG_PREEMPT_RT_FULL
+ int idx = __this_cpu_inc_return(__kmap_atomic_idx) - 1;
+
+-#ifdef CONFIG_DEBUG_HIGHMEM
++# ifdef CONFIG_DEBUG_HIGHMEM
+ WARN_ON_ONCE(in_irq() && !irqs_disabled());
+ BUG_ON(idx >= KM_TYPE_NR);
+-#endif
++# endif
+ return idx;
++#else
++ current->kmap_idx++;
++ BUG_ON(current->kmap_idx > KM_TYPE_NR);
++ return current->kmap_idx - 1;
++#endif
+ }
+
+ static inline int kmap_atomic_idx(void)
+ {
++#ifndef CONFIG_PREEMPT_RT_FULL
+ return __this_cpu_read(__kmap_atomic_idx) - 1;
++#else
++ return current->kmap_idx - 1;
++#endif
+ }
+
+ static inline void kmap_atomic_idx_pop(void)
+ {
+-#ifdef CONFIG_DEBUG_HIGHMEM
++#ifndef CONFIG_PREEMPT_RT_FULL
++# ifdef CONFIG_DEBUG_HIGHMEM
+ int idx = __this_cpu_dec_return(__kmap_atomic_idx);
+
+ BUG_ON(idx < 0);
+-#else
++# else
+ __this_cpu_dec(__kmap_atomic_idx);
++# endif
++#else
++ current->kmap_idx--;
++# ifdef CONFIG_DEBUG_HIGHMEM
++ BUG_ON(current->kmap_idx < 0);
++# endif
+ #endif
+ }
+
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index b7a357635d60..577045ae8693 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -28,6 +28,7 @@
+ #include <linux/mm_types_task.h>
+ #include <linux/task_io_accounting.h>
+ #include <linux/rseq.h>
++#include <asm/kmap_types.h>
+
+ /* task_struct member predeclarations (sorted alphabetically): */
+ struct audit_context;
+@@ -1216,6 +1217,12 @@ struct task_struct {
+ int softirq_nestcnt;
+ unsigned int softirqs_raised;
+ #endif
++#ifdef CONFIG_PREEMPT_RT_FULL
++# if defined CONFIG_HIGHMEM || defined CONFIG_X86_32
++ int kmap_idx;
++ pte_t kmap_pte[KM_TYPE_NR];
++# endif
++#endif
+ #ifdef CONFIG_DEBUG_ATOMIC_SLEEP
+ unsigned long task_state_change;
+ #endif
+diff --git a/include/linux/uaccess.h b/include/linux/uaccess.h
+index db9b0dd0a7a3..e151bd0f6d49 100644
+--- a/include/linux/uaccess.h
++++ b/include/linux/uaccess.h
+@@ -185,6 +185,7 @@ static __always_inline void pagefault_disabled_dec(void)
+ */
+ static inline void pagefault_disable(void)
+ {
++ migrate_disable();
+ pagefault_disabled_inc();
+ /*
+ * make sure to have issued the store before a pagefault
+@@ -201,6 +202,7 @@ static inline void pagefault_enable(void)
+ */
+ barrier();
+ pagefault_disabled_dec();
++ migrate_enable();
+ }
+
+ /*
+diff --git a/mm/highmem.c b/mm/highmem.c
+index 59db3223a5d6..22aa3ddbd87b 100644
+--- a/mm/highmem.c
++++ b/mm/highmem.c
+@@ -30,10 +30,11 @@
+ #include <linux/kgdb.h>
+ #include <asm/tlbflush.h>
+
+-
++#ifndef CONFIG_PREEMPT_RT_FULL
+ #if defined(CONFIG_HIGHMEM) || defined(CONFIG_X86_32)
+ DEFINE_PER_CPU(int, __kmap_atomic_idx);
+ #endif
++#endif
+
+ /*
+ * Virtual_count is not a pure "count".
+@@ -108,8 +109,9 @@ static inline wait_queue_head_t *get_pkmap_wait_queue_head(unsigned int color)
+ unsigned long totalhigh_pages __read_mostly;
+ EXPORT_SYMBOL(totalhigh_pages);
+
+-
++#ifndef CONFIG_PREEMPT_RT_FULL
+ EXPORT_PER_CPU_SYMBOL(__kmap_atomic_idx);
++#endif
+
+ unsigned int nr_free_highpages (void)
+ {
+--
+2.36.1
+
diff --git a/debian/patches-rt/0216-x86-highmem-Add-a-already-used-pte-check.patch b/debian/patches-rt/0216-x86-highmem-Add-a-already-used-pte-check.patch
new file mode 100644
index 000000000..1ed131e93
--- /dev/null
+++ b/debian/patches-rt/0216-x86-highmem-Add-a-already-used-pte-check.patch
@@ -0,0 +1,29 @@
+From 0aa2a1e54dccb65560925aedd34406b867f182ce Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Mon, 11 Mar 2013 17:09:55 +0100
+Subject: [PATCH 216/347] x86/highmem: Add a "already used pte" check
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+This is a copy from kmap_atomic_prot().
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/x86/mm/iomap_32.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/arch/x86/mm/iomap_32.c b/arch/x86/mm/iomap_32.c
+index d5a48210d0f6..c0ec8d430c02 100644
+--- a/arch/x86/mm/iomap_32.c
++++ b/arch/x86/mm/iomap_32.c
+@@ -69,6 +69,8 @@ void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot)
+ type = kmap_atomic_idx_push();
+ idx = type + KM_TYPE_NR * smp_processor_id();
+ vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
++ WARN_ON(!pte_none(*(kmap_pte - idx)));
++
+ #ifdef CONFIG_PREEMPT_RT_FULL
+ current->kmap_pte[type] = pte;
+ #endif
+--
+2.36.1
+
diff --git a/debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch b/debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch
new file mode 100644
index 000000000..12a3a9b1e
--- /dev/null
+++ b/debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch
@@ -0,0 +1,34 @@
+From 83b4c6d1975b6bbcc60751fc7150c6bda6b460a7 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Mon, 11 Mar 2013 21:37:27 +0100
+Subject: [PATCH 217/347] arm/highmem: Flush tlb on unmap
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The tlb should be flushed on unmap and thus make the mapping entry
+invalid. This is only done in the non-debug case which does not look
+right.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/arm/mm/highmem.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/arm/mm/highmem.c b/arch/arm/mm/highmem.c
+index d02f8187b1cc..eb4b225d28c9 100644
+--- a/arch/arm/mm/highmem.c
++++ b/arch/arm/mm/highmem.c
+@@ -112,10 +112,10 @@ void __kunmap_atomic(void *kvaddr)
+ __cpuc_flush_dcache_area((void *)vaddr, PAGE_SIZE);
+ #ifdef CONFIG_DEBUG_HIGHMEM
+ BUG_ON(vaddr != __fix_to_virt(idx));
+- set_fixmap_pte(idx, __pte(0));
+ #else
+ (void) idx; /* to kill a warning */
+ #endif
++ set_fixmap_pte(idx, __pte(0));
+ kmap_atomic_idx_pop();
+ } else if (vaddr >= PKMAP_ADDR(0) && vaddr < PKMAP_ADDR(LAST_PKMAP)) {
+ /* this address was obtained through kmap_high_get() */
+--
+2.36.1
+
diff --git a/debian/patches-rt/0218-arm-Enable-highmem-for-rt.patch b/debian/patches-rt/0218-arm-Enable-highmem-for-rt.patch
new file mode 100644
index 000000000..6d37c0670
--- /dev/null
+++ b/debian/patches-rt/0218-arm-Enable-highmem-for-rt.patch
@@ -0,0 +1,184 @@
+From d8647f71379a704607e15bb3a7fd5d84b3f10a6d Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 13 Feb 2013 11:03:11 +0100
+Subject: [PATCH 218/347] arm: Enable highmem for rt
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+fixup highmem for ARM.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ arch/arm/include/asm/switch_to.h | 8 +++++
+ arch/arm/mm/highmem.c | 56 +++++++++++++++++++++++++++-----
+ include/linux/highmem.h | 1 +
+ 3 files changed, 57 insertions(+), 8 deletions(-)
+
+diff --git a/arch/arm/include/asm/switch_to.h b/arch/arm/include/asm/switch_to.h
+index d3e937dcee4d..6ab96a2ce1f8 100644
+--- a/arch/arm/include/asm/switch_to.h
++++ b/arch/arm/include/asm/switch_to.h
+@@ -4,6 +4,13 @@
+
+ #include <linux/thread_info.h>
+
++#if defined CONFIG_PREEMPT_RT_FULL && defined CONFIG_HIGHMEM
++void switch_kmaps(struct task_struct *prev_p, struct task_struct *next_p);
++#else
++static inline void
++switch_kmaps(struct task_struct *prev_p, struct task_struct *next_p) { }
++#endif
++
+ /*
+ * For v7 SMP cores running a preemptible kernel we may be pre-empted
+ * during a TLB maintenance operation, so execute an inner-shareable dsb
+@@ -26,6 +33,7 @@ extern struct task_struct *__switch_to(struct task_struct *, struct thread_info
+ #define switch_to(prev,next,last) \
+ do { \
+ __complete_pending_tlbi(); \
++ switch_kmaps(prev, next); \
+ last = __switch_to(prev,task_thread_info(prev), task_thread_info(next)); \
+ } while (0)
+
+diff --git a/arch/arm/mm/highmem.c b/arch/arm/mm/highmem.c
+index eb4b225d28c9..542692dbd40a 100644
+--- a/arch/arm/mm/highmem.c
++++ b/arch/arm/mm/highmem.c
+@@ -34,6 +34,11 @@ static inline pte_t get_fixmap_pte(unsigned long vaddr)
+ return *ptep;
+ }
+
++static unsigned int fixmap_idx(int type)
++{
++ return FIX_KMAP_BEGIN + type + KM_TYPE_NR * smp_processor_id();
++}
++
+ void *kmap(struct page *page)
+ {
+ might_sleep();
+@@ -54,12 +59,13 @@ EXPORT_SYMBOL(kunmap);
+
+ void *kmap_atomic(struct page *page)
+ {
++ pte_t pte = mk_pte(page, kmap_prot);
+ unsigned int idx;
+ unsigned long vaddr;
+ void *kmap;
+ int type;
+
+- preempt_disable();
++ preempt_disable_nort();
+ pagefault_disable();
+ if (!PageHighMem(page))
+ return page_address(page);
+@@ -79,7 +85,7 @@ void *kmap_atomic(struct page *page)
+
+ type = kmap_atomic_idx_push();
+
+- idx = FIX_KMAP_BEGIN + type + KM_TYPE_NR * smp_processor_id();
++ idx = fixmap_idx(type);
+ vaddr = __fix_to_virt(idx);
+ #ifdef CONFIG_DEBUG_HIGHMEM
+ /*
+@@ -93,7 +99,10 @@ void *kmap_atomic(struct page *page)
+ * in place, so the contained TLB flush ensures the TLB is updated
+ * with the new mapping.
+ */
+- set_fixmap_pte(idx, mk_pte(page, kmap_prot));
++#ifdef CONFIG_PREEMPT_RT_FULL
++ current->kmap_pte[type] = pte;
++#endif
++ set_fixmap_pte(idx, pte);
+
+ return (void *)vaddr;
+ }
+@@ -106,10 +115,13 @@ void __kunmap_atomic(void *kvaddr)
+
+ if (kvaddr >= (void *)FIXADDR_START) {
+ type = kmap_atomic_idx();
+- idx = FIX_KMAP_BEGIN + type + KM_TYPE_NR * smp_processor_id();
++ idx = fixmap_idx(type);
+
+ if (cache_is_vivt())
+ __cpuc_flush_dcache_area((void *)vaddr, PAGE_SIZE);
++#ifdef CONFIG_PREEMPT_RT_FULL
++ current->kmap_pte[type] = __pte(0);
++#endif
+ #ifdef CONFIG_DEBUG_HIGHMEM
+ BUG_ON(vaddr != __fix_to_virt(idx));
+ #else
+@@ -122,28 +134,56 @@ void __kunmap_atomic(void *kvaddr)
+ kunmap_high(pte_page(pkmap_page_table[PKMAP_NR(vaddr)]));
+ }
+ pagefault_enable();
+- preempt_enable();
++ preempt_enable_nort();
+ }
+ EXPORT_SYMBOL(__kunmap_atomic);
+
+ void *kmap_atomic_pfn(unsigned long pfn)
+ {
++ pte_t pte = pfn_pte(pfn, kmap_prot);
+ unsigned long vaddr;
+ int idx, type;
+ struct page *page = pfn_to_page(pfn);
+
+- preempt_disable();
++ preempt_disable_nort();
+ pagefault_disable();
+ if (!PageHighMem(page))
+ return page_address(page);
+
+ type = kmap_atomic_idx_push();
+- idx = FIX_KMAP_BEGIN + type + KM_TYPE_NR * smp_processor_id();
++ idx = fixmap_idx(type);
+ vaddr = __fix_to_virt(idx);
+ #ifdef CONFIG_DEBUG_HIGHMEM
+ BUG_ON(!pte_none(get_fixmap_pte(vaddr)));
+ #endif
+- set_fixmap_pte(idx, pfn_pte(pfn, kmap_prot));
++#ifdef CONFIG_PREEMPT_RT_FULL
++ current->kmap_pte[type] = pte;
++#endif
++ set_fixmap_pte(idx, pte);
+
+ return (void *)vaddr;
+ }
++#if defined CONFIG_PREEMPT_RT_FULL
++void switch_kmaps(struct task_struct *prev_p, struct task_struct *next_p)
++{
++ int i;
++
++ /*
++ * Clear @prev's kmap_atomic mappings
++ */
++ for (i = 0; i < prev_p->kmap_idx; i++) {
++ int idx = fixmap_idx(i);
++
++ set_fixmap_pte(idx, __pte(0));
++ }
++ /*
++ * Restore @next_p's kmap_atomic mappings
++ */
++ for (i = 0; i < next_p->kmap_idx; i++) {
++ int idx = fixmap_idx(i);
++
++ if (!pte_none(next_p->kmap_pte[i]))
++ set_fixmap_pte(idx, next_p->kmap_pte[i]);
++ }
++}
++#endif
+diff --git a/include/linux/highmem.h b/include/linux/highmem.h
+index 1ac89e4718bf..eaa2ef9bc10e 100644
+--- a/include/linux/highmem.h
++++ b/include/linux/highmem.h
+@@ -8,6 +8,7 @@
+ #include <linux/mm.h>
+ #include <linux/uaccess.h>
+ #include <linux/hardirq.h>
++#include <linux/sched.h>
+
+ #include <asm/cacheflush.h>
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0219-scsi-fcoe-Make-RT-aware.patch b/debian/patches-rt/0219-scsi-fcoe-Make-RT-aware.patch
new file mode 100644
index 000000000..e64e58af6
--- /dev/null
+++ b/debian/patches-rt/0219-scsi-fcoe-Make-RT-aware.patch
@@ -0,0 +1,116 @@
+From de388c8a89d8d509914406a15bb839cc95b1eb06 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Sat, 12 Nov 2011 14:00:48 +0100
+Subject: [PATCH 219/347] scsi/fcoe: Make RT aware.
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Do not disable preemption while taking sleeping locks. All user look safe
+for migrate_diable() only.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ drivers/scsi/fcoe/fcoe.c | 16 ++++++++--------
+ drivers/scsi/fcoe/fcoe_ctlr.c | 4 ++--
+ drivers/scsi/libfc/fc_exch.c | 4 ++--
+ 3 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c
+index 6768b2e8148a..c20f51af6bdf 100644
+--- a/drivers/scsi/fcoe/fcoe.c
++++ b/drivers/scsi/fcoe/fcoe.c
+@@ -1459,11 +1459,11 @@ static int fcoe_rcv(struct sk_buff *skb, struct net_device *netdev,
+ static int fcoe_alloc_paged_crc_eof(struct sk_buff *skb, int tlen)
+ {
+ struct fcoe_percpu_s *fps;
+- int rc;
++ int rc, cpu = get_cpu_light();
+
+- fps = &get_cpu_var(fcoe_percpu);
++ fps = &per_cpu(fcoe_percpu, cpu);
+ rc = fcoe_get_paged_crc_eof(skb, tlen, fps);
+- put_cpu_var(fcoe_percpu);
++ put_cpu_light();
+
+ return rc;
+ }
+@@ -1650,11 +1650,11 @@ static inline int fcoe_filter_frames(struct fc_lport *lport,
+ return 0;
+ }
+
+- stats = per_cpu_ptr(lport->stats, get_cpu());
++ stats = per_cpu_ptr(lport->stats, get_cpu_light());
+ stats->InvalidCRCCount++;
+ if (stats->InvalidCRCCount < 5)
+ printk(KERN_WARNING "fcoe: dropping frame with CRC error\n");
+- put_cpu();
++ put_cpu_light();
+ return -EINVAL;
+ }
+
+@@ -1697,7 +1697,7 @@ static void fcoe_recv_frame(struct sk_buff *skb)
+ */
+ hp = (struct fcoe_hdr *) skb_network_header(skb);
+
+- stats = per_cpu_ptr(lport->stats, get_cpu());
++ stats = per_cpu_ptr(lport->stats, get_cpu_light());
+ if (unlikely(FC_FCOE_DECAPS_VER(hp) != FC_FCOE_VER)) {
+ if (stats->ErrorFrames < 5)
+ printk(KERN_WARNING "fcoe: FCoE version "
+@@ -1729,13 +1729,13 @@ static void fcoe_recv_frame(struct sk_buff *skb)
+ goto drop;
+
+ if (!fcoe_filter_frames(lport, fp)) {
+- put_cpu();
++ put_cpu_light();
+ fc_exch_recv(lport, fp);
+ return;
+ }
+ drop:
+ stats->ErrorFrames++;
+- put_cpu();
++ put_cpu_light();
+ kfree_skb(skb);
+ }
+
+diff --git a/drivers/scsi/fcoe/fcoe_ctlr.c b/drivers/scsi/fcoe/fcoe_ctlr.c
+index 658c0726581f..bceab74eecf7 100644
+--- a/drivers/scsi/fcoe/fcoe_ctlr.c
++++ b/drivers/scsi/fcoe/fcoe_ctlr.c
+@@ -838,7 +838,7 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip)
+
+ INIT_LIST_HEAD(&del_list);
+
+- stats = per_cpu_ptr(fip->lp->stats, get_cpu());
++ stats = per_cpu_ptr(fip->lp->stats, get_cpu_light());
+
+ list_for_each_entry_safe(fcf, next, &fip->fcfs, list) {
+ deadline = fcf->time + fcf->fka_period + fcf->fka_period / 2;
+@@ -874,7 +874,7 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip)
+ sel_time = fcf->time;
+ }
+ }
+- put_cpu();
++ put_cpu_light();
+
+ 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 9fa0aa235cb4..ed538164320a 100644
+--- a/drivers/scsi/libfc/fc_exch.c
++++ b/drivers/scsi/libfc/fc_exch.c
+@@ -833,10 +833,10 @@ static struct fc_exch *fc_exch_em_alloc(struct fc_lport *lport,
+ }
+ memset(ep, 0, sizeof(*ep));
+
+- cpu = get_cpu();
++ cpu = get_cpu_light();
+ pool = per_cpu_ptr(mp->pool, cpu);
+ spin_lock_bh(&pool->lock);
+- put_cpu();
++ put_cpu_light();
+
+ /* peek cache of free slot */
+ if (pool->left != FC_XID_UNKNOWN) {
+--
+2.36.1
+
diff --git a/debian/patches-rt/0220-x86-crypto-Reduce-preempt-disabled-regions.patch b/debian/patches-rt/0220-x86-crypto-Reduce-preempt-disabled-regions.patch
new file mode 100644
index 000000000..eeb0ae4e6
--- /dev/null
+++ b/debian/patches-rt/0220-x86-crypto-Reduce-preempt-disabled-regions.patch
@@ -0,0 +1,118 @@
+From 795856da132e0e41e6ba20d6020b7016f23159cf Mon Sep 17 00:00:00 2001
+From: Peter Zijlstra <peterz@infradead.org>
+Date: Mon, 14 Nov 2011 18:19:27 +0100
+Subject: [PATCH 220/347] x86: crypto: Reduce preempt disabled regions
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Restrict the preempt disabled regions to the actual floating point
+operations and enable preemption for the administrative actions.
+
+This is necessary on RT to avoid that kfree and other operations are
+called with preemption disabled.
+
+Reported-and-tested-by: Carsten Emde <cbe@osadl.org>
+Signed-off-by: Peter Zijlstra <peterz@infradead.org>
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ arch/x86/crypto/aesni-intel_glue.c | 22 ++++++++++++----------
+ 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 917f25e4d0a8..58d8c03fc32d 100644
+--- a/arch/x86/crypto/aesni-intel_glue.c
++++ b/arch/x86/crypto/aesni-intel_glue.c
+@@ -434,14 +434,14 @@ static int ecb_encrypt(struct skcipher_request *req)
+
+ err = skcipher_walk_virt(&walk, req, true);
+
+- kernel_fpu_begin();
+ while ((nbytes = walk.nbytes)) {
++ kernel_fpu_begin();
+ aesni_ecb_enc(ctx, walk.dst.virt.addr, walk.src.virt.addr,
+ nbytes & AES_BLOCK_MASK);
++ kernel_fpu_end();
+ nbytes &= AES_BLOCK_SIZE - 1;
+ err = skcipher_walk_done(&walk, nbytes);
+ }
+- kernel_fpu_end();
+
+ return err;
+ }
+@@ -456,14 +456,14 @@ static int ecb_decrypt(struct skcipher_request *req)
+
+ err = skcipher_walk_virt(&walk, req, true);
+
+- kernel_fpu_begin();
+ while ((nbytes = walk.nbytes)) {
++ kernel_fpu_begin();
+ aesni_ecb_dec(ctx, walk.dst.virt.addr, walk.src.virt.addr,
+ nbytes & AES_BLOCK_MASK);
++ kernel_fpu_end();
+ nbytes &= AES_BLOCK_SIZE - 1;
+ err = skcipher_walk_done(&walk, nbytes);
+ }
+- kernel_fpu_end();
+
+ return err;
+ }
+@@ -478,14 +478,14 @@ static int cbc_encrypt(struct skcipher_request *req)
+
+ err = skcipher_walk_virt(&walk, req, true);
+
+- kernel_fpu_begin();
+ while ((nbytes = walk.nbytes)) {
++ kernel_fpu_begin();
+ aesni_cbc_enc(ctx, walk.dst.virt.addr, walk.src.virt.addr,
+ nbytes & AES_BLOCK_MASK, walk.iv);
++ kernel_fpu_end();
+ nbytes &= AES_BLOCK_SIZE - 1;
+ err = skcipher_walk_done(&walk, nbytes);
+ }
+- kernel_fpu_end();
+
+ return err;
+ }
+@@ -500,14 +500,14 @@ static int cbc_decrypt(struct skcipher_request *req)
+
+ err = skcipher_walk_virt(&walk, req, true);
+
+- kernel_fpu_begin();
+ while ((nbytes = walk.nbytes)) {
++ kernel_fpu_begin();
+ aesni_cbc_dec(ctx, walk.dst.virt.addr, walk.src.virt.addr,
+ nbytes & AES_BLOCK_MASK, walk.iv);
++ kernel_fpu_end();
+ nbytes &= AES_BLOCK_SIZE - 1;
+ err = skcipher_walk_done(&walk, nbytes);
+ }
+- kernel_fpu_end();
+
+ return err;
+ }
+@@ -557,18 +557,20 @@ static int ctr_crypt(struct skcipher_request *req)
+
+ err = skcipher_walk_virt(&walk, req, true);
+
+- kernel_fpu_begin();
+ while ((nbytes = walk.nbytes) >= AES_BLOCK_SIZE) {
++ kernel_fpu_begin();
+ aesni_ctr_enc_tfm(ctx, walk.dst.virt.addr, walk.src.virt.addr,
+ nbytes & AES_BLOCK_MASK, walk.iv);
++ kernel_fpu_end();
+ nbytes &= AES_BLOCK_SIZE - 1;
+ err = skcipher_walk_done(&walk, nbytes);
+ }
+ if (walk.nbytes) {
++ kernel_fpu_begin();
+ ctr_crypt_final(ctx, &walk);
++ kernel_fpu_end();
+ err = skcipher_walk_done(&walk, 0);
+ }
+- kernel_fpu_end();
+
+ return err;
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0221-crypto-Reduce-preempt-disabled-regions-more-algos.patch b/debian/patches-rt/0221-crypto-Reduce-preempt-disabled-regions-more-algos.patch
new file mode 100644
index 000000000..ed1ebcb6d
--- /dev/null
+++ b/debian/patches-rt/0221-crypto-Reduce-preempt-disabled-regions-more-algos.patch
@@ -0,0 +1,263 @@
+From ae835a4684737b3c2efebe8bcbb5e0348eefa1eb Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 21 Feb 2014 17:24:04 +0100
+Subject: [PATCH 221/347] crypto: Reduce preempt disabled regions, more algos
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Don Estabrook reported
+| kernel: WARNING: CPU: 2 PID: 858 at kernel/sched/core.c:2428 migrate_disable+0xed/0x100()
+| kernel: WARNING: CPU: 2 PID: 858 at kernel/sched/core.c:2462 migrate_enable+0x17b/0x200()
+| kernel: WARNING: CPU: 3 PID: 865 at kernel/sched/core.c:2428 migrate_disable+0xed/0x100()
+
+and his backtrace showed some crypto functions which looked fine.
+
+The problem is the following sequence:
+
+glue_xts_crypt_128bit()
+{
+ blkcipher_walk_virt(); /* normal migrate_disable() */
+
+ glue_fpu_begin(); /* get atomic */
+
+ while (nbytes) {
+ __glue_xts_crypt_128bit();
+ blkcipher_walk_done(); /* with nbytes = 0, migrate_enable()
+ * while we are atomic */
+ };
+ glue_fpu_end() /* no longer atomic */
+}
+
+and this is why the counter get out of sync and the warning is printed.
+The other problem is that we are non-preemptible between
+glue_fpu_begin() and glue_fpu_end() and the latency grows. To fix this,
+I shorten the FPU off region and ensure blkcipher_walk_done() is called
+with preemption enabled. This might hurt the performance because we now
+enable/disable the FPU state more often but we gain lower latency and
+the bug is gone.
+
+
+Reported-by: Don Estabrook <don.estabrook@gmail.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/x86/crypto/cast5_avx_glue.c | 21 +++++++++------------
+ arch/x86/crypto/glue_helper.c | 31 ++++++++++++++++---------------
+ 2 files changed, 25 insertions(+), 27 deletions(-)
+
+diff --git a/arch/x86/crypto/cast5_avx_glue.c b/arch/x86/crypto/cast5_avx_glue.c
+index 41034745d6a2..d4bf7fc02ee7 100644
+--- a/arch/x86/crypto/cast5_avx_glue.c
++++ b/arch/x86/crypto/cast5_avx_glue.c
+@@ -61,7 +61,7 @@ static inline void cast5_fpu_end(bool fpu_enabled)
+
+ static int ecb_crypt(struct skcipher_request *req, bool enc)
+ {
+- bool fpu_enabled = false;
++ bool fpu_enabled;
+ struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
+ struct cast5_ctx *ctx = crypto_skcipher_ctx(tfm);
+ struct skcipher_walk walk;
+@@ -76,7 +76,7 @@ static int ecb_crypt(struct skcipher_request *req, bool enc)
+ u8 *wsrc = walk.src.virt.addr;
+ u8 *wdst = walk.dst.virt.addr;
+
+- fpu_enabled = cast5_fpu_begin(fpu_enabled, &walk, nbytes);
++ fpu_enabled = cast5_fpu_begin(false, &walk, nbytes);
+
+ /* Process multi-block batch */
+ if (nbytes >= bsize * CAST5_PARALLEL_BLOCKS) {
+@@ -105,10 +105,9 @@ static int ecb_crypt(struct skcipher_request *req, bool enc)
+ } while (nbytes >= bsize);
+
+ done:
++ cast5_fpu_end(fpu_enabled);
+ err = skcipher_walk_done(&walk, nbytes);
+ }
+-
+- cast5_fpu_end(fpu_enabled);
+ return err;
+ }
+
+@@ -212,7 +211,7 @@ static int cbc_decrypt(struct skcipher_request *req)
+ {
+ struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
+ struct cast5_ctx *ctx = crypto_skcipher_ctx(tfm);
+- bool fpu_enabled = false;
++ bool fpu_enabled;
+ struct skcipher_walk walk;
+ unsigned int nbytes;
+ int err;
+@@ -220,12 +219,11 @@ static int cbc_decrypt(struct skcipher_request *req)
+ err = skcipher_walk_virt(&walk, req, false);
+
+ while ((nbytes = walk.nbytes)) {
+- fpu_enabled = cast5_fpu_begin(fpu_enabled, &walk, nbytes);
++ fpu_enabled = cast5_fpu_begin(false, &walk, nbytes);
+ nbytes = __cbc_decrypt(ctx, &walk);
++ cast5_fpu_end(fpu_enabled);
+ err = skcipher_walk_done(&walk, nbytes);
+ }
+-
+- cast5_fpu_end(fpu_enabled);
+ return err;
+ }
+
+@@ -292,7 +290,7 @@ static int ctr_crypt(struct skcipher_request *req)
+ {
+ struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
+ struct cast5_ctx *ctx = crypto_skcipher_ctx(tfm);
+- bool fpu_enabled = false;
++ bool fpu_enabled;
+ struct skcipher_walk walk;
+ unsigned int nbytes;
+ int err;
+@@ -300,13 +298,12 @@ static int ctr_crypt(struct skcipher_request *req)
+ err = skcipher_walk_virt(&walk, req, false);
+
+ while ((nbytes = walk.nbytes) >= CAST5_BLOCK_SIZE) {
+- fpu_enabled = cast5_fpu_begin(fpu_enabled, &walk, nbytes);
++ fpu_enabled = cast5_fpu_begin(false, &walk, nbytes);
+ nbytes = __ctr_crypt(&walk, ctx);
++ cast5_fpu_end(fpu_enabled);
+ err = skcipher_walk_done(&walk, nbytes);
+ }
+
+- cast5_fpu_end(fpu_enabled);
+-
+ if (walk.nbytes) {
+ 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 a78ef99a9981..dac489a1c4da 100644
+--- a/arch/x86/crypto/glue_helper.c
++++ b/arch/x86/crypto/glue_helper.c
+@@ -38,7 +38,7 @@ int glue_ecb_req_128bit(const struct common_glue_ctx *gctx,
+ void *ctx = crypto_skcipher_ctx(crypto_skcipher_reqtfm(req));
+ const unsigned int bsize = 128 / 8;
+ struct skcipher_walk walk;
+- bool fpu_enabled = false;
++ bool fpu_enabled;
+ unsigned int nbytes;
+ int err;
+
+@@ -51,7 +51,7 @@ int glue_ecb_req_128bit(const struct common_glue_ctx *gctx,
+ unsigned int i;
+
+ fpu_enabled = glue_fpu_begin(bsize, gctx->fpu_blocks_limit,
+- &walk, fpu_enabled, nbytes);
++ &walk, false, nbytes);
+ for (i = 0; i < gctx->num_funcs; i++) {
+ func_bytes = bsize * gctx->funcs[i].num_blocks;
+
+@@ -69,10 +69,9 @@ int glue_ecb_req_128bit(const struct common_glue_ctx *gctx,
+ if (nbytes < bsize)
+ break;
+ }
++ glue_fpu_end(fpu_enabled);
+ err = skcipher_walk_done(&walk, nbytes);
+ }
+-
+- glue_fpu_end(fpu_enabled);
+ return err;
+ }
+ EXPORT_SYMBOL_GPL(glue_ecb_req_128bit);
+@@ -115,7 +114,7 @@ int glue_cbc_decrypt_req_128bit(const struct common_glue_ctx *gctx,
+ void *ctx = crypto_skcipher_ctx(crypto_skcipher_reqtfm(req));
+ const unsigned int bsize = 128 / 8;
+ struct skcipher_walk walk;
+- bool fpu_enabled = false;
++ bool fpu_enabled;
+ unsigned int nbytes;
+ int err;
+
+@@ -129,7 +128,7 @@ int glue_cbc_decrypt_req_128bit(const struct common_glue_ctx *gctx,
+ u128 last_iv;
+
+ fpu_enabled = glue_fpu_begin(bsize, gctx->fpu_blocks_limit,
+- &walk, fpu_enabled, nbytes);
++ &walk, false, nbytes);
+ /* Start of the last block. */
+ src += nbytes / bsize - 1;
+ dst += nbytes / bsize - 1;
+@@ -161,10 +160,10 @@ int glue_cbc_decrypt_req_128bit(const struct common_glue_ctx *gctx,
+ done:
+ u128_xor(dst, dst, (u128 *)walk.iv);
+ *(u128 *)walk.iv = last_iv;
++ glue_fpu_end(fpu_enabled);
+ err = skcipher_walk_done(&walk, nbytes);
+ }
+
+- glue_fpu_end(fpu_enabled);
+ return err;
+ }
+ EXPORT_SYMBOL_GPL(glue_cbc_decrypt_req_128bit);
+@@ -175,7 +174,7 @@ int glue_ctr_req_128bit(const struct common_glue_ctx *gctx,
+ void *ctx = crypto_skcipher_ctx(crypto_skcipher_reqtfm(req));
+ const unsigned int bsize = 128 / 8;
+ struct skcipher_walk walk;
+- bool fpu_enabled = false;
++ bool fpu_enabled;
+ unsigned int nbytes;
+ int err;
+
+@@ -189,7 +188,7 @@ int glue_ctr_req_128bit(const struct common_glue_ctx *gctx,
+ le128 ctrblk;
+
+ fpu_enabled = glue_fpu_begin(bsize, gctx->fpu_blocks_limit,
+- &walk, fpu_enabled, nbytes);
++ &walk, false, nbytes);
+
+ be128_to_le128(&ctrblk, (be128 *)walk.iv);
+
+@@ -213,11 +212,10 @@ int glue_ctr_req_128bit(const struct common_glue_ctx *gctx,
+ }
+
+ le128_to_be128((be128 *)walk.iv, &ctrblk);
++ glue_fpu_end(fpu_enabled);
+ err = skcipher_walk_done(&walk, nbytes);
+ }
+
+- glue_fpu_end(fpu_enabled);
+-
+ if (nbytes) {
+ le128 ctrblk;
+ u128 tmp;
+@@ -278,7 +276,7 @@ int glue_xts_req_128bit(const struct common_glue_ctx *gctx,
+ {
+ const unsigned int bsize = 128 / 8;
+ struct skcipher_walk walk;
+- bool fpu_enabled = false;
++ bool fpu_enabled;
+ unsigned int nbytes;
+ int err;
+
+@@ -289,21 +287,24 @@ int glue_xts_req_128bit(const struct common_glue_ctx *gctx,
+
+ /* set minimum length to bsize, for tweak_fn */
+ fpu_enabled = glue_fpu_begin(bsize, gctx->fpu_blocks_limit,
+- &walk, fpu_enabled,
++ &walk, false,
+ nbytes < bsize ? bsize : nbytes);
+
+ /* calculate first value of T */
+ tweak_fn(tweak_ctx, walk.iv, walk.iv);
+
+ while (nbytes) {
++ fpu_enabled = glue_fpu_begin(bsize, gctx->fpu_blocks_limit,
++ &walk, fpu_enabled,
++ nbytes < bsize ? bsize : nbytes);
+ nbytes = __glue_xts_req_128bit(gctx, crypt_ctx, &walk);
+
++ glue_fpu_end(fpu_enabled);
++ fpu_enabled = false;
+ err = skcipher_walk_done(&walk, nbytes);
+ nbytes = walk.nbytes;
+ }
+
+- glue_fpu_end(fpu_enabled);
+-
+ return err;
+ }
+ EXPORT_SYMBOL_GPL(glue_xts_req_128bit);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0222-crypto-limit-more-FPU-enabled-sections.patch b/debian/patches-rt/0222-crypto-limit-more-FPU-enabled-sections.patch
new file mode 100644
index 000000000..e615a446d
--- /dev/null
+++ b/debian/patches-rt/0222-crypto-limit-more-FPU-enabled-sections.patch
@@ -0,0 +1,108 @@
+From 8e09b2bca6f9a8364bba581fb391a85b500095bb Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 30 Nov 2017 13:40:10 +0100
+Subject: [PATCH 222/347] 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/4.19/older/patches-4.19.246-rt110.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
+disables preemption.
+There are two problems with the way they are used:
+- the while loop which processes X bytes may create latency spikes and
+ should be avoided or limited.
+- the cipher-walk-next part may allocate/free memory and may use
+ kmap_atomic().
+
+The whole kernel_fpu_begin()/end() processing isn't probably that cheap.
+It most likely makes sense to process as much of those as possible in one
+go. The new *_fpu_sched_rt() schedules only if a RT task is pending.
+
+Probably we should measure the performance those ciphers in pure SW
+mode and with this optimisations to see if it makes sense to keep them
+for RT.
+
+This kernel_fpu_resched() makes the code more preemptible which might hurt
+performance.
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/x86/crypto/chacha20_glue.c | 9 +++++----
+ arch/x86/include/asm/fpu/api.h | 1 +
+ arch/x86/kernel/fpu/core.c | 12 ++++++++++++
+ 3 files changed, 18 insertions(+), 4 deletions(-)
+
+diff --git a/arch/x86/crypto/chacha20_glue.c b/arch/x86/crypto/chacha20_glue.c
+index dce7c5d39c2f..6194160b7fbc 100644
+--- a/arch/x86/crypto/chacha20_glue.c
++++ b/arch/x86/crypto/chacha20_glue.c
+@@ -81,23 +81,24 @@ static int chacha20_simd(struct skcipher_request *req)
+
+ crypto_chacha20_init(state, ctx, walk.iv);
+
+- kernel_fpu_begin();
+-
+ while (walk.nbytes >= CHACHA20_BLOCK_SIZE) {
++ kernel_fpu_begin();
++
+ chacha20_dosimd(state, walk.dst.virt.addr, walk.src.virt.addr,
+ rounddown(walk.nbytes, CHACHA20_BLOCK_SIZE));
++ kernel_fpu_end();
+ err = skcipher_walk_done(&walk,
+ walk.nbytes % CHACHA20_BLOCK_SIZE);
+ }
+
+ if (walk.nbytes) {
++ kernel_fpu_begin();
+ chacha20_dosimd(state, walk.dst.virt.addr, walk.src.virt.addr,
+ walk.nbytes);
++ kernel_fpu_end();
+ err = skcipher_walk_done(&walk, 0);
+ }
+
+- kernel_fpu_end();
+-
+ return err;
+ }
+
+diff --git a/arch/x86/include/asm/fpu/api.h b/arch/x86/include/asm/fpu/api.h
+index b56d504af654..e51c7094075d 100644
+--- a/arch/x86/include/asm/fpu/api.h
++++ b/arch/x86/include/asm/fpu/api.h
+@@ -20,6 +20,7 @@
+ */
+ extern void kernel_fpu_begin(void);
+ extern void kernel_fpu_end(void);
++extern void kernel_fpu_resched(void);
+ extern bool irq_fpu_usable(void);
+
+ /*
+diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c
+index 2e5003fef51a..768c53767bb2 100644
+--- a/arch/x86/kernel/fpu/core.c
++++ b/arch/x86/kernel/fpu/core.c
+@@ -136,6 +136,18 @@ void kernel_fpu_end(void)
+ }
+ EXPORT_SYMBOL_GPL(kernel_fpu_end);
+
++void kernel_fpu_resched(void)
++{
++ WARN_ON_FPU(!this_cpu_read(in_kernel_fpu));
++
++ if (should_resched(PREEMPT_OFFSET)) {
++ kernel_fpu_end();
++ cond_resched();
++ kernel_fpu_begin();
++ }
++}
++EXPORT_SYMBOL_GPL(kernel_fpu_resched);
++
+ /*
+ * Save the FPU state (mark it for reload if necessary):
+ *
+--
+2.36.1
+
diff --git a/debian/patches-rt/0223-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch b/debian/patches-rt/0223-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch
new file mode 100644
index 000000000..e7be12f3f
--- /dev/null
+++ b/debian/patches-rt/0223-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch
@@ -0,0 +1,83 @@
+From fe05a8e53c2f5560f734ab76a4527bab302e88c0 Mon Sep 17 00:00:00 2001
+From: Mike Galbraith <efault@gmx.de>
+Date: Wed, 11 Jul 2018 17:14:47 +0200
+Subject: [PATCH 223/347] crypto: scompress - serialize RT percpu scratch
+ buffer access with a local lock
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+| BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:974
+| in_atomic(): 1, irqs_disabled(): 0, pid: 1401, name: cryptomgr_test
+| Preemption disabled at:
+| [<ffff00000849941c>] scomp_acomp_comp_decomp+0x34/0x1a0
+| CPU: 21 PID: 1401 Comm: cryptomgr_test Tainted: G W 4.16.18-rt9-rt #1
+| Hardware name: www.cavium.com crb-1s/crb-1s, BIOS 0.3 Apr 25 2017
+| Call trace:
+| dump_backtrace+0x0/0x1c8
+| show_stack+0x24/0x30
+| dump_stack+0xac/0xe8
+| ___might_sleep+0x124/0x188
+| rt_spin_lock+0x40/0x88
+| zip_load_instr+0x44/0x170 [thunderx_zip]
+| zip_deflate+0x184/0x378 [thunderx_zip]
+| zip_compress+0xb0/0x130 [thunderx_zip]
+| zip_scomp_compress+0x48/0x60 [thunderx_zip]
+| scomp_acomp_comp_decomp+0xd8/0x1a0
+| scomp_acomp_compress+0x24/0x30
+| test_acomp+0x15c/0x558
+| alg_test_comp+0xc0/0x128
+| alg_test.part.6+0x120/0x2c0
+| alg_test+0x6c/0xa0
+| cryptomgr_test+0x50/0x58
+| kthread+0x134/0x138
+| ret_from_fork+0x10/0x18
+
+Mainline disables preemption to serialize percpu scratch buffer access,
+causing the splat above. Serialize with a local lock for RT instead.
+
+Signed-off-by: Mike Galbraith <efault@gmx.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ crypto/scompress.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/crypto/scompress.c b/crypto/scompress.c
+index 968bbcf65c94..c2f0077e0801 100644
+--- a/crypto/scompress.c
++++ b/crypto/scompress.c
+@@ -24,6 +24,7 @@
+ #include <linux/cryptouser.h>
+ #include <net/netlink.h>
+ #include <linux/scatterlist.h>
++#include <linux/locallock.h>
+ #include <crypto/scatterwalk.h>
+ #include <crypto/internal/acompress.h>
+ #include <crypto/internal/scompress.h>
+@@ -34,6 +35,7 @@ static void * __percpu *scomp_src_scratches;
+ static void * __percpu *scomp_dst_scratches;
+ static int scomp_scratch_users;
+ static DEFINE_MUTEX(scomp_lock);
++static DEFINE_LOCAL_IRQ_LOCK(scomp_scratches_lock);
+
+ #ifdef CONFIG_NET
+ static int crypto_scomp_report(struct sk_buff *skb, struct crypto_alg *alg)
+@@ -146,7 +148,7 @@ static int scomp_acomp_comp_decomp(struct acomp_req *req, int dir)
+ void **tfm_ctx = acomp_tfm_ctx(tfm);
+ struct crypto_scomp *scomp = *tfm_ctx;
+ void **ctx = acomp_request_ctx(req);
+- const int cpu = get_cpu();
++ const int cpu = local_lock_cpu(scomp_scratches_lock);
+ u8 *scratch_src = *per_cpu_ptr(scomp_src_scratches, cpu);
+ u8 *scratch_dst = *per_cpu_ptr(scomp_dst_scratches, cpu);
+ int ret;
+@@ -181,7 +183,7 @@ static int scomp_acomp_comp_decomp(struct acomp_req *req, int dir)
+ 1);
+ }
+ out:
+- put_cpu();
++ local_unlock_cpu(scomp_scratches_lock);
+ return ret;
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0224-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch b/debian/patches-rt/0224-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch
new file mode 100644
index 000000000..85f584f79
--- /dev/null
+++ b/debian/patches-rt/0224-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch
@@ -0,0 +1,85 @@
+From 7a1d28b6b70837f1554c28799195274823fc1e72 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 26 Jul 2018 18:52:00 +0200
+Subject: [PATCH 224/347] crypto: cryptd - add a lock instead
+ preempt_disable/local_bh_disable
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+cryptd has a per-CPU lock which protected with local_bh_disable() and
+preempt_disable().
+Add an explicit spin_lock to make the locking context more obvious and
+visible to lockdep. Since it is a per-CPU lock, there should be no lock
+contention on the actual spinlock.
+There is a small race-window where we could be migrated to another CPU
+after the cpu_queue has been obtain. This is not a problem because the
+actual ressource is protected by the spinlock.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ crypto/cryptd.c | 19 +++++++++----------
+ 1 file changed, 9 insertions(+), 10 deletions(-)
+
+diff --git a/crypto/cryptd.c b/crypto/cryptd.c
+index e0c8e907b086..e079f9a70201 100644
+--- a/crypto/cryptd.c
++++ b/crypto/cryptd.c
+@@ -39,6 +39,7 @@ MODULE_PARM_DESC(cryptd_max_cpu_qlen, "Set cryptd Max queue depth");
+ struct cryptd_cpu_queue {
+ struct crypto_queue queue;
+ struct work_struct work;
++ spinlock_t qlock;
+ };
+
+ struct cryptd_queue {
+@@ -117,6 +118,7 @@ static int cryptd_init_queue(struct cryptd_queue *queue,
+ cpu_queue = per_cpu_ptr(queue->cpu_queue, cpu);
+ crypto_init_queue(&cpu_queue->queue, max_cpu_qlen);
+ INIT_WORK(&cpu_queue->work, cryptd_queue_worker);
++ spin_lock_init(&cpu_queue->qlock);
+ }
+ pr_info("cryptd: max_cpu_qlen set to %d\n", max_cpu_qlen);
+ return 0;
+@@ -141,8 +143,10 @@ static int cryptd_enqueue_request(struct cryptd_queue *queue,
+ struct cryptd_cpu_queue *cpu_queue;
+ atomic_t *refcnt;
+
+- cpu = get_cpu();
+- cpu_queue = this_cpu_ptr(queue->cpu_queue);
++ cpu_queue = raw_cpu_ptr(queue->cpu_queue);
++ spin_lock_bh(&cpu_queue->qlock);
++ cpu = smp_processor_id();
++
+ err = crypto_enqueue_request(&cpu_queue->queue, request);
+
+ refcnt = crypto_tfm_ctx(request->tfm);
+@@ -158,7 +162,7 @@ static int cryptd_enqueue_request(struct cryptd_queue *queue,
+ atomic_inc(refcnt);
+
+ out_put_cpu:
+- put_cpu();
++ spin_unlock_bh(&cpu_queue->qlock);
+
+ return err;
+ }
+@@ -174,16 +178,11 @@ static void cryptd_queue_worker(struct work_struct *work)
+ cpu_queue = container_of(work, struct cryptd_cpu_queue, work);
+ /*
+ * Only handle one request at a time to avoid hogging crypto workqueue.
+- * preempt_disable/enable is used to prevent being preempted by
+- * cryptd_enqueue_request(). local_bh_disable/enable is used to prevent
+- * cryptd_enqueue_request() being accessed from software interrupts.
+ */
+- local_bh_disable();
+- preempt_disable();
++ spin_lock_bh(&cpu_queue->qlock);
+ backlog = crypto_get_backlog(&cpu_queue->queue);
+ req = crypto_dequeue_request(&cpu_queue->queue);
+- preempt_enable();
+- local_bh_enable();
++ spin_unlock_bh(&cpu_queue->qlock);
+
+ if (!req)
+ return;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0225-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch b/debian/patches-rt/0225-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch
new file mode 100644
index 000000000..855ce6928
--- /dev/null
+++ b/debian/patches-rt/0225-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch
@@ -0,0 +1,34 @@
+From bc8c16173e79b830e1fb430fc0169dd04b8bbee8 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Tue, 14 Jul 2015 14:26:34 +0200
+Subject: [PATCH 225/347] panic: skip get_random_bytes for RT_FULL in
+ init_oops_id
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Disable on -RT. If this is invoked from irq-context we will have problems
+to acquire the sleeping lock.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ kernel/panic.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/kernel/panic.c b/kernel/panic.c
+index 8138a676fb7d..fa114be5c30f 100644
+--- a/kernel/panic.c
++++ b/kernel/panic.c
+@@ -480,9 +480,11 @@ static u64 oops_id;
+
+ static int init_oops_id(void)
+ {
++#ifndef CONFIG_PREEMPT_RT_FULL
+ if (!oops_id)
+ get_random_bytes(&oops_id, sizeof(oops_id));
+ else
++#endif
+ oops_id++;
+
+ return 0;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0226-x86-stackprotector-Avoid-random-pool-on-rt.patch b/debian/patches-rt/0226-x86-stackprotector-Avoid-random-pool-on-rt.patch
new file mode 100644
index 000000000..f9db1d99d
--- /dev/null
+++ b/debian/patches-rt/0226-x86-stackprotector-Avoid-random-pool-on-rt.patch
@@ -0,0 +1,51 @@
+From b70b05c554fb10c5bccff5b27a1d5ed73d054313 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Thu, 16 Dec 2010 14:25:18 +0100
+Subject: [PATCH 226/347] x86: stackprotector: Avoid random pool on rt
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+checks are disabled. During CPU hotplug the might sleep checks
+trigger. Making the locks in random raw is a major PITA, so avoid the
+call on RT is the only sensible solution. This is basically the same
+randomness which we get during boot where the random pool has no
+entropy and we rely on the TSC randomnness.
+
+Reported-by: Carsten Emde <carsten.emde@osadl.org>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ arch/x86/include/asm/stackprotector.h | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/arch/x86/include/asm/stackprotector.h b/arch/x86/include/asm/stackprotector.h
+index 9c556ea2eaa7..b136992beb1b 100644
+--- a/arch/x86/include/asm/stackprotector.h
++++ b/arch/x86/include/asm/stackprotector.h
+@@ -65,7 +65,7 @@
+ */
+ static __always_inline void boot_init_stack_canary(void)
+ {
+- u64 canary;
++ u64 uninitialized_var(canary);
+ u64 tsc;
+
+ #ifdef CONFIG_X86_64
+@@ -76,8 +76,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.
++ * For preempt-rt we need to weaken the randomness a bit, as
++ * we can't call into the random generator from atomic context
++ * due to locking constraints. We just leave canary
++ * uninitialized and use the TSC based randomness on top of it.
+ */
++#ifndef CONFIG_PREEMPT_RT_FULL
+ get_random_bytes(&canary, sizeof(canary));
++#endif
+ tsc = rdtsc();
+ canary += tsc + (tsc << 32UL);
+ canary &= CANARY_MASK;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0228-cpu-hotplug-Implement-CPU-pinning.patch b/debian/patches-rt/0228-cpu-hotplug-Implement-CPU-pinning.patch
new file mode 100644
index 000000000..9a3b2430f
--- /dev/null
+++ b/debian/patches-rt/0228-cpu-hotplug-Implement-CPU-pinning.patch
@@ -0,0 +1,117 @@
+From 784e4a9806842dc64aa0902210fe4e11984d868a Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 19 Jul 2017 17:31:20 +0200
+Subject: [PATCH 228/347] cpu/hotplug: Implement CPU pinning
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/sched.h | 1 +
+ kernel/cpu.c | 38 ++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 39 insertions(+)
+
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index 577045ae8693..7523c0786a63 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -671,6 +671,7 @@ struct task_struct {
+ #if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
+ int migrate_disable;
+ int migrate_disable_update;
++ int pinned_on_cpu;
+ # ifdef CONFIG_SCHED_DEBUG
+ int migrate_disable_atomic;
+ # endif
+diff --git a/kernel/cpu.c b/kernel/cpu.c
+index 89a96cc14b39..797216a0b4c6 100644
+--- a/kernel/cpu.c
++++ b/kernel/cpu.c
+@@ -77,6 +77,11 @@ static DEFINE_PER_CPU(struct cpuhp_cpu_state, cpuhp_state) = {
+ .fail = CPUHP_INVALID,
+ };
+
++#ifdef CONFIG_HOTPLUG_CPU
++static DEFINE_PER_CPU(struct rt_rw_lock, cpuhp_pin_lock) = \
++ __RWLOCK_RT_INITIALIZER(cpuhp_pin_lock);
++#endif
++
+ #if defined(CONFIG_LOCKDEP) && defined(CONFIG_SMP)
+ static struct lockdep_map cpuhp_state_up_map =
+ STATIC_LOCKDEP_MAP_INIT("cpuhp_state-up", &cpuhp_state_up_map);
+@@ -288,7 +293,28 @@ static int cpu_hotplug_disabled;
+ */
+ void pin_current_cpu(void)
+ {
++ struct rt_rw_lock *cpuhp_pin;
++ unsigned int cpu;
++ int ret;
++
++again:
++ cpuhp_pin = this_cpu_ptr(&cpuhp_pin_lock);
++ ret = __read_rt_trylock(cpuhp_pin);
++ if (ret) {
++ current->pinned_on_cpu = smp_processor_id();
++ return;
++ }
++ cpu = smp_processor_id();
++ preempt_enable();
++
++ __read_rt_lock(cpuhp_pin);
+
++ preempt_disable();
++ if (cpu != smp_processor_id()) {
++ __read_rt_unlock(cpuhp_pin);
++ goto again;
++ }
++ current->pinned_on_cpu = cpu;
+ }
+
+ /**
+@@ -296,6 +322,13 @@ void pin_current_cpu(void)
+ */
+ void unpin_current_cpu(void)
+ {
++ struct rt_rw_lock *cpuhp_pin = this_cpu_ptr(&cpuhp_pin_lock);
++
++ if (WARN_ON(current->pinned_on_cpu != smp_processor_id()))
++ cpuhp_pin = per_cpu_ptr(&cpuhp_pin_lock, current->pinned_on_cpu);
++
++ current->pinned_on_cpu = -1;
++ __read_rt_unlock(cpuhp_pin);
+ }
+
+ DEFINE_STATIC_PERCPU_RWSEM(cpu_hotplug_lock);
+@@ -920,6 +953,7 @@ static int take_cpu_down(void *_param)
+
+ static int takedown_cpu(unsigned int cpu)
+ {
++ struct rt_rw_lock *cpuhp_pin = per_cpu_ptr(&cpuhp_pin_lock, cpu);
+ struct cpuhp_cpu_state *st = per_cpu_ptr(&cpuhp_state, cpu);
+ int err;
+
+@@ -932,11 +966,14 @@ static int takedown_cpu(unsigned int cpu)
+ */
+ irq_lock_sparse();
+
++ __write_rt_lock(cpuhp_pin);
++
+ /*
+ * So now all preempt/rcu users must observe !cpu_active().
+ */
+ err = stop_machine_cpuslocked(take_cpu_down, NULL, cpumask_of(cpu));
+ if (err) {
++ __write_rt_unlock(cpuhp_pin);
+ /* CPU refused to die */
+ irq_unlock_sparse();
+ /* Unpark the hotplug thread so we can rollback there */
+@@ -955,6 +992,7 @@ static int takedown_cpu(unsigned int cpu)
+ wait_for_ap_thread(st, false);
+ BUG_ON(st->state != CPUHP_AP_IDLE_DEAD);
+
++ __write_rt_unlock(cpuhp_pin);
+ /* Interrupts are moved away from the dying cpu, reenable alloc/free */
+ irq_unlock_sparse();
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0229-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch b/debian/patches-rt/0229-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch
new file mode 100644
index 000000000..2c10d0def
--- /dev/null
+++ b/debian/patches-rt/0229-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch
@@ -0,0 +1,39 @@
+From 1e7afdc27ed9146e30dc69cdc8fcdc2ce334430e Mon Sep 17 00:00:00 2001
+From: Mike Galbraith <efault@gmx.de>
+Date: Sun, 19 Aug 2018 08:28:35 +0200
+Subject: [PATCH 229/347] sched: Allow pinned user tasks to be awakened to the
+ CPU they pinned
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Since commit 7af443ee16976 ("sched/core: Require cpu_active() in
+select_task_rq(), for user tasks") select_fallback_rq() will BUG() if
+the CPU to which a task has pinned itself and pinned becomes
+!cpu_active() while it slept.
+The task will continue running on the to-be-removed CPU and will remove
+itself from the CPU during takedown_cpu() (while cpuhp_pin_lock will be
+acquired) and move to another CPU based on its mask after the
+migrate_disable() section has been left.
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Mike Galbraith <efault@gmx.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/sched/core.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 11afaa2c618a..dba425296275 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -904,7 +904,7 @@ static inline bool is_cpu_allowed(struct task_struct *p, int cpu)
+ if (!cpumask_test_cpu(cpu, p->cpus_ptr))
+ return false;
+
+- if (is_per_cpu_kthread(p))
++ if (is_per_cpu_kthread(p) || __migrate_disabled(p))
+ return cpu_online(cpu);
+
+ return cpu_active(cpu);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0230-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch b/debian/patches-rt/0230-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch
new file mode 100644
index 000000000..f60b81343
--- /dev/null
+++ b/debian/patches-rt/0230-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch
@@ -0,0 +1,102 @@
+From 3ed5cb0e7f86a61b58b20f64a79148a2a80dac29 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 4 Aug 2017 18:31:00 +0200
+Subject: [PATCH 230/347] hotplug: duct-tape RT-rwlock usage for non-RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+This type is only available on -RT. We need to craft something for
+non-RT. Since the only migrate_disable() user is -RT only, there is no
+damage.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/cpu.c | 14 +++++++++++++-
+ 1 file changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/kernel/cpu.c b/kernel/cpu.c
+index 797216a0b4c6..f6511c62c9a4 100644
+--- a/kernel/cpu.c
++++ b/kernel/cpu.c
+@@ -77,7 +77,7 @@ static DEFINE_PER_CPU(struct cpuhp_cpu_state, cpuhp_state) = {
+ .fail = CPUHP_INVALID,
+ };
+
+-#ifdef CONFIG_HOTPLUG_CPU
++#if defined(CONFIG_HOTPLUG_CPU) && defined(CONFIG_PREEMPT_RT_FULL)
+ static DEFINE_PER_CPU(struct rt_rw_lock, cpuhp_pin_lock) = \
+ __RWLOCK_RT_INITIALIZER(cpuhp_pin_lock);
+ #endif
+@@ -293,6 +293,7 @@ static int cpu_hotplug_disabled;
+ */
+ void pin_current_cpu(void)
+ {
++#ifdef CONFIG_PREEMPT_RT_FULL
+ struct rt_rw_lock *cpuhp_pin;
+ unsigned int cpu;
+ int ret;
+@@ -315,6 +316,7 @@ void pin_current_cpu(void)
+ goto again;
+ }
+ current->pinned_on_cpu = cpu;
++#endif
+ }
+
+ /**
+@@ -322,6 +324,7 @@ void pin_current_cpu(void)
+ */
+ void unpin_current_cpu(void)
+ {
++#ifdef CONFIG_PREEMPT_RT_FULL
+ struct rt_rw_lock *cpuhp_pin = this_cpu_ptr(&cpuhp_pin_lock);
+
+ if (WARN_ON(current->pinned_on_cpu != smp_processor_id()))
+@@ -329,6 +332,7 @@ void unpin_current_cpu(void)
+
+ current->pinned_on_cpu = -1;
+ __read_rt_unlock(cpuhp_pin);
++#endif
+ }
+
+ DEFINE_STATIC_PERCPU_RWSEM(cpu_hotplug_lock);
+@@ -953,7 +957,9 @@ static int take_cpu_down(void *_param)
+
+ static int takedown_cpu(unsigned int cpu)
+ {
++#ifdef CONFIG_PREEMPT_RT_FULL
+ struct rt_rw_lock *cpuhp_pin = per_cpu_ptr(&cpuhp_pin_lock, cpu);
++#endif
+ struct cpuhp_cpu_state *st = per_cpu_ptr(&cpuhp_state, cpu);
+ int err;
+
+@@ -966,14 +972,18 @@ static int takedown_cpu(unsigned int cpu)
+ */
+ irq_lock_sparse();
+
++#ifdef CONFIG_PREEMPT_RT_FULL
+ __write_rt_lock(cpuhp_pin);
++#endif
+
+ /*
+ * So now all preempt/rcu users must observe !cpu_active().
+ */
+ err = stop_machine_cpuslocked(take_cpu_down, NULL, cpumask_of(cpu));
+ if (err) {
++#ifdef CONFIG_PREEMPT_RT_FULL
+ __write_rt_unlock(cpuhp_pin);
++#endif
+ /* CPU refused to die */
+ irq_unlock_sparse();
+ /* Unpark the hotplug thread so we can rollback there */
+@@ -992,7 +1002,9 @@ static int takedown_cpu(unsigned int cpu)
+ wait_for_ap_thread(st, false);
+ BUG_ON(st->state != CPUHP_AP_IDLE_DEAD);
+
++#ifdef CONFIG_PREEMPT_RT_FULL
+ __write_rt_unlock(cpuhp_pin);
++#endif
+ /* Interrupts are moved away from the dying cpu, reenable alloc/free */
+ irq_unlock_sparse();
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0231-net-Remove-preemption-disabling-in-netif_rx.patch b/debian/patches-rt/0231-net-Remove-preemption-disabling-in-netif_rx.patch
new file mode 100644
index 000000000..5575db994
--- /dev/null
+++ b/debian/patches-rt/0231-net-Remove-preemption-disabling-in-netif_rx.patch
@@ -0,0 +1,71 @@
+From 455243ba6a0787a8a8ed109e5af4e0cb42d90fbf Mon Sep 17 00:00:00 2001
+From: Priyanka Jain <Priyanka.Jain@freescale.com>
+Date: Thu, 17 May 2012 09:35:11 +0530
+Subject: [PATCH 231/347] net: Remove preemption disabling in netif_rx()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+1)enqueue_to_backlog() (called from netif_rx) should be
+ bind to a particluar CPU. This can be achieved by
+ disabling migration. No need to disable preemption
+
+2)Fixes crash "BUG: scheduling while atomic: ksoftirqd"
+ in case of RT.
+ If preemption is disabled, enqueue_to_backog() is called
+ in atomic context. And if backlog exceeds its count,
+ kfree_skb() is called. But in RT, kfree_skb() might
+ gets scheduled out, so it expects non atomic context.
+
+3)When CONFIG_PREEMPT_RT_FULL is not defined,
+ migrate_enable(), migrate_disable() maps to
+ preempt_enable() and preempt_disable(), so no
+ change in functionality in case of non-RT.
+
+-Replace preempt_enable(), preempt_disable() with
+ migrate_enable(), migrate_disable() respectively
+-Replace get_cpu(), put_cpu() with get_cpu_light(),
+ put_cpu_light() respectively
+
+Signed-off-by: Priyanka Jain <Priyanka.Jain@freescale.com>
+Acked-by: Rajan Srivastava <Rajan.Srivastava@freescale.com>
+Cc: <rostedt@goodmis.orgn>
+Link: http://lkml.kernel.org/r/1337227511-2271-1-git-send-email-Priyanka.Jain@freescale.com
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ net/core/dev.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/net/core/dev.c b/net/core/dev.c
+index e65dc7a7cc13..3df1fe052863 100644
+--- a/net/core/dev.c
++++ b/net/core/dev.c
+@@ -4494,7 +4494,7 @@ static int netif_rx_internal(struct sk_buff *skb)
+ struct rps_dev_flow voidflow, *rflow = &voidflow;
+ int cpu;
+
+- preempt_disable();
++ migrate_disable();
+ rcu_read_lock();
+
+ cpu = get_rps_cpu(skb->dev, skb, &rflow);
+@@ -4504,14 +4504,14 @@ static int netif_rx_internal(struct sk_buff *skb)
+ ret = enqueue_to_backlog(skb, cpu, &rflow->last_qtail);
+
+ rcu_read_unlock();
+- preempt_enable();
++ migrate_enable();
+ } else
+ #endif
+ {
+ unsigned int qtail;
+
+- ret = enqueue_to_backlog(skb, get_cpu(), &qtail);
+- put_cpu();
++ ret = enqueue_to_backlog(skb, get_cpu_light(), &qtail);
++ put_cpu_light();
+ }
+ return ret;
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0232-net-Another-local_irq_disable-kmalloc-headache.patch b/debian/patches-rt/0232-net-Another-local_irq_disable-kmalloc-headache.patch
new file mode 100644
index 000000000..374593ebd
--- /dev/null
+++ b/debian/patches-rt/0232-net-Another-local_irq_disable-kmalloc-headache.patch
@@ -0,0 +1,65 @@
+From b83d94e087c52b96575acd87c8ecaff00a418d02 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 26 Sep 2012 16:21:08 +0200
+Subject: [PATCH 232/347] net: Another local_irq_disable/kmalloc headache
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Replace it by a local lock. Though that's pretty inefficient :(
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ net/core/skbuff.c | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/net/core/skbuff.c b/net/core/skbuff.c
+index c623c129d0ab..0696d3cb809d 100644
+--- a/net/core/skbuff.c
++++ b/net/core/skbuff.c
+@@ -63,6 +63,7 @@
+ #include <linux/errqueue.h>
+ #include <linux/prefetch.h>
+ #include <linux/if_vlan.h>
++#include <linux/locallock.h>
+
+ #include <net/protocol.h>
+ #include <net/dst.h>
+@@ -330,6 +331,7 @@ struct napi_alloc_cache {
+
+ static DEFINE_PER_CPU(struct page_frag_cache, netdev_alloc_cache);
+ static DEFINE_PER_CPU(struct napi_alloc_cache, napi_alloc_cache);
++static DEFINE_LOCAL_IRQ_LOCK(netdev_alloc_lock);
+
+ static void *__netdev_alloc_frag(unsigned int fragsz, gfp_t gfp_mask)
+ {
+@@ -337,10 +339,10 @@ static void *__netdev_alloc_frag(unsigned int fragsz, gfp_t gfp_mask)
+ unsigned long flags;
+ void *data;
+
+- local_irq_save(flags);
++ local_lock_irqsave(netdev_alloc_lock, flags);
+ nc = this_cpu_ptr(&netdev_alloc_cache);
+ data = page_frag_alloc(nc, fragsz, gfp_mask);
+- local_irq_restore(flags);
++ local_unlock_irqrestore(netdev_alloc_lock, flags);
+ return data;
+ }
+
+@@ -416,13 +418,13 @@ struct sk_buff *__netdev_alloc_skb(struct net_device *dev, unsigned int len,
+ if (sk_memalloc_socks())
+ gfp_mask |= __GFP_MEMALLOC;
+
+- local_irq_save(flags);
++ local_lock_irqsave(netdev_alloc_lock, flags);
+
+ nc = this_cpu_ptr(&netdev_alloc_cache);
+ data = page_frag_alloc(nc, len, gfp_mask);
+ pfmemalloc = nc->pfmemalloc;
+
+- local_irq_restore(flags);
++ local_unlock_irqrestore(netdev_alloc_lock, flags);
+
+ if (unlikely(!data))
+ return NULL;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0233-net-core-protect-users-of-napi_alloc_cache-against-r.patch b/debian/patches-rt/0233-net-core-protect-users-of-napi_alloc_cache-against-r.patch
new file mode 100644
index 000000000..58878036d
--- /dev/null
+++ b/debian/patches-rt/0233-net-core-protect-users-of-napi_alloc_cache-against-r.patch
@@ -0,0 +1,115 @@
+From e8e3e8f9d02d605ac0820c51015b248d4c4a0873 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 15 Jan 2016 16:33:34 +0100
+Subject: [PATCH 233/347] net/core: protect users of napi_alloc_cache against
+ reentrance
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+On -RT the code running in BH can not be moved to another CPU so CPU
+local variable remain local. However the code can be preempted
+and another task may enter BH accessing the same CPU using the same
+napi_alloc_cache variable.
+This patch ensures that each user of napi_alloc_cache uses a local lock.
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ net/core/skbuff.c | 23 ++++++++++++++++++-----
+ 1 file changed, 18 insertions(+), 5 deletions(-)
+
+diff --git a/net/core/skbuff.c b/net/core/skbuff.c
+index 0696d3cb809d..58f78205585c 100644
+--- a/net/core/skbuff.c
++++ b/net/core/skbuff.c
+@@ -332,6 +332,7 @@ struct napi_alloc_cache {
+ static DEFINE_PER_CPU(struct page_frag_cache, netdev_alloc_cache);
+ static DEFINE_PER_CPU(struct napi_alloc_cache, napi_alloc_cache);
+ static DEFINE_LOCAL_IRQ_LOCK(netdev_alloc_lock);
++static DEFINE_LOCAL_IRQ_LOCK(napi_alloc_cache_lock);
+
+ static void *__netdev_alloc_frag(unsigned int fragsz, gfp_t gfp_mask)
+ {
+@@ -363,9 +364,13 @@ EXPORT_SYMBOL(netdev_alloc_frag);
+
+ static void *__napi_alloc_frag(unsigned int fragsz, gfp_t gfp_mask)
+ {
+- struct napi_alloc_cache *nc = this_cpu_ptr(&napi_alloc_cache);
++ struct napi_alloc_cache *nc;
++ void *data;
+
+- return page_frag_alloc(&nc->page, fragsz, gfp_mask);
++ nc = &get_locked_var(napi_alloc_cache_lock, napi_alloc_cache);
++ data = page_frag_alloc(&nc->page, fragsz, gfp_mask);
++ put_locked_var(napi_alloc_cache_lock, napi_alloc_cache);
++ return data;
+ }
+
+ void *napi_alloc_frag(unsigned int fragsz)
+@@ -468,6 +473,7 @@ struct sk_buff *__napi_alloc_skb(struct napi_struct *napi, unsigned int len,
+ struct napi_alloc_cache *nc;
+ struct sk_buff *skb;
+ void *data;
++ bool pfmemalloc;
+
+ len += NET_SKB_PAD + NET_IP_ALIGN;
+
+@@ -490,7 +496,10 @@ struct sk_buff *__napi_alloc_skb(struct napi_struct *napi, unsigned int len,
+ if (sk_memalloc_socks())
+ gfp_mask |= __GFP_MEMALLOC;
+
++ nc = &get_locked_var(napi_alloc_cache_lock, napi_alloc_cache);
+ data = page_frag_alloc(&nc->page, len, gfp_mask);
++ pfmemalloc = nc->page.pfmemalloc;
++ put_locked_var(napi_alloc_cache_lock, napi_alloc_cache);
+ if (unlikely(!data))
+ return NULL;
+
+@@ -501,7 +510,7 @@ struct sk_buff *__napi_alloc_skb(struct napi_struct *napi, unsigned int len,
+ }
+
+ /* use OR instead of assignment to avoid clearing of bits in mask */
+- if (nc->page.pfmemalloc)
++ if (pfmemalloc)
+ skb->pfmemalloc = 1;
+ skb->head_frag = 1;
+
+@@ -733,23 +742,26 @@ void __consume_stateless_skb(struct sk_buff *skb)
+
+ void __kfree_skb_flush(void)
+ {
+- struct napi_alloc_cache *nc = this_cpu_ptr(&napi_alloc_cache);
++ struct napi_alloc_cache *nc;
+
++ nc = &get_locked_var(napi_alloc_cache_lock, napi_alloc_cache);
+ /* flush skb_cache if containing objects */
+ if (nc->skb_count) {
+ kmem_cache_free_bulk(skbuff_head_cache, nc->skb_count,
+ nc->skb_cache);
+ nc->skb_count = 0;
+ }
++ put_locked_var(napi_alloc_cache_lock, napi_alloc_cache);
+ }
+
+ static inline void _kfree_skb_defer(struct sk_buff *skb)
+ {
+- struct napi_alloc_cache *nc = this_cpu_ptr(&napi_alloc_cache);
++ struct napi_alloc_cache *nc;
+
+ /* drop skb->head and call any destructors for packet */
+ skb_release_all(skb);
+
++ nc = &get_locked_var(napi_alloc_cache_lock, napi_alloc_cache);
+ /* record skb to CPU local list */
+ nc->skb_cache[nc->skb_count++] = skb;
+
+@@ -764,6 +776,7 @@ static inline void _kfree_skb_defer(struct sk_buff *skb)
+ nc->skb_cache);
+ nc->skb_count = 0;
+ }
++ put_locked_var(napi_alloc_cache_lock, napi_alloc_cache);
+ }
+ void __kfree_skb_defer(struct sk_buff *skb)
+ {
+--
+2.36.1
+
diff --git a/debian/patches-rt/0234-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch b/debian/patches-rt/0234-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch
new file mode 100644
index 000000000..615fae013
--- /dev/null
+++ b/debian/patches-rt/0234-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch
@@ -0,0 +1,84 @@
+From 1eb35887a41aa67c6e796dc4f7097e1b08c82a38 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Sun, 28 Oct 2012 11:18:08 +0100
+Subject: [PATCH 234/347] net: netfilter: Serialize xt_write_recseq sections on
+ RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The netfilter code relies only on the implicit semantics of
+local_bh_disable() for serializing wt_write_recseq sections. RT breaks
+that and needs explicit serialization here.
+
+Reported-by: Peter LaDow <petela@gocougs.wsu.edu>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/netfilter/x_tables.h | 7 +++++++
+ net/netfilter/core.c | 6 ++++++
+ 2 files changed, 13 insertions(+)
+
+diff --git a/include/linux/netfilter/x_tables.h b/include/linux/netfilter/x_tables.h
+index 0ade4d1e4dd9..3e21ce64ce54 100644
+--- a/include/linux/netfilter/x_tables.h
++++ b/include/linux/netfilter/x_tables.h
+@@ -6,6 +6,7 @@
+ #include <linux/netdevice.h>
+ #include <linux/static_key.h>
+ #include <linux/netfilter.h>
++#include <linux/locallock.h>
+ #include <uapi/linux/netfilter/x_tables.h>
+
+ /* Test a struct->invflags and a boolean for inequality */
+@@ -345,6 +346,8 @@ void xt_free_table_info(struct xt_table_info *info);
+ */
+ DECLARE_PER_CPU(seqcount_t, xt_recseq);
+
++DECLARE_LOCAL_IRQ_LOCK(xt_write_lock);
++
+ /* xt_tee_enabled - true if x_tables needs to handle reentrancy
+ *
+ * Enabled if current ip(6)tables ruleset has at least one -j TEE rule.
+@@ -365,6 +368,9 @@ static inline unsigned int xt_write_recseq_begin(void)
+ {
+ unsigned int addend;
+
++ /* RT protection */
++ local_lock(xt_write_lock);
++
+ /*
+ * Low order bit of sequence is set if we already
+ * called xt_write_recseq_begin().
+@@ -395,6 +401,7 @@ static inline void xt_write_recseq_end(unsigned int addend)
+ /* this is kind of a write_seqcount_end(), but addend is 0 or 1 */
+ smp_wmb();
+ __this_cpu_add(xt_recseq.sequence, addend);
++ local_unlock(xt_write_lock);
+ }
+
+ /*
+diff --git a/net/netfilter/core.c b/net/netfilter/core.c
+index 722d1b057f61..5b8ebd8abcb0 100644
+--- a/net/netfilter/core.c
++++ b/net/netfilter/core.c
+@@ -20,6 +20,7 @@
+ #include <linux/inetdevice.h>
+ #include <linux/proc_fs.h>
+ #include <linux/mutex.h>
++#include <linux/locallock.h>
+ #include <linux/mm.h>
+ #include <linux/rcupdate.h>
+ #include <net/net_namespace.h>
+@@ -27,6 +28,11 @@
+
+ #include "nf_internals.h"
+
++#ifdef CONFIG_PREEMPT_RT_BASE
++DEFINE_LOCAL_IRQ_LOCK(xt_write_lock);
++EXPORT_PER_CPU_SYMBOL(xt_write_lock);
++#endif
++
+ const struct nf_ipv6_ops __rcu *nf_ipv6_ops __read_mostly;
+ EXPORT_SYMBOL_GPL(nf_ipv6_ops);
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0235-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch b/debian/patches-rt/0235-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch
new file mode 100644
index 000000000..4b7bc1086
--- /dev/null
+++ b/debian/patches-rt/0235-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch
@@ -0,0 +1,62 @@
+From 8e7150c0542da06cffef7097a59911e86fbfe15e Mon Sep 17 00:00:00 2001
+From: Yong Zhang <yong.zhang@windriver.com>
+Date: Mon, 16 Apr 2012 15:01:56 +0800
+Subject: [PATCH 235/347] lockdep: selftest: Only do hardirq context test for
+ raw spinlock
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+On -rt there is no softirq context any more and rwlock is sleepable,
+disable softirq context test and rwlock+irq test.
+
+Signed-off-by: Yong Zhang <yong.zhang0@gmail.com>
+Cc: Yong Zhang <yong.zhang@windriver.com>
+Link: http://lkml.kernel.org/r/1334559716-18447-3-git-send-email-yong.zhang0@gmail.com
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ lib/locking-selftest.c | 23 +++++++++++++++++++++++
+ 1 file changed, 23 insertions(+)
+
+diff --git a/lib/locking-selftest.c b/lib/locking-selftest.c
+index 1e1bbf171eca..5cdf3809905e 100644
+--- a/lib/locking-selftest.c
++++ b/lib/locking-selftest.c
+@@ -2057,6 +2057,7 @@ void locking_selftest(void)
+
+ printk(" --------------------------------------------------------------------------\n");
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ /*
+ * irq-context testcases:
+ */
+@@ -2069,6 +2070,28 @@ void locking_selftest(void)
+
+ DO_TESTCASE_6x2("irq read-recursion", irq_read_recursion);
+ // DO_TESTCASE_6x2B("irq read-recursion #2", irq_read_recursion2);
++#else
++ /* On -rt, we only do hardirq context test for raw spinlock */
++ DO_TESTCASE_1B("hard-irqs-on + irq-safe-A", irqsafe1_hard_spin, 12);
++ DO_TESTCASE_1B("hard-irqs-on + irq-safe-A", irqsafe1_hard_spin, 21);
++
++ DO_TESTCASE_1B("hard-safe-A + irqs-on", irqsafe2B_hard_spin, 12);
++ DO_TESTCASE_1B("hard-safe-A + irqs-on", irqsafe2B_hard_spin, 21);
++
++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 123);
++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 132);
++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 213);
++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 231);
++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 312);
++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 321);
++
++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 123);
++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 132);
++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 213);
++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 231);
++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 312);
++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 321);
++#endif
+
+ ww_tests();
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0236-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch b/debian/patches-rt/0236-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch
new file mode 100644
index 000000000..35eb70ae6
--- /dev/null
+++ b/debian/patches-rt/0236-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch
@@ -0,0 +1,149 @@
+From 8ad69a9f55b91025e0c0db41575ffe79d52fdb7b Mon Sep 17 00:00:00 2001
+From: Josh Cartwright <josh.cartwright@ni.com>
+Date: Wed, 28 Jan 2015 13:08:45 -0600
+Subject: [PATCH 236/347] lockdep: selftest: fix warnings due to missing
+ PREEMPT_RT conditionals
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+"lockdep: Selftest: Only do hardirq context test for raw spinlock"
+disabled the execution of certain tests with PREEMPT_RT_FULL, but did
+not prevent the tests from still being defined. This leads to warnings
+like:
+
+ ./linux/lib/locking-selftest.c:574:1: warning: 'irqsafe1_hard_rlock_12' defined but not used [-Wunused-function]
+ ./linux/lib/locking-selftest.c:574:1: warning: 'irqsafe1_hard_rlock_21' defined but not used [-Wunused-function]
+ ./linux/lib/locking-selftest.c:577:1: warning: 'irqsafe1_hard_wlock_12' defined but not used [-Wunused-function]
+ ./linux/lib/locking-selftest.c:577:1: warning: 'irqsafe1_hard_wlock_21' defined but not used [-Wunused-function]
+ ./linux/lib/locking-selftest.c:580:1: warning: 'irqsafe1_soft_spin_12' defined but not used [-Wunused-function]
+ ...
+
+Fixed by wrapping the test definitions in #ifndef CONFIG_PREEMPT_RT_FULL
+conditionals.
+
+
+Signed-off-by: Josh Cartwright <josh.cartwright@ni.com>
+Signed-off-by: Xander Huff <xander.huff@ni.com>
+Acked-by: Gratian Crisan <gratian.crisan@ni.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ lib/locking-selftest.c | 27 +++++++++++++++++++++++++++
+ 1 file changed, 27 insertions(+)
+
+diff --git a/lib/locking-selftest.c b/lib/locking-selftest.c
+index 5cdf3809905e..32db9532ddd4 100644
+--- a/lib/locking-selftest.c
++++ b/lib/locking-selftest.c
+@@ -742,6 +742,8 @@ GENERATE_TESTCASE(init_held_rtmutex);
+ #include "locking-selftest-spin-hardirq.h"
+ GENERATE_PERMUTATIONS_2_EVENTS(irqsafe1_hard_spin)
+
++#ifndef CONFIG_PREEMPT_RT_FULL
++
+ #include "locking-selftest-rlock-hardirq.h"
+ GENERATE_PERMUTATIONS_2_EVENTS(irqsafe1_hard_rlock)
+
+@@ -757,9 +759,12 @@ GENERATE_PERMUTATIONS_2_EVENTS(irqsafe1_soft_rlock)
+ #include "locking-selftest-wlock-softirq.h"
+ GENERATE_PERMUTATIONS_2_EVENTS(irqsafe1_soft_wlock)
+
++#endif
++
+ #undef E1
+ #undef E2
+
++#ifndef CONFIG_PREEMPT_RT_FULL
+ /*
+ * Enabling hardirqs with a softirq-safe lock held:
+ */
+@@ -792,6 +797,8 @@ GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2A_rlock)
+ #undef E1
+ #undef E2
+
++#endif
++
+ /*
+ * Enabling irqs with an irq-safe lock held:
+ */
+@@ -815,6 +822,8 @@ GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2A_rlock)
+ #include "locking-selftest-spin-hardirq.h"
+ GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2B_hard_spin)
+
++#ifndef CONFIG_PREEMPT_RT_FULL
++
+ #include "locking-selftest-rlock-hardirq.h"
+ GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2B_hard_rlock)
+
+@@ -830,6 +839,8 @@ GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2B_soft_rlock)
+ #include "locking-selftest-wlock-softirq.h"
+ GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2B_soft_wlock)
+
++#endif
++
+ #undef E1
+ #undef E2
+
+@@ -861,6 +872,8 @@ GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2B_soft_wlock)
+ #include "locking-selftest-spin-hardirq.h"
+ GENERATE_PERMUTATIONS_3_EVENTS(irqsafe3_hard_spin)
+
++#ifndef CONFIG_PREEMPT_RT_FULL
++
+ #include "locking-selftest-rlock-hardirq.h"
+ GENERATE_PERMUTATIONS_3_EVENTS(irqsafe3_hard_rlock)
+
+@@ -876,6 +889,8 @@ GENERATE_PERMUTATIONS_3_EVENTS(irqsafe3_soft_rlock)
+ #include "locking-selftest-wlock-softirq.h"
+ GENERATE_PERMUTATIONS_3_EVENTS(irqsafe3_soft_wlock)
+
++#endif
++
+ #undef E1
+ #undef E2
+ #undef E3
+@@ -909,6 +924,8 @@ GENERATE_PERMUTATIONS_3_EVENTS(irqsafe3_soft_wlock)
+ #include "locking-selftest-spin-hardirq.h"
+ GENERATE_PERMUTATIONS_3_EVENTS(irqsafe4_hard_spin)
+
++#ifndef CONFIG_PREEMPT_RT_FULL
++
+ #include "locking-selftest-rlock-hardirq.h"
+ GENERATE_PERMUTATIONS_3_EVENTS(irqsafe4_hard_rlock)
+
+@@ -924,10 +941,14 @@ GENERATE_PERMUTATIONS_3_EVENTS(irqsafe4_soft_rlock)
+ #include "locking-selftest-wlock-softirq.h"
+ GENERATE_PERMUTATIONS_3_EVENTS(irqsafe4_soft_wlock)
+
++#endif
++
+ #undef E1
+ #undef E2
+ #undef E3
+
++#ifndef CONFIG_PREEMPT_RT_FULL
++
+ /*
+ * read-lock / write-lock irq inversion.
+ *
+@@ -990,6 +1011,10 @@ GENERATE_PERMUTATIONS_3_EVENTS(irq_inversion_soft_wlock)
+ #undef E2
+ #undef E3
+
++#endif
++
++#ifndef CONFIG_PREEMPT_RT_FULL
++
+ /*
+ * read-lock / write-lock recursion that is actually safe.
+ */
+@@ -1028,6 +1053,8 @@ GENERATE_PERMUTATIONS_3_EVENTS(irq_read_recursion_soft)
+ #undef E2
+ #undef E3
+
++#endif
++
+ /*
+ * read-lock / write-lock recursion that is unsafe.
+ */
+--
+2.36.1
+
diff --git a/debian/patches-rt/0237-sched-Add-support-for-lazy-preemption.patch b/debian/patches-rt/0237-sched-Add-support-for-lazy-preemption.patch
new file mode 100644
index 000000000..cc0305fdc
--- /dev/null
+++ b/debian/patches-rt/0237-sched-Add-support-for-lazy-preemption.patch
@@ -0,0 +1,671 @@
+From a8be86e68c8a8706268f9765c7e4eba79d265e70 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Fri, 26 Oct 2012 18:50:54 +0100
+Subject: [PATCH 237/347] sched: Add support for lazy preemption
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+It has become an obsession to mitigate the determinism vs. throughput
+loss of RT. Looking at the mainline semantics of preemption points
+gives a hint why RT sucks throughput wise for ordinary SCHED_OTHER
+tasks. One major issue is the wakeup of tasks which are right away
+preempting the waking task while the waking task holds a lock on which
+the woken task will block right after having preempted the wakee. In
+mainline this is prevented due to the implicit preemption disable of
+spin/rw_lock held regions. On RT this is not possible due to the fully
+preemptible nature of sleeping spinlocks.
+
+Though for a SCHED_OTHER task preempting another SCHED_OTHER task this
+is really not a correctness issue. RT folks are concerned about
+SCHED_FIFO/RR tasks preemption and not about the purely fairness
+driven SCHED_OTHER preemption latencies.
+
+So I introduced a lazy preemption mechanism which only applies to
+SCHED_OTHER tasks preempting another SCHED_OTHER task. Aside of the
+existing preempt_count each tasks sports now a preempt_lazy_count
+which is manipulated on lock acquiry and release. This is slightly
+incorrect as for lazyness reasons I coupled this on
+migrate_disable/enable so some other mechanisms get the same treatment
+(e.g. get_cpu_light).
+
+Now on the scheduler side instead of setting NEED_RESCHED this sets
+NEED_RESCHED_LAZY in case of a SCHED_OTHER/SCHED_OTHER preemption and
+therefor allows to exit the waking task the lock held region before
+the woken task preempts. That also works better for cross CPU wakeups
+as the other side can stay in the adaptive spinning loop.
+
+For RT class preemption there is no change. This simply sets
+NEED_RESCHED and forgoes the lazy preemption counter.
+
+ Initial test do not expose any observable latency increasement, but
+history shows that I've been proven wrong before :)
+
+The lazy preemption mode is per default on, but with
+CONFIG_SCHED_DEBUG enabled it can be disabled via:
+
+ # echo NO_PREEMPT_LAZY >/sys/kernel/debug/sched_features
+
+and reenabled via
+
+ # echo PREEMPT_LAZY >/sys/kernel/debug/sched_features
+
+The test results so far are very machine and workload dependent, but
+there is a clear trend that it enhances the non RT workload
+performance.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/preempt.h | 35 ++++++++++++++-
+ include/linux/sched.h | 38 +++++++++++++++++
+ include/linux/thread_info.h | 12 +++++-
+ include/linux/trace_events.h | 1 +
+ kernel/Kconfig.preempt | 6 +++
+ kernel/cpu.c | 2 +
+ kernel/sched/core.c | 83 +++++++++++++++++++++++++++++++++++-
+ kernel/sched/fair.c | 16 +++----
+ kernel/sched/features.h | 3 ++
+ kernel/sched/sched.h | 9 ++++
+ kernel/trace/trace.c | 36 +++++++++-------
+ kernel/trace/trace.h | 2 +
+ kernel/trace/trace_output.c | 14 +++++-
+ 13 files changed, 228 insertions(+), 29 deletions(-)
+
+diff --git a/include/linux/preempt.h b/include/linux/preempt.h
+index ed8413e7140f..9c74a019bf57 100644
+--- a/include/linux/preempt.h
++++ b/include/linux/preempt.h
+@@ -180,6 +180,20 @@ extern void preempt_count_sub(int val);
+ #define preempt_count_inc() preempt_count_add(1)
+ #define preempt_count_dec() preempt_count_sub(1)
+
++#ifdef CONFIG_PREEMPT_LAZY
++#define add_preempt_lazy_count(val) do { preempt_lazy_count() += (val); } while (0)
++#define sub_preempt_lazy_count(val) do { preempt_lazy_count() -= (val); } while (0)
++#define inc_preempt_lazy_count() add_preempt_lazy_count(1)
++#define dec_preempt_lazy_count() sub_preempt_lazy_count(1)
++#define preempt_lazy_count() (current_thread_info()->preempt_lazy_count)
++#else
++#define add_preempt_lazy_count(val) do { } while (0)
++#define sub_preempt_lazy_count(val) do { } while (0)
++#define inc_preempt_lazy_count() do { } while (0)
++#define dec_preempt_lazy_count() do { } while (0)
++#define preempt_lazy_count() (0)
++#endif
++
+ #ifdef CONFIG_PREEMPT_COUNT
+
+ #define preempt_disable() \
+@@ -188,6 +202,12 @@ do { \
+ barrier(); \
+ } while (0)
+
++#define preempt_lazy_disable() \
++do { \
++ inc_preempt_lazy_count(); \
++ barrier(); \
++} while (0)
++
+ #define sched_preempt_enable_no_resched() \
+ do { \
+ barrier(); \
+@@ -250,6 +270,13 @@ do { \
+ __preempt_schedule(); \
+ } while (0)
+
++#define preempt_lazy_enable() \
++do { \
++ dec_preempt_lazy_count(); \
++ barrier(); \
++ preempt_check_resched(); \
++} while (0)
++
+ #else /* !CONFIG_PREEMPT */
+ #define preempt_enable() \
+ do { \
+@@ -257,6 +284,12 @@ do { \
+ preempt_count_dec(); \
+ } while (0)
+
++#define preempt_lazy_enable() \
++do { \
++ dec_preempt_lazy_count(); \
++ barrier(); \
++} while (0)
++
+ #define preempt_enable_notrace() \
+ do { \
+ barrier(); \
+@@ -323,7 +356,7 @@ do { \
+ } while (0)
+ #define preempt_fold_need_resched() \
+ do { \
+- if (tif_need_resched()) \
++ if (tif_need_resched_now()) \
+ set_preempt_need_resched(); \
+ } while (0)
+
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index 7523c0786a63..044bebd3d16f 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -1733,6 +1733,44 @@ static inline int test_tsk_need_resched(struct task_struct *tsk)
+ return unlikely(test_tsk_thread_flag(tsk,TIF_NEED_RESCHED));
+ }
+
++#ifdef CONFIG_PREEMPT_LAZY
++static inline void set_tsk_need_resched_lazy(struct task_struct *tsk)
++{
++ set_tsk_thread_flag(tsk,TIF_NEED_RESCHED_LAZY);
++}
++
++static inline void clear_tsk_need_resched_lazy(struct task_struct *tsk)
++{
++ clear_tsk_thread_flag(tsk,TIF_NEED_RESCHED_LAZY);
++}
++
++static inline int test_tsk_need_resched_lazy(struct task_struct *tsk)
++{
++ return unlikely(test_tsk_thread_flag(tsk,TIF_NEED_RESCHED_LAZY));
++}
++
++static inline int need_resched_lazy(void)
++{
++ return test_thread_flag(TIF_NEED_RESCHED_LAZY);
++}
++
++static inline int need_resched_now(void)
++{
++ return test_thread_flag(TIF_NEED_RESCHED);
++}
++
++#else
++static inline void clear_tsk_need_resched_lazy(struct task_struct *tsk) { }
++static inline int need_resched_lazy(void) { return 0; }
++
++static inline int need_resched_now(void)
++{
++ return test_thread_flag(TIF_NEED_RESCHED);
++}
++
++#endif
++
++
+ static inline bool __task_is_stopped_or_traced(struct task_struct *task)
+ {
+ if (task->state & (__TASK_STOPPED | __TASK_TRACED))
+diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h
+index 62dbecfe9132..57a3d99dc067 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)
+ #define test_thread_flag(flag) \
+ test_ti_thread_flag(current_thread_info(), flag)
+
+-#define tif_need_resched() test_thread_flag(TIF_NEED_RESCHED)
++#ifdef CONFIG_PREEMPT_LAZY
++#define tif_need_resched() (test_thread_flag(TIF_NEED_RESCHED) || \
++ test_thread_flag(TIF_NEED_RESCHED_LAZY))
++#define tif_need_resched_now() (test_thread_flag(TIF_NEED_RESCHED))
++#define tif_need_resched_lazy() test_thread_flag(TIF_NEED_RESCHED_LAZY))
++
++#else
++#define tif_need_resched() test_thread_flag(TIF_NEED_RESCHED)
++#define tif_need_resched_now() test_thread_flag(TIF_NEED_RESCHED)
++#define tif_need_resched_lazy() 0
++#endif
+
+ #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 1cc4d2da954c..72864a11cec0 100644
+--- a/include/linux/trace_events.h
++++ b/include/linux/trace_events.h
+@@ -64,6 +64,7 @@ struct trace_entry {
+ int pid;
+ unsigned short migrate_disable;
+ unsigned short padding;
++ unsigned char preempt_lazy_count;
+ };
+
+ #define TRACE_EVENT_TYPE_MAX \
+diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt
+index 907d72b3ba95..306567f72a3e 100644
+--- a/kernel/Kconfig.preempt
++++ b/kernel/Kconfig.preempt
+@@ -6,6 +6,12 @@ config PREEMPT_RT_BASE
+ bool
+ select PREEMPT
+
++config HAVE_PREEMPT_LAZY
++ bool
++
++config PREEMPT_LAZY
++ def_bool y if HAVE_PREEMPT_LAZY && PREEMPT_RT_FULL
++
+ choice
+ prompt "Preemption Model"
+ default PREEMPT_NONE
+diff --git a/kernel/cpu.c b/kernel/cpu.c
+index f6511c62c9a4..11f48774b129 100644
+--- a/kernel/cpu.c
++++ b/kernel/cpu.c
+@@ -306,11 +306,13 @@ void pin_current_cpu(void)
+ return;
+ }
+ cpu = smp_processor_id();
++ preempt_lazy_enable();
+ preempt_enable();
+
+ __read_rt_lock(cpuhp_pin);
+
+ preempt_disable();
++ preempt_lazy_disable();
+ if (cpu != smp_processor_id()) {
+ __read_rt_unlock(cpuhp_pin);
+ goto again;
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index dba425296275..0995748a3a1d 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -493,6 +493,48 @@ void resched_curr(struct rq *rq)
+ trace_sched_wake_idle_without_ipi(cpu);
+ }
+
++#ifdef CONFIG_PREEMPT_LAZY
++
++static int tsk_is_polling(struct task_struct *p)
++{
++#ifdef TIF_POLLING_NRFLAG
++ return test_tsk_thread_flag(p, TIF_POLLING_NRFLAG);
++#else
++ return 0;
++#endif
++}
++
++void resched_curr_lazy(struct rq *rq)
++{
++ struct task_struct *curr = rq->curr;
++ int cpu;
++
++ if (!sched_feat(PREEMPT_LAZY)) {
++ resched_curr(rq);
++ return;
++ }
++
++ lockdep_assert_held(&rq->lock);
++
++ if (test_tsk_need_resched(curr))
++ return;
++
++ if (test_tsk_need_resched_lazy(curr))
++ return;
++
++ set_tsk_need_resched_lazy(curr);
++
++ cpu = cpu_of(rq);
++ if (cpu == smp_processor_id())
++ return;
++
++ /* NEED_RESCHED_LAZY must be visible before we test polling */
++ smp_mb();
++ if (!tsk_is_polling(curr))
++ smp_send_reschedule(cpu);
++}
++#endif
++
+ void resched_cpu(int cpu)
+ {
+ struct rq *rq = cpu_rq(cpu);
+@@ -2409,6 +2451,9 @@ int sched_fork(unsigned long clone_flags, struct task_struct *p)
+ p->on_cpu = 0;
+ #endif
+ init_task_preempt_count(p);
++#ifdef CONFIG_HAVE_PREEMPT_LAZY
++ task_thread_info(p)->preempt_lazy_count = 0;
++#endif
+ #ifdef CONFIG_SMP
+ plist_node_init(&p->pushable_tasks, MAX_PRIO);
+ RB_CLEAR_NODE(&p->pushable_dl_tasks);
+@@ -3518,6 +3563,7 @@ static void __sched notrace __schedule(bool preempt)
+
+ next = pick_next_task(rq, prev, &rf);
+ clear_tsk_need_resched(prev);
++ clear_tsk_need_resched_lazy(prev);
+ clear_preempt_need_resched();
+
+ if (likely(prev != next)) {
+@@ -3698,6 +3744,30 @@ static void __sched notrace preempt_schedule_common(void)
+ } while (need_resched());
+ }
+
++#ifdef CONFIG_PREEMPT_LAZY
++/*
++ * If TIF_NEED_RESCHED is then we allow to be scheduled away since this is
++ * set by a RT task. Oterwise we try to avoid beeing scheduled out as long as
++ * preempt_lazy_count counter >0.
++ */
++static __always_inline int preemptible_lazy(void)
++{
++ if (test_thread_flag(TIF_NEED_RESCHED))
++ return 1;
++ if (current_thread_info()->preempt_lazy_count)
++ return 0;
++ return 1;
++}
++
++#else
++
++static inline int preemptible_lazy(void)
++{
++ return 1;
++}
++
++#endif
++
+ #ifdef CONFIG_PREEMPT
+ /*
+ * this is the entry point to schedule() from in-kernel preemption
+@@ -3712,7 +3782,8 @@ asmlinkage __visible void __sched notrace preempt_schedule(void)
+ */
+ if (likely(!preemptible()))
+ return;
+-
++ if (!preemptible_lazy())
++ return;
+ preempt_schedule_common();
+ }
+ NOKPROBE_SYMBOL(preempt_schedule);
+@@ -3739,6 +3810,9 @@ asmlinkage __visible void __sched notrace preempt_schedule_notrace(void)
+ if (likely(!preemptible()))
+ return;
+
++ if (!preemptible_lazy())
++ return;
++
+ do {
+ /*
+ * Because the function tracer can trace preempt_count_sub()
+@@ -5505,7 +5579,9 @@ void init_idle(struct task_struct *idle, int cpu)
+
+ /* Set the preempt count _outside_ the spinlocks! */
+ init_idle_preempt_count(idle, cpu);
+-
++#ifdef CONFIG_HAVE_PREEMPT_LAZY
++ task_thread_info(idle)->preempt_lazy_count = 0;
++#endif
+ /*
+ * The idle tasks have their own, simple scheduling class:
+ */
+@@ -7222,6 +7298,7 @@ void migrate_disable(void)
+ }
+
+ preempt_disable();
++ preempt_lazy_disable();
+ pin_current_cpu();
+
+ migrate_disable_update_cpus_allowed(p);
+@@ -7289,6 +7366,7 @@ void migrate_enable(void)
+ arg.dest_cpu = dest_cpu;
+
+ unpin_current_cpu();
++ preempt_lazy_enable();
+ preempt_enable();
+ stop_one_cpu(task_cpu(p), migration_cpu_stop, &arg);
+ tlb_migrate_finish(p->mm);
+@@ -7297,6 +7375,7 @@ void migrate_enable(void)
+ }
+ }
+ unpin_current_cpu();
++ preempt_lazy_enable();
+ preempt_enable();
+ }
+ EXPORT_SYMBOL(migrate_enable);
+diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
+index 16940416d526..d006dfc54a45 100644
+--- a/kernel/sched/fair.c
++++ b/kernel/sched/fair.c
+@@ -4104,7 +4104,7 @@ check_preempt_tick(struct cfs_rq *cfs_rq, struct sched_entity *curr)
+ ideal_runtime = sched_slice(cfs_rq, curr);
+ delta_exec = curr->sum_exec_runtime - curr->prev_sum_exec_runtime;
+ if (delta_exec > ideal_runtime) {
+- resched_curr(rq_of(cfs_rq));
++ resched_curr_lazy(rq_of(cfs_rq));
+ /*
+ * The current task ran long enough, ensure it doesn't get
+ * re-elected due to buddy favours.
+@@ -4128,7 +4128,7 @@ check_preempt_tick(struct cfs_rq *cfs_rq, struct sched_entity *curr)
+ return;
+
+ if (delta > ideal_runtime)
+- resched_curr(rq_of(cfs_rq));
++ resched_curr_lazy(rq_of(cfs_rq));
+ }
+
+ static void
+@@ -4270,7 +4270,7 @@ entity_tick(struct cfs_rq *cfs_rq, struct sched_entity *curr, int queued)
+ * validating it and just reschedule.
+ */
+ if (queued) {
+- resched_curr(rq_of(cfs_rq));
++ resched_curr_lazy(rq_of(cfs_rq));
+ return;
+ }
+ /*
+@@ -4404,7 +4404,7 @@ static void __account_cfs_rq_runtime(struct cfs_rq *cfs_rq, u64 delta_exec)
+ * hierarchy can be throttled
+ */
+ if (!assign_cfs_rq_runtime(cfs_rq) && likely(cfs_rq->curr))
+- resched_curr(rq_of(cfs_rq));
++ resched_curr_lazy(rq_of(cfs_rq));
+ }
+
+ static __always_inline
+@@ -5112,7 +5112,7 @@ static void hrtick_start_fair(struct rq *rq, struct task_struct *p)
+
+ if (delta < 0) {
+ if (rq->curr == p)
+- resched_curr(rq);
++ resched_curr_lazy(rq);
+ return;
+ }
+ hrtick_start(rq, delta);
+@@ -6706,7 +6706,7 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p, int wake_
+ return;
+
+ preempt:
+- resched_curr(rq);
++ resched_curr_lazy(rq);
+ /*
+ * Only set the backward buddy when the current task is still
+ * on the rq. This can happen when a wakeup gets interleaved
+@@ -9840,7 +9840,7 @@ static void task_fork_fair(struct task_struct *p)
+ * 'current' within the tree based on its new key value.
+ */
+ swap(curr->vruntime, se->vruntime);
+- resched_curr(rq);
++ resched_curr_lazy(rq);
+ }
+
+ se->vruntime -= cfs_rq->min_vruntime;
+@@ -9864,7 +9864,7 @@ prio_changed_fair(struct rq *rq, struct task_struct *p, int oldprio)
+ */
+ if (rq->curr == p) {
+ if (p->prio > oldprio)
+- resched_curr(rq);
++ resched_curr_lazy(rq);
+ } else
+ check_preempt_curr(rq, p, 0);
+ }
+diff --git a/kernel/sched/features.h b/kernel/sched/features.h
+index 68de18405857..12a12be6770b 100644
+--- a/kernel/sched/features.h
++++ b/kernel/sched/features.h
+@@ -48,6 +48,9 @@ SCHED_FEAT(NONTASK_CAPACITY, true)
+
+ #ifdef CONFIG_PREEMPT_RT_FULL
+ SCHED_FEAT(TTWU_QUEUE, false)
++# ifdef CONFIG_PREEMPT_LAZY
++SCHED_FEAT(PREEMPT_LAZY, true)
++# endif
+ #else
+
+ /*
+diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
+index 637c408fb2dc..87a05bb90124 100644
+--- a/kernel/sched/sched.h
++++ b/kernel/sched/sched.h
+@@ -1643,6 +1643,15 @@ extern void reweight_task(struct task_struct *p, int prio);
+ extern void resched_curr(struct rq *rq);
+ extern void resched_cpu(int cpu);
+
++#ifdef CONFIG_PREEMPT_LAZY
++extern void resched_curr_lazy(struct rq *rq);
++#else
++static inline void resched_curr_lazy(struct rq *rq)
++{
++ resched_curr(rq);
++}
++#endif
++
+ extern struct rt_bandwidth def_rt_bandwidth;
+ 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 2a8b830d42f1..f36b954d2e30 100644
+--- a/kernel/trace/trace.c
++++ b/kernel/trace/trace.c
+@@ -2153,6 +2153,7 @@ tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags,
+ struct task_struct *tsk = current;
+
+ entry->preempt_count = pc & 0xff;
++ entry->preempt_lazy_count = preempt_lazy_count();
+ entry->pid = (tsk) ? tsk->pid : 0;
+ entry->flags =
+ #ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT
+@@ -2163,7 +2164,8 @@ tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags,
+ ((pc & NMI_MASK ) ? TRACE_FLAG_NMI : 0) |
+ ((pc & HARDIRQ_MASK) ? TRACE_FLAG_HARDIRQ : 0) |
+ ((pc & SOFTIRQ_OFFSET) ? TRACE_FLAG_SOFTIRQ : 0) |
+- (tif_need_resched() ? TRACE_FLAG_NEED_RESCHED : 0) |
++ (tif_need_resched_now() ? TRACE_FLAG_NEED_RESCHED : 0) |
++ (need_resched_lazy() ? TRACE_FLAG_NEED_RESCHED_LAZY : 0) |
+ (test_preempt_need_resched() ? TRACE_FLAG_PREEMPT_RESCHED : 0);
+
+ entry->migrate_disable = (tsk) ? __migrate_disabled(tsk) & 0xFF : 0;
+@@ -3364,15 +3366,17 @@ get_total_entries(struct trace_buffer *buf,
+
+ static void print_lat_help_header(struct seq_file *m)
+ {
+- seq_puts(m, "# _------=> CPU# \n"
+- "# / _-----=> irqs-off \n"
+- "# | / _----=> need-resched \n"
+- "# || / _---=> hardirq/softirq \n"
+- "# ||| / _--=> preempt-depth \n"
+- "# |||| / _--=> migrate-disable\n"
+- "# ||||| / delay \n"
+- "# cmd pid |||||| time | caller \n"
+- "# \\ / ||||| \\ | / \n");
++ seq_puts(m, "# _--------=> CPU# \n"
++ "# / _-------=> irqs-off \n"
++ "# | / _------=> need-resched \n"
++ "# || / _-----=> need-resched_lazy \n"
++ "# ||| / _----=> hardirq/softirq \n"
++ "# |||| / _---=> preempt-depth \n"
++ "# ||||| / _--=> preempt-lazy-depth\n"
++ "# |||||| / _-=> migrate-disable \n"
++ "# ||||||| / delay \n"
++ "# cmd pid |||||||| time | caller \n"
++ "# \\ / |||||||| \\ | / \n");
+ }
+
+ static void print_event_info(struct trace_buffer *buf, struct seq_file *m)
+@@ -3410,15 +3414,17 @@ static void print_func_help_header_irq(struct trace_buffer *buf, struct seq_file
+ tgid ? tgid_space : space);
+ seq_printf(m, "# %s / _----=> need-resched\n",
+ tgid ? tgid_space : space);
+- seq_printf(m, "# %s| / _---=> hardirq/softirq\n",
++ seq_printf(m, "# %s| / _---=> need-resched_lazy\n",
+ tgid ? tgid_space : space);
+- seq_printf(m, "# %s|| / _--=> preempt-depth\n",
++ seq_printf(m, "# %s|| / _--=> hardirq/softirq\n",
+ tgid ? tgid_space : space);
+- seq_printf(m, "# %s||| / delay\n",
++ seq_printf(m, "# %s||| / preempt-depth\n",
+ tgid ? tgid_space : space);
+- seq_printf(m, "# TASK-PID %sCPU# |||| TIMESTAMP FUNCTION\n",
++ seq_printf(m, "# %s|||| / delay\n",
++ tgid ? tgid_space : space);
++ seq_printf(m, "# TASK-PID %sCPU# ||||| TIMESTAMP FUNCTION\n",
+ tgid ? " TGID " : space);
+- seq_printf(m, "# | | %s | |||| | |\n",
++ seq_printf(m, "# | | %s | ||||| | |\n",
+ tgid ? " | " : space);
+ }
+
+diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
+index 74185fb040f3..7740bcdad355 100644
+--- a/kernel/trace/trace.h
++++ b/kernel/trace/trace.h
+@@ -127,6 +127,7 @@ struct kretprobe_trace_entry_head {
+ * NEED_RESCHED - reschedule is requested
+ * HARDIRQ - inside an interrupt handler
+ * SOFTIRQ - inside a softirq handler
++ * NEED_RESCHED_LAZY - lazy reschedule is requested
+ */
+ enum trace_flag_type {
+ TRACE_FLAG_IRQS_OFF = 0x01,
+@@ -136,6 +137,7 @@ enum trace_flag_type {
+ TRACE_FLAG_SOFTIRQ = 0x10,
+ TRACE_FLAG_PREEMPT_RESCHED = 0x20,
+ TRACE_FLAG_NMI = 0x40,
++ TRACE_FLAG_NEED_RESCHED_LAZY = 0x80,
+ };
+
+ #define TRACE_BUF_SIZE 1024
+diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c
+index 46c96744f09d..3f78b0afb729 100644
+--- a/kernel/trace/trace_output.c
++++ b/kernel/trace/trace_output.c
+@@ -448,6 +448,7 @@ int trace_print_lat_fmt(struct trace_seq *s, struct trace_entry *entry)
+ {
+ char hardsoft_irq;
+ char need_resched;
++ char need_resched_lazy;
+ char irqs_off;
+ int hardirq;
+ int softirq;
+@@ -478,6 +479,9 @@ int trace_print_lat_fmt(struct trace_seq *s, struct trace_entry *entry)
+ break;
+ }
+
++ need_resched_lazy =
++ (entry->flags & TRACE_FLAG_NEED_RESCHED_LAZY) ? 'L' : '.';
++
+ hardsoft_irq =
+ (nmi && hardirq) ? 'Z' :
+ nmi ? 'z' :
+@@ -486,14 +490,20 @@ int trace_print_lat_fmt(struct trace_seq *s, struct trace_entry *entry)
+ softirq ? 's' :
+ '.' ;
+
+- trace_seq_printf(s, "%c%c%c",
+- irqs_off, need_resched, hardsoft_irq);
++ trace_seq_printf(s, "%c%c%c%c",
++ irqs_off, need_resched, need_resched_lazy,
++ hardsoft_irq);
+
+ if (entry->preempt_count)
+ trace_seq_printf(s, "%x", entry->preempt_count);
+ else
+ trace_seq_putc(s, '.');
+
++ if (entry->preempt_lazy_count)
++ trace_seq_printf(s, "%x", entry->preempt_lazy_count);
++ else
++ trace_seq_putc(s, '.');
++
+ if (entry->migrate_disable)
+ trace_seq_printf(s, "%x", entry->migrate_disable);
+ else
+--
+2.36.1
+
diff --git a/debian/patches-rt/0238-ftrace-Fix-trace-header-alignment.patch b/debian/patches-rt/0238-ftrace-Fix-trace-header-alignment.patch
new file mode 100644
index 000000000..37c7a1fee
--- /dev/null
+++ b/debian/patches-rt/0238-ftrace-Fix-trace-header-alignment.patch
@@ -0,0 +1,52 @@
+From 4462a16fd2c2a84dcf4ff6f574044ed4cafd7860 Mon Sep 17 00:00:00 2001
+From: Mike Galbraith <umgwanakikbuti@gmail.com>
+Date: Sun, 16 Oct 2016 05:08:30 +0200
+Subject: [PATCH 238/347] ftrace: Fix trace header alignment
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Line up helper arrows to the right column.
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
+[bigeasy: fixup function tracer header]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/trace/trace.c | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
+index f36b954d2e30..87bce59fa340 100644
+--- a/kernel/trace/trace.c
++++ b/kernel/trace/trace.c
+@@ -3366,17 +3366,17 @@ get_total_entries(struct trace_buffer *buf,
+
+ static void print_lat_help_header(struct seq_file *m)
+ {
+- seq_puts(m, "# _--------=> CPU# \n"
+- "# / _-------=> irqs-off \n"
+- "# | / _------=> need-resched \n"
+- "# || / _-----=> need-resched_lazy \n"
+- "# ||| / _----=> hardirq/softirq \n"
+- "# |||| / _---=> preempt-depth \n"
+- "# ||||| / _--=> preempt-lazy-depth\n"
+- "# |||||| / _-=> migrate-disable \n"
+- "# ||||||| / delay \n"
+- "# cmd pid |||||||| time | caller \n"
+- "# \\ / |||||||| \\ | / \n");
++ seq_puts(m, "# _--------=> CPU# \n"
++ "# / _-------=> irqs-off \n"
++ "# | / _------=> need-resched \n"
++ "# || / _-----=> need-resched_lazy \n"
++ "# ||| / _----=> hardirq/softirq \n"
++ "# |||| / _---=> preempt-depth \n"
++ "# ||||| / _--=> preempt-lazy-depth\n"
++ "# |||||| / _-=> migrate-disable \n"
++ "# ||||||| / delay \n"
++ "# cmd pid |||||||| time | caller \n"
++ "# \\ / |||||||| \\ | / \n");
+ }
+
+ static void print_event_info(struct trace_buffer *buf, struct seq_file *m)
+--
+2.36.1
+
diff --git a/debian/patches-rt/0239-x86-Support-for-lazy-preemption.patch b/debian/patches-rt/0239-x86-Support-for-lazy-preemption.patch
new file mode 100644
index 000000000..a1c901aff
--- /dev/null
+++ b/debian/patches-rt/0239-x86-Support-for-lazy-preemption.patch
@@ -0,0 +1,240 @@
+From 0a855342d92f9b1b29ba2616d4d50637087cd955 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Thu, 1 Nov 2012 11:03:47 +0100
+Subject: [PATCH 239/347] x86: Support for lazy preemption
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Implement the x86 pieces for lazy preempt.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ arch/x86/Kconfig | 1 +
+ arch/x86/entry/common.c | 4 ++--
+ arch/x86/entry/entry_32.S | 17 ++++++++++++++++
+ arch/x86/entry/entry_64.S | 16 +++++++++++++++
+ arch/x86/include/asm/preempt.h | 31 +++++++++++++++++++++++++++++-
+ arch/x86/include/asm/thread_info.h | 11 +++++++++++
+ arch/x86/kernel/asm-offsets.c | 2 ++
+ 7 files changed, 79 insertions(+), 3 deletions(-)
+
+diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
+index 6ee7220e7f47..7299aeaa7cbb 100644
+--- a/arch/x86/Kconfig
++++ b/arch/x86/Kconfig
+@@ -180,6 +180,7 @@ config X86
+ select HAVE_HARDLOCKUP_DETECTOR_PERF if PERF_EVENTS && HAVE_PERF_EVENTS_NMI
+ select HAVE_PERF_REGS
+ select HAVE_PERF_USER_STACK_DUMP
++ select HAVE_PREEMPT_LAZY
+ select HAVE_RCU_TABLE_FREE if PARAVIRT
+ select HAVE_RCU_TABLE_INVALIDATE if HAVE_RCU_TABLE_FREE
+ select HAVE_REGS_AND_STACK_ACCESS_API
+diff --git a/arch/x86/entry/common.c b/arch/x86/entry/common.c
+index 91676b0d2d4c..3b5e41d9b29d 100644
+--- a/arch/x86/entry/common.c
++++ b/arch/x86/entry/common.c
+@@ -134,7 +134,7 @@ static long syscall_trace_enter(struct pt_regs *regs)
+
+ #define EXIT_TO_USERMODE_LOOP_FLAGS \
+ (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_UPROBE | \
+- _TIF_NEED_RESCHED | _TIF_USER_RETURN_NOTIFY | _TIF_PATCH_PENDING)
++ _TIF_NEED_RESCHED_MASK | _TIF_USER_RETURN_NOTIFY | _TIF_PATCH_PENDING)
+
+ static void exit_to_usermode_loop(struct pt_regs *regs, u32 cached_flags)
+ {
+@@ -149,7 +149,7 @@ static void exit_to_usermode_loop(struct pt_regs *regs, u32 cached_flags)
+ /* We have work to do. */
+ local_irq_enable();
+
+- if (cached_flags & _TIF_NEED_RESCHED)
++ if (cached_flags & _TIF_NEED_RESCHED_MASK)
+ schedule();
+
+ #ifdef ARCH_RT_DELAYS_SIGNAL_SEND
+diff --git a/arch/x86/entry/entry_32.S b/arch/x86/entry/entry_32.S
+index 37d9016d4768..324b7539eaab 100644
+--- a/arch/x86/entry/entry_32.S
++++ b/arch/x86/entry/entry_32.S
+@@ -750,8 +750,25 @@ END(ret_from_exception)
+ ENTRY(resume_kernel)
+ DISABLE_INTERRUPTS(CLBR_ANY)
+ .Lneed_resched:
++ # preempt count == 0 + NEED_RS set?
+ cmpl $0, PER_CPU_VAR(__preempt_count)
++#ifndef CONFIG_PREEMPT_LAZY
+ jnz restore_all_kernel
++#else
++ jz test_int_off
++
++ # atleast preempt count == 0 ?
++ cmpl $_PREEMPT_ENABLED,PER_CPU_VAR(__preempt_count)
++ jne restore_all
++
++ movl PER_CPU_VAR(current_task), %ebp
++ cmpl $0,TASK_TI_preempt_lazy_count(%ebp) # non-zero preempt_lazy_count ?
++ jnz restore_all
++
++ testl $_TIF_NEED_RESCHED_LAZY, TASK_TI_flags(%ebp)
++ jz restore_all
++ test_int_off:
++#endif
+ testl $X86_EFLAGS_IF, PT_EFLAGS(%esp) # interrupts off (exception path) ?
+ jz restore_all_kernel
+ call preempt_schedule_irq
+diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
+index f53d995b1370..94fccaa04bfa 100644
+--- a/arch/x86/entry/entry_64.S
++++ b/arch/x86/entry/entry_64.S
+@@ -733,7 +733,23 @@ GLOBAL(swapgs_restore_regs_and_return_to_usermode)
+ btl $9, EFLAGS(%rsp) /* were interrupts off? */
+ jnc 1f
+ 0: cmpl $0, PER_CPU_VAR(__preempt_count)
++#ifndef CONFIG_PREEMPT_LAZY
+ jnz 1f
++#else
++ jz do_preempt_schedule_irq
++
++ # atleast preempt count == 0 ?
++ cmpl $_PREEMPT_ENABLED,PER_CPU_VAR(__preempt_count)
++ jnz 1f
++
++ movq PER_CPU_VAR(current_task), %rcx
++ cmpl $0, TASK_TI_preempt_lazy_count(%rcx)
++ jnz 1f
++
++ btl $TIF_NEED_RESCHED_LAZY,TASK_TI_flags(%rcx)
++ jnc 1f
++do_preempt_schedule_irq:
++#endif
+ call preempt_schedule_irq
+ jmp 0b
+ 1:
+diff --git a/arch/x86/include/asm/preempt.h b/arch/x86/include/asm/preempt.h
+index 7f2dbd91fc74..22992c837795 100644
+--- a/arch/x86/include/asm/preempt.h
++++ b/arch/x86/include/asm/preempt.h
+@@ -86,17 +86,46 @@ static __always_inline void __preempt_count_sub(int val)
+ * a decrement which hits zero means we have no preempt_count and should
+ * reschedule.
+ */
+-static __always_inline bool __preempt_count_dec_and_test(void)
++static __always_inline bool ____preempt_count_dec_and_test(void)
+ {
+ GEN_UNARY_RMWcc("decl", __preempt_count, __percpu_arg(0), e);
+ }
+
++static __always_inline bool __preempt_count_dec_and_test(void)
++{
++ if (____preempt_count_dec_and_test())
++ return true;
++#ifdef CONFIG_PREEMPT_LAZY
++ if (current_thread_info()->preempt_lazy_count)
++ return false;
++ return test_thread_flag(TIF_NEED_RESCHED_LAZY);
++#else
++ return false;
++#endif
++}
++
+ /*
+ * Returns true when we need to resched and can (barring IRQ state).
+ */
+ static __always_inline bool should_resched(int preempt_offset)
+ {
++#ifdef CONFIG_PREEMPT_LAZY
++ u32 tmp;
++
++ tmp = raw_cpu_read_4(__preempt_count);
++ if (tmp == preempt_offset)
++ return true;
++
++ /* preempt count == 0 ? */
++ tmp &= ~PREEMPT_NEED_RESCHED;
++ if (tmp)
++ return false;
++ if (current_thread_info()->preempt_lazy_count)
++ return false;
++ return test_thread_flag(TIF_NEED_RESCHED_LAZY);
++#else
+ return unlikely(raw_cpu_read_4(__preempt_count) == preempt_offset);
++#endif
+ }
+
+ #ifdef CONFIG_PREEMPT
+diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h
+index b5e4c357523e..d311dc042ddd 100644
+--- a/arch/x86/include/asm/thread_info.h
++++ b/arch/x86/include/asm/thread_info.h
+@@ -56,17 +56,24 @@ struct task_struct;
+ struct thread_info {
+ unsigned long flags; /* low level flags */
+ u32 status; /* thread synchronous flags */
++ int preempt_lazy_count; /* 0 => lazy preemptable
++ <0 => BUG */
+ };
+
+ #define INIT_THREAD_INFO(tsk) \
+ { \
+ .flags = 0, \
++ .preempt_lazy_count = 0, \
+ }
+
+ #else /* !__ASSEMBLY__ */
+
+ #include <asm/asm-offsets.h>
+
++#define GET_THREAD_INFO(reg) \
++ _ASM_MOV PER_CPU_VAR(cpu_current_top_of_stack),reg ; \
++ _ASM_SUB $(THREAD_SIZE),reg ;
++
+ #endif
+
+ /*
+@@ -91,6 +98,7 @@ struct thread_info {
+ #define TIF_NOCPUID 15 /* CPUID is not accessible in userland */
+ #define TIF_NOTSC 16 /* TSC is not accessible in userland */
+ #define TIF_IA32 17 /* IA32 compatibility process */
++#define TIF_NEED_RESCHED_LAZY 18 /* lazy rescheduling necessary */
+ #define TIF_NOHZ 19 /* in adaptive nohz mode */
+ #define TIF_MEMDIE 20 /* is terminating due to OOM killer */
+ #define TIF_POLLING_NRFLAG 21 /* idle is polling for TIF_NEED_RESCHED */
+@@ -120,6 +128,7 @@ struct thread_info {
+ #define _TIF_NOCPUID (1 << TIF_NOCPUID)
+ #define _TIF_NOTSC (1 << TIF_NOTSC)
+ #define _TIF_IA32 (1 << TIF_IA32)
++#define _TIF_NEED_RESCHED_LAZY (1 << TIF_NEED_RESCHED_LAZY)
+ #define _TIF_NOHZ (1 << TIF_NOHZ)
+ #define _TIF_POLLING_NRFLAG (1 << TIF_POLLING_NRFLAG)
+ #define _TIF_IO_BITMAP (1 << TIF_IO_BITMAP)
+@@ -165,6 +174,8 @@ struct thread_info {
+ #define _TIF_WORK_CTXSW_PREV (_TIF_WORK_CTXSW|_TIF_USER_RETURN_NOTIFY)
+ #define _TIF_WORK_CTXSW_NEXT (_TIF_WORK_CTXSW)
+
++#define _TIF_NEED_RESCHED_MASK (_TIF_NEED_RESCHED | _TIF_NEED_RESCHED_LAZY)
++
+ #define STACK_WARN (THREAD_SIZE/8)
+
+ /*
+diff --git a/arch/x86/kernel/asm-offsets.c b/arch/x86/kernel/asm-offsets.c
+index 01de31db300d..ce1c5b9fbd8c 100644
+--- a/arch/x86/kernel/asm-offsets.c
++++ b/arch/x86/kernel/asm-offsets.c
+@@ -38,6 +38,7 @@ void common(void) {
+
+ BLANK();
+ OFFSET(TASK_TI_flags, task_struct, thread_info.flags);
++ OFFSET(TASK_TI_preempt_lazy_count, task_struct, thread_info.preempt_lazy_count);
+ OFFSET(TASK_addr_limit, task_struct, thread.addr_limit);
+
+ BLANK();
+@@ -94,6 +95,7 @@ void common(void) {
+
+ BLANK();
+ DEFINE(PTREGS_SIZE, sizeof(struct pt_regs));
++ DEFINE(_PREEMPT_ENABLED, PREEMPT_ENABLED);
+
+ /* TLB state for the entry code */
+ OFFSET(TLB_STATE_user_pcid_flush_mask, tlb_state, user_pcid_flush_mask);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0240-x86-lazy-preempt-properly-check-against-preempt-mask.patch b/debian/patches-rt/0240-x86-lazy-preempt-properly-check-against-preempt-mask.patch
new file mode 100644
index 000000000..df8346c2d
--- /dev/null
+++ b/debian/patches-rt/0240-x86-lazy-preempt-properly-check-against-preempt-mask.patch
@@ -0,0 +1,33 @@
+From 87b957ebbe16c81c7a72161e8d1ab55d0746bd83 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Mon, 18 Feb 2019 16:57:09 +0100
+Subject: [PATCH 240/347] x86: lazy-preempt: properly check against
+ preempt-mask
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+should_resched() should check against preempt_offset after unmasking the
+need-resched-bit. Otherwise should_resched() won't work for
+preempt_offset != 0 and lazy-preempt set.
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/x86/include/asm/preempt.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/x86/include/asm/preempt.h b/arch/x86/include/asm/preempt.h
+index 22992c837795..f66708779274 100644
+--- a/arch/x86/include/asm/preempt.h
++++ b/arch/x86/include/asm/preempt.h
+@@ -118,7 +118,7 @@ static __always_inline bool should_resched(int preempt_offset)
+
+ /* preempt count == 0 ? */
+ tmp &= ~PREEMPT_NEED_RESCHED;
+- if (tmp)
++ if (tmp != preempt_offset)
+ return false;
+ if (current_thread_info()->preempt_lazy_count)
+ return false;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0241-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch b/debian/patches-rt/0241-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch
new file mode 100644
index 000000000..430b7295c
--- /dev/null
+++ b/debian/patches-rt/0241-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch
@@ -0,0 +1,45 @@
+From 6f0e27cbe8c66801cdad07e48be779eff3301cc1 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 26 Feb 2019 14:53:49 +0100
+Subject: [PATCH 241/347] x86: lazy-preempt: use proper return label on
+ 32bit-x86
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The lazy-preempt uses the wrong return label in case preemption isn't
+possible. This results crash while returning to the kernel.
+
+Use the correct return label if preemption isn' possible.
+
+Reported-by: Andri Yngvason <andri@yngvason.is>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ arch/x86/entry/entry_32.S | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/arch/x86/entry/entry_32.S b/arch/x86/entry/entry_32.S
+index 324b7539eaab..d8b40085c2b8 100644
+--- a/arch/x86/entry/entry_32.S
++++ b/arch/x86/entry/entry_32.S
+@@ -759,15 +759,15 @@ ENTRY(resume_kernel)
+
+ # atleast preempt count == 0 ?
+ cmpl $_PREEMPT_ENABLED,PER_CPU_VAR(__preempt_count)
+- jne restore_all
++ jne restore_all_kernel
+
+ movl PER_CPU_VAR(current_task), %ebp
+ cmpl $0,TASK_TI_preempt_lazy_count(%ebp) # non-zero preempt_lazy_count ?
+- jnz restore_all
++ jnz restore_all_kernel
+
+ testl $_TIF_NEED_RESCHED_LAZY, TASK_TI_flags(%ebp)
+- jz restore_all
+- test_int_off:
++ jz restore_all_kernel
++test_int_off:
+ #endif
+ testl $X86_EFLAGS_IF, PT_EFLAGS(%esp) # interrupts off (exception path) ?
+ jz restore_all_kernel
+--
+2.36.1
+
diff --git a/debian/patches-rt/0242-arm-Add-support-for-lazy-preemption.patch b/debian/patches-rt/0242-arm-Add-support-for-lazy-preemption.patch
new file mode 100644
index 000000000..af7fd9bc3
--- /dev/null
+++ b/debian/patches-rt/0242-arm-Add-support-for-lazy-preemption.patch
@@ -0,0 +1,168 @@
+From 3845cb2e5f05561da9e363932c9373f45b5fa6a4 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 31 Oct 2012 12:04:11 +0100
+Subject: [PATCH 242/347] arm: Add support for lazy preemption
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Implement the arm pieces for lazy preempt.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ arch/arm/Kconfig | 1 +
+ arch/arm/include/asm/thread_info.h | 8 ++++++--
+ arch/arm/kernel/asm-offsets.c | 1 +
+ arch/arm/kernel/entry-armv.S | 19 ++++++++++++++++---
+ arch/arm/kernel/entry-common.S | 9 +++++++--
+ arch/arm/kernel/signal.c | 3 ++-
+ 6 files changed, 33 insertions(+), 8 deletions(-)
+
+diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+index ec99422059e3..2607cae04885 100644
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -91,6 +91,7 @@ config ARM
+ select HAVE_PERF_EVENTS
+ select HAVE_PERF_REGS
+ select HAVE_PERF_USER_STACK_DUMP
++ select HAVE_PREEMPT_LAZY
+ select HAVE_RCU_TABLE_FREE if (SMP && ARM_LPAE)
+ 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 8f55dc520a3e..4f834bfca470 100644
+--- a/arch/arm/include/asm/thread_info.h
++++ b/arch/arm/include/asm/thread_info.h
+@@ -49,6 +49,7 @@ struct cpu_context_save {
+ struct thread_info {
+ unsigned long flags; /* low level flags */
+ int preempt_count; /* 0 => preemptable, <0 => bug */
++ int preempt_lazy_count; /* 0 => preemptable, <0 => bug */
+ mm_segment_t addr_limit; /* address limit */
+ struct task_struct *task; /* main task structure */
+ __u32 cpu; /* cpu */
+@@ -139,7 +140,8 @@ extern int vfp_restore_user_hwstate(struct user_vfp *,
+ #define TIF_SYSCALL_TRACE 4 /* syscall trace active */
+ #define TIF_SYSCALL_AUDIT 5 /* syscall auditing active */
+ #define TIF_SYSCALL_TRACEPOINT 6 /* syscall tracepoint instrumentation */
+-#define TIF_SECCOMP 7 /* seccomp syscall filtering active */
++#define TIF_SECCOMP 8 /* seccomp syscall filtering active */
++#define TIF_NEED_RESCHED_LAZY 7
+
+ #define TIF_NOHZ 12 /* in adaptive nohz mode */
+ #define TIF_USING_IWMMXT 17
+@@ -149,6 +151,7 @@ extern int vfp_restore_user_hwstate(struct user_vfp *,
+ #define _TIF_SIGPENDING (1 << TIF_SIGPENDING)
+ #define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED)
+ #define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME)
++#define _TIF_NEED_RESCHED_LAZY (1 << TIF_NEED_RESCHED_LAZY)
+ #define _TIF_UPROBE (1 << TIF_UPROBE)
+ #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
+ #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT)
+@@ -164,7 +167,8 @@ extern int vfp_restore_user_hwstate(struct user_vfp *,
+ * Change these and you break ASM code in entry-common.S
+ */
+ #define _TIF_WORK_MASK (_TIF_NEED_RESCHED | _TIF_SIGPENDING | \
+- _TIF_NOTIFY_RESUME | _TIF_UPROBE)
++ _TIF_NOTIFY_RESUME | _TIF_UPROBE | \
++ _TIF_NEED_RESCHED_LAZY)
+
+ #endif /* __KERNEL__ */
+ #endif /* __ASM_ARM_THREAD_INFO_H */
+diff --git a/arch/arm/kernel/asm-offsets.c b/arch/arm/kernel/asm-offsets.c
+index 40afe953a0e2..d634d6f36140 100644
+--- a/arch/arm/kernel/asm-offsets.c
++++ b/arch/arm/kernel/asm-offsets.c
+@@ -58,6 +58,7 @@ int main(void)
+ BLANK();
+ DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
+ DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count));
++ DEFINE(TI_PREEMPT_LAZY, offsetof(struct thread_info, preempt_lazy_count));
+ DEFINE(TI_ADDR_LIMIT, offsetof(struct thread_info, addr_limit));
+ 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 d779cd1a3b0c..dc7ae3d8e62f 100644
+--- a/arch/arm/kernel/entry-armv.S
++++ b/arch/arm/kernel/entry-armv.S
+@@ -209,11 +209,18 @@ ENDPROC(__dabt_svc)
+
+ #ifdef CONFIG_PREEMPT
+ ldr r8, [tsk, #TI_PREEMPT] @ get preempt count
+- ldr r0, [tsk, #TI_FLAGS] @ get flags
+ teq r8, #0 @ if preempt count != 0
++ bne 1f @ return from exeption
++ ldr r0, [tsk, #TI_FLAGS] @ get flags
++ tst r0, #_TIF_NEED_RESCHED @ if NEED_RESCHED is set
++ blne svc_preempt @ preempt!
++
++ ldr r8, [tsk, #TI_PREEMPT_LAZY] @ get preempt lazy count
++ teq r8, #0 @ if preempt lazy count != 0
+ movne r0, #0 @ force flags to 0
+- tst r0, #_TIF_NEED_RESCHED
++ tst r0, #_TIF_NEED_RESCHED_LAZY
+ blne svc_preempt
++1:
+ #endif
+
+ svc_exit r5, irq = 1 @ return from exception
+@@ -228,8 +235,14 @@ ENDPROC(__irq_svc)
+ 1: bl preempt_schedule_irq @ irq en/disable is done inside
+ ldr r0, [tsk, #TI_FLAGS] @ get new tasks TI_FLAGS
+ tst r0, #_TIF_NEED_RESCHED
++ bne 1b
++ tst r0, #_TIF_NEED_RESCHED_LAZY
+ reteq r8 @ go again
+- b 1b
++ ldr r0, [tsk, #TI_PREEMPT_LAZY] @ get preempt lazy count
++ teq r0, #0 @ if preempt lazy count != 0
++ beq 1b
++ ret r8 @ go again
++
+ #endif
+
+ __und_fault:
+diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
+index e27fc2df5231..bc326519f648 100644
+--- a/arch/arm/kernel/entry-common.S
++++ b/arch/arm/kernel/entry-common.S
+@@ -56,7 +56,9 @@ saved_pc .req lr
+ cmp r2, #TASK_SIZE
+ blne addr_limit_check_failed
+ ldr r1, [tsk, #TI_FLAGS] @ re-check for syscall tracing
+- tst r1, #_TIF_SYSCALL_WORK | _TIF_WORK_MASK
++ tst r1, #((_TIF_SYSCALL_WORK | _TIF_WORK_MASK) & ~_TIF_SECCOMP)
++ bne fast_work_pending
++ tst r1, #_TIF_SECCOMP
+ bne fast_work_pending
+
+
+@@ -93,8 +95,11 @@ ENDPROC(ret_fast_syscall)
+ cmp r2, #TASK_SIZE
+ blne addr_limit_check_failed
+ ldr r1, [tsk, #TI_FLAGS] @ re-check for syscall tracing
+- tst r1, #_TIF_SYSCALL_WORK | _TIF_WORK_MASK
++ tst r1, #((_TIF_SYSCALL_WORK | _TIF_WORK_MASK) & ~_TIF_SECCOMP)
++ bne do_slower_path
++ tst r1, #_TIF_SECCOMP
+ beq no_work_pending
++do_slower_path:
+ UNWIND(.fnend )
+ ENDPROC(ret_fast_syscall)
+
+diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
+index 1c01358b9b6d..263b0321dc50 100644
+--- a/arch/arm/kernel/signal.c
++++ b/arch/arm/kernel/signal.c
+@@ -652,7 +652,8 @@ do_work_pending(struct pt_regs *regs, unsigned int thread_flags, int syscall)
+ */
+ trace_hardirqs_off();
+ do {
+- if (likely(thread_flags & _TIF_NEED_RESCHED)) {
++ if (likely(thread_flags & (_TIF_NEED_RESCHED |
++ _TIF_NEED_RESCHED_LAZY))) {
+ schedule();
+ } else {
+ if (unlikely(!user_mode(regs)))
+--
+2.36.1
+
diff --git a/debian/patches-rt/0243-powerpc-Add-support-for-lazy-preemption.patch b/debian/patches-rt/0243-powerpc-Add-support-for-lazy-preemption.patch
new file mode 100644
index 000000000..7c07610a1
--- /dev/null
+++ b/debian/patches-rt/0243-powerpc-Add-support-for-lazy-preemption.patch
@@ -0,0 +1,196 @@
+From 0fe19697678375c08da0c1d53231706a9df830d4 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Thu, 1 Nov 2012 10:14:11 +0100
+Subject: [PATCH 243/347] powerpc: Add support for lazy preemption
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Implement the powerpc pieces for lazy preempt.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ arch/powerpc/Kconfig | 1 +
+ arch/powerpc/include/asm/thread_info.h | 9 +++++++--
+ arch/powerpc/kernel/asm-offsets.c | 1 +
+ arch/powerpc/kernel/entry_32.S | 17 ++++++++++++-----
+ arch/powerpc/kernel/entry_64.S | 16 ++++++++++++----
+ 5 files changed, 33 insertions(+), 11 deletions(-)
+
+diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
+index f4517f4be192..4536d047cdff 100644
+--- a/arch/powerpc/Kconfig
++++ b/arch/powerpc/Kconfig
+@@ -217,6 +217,7 @@ config PPC
+ select HAVE_HARDLOCKUP_DETECTOR_PERF if PERF_EVENTS && HAVE_PERF_EVENTS_NMI && !HAVE_HARDLOCKUP_DETECTOR_ARCH
+ select HAVE_PERF_REGS
+ select HAVE_PERF_USER_STACK_DUMP
++ select HAVE_PREEMPT_LAZY
+ select HAVE_RCU_TABLE_FREE if SMP
+ select HAVE_REGS_AND_STACK_ACCESS_API
+ select HAVE_RELIABLE_STACKTRACE if PPC64 && CPU_LITTLE_ENDIAN
+diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h
+index 3c0002044bc9..ce316076bc52 100644
+--- a/arch/powerpc/include/asm/thread_info.h
++++ b/arch/powerpc/include/asm/thread_info.h
+@@ -37,6 +37,8 @@ struct thread_info {
+ int cpu; /* cpu we're on */
+ int preempt_count; /* 0 => preemptable,
+ <0 => BUG */
++ int preempt_lazy_count; /* 0 => preemptable,
++ <0 => BUG */
+ unsigned long local_flags; /* private flags for thread */
+ #ifdef CONFIG_LIVEPATCH
+ unsigned long *livepatch_sp;
+@@ -81,7 +83,7 @@ extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src
+ #define TIF_SIGPENDING 1 /* signal pending */
+ #define TIF_NEED_RESCHED 2 /* rescheduling necessary */
+ #define TIF_FSCHECK 3 /* Check FS is USER_DS on return */
+-#define TIF_32BIT 4 /* 32 bit binary */
++#define TIF_NEED_RESCHED_LAZY 4 /* lazy rescheduling necessary */
+ #define TIF_RESTORE_TM 5 /* need to restore TM FP/VEC/VSX */
+ #define TIF_PATCH_PENDING 6 /* pending live patching update */
+ #define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */
+@@ -100,6 +102,7 @@ extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src
+ #define TIF_ELF2ABI 18 /* function descriptors must die! */
+ #endif
+ #define TIF_POLLING_NRFLAG 19 /* true if poll_idle() is polling TIF_NEED_RESCHED */
++#define TIF_32BIT 20 /* 32 bit binary */
+
+ /* as above, but as bit values */
+ #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
+@@ -119,6 +122,7 @@ extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src
+ #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
+ #define _TIF_EMULATE_STACK_STORE (1<<TIF_EMULATE_STACK_STORE)
+ #define _TIF_NOHZ (1<<TIF_NOHZ)
++#define _TIF_NEED_RESCHED_LAZY (1<<TIF_NEED_RESCHED_LAZY)
+ #define _TIF_FSCHECK (1<<TIF_FSCHECK)
+ #define _TIF_SYSCALL_DOTRACE (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \
+ _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT | \
+@@ -127,8 +131,9 @@ extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src
+ #define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \
+ _TIF_NOTIFY_RESUME | _TIF_UPROBE | \
+ _TIF_RESTORE_TM | _TIF_PATCH_PENDING | \
+- _TIF_FSCHECK)
++ _TIF_FSCHECK | _TIF_NEED_RESCHED_LAZY)
+ #define _TIF_PERSYSCALL_MASK (_TIF_RESTOREALL|_TIF_NOERROR)
++#define _TIF_NEED_RESCHED_MASK (_TIF_NEED_RESCHED | _TIF_NEED_RESCHED_LAZY)
+
+ /* 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 50400f213bbf..1bb82c5dc1d9 100644
+--- a/arch/powerpc/kernel/asm-offsets.c
++++ b/arch/powerpc/kernel/asm-offsets.c
+@@ -156,6 +156,7 @@ int main(void)
+ OFFSET(TI_FLAGS, thread_info, flags);
+ OFFSET(TI_LOCAL_FLAGS, thread_info, local_flags);
+ OFFSET(TI_PREEMPT, thread_info, preempt_count);
++ OFFSET(TI_PREEMPT_LAZY, thread_info, preempt_lazy_count);
+ OFFSET(TI_TASK, thread_info, task);
+ OFFSET(TI_CPU, thread_info, cpu);
+
+diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S
+index 26b3f853cbf6..3783f3ef17a4 100644
+--- a/arch/powerpc/kernel/entry_32.S
++++ b/arch/powerpc/kernel/entry_32.S
+@@ -888,7 +888,14 @@ user_exc_return: /* r10 contains MSR_KERNEL here */
+ cmpwi 0,r0,0 /* if non-zero, just restore regs and return */
+ bne restore
+ andi. r8,r8,_TIF_NEED_RESCHED
++ bne+ 1f
++ lwz r0,TI_PREEMPT_LAZY(r9)
++ cmpwi 0,r0,0 /* if non-zero, just restore regs and return */
++ bne restore
++ lwz r0,TI_FLAGS(r9)
++ andi. r0,r0,_TIF_NEED_RESCHED_LAZY
+ beq+ restore
++1:
+ lwz r3,_MSR(r1)
+ andi. r0,r3,MSR_EE /* interrupts off? */
+ beq restore /* don't schedule if so */
+@@ -899,11 +906,11 @@ user_exc_return: /* r10 contains MSR_KERNEL here */
+ */
+ bl trace_hardirqs_off
+ #endif
+-1: bl preempt_schedule_irq
++2: bl preempt_schedule_irq
+ CURRENT_THREAD_INFO(r9, r1)
+ lwz r3,TI_FLAGS(r9)
+- andi. r0,r3,_TIF_NEED_RESCHED
+- bne- 1b
++ andi. r0,r3,_TIF_NEED_RESCHED_MASK
++ bne- 2b
+ #ifdef CONFIG_TRACE_IRQFLAGS
+ /* And now, to properly rebalance the above, we tell lockdep they
+ * are being turned back on, which will happen when we return
+@@ -1232,7 +1239,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_NEED_PAIRED_STWCX)
+ #endif /* !(CONFIG_4xx || CONFIG_BOOKE) */
+
+ do_work: /* r10 contains MSR_KERNEL here */
+- andi. r0,r9,_TIF_NEED_RESCHED
++ andi. r0,r9,_TIF_NEED_RESCHED_MASK
+ beq do_user_signal
+
+ do_resched: /* r10 contains MSR_KERNEL here */
+@@ -1253,7 +1260,7 @@ do_resched: /* r10 contains MSR_KERNEL here */
+ MTMSRD(r10) /* disable interrupts */
+ CURRENT_THREAD_INFO(r9, r1)
+ lwz r9,TI_FLAGS(r9)
+- andi. r0,r9,_TIF_NEED_RESCHED
++ andi. r0,r9,_TIF_NEED_RESCHED_MASK
+ bne- do_resched
+ andi. r0,r9,_TIF_USER_WORK_MASK
+ beq restore_user
+diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S
+index 58b50967b3e5..ef02e41d5d96 100644
+--- a/arch/powerpc/kernel/entry_64.S
++++ b/arch/powerpc/kernel/entry_64.S
+@@ -176,7 +176,7 @@ system_call: /* label this so stack traces look sane */
+ * based on caller's run-mode / personality.
+ */
+ ld r11,SYS_CALL_TABLE@toc(2)
+- andi. r10,r10,_TIF_32BIT
++ andis. r10,r10,_TIF_32BIT@h
+ beq 15f
+ addi r11,r11,8 /* use 32-bit syscall entries */
+ clrldi r3,r3,32
+@@ -774,7 +774,7 @@ _GLOBAL(ret_from_except_lite)
+ bl restore_math
+ b restore
+ #endif
+-1: andi. r0,r4,_TIF_NEED_RESCHED
++1: andi. r0,r4,_TIF_NEED_RESCHED_MASK
+ beq 2f
+ bl restore_interrupts
+ SCHEDULE_USER
+@@ -836,10 +836,18 @@ _GLOBAL(ret_from_except_lite)
+
+ #ifdef CONFIG_PREEMPT
+ /* Check if we need to preempt */
++ lwz r8,TI_PREEMPT(r9)
++ cmpwi 0,r8,0 /* if non-zero, just restore regs and return */
++ bne restore
+ andi. r0,r4,_TIF_NEED_RESCHED
++ bne+ check_count
++
++ andi. r0,r4,_TIF_NEED_RESCHED_LAZY
+ beq+ restore
++ lwz r8,TI_PREEMPT_LAZY(r9)
++
+ /* Check that preempt_count() == 0 and interrupts are enabled */
+- lwz r8,TI_PREEMPT(r9)
++check_count:
+ cmpwi cr0,r8,0
+ bne restore
+ ld r0,SOFTE(r1)
+@@ -856,7 +864,7 @@ _GLOBAL(ret_from_except_lite)
+ /* Re-test flags and eventually loop */
+ CURRENT_THREAD_INFO(r9, r1)
+ ld r4,TI_FLAGS(r9)
+- andi. r0,r4,_TIF_NEED_RESCHED
++ andi. r0,r4,_TIF_NEED_RESCHED_MASK
+ bne 1b
+
+ /*
+--
+2.36.1
+
diff --git a/debian/patches-rt/0244-arch-arm64-Add-lazy-preempt-support.patch b/debian/patches-rt/0244-arch-arm64-Add-lazy-preempt-support.patch
new file mode 100644
index 000000000..204ee7168
--- /dev/null
+++ b/debian/patches-rt/0244-arch-arm64-Add-lazy-preempt-support.patch
@@ -0,0 +1,133 @@
+From a8bd2b75bb41fc1acdebf6aa547a3e7cfa524445 Mon Sep 17 00:00:00 2001
+From: Anders Roxell <anders.roxell@linaro.org>
+Date: Thu, 14 May 2015 17:52:17 +0200
+Subject: [PATCH 244/347] arch/arm64: Add lazy preempt support
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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,
+thread information structure definitions, and associated data tables
+have to be extended to provide this support. Then the Kconfig file has
+to be extended to indicate the support is available, and also to
+indicate that support for full RT preemption is now available.
+
+Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
+---
+ arch/arm64/Kconfig | 1 +
+ arch/arm64/include/asm/thread_info.h | 6 +++++-
+ arch/arm64/kernel/asm-offsets.c | 1 +
+ arch/arm64/kernel/entry.S | 12 +++++++++---
+ arch/arm64/kernel/signal.c | 2 +-
+ 5 files changed, 17 insertions(+), 5 deletions(-)
+
+diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
+index a101f5d2fbed..84f53dc1a75b 100644
+--- a/arch/arm64/Kconfig
++++ b/arch/arm64/Kconfig
+@@ -141,6 +141,7 @@ config ARM64
+ select HAVE_PERF_EVENTS
+ select HAVE_PERF_REGS
+ select HAVE_PERF_USER_STACK_DUMP
++ select HAVE_PREEMPT_LAZY
+ select HAVE_REGS_AND_STACK_ACCESS_API
+ select HAVE_RCU_TABLE_FREE
+ select HAVE_RSEQ
+diff --git a/arch/arm64/include/asm/thread_info.h b/arch/arm64/include/asm/thread_info.h
+index 69ac5262cccd..39e921817f28 100644
+--- a/arch/arm64/include/asm/thread_info.h
++++ b/arch/arm64/include/asm/thread_info.h
+@@ -43,6 +43,7 @@ struct thread_info {
+ u64 ttbr0; /* saved TTBR0_EL1 */
+ #endif
+ int preempt_count; /* 0 => preemptable, <0 => bug */
++ int preempt_lazy_count; /* 0 => preemptable, <0 => bug */
+ };
+
+ #define thread_saved_pc(tsk) \
+@@ -76,6 +77,7 @@ void arch_release_task_struct(struct task_struct *tsk);
+ #define TIF_FOREIGN_FPSTATE 3 /* CPU's FP state is not current's */
+ #define TIF_UPROBE 4 /* uprobe breakpoint or singlestep */
+ #define TIF_FSCHECK 5 /* Check FS is USER_DS on return */
++#define TIF_NEED_RESCHED_LAZY 6
+ #define TIF_NOHZ 7
+ #define TIF_SYSCALL_TRACE 8
+ #define TIF_SYSCALL_AUDIT 9
+@@ -94,6 +96,7 @@ void arch_release_task_struct(struct task_struct *tsk);
+ #define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED)
+ #define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME)
+ #define _TIF_FOREIGN_FPSTATE (1 << TIF_FOREIGN_FPSTATE)
++#define _TIF_NEED_RESCHED_LAZY (1 << TIF_NEED_RESCHED_LAZY)
+ #define _TIF_NOHZ (1 << TIF_NOHZ)
+ #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
+ #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT)
+@@ -107,8 +110,9 @@ void arch_release_task_struct(struct task_struct *tsk);
+
+ #define _TIF_WORK_MASK (_TIF_NEED_RESCHED | _TIF_SIGPENDING | \
+ _TIF_NOTIFY_RESUME | _TIF_FOREIGN_FPSTATE | \
+- _TIF_UPROBE | _TIF_FSCHECK)
++ _TIF_UPROBE | _TIF_FSCHECK | _TIF_NEED_RESCHED_LAZY)
+
++#define _TIF_NEED_RESCHED_MASK (_TIF_NEED_RESCHED | _TIF_NEED_RESCHED_LAZY)
+ #define _TIF_SYSCALL_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \
+ _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP | \
+ _TIF_NOHZ)
+diff --git a/arch/arm64/kernel/asm-offsets.c b/arch/arm64/kernel/asm-offsets.c
+index 92fba851ce53..844c71bc865b 100644
+--- a/arch/arm64/kernel/asm-offsets.c
++++ b/arch/arm64/kernel/asm-offsets.c
+@@ -41,6 +41,7 @@ int main(void)
+ BLANK();
+ DEFINE(TSK_TI_FLAGS, offsetof(struct task_struct, thread_info.flags));
+ DEFINE(TSK_TI_PREEMPT, offsetof(struct task_struct, thread_info.preempt_count));
++ DEFINE(TSK_TI_PREEMPT_LAZY, offsetof(struct task_struct, thread_info.preempt_lazy_count));
+ DEFINE(TSK_TI_ADDR_LIMIT, offsetof(struct task_struct, thread_info.addr_limit));
+ #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 85433a84783b..201f412b556e 100644
+--- a/arch/arm64/kernel/entry.S
++++ b/arch/arm64/kernel/entry.S
+@@ -634,11 +634,16 @@ ENDPROC(el1_sync)
+
+ #ifdef CONFIG_PREEMPT
+ ldr w24, [tsk, #TSK_TI_PREEMPT] // get preempt count
+- cbnz w24, 1f // preempt count != 0
++ cbnz w24, 2f // preempt count != 0
+ ldr x0, [tsk, #TSK_TI_FLAGS] // get flags
+- tbz x0, #TIF_NEED_RESCHED, 1f // needs rescheduling?
+- bl el1_preempt
++ tbnz x0, #TIF_NEED_RESCHED, 1f // needs rescheduling?
++
++ ldr w24, [tsk, #TSK_TI_PREEMPT_LAZY] // get preempt lazy count
++ cbnz w24, 2f // preempt lazy count != 0
++ tbz x0, #TIF_NEED_RESCHED_LAZY, 2f // needs rescheduling?
+ 1:
++ bl el1_preempt
++2:
+ #endif
+ #ifdef CONFIG_TRACE_IRQFLAGS
+ bl trace_hardirqs_on
+@@ -652,6 +657,7 @@ ENDPROC(el1_irq)
+ 1: bl preempt_schedule_irq // irq en/disable is done inside
+ ldr x0, [tsk, #TSK_TI_FLAGS] // get new tasks TI_FLAGS
+ tbnz x0, #TIF_NEED_RESCHED, 1b // needs rescheduling?
++ tbnz x0, #TIF_NEED_RESCHED_LAZY, 1b // needs rescheduling?
+ ret x24
+ #endif
+
+diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c
+index ca565853dea6..3f321daa7702 100644
+--- a/arch/arm64/kernel/signal.c
++++ b/arch/arm64/kernel/signal.c
+@@ -919,7 +919,7 @@ asmlinkage void do_notify_resume(struct pt_regs *regs,
+ /* Check valid user FS if needed */
+ addr_limit_user_check();
+
+- if (thread_flags & _TIF_NEED_RESCHED) {
++ if (thread_flags & _TIF_NEED_RESCHED_MASK) {
+ /* Unmask Debug and SError for the next task */
+ local_daif_restore(DAIF_PROCCTX_NOIRQ);
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0245-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch b/debian/patches-rt/0245-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch
new file mode 100644
index 000000000..8ce25e4b2
--- /dev/null
+++ b/debian/patches-rt/0245-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch
@@ -0,0 +1,74 @@
+From 2d5d86f2a24500c2b02576c9d5de36bb90e86f10 Mon Sep 17 00:00:00 2001
+From: Mike Galbraith <umgwanakikbuti@gmail.com>
+Date: Sun, 16 Oct 2016 05:11:54 +0200
+Subject: [PATCH 245/347] connector/cn_proc: Protect send_msg() with a local
+ lock on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:931
+|in_atomic(): 1, irqs_disabled(): 0, pid: 31807, name: sleep
+|Preemption disabled at:[<ffffffff8148019b>] proc_exit_connector+0xbb/0x140
+|
+|CPU: 4 PID: 31807 Comm: sleep Tainted: G W E 4.8.0-rt11-rt #106
+|Call Trace:
+| [<ffffffff813436cd>] dump_stack+0x65/0x88
+| [<ffffffff8109c425>] ___might_sleep+0xf5/0x180
+| [<ffffffff816406b0>] __rt_spin_lock+0x20/0x50
+| [<ffffffff81640978>] rt_read_lock+0x28/0x30
+| [<ffffffff8156e209>] netlink_broadcast_filtered+0x49/0x3f0
+| [<ffffffff81522621>] ? __kmalloc_reserve.isra.33+0x31/0x90
+| [<ffffffff8156e5cd>] netlink_broadcast+0x1d/0x20
+| [<ffffffff8147f57a>] cn_netlink_send_mult+0x19a/0x1f0
+| [<ffffffff8147f5eb>] cn_netlink_send+0x1b/0x20
+| [<ffffffff814801d8>] proc_exit_connector+0xf8/0x140
+| [<ffffffff81077f71>] do_exit+0x5d1/0xba0
+| [<ffffffff810785cc>] do_group_exit+0x4c/0xc0
+| [<ffffffff81078654>] SyS_exit_group+0x14/0x20
+| [<ffffffff81640a72>] entry_SYSCALL_64_fastpath+0x1a/0xa4
+
+Since ab8ed951080e ("connector: fix out-of-order cn_proc netlink message
+delivery") which is v4.7-rc6.
+
+Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/connector/cn_proc.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/connector/cn_proc.c b/drivers/connector/cn_proc.c
+index ad48fd52cb53..c5264b3ee0b0 100644
+--- a/drivers/connector/cn_proc.c
++++ b/drivers/connector/cn_proc.c
+@@ -32,6 +32,7 @@
+ #include <linux/pid_namespace.h>
+
+ #include <linux/cn_proc.h>
++#include <linux/locallock.h>
+
+ /*
+ * Size of a cn_msg followed by a proc_event structure. Since the
+@@ -54,10 +55,11 @@ static struct cb_id cn_proc_event_id = { CN_IDX_PROC, CN_VAL_PROC };
+
+ /* proc_event_counts is used as the sequence number of the netlink message */
+ static DEFINE_PER_CPU(__u32, proc_event_counts) = { 0 };
++static DEFINE_LOCAL_IRQ_LOCK(send_msg_lock);
+
+ static inline void send_msg(struct cn_msg *msg)
+ {
+- preempt_disable();
++ local_lock(send_msg_lock);
+
+ msg->seq = __this_cpu_inc_return(proc_event_counts) - 1;
+ ((struct proc_event *)msg->data)->cpu = smp_processor_id();
+@@ -70,7 +72,7 @@ static inline void send_msg(struct cn_msg *msg)
+ */
+ cn_netlink_send(msg, 0, CN_IDX_PROC, GFP_NOWAIT);
+
+- preempt_enable();
++ local_unlock(send_msg_lock);
+ }
+
+ void proc_fork_connector(struct task_struct *task)
+--
+2.36.1
+
diff --git a/debian/patches-rt/0246-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch b/debian/patches-rt/0246-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch
new file mode 100644
index 000000000..04dcb13d9
--- /dev/null
+++ b/debian/patches-rt/0246-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch
@@ -0,0 +1,104 @@
+From cdff10ec863d6d0e7d18beb8cb66adc86674bb2b Mon Sep 17 00:00:00 2001
+From: Mike Galbraith <umgwanakikbuti@gmail.com>
+Date: Thu, 31 Mar 2016 04:08:28 +0200
+Subject: [PATCH 246/347] drivers/block/zram: Replace bit spinlocks with
+ rtmutex for -rt
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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.
+
+Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/block/zram/zram_drv.c | 38 +++++++++++++++++++++++++++++++++++
+ drivers/block/zram/zram_drv.h | 3 +++
+ 2 files changed, 41 insertions(+)
+
+diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
+index 5e05bfcecd7b..04e4297f8318 100644
+--- a/drivers/block/zram/zram_drv.c
++++ b/drivers/block/zram/zram_drv.c
+@@ -53,6 +53,40 @@ static size_t huge_class_size;
+
+ static void zram_free_page(struct zram *zram, size_t index);
+
++#ifdef CONFIG_PREEMPT_RT_BASE
++static void zram_meta_init_table_locks(struct zram *zram, size_t num_pages)
++{
++ size_t index;
++
++ for (index = 0; index < num_pages; index++)
++ spin_lock_init(&zram->table[index].lock);
++}
++
++static int zram_slot_trylock(struct zram *zram, u32 index)
++{
++ int ret;
++
++ ret = spin_trylock(&zram->table[index].lock);
++ if (ret)
++ __set_bit(ZRAM_LOCK, &zram->table[index].value);
++ return ret;
++}
++
++static void zram_slot_lock(struct zram *zram, u32 index)
++{
++ spin_lock(&zram->table[index].lock);
++ __set_bit(ZRAM_LOCK, &zram->table[index].value);
++}
++
++static void zram_slot_unlock(struct zram *zram, u32 index)
++{
++ __clear_bit(ZRAM_LOCK, &zram->table[index].value);
++ spin_unlock(&zram->table[index].lock);
++}
++
++#else
++static void zram_meta_init_table_locks(struct zram *zram, size_t num_pages) { }
++
+ static int zram_slot_trylock(struct zram *zram, u32 index)
+ {
+ return bit_spin_trylock(ZRAM_LOCK, &zram->table[index].value);
+@@ -67,6 +101,7 @@ static void zram_slot_unlock(struct zram *zram, u32 index)
+ {
+ bit_spin_unlock(ZRAM_LOCK, &zram->table[index].value);
+ }
++#endif
+
+ static inline bool init_done(struct zram *zram)
+ {
+@@ -902,6 +937,8 @@ static DEVICE_ATTR_RO(io_stat);
+ static DEVICE_ATTR_RO(mm_stat);
+ static DEVICE_ATTR_RO(debug_stat);
+
++
++
+ static void zram_meta_free(struct zram *zram, u64 disksize)
+ {
+ size_t num_pages = disksize >> PAGE_SHIFT;
+@@ -932,6 +969,7 @@ static bool zram_meta_alloc(struct zram *zram, u64 disksize)
+
+ if (!huge_class_size)
+ huge_class_size = zs_huge_class_size(zram->mem_pool);
++ zram_meta_init_table_locks(zram, num_pages);
+ return true;
+ }
+
+diff --git a/drivers/block/zram/zram_drv.h b/drivers/block/zram/zram_drv.h
+index d1095dfdffa8..144e91061df8 100644
+--- a/drivers/block/zram/zram_drv.h
++++ b/drivers/block/zram/zram_drv.h
+@@ -61,6 +61,9 @@ struct zram_table_entry {
+ unsigned long element;
+ };
+ unsigned long value;
++#ifdef CONFIG_PREEMPT_RT_BASE
++ spinlock_t lock;
++#endif
+ #ifdef CONFIG_ZRAM_MEMORY_TRACKING
+ ktime_t ac_time;
+ #endif
+--
+2.36.1
+
diff --git a/debian/patches-rt/0247-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch b/debian/patches-rt/0247-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch
new file mode 100644
index 000000000..e12dd3c3c
--- /dev/null
+++ b/debian/patches-rt/0247-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch
@@ -0,0 +1,107 @@
+From fcbeb7ab5dc2a2e2f1243df805e9a4f0103b212b Mon Sep 17 00:00:00 2001
+From: Mike Galbraith <umgwanakikbuti@gmail.com>
+Date: Thu, 20 Oct 2016 11:15:22 +0200
+Subject: [PATCH 247/347] drivers/zram: Don't disable preemption in
+ zcomp_stream_get/put()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+In v4.7, the driver switched to percpu compression streams, disabling
+preemption via get/put_cpu_ptr(). Use a per-zcomp_strm lock here. We
+also have to fix an lock order issue in zram_decompress_page() such
+that zs_map_object() nests inside of zcomp_stream_put() as it does in
+zram_bvec_write().
+
+Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
+[bigeasy: get_locked_var() -> per zcomp_strm lock]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/block/zram/zcomp.c | 12 ++++++++++--
+ drivers/block/zram/zcomp.h | 1 +
+ drivers/block/zram/zram_drv.c | 5 +++--
+ 3 files changed, 14 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/block/zram/zcomp.c b/drivers/block/zram/zcomp.c
+index 4ed0a78fdc09..dd65a27ae2cc 100644
+--- a/drivers/block/zram/zcomp.c
++++ b/drivers/block/zram/zcomp.c
+@@ -116,12 +116,19 @@ ssize_t zcomp_available_show(const char *comp, char *buf)
+
+ struct zcomp_strm *zcomp_stream_get(struct zcomp *comp)
+ {
+- return *get_cpu_ptr(comp->stream);
++ struct zcomp_strm *zstrm;
++
++ zstrm = *this_cpu_ptr(comp->stream);
++ spin_lock(&zstrm->zcomp_lock);
++ return zstrm;
+ }
+
+ void zcomp_stream_put(struct zcomp *comp)
+ {
+- put_cpu_ptr(comp->stream);
++ struct zcomp_strm *zstrm;
++
++ zstrm = *this_cpu_ptr(comp->stream);
++ spin_unlock(&zstrm->zcomp_lock);
+ }
+
+ int zcomp_compress(struct zcomp_strm *zstrm,
+@@ -171,6 +178,7 @@ int zcomp_cpu_up_prepare(unsigned int cpu, struct hlist_node *node)
+ pr_err("Can't allocate a compression stream\n");
+ return -ENOMEM;
+ }
++ spin_lock_init(&zstrm->zcomp_lock);
+ *per_cpu_ptr(comp->stream, cpu) = zstrm;
+ return 0;
+ }
+diff --git a/drivers/block/zram/zcomp.h b/drivers/block/zram/zcomp.h
+index 41c1002a7d7d..d424eafcbf8e 100644
+--- a/drivers/block/zram/zcomp.h
++++ b/drivers/block/zram/zcomp.h
+@@ -14,6 +14,7 @@ struct zcomp_strm {
+ /* compression/decompression buffer */
+ void *buffer;
+ struct crypto_comp *tfm;
++ spinlock_t zcomp_lock;
+ };
+
+ /* dynamic per-device compression frontend */
+diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
+index 04e4297f8318..2919ad13bce9 100644
+--- a/drivers/block/zram/zram_drv.c
++++ b/drivers/block/zram/zram_drv.c
+@@ -1028,6 +1028,7 @@ static int __zram_bvec_read(struct zram *zram, struct page *page, u32 index,
+ unsigned long handle;
+ unsigned int size;
+ void *src, *dst;
++ struct zcomp_strm *zstrm;
+
+ if (zram_wb_enabled(zram)) {
+ zram_slot_lock(zram, index);
+@@ -1062,6 +1063,7 @@ static int __zram_bvec_read(struct zram *zram, struct page *page, u32 index,
+
+ size = zram_get_obj_size(zram, index);
+
++ zstrm = zcomp_stream_get(zram->comp);
+ src = zs_map_object(zram->mem_pool, handle, ZS_MM_RO);
+ if (size == PAGE_SIZE) {
+ dst = kmap_atomic(page);
+@@ -1069,14 +1071,13 @@ static int __zram_bvec_read(struct zram *zram, struct page *page, u32 index,
+ kunmap_atomic(dst);
+ ret = 0;
+ } else {
+- struct zcomp_strm *zstrm = zcomp_stream_get(zram->comp);
+
+ dst = kmap_atomic(page);
+ ret = zcomp_decompress(zstrm, src, size, dst);
+ kunmap_atomic(dst);
+- zcomp_stream_put(zram->comp);
+ }
+ zs_unmap_object(zram->mem_pool, handle);
++ zcomp_stream_put(zram->comp);
+ zram_slot_unlock(zram, index);
+
+ /* Should NEVER happen. Return bio error if it does. */
+--
+2.36.1
+
diff --git a/debian/patches-rt/0248-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch b/debian/patches-rt/0248-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch
new file mode 100644
index 000000000..0ff366338
--- /dev/null
+++ b/debian/patches-rt/0248-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch
@@ -0,0 +1,44 @@
+From 6b94039830863cbed6f161843e96e0cd79637353 Mon Sep 17 00:00:00 2001
+From: Mike Galbraith <efault@gmx.de>
+Date: Wed, 23 Aug 2017 11:57:29 +0200
+Subject: [PATCH 248/347] drivers/zram: fix zcomp_stream_get()
+ smp_processor_id() use in preemptible code
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Use get_local_ptr() instead this_cpu_ptr() to avoid a warning regarding
+smp_processor_id() in preemptible code.
+raw_cpu_ptr() would be fine, too because the per-CPU data structure is
+protected with a spin lock so it does not matter much if we take the
+other one.
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Mike Galbraith <efault@gmx.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/block/zram/zcomp.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/block/zram/zcomp.c b/drivers/block/zram/zcomp.c
+index dd65a27ae2cc..eece02262000 100644
+--- a/drivers/block/zram/zcomp.c
++++ b/drivers/block/zram/zcomp.c
+@@ -118,7 +118,7 @@ struct zcomp_strm *zcomp_stream_get(struct zcomp *comp)
+ {
+ struct zcomp_strm *zstrm;
+
+- zstrm = *this_cpu_ptr(comp->stream);
++ zstrm = *get_local_ptr(comp->stream);
+ spin_lock(&zstrm->zcomp_lock);
+ return zstrm;
+ }
+@@ -129,6 +129,7 @@ void zcomp_stream_put(struct zcomp *comp)
+
+ zstrm = *this_cpu_ptr(comp->stream);
+ spin_unlock(&zstrm->zcomp_lock);
++ put_local_ptr(zstrm);
+ }
+
+ int zcomp_compress(struct zcomp_strm *zstrm,
+--
+2.36.1
+
diff --git a/debian/patches-rt/0249-tpm_tis-fix-stall-after-iowrite-s.patch b/debian/patches-rt/0249-tpm_tis-fix-stall-after-iowrite-s.patch
new file mode 100644
index 000000000..0da4b19d0
--- /dev/null
+++ b/debian/patches-rt/0249-tpm_tis-fix-stall-after-iowrite-s.patch
@@ -0,0 +1,84 @@
+From 4ef974ed9fe88d78a6e03689fab80c553fcf70df Mon Sep 17 00:00:00 2001
+From: Haris Okanovic <haris.okanovic@ni.com>
+Date: Tue, 15 Aug 2017 15:13:08 -0500
+Subject: [PATCH 249/347] tpm_tis: fix stall after iowrite*()s
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+ioread8() operations to TPM MMIO addresses can stall the cpu when
+immediately following a sequence of iowrite*()'s to the same region.
+
+For example, cyclitest measures ~400us latency spikes when a non-RT
+usermode application communicates with an SPI-based TPM chip (Intel Atom
+E3940 system, PREEMPT_RT_FULL kernel). The spikes are caused by a
+stalling ioread8() operation following a sequence of 30+ iowrite8()s to
+the same address. I believe this happens because the write sequence is
+buffered (in cpu or somewhere along the bus), and gets flushed on the
+first LOAD instruction (ioread*()) that follows.
+
+The enclosed change appears to fix this issue: read the TPM chip's
+access register (status code) after every iowrite*() operation to
+amortize the cost of flushing data to chip across multiple instructions.
+
+Signed-off-by: Haris Okanovic <haris.okanovic@ni.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/char/tpm/tpm_tis.c | 29 +++++++++++++++++++++++++++--
+ 1 file changed, 27 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
+index 5a3a4f095391..5ecca6585049 100644
+--- a/drivers/char/tpm/tpm_tis.c
++++ b/drivers/char/tpm/tpm_tis.c
+@@ -54,6 +54,31 @@ static inline struct tpm_tis_tcg_phy *to_tpm_tis_tcg_phy(struct tpm_tis_data *da
+ return container_of(data, struct tpm_tis_tcg_phy, priv);
+ }
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++/*
++ * Flushes previous write operations to chip so that a subsequent
++ * ioread*()s won't stall a cpu.
++ */
++static inline void tpm_tis_flush(void __iomem *iobase)
++{
++ ioread8(iobase + TPM_ACCESS(0));
++}
++#else
++#define tpm_tis_flush(iobase) do { } while (0)
++#endif
++
++static inline void tpm_tis_iowrite8(u8 b, void __iomem *iobase, u32 addr)
++{
++ iowrite8(b, iobase + addr);
++ tpm_tis_flush(iobase);
++}
++
++static inline void tpm_tis_iowrite32(u32 b, void __iomem *iobase, u32 addr)
++{
++ iowrite32(b, iobase + addr);
++ tpm_tis_flush(iobase);
++}
++
+ static int interrupts = -1;
+ module_param(interrupts, int, 0444);
+ MODULE_PARM_DESC(interrupts, "Enable interrupts");
+@@ -173,7 +198,7 @@ static int tpm_tcg_write_bytes(struct tpm_tis_data *data, u32 addr, u16 len,
+ struct tpm_tis_tcg_phy *phy = to_tpm_tis_tcg_phy(data);
+
+ while (len--)
+- iowrite8(*value++, phy->iobase + addr);
++ tpm_tis_iowrite8(*value++, phy->iobase, addr);
+
+ return 0;
+ }
+@@ -200,7 +225,7 @@ static int tpm_tcg_write32(struct tpm_tis_data *data, u32 addr, u32 value)
+ {
+ struct tpm_tis_tcg_phy *phy = to_tpm_tis_tcg_phy(data);
+
+- iowrite32(value, phy->iobase + addr);
++ tpm_tis_iowrite32(value, phy->iobase, addr);
+
+ return 0;
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0250-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch b/debian/patches-rt/0250-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch
new file mode 100644
index 000000000..c9d461226
--- /dev/null
+++ b/debian/patches-rt/0250-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch
@@ -0,0 +1,81 @@
+From 2536bb24992f08158455b5ad1434f439f6543db5 Mon Sep 17 00:00:00 2001
+From: Julia Cartwright <julia@ni.com>
+Date: Fri, 28 Sep 2018 21:03:51 +0000
+Subject: [PATCH 250/347] watchdog: prevent deferral of watchdogd wakeup on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+When PREEMPT_RT_FULL is enabled, all hrtimer expiry functions are
+deferred for execution into the context of ktimersoftd unless otherwise
+annotated.
+
+Deferring the expiry of the hrtimer used by the watchdog core, however,
+is a waste, as the callback does nothing but queue a kthread work item
+and wakeup watchdogd.
+
+It's worst then that, too: the deferral through ktimersoftd also means
+that for correct behavior a user must adjust the scheduling parameters
+of both watchdogd _and_ ktimersoftd, which is unnecessary and has other
+side effects (like causing unrelated expiry functions to execute at
+potentially elevated priority).
+
+Instead, mark the hrtimer used by the watchdog core as being _HARD to
+allow it's execution directly from hardirq context. The work done in
+this expiry function is well-bounded and minimal.
+
+A user still must adjust the scheduling parameters of the watchdogd
+to be correct w.r.t. their application needs.
+
+Cc: Guenter Roeck <linux@roeck-us.net>
+Reported-and-tested-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
+Reported-by: Tim Sander <tim@krieglstein.org>
+Signed-off-by: Julia Cartwright <julia@ni.com>
+Acked-by: Guenter Roeck <linux@roeck-us.net>
+[bigeasy: use only HRTIMER_MODE_REL_HARD]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/watchdog/watchdog_dev.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c
+index 8fe59b7d8eec..516782cff8d2 100644
+--- a/drivers/watchdog/watchdog_dev.c
++++ b/drivers/watchdog/watchdog_dev.c
+@@ -145,7 +145,7 @@ static inline void watchdog_update_worker(struct watchdog_device *wdd)
+ ktime_t t = watchdog_next_keepalive(wdd);
+
+ if (t > 0)
+- hrtimer_start(&wd_data->timer, t, HRTIMER_MODE_REL);
++ hrtimer_start(&wd_data->timer, t, HRTIMER_MODE_REL_HARD);
+ } else {
+ hrtimer_cancel(&wd_data->timer);
+ }
+@@ -164,7 +164,7 @@ static int __watchdog_ping(struct watchdog_device *wdd)
+ if (ktime_after(earliest_keepalive, now)) {
+ hrtimer_start(&wd_data->timer,
+ ktime_sub(earliest_keepalive, now),
+- HRTIMER_MODE_REL);
++ HRTIMER_MODE_REL_HARD);
+ return 0;
+ }
+
+@@ -959,7 +959,7 @@ static int watchdog_cdev_register(struct watchdog_device *wdd)
+ dev_set_name(&wd_data->dev, "watchdog%d", wdd->id);
+
+ kthread_init_work(&wd_data->work, watchdog_ping_work);
+- hrtimer_init(&wd_data->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
++ hrtimer_init(&wd_data->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
+ wd_data->timer.function = watchdog_timer_expired;
+
+ if (wdd->id == 0) {
+@@ -1007,7 +1007,7 @@ static int watchdog_cdev_register(struct watchdog_device *wdd)
+ __module_get(wdd->ops->owner);
+ get_device(&wd_data->dev);
+ if (handle_boot_enabled)
+- hrtimer_start(&wd_data->timer, 0, HRTIMER_MODE_REL);
++ hrtimer_start(&wd_data->timer, 0, HRTIMER_MODE_REL_HARD);
+ else
+ pr_info("watchdog%d running and kernel based pre-userspace handler disabled\n",
+ wdd->id);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0251-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch b/debian/patches-rt/0251-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch
new file mode 100644
index 000000000..898eacd8a
--- /dev/null
+++ b/debian/patches-rt/0251-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch
@@ -0,0 +1,61 @@
+From f85948d1377d8e7d97d94d7d90250791825fc355 Mon Sep 17 00:00:00 2001
+From: Mike Galbraith <umgwanakikbuti@gmail.com>
+Date: Sat, 27 Feb 2016 08:09:11 +0100
+Subject: [PATCH 251/347] drm,radeon,i915: Use preempt_disable/enable_rt()
+ where recommended
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+DRM folks identified the spots, so use them.
+
+Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
+Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Cc: linux-rt-users <linux-rt-users@vger.kernel.org>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ drivers/gpu/drm/i915/i915_irq.c | 2 ++
+ drivers/gpu/drm/radeon/radeon_display.c | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
+index b7c398232136..eed1ba3009c6 100644
+--- a/drivers/gpu/drm/i915/i915_irq.c
++++ b/drivers/gpu/drm/i915/i915_irq.c
+@@ -1025,6 +1025,7 @@ static bool i915_get_crtc_scanoutpos(struct drm_device *dev, unsigned int pipe,
+ spin_lock_irqsave(&dev_priv->uncore.lock, irqflags);
+
+ /* preempt_disable_rt() should go right here in PREEMPT_RT patchset. */
++ preempt_disable_rt();
+
+ /* Get optional system timestamp before query. */
+ if (stime)
+@@ -1076,6 +1077,7 @@ static bool i915_get_crtc_scanoutpos(struct drm_device *dev, unsigned int pipe,
+ *etime = ktime_get();
+
+ /* preempt_enable_rt() should go right here in PREEMPT_RT patchset. */
++ preempt_enable_rt();
+
+ 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 5985efc5a1f3..de2552a40d36 100644
+--- a/drivers/gpu/drm/radeon/radeon_display.c
++++ b/drivers/gpu/drm/radeon/radeon_display.c
+@@ -1818,6 +1818,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. */
++ preempt_disable_rt();
+
+ /* Get optional system timestamp before query. */
+ if (stime)
+@@ -1910,6 +1911,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. */
++ preempt_enable_rt();
+
+ /* Decode into vertical and horizontal scanout position. */
+ *vpos = position & 0x1fff;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0252-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch b/debian/patches-rt/0252-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch
new file mode 100644
index 000000000..dde8a6cd7
--- /dev/null
+++ b/debian/patches-rt/0252-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch
@@ -0,0 +1,128 @@
+From d4f3a1228c468da8962aa6b9742e67924796defd Mon Sep 17 00:00:00 2001
+From: Mike Galbraith <umgwanakikbuti@gmail.com>
+Date: Sat, 27 Feb 2016 09:01:42 +0100
+Subject: [PATCH 252/347] drm,i915: Use local_lock/unlock_irq() in
+ intel_pipe_update_start/end()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ 8.014039] BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:918
+[ 8.014041] in_atomic(): 0, irqs_disabled(): 1, pid: 78, name: kworker/u4:4
+[ 8.014045] CPU: 1 PID: 78 Comm: kworker/u4:4 Not tainted 4.1.7-rt7 #5
+[ 8.014055] Workqueue: events_unbound async_run_entry_fn
+[ 8.014059] 0000000000000000 ffff880037153748 ffffffff815f32c9 0000000000000002
+[ 8.014063] ffff88013a50e380 ffff880037153768 ffffffff815ef075 ffff8800372c06c8
+[ 8.014066] ffff8800372c06c8 ffff880037153778 ffffffff8107c0b3 ffff880037153798
+[ 8.014067] Call Trace:
+[ 8.014074] [<ffffffff815f32c9>] dump_stack+0x4a/0x61
+[ 8.014078] [<ffffffff815ef075>] ___might_sleep.part.93+0xe9/0xee
+[ 8.014082] [<ffffffff8107c0b3>] ___might_sleep+0x53/0x80
+[ 8.014086] [<ffffffff815f9064>] rt_spin_lock+0x24/0x50
+[ 8.014090] [<ffffffff8109368b>] prepare_to_wait+0x2b/0xa0
+[ 8.014152] [<ffffffffa016c04c>] intel_pipe_update_start+0x17c/0x300 [i915]
+[ 8.014156] [<ffffffff81093b40>] ? prepare_to_wait_event+0x120/0x120
+[ 8.014201] [<ffffffffa0158f36>] intel_begin_crtc_commit+0x166/0x1e0 [i915]
+[ 8.014215] [<ffffffffa00c806d>] drm_atomic_helper_commit_planes+0x5d/0x1a0 [drm_kms_helper]
+[ 8.014260] [<ffffffffa0171e9b>] intel_atomic_commit+0xab/0xf0 [i915]
+[ 8.014288] [<ffffffffa00654c7>] drm_atomic_commit+0x37/0x60 [drm]
+[ 8.014298] [<ffffffffa00c6fcd>] drm_atomic_helper_plane_set_property+0x8d/0xd0 [drm_kms_helper]
+[ 8.014301] [<ffffffff815f77d9>] ? __ww_mutex_lock+0x39/0x40
+[ 8.014319] [<ffffffffa0053b3d>] drm_mode_plane_set_obj_prop+0x2d/0x90 [drm]
+[ 8.014328] [<ffffffffa00c8edb>] restore_fbdev_mode+0x6b/0xf0 [drm_kms_helper]
+[ 8.014337] [<ffffffffa00cae49>] drm_fb_helper_restore_fbdev_mode_unlocked+0x29/0x80 [drm_kms_helper]
+[ 8.014346] [<ffffffffa00caec2>] drm_fb_helper_set_par+0x22/0x50 [drm_kms_helper]
+[ 8.014390] [<ffffffffa016dfba>] intel_fbdev_set_par+0x1a/0x60 [i915]
+[ 8.014394] [<ffffffff81327dc4>] fbcon_init+0x4f4/0x580
+[ 8.014398] [<ffffffff8139ef4c>] visual_init+0xbc/0x120
+[ 8.014401] [<ffffffff813a1623>] do_bind_con_driver+0x163/0x330
+[ 8.014405] [<ffffffff813a1b2c>] do_take_over_console+0x11c/0x1c0
+[ 8.014408] [<ffffffff813236e3>] do_fbcon_takeover+0x63/0xd0
+[ 8.014410] [<ffffffff81328965>] fbcon_event_notify+0x785/0x8d0
+[ 8.014413] [<ffffffff8107c12d>] ? __might_sleep+0x4d/0x90
+[ 8.014416] [<ffffffff810775fe>] notifier_call_chain+0x4e/0x80
+[ 8.014419] [<ffffffff810779cd>] __blocking_notifier_call_chain+0x4d/0x70
+[ 8.014422] [<ffffffff81077a06>] blocking_notifier_call_chain+0x16/0x20
+[ 8.014425] [<ffffffff8132b48b>] fb_notifier_call_chain+0x1b/0x20
+[ 8.014428] [<ffffffff8132d8fa>] register_framebuffer+0x21a/0x350
+[ 8.014439] [<ffffffffa00cb164>] drm_fb_helper_initial_config+0x274/0x3e0 [drm_kms_helper]
+[ 8.014483] [<ffffffffa016f1cb>] intel_fbdev_initial_config+0x1b/0x20 [i915]
+[ 8.014486] [<ffffffff8107912c>] async_run_entry_fn+0x4c/0x160
+[ 8.014490] [<ffffffff81070ffa>] process_one_work+0x14a/0x470
+[ 8.014493] [<ffffffff81071489>] worker_thread+0x169/0x4c0
+[ 8.014496] [<ffffffff81071320>] ? process_one_work+0x470/0x470
+[ 8.014499] [<ffffffff81076606>] kthread+0xc6/0xe0
+[ 8.014502] [<ffffffff81070000>] ? queue_work_on+0x80/0x110
+[ 8.014506] [<ffffffff81076540>] ? kthread_worker_fn+0x1c0/0x1c0
+
+Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
+Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Cc: linux-rt-users <linux-rt-users@vger.kernel.org>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ drivers/gpu/drm/i915/intel_sprite.c | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
+index f7026e887fa9..07e4ddebdd80 100644
+--- a/drivers/gpu/drm/i915/intel_sprite.c
++++ b/drivers/gpu/drm/i915/intel_sprite.c
+@@ -36,6 +36,7 @@
+ #include <drm/drm_rect.h>
+ #include <drm/drm_atomic.h>
+ #include <drm/drm_plane_helper.h>
++#include <linux/locallock.h>
+ #include "intel_drv.h"
+ #include "intel_frontbuffer.h"
+ #include <drm/i915_drm.h>
+@@ -60,6 +61,8 @@ int intel_usecs_to_scanlines(const struct drm_display_mode *adjusted_mode,
+ #define VBLANK_EVASION_TIME_US 100
+ #endif
+
++static DEFINE_LOCAL_IRQ_LOCK(pipe_update_lock);
++
+ /**
+ * intel_pipe_update_start() - start update of a set of display registers
+ * @new_crtc_state: the new crtc state
+@@ -107,7 +110,7 @@ void intel_pipe_update_start(const struct intel_crtc_state *new_crtc_state)
+ if (intel_psr_wait_for_idle(new_crtc_state))
+ DRM_ERROR("PSR idle timed out, atomic update may fail\n");
+
+- local_irq_disable();
++ local_lock_irq(pipe_update_lock);
+
+ crtc->debug.min_vbl = min;
+ crtc->debug.max_vbl = max;
+@@ -131,11 +134,11 @@ void intel_pipe_update_start(const struct intel_crtc_state *new_crtc_state)
+ break;
+ }
+
+- local_irq_enable();
++ local_unlock_irq(pipe_update_lock);
+
+ timeout = schedule_timeout(timeout);
+
+- local_irq_disable();
++ local_lock_irq(pipe_update_lock);
+ }
+
+ finish_wait(wq, &wait);
+@@ -168,7 +171,7 @@ void intel_pipe_update_start(const struct intel_crtc_state *new_crtc_state)
+ return;
+
+ irq_disable:
+- local_irq_disable();
++ local_lock_irq(pipe_update_lock);
+ }
+
+ /**
+@@ -204,7 +207,7 @@ void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state)
+ new_crtc_state->base.event = NULL;
+ }
+
+- local_irq_enable();
++ local_unlock_irq(pipe_update_lock);
+
+ if (intel_vgpu_active(dev_priv))
+ return;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0253-drm-i915-disable-tracing-on-RT.patch b/debian/patches-rt/0253-drm-i915-disable-tracing-on-RT.patch
new file mode 100644
index 000000000..78662975e
--- /dev/null
+++ b/debian/patches-rt/0253-drm-i915-disable-tracing-on-RT.patch
@@ -0,0 +1,47 @@
+From 5e32c1ba695c3d32da799c26e267183a4516ffb8 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 6 Dec 2018 09:52:20 +0100
+Subject: [PATCH 253/347] drm/i915: disable tracing on -RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Luca Abeni reported this:
+| BUG: scheduling while atomic: kworker/u8:2/15203/0x00000003
+| CPU: 1 PID: 15203 Comm: kworker/u8:2 Not tainted 4.19.1-rt3 #10
+| Call Trace:
+| rt_spin_lock+0x3f/0x50
+| gen6_read32+0x45/0x1d0 [i915]
+| g4x_get_vblank_counter+0x36/0x40 [i915]
+| trace_event_raw_event_i915_pipe_update_start+0x7d/0xf0 [i915]
+
+The tracing events use trace_i915_pipe_update_start() among other events
+use functions acquire spin locks. A few trace points use
+intel_get_crtc_scanline(), others use ->get_vblank_counter() wich also
+might acquire a sleeping lock.
+
+Based on this I don't see any other way than disable trace points on RT.
+
+Cc: stable-rt@vger.kernel.org
+Reported-by: Luca Abeni <lucabe72@gmail.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/gpu/drm/i915/i915_trace.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h
+index b50c6b829715..cc54ec0ef75c 100644
+--- a/drivers/gpu/drm/i915/i915_trace.h
++++ b/drivers/gpu/drm/i915/i915_trace.h
+@@ -2,6 +2,10 @@
+ #if !defined(_I915_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
+ #define _I915_TRACE_H_
+
++#ifdef CONFIG_PREEMPT_RT_BASE
++#define NOTRACE
++#endif
++
+ #include <linux/stringify.h>
+ #include <linux/types.h>
+ #include <linux/tracepoint.h>
+--
+2.36.1
+
diff --git a/debian/patches-rt/0254-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch b/debian/patches-rt/0254-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch
new file mode 100644
index 000000000..773a63282
--- /dev/null
+++ b/debian/patches-rt/0254-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch
@@ -0,0 +1,33 @@
+From ce732f94a77dce31d3b008046d756121676cc0f4 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 19 Dec 2018 10:47:02 +0100
+Subject: [PATCH 254/347] drm/i915: skip DRM_I915_LOW_LEVEL_TRACEPOINTS with
+ NOTRACE
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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
+nop. Currently this happens for two .c files which use the tracepoitns
+behind DRM_I915_LOW_LEVEL_TRACEPOINTS.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/gpu/drm/i915/i915_trace.h | 2 +-
+ 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 cc54ec0ef75c..33028d8f470e 100644
+--- a/drivers/gpu/drm/i915/i915_trace.h
++++ b/drivers/gpu/drm/i915/i915_trace.h
+@@ -683,7 +683,7 @@ DEFINE_EVENT(i915_request, i915_request_add,
+ TP_ARGS(rq)
+ );
+
+-#if defined(CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS)
++#if defined(CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS) && !defined(NOTRACE)
+ DEFINE_EVENT(i915_request, i915_request_submit,
+ TP_PROTO(struct i915_request *rq),
+ TP_ARGS(rq)
+--
+2.36.1
+
diff --git a/debian/patches-rt/0255-cgroups-use-simple-wait-in-css_release.patch b/debian/patches-rt/0255-cgroups-use-simple-wait-in-css_release.patch
new file mode 100644
index 000000000..684e7bd06
--- /dev/null
+++ b/debian/patches-rt/0255-cgroups-use-simple-wait-in-css_release.patch
@@ -0,0 +1,95 @@
+From 8aa689c199e634af88b029260b92afed2a93b215 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 13 Feb 2015 15:52:24 +0100
+Subject: [PATCH 255/347] cgroups: use simple wait in css_release()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+To avoid:
+|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914
+|in_atomic(): 1, irqs_disabled(): 0, pid: 92, name: rcuc/11
+|2 locks held by rcuc/11/92:
+| #0: (rcu_callback){......}, at: [<ffffffff810e037e>] rcu_cpu_kthread+0x3de/0x940
+| #1: (rcu_read_lock_sched){......}, at: [<ffffffff81328390>] percpu_ref_call_confirm_rcu+0x0/0xd0
+|Preemption disabled at:[<ffffffff813284e2>] percpu_ref_switch_to_atomic_rcu+0x82/0xc0
+|CPU: 11 PID: 92 Comm: rcuc/11 Not tainted 3.18.7-rt0+ #1
+| ffff8802398cdf80 ffff880235f0bc28 ffffffff815b3a12 0000000000000000
+| 0000000000000000 ffff880235f0bc48 ffffffff8109aa16 0000000000000000
+| ffff8802398cdf80 ffff880235f0bc78 ffffffff815b8dd4 000000000000df80
+|Call Trace:
+| [<ffffffff815b3a12>] dump_stack+0x4f/0x7c
+| [<ffffffff8109aa16>] __might_sleep+0x116/0x190
+| [<ffffffff815b8dd4>] rt_spin_lock+0x24/0x60
+| [<ffffffff8108d2cd>] queue_work_on+0x6d/0x1d0
+| [<ffffffff8110c881>] css_release+0x81/0x90
+| [<ffffffff8132844e>] percpu_ref_call_confirm_rcu+0xbe/0xd0
+| [<ffffffff813284e2>] percpu_ref_switch_to_atomic_rcu+0x82/0xc0
+| [<ffffffff810e03e5>] rcu_cpu_kthread+0x445/0x940
+| [<ffffffff81098a2d>] smpboot_thread_fn+0x18d/0x2d0
+| [<ffffffff810948d8>] kthread+0xe8/0x100
+| [<ffffffff815b9c3c>] ret_from_fork+0x7c/0xb0
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/cgroup-defs.h | 2 ++
+ kernel/cgroup/cgroup.c | 9 +++++----
+ 2 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/include/linux/cgroup-defs.h b/include/linux/cgroup-defs.h
+index f92264d1ed4f..cc912f3dc203 100644
+--- a/include/linux/cgroup-defs.h
++++ b/include/linux/cgroup-defs.h
+@@ -20,6 +20,7 @@
+ #include <linux/u64_stats_sync.h>
+ #include <linux/workqueue.h>
+ #include <linux/bpf-cgroup.h>
++#include <linux/swork.h>
+
+ #ifdef CONFIG_CGROUPS
+
+@@ -157,6 +158,7 @@ struct cgroup_subsys_state {
+
+ /* percpu_ref killing and RCU release */
+ struct work_struct destroy_work;
++ struct swork_event destroy_swork;
+ struct rcu_work destroy_rwork;
+
+ /*
+diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c
+index 4e8284d8cacc..86b10cb1d68a 100644
+--- a/kernel/cgroup/cgroup.c
++++ b/kernel/cgroup/cgroup.c
+@@ -4738,10 +4738,10 @@ static void css_free_rwork_fn(struct work_struct *work)
+ }
+ }
+
+-static void css_release_work_fn(struct work_struct *work)
++static void css_release_work_fn(struct swork_event *sev)
+ {
+ struct cgroup_subsys_state *css =
+- container_of(work, struct cgroup_subsys_state, destroy_work);
++ container_of(sev, struct cgroup_subsys_state, destroy_swork);
+ struct cgroup_subsys *ss = css->ss;
+ struct cgroup *cgrp = css->cgroup;
+
+@@ -4803,8 +4803,8 @@ static void css_release(struct percpu_ref *ref)
+ struct cgroup_subsys_state *css =
+ container_of(ref, struct cgroup_subsys_state, refcnt);
+
+- INIT_WORK(&css->destroy_work, css_release_work_fn);
+- queue_work(cgroup_destroy_wq, &css->destroy_work);
++ INIT_SWORK(&css->destroy_swork, css_release_work_fn);
++ swork_queue(&css->destroy_swork);
+ }
+
+ static void init_and_link_css(struct cgroup_subsys_state *css,
+@@ -5524,6 +5524,7 @@ static int __init cgroup_wq_init(void)
+ */
+ cgroup_destroy_wq = alloc_workqueue("cgroup_destroy", 0, 1);
+ BUG_ON(!cgroup_destroy_wq);
++ BUG_ON(swork_get());
+ return 0;
+ }
+ core_initcall(cgroup_wq_init);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0256-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch b/debian/patches-rt/0256-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch
new file mode 100644
index 000000000..68ac442a9
--- /dev/null
+++ b/debian/patches-rt/0256-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch
@@ -0,0 +1,293 @@
+From fd27c495e357db5ecab593fc59617b9c3f39c770 Mon Sep 17 00:00:00 2001
+From: Mike Galbraith <efault@gmx.de>
+Date: Sun, 8 Jan 2017 09:32:25 +0100
+Subject: [PATCH 256/347] cpuset: Convert callback_lock to raw_spinlock_t
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The two commits below add up to a cpuset might_sleep() splat for RT:
+
+8447a0fee974 cpuset: convert callback_mutex to a spinlock
+344736f29b35 cpuset: simplify cpuset_node_allowed API
+
+BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:995
+in_atomic(): 0, irqs_disabled(): 1, pid: 11718, name: cset
+CPU: 135 PID: 11718 Comm: cset Tainted: G E 4.10.0-rt1-rt #4
+Hardware name: Intel Corporation BRICKLAND/BRICKLAND, BIOS BRHSXSD1.86B.0056.R01.1409242327 09/24/2014
+Call Trace:
+ ? dump_stack+0x5c/0x81
+ ? ___might_sleep+0xf4/0x170
+ ? rt_spin_lock+0x1c/0x50
+ ? __cpuset_node_allowed+0x66/0xc0
+ ? ___slab_alloc+0x390/0x570 <disables IRQs>
+ ? anon_vma_fork+0x8f/0x140
+ ? copy_page_range+0x6cf/0xb00
+ ? anon_vma_fork+0x8f/0x140
+ ? __slab_alloc.isra.74+0x5a/0x81
+ ? anon_vma_fork+0x8f/0x140
+ ? kmem_cache_alloc+0x1b5/0x1f0
+ ? anon_vma_fork+0x8f/0x140
+ ? copy_process.part.35+0x1670/0x1ee0
+ ? _do_fork+0xdd/0x3f0
+ ? _do_fork+0xdd/0x3f0
+ ? do_syscall_64+0x61/0x170
+ ? entry_SYSCALL64_slow_path+0x25/0x25
+
+The later ensured that a NUMA box WILL take callback_lock in atomic
+context by removing the allocator and reclaim path __GFP_HARDWALL
+usage which prevented such contexts from taking callback_mutex.
+
+One option would be to reinstate __GFP_HARDWALL protections for
+RT, however, as the 8447a0fee974 changelog states:
+
+The callback_mutex is only used to synchronize reads/updates of cpusets'
+flags and cpu/node masks. These operations should always proceed fast so
+there's no reason why we can't use a spinlock instead of the mutex.
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Mike Galbraith <efault@gmx.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/cgroup/cpuset.c | 66 +++++++++++++++++++++---------------------
+ 1 file changed, 33 insertions(+), 33 deletions(-)
+
+diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
+index 35541e1dfad9..42ed4e497336 100644
+--- a/kernel/cgroup/cpuset.c
++++ b/kernel/cgroup/cpuset.c
+@@ -288,7 +288,7 @@ static struct cpuset top_cpuset = {
+ */
+
+ static DEFINE_MUTEX(cpuset_mutex);
+-static DEFINE_SPINLOCK(callback_lock);
++static DEFINE_RAW_SPINLOCK(callback_lock);
+
+ static struct workqueue_struct *cpuset_migrate_mm_wq;
+
+@@ -922,9 +922,9 @@ static void update_cpumasks_hier(struct cpuset *cs, struct cpumask *new_cpus)
+ continue;
+ rcu_read_unlock();
+
+- spin_lock_irq(&callback_lock);
++ raw_spin_lock_irq(&callback_lock);
+ cpumask_copy(cp->effective_cpus, new_cpus);
+- spin_unlock_irq(&callback_lock);
++ raw_spin_unlock_irq(&callback_lock);
+
+ WARN_ON(!is_in_v2_mode() &&
+ !cpumask_equal(cp->cpus_allowed, cp->effective_cpus));
+@@ -989,9 +989,9 @@ static int update_cpumask(struct cpuset *cs, struct cpuset *trialcs,
+ if (retval < 0)
+ return retval;
+
+- spin_lock_irq(&callback_lock);
++ raw_spin_lock_irq(&callback_lock);
+ cpumask_copy(cs->cpus_allowed, trialcs->cpus_allowed);
+- spin_unlock_irq(&callback_lock);
++ raw_spin_unlock_irq(&callback_lock);
+
+ /* use trialcs->cpus_allowed as a temp variable */
+ update_cpumasks_hier(cs, trialcs->cpus_allowed);
+@@ -1175,9 +1175,9 @@ static void update_nodemasks_hier(struct cpuset *cs, nodemask_t *new_mems)
+ continue;
+ rcu_read_unlock();
+
+- spin_lock_irq(&callback_lock);
++ raw_spin_lock_irq(&callback_lock);
+ cp->effective_mems = *new_mems;
+- spin_unlock_irq(&callback_lock);
++ raw_spin_unlock_irq(&callback_lock);
+
+ WARN_ON(!is_in_v2_mode() &&
+ !nodes_equal(cp->mems_allowed, cp->effective_mems));
+@@ -1245,9 +1245,9 @@ static int update_nodemask(struct cpuset *cs, struct cpuset *trialcs,
+ if (retval < 0)
+ goto done;
+
+- spin_lock_irq(&callback_lock);
++ raw_spin_lock_irq(&callback_lock);
+ cs->mems_allowed = trialcs->mems_allowed;
+- spin_unlock_irq(&callback_lock);
++ raw_spin_unlock_irq(&callback_lock);
+
+ /* use trialcs->mems_allowed as a temp variable */
+ update_nodemasks_hier(cs, &trialcs->mems_allowed);
+@@ -1338,9 +1338,9 @@ static int update_flag(cpuset_flagbits_t bit, struct cpuset *cs,
+ spread_flag_changed = ((is_spread_slab(cs) != is_spread_slab(trialcs))
+ || (is_spread_page(cs) != is_spread_page(trialcs)));
+
+- spin_lock_irq(&callback_lock);
++ raw_spin_lock_irq(&callback_lock);
+ cs->flags = trialcs->flags;
+- spin_unlock_irq(&callback_lock);
++ raw_spin_unlock_irq(&callback_lock);
+
+ if (!cpumask_empty(trialcs->cpus_allowed) && balance_flag_changed)
+ rebuild_sched_domains_locked();
+@@ -1761,7 +1761,7 @@ static int cpuset_common_seq_show(struct seq_file *sf, void *v)
+ cpuset_filetype_t type = seq_cft(sf)->private;
+ int ret = 0;
+
+- spin_lock_irq(&callback_lock);
++ raw_spin_lock_irq(&callback_lock);
+
+ switch (type) {
+ case FILE_CPULIST:
+@@ -1780,7 +1780,7 @@ static int cpuset_common_seq_show(struct seq_file *sf, void *v)
+ ret = -EINVAL;
+ }
+
+- spin_unlock_irq(&callback_lock);
++ raw_spin_unlock_irq(&callback_lock);
+ return ret;
+ }
+
+@@ -1995,12 +1995,12 @@ static int cpuset_css_online(struct cgroup_subsys_state *css)
+
+ cpuset_inc();
+
+- spin_lock_irq(&callback_lock);
++ raw_spin_lock_irq(&callback_lock);
+ if (is_in_v2_mode()) {
+ cpumask_copy(cs->effective_cpus, parent->effective_cpus);
+ cs->effective_mems = parent->effective_mems;
+ }
+- spin_unlock_irq(&callback_lock);
++ raw_spin_unlock_irq(&callback_lock);
+
+ if (!test_bit(CGRP_CPUSET_CLONE_CHILDREN, &css->cgroup->flags))
+ goto out_unlock;
+@@ -2027,12 +2027,12 @@ static int cpuset_css_online(struct cgroup_subsys_state *css)
+ }
+ rcu_read_unlock();
+
+- spin_lock_irq(&callback_lock);
++ raw_spin_lock_irq(&callback_lock);
+ cs->mems_allowed = parent->mems_allowed;
+ cs->effective_mems = parent->mems_allowed;
+ cpumask_copy(cs->cpus_allowed, parent->cpus_allowed);
+ cpumask_copy(cs->effective_cpus, parent->cpus_allowed);
+- spin_unlock_irq(&callback_lock);
++ raw_spin_unlock_irq(&callback_lock);
+ out_unlock:
+ mutex_unlock(&cpuset_mutex);
+ return 0;
+@@ -2071,7 +2071,7 @@ static void cpuset_css_free(struct cgroup_subsys_state *css)
+ static void cpuset_bind(struct cgroup_subsys_state *root_css)
+ {
+ mutex_lock(&cpuset_mutex);
+- spin_lock_irq(&callback_lock);
++ raw_spin_lock_irq(&callback_lock);
+
+ if (is_in_v2_mode()) {
+ cpumask_copy(top_cpuset.cpus_allowed, cpu_possible_mask);
+@@ -2082,7 +2082,7 @@ static void cpuset_bind(struct cgroup_subsys_state *root_css)
+ top_cpuset.mems_allowed = top_cpuset.effective_mems;
+ }
+
+- spin_unlock_irq(&callback_lock);
++ raw_spin_unlock_irq(&callback_lock);
+ mutex_unlock(&cpuset_mutex);
+ }
+
+@@ -2180,12 +2180,12 @@ hotplug_update_tasks_legacy(struct cpuset *cs,
+ {
+ bool is_empty;
+
+- spin_lock_irq(&callback_lock);
++ raw_spin_lock_irq(&callback_lock);
+ cpumask_copy(cs->cpus_allowed, new_cpus);
+ cpumask_copy(cs->effective_cpus, new_cpus);
+ cs->mems_allowed = *new_mems;
+ cs->effective_mems = *new_mems;
+- spin_unlock_irq(&callback_lock);
++ raw_spin_unlock_irq(&callback_lock);
+
+ /*
+ * Don't call update_tasks_cpumask() if the cpuset becomes empty,
+@@ -2222,10 +2222,10 @@ hotplug_update_tasks(struct cpuset *cs,
+ if (nodes_empty(*new_mems))
+ *new_mems = parent_cs(cs)->effective_mems;
+
+- spin_lock_irq(&callback_lock);
++ raw_spin_lock_irq(&callback_lock);
+ cpumask_copy(cs->effective_cpus, new_cpus);
+ cs->effective_mems = *new_mems;
+- spin_unlock_irq(&callback_lock);
++ raw_spin_unlock_irq(&callback_lock);
+
+ if (cpus_updated)
+ update_tasks_cpumask(cs);
+@@ -2318,21 +2318,21 @@ static void cpuset_hotplug_workfn(struct work_struct *work)
+
+ /* synchronize cpus_allowed to cpu_active_mask */
+ if (cpus_updated) {
+- spin_lock_irq(&callback_lock);
++ raw_spin_lock_irq(&callback_lock);
+ if (!on_dfl)
+ cpumask_copy(top_cpuset.cpus_allowed, &new_cpus);
+ cpumask_copy(top_cpuset.effective_cpus, &new_cpus);
+- spin_unlock_irq(&callback_lock);
++ raw_spin_unlock_irq(&callback_lock);
+ /* we don't mess with cpumasks of tasks in top_cpuset */
+ }
+
+ /* synchronize mems_allowed to N_MEMORY */
+ if (mems_updated) {
+- spin_lock_irq(&callback_lock);
++ raw_spin_lock_irq(&callback_lock);
+ if (!on_dfl)
+ top_cpuset.mems_allowed = new_mems;
+ top_cpuset.effective_mems = new_mems;
+- spin_unlock_irq(&callback_lock);
++ raw_spin_unlock_irq(&callback_lock);
+ update_tasks_nodemask(&top_cpuset);
+ }
+
+@@ -2434,11 +2434,11 @@ void cpuset_cpus_allowed(struct task_struct *tsk, struct cpumask *pmask)
+ {
+ unsigned long flags;
+
+- spin_lock_irqsave(&callback_lock, flags);
++ raw_spin_lock_irqsave(&callback_lock, flags);
+ rcu_read_lock();
+ guarantee_online_cpus(task_cs(tsk), pmask);
+ rcu_read_unlock();
+- spin_unlock_irqrestore(&callback_lock, flags);
++ raw_spin_unlock_irqrestore(&callback_lock, flags);
+ }
+
+ /**
+@@ -2499,11 +2499,11 @@ nodemask_t cpuset_mems_allowed(struct task_struct *tsk)
+ nodemask_t mask;
+ unsigned long flags;
+
+- spin_lock_irqsave(&callback_lock, flags);
++ raw_spin_lock_irqsave(&callback_lock, flags);
+ rcu_read_lock();
+ guarantee_online_mems(task_cs(tsk), &mask);
+ rcu_read_unlock();
+- spin_unlock_irqrestore(&callback_lock, flags);
++ raw_spin_unlock_irqrestore(&callback_lock, flags);
+
+ return mask;
+ }
+@@ -2595,14 +2595,14 @@ bool __cpuset_node_allowed(int node, gfp_t gfp_mask)
+ return true;
+
+ /* Not hardwall and node outside mems_allowed: scan up cpusets */
+- spin_lock_irqsave(&callback_lock, flags);
++ raw_spin_lock_irqsave(&callback_lock, flags);
+
+ rcu_read_lock();
+ cs = nearest_hardwall_ancestor(task_cs(current));
+ allowed = node_isset(node, cs->mems_allowed);
+ rcu_read_unlock();
+
+- spin_unlock_irqrestore(&callback_lock, flags);
++ raw_spin_unlock_irqrestore(&callback_lock, flags);
+ return allowed;
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0257-apparmor-use-a-locallock-instead-preempt_disable.patch b/debian/patches-rt/0257-apparmor-use-a-locallock-instead-preempt_disable.patch
new file mode 100644
index 000000000..c00ea5391
--- /dev/null
+++ b/debian/patches-rt/0257-apparmor-use-a-locallock-instead-preempt_disable.patch
@@ -0,0 +1,85 @@
+From bc99d234e02c1f42a9a71a2aca38406d1902582b Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 11 Oct 2017 17:43:49 +0200
+Subject: [PATCH 257/347] apparmor: use a locallock instead preempt_disable()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+get_buffers() disables preemption which acts as a lock for the per-CPU
+variable. Since we can't disable preemption here on RT, a local_lock is
+lock is used in order to remain on the same CPU and not to have more
+than one user within the critical section.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ security/apparmor/include/path.h | 19 ++++++++++++++++---
+ security/apparmor/lsm.c | 2 +-
+ 2 files changed, 17 insertions(+), 4 deletions(-)
+
+diff --git a/security/apparmor/include/path.h b/security/apparmor/include/path.h
+index b6380c5f0097..12abfddb19c9 100644
+--- a/security/apparmor/include/path.h
++++ b/security/apparmor/include/path.h
+@@ -40,8 +40,10 @@ struct aa_buffers {
+
+ #include <linux/percpu.h>
+ #include <linux/preempt.h>
++#include <linux/locallock.h>
+
+ DECLARE_PER_CPU(struct aa_buffers, aa_buffers);
++DECLARE_LOCAL_IRQ_LOCK(aa_buffers_lock);
+
+ #define ASSIGN(FN, A, X, N) ((X) = FN(A, N))
+ #define EVAL1(FN, A, X) ASSIGN(FN, A, X, 0) /*X = FN(0)*/
+@@ -51,7 +53,17 @@ DECLARE_PER_CPU(struct aa_buffers, aa_buffers);
+
+ #define for_each_cpu_buffer(I) for ((I) = 0; (I) < MAX_PATH_BUFFERS; (I)++)
+
+-#ifdef CONFIG_DEBUG_PREEMPT
++#ifdef CONFIG_PREEMPT_RT_BASE
++static inline void AA_BUG_PREEMPT_ENABLED(const char *s)
++{
++ struct local_irq_lock *lv;
++
++ lv = this_cpu_ptr(&aa_buffers_lock);
++ WARN_ONCE(lv->owner != current,
++ "__get_buffer without aa_buffers_lock\n");
++}
++
++#elif defined(CONFIG_DEBUG_PREEMPT)
+ #define AA_BUG_PREEMPT_ENABLED(X) AA_BUG(preempt_count() <= 0, X)
+ #else
+ #define AA_BUG_PREEMPT_ENABLED(X) /* nop */
+@@ -67,14 +79,15 @@ DECLARE_PER_CPU(struct aa_buffers, aa_buffers);
+
+ #define get_buffers(X...) \
+ do { \
+- struct aa_buffers *__cpu_var = get_cpu_ptr(&aa_buffers); \
++ struct aa_buffers *__cpu_var; \
++ __cpu_var = get_locked_ptr(aa_buffers_lock, &aa_buffers); \
+ __get_buffers(__cpu_var, X); \
+ } while (0)
+
+ #define put_buffers(X, Y...) \
+ do { \
+ __put_buffers(X, Y); \
+- put_cpu_ptr(&aa_buffers); \
++ put_locked_ptr(aa_buffers_lock, &aa_buffers); \
+ } while (0)
+
+ #endif /* __AA_PATH_H */
+diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c
+index 898752b818dc..690c8fccd0a0 100644
+--- a/security/apparmor/lsm.c
++++ b/security/apparmor/lsm.c
+@@ -45,7 +45,7 @@
+ int apparmor_initialized;
+
+ DEFINE_PER_CPU(struct aa_buffers, aa_buffers);
+-
++DEFINE_LOCAL_IRQ_LOCK(aa_buffers_lock);
+
+ /*
+ * LSM hook functions
+--
+2.36.1
+
diff --git a/debian/patches-rt/0258-workqueue-Prevent-deadlock-stall-on-RT.patch b/debian/patches-rt/0258-workqueue-Prevent-deadlock-stall-on-RT.patch
new file mode 100644
index 000000000..10fe17fc0
--- /dev/null
+++ b/debian/patches-rt/0258-workqueue-Prevent-deadlock-stall-on-RT.patch
@@ -0,0 +1,207 @@
+From 95516b448b8dcc30ac9e5fc0e38c1c3d3f8ef930 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Fri, 27 Jun 2014 16:24:52 +0200
+Subject: [PATCH 258/347] workqueue: Prevent deadlock/stall on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Austin reported a XFS deadlock/stall on RT where scheduled work gets
+never exececuted and tasks are waiting for each other for ever.
+
+The underlying problem is the modification of the RT code to the
+handling of workers which are about to go to sleep. In mainline a
+worker thread which goes to sleep wakes an idle worker if there is
+more work to do. This happens from the guts of the schedule()
+function. On RT this must be outside and the accessed data structures
+are not protected against scheduling due to the spinlock to rtmutex
+conversion. So the naive solution to this was to move the code outside
+of the scheduler and protect the data structures by the pool
+lock. That approach turned out to be a little naive as we cannot call
+into that code when the thread blocks on a lock, as it is not allowed
+to block on two locks in parallel. So we dont call into the worker
+wakeup magic when the worker is blocked on a lock, which causes the
+deadlock/stall observed by Austin and Mike.
+
+Looking deeper into that worker code it turns out that the only
+relevant data structure which needs to be protected is the list of
+idle workers which can be woken up.
+
+So the solution is to protect the list manipulation operations with
+preempt_enable/disable pairs on RT and call unconditionally into the
+worker code even when the worker is blocked on a lock. The preemption
+protection is safe as there is nothing which can fiddle with the list
+outside of thread context.
+
+Reported-and_tested-by: Austin Schuh <austin@peloton-tech.com>
+Reported-and_tested-by: Mike Galbraith <umgwanakikbuti@gmail.com>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Link: http://vger.kernel.org/r/alpine.DEB.2.10.1406271249510.5170@nanos
+Cc: Richard Weinberger <richard.weinberger@gmail.com>
+Cc: Steven Rostedt <rostedt@goodmis.org>
+---
+ kernel/sched/core.c | 6 +++--
+ kernel/workqueue.c | 60 +++++++++++++++++++++++++++++++++++----------
+ 2 files changed, 51 insertions(+), 15 deletions(-)
+
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 0995748a3a1d..feaf4d5683af 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -3615,9 +3615,8 @@ void __noreturn do_task_dead(void)
+
+ static inline void sched_submit_work(struct task_struct *tsk)
+ {
+- if (!tsk->state || tsk_is_pi_blocked(tsk))
++ if (!tsk->state)
+ return;
+-
+ /*
+ * If a worker went to sleep, notify and ask workqueue whether
+ * it wants to wake up a task to maintain concurrency.
+@@ -3631,6 +3630,9 @@ static inline void sched_submit_work(struct task_struct *tsk)
+ preempt_enable_no_resched();
+ }
+
++ if (tsk_is_pi_blocked(tsk))
++ return;
++
+ /*
+ * If we are going to sleep and we have plugged IO queued,
+ * make sure to submit it to avoid deadlocks.
+diff --git a/kernel/workqueue.c b/kernel/workqueue.c
+index 0c529f920232..91f5696cf335 100644
+--- a/kernel/workqueue.c
++++ b/kernel/workqueue.c
+@@ -126,6 +126,11 @@ enum {
+ * cpu or grabbing pool->lock is enough for read access. If
+ * POOL_DISASSOCIATED is set, it's identical to L.
+ *
++ * On RT we need the extra protection via rt_lock_idle_list() for
++ * the list manipulations against read access from
++ * wq_worker_sleeping(). All other places are nicely serialized via
++ * pool->lock.
++ *
+ * A: wq_pool_attach_mutex protected.
+ *
+ * PL: wq_pool_mutex protected.
+@@ -431,6 +436,31 @@ static void workqueue_sysfs_unregister(struct workqueue_struct *wq);
+ if (({ assert_rcu_or_wq_mutex(wq); false; })) { } \
+ else
+
++#ifdef CONFIG_PREEMPT_RT_BASE
++static inline void rt_lock_idle_list(struct worker_pool *pool)
++{
++ preempt_disable();
++}
++static inline void rt_unlock_idle_list(struct worker_pool *pool)
++{
++ preempt_enable();
++}
++static inline void sched_lock_idle_list(struct worker_pool *pool) { }
++static inline void sched_unlock_idle_list(struct worker_pool *pool) { }
++#else
++static inline void rt_lock_idle_list(struct worker_pool *pool) { }
++static inline void rt_unlock_idle_list(struct worker_pool *pool) { }
++static inline void sched_lock_idle_list(struct worker_pool *pool)
++{
++ spin_lock_irq(&pool->lock);
++}
++static inline void sched_unlock_idle_list(struct worker_pool *pool)
++{
++ spin_unlock_irq(&pool->lock);
++}
++#endif
++
++
+ #ifdef CONFIG_DEBUG_OBJECTS_WORK
+
+ static struct debug_obj_descr work_debug_descr;
+@@ -837,10 +867,16 @@ static struct worker *first_idle_worker(struct worker_pool *pool)
+ */
+ static void wake_up_worker(struct worker_pool *pool)
+ {
+- struct worker *worker = first_idle_worker(pool);
++ struct worker *worker;
++
++ rt_lock_idle_list(pool);
++
++ worker = first_idle_worker(pool);
+
+ if (likely(worker))
+ wake_up_process(worker->task);
++
++ rt_unlock_idle_list(pool);
+ }
+
+ /**
+@@ -869,7 +905,7 @@ void wq_worker_running(struct task_struct *task)
+ */
+ void wq_worker_sleeping(struct task_struct *task)
+ {
+- struct worker *next, *worker = kthread_data(task);
++ struct worker *worker = kthread_data(task);
+ struct worker_pool *pool;
+
+ /*
+@@ -886,26 +922,18 @@ void wq_worker_sleeping(struct task_struct *task)
+ return;
+
+ worker->sleeping = 1;
+- spin_lock_irq(&pool->lock);
+
+ /*
+ * The counterpart of the following dec_and_test, implied mb,
+ * worklist not empty test sequence is in insert_work().
+ * Please read comment there.
+- *
+- * NOT_RUNNING is clear. This means that we're bound to and
+- * running on the local cpu w/ rq lock held and preemption
+- * disabled, which in turn means that none else could be
+- * manipulating idle_list, so dereferencing idle_list without pool
+- * lock is safe.
+ */
+ if (atomic_dec_and_test(&pool->nr_running) &&
+ !list_empty(&pool->worklist)) {
+- next = first_idle_worker(pool);
+- if (next)
+- wake_up_process(next->task);
++ sched_lock_idle_list(pool);
++ wake_up_worker(pool);
++ sched_unlock_idle_list(pool);
+ }
+- spin_unlock_irq(&pool->lock);
+ }
+
+ /**
+@@ -1678,7 +1706,9 @@ static void worker_enter_idle(struct worker *worker)
+ worker->last_active = jiffies;
+
+ /* idle_list is LIFO */
++ rt_lock_idle_list(pool);
+ list_add(&worker->entry, &pool->idle_list);
++ rt_unlock_idle_list(pool);
+
+ if (too_many_workers(pool) && !timer_pending(&pool->idle_timer))
+ mod_timer(&pool->idle_timer, jiffies + IDLE_WORKER_TIMEOUT);
+@@ -1711,7 +1741,9 @@ static void worker_leave_idle(struct worker *worker)
+ return;
+ worker_clr_flags(worker, WORKER_IDLE);
+ pool->nr_idle--;
++ rt_lock_idle_list(pool);
+ list_del_init(&worker->entry);
++ rt_unlock_idle_list(pool);
+ }
+
+ static struct worker *alloc_worker(int node)
+@@ -1876,7 +1908,9 @@ static void destroy_worker(struct worker *worker)
+ pool->nr_workers--;
+ pool->nr_idle--;
+
++ rt_lock_idle_list(pool);
+ list_del_init(&worker->entry);
++ rt_unlock_idle_list(pool);
+ worker->flags |= WORKER_DIE;
+ wake_up_process(worker->task);
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0259-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch b/debian/patches-rt/0259-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch
new file mode 100644
index 000000000..271df4103
--- /dev/null
+++ b/debian/patches-rt/0259-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch
@@ -0,0 +1,213 @@
+From 257506013947ed8b9b81885786294572a53a0a59 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Fri, 3 Jul 2009 08:44:56 -0500
+Subject: [PATCH 259/347] signals: Allow rt tasks to cache one sigqueue struct
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+To avoid allocation allow rt tasks to cache one sigqueue struct in
+task struct.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/sched.h | 2 ++
+ include/linux/signal.h | 1 +
+ kernel/exit.c | 2 +-
+ kernel/fork.c | 1 +
+ kernel/signal.c | 69 +++++++++++++++++++++++++++++++++++++++---
+ 5 files changed, 70 insertions(+), 5 deletions(-)
+
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index 044bebd3d16f..e567fe2d7058 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -895,6 +895,8 @@ struct task_struct {
+ /* Signal handlers: */
+ struct signal_struct *signal;
+ struct sighand_struct *sighand;
++ struct sigqueue *sigqueue_cache;
++
+ sigset_t blocked;
+ sigset_t real_blocked;
+ /* Restored if set_restore_sigmask() was used: */
+diff --git a/include/linux/signal.h b/include/linux/signal.h
+index 0be5ce2375cb..6495fda18c2c 100644
+--- a/include/linux/signal.h
++++ b/include/linux/signal.h
+@@ -245,6 +245,7 @@ static inline void init_sigpending(struct sigpending *sig)
+ }
+
+ extern void flush_sigqueue(struct sigpending *queue);
++extern void flush_task_sigqueue(struct task_struct *tsk);
+
+ /* 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 908e7a33e1fc..2a414fc71b87 100644
+--- a/kernel/exit.c
++++ b/kernel/exit.c
+@@ -160,7 +160,7 @@ static void __exit_signal(struct task_struct *tsk)
+ * Do this under ->siglock, we can race with another thread
+ * doing sigqueue_free() if we have SIGQUEUE_PREALLOC signals.
+ */
+- flush_sigqueue(&tsk->pending);
++ flush_task_sigqueue(tsk);
+ tsk->sighand = NULL;
+ spin_unlock(&sighand->siglock);
+
+diff --git a/kernel/fork.c b/kernel/fork.c
+index 51ec12803c0b..fdc61ac6a748 100644
+--- a/kernel/fork.c
++++ b/kernel/fork.c
+@@ -1848,6 +1848,7 @@ static __latent_entropy struct task_struct *copy_process(
+ spin_lock_init(&p->alloc_lock);
+
+ init_sigpending(&p->pending);
++ p->sigqueue_cache = NULL;
+
+ p->utime = p->stime = p->gtime = 0;
+ #ifdef CONFIG_ARCH_HAS_SCALED_CPUTIME
+diff --git a/kernel/signal.c b/kernel/signal.c
+index 58bd3b3dd499..74f807bba0b8 100644
+--- a/kernel/signal.c
++++ b/kernel/signal.c
+@@ -19,6 +19,7 @@
+ #include <linux/sched/task.h>
+ #include <linux/sched/task_stack.h>
+ #include <linux/sched/cputime.h>
++#include <linux/sched/rt.h>
+ #include <linux/fs.h>
+ #include <linux/tty.h>
+ #include <linux/binfmts.h>
+@@ -398,13 +399,30 @@ void task_join_group_stop(struct task_struct *task)
+ task_set_jobctl_pending(task, mask | JOBCTL_STOP_PENDING);
+ }
+
++static inline struct sigqueue *get_task_cache(struct task_struct *t)
++{
++ struct sigqueue *q = t->sigqueue_cache;
++
++ if (cmpxchg(&t->sigqueue_cache, q, NULL) != q)
++ return NULL;
++ return q;
++}
++
++static inline int put_task_cache(struct task_struct *t, struct sigqueue *q)
++{
++ if (cmpxchg(&t->sigqueue_cache, NULL, q) == NULL)
++ return 0;
++ return 1;
++}
++
+ /*
+ * allocate a new signal queue record
+ * - this may be called without locks if and only if t == current, otherwise an
+ * appropriate lock must be held to stop the target task from exiting
+ */
+ static struct sigqueue *
+-__sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags, int override_rlimit)
++__sigqueue_do_alloc(int sig, struct task_struct *t, gfp_t flags,
++ int override_rlimit, int fromslab)
+ {
+ struct sigqueue *q = NULL;
+ struct user_struct *user;
+@@ -426,7 +444,10 @@ __sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags, int override_rlimi
+ rcu_read_unlock();
+
+ if (override_rlimit || likely(sigpending <= task_rlimit(t, RLIMIT_SIGPENDING))) {
+- q = kmem_cache_alloc(sigqueue_cachep, flags);
++ if (!fromslab)
++ q = get_task_cache(t);
++ if (!q)
++ q = kmem_cache_alloc(sigqueue_cachep, flags);
+ } else {
+ print_dropped_signal(sig);
+ }
+@@ -443,6 +464,13 @@ __sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags, int override_rlimi
+ return q;
+ }
+
++static struct sigqueue *
++__sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags,
++ int override_rlimit)
++{
++ return __sigqueue_do_alloc(sig, t, flags, override_rlimit, 0);
++}
++
+ static void __sigqueue_free(struct sigqueue *q)
+ {
+ if (q->flags & SIGQUEUE_PREALLOC)
+@@ -452,6 +480,21 @@ static void __sigqueue_free(struct sigqueue *q)
+ kmem_cache_free(sigqueue_cachep, q);
+ }
+
++static void sigqueue_free_current(struct sigqueue *q)
++{
++ struct user_struct *up;
++
++ if (q->flags & SIGQUEUE_PREALLOC)
++ return;
++
++ up = q->user;
++ if (rt_prio(current->normal_prio) && !put_task_cache(current, q)) {
++ atomic_dec(&up->sigpending);
++ free_uid(up);
++ } else
++ __sigqueue_free(q);
++}
++
+ void flush_sigqueue(struct sigpending *queue)
+ {
+ struct sigqueue *q;
+@@ -464,6 +507,21 @@ void flush_sigqueue(struct sigpending *queue)
+ }
+ }
+
++/*
++ * Called from __exit_signal. Flush tsk->pending and
++ * tsk->sigqueue_cache
++ */
++void flush_task_sigqueue(struct task_struct *tsk)
++{
++ struct sigqueue *q;
++
++ flush_sigqueue(&tsk->pending);
++
++ q = get_task_cache(tsk);
++ if (q)
++ kmem_cache_free(sigqueue_cachep, q);
++}
++
+ /*
+ * Flush all pending signals for this kthread.
+ */
+@@ -587,7 +645,7 @@ static void collect_signal(int sig, struct sigpending *list, siginfo_t *info,
+ (info->si_code == SI_TIMER) &&
+ (info->si_sys_private);
+
+- __sigqueue_free(first);
++ sigqueue_free_current(first);
+ } else {
+ /*
+ * Ok, it wasn't in the queue. This must be
+@@ -624,6 +682,8 @@ int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info)
+ bool resched_timer = false;
+ int signr;
+
++ WARN_ON_ONCE(tsk != current);
++
+ /* We only dequeue private signals from ourselves, we don't let
+ * signalfd steal them
+ */
+@@ -1762,7 +1822,8 @@ EXPORT_SYMBOL(kill_pid);
+ */
+ struct sigqueue *sigqueue_alloc(void)
+ {
+- struct sigqueue *q = __sigqueue_alloc(-1, current, GFP_KERNEL, 0);
++ /* Preallocated sigqueue objects always from the slabcache ! */
++ struct sigqueue *q = __sigqueue_do_alloc(-1, current, GFP_KERNEL, 0, 1);
+
+ if (q)
+ q->flags |= SIGQUEUE_PREALLOC;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0260-Add-localversion-for-RT-release.patch b/debian/patches-rt/0260-Add-localversion-for-RT-release.patch
new file mode 100644
index 000000000..b4212f0a6
--- /dev/null
+++ b/debian/patches-rt/0260-Add-localversion-for-RT-release.patch
@@ -0,0 +1,22 @@
+From 0146607e465af932fed9f14bc6c3bd83e1723699 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Fri, 8 Jul 2011 20:25:16 +0200
+Subject: [PATCH 260/347] Add localversion for -RT release
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ localversion-rt | 1 +
+ 1 file changed, 1 insertion(+)
+ create mode 100644 localversion-rt
+
+diff --git a/localversion-rt b/localversion-rt
+new file mode 100644
+index 000000000000..1199ebade17b
+--- /dev/null
++++ b/localversion-rt
+@@ -0,0 +1 @@
++-rt16
+--
+2.36.1
+
diff --git a/debian/patches-rt/0261-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch b/debian/patches-rt/0261-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch
new file mode 100644
index 000000000..f86ebc321
--- /dev/null
+++ b/debian/patches-rt/0261-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch
@@ -0,0 +1,97 @@
+From 0e0334043fc179c95449e93c201474b96f1f8656 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 26 Mar 2019 18:31:54 +0100
+Subject: [PATCH 261/347] powerpc/pseries/iommu: Use a locallock instead
+ local_irq_save()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The locallock protects the per-CPU variable tce_page. The function
+attempts to allocate memory while tce_page is protected (by disabling
+interrupts).
+
+Use local_irq_save() instead of local_irq_disable().
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ arch/powerpc/platforms/pseries/iommu.c | 16 ++++++++++------
+ 1 file changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c
+index b1a08cb760e0..8ef818ad83ec 100644
+--- a/arch/powerpc/platforms/pseries/iommu.c
++++ b/arch/powerpc/platforms/pseries/iommu.c
+@@ -38,6 +38,7 @@
+ #include <linux/of.h>
+ #include <linux/iommu.h>
+ #include <linux/rculist.h>
++#include <linux/locallock.h>
+ #include <asm/io.h>
+ #include <asm/prom.h>
+ #include <asm/rtas.h>
+@@ -212,6 +213,7 @@ static int tce_build_pSeriesLP(unsigned long liobn, long tcenum, long tceshift,
+ }
+
+ static DEFINE_PER_CPU(__be64 *, tce_page);
++static DEFINE_LOCAL_IRQ_LOCK(tcp_page_lock);
+
+ static int tce_buildmulti_pSeriesLP(struct iommu_table *tbl, long tcenum,
+ long npages, unsigned long uaddr,
+@@ -233,7 +235,8 @@ static int tce_buildmulti_pSeriesLP(struct iommu_table *tbl, long tcenum,
+ direction, attrs);
+ }
+
+- local_irq_save(flags); /* to protect tcep and the page behind it */
++ /* to protect tcep and the page behind it */
++ local_lock_irqsave(tcp_page_lock, flags);
+
+ tcep = __this_cpu_read(tce_page);
+
+@@ -244,7 +247,7 @@ static int tce_buildmulti_pSeriesLP(struct iommu_table *tbl, long tcenum,
+ tcep = (__be64 *)__get_free_page(GFP_ATOMIC);
+ /* If allocation fails, fall back to the loop implementation */
+ if (!tcep) {
+- local_irq_restore(flags);
++ local_unlock_irqrestore(tcp_page_lock, flags);
+ return tce_build_pSeriesLP(tbl->it_index, tcenum,
+ tbl->it_page_shift,
+ npages, uaddr, direction, attrs);
+@@ -279,7 +282,7 @@ static int tce_buildmulti_pSeriesLP(struct iommu_table *tbl, long tcenum,
+ tcenum += limit;
+ } while (npages > 0 && !rc);
+
+- local_irq_restore(flags);
++ local_unlock_irqrestore(tcp_page_lock, flags);
+
+ if (unlikely(rc == H_NOT_ENOUGH_RESOURCES)) {
+ ret = (int)rc;
+@@ -450,13 +453,14 @@ static int tce_setrange_multi_pSeriesLP(unsigned long start_pfn,
+ DMA_BIDIRECTIONAL, 0);
+ }
+
+- local_irq_disable(); /* to protect tcep and the page behind it */
++ /* to protect tcep and the page behind it */
++ local_lock_irq(tcp_page_lock);
+ tcep = __this_cpu_read(tce_page);
+
+ if (!tcep) {
+ tcep = (__be64 *)__get_free_page(GFP_ATOMIC);
+ if (!tcep) {
+- local_irq_enable();
++ local_unlock_irq(tcp_page_lock);
+ return -ENOMEM;
+ }
+ __this_cpu_write(tce_page, tcep);
+@@ -502,7 +506,7 @@ static int tce_setrange_multi_pSeriesLP(unsigned long start_pfn,
+
+ /* error cleanup: caller will clear whole range */
+
+- local_irq_enable();
++ local_unlock_irq(tcp_page_lock);
+ return rc;
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0262-powerpc-reshuffle-TIF-bits.patch b/debian/patches-rt/0262-powerpc-reshuffle-TIF-bits.patch
new file mode 100644
index 000000000..423525f91
--- /dev/null
+++ b/debian/patches-rt/0262-powerpc-reshuffle-TIF-bits.patch
@@ -0,0 +1,152 @@
+From a32952376eefc4ff8ec9467ec77f2402c56491f5 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 22 Mar 2019 17:15:58 +0100
+Subject: [PATCH 262/347] powerpc: reshuffle TIF bits
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Powerpc32/64 does not compile because TIF_SYSCALL_TRACE's bit is higher
+than 15 and the assembly instructions don't expect that.
+
+Move TIF_RESTOREALL, TIF_NOERROR to the higher bits and keep
+TIF_NEED_RESCHED_LAZY in the lower range. As a result one split load is
+needed and otherwise we can use immediates.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ arch/powerpc/include/asm/thread_info.h | 11 +++++++----
+ arch/powerpc/kernel/entry_32.S | 12 +++++++-----
+ arch/powerpc/kernel/entry_64.S | 12 +++++++-----
+ 3 files changed, 21 insertions(+), 14 deletions(-)
+
+diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h
+index ce316076bc52..64c3d1a720e2 100644
+--- a/arch/powerpc/include/asm/thread_info.h
++++ b/arch/powerpc/include/asm/thread_info.h
+@@ -83,18 +83,18 @@ extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src
+ #define TIF_SIGPENDING 1 /* signal pending */
+ #define TIF_NEED_RESCHED 2 /* rescheduling necessary */
+ #define TIF_FSCHECK 3 /* Check FS is USER_DS on return */
+-#define TIF_NEED_RESCHED_LAZY 4 /* lazy rescheduling necessary */
+ #define TIF_RESTORE_TM 5 /* need to restore TM FP/VEC/VSX */
+ #define TIF_PATCH_PENDING 6 /* pending live patching update */
+ #define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */
+ #define TIF_SINGLESTEP 8 /* singlestepping active */
+ #define TIF_NOHZ 9 /* in adaptive nohz mode */
+ #define TIF_SECCOMP 10 /* secure computing */
+-#define TIF_RESTOREALL 11 /* Restore all regs (implies NOERROR) */
+-#define TIF_NOERROR 12 /* Force successful syscall return */
++
++#define TIF_NEED_RESCHED_LAZY 11 /* lazy rescheduling necessary */
++#define TIF_SYSCALL_TRACEPOINT 12 /* syscall tracepoint instrumentation */
++
+ #define TIF_NOTIFY_RESUME 13 /* callback before returning to user */
+ #define TIF_UPROBE 14 /* breakpointed or single-stepping */
+-#define TIF_SYSCALL_TRACEPOINT 15 /* syscall tracepoint instrumentation */
+ #define TIF_EMULATE_STACK_STORE 16 /* Is an instruction emulation
+ for stack store? */
+ #define TIF_MEMDIE 17 /* is terminating due to OOM killer */
+@@ -103,6 +103,9 @@ extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src
+ #endif
+ #define TIF_POLLING_NRFLAG 19 /* true if poll_idle() is polling TIF_NEED_RESCHED */
+ #define TIF_32BIT 20 /* 32 bit binary */
++#define TIF_RESTOREALL 21 /* Restore all regs (implies NOERROR) */
++#define TIF_NOERROR 22 /* Force successful syscall return */
++
+
+ /* as above, but as bit values */
+ #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
+diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S
+index 3783f3ef17a4..44bcf1585bd1 100644
+--- a/arch/powerpc/kernel/entry_32.S
++++ b/arch/powerpc/kernel/entry_32.S
+@@ -393,7 +393,9 @@ _GLOBAL(DoSyscall)
+ MTMSRD(r10)
+ lwz r9,TI_FLAGS(r12)
+ li r8,-MAX_ERRNO
+- andi. r0,r9,(_TIF_SYSCALL_DOTRACE|_TIF_SINGLESTEP|_TIF_USER_WORK_MASK|_TIF_PERSYSCALL_MASK)
++ lis r0,(_TIF_SYSCALL_DOTRACE|_TIF_SINGLESTEP|_TIF_USER_WORK_MASK|_TIF_PERSYSCALL_MASK)@h
++ ori r0,r0, (_TIF_SYSCALL_DOTRACE|_TIF_SINGLESTEP|_TIF_USER_WORK_MASK|_TIF_PERSYSCALL_MASK)@l
++ and. r0,r9,r0
+ bne- syscall_exit_work
+ cmplw 0,r3,r8
+ blt+ syscall_exit_cont
+@@ -511,13 +513,13 @@ END_FTR_SECTION_IFSET(CPU_FTR_NEED_PAIRED_STWCX)
+ b syscall_dotrace_cont
+
+ syscall_exit_work:
+- andi. r0,r9,_TIF_RESTOREALL
++ andis. r0,r9,_TIF_RESTOREALL@h
+ beq+ 0f
+ REST_NVGPRS(r1)
+ b 2f
+ 0: cmplw 0,r3,r8
+ blt+ 1f
+- andi. r0,r9,_TIF_NOERROR
++ andis. r0,r9,_TIF_NOERROR@h
+ bne- 1f
+ lwz r11,_CCR(r1) /* Load CR */
+ neg r3,r3
+@@ -526,12 +528,12 @@ END_FTR_SECTION_IFSET(CPU_FTR_NEED_PAIRED_STWCX)
+
+ 1: stw r6,RESULT(r1) /* Save result */
+ stw r3,GPR3(r1) /* Update return value */
+-2: andi. r0,r9,(_TIF_PERSYSCALL_MASK)
++2: andis. r0,r9,(_TIF_PERSYSCALL_MASK)@h
+ beq 4f
+
+ /* Clear per-syscall TIF flags if any are set. */
+
+- li r11,_TIF_PERSYSCALL_MASK
++ lis r11,_TIF_PERSYSCALL_MASK@h
+ addi r12,r12,TI_FLAGS
+ 3: lwarx r8,0,r12
+ andc r8,r8,r11
+diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S
+index ef02e41d5d96..229cdb04e9b0 100644
+--- a/arch/powerpc/kernel/entry_64.S
++++ b/arch/powerpc/kernel/entry_64.S
+@@ -250,7 +250,9 @@ system_call: /* label this so stack traces look sane */
+
+ ld r9,TI_FLAGS(r12)
+ li r11,-MAX_ERRNO
+- andi. r0,r9,(_TIF_SYSCALL_DOTRACE|_TIF_SINGLESTEP|_TIF_USER_WORK_MASK|_TIF_PERSYSCALL_MASK)
++ lis r0,(_TIF_SYSCALL_DOTRACE|_TIF_SINGLESTEP|_TIF_USER_WORK_MASK|_TIF_PERSYSCALL_MASK)@h
++ ori r0,r0,(_TIF_SYSCALL_DOTRACE|_TIF_SINGLESTEP|_TIF_USER_WORK_MASK|_TIF_PERSYSCALL_MASK)@l
++ and. r0,r9,r0
+ bne- .Lsyscall_exit_work
+
+ andi. r0,r8,MSR_FP
+@@ -363,25 +365,25 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
+ /* If TIF_RESTOREALL is set, don't scribble on either r3 or ccr.
+ If TIF_NOERROR is set, just save r3 as it is. */
+
+- andi. r0,r9,_TIF_RESTOREALL
++ andis. r0,r9,_TIF_RESTOREALL@h
+ beq+ 0f
+ REST_NVGPRS(r1)
+ b 2f
+ 0: cmpld r3,r11 /* r11 is -MAX_ERRNO */
+ blt+ 1f
+- andi. r0,r9,_TIF_NOERROR
++ andis. r0,r9,_TIF_NOERROR@h
+ bne- 1f
+ ld r5,_CCR(r1)
+ neg r3,r3
+ oris r5,r5,0x1000 /* Set SO bit in CR */
+ std r5,_CCR(r1)
+ 1: std r3,GPR3(r1)
+-2: andi. r0,r9,(_TIF_PERSYSCALL_MASK)
++2: andis. r0,r9,(_TIF_PERSYSCALL_MASK)@h
+ beq 4f
+
+ /* Clear per-syscall TIF flags if any are set. */
+
+- li r11,_TIF_PERSYSCALL_MASK
++ lis r11,(_TIF_PERSYSCALL_MASK)@h
+ addi r12,r12,TI_FLAGS
+ 3: ldarx r10,0,r12
+ andc r10,r10,r11
+--
+2.36.1
+
diff --git a/debian/patches-rt/0263-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch b/debian/patches-rt/0263-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch
new file mode 100644
index 000000000..25b626e50
--- /dev/null
+++ b/debian/patches-rt/0263-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch
@@ -0,0 +1,63 @@
+From 80d2475bc6d0eacb1cf634c16818c86554fcee0c Mon Sep 17 00:00:00 2001
+From: Julien Grall <julien.grall@arm.com>
+Date: Wed, 13 Mar 2019 11:40:34 +0000
+Subject: [PATCH 263/347] tty/sysrq: Convert show_lock to raw_spinlock_t
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Systems which don't provide arch_trigger_cpumask_backtrace() will
+invoke showacpu() from a smp_call_function() function which is invoked
+with disabled interrupts even on -RT systems.
+
+The function acquires the show_lock lock which only purpose is to
+ensure that the CPUs don't print simultaneously. Otherwise the
+output would clash and it would be hard to tell the output from CPUx
+apart from CPUy.
+
+On -RT the spin_lock() can not be acquired from this context. A
+raw_spin_lock() is required. It will introduce the system's latency
+by performing the sysrq request and other CPUs will block on the lock
+until the request is done. This is okay because the user asked for a
+backtrace of all active CPUs and under "normal circumstances in
+production" this path should not be triggered.
+
+Signed-off-by: Julien Grall <julien.grall@arm.com>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+[bigeasy@linuxtronix.de: commit description]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/tty/sysrq.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
+index cee0274806c5..f785ca55fb85 100644
+--- a/drivers/tty/sysrq.c
++++ b/drivers/tty/sysrq.c
+@@ -215,7 +215,7 @@ static struct sysrq_key_op sysrq_showlocks_op = {
+ #endif
+
+ #ifdef CONFIG_SMP
+-static DEFINE_SPINLOCK(show_lock);
++static DEFINE_RAW_SPINLOCK(show_lock);
+
+ static void showacpu(void *dummy)
+ {
+@@ -225,10 +225,10 @@ static void showacpu(void *dummy)
+ if (idle_cpu(smp_processor_id()))
+ return;
+
+- spin_lock_irqsave(&show_lock, flags);
++ raw_spin_lock_irqsave(&show_lock, flags);
+ pr_info("CPU%d:\n", smp_processor_id());
+ show_stack(NULL, NULL);
+- spin_unlock_irqrestore(&show_lock, flags);
++ raw_spin_unlock_irqrestore(&show_lock, flags);
+ }
+
+ static void sysrq_showregs_othercpus(struct work_struct *dummy)
+--
+2.36.1
+
diff --git a/debian/patches-rt/0264-drm-i915-Don-t-disable-interrupts-independently-of-t.patch b/debian/patches-rt/0264-drm-i915-Don-t-disable-interrupts-independently-of-t.patch
new file mode 100644
index 000000000..e95fb336e
--- /dev/null
+++ b/debian/patches-rt/0264-drm-i915-Don-t-disable-interrupts-independently-of-t.patch
@@ -0,0 +1,51 @@
+From 31ae53586975d39dd03dabf5c944b498dcc73289 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 10 Apr 2019 11:01:37 +0200
+Subject: [PATCH 264/347] drm/i915: Don't disable interrupts independently of
+ the lock
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The locks (timeline->lock and rq->lock) need to be taken with disabled
+interrupts. This is done in __retire_engine_request() by disabling the
+interrupts independently of the locks itself.
+While local_irq_disable()+spin_lock() equals spin_lock_irq() on vanilla
+it does not on RT. Also, it is not obvious if there is a special reason
+to why the interrupts are disabled independently of the lock.
+
+Enable/disable interrupts as part of the locking instruction.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ drivers/gpu/drm/i915/i915_request.c | 8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
+index 5c2c93cbab12..7124510b9131 100644
+--- a/drivers/gpu/drm/i915/i915_request.c
++++ b/drivers/gpu/drm/i915/i915_request.c
+@@ -356,9 +356,7 @@ static void __retire_engine_request(struct intel_engine_cs *engine,
+
+ GEM_BUG_ON(!i915_request_completed(rq));
+
+- local_irq_disable();
+-
+- spin_lock(&engine->timeline.lock);
++ spin_lock_irq(&engine->timeline.lock);
+ GEM_BUG_ON(!list_is_first(&rq->link, &engine->timeline.requests));
+ list_del_init(&rq->link);
+ spin_unlock(&engine->timeline.lock);
+@@ -372,9 +370,7 @@ static void __retire_engine_request(struct intel_engine_cs *engine,
+ GEM_BUG_ON(!atomic_read(&rq->i915->gt_pm.rps.num_waiters));
+ atomic_dec(&rq->i915->gt_pm.rps.num_waiters);
+ }
+- spin_unlock(&rq->lock);
+-
+- local_irq_enable();
++ spin_unlock_irq(&rq->lock);
+
+ /*
+ * The backing object for the context is done after switching to the
+--
+2.36.1
+
diff --git a/debian/patches-rt/0265-sched-completion-Fix-a-lockup-in-wait_for_completion.patch b/debian/patches-rt/0265-sched-completion-Fix-a-lockup-in-wait_for_completion.patch
new file mode 100644
index 000000000..bf5c14343
--- /dev/null
+++ b/debian/patches-rt/0265-sched-completion-Fix-a-lockup-in-wait_for_completion.patch
@@ -0,0 +1,69 @@
+From 055b27065070862af1438159975c51c824ed6db1 Mon Sep 17 00:00:00 2001
+From: Corey Minyard <cminyard@mvista.com>
+Date: Thu, 9 May 2019 14:33:20 -0500
+Subject: [PATCH 265/347] sched/completion: Fix a lockup in
+ wait_for_completion()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Consider following race:
+
+ T0 T1 T2
+ wait_for_completion()
+ do_wait_for_common()
+ __prepare_to_swait()
+ schedule()
+ complete()
+ x->done++ (0 -> 1)
+ raw_spin_lock_irqsave()
+ swake_up_locked() wait_for_completion()
+ wake_up_process(T0)
+ list_del_init()
+ raw_spin_unlock_irqrestore()
+ raw_spin_lock_irq(&x->wait.lock)
+ raw_spin_lock_irq(&x->wait.lock) x->done != UINT_MAX, 1 -> 0
+ raw_spin_unlock_irq(&x->wait.lock)
+ return 1
+ while (!x->done && timeout),
+ continue loop, not enqueued
+ on &x->wait
+
+Basically, the problem is that the original wait queues used in
+completions did not remove the item from the queue in the wakeup
+function, but swake_up_locked() does.
+
+Fix it by adding the thread to the wait queue inside the do loop.
+The design of swait detects if it is already in the list and doesn't
+do the list add again.
+
+Cc: stable-rt@vger.kernel.org
+Fixes: a04ff6b4ec4ee7e ("completion: Use simple wait queues")
+Signed-off-by: Corey Minyard <cminyard@mvista.com>
+Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+[bigeasy: shorten commit message ]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/sched/completion.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kernel/sched/completion.c b/kernel/sched/completion.c
+index 755a58084978..49c14137988e 100644
+--- a/kernel/sched/completion.c
++++ b/kernel/sched/completion.c
+@@ -72,12 +72,12 @@ do_wait_for_common(struct completion *x,
+ if (!x->done) {
+ DECLARE_SWAITQUEUE(wait);
+
+- __prepare_to_swait(&x->wait, &wait);
+ do {
+ if (signal_pending_state(state, current)) {
+ timeout = -ERESTARTSYS;
+ break;
+ }
++ __prepare_to_swait(&x->wait, &wait);
+ __set_current_state(state);
+ raw_spin_unlock_irq(&x->wait.lock);
+ timeout = action(timeout);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0266-kthread-add-a-global-worker-thread.patch b/debian/patches-rt/0266-kthread-add-a-global-worker-thread.patch
new file mode 100644
index 000000000..467bba0ef
--- /dev/null
+++ b/debian/patches-rt/0266-kthread-add-a-global-worker-thread.patch
@@ -0,0 +1,180 @@
+From 840c9b4ba91e8486a177aafa9089c694248955c7 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 12 Feb 2019 15:09:38 +0100
+Subject: [PATCH 266/347] kthread: add a global worker thread.
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 0532e87d9d44795221aa921ba7024bde689cc894 ]
+
+Add kthread_schedule_work() which uses a global kthread for all its
+jobs.
+Split the cgroup include to avoid recussive includes from interrupt.h.
+Fixup everything that fails to build (and did not include all header).
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+[
+ Fixed up include in blk-cgroup.h reported by Juri Lelli
+ http://lkml.kernel.org/r/20190722083009.GE25636@localhost.localdomain
+]
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ drivers/block/loop.c | 2 +-
+ drivers/spi/spi-rockchip.c | 1 +
+ include/linux/blk-cgroup.h | 2 +-
+ include/linux/kthread-cgroup.h | 17 +++++++++++++++++
+ include/linux/kthread.h | 17 +++++++----------
+ init/main.c | 1 +
+ kernel/kthread.c | 14 ++++++++++++++
+ 7 files changed, 42 insertions(+), 12 deletions(-)
+ create mode 100644 include/linux/kthread-cgroup.h
+
+diff --git a/drivers/block/loop.c b/drivers/block/loop.c
+index c31a76485c9c..d24660961343 100644
+--- a/drivers/block/loop.c
++++ b/drivers/block/loop.c
+@@ -70,7 +70,7 @@
+ #include <linux/writeback.h>
+ #include <linux/completion.h>
+ #include <linux/highmem.h>
+-#include <linux/kthread.h>
++#include <linux/kthread-cgroup.h>
+ #include <linux/splice.h>
+ #include <linux/sysfs.h>
+ #include <linux/miscdevice.h>
+diff --git a/drivers/spi/spi-rockchip.c b/drivers/spi/spi-rockchip.c
+index 185bbdce62b1..63b10236eb05 100644
+--- a/drivers/spi/spi-rockchip.c
++++ b/drivers/spi/spi-rockchip.c
+@@ -22,6 +22,7 @@
+ #include <linux/spi/spi.h>
+ #include <linux/pm_runtime.h>
+ #include <linux/scatterlist.h>
++#include <linux/interrupt.h>
+
+ #define DRIVER_NAME "rockchip-spi"
+
+diff --git a/include/linux/blk-cgroup.h b/include/linux/blk-cgroup.h
+index 8f1be8b49391..dc26ce6d840d 100644
+--- a/include/linux/blk-cgroup.h
++++ b/include/linux/blk-cgroup.h
+@@ -14,7 +14,7 @@
+ * Nauman Rafique <nauman@google.com>
+ */
+
+-#include <linux/cgroup.h>
++#include <linux/kthread-cgroup.h>
+ #include <linux/percpu_counter.h>
+ #include <linux/seq_file.h>
+ #include <linux/radix-tree.h>
+diff --git a/include/linux/kthread-cgroup.h b/include/linux/kthread-cgroup.h
+new file mode 100644
+index 000000000000..53d34bca9d72
+--- /dev/null
++++ b/include/linux/kthread-cgroup.h
+@@ -0,0 +1,17 @@
++/* SPDX-License-Identifier: GPL-2.0 */
++#ifndef _LINUX_KTHREAD_CGROUP_H
++#define _LINUX_KTHREAD_CGROUP_H
++#include <linux/kthread.h>
++#include <linux/cgroup.h>
++
++#ifdef CONFIG_BLK_CGROUP
++void kthread_associate_blkcg(struct cgroup_subsys_state *css);
++struct cgroup_subsys_state *kthread_blkcg(void);
++#else
++static inline void kthread_associate_blkcg(struct cgroup_subsys_state *css) { }
++static inline struct cgroup_subsys_state *kthread_blkcg(void)
++{
++ return NULL;
++}
++#endif
++#endif
+diff --git a/include/linux/kthread.h b/include/linux/kthread.h
+index e0498e46d642..31140f0a6c2c 100644
+--- a/include/linux/kthread.h
++++ b/include/linux/kthread.h
+@@ -4,7 +4,6 @@
+ /* Simple interface for creating and stopping kernel threads without mess. */
+ #include <linux/err.h>
+ #include <linux/sched.h>
+-#include <linux/cgroup.h>
+
+ __printf(4, 5)
+ struct task_struct *kthread_create_on_node(int (*threadfn)(void *data),
+@@ -109,7 +108,7 @@ struct kthread_delayed_work {
+ };
+
+ #define KTHREAD_WORKER_INIT(worker) { \
+- .lock = __SPIN_LOCK_UNLOCKED((worker).lock), \
++ .lock = __RAW_SPIN_LOCK_UNLOCKED((worker).lock), \
+ .work_list = LIST_HEAD_INIT((worker).work_list), \
+ .delayed_work_list = LIST_HEAD_INIT((worker).delayed_work_list),\
+ }
+@@ -201,14 +200,12 @@ bool kthread_cancel_delayed_work_sync(struct kthread_delayed_work *work);
+
+ void kthread_destroy_worker(struct kthread_worker *worker);
+
+-#ifdef CONFIG_BLK_CGROUP
+-void kthread_associate_blkcg(struct cgroup_subsys_state *css);
+-struct cgroup_subsys_state *kthread_blkcg(void);
+-#else
+-static inline void kthread_associate_blkcg(struct cgroup_subsys_state *css) { }
+-static inline struct cgroup_subsys_state *kthread_blkcg(void)
++extern struct kthread_worker kthread_global_worker;
++void kthread_init_global_worker(void);
++
++static inline bool kthread_schedule_work(struct kthread_work *work)
+ {
+- return NULL;
++ return kthread_queue_work(&kthread_global_worker, work);
+ }
+-#endif
++
+ #endif /* _LINUX_KTHREAD_H */
+diff --git a/init/main.c b/init/main.c
+index 0d5763c5da28..f5d0917a4d4b 100644
+--- a/init/main.c
++++ b/init/main.c
+@@ -1132,6 +1132,7 @@ static noinline void __init kernel_init_freeable(void)
+ smp_prepare_cpus(setup_max_cpus);
+
+ workqueue_init();
++ kthread_init_global_worker();
+
+ init_mm_internals();
+
+diff --git a/kernel/kthread.c b/kernel/kthread.c
+index c8cf4731ced8..6bbd391f0d9c 100644
+--- a/kernel/kthread.c
++++ b/kernel/kthread.c
+@@ -20,6 +20,7 @@
+ #include <linux/freezer.h>
+ #include <linux/ptrace.h>
+ #include <linux/uaccess.h>
++#include <linux/cgroup.h>
+ #include <trace/events/sched.h>
+
+ static DEFINE_SPINLOCK(kthread_create_lock);
+@@ -1244,6 +1245,19 @@ void kthread_destroy_worker(struct kthread_worker *worker)
+ }
+ EXPORT_SYMBOL(kthread_destroy_worker);
+
++DEFINE_KTHREAD_WORKER(kthread_global_worker);
++EXPORT_SYMBOL(kthread_global_worker);
++
++__init void kthread_init_global_worker(void)
++{
++ kthread_global_worker.task = kthread_create(kthread_worker_fn,
++ &kthread_global_worker,
++ "kswork");
++ if (WARN_ON(IS_ERR(kthread_global_worker.task)))
++ return;
++ wake_up_process(kthread_global_worker.task);
++}
++
+ #ifdef CONFIG_BLK_CGROUP
+ /**
+ * kthread_associate_blkcg - associate blkcg to current kthread
+--
+2.36.1
+
diff --git a/debian/patches-rt/0267-arm-imx6-cpuidle-Use-raw_spinlock_t.patch b/debian/patches-rt/0267-arm-imx6-cpuidle-Use-raw_spinlock_t.patch
new file mode 100644
index 000000000..469d00fed
--- /dev/null
+++ b/debian/patches-rt/0267-arm-imx6-cpuidle-Use-raw_spinlock_t.patch
@@ -0,0 +1,52 @@
+From 2fba570810dc44f1b4e171167882ff311417e129 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 14 May 2019 17:07:44 +0200
+Subject: [PATCH 267/347] arm: imx6: cpuidle: Use raw_spinlock_t
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 40d0332ec8312e9c090f0a5414d9c90e12b13611 ]
+
+The idle call back is invoked with disabled interrupts and requires
+raw_spinlock_t locks to work.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ arch/arm/mach-imx/cpuidle-imx6q.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/arch/arm/mach-imx/cpuidle-imx6q.c b/arch/arm/mach-imx/cpuidle-imx6q.c
+index 326e870d7123..d9ac80aa1eb0 100644
+--- a/arch/arm/mach-imx/cpuidle-imx6q.c
++++ b/arch/arm/mach-imx/cpuidle-imx6q.c
+@@ -17,22 +17,22 @@
+ #include "hardware.h"
+
+ static int num_idle_cpus = 0;
+-static DEFINE_SPINLOCK(cpuidle_lock);
++static DEFINE_RAW_SPINLOCK(cpuidle_lock);
+
+ static int imx6q_enter_wait(struct cpuidle_device *dev,
+ struct cpuidle_driver *drv, int index)
+ {
+- spin_lock(&cpuidle_lock);
++ raw_spin_lock(&cpuidle_lock);
+ if (++num_idle_cpus == num_online_cpus())
+ imx6_set_lpm(WAIT_UNCLOCKED);
+- spin_unlock(&cpuidle_lock);
++ raw_spin_unlock(&cpuidle_lock);
+
+ cpu_do_idle();
+
+- spin_lock(&cpuidle_lock);
++ raw_spin_lock(&cpuidle_lock);
+ if (num_idle_cpus-- == num_online_cpus())
+ imx6_set_lpm(WAIT_CLOCKED);
+- spin_unlock(&cpuidle_lock);
++ raw_spin_unlock(&cpuidle_lock);
+
+ return index;
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0268-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch b/debian/patches-rt/0268-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch
new file mode 100644
index 000000000..3e9b760d5
--- /dev/null
+++ b/debian/patches-rt/0268-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch
@@ -0,0 +1,36 @@
+From c06c2524bbfc1d9e9531a571fb86a03cd7965bd3 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Mon, 24 Jun 2019 18:29:13 +0200
+Subject: [PATCH 268/347] rcu: Don't allow to change rcu_normal_after_boot on
+ RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit c6c058c10577815a2491ce661876cff00a4c3b15 ]
+
+On RT rcu_normal_after_boot is enabled by default.
+Don't allow to disable it on RT because the "expedited rcu" would
+introduce latency spikes.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/rcu/update.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/kernel/rcu/update.c b/kernel/rcu/update.c
+index 16d8dba23329..ed75addd3ccd 100644
+--- a/kernel/rcu/update.c
++++ b/kernel/rcu/update.c
+@@ -69,7 +69,9 @@ module_param(rcu_expedited, int, 0);
+ extern int rcu_normal; /* from sysctl */
+ module_param(rcu_normal, int, 0);
+ static int rcu_normal_after_boot = IS_ENABLED(CONFIG_PREEMPT_RT_FULL);
++#ifndef CONFIG_PREEMPT_RT_FULL
+ module_param(rcu_normal_after_boot, int, 0);
++#endif
+ #endif /* #ifndef CONFIG_TINY_RCU */
+
+ #ifdef CONFIG_DEBUG_LOCK_ALLOC
+--
+2.36.1
+
diff --git a/debian/patches-rt/0269-pci-switchtec-fix-stream_open.cocci-warnings.patch b/debian/patches-rt/0269-pci-switchtec-fix-stream_open.cocci-warnings.patch
new file mode 100644
index 000000000..b754add55
--- /dev/null
+++ b/debian/patches-rt/0269-pci-switchtec-fix-stream_open.cocci-warnings.patch
@@ -0,0 +1,40 @@
+From 088093ff4b48997a7b7ee99d8dcdfd02b47bf472 Mon Sep 17 00:00:00 2001
+From: kbuild test robot <lkp@intel.com>
+Date: Sat, 13 Apr 2019 11:22:51 +0800
+Subject: [PATCH 269/347] pci/switchtec: fix stream_open.cocci warnings
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 9462c69e29307adc95c289f50839d5d683973891 ]
+
+drivers/pci/switch/switchtec.c:395:1-17: ERROR: switchtec_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix.
+
+Generated by: scripts/coccinelle/api/stream_open.cocci
+
+Cc: Kirill Smelkov <kirr@nexedi.com>
+Cc: Julia Lawall <julia.lawall@lip6.fr>
+Fixes: 8a29a3bae2a2 ("pci/switchtec: Don't use completion's wait queue")
+Cc: stable-rt@vger.kernel.org # where it applies to
+Link: https://lkml.kernel.org/r/alpine.DEB.2.21.1904131849350.2536@hadrien
+Signed-off-by: kbuild test robot <lkp@intel.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ drivers/pci/switch/switchtec.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/pci/switch/switchtec.c b/drivers/pci/switch/switchtec.c
+index a8df847bedee..25d1f96cddc1 100644
+--- a/drivers/pci/switch/switchtec.c
++++ b/drivers/pci/switch/switchtec.c
+@@ -356,7 +356,7 @@ static int switchtec_dev_open(struct inode *inode, struct file *filp)
+ return PTR_ERR(stuser);
+
+ filp->private_data = stuser;
+- nonseekable_open(inode, filp);
++ stream_open(inode, filp);
+
+ dev_dbg(&stdev->dev, "%s: %p\n", __func__, stuser);
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0270-sched-core-Drop-a-preempt_disable_rt-statement.patch b/debian/patches-rt/0270-sched-core-Drop-a-preempt_disable_rt-statement.patch
new file mode 100644
index 000000000..c1c54692c
--- /dev/null
+++ b/debian/patches-rt/0270-sched-core-Drop-a-preempt_disable_rt-statement.patch
@@ -0,0 +1,50 @@
+From 3b0ab176baa325b6e2d909c3d2ce7860873c1726 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Mon, 24 Jun 2019 19:33:16 +0200
+Subject: [PATCH 270/347] sched/core: Drop a preempt_disable_rt() statement
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 761126efdcbe3fa3e99c9079fa0ad6eca2f251f2 ]
+
+The caller holds a lock which already disables preemption.
+Drop the preempt_disable_rt() statement in get_nohz_timer_target().
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/sched/core.c | 9 ++-------
+ 1 file changed, 2 insertions(+), 7 deletions(-)
+
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index feaf4d5683af..3b0f62be3ece 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -558,14 +558,11 @@ void resched_cpu(int cpu)
+ */
+ int get_nohz_timer_target(void)
+ {
+- int i, cpu;
++ int i, cpu = smp_processor_id();
+ struct sched_domain *sd;
+
+- preempt_disable_rt();
+- cpu = smp_processor_id();
+-
+ if (!idle_cpu(cpu) && housekeeping_cpu(cpu, HK_FLAG_TIMER))
+- goto preempt_en_rt;
++ return cpu;
+
+ rcu_read_lock();
+ for_each_domain(cpu, sd) {
+@@ -584,8 +581,6 @@ int get_nohz_timer_target(void)
+ cpu = housekeeping_any_cpu(HK_FLAG_TIMER);
+ unlock:
+ rcu_read_unlock();
+-preempt_en_rt:
+- preempt_enable_rt();
+ return cpu;
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0271-timers-Redo-the-notification-of-canceling-timers-on-.patch b/debian/patches-rt/0271-timers-Redo-the-notification-of-canceling-timers-on-.patch
new file mode 100644
index 000000000..46b7ac22c
--- /dev/null
+++ b/debian/patches-rt/0271-timers-Redo-the-notification-of-canceling-timers-on-.patch
@@ -0,0 +1,650 @@
+From abca2e3959b31be6e2cbc9d1e8d6ddebf31df3ea Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Mon, 24 Jun 2019 19:39:06 +0200
+Subject: [PATCH 271/347] timers: Redo the notification of canceling timers on
+ -RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit c71273154c2ad12e13333aada340ff30e826a11b ]
+
+Rework of the hrtimer, timer and posix-timer cancelation interface
+on -RT. Instead of the swait/schedule interface we now have locks
+which are taken while timer is active. During the cancellation of an
+active timer the lock is acquired. The lock will then either
+PI-boost the timer or block and wait until the timer completed.
+The new code looks simpler and does not trigger a warning from
+rcu_note_context_switch() anymore like reported by Grygorii Strashko
+and Daniel Wagner.
+The patches were contributed by Anna-Maria Gleixner.
+
+This is an all in one commit of the following patches:
+| [PATCH] timers: Introduce expiry spin lock
+| [PATCH] timers: Drop expiry lock after each timer invocation
+| [PATCH] hrtimer: Introduce expiry spin lock
+| [PATCH] posix-timers: move rcu out of union
+| [PATCH] posix-timers: Add expiry lock
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ fs/timerfd.c | 5 +-
+ include/linux/hrtimer.h | 17 ++----
+ include/linux/posix-timers.h | 1 +
+ kernel/time/alarmtimer.c | 2 +-
+ kernel/time/hrtimer.c | 36 ++++---------
+ kernel/time/itimer.c | 2 +-
+ kernel/time/posix-cpu-timers.c | 23 ++++++++
+ kernel/time/posix-timers.c | 69 ++++++++++--------------
+ kernel/time/posix-timers.h | 2 +
+ kernel/time/timer.c | 96 ++++++++++++++++------------------
+ 10 files changed, 118 insertions(+), 135 deletions(-)
+
+diff --git a/fs/timerfd.c b/fs/timerfd.c
+index 82d0f52414a6..f845093466be 100644
+--- a/fs/timerfd.c
++++ b/fs/timerfd.c
+@@ -471,10 +471,11 @@ static int do_timerfd_settime(int ufd, int flags,
+ break;
+ }
+ spin_unlock_irq(&ctx->wqh.lock);
++
+ if (isalarm(ctx))
+- hrtimer_wait_for_timer(&ctx->t.alarm.timer);
++ hrtimer_grab_expiry_lock(&ctx->t.alarm.timer);
+ else
+- hrtimer_wait_for_timer(&ctx->t.tmr);
++ hrtimer_grab_expiry_lock(&ctx->t.tmr);
+ }
+
+ /*
+diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
+index 082147c07831..aee31b1f0cc3 100644
+--- a/include/linux/hrtimer.h
++++ b/include/linux/hrtimer.h
+@@ -22,7 +22,6 @@
+ #include <linux/percpu.h>
+ #include <linux/timer.h>
+ #include <linux/timerqueue.h>
+-#include <linux/wait.h>
+
+ struct hrtimer_clock_base;
+ struct hrtimer_cpu_base;
+@@ -193,6 +192,8 @@ enum hrtimer_base_type {
+ * @nr_retries: Total number of hrtimer interrupt retries
+ * @nr_hangs: Total number of hrtimer interrupt hangs
+ * @max_hang_time: Maximum time spent in hrtimer_interrupt
++ * @softirq_expiry_lock: Lock which is taken while softirq based hrtimer are
++ * expired
+ * @expires_next: absolute time of the next event, is required for remote
+ * hrtimer enqueue; it is the total first expiry time (hard
+ * and soft hrtimer are taken into account)
+@@ -220,12 +221,10 @@ struct hrtimer_cpu_base {
+ unsigned short nr_hangs;
+ unsigned int max_hang_time;
+ #endif
++ spinlock_t softirq_expiry_lock;
+ ktime_t expires_next;
+ struct hrtimer *next_timer;
+ ktime_t softirq_expires_next;
+-#ifdef CONFIG_PREEMPT_RT_BASE
+- wait_queue_head_t wait;
+-#endif
+ struct hrtimer *softirq_next_timer;
+ struct hrtimer_clock_base clock_base[HRTIMER_MAX_CLOCK_BASES];
+ } ____cacheline_aligned;
+@@ -426,6 +425,7 @@ static inline void hrtimer_start(struct hrtimer *timer, ktime_t tim,
+
+ extern int hrtimer_cancel(struct hrtimer *timer);
+ extern int hrtimer_try_to_cancel(struct hrtimer *timer);
++extern void hrtimer_grab_expiry_lock(const struct hrtimer *timer);
+
+ static inline void hrtimer_start_expires(struct hrtimer *timer,
+ enum hrtimer_mode mode)
+@@ -443,13 +443,6 @@ static inline void hrtimer_restart(struct hrtimer *timer)
+ hrtimer_start_expires(timer, HRTIMER_MODE_ABS);
+ }
+
+-/* Softirq preemption could deadlock timer removal */
+-#ifdef CONFIG_PREEMPT_RT_BASE
+- extern void hrtimer_wait_for_timer(const struct hrtimer *timer);
+-#else
+-# define hrtimer_wait_for_timer(timer) do { cpu_relax(); } while (0)
+-#endif
+-
+ /* Query timers: */
+ extern ktime_t __hrtimer_get_remaining(const struct hrtimer *timer, bool adjust);
+
+@@ -481,7 +474,7 @@ static inline bool hrtimer_is_queued(struct hrtimer *timer)
+ * Helper function to check, whether the timer is running the callback
+ * function
+ */
+-static inline int hrtimer_callback_running(const struct hrtimer *timer)
++static inline int hrtimer_callback_running(struct hrtimer *timer)
+ {
+ return timer->base->running == timer;
+ }
+diff --git a/include/linux/posix-timers.h b/include/linux/posix-timers.h
+index 0571b498db73..3e6c91bdf2ef 100644
+--- a/include/linux/posix-timers.h
++++ b/include/linux/posix-timers.h
+@@ -15,6 +15,7 @@ struct cpu_timer_list {
+ u64 expires, incr;
+ struct task_struct *task;
+ int firing;
++ int firing_cpu;
+ };
+
+ /*
+diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c
+index f4c8cfde00b0..e7b983df6996 100644
+--- a/kernel/time/alarmtimer.c
++++ b/kernel/time/alarmtimer.c
+@@ -438,7 +438,7 @@ int alarm_cancel(struct alarm *alarm)
+ int ret = alarm_try_to_cancel(alarm);
+ if (ret >= 0)
+ return ret;
+- hrtimer_wait_for_timer(&alarm->timer);
++ hrtimer_grab_expiry_lock(&alarm->timer);
+ }
+ }
+ EXPORT_SYMBOL_GPL(alarm_cancel);
+diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
+index aa8f3177580a..bbc408f24f5d 100644
+--- a/kernel/time/hrtimer.c
++++ b/kernel/time/hrtimer.c
+@@ -981,33 +981,16 @@ u64 hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval)
+ }
+ EXPORT_SYMBOL_GPL(hrtimer_forward);
+
+-#ifdef CONFIG_PREEMPT_RT_BASE
+-# define wake_up_timer_waiters(b) wake_up(&(b)->wait)
+-
+-/**
+- * hrtimer_wait_for_timer - Wait for a running timer
+- *
+- * @timer: timer to wait for
+- *
+- * The function waits in case the timers callback function is
+- * currently executed on the waitqueue of the timer base. The
+- * waitqueue is woken up after the timer callback function has
+- * finished execution.
+- */
+-void hrtimer_wait_for_timer(const struct hrtimer *timer)
++void hrtimer_grab_expiry_lock(const struct hrtimer *timer)
+ {
+ struct hrtimer_clock_base *base = timer->base;
+
+- if (base && base->cpu_base &&
+- base->index >= HRTIMER_BASE_MONOTONIC_SOFT)
+- wait_event(base->cpu_base->wait,
+- !(hrtimer_callback_running(timer)));
++ if (base && base->cpu_base) {
++ spin_lock(&base->cpu_base->softirq_expiry_lock);
++ spin_unlock(&base->cpu_base->softirq_expiry_lock);
++ }
+ }
+
+-#else
+-# define wake_up_timer_waiters(b) do { } while (0)
+-#endif
+-
+ /*
+ * enqueue_hrtimer - internal function to (re)start a timer
+ *
+@@ -1291,7 +1274,7 @@ int hrtimer_cancel(struct hrtimer *timer)
+
+ if (ret >= 0)
+ return ret;
+- hrtimer_wait_for_timer(timer);
++ hrtimer_grab_expiry_lock(timer);
+ }
+ }
+ EXPORT_SYMBOL_GPL(hrtimer_cancel);
+@@ -1595,6 +1578,7 @@ static __latent_entropy void hrtimer_run_softirq(struct softirq_action *h)
+ unsigned long flags;
+ ktime_t now;
+
++ spin_lock(&cpu_base->softirq_expiry_lock);
+ raw_spin_lock_irqsave(&cpu_base->lock, flags);
+
+ now = hrtimer_update_base(cpu_base);
+@@ -1604,7 +1588,7 @@ static __latent_entropy void hrtimer_run_softirq(struct softirq_action *h)
+ hrtimer_update_softirq_timer(cpu_base, true);
+
+ raw_spin_unlock_irqrestore(&cpu_base->lock, flags);
+- wake_up_timer_waiters(cpu_base);
++ spin_unlock(&cpu_base->softirq_expiry_lock);
+ }
+
+ #ifdef CONFIG_HIGH_RES_TIMERS
+@@ -2014,9 +1998,7 @@ int hrtimers_prepare_cpu(unsigned int cpu)
+ cpu_base->softirq_next_timer = NULL;
+ cpu_base->expires_next = KTIME_MAX;
+ cpu_base->softirq_expires_next = KTIME_MAX;
+-#ifdef CONFIG_PREEMPT_RT_BASE
+- init_waitqueue_head(&cpu_base->wait);
+-#endif
++ spin_lock_init(&cpu_base->softirq_expiry_lock);
+ return 0;
+ }
+
+diff --git a/kernel/time/itimer.c b/kernel/time/itimer.c
+index 7650ee736964..48d977f947d9 100644
+--- a/kernel/time/itimer.c
++++ b/kernel/time/itimer.c
+@@ -211,7 +211,7 @@ int do_setitimer(int which, struct itimerval *value, struct itimerval *ovalue)
+ /* We are sharing ->siglock with it_real_fn() */
+ if (hrtimer_try_to_cancel(timer) < 0) {
+ spin_unlock_irq(&tsk->sighand->siglock);
+- hrtimer_wait_for_timer(&tsk->signal->real_timer);
++ hrtimer_grab_expiry_lock(timer);
+ goto again;
+ }
+ expires = timeval_to_ktime(value->it_value);
+diff --git a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c
+index 2d29b269dc83..54632ed51c65 100644
+--- a/kernel/time/posix-cpu-timers.c
++++ b/kernel/time/posix-cpu-timers.c
+@@ -792,6 +792,7 @@ check_timers_list(struct list_head *timers,
+ return t->expires;
+
+ t->firing = 1;
++ t->firing_cpu = smp_processor_id();
+ list_move_tail(&t->entry, firing);
+ }
+
+@@ -1138,6 +1139,20 @@ static inline int fastpath_timer_check(struct task_struct *tsk)
+ return 0;
+ }
+
++static DEFINE_PER_CPU(spinlock_t, cpu_timer_expiry_lock) = __SPIN_LOCK_UNLOCKED(cpu_timer_expiry_lock);
++
++void cpu_timers_grab_expiry_lock(struct k_itimer *timer)
++{
++ int cpu = timer->it.cpu.firing_cpu;
++
++ if (cpu >= 0) {
++ spinlock_t *expiry_lock = per_cpu_ptr(&cpu_timer_expiry_lock, cpu);
++
++ spin_lock_irq(expiry_lock);
++ spin_unlock_irq(expiry_lock);
++ }
++}
++
+ /*
+ * This is called from the timer interrupt handler. The irq handler has
+ * already updated our counts. We need to check if any timers fire now.
+@@ -1148,6 +1163,7 @@ static void __run_posix_cpu_timers(struct task_struct *tsk)
+ LIST_HEAD(firing);
+ struct k_itimer *timer, *next;
+ unsigned long flags;
++ spinlock_t *expiry_lock;
+
+ /*
+ * The fast path checks that there are no expired thread or thread
+@@ -1156,6 +1172,9 @@ static void __run_posix_cpu_timers(struct task_struct *tsk)
+ if (!fastpath_timer_check(tsk))
+ return;
+
++ expiry_lock = this_cpu_ptr(&cpu_timer_expiry_lock);
++ spin_lock(expiry_lock);
++
+ if (!lock_task_sighand(tsk, &flags))
+ return;
+ /*
+@@ -1190,6 +1209,7 @@ static void __run_posix_cpu_timers(struct task_struct *tsk)
+ list_del_init(&timer->it.cpu.entry);
+ cpu_firing = timer->it.cpu.firing;
+ timer->it.cpu.firing = 0;
++ timer->it.cpu.firing_cpu = -1;
+ /*
+ * The firing flag is -1 if we collided with a reset
+ * of the timer, which already reported this
+@@ -1199,6 +1219,7 @@ static void __run_posix_cpu_timers(struct task_struct *tsk)
+ cpu_timer_fire(timer);
+ spin_unlock(&timer->it_lock);
+ }
++ spin_unlock(expiry_lock);
+ }
+
+ #ifdef CONFIG_PREEMPT_RT_BASE
+@@ -1466,6 +1487,8 @@ static int do_cpu_nanosleep(const clockid_t which_clock, int flags,
+ spin_unlock_irq(&timer.it_lock);
+
+ while (error == TIMER_RETRY) {
++
++ cpu_timers_grab_expiry_lock(&timer);
+ /*
+ * We need to handle case when timer was or is in the
+ * middle of firing. In other cases we already freed
+diff --git a/kernel/time/posix-timers.c b/kernel/time/posix-timers.c
+index 2cf5aa704106..3fd433d2a767 100644
+--- a/kernel/time/posix-timers.c
++++ b/kernel/time/posix-timers.c
+@@ -821,25 +821,20 @@ static void common_hrtimer_arm(struct k_itimer *timr, ktime_t expires,
+ hrtimer_start_expires(timer, HRTIMER_MODE_ABS);
+ }
+
+-/*
+- * Protected by RCU!
+- */
+-static void timer_wait_for_callback(const struct k_clock *kc, struct k_itimer *timr)
++static int common_hrtimer_try_to_cancel(struct k_itimer *timr)
+ {
+-#ifdef CONFIG_PREEMPT_RT_FULL
+- if (kc->timer_arm == common_hrtimer_arm)
+- hrtimer_wait_for_timer(&timr->it.real.timer);
+- else if (kc == &alarm_clock)
+- hrtimer_wait_for_timer(&timr->it.alarm.alarmtimer.timer);
+- else
+- /* FIXME: Whacky hack for posix-cpu-timers */
+- schedule_timeout(1);
+-#endif
++ return hrtimer_try_to_cancel(&timr->it.real.timer);
+ }
+
+-static int common_hrtimer_try_to_cancel(struct k_itimer *timr)
++static void timer_wait_for_callback(const struct k_clock *kc, struct k_itimer *timer)
+ {
+- return hrtimer_try_to_cancel(&timr->it.real.timer);
++ if (kc->timer_arm == common_hrtimer_arm)
++ hrtimer_grab_expiry_lock(&timer->it.real.timer);
++ else if (kc == &alarm_clock)
++ hrtimer_grab_expiry_lock(&timer->it.alarm.alarmtimer.timer);
++ else
++ /* posix-cpu-timers */
++ cpu_timers_grab_expiry_lock(timer);
+ }
+
+ /* Set a POSIX.1b interval timer. */
+@@ -901,21 +896,21 @@ static int do_timer_settime(timer_t timer_id, int flags,
+ if (!timr)
+ return -EINVAL;
+
+- rcu_read_lock();
+ kc = timr->kclock;
+ if (WARN_ON_ONCE(!kc || !kc->timer_set))
+ error = -EINVAL;
+ else
+ error = kc->timer_set(timr, flags, new_spec64, old_spec64);
+
+- unlock_timer(timr, flag);
+ if (error == TIMER_RETRY) {
++ rcu_read_lock();
++ unlock_timer(timr, flag);
+ timer_wait_for_callback(kc, timr);
+- old_spec64 = NULL; // We already got the old time...
+ rcu_read_unlock();
++ old_spec64 = NULL; // We already got the old time...
+ goto retry;
+ }
+- rcu_read_unlock();
++ unlock_timer(timr, flag);
+
+ return error;
+ }
+@@ -977,13 +972,21 @@ int common_timer_del(struct k_itimer *timer)
+ return 0;
+ }
+
+-static inline int timer_delete_hook(struct k_itimer *timer)
++static int timer_delete_hook(struct k_itimer *timer)
+ {
+ const struct k_clock *kc = timer->kclock;
++ int ret;
+
+ if (WARN_ON_ONCE(!kc || !kc->timer_del))
+ return -EINVAL;
+- return kc->timer_del(timer);
++ ret = kc->timer_del(timer);
++ if (ret == TIMER_RETRY) {
++ rcu_read_lock();
++ spin_unlock_irq(&timer->it_lock);
++ timer_wait_for_callback(kc, timer);
++ rcu_read_unlock();
++ }
++ return ret;
+ }
+
+ /* Delete a POSIX.1b interval timer. */
+@@ -997,15 +1000,8 @@ SYSCALL_DEFINE1(timer_delete, timer_t, timer_id)
+ if (!timer)
+ return -EINVAL;
+
+- rcu_read_lock();
+- if (timer_delete_hook(timer) == TIMER_RETRY) {
+- unlock_timer(timer, flags);
+- timer_wait_for_callback(clockid_to_kclock(timer->it_clock),
+- timer);
+- rcu_read_unlock();
++ if (timer_delete_hook(timer) == TIMER_RETRY)
+ goto retry_delete;
+- }
+- rcu_read_unlock();
+
+ spin_lock(&current->sighand->siglock);
+ list_del(&timer->list);
+@@ -1031,20 +1027,9 @@ static void itimer_delete(struct k_itimer *timer)
+ retry_delete:
+ spin_lock_irqsave(&timer->it_lock, flags);
+
+- /* On RT we can race with a deletion */
+- if (!timer->it_signal) {
+- unlock_timer(timer, flags);
+- return;
+- }
+-
+- if (timer_delete_hook(timer) == TIMER_RETRY) {
+- rcu_read_lock();
+- unlock_timer(timer, flags);
+- timer_wait_for_callback(clockid_to_kclock(timer->it_clock),
+- timer);
+- rcu_read_unlock();
++ if (timer_delete_hook(timer) == TIMER_RETRY)
+ goto retry_delete;
+- }
++
+ list_del(&timer->list);
+ /*
+ * This keeps any tasks waiting on the spin lock from thinking
+diff --git a/kernel/time/posix-timers.h b/kernel/time/posix-timers.h
+index ddb21145211a..725bd230a8db 100644
+--- a/kernel/time/posix-timers.h
++++ b/kernel/time/posix-timers.h
+@@ -32,6 +32,8 @@ extern const struct k_clock clock_process;
+ extern const struct k_clock clock_thread;
+ extern const struct k_clock alarm_clock;
+
++extern void cpu_timers_grab_expiry_lock(struct k_itimer *timer);
++
+ int posix_timer_event(struct k_itimer *timr, int si_private);
+
+ void common_timer_get(struct k_itimer *timr, struct itimerspec64 *cur_setting);
+diff --git a/kernel/time/timer.c b/kernel/time/timer.c
+index c7bd68db6f63..a2be2277506d 100644
+--- a/kernel/time/timer.c
++++ b/kernel/time/timer.c
+@@ -45,7 +45,6 @@
+ #include <linux/slab.h>
+ #include <linux/compat.h>
+ #include <linux/random.h>
+-#include <linux/swait.h>
+
+ #include <linux/uaccess.h>
+ #include <asm/unistd.h>
+@@ -199,9 +198,7 @@ EXPORT_SYMBOL(jiffies_64);
+ struct timer_base {
+ raw_spinlock_t lock;
+ struct timer_list *running_timer;
+-#ifdef CONFIG_PREEMPT_RT_FULL
+- struct swait_queue_head wait_for_running_timer;
+-#endif
++ spinlock_t expiry_lock;
+ unsigned long clk;
+ unsigned long next_expiry;
+ unsigned int cpu;
+@@ -1201,33 +1198,6 @@ void add_timer_on(struct timer_list *timer, int cpu)
+ }
+ EXPORT_SYMBOL_GPL(add_timer_on);
+
+-#ifdef CONFIG_PREEMPT_RT_FULL
+-/*
+- * Wait for a running timer
+- */
+-static void wait_for_running_timer(struct timer_list *timer)
+-{
+- struct timer_base *base;
+- u32 tf = timer->flags;
+-
+- if (tf & TIMER_MIGRATING)
+- return;
+-
+- base = get_timer_base(tf);
+- swait_event_exclusive(base->wait_for_running_timer,
+- base->running_timer != timer);
+-}
+-
+-# define wakeup_timer_waiters(b) swake_up_all(&(b)->wait_for_running_timer)
+-#else
+-static inline void wait_for_running_timer(struct timer_list *timer)
+-{
+- cpu_relax();
+-}
+-
+-# define wakeup_timer_waiters(b) do { } while (0)
+-#endif
+-
+ /**
+ * del_timer - deactivate a timer.
+ * @timer: the timer to be deactivated
+@@ -1257,14 +1227,8 @@ int del_timer(struct timer_list *timer)
+ }
+ EXPORT_SYMBOL(del_timer);
+
+-/**
+- * try_to_del_timer_sync - Try to deactivate a timer
+- * @timer: timer to delete
+- *
+- * 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.
+- */
+-int try_to_del_timer_sync(struct timer_list *timer)
++static int __try_to_del_timer_sync(struct timer_list *timer,
++ struct timer_base **basep)
+ {
+ struct timer_base *base;
+ unsigned long flags;
+@@ -1272,7 +1236,7 @@ int try_to_del_timer_sync(struct timer_list *timer)
+
+ debug_assert_init(timer);
+
+- base = lock_timer_base(timer, &flags);
++ *basep = base = lock_timer_base(timer, &flags);
+
+ if (base->running_timer != timer)
+ ret = detach_if_pending(timer, base, true);
+@@ -1281,9 +1245,42 @@ int try_to_del_timer_sync(struct timer_list *timer)
+
+ return ret;
+ }
++
++/**
++ * try_to_del_timer_sync - Try to deactivate a timer
++ * @timer: timer to delete
++ *
++ * 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.
++ */
++int try_to_del_timer_sync(struct timer_list *timer)
++{
++ struct timer_base *base;
++
++ return __try_to_del_timer_sync(timer, &base);
++}
+ EXPORT_SYMBOL(try_to_del_timer_sync);
+
+ #if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT_FULL)
++static int __del_timer_sync(struct timer_list *timer)
++{
++ struct timer_base *base;
++ int ret;
++
++ for (;;) {
++ ret = __try_to_del_timer_sync(timer, &base);
++ if (ret >= 0)
++ return ret;
++
++ /*
++ * When accessing the lock, timers of base are no longer expired
++ * and so timer is no longer running.
++ */
++ spin_lock(&base->expiry_lock);
++ spin_unlock(&base->expiry_lock);
++ }
++}
++
+ /**
+ * del_timer_sync - deactivate a timer and wait for the handler to finish.
+ * @timer: the timer to be deactivated
+@@ -1339,12 +1336,8 @@ int del_timer_sync(struct timer_list *timer)
+ * could lead to deadlock.
+ */
+ WARN_ON(in_irq() && !(timer->flags & TIMER_IRQSAFE));
+- for (;;) {
+- int ret = try_to_del_timer_sync(timer);
+- if (ret >= 0)
+- return ret;
+- wait_for_running_timer(timer);
+- }
++
++ return __del_timer_sync(timer);
+ }
+ EXPORT_SYMBOL(del_timer_sync);
+ #endif
+@@ -1409,11 +1402,15 @@ static void expire_timers(struct timer_base *base, struct hlist_head *head)
+ raw_spin_unlock(&base->lock);
+ call_timer_fn(timer, fn);
+ base->running_timer = NULL;
++ spin_unlock(&base->expiry_lock);
++ spin_lock(&base->expiry_lock);
+ raw_spin_lock(&base->lock);
+ } else {
+ raw_spin_unlock_irq(&base->lock);
+ call_timer_fn(timer, fn);
+ base->running_timer = NULL;
++ spin_unlock(&base->expiry_lock);
++ spin_lock(&base->expiry_lock);
+ raw_spin_lock_irq(&base->lock);
+ }
+ }
+@@ -1710,6 +1707,7 @@ static inline void __run_timers(struct timer_base *base)
+ if (!time_after_eq(jiffies, base->clk))
+ return;
+
++ spin_lock(&base->expiry_lock);
+ raw_spin_lock_irq(&base->lock);
+
+ /*
+@@ -1737,7 +1735,7 @@ static inline void __run_timers(struct timer_base *base)
+ expire_timers(base, heads + levels);
+ }
+ raw_spin_unlock_irq(&base->lock);
+- wakeup_timer_waiters(base);
++ spin_unlock(&base->expiry_lock);
+ }
+
+ /*
+@@ -1984,9 +1982,7 @@ static void __init init_timer_cpu(int cpu)
+ base->cpu = cpu;
+ raw_spin_lock_init(&base->lock);
+ base->clk = jiffies;
+-#ifdef CONFIG_PREEMPT_RT_FULL
+- init_swait_queue_head(&base->wait_for_running_timer);
+-#endif
++ spin_lock_init(&base->expiry_lock);
+ }
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0272-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch b/debian/patches-rt/0272-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch
new file mode 100644
index 000000000..82f8bb5db
--- /dev/null
+++ b/debian/patches-rt/0272-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch
@@ -0,0 +1,35 @@
+From 32f4aadb8254fd22b687cf1631c4859a2bf1b6bc Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 26 Jun 2019 17:44:13 +0200
+Subject: [PATCH 272/347] Revert "futex: Ensure lock/unlock symetry versus
+ pi_lock and hash bucket lock"
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 6a773b70cf105b46298ed3b44e77c102ce31d9ec ]
+
+Drop the RT fixup, the futex code will be changed to avoid the need for
+the workaround.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/futex.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/kernel/futex.c b/kernel/futex.c
+index a5a263a3efbf..3449a716a378 100644
+--- a/kernel/futex.c
++++ b/kernel/futex.c
+@@ -962,9 +962,7 @@ static void exit_pi_state_list(struct task_struct *curr)
+ if (head->next != next) {
+ /* retain curr->pi_lock for the loop invariant */
+ raw_spin_unlock(&pi_state->pi_mutex.wait_lock);
+- raw_spin_unlock_irq(&curr->pi_lock);
+ spin_unlock(&hb->lock);
+- raw_spin_lock_irq(&curr->pi_lock);
+ put_pi_state(pi_state);
+ continue;
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0273-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch b/debian/patches-rt/0273-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch
new file mode 100644
index 000000000..8b7b98e81
--- /dev/null
+++ b/debian/patches-rt/0273-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch
@@ -0,0 +1,83 @@
+From 808788c03b3c849951c646819ad23ff2efaf78a9 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 26 Jun 2019 17:44:18 +0200
+Subject: [PATCH 273/347] Revert "futex: Fix bug on when a requeued RT task
+ times out"
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit f1a170cb3289a48df26cae3c60d77608f7a988bb ]
+
+Drop the RT fixup, the futex code will be changed to avoid the need for
+the workaround.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/locking/rtmutex.c | 31 +------------------------------
+ kernel/locking/rtmutex_common.h | 1 -
+ 2 files changed, 1 insertion(+), 31 deletions(-)
+
+diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
+index ded2296f848a..a87b65447991 100644
+--- a/kernel/locking/rtmutex.c
++++ b/kernel/locking/rtmutex.c
+@@ -144,8 +144,7 @@ static void fixup_rt_mutex_waiters(struct rt_mutex *lock)
+
+ static int rt_mutex_real_waiter(struct rt_mutex_waiter *waiter)
+ {
+- return waiter && waiter != PI_WAKEUP_INPROGRESS &&
+- waiter != PI_REQUEUE_INPROGRESS;
++ return waiter && waiter != PI_WAKEUP_INPROGRESS;
+ }
+
+ /*
+@@ -2349,34 +2348,6 @@ int __rt_mutex_start_proxy_lock(struct rt_mutex *lock,
+ if (try_to_take_rt_mutex(lock, task, NULL))
+ return 1;
+
+-#ifdef CONFIG_PREEMPT_RT_FULL
+- /*
+- * In PREEMPT_RT there's an added race.
+- * If the task, that we are about to requeue, times out,
+- * it can set the PI_WAKEUP_INPROGRESS. This tells the requeue
+- * to skip this task. But right after the task sets
+- * its pi_blocked_on to PI_WAKEUP_INPROGRESS it can then
+- * block on the spin_lock(&hb->lock), which in RT is an rtmutex.
+- * This will replace the PI_WAKEUP_INPROGRESS with the actual
+- * lock that it blocks on. We *must not* place this task
+- * on this proxy lock in that case.
+- *
+- * To prevent this race, we first take the task's pi_lock
+- * and check if it has updated its pi_blocked_on. If it has,
+- * we assume that it woke up and we return -EAGAIN.
+- * Otherwise, we set the task's pi_blocked_on to
+- * PI_REQUEUE_INPROGRESS, so that if the task is waking up
+- * it will know that we are in the process of requeuing it.
+- */
+- raw_spin_lock(&task->pi_lock);
+- if (task->pi_blocked_on) {
+- raw_spin_unlock(&task->pi_lock);
+- return -EAGAIN;
+- }
+- task->pi_blocked_on = PI_REQUEUE_INPROGRESS;
+- raw_spin_unlock(&task->pi_lock);
+-#endif
+-
+ /* We enforce deadlock detection for futexes */
+ 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 8e0c592273e6..627340e7427e 100644
+--- a/kernel/locking/rtmutex_common.h
++++ b/kernel/locking/rtmutex_common.h
+@@ -133,7 +133,6 @@ enum rtmutex_chainwalk {
+ * PI-futex support (proxy locking functions, etc.):
+ */
+ #define PI_WAKEUP_INPROGRESS ((struct rt_mutex_waiter *) 1)
+-#define PI_REQUEUE_INPROGRESS ((struct rt_mutex_waiter *) 2)
+
+ extern struct task_struct *rt_mutex_next_owner(struct rt_mutex *lock);
+ extern void rt_mutex_init_proxy_locked(struct rt_mutex *lock,
+--
+2.36.1
+
diff --git a/debian/patches-rt/0274-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch b/debian/patches-rt/0274-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch
new file mode 100644
index 000000000..f8fd52438
--- /dev/null
+++ b/debian/patches-rt/0274-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch
@@ -0,0 +1,249 @@
+From 206aee0eb3ade56ba7f62d90334791f6808738dc Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 26 Jun 2019 17:44:21 +0200
+Subject: [PATCH 274/347] Revert "rtmutex: Handle the various new futex race
+ conditions"
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 9e0265c21af4d6388d47dcd5ce20f76ec3a2e468 ]
+
+Drop the RT fixup, the futex code will be changed to avoid the need for
+the workaround.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/futex.c | 75 ++++++---------------------------
+ kernel/locking/rtmutex.c | 36 +++-------------
+ kernel/locking/rtmutex_common.h | 2 -
+ 3 files changed, 20 insertions(+), 93 deletions(-)
+
+diff --git a/kernel/futex.c b/kernel/futex.c
+index 3449a716a378..bcd01b5a47df 100644
+--- a/kernel/futex.c
++++ b/kernel/futex.c
+@@ -2255,16 +2255,6 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
+ requeue_pi_wake_futex(this, &key2, hb2);
+ drop_count++;
+ continue;
+- } else if (ret == -EAGAIN) {
+- /*
+- * Waiter was woken by timeout or
+- * signal and has set pi_blocked_on to
+- * PI_WAKEUP_INPROGRESS before we
+- * tried to enqueue it on the rtmutex.
+- */
+- this->pi_state = NULL;
+- put_pi_state(pi_state);
+- continue;
+ } else if (ret) {
+ /*
+ * rt_mutex_start_proxy_lock() detected a
+@@ -3343,7 +3333,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+ {
+ struct hrtimer_sleeper timeout, *to = NULL;
+ struct rt_mutex_waiter rt_waiter;
+- struct futex_hash_bucket *hb, *hb2;
++ struct futex_hash_bucket *hb;
+ union futex_key key2 = FUTEX_KEY_INIT;
+ struct futex_q q = futex_q_init;
+ int res, ret;
+@@ -3401,55 +3391,20 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+ /* Queue the futex_q, drop the hb lock, wait for wakeup. */
+ futex_wait_queue_me(hb, &q, to);
+
+- /*
+- * On RT we must avoid races with requeue and trying to block
+- * on two mutexes (hb->lock and uaddr2's rtmutex) by
+- * serializing access to pi_blocked_on with pi_lock.
+- */
+- raw_spin_lock_irq(&current->pi_lock);
+- if (current->pi_blocked_on) {
+- /*
+- * We have been requeued or are in the process of
+- * being requeued.
+- */
+- raw_spin_unlock_irq(&current->pi_lock);
+- } else {
+- /*
+- * Setting pi_blocked_on to PI_WAKEUP_INPROGRESS
+- * prevents a concurrent requeue from moving us to the
+- * uaddr2 rtmutex. After that we can safely acquire
+- * (and possibly block on) hb->lock.
+- */
+- current->pi_blocked_on = PI_WAKEUP_INPROGRESS;
+- raw_spin_unlock_irq(&current->pi_lock);
+-
+- spin_lock(&hb->lock);
+-
+- /*
+- * Clean up pi_blocked_on. We might leak it otherwise
+- * when we succeeded with the hb->lock in the fast
+- * path.
+- */
+- raw_spin_lock_irq(&current->pi_lock);
+- current->pi_blocked_on = NULL;
+- raw_spin_unlock_irq(&current->pi_lock);
+-
+- ret = handle_early_requeue_pi_wakeup(hb, &q, &key2, to);
+- spin_unlock(&hb->lock);
+- if (ret)
+- goto out_put_keys;
+- }
++ spin_lock(&hb->lock);
++ ret = handle_early_requeue_pi_wakeup(hb, &q, &key2, to);
++ spin_unlock(&hb->lock);
++ if (ret)
++ goto out_put_keys;
+
+ /*
+- * In order to be here, we have either been requeued, are in
+- * the process of being requeued, or requeue successfully
+- * acquired uaddr2 on our behalf. If pi_blocked_on was
+- * non-null above, we may be racing with a requeue. Do not
+- * rely on q->lock_ptr to be hb2->lock until after blocking on
+- * hb->lock or hb2->lock. The futex_requeue dropped our key1
+- * reference and incremented our key2 reference count.
++ * In order for us to be here, we know our q.key == key2, and since
++ * we took the hb->lock above, we also know that futex_requeue() has
++ * completed and we no longer have to concern ourselves with a wakeup
++ * race with the atomic proxy lock acquisition by the requeue code. The
++ * futex_requeue dropped our key1 reference and incremented our key2
++ * reference count.
+ */
+- hb2 = hash_futex(&key2);
+
+ /* Check if the requeue code acquired the second futex for us. */
+ if (!q.rt_waiter) {
+@@ -3458,8 +3413,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+ * did a lock-steal - fix up the PI-state in that case.
+ */
+ if (q.pi_state && (q.pi_state->owner != current)) {
+- spin_lock(&hb2->lock);
+- BUG_ON(&hb2->lock != q.lock_ptr);
++ spin_lock(q.lock_ptr);
+ ret = fixup_pi_state_owner(uaddr2, &q, current);
+ /*
+ * Drop the reference to the pi state which
+@@ -3485,8 +3439,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+ pi_mutex = &q.pi_state->pi_mutex;
+ ret = rt_mutex_wait_proxy_lock(pi_mutex, to, &rt_waiter);
+
+- spin_lock(&hb2->lock);
+- BUG_ON(&hb2->lock != q.lock_ptr);
++ spin_lock(q.lock_ptr);
+ if (ret && !rt_mutex_cleanup_proxy_lock(pi_mutex, &rt_waiter))
+ ret = 0;
+
+diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
+index a87b65447991..05fcf8a75a51 100644
+--- a/kernel/locking/rtmutex.c
++++ b/kernel/locking/rtmutex.c
+@@ -142,11 +142,6 @@ static void fixup_rt_mutex_waiters(struct rt_mutex *lock)
+ WRITE_ONCE(*p, owner & ~RT_MUTEX_HAS_WAITERS);
+ }
+
+-static int rt_mutex_real_waiter(struct rt_mutex_waiter *waiter)
+-{
+- return waiter && waiter != PI_WAKEUP_INPROGRESS;
+-}
+-
+ /*
+ * We can speed up the acquire/release, if there's no debugging state to be
+ * set up.
+@@ -420,8 +415,7 @@ int max_lock_depth = 1024;
+
+ static inline struct rt_mutex *task_blocked_on_lock(struct task_struct *p)
+ {
+- return rt_mutex_real_waiter(p->pi_blocked_on) ?
+- p->pi_blocked_on->lock : NULL;
++ return p->pi_blocked_on ? p->pi_blocked_on->lock : NULL;
+ }
+
+ /*
+@@ -557,7 +551,7 @@ static int rt_mutex_adjust_prio_chain(struct task_struct *task,
+ * reached or the state of the chain has changed while we
+ * dropped the locks.
+ */
+- if (!rt_mutex_real_waiter(waiter))
++ if (!waiter)
+ goto out_unlock_pi;
+
+ /*
+@@ -1327,22 +1321,6 @@ static int task_blocks_on_rt_mutex(struct rt_mutex *lock,
+ return -EDEADLK;
+
+ raw_spin_lock(&task->pi_lock);
+- /*
+- * In the case of futex requeue PI, this will be a proxy
+- * lock. The task will wake unaware that it is enqueueed on
+- * this lock. Avoid blocking on two locks and corrupting
+- * pi_blocked_on via the PI_WAKEUP_INPROGRESS
+- * flag. futex_wait_requeue_pi() sets this when it wakes up
+- * before requeue (due to a signal or timeout). Do not enqueue
+- * the task if PI_WAKEUP_INPROGRESS is set.
+- */
+- if (task != current && task->pi_blocked_on == PI_WAKEUP_INPROGRESS) {
+- raw_spin_unlock(&task->pi_lock);
+- return -EAGAIN;
+- }
+-
+- BUG_ON(rt_mutex_real_waiter(task->pi_blocked_on));
+-
+ waiter->task = task;
+ waiter->lock = lock;
+ waiter->prio = task->prio;
+@@ -1366,7 +1344,7 @@ static int task_blocks_on_rt_mutex(struct rt_mutex *lock,
+ rt_mutex_enqueue_pi(owner, waiter);
+
+ rt_mutex_adjust_prio(owner);
+- if (rt_mutex_real_waiter(owner->pi_blocked_on))
++ if (owner->pi_blocked_on)
+ chain_walk = 1;
+ } else if (rt_mutex_cond_detect_deadlock(waiter, chwalk)) {
+ chain_walk = 1;
+@@ -1466,7 +1444,7 @@ static void remove_waiter(struct rt_mutex *lock,
+ {
+ bool is_top_waiter = (waiter == rt_mutex_top_waiter(lock));
+ struct task_struct *owner = rt_mutex_owner(lock);
+- struct rt_mutex *next_lock = NULL;
++ struct rt_mutex *next_lock;
+
+ lockdep_assert_held(&lock->wait_lock);
+
+@@ -1492,8 +1470,7 @@ static void remove_waiter(struct rt_mutex *lock,
+ rt_mutex_adjust_prio(owner);
+
+ /* Store the lock on which owner is blocked or NULL */
+- if (rt_mutex_real_waiter(owner->pi_blocked_on))
+- next_lock = task_blocked_on_lock(owner);
++ next_lock = task_blocked_on_lock(owner);
+
+ raw_spin_unlock(&owner->pi_lock);
+
+@@ -1529,8 +1506,7 @@ void rt_mutex_adjust_pi(struct task_struct *task)
+ raw_spin_lock_irqsave(&task->pi_lock, flags);
+
+ waiter = task->pi_blocked_on;
+- if (!rt_mutex_real_waiter(waiter) ||
+- rt_mutex_waiter_equal(waiter, task_to_waiter(task))) {
++ if (!waiter || rt_mutex_waiter_equal(waiter, task_to_waiter(task))) {
+ raw_spin_unlock_irqrestore(&task->pi_lock, flags);
+ return;
+ }
+diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h
+index 627340e7427e..f587e0422d23 100644
+--- a/kernel/locking/rtmutex_common.h
++++ b/kernel/locking/rtmutex_common.h
+@@ -132,8 +132,6 @@ enum rtmutex_chainwalk {
+ /*
+ * PI-futex support (proxy locking functions, etc.):
+ */
+-#define PI_WAKEUP_INPROGRESS ((struct rt_mutex_waiter *) 1)
+-
+ extern struct task_struct *rt_mutex_next_owner(struct rt_mutex *lock);
+ extern void rt_mutex_init_proxy_locked(struct rt_mutex *lock,
+ struct task_struct *proxy_owner);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0275-Revert-futex-workaround-migrate_disable-enable-in-di.patch b/debian/patches-rt/0275-Revert-futex-workaround-migrate_disable-enable-in-di.patch
new file mode 100644
index 000000000..6d5ad8916
--- /dev/null
+++ b/debian/patches-rt/0275-Revert-futex-workaround-migrate_disable-enable-in-di.patch
@@ -0,0 +1,70 @@
+From 42f821c624f6605415eed76cbf5ece8a41b47ddf Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 26 Jun 2019 17:44:27 +0200
+Subject: [PATCH 275/347] Revert "futex: workaround migrate_disable/enable in
+ different context"
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit a71221d81cc4873891ae44f3aa02df596079b786 ]
+
+Drop the RT fixup, the futex code will be changed to avoid the need for
+the workaround.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/futex.c | 19 -------------------
+ 1 file changed, 19 deletions(-)
+
+diff --git a/kernel/futex.c b/kernel/futex.c
+index bcd01b5a47df..9bcfdcffb2dd 100644
+--- a/kernel/futex.c
++++ b/kernel/futex.c
+@@ -2998,14 +2998,6 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
+ * before __rt_mutex_start_proxy_lock() is done.
+ */
+ raw_spin_lock_irq(&q.pi_state->pi_mutex.wait_lock);
+- /*
+- * the migrate_disable() here disables migration in the in_atomic() fast
+- * path which is enabled again in the following spin_unlock(). We have
+- * one migrate_disable() pending in the slow-path which is reversed
+- * after the raw_spin_unlock_irq() where we leave the atomic context.
+- */
+- migrate_disable();
+-
+ spin_unlock(q.lock_ptr);
+ /*
+ * __rt_mutex_start_proxy_lock() unconditionally enqueues the @rt_waiter
+@@ -3014,7 +3006,6 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
+ */
+ ret = __rt_mutex_start_proxy_lock(&q.pi_state->pi_mutex, &rt_waiter, current);
+ raw_spin_unlock_irq(&q.pi_state->pi_mutex.wait_lock);
+- migrate_enable();
+
+ if (ret) {
+ if (ret == 1)
+@@ -3149,21 +3140,11 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags)
+ * rt_waiter. Also see the WARN in wake_futex_pi().
+ */
+ raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock);
+- /*
+- * Magic trickery for now to make the RT migrate disable
+- * logic happy. The following spin_unlock() happens with
+- * interrupts disabled so the internal migrate_enable()
+- * won't undo the migrate_disable() which was issued when
+- * locking hb->lock.
+- */
+- migrate_disable();
+ spin_unlock(&hb->lock);
+
+ /* drops pi_state->pi_mutex.wait_lock */
+ ret = wake_futex_pi(uaddr, uval, pi_state);
+
+- migrate_enable();
+-
+ put_pi_state(pi_state);
+
+ /*
+--
+2.36.1
+
diff --git a/debian/patches-rt/0276-futex-Make-the-futex_hash_bucket-lock-raw.patch b/debian/patches-rt/0276-futex-Make-the-futex_hash_bucket-lock-raw.patch
new file mode 100644
index 000000000..da5c08609
--- /dev/null
+++ b/debian/patches-rt/0276-futex-Make-the-futex_hash_bucket-lock-raw.patch
@@ -0,0 +1,340 @@
+From 07c4f7b101fb3ad4704efeda1f43246b289b62ad Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 26 Jun 2019 11:59:44 +0200
+Subject: [PATCH 276/347] futex: Make the futex_hash_bucket lock raw
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit f646521aadedab78801c9befe193e2e8a0c99298 ]
+
+Since commit 1a1fb985f2e2b ("futex: Handle early deadlock return
+correctly") we can deadlock while we attempt to acquire the HB lock if
+we fail to acquire the lock.
+The RT waiter (for the futex lock) is still enqueued and acquiring the
+HB lock may build up a lock chain which leads to a deadlock if the owner
+of the lock futex-lock holds the HB lock.
+
+Make the hash bucket lock raw so it does not participate in the
+lockchain.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/futex.c | 86 +++++++++++++++++++++++++-------------------------
+ 1 file changed, 43 insertions(+), 43 deletions(-)
+
+diff --git a/kernel/futex.c b/kernel/futex.c
+index 9bcfdcffb2dd..8a49dd71b233 100644
+--- a/kernel/futex.c
++++ b/kernel/futex.c
+@@ -243,7 +243,7 @@ struct futex_q {
+ struct plist_node list;
+
+ struct task_struct *task;
+- spinlock_t *lock_ptr;
++ raw_spinlock_t *lock_ptr;
+ union futex_key key;
+ struct futex_pi_state *pi_state;
+ struct rt_mutex_waiter *rt_waiter;
+@@ -264,7 +264,7 @@ static const struct futex_q futex_q_init = {
+ */
+ struct futex_hash_bucket {
+ atomic_t waiters;
+- spinlock_t lock;
++ raw_spinlock_t lock;
+ struct plist_head chain;
+ } ____cacheline_aligned_in_smp;
+
+@@ -952,7 +952,7 @@ static void exit_pi_state_list(struct task_struct *curr)
+ }
+ raw_spin_unlock_irq(&curr->pi_lock);
+
+- spin_lock(&hb->lock);
++ raw_spin_lock(&hb->lock);
+ raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock);
+ raw_spin_lock(&curr->pi_lock);
+ /*
+@@ -962,7 +962,7 @@ static void exit_pi_state_list(struct task_struct *curr)
+ if (head->next != next) {
+ /* retain curr->pi_lock for the loop invariant */
+ raw_spin_unlock(&pi_state->pi_mutex.wait_lock);
+- spin_unlock(&hb->lock);
++ raw_spin_unlock(&hb->lock);
+ put_pi_state(pi_state);
+ continue;
+ }
+@@ -974,7 +974,7 @@ static void exit_pi_state_list(struct task_struct *curr)
+
+ raw_spin_unlock(&curr->pi_lock);
+ raw_spin_unlock_irq(&pi_state->pi_mutex.wait_lock);
+- spin_unlock(&hb->lock);
++ raw_spin_unlock(&hb->lock);
+
+ rt_mutex_futex_unlock(&pi_state->pi_mutex);
+ put_pi_state(pi_state);
+@@ -1523,7 +1523,7 @@ static void __unqueue_futex(struct futex_q *q)
+ {
+ struct futex_hash_bucket *hb;
+
+- if (WARN_ON_SMP(!q->lock_ptr || !spin_is_locked(q->lock_ptr))
++ if (WARN_ON_SMP(!q->lock_ptr || !raw_spin_is_locked(q->lock_ptr))
+ || WARN_ON(plist_node_empty(&q->list)))
+ return;
+
+@@ -1643,21 +1643,21 @@ static inline void
+ double_lock_hb(struct futex_hash_bucket *hb1, struct futex_hash_bucket *hb2)
+ {
+ if (hb1 <= hb2) {
+- spin_lock(&hb1->lock);
++ raw_spin_lock(&hb1->lock);
+ if (hb1 < hb2)
+- spin_lock_nested(&hb2->lock, SINGLE_DEPTH_NESTING);
++ raw_spin_lock_nested(&hb2->lock, SINGLE_DEPTH_NESTING);
+ } else { /* hb1 > hb2 */
+- spin_lock(&hb2->lock);
+- spin_lock_nested(&hb1->lock, SINGLE_DEPTH_NESTING);
++ raw_spin_lock(&hb2->lock);
++ raw_spin_lock_nested(&hb1->lock, SINGLE_DEPTH_NESTING);
+ }
+ }
+
+ static inline void
+ double_unlock_hb(struct futex_hash_bucket *hb1, struct futex_hash_bucket *hb2)
+ {
+- spin_unlock(&hb1->lock);
++ raw_spin_unlock(&hb1->lock);
+ if (hb1 != hb2)
+- spin_unlock(&hb2->lock);
++ raw_spin_unlock(&hb2->lock);
+ }
+
+ /*
+@@ -1685,7 +1685,7 @@ futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset)
+ if (!hb_waiters_pending(hb))
+ goto out_put_key;
+
+- spin_lock(&hb->lock);
++ raw_spin_lock(&hb->lock);
+
+ plist_for_each_entry_safe(this, next, &hb->chain, list) {
+ if (match_futex (&this->key, &key)) {
+@@ -1704,7 +1704,7 @@ futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset)
+ }
+ }
+
+- spin_unlock(&hb->lock);
++ raw_spin_unlock(&hb->lock);
+ wake_up_q(&wake_q);
+ out_put_key:
+ put_futex_key(&key);
+@@ -2326,7 +2326,7 @@ static inline struct futex_hash_bucket *queue_lock(struct futex_q *q)
+
+ q->lock_ptr = &hb->lock;
+
+- spin_lock(&hb->lock); /* implies smp_mb(); (A) */
++ raw_spin_lock(&hb->lock); /* implies smp_mb(); (A) */
+ return hb;
+ }
+
+@@ -2334,7 +2334,7 @@ static inline void
+ queue_unlock(struct futex_hash_bucket *hb)
+ __releases(&hb->lock)
+ {
+- spin_unlock(&hb->lock);
++ raw_spin_unlock(&hb->lock);
+ hb_waiters_dec(hb);
+ }
+
+@@ -2373,7 +2373,7 @@ static inline void queue_me(struct futex_q *q, struct futex_hash_bucket *hb)
+ __releases(&hb->lock)
+ {
+ __queue_me(q, hb);
+- spin_unlock(&hb->lock);
++ raw_spin_unlock(&hb->lock);
+ }
+
+ /**
+@@ -2389,41 +2389,41 @@ static inline void queue_me(struct futex_q *q, struct futex_hash_bucket *hb)
+ */
+ static int unqueue_me(struct futex_q *q)
+ {
+- spinlock_t *lock_ptr;
++ raw_spinlock_t *lock_ptr;
+ int ret = 0;
+
+ /* In the common case we don't take the spinlock, which is nice. */
+ retry:
+ /*
+- * q->lock_ptr can change between this read and the following spin_lock.
+- * Use READ_ONCE to forbid the compiler from reloading q->lock_ptr and
+- * optimizing lock_ptr out of the logic below.
++ * q->lock_ptr can change between this read and the following
++ * raw_spin_lock. Use READ_ONCE to forbid the compiler from reloading
++ * q->lock_ptr and optimizing lock_ptr out of the logic below.
+ */
+ lock_ptr = READ_ONCE(q->lock_ptr);
+ if (lock_ptr != NULL) {
+- spin_lock(lock_ptr);
++ raw_spin_lock(lock_ptr);
+ /*
+ * q->lock_ptr can change between reading it and
+- * spin_lock(), causing us to take the wrong lock. This
++ * raw_spin_lock(), causing us to take the wrong lock. This
+ * corrects the race condition.
+ *
+ * Reasoning goes like this: if we have the wrong lock,
+ * q->lock_ptr must have changed (maybe several times)
+- * between reading it and the spin_lock(). It can
+- * change again after the spin_lock() but only if it was
+- * already changed before the spin_lock(). It cannot,
++ * between reading it and the raw_spin_lock(). It can
++ * change again after the raw_spin_lock() but only if it was
++ * already changed before the raw_spin_lock(). It cannot,
+ * however, change back to the original value. Therefore
+ * we can detect whether we acquired the correct lock.
+ */
+ if (unlikely(lock_ptr != q->lock_ptr)) {
+- spin_unlock(lock_ptr);
++ raw_spin_unlock(lock_ptr);
+ goto retry;
+ }
+ __unqueue_futex(q);
+
+ BUG_ON(q->pi_state);
+
+- spin_unlock(lock_ptr);
++ raw_spin_unlock(lock_ptr);
+ ret = 1;
+ }
+
+@@ -2445,7 +2445,7 @@ static void unqueue_me_pi(struct futex_q *q)
+ put_pi_state(q->pi_state);
+ q->pi_state = NULL;
+
+- spin_unlock(q->lock_ptr);
++ raw_spin_unlock(q->lock_ptr);
+ }
+
+ static int __fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q,
+@@ -2569,7 +2569,7 @@ static int __fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q,
+ */
+ handle_err:
+ raw_spin_unlock_irq(&pi_state->pi_mutex.wait_lock);
+- spin_unlock(q->lock_ptr);
++ raw_spin_unlock(q->lock_ptr);
+
+ switch (err) {
+ case -EFAULT:
+@@ -2586,7 +2586,7 @@ static int __fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q,
+ break;
+ }
+
+- spin_lock(q->lock_ptr);
++ raw_spin_lock(q->lock_ptr);
+ raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock);
+
+ /*
+@@ -2700,7 +2700,7 @@ static void futex_wait_queue_me(struct futex_hash_bucket *hb, struct futex_q *q,
+ /*
+ * The task state is guaranteed to be set before another task can
+ * wake it. set_current_state() is implemented using smp_store_mb() and
+- * queue_me() calls spin_unlock() upon completion, both serializing
++ * queue_me() calls raw_spin_unlock() upon completion, both serializing
+ * access to the hash list and forcing another memory barrier.
+ */
+ set_current_state(TASK_INTERRUPTIBLE);
+@@ -2998,7 +2998,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
+ * before __rt_mutex_start_proxy_lock() is done.
+ */
+ raw_spin_lock_irq(&q.pi_state->pi_mutex.wait_lock);
+- spin_unlock(q.lock_ptr);
++ raw_spin_unlock(q.lock_ptr);
+ /*
+ * __rt_mutex_start_proxy_lock() unconditionally enqueues the @rt_waiter
+ * such that futex_unlock_pi() is guaranteed to observe the waiter when
+@@ -3019,7 +3019,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
+ ret = rt_mutex_wait_proxy_lock(&q.pi_state->pi_mutex, to, &rt_waiter);
+
+ cleanup:
+- spin_lock(q.lock_ptr);
++ raw_spin_lock(q.lock_ptr);
+ /*
+ * If we failed to acquire the lock (deadlock/signal/timeout), we must
+ * first acquire the hb->lock before removing the lock from the
+@@ -3106,7 +3106,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags)
+ return ret;
+
+ hb = hash_futex(&key);
+- spin_lock(&hb->lock);
++ raw_spin_lock(&hb->lock);
+
+ /*
+ * Check waiters first. We do not trust user space values at
+@@ -3140,7 +3140,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags)
+ * rt_waiter. Also see the WARN in wake_futex_pi().
+ */
+ raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock);
+- spin_unlock(&hb->lock);
++ raw_spin_unlock(&hb->lock);
+
+ /* drops pi_state->pi_mutex.wait_lock */
+ ret = wake_futex_pi(uaddr, uval, pi_state);
+@@ -3179,7 +3179,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags)
+ * owner.
+ */
+ if ((ret = cmpxchg_futex_value_locked(&curval, uaddr, uval, 0))) {
+- spin_unlock(&hb->lock);
++ raw_spin_unlock(&hb->lock);
+ switch (ret) {
+ case -EFAULT:
+ goto pi_faulted;
+@@ -3199,7 +3199,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags)
+ ret = (curval == uval) ? 0 : -EAGAIN;
+
+ out_unlock:
+- spin_unlock(&hb->lock);
++ raw_spin_unlock(&hb->lock);
+ out_putkey:
+ put_futex_key(&key);
+ return ret;
+@@ -3372,9 +3372,9 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+ /* Queue the futex_q, drop the hb lock, wait for wakeup. */
+ futex_wait_queue_me(hb, &q, to);
+
+- spin_lock(&hb->lock);
++ raw_spin_lock(&hb->lock);
+ ret = handle_early_requeue_pi_wakeup(hb, &q, &key2, to);
+- spin_unlock(&hb->lock);
++ raw_spin_unlock(&hb->lock);
+ if (ret)
+ goto out_put_keys;
+
+@@ -3394,7 +3394,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+ * did a lock-steal - fix up the PI-state in that case.
+ */
+ if (q.pi_state && (q.pi_state->owner != current)) {
+- spin_lock(q.lock_ptr);
++ raw_spin_lock(q.lock_ptr);
+ ret = fixup_pi_state_owner(uaddr2, &q, current);
+ /*
+ * Drop the reference to the pi state which
+@@ -3420,7 +3420,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+ pi_mutex = &q.pi_state->pi_mutex;
+ ret = rt_mutex_wait_proxy_lock(pi_mutex, to, &rt_waiter);
+
+- spin_lock(q.lock_ptr);
++ raw_spin_lock(q.lock_ptr);
+ if (ret && !rt_mutex_cleanup_proxy_lock(pi_mutex, &rt_waiter))
+ ret = 0;
+
+@@ -4179,7 +4179,7 @@ static int __init futex_init(void)
+ for (i = 0; i < futex_hashsize; i++) {
+ atomic_set(&futex_queues[i].waiters, 0);
+ plist_head_init(&futex_queues[i].chain);
+- spin_lock_init(&futex_queues[i].lock);
++ raw_spin_lock_init(&futex_queues[i].lock);
+ }
+
+ return 0;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0277-futex-Delay-deallocation-of-pi_state.patch b/debian/patches-rt/0277-futex-Delay-deallocation-of-pi_state.patch
new file mode 100644
index 000000000..d75a415e1
--- /dev/null
+++ b/debian/patches-rt/0277-futex-Delay-deallocation-of-pi_state.patch
@@ -0,0 +1,182 @@
+From 83bf13ff04d052ee07805956bae67c712bbb761b Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 26 Jun 2019 13:35:36 +0200
+Subject: [PATCH 277/347] futex: Delay deallocation of pi_state
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit d7c7cf8cb68b7df17e6e50be1f25f35d83e686c7 ]
+
+On -RT we can't invoke kfree() in a non-preemptible context.
+
+Defer the deallocation of pi_state to preemptible context.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/futex.c | 55 ++++++++++++++++++++++++++++++++++++++++----------
+ 1 file changed, 44 insertions(+), 11 deletions(-)
+
+diff --git a/kernel/futex.c b/kernel/futex.c
+index 8a49dd71b233..2fc6bedb460e 100644
+--- a/kernel/futex.c
++++ b/kernel/futex.c
+@@ -871,13 +871,13 @@ static void get_pi_state(struct futex_pi_state *pi_state)
+ * Drops a reference to the pi_state object and frees or caches it
+ * when the last reference is gone.
+ */
+-static void put_pi_state(struct futex_pi_state *pi_state)
++static struct futex_pi_state *__put_pi_state(struct futex_pi_state *pi_state)
+ {
+ if (!pi_state)
+- return;
++ return NULL;
+
+ if (!atomic_dec_and_test(&pi_state->refcount))
+- return;
++ return NULL;
+
+ /*
+ * If pi_state->owner is NULL, the owner is most probably dying
+@@ -892,9 +892,7 @@ static void put_pi_state(struct futex_pi_state *pi_state)
+ raw_spin_unlock_irqrestore(&pi_state->pi_mutex.wait_lock, flags);
+ }
+
+- if (current->pi_state_cache) {
+- kfree(pi_state);
+- } else {
++ if (!current->pi_state_cache) {
+ /*
+ * pi_state->list is already empty.
+ * clear pi_state->owner.
+@@ -903,6 +901,30 @@ static void put_pi_state(struct futex_pi_state *pi_state)
+ pi_state->owner = NULL;
+ atomic_set(&pi_state->refcount, 1);
+ current->pi_state_cache = pi_state;
++ pi_state = NULL;
++ }
++ return pi_state;
++}
++
++static void put_pi_state(struct futex_pi_state *pi_state)
++{
++ kfree(__put_pi_state(pi_state));
++}
++
++static void put_pi_state_atomic(struct futex_pi_state *pi_state,
++ struct list_head *to_free)
++{
++ if (__put_pi_state(pi_state))
++ list_add(&pi_state->list, to_free);
++}
++
++static void free_pi_state_list(struct list_head *to_free)
++{
++ struct futex_pi_state *p, *next;
++
++ list_for_each_entry_safe(p, next, to_free, list) {
++ list_del(&p->list);
++ kfree(p);
+ }
+ }
+
+@@ -919,6 +941,7 @@ static void exit_pi_state_list(struct task_struct *curr)
+ struct futex_pi_state *pi_state;
+ struct futex_hash_bucket *hb;
+ union futex_key key = FUTEX_KEY_INIT;
++ LIST_HEAD(to_free);
+
+ if (!futex_cmpxchg_enabled)
+ return;
+@@ -963,7 +986,7 @@ static void exit_pi_state_list(struct task_struct *curr)
+ /* retain curr->pi_lock for the loop invariant */
+ raw_spin_unlock(&pi_state->pi_mutex.wait_lock);
+ raw_spin_unlock(&hb->lock);
+- put_pi_state(pi_state);
++ put_pi_state_atomic(pi_state, &to_free);
+ continue;
+ }
+
+@@ -982,6 +1005,8 @@ static void exit_pi_state_list(struct task_struct *curr)
+ raw_spin_lock_irq(&curr->pi_lock);
+ }
+ raw_spin_unlock_irq(&curr->pi_lock);
++
++ free_pi_state_list(&to_free);
+ }
+ #else
+ static inline void exit_pi_state_list(struct task_struct *curr) { }
+@@ -2017,6 +2042,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
+ struct futex_hash_bucket *hb1, *hb2;
+ struct futex_q *this, *next;
+ DEFINE_WAKE_Q(wake_q);
++ LIST_HEAD(to_free);
+
+ if (nr_wake < 0 || nr_requeue < 0)
+ return -EINVAL;
+@@ -2265,7 +2291,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
+ * object.
+ */
+ this->pi_state = NULL;
+- put_pi_state(pi_state);
++ put_pi_state_atomic(pi_state, &to_free);
+ /*
+ * We stop queueing more waiters and let user
+ * space deal with the mess.
+@@ -2282,7 +2308,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
+ * in futex_proxy_trylock_atomic() or in lookup_pi_state(). We
+ * need to drop it here again.
+ */
+- put_pi_state(pi_state);
++ put_pi_state_atomic(pi_state, &to_free);
+
+ out_unlock:
+ double_unlock_hb(hb1, hb2);
+@@ -2303,6 +2329,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
+ out_put_key1:
+ put_futex_key(&key1);
+ out:
++ free_pi_state_list(&to_free);
+ return ret ? ret : task_count;
+ }
+
+@@ -2439,13 +2466,16 @@ static int unqueue_me(struct futex_q *q)
+ static void unqueue_me_pi(struct futex_q *q)
+ __releases(q->lock_ptr)
+ {
++ struct futex_pi_state *ps;
++
+ __unqueue_futex(q);
+
+ BUG_ON(!q->pi_state);
+- put_pi_state(q->pi_state);
++ ps = __put_pi_state(q->pi_state);
+ q->pi_state = NULL;
+
+ raw_spin_unlock(q->lock_ptr);
++ kfree(ps);
+ }
+
+ static int __fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q,
+@@ -3394,14 +3424,17 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+ * did a lock-steal - fix up the PI-state in that case.
+ */
+ if (q.pi_state && (q.pi_state->owner != current)) {
++ struct futex_pi_state *ps_free;
++
+ raw_spin_lock(q.lock_ptr);
+ ret = fixup_pi_state_owner(uaddr2, &q, current);
+ /*
+ * Drop the reference to the pi state which
+ * the requeue_pi() code acquired for us.
+ */
+- put_pi_state(q.pi_state);
++ ps_free = __put_pi_state(q.pi_state);
+ spin_unlock(&hb2->lock);
++ kfree(ps_free);
+ /*
+ * Adjust the return value. It's either -EFAULT or
+ * success (1) but the caller expects 0 for success.
+--
+2.36.1
+
diff --git a/debian/patches-rt/0278-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch b/debian/patches-rt/0278-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch
new file mode 100644
index 000000000..b44e7ef6e
--- /dev/null
+++ b/debian/patches-rt/0278-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch
@@ -0,0 +1,127 @@
+From f41d5cdc361ba012b59e23b78fe3501b16cfda3d Mon Sep 17 00:00:00 2001
+From: "Luis Claudio R. Goncalves" <lclaudio@uudg.org>
+Date: Tue, 25 Jun 2019 11:28:04 -0300
+Subject: [PATCH 278/347] mm/zswap: Do not disable preemption in
+ zswap_frontswap_store()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 4e4cf4be79635e67144632d9135286381acbc95a ]
+
+Zswap causes "BUG: scheduling while atomic" by blocking on a rt_spin_lock() with
+preemption disabled. The preemption is disabled by get_cpu_var() in
+zswap_frontswap_store() to protect the access of the zswap_dstmem percpu variable.
+
+Use get_locked_var() to protect the percpu zswap_dstmem variable, making the
+code preemptive.
+
+As get_cpu_ptr() also disables preemption, replace it by this_cpu_ptr() and
+remove the counterpart put_cpu_ptr().
+
+Steps to Reproduce:
+
+ 1. # grubby --args "zswap.enabled=1" --update-kernel DEFAULT
+ 2. # reboot
+ 3. Calculate the amount o memory to be used by the test:
+ ---> grep MemAvailable /proc/meminfo
+ ---> Add 25% ~ 50% to that value
+ 4. # stress --vm 1 --vm-bytes ${MemAvailable+25%} --timeout 240s
+
+Usually, in less than 5 minutes the backtrace listed below appears, followed
+by a kernel panic:
+
+| BUG: scheduling while atomic: kswapd1/181/0x00000002
+|
+| Preemption disabled at:
+| [<ffffffff8b2a6cda>] zswap_frontswap_store+0x21a/0x6e1
+|
+| Kernel panic - not syncing: scheduling while atomic
+| CPU: 14 PID: 181 Comm: kswapd1 Kdump: loaded Not tainted 5.0.14-rt9 #1
+| Hardware name: AMD Pence/Pence, BIOS WPN2321X_Weekly_12_03_21 03/19/2012
+| Call Trace:
+| panic+0x106/0x2a7
+| __schedule_bug.cold+0x3f/0x51
+| __schedule+0x5cb/0x6f0
+| schedule+0x43/0xd0
+| rt_spin_lock_slowlock_locked+0x114/0x2b0
+| rt_spin_lock_slowlock+0x51/0x80
+| zbud_alloc+0x1da/0x2d0
+| zswap_frontswap_store+0x31a/0x6e1
+| __frontswap_store+0xab/0x130
+| swap_writepage+0x39/0x70
+| pageout.isra.0+0xe3/0x320
+| shrink_page_list+0xa8e/0xd10
+| shrink_inactive_list+0x251/0x840
+| shrink_node_memcg+0x213/0x770
+| shrink_node+0xd9/0x450
+| balance_pgdat+0x2d5/0x510
+| kswapd+0x218/0x470
+| kthread+0xfb/0x130
+| ret_from_fork+0x27/0x50
+
+Cc: stable-rt@vger.kernel.org
+Reported-by: Ping Fang <pifang@redhat.com>
+Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com>
+Reviewed-by: Daniel Bristot de Oliveira <bristot@redhat.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ mm/zswap.c | 12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/mm/zswap.c b/mm/zswap.c
+index cd91fd9d96b8..420225d3ff0b 100644
+--- a/mm/zswap.c
++++ b/mm/zswap.c
+@@ -27,6 +27,7 @@
+ #include <linux/highmem.h>
+ #include <linux/slab.h>
+ #include <linux/spinlock.h>
++#include <linux/locallock.h>
+ #include <linux/types.h>
+ #include <linux/atomic.h>
+ #include <linux/frontswap.h>
+@@ -990,6 +991,8 @@ static void zswap_fill_page(void *ptr, unsigned long value)
+ memset_l(page, value, PAGE_SIZE / sizeof(unsigned long));
+ }
+
++/* protect zswap_dstmem from concurrency */
++static DEFINE_LOCAL_IRQ_LOCK(zswap_dstmem_lock);
+ /*********************************
+ * frontswap hooks
+ **********************************/
+@@ -1066,12 +1069,11 @@ static int zswap_frontswap_store(unsigned type, pgoff_t offset,
+ }
+
+ /* compress */
+- dst = get_cpu_var(zswap_dstmem);
+- tfm = *get_cpu_ptr(entry->pool->tfm);
++ dst = get_locked_var(zswap_dstmem_lock, zswap_dstmem);
++ tfm = *this_cpu_ptr(entry->pool->tfm);
+ src = kmap_atomic(page);
+ ret = crypto_comp_compress(tfm, src, PAGE_SIZE, dst, &dlen);
+ kunmap_atomic(src);
+- put_cpu_ptr(entry->pool->tfm);
+ if (ret) {
+ ret = -EINVAL;
+ goto put_dstmem;
+@@ -1094,7 +1096,7 @@ static int zswap_frontswap_store(unsigned type, pgoff_t offset,
+ memcpy(buf, &zhdr, hlen);
+ memcpy(buf + hlen, dst, dlen);
+ zpool_unmap_handle(entry->pool->zpool, handle);
+- put_cpu_var(zswap_dstmem);
++ put_locked_var(zswap_dstmem_lock, zswap_dstmem);
+
+ /* populate entry */
+ entry->offset = offset;
+@@ -1122,7 +1124,7 @@ static int zswap_frontswap_store(unsigned type, pgoff_t offset,
+ return 0;
+
+ put_dstmem:
+- put_cpu_var(zswap_dstmem);
++ put_locked_var(zswap_dstmem_lock, zswap_dstmem);
+ zswap_pool_put(entry->pool);
+ freepage:
+ zswap_entry_cache_free(entry);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0279-revert-aio.patch b/debian/patches-rt/0279-revert-aio.patch
new file mode 100644
index 000000000..2473add45
--- /dev/null
+++ b/debian/patches-rt/0279-revert-aio.patch
@@ -0,0 +1,71 @@
+From f543c9a26aefcba7e267ea5d79ee00bcf6679b50 Mon Sep 17 00:00:00 2001
+From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
+Date: Fri, 20 Sep 2019 17:50:53 -0400
+Subject: [PATCH 279/347] revert-aio
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+revert: fs/aio: simple simple work
+
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ fs/aio.c | 15 ++-------------
+ 1 file changed, 2 insertions(+), 13 deletions(-)
+
+diff --git a/fs/aio.c b/fs/aio.c
+index 21eacb0f3f56..9635c29b83da 100644
+--- a/fs/aio.c
++++ b/fs/aio.c
+@@ -42,7 +42,6 @@
+ #include <linux/ramfs.h>
+ #include <linux/percpu-refcount.h>
+ #include <linux/mount.h>
+-#include <linux/swork.h>
+
+ #include <asm/kmap_types.h>
+ #include <linux/uaccess.h>
+@@ -122,7 +121,6 @@ struct kioctx {
+ long nr_pages;
+
+ struct rcu_work free_rwork; /* see free_ioctx() */
+- struct swork_event free_swork; /* see free_ioctx() */
+
+ /*
+ * signals when all in-flight requests are done
+@@ -269,7 +267,6 @@ static int __init aio_setup(void)
+ .mount = aio_mount,
+ .kill_sb = kill_anon_super,
+ };
+- BUG_ON(swork_get());
+ aio_mnt = kern_mount(&aio_fs);
+ if (IS_ERR(aio_mnt))
+ panic("Failed to create aio fs mount.");
+@@ -611,9 +608,9 @@ static void free_ioctx_reqs(struct percpu_ref *ref)
+ * and ctx->users has dropped to 0, so we know no more kiocbs can be submitted -
+ * now it's safe to cancel any that need to be.
+ */
+-static void free_ioctx_users_work(struct swork_event *sev)
++static void free_ioctx_users(struct percpu_ref *ref)
+ {
+- struct kioctx *ctx = container_of(sev, struct kioctx, free_swork);
++ struct kioctx *ctx = container_of(ref, struct kioctx, users);
+ struct aio_kiocb *req;
+
+ spin_lock_irq(&ctx->ctx_lock);
+@@ -631,14 +628,6 @@ static void free_ioctx_users_work(struct swork_event *sev)
+ percpu_ref_put(&ctx->reqs);
+ }
+
+-static void free_ioctx_users(struct percpu_ref *ref)
+-{
+- struct kioctx *ctx = container_of(ref, struct kioctx, users);
+-
+- INIT_SWORK(&ctx->free_swork, free_ioctx_users_work);
+- swork_queue(&ctx->free_swork);
+-}
+-
+ static int ioctx_add_table(struct kioctx *ctx, struct mm_struct *mm)
+ {
+ unsigned i, new_nr;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0280-fs-aio-simple-simple-work.patch b/debian/patches-rt/0280-fs-aio-simple-simple-work.patch
new file mode 100644
index 000000000..8bbb8340f
--- /dev/null
+++ b/debian/patches-rt/0280-fs-aio-simple-simple-work.patch
@@ -0,0 +1,76 @@
+From 238624153731bac8138142a9d688f5b51a5f70fe Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Mon, 16 Feb 2015 18:49:10 +0100
+Subject: [PATCH 280/347] fs/aio: simple simple work
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 1a142116f6435ef070ecebb66d2d599507c10601 ]
+
+|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:768
+|in_atomic(): 1, irqs_disabled(): 0, pid: 26, name: rcuos/2
+|2 locks held by rcuos/2/26:
+| #0: (rcu_callback){.+.+..}, at: [<ffffffff810b1a12>] rcu_nocb_kthread+0x1e2/0x380
+| #1: (rcu_read_lock_sched){.+.+..}, at: [<ffffffff812acd26>] percpu_ref_kill_rcu+0xa6/0x1c0
+|Preemption disabled at:[<ffffffff810b1a93>] rcu_nocb_kthread+0x263/0x380
+|Call Trace:
+| [<ffffffff81582e9e>] dump_stack+0x4e/0x9c
+| [<ffffffff81077aeb>] __might_sleep+0xfb/0x170
+| [<ffffffff81589304>] rt_spin_lock+0x24/0x70
+| [<ffffffff811c5790>] free_ioctx_users+0x30/0x130
+| [<ffffffff812ace34>] percpu_ref_kill_rcu+0x1b4/0x1c0
+| [<ffffffff810b1a93>] rcu_nocb_kthread+0x263/0x380
+| [<ffffffff8106e046>] kthread+0xd6/0xf0
+| [<ffffffff81591eec>] ret_from_fork+0x7c/0xb0
+
+replace this preempt_disable() friendly swork.
+
+Reported-By: Mike Galbraith <umgwanakikbuti@gmail.com>
+Suggested-by: Benjamin LaHaise <bcrl@kvack.org>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ fs/aio.c | 13 +++++++++++--
+ 1 file changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/fs/aio.c b/fs/aio.c
+index 9635c29b83da..303e85033965 100644
+--- a/fs/aio.c
++++ b/fs/aio.c
+@@ -121,6 +121,7 @@ struct kioctx {
+ long nr_pages;
+
+ struct rcu_work free_rwork; /* see free_ioctx() */
++ struct kthread_work free_kwork; /* see free_ioctx() */
+
+ /*
+ * signals when all in-flight requests are done
+@@ -608,9 +609,9 @@ static void free_ioctx_reqs(struct percpu_ref *ref)
+ * and ctx->users has dropped to 0, so we know no more kiocbs can be submitted -
+ * now it's safe to cancel any that need to be.
+ */
+-static void free_ioctx_users(struct percpu_ref *ref)
++static void free_ioctx_users_work(struct kthread_work *work)
+ {
+- struct kioctx *ctx = container_of(ref, struct kioctx, users);
++ struct kioctx *ctx = container_of(work, struct kioctx, free_kwork);
+ struct aio_kiocb *req;
+
+ spin_lock_irq(&ctx->ctx_lock);
+@@ -628,6 +629,14 @@ static void free_ioctx_users(struct percpu_ref *ref)
+ percpu_ref_put(&ctx->reqs);
+ }
+
++static void free_ioctx_users(struct percpu_ref *ref)
++{
++ struct kioctx *ctx = container_of(ref, struct kioctx, users);
++
++ kthread_init_work(&ctx->free_kwork, free_ioctx_users_work);
++ kthread_schedule_work(&ctx->free_kwork);
++}
++
+ static int ioctx_add_table(struct kioctx *ctx, struct mm_struct *mm)
+ {
+ unsigned i, new_nr;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0281-revert-thermal.patch b/debian/patches-rt/0281-revert-thermal.patch
new file mode 100644
index 000000000..eb35b59a3
--- /dev/null
+++ b/debian/patches-rt/0281-revert-thermal.patch
@@ -0,0 +1,120 @@
+From 0e238fd1114bbb3f58ef4d2c32558d13f7ba6b75 Mon Sep 17 00:00:00 2001
+From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
+Date: Fri, 20 Sep 2019 17:50:53 -0400
+Subject: [PATCH 281/347] revert-thermal
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Revert: thermal: Defer thermal wakups to threads
+
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ drivers/thermal/x86_pkg_temp_thermal.c | 52 ++------------------------
+ 1 file changed, 3 insertions(+), 49 deletions(-)
+
+diff --git a/drivers/thermal/x86_pkg_temp_thermal.c b/drivers/thermal/x86_pkg_temp_thermal.c
+index a5991cbb408f..1ef937d799e4 100644
+--- a/drivers/thermal/x86_pkg_temp_thermal.c
++++ b/drivers/thermal/x86_pkg_temp_thermal.c
+@@ -29,7 +29,6 @@
+ #include <linux/pm.h>
+ #include <linux/thermal.h>
+ #include <linux/debugfs.h>
+-#include <linux/swork.h>
+ #include <asm/cpu_device_id.h>
+ #include <asm/mce.h>
+
+@@ -330,7 +329,7 @@ static void pkg_thermal_schedule_work(int cpu, struct delayed_work *work)
+ schedule_delayed_work_on(cpu, work, ms);
+ }
+
+-static void pkg_thermal_notify_work(struct swork_event *event)
++static int pkg_thermal_notify(u64 msr_val)
+ {
+ int cpu = smp_processor_id();
+ struct pkg_device *pkgdev;
+@@ -349,47 +348,9 @@ static void pkg_thermal_notify_work(struct swork_event *event)
+ }
+
+ spin_unlock_irqrestore(&pkg_temp_lock, flags);
+-}
+-
+-#ifdef CONFIG_PREEMPT_RT_FULL
+-static struct swork_event notify_work;
+-
+-static int pkg_thermal_notify_work_init(void)
+-{
+- int err;
+-
+- err = swork_get();
+- if (err)
+- return err;
+-
+- INIT_SWORK(&notify_work, pkg_thermal_notify_work);
+ return 0;
+ }
+
+-static void pkg_thermal_notify_work_cleanup(void)
+-{
+- swork_put();
+-}
+-
+-static int pkg_thermal_notify(u64 msr_val)
+-{
+- swork_queue(&notify_work);
+- return 0;
+-}
+-
+-#else /* !CONFIG_PREEMPT_RT_FULL */
+-
+-static int pkg_thermal_notify_work_init(void) { return 0; }
+-
+-static void pkg_thermal_notify_work_cleanup(void) { }
+-
+-static int pkg_thermal_notify(u64 msr_val)
+-{
+- pkg_thermal_notify_work(NULL);
+- return 0;
+-}
+-#endif /* CONFIG_PREEMPT_RT_FULL */
+-
+ static int pkg_temp_thermal_device_add(unsigned int cpu)
+ {
+ int pkgid = topology_logical_package_id(cpu);
+@@ -554,16 +515,11 @@ static int __init pkg_temp_thermal_init(void)
+ if (!x86_match_cpu(pkg_temp_thermal_ids))
+ return -ENODEV;
+
+- if (!pkg_thermal_notify_work_init())
+- return -ENODEV;
+-
+ max_packages = topology_max_packages();
+ packages = kcalloc(max_packages, sizeof(struct pkg_device *),
+ GFP_KERNEL);
+- if (!packages) {
+- ret = -ENOMEM;
+- goto err;
+- }
++ if (!packages)
++ return -ENOMEM;
+
+ ret = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "thermal/x86_pkg:online",
+ pkg_thermal_cpu_online, pkg_thermal_cpu_offline);
+@@ -581,7 +537,6 @@ static int __init pkg_temp_thermal_init(void)
+ return 0;
+
+ err:
+- pkg_thermal_notify_work_cleanup();
+ kfree(packages);
+ return ret;
+ }
+@@ -595,7 +550,6 @@ static void __exit pkg_temp_thermal_exit(void)
+ cpuhp_remove_state(pkg_thermal_hp_state);
+ debugfs_remove_recursive(debugfs);
+ kfree(packages);
+- pkg_thermal_notify_work_cleanup();
+ }
+ module_exit(pkg_temp_thermal_exit)
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0282-thermal-Defer-thermal-wakups-to-threads.patch b/debian/patches-rt/0282-thermal-Defer-thermal-wakups-to-threads.patch
new file mode 100644
index 000000000..c87c2c1ee
--- /dev/null
+++ b/debian/patches-rt/0282-thermal-Defer-thermal-wakups-to-threads.patch
@@ -0,0 +1,98 @@
+From 260167472319caeab60ece36de5dcd04ef245df5 Mon Sep 17 00:00:00 2001
+From: Daniel Wagner <wagi@monom.org>
+Date: Tue, 17 Feb 2015 09:37:44 +0100
+Subject: [PATCH 282/347] thermal: Defer thermal wakups to threads
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit ad2408dc248fe58536eef5b2b5734d8f9d3a280b ]
+
+On RT the spin lock in pkg_temp_thermal_platfrom_thermal_notify will
+call schedule while we run in irq context.
+
+[<ffffffff816850ac>] dump_stack+0x4e/0x8f
+[<ffffffff81680f7d>] __schedule_bug+0xa6/0xb4
+[<ffffffff816896b4>] __schedule+0x5b4/0x700
+[<ffffffff8168982a>] schedule+0x2a/0x90
+[<ffffffff8168a8b5>] rt_spin_lock_slowlock+0xe5/0x2d0
+[<ffffffff8168afd5>] rt_spin_lock+0x25/0x30
+[<ffffffffa03a7b75>] pkg_temp_thermal_platform_thermal_notify+0x45/0x134 [x86_pkg_temp_thermal]
+[<ffffffff8103d4db>] ? therm_throt_process+0x1b/0x160
+[<ffffffff8103d831>] intel_thermal_interrupt+0x211/0x250
+[<ffffffff8103d8c1>] smp_thermal_interrupt+0x21/0x40
+[<ffffffff8169415d>] thermal_interrupt+0x6d/0x80
+
+Let's defer the work to a kthread.
+
+Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+[bigeasy: reoder init/denit position. TODO: flush swork on exit]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/thermal/x86_pkg_temp_thermal.c | 28 +++++++++++++++++++++++++-
+ 1 file changed, 27 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/thermal/x86_pkg_temp_thermal.c b/drivers/thermal/x86_pkg_temp_thermal.c
+index 1ef937d799e4..82f21fd4afb0 100644
+--- a/drivers/thermal/x86_pkg_temp_thermal.c
++++ b/drivers/thermal/x86_pkg_temp_thermal.c
+@@ -29,6 +29,7 @@
+ #include <linux/pm.h>
+ #include <linux/thermal.h>
+ #include <linux/debugfs.h>
++#include <linux/kthread.h>
+ #include <asm/cpu_device_id.h>
+ #include <asm/mce.h>
+
+@@ -329,7 +330,7 @@ static void pkg_thermal_schedule_work(int cpu, struct delayed_work *work)
+ schedule_delayed_work_on(cpu, work, ms);
+ }
+
+-static int pkg_thermal_notify(u64 msr_val)
++static void pkg_thermal_notify_work(struct kthread_work *work)
+ {
+ int cpu = smp_processor_id();
+ struct pkg_device *pkgdev;
+@@ -348,8 +349,32 @@ static int pkg_thermal_notify(u64 msr_val)
+ }
+
+ spin_unlock_irqrestore(&pkg_temp_lock, flags);
++}
++
++#ifdef CONFIG_PREEMPT_RT_FULL
++static DEFINE_KTHREAD_WORK(notify_work, pkg_thermal_notify_work);
++
++static int pkg_thermal_notify(u64 msr_val)
++{
++ kthread_schedule_work(&notify_work);
++ return 0;
++}
++
++static void pkg_thermal_notify_flush(void)
++{
++ kthread_flush_work(&notify_work);
++}
++
++#else /* !CONFIG_PREEMPT_RT_FULL */
++
++static void pkg_thermal_notify_flush(void) { }
++
++static int pkg_thermal_notify(u64 msr_val)
++{
++ pkg_thermal_notify_work(NULL);
+ return 0;
+ }
++#endif /* CONFIG_PREEMPT_RT_FULL */
+
+ static int pkg_temp_thermal_device_add(unsigned int cpu)
+ {
+@@ -548,6 +573,7 @@ static void __exit pkg_temp_thermal_exit(void)
+ platform_thermal_package_rate_control = NULL;
+
+ cpuhp_remove_state(pkg_thermal_hp_state);
++ pkg_thermal_notify_flush();
+ debugfs_remove_recursive(debugfs);
+ kfree(packages);
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0283-revert-block.patch b/debian/patches-rt/0283-revert-block.patch
new file mode 100644
index 000000000..71ddf1806
--- /dev/null
+++ b/debian/patches-rt/0283-revert-block.patch
@@ -0,0 +1,83 @@
+From aceaba22f9a9db0bf15d1a63ca7d08080314f7b0 Mon Sep 17 00:00:00 2001
+From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
+Date: Fri, 20 Sep 2019 17:50:54 -0400
+Subject: [PATCH 283/347] revert-block
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Revert swork version of: block: blk-mq: move blk_queue_usage_counter_release() into process context
+
+In order to switch to upstream, we need to revert the swork code.
+
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ block/blk-core.c | 14 +-------------
+ include/linux/blkdev.h | 2 --
+ 2 files changed, 1 insertion(+), 15 deletions(-)
+
+diff --git a/block/blk-core.c b/block/blk-core.c
+index 02835970ef1e..461a93c08c14 100644
+--- a/block/blk-core.c
++++ b/block/blk-core.c
+@@ -973,21 +973,12 @@ void blk_queue_exit(struct request_queue *q)
+ percpu_ref_put(&q->q_usage_counter);
+ }
+
+-static void blk_queue_usage_counter_release_swork(struct swork_event *sev)
+-{
+- struct request_queue *q =
+- container_of(sev, struct request_queue, mq_pcpu_wake);
+-
+- wake_up_all(&q->mq_freeze_wq);
+-}
+-
+ static void blk_queue_usage_counter_release(struct percpu_ref *ref)
+ {
+ struct request_queue *q =
+ container_of(ref, struct request_queue, q_usage_counter);
+
+- if (wq_has_sleeper(&q->mq_freeze_wq))
+- swork_queue(&q->mq_pcpu_wake);
++ wake_up_all(&q->mq_freeze_wq);
+ }
+
+ static void blk_rq_timed_out_timer(struct timer_list *t)
+@@ -1087,7 +1078,6 @@ struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id,
+ queue_flag_set_unlocked(QUEUE_FLAG_BYPASS, q);
+
+ init_waitqueue_head(&q->mq_freeze_wq);
+- INIT_SWORK(&q->mq_pcpu_wake, blk_queue_usage_counter_release_swork);
+
+ /*
+ * Init percpu_ref in atomic mode so that it's faster to shutdown.
+@@ -3977,8 +3967,6 @@ int __init blk_dev_init(void)
+ if (!kblockd_workqueue)
+ panic("Failed to create kblockd\n");
+
+- BUG_ON(swork_get());
+-
+ request_cachep = kmem_cache_create("blkdev_requests",
+ sizeof(struct request), 0, SLAB_PANIC, NULL);
+
+diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
+index 0313098a428d..39d90bf9b5fa 100644
+--- a/include/linux/blkdev.h
++++ b/include/linux/blkdev.h
+@@ -27,7 +27,6 @@
+ #include <linux/percpu-refcount.h>
+ #include <linux/scatterlist.h>
+ #include <linux/blkzoned.h>
+-#include <linux/swork.h>
+
+ struct module;
+ struct scsi_ioctl_command;
+@@ -665,7 +664,6 @@ struct request_queue {
+ #endif
+ struct rcu_head rcu_head;
+ wait_queue_head_t mq_freeze_wq;
+- struct swork_event mq_pcpu_wake;
+ struct percpu_ref q_usage_counter;
+ struct list_head all_q_node;
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0284-block-blk-mq-move-blk_queue_usage_counter_release-in.patch b/debian/patches-rt/0284-block-blk-mq-move-blk_queue_usage_counter_release-in.patch
new file mode 100644
index 000000000..97f2bf9b8
--- /dev/null
+++ b/debian/patches-rt/0284-block-blk-mq-move-blk_queue_usage_counter_release-in.patch
@@ -0,0 +1,114 @@
+From 8ba3db6f9244e6911ac88380cd133f39aaba95ab Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 13 Mar 2018 13:49:16 +0100
+Subject: [PATCH 284/347] block: blk-mq: move blk_queue_usage_counter_release()
+ into process context
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 61c928ecf4fe200bda9b49a0813b5ba0f43995b5 ]
+
+| BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914
+| in_atomic(): 1, irqs_disabled(): 0, pid: 255, name: kworker/u257:6
+| 5 locks held by kworker/u257:6/255:
+| #0: ("events_unbound"){.+.+.+}, at: [<ffffffff8108edf1>] process_one_work+0x171/0x5e0
+| #1: ((&entry->work)){+.+.+.}, at: [<ffffffff8108edf1>] process_one_work+0x171/0x5e0
+| #2: (&shost->scan_mutex){+.+.+.}, at: [<ffffffffa000faa3>] __scsi_add_device+0xa3/0x130 [scsi_mod]
+| #3: (&set->tag_list_lock){+.+...}, at: [<ffffffff812f09fa>] blk_mq_init_queue+0x96a/0xa50
+| #4: (rcu_read_lock_sched){......}, at: [<ffffffff8132887d>] percpu_ref_kill_and_confirm+0x1d/0x120
+| Preemption disabled at:[<ffffffff812eff76>] blk_mq_freeze_queue_start+0x56/0x70
+|
+| CPU: 2 PID: 255 Comm: kworker/u257:6 Not tainted 3.18.7-rt0+ #1
+| Workqueue: events_unbound async_run_entry_fn
+| 0000000000000003 ffff8800bc29f998 ffffffff815b3a12 0000000000000000
+| 0000000000000000 ffff8800bc29f9b8 ffffffff8109aa16 ffff8800bc29fa28
+| ffff8800bc5d1bc8 ffff8800bc29f9e8 ffffffff815b8dd4 ffff880000000000
+| Call Trace:
+| [<ffffffff815b3a12>] dump_stack+0x4f/0x7c
+| [<ffffffff8109aa16>] __might_sleep+0x116/0x190
+| [<ffffffff815b8dd4>] rt_spin_lock+0x24/0x60
+| [<ffffffff810b6089>] __wake_up+0x29/0x60
+| [<ffffffff812ee06e>] blk_mq_usage_counter_release+0x1e/0x20
+| [<ffffffff81328966>] percpu_ref_kill_and_confirm+0x106/0x120
+| [<ffffffff812eff76>] blk_mq_freeze_queue_start+0x56/0x70
+| [<ffffffff812f0000>] blk_mq_update_tag_set_depth+0x40/0xd0
+| [<ffffffff812f0a1c>] blk_mq_init_queue+0x98c/0xa50
+| [<ffffffffa000dcf0>] scsi_mq_alloc_queue+0x20/0x60 [scsi_mod]
+| [<ffffffffa000ea35>] scsi_alloc_sdev+0x2f5/0x370 [scsi_mod]
+| [<ffffffffa000f494>] scsi_probe_and_add_lun+0x9e4/0xdd0 [scsi_mod]
+| [<ffffffffa000fb26>] __scsi_add_device+0x126/0x130 [scsi_mod]
+| [<ffffffffa013033f>] ata_scsi_scan_host+0xaf/0x200 [libata]
+| [<ffffffffa012b5b6>] async_port_probe+0x46/0x60 [libata]
+| [<ffffffff810978fb>] async_run_entry_fn+0x3b/0xf0
+| [<ffffffff8108ee81>] process_one_work+0x201/0x5e0
+
+percpu_ref_kill_and_confirm() invokes blk_mq_usage_counter_release() in
+a rcu-sched region. swait based wake queue can't be used due to
+wake_up_all() usage and disabled interrupts in !RT configs (as reported
+by Corey Minyard).
+The wq_has_sleeper() check has been suggested by Peter Zijlstra.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ block/blk-core.c | 12 +++++++++++-
+ include/linux/blkdev.h | 2 ++
+ 2 files changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/block/blk-core.c b/block/blk-core.c
+index 461a93c08c14..a67a50dd714a 100644
+--- a/block/blk-core.c
++++ b/block/blk-core.c
+@@ -973,12 +973,21 @@ void blk_queue_exit(struct request_queue *q)
+ percpu_ref_put(&q->q_usage_counter);
+ }
+
++static void blk_queue_usage_counter_release_wrk(struct kthread_work *work)
++{
++ struct request_queue *q =
++ container_of(work, struct request_queue, mq_pcpu_wake);
++
++ wake_up_all(&q->mq_freeze_wq);
++}
++
+ static void blk_queue_usage_counter_release(struct percpu_ref *ref)
+ {
+ struct request_queue *q =
+ container_of(ref, struct request_queue, q_usage_counter);
+
+- wake_up_all(&q->mq_freeze_wq);
++ if (wq_has_sleeper(&q->mq_freeze_wq))
++ kthread_schedule_work(&q->mq_pcpu_wake);
+ }
+
+ static void blk_rq_timed_out_timer(struct timer_list *t)
+@@ -1078,6 +1087,7 @@ struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id,
+ queue_flag_set_unlocked(QUEUE_FLAG_BYPASS, q);
+
+ init_waitqueue_head(&q->mq_freeze_wq);
++ kthread_init_work(&q->mq_pcpu_wake, blk_queue_usage_counter_release_wrk);
+
+ /*
+ * Init percpu_ref in atomic mode so that it's faster to shutdown.
+diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
+index 39d90bf9b5fa..5566d0049c22 100644
+--- a/include/linux/blkdev.h
++++ b/include/linux/blkdev.h
+@@ -13,6 +13,7 @@
+ #include <linux/llist.h>
+ #include <linux/timer.h>
+ #include <linux/workqueue.h>
++#include <linux/kthread.h>
+ #include <linux/pagemap.h>
+ #include <linux/backing-dev-defs.h>
+ #include <linux/wait.h>
+@@ -664,6 +665,7 @@ struct request_queue {
+ #endif
+ struct rcu_head rcu_head;
+ wait_queue_head_t mq_freeze_wq;
++ struct kthread_work mq_pcpu_wake;
+ struct percpu_ref q_usage_counter;
+ struct list_head all_q_node;
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0285-workqueue-rework.patch b/debian/patches-rt/0285-workqueue-rework.patch
new file mode 100644
index 000000000..056eb3a62
--- /dev/null
+++ b/debian/patches-rt/0285-workqueue-rework.patch
@@ -0,0 +1,1464 @@
+From 6fb18a4e40f7937eb1d0ab9dd2929a50d30d91f7 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 29 May 2019 18:52:27 +0200
+Subject: [PATCH 285/347] workqueue: rework
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit d15a862f24df983458533aebd6fa207ecdd1095a ]
+
+This is an all-in change of the workqueue rework.
+The worker_pool.lock is made to raw_spinlock_t. With this change we can
+schedule workitems from preempt-disable sections and sections with disabled
+interrupts. This change allows to remove all kthread_.* workarounds we used to
+have.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ block/blk-core.c | 6 +-
+ drivers/block/loop.c | 2 +-
+ drivers/spi/spi-rockchip.c | 1 -
+ drivers/thermal/x86_pkg_temp_thermal.c | 28 +--
+ fs/aio.c | 10 +-
+ include/linux/blk-cgroup.h | 2 +-
+ include/linux/blkdev.h | 2 +-
+ include/linux/kthread-cgroup.h | 17 --
+ include/linux/kthread.h | 15 +-
+ include/linux/swait.h | 14 ++
+ include/linux/workqueue.h | 4 -
+ init/main.c | 1 -
+ kernel/kthread.c | 14 --
+ kernel/sched/core.c | 1 +
+ kernel/time/hrtimer.c | 24 --
+ kernel/workqueue.c | 304 +++++++++++--------------
+ 16 files changed, 163 insertions(+), 282 deletions(-)
+ delete mode 100644 include/linux/kthread-cgroup.h
+
+diff --git a/block/blk-core.c b/block/blk-core.c
+index a67a50dd714a..ed6ae335756d 100644
+--- a/block/blk-core.c
++++ b/block/blk-core.c
+@@ -973,7 +973,7 @@ void blk_queue_exit(struct request_queue *q)
+ percpu_ref_put(&q->q_usage_counter);
+ }
+
+-static void blk_queue_usage_counter_release_wrk(struct kthread_work *work)
++static void blk_queue_usage_counter_release_wrk(struct work_struct *work)
+ {
+ struct request_queue *q =
+ container_of(work, struct request_queue, mq_pcpu_wake);
+@@ -987,7 +987,7 @@ static void blk_queue_usage_counter_release(struct percpu_ref *ref)
+ container_of(ref, struct request_queue, q_usage_counter);
+
+ if (wq_has_sleeper(&q->mq_freeze_wq))
+- kthread_schedule_work(&q->mq_pcpu_wake);
++ schedule_work(&q->mq_pcpu_wake);
+ }
+
+ static void blk_rq_timed_out_timer(struct timer_list *t)
+@@ -1087,7 +1087,7 @@ struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id,
+ queue_flag_set_unlocked(QUEUE_FLAG_BYPASS, q);
+
+ init_waitqueue_head(&q->mq_freeze_wq);
+- kthread_init_work(&q->mq_pcpu_wake, blk_queue_usage_counter_release_wrk);
++ INIT_WORK(&q->mq_pcpu_wake, blk_queue_usage_counter_release_wrk);
+
+ /*
+ * Init percpu_ref in atomic mode so that it's faster to shutdown.
+diff --git a/drivers/block/loop.c b/drivers/block/loop.c
+index d24660961343..c31a76485c9c 100644
+--- a/drivers/block/loop.c
++++ b/drivers/block/loop.c
+@@ -70,7 +70,7 @@
+ #include <linux/writeback.h>
+ #include <linux/completion.h>
+ #include <linux/highmem.h>
+-#include <linux/kthread-cgroup.h>
++#include <linux/kthread.h>
+ #include <linux/splice.h>
+ #include <linux/sysfs.h>
+ #include <linux/miscdevice.h>
+diff --git a/drivers/spi/spi-rockchip.c b/drivers/spi/spi-rockchip.c
+index 63b10236eb05..185bbdce62b1 100644
+--- a/drivers/spi/spi-rockchip.c
++++ b/drivers/spi/spi-rockchip.c
+@@ -22,7 +22,6 @@
+ #include <linux/spi/spi.h>
+ #include <linux/pm_runtime.h>
+ #include <linux/scatterlist.h>
+-#include <linux/interrupt.h>
+
+ #define DRIVER_NAME "rockchip-spi"
+
+diff --git a/drivers/thermal/x86_pkg_temp_thermal.c b/drivers/thermal/x86_pkg_temp_thermal.c
+index 82f21fd4afb0..1ef937d799e4 100644
+--- a/drivers/thermal/x86_pkg_temp_thermal.c
++++ b/drivers/thermal/x86_pkg_temp_thermal.c
+@@ -29,7 +29,6 @@
+ #include <linux/pm.h>
+ #include <linux/thermal.h>
+ #include <linux/debugfs.h>
+-#include <linux/kthread.h>
+ #include <asm/cpu_device_id.h>
+ #include <asm/mce.h>
+
+@@ -330,7 +329,7 @@ static void pkg_thermal_schedule_work(int cpu, struct delayed_work *work)
+ schedule_delayed_work_on(cpu, work, ms);
+ }
+
+-static void pkg_thermal_notify_work(struct kthread_work *work)
++static int pkg_thermal_notify(u64 msr_val)
+ {
+ int cpu = smp_processor_id();
+ struct pkg_device *pkgdev;
+@@ -349,32 +348,8 @@ static void pkg_thermal_notify_work(struct kthread_work *work)
+ }
+
+ spin_unlock_irqrestore(&pkg_temp_lock, flags);
+-}
+-
+-#ifdef CONFIG_PREEMPT_RT_FULL
+-static DEFINE_KTHREAD_WORK(notify_work, pkg_thermal_notify_work);
+-
+-static int pkg_thermal_notify(u64 msr_val)
+-{
+- kthread_schedule_work(&notify_work);
+- return 0;
+-}
+-
+-static void pkg_thermal_notify_flush(void)
+-{
+- kthread_flush_work(&notify_work);
+-}
+-
+-#else /* !CONFIG_PREEMPT_RT_FULL */
+-
+-static void pkg_thermal_notify_flush(void) { }
+-
+-static int pkg_thermal_notify(u64 msr_val)
+-{
+- pkg_thermal_notify_work(NULL);
+ return 0;
+ }
+-#endif /* CONFIG_PREEMPT_RT_FULL */
+
+ static int pkg_temp_thermal_device_add(unsigned int cpu)
+ {
+@@ -573,7 +548,6 @@ static void __exit pkg_temp_thermal_exit(void)
+ platform_thermal_package_rate_control = NULL;
+
+ cpuhp_remove_state(pkg_thermal_hp_state);
+- pkg_thermal_notify_flush();
+ debugfs_remove_recursive(debugfs);
+ kfree(packages);
+ }
+diff --git a/fs/aio.c b/fs/aio.c
+index 303e85033965..6deff68b92c7 100644
+--- a/fs/aio.c
++++ b/fs/aio.c
+@@ -121,7 +121,7 @@ struct kioctx {
+ long nr_pages;
+
+ struct rcu_work free_rwork; /* see free_ioctx() */
+- struct kthread_work free_kwork; /* see free_ioctx() */
++ struct work_struct free_work; /* see free_ioctx() */
+
+ /*
+ * signals when all in-flight requests are done
+@@ -609,9 +609,9 @@ static void free_ioctx_reqs(struct percpu_ref *ref)
+ * and ctx->users has dropped to 0, so we know no more kiocbs can be submitted -
+ * now it's safe to cancel any that need to be.
+ */
+-static void free_ioctx_users_work(struct kthread_work *work)
++static void free_ioctx_users_work(struct work_struct *work)
+ {
+- struct kioctx *ctx = container_of(work, struct kioctx, free_kwork);
++ struct kioctx *ctx = container_of(work, struct kioctx, free_work);
+ struct aio_kiocb *req;
+
+ spin_lock_irq(&ctx->ctx_lock);
+@@ -633,8 +633,8 @@ static void free_ioctx_users(struct percpu_ref *ref)
+ {
+ struct kioctx *ctx = container_of(ref, struct kioctx, users);
+
+- kthread_init_work(&ctx->free_kwork, free_ioctx_users_work);
+- kthread_schedule_work(&ctx->free_kwork);
++ INIT_WORK(&ctx->free_work, free_ioctx_users_work);
++ schedule_work(&ctx->free_work);
+ }
+
+ static int ioctx_add_table(struct kioctx *ctx, struct mm_struct *mm)
+diff --git a/include/linux/blk-cgroup.h b/include/linux/blk-cgroup.h
+index dc26ce6d840d..53f63f18ecdf 100644
+--- a/include/linux/blk-cgroup.h
++++ b/include/linux/blk-cgroup.h
+@@ -14,7 +14,7 @@
+ * Nauman Rafique <nauman@google.com>
+ */
+
+-#include <linux/kthread-cgroup.h>
++#include <linux/kthread.h>
+ #include <linux/percpu_counter.h>
+ #include <linux/seq_file.h>
+ #include <linux/radix-tree.h>
+diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
+index 5566d0049c22..c01e5d9597f9 100644
+--- a/include/linux/blkdev.h
++++ b/include/linux/blkdev.h
+@@ -665,7 +665,7 @@ struct request_queue {
+ #endif
+ struct rcu_head rcu_head;
+ wait_queue_head_t mq_freeze_wq;
+- struct kthread_work mq_pcpu_wake;
++ struct work_struct mq_pcpu_wake;
+ struct percpu_ref q_usage_counter;
+ struct list_head all_q_node;
+
+diff --git a/include/linux/kthread-cgroup.h b/include/linux/kthread-cgroup.h
+deleted file mode 100644
+index 53d34bca9d72..000000000000
+--- a/include/linux/kthread-cgroup.h
++++ /dev/null
+@@ -1,17 +0,0 @@
+-/* SPDX-License-Identifier: GPL-2.0 */
+-#ifndef _LINUX_KTHREAD_CGROUP_H
+-#define _LINUX_KTHREAD_CGROUP_H
+-#include <linux/kthread.h>
+-#include <linux/cgroup.h>
+-
+-#ifdef CONFIG_BLK_CGROUP
+-void kthread_associate_blkcg(struct cgroup_subsys_state *css);
+-struct cgroup_subsys_state *kthread_blkcg(void);
+-#else
+-static inline void kthread_associate_blkcg(struct cgroup_subsys_state *css) { }
+-static inline struct cgroup_subsys_state *kthread_blkcg(void)
+-{
+- return NULL;
+-}
+-#endif
+-#endif
+diff --git a/include/linux/kthread.h b/include/linux/kthread.h
+index 31140f0a6c2c..0e3b9b528c9e 100644
+--- a/include/linux/kthread.h
++++ b/include/linux/kthread.h
+@@ -4,6 +4,7 @@
+ /* Simple interface for creating and stopping kernel threads without mess. */
+ #include <linux/err.h>
+ #include <linux/sched.h>
++#include <linux/cgroup.h>
+
+ __printf(4, 5)
+ struct task_struct *kthread_create_on_node(int (*threadfn)(void *data),
+@@ -200,12 +201,14 @@ bool kthread_cancel_delayed_work_sync(struct kthread_delayed_work *work);
+
+ void kthread_destroy_worker(struct kthread_worker *worker);
+
+-extern struct kthread_worker kthread_global_worker;
+-void kthread_init_global_worker(void);
+-
+-static inline bool kthread_schedule_work(struct kthread_work *work)
++#ifdef CONFIG_BLK_CGROUP
++void kthread_associate_blkcg(struct cgroup_subsys_state *css);
++struct cgroup_subsys_state *kthread_blkcg(void);
++#else
++static inline void kthread_associate_blkcg(struct cgroup_subsys_state *css) { }
++static inline struct cgroup_subsys_state *kthread_blkcg(void)
+ {
+- return kthread_queue_work(&kthread_global_worker, work);
++ return NULL;
+ }
+-
++#endif
+ #endif /* _LINUX_KTHREAD_H */
+diff --git a/include/linux/swait.h b/include/linux/swait.h
+index f426a0661aa0..21ae66cd41d3 100644
+--- a/include/linux/swait.h
++++ b/include/linux/swait.h
+@@ -299,4 +299,18 @@ do { \
+ __ret; \
+ })
+
++#define __swait_event_lock_irq(wq, condition, lock, cmd) \
++ ___swait_event(wq, condition, TASK_UNINTERRUPTIBLE, 0, \
++ raw_spin_unlock_irq(&lock); \
++ cmd; \
++ schedule(); \
++ raw_spin_lock_irq(&lock))
++
++#define swait_event_lock_irq(wq_head, condition, lock) \
++ do { \
++ if (condition) \
++ break; \
++ __swait_event_lock_irq(wq_head, condition, lock, ); \
++ } while (0)
++
+ #endif /* _LINUX_SWAIT_H */
+diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h
+index 60d673e15632..546aa73fba6a 100644
+--- a/include/linux/workqueue.h
++++ b/include/linux/workqueue.h
+@@ -455,10 +455,6 @@ __alloc_workqueue_key(const char *fmt, unsigned int flags, int max_active,
+
+ extern void destroy_workqueue(struct workqueue_struct *wq);
+
+-struct workqueue_attrs *alloc_workqueue_attrs(gfp_t gfp_mask);
+-void free_workqueue_attrs(struct workqueue_attrs *attrs);
+-int apply_workqueue_attrs(struct workqueue_struct *wq,
+- const struct workqueue_attrs *attrs);
+ int workqueue_set_unbound_cpumask(cpumask_var_t cpumask);
+
+ extern bool queue_work_on(int cpu, struct workqueue_struct *wq,
+diff --git a/init/main.c b/init/main.c
+index f5d0917a4d4b..0d5763c5da28 100644
+--- a/init/main.c
++++ b/init/main.c
+@@ -1132,7 +1132,6 @@ static noinline void __init kernel_init_freeable(void)
+ smp_prepare_cpus(setup_max_cpus);
+
+ workqueue_init();
+- kthread_init_global_worker();
+
+ init_mm_internals();
+
+diff --git a/kernel/kthread.c b/kernel/kthread.c
+index 6bbd391f0d9c..c8cf4731ced8 100644
+--- a/kernel/kthread.c
++++ b/kernel/kthread.c
+@@ -20,7 +20,6 @@
+ #include <linux/freezer.h>
+ #include <linux/ptrace.h>
+ #include <linux/uaccess.h>
+-#include <linux/cgroup.h>
+ #include <trace/events/sched.h>
+
+ static DEFINE_SPINLOCK(kthread_create_lock);
+@@ -1245,19 +1244,6 @@ void kthread_destroy_worker(struct kthread_worker *worker)
+ }
+ EXPORT_SYMBOL(kthread_destroy_worker);
+
+-DEFINE_KTHREAD_WORKER(kthread_global_worker);
+-EXPORT_SYMBOL(kthread_global_worker);
+-
+-__init void kthread_init_global_worker(void)
+-{
+- kthread_global_worker.task = kthread_create(kthread_worker_fn,
+- &kthread_global_worker,
+- "kswork");
+- if (WARN_ON(IS_ERR(kthread_global_worker.task)))
+- return;
+- wake_up_process(kthread_global_worker.task);
+-}
+-
+ #ifdef CONFIG_BLK_CGROUP
+ /**
+ * kthread_associate_blkcg - associate blkcg to current kthread
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 3b0f62be3ece..1d4d4780dd79 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -3612,6 +3612,7 @@ static inline void sched_submit_work(struct task_struct *tsk)
+ {
+ if (!tsk->state)
+ return;
++
+ /*
+ * If a worker went to sleep, notify and ask workqueue whether
+ * it wants to wake up a task to maintain concurrency.
+diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
+index bbc408f24f5d..eb2db7e6a241 100644
+--- a/kernel/time/hrtimer.c
++++ b/kernel/time/hrtimer.c
+@@ -748,29 +748,6 @@ static void hrtimer_switch_to_hres(void)
+ retrigger_next_event(NULL);
+ }
+
+-#ifdef CONFIG_PREEMPT_RT_FULL
+-
+-static struct swork_event clock_set_delay_work;
+-
+-static void run_clock_set_delay(struct swork_event *event)
+-{
+- clock_was_set();
+-}
+-
+-void clock_was_set_delayed(void)
+-{
+- swork_queue(&clock_set_delay_work);
+-}
+-
+-static __init int create_clock_set_delay_thread(void)
+-{
+- WARN_ON(swork_get());
+- INIT_SWORK(&clock_set_delay_work, run_clock_set_delay);
+- return 0;
+-}
+-early_initcall(create_clock_set_delay_thread);
+-#else /* PREEMPT_RT_FULL */
+-
+ static void clock_was_set_work(struct work_struct *work)
+ {
+ clock_was_set();
+@@ -786,7 +763,6 @@ void clock_was_set_delayed(void)
+ {
+ schedule_work(&hrtimer_work);
+ }
+-#endif
+
+ #else
+
+diff --git a/kernel/workqueue.c b/kernel/workqueue.c
+index 91f5696cf335..4ed22776b2ee 100644
+--- a/kernel/workqueue.c
++++ b/kernel/workqueue.c
+@@ -50,8 +50,6 @@
+ #include <linux/sched/isolation.h>
+ #include <linux/nmi.h>
+ #include <linux/kvm_para.h>
+-#include <linux/locallock.h>
+-#include <linux/delay.h>
+
+ #include "workqueue_internal.h"
+
+@@ -126,11 +124,6 @@ enum {
+ * cpu or grabbing pool->lock is enough for read access. If
+ * POOL_DISASSOCIATED is set, it's identical to L.
+ *
+- * On RT we need the extra protection via rt_lock_idle_list() for
+- * the list manipulations against read access from
+- * wq_worker_sleeping(). All other places are nicely serialized via
+- * pool->lock.
+- *
+ * A: wq_pool_attach_mutex protected.
+ *
+ * PL: wq_pool_mutex protected.
+@@ -152,7 +145,7 @@ enum {
+ /* struct worker is defined in workqueue_internal.h */
+
+ struct worker_pool {
+- spinlock_t lock; /* the pool lock */
++ raw_spinlock_t lock; /* the pool lock */
+ int cpu; /* I: the associated cpu */
+ int node; /* I: the associated node ID */
+ int id; /* I: pool ID */
+@@ -305,8 +298,8 @@ static struct workqueue_attrs *wq_update_unbound_numa_attrs_buf;
+
+ static DEFINE_MUTEX(wq_pool_mutex); /* protects pools and workqueues list */
+ static DEFINE_MUTEX(wq_pool_attach_mutex); /* protects worker attach/detach */
+-static DEFINE_SPINLOCK(wq_mayday_lock); /* protects wq->maydays list */
+-static DECLARE_WAIT_QUEUE_HEAD(wq_manager_wait); /* wait for manager to go away */
++static DEFINE_RAW_SPINLOCK(wq_mayday_lock); /* protects wq->maydays list */
++static DECLARE_SWAIT_QUEUE_HEAD(wq_manager_wait); /* wait for manager to go away */
+
+ static LIST_HEAD(workqueues); /* PR: list of all workqueues */
+ static bool workqueue_freezing; /* PL: have wqs started freezing? */
+@@ -358,8 +351,6 @@ EXPORT_SYMBOL_GPL(system_power_efficient_wq);
+ struct workqueue_struct *system_freezable_power_efficient_wq __read_mostly;
+ EXPORT_SYMBOL_GPL(system_freezable_power_efficient_wq);
+
+-static DEFINE_LOCAL_IRQ_LOCK(pendingb_lock);
+-
+ static int worker_thread(void *__worker);
+ static void workqueue_sysfs_unregister(struct workqueue_struct *wq);
+
+@@ -436,31 +427,6 @@ static void workqueue_sysfs_unregister(struct workqueue_struct *wq);
+ if (({ assert_rcu_or_wq_mutex(wq); false; })) { } \
+ else
+
+-#ifdef CONFIG_PREEMPT_RT_BASE
+-static inline void rt_lock_idle_list(struct worker_pool *pool)
+-{
+- preempt_disable();
+-}
+-static inline void rt_unlock_idle_list(struct worker_pool *pool)
+-{
+- preempt_enable();
+-}
+-static inline void sched_lock_idle_list(struct worker_pool *pool) { }
+-static inline void sched_unlock_idle_list(struct worker_pool *pool) { }
+-#else
+-static inline void rt_lock_idle_list(struct worker_pool *pool) { }
+-static inline void rt_unlock_idle_list(struct worker_pool *pool) { }
+-static inline void sched_lock_idle_list(struct worker_pool *pool)
+-{
+- spin_lock_irq(&pool->lock);
+-}
+-static inline void sched_unlock_idle_list(struct worker_pool *pool)
+-{
+- spin_unlock_irq(&pool->lock);
+-}
+-#endif
+-
+-
+ #ifdef CONFIG_DEBUG_OBJECTS_WORK
+
+ static struct debug_obj_descr work_debug_descr;
+@@ -863,20 +829,14 @@ static struct worker *first_idle_worker(struct worker_pool *pool)
+ * Wake up the first idle worker of @pool.
+ *
+ * CONTEXT:
+- * spin_lock_irq(pool->lock).
++ * raw_spin_lock_irq(pool->lock).
+ */
+ static void wake_up_worker(struct worker_pool *pool)
+ {
+- struct worker *worker;
+-
+- rt_lock_idle_list(pool);
+-
+- worker = first_idle_worker(pool);
++ struct worker *worker = first_idle_worker(pool);
+
+ if (likely(worker))
+ wake_up_process(worker->task);
+-
+- rt_unlock_idle_list(pool);
+ }
+
+ /**
+@@ -905,7 +865,7 @@ void wq_worker_running(struct task_struct *task)
+ */
+ void wq_worker_sleeping(struct task_struct *task)
+ {
+- struct worker *worker = kthread_data(task);
++ struct worker *next, *worker = kthread_data(task);
+ struct worker_pool *pool;
+
+ /*
+@@ -922,18 +882,26 @@ void wq_worker_sleeping(struct task_struct *task)
+ return;
+
+ worker->sleeping = 1;
++ raw_spin_lock_irq(&pool->lock);
+
+ /*
+ * The counterpart of the following dec_and_test, implied mb,
+ * worklist not empty test sequence is in insert_work().
+ * Please read comment there.
++ *
++ * NOT_RUNNING is clear. This means that we're bound to and
++ * running on the local cpu w/ rq lock held and preemption
++ * disabled, which in turn means that none else could be
++ * manipulating idle_list, so dereferencing idle_list without pool
++ * lock is safe.
+ */
+ if (atomic_dec_and_test(&pool->nr_running) &&
+ !list_empty(&pool->worklist)) {
+- sched_lock_idle_list(pool);
+- wake_up_worker(pool);
+- sched_unlock_idle_list(pool);
++ next = first_idle_worker(pool);
++ if (next)
++ wake_up_process(next->task);
+ }
++ raw_spin_unlock_irq(&pool->lock);
+ }
+
+ /**
+@@ -944,7 +912,7 @@ void wq_worker_sleeping(struct task_struct *task)
+ * Set @flags in @worker->flags and adjust nr_running accordingly.
+ *
+ * CONTEXT:
+- * spin_lock_irq(pool->lock)
++ * raw_spin_lock_irq(pool->lock)
+ */
+ static inline void worker_set_flags(struct worker *worker, unsigned int flags)
+ {
+@@ -969,7 +937,7 @@ static inline void worker_set_flags(struct worker *worker, unsigned int flags)
+ * Clear @flags in @worker->flags and adjust nr_running accordingly.
+ *
+ * CONTEXT:
+- * spin_lock_irq(pool->lock)
++ * raw_spin_lock_irq(pool->lock)
+ */
+ static inline void worker_clr_flags(struct worker *worker, unsigned int flags)
+ {
+@@ -1017,7 +985,7 @@ static inline void worker_clr_flags(struct worker *worker, unsigned int flags)
+ * actually occurs, it should be easy to locate the culprit work function.
+ *
+ * CONTEXT:
+- * spin_lock_irq(pool->lock).
++ * raw_spin_lock_irq(pool->lock).
+ *
+ * Return:
+ * Pointer to worker which is executing @work if found, %NULL
+@@ -1052,7 +1020,7 @@ static struct worker *find_worker_executing_work(struct worker_pool *pool,
+ * nested inside outer list_for_each_entry_safe().
+ *
+ * CONTEXT:
+- * spin_lock_irq(pool->lock).
++ * raw_spin_lock_irq(pool->lock).
+ */
+ static void move_linked_works(struct work_struct *work, struct list_head *head,
+ struct work_struct **nextp)
+@@ -1130,11 +1098,9 @@ static void put_pwq_unlocked(struct pool_workqueue *pwq)
+ * As both pwqs and pools are RCU protected, the
+ * following lock operations are safe.
+ */
+- rcu_read_lock();
+- local_spin_lock_irq(pendingb_lock, &pwq->pool->lock);
++ raw_spin_lock_irq(&pwq->pool->lock);
+ put_pwq(pwq);
+- local_spin_unlock_irq(pendingb_lock, &pwq->pool->lock);
+- rcu_read_unlock();
++ raw_spin_unlock_irq(&pwq->pool->lock);
+ }
+ }
+
+@@ -1167,7 +1133,7 @@ static void pwq_activate_first_delayed(struct pool_workqueue *pwq)
+ * decrement nr_in_flight of its pwq and handle workqueue flushing.
+ *
+ * CONTEXT:
+- * spin_lock_irq(pool->lock).
++ * raw_spin_lock_irq(pool->lock).
+ */
+ static void pwq_dec_nr_in_flight(struct pool_workqueue *pwq, int color)
+ {
+@@ -1238,7 +1204,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+ struct worker_pool *pool;
+ struct pool_workqueue *pwq;
+
+- local_lock_irqsave(pendingb_lock, *flags);
++ local_irq_save(*flags);
+
+ /* try to steal the timer if it exists */
+ if (is_dwork) {
+@@ -1266,7 +1232,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+ if (!pool)
+ goto fail;
+
+- spin_lock(&pool->lock);
++ raw_spin_lock(&pool->lock);
+ /*
+ * work->data is guaranteed to point to pwq only while the work
+ * item is queued on pwq->wq, and both updating work->data to point
+@@ -1295,17 +1261,17 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+ /* work->data points to pwq iff queued, point to pool */
+ set_work_pool_and_keep_pending(work, pool->id);
+
+- spin_unlock(&pool->lock);
++ raw_spin_unlock(&pool->lock);
+ rcu_read_unlock();
+ return 1;
+ }
+- spin_unlock(&pool->lock);
++ raw_spin_unlock(&pool->lock);
+ fail:
+ rcu_read_unlock();
+- local_unlock_irqrestore(pendingb_lock, *flags);
++ local_irq_restore(*flags);
+ if (work_is_canceling(work))
+ return -ENOENT;
+- cpu_chill();
++ cpu_relax();
+ return -EAGAIN;
+ }
+
+@@ -1320,7 +1286,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+ * work_struct flags.
+ *
+ * CONTEXT:
+- * spin_lock_irq(pool->lock).
++ * raw_spin_lock_irq(pool->lock).
+ */
+ static void insert_work(struct pool_workqueue *pwq, struct work_struct *work,
+ struct list_head *head, unsigned int extra_flags)
+@@ -1407,13 +1373,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+ * queued or lose PENDING. Grabbing PENDING and queueing should
+ * happen with IRQ disabled.
+ */
+-#ifndef CONFIG_PREEMPT_RT_FULL
+- /*
+- * nort: On RT the "interrupts-disabled" rule has been replaced with
+- * pendingb_lock.
+- */
+ lockdep_assert_irqs_disabled();
+-#endif
+
+
+ /* if draining, only works from the same workqueue are allowed */
+@@ -1442,7 +1402,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+ if (last_pool && last_pool != pwq->pool) {
+ struct worker *worker;
+
+- spin_lock(&last_pool->lock);
++ raw_spin_lock(&last_pool->lock);
+
+ worker = find_worker_executing_work(last_pool, work);
+
+@@ -1450,11 +1410,11 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+ pwq = worker->current_pwq;
+ } else {
+ /* meh... not running there, queue here */
+- spin_unlock(&last_pool->lock);
+- spin_lock(&pwq->pool->lock);
++ raw_spin_unlock(&last_pool->lock);
++ raw_spin_lock(&pwq->pool->lock);
+ }
+ } else {
+- spin_lock(&pwq->pool->lock);
++ raw_spin_lock(&pwq->pool->lock);
+ }
+
+ /*
+@@ -1467,7 +1427,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+ */
+ if (unlikely(!pwq->refcnt)) {
+ if (wq->flags & WQ_UNBOUND) {
+- spin_unlock(&pwq->pool->lock);
++ raw_spin_unlock(&pwq->pool->lock);
+ cpu_relax();
+ goto retry;
+ }
+@@ -1500,7 +1460,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+ insert_work(pwq, work, worklist, work_flags);
+
+ out:
+- spin_unlock(&pwq->pool->lock);
++ raw_spin_unlock(&pwq->pool->lock);
+ rcu_read_unlock();
+ }
+
+@@ -1521,14 +1481,14 @@ bool queue_work_on(int cpu, struct workqueue_struct *wq,
+ bool ret = false;
+ unsigned long flags;
+
+- local_lock_irqsave(pendingb_lock,flags);
++ local_irq_save(flags);
+
+ if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) {
+ __queue_work(cpu, wq, work);
+ ret = true;
+ }
+
+- local_unlock_irqrestore(pendingb_lock, flags);
++ local_irq_restore(flags);
+ return ret;
+ }
+ EXPORT_SYMBOL(queue_work_on);
+@@ -1536,12 +1496,11 @@ EXPORT_SYMBOL(queue_work_on);
+ void delayed_work_timer_fn(struct timer_list *t)
+ {
+ struct delayed_work *dwork = from_timer(dwork, t, timer);
++ unsigned long flags;
+
+- /* XXX */
+- /* local_lock(pendingb_lock); */
+- /* should have been called from irqsafe timer with irq already off */
++ local_irq_save(flags);
+ __queue_work(dwork->cpu, dwork->wq, &dwork->work);
+- /* local_unlock(pendingb_lock); */
++ local_irq_restore(flags);
+ }
+ EXPORT_SYMBOL(delayed_work_timer_fn);
+
+@@ -1596,14 +1555,14 @@ bool queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
+ unsigned long flags;
+
+ /* read the comment in __queue_work() */
+- local_lock_irqsave(pendingb_lock, flags);
++ local_irq_save(flags);
+
+ if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) {
+ __queue_delayed_work(cpu, wq, dwork, delay);
+ ret = true;
+ }
+
+- local_unlock_irqrestore(pendingb_lock, flags);
++ local_irq_restore(flags);
+ return ret;
+ }
+ EXPORT_SYMBOL(queue_delayed_work_on);
+@@ -1638,7 +1597,7 @@ bool mod_delayed_work_on(int cpu, struct workqueue_struct *wq,
+
+ if (likely(ret >= 0)) {
+ __queue_delayed_work(cpu, wq, dwork, delay);
+- local_unlock_irqrestore(pendingb_lock, flags);
++ local_irq_restore(flags);
+ }
+
+ /* -ENOENT from try_to_grab_pending() becomes %true */
+@@ -1649,12 +1608,11 @@ EXPORT_SYMBOL_GPL(mod_delayed_work_on);
+ static void rcu_work_rcufn(struct rcu_head *rcu)
+ {
+ struct rcu_work *rwork = container_of(rcu, struct rcu_work, rcu);
+- unsigned long flags;
+
+ /* read the comment in __queue_work() */
+- local_lock_irqsave(pendingb_lock, flags);
++ local_irq_disable();
+ __queue_work(WORK_CPU_UNBOUND, rwork->wq, &rwork->work);
+- local_unlock_irqrestore(pendingb_lock, flags);
++ local_irq_enable();
+ }
+
+ /**
+@@ -1689,7 +1647,7 @@ EXPORT_SYMBOL(queue_rcu_work);
+ * necessary.
+ *
+ * LOCKING:
+- * spin_lock_irq(pool->lock).
++ * raw_spin_lock_irq(pool->lock).
+ */
+ static void worker_enter_idle(struct worker *worker)
+ {
+@@ -1706,9 +1664,7 @@ static void worker_enter_idle(struct worker *worker)
+ worker->last_active = jiffies;
+
+ /* idle_list is LIFO */
+- rt_lock_idle_list(pool);
+ list_add(&worker->entry, &pool->idle_list);
+- rt_unlock_idle_list(pool);
+
+ if (too_many_workers(pool) && !timer_pending(&pool->idle_timer))
+ mod_timer(&pool->idle_timer, jiffies + IDLE_WORKER_TIMEOUT);
+@@ -1731,7 +1687,7 @@ static void worker_enter_idle(struct worker *worker)
+ * @worker is leaving idle state. Update stats.
+ *
+ * LOCKING:
+- * spin_lock_irq(pool->lock).
++ * raw_spin_lock_irq(pool->lock).
+ */
+ static void worker_leave_idle(struct worker *worker)
+ {
+@@ -1741,9 +1697,7 @@ static void worker_leave_idle(struct worker *worker)
+ return;
+ worker_clr_flags(worker, WORKER_IDLE);
+ pool->nr_idle--;
+- rt_lock_idle_list(pool);
+ list_del_init(&worker->entry);
+- rt_unlock_idle_list(pool);
+ }
+
+ static struct worker *alloc_worker(int node)
+@@ -1868,11 +1822,11 @@ static struct worker *create_worker(struct worker_pool *pool)
+ worker_attach_to_pool(worker, pool);
+
+ /* start the newly created worker */
+- spin_lock_irq(&pool->lock);
++ raw_spin_lock_irq(&pool->lock);
+ worker->pool->nr_workers++;
+ worker_enter_idle(worker);
+ wake_up_process(worker->task);
+- spin_unlock_irq(&pool->lock);
++ raw_spin_unlock_irq(&pool->lock);
+
+ return worker;
+
+@@ -1891,7 +1845,7 @@ static struct worker *create_worker(struct worker_pool *pool)
+ * be idle.
+ *
+ * CONTEXT:
+- * spin_lock_irq(pool->lock).
++ * raw_spin_lock_irq(pool->lock).
+ */
+ static void destroy_worker(struct worker *worker)
+ {
+@@ -1908,9 +1862,7 @@ static void destroy_worker(struct worker *worker)
+ pool->nr_workers--;
+ pool->nr_idle--;
+
+- rt_lock_idle_list(pool);
+ list_del_init(&worker->entry);
+- rt_unlock_idle_list(pool);
+ worker->flags |= WORKER_DIE;
+ wake_up_process(worker->task);
+ }
+@@ -1919,7 +1871,7 @@ static void idle_worker_timeout(struct timer_list *t)
+ {
+ struct worker_pool *pool = from_timer(pool, t, idle_timer);
+
+- spin_lock_irq(&pool->lock);
++ raw_spin_lock_irq(&pool->lock);
+
+ while (too_many_workers(pool)) {
+ struct worker *worker;
+@@ -1937,7 +1889,7 @@ static void idle_worker_timeout(struct timer_list *t)
+ destroy_worker(worker);
+ }
+
+- spin_unlock_irq(&pool->lock);
++ raw_spin_unlock_irq(&pool->lock);
+ }
+
+ static void send_mayday(struct work_struct *work)
+@@ -1968,8 +1920,8 @@ static void pool_mayday_timeout(struct timer_list *t)
+ struct worker_pool *pool = from_timer(pool, t, mayday_timer);
+ struct work_struct *work;
+
+- spin_lock_irq(&pool->lock);
+- spin_lock(&wq_mayday_lock); /* for wq->maydays */
++ raw_spin_lock_irq(&pool->lock);
++ raw_spin_lock(&wq_mayday_lock); /* for wq->maydays */
+
+ if (need_to_create_worker(pool)) {
+ /*
+@@ -1982,8 +1934,8 @@ static void pool_mayday_timeout(struct timer_list *t)
+ send_mayday(work);
+ }
+
+- spin_unlock(&wq_mayday_lock);
+- spin_unlock_irq(&pool->lock);
++ raw_spin_unlock(&wq_mayday_lock);
++ raw_spin_unlock_irq(&pool->lock);
+
+ mod_timer(&pool->mayday_timer, jiffies + MAYDAY_INTERVAL);
+ }
+@@ -2002,7 +1954,7 @@ static void pool_mayday_timeout(struct timer_list *t)
+ * may_start_working() %true.
+ *
+ * LOCKING:
+- * spin_lock_irq(pool->lock) which may be released and regrabbed
++ * raw_spin_lock_irq(pool->lock) which may be released and regrabbed
+ * multiple times. Does GFP_KERNEL allocations. Called only from
+ * manager.
+ */
+@@ -2011,7 +1963,7 @@ __releases(&pool->lock)
+ __acquires(&pool->lock)
+ {
+ restart:
+- spin_unlock_irq(&pool->lock);
++ raw_spin_unlock_irq(&pool->lock);
+
+ /* if we don't make progress in MAYDAY_INITIAL_TIMEOUT, call for help */
+ mod_timer(&pool->mayday_timer, jiffies + MAYDAY_INITIAL_TIMEOUT);
+@@ -2027,7 +1979,7 @@ __acquires(&pool->lock)
+ }
+
+ del_timer_sync(&pool->mayday_timer);
+- spin_lock_irq(&pool->lock);
++ raw_spin_lock_irq(&pool->lock);
+ /*
+ * This is necessary even after a new worker was just successfully
+ * created as @pool->lock was dropped and the new worker might have
+@@ -2050,7 +2002,7 @@ __acquires(&pool->lock)
+ * and may_start_working() is true.
+ *
+ * CONTEXT:
+- * spin_lock_irq(pool->lock) which may be released and regrabbed
++ * raw_spin_lock_irq(pool->lock) which may be released and regrabbed
+ * multiple times. Does GFP_KERNEL allocations.
+ *
+ * Return:
+@@ -2073,7 +2025,7 @@ static bool manage_workers(struct worker *worker)
+
+ pool->manager = NULL;
+ pool->flags &= ~POOL_MANAGER_ACTIVE;
+- wake_up(&wq_manager_wait);
++ swake_up_one(&wq_manager_wait);
+ return true;
+ }
+
+@@ -2089,7 +2041,7 @@ static bool manage_workers(struct worker *worker)
+ * call this function to process a work.
+ *
+ * CONTEXT:
+- * spin_lock_irq(pool->lock) which is released and regrabbed.
++ * raw_spin_lock_irq(pool->lock) which is released and regrabbed.
+ */
+ static void process_one_work(struct worker *worker, struct work_struct *work)
+ __releases(&pool->lock)
+@@ -2171,7 +2123,7 @@ __acquires(&pool->lock)
+ */
+ set_work_pool_and_clear_pending(work, pool->id);
+
+- spin_unlock_irq(&pool->lock);
++ raw_spin_unlock_irq(&pool->lock);
+
+ lock_map_acquire(&pwq->wq->lockdep_map);
+ lock_map_acquire(&lockdep_map);
+@@ -2226,7 +2178,7 @@ __acquires(&pool->lock)
+ */
+ cond_resched();
+
+- spin_lock_irq(&pool->lock);
++ raw_spin_lock_irq(&pool->lock);
+
+ /* clear cpu intensive status */
+ if (unlikely(cpu_intensive))
+@@ -2249,7 +2201,7 @@ __acquires(&pool->lock)
+ * fetches a work from the top and executes it.
+ *
+ * CONTEXT:
+- * spin_lock_irq(pool->lock) which may be released and regrabbed
++ * raw_spin_lock_irq(pool->lock) which may be released and regrabbed
+ * multiple times.
+ */
+ static void process_scheduled_works(struct worker *worker)
+@@ -2291,11 +2243,11 @@ static int worker_thread(void *__worker)
+ /* tell the scheduler that this is a workqueue worker */
+ set_pf_worker(true);
+ woke_up:
+- spin_lock_irq(&pool->lock);
++ raw_spin_lock_irq(&pool->lock);
+
+ /* am I supposed to die? */
+ if (unlikely(worker->flags & WORKER_DIE)) {
+- spin_unlock_irq(&pool->lock);
++ raw_spin_unlock_irq(&pool->lock);
+ WARN_ON_ONCE(!list_empty(&worker->entry));
+ set_pf_worker(false);
+
+@@ -2361,7 +2313,7 @@ static int worker_thread(void *__worker)
+ */
+ worker_enter_idle(worker);
+ __set_current_state(TASK_IDLE);
+- spin_unlock_irq(&pool->lock);
++ raw_spin_unlock_irq(&pool->lock);
+ schedule();
+ goto woke_up;
+ }
+@@ -2415,7 +2367,7 @@ static int rescuer_thread(void *__rescuer)
+ should_stop = kthread_should_stop();
+
+ /* see whether any pwq is asking for help */
+- spin_lock_irq(&wq_mayday_lock);
++ raw_spin_lock_irq(&wq_mayday_lock);
+
+ while (!list_empty(&wq->maydays)) {
+ struct pool_workqueue *pwq = list_first_entry(&wq->maydays,
+@@ -2427,11 +2379,11 @@ static int rescuer_thread(void *__rescuer)
+ __set_current_state(TASK_RUNNING);
+ list_del_init(&pwq->mayday_node);
+
+- spin_unlock_irq(&wq_mayday_lock);
++ raw_spin_unlock_irq(&wq_mayday_lock);
+
+ worker_attach_to_pool(rescuer, pool);
+
+- spin_lock_irq(&pool->lock);
++ raw_spin_lock_irq(&pool->lock);
+
+ /*
+ * Slurp in all works issued via this workqueue and
+@@ -2460,7 +2412,7 @@ static int rescuer_thread(void *__rescuer)
+ * incur MAYDAY_INTERVAL delay inbetween.
+ */
+ if (need_to_create_worker(pool)) {
+- spin_lock(&wq_mayday_lock);
++ raw_spin_lock(&wq_mayday_lock);
+ /*
+ * Queue iff we aren't racing destruction
+ * and somebody else hasn't queued it already.
+@@ -2469,7 +2421,7 @@ static int rescuer_thread(void *__rescuer)
+ get_pwq(pwq);
+ list_add_tail(&pwq->mayday_node, &wq->maydays);
+ }
+- spin_unlock(&wq_mayday_lock);
++ raw_spin_unlock(&wq_mayday_lock);
+ }
+ }
+
+@@ -2487,14 +2439,14 @@ static int rescuer_thread(void *__rescuer)
+ if (need_more_worker(pool))
+ wake_up_worker(pool);
+
+- spin_unlock_irq(&pool->lock);
++ raw_spin_unlock_irq(&pool->lock);
+
+ worker_detach_from_pool(rescuer);
+
+- spin_lock_irq(&wq_mayday_lock);
++ raw_spin_lock_irq(&wq_mayday_lock);
+ }
+
+- spin_unlock_irq(&wq_mayday_lock);
++ raw_spin_unlock_irq(&wq_mayday_lock);
+
+ if (should_stop) {
+ __set_current_state(TASK_RUNNING);
+@@ -2574,7 +2526,7 @@ static void wq_barrier_func(struct work_struct *work)
+ * underneath us, so we can't reliably determine pwq from @target.
+ *
+ * CONTEXT:
+- * spin_lock_irq(pool->lock).
++ * raw_spin_lock_irq(pool->lock).
+ */
+ static void insert_wq_barrier(struct pool_workqueue *pwq,
+ struct wq_barrier *barr,
+@@ -2661,7 +2613,7 @@ static bool flush_workqueue_prep_pwqs(struct workqueue_struct *wq,
+ for_each_pwq(pwq, wq) {
+ struct worker_pool *pool = pwq->pool;
+
+- spin_lock_irq(&pool->lock);
++ raw_spin_lock_irq(&pool->lock);
+
+ if (flush_color >= 0) {
+ WARN_ON_ONCE(pwq->flush_color != -1);
+@@ -2678,7 +2630,7 @@ static bool flush_workqueue_prep_pwqs(struct workqueue_struct *wq,
+ pwq->work_color = work_color;
+ }
+
+- spin_unlock_irq(&pool->lock);
++ raw_spin_unlock_irq(&pool->lock);
+ }
+
+ if (flush_color >= 0 && atomic_dec_and_test(&wq->nr_pwqs_to_flush))
+@@ -2878,9 +2830,9 @@ void drain_workqueue(struct workqueue_struct *wq)
+ for_each_pwq(pwq, wq) {
+ bool drained;
+
+- spin_lock_irq(&pwq->pool->lock);
++ raw_spin_lock_irq(&pwq->pool->lock);
+ drained = !pwq->nr_active && list_empty(&pwq->delayed_works);
+- spin_unlock_irq(&pwq->pool->lock);
++ raw_spin_unlock_irq(&pwq->pool->lock);
+
+ if (drained)
+ continue;
+@@ -2916,7 +2868,7 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr,
+ return false;
+ }
+
+- spin_lock_irq(&pool->lock);
++ raw_spin_lock_irq(&pool->lock);
+ /* see the comment in try_to_grab_pending() with the same code */
+ pwq = get_work_pwq(work);
+ if (pwq) {
+@@ -2932,7 +2884,7 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr,
+ check_flush_dependency(pwq->wq, work);
+
+ insert_wq_barrier(pwq, barr, work, worker);
+- spin_unlock_irq(&pool->lock);
++ raw_spin_unlock_irq(&pool->lock);
+
+ /*
+ * Force a lock recursion deadlock when using flush_work() inside a
+@@ -2951,7 +2903,7 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr,
+ rcu_read_unlock();
+ return true;
+ already_gone:
+- spin_unlock_irq(&pool->lock);
++ raw_spin_unlock_irq(&pool->lock);
+ rcu_read_unlock();
+ return false;
+ }
+@@ -3052,7 +3004,7 @@ static bool __cancel_work_timer(struct work_struct *work, bool is_dwork)
+
+ /* tell other tasks trying to grab @work to back off */
+ mark_work_canceling(work);
+- local_unlock_irqrestore(pendingb_lock, flags);
++ local_irq_restore(flags);
+
+ /*
+ * This allows canceling during early boot. We know that @work
+@@ -3113,10 +3065,10 @@ EXPORT_SYMBOL_GPL(cancel_work_sync);
+ */
+ bool flush_delayed_work(struct delayed_work *dwork)
+ {
+- local_lock_irq(pendingb_lock);
++ local_irq_disable();
+ if (del_timer_sync(&dwork->timer))
+ __queue_work(dwork->cpu, dwork->wq, &dwork->work);
+- local_unlock_irq(pendingb_lock);
++ local_irq_enable();
+ return flush_work(&dwork->work);
+ }
+ EXPORT_SYMBOL(flush_delayed_work);
+@@ -3154,7 +3106,7 @@ static bool __cancel_work(struct work_struct *work, bool is_dwork)
+ return false;
+
+ set_work_pool_and_clear_pending(work, get_work_pool_id(work));
+- local_unlock_irqrestore(pendingb_lock, flags);
++ local_irq_restore(flags);
+ return ret;
+ }
+
+@@ -3264,7 +3216,7 @@ EXPORT_SYMBOL_GPL(execute_in_process_context);
+ *
+ * Undo alloc_workqueue_attrs().
+ */
+-void free_workqueue_attrs(struct workqueue_attrs *attrs)
++static void free_workqueue_attrs(struct workqueue_attrs *attrs)
+ {
+ if (attrs) {
+ free_cpumask_var(attrs->cpumask);
+@@ -3274,21 +3226,20 @@ void free_workqueue_attrs(struct workqueue_attrs *attrs)
+
+ /**
+ * alloc_workqueue_attrs - allocate a workqueue_attrs
+- * @gfp_mask: allocation mask to use
+ *
+ * Allocate a new workqueue_attrs, initialize with default settings and
+ * return it.
+ *
+ * Return: The allocated new workqueue_attr on success. %NULL on failure.
+ */
+-struct workqueue_attrs *alloc_workqueue_attrs(gfp_t gfp_mask)
++static struct workqueue_attrs *alloc_workqueue_attrs(void)
+ {
+ struct workqueue_attrs *attrs;
+
+- attrs = kzalloc(sizeof(*attrs), gfp_mask);
++ attrs = kzalloc(sizeof(*attrs), GFP_KERNEL);
+ if (!attrs)
+ goto fail;
+- if (!alloc_cpumask_var(&attrs->cpumask, gfp_mask))
++ if (!alloc_cpumask_var(&attrs->cpumask, GFP_KERNEL))
+ goto fail;
+
+ cpumask_copy(attrs->cpumask, cpu_possible_mask);
+@@ -3345,7 +3296,7 @@ static bool wqattrs_equal(const struct workqueue_attrs *a,
+ */
+ static int init_worker_pool(struct worker_pool *pool)
+ {
+- spin_lock_init(&pool->lock);
++ raw_spin_lock_init(&pool->lock);
+ pool->id = -1;
+ pool->cpu = -1;
+ pool->node = NUMA_NO_NODE;
+@@ -3366,7 +3317,7 @@ static int init_worker_pool(struct worker_pool *pool)
+ pool->refcnt = 1;
+
+ /* shouldn't fail above this point */
+- pool->attrs = alloc_workqueue_attrs(GFP_KERNEL);
++ pool->attrs = alloc_workqueue_attrs();
+ if (!pool->attrs)
+ return -ENOMEM;
+ return 0;
+@@ -3431,15 +3382,15 @@ static void put_unbound_pool(struct worker_pool *pool)
+ * @pool's workers from blocking on attach_mutex. We're the last
+ * manager and @pool gets freed with the flag set.
+ */
+- spin_lock_irq(&pool->lock);
+- wait_event_lock_irq(wq_manager_wait,
++ raw_spin_lock_irq(&pool->lock);
++ swait_event_lock_irq(wq_manager_wait,
+ !(pool->flags & POOL_MANAGER_ACTIVE), pool->lock);
+ pool->flags |= POOL_MANAGER_ACTIVE;
+
+ while ((worker = first_idle_worker(pool)))
+ destroy_worker(worker);
+ WARN_ON(pool->nr_workers || pool->nr_idle);
+- spin_unlock_irq(&pool->lock);
++ raw_spin_unlock_irq(&pool->lock);
+
+ mutex_lock(&wq_pool_attach_mutex);
+ if (!list_empty(&pool->workers))
+@@ -3599,7 +3550,7 @@ static void pwq_adjust_max_active(struct pool_workqueue *pwq)
+ return;
+
+ /* this function can be called during early boot w/ irq disabled */
+- spin_lock_irqsave(&pwq->pool->lock, flags);
++ raw_spin_lock_irqsave(&pwq->pool->lock, flags);
+
+ /*
+ * During [un]freezing, the caller is responsible for ensuring that
+@@ -3629,7 +3580,7 @@ static void pwq_adjust_max_active(struct pool_workqueue *pwq)
+ pwq->max_active = 0;
+ }
+
+- spin_unlock_irqrestore(&pwq->pool->lock, flags);
++ raw_spin_unlock_irqrestore(&pwq->pool->lock, flags);
+ }
+
+ /* initialize newly alloced @pwq which is associated with @wq and @pool */
+@@ -3802,8 +3753,8 @@ apply_wqattrs_prepare(struct workqueue_struct *wq,
+
+ ctx = kzalloc(struct_size(ctx, pwq_tbl, nr_node_ids), GFP_KERNEL);
+
+- new_attrs = alloc_workqueue_attrs(GFP_KERNEL);
+- tmp_attrs = alloc_workqueue_attrs(GFP_KERNEL);
++ new_attrs = alloc_workqueue_attrs();
++ tmp_attrs = alloc_workqueue_attrs();
+ if (!ctx || !new_attrs || !tmp_attrs)
+ goto out_free;
+
+@@ -3939,7 +3890,7 @@ static int apply_workqueue_attrs_locked(struct workqueue_struct *wq,
+ *
+ * Return: 0 on success and -errno on failure.
+ */
+-int apply_workqueue_attrs(struct workqueue_struct *wq,
++static int apply_workqueue_attrs(struct workqueue_struct *wq,
+ const struct workqueue_attrs *attrs)
+ {
+ int ret;
+@@ -3950,7 +3901,6 @@ int apply_workqueue_attrs(struct workqueue_struct *wq,
+
+ return ret;
+ }
+-EXPORT_SYMBOL_GPL(apply_workqueue_attrs);
+
+ /**
+ * wq_update_unbound_numa - update NUMA affinity of a wq for CPU hot[un]plug
+@@ -4028,9 +3978,9 @@ static void wq_update_unbound_numa(struct workqueue_struct *wq, int cpu,
+
+ use_dfl_pwq:
+ mutex_lock(&wq->mutex);
+- spin_lock_irq(&wq->dfl_pwq->pool->lock);
++ raw_spin_lock_irq(&wq->dfl_pwq->pool->lock);
+ get_pwq(wq->dfl_pwq);
+- spin_unlock_irq(&wq->dfl_pwq->pool->lock);
++ raw_spin_unlock_irq(&wq->dfl_pwq->pool->lock);
+ old_pwq = numa_pwq_tbl_install(wq, node, wq->dfl_pwq);
+ out_unlock:
+ mutex_unlock(&wq->mutex);
+@@ -4149,7 +4099,7 @@ struct workqueue_struct *__alloc_workqueue_key(const char *fmt,
+ return NULL;
+
+ if (flags & WQ_UNBOUND) {
+- wq->unbound_attrs = alloc_workqueue_attrs(GFP_KERNEL);
++ wq->unbound_attrs = alloc_workqueue_attrs();
+ if (!wq->unbound_attrs)
+ goto err_free_wq;
+ }
+@@ -4236,9 +4186,9 @@ void destroy_workqueue(struct workqueue_struct *wq)
+ struct worker *rescuer = wq->rescuer;
+
+ /* this prevents new queueing */
+- spin_lock_irq(&wq_mayday_lock);
++ raw_spin_lock_irq(&wq_mayday_lock);
+ wq->rescuer = NULL;
+- spin_unlock_irq(&wq_mayday_lock);
++ raw_spin_unlock_irq(&wq_mayday_lock);
+
+ /* rescuer will empty maydays list before exiting */
+ kthread_stop(rescuer->task);
+@@ -4433,10 +4383,10 @@ unsigned int work_busy(struct work_struct *work)
+ rcu_read_lock();
+ pool = get_work_pool(work);
+ if (pool) {
+- spin_lock_irqsave(&pool->lock, flags);
++ raw_spin_lock_irqsave(&pool->lock, flags);
+ if (find_worker_executing_work(pool, work))
+ ret |= WORK_BUSY_RUNNING;
+- spin_unlock_irqrestore(&pool->lock, flags);
++ raw_spin_unlock_irqrestore(&pool->lock, flags);
+ }
+ rcu_read_unlock();
+
+@@ -4643,10 +4593,10 @@ void show_workqueue_state(void)
+ pr_info("workqueue %s: flags=0x%x\n", wq->name, wq->flags);
+
+ for_each_pwq(pwq, wq) {
+- spin_lock_irqsave(&pwq->pool->lock, flags);
++ raw_spin_lock_irqsave(&pwq->pool->lock, flags);
+ if (pwq->nr_active || !list_empty(&pwq->delayed_works))
+ show_pwq(pwq);
+- spin_unlock_irqrestore(&pwq->pool->lock, flags);
++ raw_spin_unlock_irqrestore(&pwq->pool->lock, flags);
+ /*
+ * We could be printing a lot from atomic context, e.g.
+ * sysrq-t -> show_workqueue_state(). Avoid triggering
+@@ -4660,7 +4610,7 @@ void show_workqueue_state(void)
+ struct worker *worker;
+ bool first = true;
+
+- spin_lock_irqsave(&pool->lock, flags);
++ raw_spin_lock_irqsave(&pool->lock, flags);
+ if (pool->nr_workers == pool->nr_idle)
+ goto next_pool;
+
+@@ -4679,7 +4629,7 @@ void show_workqueue_state(void)
+ }
+ pr_cont("\n");
+ next_pool:
+- spin_unlock_irqrestore(&pool->lock, flags);
++ raw_spin_unlock_irqrestore(&pool->lock, flags);
+ /*
+ * We could be printing a lot from atomic context, e.g.
+ * sysrq-t -> show_workqueue_state(). Avoid triggering
+@@ -4709,7 +4659,7 @@ void wq_worker_comm(char *buf, size_t size, struct task_struct *task)
+ struct worker_pool *pool = worker->pool;
+
+ if (pool) {
+- spin_lock_irq(&pool->lock);
++ raw_spin_lock_irq(&pool->lock);
+ /*
+ * ->desc tracks information (wq name or
+ * set_worker_desc()) for the latest execution. If
+@@ -4723,7 +4673,7 @@ void wq_worker_comm(char *buf, size_t size, struct task_struct *task)
+ scnprintf(buf + off, size - off, "-%s",
+ worker->desc);
+ }
+- spin_unlock_irq(&pool->lock);
++ raw_spin_unlock_irq(&pool->lock);
+ }
+ }
+
+@@ -4754,7 +4704,7 @@ static void unbind_workers(int cpu)
+
+ for_each_cpu_worker_pool(pool, cpu) {
+ mutex_lock(&wq_pool_attach_mutex);
+- spin_lock_irq(&pool->lock);
++ raw_spin_lock_irq(&pool->lock);
+
+ /*
+ * We've blocked all attach/detach operations. Make all workers
+@@ -4768,7 +4718,7 @@ static void unbind_workers(int cpu)
+
+ pool->flags |= POOL_DISASSOCIATED;
+
+- spin_unlock_irq(&pool->lock);
++ raw_spin_unlock_irq(&pool->lock);
+ mutex_unlock(&wq_pool_attach_mutex);
+
+ /*
+@@ -4794,9 +4744,9 @@ static void unbind_workers(int cpu)
+ * worker blocking could lead to lengthy stalls. Kick off
+ * unbound chain execution of currently pending work items.
+ */
+- spin_lock_irq(&pool->lock);
++ raw_spin_lock_irq(&pool->lock);
+ wake_up_worker(pool);
+- spin_unlock_irq(&pool->lock);
++ raw_spin_unlock_irq(&pool->lock);
+ }
+ }
+
+@@ -4823,7 +4773,7 @@ static void rebind_workers(struct worker_pool *pool)
+ WARN_ON_ONCE(set_cpus_allowed_ptr(worker->task,
+ pool->attrs->cpumask) < 0);
+
+- spin_lock_irq(&pool->lock);
++ raw_spin_lock_irq(&pool->lock);
+
+ pool->flags &= ~POOL_DISASSOCIATED;
+
+@@ -4862,7 +4812,7 @@ static void rebind_workers(struct worker_pool *pool)
+ WRITE_ONCE(worker->flags, worker_flags);
+ }
+
+- spin_unlock_irq(&pool->lock);
++ raw_spin_unlock_irq(&pool->lock);
+ }
+
+ /**
+@@ -5321,7 +5271,7 @@ static struct workqueue_attrs *wq_sysfs_prep_attrs(struct workqueue_struct *wq)
+
+ lockdep_assert_held(&wq_pool_mutex);
+
+- attrs = alloc_workqueue_attrs(GFP_KERNEL);
++ attrs = alloc_workqueue_attrs();
+ if (!attrs)
+ return NULL;
+
+@@ -5750,7 +5700,7 @@ static void __init wq_numa_init(void)
+ return;
+ }
+
+- wq_update_unbound_numa_attrs_buf = alloc_workqueue_attrs(GFP_KERNEL);
++ wq_update_unbound_numa_attrs_buf = alloc_workqueue_attrs();
+ BUG_ON(!wq_update_unbound_numa_attrs_buf);
+
+ /*
+@@ -5825,7 +5775,7 @@ int __init workqueue_init_early(void)
+ for (i = 0; i < NR_STD_WORKER_POOLS; i++) {
+ struct workqueue_attrs *attrs;
+
+- BUG_ON(!(attrs = alloc_workqueue_attrs(GFP_KERNEL)));
++ BUG_ON(!(attrs = alloc_workqueue_attrs()));
+ attrs->nice = std_nice[i];
+ unbound_std_wq_attrs[i] = attrs;
+
+@@ -5834,7 +5784,7 @@ int __init workqueue_init_early(void)
+ * guaranteed by max_active which is enforced by pwqs.
+ * Turn off NUMA so that dfl_pwq is used for all nodes.
+ */
+- BUG_ON(!(attrs = alloc_workqueue_attrs(GFP_KERNEL)));
++ BUG_ON(!(attrs = alloc_workqueue_attrs()));
+ attrs->nice = std_nice[i];
+ attrs->no_numa = true;
+ ordered_wq_attrs[i] = attrs;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0286-i2c-exynos5-Remove-IRQF_ONESHOT.patch b/debian/patches-rt/0286-i2c-exynos5-Remove-IRQF_ONESHOT.patch
new file mode 100644
index 000000000..077cdff08
--- /dev/null
+++ b/debian/patches-rt/0286-i2c-exynos5-Remove-IRQF_ONESHOT.patch
@@ -0,0 +1,48 @@
+From 6a0747038b36d84b3cb51152e09dda7db35fd222 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 13 Aug 2019 12:30:12 +0200
+Subject: [PATCH 286/347] i2c: exynos5: Remove IRQF_ONESHOT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 4b217df0ab3f7910c96e42091cc7d9f221d05f01 ]
+
+The drivers sets IRQF_ONESHOT and passes only a primary handler. The IRQ
+is masked while the primary is handler is invoked independently of
+IRQF_ONESHOT.
+With IRQF_ONESHOT the core code will not force-thread the interrupt and
+this is probably not intended. I *assume* that the original author copied
+the IRQ registration from another driver which passed a primary and
+secondary handler and removed the secondary handler but keeping the
+ONESHOT flag.
+
+Remove IRQF_ONESHOT.
+
+Reported-by: Benjamin Rouxel <benjamin.rouxel@uva.nl>
+Tested-by: Benjamin Rouxel <benjamin.rouxel@uva.nl>
+Cc: Kukjin Kim <kgene@kernel.org>
+Cc: Krzysztof Kozlowski <krzk@kernel.org>
+Cc: linux-samsung-soc@vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ drivers/i2c/busses/i2c-exynos5.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/drivers/i2c/busses/i2c-exynos5.c b/drivers/i2c/busses/i2c-exynos5.c
+index c1ce2299a76e..5c57ecf4b79e 100644
+--- a/drivers/i2c/busses/i2c-exynos5.c
++++ b/drivers/i2c/busses/i2c-exynos5.c
+@@ -800,9 +800,7 @@ static int exynos5_i2c_probe(struct platform_device *pdev)
+ }
+
+ ret = devm_request_irq(&pdev->dev, i2c->irq, exynos5_i2c_irq,
+- IRQF_NO_SUSPEND | IRQF_ONESHOT,
+- dev_name(&pdev->dev), i2c);
+-
++ IRQF_NO_SUSPEND, dev_name(&pdev->dev), i2c);
+ if (ret != 0) {
+ dev_err(&pdev->dev, "cannot request HS-I2C IRQ %d\n", i2c->irq);
+ goto err_clk;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0287-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch b/debian/patches-rt/0287-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch
new file mode 100644
index 000000000..72f7695b6
--- /dev/null
+++ b/debian/patches-rt/0287-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch
@@ -0,0 +1,42 @@
+From d269babaefa33b4ea277b2a6033637b320c77f6f Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 13 Aug 2019 12:30:37 +0200
+Subject: [PATCH 287/347] i2c: hix5hd2: Remove IRQF_ONESHOT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit e88b481f3f86f11e3243e0808a830e5ca5782a9d ]
+
+The drivers sets IRQF_ONESHOT and passes only a primary handler. The IRQ
+is masked while the primary is handler is invoked independently of
+IRQF_ONESHOT.
+With IRQF_ONESHOT the core code will not force-thread the interrupt and
+this is probably not intended. I *assume* that the original author copied
+the IRQ registration from another driver which passed a primary and
+secondary handler and removed the secondary handler but keeping the
+ONESHOT flag.
+
+Remove IRQF_ONESHOT.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ drivers/i2c/busses/i2c-hix5hd2.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/drivers/i2c/busses/i2c-hix5hd2.c b/drivers/i2c/busses/i2c-hix5hd2.c
+index b5ad7696adf9..0f08ef1f7f41 100644
+--- a/drivers/i2c/busses/i2c-hix5hd2.c
++++ b/drivers/i2c/busses/i2c-hix5hd2.c
+@@ -449,8 +449,7 @@ static int hix5hd2_i2c_probe(struct platform_device *pdev)
+ hix5hd2_i2c_init(priv);
+
+ ret = devm_request_irq(&pdev->dev, irq, hix5hd2_i2c_irq,
+- IRQF_NO_SUSPEND | IRQF_ONESHOT,
+- dev_name(&pdev->dev), priv);
++ IRQF_NO_SUSPEND, dev_name(&pdev->dev), priv);
+ if (ret != 0) {
+ dev_err(&pdev->dev, "cannot request HS-I2C IRQ %d\n", irq);
+ goto err_clk;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0288-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch b/debian/patches-rt/0288-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch
new file mode 100644
index 000000000..8e5e4c8de
--- /dev/null
+++ b/debian/patches-rt/0288-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch
@@ -0,0 +1,50 @@
+From 8161b3a85bed84a4cc75f68d048b35c2e09442ed Mon Sep 17 00:00:00 2001
+From: Juri Lelli <juri.lelli@redhat.com>
+Date: Wed, 31 Jul 2019 12:37:15 +0200
+Subject: [PATCH 288/347] sched/deadline: Ensure inactive_timer runs in hardirq
+ context
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit ba94e7aed7405c58251b1380e6e7d73aa8284b41 ]
+
+SCHED_DEADLINE inactive timer needs to run in hardirq context (as
+dl_task_timer already does) on PREEMPT_RT
+
+Change the mode to HRTIMER_MODE_REL_HARD.
+
+[ tglx: Fixed up the start site, so mode debugging works ]
+
+Signed-off-by: Juri Lelli <juri.lelli@redhat.com>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Link: https://lkml.kernel.org/r/20190731103715.4047-1-juri.lelli@redhat.com
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/sched/deadline.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
+index 1a285367081c..0bc1bad199c1 100644
+--- a/kernel/sched/deadline.c
++++ b/kernel/sched/deadline.c
+@@ -287,7 +287,7 @@ static void task_non_contending(struct task_struct *p)
+
+ dl_se->dl_non_contending = 1;
+ get_task_struct(p);
+- hrtimer_start(timer, ns_to_ktime(zerolag_time), HRTIMER_MODE_REL);
++ hrtimer_start(timer, ns_to_ktime(zerolag_time), HRTIMER_MODE_REL_HARD);
+ }
+
+ static void task_contending(struct sched_dl_entity *dl_se, int flags)
+@@ -1325,7 +1325,7 @@ void init_dl_inactive_task_timer(struct sched_dl_entity *dl_se)
+ {
+ struct hrtimer *timer = &dl_se->inactive_timer;
+
+- hrtimer_init(timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
++ hrtimer_init(timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
+ timer->function = inactive_task_timer;
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0289-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch b/debian/patches-rt/0289-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch
new file mode 100644
index 000000000..3fe37ca3c
--- /dev/null
+++ b/debian/patches-rt/0289-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch
@@ -0,0 +1,120 @@
+From 402252a8f4f986a5eb23639e3b9a1d9df4902d27 Mon Sep 17 00:00:00 2001
+From: Clark Williams <williams@redhat.com>
+Date: Mon, 15 Jul 2019 15:25:00 -0500
+Subject: [PATCH 289/347] thermal/x86_pkg_temp: make pkg_temp_lock a raw
+ spinlock
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 8b03bb3ea7861b70b506199a69b1c8f81fe2d4d0 ]
+
+The spinlock pkg_temp_lock has the potential of being taken in atomic
+context on v5.2-rt PREEMPT_RT. It's static and limited scope so
+go ahead and make it a raw spinlock.
+
+Signed-off-by: Clark Williams <williams@redhat.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ drivers/thermal/x86_pkg_temp_thermal.c | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/drivers/thermal/x86_pkg_temp_thermal.c b/drivers/thermal/x86_pkg_temp_thermal.c
+index 1ef937d799e4..540becb78a0f 100644
+--- a/drivers/thermal/x86_pkg_temp_thermal.c
++++ b/drivers/thermal/x86_pkg_temp_thermal.c
+@@ -75,7 +75,7 @@ static int max_packages __read_mostly;
+ /* Array of package pointers */
+ static struct pkg_device **packages;
+ /* Serializes interrupt notification, work and hotplug */
+-static DEFINE_SPINLOCK(pkg_temp_lock);
++static DEFINE_RAW_SPINLOCK(pkg_temp_lock);
+ /* Protects zone operation in the work function against hotplug removal */
+ static DEFINE_MUTEX(thermal_zone_mutex);
+
+@@ -291,12 +291,12 @@ static void pkg_temp_thermal_threshold_work_fn(struct work_struct *work)
+ u64 msr_val, wr_val;
+
+ mutex_lock(&thermal_zone_mutex);
+- spin_lock_irq(&pkg_temp_lock);
++ raw_spin_lock_irq(&pkg_temp_lock);
+ ++pkg_work_cnt;
+
+ pkgdev = pkg_temp_thermal_get_dev(cpu);
+ if (!pkgdev) {
+- spin_unlock_irq(&pkg_temp_lock);
++ raw_spin_unlock_irq(&pkg_temp_lock);
+ mutex_unlock(&thermal_zone_mutex);
+ return;
+ }
+@@ -310,7 +310,7 @@ static void pkg_temp_thermal_threshold_work_fn(struct work_struct *work)
+ }
+
+ enable_pkg_thres_interrupt();
+- spin_unlock_irq(&pkg_temp_lock);
++ raw_spin_unlock_irq(&pkg_temp_lock);
+
+ /*
+ * If tzone is not NULL, then thermal_zone_mutex will prevent the
+@@ -335,7 +335,7 @@ static int pkg_thermal_notify(u64 msr_val)
+ struct pkg_device *pkgdev;
+ unsigned long flags;
+
+- spin_lock_irqsave(&pkg_temp_lock, flags);
++ raw_spin_lock_irqsave(&pkg_temp_lock, flags);
+ ++pkg_interrupt_cnt;
+
+ disable_pkg_thres_interrupt();
+@@ -347,7 +347,7 @@ static int pkg_thermal_notify(u64 msr_val)
+ pkg_thermal_schedule_work(pkgdev->cpu, &pkgdev->work);
+ }
+
+- spin_unlock_irqrestore(&pkg_temp_lock, flags);
++ raw_spin_unlock_irqrestore(&pkg_temp_lock, flags);
+ return 0;
+ }
+
+@@ -393,9 +393,9 @@ static int pkg_temp_thermal_device_add(unsigned int cpu)
+ pkgdev->msr_pkg_therm_high);
+
+ cpumask_set_cpu(cpu, &pkgdev->cpumask);
+- spin_lock_irq(&pkg_temp_lock);
++ raw_spin_lock_irq(&pkg_temp_lock);
+ packages[pkgid] = pkgdev;
+- spin_unlock_irq(&pkg_temp_lock);
++ raw_spin_unlock_irq(&pkg_temp_lock);
+ return 0;
+ }
+
+@@ -432,7 +432,7 @@ static int pkg_thermal_cpu_offline(unsigned int cpu)
+ }
+
+ /* Protect against work and interrupts */
+- spin_lock_irq(&pkg_temp_lock);
++ raw_spin_lock_irq(&pkg_temp_lock);
+
+ /*
+ * Check whether this cpu was the current target and store the new
+@@ -464,9 +464,9 @@ static int pkg_thermal_cpu_offline(unsigned int cpu)
+ * To cancel the work we need to drop the lock, otherwise
+ * we might deadlock if the work needs to be flushed.
+ */
+- spin_unlock_irq(&pkg_temp_lock);
++ raw_spin_unlock_irq(&pkg_temp_lock);
+ cancel_delayed_work_sync(&pkgdev->work);
+- spin_lock_irq(&pkg_temp_lock);
++ raw_spin_lock_irq(&pkg_temp_lock);
+ /*
+ * If this is not the last cpu in the package and the work
+ * did not run after we dropped the lock above, then we
+@@ -477,7 +477,7 @@ static int pkg_thermal_cpu_offline(unsigned int cpu)
+ pkg_thermal_schedule_work(target, &pkgdev->work);
+ }
+
+- spin_unlock_irq(&pkg_temp_lock);
++ raw_spin_unlock_irq(&pkg_temp_lock);
+
+ /* Final cleanup if this is the last cpu */
+ if (lastcpu)
+--
+2.36.1
+
diff --git a/debian/patches-rt/0290-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch b/debian/patches-rt/0290-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch
new file mode 100644
index 000000000..5376a0901
--- /dev/null
+++ b/debian/patches-rt/0290-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch
@@ -0,0 +1,296 @@
+From f2b7bfd175503ed854870b368aaa9e1be2159cab Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 14 Aug 2019 16:38:43 +0200
+Subject: [PATCH 290/347] dma-buf: Use seqlock_t instread disabling preemption
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 240610aa31094f51f299f06eb8dae8d4cd8d4500 ]
+
+"dma reservation" disables preemption while acquiring the write access
+for "seqcount" and then may acquire a spinlock_t.
+
+Replace the seqcount with a seqlock_t which provides seqcount like
+semantic and lock for writer.
+
+Link: https://lkml.kernel.org/r/f410b429-db86-f81c-7c67-f563fa808b62@free.fr
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ drivers/dma-buf/dma-buf.c | 8 ++--
+ drivers/dma-buf/reservation.c | 43 +++++++------------
+ .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 6 +--
+ drivers/gpu/drm/i915/i915_gem.c | 10 ++---
+ include/linux/reservation.h | 4 +-
+ 5 files changed, 29 insertions(+), 42 deletions(-)
+
+diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
+index 69842145c223..4c3ef46e7149 100644
+--- a/drivers/dma-buf/dma-buf.c
++++ b/drivers/dma-buf/dma-buf.c
+@@ -179,7 +179,7 @@ static __poll_t dma_buf_poll(struct file *file, poll_table *poll)
+ return 0;
+
+ retry:
+- seq = read_seqcount_begin(&resv->seq);
++ seq = read_seqbegin(&resv->seq);
+ rcu_read_lock();
+
+ fobj = rcu_dereference(resv->fence);
+@@ -188,7 +188,7 @@ static __poll_t dma_buf_poll(struct file *file, poll_table *poll)
+ else
+ shared_count = 0;
+ fence_excl = rcu_dereference(resv->fence_excl);
+- if (read_seqcount_retry(&resv->seq, seq)) {
++ if (read_seqretry(&resv->seq, seq)) {
+ rcu_read_unlock();
+ goto retry;
+ }
+@@ -1046,12 +1046,12 @@ static int dma_buf_debug_show(struct seq_file *s, void *unused)
+
+ robj = buf_obj->resv;
+ while (true) {
+- seq = read_seqcount_begin(&robj->seq);
++ seq = read_seqbegin(&robj->seq);
+ rcu_read_lock();
+ fobj = rcu_dereference(robj->fence);
+ shared_count = fobj ? fobj->shared_count : 0;
+ fence = rcu_dereference(robj->fence_excl);
+- if (!read_seqcount_retry(&robj->seq, seq))
++ if (!read_seqretry(&robj->seq, seq))
+ break;
+ rcu_read_unlock();
+ }
+diff --git a/drivers/dma-buf/reservation.c b/drivers/dma-buf/reservation.c
+index 49ab09468ba1..f11d58492216 100644
+--- a/drivers/dma-buf/reservation.c
++++ b/drivers/dma-buf/reservation.c
+@@ -109,8 +109,7 @@ reservation_object_add_shared_inplace(struct reservation_object *obj,
+
+ dma_fence_get(fence);
+
+- preempt_disable();
+- write_seqcount_begin(&obj->seq);
++ write_seqlock(&obj->seq);
+
+ for (i = 0; i < fobj->shared_count; ++i) {
+ struct dma_fence *old_fence;
+@@ -121,8 +120,7 @@ reservation_object_add_shared_inplace(struct reservation_object *obj,
+ if (old_fence->context == fence->context) {
+ /* memory barrier is added by write_seqcount_begin */
+ RCU_INIT_POINTER(fobj->shared[i], fence);
+- write_seqcount_end(&obj->seq);
+- preempt_enable();
++ write_sequnlock(&obj->seq);
+
+ dma_fence_put(old_fence);
+ return;
+@@ -146,8 +144,7 @@ reservation_object_add_shared_inplace(struct reservation_object *obj,
+ fobj->shared_count++;
+ }
+
+- write_seqcount_end(&obj->seq);
+- preempt_enable();
++ write_sequnlock(&obj->seq);
+
+ dma_fence_put(signaled);
+ }
+@@ -191,15 +188,13 @@ reservation_object_add_shared_replace(struct reservation_object *obj,
+ fobj->shared_count++;
+
+ done:
+- preempt_disable();
+- write_seqcount_begin(&obj->seq);
++ write_seqlock(&obj->seq);
+ /*
+ * RCU_INIT_POINTER can be used here,
+ * seqcount provides the necessary barriers
+ */
+ RCU_INIT_POINTER(obj->fence, fobj);
+- write_seqcount_end(&obj->seq);
+- preempt_enable();
++ write_sequnlock(&obj->seq);
+
+ if (!old)
+ return;
+@@ -259,14 +254,11 @@ void reservation_object_add_excl_fence(struct reservation_object *obj,
+ if (fence)
+ dma_fence_get(fence);
+
+- preempt_disable();
+- write_seqcount_begin(&obj->seq);
+- /* write_seqcount_begin provides the necessary memory barrier */
++ write_seqlock(&obj->seq);
+ RCU_INIT_POINTER(obj->fence_excl, fence);
+ if (old)
+ old->shared_count = 0;
+- write_seqcount_end(&obj->seq);
+- preempt_enable();
++ write_sequnlock(&obj->seq);
+
+ /* inplace update, no shared fences */
+ while (i--)
+@@ -349,13 +341,10 @@ int reservation_object_copy_fences(struct reservation_object *dst,
+ src_list = reservation_object_get_list(dst);
+ old = reservation_object_get_excl(dst);
+
+- preempt_disable();
+- write_seqcount_begin(&dst->seq);
+- /* write_seqcount_begin provides the necessary memory barrier */
++ write_seqlock(&dst->seq);
+ RCU_INIT_POINTER(dst->fence_excl, new);
+ RCU_INIT_POINTER(dst->fence, dst_list);
+- write_seqcount_end(&dst->seq);
+- preempt_enable();
++ write_sequnlock(&dst->seq);
+
+ if (src_list)
+ kfree_rcu(src_list, rcu);
+@@ -396,7 +385,7 @@ int reservation_object_get_fences_rcu(struct reservation_object *obj,
+ shared_count = i = 0;
+
+ rcu_read_lock();
+- seq = read_seqcount_begin(&obj->seq);
++ seq = read_seqbegin(&obj->seq);
+
+ fence_excl = rcu_dereference(obj->fence_excl);
+ if (fence_excl && !dma_fence_get_rcu(fence_excl))
+@@ -445,7 +434,7 @@ int reservation_object_get_fences_rcu(struct reservation_object *obj,
+ }
+ }
+
+- if (i != shared_count || read_seqcount_retry(&obj->seq, seq)) {
++ if (i != shared_count || read_seqretry(&obj->seq, seq)) {
+ while (i--)
+ dma_fence_put(shared[i]);
+ dma_fence_put(fence_excl);
+@@ -494,7 +483,7 @@ long reservation_object_wait_timeout_rcu(struct reservation_object *obj,
+
+ retry:
+ shared_count = 0;
+- seq = read_seqcount_begin(&obj->seq);
++ seq = read_seqbegin(&obj->seq);
+ rcu_read_lock();
+ i = -1;
+
+@@ -541,7 +530,7 @@ long reservation_object_wait_timeout_rcu(struct reservation_object *obj,
+
+ rcu_read_unlock();
+ if (fence) {
+- if (read_seqcount_retry(&obj->seq, seq)) {
++ if (read_seqretry(&obj->seq, seq)) {
+ dma_fence_put(fence);
+ goto retry;
+ }
+@@ -597,7 +586,7 @@ bool reservation_object_test_signaled_rcu(struct reservation_object *obj,
+ retry:
+ ret = true;
+ shared_count = 0;
+- seq = read_seqcount_begin(&obj->seq);
++ seq = read_seqbegin(&obj->seq);
+
+ if (test_all) {
+ unsigned i;
+@@ -618,7 +607,7 @@ bool reservation_object_test_signaled_rcu(struct reservation_object *obj,
+ break;
+ }
+
+- if (read_seqcount_retry(&obj->seq, seq))
++ if (read_seqretry(&obj->seq, seq))
+ goto retry;
+ }
+
+@@ -631,7 +620,7 @@ bool reservation_object_test_signaled_rcu(struct reservation_object *obj,
+ if (ret < 0)
+ goto retry;
+
+- if (read_seqcount_retry(&obj->seq, seq))
++ if (read_seqretry(&obj->seq, seq))
+ goto retry;
+ }
+ }
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+index 4488aad64643..f22feb25eba9 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+@@ -261,11 +261,9 @@ static int amdgpu_amdkfd_remove_eviction_fence(struct amdgpu_bo *bo,
+ }
+
+ /* Install the new fence list, seqcount provides the barriers */
+- preempt_disable();
+- write_seqcount_begin(&resv->seq);
++ write_seqlock(&resv->seq);
+ RCU_INIT_POINTER(resv->fence, new);
+- write_seqcount_end(&resv->seq);
+- preempt_enable();
++ write_sequnlock(&resv->seq);
+
+ /* Drop the references to the removed fences or move them to ef_list */
+ for (i = j, k = 0; i < old->shared_count; ++i) {
+diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
+index 5b0d6d8b3ab8..3fe4a1e93a1a 100644
+--- a/drivers/gpu/drm/i915/i915_gem.c
++++ b/drivers/gpu/drm/i915/i915_gem.c
+@@ -516,7 +516,7 @@ i915_gem_object_wait_reservation(struct reservation_object *resv,
+ long timeout,
+ struct intel_rps_client *rps_client)
+ {
+- unsigned int seq = __read_seqcount_begin(&resv->seq);
++ unsigned int seq = read_seqbegin(&resv->seq);
+ struct dma_fence *excl;
+ bool prune_fences = false;
+
+@@ -569,9 +569,9 @@ i915_gem_object_wait_reservation(struct reservation_object *resv,
+ * signaled and that the reservation object has not been changed (i.e.
+ * no new fences have been added).
+ */
+- if (prune_fences && !__read_seqcount_retry(&resv->seq, seq)) {
++ if (prune_fences && !read_seqretry(&resv->seq, seq)) {
+ if (reservation_object_trylock(resv)) {
+- if (!__read_seqcount_retry(&resv->seq, seq))
++ if (!read_seqretry(&resv->seq, seq))
+ reservation_object_add_excl_fence(resv, NULL);
+ reservation_object_unlock(resv);
+ }
+@@ -4696,7 +4696,7 @@ i915_gem_busy_ioctl(struct drm_device *dev, void *data,
+ *
+ */
+ retry:
+- seq = raw_read_seqcount(&obj->resv->seq);
++ seq = read_seqbegin(&obj->resv->seq);
+
+ /* Translate the exclusive fence to the READ *and* WRITE engine */
+ args->busy = busy_check_writer(rcu_dereference(obj->resv->fence_excl));
+@@ -4714,7 +4714,7 @@ i915_gem_busy_ioctl(struct drm_device *dev, void *data,
+ }
+ }
+
+- if (args->busy && read_seqcount_retry(&obj->resv->seq, seq))
++ if (args->busy && read_seqretry(&obj->resv->seq, seq))
+ goto retry;
+
+ err = 0;
+diff --git a/include/linux/reservation.h b/include/linux/reservation.h
+index 02166e815afb..0b31df1af698 100644
+--- a/include/linux/reservation.h
++++ b/include/linux/reservation.h
+@@ -72,7 +72,7 @@ struct reservation_object_list {
+ */
+ struct reservation_object {
+ struct ww_mutex lock;
+- seqcount_t seq;
++ seqlock_t seq;
+
+ struct dma_fence __rcu *fence_excl;
+ struct reservation_object_list __rcu *fence;
+@@ -92,7 +92,7 @@ reservation_object_init(struct reservation_object *obj)
+ {
+ ww_mutex_init(&obj->lock, &reservation_ww_class);
+
+- __seqcount_init(&obj->seq, reservation_seqcount_string, &reservation_seqcount_class);
++ seqlock_init(&obj->seq);
+ RCU_INIT_POINTER(obj->fence, NULL);
+ RCU_INIT_POINTER(obj->fence_excl, NULL);
+ obj->staged = NULL;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0291-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch b/debian/patches-rt/0291-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch
new file mode 100644
index 000000000..d290086bf
--- /dev/null
+++ b/debian/patches-rt/0291-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch
@@ -0,0 +1,54 @@
+From 1e93492b5c8f5b655d5c6e7c3867eef80ef38223 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Tue, 13 Aug 2019 14:29:41 +0200
+Subject: [PATCH 291/347] KVM: arm/arm64: Let the timer expire in hardirq
+ context on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 719cc080c914045a6e35787bf4dc3ba91cfd3efb ]
+
+The timers are canceled from an preempt-notifier which is invoked with
+disabled preemption which is not allowed on PREEMPT_RT.
+The timer callback is short so in could be invoked in hard-IRQ context
+on -RT.
+
+Let the timer expire on hard-IRQ context even on -RT.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Acked-by: Marc Zyngier <maz@kernel.org>
+Tested-by: Julien Grall <julien.grall@arm.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ virt/kvm/arm/arch_timer.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/virt/kvm/arm/arch_timer.c b/virt/kvm/arm/arch_timer.c
+index 17cecc96f735..217d39f40393 100644
+--- a/virt/kvm/arm/arch_timer.c
++++ b/virt/kvm/arm/arch_timer.c
+@@ -67,7 +67,7 @@ static inline bool userspace_irqchip(struct kvm *kvm)
+ static void soft_timer_start(struct hrtimer *hrt, u64 ns)
+ {
+ hrtimer_start(hrt, ktime_add_ns(ktime_get(), ns),
+- HRTIMER_MODE_ABS);
++ HRTIMER_MODE_ABS_HARD);
+ }
+
+ static void soft_timer_cancel(struct hrtimer *hrt, struct work_struct *work)
+@@ -638,10 +638,10 @@ void kvm_timer_vcpu_init(struct kvm_vcpu *vcpu)
+ vcpu_ptimer(vcpu)->cntvoff = 0;
+
+ INIT_WORK(&timer->expired, kvm_timer_inject_irq_work);
+- hrtimer_init(&timer->bg_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
++ hrtimer_init(&timer->bg_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_HARD);
+ timer->bg_timer.function = kvm_bg_timer_expire;
+
+- hrtimer_init(&timer->phys_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
++ hrtimer_init(&timer->phys_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_HARD);
+ timer->phys_timer.function = kvm_phys_timer_expire;
+
+ vtimer->irq.irq = default_vtimer_irq.irq;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0292-x86-preempt-Check-preemption-level-before-looking-at.patch b/debian/patches-rt/0292-x86-preempt-Check-preemption-level-before-looking-at.patch
new file mode 100644
index 000000000..df53f3dd7
--- /dev/null
+++ b/debian/patches-rt/0292-x86-preempt-Check-preemption-level-before-looking-at.patch
@@ -0,0 +1,34 @@
+From 3a7e827c42b01480e35997bdc722eaaa457840d1 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 14 Aug 2019 17:08:58 +0200
+Subject: [PATCH 292/347] x86: preempt: Check preemption level before looking
+ at lazy-preempt
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 19fc8557f2323c52b26561651ed4d51fc688a740 ]
+
+Before evaluating the lazy-preempt state it must be ensure that the
+preempt-count is zero.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ arch/x86/include/asm/preempt.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/arch/x86/include/asm/preempt.h b/arch/x86/include/asm/preempt.h
+index f66708779274..afa0e42ccdd1 100644
+--- a/arch/x86/include/asm/preempt.h
++++ b/arch/x86/include/asm/preempt.h
+@@ -96,6 +96,8 @@ static __always_inline bool __preempt_count_dec_and_test(void)
+ if (____preempt_count_dec_and_test())
+ return true;
+ #ifdef CONFIG_PREEMPT_LAZY
++ if (preempt_count())
++ return false;
+ if (current_thread_info()->preempt_lazy_count)
+ return false;
+ return test_thread_flag(TIF_NEED_RESCHED_LAZY);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0293-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch b/debian/patches-rt/0293-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch
new file mode 100644
index 000000000..2f06144ba
--- /dev/null
+++ b/debian/patches-rt/0293-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch
@@ -0,0 +1,42 @@
+From 656b33d3842f931f31f5149e458db52b85c4af3e Mon Sep 17 00:00:00 2001
+From: Julien Grall <julien.grall@arm.com>
+Date: Wed, 21 Aug 2019 10:24:07 +0100
+Subject: [PATCH 293/347] hrtimer: Use READ_ONCE to access timer->base in
+ hrimer_grab_expiry_lock()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 2c8fdbe7ef0ad06c1a326886c5954e117b5657d6 ]
+
+The update to timer->base is protected by the base->cpu_base->lock().
+However, hrtimer_grab_expirty_lock() does not access it with the lock.
+
+So it would theorically be possible to have timer->base changed under
+our feet. We need to prevent the compiler to refetch timer->base so the
+check and the access is performed on the same base.
+
+Other access of timer->base are either done with a lock or protected
+with READ_ONCE(). So use READ_ONCE() in hrtimer_grab_expirty_lock().
+
+Signed-off-by: Julien Grall <julien.grall@arm.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/time/hrtimer.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
+index eb2db7e6a241..dff440fd968b 100644
+--- a/kernel/time/hrtimer.c
++++ b/kernel/time/hrtimer.c
+@@ -959,7 +959,7 @@ EXPORT_SYMBOL_GPL(hrtimer_forward);
+
+ void hrtimer_grab_expiry_lock(const struct hrtimer *timer)
+ {
+- struct hrtimer_clock_base *base = timer->base;
++ struct hrtimer_clock_base *base = READ_ONCE(timer->base);
+
+ if (base && base->cpu_base) {
+ spin_lock(&base->cpu_base->softirq_expiry_lock);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0294-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch b/debian/patches-rt/0294-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch
new file mode 100644
index 000000000..2d81ae91d
--- /dev/null
+++ b/debian/patches-rt/0294-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch
@@ -0,0 +1,41 @@
+From cec8a994798fd0bebd900d555590ab684d4c7edc Mon Sep 17 00:00:00 2001
+From: Julien Grall <julien.grall@arm.com>
+Date: Wed, 21 Aug 2019 10:24:08 +0100
+Subject: [PATCH 294/347] hrtimer: Don't grab the expiry lock for non-soft
+ hrtimer
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit fd420354bea2f57c11f3de191dffdeea76531e76 ]
+
+Acquiring the lock in hrtimer_grab_expiry_lock() is designed for
+sleeping-locks and should not be used with disabled interrupts.
+hrtimer_cancel() may invoke hrtimer_grab_expiry_lock() also for locks
+which expire in hard-IRQ context.
+
+Let hrtimer_cancel() invoke hrtimer_grab_expiry_lock() only for locks
+which expire in softirq context.
+
+Signed-off-by: Julien Grall <julien.grall@arm.com>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+[bigeasy: rewrite changelog]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/time/hrtimer.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
+index dff440fd968b..24bfae0e92e2 100644
+--- a/kernel/time/hrtimer.c
++++ b/kernel/time/hrtimer.c
+@@ -961,7 +961,7 @@ void hrtimer_grab_expiry_lock(const struct hrtimer *timer)
+ {
+ struct hrtimer_clock_base *base = READ_ONCE(timer->base);
+
+- if (base && base->cpu_base) {
++ if (timer->is_soft && base && base->cpu_base) {
+ spin_lock(&base->cpu_base->softirq_expiry_lock);
+ spin_unlock(&base->cpu_base->softirq_expiry_lock);
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0295-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch b/debian/patches-rt/0295-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch
new file mode 100644
index 000000000..66133c2af
--- /dev/null
+++ b/debian/patches-rt/0295-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch
@@ -0,0 +1,43 @@
+From 7e9203de23a787ac491b8114acaf5a8c37f60d36 Mon Sep 17 00:00:00 2001
+From: Julien Grall <julien.grall@arm.com>
+Date: Wed, 21 Aug 2019 10:24:09 +0100
+Subject: [PATCH 295/347] hrtimer: Prevent using hrtimer_grab_expiry_lock() on
+ migration_base
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit cef1b87f98823af923a386f3f69149acb212d4a1 ]
+
+As tglx puts it:
+|If base == migration_base then there is no point to lock soft_expiry_lock
+|simply because the timer is not executing the callback in soft irq context
+|and the whole lock/unlock dance can be avoided.
+
+Furthermore, all the path leading to hrtimer_grab_expiry_lock() assumes
+timer->base and timer->base->cpu_base are always non-NULL. So it is safe
+to remove the NULL checks here.
+
+Signed-off-by: Julien Grall <julien.grall@arm.com>
+Link: https://lkml.kernel.org/r/alpine.DEB.2.21.1908211557420.2223@nanos.tec.linutronix.de
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+[bigeasy: rewrite changelog]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/time/hrtimer.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
+index 24bfae0e92e2..3f9d156c36f1 100644
+--- a/kernel/time/hrtimer.c
++++ b/kernel/time/hrtimer.c
+@@ -961,7 +961,7 @@ void hrtimer_grab_expiry_lock(const struct hrtimer *timer)
+ {
+ struct hrtimer_clock_base *base = READ_ONCE(timer->base);
+
+- if (timer->is_soft && base && base->cpu_base) {
++ if (timer->is_soft && base != &migration_base) {
+ spin_lock(&base->cpu_base->softirq_expiry_lock);
+ spin_unlock(&base->cpu_base->softirq_expiry_lock);
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0296-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch b/debian/patches-rt/0296-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch
new file mode 100644
index 000000000..54806bcb2
--- /dev/null
+++ b/debian/patches-rt/0296-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch
@@ -0,0 +1,75 @@
+From 1f69d8dae481d24ebdbd40717196cc8e36553976 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 4 Sep 2019 16:55:27 +0200
+Subject: [PATCH 296/347] hrtimer: Add a missing bracket and hide
+ `migration_base' on !SMP
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 47b6de0b7f22c28b40275aeede3993d807668c3b ]
+
+[ Upstream commit 5d2295f3a93b04986d069ebeaf5b07725f9096c1 ]
+
+The recent change to avoid taking the expiry lock when a timer is currently
+migrated missed to add a bracket at the end of the if statement leading to
+compile errors. Since that commit the variable `migration_base' is always
+used but it is only available on SMP configuration thus leading to another
+compile error. The changelog says "The timer base and base->cpu_base
+cannot be NULL in the code path", so it is safe to limit this check to SMP
+configurations only.
+
+Add the missing bracket to the if statement and hide `migration_base'
+behind CONFIG_SMP bars.
+
+[ tglx: Mark the functions inline ... ]
+
+Fixes: 68b2c8c1e4210 ("hrtimer: Don't take expiry_lock when timer is currently migrated")
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Link: https://lkml.kernel.org/r/20190904145527.eah7z56ntwobqm6j@linutronix.de
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+[bigeasy: port back to RT]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/time/hrtimer.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
+index 3f9d156c36f1..0f841f18c363 100644
+--- a/kernel/time/hrtimer.c
++++ b/kernel/time/hrtimer.c
+@@ -150,6 +150,11 @@ static struct hrtimer_cpu_base migration_cpu_base = {
+
+ #define migration_base migration_cpu_base.clock_base[0]
+
++static inline bool is_migration_base(struct hrtimer_clock_base *base)
++{
++ return base == &migration_base;
++}
++
+ /*
+ * We are using hashed locking: holding per_cpu(hrtimer_bases)[n].lock
+ * means that all timers which are tied to this base via timer->base are
+@@ -274,6 +279,11 @@ switch_hrtimer_base(struct hrtimer *timer, struct hrtimer_clock_base *base,
+
+ #else /* CONFIG_SMP */
+
++static inline bool is_migration_base(struct hrtimer_clock_base *base)
++{
++ return false;
++}
++
+ static inline struct hrtimer_clock_base *
+ lock_hrtimer_base(const struct hrtimer *timer, unsigned long *flags)
+ {
+@@ -961,7 +971,7 @@ void hrtimer_grab_expiry_lock(const struct hrtimer *timer)
+ {
+ struct hrtimer_clock_base *base = READ_ONCE(timer->base);
+
+- if (timer->is_soft && base != &migration_base) {
++ if (timer->is_soft && is_migration_base(base)) {
+ spin_lock(&base->cpu_base->softirq_expiry_lock);
+ spin_unlock(&base->cpu_base->softirq_expiry_lock);
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0297-posix-timers-Unlock-expiry-lock-in-the-early-return.patch b/debian/patches-rt/0297-posix-timers-Unlock-expiry-lock-in-the-early-return.patch
new file mode 100644
index 000000000..001c07c9c
--- /dev/null
+++ b/debian/patches-rt/0297-posix-timers-Unlock-expiry-lock-in-the-early-return.patch
@@ -0,0 +1,41 @@
+From 89d528d5fab49f30a5cbd2ef13e19d488a6e21ae Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Mon, 16 Sep 2019 12:33:59 +0200
+Subject: [PATCH 297/347] posix-timers: Unlock expiry lock in the early return
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 356a2781375ec58521a9bc3f500488745990c242 ]
+
+Patch ("posix-timers: Add expiry lock") acquired a lock in
+run_posix_cpu_timers() but didn't drop the lock in the early return.
+
+Unlock the lock in the early return path.
+
+Reported-by: kbuild test robot <lkp@intel.com>
+Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
+Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/time/posix-cpu-timers.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c
+index 54632ed51c65..b9e4ccbb60f3 100644
+--- a/kernel/time/posix-cpu-timers.c
++++ b/kernel/time/posix-cpu-timers.c
+@@ -1175,8 +1175,10 @@ static void __run_posix_cpu_timers(struct task_struct *tsk)
+ expiry_lock = this_cpu_ptr(&cpu_timer_expiry_lock);
+ spin_lock(expiry_lock);
+
+- if (!lock_task_sighand(tsk, &flags))
++ if (!lock_task_sighand(tsk, &flags)) {
++ spin_unlock(expiry_lock);
+ return;
++ }
+ /*
+ * Here we take off tsk->signal->cpu_timers[N] and
+ * tsk->cpu_timers[N] all the timers that are firing, and
+--
+2.36.1
+
diff --git a/debian/patches-rt/0298-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch b/debian/patches-rt/0298-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch
new file mode 100644
index 000000000..6c1157424
--- /dev/null
+++ b/debian/patches-rt/0298-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch
@@ -0,0 +1,58 @@
+From 813c54ab7d391f197cafdfef09b14958da328122 Mon Sep 17 00:00:00 2001
+From: Scott Wood <swood@redhat.com>
+Date: Tue, 24 Sep 2019 14:36:41 +0200
+Subject: [PATCH 298/347] =?UTF-8?q?sched:=20migrate=5Fdis/enable:=20Use=20?=
+ =?UTF-8?q?sleeping=5Flock=E2=80=A6()=20to=20annotate=20sleeping=20points?=
+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/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 4230dd3824c3e1785504e6f757ce79a4b55651fa ]
+
+Without this, rcu_note_context_switch() will complain if an RCU read lock
+is held when migrate_enable() calls stop_one_cpu(). Likewise when
+migrate_disable() calls pin_current_cpu() which calls __read_rt_lock() --
+which bypasses the part of the mutex code that calls sleeping_lock_inc().
+
+Signed-off-by: Scott Wood <swood@redhat.com>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+[bigeasy: use sleeping_lock_…() ]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ kernel/cpu.c | 2 ++
+ kernel/sched/core.c | 3 +++
+ 2 files changed, 5 insertions(+)
+
+diff --git a/kernel/cpu.c b/kernel/cpu.c
+index 11f48774b129..c84a93f84164 100644
+--- a/kernel/cpu.c
++++ b/kernel/cpu.c
+@@ -309,7 +309,9 @@ void pin_current_cpu(void)
+ preempt_lazy_enable();
+ preempt_enable();
+
++ sleeping_lock_inc();
+ __read_rt_lock(cpuhp_pin);
++ sleeping_lock_dec();
+
+ preempt_disable();
+ preempt_lazy_disable();
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 1d4d4780dd79..33c1ae19410e 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -7366,7 +7366,10 @@ void migrate_enable(void)
+ unpin_current_cpu();
+ preempt_lazy_enable();
+ preempt_enable();
++
++ sleeping_lock_inc();
+ stop_one_cpu(task_cpu(p), migration_cpu_stop, &arg);
++ sleeping_lock_dec();
+ tlb_migrate_finish(p->mm);
+
+ return;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0299-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch b/debian/patches-rt/0299-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch
new file mode 100644
index 000000000..693556876
--- /dev/null
+++ b/debian/patches-rt/0299-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch
@@ -0,0 +1,39 @@
+From a1f857c1918e1e9cf21358347d4f0bbd0c6da587 Mon Sep 17 00:00:00 2001
+From: Scott Wood <swood@redhat.com>
+Date: Sat, 27 Jul 2019 00:56:32 -0500
+Subject: [PATCH 299/347] sched: __set_cpus_allowed_ptr: Check cpus_mask, not
+ cpus_ptr
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit e5606fb7b042db634ed62b4dd733d62e050e468f ]
+
+This function is concerned with the long-term cpu mask, not the
+transitory mask the task might have while migrate disabled. Before
+this patch, if a task was migrate disabled at the time
+__set_cpus_allowed_ptr() was called, and the new mask happened to be
+equal to the cpu that the task was running on, then the mask update
+would be lost.
+
+Signed-off-by: Scott Wood <swood@redhat.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/sched/core.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 33c1ae19410e..4f5242c9ca78 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -1157,7 +1157,7 @@ static int __set_cpus_allowed_ptr(struct task_struct *p,
+ goto out;
+ }
+
+- if (cpumask_equal(p->cpus_ptr, new_mask))
++ if (cpumask_equal(&p->cpus_mask, new_mask))
+ goto out;
+
+ dest_cpu = cpumask_any_and(cpu_valid_mask, new_mask);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0300-sched-Remove-dead-__migrate_disabled-check.patch b/debian/patches-rt/0300-sched-Remove-dead-__migrate_disabled-check.patch
new file mode 100644
index 000000000..156d1ac5b
--- /dev/null
+++ b/debian/patches-rt/0300-sched-Remove-dead-__migrate_disabled-check.patch
@@ -0,0 +1,39 @@
+From 5090ad8fa345caac33cc1dbdc60002b7264b8b59 Mon Sep 17 00:00:00 2001
+From: Scott Wood <swood@redhat.com>
+Date: Sat, 27 Jul 2019 00:56:33 -0500
+Subject: [PATCH 300/347] sched: Remove dead __migrate_disabled() check
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 14d9272d534ea91262e15db99443fc5995c7c016 ]
+
+This code was unreachable given the __migrate_disabled() branch
+to "out" immediately beforehand.
+
+Signed-off-by: Scott Wood <swood@redhat.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/sched/core.c | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 4f5242c9ca78..e64d2b2b3a69 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -1182,13 +1182,6 @@ static int __set_cpus_allowed_ptr(struct task_struct *p,
+ if (cpumask_test_cpu(task_cpu(p), new_mask) || __migrate_disabled(p))
+ goto out;
+
+-#if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
+- if (__migrate_disabled(p)) {
+- p->migrate_disable_update = 1;
+- goto out;
+- }
+-#endif
+-
+ if (task_running(rq, p) || p->state == TASK_WAKING) {
+ struct migration_arg arg = { p, dest_cpu };
+ /* Need help from migration thread: drop lock and wait. */
+--
+2.36.1
+
diff --git a/debian/patches-rt/0301-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch b/debian/patches-rt/0301-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch
new file mode 100644
index 000000000..1f1822daf
--- /dev/null
+++ b/debian/patches-rt/0301-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch
@@ -0,0 +1,47 @@
+From c4c6908e112c8368299d23485a921dcc83876ec2 Mon Sep 17 00:00:00 2001
+From: Scott Wood <swood@redhat.com>
+Date: Sat, 27 Jul 2019 00:56:34 -0500
+Subject: [PATCH 301/347] sched: migrate disable: Protect cpus_ptr with lock
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 27ee52a891ed2c7e2e2c8332ccae0de7c2674b09 ]
+
+Various places assume that cpus_ptr is protected by rq/pi locks,
+so don't change it before grabbing those locks.
+
+Signed-off-by: Scott Wood <swood@redhat.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/sched/core.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index e64d2b2b3a69..6f91ee2b7e91 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -7244,9 +7244,8 @@ migrate_disable_update_cpus_allowed(struct task_struct *p)
+ struct rq *rq;
+ struct rq_flags rf;
+
+- p->cpus_ptr = cpumask_of(smp_processor_id());
+-
+ rq = task_rq_lock(p, &rf);
++ p->cpus_ptr = cpumask_of(smp_processor_id());
+ update_nr_migratory(p, -1);
+ p->nr_cpus_allowed = 1;
+ task_rq_unlock(rq, p, &rf);
+@@ -7258,9 +7257,8 @@ migrate_enable_update_cpus_allowed(struct task_struct *p)
+ struct rq *rq;
+ struct rq_flags rf;
+
+- p->cpus_ptr = &p->cpus_mask;
+-
+ rq = task_rq_lock(p, &rf);
++ p->cpus_ptr = &p->cpus_mask;
+ p->nr_cpus_allowed = cpumask_weight(&p->cpus_mask);
+ update_nr_migratory(p, 1);
+ task_rq_unlock(rq, p, &rf);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0302-lib-smp_processor_id-Don-t-use-cpumask_equal.patch b/debian/patches-rt/0302-lib-smp_processor_id-Don-t-use-cpumask_equal.patch
new file mode 100644
index 000000000..ce14d4f68
--- /dev/null
+++ b/debian/patches-rt/0302-lib-smp_processor_id-Don-t-use-cpumask_equal.patch
@@ -0,0 +1,45 @@
+From 9f39347ad1257ec5ba912513bc7fda854af0bcd0 Mon Sep 17 00:00:00 2001
+From: Waiman Long <longman@redhat.com>
+Date: Thu, 3 Oct 2019 16:36:08 -0400
+Subject: [PATCH 302/347] lib/smp_processor_id: Don't use cpumask_equal()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 659252061477862f45b79e1de169e6030f5c8918 ]
+
+The check_preemption_disabled() function uses cpumask_equal() to see
+if the task is bounded to the current CPU only. cpumask_equal() calls
+memcmp() to do the comparison. As x86 doesn't have __HAVE_ARCH_MEMCMP,
+the slow memcmp() function in lib/string.c is used.
+
+On a RT kernel that call check_preemption_disabled() very frequently,
+below is the perf-record output of a certain microbenchmark:
+
+ 42.75% 2.45% testpmd [kernel.kallsyms] [k] check_preemption_disabled
+ 40.01% 39.97% testpmd [kernel.kallsyms] [k] memcmp
+
+We should avoid calling memcmp() in performance critical path. So the
+cpumask_equal() call is now replaced with an equivalent simpler check.
+
+Signed-off-by: Waiman Long <longman@redhat.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ lib/smp_processor_id.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/smp_processor_id.c b/lib/smp_processor_id.c
+index fb35c45b9421..b8a8a8db2d75 100644
+--- a/lib/smp_processor_id.c
++++ b/lib/smp_processor_id.c
+@@ -22,7 +22,7 @@ notrace static unsigned int check_preemption_disabled(const char *what1,
+ * Kernel threads bound to a single CPU can safely use
+ * smp_processor_id():
+ */
+- if (cpumask_equal(current->cpus_ptr, cpumask_of(this_cpu)))
++ if (current->nr_cpus_allowed == 1)
+ goto out;
+
+ /*
+--
+2.36.1
+
diff --git a/debian/patches-rt/0303-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch b/debian/patches-rt/0303-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch
new file mode 100644
index 000000000..480218133
--- /dev/null
+++ b/debian/patches-rt/0303-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch
@@ -0,0 +1,735 @@
+From f7a1b76e65c0d79612a6f81b5afc8558b6256242 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Mon, 7 Oct 2019 16:45:18 +0200
+Subject: [PATCH 303/347] futex: Make the futex_hash_bucket spinlock_t again
+ and bring back its old state
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 954ad80c23edfe71f4e8ce70b961eac884320c3a ]
+
+This is an all-in-one patch that reverts the patches:
+ futex: Make the futex_hash_bucket lock raw
+ futex: Delay deallocation of pi_state
+
+and adds back the old patches we had:
+ futex: workaround migrate_disable/enable in different context
+ rtmutex: Handle the various new futex race conditions
+ futex: Fix bug on when a requeued RT task times out
+ futex: Ensure lock/unlock symetry versus pi_lock and hash bucket lock
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/futex.c | 228 ++++++++++++++++++--------------
+ kernel/locking/rtmutex.c | 65 ++++++++-
+ kernel/locking/rtmutex_common.h | 3 +
+ 3 files changed, 193 insertions(+), 103 deletions(-)
+
+diff --git a/kernel/futex.c b/kernel/futex.c
+index 2fc6bedb460e..81090f7a3ed9 100644
+--- a/kernel/futex.c
++++ b/kernel/futex.c
+@@ -243,7 +243,7 @@ struct futex_q {
+ struct plist_node list;
+
+ struct task_struct *task;
+- raw_spinlock_t *lock_ptr;
++ spinlock_t *lock_ptr;
+ union futex_key key;
+ struct futex_pi_state *pi_state;
+ struct rt_mutex_waiter *rt_waiter;
+@@ -264,7 +264,7 @@ static const struct futex_q futex_q_init = {
+ */
+ struct futex_hash_bucket {
+ atomic_t waiters;
+- raw_spinlock_t lock;
++ spinlock_t lock;
+ struct plist_head chain;
+ } ____cacheline_aligned_in_smp;
+
+@@ -871,13 +871,13 @@ static void get_pi_state(struct futex_pi_state *pi_state)
+ * Drops a reference to the pi_state object and frees or caches it
+ * when the last reference is gone.
+ */
+-static struct futex_pi_state *__put_pi_state(struct futex_pi_state *pi_state)
++static void put_pi_state(struct futex_pi_state *pi_state)
+ {
+ if (!pi_state)
+- return NULL;
++ return;
+
+ if (!atomic_dec_and_test(&pi_state->refcount))
+- return NULL;
++ return;
+
+ /*
+ * If pi_state->owner is NULL, the owner is most probably dying
+@@ -892,7 +892,9 @@ static struct futex_pi_state *__put_pi_state(struct futex_pi_state *pi_state)
+ raw_spin_unlock_irqrestore(&pi_state->pi_mutex.wait_lock, flags);
+ }
+
+- if (!current->pi_state_cache) {
++ if (current->pi_state_cache) {
++ kfree(pi_state);
++ } else {
+ /*
+ * pi_state->list is already empty.
+ * clear pi_state->owner.
+@@ -901,30 +903,6 @@ static struct futex_pi_state *__put_pi_state(struct futex_pi_state *pi_state)
+ pi_state->owner = NULL;
+ atomic_set(&pi_state->refcount, 1);
+ current->pi_state_cache = pi_state;
+- pi_state = NULL;
+- }
+- return pi_state;
+-}
+-
+-static void put_pi_state(struct futex_pi_state *pi_state)
+-{
+- kfree(__put_pi_state(pi_state));
+-}
+-
+-static void put_pi_state_atomic(struct futex_pi_state *pi_state,
+- struct list_head *to_free)
+-{
+- if (__put_pi_state(pi_state))
+- list_add(&pi_state->list, to_free);
+-}
+-
+-static void free_pi_state_list(struct list_head *to_free)
+-{
+- struct futex_pi_state *p, *next;
+-
+- list_for_each_entry_safe(p, next, to_free, list) {
+- list_del(&p->list);
+- kfree(p);
+ }
+ }
+
+@@ -941,7 +919,6 @@ static void exit_pi_state_list(struct task_struct *curr)
+ struct futex_pi_state *pi_state;
+ struct futex_hash_bucket *hb;
+ union futex_key key = FUTEX_KEY_INIT;
+- LIST_HEAD(to_free);
+
+ if (!futex_cmpxchg_enabled)
+ return;
+@@ -975,7 +952,7 @@ static void exit_pi_state_list(struct task_struct *curr)
+ }
+ raw_spin_unlock_irq(&curr->pi_lock);
+
+- raw_spin_lock(&hb->lock);
++ spin_lock(&hb->lock);
+ raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock);
+ raw_spin_lock(&curr->pi_lock);
+ /*
+@@ -985,8 +962,10 @@ static void exit_pi_state_list(struct task_struct *curr)
+ if (head->next != next) {
+ /* retain curr->pi_lock for the loop invariant */
+ raw_spin_unlock(&pi_state->pi_mutex.wait_lock);
+- raw_spin_unlock(&hb->lock);
+- put_pi_state_atomic(pi_state, &to_free);
++ raw_spin_unlock_irq(&curr->pi_lock);
++ spin_unlock(&hb->lock);
++ raw_spin_lock_irq(&curr->pi_lock);
++ put_pi_state(pi_state);
+ continue;
+ }
+
+@@ -997,7 +976,7 @@ static void exit_pi_state_list(struct task_struct *curr)
+
+ raw_spin_unlock(&curr->pi_lock);
+ raw_spin_unlock_irq(&pi_state->pi_mutex.wait_lock);
+- raw_spin_unlock(&hb->lock);
++ spin_unlock(&hb->lock);
+
+ rt_mutex_futex_unlock(&pi_state->pi_mutex);
+ put_pi_state(pi_state);
+@@ -1005,8 +984,6 @@ static void exit_pi_state_list(struct task_struct *curr)
+ raw_spin_lock_irq(&curr->pi_lock);
+ }
+ raw_spin_unlock_irq(&curr->pi_lock);
+-
+- free_pi_state_list(&to_free);
+ }
+ #else
+ static inline void exit_pi_state_list(struct task_struct *curr) { }
+@@ -1548,7 +1525,7 @@ static void __unqueue_futex(struct futex_q *q)
+ {
+ struct futex_hash_bucket *hb;
+
+- if (WARN_ON_SMP(!q->lock_ptr || !raw_spin_is_locked(q->lock_ptr))
++ if (WARN_ON_SMP(!q->lock_ptr || !spin_is_locked(q->lock_ptr))
+ || WARN_ON(plist_node_empty(&q->list)))
+ return;
+
+@@ -1668,21 +1645,21 @@ static inline void
+ double_lock_hb(struct futex_hash_bucket *hb1, struct futex_hash_bucket *hb2)
+ {
+ if (hb1 <= hb2) {
+- raw_spin_lock(&hb1->lock);
++ spin_lock(&hb1->lock);
+ if (hb1 < hb2)
+- raw_spin_lock_nested(&hb2->lock, SINGLE_DEPTH_NESTING);
++ spin_lock_nested(&hb2->lock, SINGLE_DEPTH_NESTING);
+ } else { /* hb1 > hb2 */
+- raw_spin_lock(&hb2->lock);
+- raw_spin_lock_nested(&hb1->lock, SINGLE_DEPTH_NESTING);
++ spin_lock(&hb2->lock);
++ spin_lock_nested(&hb1->lock, SINGLE_DEPTH_NESTING);
+ }
+ }
+
+ static inline void
+ double_unlock_hb(struct futex_hash_bucket *hb1, struct futex_hash_bucket *hb2)
+ {
+- raw_spin_unlock(&hb1->lock);
++ spin_unlock(&hb1->lock);
+ if (hb1 != hb2)
+- raw_spin_unlock(&hb2->lock);
++ spin_unlock(&hb2->lock);
+ }
+
+ /*
+@@ -1710,7 +1687,7 @@ futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset)
+ if (!hb_waiters_pending(hb))
+ goto out_put_key;
+
+- raw_spin_lock(&hb->lock);
++ spin_lock(&hb->lock);
+
+ plist_for_each_entry_safe(this, next, &hb->chain, list) {
+ if (match_futex (&this->key, &key)) {
+@@ -1729,7 +1706,7 @@ futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset)
+ }
+ }
+
+- raw_spin_unlock(&hb->lock);
++ spin_unlock(&hb->lock);
+ wake_up_q(&wake_q);
+ out_put_key:
+ put_futex_key(&key);
+@@ -2042,7 +2019,6 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
+ struct futex_hash_bucket *hb1, *hb2;
+ struct futex_q *this, *next;
+ DEFINE_WAKE_Q(wake_q);
+- LIST_HEAD(to_free);
+
+ if (nr_wake < 0 || nr_requeue < 0)
+ return -EINVAL;
+@@ -2281,6 +2257,16 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
+ requeue_pi_wake_futex(this, &key2, hb2);
+ drop_count++;
+ continue;
++ } else if (ret == -EAGAIN) {
++ /*
++ * Waiter was woken by timeout or
++ * signal and has set pi_blocked_on to
++ * PI_WAKEUP_INPROGRESS before we
++ * tried to enqueue it on the rtmutex.
++ */
++ this->pi_state = NULL;
++ put_pi_state(pi_state);
++ continue;
+ } else if (ret) {
+ /*
+ * rt_mutex_start_proxy_lock() detected a
+@@ -2291,7 +2277,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
+ * object.
+ */
+ this->pi_state = NULL;
+- put_pi_state_atomic(pi_state, &to_free);
++ put_pi_state(pi_state);
+ /*
+ * We stop queueing more waiters and let user
+ * space deal with the mess.
+@@ -2308,7 +2294,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
+ * in futex_proxy_trylock_atomic() or in lookup_pi_state(). We
+ * need to drop it here again.
+ */
+- put_pi_state_atomic(pi_state, &to_free);
++ put_pi_state(pi_state);
+
+ out_unlock:
+ double_unlock_hb(hb1, hb2);
+@@ -2329,7 +2315,6 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
+ out_put_key1:
+ put_futex_key(&key1);
+ out:
+- free_pi_state_list(&to_free);
+ return ret ? ret : task_count;
+ }
+
+@@ -2353,7 +2338,7 @@ static inline struct futex_hash_bucket *queue_lock(struct futex_q *q)
+
+ q->lock_ptr = &hb->lock;
+
+- raw_spin_lock(&hb->lock); /* implies smp_mb(); (A) */
++ spin_lock(&hb->lock); /* implies smp_mb(); (A) */
+ return hb;
+ }
+
+@@ -2361,7 +2346,7 @@ static inline void
+ queue_unlock(struct futex_hash_bucket *hb)
+ __releases(&hb->lock)
+ {
+- raw_spin_unlock(&hb->lock);
++ spin_unlock(&hb->lock);
+ hb_waiters_dec(hb);
+ }
+
+@@ -2400,7 +2385,7 @@ static inline void queue_me(struct futex_q *q, struct futex_hash_bucket *hb)
+ __releases(&hb->lock)
+ {
+ __queue_me(q, hb);
+- raw_spin_unlock(&hb->lock);
++ spin_unlock(&hb->lock);
+ }
+
+ /**
+@@ -2416,41 +2401,41 @@ static inline void queue_me(struct futex_q *q, struct futex_hash_bucket *hb)
+ */
+ static int unqueue_me(struct futex_q *q)
+ {
+- raw_spinlock_t *lock_ptr;
++ spinlock_t *lock_ptr;
+ int ret = 0;
+
+ /* In the common case we don't take the spinlock, which is nice. */
+ retry:
+ /*
+- * q->lock_ptr can change between this read and the following
+- * raw_spin_lock. Use READ_ONCE to forbid the compiler from reloading
+- * q->lock_ptr and optimizing lock_ptr out of the logic below.
++ * q->lock_ptr can change between this read and the following spin_lock.
++ * Use READ_ONCE to forbid the compiler from reloading q->lock_ptr and
++ * optimizing lock_ptr out of the logic below.
+ */
+ lock_ptr = READ_ONCE(q->lock_ptr);
+ if (lock_ptr != NULL) {
+- raw_spin_lock(lock_ptr);
++ spin_lock(lock_ptr);
+ /*
+ * q->lock_ptr can change between reading it and
+- * raw_spin_lock(), causing us to take the wrong lock. This
++ * spin_lock(), causing us to take the wrong lock. This
+ * corrects the race condition.
+ *
+ * Reasoning goes like this: if we have the wrong lock,
+ * q->lock_ptr must have changed (maybe several times)
+- * between reading it and the raw_spin_lock(). It can
+- * change again after the raw_spin_lock() but only if it was
+- * already changed before the raw_spin_lock(). It cannot,
++ * between reading it and the spin_lock(). It can
++ * change again after the spin_lock() but only if it was
++ * already changed before the spin_lock(). It cannot,
+ * however, change back to the original value. Therefore
+ * we can detect whether we acquired the correct lock.
+ */
+ if (unlikely(lock_ptr != q->lock_ptr)) {
+- raw_spin_unlock(lock_ptr);
++ spin_unlock(lock_ptr);
+ goto retry;
+ }
+ __unqueue_futex(q);
+
+ BUG_ON(q->pi_state);
+
+- raw_spin_unlock(lock_ptr);
++ spin_unlock(lock_ptr);
+ ret = 1;
+ }
+
+@@ -2466,16 +2451,13 @@ static int unqueue_me(struct futex_q *q)
+ static void unqueue_me_pi(struct futex_q *q)
+ __releases(q->lock_ptr)
+ {
+- struct futex_pi_state *ps;
+-
+ __unqueue_futex(q);
+
+ BUG_ON(!q->pi_state);
+- ps = __put_pi_state(q->pi_state);
++ put_pi_state(q->pi_state);
+ q->pi_state = NULL;
+
+- raw_spin_unlock(q->lock_ptr);
+- kfree(ps);
++ spin_unlock(q->lock_ptr);
+ }
+
+ static int __fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q,
+@@ -2599,7 +2581,7 @@ static int __fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q,
+ */
+ handle_err:
+ raw_spin_unlock_irq(&pi_state->pi_mutex.wait_lock);
+- raw_spin_unlock(q->lock_ptr);
++ spin_unlock(q->lock_ptr);
+
+ switch (err) {
+ case -EFAULT:
+@@ -2616,7 +2598,7 @@ static int __fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q,
+ break;
+ }
+
+- raw_spin_lock(q->lock_ptr);
++ spin_lock(q->lock_ptr);
+ raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock);
+
+ /*
+@@ -2730,7 +2712,7 @@ static void futex_wait_queue_me(struct futex_hash_bucket *hb, struct futex_q *q,
+ /*
+ * The task state is guaranteed to be set before another task can
+ * wake it. set_current_state() is implemented using smp_store_mb() and
+- * queue_me() calls raw_spin_unlock() upon completion, both serializing
++ * queue_me() calls spin_unlock() upon completion, both serializing
+ * access to the hash list and forcing another memory barrier.
+ */
+ set_current_state(TASK_INTERRUPTIBLE);
+@@ -3028,7 +3010,15 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
+ * before __rt_mutex_start_proxy_lock() is done.
+ */
+ raw_spin_lock_irq(&q.pi_state->pi_mutex.wait_lock);
+- raw_spin_unlock(q.lock_ptr);
++ /*
++ * the migrate_disable() here disables migration in the in_atomic() fast
++ * path which is enabled again in the following spin_unlock(). We have
++ * one migrate_disable() pending in the slow-path which is reversed
++ * after the raw_spin_unlock_irq() where we leave the atomic context.
++ */
++ migrate_disable();
++
++ spin_unlock(q.lock_ptr);
+ /*
+ * __rt_mutex_start_proxy_lock() unconditionally enqueues the @rt_waiter
+ * such that futex_unlock_pi() is guaranteed to observe the waiter when
+@@ -3036,6 +3026,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
+ */
+ ret = __rt_mutex_start_proxy_lock(&q.pi_state->pi_mutex, &rt_waiter, current);
+ raw_spin_unlock_irq(&q.pi_state->pi_mutex.wait_lock);
++ migrate_enable();
+
+ if (ret) {
+ if (ret == 1)
+@@ -3049,7 +3040,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
+ ret = rt_mutex_wait_proxy_lock(&q.pi_state->pi_mutex, to, &rt_waiter);
+
+ cleanup:
+- raw_spin_lock(q.lock_ptr);
++ spin_lock(q.lock_ptr);
+ /*
+ * If we failed to acquire the lock (deadlock/signal/timeout), we must
+ * first acquire the hb->lock before removing the lock from the
+@@ -3136,7 +3127,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags)
+ return ret;
+
+ hb = hash_futex(&key);
+- raw_spin_lock(&hb->lock);
++ spin_lock(&hb->lock);
+
+ /*
+ * Check waiters first. We do not trust user space values at
+@@ -3170,10 +3161,19 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags)
+ * rt_waiter. Also see the WARN in wake_futex_pi().
+ */
+ raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock);
+- raw_spin_unlock(&hb->lock);
++ /*
++ * Magic trickery for now to make the RT migrate disable
++ * logic happy. The following spin_unlock() happens with
++ * interrupts disabled so the internal migrate_enable()
++ * won't undo the migrate_disable() which was issued when
++ * locking hb->lock.
++ */
++ migrate_disable();
++ spin_unlock(&hb->lock);
+
+ /* drops pi_state->pi_mutex.wait_lock */
+ ret = wake_futex_pi(uaddr, uval, pi_state);
++ migrate_enable();
+
+ put_pi_state(pi_state);
+
+@@ -3209,7 +3209,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags)
+ * owner.
+ */
+ if ((ret = cmpxchg_futex_value_locked(&curval, uaddr, uval, 0))) {
+- raw_spin_unlock(&hb->lock);
++ spin_unlock(&hb->lock);
+ switch (ret) {
+ case -EFAULT:
+ goto pi_faulted;
+@@ -3229,7 +3229,7 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags)
+ ret = (curval == uval) ? 0 : -EAGAIN;
+
+ out_unlock:
+- raw_spin_unlock(&hb->lock);
++ spin_unlock(&hb->lock);
+ out_putkey:
+ put_futex_key(&key);
+ return ret;
+@@ -3344,7 +3344,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+ {
+ struct hrtimer_sleeper timeout, *to = NULL;
+ struct rt_mutex_waiter rt_waiter;
+- struct futex_hash_bucket *hb;
++ struct futex_hash_bucket *hb, *hb2;
+ union futex_key key2 = FUTEX_KEY_INIT;
+ struct futex_q q = futex_q_init;
+ int res, ret;
+@@ -3402,20 +3402,55 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+ /* Queue the futex_q, drop the hb lock, wait for wakeup. */
+ futex_wait_queue_me(hb, &q, to);
+
+- raw_spin_lock(&hb->lock);
+- ret = handle_early_requeue_pi_wakeup(hb, &q, &key2, to);
+- raw_spin_unlock(&hb->lock);
+- if (ret)
+- goto out_put_keys;
++ /*
++ * On RT we must avoid races with requeue and trying to block
++ * on two mutexes (hb->lock and uaddr2's rtmutex) by
++ * serializing access to pi_blocked_on with pi_lock.
++ */
++ raw_spin_lock_irq(&current->pi_lock);
++ if (current->pi_blocked_on) {
++ /*
++ * We have been requeued or are in the process of
++ * being requeued.
++ */
++ raw_spin_unlock_irq(&current->pi_lock);
++ } else {
++ /*
++ * Setting pi_blocked_on to PI_WAKEUP_INPROGRESS
++ * prevents a concurrent requeue from moving us to the
++ * uaddr2 rtmutex. After that we can safely acquire
++ * (and possibly block on) hb->lock.
++ */
++ current->pi_blocked_on = PI_WAKEUP_INPROGRESS;
++ raw_spin_unlock_irq(&current->pi_lock);
++
++ spin_lock(&hb->lock);
++
++ /*
++ * Clean up pi_blocked_on. We might leak it otherwise
++ * when we succeeded with the hb->lock in the fast
++ * path.
++ */
++ raw_spin_lock_irq(&current->pi_lock);
++ current->pi_blocked_on = NULL;
++ raw_spin_unlock_irq(&current->pi_lock);
++
++ ret = handle_early_requeue_pi_wakeup(hb, &q, &key2, to);
++ spin_unlock(&hb->lock);
++ if (ret)
++ goto out_put_keys;
++ }
+
+ /*
+- * In order for us to be here, we know our q.key == key2, and since
+- * we took the hb->lock above, we also know that futex_requeue() has
+- * completed and we no longer have to concern ourselves with a wakeup
+- * race with the atomic proxy lock acquisition by the requeue code. The
+- * futex_requeue dropped our key1 reference and incremented our key2
+- * reference count.
++ * In order to be here, we have either been requeued, are in
++ * the process of being requeued, or requeue successfully
++ * acquired uaddr2 on our behalf. If pi_blocked_on was
++ * non-null above, we may be racing with a requeue. Do not
++ * rely on q->lock_ptr to be hb2->lock until after blocking on
++ * hb->lock or hb2->lock. The futex_requeue dropped our key1
++ * reference and incremented our key2 reference count.
+ */
++ hb2 = hash_futex(&key2);
+
+ /* Check if the requeue code acquired the second futex for us. */
+ if (!q.rt_waiter) {
+@@ -3424,17 +3459,15 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+ * did a lock-steal - fix up the PI-state in that case.
+ */
+ if (q.pi_state && (q.pi_state->owner != current)) {
+- struct futex_pi_state *ps_free;
+-
+- raw_spin_lock(q.lock_ptr);
++ spin_lock(&hb2->lock);
++ BUG_ON(&hb2->lock != q.lock_ptr);
+ ret = fixup_pi_state_owner(uaddr2, &q, current);
+ /*
+ * Drop the reference to the pi state which
+ * the requeue_pi() code acquired for us.
+ */
+- ps_free = __put_pi_state(q.pi_state);
++ put_pi_state(q.pi_state);
+ spin_unlock(&hb2->lock);
+- kfree(ps_free);
+ /*
+ * Adjust the return value. It's either -EFAULT or
+ * success (1) but the caller expects 0 for success.
+@@ -3453,7 +3486,8 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+ pi_mutex = &q.pi_state->pi_mutex;
+ ret = rt_mutex_wait_proxy_lock(pi_mutex, to, &rt_waiter);
+
+- raw_spin_lock(q.lock_ptr);
++ spin_lock(&hb2->lock);
++ BUG_ON(&hb2->lock != q.lock_ptr);
+ if (ret && !rt_mutex_cleanup_proxy_lock(pi_mutex, &rt_waiter))
+ ret = 0;
+
+@@ -4212,7 +4246,7 @@ static int __init futex_init(void)
+ for (i = 0; i < futex_hashsize; i++) {
+ atomic_set(&futex_queues[i].waiters, 0);
+ plist_head_init(&futex_queues[i].chain);
+- raw_spin_lock_init(&futex_queues[i].lock);
++ spin_lock_init(&futex_queues[i].lock);
+ }
+
+ return 0;
+diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
+index 05fcf8a75a51..ded2296f848a 100644
+--- a/kernel/locking/rtmutex.c
++++ b/kernel/locking/rtmutex.c
+@@ -142,6 +142,12 @@ static void fixup_rt_mutex_waiters(struct rt_mutex *lock)
+ WRITE_ONCE(*p, owner & ~RT_MUTEX_HAS_WAITERS);
+ }
+
++static int rt_mutex_real_waiter(struct rt_mutex_waiter *waiter)
++{
++ return waiter && waiter != PI_WAKEUP_INPROGRESS &&
++ waiter != PI_REQUEUE_INPROGRESS;
++}
++
+ /*
+ * We can speed up the acquire/release, if there's no debugging state to be
+ * set up.
+@@ -415,7 +421,8 @@ int max_lock_depth = 1024;
+
+ static inline struct rt_mutex *task_blocked_on_lock(struct task_struct *p)
+ {
+- return p->pi_blocked_on ? p->pi_blocked_on->lock : NULL;
++ return rt_mutex_real_waiter(p->pi_blocked_on) ?
++ p->pi_blocked_on->lock : NULL;
+ }
+
+ /*
+@@ -551,7 +558,7 @@ static int rt_mutex_adjust_prio_chain(struct task_struct *task,
+ * reached or the state of the chain has changed while we
+ * dropped the locks.
+ */
+- if (!waiter)
++ if (!rt_mutex_real_waiter(waiter))
+ goto out_unlock_pi;
+
+ /*
+@@ -1321,6 +1328,22 @@ static int task_blocks_on_rt_mutex(struct rt_mutex *lock,
+ return -EDEADLK;
+
+ raw_spin_lock(&task->pi_lock);
++ /*
++ * In the case of futex requeue PI, this will be a proxy
++ * lock. The task will wake unaware that it is enqueueed on
++ * this lock. Avoid blocking on two locks and corrupting
++ * pi_blocked_on via the PI_WAKEUP_INPROGRESS
++ * flag. futex_wait_requeue_pi() sets this when it wakes up
++ * before requeue (due to a signal or timeout). Do not enqueue
++ * the task if PI_WAKEUP_INPROGRESS is set.
++ */
++ if (task != current && task->pi_blocked_on == PI_WAKEUP_INPROGRESS) {
++ raw_spin_unlock(&task->pi_lock);
++ return -EAGAIN;
++ }
++
++ BUG_ON(rt_mutex_real_waiter(task->pi_blocked_on));
++
+ waiter->task = task;
+ waiter->lock = lock;
+ waiter->prio = task->prio;
+@@ -1344,7 +1367,7 @@ static int task_blocks_on_rt_mutex(struct rt_mutex *lock,
+ rt_mutex_enqueue_pi(owner, waiter);
+
+ rt_mutex_adjust_prio(owner);
+- if (owner->pi_blocked_on)
++ if (rt_mutex_real_waiter(owner->pi_blocked_on))
+ chain_walk = 1;
+ } else if (rt_mutex_cond_detect_deadlock(waiter, chwalk)) {
+ chain_walk = 1;
+@@ -1444,7 +1467,7 @@ static void remove_waiter(struct rt_mutex *lock,
+ {
+ bool is_top_waiter = (waiter == rt_mutex_top_waiter(lock));
+ struct task_struct *owner = rt_mutex_owner(lock);
+- struct rt_mutex *next_lock;
++ struct rt_mutex *next_lock = NULL;
+
+ lockdep_assert_held(&lock->wait_lock);
+
+@@ -1470,7 +1493,8 @@ static void remove_waiter(struct rt_mutex *lock,
+ rt_mutex_adjust_prio(owner);
+
+ /* Store the lock on which owner is blocked or NULL */
+- next_lock = task_blocked_on_lock(owner);
++ if (rt_mutex_real_waiter(owner->pi_blocked_on))
++ next_lock = task_blocked_on_lock(owner);
+
+ raw_spin_unlock(&owner->pi_lock);
+
+@@ -1506,7 +1530,8 @@ void rt_mutex_adjust_pi(struct task_struct *task)
+ raw_spin_lock_irqsave(&task->pi_lock, flags);
+
+ waiter = task->pi_blocked_on;
+- if (!waiter || rt_mutex_waiter_equal(waiter, task_to_waiter(task))) {
++ if (!rt_mutex_real_waiter(waiter) ||
++ rt_mutex_waiter_equal(waiter, task_to_waiter(task))) {
+ raw_spin_unlock_irqrestore(&task->pi_lock, flags);
+ return;
+ }
+@@ -2324,6 +2349,34 @@ int __rt_mutex_start_proxy_lock(struct rt_mutex *lock,
+ if (try_to_take_rt_mutex(lock, task, NULL))
+ return 1;
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++ /*
++ * In PREEMPT_RT there's an added race.
++ * If the task, that we are about to requeue, times out,
++ * it can set the PI_WAKEUP_INPROGRESS. This tells the requeue
++ * to skip this task. But right after the task sets
++ * its pi_blocked_on to PI_WAKEUP_INPROGRESS it can then
++ * block on the spin_lock(&hb->lock), which in RT is an rtmutex.
++ * This will replace the PI_WAKEUP_INPROGRESS with the actual
++ * lock that it blocks on. We *must not* place this task
++ * on this proxy lock in that case.
++ *
++ * To prevent this race, we first take the task's pi_lock
++ * and check if it has updated its pi_blocked_on. If it has,
++ * we assume that it woke up and we return -EAGAIN.
++ * Otherwise, we set the task's pi_blocked_on to
++ * PI_REQUEUE_INPROGRESS, so that if the task is waking up
++ * it will know that we are in the process of requeuing it.
++ */
++ raw_spin_lock(&task->pi_lock);
++ if (task->pi_blocked_on) {
++ raw_spin_unlock(&task->pi_lock);
++ return -EAGAIN;
++ }
++ task->pi_blocked_on = PI_REQUEUE_INPROGRESS;
++ raw_spin_unlock(&task->pi_lock);
++#endif
++
+ /* We enforce deadlock detection for futexes */
+ 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 f587e0422d23..8e0c592273e6 100644
+--- a/kernel/locking/rtmutex_common.h
++++ b/kernel/locking/rtmutex_common.h
+@@ -132,6 +132,9 @@ enum rtmutex_chainwalk {
+ /*
+ * PI-futex support (proxy locking functions, etc.):
+ */
++#define PI_WAKEUP_INPROGRESS ((struct rt_mutex_waiter *) 1)
++#define PI_REQUEUE_INPROGRESS ((struct rt_mutex_waiter *) 2)
++
+ extern struct task_struct *rt_mutex_next_owner(struct rt_mutex *lock);
+ extern void rt_mutex_init_proxy_locked(struct rt_mutex *lock,
+ struct task_struct *proxy_owner);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0304-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch b/debian/patches-rt/0304-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch
new file mode 100644
index 000000000..86fb4bb50
--- /dev/null
+++ b/debian/patches-rt/0304-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch
@@ -0,0 +1,102 @@
+From 91bba7aa7f53d991fab4b00ba2bb333dc25dd2ee Mon Sep 17 00:00:00 2001
+From: Peter Zijlstra <peterz@infradead.org>
+Date: Mon, 30 Sep 2019 18:15:44 +0200
+Subject: [PATCH 304/347] locking/rtmutex: Clean ->pi_blocked_on in the error
+ case
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 0be4ea6e3ce693101be0fbd55a0cc7ce238ab2eb ]
+
+The function rt_mutex_wait_proxy_lock() cleans ->pi_blocked_on in case
+of failure (timeout, signal). The same cleanup is required in
+__rt_mutex_start_proxy_lock().
+In both the cases the tasks was interrupted by a signal or timeout while
+acquiring the lock and after the interruption it longer blocks on the
+lock.
+
+Fixes: 1a1fb985f2e2b ("futex: Handle early deadlock return correctly")
+Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/locking/rtmutex.c | 43 +++++++++++++++++++++++-----------------
+ 1 file changed, 25 insertions(+), 18 deletions(-)
+
+diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
+index ded2296f848a..dc95a81ae3a6 100644
+--- a/kernel/locking/rtmutex.c
++++ b/kernel/locking/rtmutex.c
+@@ -2319,6 +2319,26 @@ void rt_mutex_proxy_unlock(struct rt_mutex *lock)
+ rt_mutex_set_owner(lock, NULL);
+ }
+
++static void fixup_rt_mutex_blocked(struct rt_mutex *lock)
++{
++ struct task_struct *tsk = current;
++ /*
++ * RT has a problem here when the wait got interrupted by a timeout
++ * or a signal. task->pi_blocked_on is still set. The task must
++ * acquire the hash bucket lock when returning from this function.
++ *
++ * If the hash bucket lock is contended then the
++ * BUG_ON(rt_mutex_real_waiter(task->pi_blocked_on)) in
++ * task_blocks_on_rt_mutex() will trigger. This can be avoided by
++ * clearing task->pi_blocked_on which removes the task from the
++ * boosting chain of the rtmutex. That's correct because the task
++ * is not longer blocked on it.
++ */
++ raw_spin_lock(&tsk->pi_lock);
++ tsk->pi_blocked_on = NULL;
++ raw_spin_unlock(&tsk->pi_lock);
++}
++
+ /**
+ * __rt_mutex_start_proxy_lock() - Start lock acquisition for another task
+ * @lock: the rt_mutex to take
+@@ -2391,6 +2411,9 @@ int __rt_mutex_start_proxy_lock(struct rt_mutex *lock,
+ ret = 0;
+ }
+
++ if (ret)
++ fixup_rt_mutex_blocked(lock);
++
+ debug_rt_mutex_print_deadlock(waiter);
+
+ return ret;
+@@ -2471,7 +2494,6 @@ int rt_mutex_wait_proxy_lock(struct rt_mutex *lock,
+ struct hrtimer_sleeper *to,
+ struct rt_mutex_waiter *waiter)
+ {
+- struct task_struct *tsk = current;
+ int ret;
+
+ raw_spin_lock_irq(&lock->wait_lock);
+@@ -2483,23 +2505,8 @@ int rt_mutex_wait_proxy_lock(struct rt_mutex *lock,
+ * have to fix that up.
+ */
+ fixup_rt_mutex_waiters(lock);
+- /*
+- * RT has a problem here when the wait got interrupted by a timeout
+- * or a signal. task->pi_blocked_on is still set. The task must
+- * acquire the hash bucket lock when returning from this function.
+- *
+- * If the hash bucket lock is contended then the
+- * BUG_ON(rt_mutex_real_waiter(task->pi_blocked_on)) in
+- * task_blocks_on_rt_mutex() will trigger. This can be avoided by
+- * clearing task->pi_blocked_on which removes the task from the
+- * boosting chain of the rtmutex. That's correct because the task
+- * is not longer blocked on it.
+- */
+- if (ret) {
+- raw_spin_lock(&tsk->pi_lock);
+- tsk->pi_blocked_on = NULL;
+- raw_spin_unlock(&tsk->pi_lock);
+- }
++ if (ret)
++ fixup_rt_mutex_blocked(lock);
+
+ raw_spin_unlock_irq(&lock->wait_lock);
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0305-lib-ubsan-Don-t-seralize-UBSAN-report.patch b/debian/patches-rt/0305-lib-ubsan-Don-t-seralize-UBSAN-report.patch
new file mode 100644
index 000000000..0d8dba5e3
--- /dev/null
+++ b/debian/patches-rt/0305-lib-ubsan-Don-t-seralize-UBSAN-report.patch
@@ -0,0 +1,308 @@
+From 7310d776df7bc46b442c51d6b723b77ef6614830 Mon Sep 17 00:00:00 2001
+From: Julien Grall <julien.grall@arm.com>
+Date: Fri, 20 Sep 2019 11:08:35 +0100
+Subject: [PATCH 305/347] lib/ubsan: Don't seralize UBSAN report
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 4702c28ac777b27acb499cbd5e8e787ce1a7d82d ]
+
+At the moment, UBSAN report will be serialized using a spin_lock(). On
+RT-systems, spinlocks are turned to rt_spin_lock and may sleep. This will
+result to the following splat if the undefined behavior is in a context
+that can sleep:
+
+| BUG: sleeping function called from invalid context at /src/linux/kernel/locking/rtmutex.c:968
+| in_atomic(): 1, irqs_disabled(): 128, pid: 3447, name: make
+| 1 lock held by make/3447:
+| #0: 000000009a966332 (&mm->mmap_sem){++++}, at: do_page_fault+0x140/0x4f8
+| Preemption disabled at:
+| [<ffff000011324a4c>] rt_mutex_futex_unlock+0x4c/0xb0
+| CPU: 3 PID: 3447 Comm: make Tainted: G W 5.2.14-rt7-01890-ge6e057589653 #911
+| Call trace:
+| dump_backtrace+0x0/0x148
+| show_stack+0x14/0x20
+| dump_stack+0xbc/0x104
+| ___might_sleep+0x154/0x210
+| rt_spin_lock+0x68/0xa0
+| ubsan_prologue+0x30/0x68
+| handle_overflow+0x64/0xe0
+| __ubsan_handle_add_overflow+0x10/0x18
+| __lock_acquire+0x1c28/0x2a28
+| lock_acquire+0xf0/0x370
+| _raw_spin_lock_irqsave+0x58/0x78
+| rt_mutex_futex_unlock+0x4c/0xb0
+| rt_spin_unlock+0x28/0x70
+| get_page_from_freelist+0x428/0x2b60
+| __alloc_pages_nodemask+0x174/0x1708
+| alloc_pages_vma+0x1ac/0x238
+| __handle_mm_fault+0x4ac/0x10b0
+| handle_mm_fault+0x1d8/0x3b0
+| do_page_fault+0x1c8/0x4f8
+| do_translation_fault+0xb8/0xe0
+| do_mem_abort+0x3c/0x98
+| el0_da+0x20/0x24
+
+The spin_lock() will protect against multiple CPUs to output a report
+together, I guess to prevent them to be interleaved. However, they can
+still interleave with other messages (and even splat from __migth_sleep).
+
+So the lock usefulness seems pretty limited. Rather than trying to
+accomodate RT-system by switching to a raw_spin_lock(), the lock is now
+completely dropped.
+
+Link: https://lkml.kernel.org/r/20190920100835.14999-1-julien.grall@arm.com
+Reported-by: Andre Przywara <andre.przywara@arm.com>
+Signed-off-by: Julien Grall <julien.grall@arm.com>
+Acked-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ lib/ubsan.c | 64 +++++++++++++++++++----------------------------------
+ 1 file changed, 23 insertions(+), 41 deletions(-)
+
+diff --git a/lib/ubsan.c b/lib/ubsan.c
+index 1e9e2ab25539..5830cc9a2164 100644
+--- a/lib/ubsan.c
++++ b/lib/ubsan.c
+@@ -143,25 +143,21 @@ static void val_to_string(char *str, size_t size, struct type_descriptor *type,
+ }
+ }
+
+-static DEFINE_SPINLOCK(report_lock);
+-
+-static void ubsan_prologue(struct source_location *location,
+- unsigned long *flags)
++static void ubsan_prologue(struct source_location *location)
+ {
+ current->in_ubsan++;
+- spin_lock_irqsave(&report_lock, *flags);
+
+ pr_err("========================================"
+ "========================================\n");
+ print_source_location("UBSAN: Undefined behaviour in", location);
+ }
+
+-static void ubsan_epilogue(unsigned long *flags)
++static void ubsan_epilogue(void)
+ {
+ dump_stack();
+ pr_err("========================================"
+ "========================================\n");
+- spin_unlock_irqrestore(&report_lock, *flags);
++
+ current->in_ubsan--;
+ }
+
+@@ -170,14 +166,13 @@ static void handle_overflow(struct overflow_data *data, void *lhs,
+ {
+
+ struct type_descriptor *type = data->type;
+- unsigned long flags;
+ char lhs_val_str[VALUE_LENGTH];
+ char rhs_val_str[VALUE_LENGTH];
+
+ if (suppress_report(&data->location))
+ return;
+
+- ubsan_prologue(&data->location, &flags);
++ ubsan_prologue(&data->location);
+
+ val_to_string(lhs_val_str, sizeof(lhs_val_str), type, lhs);
+ val_to_string(rhs_val_str, sizeof(rhs_val_str), type, rhs);
+@@ -189,7 +184,7 @@ static void handle_overflow(struct overflow_data *data, void *lhs,
+ rhs_val_str,
+ type->type_name);
+
+- ubsan_epilogue(&flags);
++ ubsan_epilogue();
+ }
+
+ void __ubsan_handle_add_overflow(struct overflow_data *data,
+@@ -217,20 +212,19 @@ EXPORT_SYMBOL(__ubsan_handle_mul_overflow);
+ void __ubsan_handle_negate_overflow(struct overflow_data *data,
+ void *old_val)
+ {
+- unsigned long flags;
+ char old_val_str[VALUE_LENGTH];
+
+ if (suppress_report(&data->location))
+ return;
+
+- ubsan_prologue(&data->location, &flags);
++ ubsan_prologue(&data->location);
+
+ val_to_string(old_val_str, sizeof(old_val_str), data->type, old_val);
+
+ pr_err("negation of %s cannot be represented in type %s:\n",
+ old_val_str, data->type->type_name);
+
+- ubsan_epilogue(&flags);
++ ubsan_epilogue();
+ }
+ EXPORT_SYMBOL(__ubsan_handle_negate_overflow);
+
+@@ -238,13 +232,12 @@ EXPORT_SYMBOL(__ubsan_handle_negate_overflow);
+ void __ubsan_handle_divrem_overflow(struct overflow_data *data,
+ void *lhs, void *rhs)
+ {
+- unsigned long flags;
+ char rhs_val_str[VALUE_LENGTH];
+
+ if (suppress_report(&data->location))
+ return;
+
+- ubsan_prologue(&data->location, &flags);
++ ubsan_prologue(&data->location);
+
+ val_to_string(rhs_val_str, sizeof(rhs_val_str), data->type, rhs);
+
+@@ -254,58 +247,52 @@ void __ubsan_handle_divrem_overflow(struct overflow_data *data,
+ else
+ pr_err("division by zero\n");
+
+- ubsan_epilogue(&flags);
++ ubsan_epilogue();
+ }
+ EXPORT_SYMBOL(__ubsan_handle_divrem_overflow);
+
+ static void handle_null_ptr_deref(struct type_mismatch_data_common *data)
+ {
+- unsigned long flags;
+-
+ if (suppress_report(data->location))
+ return;
+
+- ubsan_prologue(data->location, &flags);
++ ubsan_prologue(data->location);
+
+ pr_err("%s null pointer of type %s\n",
+ type_check_kinds[data->type_check_kind],
+ data->type->type_name);
+
+- ubsan_epilogue(&flags);
++ ubsan_epilogue();
+ }
+
+ static void handle_misaligned_access(struct type_mismatch_data_common *data,
+ unsigned long ptr)
+ {
+- unsigned long flags;
+-
+ if (suppress_report(data->location))
+ return;
+
+- ubsan_prologue(data->location, &flags);
++ ubsan_prologue(data->location);
+
+ pr_err("%s misaligned address %p for type %s\n",
+ type_check_kinds[data->type_check_kind],
+ (void *)ptr, data->type->type_name);
+ pr_err("which requires %ld byte alignment\n", data->alignment);
+
+- ubsan_epilogue(&flags);
++ ubsan_epilogue();
+ }
+
+ static void handle_object_size_mismatch(struct type_mismatch_data_common *data,
+ unsigned long ptr)
+ {
+- unsigned long flags;
+-
+ if (suppress_report(data->location))
+ return;
+
+- ubsan_prologue(data->location, &flags);
++ ubsan_prologue(data->location);
+ pr_err("%s address %p with insufficient space\n",
+ type_check_kinds[data->type_check_kind],
+ (void *) ptr);
+ pr_err("for an object of type %s\n", data->type->type_name);
+- ubsan_epilogue(&flags);
++ ubsan_epilogue();
+ }
+
+ static void ubsan_type_mismatch_common(struct type_mismatch_data_common *data,
+@@ -369,25 +356,23 @@ EXPORT_SYMBOL(__ubsan_handle_vla_bound_not_positive);
+
+ void __ubsan_handle_out_of_bounds(struct out_of_bounds_data *data, void *index)
+ {
+- unsigned long flags;
+ char index_str[VALUE_LENGTH];
+
+ if (suppress_report(&data->location))
+ return;
+
+- ubsan_prologue(&data->location, &flags);
++ ubsan_prologue(&data->location);
+
+ val_to_string(index_str, sizeof(index_str), data->index_type, index);
+ pr_err("index %s is out of range for type %s\n", index_str,
+ data->array_type->type_name);
+- ubsan_epilogue(&flags);
++ ubsan_epilogue();
+ }
+ EXPORT_SYMBOL(__ubsan_handle_out_of_bounds);
+
+ void __ubsan_handle_shift_out_of_bounds(struct shift_out_of_bounds_data *data,
+ void *lhs, void *rhs)
+ {
+- unsigned long flags;
+ struct type_descriptor *rhs_type = data->rhs_type;
+ struct type_descriptor *lhs_type = data->lhs_type;
+ char rhs_str[VALUE_LENGTH];
+@@ -396,7 +381,7 @@ void __ubsan_handle_shift_out_of_bounds(struct shift_out_of_bounds_data *data,
+ if (suppress_report(&data->location))
+ return;
+
+- ubsan_prologue(&data->location, &flags);
++ ubsan_prologue(&data->location);
+
+ val_to_string(rhs_str, sizeof(rhs_str), rhs_type, rhs);
+ val_to_string(lhs_str, sizeof(lhs_str), lhs_type, lhs);
+@@ -419,18 +404,16 @@ void __ubsan_handle_shift_out_of_bounds(struct shift_out_of_bounds_data *data,
+ lhs_str, rhs_str,
+ lhs_type->type_name);
+
+- ubsan_epilogue(&flags);
++ ubsan_epilogue();
+ }
+ EXPORT_SYMBOL(__ubsan_handle_shift_out_of_bounds);
+
+
+ void __ubsan_handle_builtin_unreachable(struct unreachable_data *data)
+ {
+- unsigned long flags;
+-
+- ubsan_prologue(&data->location, &flags);
++ ubsan_prologue(&data->location);
+ pr_err("calling __builtin_unreachable()\n");
+- ubsan_epilogue(&flags);
++ ubsan_epilogue();
+ panic("can't return from __builtin_unreachable()");
+ }
+ EXPORT_SYMBOL(__ubsan_handle_builtin_unreachable);
+@@ -438,19 +421,18 @@ EXPORT_SYMBOL(__ubsan_handle_builtin_unreachable);
+ void __ubsan_handle_load_invalid_value(struct invalid_value_data *data,
+ void *val)
+ {
+- unsigned long flags;
+ char val_str[VALUE_LENGTH];
+
+ if (suppress_report(&data->location))
+ return;
+
+- ubsan_prologue(&data->location, &flags);
++ ubsan_prologue(&data->location);
+
+ val_to_string(val_str, sizeof(val_str), data->type, val);
+
+ pr_err("load of value %s is not a valid value for type %s\n",
+ val_str, data->type->type_name);
+
+- ubsan_epilogue(&flags);
++ ubsan_epilogue();
+ }
+ EXPORT_SYMBOL(__ubsan_handle_load_invalid_value);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0306-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch b/debian/patches-rt/0306-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch
new file mode 100644
index 000000000..ca08e2aca
--- /dev/null
+++ b/debian/patches-rt/0306-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch
@@ -0,0 +1,293 @@
+From 3d72712c05917c06303670565d51a308334595d6 Mon Sep 17 00:00:00 2001
+From: Liu Haitao <haitao.liu@windriver.com>
+Date: Fri, 27 Sep 2019 16:22:30 +0800
+Subject: [PATCH 306/347] kmemleak: Change the lock of kmemleak_object to
+ raw_spinlock_t
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 217847f57119b5fdd377bfa3d344613ddb98d9fc ]
+
+The commit ("kmemleak: Turn kmemleak_lock to raw spinlock on RT")
+changed the kmemleak_lock to raw spinlock. However the
+kmemleak_object->lock is held after the kmemleak_lock is held in
+scan_block().
+
+Make the object->lock a raw_spinlock_t.
+
+Cc: stable-rt@vger.kernel.org
+Link: https://lkml.kernel.org/r/20190927082230.34152-1-yongxin.liu@windriver.com
+Signed-off-by: Liu Haitao <haitao.liu@windriver.com>
+Signed-off-by: Yongxin Liu <yongxin.liu@windriver.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ mm/kmemleak.c | 72 +++++++++++++++++++++++++--------------------------
+ 1 file changed, 36 insertions(+), 36 deletions(-)
+
+diff --git a/mm/kmemleak.c b/mm/kmemleak.c
+index 5b6718dd3a64..23e2837501d6 100644
+--- a/mm/kmemleak.c
++++ b/mm/kmemleak.c
+@@ -147,7 +147,7 @@ struct kmemleak_scan_area {
+ * (use_count) and freed using the RCU mechanism.
+ */
+ struct kmemleak_object {
+- spinlock_t lock;
++ raw_spinlock_t lock;
+ unsigned int flags; /* object status flags */
+ struct list_head object_list;
+ struct list_head gray_list;
+@@ -561,7 +561,7 @@ static struct kmemleak_object *create_object(unsigned long ptr, size_t size,
+ INIT_LIST_HEAD(&object->object_list);
+ INIT_LIST_HEAD(&object->gray_list);
+ INIT_HLIST_HEAD(&object->area_list);
+- spin_lock_init(&object->lock);
++ raw_spin_lock_init(&object->lock);
+ atomic_set(&object->use_count, 1);
+ object->flags = OBJECT_ALLOCATED;
+ object->pointer = ptr;
+@@ -642,9 +642,9 @@ static void __delete_object(struct kmemleak_object *object)
+ * Locking here also ensures that the corresponding memory block
+ * cannot be freed when it is being scanned.
+ */
+- spin_lock_irqsave(&object->lock, flags);
++ raw_spin_lock_irqsave(&object->lock, flags);
+ object->flags &= ~OBJECT_ALLOCATED;
+- spin_unlock_irqrestore(&object->lock, flags);
++ raw_spin_unlock_irqrestore(&object->lock, flags);
+ put_object(object);
+ }
+
+@@ -716,9 +716,9 @@ static void paint_it(struct kmemleak_object *object, int color)
+ {
+ unsigned long flags;
+
+- spin_lock_irqsave(&object->lock, flags);
++ raw_spin_lock_irqsave(&object->lock, flags);
+ __paint_it(object, color);
+- spin_unlock_irqrestore(&object->lock, flags);
++ raw_spin_unlock_irqrestore(&object->lock, flags);
+ }
+
+ static void paint_ptr(unsigned long ptr, int color)
+@@ -778,7 +778,7 @@ static void add_scan_area(unsigned long ptr, size_t size, gfp_t gfp)
+ goto out;
+ }
+
+- spin_lock_irqsave(&object->lock, flags);
++ raw_spin_lock_irqsave(&object->lock, flags);
+ if (size == SIZE_MAX) {
+ size = object->pointer + object->size - ptr;
+ } else if (ptr + size > object->pointer + object->size) {
+@@ -794,7 +794,7 @@ static void add_scan_area(unsigned long ptr, size_t size, gfp_t gfp)
+
+ hlist_add_head(&area->node, &object->area_list);
+ out_unlock:
+- spin_unlock_irqrestore(&object->lock, flags);
++ raw_spin_unlock_irqrestore(&object->lock, flags);
+ out:
+ put_object(object);
+ }
+@@ -817,9 +817,9 @@ static void object_set_excess_ref(unsigned long ptr, unsigned long excess_ref)
+ return;
+ }
+
+- spin_lock_irqsave(&object->lock, flags);
++ raw_spin_lock_irqsave(&object->lock, flags);
+ object->excess_ref = excess_ref;
+- spin_unlock_irqrestore(&object->lock, flags);
++ raw_spin_unlock_irqrestore(&object->lock, flags);
+ put_object(object);
+ }
+
+@@ -839,9 +839,9 @@ static void object_no_scan(unsigned long ptr)
+ return;
+ }
+
+- spin_lock_irqsave(&object->lock, flags);
++ raw_spin_lock_irqsave(&object->lock, flags);
+ object->flags |= OBJECT_NO_SCAN;
+- spin_unlock_irqrestore(&object->lock, flags);
++ raw_spin_unlock_irqrestore(&object->lock, flags);
+ put_object(object);
+ }
+
+@@ -902,11 +902,11 @@ static void early_alloc(struct early_log *log)
+ log->min_count, GFP_ATOMIC);
+ if (!object)
+ goto out;
+- spin_lock_irqsave(&object->lock, flags);
++ raw_spin_lock_irqsave(&object->lock, flags);
+ for (i = 0; i < log->trace_len; i++)
+ object->trace[i] = log->trace[i];
+ object->trace_len = log->trace_len;
+- spin_unlock_irqrestore(&object->lock, flags);
++ raw_spin_unlock_irqrestore(&object->lock, flags);
+ out:
+ rcu_read_unlock();
+ }
+@@ -1096,9 +1096,9 @@ void __ref kmemleak_update_trace(const void *ptr)
+ return;
+ }
+
+- spin_lock_irqsave(&object->lock, flags);
++ raw_spin_lock_irqsave(&object->lock, flags);
+ object->trace_len = __save_stack_trace(object->trace);
+- spin_unlock_irqrestore(&object->lock, flags);
++ raw_spin_unlock_irqrestore(&object->lock, flags);
+
+ put_object(object);
+ }
+@@ -1344,7 +1344,7 @@ static void scan_block(void *_start, void *_end,
+ * previously acquired in scan_object(). These locks are
+ * enclosed by scan_mutex.
+ */
+- spin_lock_nested(&object->lock, SINGLE_DEPTH_NESTING);
++ raw_spin_lock_nested(&object->lock, SINGLE_DEPTH_NESTING);
+ /* only pass surplus references (object already gray) */
+ if (color_gray(object)) {
+ excess_ref = object->excess_ref;
+@@ -1353,7 +1353,7 @@ static void scan_block(void *_start, void *_end,
+ excess_ref = 0;
+ update_refs(object);
+ }
+- spin_unlock(&object->lock);
++ raw_spin_unlock(&object->lock);
+
+ if (excess_ref) {
+ object = lookup_object(excess_ref, 0);
+@@ -1362,9 +1362,9 @@ static void scan_block(void *_start, void *_end,
+ if (object == scanned)
+ /* circular reference, ignore */
+ continue;
+- spin_lock_nested(&object->lock, SINGLE_DEPTH_NESTING);
++ raw_spin_lock_nested(&object->lock, SINGLE_DEPTH_NESTING);
+ update_refs(object);
+- spin_unlock(&object->lock);
++ raw_spin_unlock(&object->lock);
+ }
+ }
+ raw_spin_unlock_irqrestore(&kmemleak_lock, flags);
+@@ -1400,7 +1400,7 @@ static void scan_object(struct kmemleak_object *object)
+ * Once the object->lock is acquired, the corresponding memory block
+ * cannot be freed (the same lock is acquired in delete_object).
+ */
+- spin_lock_irqsave(&object->lock, flags);
++ raw_spin_lock_irqsave(&object->lock, flags);
+ if (object->flags & OBJECT_NO_SCAN)
+ goto out;
+ if (!(object->flags & OBJECT_ALLOCATED))
+@@ -1419,9 +1419,9 @@ static void scan_object(struct kmemleak_object *object)
+ if (start >= end)
+ break;
+
+- spin_unlock_irqrestore(&object->lock, flags);
++ raw_spin_unlock_irqrestore(&object->lock, flags);
+ cond_resched();
+- spin_lock_irqsave(&object->lock, flags);
++ raw_spin_lock_irqsave(&object->lock, flags);
+ } while (object->flags & OBJECT_ALLOCATED);
+ } else
+ hlist_for_each_entry(area, &object->area_list, node)
+@@ -1429,7 +1429,7 @@ static void scan_object(struct kmemleak_object *object)
+ (void *)(area->start + area->size),
+ object);
+ out:
+- spin_unlock_irqrestore(&object->lock, flags);
++ raw_spin_unlock_irqrestore(&object->lock, flags);
+ }
+
+ /*
+@@ -1482,7 +1482,7 @@ static void kmemleak_scan(void)
+ /* prepare the kmemleak_object's */
+ rcu_read_lock();
+ list_for_each_entry_rcu(object, &object_list, object_list) {
+- spin_lock_irqsave(&object->lock, flags);
++ raw_spin_lock_irqsave(&object->lock, flags);
+ #ifdef DEBUG
+ /*
+ * With a few exceptions there should be a maximum of
+@@ -1499,7 +1499,7 @@ static void kmemleak_scan(void)
+ if (color_gray(object) && get_object(object))
+ list_add_tail(&object->gray_list, &gray_list);
+
+- spin_unlock_irqrestore(&object->lock, flags);
++ raw_spin_unlock_irqrestore(&object->lock, flags);
+ }
+ rcu_read_unlock();
+
+@@ -1564,14 +1564,14 @@ static void kmemleak_scan(void)
+ */
+ rcu_read_lock();
+ list_for_each_entry_rcu(object, &object_list, object_list) {
+- spin_lock_irqsave(&object->lock, flags);
++ raw_spin_lock_irqsave(&object->lock, flags);
+ if (color_white(object) && (object->flags & OBJECT_ALLOCATED)
+ && update_checksum(object) && get_object(object)) {
+ /* color it gray temporarily */
+ object->count = object->min_count;
+ list_add_tail(&object->gray_list, &gray_list);
+ }
+- spin_unlock_irqrestore(&object->lock, flags);
++ raw_spin_unlock_irqrestore(&object->lock, flags);
+ }
+ rcu_read_unlock();
+
+@@ -1591,13 +1591,13 @@ static void kmemleak_scan(void)
+ */
+ rcu_read_lock();
+ list_for_each_entry_rcu(object, &object_list, object_list) {
+- spin_lock_irqsave(&object->lock, flags);
++ raw_spin_lock_irqsave(&object->lock, flags);
+ if (unreferenced_object(object) &&
+ !(object->flags & OBJECT_REPORTED)) {
+ object->flags |= OBJECT_REPORTED;
+ new_leaks++;
+ }
+- spin_unlock_irqrestore(&object->lock, flags);
++ raw_spin_unlock_irqrestore(&object->lock, flags);
+ }
+ rcu_read_unlock();
+
+@@ -1749,10 +1749,10 @@ static int kmemleak_seq_show(struct seq_file *seq, void *v)
+ struct kmemleak_object *object = v;
+ unsigned long flags;
+
+- spin_lock_irqsave(&object->lock, flags);
++ raw_spin_lock_irqsave(&object->lock, flags);
+ if ((object->flags & OBJECT_REPORTED) && unreferenced_object(object))
+ print_unreferenced(seq, object);
+- spin_unlock_irqrestore(&object->lock, flags);
++ raw_spin_unlock_irqrestore(&object->lock, flags);
+ return 0;
+ }
+
+@@ -1782,9 +1782,9 @@ static int dump_str_object_info(const char *str)
+ return -EINVAL;
+ }
+
+- spin_lock_irqsave(&object->lock, flags);
++ raw_spin_lock_irqsave(&object->lock, flags);
+ dump_object_info(object);
+- spin_unlock_irqrestore(&object->lock, flags);
++ raw_spin_unlock_irqrestore(&object->lock, flags);
+
+ put_object(object);
+ return 0;
+@@ -1803,11 +1803,11 @@ static void kmemleak_clear(void)
+
+ rcu_read_lock();
+ list_for_each_entry_rcu(object, &object_list, object_list) {
+- spin_lock_irqsave(&object->lock, flags);
++ raw_spin_lock_irqsave(&object->lock, flags);
+ if ((object->flags & OBJECT_REPORTED) &&
+ unreferenced_object(object))
+ __paint_it(object, KMEMLEAK_GREY);
+- spin_unlock_irqrestore(&object->lock, flags);
++ raw_spin_unlock_irqrestore(&object->lock, flags);
+ }
+ rcu_read_unlock();
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0307-sched-migrate_enable-Use-select_fallback_rq.patch b/debian/patches-rt/0307-sched-migrate_enable-Use-select_fallback_rq.patch
new file mode 100644
index 000000000..6de7f0383
--- /dev/null
+++ b/debian/patches-rt/0307-sched-migrate_enable-Use-select_fallback_rq.patch
@@ -0,0 +1,66 @@
+From 86ff244b7222b5d5734b2c195ba28c7bbb5b6b0a Mon Sep 17 00:00:00 2001
+From: Scott Wood <swood@redhat.com>
+Date: Sat, 12 Oct 2019 01:52:12 -0500
+Subject: [PATCH 307/347] sched: migrate_enable: Use select_fallback_rq()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit adfa969d4cfcc995a9d866020124e50f1827d2d1 ]
+
+migrate_enable() currently open-codes a variant of select_fallback_rq().
+However, it does not have the "No more Mr. Nice Guy" fallback and thus
+it will pass an invalid CPU to the migration thread if cpus_mask only
+contains a CPU that is !active.
+
+Signed-off-by: Scott Wood <swood@redhat.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/sched/core.c | 25 ++++++++++---------------
+ 1 file changed, 10 insertions(+), 15 deletions(-)
+
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 6f91ee2b7e91..7eb3037c0b35 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -7329,6 +7329,7 @@ void migrate_enable(void)
+ if (p->migrate_disable_update) {
+ struct rq *rq;
+ struct rq_flags rf;
++ int cpu = task_cpu(p);
+
+ rq = task_rq_lock(p, &rf);
+ update_rq_clock(rq);
+@@ -7338,21 +7339,15 @@ void migrate_enable(void)
+
+ p->migrate_disable_update = 0;
+
+- WARN_ON(smp_processor_id() != task_cpu(p));
+- if (!cpumask_test_cpu(task_cpu(p), &p->cpus_mask)) {
+- const struct cpumask *cpu_valid_mask = cpu_active_mask;
+- struct migration_arg arg;
+- unsigned int dest_cpu;
+-
+- if (p->flags & PF_KTHREAD) {
+- /*
+- * Kernel threads are allowed on online && !active CPUs
+- */
+- cpu_valid_mask = cpu_online_mask;
+- }
+- dest_cpu = cpumask_any_and(cpu_valid_mask, &p->cpus_mask);
+- arg.task = p;
+- arg.dest_cpu = dest_cpu;
++ WARN_ON(smp_processor_id() != cpu);
++ if (!cpumask_test_cpu(cpu, &p->cpus_mask)) {
++ struct migration_arg arg = { p };
++ struct rq_flags rf;
++
++ rq = task_rq_lock(p, &rf);
++ update_rq_clock(rq);
++ arg.dest_cpu = select_fallback_rq(cpu, p);
++ task_rq_unlock(rq, p, &rf);
+
+ unpin_current_cpu();
+ preempt_lazy_enable();
+--
+2.36.1
+
diff --git a/debian/patches-rt/0308-sched-Lazy-migrate_disable-processing.patch b/debian/patches-rt/0308-sched-Lazy-migrate_disable-processing.patch
new file mode 100644
index 000000000..973b6e870
--- /dev/null
+++ b/debian/patches-rt/0308-sched-Lazy-migrate_disable-processing.patch
@@ -0,0 +1,616 @@
+From 34b182c6f6606c5a02a3ddea15356251ca28093b Mon Sep 17 00:00:00 2001
+From: Scott Wood <swood@redhat.com>
+Date: Sat, 12 Oct 2019 01:52:13 -0500
+Subject: [PATCH 308/347] sched: Lazy migrate_disable processing
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 425c5b38779a860062aa62219dc920d374b13c17 ]
+
+Avoid overhead on the majority of migrate disable/enable sequences by
+only manipulating scheduler data (and grabbing the relevant locks) when
+the task actually schedules while migrate-disabled. A kernel build
+showed around a 10% reduction in system time (with CONFIG_NR_CPUS=512).
+
+Instead of cpuhp_pin_lock, CPU hotplug is handled by keeping a per-CPU
+count of the number of pinned tasks (including tasks which have not
+scheduled in the migrate-disabled section); takedown_cpu() will
+wait until that reaches zero (confirmed by take_cpu_down() in stop
+machine context to deal with races) before migrating tasks off of the
+cpu.
+
+To simplify synchronization, updating cpus_mask is no longer deferred
+until migrate_enable(). This lets us not have to worry about
+migrate_enable() missing the update if it's on the fast path (didn't
+schedule during the migrate disabled section). It also makes the code
+a bit simpler and reduces deviation from mainline.
+
+While the main motivation for this is the performance benefit, lazy
+migrate disable also eliminates the restriction on calling
+migrate_disable() while atomic but leaving the atomic region prior to
+calling migrate_enable() -- though this won't help with local_bh_disable()
+(and thus rcutorture) unless something similar is done with the recently
+added local_lock.
+
+Signed-off-by: Scott Wood <swood@redhat.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ include/linux/cpu.h | 4 -
+ include/linux/sched.h | 11 +--
+ init/init_task.c | 4 +
+ kernel/cpu.c | 103 +++++++++--------------
+ kernel/sched/core.c | 182 +++++++++++++++++------------------------
+ kernel/sched/sched.h | 4 +
+ lib/smp_processor_id.c | 3 +
+ 7 files changed, 129 insertions(+), 182 deletions(-)
+
+diff --git a/include/linux/cpu.h b/include/linux/cpu.h
+index e67645924404..87347ccbba0c 100644
+--- a/include/linux/cpu.h
++++ b/include/linux/cpu.h
+@@ -118,8 +118,6 @@ extern void cpu_hotplug_disable(void);
+ extern void cpu_hotplug_enable(void);
+ void clear_tasks_mm_cpumask(int cpu);
+ int cpu_down(unsigned int cpu);
+-extern void pin_current_cpu(void);
+-extern void unpin_current_cpu(void);
+
+ #else /* CONFIG_HOTPLUG_CPU */
+
+@@ -131,8 +129,6 @@ static inline int cpus_read_trylock(void) { return true; }
+ static inline void lockdep_assert_cpus_held(void) { }
+ static inline void cpu_hotplug_disable(void) { }
+ static inline void cpu_hotplug_enable(void) { }
+-static inline void pin_current_cpu(void) { }
+-static inline void unpin_current_cpu(void) { }
+
+ #endif /* !CONFIG_HOTPLUG_CPU */
+
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index e567fe2d7058..65069db8923c 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -227,6 +227,8 @@ extern void io_schedule_finish(int token);
+ extern long io_schedule_timeout(long timeout);
+ extern void io_schedule(void);
+
++int cpu_nr_pinned(int cpu);
++
+ /**
+ * struct prev_cputime - snapshot of system and user cputime
+ * @utime: time spent in user mode
+@@ -670,16 +672,13 @@ struct task_struct {
+ cpumask_t cpus_mask;
+ #if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
+ int migrate_disable;
+- int migrate_disable_update;
+- int pinned_on_cpu;
++ bool migrate_disable_scheduled;
+ # ifdef CONFIG_SCHED_DEBUG
+- int migrate_disable_atomic;
++ int pinned_on_cpu;
+ # endif
+-
+ #elif !defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
+ # ifdef CONFIG_SCHED_DEBUG
+ int migrate_disable;
+- int migrate_disable_atomic;
+ # endif
+ #endif
+ #ifdef CONFIG_PREEMPT_RT_FULL
+@@ -2058,4 +2057,6 @@ static inline void rseq_syscall(struct pt_regs *regs)
+
+ #endif
+
++extern struct task_struct *takedown_cpu_task;
++
+ #endif
+diff --git a/init/init_task.c b/init/init_task.c
+index 634becebd713..45b84137c4b3 100644
+--- a/init/init_task.c
++++ b/init/init_task.c
+@@ -80,6 +80,10 @@ struct task_struct init_task
+ .cpus_ptr = &init_task.cpus_mask,
+ .cpus_mask = CPU_MASK_ALL,
+ .nr_cpus_allowed= NR_CPUS,
++#if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE) && \
++ defined(CONFIG_SCHED_DEBUG)
++ .pinned_on_cpu = -1,
++#endif
+ .mm = NULL,
+ .active_mm = &init_mm,
+ .restart_block = {
+diff --git a/kernel/cpu.c b/kernel/cpu.c
+index c84a93f84164..edd4fd8da726 100644
+--- a/kernel/cpu.c
++++ b/kernel/cpu.c
+@@ -77,11 +77,6 @@ static DEFINE_PER_CPU(struct cpuhp_cpu_state, cpuhp_state) = {
+ .fail = CPUHP_INVALID,
+ };
+
+-#if defined(CONFIG_HOTPLUG_CPU) && defined(CONFIG_PREEMPT_RT_FULL)
+-static DEFINE_PER_CPU(struct rt_rw_lock, cpuhp_pin_lock) = \
+- __RWLOCK_RT_INITIALIZER(cpuhp_pin_lock);
+-#endif
+-
+ #if defined(CONFIG_LOCKDEP) && defined(CONFIG_SMP)
+ static struct lockdep_map cpuhp_state_up_map =
+ STATIC_LOCKDEP_MAP_INIT("cpuhp_state-up", &cpuhp_state_up_map);
+@@ -288,57 +283,6 @@ static int cpu_hotplug_disabled;
+
+ #ifdef CONFIG_HOTPLUG_CPU
+
+-/**
+- * pin_current_cpu - Prevent the current cpu from being unplugged
+- */
+-void pin_current_cpu(void)
+-{
+-#ifdef CONFIG_PREEMPT_RT_FULL
+- struct rt_rw_lock *cpuhp_pin;
+- unsigned int cpu;
+- int ret;
+-
+-again:
+- cpuhp_pin = this_cpu_ptr(&cpuhp_pin_lock);
+- ret = __read_rt_trylock(cpuhp_pin);
+- if (ret) {
+- current->pinned_on_cpu = smp_processor_id();
+- return;
+- }
+- cpu = smp_processor_id();
+- preempt_lazy_enable();
+- preempt_enable();
+-
+- sleeping_lock_inc();
+- __read_rt_lock(cpuhp_pin);
+- sleeping_lock_dec();
+-
+- preempt_disable();
+- preempt_lazy_disable();
+- if (cpu != smp_processor_id()) {
+- __read_rt_unlock(cpuhp_pin);
+- goto again;
+- }
+- current->pinned_on_cpu = cpu;
+-#endif
+-}
+-
+-/**
+- * unpin_current_cpu - Allow unplug of current cpu
+- */
+-void unpin_current_cpu(void)
+-{
+-#ifdef CONFIG_PREEMPT_RT_FULL
+- struct rt_rw_lock *cpuhp_pin = this_cpu_ptr(&cpuhp_pin_lock);
+-
+- if (WARN_ON(current->pinned_on_cpu != smp_processor_id()))
+- cpuhp_pin = per_cpu_ptr(&cpuhp_pin_lock, current->pinned_on_cpu);
+-
+- current->pinned_on_cpu = -1;
+- __read_rt_unlock(cpuhp_pin);
+-#endif
+-}
+-
+ DEFINE_STATIC_PERCPU_RWSEM(cpu_hotplug_lock);
+
+ void cpus_read_lock(void)
+@@ -932,6 +876,15 @@ static int take_cpu_down(void *_param)
+ int err, cpu = smp_processor_id();
+ int ret;
+
++#ifdef CONFIG_PREEMPT_RT_BASE
++ /*
++ * If any tasks disabled migration before we got here,
++ * go back and sleep again.
++ */
++ if (cpu_nr_pinned(cpu))
++ return -EAGAIN;
++#endif
++
+ /* Ensure this CPU doesn't handle any more interrupts. */
+ err = __cpu_disable();
+ if (err < 0)
+@@ -959,11 +912,10 @@ static int take_cpu_down(void *_param)
+ return 0;
+ }
+
++struct task_struct *takedown_cpu_task;
++
+ static int takedown_cpu(unsigned int cpu)
+ {
+-#ifdef CONFIG_PREEMPT_RT_FULL
+- struct rt_rw_lock *cpuhp_pin = per_cpu_ptr(&cpuhp_pin_lock, cpu);
+-#endif
+ struct cpuhp_cpu_state *st = per_cpu_ptr(&cpuhp_state, cpu);
+ int err;
+
+@@ -976,17 +928,38 @@ static int takedown_cpu(unsigned int cpu)
+ */
+ irq_lock_sparse();
+
+-#ifdef CONFIG_PREEMPT_RT_FULL
+- __write_rt_lock(cpuhp_pin);
++#ifdef CONFIG_PREEMPT_RT_BASE
++ WARN_ON_ONCE(takedown_cpu_task);
++ takedown_cpu_task = current;
++
++again:
++ /*
++ * If a task pins this CPU after we pass this check, take_cpu_down
++ * will return -EAGAIN.
++ */
++ for (;;) {
++ int nr_pinned;
++
++ set_current_state(TASK_UNINTERRUPTIBLE);
++ nr_pinned = cpu_nr_pinned(cpu);
++ if (nr_pinned == 0)
++ break;
++ schedule();
++ }
++ set_current_state(TASK_RUNNING);
+ #endif
+
+ /*
+ * So now all preempt/rcu users must observe !cpu_active().
+ */
+ err = stop_machine_cpuslocked(take_cpu_down, NULL, cpumask_of(cpu));
++#ifdef CONFIG_PREEMPT_RT_BASE
++ if (err == -EAGAIN)
++ goto again;
++#endif
+ if (err) {
+-#ifdef CONFIG_PREEMPT_RT_FULL
+- __write_rt_unlock(cpuhp_pin);
++#ifdef CONFIG_PREEMPT_RT_BASE
++ takedown_cpu_task = NULL;
+ #endif
+ /* CPU refused to die */
+ irq_unlock_sparse();
+@@ -1006,8 +979,8 @@ static int takedown_cpu(unsigned int cpu)
+ wait_for_ap_thread(st, false);
+ BUG_ON(st->state != CPUHP_AP_IDLE_DEAD);
+
+-#ifdef CONFIG_PREEMPT_RT_FULL
+- __write_rt_unlock(cpuhp_pin);
++#ifdef CONFIG_PREEMPT_RT_BASE
++ takedown_cpu_task = NULL;
+ #endif
+ /* Interrupts are moved away from the dying cpu, reenable alloc/free */
+ irq_unlock_sparse();
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 7eb3037c0b35..de6514e13e0c 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -1065,7 +1065,8 @@ static int migration_cpu_stop(void *data)
+ void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_mask)
+ {
+ cpumask_copy(&p->cpus_mask, new_mask);
+- p->nr_cpus_allowed = cpumask_weight(new_mask);
++ if (p->cpus_ptr == &p->cpus_mask)
++ p->nr_cpus_allowed = cpumask_weight(new_mask);
+ }
+
+ #if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
+@@ -1076,8 +1077,7 @@ int __migrate_disabled(struct task_struct *p)
+ EXPORT_SYMBOL_GPL(__migrate_disabled);
+ #endif
+
+-static void __do_set_cpus_allowed_tail(struct task_struct *p,
+- const struct cpumask *new_mask)
++void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
+ {
+ struct rq *rq = task_rq(p);
+ bool queued, running;
+@@ -1106,20 +1106,6 @@ static void __do_set_cpus_allowed_tail(struct task_struct *p,
+ set_curr_task(rq, p);
+ }
+
+-void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
+-{
+-#if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
+- if (__migrate_disabled(p)) {
+- lockdep_assert_held(&p->pi_lock);
+-
+- cpumask_copy(&p->cpus_mask, new_mask);
+- p->migrate_disable_update = 1;
+- return;
+- }
+-#endif
+- __do_set_cpus_allowed_tail(p, new_mask);
+-}
+-
+ /*
+ * Change a given task's CPU affinity. Migrate the thread to a
+ * proper CPU and schedule it away if the CPU it's executing on
+@@ -1179,7 +1165,8 @@ static int __set_cpus_allowed_ptr(struct task_struct *p,
+ }
+
+ /* Can the task run on the task's current CPU? If so, we're done */
+- if (cpumask_test_cpu(task_cpu(p), new_mask) || __migrate_disabled(p))
++ if (cpumask_test_cpu(task_cpu(p), new_mask) ||
++ p->cpus_ptr != &p->cpus_mask)
+ goto out;
+
+ if (task_running(rq, p) || p->state == TASK_WAKING) {
+@@ -3459,6 +3446,8 @@ pick_next_task(struct rq *rq, struct task_struct *prev, struct rq_flags *rf)
+ BUG();
+ }
+
++static void migrate_disabled_sched(struct task_struct *p);
++
+ /*
+ * __schedule() is the main scheduler function.
+ *
+@@ -3529,6 +3518,9 @@ static void __sched notrace __schedule(bool preempt)
+ rq_lock(rq, &rf);
+ smp_mb__after_spinlock();
+
++ if (__migrate_disabled(prev))
++ migrate_disabled_sched(prev);
++
+ /* Promote REQ to ACT */
+ rq->clock_update_flags <<= 1;
+ update_rq_clock(rq);
+@@ -5777,6 +5769,8 @@ static void migrate_tasks(struct rq *dead_rq, struct rq_flags *rf)
+ BUG_ON(!next);
+ put_prev_task(rq, next);
+
++ WARN_ON_ONCE(__migrate_disabled(next));
++
+ /*
+ * Rules for changing task_struct::cpus_mask are holding
+ * both pi_lock and rq->lock, such that holding either
+@@ -7241,14 +7235,9 @@ update_nr_migratory(struct task_struct *p, long delta)
+ static inline void
+ migrate_disable_update_cpus_allowed(struct task_struct *p)
+ {
+- struct rq *rq;
+- struct rq_flags rf;
+-
+- rq = task_rq_lock(p, &rf);
+ p->cpus_ptr = cpumask_of(smp_processor_id());
+ update_nr_migratory(p, -1);
+ p->nr_cpus_allowed = 1;
+- task_rq_unlock(rq, p, &rf);
+ }
+
+ static inline void
+@@ -7266,54 +7255,35 @@ migrate_enable_update_cpus_allowed(struct task_struct *p)
+
+ void migrate_disable(void)
+ {
+- struct task_struct *p = current;
++ preempt_disable();
+
+- if (in_atomic() || irqs_disabled()) {
++ if (++current->migrate_disable == 1) {
++ this_rq()->nr_pinned++;
++ preempt_lazy_disable();
+ #ifdef CONFIG_SCHED_DEBUG
+- p->migrate_disable_atomic++;
++ WARN_ON_ONCE(current->pinned_on_cpu >= 0);
++ current->pinned_on_cpu = smp_processor_id();
+ #endif
+- return;
+- }
+-#ifdef CONFIG_SCHED_DEBUG
+- if (unlikely(p->migrate_disable_atomic)) {
+- tracing_off();
+- WARN_ON_ONCE(1);
+ }
+-#endif
+
+- if (p->migrate_disable) {
+- p->migrate_disable++;
+- return;
+- }
++ preempt_enable();
++}
++EXPORT_SYMBOL(migrate_disable);
+
+- preempt_disable();
+- preempt_lazy_disable();
+- pin_current_cpu();
++static void migrate_disabled_sched(struct task_struct *p)
++{
++ if (p->migrate_disable_scheduled)
++ return;
+
+ migrate_disable_update_cpus_allowed(p);
+- p->migrate_disable = 1;
+-
+- preempt_enable();
++ p->migrate_disable_scheduled = 1;
+ }
+-EXPORT_SYMBOL(migrate_disable);
+
+ void migrate_enable(void)
+ {
+ struct task_struct *p = current;
+-
+- if (in_atomic() || irqs_disabled()) {
+-#ifdef CONFIG_SCHED_DEBUG
+- p->migrate_disable_atomic--;
+-#endif
+- return;
+- }
+-
+-#ifdef CONFIG_SCHED_DEBUG
+- if (unlikely(p->migrate_disable_atomic)) {
+- tracing_off();
+- WARN_ON_ONCE(1);
+- }
+-#endif
++ struct rq *rq = this_rq();
++ int cpu = task_cpu(p);
+
+ WARN_ON_ONCE(p->migrate_disable <= 0);
+ if (p->migrate_disable > 1) {
+@@ -7323,67 +7293,69 @@ void migrate_enable(void)
+
+ preempt_disable();
+
++#ifdef CONFIG_SCHED_DEBUG
++ WARN_ON_ONCE(current->pinned_on_cpu != cpu);
++ current->pinned_on_cpu = -1;
++#endif
++
++ WARN_ON_ONCE(rq->nr_pinned < 1);
++
+ p->migrate_disable = 0;
++ rq->nr_pinned--;
++ if (rq->nr_pinned == 0 && unlikely(!cpu_active(cpu)) &&
++ takedown_cpu_task)
++ wake_up_process(takedown_cpu_task);
++
++ if (!p->migrate_disable_scheduled)
++ goto out;
++
++ p->migrate_disable_scheduled = 0;
++
+ migrate_enable_update_cpus_allowed(p);
+
+- if (p->migrate_disable_update) {
+- struct rq *rq;
++ WARN_ON(smp_processor_id() != cpu);
++ if (!is_cpu_allowed(p, cpu)) {
++ struct migration_arg arg = { p };
+ struct rq_flags rf;
+- int cpu = task_cpu(p);
+
+ rq = task_rq_lock(p, &rf);
+ update_rq_clock(rq);
+-
+- __do_set_cpus_allowed_tail(p, &p->cpus_mask);
++ arg.dest_cpu = select_fallback_rq(cpu, p);
+ task_rq_unlock(rq, p, &rf);
+
+- p->migrate_disable_update = 0;
+-
+- WARN_ON(smp_processor_id() != cpu);
+- if (!cpumask_test_cpu(cpu, &p->cpus_mask)) {
+- struct migration_arg arg = { p };
+- struct rq_flags rf;
++ preempt_lazy_enable();
++ preempt_enable();
+
+- rq = task_rq_lock(p, &rf);
+- update_rq_clock(rq);
+- arg.dest_cpu = select_fallback_rq(cpu, p);
+- task_rq_unlock(rq, p, &rf);
+-
+- unpin_current_cpu();
+- preempt_lazy_enable();
+- preempt_enable();
+-
+- sleeping_lock_inc();
+- stop_one_cpu(task_cpu(p), migration_cpu_stop, &arg);
+- sleeping_lock_dec();
+- tlb_migrate_finish(p->mm);
++ sleeping_lock_inc();
++ stop_one_cpu(task_cpu(p), migration_cpu_stop, &arg);
++ sleeping_lock_dec();
++ tlb_migrate_finish(p->mm);
+
+- return;
+- }
++ return;
+ }
+- unpin_current_cpu();
++
++out:
+ preempt_lazy_enable();
+ preempt_enable();
+ }
+ EXPORT_SYMBOL(migrate_enable);
+
+-#elif !defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
+-void migrate_disable(void)
++int cpu_nr_pinned(int cpu)
+ {
+-#ifdef CONFIG_SCHED_DEBUG
+- struct task_struct *p = current;
++ struct rq *rq = cpu_rq(cpu);
+
+- if (in_atomic() || irqs_disabled()) {
+- p->migrate_disable_atomic++;
+- return;
+- }
++ return rq->nr_pinned;
++}
+
+- if (unlikely(p->migrate_disable_atomic)) {
+- tracing_off();
+- WARN_ON_ONCE(1);
+- }
++#elif !defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
++static void migrate_disabled_sched(struct task_struct *p)
++{
++}
+
+- p->migrate_disable++;
++void migrate_disable(void)
++{
++#ifdef CONFIG_SCHED_DEBUG
++ current->migrate_disable++;
+ #endif
+ barrier();
+ }
+@@ -7394,20 +7366,14 @@ void migrate_enable(void)
+ #ifdef CONFIG_SCHED_DEBUG
+ struct task_struct *p = current;
+
+- if (in_atomic() || irqs_disabled()) {
+- p->migrate_disable_atomic--;
+- return;
+- }
+-
+- if (unlikely(p->migrate_disable_atomic)) {
+- tracing_off();
+- WARN_ON_ONCE(1);
+- }
+-
+ WARN_ON_ONCE(p->migrate_disable <= 0);
+ p->migrate_disable--;
+ #endif
+ barrier();
+ }
+ EXPORT_SYMBOL(migrate_enable);
++#else
++static void migrate_disabled_sched(struct task_struct *p)
++{
++}
+ #endif
+diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
+index 87a05bb90124..45b3f135d205 100644
+--- a/kernel/sched/sched.h
++++ b/kernel/sched/sched.h
+@@ -915,6 +915,10 @@ struct rq {
+ /* Must be inspected within a rcu lock section */
+ struct cpuidle_state *idle_state;
+ #endif
++
++#if defined(CONFIG_PREEMPT_RT_BASE) && defined(CONFIG_SMP)
++ int nr_pinned;
++#endif
+ };
+
+ static inline int cpu_of(struct rq *rq)
+diff --git a/lib/smp_processor_id.c b/lib/smp_processor_id.c
+index b8a8a8db2d75..0c80992aa337 100644
+--- a/lib/smp_processor_id.c
++++ b/lib/smp_processor_id.c
+@@ -22,6 +22,9 @@ notrace static unsigned int check_preemption_disabled(const char *what1,
+ * Kernel threads bound to a single CPU can safely use
+ * smp_processor_id():
+ */
++ if (current->migrate_disable)
++ goto out;
++
+ if (current->nr_cpus_allowed == 1)
+ goto out;
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0309-sched-migrate_enable-Use-stop_one_cpu_nowait.patch b/debian/patches-rt/0309-sched-migrate_enable-Use-stop_one_cpu_nowait.patch
new file mode 100644
index 000000000..21108241b
--- /dev/null
+++ b/debian/patches-rt/0309-sched-migrate_enable-Use-stop_one_cpu_nowait.patch
@@ -0,0 +1,121 @@
+From 778702cffc4e8e3f002716b84944ddf23692639f Mon Sep 17 00:00:00 2001
+From: Scott Wood <swood@redhat.com>
+Date: Sat, 12 Oct 2019 01:52:14 -0500
+Subject: [PATCH 309/347] sched: migrate_enable: Use stop_one_cpu_nowait()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 6b39a1fa8c53cae08dc03afdae193b7d3a78a173 ]
+
+migrate_enable() can be called with current->state != TASK_RUNNING.
+Avoid clobbering the existing state by using stop_one_cpu_nowait().
+Since we're stopping the current cpu, we know that we won't get
+past __schedule() until migration_cpu_stop() has run (at least up to
+the point of migrating us to another cpu).
+
+Signed-off-by: Scott Wood <swood@redhat.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ include/linux/stop_machine.h | 2 ++
+ kernel/sched/core.c | 23 +++++++++++++----------
+ kernel/stop_machine.c | 7 +++++--
+ 3 files changed, 20 insertions(+), 12 deletions(-)
+
+diff --git a/include/linux/stop_machine.h b/include/linux/stop_machine.h
+index ccdaa8fd5657..150e886ed83d 100644
+--- a/include/linux/stop_machine.h
++++ b/include/linux/stop_machine.h
+@@ -26,6 +26,8 @@ struct cpu_stop_work {
+ cpu_stop_fn_t fn;
+ void *arg;
+ struct cpu_stop_done *done;
++ /* Did not run due to disabled stopper; for nowait debug checks */
++ bool disabled;
+ };
+
+ int stop_one_cpu(unsigned int cpu, cpu_stop_fn_t fn, void *arg);
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index de6514e13e0c..dff9d26a8625 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -990,6 +990,7 @@ static struct rq *move_queued_task(struct rq *rq, struct rq_flags *rf,
+ struct migration_arg {
+ struct task_struct *task;
+ int dest_cpu;
++ bool done;
+ };
+
+ /*
+@@ -1025,6 +1026,11 @@ static int migration_cpu_stop(void *data)
+ struct task_struct *p = arg->task;
+ struct rq *rq = this_rq();
+ struct rq_flags rf;
++ int dest_cpu = arg->dest_cpu;
++
++ /* We don't look at arg after this point. */
++ smp_mb();
++ arg->done = true;
+
+ /*
+ * The original target CPU might have gone down and we might
+@@ -1047,9 +1053,9 @@ static int migration_cpu_stop(void *data)
+ */
+ if (task_rq(p) == rq) {
+ if (task_on_rq_queued(p))
+- rq = __migrate_task(rq, &rf, p, arg->dest_cpu);
++ rq = __migrate_task(rq, &rf, p, dest_cpu);
+ else
+- p->wake_cpu = arg->dest_cpu;
++ p->wake_cpu = dest_cpu;
+ }
+ rq_unlock(rq, &rf);
+ raw_spin_unlock(&p->pi_lock);
+@@ -7316,6 +7322,7 @@ void migrate_enable(void)
+ WARN_ON(smp_processor_id() != cpu);
+ if (!is_cpu_allowed(p, cpu)) {
+ struct migration_arg arg = { p };
++ struct cpu_stop_work work;
+ struct rq_flags rf;
+
+ rq = task_rq_lock(p, &rf);
+@@ -7323,15 +7330,11 @@ void migrate_enable(void)
+ arg.dest_cpu = select_fallback_rq(cpu, p);
+ task_rq_unlock(rq, p, &rf);
+
+- preempt_lazy_enable();
+- preempt_enable();
+-
+- sleeping_lock_inc();
+- stop_one_cpu(task_cpu(p), migration_cpu_stop, &arg);
+- sleeping_lock_dec();
++ stop_one_cpu_nowait(task_cpu(p), migration_cpu_stop,
++ &arg, &work);
+ tlb_migrate_finish(p->mm);
+-
+- return;
++ __schedule(true);
++ WARN_ON_ONCE(!arg.done && !work.disabled);
+ }
+
+ out:
+diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c
+index 067cb83f37ea..2d15c0d50625 100644
+--- a/kernel/stop_machine.c
++++ b/kernel/stop_machine.c
+@@ -86,8 +86,11 @@ static bool cpu_stop_queue_work(unsigned int cpu, struct cpu_stop_work *work)
+ enabled = stopper->enabled;
+ if (enabled)
+ __cpu_stop_queue_work(stopper, work, &wakeq);
+- else if (work->done)
+- cpu_stop_signal_done(work->done);
++ else {
++ work->disabled = true;
++ if (work->done)
++ cpu_stop_signal_done(work->done);
++ }
+ raw_spin_unlock_irqrestore(&stopper->lock, flags);
+
+ wake_up_q(&wakeq);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0310-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch b/debian/patches-rt/0310-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch
new file mode 100644
index 000000000..92464be91
--- /dev/null
+++ b/debian/patches-rt/0310-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch
@@ -0,0 +1,87 @@
+From 24329bb57c5b6fae2c3360adcb2c69bbcd4314f4 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 18 Oct 2019 13:04:15 +0200
+Subject: [PATCH 310/347] Revert "ARM: Initialize split page table locks for
+ vector page"
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 247074c44d8c3e619dfde6404a52295d8d671d38 ]
+
+I'm dropping this patch, with its original description:
+
+|ARM: Initialize split page table locks for vector page
+|
+|Without this patch, ARM can not use SPLIT_PTLOCK_CPUS if
+|PREEMPT_RT_FULL=y because vectors_user_mapping() creates a
+|VM_ALWAYSDUMP mapping of the vector page (address 0xffff0000), but no
+|ptl->lock has been allocated for the page. An attempt to coredump
+|that page will result in a kernel NULL pointer dereference when
+|follow_page() attempts to lock the page.
+|
+|The call tree to the NULL pointer dereference is:
+|
+| do_notify_resume()
+| get_signal_to_deliver()
+| do_coredump()
+| elf_core_dump()
+| get_dump_page()
+| __get_user_pages()
+| follow_page()
+| pte_offset_map_lock() <----- a #define
+| ...
+| rt_spin_lock()
+|
+|The underlying problem is exposed by mm-shrink-the-page-frame-to-rt-size.patch.
+
+The patch named mm-shrink-the-page-frame-to-rt-size.patch was dropped
+from the RT queue once the SPLIT_PTLOCK_CPUS feature (in a slightly
+different shape) went upstream (somewhere between v3.12 and v3.14).
+
+I can see that the patch still allocates a lock which wasn't there
+before. However I can't trigger a kernel oops like described in the
+patch by triggering a coredump.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ arch/arm/kernel/process.c | 24 ------------------------
+ 1 file changed, 24 deletions(-)
+
+diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
+index 8d3c7ce34c24..82ab015bf42b 100644
+--- a/arch/arm/kernel/process.c
++++ b/arch/arm/kernel/process.c
+@@ -324,30 +324,6 @@ unsigned long arch_randomize_brk(struct mm_struct *mm)
+ }
+
+ #ifdef CONFIG_MMU
+-/*
+- * CONFIG_SPLIT_PTLOCK_CPUS results in a page->ptl lock. If the lock is not
+- * initialized by pgtable_page_ctor() then a coredump of the vector page will
+- * fail.
+- */
+-static int __init vectors_user_mapping_init_page(void)
+-{
+- struct page *page;
+- unsigned long addr = 0xffff0000;
+- pgd_t *pgd;
+- pud_t *pud;
+- pmd_t *pmd;
+-
+- pgd = pgd_offset_k(addr);
+- pud = pud_offset(pgd, addr);
+- pmd = pmd_offset(pud, addr);
+- page = pmd_page(*(pmd));
+-
+- pgtable_page_ctor(page);
+-
+- return 0;
+-}
+-late_initcall(vectors_user_mapping_init_page);
+-
+ #ifdef CONFIG_KUSER_HELPERS
+ /*
+ * The vectors page is always readable from user space for the
+--
+2.36.1
+
diff --git a/debian/patches-rt/0311-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch b/debian/patches-rt/0311-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch
new file mode 100644
index 000000000..b6096f1c2
--- /dev/null
+++ b/debian/patches-rt/0311-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch
@@ -0,0 +1,129 @@
+From c0b7b36cdce411ac0992029c343d9fb8eb65c305 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 19 Nov 2019 09:25:04 +0100
+Subject: [PATCH 311/347] locking: Make spinlock_t and rwlock_t a RCU section
+ on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 84440022a0e1c8c936d61f8f97593674a295d409 ]
+
+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.
+
+Add an explicit RCU read section on RT while a sleeping lock (a lock
+which would disables preemption on !RT) acquired.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/locking/rtmutex.c | 6 ++++++
+ kernel/locking/rwlock-rt.c | 6 ++++++
+ 2 files changed, 12 insertions(+)
+
+diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
+index dc95a81ae3a6..fe5153fc7665 100644
+--- a/kernel/locking/rtmutex.c
++++ b/kernel/locking/rtmutex.c
+@@ -1142,6 +1142,7 @@ void __sched rt_spin_lock_slowunlock(struct rt_mutex *lock)
+ void __lockfunc rt_spin_lock(spinlock_t *lock)
+ {
+ sleeping_lock_inc();
++ rcu_read_lock();
+ migrate_disable();
+ spin_acquire(&lock->dep_map, 0, 0, _RET_IP_);
+ rt_spin_lock_fastlock(&lock->lock, rt_spin_lock_slowlock);
+@@ -1157,6 +1158,7 @@ void __lockfunc __rt_spin_lock(struct rt_mutex *lock)
+ void __lockfunc rt_spin_lock_nested(spinlock_t *lock, int subclass)
+ {
+ sleeping_lock_inc();
++ rcu_read_lock();
+ migrate_disable();
+ spin_acquire(&lock->dep_map, subclass, 0, _RET_IP_);
+ rt_spin_lock_fastlock(&lock->lock, rt_spin_lock_slowlock);
+@@ -1170,6 +1172,7 @@ void __lockfunc rt_spin_unlock(spinlock_t *lock)
+ spin_release(&lock->dep_map, 1, _RET_IP_);
+ rt_spin_lock_fastunlock(&lock->lock, rt_spin_lock_slowunlock);
+ migrate_enable();
++ rcu_read_unlock();
+ sleeping_lock_dec();
+ }
+ EXPORT_SYMBOL(rt_spin_unlock);
+@@ -1201,6 +1204,7 @@ int __lockfunc rt_spin_trylock(spinlock_t *lock)
+ ret = __rt_mutex_trylock(&lock->lock);
+ if (ret) {
+ spin_acquire(&lock->dep_map, 0, 1, _RET_IP_);
++ rcu_read_lock();
+ } else {
+ migrate_enable();
+ sleeping_lock_dec();
+@@ -1217,6 +1221,7 @@ int __lockfunc rt_spin_trylock_bh(spinlock_t *lock)
+ ret = __rt_mutex_trylock(&lock->lock);
+ if (ret) {
+ sleeping_lock_inc();
++ rcu_read_lock();
+ migrate_disable();
+ spin_acquire(&lock->dep_map, 0, 1, _RET_IP_);
+ } else
+@@ -1233,6 +1238,7 @@ int __lockfunc rt_spin_trylock_irqsave(spinlock_t *lock, unsigned long *flags)
+ ret = __rt_mutex_trylock(&lock->lock);
+ if (ret) {
+ sleeping_lock_inc();
++ rcu_read_lock();
+ migrate_disable();
+ spin_acquire(&lock->dep_map, 0, 1, _RET_IP_);
+ }
+diff --git a/kernel/locking/rwlock-rt.c b/kernel/locking/rwlock-rt.c
+index c3b91205161c..0ae8c62ea832 100644
+--- a/kernel/locking/rwlock-rt.c
++++ b/kernel/locking/rwlock-rt.c
+@@ -310,6 +310,7 @@ int __lockfunc rt_read_trylock(rwlock_t *rwlock)
+ ret = do_read_rt_trylock(rwlock);
+ if (ret) {
+ rwlock_acquire_read(&rwlock->dep_map, 0, 1, _RET_IP_);
++ rcu_read_lock();
+ } else {
+ migrate_enable();
+ sleeping_lock_dec();
+@@ -327,6 +328,7 @@ int __lockfunc rt_write_trylock(rwlock_t *rwlock)
+ ret = do_write_rt_trylock(rwlock);
+ if (ret) {
+ rwlock_acquire(&rwlock->dep_map, 0, 1, _RET_IP_);
++ rcu_read_lock();
+ } else {
+ migrate_enable();
+ sleeping_lock_dec();
+@@ -338,6 +340,7 @@ EXPORT_SYMBOL(rt_write_trylock);
+ void __lockfunc rt_read_lock(rwlock_t *rwlock)
+ {
+ sleeping_lock_inc();
++ rcu_read_lock();
+ migrate_disable();
+ rwlock_acquire_read(&rwlock->dep_map, 0, 0, _RET_IP_);
+ do_read_rt_lock(rwlock);
+@@ -347,6 +350,7 @@ EXPORT_SYMBOL(rt_read_lock);
+ void __lockfunc rt_write_lock(rwlock_t *rwlock)
+ {
+ sleeping_lock_inc();
++ rcu_read_lock();
+ migrate_disable();
+ rwlock_acquire(&rwlock->dep_map, 0, 0, _RET_IP_);
+ do_write_rt_lock(rwlock);
+@@ -358,6 +362,7 @@ void __lockfunc rt_read_unlock(rwlock_t *rwlock)
+ rwlock_release(&rwlock->dep_map, 1, _RET_IP_);
+ do_read_rt_unlock(rwlock);
+ migrate_enable();
++ rcu_read_unlock();
+ sleeping_lock_dec();
+ }
+ EXPORT_SYMBOL(rt_read_unlock);
+@@ -367,6 +372,7 @@ void __lockfunc rt_write_unlock(rwlock_t *rwlock)
+ rwlock_release(&rwlock->dep_map, 1, _RET_IP_);
+ do_write_rt_unlock(rwlock);
+ migrate_enable();
++ rcu_read_unlock();
+ sleeping_lock_dec();
+ }
+ EXPORT_SYMBOL(rt_write_unlock);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0312-sched-core-migrate_enable-must-access-takedown_cpu_t.patch b/debian/patches-rt/0312-sched-core-migrate_enable-must-access-takedown_cpu_t.patch
new file mode 100644
index 000000000..2132d259a
--- /dev/null
+++ b/debian/patches-rt/0312-sched-core-migrate_enable-must-access-takedown_cpu_t.patch
@@ -0,0 +1,55 @@
+From 01f24622e993de73c028f4eaa067c421e4e0d851 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 29 Nov 2019 17:24:55 +0100
+Subject: [PATCH 312/347] sched/core: migrate_enable() must access
+ takedown_cpu_task on !HOTPLUG_CPU
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit a61d1977f692e46bad99a100f264981ba08cb4bd ]
+
+The variable takedown_cpu_task is never declared/used on !HOTPLUG_CPU
+except for migrate_enable(). This leads to a link error.
+
+Don't use takedown_cpu_task in !HOTPLUG_CPU.
+
+Reported-by: Dick Hollenbeck <dick@softplc.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/cpu.c | 2 ++
+ kernel/sched/core.c | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/kernel/cpu.c b/kernel/cpu.c
+index edd4fd8da726..44245b35c09c 100644
+--- a/kernel/cpu.c
++++ b/kernel/cpu.c
+@@ -912,7 +912,9 @@ static int take_cpu_down(void *_param)
+ return 0;
+ }
+
++#ifdef CONFIG_PREEMPT_RT_BASE
+ struct task_struct *takedown_cpu_task;
++#endif
+
+ static int takedown_cpu(unsigned int cpu)
+ {
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index dff9d26a8625..270adb525d93 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -7308,9 +7308,11 @@ void migrate_enable(void)
+
+ p->migrate_disable = 0;
+ rq->nr_pinned--;
++#ifdef CONFIG_HOTPLUG_CPU
+ if (rq->nr_pinned == 0 && unlikely(!cpu_active(cpu)) &&
+ takedown_cpu_task)
+ wake_up_process(takedown_cpu_task);
++#endif
+
+ if (!p->migrate_disable_scheduled)
+ goto out;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0313-lib-smp_processor_id-Adjust-check_preemption_disable.patch b/debian/patches-rt/0313-lib-smp_processor_id-Adjust-check_preemption_disable.patch
new file mode 100644
index 000000000..54602a05d
--- /dev/null
+++ b/debian/patches-rt/0313-lib-smp_processor_id-Adjust-check_preemption_disable.patch
@@ -0,0 +1,41 @@
+From d66acdc1d09f10c3141286072a6c07ec47245926 Mon Sep 17 00:00:00 2001
+From: Daniel Wagner <dwagner@suse.de>
+Date: Mon, 16 Dec 2019 16:15:57 +0100
+Subject: [PATCH 313/347] lib/smp_processor_id: Adjust
+ check_preemption_disabled()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit af3c1c5fdf177870fb5e6e16b24e374696ab28f5 ]
+
+The current->migrate_disable counter is not always defined leading to
+build failures with DEBUG_PREEMPT && !PREEMPT_RT_BASE.
+
+Restrict the access to ->migrate_disable to same set where
+->migrate_disable is modified.
+
+Signed-off-by: Daniel Wagner <dwagner@suse.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+[bigeasy: adjust condition + description]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ lib/smp_processor_id.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/lib/smp_processor_id.c b/lib/smp_processor_id.c
+index 0c80992aa337..2e7398534b66 100644
+--- a/lib/smp_processor_id.c
++++ b/lib/smp_processor_id.c
+@@ -22,8 +22,10 @@ notrace static unsigned int check_preemption_disabled(const char *what1,
+ * Kernel threads bound to a single CPU can safely use
+ * smp_processor_id():
+ */
++#if defined(CONFIG_PREEMPT_RT_BASE) && (defined(CONFIG_SMP) || defined(CONFIG_SCHED_DEBUG))
+ if (current->migrate_disable)
+ goto out;
++#endif
+
+ if (current->nr_cpus_allowed == 1)
+ goto out;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0314-sched-migrate_enable-Busy-loop-until-the-migration-r.patch b/debian/patches-rt/0314-sched-migrate_enable-Busy-loop-until-the-migration-r.patch
new file mode 100644
index 000000000..d51c9b637
--- /dev/null
+++ b/debian/patches-rt/0314-sched-migrate_enable-Busy-loop-until-the-migration-r.patch
@@ -0,0 +1,57 @@
+From 090c26864ec17b496dea3397656b006550e31852 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 12 Dec 2019 10:53:59 +0100
+Subject: [PATCH 314/347] sched: migrate_enable: Busy loop until the migration
+ request is completed
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 140d7f54a5fff02898d2ca9802b39548bf7455f1 ]
+
+If user task changes the CPU affinity mask of a running task it will
+dispatch migration request if the current CPU is no longer allowed. This
+might happen shortly before a task enters a migrate_disable() section.
+Upon leaving the migrate_disable() section, the task will notice that
+the current CPU is no longer allowed and will will dispatch its own
+migration request to move it off the current CPU.
+While invoking __schedule() the first migration request will be
+processed and the task returns on the "new" CPU with "arg.done = 0". Its
+own migration request will be processed shortly after and will result in
+memory corruption if the stack memory, designed for request, was used
+otherwise in the meantime.
+
+Spin until the migration request has been processed if it was accepted.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/sched/core.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 270adb525d93..d190d9e6b10f 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -7323,7 +7323,7 @@ void migrate_enable(void)
+
+ WARN_ON(smp_processor_id() != cpu);
+ if (!is_cpu_allowed(p, cpu)) {
+- struct migration_arg arg = { p };
++ struct migration_arg arg = { .task = p };
+ struct cpu_stop_work work;
+ struct rq_flags rf;
+
+@@ -7336,7 +7336,10 @@ void migrate_enable(void)
+ &arg, &work);
+ tlb_migrate_finish(p->mm);
+ __schedule(true);
+- WARN_ON_ONCE(!arg.done && !work.disabled);
++ if (!work.disabled) {
++ while (!arg.done)
++ cpu_relax();
++ }
+ }
+
+ out:
+--
+2.36.1
+
diff --git a/debian/patches-rt/0315-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch b/debian/patches-rt/0315-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch
new file mode 100644
index 000000000..227e20afd
--- /dev/null
+++ b/debian/patches-rt/0315-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch
@@ -0,0 +1,80 @@
+From 4639984350d5520c7268c26b6454c2f47cf139e4 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 18 Dec 2019 12:25:09 +0100
+Subject: [PATCH 315/347] userfaultfd: Use a seqlock instead of seqcount
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit dc952a564d02997330654be9628bbe97ba2a05d3 ]
+
+On RT write_seqcount_begin() disables preemption which leads to warning
+in add_wait_queue() while the spinlock_t is acquired.
+The waitqueue can't be converted to swait_queue because
+userfaultfd_wake_function() is used as a custom wake function.
+
+Use seqlock instead seqcount to avoid the preempt_disable() section
+during add_wait_queue().
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ fs/userfaultfd.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c
+index 23c8efc967af..3f79609511da 100644
+--- a/fs/userfaultfd.c
++++ b/fs/userfaultfd.c
+@@ -56,7 +56,7 @@ struct userfaultfd_ctx {
+ /* waitqueue head for events */
+ wait_queue_head_t event_wqh;
+ /* a refile sequence protected by fault_pending_wqh lock */
+- struct seqcount refile_seq;
++ seqlock_t refile_seq;
+ /* pseudo fd refcounting */
+ atomic_t refcount;
+ /* userfaultfd syscall flags */
+@@ -1059,7 +1059,7 @@ static ssize_t userfaultfd_ctx_read(struct userfaultfd_ctx *ctx, int no_wait,
+ * waitqueue could become empty if this is the
+ * only userfault.
+ */
+- write_seqcount_begin(&ctx->refile_seq);
++ write_seqlock(&ctx->refile_seq);
+
+ /*
+ * The fault_pending_wqh.lock prevents the uwq
+@@ -1085,7 +1085,7 @@ static ssize_t userfaultfd_ctx_read(struct userfaultfd_ctx *ctx, int no_wait,
+ list_del(&uwq->wq.entry);
+ add_wait_queue(&ctx->fault_wqh, &uwq->wq);
+
+- write_seqcount_end(&ctx->refile_seq);
++ write_sequnlock(&ctx->refile_seq);
+
+ /* careful to always initialize msg if ret == 0 */
+ *msg = uwq->msg;
+@@ -1258,11 +1258,11 @@ static __always_inline void wake_userfault(struct userfaultfd_ctx *ctx,
+ * sure we've userfaults to wake.
+ */
+ do {
+- seq = read_seqcount_begin(&ctx->refile_seq);
++ seq = read_seqbegin(&ctx->refile_seq);
+ need_wakeup = waitqueue_active(&ctx->fault_pending_wqh) ||
+ waitqueue_active(&ctx->fault_wqh);
+ cond_resched();
+- } while (read_seqcount_retry(&ctx->refile_seq, seq));
++ } while (read_seqretry(&ctx->refile_seq, seq));
+ if (need_wakeup)
+ __wake_userfault(ctx, range);
+ }
+@@ -1936,7 +1936,7 @@ static void init_once_userfaultfd_ctx(void *mem)
+ init_waitqueue_head(&ctx->fault_wqh);
+ init_waitqueue_head(&ctx->event_wqh);
+ init_waitqueue_head(&ctx->fd_wqh);
+- seqcount_init(&ctx->refile_seq);
++ seqlock_init(&ctx->refile_seq);
+ }
+
+ SYSCALL_DEFINE1(userfaultfd, int, flags)
+--
+2.36.1
+
diff --git a/debian/patches-rt/0316-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch b/debian/patches-rt/0316-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch
new file mode 100644
index 000000000..fcff1b8a4
--- /dev/null
+++ b/debian/patches-rt/0316-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch
@@ -0,0 +1,83 @@
+From 5595f7a45953987f56b3e64c3a20f6f90735d4a1 Mon Sep 17 00:00:00 2001
+From: Scott Wood <swood@redhat.com>
+Date: Fri, 24 Jan 2020 06:11:46 -0500
+Subject: [PATCH 316/347] sched: migrate_enable: Use per-cpu cpu_stop_work
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 2dcd94b443c5dcbc20281666321b7f025f9cc85c ]
+
+Commit e6c287b1512d ("sched: migrate_enable: Use stop_one_cpu_nowait()")
+adds a busy wait to deal with an edge case where the migrated thread
+can resume running on another CPU before the stopper has consumed
+cpu_stop_work. However, this is done with preemption disabled and can
+potentially lead to deadlock.
+
+While it is not guaranteed that the cpu_stop_work will be consumed before
+the migrating thread resumes and exits the stack frame, it is guaranteed
+that nothing other than the stopper can run on the old cpu between the
+migrating thread scheduling out and the cpu_stop_work being consumed.
+Thus, we can store cpu_stop_work in per-cpu data without it being
+reused too early.
+
+Fixes: e6c287b1512d ("sched: migrate_enable: Use stop_one_cpu_nowait()")
+Suggested-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Scott Wood <swood@redhat.com>
+Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/sched/core.c | 22 ++++++++++++++--------
+ 1 file changed, 14 insertions(+), 8 deletions(-)
+
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index d190d9e6b10f..8b946353b1d7 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -7285,6 +7285,9 @@ static void migrate_disabled_sched(struct task_struct *p)
+ p->migrate_disable_scheduled = 1;
+ }
+
++static DEFINE_PER_CPU(struct cpu_stop_work, migrate_work);
++static DEFINE_PER_CPU(struct migration_arg, migrate_arg);
++
+ void migrate_enable(void)
+ {
+ struct task_struct *p = current;
+@@ -7323,23 +7326,26 @@ void migrate_enable(void)
+
+ WARN_ON(smp_processor_id() != cpu);
+ if (!is_cpu_allowed(p, cpu)) {
+- struct migration_arg arg = { .task = p };
+- struct cpu_stop_work work;
++ struct migration_arg __percpu *arg;
++ struct cpu_stop_work __percpu *work;
+ struct rq_flags rf;
+
++ work = this_cpu_ptr(&migrate_work);
++ arg = this_cpu_ptr(&migrate_arg);
++ WARN_ON_ONCE(!arg->done && !work->disabled && work->arg);
++
++ arg->task = p;
++ arg->done = false;
++
+ rq = task_rq_lock(p, &rf);
+ update_rq_clock(rq);
+- arg.dest_cpu = select_fallback_rq(cpu, p);
++ arg->dest_cpu = select_fallback_rq(cpu, p);
+ task_rq_unlock(rq, p, &rf);
+
+ stop_one_cpu_nowait(task_cpu(p), migration_cpu_stop,
+- &arg, &work);
++ arg, work);
+ tlb_migrate_finish(p->mm);
+ __schedule(true);
+- if (!work.disabled) {
+- while (!arg.done)
+- cpu_relax();
+- }
+ }
+
+ out:
+--
+2.36.1
+
diff --git a/debian/patches-rt/0317-sched-migrate_enable-Remove-__schedule-call.patch b/debian/patches-rt/0317-sched-migrate_enable-Remove-__schedule-call.patch
new file mode 100644
index 000000000..2078fa5bb
--- /dev/null
+++ b/debian/patches-rt/0317-sched-migrate_enable-Remove-__schedule-call.patch
@@ -0,0 +1,41 @@
+From 1742897c78e053379ae6bb15024026f01e0bac2d Mon Sep 17 00:00:00 2001
+From: Scott Wood <swood@redhat.com>
+Date: Fri, 24 Jan 2020 06:11:47 -0500
+Subject: [PATCH 317/347] sched: migrate_enable: Remove __schedule() call
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit b8162e61e9a33bd1de6452eb838fbf50a93ddd9a ]
+
+We can rely on preempt_enable() to schedule. Besides simplifying the
+code, this potentially allows sequences such as the following to be
+permitted:
+
+migrate_disable();
+preempt_disable();
+migrate_enable();
+preempt_enable();
+
+Suggested-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Scott Wood <swood@redhat.com>
+Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/sched/core.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 8b946353b1d7..410882ff2007 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -7345,7 +7345,6 @@ void migrate_enable(void)
+ stop_one_cpu_nowait(task_cpu(p), migration_cpu_stop,
+ arg, work);
+ tlb_migrate_finish(p->mm);
+- __schedule(true);
+ }
+
+ out:
+--
+2.36.1
+
diff --git a/debian/patches-rt/0318-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch b/debian/patches-rt/0318-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch
new file mode 100644
index 000000000..87fb2dcd0
--- /dev/null
+++ b/debian/patches-rt/0318-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch
@@ -0,0 +1,42 @@
+From 402c737918994231fbd205f2a7dcf06c5046a849 Mon Sep 17 00:00:00 2001
+From: Matt Fleming <matt@codeblueprint.co.uk>
+Date: Sun, 26 Jan 2020 21:19:45 +0000
+Subject: [PATCH 318/347] mm/memcontrol: Move misplaced
+ local_unlock_irqrestore()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 071a1d6a6e14d0dec240a8c67b425140d7f92f6a ]
+
+The comment about local_lock_irqsave() mentions just the counters and
+css_put_many()'s callback just invokes a worker so it is safe to move the
+unlock function after memcg_check_events() so css_put_many() can be invoked
+without the lock acquired.
+
+Cc: Daniel Wagner <wagi@monom.org>
+Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+[bigeasy: rewrote the patch description]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ mm/memcontrol.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mm/memcontrol.c b/mm/memcontrol.c
+index 239fec6eac9f..d5bda1449fe3 100644
+--- a/mm/memcontrol.c
++++ b/mm/memcontrol.c
+@@ -6541,10 +6541,10 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry)
+ mem_cgroup_charge_statistics(memcg, page, PageTransHuge(page),
+ -nr_entries);
+ memcg_check_events(memcg, page);
++ local_unlock_irqrestore(event_lock, flags);
+
+ if (!mem_cgroup_is_root(memcg))
+ css_put_many(&memcg->css, nr_entries);
+- local_unlock_irqrestore(event_lock, flags);
+ }
+
+ /**
+--
+2.36.1
+
diff --git a/debian/patches-rt/0319-locallock-Include-header-for-the-current-macro.patch b/debian/patches-rt/0319-locallock-Include-header-for-the-current-macro.patch
new file mode 100644
index 000000000..ca93285f9
--- /dev/null
+++ b/debian/patches-rt/0319-locallock-Include-header-for-the-current-macro.patch
@@ -0,0 +1,32 @@
+From b075c120b3110dd2e9ef474ece2f4aade2d0a10c Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 4 Feb 2020 13:29:50 +0100
+Subject: [PATCH 319/347] locallock: Include header for the `current' macro
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit e693075a5fd852043fa8d2b0467e078d9e5cb782 ]
+
+Include the header for `current' macro so that
+CONFIG_KERNEL_HEADER_TEST=y passes.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ include/linux/locallock.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/linux/locallock.h b/include/linux/locallock.h
+index 921eab83cd34..81c89d87723b 100644
+--- a/include/linux/locallock.h
++++ b/include/linux/locallock.h
+@@ -3,6 +3,7 @@
+
+ #include <linux/percpu.h>
+ #include <linux/spinlock.h>
++#include <asm/current.h>
+
+ #ifdef CONFIG_PREEMPT_RT_BASE
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0320-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch b/debian/patches-rt/0320-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch
new file mode 100644
index 000000000..2dc30fc19
--- /dev/null
+++ b/debian/patches-rt/0320-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch
@@ -0,0 +1,45 @@
+From fc0f8480da7d2d5927404e67031daba0ca53a1a2 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 21 Feb 2020 18:57:11 +0100
+Subject: [PATCH 320/347] drm/vmwgfx: Drop preempt_disable() in
+ vmw_fifo_ping_host()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit b901491e7b9b7a676818d84e482b69be72fc142f ]
+
+vmw_fifo_ping_host() disables preemption around a test and a register
+write via vmw_write(). The write function acquires a spinlock_t typed
+lock which is not allowed in a preempt_disable()ed section on
+PREEMPT_RT. This has been reported in the bugzilla.
+
+It has been explained by Thomas Hellstrom that this preempt_disable()ed
+section is not required for correctness.
+
+Remove the preempt_disable() section.
+
+Link: https://bugzilla.kernel.org/show_bug.cgi?id=206591
+Link: https://lkml.kernel.org/r/0b5e1c65d89951de993deab06d1d197b40fd67aa.camel@vmware.com
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
+index d0fd147ef75f..fb5a3461bb8c 100644
+--- a/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
++++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
+@@ -167,10 +167,8 @@ void vmw_fifo_ping_host(struct vmw_private *dev_priv, uint32_t reason)
+ {
+ u32 *fifo_mem = dev_priv->mmio_virt;
+
+- preempt_disable();
+ if (cmpxchg(fifo_mem + SVGA_FIFO_BUSY, 0, 1) == 0)
+ vmw_write(dev_priv, SVGA_REG_SYNC, reason);
+- preempt_enable();
+ }
+
+ void vmw_fifo_release(struct vmw_private *dev_priv, struct vmw_fifo_state *fifo)
+--
+2.36.1
+
diff --git a/debian/patches-rt/0321-tracing-make-preempt_lazy-and-migrate_disable-counte.patch b/debian/patches-rt/0321-tracing-make-preempt_lazy-and-migrate_disable-counte.patch
new file mode 100644
index 000000000..937b26b3c
--- /dev/null
+++ b/debian/patches-rt/0321-tracing-make-preempt_lazy-and-migrate_disable-counte.patch
@@ -0,0 +1,56 @@
+From 8f58969bec3bc125c8257b4aea667ebb352cc73a Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 21 Feb 2020 18:15:15 +0100
+Subject: [PATCH 321/347] tracing: make preempt_lazy and migrate_disable
+ counter smaller
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit dd430bf5ecb40f9a89679c85868826475d71de54 ]
+
+The migrate_disable counter should not exceed 255 so it is enough to
+store it in an 8bit field.
+With this change we can move the `preempt_lazy_count' member into the
+gap so the whole struct shrinks by 4 bytes to 12 bytes in total.
+Remove the `padding' field, it is not needed.
+Update the tracing fields in trace_define_common_fields() (it was
+missing the preempt_lazy_count field).
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ include/linux/trace_events.h | 3 +--
+ kernel/trace/trace_events.c | 4 ++--
+ 2 files changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h
+index 72864a11cec0..e26a85c1b7ba 100644
+--- a/include/linux/trace_events.h
++++ b/include/linux/trace_events.h
+@@ -62,8 +62,7 @@ struct trace_entry {
+ unsigned char flags;
+ unsigned char preempt_count;
+ int pid;
+- unsigned short migrate_disable;
+- unsigned short padding;
++ unsigned char migrate_disable;
+ unsigned char preempt_lazy_count;
+ };
+
+diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
+index fbb04cf1d5bc..9b1b1c6de2bd 100644
+--- a/kernel/trace/trace_events.c
++++ b/kernel/trace/trace_events.c
+@@ -188,8 +188,8 @@ static int trace_define_common_fields(void)
+ __common_field(unsigned char, flags);
+ __common_field(unsigned char, preempt_count);
+ __common_field(int, pid);
+- __common_field(unsigned short, migrate_disable);
+- __common_field(unsigned short, padding);
++ __common_field(unsigned char, migrate_disable);
++ __common_field(unsigned char, preempt_lazy_count);
+
+ return ret;
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0322-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch b/debian/patches-rt/0322-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch
new file mode 100644
index 000000000..709e7d601
--- /dev/null
+++ b/debian/patches-rt/0322-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch
@@ -0,0 +1,57 @@
+From d107484fb77558e58c28e33e5642d7a11f05dfea Mon Sep 17 00:00:00 2001
+From: Tiejun Chen <tiejunc@vmware.com>
+Date: Mon, 30 Mar 2020 18:45:23 -0400
+Subject: [PATCH 322/347] lib/ubsan: Remove flags parameter from calls to
+ ubsan_prologue() and ubsan_epilogue()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Fails to build with CONFIG_UBSAN=y
+
+lib/ubsan.c: In function '__ubsan_handle_vla_bound_not_positive':
+lib/ubsan.c:348:2: error: too many arguments to function 'ubsan_prologue'
+ ubsan_prologue(&data->location, &flags);
+ ^~~~~~~~~~~~~~
+lib/ubsan.c:146:13: note: declared here
+ static void ubsan_prologue(struct source_location *location)
+ ^~~~~~~~~~~~~~
+lib/ubsan.c:353:2: error: too many arguments to function 'ubsan_epilogue'
+ ubsan_epilogue(&flags);
+ ^~~~~~~~~~~~~~
+lib/ubsan.c:155:13: note: declared here
+ static void ubsan_epilogue(void)
+ ^~~~~~~~~~~~~~
+
+Signed-off-by: Tiejun Chen <tiejunc@vmware.com>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ lib/ubsan.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/lib/ubsan.c b/lib/ubsan.c
+index 5830cc9a2164..199c75e03469 100644
+--- a/lib/ubsan.c
++++ b/lib/ubsan.c
+@@ -339,18 +339,17 @@ EXPORT_SYMBOL(__ubsan_handle_type_mismatch_v1);
+ void __ubsan_handle_vla_bound_not_positive(struct vla_bound_data *data,
+ void *bound)
+ {
+- unsigned long flags;
+ char bound_str[VALUE_LENGTH];
+
+ if (suppress_report(&data->location))
+ return;
+
+- ubsan_prologue(&data->location, &flags);
++ ubsan_prologue(&data->location);
+
+ val_to_string(bound_str, sizeof(bound_str), data->type, bound);
+ pr_err("variable length array bound value %s <= 0\n", bound_str);
+
+- ubsan_epilogue(&flags);
++ ubsan_epilogue();
+ }
+ EXPORT_SYMBOL(__ubsan_handle_vla_bound_not_positive);
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0323-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch b/debian/patches-rt/0323-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch
new file mode 100644
index 000000000..972bc210f
--- /dev/null
+++ b/debian/patches-rt/0323-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch
@@ -0,0 +1,72 @@
+From 5b50540220e8d385682175fbc0b355e38289bbac Mon Sep 17 00:00:00 2001
+From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
+Date: Sun, 22 Mar 2020 00:00:28 +0100
+Subject: [PATCH 323/347] irq_work: Fix checking of IRQ_WORK_LAZY flag set on
+ non PREEMPT_RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+When CONFIG_PREEMPT_RT_FULL is not set, some of the checks for using
+lazy_list are not properly made as the IRQ_WORK_LAZY is not checked. There's
+two locations that need this update, so a use_lazy_list() helper function is
+added and used in both locations.
+
+Link: https://lore.kernel.org/r/20200321230028.GA22058@duo.ucw.cz
+Reported-by: Pavel Machek <pavel@denx.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ kernel/irq_work.c | 15 ++++++++-------
+ 1 file changed, 8 insertions(+), 7 deletions(-)
+
+diff --git a/kernel/irq_work.c b/kernel/irq_work.c
+index 2940622da5b3..b6d9d35941ac 100644
+--- a/kernel/irq_work.c
++++ b/kernel/irq_work.c
+@@ -70,6 +70,12 @@ static void __irq_work_queue_local(struct irq_work *work, struct llist_head *lis
+ arch_irq_work_raise();
+ }
+
++static inline bool use_lazy_list(struct irq_work *work)
++{
++ return (IS_ENABLED(CONFIG_PREEMPT_RT_FULL) && !(work->flags & IRQ_WORK_HARD_IRQ))
++ || (work->flags & IRQ_WORK_LAZY);
++}
++
+ /* Enqueue the irq work @work on the current CPU */
+ bool irq_work_queue(struct irq_work *work)
+ {
+@@ -81,11 +87,10 @@ bool irq_work_queue(struct irq_work *work)
+
+ /* Queue the entry and raise the IPI if needed. */
+ preempt_disable();
+- if (IS_ENABLED(CONFIG_PREEMPT_RT_FULL) && !(work->flags & IRQ_WORK_HARD_IRQ))
++ if (use_lazy_list(work))
+ list = this_cpu_ptr(&lazy_list);
+ else
+ list = this_cpu_ptr(&raised_list);
+-
+ __irq_work_queue_local(work, list);
+ preempt_enable();
+
+@@ -106,7 +111,6 @@ bool irq_work_queue_on(struct irq_work *work, int cpu)
+
+ #else /* CONFIG_SMP: */
+ struct llist_head *list;
+- bool lazy_work, realtime = IS_ENABLED(CONFIG_PREEMPT_RT_FULL);
+
+ /* All work should have been flushed before going offline */
+ WARN_ON_ONCE(cpu_is_offline(cpu));
+@@ -116,10 +120,7 @@ bool irq_work_queue_on(struct irq_work *work, int cpu)
+ return false;
+
+ preempt_disable();
+-
+- lazy_work = work->flags & IRQ_WORK_LAZY;
+-
+- if (lazy_work || (realtime && !(work->flags & IRQ_WORK_HARD_IRQ)))
++ if (use_lazy_list(work))
+ list = &per_cpu(lazy_list, cpu);
+ else
+ list = &per_cpu(raised_list, cpu);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0324-tasklet-Address-a-race-resulting-in-double-enqueue.patch b/debian/patches-rt/0324-tasklet-Address-a-race-resulting-in-double-enqueue.patch
new file mode 100644
index 000000000..70a6d70cb
--- /dev/null
+++ b/debian/patches-rt/0324-tasklet-Address-a-race-resulting-in-double-enqueue.patch
@@ -0,0 +1,120 @@
+From f9bcdc9de0ced2b99b351e226344eb1c0246dd5c Mon Sep 17 00:00:00 2001
+From: Zhang Xiao <xiao.zhang@windriver.com>
+Date: Tue, 17 Mar 2020 12:47:43 +0100
+Subject: [PATCH 324/347] tasklet: Address a race resulting in double-enqueue
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The kernel bugzilla has the following race condition reported:
+
+CPU0 CPU1 CPU2
+------------------------------------------------
+test_set SCHED
+ test_set RUN
+ if SCHED
+ add_list
+ raise
+ clear RUN
+<softirq>
+test_set RUN
+test_clear SCHED
+ ->func
+ test_set SCHED
+tasklet_try_unlock ->0
+test_clear SCHED
+ test_set SCHED
+ ->func
+tasklet_try_unlock ->1
+ test_set RUN
+ if SCHED
+ add list
+ raise
+ clear RUN
+ test_set RUN
+ if SCHED
+ add list
+ raise
+ clear RUN
+
+As a result the tasklet is enqueued on both CPUs and run on both CPUs. Due
+to the nature of the list used here, it is possible that further
+(different) tasklets, which are enqueued after this double-enqueued
+tasklet, are scheduled on CPU2 but invoked on CPU1. It is also possible
+that these tasklets won't be invoked at all, because during the second
+enqueue process the t->next pointer is set to NULL - dropping everything
+from the list.
+
+This race will trigger one or two of the WARN_ON() in
+tasklet_action_common().
+The problem is that the tasklet may be invoked multiple times and clear
+SCHED bit on each invocation. This makes it possible to enqueue the
+very same tasklet on different CPUs.
+
+Current RT-devel is using the upstream implementation which does not
+re-run tasklets if they have SCHED set again and so it does not clear
+the SCHED bit multiple times on a single invocation.
+
+Introduce the CHAINED flag. The tasklet will only be enqueued if the
+CHAINED flag has been set successfully.
+If it is possible to exchange the flags (CHAINED | RUN) -> 0 then the
+tasklet won't be re-run. Otherwise the possible SCHED flag is removed
+and the tasklet is re-run again.
+
+Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=61451
+Not-signed-off-by: Zhang Xiao <xiao.zhang@windriver.com>
+[bigeasy: patch description]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+
+Signed-off-by: Tom Zanussi <zanussi@kernel.org>
+---
+ include/linux/interrupt.h | 5 ++++-
+ kernel/softirq.c | 6 +++++-
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
+index 97d9ba26915e..a3b5edb26bc5 100644
+--- a/include/linux/interrupt.h
++++ b/include/linux/interrupt.h
+@@ -579,12 +579,15 @@ enum
+ {
+ TASKLET_STATE_SCHED, /* Tasklet is scheduled for execution */
+ TASKLET_STATE_RUN, /* Tasklet is running (SMP only) */
+- TASKLET_STATE_PENDING /* Tasklet is pending */
++ TASKLET_STATE_PENDING, /* Tasklet is pending */
++ TASKLET_STATE_CHAINED /* Tasklet is chained */
+ };
+
+ #define TASKLET_STATEF_SCHED (1 << TASKLET_STATE_SCHED)
+ #define TASKLET_STATEF_RUN (1 << TASKLET_STATE_RUN)
+ #define TASKLET_STATEF_PENDING (1 << TASKLET_STATE_PENDING)
++#define TASKLET_STATEF_CHAINED (1 << TASKLET_STATE_CHAINED)
++#define TASKLET_STATEF_RC (TASKLET_STATEF_RUN | TASKLET_STATEF_CHAINED)
+
+ #if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT_FULL)
+ static inline int tasklet_trylock(struct tasklet_struct *t)
+diff --git a/kernel/softirq.c b/kernel/softirq.c
+index 25bcf2f2714b..73dae64bfc9c 100644
+--- a/kernel/softirq.c
++++ b/kernel/softirq.c
+@@ -947,6 +947,10 @@ static void __tasklet_schedule_common(struct tasklet_struct *t,
+ * is locked before adding it to the list.
+ */
+ if (test_bit(TASKLET_STATE_SCHED, &t->state)) {
++ if (test_and_set_bit(TASKLET_STATE_CHAINED, &t->state)) {
++ tasklet_unlock(t);
++ return;
++ }
+ t->next = NULL;
+ *head->tail = t;
+ head->tail = &(t->next);
+@@ -1040,7 +1044,7 @@ static void tasklet_action_common(struct softirq_action *a,
+ again:
+ t->func(t->data);
+
+- while (!tasklet_tryunlock(t)) {
++ while (cmpxchg(&t->state, TASKLET_STATEF_RC, 0) != TASKLET_STATEF_RC) {
+ /*
+ * If it got disabled meanwhile, bail out:
+ */
+--
+2.36.1
+
diff --git a/debian/patches-rt/0325-hrtimer-fix-logic-for-when-grabbing-softirq_expiry_l.patch b/debian/patches-rt/0325-hrtimer-fix-logic-for-when-grabbing-softirq_expiry_l.patch
new file mode 100644
index 000000000..f84843891
--- /dev/null
+++ b/debian/patches-rt/0325-hrtimer-fix-logic-for-when-grabbing-softirq_expiry_l.patch
@@ -0,0 +1,50 @@
+From f3c5f444176119ec51e092dc9b9edea7a679c55e Mon Sep 17 00:00:00 2001
+From: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
+Date: Tue, 28 Apr 2020 16:40:26 +0200
+Subject: [PATCH 325/347] hrtimer: fix logic for when grabbing
+ softirq_expiry_lock can be elided
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Commit
+
+ hrtimer: Add a missing bracket and hide `migration_base' on !SMP
+
+which is 47b6de0b7f22 in 5.2-rt and 40aae5708e7a in 4.19-rt,
+inadvertently changed the logic from base != &migration_base to base
+== &migration_base.
+
+On !CONFIG_SMP, the effect was to effectively always elide this
+lock/unlock pair (since is_migration_base() is unconditionally false),
+which for me consistently causes lockups during reboot, and reportedly
+also often causes a hang during boot.
+
+Adding this logical negation (or, what is effectively the same thing
+on !CONFIG_SMP, reverting the above commit as well as "hrtimer:
+Prevent using hrtimer_grab_expiry_lock() on migration_base") fixes
+that lockup.
+
+Fixes: 40aae5708e7a (hrtimer: Add a missing bracket and hide `migration_base' on !SMP) # 4.19-rt
+Fixes: 47b6de0b7f22 (hrtimer: Add a missing bracket and hide `migration_base' on !SMP) # 5.2-rt
+Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
+Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+Signed-off-by: Tom Zanussi <zanussi@kernel.org>
+---
+ kernel/time/hrtimer.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
+index 0f841f18c363..a84673149881 100644
+--- a/kernel/time/hrtimer.c
++++ b/kernel/time/hrtimer.c
+@@ -971,7 +971,7 @@ void hrtimer_grab_expiry_lock(const struct hrtimer *timer)
+ {
+ struct hrtimer_clock_base *base = READ_ONCE(timer->base);
+
+- if (timer->is_soft && is_migration_base(base)) {
++ if (timer->is_soft && !is_migration_base(base)) {
+ spin_lock(&base->cpu_base->softirq_expiry_lock);
+ spin_unlock(&base->cpu_base->softirq_expiry_lock);
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0326-fs-dcache-Include-swait.h-header.patch b/debian/patches-rt/0326-fs-dcache-Include-swait.h-header.patch
new file mode 100644
index 000000000..b1408b268
--- /dev/null
+++ b/debian/patches-rt/0326-fs-dcache-Include-swait.h-header.patch
@@ -0,0 +1,36 @@
+From ff692653d0de39bf90f5a339c17c880b5afa0777 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 16 Apr 2020 12:42:15 +0200
+Subject: [PATCH 326/347] fs/dcache: Include swait.h header
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 279f90ddf53cd6bd3c203fbbf488d642ea2603de ]
+
+Include the swait.h header so it compiles even if not all patches are
+applied.
+
+Reported-by: kbuild test robot <lkp@intel.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Tom Zanussi <zanussi@kernel.org>
+
+ Conflicts:
+ fs/proc/base.c
+---
+ fs/proc/base.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/fs/proc/base.c b/fs/proc/base.c
+index accc230079bb..8806344af241 100644
+--- a/fs/proc/base.c
++++ b/fs/proc/base.c
+@@ -95,6 +95,7 @@
+ #include <linux/flex_array.h>
+ #include <linux/posix-timers.h>
+ #include <trace/events/oom.h>
++#include <linux/swait.h>
+ #include "internal.h"
+ #include "fd.h"
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0327-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch b/debian/patches-rt/0327-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch
new file mode 100644
index 000000000..870ba009b
--- /dev/null
+++ b/debian/patches-rt/0327-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch
@@ -0,0 +1,64 @@
+From b997a51c5b5970f8defda681658e94bb5612dd2f Mon Sep 17 00:00:00 2001
+From: Kevin Hao <haokexin@gmail.com>
+Date: Mon, 4 May 2020 11:34:07 +0800
+Subject: [PATCH 327/347] mm: slub: Always flush the delayed empty slubs in
+ flush_all()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 23a2c31b19e99beaf5107071b0f32a596202cdae ]
+
+After commit f0b231101c94 ("mm/SLUB: delay giving back empty slubs to
+IRQ enabled regions"), when the free_slab() is invoked with the IRQ
+disabled, the empty slubs are moved to a per-CPU list and will be
+freed after IRQ enabled later. But in the current codes, there is
+a check to see if there really has the cpu slub on a specific cpu
+before flushing the delayed empty slubs, this may cause a reference
+of already released kmem_cache in a scenario like below:
+ cpu 0 cpu 1
+ kmem_cache_destroy()
+ flush_all()
+ --->IPI flush_cpu_slab()
+ flush_slab()
+ deactivate_slab()
+ discard_slab()
+ free_slab()
+ c->page = NULL;
+ for_each_online_cpu(cpu)
+ if (!has_cpu_slab(1, s))
+ continue
+ this skip to flush the delayed
+ empty slub released by cpu1
+ kmem_cache_free(kmem_cache, s)
+
+ kmalloc()
+ __slab_alloc()
+ free_delayed()
+ __free_slab()
+ reference to released kmem_cache
+
+Fixes: f0b231101c94 ("mm/SLUB: delay giving back empty slubs to IRQ enabled regions")
+Signed-off-by: Kevin Hao <haokexin@gmail.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Tom Zanussi <zanussi@kernel.org>
+---
+ mm/slub.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/mm/slub.c b/mm/slub.c
+index 3b1edb545215..497096152c39 100644
+--- a/mm/slub.c
++++ b/mm/slub.c
+@@ -2376,9 +2376,6 @@ static void flush_all(struct kmem_cache *s)
+ for_each_online_cpu(cpu) {
+ struct slub_free_list *f;
+
+- if (!has_cpu_slab(cpu, s))
+- continue;
+-
+ f = &per_cpu(slub_free_list, cpu);
+ raw_spin_lock_irq(&f->lock);
+ list_splice_init(&f->list, &tofree);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0328-tasklet-Fix-UP-case-for-tasklet-CHAINED-state.patch b/debian/patches-rt/0328-tasklet-Fix-UP-case-for-tasklet-CHAINED-state.patch
new file mode 100644
index 000000000..704118247
--- /dev/null
+++ b/debian/patches-rt/0328-tasklet-Fix-UP-case-for-tasklet-CHAINED-state.patch
@@ -0,0 +1,56 @@
+From 562e557f31503bcd1d37d5979221e28bd0328786 Mon Sep 17 00:00:00 2001
+From: Tom Zanussi <zanussi@kernel.org>
+Date: Tue, 9 Jun 2020 11:04:08 -0500
+Subject: [PATCH 328/347] tasklet: Fix UP case for tasklet CHAINED state
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+commit 62d0a2a30cd0 (tasklet: Address a race resulting in
+double-enqueue) addresses a problem that can result in a tasklet being
+enqueued on two cpus at the same time by combining the RUN flag with a
+new CHAINED flag, and relies on the combination to be present in order
+to zero it out, which can never happen on (!SMP and !PREEMPT_RT_FULL)
+because the RUN flag is SMP/PREEMPT_RT_FULL-only.
+
+So make sure the above commit is only applied for the SMP ||
+PREEMPT_RT_FULL case.
+
+Fixes: 62d0a2a30cd0 ("tasklet: Address a race resulting in double-enqueue")
+Signed-off-by: Tom Zanussi <zanussi@kernel.org>
+Reported-by: Ramon Fried <rfried.dev@gmail.com>
+Tested-By: Ramon Fried <rfried.dev@gmail.com>
+---
+ kernel/softirq.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/kernel/softirq.c b/kernel/softirq.c
+index 73dae64bfc9c..9bad7a16dc61 100644
+--- a/kernel/softirq.c
++++ b/kernel/softirq.c
+@@ -947,10 +947,12 @@ static void __tasklet_schedule_common(struct tasklet_struct *t,
+ * is locked before adding it to the list.
+ */
+ if (test_bit(TASKLET_STATE_SCHED, &t->state)) {
++#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT_FULL)
+ if (test_and_set_bit(TASKLET_STATE_CHAINED, &t->state)) {
+ tasklet_unlock(t);
+ return;
+ }
++#endif
+ t->next = NULL;
+ *head->tail = t;
+ head->tail = &(t->next);
+@@ -1044,7 +1046,11 @@ static void tasklet_action_common(struct softirq_action *a,
+ again:
+ t->func(t->data);
+
++#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT_FULL)
+ while (cmpxchg(&t->state, TASKLET_STATEF_RC, 0) != TASKLET_STATEF_RC) {
++#else
++ while (!tasklet_tryunlock(t)) {
++#endif
+ /*
+ * If it got disabled meanwhile, bail out:
+ */
+--
+2.36.1
+
diff --git a/debian/patches-rt/0329-signal-Prevent-double-free-of-user-struct.patch b/debian/patches-rt/0329-signal-Prevent-double-free-of-user-struct.patch
new file mode 100644
index 000000000..253dc5c91
--- /dev/null
+++ b/debian/patches-rt/0329-signal-Prevent-double-free-of-user-struct.patch
@@ -0,0 +1,55 @@
+From a99e09659e6cd4b633c3689f2c3aa5f8a816fe5b Mon Sep 17 00:00:00 2001
+From: Matt Fleming <matt@codeblueprint.co.uk>
+Date: Tue, 7 Apr 2020 10:54:13 +0100
+Subject: [PATCH 329/347] signal: Prevent double-free of user struct
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upsteam commit 9567db2ebe566a93485e1a27d8759969d0002d7a ]
+
+The way user struct reference counting works changed significantly with,
+
+ fda31c50292a ("signal: avoid double atomic counter increments for user accounting")
+
+Now user structs are only freed once the last pending signal is
+dequeued. Make sigqueue_free_current() follow this new convention to
+avoid freeing the user struct multiple times and triggering this
+warning:
+
+ refcount_t: underflow; use-after-free.
+ WARNING: CPU: 0 PID: 6794 at lib/refcount.c:288 refcount_dec_not_one+0x45/0x50
+ Call Trace:
+ refcount_dec_and_lock_irqsave+0x16/0x60
+ free_uid+0x31/0xa0
+ __dequeue_signal+0x17c/0x190
+ dequeue_signal+0x5a/0x1b0
+ do_sigtimedwait+0x208/0x250
+ __x64_sys_rt_sigtimedwait+0x6f/0xd0
+ do_syscall_64+0x72/0x200
+ entry_SYSCALL_64_after_hwframe+0x49/0xbe
+
+Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk>
+Reported-by: Daniel Wagner <wagi@monom.org>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Tom Zanussi <zanussi@kernel.org>
+---
+ kernel/signal.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/kernel/signal.c b/kernel/signal.c
+index 74f807bba0b8..59294dfaa744 100644
+--- a/kernel/signal.c
++++ b/kernel/signal.c
+@@ -489,8 +489,8 @@ static void sigqueue_free_current(struct sigqueue *q)
+
+ up = q->user;
+ if (rt_prio(current->normal_prio) && !put_task_cache(current, q)) {
+- atomic_dec(&up->sigpending);
+- free_uid(up);
++ if (atomic_dec_and_test(&up->sigpending))
++ free_uid(up);
+ } else
+ __sigqueue_free(q);
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0330-Bluetooth-Acquire-sk_lock.slock-without-disabling-in.patch b/debian/patches-rt/0330-Bluetooth-Acquire-sk_lock.slock-without-disabling-in.patch
new file mode 100644
index 000000000..ff8d39cfc
--- /dev/null
+++ b/debian/patches-rt/0330-Bluetooth-Acquire-sk_lock.slock-without-disabling-in.patch
@@ -0,0 +1,65 @@
+From ba289a24015e6e110bcc57dad832a8094be6b955 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Thu, 28 May 2020 14:35:12 +0200
+Subject: [PATCH 330/347] Bluetooth: Acquire sk_lock.slock without disabling
+ interrupts
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit e6da0edc24eecef2f6964d92fa9044e1821deace ]
+
+There was a lockdep which led to commit
+ fad003b6c8e3d ("Bluetooth: Fix inconsistent lock state with RFCOMM")
+
+Lockdep noticed that `sk->sk_lock.slock' was acquired without disabling
+the softirq while the lock was also used in softirq context.
+Unfortunately the solution back then was to disable interrupts before
+acquiring the lock which however made lockdep happy.
+It would have been enough to simply disable the softirq. Disabling
+interrupts before acquiring a spinlock_t is not allowed on PREEMPT_RT
+because these locks are converted to 'sleeping' spinlocks.
+
+Use spin_lock_bh() in order to acquire the `sk_lock.slock'.
+
+Reported-by: Luis Claudio R. Goncalves <lclaudio@uudg.org>
+Reported-by: kbuild test robot <lkp@intel.com> [missing unlock]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
+Signed-off-by: Tom Zanussi <zanussi@kernel.org>
+---
+ net/bluetooth/rfcomm/sock.c | 7 ++-----
+ 1 file changed, 2 insertions(+), 5 deletions(-)
+
+diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c
+index c044ff2f73e6..75bc8102cdd7 100644
+--- a/net/bluetooth/rfcomm/sock.c
++++ b/net/bluetooth/rfcomm/sock.c
+@@ -64,15 +64,13 @@ static void rfcomm_sk_data_ready(struct rfcomm_dlc *d, struct sk_buff *skb)
+ static void rfcomm_sk_state_change(struct rfcomm_dlc *d, int err)
+ {
+ struct sock *sk = d->owner, *parent;
+- unsigned long flags;
+
+ if (!sk)
+ return;
+
+ BT_DBG("dlc %p state %ld err %d", d, d->state, err);
+
+- local_irq_save(flags);
+- bh_lock_sock(sk);
++ spin_lock_bh(&sk->sk_lock.slock);
+
+ if (err)
+ sk->sk_err = err;
+@@ -93,8 +91,7 @@ static void rfcomm_sk_state_change(struct rfcomm_dlc *d, int err)
+ sk->sk_state_change(sk);
+ }
+
+- bh_unlock_sock(sk);
+- local_irq_restore(flags);
++ spin_unlock_bh(&sk->sk_lock.slock);
+
+ if (parent && sock_flag(sk, SOCK_ZAPPED)) {
+ /* We have to drop DLC lock here, otherwise
+--
+2.36.1
+
diff --git a/debian/patches-rt/0331-net-phy-fixed_phy-Remove-unused-seqcount.patch b/debian/patches-rt/0331-net-phy-fixed_phy-Remove-unused-seqcount.patch
new file mode 100644
index 000000000..ceacf6b1e
--- /dev/null
+++ b/debian/patches-rt/0331-net-phy-fixed_phy-Remove-unused-seqcount.patch
@@ -0,0 +1,89 @@
+From 1d956b22e273e7a1ce90b54cd84598e1a427f3f2 Mon Sep 17 00:00:00 2001
+From: "Ahmed S. Darwish" <a.darwish@linutronix.de>
+Date: Wed, 10 Jun 2020 12:53:00 +0200
+Subject: [PATCH 331/347] net: phy: fixed_phy: Remove unused seqcount
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 6554eac9ef2bd1c968886b31cc7266b49258a463 ]
+
+Commit bf7afb29d545 ("phy: improve safety of fixed-phy MII register
+reading") protected the fixed PHY status with a sequence counter.
+
+Two years later, commit d2b977939b18 ("net: phy: fixed-phy: remove
+fixed_phy_update_state()") removed the sequence counter's write side
+critical section -- neutralizing its read side retry loop.
+
+Remove the unused seqcount.
+
+Signed-off-by: Ahmed S. Darwish <a.darwish@linutronix.de>
+Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Reviewed-by: Andrew Lunn <andrew@lunn.ch>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+(cherry picked from v5.8-rc1 commit 79cbb6bc3332da7162c2581e151659ab8ebaa528)
+Signed-off-by: Ahmed S. Darwish <a.darwish@linutronix.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Tom Zanussi <zanussi@kernel.org>
+---
+ drivers/net/phy/fixed_phy.c | 25 +++++++++----------------
+ 1 file changed, 9 insertions(+), 16 deletions(-)
+
+diff --git a/drivers/net/phy/fixed_phy.c b/drivers/net/phy/fixed_phy.c
+index 59820164502e..953ff54dd5df 100644
+--- a/drivers/net/phy/fixed_phy.c
++++ b/drivers/net/phy/fixed_phy.c
+@@ -23,7 +23,6 @@
+ #include <linux/slab.h>
+ #include <linux/of.h>
+ #include <linux/gpio.h>
+-#include <linux/seqlock.h>
+ #include <linux/idr.h>
+
+ #include "swphy.h"
+@@ -36,7 +35,6 @@ struct fixed_mdio_bus {
+ struct fixed_phy {
+ int addr;
+ struct phy_device *phydev;
+- seqcount_t seqcount;
+ struct fixed_phy_status status;
+ int (*link_update)(struct net_device *, struct fixed_phy_status *);
+ struct list_head node;
+@@ -62,18 +60,15 @@ static int fixed_mdio_read(struct mii_bus *bus, int phy_addr, int reg_num)
+ list_for_each_entry(fp, &fmb->phys, node) {
+ if (fp->addr == phy_addr) {
+ struct fixed_phy_status state;
+- int s;
+-
+- do {
+- s = read_seqcount_begin(&fp->seqcount);
+- /* Issue callback if user registered it. */
+- if (fp->link_update)
+- fp->link_update(fp->phydev->attached_dev,
+- &fp->status);
+- /* Check the GPIO for change in status */
+- fixed_phy_update(fp);
+- state = fp->status;
+- } while (read_seqcount_retry(&fp->seqcount, s));
++
++ /* Issue callback if user registered it. */
++ if (fp->link_update)
++ fp->link_update(fp->phydev->attached_dev,
++ &fp->status);
++
++ /* Check the GPIO for change in status */
++ fixed_phy_update(fp);
++ state = fp->status;
+
+ return swphy_read_reg(reg_num, &state);
+ }
+@@ -131,8 +126,6 @@ int fixed_phy_add(unsigned int irq, int phy_addr,
+ if (!fp)
+ return -ENOMEM;
+
+- seqcount_init(&fp->seqcount);
+-
+ if (irq != PHY_POLL)
+ fmb->mii_bus->irq[phy_addr] = irq;
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0332-net-xfrm-fix-compress-vs-decompress-serialization.patch b/debian/patches-rt/0332-net-xfrm-fix-compress-vs-decompress-serialization.patch
new file mode 100644
index 000000000..23117039c
--- /dev/null
+++ b/debian/patches-rt/0332-net-xfrm-fix-compress-vs-decompress-serialization.patch
@@ -0,0 +1,102 @@
+From 502a0ae30b2c2d53fde16d55fe8ae20312d4b520 Mon Sep 17 00:00:00 2001
+From: Davidlohr Bueso <dave@stgolabs.net>
+Date: Tue, 18 Aug 2020 09:20:53 -0700
+Subject: [PATCH 332/347] net: xfrm: fix compress vs decompress serialization
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+A crash was seen in xfrm when running ltp's 'tcp4_ipsec06' stresser on v4.x
+based RT kernels.
+
+ipcomp_compress() will serialize access to the ipcomp_scratches percpu buffer by
+disabling BH and preventing a softirq from coming in and running ipcom_decompress(),
+which is never called from process context. This of course won't work on RT and
+the buffer can get corrupted; there have been similar issues with in the past with
+such assumptions, ie: ebf255ed6c44 (net: add back the missing serialization in
+ip_send_unicast_reply()).
+
+Similarly, this patch addresses the issue with locallocks allowing RT to have a
+percpu spinlock and do the correct serialization.
+
+Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
+Signed-off-by: Tom Zanussi <zanussi@kernel.org>
+---
+ net/xfrm/xfrm_ipcomp.c | 21 +++++++++++++++------
+ 1 file changed, 15 insertions(+), 6 deletions(-)
+
+diff --git a/net/xfrm/xfrm_ipcomp.c b/net/xfrm/xfrm_ipcomp.c
+index a00ec715aa46..a97997385423 100644
+--- a/net/xfrm/xfrm_ipcomp.c
++++ b/net/xfrm/xfrm_ipcomp.c
+@@ -20,6 +20,7 @@
+ #include <linux/list.h>
+ #include <linux/module.h>
+ #include <linux/mutex.h>
++#include <linux/locallock.h>
+ #include <linux/percpu.h>
+ #include <linux/slab.h>
+ #include <linux/smp.h>
+@@ -36,6 +37,7 @@ struct ipcomp_tfms {
+
+ static DEFINE_MUTEX(ipcomp_resource_mutex);
+ static void * __percpu *ipcomp_scratches;
++static DEFINE_LOCAL_IRQ_LOCK(ipcomp_scratches_lock);
+ static int ipcomp_scratch_users;
+ static LIST_HEAD(ipcomp_tfms_list);
+
+@@ -45,12 +47,15 @@ static int ipcomp_decompress(struct xfrm_state *x, struct sk_buff *skb)
+ const int plen = skb->len;
+ int dlen = IPCOMP_SCRATCH_SIZE;
+ const u8 *start = skb->data;
+- const int cpu = get_cpu();
+- u8 *scratch = *per_cpu_ptr(ipcomp_scratches, cpu);
+- struct crypto_comp *tfm = *per_cpu_ptr(ipcd->tfms, cpu);
+- int err = crypto_comp_decompress(tfm, start, plen, scratch, &dlen);
+- int len;
++ u8 *scratch;
++ struct crypto_comp *tfm;
++ int err, len;
++
++ local_lock(ipcomp_scratches_lock);
+
++ scratch = *this_cpu_ptr(ipcomp_scratches);
++ tfm = *this_cpu_ptr(ipcd->tfms);
++ err = crypto_comp_decompress(tfm, start, plen, scratch, &dlen);
+ if (err)
+ goto out;
+
+@@ -103,7 +108,7 @@ static int ipcomp_decompress(struct xfrm_state *x, struct sk_buff *skb)
+ err = 0;
+
+ out:
+- put_cpu();
++ local_unlock(ipcomp_scratches_lock);
+ return err;
+ }
+
+@@ -146,6 +151,8 @@ static int ipcomp_compress(struct xfrm_state *x, struct sk_buff *skb)
+ int err;
+
+ local_bh_disable();
++ local_lock(ipcomp_scratches_lock);
++
+ scratch = *this_cpu_ptr(ipcomp_scratches);
+ tfm = *this_cpu_ptr(ipcd->tfms);
+ err = crypto_comp_compress(tfm, start, plen, scratch, &dlen);
+@@ -158,12 +165,14 @@ static int ipcomp_compress(struct xfrm_state *x, struct sk_buff *skb)
+ }
+
+ memcpy(start + sizeof(struct ip_comp_hdr), scratch, dlen);
++ local_unlock(ipcomp_scratches_lock);
+ local_bh_enable();
+
+ pskb_trim(skb, dlen + sizeof(struct ip_comp_hdr));
+ return 0;
+
+ out:
++ local_unlock(ipcomp_scratches_lock);
+ local_bh_enable();
+ return err;
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0333-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch b/debian/patches-rt/0333-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch
new file mode 100644
index 000000000..8c05dc952
--- /dev/null
+++ b/debian/patches-rt/0333-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch
@@ -0,0 +1,50 @@
+From 5e6613efc5bd79951fdfab9ce61217ba8480a0bc Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 28 Oct 2020 18:15:32 +0100
+Subject: [PATCH 333/347] mm/memcontrol: Disable preemption in
+ __mod_memcg_lruvec_state()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 74858f0d38a8d3c069a0745ff53ae084c8e7cabb ]
+
+The callers expect disabled preemption/interrupts while invoking
+__mod_memcg_lruvec_state(). This works mainline because a lock of
+somekind is acquired.
+
+Use preempt_disable_rt() where per-CPU variables are accessed and a
+stable pointer is expected. This is also done in __mod_zone_page_state()
+for the same reason.
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Tom Zanussi <zanussi@kernel.org>
+
+ Conflicts:
+ mm/memcontrol.c
+---
+ include/linux/memcontrol.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
+index cc6b6532eb56..dbb2c4e27277 100644
+--- a/include/linux/memcontrol.h
++++ b/include/linux/memcontrol.h
+@@ -665,6 +665,7 @@ static inline void __mod_lruvec_state(struct lruvec *lruvec,
+
+ pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec);
+
++ preempt_disable_rt();
+ /* Update memcg */
+ __mod_memcg_state(pn->memcg, idx, val);
+
+@@ -675,6 +676,7 @@ static inline void __mod_lruvec_state(struct lruvec *lruvec,
+ x = 0;
+ }
+ __this_cpu_write(pn->lruvec_stat_cpu->count[idx], x);
++ preempt_enable_rt();
+ }
+
+ static inline void mod_lruvec_state(struct lruvec *lruvec,
+--
+2.36.1
+
diff --git a/debian/patches-rt/0334-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch b/debian/patches-rt/0334-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch
new file mode 100644
index 000000000..ab3bf14d5
--- /dev/null
+++ b/debian/patches-rt/0334-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch
@@ -0,0 +1,68 @@
+From a888cf3e5934c79d8edfca69dfe7fbe8f52c7476 Mon Sep 17 00:00:00 2001
+From: Oleg Nesterov <oleg@redhat.com>
+Date: Tue, 3 Nov 2020 12:39:01 +0100
+Subject: [PATCH 334/347] ptrace: fix ptrace_unfreeze_traced() race with
+ rt-lock
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+[ Upstream commit 0fdc91971b34cf6857b4cfd8c322ae936cfc189b ]
+
+The patch "ptrace: fix ptrace vs tasklist_lock race" changed
+ptrace_freeze_traced() to take task->saved_state into account, but
+ptrace_unfreeze_traced() has the same problem and needs a similar fix:
+it should check/update both ->state and ->saved_state.
+
+Reported-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com>
+Fixes: "ptrace: fix ptrace vs tasklist_lock race"
+Signed-off-by: Oleg Nesterov <oleg@redhat.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Tom Zanussi <zanussi@kernel.org>
+---
+ kernel/ptrace.c | 23 +++++++++++++++--------
+ 1 file changed, 15 insertions(+), 8 deletions(-)
+
+diff --git a/kernel/ptrace.c b/kernel/ptrace.c
+index 9c59e523f3cd..b7d2a22534da 100644
+--- a/kernel/ptrace.c
++++ b/kernel/ptrace.c
+@@ -207,8 +207,8 @@ static bool ptrace_freeze_traced(struct task_struct *task)
+
+ static void ptrace_unfreeze_traced(struct task_struct *task)
+ {
+- if (task->state != __TASK_TRACED)
+- return;
++ unsigned long flags;
++ bool frozen = true;
+
+ WARN_ON(!task->ptrace || task->parent != current);
+
+@@ -217,12 +217,19 @@ static void ptrace_unfreeze_traced(struct task_struct *task)
+ * Recheck state under the lock to close this race.
+ */
+ spin_lock_irq(&task->sighand->siglock);
+- if (task->state == __TASK_TRACED) {
+- if (__fatal_signal_pending(task))
+- wake_up_state(task, __TASK_TRACED);
+- else
+- task->state = TASK_TRACED;
+- }
++
++ raw_spin_lock_irqsave(&task->pi_lock, flags);
++ if (task->state == __TASK_TRACED)
++ task->state = TASK_TRACED;
++ else if (task->saved_state == __TASK_TRACED)
++ task->saved_state = TASK_TRACED;
++ else
++ frozen = false;
++ raw_spin_unlock_irqrestore(&task->pi_lock, flags);
++
++ if (frozen && __fatal_signal_pending(task))
++ wake_up_state(task, __TASK_TRACED);
++
+ spin_unlock_irq(&task->sighand->siglock);
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0335-Linux-4.19.185-rt76-REBASE.patch b/debian/patches-rt/0335-Linux-4.19.185-rt76-REBASE.patch
new file mode 100644
index 000000000..d38a3565e
--- /dev/null
+++ b/debian/patches-rt/0335-Linux-4.19.185-rt76-REBASE.patch
@@ -0,0 +1,21 @@
+From 6142a4642e9bcfd6fbbaf6cddd32841755deff8b Mon Sep 17 00:00:00 2001
+From: Clark Williams <williams@redhat.com>
+Date: Mon, 12 Apr 2021 15:03:55 -0500
+Subject: [PATCH 335/347] Linux 4.19.185-rt76 REBASE
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Signed-off-by: Clark Williams <williams@redhat.com>
+---
+ localversion-rt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/localversion-rt b/localversion-rt
+index 1199ebade17b..c1f2720eaf25 100644
+--- a/localversion-rt
++++ b/localversion-rt
+@@ -1 +1 @@
+--rt16
++-rt76
+--
+2.36.1
+
diff --git a/debian/patches-rt/0336-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch b/debian/patches-rt/0336-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch
new file mode 100644
index 000000000..eaf171957
--- /dev/null
+++ b/debian/patches-rt/0336-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch
@@ -0,0 +1,38 @@
+From 4da7dd5c5195e9f48a911e768ca8bd317f5c6b7f Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 26 Feb 2021 17:26:04 +0100
+Subject: [PATCH 336/347] mm: slub: Don't resize the location tracking cache on
+ PREEMPT_RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The location tracking cache has a size of a page and is resized if its
+current size is too small.
+This allocation happens with disabled interrupts and can't happen on
+PREEMPT_RT.
+Should one page be too small, then we have to allocate more at the
+beginning. The only downside is that less callers will be visible.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+(cherry picked from commit 87bd0bf324f4c5468ea3d1de0482589f491f3145)
+Signed-off-by: Clark Williams <williams@redhat.com>
+---
+ mm/slub.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/mm/slub.c b/mm/slub.c
+index 497096152c39..6b9b894ba5bc 100644
+--- a/mm/slub.c
++++ b/mm/slub.c
+@@ -4591,6 +4591,9 @@ static int alloc_loc_track(struct loc_track *t, unsigned long max, gfp_t flags)
+ struct location *l;
+ int order;
+
++ if (IS_ENABLED(CONFIG_PREEMPT_RT) && flags == GFP_ATOMIC)
++ return 0;
++
+ order = get_order(sizeof(struct location) * max);
+
+ l = (void *)__get_free_pages(flags, order);
+--
+2.36.1
+
diff --git a/debian/patches-rt/0337-locking-rwsem_rt-Add-__down_read_interruptible.patch b/debian/patches-rt/0337-locking-rwsem_rt-Add-__down_read_interruptible.patch
new file mode 100644
index 000000000..32dbf855c
--- /dev/null
+++ b/debian/patches-rt/0337-locking-rwsem_rt-Add-__down_read_interruptible.patch
@@ -0,0 +1,54 @@
+From 22e1c0d3e27bd960ae3561172ca15089721253c6 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Tue, 19 Jan 2021 18:54:33 +0100
+Subject: [PATCH 337/347] locking/rwsem_rt: Add __down_read_interruptible()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The stable backported a patch which adds __down_read_interruptible() for
+the generic rwsem implementation.
+
+Add RT's version __down_read_interruptible().
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/rwsem_rt.h | 1 +
+ kernel/locking/rwsem-rt.c | 11 +++++++++++
+ 2 files changed, 12 insertions(+)
+
+diff --git a/include/linux/rwsem_rt.h b/include/linux/rwsem_rt.h
+index 2018ff77904a..3fb092b7bcc0 100644
+--- a/include/linux/rwsem_rt.h
++++ b/include/linux/rwsem_rt.h
+@@ -56,6 +56,7 @@ static inline int rwsem_is_contended(struct rw_semaphore *sem)
+ }
+
+ extern void __down_read(struct rw_semaphore *sem);
++extern int __down_read_interruptible(struct rw_semaphore *sem);
+ extern int __down_read_killable(struct rw_semaphore *sem);
+ extern int __down_read_trylock(struct rw_semaphore *sem);
+ extern void __down_write(struct rw_semaphore *sem);
+diff --git a/kernel/locking/rwsem-rt.c b/kernel/locking/rwsem-rt.c
+index f518495bd6cc..19ea20be3fd7 100644
+--- a/kernel/locking/rwsem-rt.c
++++ b/kernel/locking/rwsem-rt.c
+@@ -166,6 +166,17 @@ void __down_read(struct rw_semaphore *sem)
+ WARN_ON_ONCE(ret);
+ }
+
++int __down_read_interruptible(struct rw_semaphore *sem)
++{
++ int ret;
++
++ ret = __down_read_common(sem, TASK_INTERRUPTIBLE);
++ if (likely(!ret))
++ return ret;
++ WARN_ONCE(ret != -EINTR, "Unexpected state: %d\n", ret);
++ return -EINTR;
++}
++
+ int __down_read_killable(struct rw_semaphore *sem)
+ {
+ int ret;
+--
+2.36.1
+
diff --git a/debian/patches-rt/0338-Linux-4.19.206-rt87-REBASE.patch b/debian/patches-rt/0338-Linux-4.19.206-rt87-REBASE.patch
new file mode 100644
index 000000000..eb89fd8dd
--- /dev/null
+++ b/debian/patches-rt/0338-Linux-4.19.206-rt87-REBASE.patch
@@ -0,0 +1,21 @@
+From de4f10a80cbe40566ab9124766a9dce2d30fc651 Mon Sep 17 00:00:00 2001
+From: Clark Williams <williams@redhat.com>
+Date: Fri, 3 Sep 2021 10:24:35 -0500
+Subject: [PATCH 338/347] Linux 4.19.206-rt87 REBASE
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Signed-off-by: Clark Williams <williams@redhat.com>
+---
+ localversion-rt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/localversion-rt b/localversion-rt
+index c1f2720eaf25..bd5aee366a48 100644
+--- a/localversion-rt
++++ b/localversion-rt
+@@ -1 +1 @@
+--rt76
++-rt87
+--
+2.36.1
+
diff --git a/debian/patches-rt/0339-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch b/debian/patches-rt/0339-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch
new file mode 100644
index 000000000..3edc4a486
--- /dev/null
+++ b/debian/patches-rt/0339-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch
@@ -0,0 +1,33 @@
+From 339b3a147a8e17bd3c87f9c9b16ad2c3d8e517c9 Mon Sep 17 00:00:00 2001
+From: Andrew Halaney <ahalaney@redhat.com>
+Date: Tue, 6 Apr 2021 17:19:52 -0500
+Subject: [PATCH 339/347] locking/rwsem-rt: Remove might_sleep() in __up_read()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.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.
+
+Reported-by: Chunyu Hu <chuhu@redhat.com>
+Signed-off-by: Andrew Halaney <ahalaney@redhat.com>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+(cherry picked from commit b2ed0a4302faf2bb09e97529dd274233c082689b)
+Signed-off-by: Clark Williams <williams@redhat.com>
+---
+ kernel/locking/rwsem-rt.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/kernel/locking/rwsem-rt.c b/kernel/locking/rwsem-rt.c
+index 19ea20be3fd7..966946454ced 100644
+--- a/kernel/locking/rwsem-rt.c
++++ b/kernel/locking/rwsem-rt.c
+@@ -200,7 +200,6 @@ void __up_read(struct rw_semaphore *sem)
+ if (!atomic_dec_and_test(&sem->readers))
+ return;
+
+- might_sleep();
+ raw_spin_lock_irq(&m->wait_lock);
+ /*
+ * Wake the writer, i.e. the rtmutex owner. It might release the
+--
+2.36.1
+
diff --git a/debian/patches-rt/0340-Linux-4.19.214-rt93-REBASE.patch b/debian/patches-rt/0340-Linux-4.19.214-rt93-REBASE.patch
new file mode 100644
index 000000000..2529b908a
--- /dev/null
+++ b/debian/patches-rt/0340-Linux-4.19.214-rt93-REBASE.patch
@@ -0,0 +1,21 @@
+From 10fb3965169bb32da6eddef5672ba845f4dd3a67 Mon Sep 17 00:00:00 2001
+From: Clark Williams <williams@redhat.com>
+Date: Fri, 29 Oct 2021 09:49:56 -0500
+Subject: [PATCH 340/347] Linux 4.19.214-rt93 REBASE
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Signed-off-by: Clark Williams <williams@redhat.com>
+---
+ localversion-rt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/localversion-rt b/localversion-rt
+index bd5aee366a48..e98a1fe050bd 100644
+--- a/localversion-rt
++++ b/localversion-rt
+@@ -1 +1 @@
+--rt87
++-rt93
+--
+2.36.1
+
diff --git a/debian/patches-rt/0341-fscache-fix-initialisation-of-cookie-hash-table-raw-.patch b/debian/patches-rt/0341-fscache-fix-initialisation-of-cookie-hash-table-raw-.patch
new file mode 100644
index 000000000..3be61a807
--- /dev/null
+++ b/debian/patches-rt/0341-fscache-fix-initialisation-of-cookie-hash-table-raw-.patch
@@ -0,0 +1,37 @@
+From dc029afd264318942ce9a174edffa950f762e7f9 Mon Sep 17 00:00:00 2001
+From: Gregor Beck <gbeck@esigma-technology.com>
+Date: Fri, 3 Sep 2021 14:19:11 +0200
+Subject: [PATCH 341/347] fscache: fix initialisation of cookie hash table raw
+ spinlocks
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The original patch, 602660600bcd ("fscache: initialize cookie hash
+table raw spinlocks"), subtracted 1 from the shift and so still left
+some spinlocks uninitialized. This fixes that.
+
+[zanussi: Added changelog text]
+
+Signed-off-by: Gregor Beck <gregor.beck@gmail.com>
+Fixes: 602660600bcd ("fscache: initialize cookie hash table raw spinlocks")
+Signed-off-by: Tom Zanussi <zanussi@kernel.org>
+(cherry picked from commit 2cdede918a7b5f2b367e4839ad021e1d3b2479b1)
+Signed-off-by: Clark Williams <williams@redhat.com>
+---
+ fs/fscache/cookie.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/fs/fscache/cookie.c b/fs/fscache/cookie.c
+index b2b9a85a4ba5..84e57196a293 100644
+--- a/fs/fscache/cookie.c
++++ b/fs/fscache/cookie.c
+@@ -955,6 +955,6 @@ void __init fscache_cookie_init(void)
+ {
+ int i;
+
+- for (i = 0; i < (1 << fscache_cookie_hash_shift) - 1; i++)
++ for (i = 0; i < ARRAY_SIZE(fscache_cookie_hash); i++)
+ INIT_HLIST_BL_HEAD(&fscache_cookie_hash[i]);
+ }
+--
+2.36.1
+
diff --git a/debian/patches-rt/0342-Linux-4.19.225-rt101-REBASE.patch b/debian/patches-rt/0342-Linux-4.19.225-rt101-REBASE.patch
new file mode 100644
index 000000000..c8fb23eed
--- /dev/null
+++ b/debian/patches-rt/0342-Linux-4.19.225-rt101-REBASE.patch
@@ -0,0 +1,21 @@
+From cc57b2b4fdc4b90708433ff46b962f99cbec2e6c Mon Sep 17 00:00:00 2001
+From: Clark Williams <williams@redhat.com>
+Date: Wed, 12 Jan 2022 21:43:37 -0600
+Subject: [PATCH 342/347] Linux 4.19.225-rt101 REBASE
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Signed-off-by: Clark Williams <williams@redhat.com>
+---
+ localversion-rt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/localversion-rt b/localversion-rt
+index e98a1fe050bd..9ea5981fa956 100644
+--- a/localversion-rt
++++ b/localversion-rt
+@@ -1 +1 @@
+--rt93
++-rt101
+--
+2.36.1
+
diff --git a/debian/patches-rt/0343-rt-PREEMPT_RT-safety-net-for-backported-patches.patch b/debian/patches-rt/0343-rt-PREEMPT_RT-safety-net-for-backported-patches.patch
new file mode 100644
index 000000000..b4d67b156
--- /dev/null
+++ b/debian/patches-rt/0343-rt-PREEMPT_RT-safety-net-for-backported-patches.patch
@@ -0,0 +1,52 @@
+From 8961a29e7aa52c929475c767559b23e018fe8b01 Mon Sep 17 00:00:00 2001
+From: Clark Williams <clark.williams@gmail.com>
+Date: Sun, 30 Jan 2022 15:46:27 -0600
+Subject: [PATCH 343/347] rt: PREEMPT_RT safety net for backported patches
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+While doing some 4.19-rt cleanup work, I stumbled across the fact that parts of
+two backported patches were dependent on CONFIG_PREEMPT_RT, rather than
+the CONFIG_PREEMPT_RT_FULL used in 4.19 and earlier RT series. The commits
+in the linux-stable-rt v4.19-rt branch are:
+
+dad4c6a33bf4e mm: slub: Don't resize the location tracking cache on PREEMPT_RT
+e626b6f873f2c net: Treat __napi_schedule_irqoff() as __napi_schedule() on PREEMPT_RT
+
+Discussing this at the Stable RT maintainers meeting, Steven Rostedt suggested that
+we automagically select CONFIG_PREEMPT_RT if CONFIG_PREEMPT_RT_FULL is on, giving
+us a safety net for any subsequently backported patches. Here's my first cut at
+that patch.
+
+I suspect we'll need a similar patch for stable RT kernels < 4.19.
+
+Suggested-by: Steven Rostedt <rostedt@goodmis.org>
+Signed-off-by: Clark Williams <williams@redhat.com>
+---
+ kernel/Kconfig.preempt | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt
+index 306567f72a3e..fd924c0bcea7 100644
+--- a/kernel/Kconfig.preempt
++++ b/kernel/Kconfig.preempt
+@@ -6,6 +6,9 @@ config PREEMPT_RT_BASE
+ bool
+ select PREEMPT
+
++config PREEMPT_RT
++ bool
++
+ config HAVE_PREEMPT_LAZY
+ bool
+
+@@ -80,6 +83,7 @@ config PREEMPT_RT_FULL
+ depends on IRQ_FORCED_THREADING
+ select PREEMPT_RT_BASE
+ select PREEMPT_RCU
++ select PREEMPT_RT
+ help
+ All and everything
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0344-net-Add-missing-xmit_lock_owner-hunks.patch b/debian/patches-rt/0344-net-Add-missing-xmit_lock_owner-hunks.patch
new file mode 100644
index 000000000..467bb1739
--- /dev/null
+++ b/debian/patches-rt/0344-net-Add-missing-xmit_lock_owner-hunks.patch
@@ -0,0 +1,117 @@
+From 1a0157a8d087c0c5bdf88ad97e2d4db77bee63aa Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 22 Dec 2021 20:35:22 +0100
+Subject: [PATCH 344/347] net: Add missing xmit_lock_owner hunks.
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The patch
+ net: move xmit_recursion to per-task variable on -RT
+
+lost a few hunks during its rebase.
+
+Add the `xmit_lock_owner' accessor/wrapper.
+
+Reported-by: Salvatore Bonaccorso <carnil@debian.org>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/netdevice.h | 29 +++++++++++++----------------
+ 1 file changed, 13 insertions(+), 16 deletions(-)
+
+diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
+index c4713217b20e..bd73117e2636 100644
+--- a/include/linux/netdevice.h
++++ b/include/linux/netdevice.h
+@@ -3885,17 +3885,17 @@ static inline u32 netif_msg_init(int debug_value, int default_msg_enable_bits)
+ #ifdef CONFIG_PREEMPT_RT_FULL
+ static inline void netdev_queue_set_owner(struct netdev_queue *txq, int cpu)
+ {
+- txq->xmit_lock_owner = current;
++ WRITE_ONCE(txq->xmit_lock_owner, current);
+ }
+
+ static inline void netdev_queue_clear_owner(struct netdev_queue *txq)
+ {
+- txq->xmit_lock_owner = NULL;
++ WRITE_ONCE(txq->xmit_lock_owner, NULL);
+ }
+
+ static inline bool netdev_queue_has_owner(struct netdev_queue *txq)
+ {
+- if (txq->xmit_lock_owner != NULL)
++ if (READ_ONCE(txq->xmit_lock_owner) != NULL)
+ return true;
+ return false;
+ }
+@@ -3904,17 +3904,19 @@ static inline bool netdev_queue_has_owner(struct netdev_queue *txq)
+
+ static inline void netdev_queue_set_owner(struct netdev_queue *txq, int cpu)
+ {
+- txq->xmit_lock_owner = cpu;
++ /* Pairs with READ_ONCE() in __dev_queue_xmit() */
++ WRITE_ONCE(txq->xmit_lock_owner, cpu);
+ }
+
+ static inline void netdev_queue_clear_owner(struct netdev_queue *txq)
+ {
+- txq->xmit_lock_owner = -1;
++ /* Pairs with READ_ONCE() in __dev_queue_xmit() */
++ WRITE_ONCE(txq->xmit_lock_owner, -1);
+ }
+
+ static inline bool netdev_queue_has_owner(struct netdev_queue *txq)
+ {
+- if (txq->xmit_lock_owner != -1)
++ if (READ_ONCE(txq->xmit_lock_owner) != -1)
+ return true;
+ return false;
+ }
+@@ -3923,8 +3925,7 @@ static inline bool netdev_queue_has_owner(struct netdev_queue *txq)
+ static inline void __netif_tx_lock(struct netdev_queue *txq, int cpu)
+ {
+ spin_lock(&txq->_xmit_lock);
+- /* Pairs with READ_ONCE() in __dev_queue_xmit() */
+- WRITE_ONCE(txq->xmit_lock_owner, cpu);
++ netdev_queue_set_owner(txq, cpu);
+ }
+
+ static inline bool __netif_tx_acquire(struct netdev_queue *txq)
+@@ -3941,8 +3942,7 @@ static inline void __netif_tx_release(struct netdev_queue *txq)
+ static inline void __netif_tx_lock_bh(struct netdev_queue *txq)
+ {
+ spin_lock_bh(&txq->_xmit_lock);
+- /* Pairs with READ_ONCE() in __dev_queue_xmit() */
+- WRITE_ONCE(txq->xmit_lock_owner, smp_processor_id());
++ netdev_queue_set_owner(txq, smp_processor_id());
+ }
+
+ static inline bool __netif_tx_trylock(struct netdev_queue *txq)
+@@ -3950,23 +3950,20 @@ static inline bool __netif_tx_trylock(struct netdev_queue *txq)
+ bool ok = spin_trylock(&txq->_xmit_lock);
+
+ if (likely(ok)) {
+- /* Pairs with READ_ONCE() in __dev_queue_xmit() */
+- WRITE_ONCE(txq->xmit_lock_owner, smp_processor_id());
++ netdev_queue_set_owner(txq, smp_processor_id());
+ }
+ return ok;
+ }
+
+ static inline void __netif_tx_unlock(struct netdev_queue *txq)
+ {
+- /* Pairs with READ_ONCE() in __dev_queue_xmit() */
+- WRITE_ONCE(txq->xmit_lock_owner, -1);
++ netdev_queue_clear_owner(txq);
+ spin_unlock(&txq->_xmit_lock);
+ }
+
+ static inline void __netif_tx_unlock_bh(struct netdev_queue *txq)
+ {
+- /* Pairs with READ_ONCE() in __dev_queue_xmit() */
+- WRITE_ONCE(txq->xmit_lock_owner, -1);
++ netdev_queue_clear_owner(txq);
+ spin_unlock_bh(&txq->_xmit_lock);
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0345-Linux-4.19.237-rt107-REBASE.patch b/debian/patches-rt/0345-Linux-4.19.237-rt107-REBASE.patch
new file mode 100644
index 000000000..e38739169
--- /dev/null
+++ b/debian/patches-rt/0345-Linux-4.19.237-rt107-REBASE.patch
@@ -0,0 +1,21 @@
+From da237074d357316e91a363c91e29aeaaace6ce6c Mon Sep 17 00:00:00 2001
+From: Daniel Wagner <wagi@monom.org>
+Date: Thu, 31 Mar 2022 20:37:13 +0200
+Subject: [PATCH 345/347] Linux 4.19.237-rt107 REBASE
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Signed-off-by: Daniel Wagner <wagi@monom.org>
+---
+ localversion-rt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/localversion-rt b/localversion-rt
+index 9ea5981fa956..2e0a3c960575 100644
+--- a/localversion-rt
++++ b/localversion-rt
+@@ -1 +1 @@
+--rt101
++-rt107
+--
+2.36.1
+
diff --git a/debian/patches-rt/0346-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch b/debian/patches-rt/0346-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch
new file mode 100644
index 000000000..0c8b0e14e
--- /dev/null
+++ b/debian/patches-rt/0346-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch
@@ -0,0 +1,41 @@
+From d379a82e852964afe457dcf44bf4a00fc59de389 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 29 Apr 2022 11:02:18 -0500
+Subject: [PATCH 346/347] genirq: Add lost hunk to irq_forced_thread_fn().
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+The irq_settings_no_softirq_call() related handling got lost in process,
+here are the missing bits.
+
+Reported-by: Martin Kaistra <martin.kaistra@linutronix.de>
+Fixes: b0cf5c230e2a0 ("Merge tag 'v4.19.183' into linux-4.19.y-rt")
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Clark Williams <williams@redhat.com>
+---
+ kernel/irq/manage.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
+index 6c88d81399dd..8f710f1755d8 100644
+--- a/kernel/irq/manage.c
++++ b/kernel/irq/manage.c
+@@ -998,7 +998,15 @@ irq_forced_thread_fn(struct irq_desc *desc, struct irqaction *action)
+ irq_finalize_oneshot(desc, action);
+ if (!IS_ENABLED(CONFIG_PREEMPT_RT_BASE))
+ local_irq_enable();
+- local_bh_enable();
++ /*
++ * Interrupts which have real time requirements can be set up
++ * to avoid softirq processing in the thread handler. This is
++ * safe as these interrupts do not raise soft interrupts.
++ */
++ if (irq_settings_no_softirq_call(desc))
++ _local_bh_enable();
++ else
++ local_bh_enable();
+ return ret;
+ }
+
+--
+2.36.1
+
diff --git a/debian/patches-rt/0347-Linux-4.19.246-rt110-REBASE.patch b/debian/patches-rt/0347-Linux-4.19.246-rt110-REBASE.patch
new file mode 100644
index 000000000..746979875
--- /dev/null
+++ b/debian/patches-rt/0347-Linux-4.19.246-rt110-REBASE.patch
@@ -0,0 +1,21 @@
+From b7cf2f6b538ab97b989cbb2d10bf804994874ba5 Mon Sep 17 00:00:00 2001
+From: Daniel Wagner <wagi@monom.org>
+Date: Tue, 14 Jun 2022 07:47:54 +0200
+Subject: [PATCH 347/347] Linux 4.19.246-rt110 REBASE
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
+
+Signed-off-by: Daniel Wagner <wagi@monom.org>
+---
+ localversion-rt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/localversion-rt b/localversion-rt
+index 2e0a3c960575..b3e668a8fb94 100644
+--- a/localversion-rt
++++ b/localversion-rt
+@@ -1 +1 @@
+--rt107
++-rt110
+--
+2.36.1
+
diff --git a/debian/patches-rt/series b/debian/patches-rt/series
new file mode 100644
index 000000000..8d7c2429b
--- /dev/null
+++ b/debian/patches-rt/series
@@ -0,0 +1,346 @@
+0001-ARM-at91-add-TCB-registers-definitions.patch
+0002-clocksource-drivers-Add-a-new-driver-for-the-Atmel-A.patch
+0003-clocksource-drivers-timer-atmel-tcb-add-clockevent-d.patch
+0004-clocksource-drivers-atmel-pit-make-option-silent.patch
+0005-ARM-at91-Implement-clocksource-selection.patch
+0006-ARM-configs-at91-use-new-TCB-timer-driver.patch
+0007-ARM-configs-at91-unselect-PIT.patch
+0008-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch
+0009-kthread-convert-worker-lock-to-raw-spinlock.patch
+0010-crypto-caam-qi-simplify-CGR-allocation-freeing.patch
+0011-sched-fair-Robustify-CFS-bandwidth-timer-locking.patch
+0012-arm-Convert-arm-boot_lock-to-raw.patch
+0013-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch
+0014-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch
+0015-fscache-initialize-cookie-hash-table-raw-spinlocks.patch
+0016-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch
+0017-percpu-include-irqflags.h-for-raw_local_irq_save.patch
+0018-efi-Allow-efi-runtime.patch
+0019-x86-efi-drop-task_lock-from-efi_switch_mm.patch
+0020-arm64-KVM-compute_layout-before-altenates-are-applie.patch
+0021-of-allocate-free-phandle-cache-outside-of-the-devtre.patch
+0022-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch
+0023-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch
+0024-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch
+0025-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch
+0026-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch
+0027-kernel-sched-core-add-migrate_disable.patch
+0028-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch
+0029-arm-at91-do-not-disable-enable-clocks-in-a-row.patch
+0030-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch
+0031-timekeeping-Split-jiffies-seqlock.patch
+0032-signal-Revert-ptrace-preempt-magic.patch
+0033-net-sched-Use-msleep-instead-of-yield.patch
+0034-dm-rq-remove-BUG_ON-irqs_disabled-check.patch
+0035-usb-do-no-disable-interrupts-in-giveback.patch
+0036-rt-Provide-PREEMPT_RT_BASE-config-switch.patch
+0037-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
+0038-jump-label-disable-if-stop_machine-is-used.patch
+0039-kconfig-Disable-config-options-which-are-not-RT-comp.patch
+0040-lockdep-disable-self-test.patch
+0041-mm-Allow-only-slub-on-RT.patch
+0042-locking-Disable-spin-on-owner-for-RT.patch
+0043-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch
+0044-rcu-make-RCU_BOOST-default-on-RT.patch
+0045-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch
+0046-net-core-disable-NET_RX_BUSY_POLL.patch
+0047-arm-disable-NEON-in-kernel-mode.patch
+0048-powerpc-Use-generic-rwsem-on-RT.patch
+0049-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch
+0050-powerpc-Disable-highmem-on-RT.patch
+0051-mips-Disable-highmem-on-RT.patch
+0052-x86-Use-generic-rwsem_spinlocks-on-rt.patch
+0053-leds-trigger-disable-CPU-trigger-on-RT.patch
+0054-cpufreq-drop-K8-s-driver-from-beeing-selected.patch
+0055-md-disable-bcache.patch
+0056-efi-Disable-runtime-services-on-RT.patch
+0057-printk-Add-a-printk-kill-switch.patch
+0058-printk-Add-force_early_printk-boot-param-to-help-wit.patch
+0059-preempt-Provide-preempt_-_-no-rt-variants.patch
+0060-futex-workaround-migrate_disable-enable-in-different.patch
+0061-rt-Add-local-irq-locks.patch
+0062-locallock-provide-get-put-_locked_ptr-variants.patch
+0063-mm-scatterlist-Do-not-disable-irqs-on-RT.patch
+0064-signal-x86-Delay-calling-signals-in-atomic.patch
+0065-x86-signal-delay-calling-signals-on-32bit.patch
+0066-buffer_head-Replace-bh_uptodate_lock-for-rt.patch
+0067-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch
+0068-list_bl-Make-list-head-locking-RT-safe.patch
+0069-list_bl-fixup-bogus-lockdep-warning.patch
+0070-genirq-Disable-irqpoll-on-rt.patch
+0071-genirq-Force-interrupt-thread-on-RT.patch
+0072-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch
+0073-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch
+0074-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch
+0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch
+0076-mm-page_alloc-rt-friendly-per-cpu-pages.patch
+0077-mm-swap-Convert-to-percpu-locked.patch
+0078-mm-perform-lru_add_drain_all-remotely.patch
+0079-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch
+0080-ARM-Initialize-split-page-table-locks-for-vector-pag.patch
+0081-mm-Enable-SLUB-for-RT.patch
+0082-slub-Enable-irqs-for-__GFP_WAIT.patch
+0083-slub-Disable-SLUB_CPU_PARTIAL.patch
+0084-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch
+0085-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch
+0086-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch
+0087-x86-mm-pat-disable-preemption-__split_large_page-aft.patch
+0088-radix-tree-use-local-locks.patch
+0089-timers-Prepare-for-full-preemption.patch
+0090-x86-kvm-Require-const-tsc-for-RT.patch
+0091-pci-switchtec-Don-t-use-completion-s-wait-queue.patch
+0092-wait.h-include-atomic.h.patch
+0093-work-simple-Simple-work-queue-implemenation.patch
+0094-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch
+0095-completion-Use-simple-wait-queues.patch
+0096-fs-aio-simple-simple-work.patch
+0097-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch
+0098-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch
+0099-hrtimers-Prepare-full-preemption.patch
+0100-hrtimer-by-timers-by-default-into-the-softirq-contex.patch
+0101-sched-fair-Make-the-hrtimers-non-hard-again.patch
+0102-hrtimer-Move-schedule_work-call-to-helper-thread.patch
+0103-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch
+0104-posix-timers-Thread-posix-cpu-timers-on-rt.patch
+0105-sched-Move-task_struct-cleanup-to-RCU.patch
+0106-sched-Limit-the-number-of-task-migrations-per-batch.patch
+0107-sched-Move-mmdrop-to-RCU-on-RT.patch
+0108-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch
+0109-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch
+0110-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch
+0111-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch
+0112-sched-Disable-TTWU_QUEUE-on-RT.patch
+0113-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch
+0114-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch
+0115-hotplug-Lightweight-get-online-cpus.patch
+0116-trace-Add-migrate-disabled-counter-to-tracing-output.patch
+0117-lockdep-Make-it-RT-aware.patch
+0118-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch
+0119-softirq-Check-preemption-after-reenabling-interrupts.patch
+0120-softirq-Disable-softirq-stacks-for-RT.patch
+0121-softirq-Split-softirq-locks.patch
+0122-net-core-use-local_bh_disable-in-netif_rx_ni.patch
+0123-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch
+0124-softirq-split-timer-softirqs-out-of-ksoftirqd.patch
+0125-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch
+0126-softirq-Avoid-local_softirq_pending-messages-if-task.patch
+0127-rtmutex-trylock-is-okay-on-RT.patch
+0128-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch
+0129-rtmutex-Handle-the-various-new-futex-race-conditions.patch
+0130-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch
+0131-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch
+0132-pid.h-include-atomic.h.patch
+0133-arm-include-definition-for-cpumask_t.patch
+0134-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch
+0135-rtmutex-Add-rtmutex_lock_killable.patch
+0136-rtmutex-Make-lock_killable-work.patch
+0137-spinlock-Split-the-lock-types-header.patch
+0138-rtmutex-Avoid-include-hell.patch
+0139-rbtree-don-t-include-the-rcu-header.patch
+0140-rtmutex-Provide-rt_mutex_slowlock_locked.patch
+0141-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch
+0142-rtmutex-add-sleeping-lock-implementation.patch
+0143-rtmutex-add-mutex-implementation-based-on-rtmutex.patch
+0144-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch
+0145-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch
+0146-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch
+0147-rtmutex-wire-up-RT-s-locking.patch
+0148-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch
+0149-kconfig-Add-PREEMPT_RT_FULL.patch
+0150-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch
+0151-locking-rt-mutex-Flush-block-plug-on-__down_read.patch
+0152-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch
+0153-ptrace-fix-ptrace-vs-tasklist_lock-race.patch
+0154-rtmutex-annotate-sleeping-lock-context.patch
+0155-sched-migrate_disable-fallback-to-preempt_disable-in.patch
+0156-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch
+0157-rcu-Frob-softirq-test.patch
+0158-rcu-Merge-RCU-bh-into-RCU-preempt.patch
+0159-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch
+0160-rcu-Eliminate-softirq-processing-from-rcutree.patch
+0161-srcu-use-cpu_online-instead-custom-check.patch
+0162-srcu-replace-local_irqsave-with-a-locallock.patch
+0163-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch
+0164-tty-serial-omap-Make-the-locking-RT-aware.patch
+0165-tty-serial-pl011-Make-the-locking-work-on-RT.patch
+0166-tty-serial-pl011-explicitly-initialize-the-flags-var.patch
+0167-rt-Improve-the-serial-console-PASS_LIMIT.patch
+0168-tty-serial-8250-don-t-take-the-trylock-during-oops.patch
+0169-locking-percpu-rwsem-Remove-preempt_disable-variants.patch
+0170-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch
+0171-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch
+0172-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch
+0173-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch
+0174-thermal-Defer-thermal-wakups-to-threads.patch
+0175-x86-fpu-Disable-preemption-around-local_bh_disable.patch
+0176-fs-epoll-Do-not-disable-preemption-on-RT.patch
+0177-mm-vmalloc-Another-preempt-disable-region-which-suck.patch
+0178-block-mq-use-cpu_light.patch
+0179-block-mq-do-not-invoke-preempt_disable.patch
+0180-block-mq-don-t-complete-requests-via-IPI.patch
+0181-md-raid5-Make-raid5_percpu-handling-RT-aware.patch
+0182-rt-Introduce-cpu_chill.patch
+0183-hrtimer-Don-t-lose-state-in-cpu_chill.patch
+0184-hrtimer-cpu_chill-save-task-state-in-saved_state.patch
+0185-block-blk-mq-move-blk_queue_usage_counter_release-in.patch
+0186-block-Use-cpu_chill-for-retry-loops.patch
+0187-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
+0188-net-Use-cpu_chill-instead-of-cpu_relax.patch
+0189-fs-dcache-use-swait_queue-instead-of-waitqueue.patch
+0190-workqueue-Use-normal-rcu.patch
+0191-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch
+0192-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch
+0193-sched-Distangle-worker-accounting-from-rqlock.patch
+0194-debugobjects-Make-RT-aware.patch
+0195-seqlock-Prevent-rt-starvation.patch
+0196-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch
+0197-net-Use-skbufhead-with-raw-lock.patch
+0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch
+0199-net-provide-a-way-to-delegate-processing-a-softirq-t.patch
+0200-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch
+0201-net-Qdisc-use-a-seqlock-instead-seqcount.patch
+0202-net-add-back-the-missing-serialization-in-ip_send_un.patch
+0203-net-add-a-lock-around-icmp_sk.patch
+0204-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch
+0205-irqwork-push-most-work-into-softirq-context.patch
+0206-printk-Make-rt-aware.patch
+0207-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch
+0208-printk-Drop-the-logbuf_lock-more-often.patch
+0209-ARM-enable-irq-in-translation-section-permission-fau.patch
+0210-genirq-update-irq_set_irqchip_state-documentation.patch
+0211-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch
+0212-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch
+0213-kgdb-serial-Short-term-workaround.patch
+0214-sysfs-Add-sys-kernel-realtime-entry.patch
+0215-mm-rt-kmap_atomic-scheduling.patch
+0216-x86-highmem-Add-a-already-used-pte-check.patch
+0217-arm-highmem-Flush-tlb-on-unmap.patch
+0218-arm-Enable-highmem-for-rt.patch
+0219-scsi-fcoe-Make-RT-aware.patch
+0220-x86-crypto-Reduce-preempt-disabled-regions.patch
+0221-crypto-Reduce-preempt-disabled-regions-more-algos.patch
+0222-crypto-limit-more-FPU-enabled-sections.patch
+0223-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch
+0224-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch
+0225-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch
+0226-x86-stackprotector-Avoid-random-pool-on-rt.patch
+0228-cpu-hotplug-Implement-CPU-pinning.patch
+0229-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch
+0230-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch
+0231-net-Remove-preemption-disabling-in-netif_rx.patch
+0232-net-Another-local_irq_disable-kmalloc-headache.patch
+0233-net-core-protect-users-of-napi_alloc_cache-against-r.patch
+0234-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch
+0235-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch
+0236-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch
+0237-sched-Add-support-for-lazy-preemption.patch
+0238-ftrace-Fix-trace-header-alignment.patch
+0239-x86-Support-for-lazy-preemption.patch
+0240-x86-lazy-preempt-properly-check-against-preempt-mask.patch
+0241-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch
+0242-arm-Add-support-for-lazy-preemption.patch
+0243-powerpc-Add-support-for-lazy-preemption.patch
+0244-arch-arm64-Add-lazy-preempt-support.patch
+0245-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch
+0246-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch
+0247-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch
+0248-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch
+0249-tpm_tis-fix-stall-after-iowrite-s.patch
+0250-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch
+0251-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch
+0252-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch
+0253-drm-i915-disable-tracing-on-RT.patch
+0254-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch
+0255-cgroups-use-simple-wait-in-css_release.patch
+0256-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch
+0257-apparmor-use-a-locallock-instead-preempt_disable.patch
+0258-workqueue-Prevent-deadlock-stall-on-RT.patch
+0259-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch
+0260-Add-localversion-for-RT-release.patch
+0261-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch
+0262-powerpc-reshuffle-TIF-bits.patch
+0263-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch
+0264-drm-i915-Don-t-disable-interrupts-independently-of-t.patch
+0265-sched-completion-Fix-a-lockup-in-wait_for_completion.patch
+0266-kthread-add-a-global-worker-thread.patch
+0267-arm-imx6-cpuidle-Use-raw_spinlock_t.patch
+0268-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch
+0269-pci-switchtec-fix-stream_open.cocci-warnings.patch
+0270-sched-core-Drop-a-preempt_disable_rt-statement.patch
+0271-timers-Redo-the-notification-of-canceling-timers-on-.patch
+0272-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch
+0273-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch
+0274-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch
+0275-Revert-futex-workaround-migrate_disable-enable-in-di.patch
+0276-futex-Make-the-futex_hash_bucket-lock-raw.patch
+0277-futex-Delay-deallocation-of-pi_state.patch
+0278-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch
+0279-revert-aio.patch
+0280-fs-aio-simple-simple-work.patch
+0281-revert-thermal.patch
+0282-thermal-Defer-thermal-wakups-to-threads.patch
+0283-revert-block.patch
+0284-block-blk-mq-move-blk_queue_usage_counter_release-in.patch
+0285-workqueue-rework.patch
+0286-i2c-exynos5-Remove-IRQF_ONESHOT.patch
+0287-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch
+0288-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch
+0289-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch
+0290-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch
+0291-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch
+0292-x86-preempt-Check-preemption-level-before-looking-at.patch
+0293-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch
+0294-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch
+0295-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch
+0296-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch
+0297-posix-timers-Unlock-expiry-lock-in-the-early-return.patch
+0298-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch
+0299-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch
+0300-sched-Remove-dead-__migrate_disabled-check.patch
+0301-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch
+0302-lib-smp_processor_id-Don-t-use-cpumask_equal.patch
+0303-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch
+0304-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch
+0305-lib-ubsan-Don-t-seralize-UBSAN-report.patch
+0306-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch
+0307-sched-migrate_enable-Use-select_fallback_rq.patch
+0308-sched-Lazy-migrate_disable-processing.patch
+0309-sched-migrate_enable-Use-stop_one_cpu_nowait.patch
+0310-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch
+0311-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch
+0312-sched-core-migrate_enable-must-access-takedown_cpu_t.patch
+0313-lib-smp_processor_id-Adjust-check_preemption_disable.patch
+0314-sched-migrate_enable-Busy-loop-until-the-migration-r.patch
+0315-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch
+0316-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch
+0317-sched-migrate_enable-Remove-__schedule-call.patch
+0318-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch
+0319-locallock-Include-header-for-the-current-macro.patch
+0320-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch
+0321-tracing-make-preempt_lazy-and-migrate_disable-counte.patch
+0322-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch
+0323-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch
+0324-tasklet-Address-a-race-resulting-in-double-enqueue.patch
+0325-hrtimer-fix-logic-for-when-grabbing-softirq_expiry_l.patch
+0326-fs-dcache-Include-swait.h-header.patch
+0327-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch
+0328-tasklet-Fix-UP-case-for-tasklet-CHAINED-state.patch
+0329-signal-Prevent-double-free-of-user-struct.patch
+0330-Bluetooth-Acquire-sk_lock.slock-without-disabling-in.patch
+0331-net-phy-fixed_phy-Remove-unused-seqcount.patch
+0332-net-xfrm-fix-compress-vs-decompress-serialization.patch
+0333-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch
+0334-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch
+0335-Linux-4.19.185-rt76-REBASE.patch
+0336-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch
+0337-locking-rwsem_rt-Add-__down_read_interruptible.patch
+0338-Linux-4.19.206-rt87-REBASE.patch
+0339-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch
+0340-Linux-4.19.214-rt93-REBASE.patch
+0341-fscache-fix-initialisation-of-cookie-hash-table-raw-.patch
+0342-Linux-4.19.225-rt101-REBASE.patch
+0343-rt-PREEMPT_RT-safety-net-for-backported-patches.patch
+0344-net-Add-missing-xmit_lock_owner-hunks.patch
+0345-Linux-4.19.237-rt107-REBASE.patch
+0346-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch
+0347-Linux-4.19.246-rt110-REBASE.patch
diff --git a/debian/patches/bugfix/all/PCI-ACPI-Evaluate-PCI-Boot-Configuration-_DSM.patch b/debian/patches/bugfix/all/PCI-ACPI-Evaluate-PCI-Boot-Configuration-_DSM.patch
new file mode 100644
index 000000000..2172fa43d
--- /dev/null
+++ b/debian/patches/bugfix/all/PCI-ACPI-Evaluate-PCI-Boot-Configuration-_DSM.patch
@@ -0,0 +1,80 @@
+From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Sat, 15 Jun 2019 10:23:57 +1000
+Subject: [PATCH 1/4] PCI/ACPI: Evaluate PCI Boot Configuration _DSM
+Origin: https://git.kernel.org/linus/a78cf9657ba5426f54aa93a067c10d097944c082
+
+Evaluate _DSM Function #5, the "PCI Boot Configuration" function. If the
+result is 0, the OS should preserve any resource assignments made by the
+firmware.
+
+Link: https://lore.kernel.org/r/20190615002359.29577-2-benh@kernel.crashing.org
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+[bhelgaas: commit log]
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+---
+ drivers/acpi/pci_root.c | 12 ++++++++++++
+ include/linux/pci-acpi.h | 7 ++++---
+ include/linux/pci.h | 2 ++
+ 3 files changed, 18 insertions(+), 3 deletions(-)
+
+Index: linux/drivers/acpi/pci_root.c
+===================================================================
+--- linux.orig/drivers/acpi/pci_root.c
++++ linux/drivers/acpi/pci_root.c
+@@ -884,6 +884,7 @@ struct pci_bus *acpi_pci_root_create(str
+ int node = acpi_get_node(device->handle);
+ struct pci_bus *bus;
+ struct pci_host_bridge *host_bridge;
++ union acpi_object *obj;
+
+ info->root = root;
+ info->bridge = device;
+@@ -920,6 +921,17 @@ struct pci_bus *acpi_pci_root_create(str
+ if (!(root->osc_control_set & OSC_PCI_EXPRESS_LTR_CONTROL))
+ host_bridge->native_ltr = 0;
+
++ /*
++ * Evaluate the "PCI Boot Configuration" _DSM Function. If it
++ * exists and returns 0, we must preserve any PCI resource
++ * assignments made by firmware for this host bridge.
++ */
++ obj = acpi_evaluate_dsm(ACPI_HANDLE(bus->bridge), &pci_acpi_dsm_guid, 1,
++ IGNORE_PCI_BOOT_CONFIG_DSM, NULL);
++ if (obj && obj->type == ACPI_TYPE_INTEGER && obj->integer.value == 0)
++ host_bridge->preserve_config = 1;
++ ACPI_FREE(obj);
++
+ pci_scan_child_bus(bus);
+ pci_set_host_bridge_release(host_bridge, acpi_pci_root_release_info,
+ info);
+Index: linux/include/linux/pci-acpi.h
+===================================================================
+--- linux.orig/include/linux/pci-acpi.h
++++ linux/include/linux/pci-acpi.h
+@@ -107,9 +107,10 @@ static inline void acpiphp_check_host_br
+ #endif
+
+ extern const guid_t pci_acpi_dsm_guid;
+-#define DEVICE_LABEL_DSM 0x07
+-#define RESET_DELAY_DSM 0x08
+-#define FUNCTION_DELAY_DSM 0x09
++#define IGNORE_PCI_BOOT_CONFIG_DSM 0x05
++#define DEVICE_LABEL_DSM 0x07
++#define RESET_DELAY_DSM 0x08
++#define FUNCTION_DELAY_DSM 0x09
+
+ #else /* CONFIG_ACPI */
+ static inline void acpi_pci_add_bus(struct pci_bus *bus) { }
+Index: linux/include/linux/pci.h
+===================================================================
+--- linux.orig/include/linux/pci.h
++++ linux/include/linux/pci.h
+@@ -486,6 +486,8 @@ struct pci_host_bridge {
+ unsigned int native_shpc_hotplug:1; /* OS may use SHPC hotplug */
+ unsigned int native_pme:1; /* OS may use PCIe PME */
+ unsigned int native_ltr:1; /* OS may use PCIe LTR */
++ unsigned int preserve_config:1; /* Preserve FW resource setup */
++
+ /* Resource alignment requirements */
+ resource_size_t (*align_resource)(struct pci_dev *dev,
+ const struct resource *res,
diff --git a/debian/patches/bugfix/all/PCI-Don-t-auto-realloc-if-we-re-preserving-firmware-.patch b/debian/patches/bugfix/all/PCI-Don-t-auto-realloc-if-we-re-preserving-firmware-.patch
new file mode 100644
index 000000000..04fa61629
--- /dev/null
+++ b/debian/patches/bugfix/all/PCI-Don-t-auto-realloc-if-we-re-preserving-firmware-.patch
@@ -0,0 +1,35 @@
+From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Sat, 15 Jun 2019 10:23:58 +1000
+Subject: [PATCH 2/4] PCI: Don't auto-realloc if we're preserving firmware config
+Origin: https://git.kernel.org/linus/7ac0d094fbe95bf7cc96b3066a97e1090ddc734a
+
+Prevent auto-enabling of bridges reallocation when the FW tells us that the
+initial configuration must be preserved for a given host bridge.
+
+Link: https://lore.kernel.org/r/20190615002359.29577-3-benh@kernel.crashing.org
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+---
+ drivers/pci/setup-bus.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+Index: linux/drivers/pci/setup-bus.c
+===================================================================
+--- linux.orig/drivers/pci/setup-bus.c
++++ linux/drivers/pci/setup-bus.c
+@@ -1724,10 +1724,15 @@ static enum enable_type pci_realloc_dete
+ enum enable_type enable_local)
+ {
+ bool unassigned = false;
++ struct pci_host_bridge *host;
+
+ if (enable_local != undefined)
+ return enable_local;
+
++ host = pci_find_host_bridge(bus);
++ if (host->preserve_config)
++ return auto_disabled;
++
+ pci_walk_bus(bus, iov_resources_unassigned, &unassigned);
+ if (unassigned)
+ return auto_enabled;
diff --git a/debian/patches/bugfix/all/USB-drop-HDC_LOCAL_MEM-flag.patch b/debian/patches/bugfix/all/USB-drop-HDC_LOCAL_MEM-flag.patch
new file mode 100644
index 000000000..727419539
--- /dev/null
+++ b/debian/patches/bugfix/all/USB-drop-HDC_LOCAL_MEM-flag.patch
@@ -0,0 +1,191 @@
+From: Laurentiu Tudor <laurentiu.tudor@nxp.com>
+Date: Wed, 29 May 2019 13:28:43 +0300
+Subject: USB: drop HCD_LOCAL_MEM flag
+Origin: https://git.kernel.org/linus/2d7a3dc3e24f43504b1f25eae8195e600f4cce8b
+
+With the addition of the local memory allocator, the HCD_LOCAL_MEM
+flag can be dropped and the checks against it replaced with a check
+for the localmem_pool ptr being initialized.
+
+Signed-off-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
+Tested-by: Fredrik Noring <noring@nocrew.org>
+Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+---
+ drivers/usb/core/buffer.c | 8 +++-----
+ drivers/usb/core/hcd.c | 15 ++++++---------
+ drivers/usb/host/ehci-hcd.c | 2 +-
+ drivers/usb/host/fotg210-hcd.c | 2 +-
+ drivers/usb/host/ohci-hcd.c | 2 +-
+ drivers/usb/host/ohci-sm501.c | 5 +++--
+ drivers/usb/host/ohci-tmio.c | 2 +-
+ drivers/usb/host/uhci-hcd.c | 2 +-
+ include/linux/usb/hcd.h | 1 -
+ 9 files changed, 17 insertions(+), 22 deletions(-)
+
+--- a/drivers/usb/core/buffer.c
++++ b/drivers/usb/core/buffer.c
+@@ -68,7 +68,7 @@
+
+ if (!IS_ENABLED(CONFIG_HAS_DMA) ||
+ (!is_device_dma_capable(hcd->self.sysdev) &&
+- !(hcd->driver->flags & HCD_LOCAL_MEM)))
++ !hcd->localmem_pool))
+ return 0;
+
+ for (i = 0; i < HCD_BUFFER_POOLS; i++) {
+@@ -134,8 +134,7 @@
+
+ /* some USB hosts just use PIO */
+ if (!IS_ENABLED(CONFIG_HAS_DMA) ||
+- (!is_device_dma_capable(bus->sysdev) &&
+- !(hcd->driver->flags & HCD_LOCAL_MEM))) {
++ !is_device_dma_capable(bus->sysdev)) {
+ *dma = ~(dma_addr_t) 0;
+ return kmalloc(size, mem_flags);
+ }
+@@ -166,8 +165,7 @@
+ }
+
+ if (!IS_ENABLED(CONFIG_HAS_DMA) ||
+- (!is_device_dma_capable(bus->sysdev) &&
+- !(hcd->driver->flags & HCD_LOCAL_MEM))) {
++ !is_device_dma_capable(bus->sysdev)) {
+ kfree(addr);
+ return;
+ }
+--- a/drivers/usb/core/hcd.c
++++ b/drivers/usb/core/hcd.c
+@@ -1346,14 +1346,14 @@
+ * using regular system memory - like pci devices doing bus mastering.
+ *
+ * To support host controllers with limited dma capabilities we provide dma
+- * bounce buffers. This feature can be enabled using the HCD_LOCAL_MEM flag.
++ * bounce buffers. This feature can be enabled by initializing
++ * hcd->localmem_pool using usb_hcd_setup_local_mem().
+ * For this to work properly the host controller code must first use the
+ * function dma_declare_coherent_memory() to point out which memory area
+ * that should be used for dma allocations.
+ *
+- * The HCD_LOCAL_MEM flag then tells the usb code to allocate all data for
+- * dma using dma_alloc_coherent() which in turn allocates from the memory
+- * area pointed out with dma_declare_coherent_memory().
++ * The initialized hcd->localmem_pool then tells the usb code to allocate all
++ * data for dma using the genalloc API.
+ *
+ * So, to summarize...
+ *
+@@ -1363,9 +1363,6 @@
+ * (a) "normal" kernel memory is no good, and
+ * (b) there's not enough to share
+ *
+- * - The only *portable* hook for such stuff in the
+- * DMA framework is dma_declare_coherent_memory()
+- *
+ * - So we use that, even though the primary requirement
+ * is that the memory be "local" (hence addressable
+ * by that device), not "coherent".
+@@ -1532,7 +1529,7 @@
+ urb->setup_dma))
+ return -EAGAIN;
+ urb->transfer_flags |= URB_SETUP_MAP_SINGLE;
+- } else if (hcd->driver->flags & HCD_LOCAL_MEM) {
++ } else if (hcd->localmem_pool) {
+ ret = hcd_alloc_coherent(
+ urb->dev->bus, mem_flags,
+ &urb->setup_dma,
+@@ -1602,7 +1599,7 @@
+ else
+ urb->transfer_flags |= URB_DMA_MAP_SINGLE;
+ }
+- } else if (hcd->driver->flags & HCD_LOCAL_MEM) {
++ } else if (hcd->localmem_pool) {
+ ret = hcd_alloc_coherent(
+ urb->dev->bus, mem_flags,
+ &urb->transfer_dma,
+--- a/drivers/usb/host/ehci-hcd.c
++++ b/drivers/usb/host/ehci-hcd.c
+@@ -560,7 +560,7 @@
+ ehci->command = temp;
+
+ /* Accept arbitrarily long scatter-gather lists */
+- if (!(hcd->driver->flags & HCD_LOCAL_MEM))
++ if (!hcd->localmem_pool)
+ hcd->self.sg_tablesize = ~0;
+
+ /* Prepare for unlinking active QHs */
+--- a/drivers/usb/host/fotg210-hcd.c
++++ b/drivers/usb/host/fotg210-hcd.c
+@@ -4998,7 +4998,7 @@
+ fotg210->command = temp;
+
+ /* Accept arbitrarily long scatter-gather lists */
+- if (!(hcd->driver->flags & HCD_LOCAL_MEM))
++ if (!hcd->localmem_pool)
+ hcd->self.sg_tablesize = ~0;
+ return 0;
+ }
+--- a/drivers/usb/host/ohci-hcd.c
++++ b/drivers/usb/host/ohci-hcd.c
+@@ -457,7 +457,7 @@
+ struct usb_hcd *hcd = ohci_to_hcd(ohci);
+
+ /* Accept arbitrarily long scatter-gather lists */
+- if (!(hcd->driver->flags & HCD_LOCAL_MEM))
++ if (!hcd->localmem_pool)
+ hcd->self.sg_tablesize = ~0;
+
+ if (distrust_firmware)
+--- a/drivers/usb/host/ohci-sm501.c
++++ b/drivers/usb/host/ohci-sm501.c
+@@ -49,7 +49,7 @@
+ * generic hardware linkage
+ */
+ .irq = ohci_irq,
+- .flags = HCD_USB11 | HCD_MEMORY | HCD_LOCAL_MEM,
++ .flags = HCD_USB11 | HCD_MEMORY,
+
+ /*
+ * basic lifecycle operations
+@@ -153,7 +153,8 @@
+ * fine. This is however not always the case - buffers may be allocated
+ * using kmalloc() - so the usb core needs to be told that it must copy
+ * data into our local memory if the buffers happen to be placed in
+- * regular memory. The HCD_LOCAL_MEM flag does just that.
++ * regular memory. A non-null hcd->localmem_pool initialized by the
++ * the call to usb_hcd_setup_local_mem() below does just that.
+ */
+
+ retval = usb_hcd_setup_local_mem(hcd, mem->start,
+--- a/drivers/usb/host/ohci-tmio.c
++++ b/drivers/usb/host/ohci-tmio.c
+@@ -153,7 +153,7 @@
+
+ /* generic hardware linkage */
+ .irq = ohci_irq,
+- .flags = HCD_USB11 | HCD_MEMORY | HCD_LOCAL_MEM,
++ .flags = HCD_USB11 | HCD_MEMORY,
+
+ /* basic lifecycle operations */
+ .start = ohci_tmio_start,
+--- a/drivers/usb/host/uhci-hcd.c
++++ b/drivers/usb/host/uhci-hcd.c
+@@ -581,7 +581,7 @@
+
+ hcd->uses_new_polling = 1;
+ /* Accept arbitrarily long scatter-gather lists */
+- if (!(hcd->driver->flags & HCD_LOCAL_MEM))
++ if (!hcd->localmem_pool)
+ hcd->self.sg_tablesize = ~0;
+
+ spin_lock_init(&uhci->lock);
+--- a/include/linux/usb/hcd.h
++++ b/include/linux/usb/hcd.h
+@@ -256,7 +256,6 @@
+
+ int flags;
+ #define HCD_MEMORY 0x0001 /* HC regs use memory (else I/O) */
+-#define HCD_LOCAL_MEM 0x0002 /* HC needs local memory */
+ #define HCD_SHARED 0x0004 /* Two (or more) usb_hcds share HW */
+ #define HCD_USB11 0x0010 /* USB 1.1 */
+ #define HCD_USB2 0x0020 /* USB 2.0 */
diff --git a/debian/patches/bugfix/all/USB-ohci-sm501-fix-error-return-code-in-ohci_hcd_sm5.patch b/debian/patches/bugfix/all/USB-ohci-sm501-fix-error-return-code-in-ohci_hcd_sm5.patch
new file mode 100644
index 000000000..08a838c66
--- /dev/null
+++ b/debian/patches/bugfix/all/USB-ohci-sm501-fix-error-return-code-in-ohci_hcd_sm5.patch
@@ -0,0 +1,33 @@
+From: Wei Yongjun <weiyongjun1@huawei.com>
+Date: Wed, 6 May 2020 13:56:25 +0000
+Subject: USB: ohci-sm501: fix error return code in ohci_hcd_sm501_drv_probe()
+Origin: https://git.kernel.org/linus/b919e077cccfbb77beb98809568b2fb0b4d113ec
+
+Fix to return a negative error code from the error handling
+case instead of 0, as done elsewhere in this function.
+
+Fixes: 7d9e6f5aebe8 ("usb: host: ohci-sm501: init genalloc for local memory")
+Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
+Acked-by: Alan Stern <stern@rowland.harvard.edu>
+Link: https://lore.kernel.org/r/20200506135625.106910-1-weiyongjun1@huawei.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/usb/host/ohci-sm501.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+--- a/drivers/usb/host/ohci-sm501.c
++++ b/drivers/usb/host/ohci-sm501.c
+@@ -156,9 +156,10 @@
+ * regular memory. The HCD_LOCAL_MEM flag does just that.
+ */
+
+- if (usb_hcd_setup_local_mem(hcd, mem->start,
+- mem->start - mem->parent->start,
+- resource_size(mem)) < 0)
++ retval = usb_hcd_setup_local_mem(hcd, mem->start,
++ mem->start - mem->parent->start,
++ resource_size(mem));
++ if (retval < 0)
+ goto err5;
+ retval = usb_add_hcd(hcd, irq, IRQF_SHARED);
+ if (retval)
diff --git a/debian/patches/bugfix/all/USB-use-genalloc-for-USB-HCs-with-local-memory.patch b/debian/patches/bugfix/all/USB-use-genalloc-for-USB-HCs-with-local-memory.patch
new file mode 100644
index 000000000..88caafd5a
--- /dev/null
+++ b/debian/patches/bugfix/all/USB-use-genalloc-for-USB-HCs-with-local-memory.patch
@@ -0,0 +1,280 @@
+From: Laurentiu Tudor <laurentiu.tudor@nxp.com>
+Date: Wed, 29 May 2019 13:28:40 +0300
+Subject: USB: use genalloc for USB HCs with local memory
+Origin: https://git.kernel.org/linus/b0310c2f09bbe8aebefb97ed67949a3a7092aca6
+
+For HCs that have local memory, replace the current DMA API usage with
+a genalloc generic allocator to manage the mappings for these devices.
+To help users, introduce a new HCD API, usb_hcd_setup_local_mem() that
+will setup up the genalloc backing up the device local memory. It will
+be used in subsequent patches. This is in preparation for dropping
+the existing "coherent" dma mem declaration APIs. The current
+implementation was relying on a short circuit in the DMA API that in
+the end, was acting as an allocator for these type of devices.
+
+Signed-off-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
+Tested-by: Fredrik Noring <noring@nocrew.org>
+Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+---
+ drivers/usb/Kconfig | 1 +
+ drivers/usb/core/buffer.c | 9 +++++++++
+ drivers/usb/core/hcd.c | 36 ++++++++++++++++++++++++++++++++++++
+ drivers/usb/host/ohci-hcd.c | 23 ++++++++++++++++++-----
+ drivers/usb/host/ohci-mem.c | 35 +++++++++++++++++++++++++++++++----
+ drivers/usb/host/ohci.h | 2 ++
+ include/linux/usb/hcd.h | 5 +++++
+ 7 files changed, 102 insertions(+), 9 deletions(-)
+
+--- a/drivers/usb/Kconfig
++++ b/drivers/usb/Kconfig
+@@ -44,6 +44,7 @@
+ config USB
+ tristate "Support for Host-side USB"
+ depends on USB_ARCH_HAS_HCD
++ select GENERIC_ALLOCATOR
+ select USB_COMMON
+ select NLS # for UTF-8 strings
+ ---help---
+--- a/drivers/usb/core/buffer.c
++++ b/drivers/usb/core/buffer.c
+@@ -16,6 +16,7 @@
+ #include <linux/io.h>
+ #include <linux/dma-mapping.h>
+ #include <linux/dmapool.h>
++#include <linux/genalloc.h>
+ #include <linux/usb.h>
+ #include <linux/usb/hcd.h>
+
+@@ -128,6 +129,9 @@
+ if (size == 0)
+ return NULL;
+
++ if (hcd->localmem_pool)
++ return gen_pool_dma_alloc(hcd->localmem_pool, size, dma);
++
+ /* some USB hosts just use PIO */
+ if (!IS_ENABLED(CONFIG_HAS_DMA) ||
+ (!is_device_dma_capable(bus->sysdev) &&
+@@ -156,6 +160,11 @@
+ if (!addr)
+ return;
+
++ if (hcd->localmem_pool) {
++ gen_pool_free(hcd->localmem_pool, (unsigned long)addr, size);
++ return;
++ }
++
+ if (!IS_ENABLED(CONFIG_HAS_DMA) ||
+ (!is_device_dma_capable(bus->sysdev) &&
+ !(hcd->driver->flags & HCD_LOCAL_MEM))) {
+--- a/drivers/usb/core/hcd.c
++++ b/drivers/usb/core/hcd.c
+@@ -29,6 +29,8 @@
+ #include <linux/workqueue.h>
+ #include <linux/pm_runtime.h>
+ #include <linux/types.h>
++#include <linux/genalloc.h>
++#include <linux/io.h>
+
+ #include <linux/phy/phy.h>
+ #include <linux/usb.h>
+@@ -3025,6 +3027,40 @@
+ }
+ EXPORT_SYMBOL_GPL(usb_hcd_platform_shutdown);
+
++int usb_hcd_setup_local_mem(struct usb_hcd *hcd, phys_addr_t phys_addr,
++ dma_addr_t dma, size_t size)
++{
++ int err;
++ void *local_mem;
++
++ hcd->localmem_pool = devm_gen_pool_create(hcd->self.sysdev, PAGE_SHIFT,
++ dev_to_node(hcd->self.sysdev),
++ dev_name(hcd->self.sysdev));
++ if (IS_ERR(hcd->localmem_pool))
++ return PTR_ERR(hcd->localmem_pool);
++
++ local_mem = devm_memremap(hcd->self.sysdev, phys_addr,
++ size, MEMREMAP_WC);
++ if (!local_mem)
++ return -ENOMEM;
++
++ /*
++ * Here we pass a dma_addr_t but the arg type is a phys_addr_t.
++ * It's not backed by system memory and thus there's no kernel mapping
++ * for it.
++ */
++ err = gen_pool_add_virt(hcd->localmem_pool, (unsigned long)local_mem,
++ dma, size, dev_to_node(hcd->self.sysdev));
++ if (err < 0) {
++ dev_err(hcd->self.sysdev, "gen_pool_add_virt failed with %d\n",
++ err);
++ return err;
++ }
++
++ return 0;
++}
++EXPORT_SYMBOL_GPL(usb_hcd_setup_local_mem);
++
+ /*-------------------------------------------------------------------------*/
+
+ #if IS_ENABLED(CONFIG_USB_MON)
+--- a/drivers/usb/host/ohci-hcd.c
++++ b/drivers/usb/host/ohci-hcd.c
+@@ -40,6 +40,7 @@
+ #include <linux/dmapool.h>
+ #include <linux/workqueue.h>
+ #include <linux/debugfs.h>
++#include <linux/genalloc.h>
+
+ #include <asm/io.h>
+ #include <asm/irq.h>
+@@ -514,8 +515,15 @@
+ timer_setup(&ohci->io_watchdog, io_watchdog_func, 0);
+ ohci->prev_frame_no = IO_WATCHDOG_OFF;
+
+- ohci->hcca = dma_alloc_coherent (hcd->self.controller,
+- sizeof(*ohci->hcca), &ohci->hcca_dma, GFP_KERNEL);
++ if (hcd->localmem_pool)
++ ohci->hcca = gen_pool_dma_alloc(hcd->localmem_pool,
++ sizeof(*ohci->hcca),
++ &ohci->hcca_dma);
++ else
++ ohci->hcca = dma_alloc_coherent(hcd->self.controller,
++ sizeof(*ohci->hcca),
++ &ohci->hcca_dma,
++ GFP_KERNEL);
+ if (!ohci->hcca)
+ return -ENOMEM;
+
+@@ -999,9 +1007,14 @@
+ remove_debug_files (ohci);
+ ohci_mem_cleanup (ohci);
+ if (ohci->hcca) {
+- dma_free_coherent (hcd->self.controller,
+- sizeof *ohci->hcca,
+- ohci->hcca, ohci->hcca_dma);
++ if (hcd->localmem_pool)
++ gen_pool_free(hcd->localmem_pool,
++ (unsigned long)ohci->hcca,
++ sizeof(*ohci->hcca));
++ else
++ dma_free_coherent(hcd->self.controller,
++ sizeof(*ohci->hcca),
++ ohci->hcca, ohci->hcca_dma);
+ ohci->hcca = NULL;
+ ohci->hcca_dma = 0;
+ }
+--- a/drivers/usb/host/ohci-mem.c
++++ b/drivers/usb/host/ohci-mem.c
+@@ -36,6 +36,13 @@
+
+ static int ohci_mem_init (struct ohci_hcd *ohci)
+ {
++ /*
++ * HCs with local memory allocate from localmem_pool so there's
++ * no need to create the below dma pools.
++ */
++ if (ohci_to_hcd(ohci)->localmem_pool)
++ return 0;
++
+ ohci->td_cache = dma_pool_create ("ohci_td",
+ ohci_to_hcd(ohci)->self.controller,
+ sizeof (struct td),
+@@ -88,8 +95,12 @@
+ {
+ dma_addr_t dma;
+ struct td *td;
++ struct usb_hcd *hcd = ohci_to_hcd(hc);
+
+- td = dma_pool_zalloc (hc->td_cache, mem_flags, &dma);
++ if (hcd->localmem_pool)
++ td = gen_pool_dma_zalloc(hcd->localmem_pool, sizeof(*td), &dma);
++ else
++ td = dma_pool_zalloc(hc->td_cache, mem_flags, &dma);
+ if (td) {
+ /* in case hc fetches it, make it look dead */
+ td->hwNextTD = cpu_to_hc32 (hc, dma);
+@@ -103,6 +114,7 @@
+ td_free (struct ohci_hcd *hc, struct td *td)
+ {
+ struct td **prev = &hc->td_hash [TD_HASH_FUNC (td->td_dma)];
++ struct usb_hcd *hcd = ohci_to_hcd(hc);
+
+ while (*prev && *prev != td)
+ prev = &(*prev)->td_hash;
+@@ -110,7 +122,12 @@
+ *prev = td->td_hash;
+ else if ((td->hwINFO & cpu_to_hc32(hc, TD_DONE)) != 0)
+ ohci_dbg (hc, "no hash for td %p\n", td);
+- dma_pool_free (hc->td_cache, td, td->td_dma);
++
++ if (hcd->localmem_pool)
++ gen_pool_free(hcd->localmem_pool, (unsigned long)td,
++ sizeof(*td));
++ else
++ dma_pool_free(hc->td_cache, td, td->td_dma);
+ }
+
+ /*-------------------------------------------------------------------------*/
+@@ -121,8 +138,12 @@
+ {
+ dma_addr_t dma;
+ struct ed *ed;
++ struct usb_hcd *hcd = ohci_to_hcd(hc);
+
+- ed = dma_pool_zalloc (hc->ed_cache, mem_flags, &dma);
++ if (hcd->localmem_pool)
++ ed = gen_pool_dma_zalloc(hcd->localmem_pool, sizeof(*ed), &dma);
++ else
++ ed = dma_pool_zalloc(hc->ed_cache, mem_flags, &dma);
+ if (ed) {
+ INIT_LIST_HEAD (&ed->td_list);
+ ed->dma = dma;
+@@ -133,6 +154,12 @@
+ static void
+ ed_free (struct ohci_hcd *hc, struct ed *ed)
+ {
+- dma_pool_free (hc->ed_cache, ed, ed->dma);
++ struct usb_hcd *hcd = ohci_to_hcd(hc);
++
++ if (hcd->localmem_pool)
++ gen_pool_free(hcd->localmem_pool, (unsigned long)ed,
++ sizeof(*ed));
++ else
++ dma_pool_free(hc->ed_cache, ed, ed->dma);
+ }
+
+--- a/drivers/usb/host/ohci.h
++++ b/drivers/usb/host/ohci.h
+@@ -385,6 +385,8 @@
+
+ /*
+ * memory management for queue data structures
++ *
++ * @td_cache and @ed_cache are %NULL if &usb_hcd.localmem_pool is used.
+ */
+ struct dma_pool *td_cache;
+ struct dma_pool *ed_cache;
+--- a/include/linux/usb/hcd.h
++++ b/include/linux/usb/hcd.h
+@@ -211,6 +211,9 @@
+ #define HC_IS_RUNNING(state) ((state) & __ACTIVE)
+ #define HC_IS_SUSPENDED(state) ((state) & __SUSPEND)
+
++ /* memory pool for HCs having local memory, or %NULL */
++ struct gen_pool *localmem_pool;
++
+ /* more shared queuing code would be good; it should support
+ * smarter scheduling, handle transaction translators, etc;
+ * input size of periodic table to an interrupt scheduler.
+@@ -461,6 +464,8 @@
+ unsigned int irqnum, unsigned long irqflags);
+ extern void usb_remove_hcd(struct usb_hcd *hcd);
+ extern int usb_hcd_find_raw_port_number(struct usb_hcd *hcd, int port1);
++int usb_hcd_setup_local_mem(struct usb_hcd *hcd, phys_addr_t phys_addr,
++ dma_addr_t dma, size_t size);
+
+ struct platform_device;
+ extern void usb_hcd_platform_shutdown(struct platform_device *dev);
diff --git a/debian/patches/bugfix/all/cpupower-bump-soname-version.patch b/debian/patches/bugfix/all/cpupower-bump-soname-version.patch
new file mode 100644
index 000000000..5691bd454
--- /dev/null
+++ b/debian/patches/bugfix/all/cpupower-bump-soname-version.patch
@@ -0,0 +1,29 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Thu, 9 Jun 2016 23:35:08 +0100
+Subject: cpupower: Bump soname version
+Forwarded: http://mid.gmane.org/20160610005619.GQ7555@decadent.org.uk
+
+Several functions in the libcpupower API are renamed or removed in
+Linux 4.7. This is an backward-incompatible ABI change, so the
+library soname should change from libcpupower.so.0 to
+libcpupower.so.1.
+
+Fixes: ac5a181d065d ("cpupower: Add cpuidle parts into library")
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+ tools/power/cpupower/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: linux/tools/power/cpupower/Makefile
+===================================================================
+--- linux.orig/tools/power/cpupower/Makefile
++++ linux/tools/power/cpupower/Makefile
+@@ -66,7 +66,7 @@ DESTDIR ?=
+
+ VERSION= $(shell ./utils/version-gen.sh)
+ LIB_MAJ= 0.0.1
+-LIB_MIN= 0
++LIB_MIN= 1
+
+ PACKAGE = cpupower
+ PACKAGE_BUGREPORT = linux-pm@vger.kernel.org
diff --git a/debian/patches/bugfix/all/cpupower-fix-checks-for-cpu-existence.patch b/debian/patches/bugfix/all/cpupower-fix-checks-for-cpu-existence.patch
new file mode 100644
index 000000000..0ad8fc6cd
--- /dev/null
+++ b/debian/patches/bugfix/all/cpupower-fix-checks-for-cpu-existence.patch
@@ -0,0 +1,51 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Thu, 03 Nov 2016 15:25:26 -0600
+Subject: cpupower: Fix checks for CPU existence
+Forwarded: https://marc.info/?l=linux-pm&m=149248268214265
+
+Calls to cpufreq_cpu_exists(cpu) were converted to
+cpupower_is_cpu_online(cpu) when libcpupower was introduced and the
+former function was deleted. However, cpupower_is_cpu_online() does
+not distinguish physically absent and offline CPUs, and does not set
+errno.
+
+cpufreq-set has already been fixed (commit c25badc9ceb6).
+
+In cpufreq-bench, which prints an error message for offline CPUs,
+properly distinguish and report the zero and negative cases.
+
+Fixes: ac5a181d065d ("cpupower: Add cpuidle parts into library")
+Fixes: 53d1cd6b125f ("cpupowerutils: bench - Fix cpu online check")
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+[carnil: Update/Refresh patch for 4.14.17: The issue with the
+incorrect check has been fixed with upstream commit 53d1cd6b125f.
+Keep in the patch the distinction and report for the zero and
+negative cases.]
+---
+Index: linux/tools/power/cpupower/bench/system.c
+===================================================================
+--- linux.orig/tools/power/cpupower/bench/system.c
++++ linux/tools/power/cpupower/bench/system.c
+@@ -58,12 +58,19 @@ long long int get_time()
+
+ int set_cpufreq_governor(char *governor, unsigned int cpu)
+ {
++ int rc;
+
+ dprintf("set %s as cpufreq governor\n", governor);
+
+- if (cpupower_is_cpu_online(cpu) != 1) {
+- perror("cpufreq_cpu_exists");
+- fprintf(stderr, "error: cpu %u does not exist\n", cpu);
++ rc = cpupower_is_cpu_online(cpu);
++ if (rc != 1) {
++ if (rc < 0)
++ fprintf(stderr, "cpupower_is_cpu_online: %s\n",
++ strerror(-rc));
++ else
++ fprintf(stderr,
++ "error: cpu %u is offline or does not exist\n",
++ cpu);
+ return -1;
+ }
+
diff --git a/debian/patches/bugfix/all/disable-some-marvell-phys.patch b/debian/patches/bugfix/all/disable-some-marvell-phys.patch
new file mode 100644
index 000000000..297b38c56
--- /dev/null
+++ b/debian/patches/bugfix/all/disable-some-marvell-phys.patch
@@ -0,0 +1,93 @@
+From: Ian Campbell <ijc@hellion.org.uk>
+Subject: phy/marvell: disable 4-port phys
+Date: Wed, 20 Nov 2013 08:30:14 +0000
+Bug-Debian: https://bugs.debian.org/723177
+Forwarded: http://thread.gmane.org/gmane.linux.debian.devel.bugs.general/1107774/
+
+The Marvell PHY was originally disabled because it can cause networking
+failures on some systems. According to Lennert Buytenhek this is because some
+of the variants added did not share the same register layout. Since the known
+cases are all 4-ports disable those variants (indicated by a 4 in the
+penultimate position of the model name) until they can be audited for
+correctness.
+
+[bwh: Also #if-out the init functions for these PHYs to avoid
+ compiler warnings]
+
+Index: linux/drivers/net/phy/marvell.c
+===================================================================
+--- linux.orig/drivers/net/phy/marvell.c
++++ linux/drivers/net/phy/marvell.c
+@@ -950,6 +950,7 @@ static int m88e1118_config_init(struct p
+ return genphy_soft_reset(phydev);
+ }
+
++#if 0
+ static int m88e1149_config_init(struct phy_device *phydev)
+ {
+ int err;
+@@ -975,7 +976,9 @@ static int m88e1149_config_init(struct p
+
+ return genphy_soft_reset(phydev);
+ }
++#endif
+
++#if 0
+ static int m88e1145_config_init_rgmii(struct phy_device *phydev)
+ {
+ int err;
+@@ -1050,6 +1053,7 @@ static int m88e1145_config_init(struct p
+
+ return 0;
+ }
++#endif
+
+ /* The VOD can be out of specification on link up. Poke an
+ * undocumented register, in an undocumented page, with a magic value
+@@ -2165,6 +2169,7 @@ static struct phy_driver marvell_drivers
+ .get_strings = marvell_get_strings,
+ .get_stats = marvell_get_stats,
+ },
++#if 0
+ {
+ .phy_id = MARVELL_PHY_ID_88E1145,
+ .phy_id_mask = MARVELL_PHY_ID_MASK,
+@@ -2185,6 +2190,8 @@ static struct phy_driver marvell_drivers
+ .get_strings = marvell_get_strings,
+ .get_stats = marvell_get_stats,
+ },
++#endif
++#if 0
+ {
+ .phy_id = MARVELL_PHY_ID_88E1149R,
+ .phy_id_mask = MARVELL_PHY_ID_MASK,
+@@ -2204,6 +2211,8 @@ static struct phy_driver marvell_drivers
+ .get_strings = marvell_get_strings,
+ .get_stats = marvell_get_stats,
+ },
++#endif
++#if 0
+ {
+ .phy_id = MARVELL_PHY_ID_88E1240,
+ .phy_id_mask = MARVELL_PHY_ID_MASK,
+@@ -2223,6 +2232,7 @@ static struct phy_driver marvell_drivers
+ .get_strings = marvell_get_strings,
+ .get_stats = marvell_get_stats,
+ },
++#endif
+ {
+ .phy_id = MARVELL_PHY_ID_88E1116R,
+ .phy_id_mask = MARVELL_PHY_ID_MASK,
+@@ -2359,9 +2369,9 @@ static struct mdio_device_id __maybe_unu
+ { MARVELL_PHY_ID_88E1111, MARVELL_PHY_ID_MASK },
+ { MARVELL_PHY_ID_88E1118, MARVELL_PHY_ID_MASK },
+ { MARVELL_PHY_ID_88E1121R, MARVELL_PHY_ID_MASK },
+- { MARVELL_PHY_ID_88E1145, MARVELL_PHY_ID_MASK },
+- { MARVELL_PHY_ID_88E1149R, MARVELL_PHY_ID_MASK },
+- { MARVELL_PHY_ID_88E1240, MARVELL_PHY_ID_MASK },
++/* { MARVELL_PHY_ID_88E1145, MARVELL_PHY_ID_MASK }, */
++/* { MARVELL_PHY_ID_88E1149R, MARVELL_PHY_ID_MASK }, */
++/* { MARVELL_PHY_ID_88E1240, MARVELL_PHY_ID_MASK }, */
+ { MARVELL_PHY_ID_88E1318S, MARVELL_PHY_ID_MASK },
+ { MARVELL_PHY_ID_88E1116R, MARVELL_PHY_ID_MASK },
+ { MARVELL_PHY_ID_88E1510, MARVELL_PHY_ID_MASK },
diff --git a/debian/patches/bugfix/all/documentation-media-uapi-explicitly-say-there-are-no-invariant-sections.patch b/debian/patches/bugfix/all/documentation-media-uapi-explicitly-say-there-are-no-invariant-sections.patch
new file mode 100644
index 000000000..97e5d0a64
--- /dev/null
+++ b/debian/patches/bugfix/all/documentation-media-uapi-explicitly-say-there-are-no-invariant-sections.patch
@@ -0,0 +1,52 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Fri, 23 Nov 2018 13:38:34 -0500
+Subject: media: Documentation/media: uapi: Explicitly say there are no
+ Invariant Sections
+Origin: https://git.kernel.org/linus/861c56c13d817b76e802d664e6ce7edb09cb9417
+Bug-Debian: https://bugs.debian.org/698668
+
+The GNU Free Documentation License allows for a work to specify
+Invariant Sections that are not allowed to be modified. (Debian
+considers that this makes such works non-free.)
+
+The Linux Media Infrastructure userspace API documentation does not
+specify any such sections, but it also doesn't say there are none (as
+is recommended by the license text). Make it explicit that there are
+none.
+
+Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com>
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
+Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
+Signed-off-by: Johannes Stezenbach <js@linuxtv.org>
+Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+Signed-off-by: Marcus Metzler <mocm@metzlerbros.de>
+Signed-off-by: Michael Ira Krufky <mkrufky@gmail.com>
+Signed-off-by: Ralph Metzler <rjkm@metzlerbros.de>
+Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
+Signed-off-by: Sean Young <sean@mess.org>
+Signed-off-by: Sylwester Nawrocki <snawrocki@kernel.org>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Cc: Kate Stewart <kstewart@linuxfoundation.org>
+Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
+---
+ Documentation/media/media_uapi.rst | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+Index: linux/Documentation/media/media_uapi.rst
+===================================================================
+--- linux.orig/Documentation/media/media_uapi.rst
++++ linux/Documentation/media/media_uapi.rst
+@@ -10,9 +10,9 @@ Linux Media Infrastructure userspace API
+
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.1 or
+-any later version published by the Free Software Foundation. A copy of
+-the license is included in the chapter entitled "GNU Free Documentation
+-License".
++any later version published by the Free Software Foundation, with no
++Invariant Sections. A copy of the license is included in the chapter
++entitled "GNU Free Documentation License".
+
+ .. only:: html
+
diff --git a/debian/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch b/debian/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch
new file mode 100644
index 000000000..633c5c34c
--- /dev/null
+++ b/debian/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch
@@ -0,0 +1,2895 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Subject: firmware: Remove redundant log messages from drivers
+Date: Sun, 09 Dec 2012 16:40:31 +0000
+Forwarded: no
+
+Now that firmware_class logs every success and failure consistently,
+many other log messages can be removed from drivers.
+
+This will probably need to be split up into multiple patches prior to
+upstream submission.
+
+Index: linux/arch/arm/mach-netx/xc.c
+===================================================================
+--- linux.orig/arch/arm/mach-netx/xc.c
++++ linux/arch/arm/mach-netx/xc.c
+@@ -127,10 +127,8 @@ int xc_request_firmware(struct xc *x)
+
+ ret = request_firmware(&fw, name, x->dev);
+
+- if (ret < 0) {
+- dev_err(x->dev, "request_firmware failed\n");
++ if (ret)
+ return ret;
+- }
+
+ head = (struct fw_header *)fw->data;
+ if (head->magic != 0x4e657458) {
+Index: linux/arch/x86/kernel/cpu/microcode/amd.c
+===================================================================
+--- linux.orig/arch/x86/kernel/cpu/microcode/amd.c
++++ linux/arch/x86/kernel/cpu/microcode/amd.c
+@@ -755,10 +755,8 @@ static enum ucode_state request_microcod
+ if (c->x86 >= 0x15)
+ snprintf(fw_name, sizeof(fw_name), "amd-ucode/microcode_amd_fam%.2xh.bin", c->x86);
+
+- if (request_firmware_direct(&fw, (const char *)fw_name, device)) {
+- pr_debug("failed to load file %s\n", fw_name);
++ if (request_firmware_direct(&fw, (const char *)fw_name, device))
+ goto out;
+- }
+
+ ret = UCODE_ERROR;
+ if (*(u32 *)fw->data != UCODE_MAGIC) {
+Index: linux/drivers/atm/ambassador.c
+===================================================================
+--- linux.orig/drivers/atm/ambassador.c
++++ linux/drivers/atm/ambassador.c
+@@ -1929,10 +1929,8 @@ static int ucode_init(loader_block *lb,
+ int res;
+
+ res = request_ihex_firmware(&fw, "atmsar11.fw", &dev->pci_dev->dev);
+- if (res) {
+- PRINTK (KERN_ERR, "Cannot load microcode data");
++ if (res)
+ return res;
+- }
+
+ /* First record contains just the start address */
+ rec = (const struct ihex_binrec *)fw->data;
+Index: linux/drivers/atm/fore200e.c
+===================================================================
+--- linux.orig/drivers/atm/fore200e.c
++++ linux/drivers/atm/fore200e.c
+@@ -2505,10 +2505,9 @@ static int fore200e_load_and_start_fw(st
+ return err;
+
+ sprintf(buf, "%s%s", fore200e->bus->proc_name, FW_EXT);
+- if ((err = request_firmware(&firmware, buf, device)) < 0) {
+- printk(FORE200E "problem loading firmware image %s\n", fore200e->bus->model_name);
++ err = request_firmware(&firmware, buf, device);
++ if (err)
+ return err;
+- }
+
+ fw_data = (const __le32 *)firmware->data;
+ fw_size = firmware->size / sizeof(u32);
+Index: linux/drivers/bluetooth/ath3k.c
+===================================================================
+--- linux.orig/drivers/bluetooth/ath3k.c
++++ linux/drivers/bluetooth/ath3k.c
+@@ -430,10 +430,8 @@ static int ath3k_load_patch(struct usb_d
+ le32_to_cpu(fw_version.rom_version));
+
+ ret = request_firmware(&firmware, filename, &udev->dev);
+- if (ret < 0) {
+- BT_ERR("Patch file not found %s", filename);
++ if (ret)
+ return ret;
+- }
+
+ pt_rom_version = get_unaligned_le32(firmware->data +
+ firmware->size - 8);
+@@ -493,10 +491,8 @@ static int ath3k_load_syscfg(struct usb_
+ le32_to_cpu(fw_version.rom_version), clk_value, ".dfu");
+
+ ret = request_firmware(&firmware, filename, &udev->dev);
+- if (ret < 0) {
+- BT_ERR("Configuration file not found %s", filename);
++ if (ret)
+ return ret;
+- }
+
+ ret = ath3k_load_fwfile(udev, firmware);
+ release_firmware(firmware);
+Index: linux/drivers/bluetooth/bcm203x.c
+===================================================================
+--- linux.orig/drivers/bluetooth/bcm203x.c
++++ linux/drivers/bluetooth/bcm203x.c
+@@ -189,7 +189,6 @@ static int bcm203x_probe(struct usb_inte
+ return -ENOMEM;
+
+ if (request_firmware(&firmware, "BCM2033-MD.hex", &udev->dev) < 0) {
+- BT_ERR("Mini driver request failed");
+ usb_free_urb(data->urb);
+ return -EIO;
+ }
+@@ -214,7 +213,6 @@ static int bcm203x_probe(struct usb_inte
+ release_firmware(firmware);
+
+ if (request_firmware(&firmware, "BCM2033-FW.bin", &udev->dev) < 0) {
+- BT_ERR("Firmware request failed");
+ usb_free_urb(data->urb);
+ kfree(data->buffer);
+ return -EIO;
+Index: linux/drivers/bluetooth/bfusb.c
+===================================================================
+--- linux.orig/drivers/bluetooth/bfusb.c
++++ linux/drivers/bluetooth/bfusb.c
+@@ -652,10 +652,8 @@ static int bfusb_probe(struct usb_interf
+ skb_queue_head_init(&data->pending_q);
+ skb_queue_head_init(&data->completed_q);
+
+- if (request_firmware(&firmware, "bfubase.frm", &udev->dev) < 0) {
+- BT_ERR("Firmware request failed");
++ if (request_firmware(&firmware, "bfubase.frm", &udev->dev))
+ goto done;
+- }
+
+ BT_DBG("firmware data %p size %zu", firmware->data, firmware->size);
+
+Index: linux/drivers/bluetooth/bt3c_cs.c
+===================================================================
+--- linux.orig/drivers/bluetooth/bt3c_cs.c
++++ linux/drivers/bluetooth/bt3c_cs.c
+@@ -566,10 +566,8 @@ static int bt3c_open(struct bt3c_info *i
+
+ /* Load firmware */
+ err = request_firmware(&firmware, "BT3CPCC.bin", &info->p_dev->dev);
+- if (err < 0) {
+- BT_ERR("Firmware request failed");
++ if (err)
+ goto error;
+- }
+
+ err = bt3c_load_firmware(info, firmware->data, firmware->size);
+
+Index: linux/drivers/bluetooth/btmrvl_sdio.c
+===================================================================
+--- linux.orig/drivers/bluetooth/btmrvl_sdio.c
++++ linux/drivers/bluetooth/btmrvl_sdio.c
+@@ -455,8 +455,6 @@ static int btmrvl_sdio_download_helper(s
+ ret = request_firmware(&fw_helper, card->helper,
+ &card->func->dev);
+ if ((ret < 0) || !fw_helper) {
+- BT_ERR("request_firmware(helper) failed, error code = %d",
+- ret);
+ ret = -ENOENT;
+ goto done;
+ }
+@@ -555,8 +553,6 @@ static int btmrvl_sdio_download_fw_w_hel
+ ret = request_firmware(&fw_firmware, card->firmware,
+ &card->func->dev);
+ if ((ret < 0) || !fw_firmware) {
+- BT_ERR("request_firmware(firmware) failed, error code = %d",
+- ret);
+ ret = -ENOENT;
+ goto done;
+ }
+Index: linux/drivers/char/dsp56k.c
+===================================================================
+--- linux.orig/drivers/char/dsp56k.c
++++ linux/drivers/char/dsp56k.c
+@@ -140,11 +140,8 @@ static int dsp56k_upload(u_char __user *
+ }
+ err = request_firmware(&fw, fw_name, &pdev->dev);
+ platform_device_unregister(pdev);
+- if (err) {
+- printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
+- fw_name, err);
++ if (err)
+ return err;
+- }
+ if (fw->size % 3) {
+ printk(KERN_ERR "Bogus length %d in image \"%s\"\n",
+ fw->size, fw_name);
+Index: linux/drivers/dma/imx-sdma.c
+===================================================================
+--- linux.orig/drivers/dma/imx-sdma.c
++++ linux/drivers/dma/imx-sdma.c
+@@ -1674,11 +1674,8 @@ static void sdma_load_firmware(const str
+ const struct sdma_script_start_addrs *addr;
+ unsigned short *ram_code;
+
+- if (!fw) {
+- dev_info(sdma->dev, "external firmware not found, using ROM firmware\n");
+- /* In this case we just use the ROM firmware. */
++ if (!fw)
+ return;
+- }
+
+ if (fw->size < sizeof(*header))
+ goto err_firmware;
+Index: linux/drivers/gpu/drm/mga/mga_warp.c
+===================================================================
+--- linux.orig/drivers/gpu/drm/mga/mga_warp.c
++++ linux/drivers/gpu/drm/mga/mga_warp.c
+@@ -79,11 +79,8 @@ int mga_warp_install_microcode(drm_mga_p
+ }
+ rc = request_ihex_firmware(&fw, firmware_name, &pdev->dev);
+ platform_device_unregister(pdev);
+- if (rc) {
+- DRM_ERROR("mga: Failed to load microcode \"%s\"\n",
+- firmware_name);
++ if (rc)
+ return rc;
+- }
+
+ size = 0;
+ where = 0;
+Index: linux/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
+===================================================================
+--- linux.orig/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
++++ linux/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
+@@ -1920,10 +1920,8 @@ gf100_gr_ctor_fw_legacy(struct gf100_gr
+ if (ret) {
+ snprintf(f, sizeof(f), "nouveau/%s", fwname);
+ ret = request_firmware(&fw, f, device->dev);
+- if (ret) {
+- nvkm_error(subdev, "failed to load %s\n", fwname);
++ if (ret)
+ return ret;
+- }
+ }
+
+ fuc->size = fw->size;
+Index: linux/drivers/gpu/drm/r128/r128_cce.c
+===================================================================
+--- linux.orig/drivers/gpu/drm/r128/r128_cce.c
++++ linux/drivers/gpu/drm/r128/r128_cce.c
+@@ -154,11 +154,8 @@ static int r128_cce_load_microcode(drm_r
+ }
+ rc = request_firmware(&fw, FIRMWARE_NAME, &pdev->dev);
+ platform_device_unregister(pdev);
+- if (rc) {
+- pr_err("r128_cce: Failed to load firmware \"%s\"\n",
+- FIRMWARE_NAME);
++ if (rc)
+ return rc;
+- }
+
+ if (fw->size != 256 * 8) {
+ pr_err("r128_cce: Bogus length %zu in firmware \"%s\"\n",
+Index: linux/drivers/gpu/drm/radeon/ni.c
+===================================================================
+--- linux.orig/drivers/gpu/drm/radeon/ni.c
++++ linux/drivers/gpu/drm/radeon/ni.c
+@@ -830,9 +830,6 @@ int ni_init_microcode(struct radeon_devi
+
+ out:
+ if (err) {
+- if (err != -EINVAL)
+- pr_err("ni_cp: Failed to load firmware \"%s\"\n",
+- fw_name);
+ release_firmware(rdev->pfp_fw);
+ rdev->pfp_fw = NULL;
+ release_firmware(rdev->me_fw);
+Index: linux/drivers/gpu/drm/radeon/r100.c
+===================================================================
+--- linux.orig/drivers/gpu/drm/radeon/r100.c
++++ linux/drivers/gpu/drm/radeon/r100.c
+@@ -1041,9 +1041,7 @@ static int r100_cp_init_microcode(struct
+ }
+
+ err = request_firmware(&rdev->me_fw, fw_name, rdev->dev);
+- if (err) {
+- pr_err("radeon_cp: Failed to load firmware \"%s\"\n", fw_name);
+- } else if (rdev->me_fw->size % 8) {
++ if (err == 0 && rdev->me_fw->size % 8) {
+ pr_err("radeon_cp: Bogus length %zu in firmware \"%s\"\n",
+ rdev->me_fw->size, fw_name);
+ err = -EINVAL;
+Index: linux/drivers/gpu/drm/radeon/r600.c
+===================================================================
+--- linux.orig/drivers/gpu/drm/radeon/r600.c
++++ linux/drivers/gpu/drm/radeon/r600.c
+@@ -2593,9 +2593,6 @@ int r600_init_microcode(struct radeon_de
+
+ out:
+ if (err) {
+- if (err != -EINVAL)
+- pr_err("r600_cp: Failed to load firmware \"%s\"\n",
+- fw_name);
+ release_firmware(rdev->pfp_fw);
+ rdev->pfp_fw = NULL;
+ release_firmware(rdev->me_fw);
+Index: linux/drivers/infiniband/hw/qib/qib_sd7220.c
+===================================================================
+--- linux.orig/drivers/infiniband/hw/qib/qib_sd7220.c
++++ linux/drivers/infiniband/hw/qib/qib_sd7220.c
+@@ -406,10 +406,8 @@ int qib_sd7220_init(struct qib_devdata *
+ }
+
+ ret = request_firmware(&fw, SD7220_FW_NAME, &dd->pcidev->dev);
+- if (ret) {
+- qib_dev_err(dd, "Failed to load IB SERDES image\n");
++ if (ret)
+ goto done;
+- }
+
+ /* Substitute our deduced value for was_reset */
+ ret = qib_ibsd_ucode_loaded(dd->pport, fw);
+Index: linux/drivers/input/touchscreen/atmel_mxt_ts.c
+===================================================================
+--- linux.orig/drivers/input/touchscreen/atmel_mxt_ts.c
++++ linux/drivers/input/touchscreen/atmel_mxt_ts.c
+@@ -2783,10 +2783,8 @@ static int mxt_load_fw(struct device *de
+ int ret;
+
+ ret = request_firmware(&fw, fn, dev);
+- if (ret) {
+- dev_err(dev, "Unable to open firmware %s\n", fn);
++ if (ret)
+ return ret;
+- }
+
+ /* Check for incorrect enc file */
+ ret = mxt_check_firmware_format(dev, fw);
+Index: linux/drivers/isdn/hardware/mISDN/speedfax.c
+===================================================================
+--- linux.orig/drivers/isdn/hardware/mISDN/speedfax.c
++++ linux/drivers/isdn/hardware/mISDN/speedfax.c
+@@ -392,11 +392,8 @@ setup_instance(struct sfax_hw *card)
+ card->isar.owner = THIS_MODULE;
+
+ err = request_firmware(&firmware, "isdn/ISAR.BIN", &card->pdev->dev);
+- if (err < 0) {
+- pr_info("%s: firmware request failed %d\n",
+- card->name, err);
++ if (err)
+ goto error_fw;
+- }
+ if (debug & DEBUG_HW)
+ pr_notice("%s: got firmware %zu bytes\n",
+ card->name, firmware->size);
+Index: linux/drivers/media/tuners/tuner-xc2028.c
+===================================================================
+--- linux.orig/drivers/media/tuners/tuner-xc2028.c
++++ linux/drivers/media/tuners/tuner-xc2028.c
+@@ -1367,7 +1367,6 @@ static void load_firmware_cb(const struc
+
+ tuner_dbg("request_firmware_nowait(): %s\n", fw ? "OK" : "error");
+ if (!fw) {
+- tuner_err("Could not load firmware %s.\n", priv->fname);
+ priv->state = XC2028_NODEV;
+ return;
+ }
+Index: linux/drivers/media/usb/dvb-usb/dib0700_devices.c
+===================================================================
+--- linux.orig/drivers/media/usb/dvb-usb/dib0700_devices.c
++++ linux/drivers/media/usb/dvb-usb/dib0700_devices.c
+@@ -2416,12 +2416,9 @@ static int stk9090m_frontend_attach(stru
+
+ dib9000_i2c_enumeration(&adap->dev->i2c_adap, 1, 0x10, 0x80);
+
+- if (request_firmware(&state->frontend_firmware, "dib9090.fw", &adap->dev->udev->dev)) {
+- deb_info("%s: Upload failed. (file not found?)\n", __func__);
++ if (request_firmware(&state->frontend_firmware, "dib9090.fw", &adap->dev->udev->dev))
+ return -ENODEV;
+- } else {
+- deb_info("%s: firmware read %zu bytes.\n", __func__, state->frontend_firmware->size);
+- }
++ deb_info("%s: firmware read %zu bytes.\n", __func__, state->frontend_firmware->size);
+ stk9090m_config.microcode_B_fe_size = state->frontend_firmware->size;
+ stk9090m_config.microcode_B_fe_buffer = state->frontend_firmware->data;
+
+@@ -2486,12 +2483,9 @@ static int nim9090md_frontend_attach(str
+ msleep(20);
+ dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
+
+- if (request_firmware(&state->frontend_firmware, "dib9090.fw", &adap->dev->udev->dev)) {
+- deb_info("%s: Upload failed. (file not found?)\n", __func__);
++ if (request_firmware(&state->frontend_firmware, "dib9090.fw", &adap->dev->udev->dev))
+ return -EIO;
+- } else {
+- deb_info("%s: firmware read %zu bytes.\n", __func__, state->frontend_firmware->size);
+- }
++ deb_info("%s: firmware read %zu bytes.\n", __func__, state->frontend_firmware->size);
+ nim9090md_config[0].microcode_B_fe_size = state->frontend_firmware->size;
+ nim9090md_config[0].microcode_B_fe_buffer = state->frontend_firmware->data;
+ nim9090md_config[1].microcode_B_fe_size = state->frontend_firmware->size;
+Index: linux/drivers/media/usb/dvb-usb/dvb-usb-firmware.c
+===================================================================
+--- linux.orig/drivers/media/usb/dvb-usb/dvb-usb-firmware.c
++++ linux/drivers/media/usb/dvb-usb/dvb-usb-firmware.c
+@@ -89,13 +89,9 @@ int dvb_usb_download_firmware(struct usb
+ int ret;
+ const struct firmware *fw = NULL;
+
+- if ((ret = request_firmware(&fw, props->firmware, &udev->dev)) != 0) {
+- err("did not find the firmware file '%s' (status %d). You can use <kernel_dir>/scripts/get_dvb_firmware to get the firmware",
+- props->firmware,ret);
++ ret = request_firmware(&fw, props->firmware, &udev->dev);
++ if (ret)
+ return ret;
+- }
+-
+- info("downloading firmware from file '%s'",props->firmware);
+
+ switch (props->usb_ctrl) {
+ case CYPRESS_AN2135:
+Index: linux/drivers/media/usb/dvb-usb/gp8psk.c
+===================================================================
+--- linux.orig/drivers/media/usb/dvb-usb/gp8psk.c
++++ linux/drivers/media/usb/dvb-usb/gp8psk.c
+@@ -134,19 +134,14 @@ static int gp8psk_load_bcm4500fw(struct
+ const u8 *ptr;
+ u8 *buf;
+ if ((ret = request_firmware(&fw, bcm4500_firmware,
+- &d->udev->dev)) != 0) {
+- err("did not find the bcm4500 firmware file '%s' (status %d). You can use <kernel_dir>/scripts/get_dvb_firmware to get the firmware",
+- bcm4500_firmware,ret);
++ &d->udev->dev)) != 0)
+ return ret;
+- }
+
+ ret = -EINVAL;
+
+ if (gp8psk_usb_out_op(d, LOAD_BCM4500,1,0,NULL, 0))
+ goto out_rel_fw;
+
+- info("downloading bcm4500 firmware from file '%s'",bcm4500_firmware);
+-
+ ptr = fw->data;
+ buf = kmalloc(64, GFP_KERNEL);
+ if (!buf) {
+Index: linux/drivers/media/usb/dvb-usb/opera1.c
+===================================================================
+--- linux.orig/drivers/media/usb/dvb-usb/opera1.c
++++ linux/drivers/media/usb/dvb-usb/opera1.c
+@@ -453,8 +453,6 @@ static int opera1_xilinx_load_firmware(s
+ info("start downloading fpga firmware %s",filename);
+
+ if ((ret = request_firmware(&fw, filename, &dev->dev)) != 0) {
+- err("did not find the firmware file '%s'. You can use <kernel_dir>/scripts/get_dvb_firmware to get the firmware",
+- filename);
+ return ret;
+ } else {
+ p = kmalloc(fw->size, GFP_KERNEL);
+Index: linux/drivers/media/dvb-frontends/af9013.c
+===================================================================
+--- linux.orig/drivers/media/dvb-frontends/af9013.c
++++ linux/drivers/media/dvb-frontends/af9013.c
+@@ -1059,14 +1059,8 @@ static int af9013_download_firmware(stru
+
+ /* Request the firmware, will block and timeout */
+ ret = request_firmware(&firmware, name, &client->dev);
+- if (ret) {
+- dev_info(&client->dev, "firmware file '%s' not found %d\n",
+- name, ret);
++ if (ret)
+ goto err;
+- }
+-
+- dev_info(&client->dev, "downloading firmware from file '%s'\n",
+- name);
+
+ /* Write firmware checksum & size */
+ for (i = 0; i < firmware->size; i++)
+Index: linux/drivers/media/dvb-frontends/bcm3510.c
+===================================================================
+--- linux.orig/drivers/media/dvb-frontends/bcm3510.c
++++ linux/drivers/media/dvb-frontends/bcm3510.c
+@@ -636,10 +636,9 @@ static int bcm3510_download_firmware(str
+ int ret,i;
+
+ deb_info("requesting firmware\n");
+- if ((ret = st->config->request_firmware(fe, &fw, BCM3510_DEFAULT_FIRMWARE)) < 0) {
+- err("could not load firmware (%s): %d",BCM3510_DEFAULT_FIRMWARE,ret);
++ ret = st->config->request_firmware(fe, &fw, BCM3510_DEFAULT_FIRMWARE);
++ if (ret)
+ return ret;
+- }
+ deb_info("got firmware: %zu\n", fw->size);
+
+ b = fw->data;
+Index: linux/drivers/media/dvb-frontends/cx24116.c
+===================================================================
+--- linux.orig/drivers/media/dvb-frontends/cx24116.c
++++ linux/drivers/media/dvb-frontends/cx24116.c
+@@ -491,13 +491,8 @@ static int cx24116_firmware_ondemand(str
+ __func__, CX24116_DEFAULT_FIRMWARE);
+ ret = request_firmware(&fw, CX24116_DEFAULT_FIRMWARE,
+ state->i2c->dev.parent);
+- printk(KERN_INFO "%s: Waiting for firmware upload(2)...\n",
+- __func__);
+- if (ret) {
+- printk(KERN_ERR "%s: No firmware uploaded (timeout or file not found?)\n",
+- __func__);
++ if (ret)
+ return ret;
+- }
+
+ /* Make sure we don't recurse back through here
+ * during loading */
+Index: linux/drivers/media/dvb-frontends/drxd_hard.c
+===================================================================
+--- linux.orig/drivers/media/dvb-frontends/drxd_hard.c
++++ linux/drivers/media/dvb-frontends/drxd_hard.c
+@@ -903,10 +903,8 @@ static int load_firmware(struct drxd_sta
+ {
+ const struct firmware *fw;
+
+- if (request_firmware(&fw, fw_name, state->dev) < 0) {
+- printk(KERN_ERR "drxd: firmware load failure [%s]\n", fw_name);
++ if (request_firmware(&fw, fw_name, state->dev))
+ return -EIO;
+- }
+
+ state->microcode = kmemdup(fw->data, fw->size, GFP_KERNEL);
+ if (!state->microcode) {
+Index: linux/drivers/media/dvb-frontends/drxk_hard.c
+===================================================================
+--- linux.orig/drivers/media/dvb-frontends/drxk_hard.c
++++ linux/drivers/media/dvb-frontends/drxk_hard.c
+@@ -6281,10 +6281,6 @@ static void load_firmware_cb(const struc
+
+ dprintk(1, ": %s\n", fw ? "firmware loaded" : "firmware not loaded");
+ if (!fw) {
+- pr_err("Could not load firmware file %s.\n",
+- state->microcode_name);
+- pr_info("Copy %s to your hotplug directory!\n",
+- state->microcode_name);
+ state->microcode_name = NULL;
+
+ /*
+Index: linux/drivers/media/dvb-frontends/ds3000.c
+===================================================================
+--- linux.orig/drivers/media/dvb-frontends/ds3000.c
++++ linux/drivers/media/dvb-frontends/ds3000.c
+@@ -360,12 +360,8 @@ static int ds3000_firmware_ondemand(stru
+ DS3000_DEFAULT_FIRMWARE);
+ ret = request_firmware(&fw, DS3000_DEFAULT_FIRMWARE,
+ state->i2c->dev.parent);
+- printk(KERN_INFO "%s: Waiting for firmware upload(2)...\n", __func__);
+- if (ret) {
+- printk(KERN_ERR "%s: No firmware uploaded (timeout or file not found?)\n",
+- __func__);
++ if (ret)
+ return ret;
+- }
+
+ ret = ds3000_load_firmware(fe, fw);
+ if (ret)
+Index: linux/drivers/media/dvb-frontends/nxt200x.c
+===================================================================
+--- linux.orig/drivers/media/dvb-frontends/nxt200x.c
++++ linux/drivers/media/dvb-frontends/nxt200x.c
+@@ -886,12 +886,8 @@ static int nxt2002_init(struct dvb_front
+ __func__, NXT2002_DEFAULT_FIRMWARE);
+ ret = request_firmware(&fw, NXT2002_DEFAULT_FIRMWARE,
+ state->i2c->dev.parent);
+- pr_debug("%s: Waiting for firmware upload(2)...\n", __func__);
+- if (ret) {
+- pr_err("%s: No firmware uploaded (timeout or file not found?)\n",
+- __func__);
++ if (ret)
+ return ret;
+- }
+
+ ret = nxt2002_load_firmware(fe, fw);
+ release_firmware(fw);
+@@ -953,12 +949,8 @@ static int nxt2004_init(struct dvb_front
+ __func__, NXT2004_DEFAULT_FIRMWARE);
+ ret = request_firmware(&fw, NXT2004_DEFAULT_FIRMWARE,
+ state->i2c->dev.parent);
+- pr_debug("%s: Waiting for firmware upload(2)...\n", __func__);
+- if (ret) {
+- pr_err("%s: No firmware uploaded (timeout or file not found?)\n",
+- __func__);
++ if (ret)
+ return ret;
+- }
+
+ ret = nxt2004_load_firmware(fe, fw);
+ release_firmware(fw);
+Index: linux/drivers/media/dvb-frontends/or51132.c
+===================================================================
+--- linux.orig/drivers/media/dvb-frontends/or51132.c
++++ linux/drivers/media/dvb-frontends/or51132.c
+@@ -337,10 +337,8 @@ static int or51132_set_parameters(struct
+ printk("or51132: Waiting for firmware upload(%s)...\n",
+ fwname);
+ ret = request_firmware(&fw, fwname, state->i2c->dev.parent);
+- if (ret) {
+- printk(KERN_WARNING "or51132: No firmware uploaded(timeout or file not found?)\n");
++ if (ret)
+ return ret;
+- }
+ ret = or51132_load_firmware(fe, fw);
+ release_firmware(fw);
+ if (ret) {
+Index: linux/drivers/media/dvb-frontends/or51211.c
+===================================================================
+--- linux.orig/drivers/media/dvb-frontends/or51211.c
++++ linux/drivers/media/dvb-frontends/or51211.c
+@@ -371,11 +371,8 @@ static int or51211_init(struct dvb_front
+ OR51211_DEFAULT_FIRMWARE);
+ ret = config->request_firmware(fe, &fw,
+ OR51211_DEFAULT_FIRMWARE);
+- pr_info("Got Hotplug firmware\n");
+- if (ret) {
+- pr_warn("No firmware uploaded (timeout or file not found?)\n");
++ if (ret)
+ return ret;
+- }
+
+ ret = or51211_load_firmware(fe, fw);
+ release_firmware(fw);
+Index: linux/drivers/media/dvb-frontends/sp8870.c
+===================================================================
+--- linux.orig/drivers/media/dvb-frontends/sp8870.c
++++ linux/drivers/media/dvb-frontends/sp8870.c
+@@ -315,10 +315,8 @@ static int sp8870_init (struct dvb_front
+
+ /* request the firmware, this will block until someone uploads it */
+ printk("sp8870: waiting for firmware upload (%s)...\n", SP8870_DEFAULT_FIRMWARE);
+- if (state->config->request_firmware(fe, &fw, SP8870_DEFAULT_FIRMWARE)) {
+- printk("sp8870: no firmware upload (timeout or file not found?)\n");
++ if (state->config->request_firmware(fe, &fw, SP8870_DEFAULT_FIRMWARE))
+ return -EIO;
+- }
+
+ if (sp8870_firmware_upload(state, fw)) {
+ printk("sp8870: writing firmware to device failed\n");
+Index: linux/drivers/media/dvb-frontends/sp887x.c
+===================================================================
+--- linux.orig/drivers/media/dvb-frontends/sp887x.c
++++ linux/drivers/media/dvb-frontends/sp887x.c
+@@ -526,10 +526,8 @@ static int sp887x_init(struct dvb_fronte
+ /* request the firmware, this will block until someone uploads it */
+ printk("sp887x: waiting for firmware upload (%s)...\n", SP887X_DEFAULT_FIRMWARE);
+ ret = state->config->request_firmware(fe, &fw, SP887X_DEFAULT_FIRMWARE);
+- if (ret) {
+- printk("sp887x: no firmware upload (timeout or file not found?)\n");
++ if (ret)
+ return ret;
+- }
+
+ ret = sp887x_initial_setup(fe, fw);
+ release_firmware(fw);
+Index: linux/drivers/media/dvb-frontends/tda10048.c
+===================================================================
+--- linux.orig/drivers/media/dvb-frontends/tda10048.c
++++ linux/drivers/media/dvb-frontends/tda10048.c
+@@ -495,8 +495,6 @@ static int tda10048_firmware_upload(stru
+ ret = request_firmware(&fw, TDA10048_DEFAULT_FIRMWARE,
+ state->i2c->dev.parent);
+ if (ret) {
+- printk(KERN_ERR "%s: Upload failed. (file not found?)\n",
+- __func__);
+ return -EIO;
+ } else {
+ printk(KERN_INFO "%s: firmware read %zu bytes.\n",
+Index: linux/drivers/media/dvb-frontends/tda1004x.c
+===================================================================
+--- linux.orig/drivers/media/dvb-frontends/tda1004x.c
++++ linux/drivers/media/dvb-frontends/tda1004x.c
+@@ -401,10 +401,8 @@ static int tda10045_fwupload(struct dvb_
+ /* request the firmware, this will block until someone uploads it */
+ printk(KERN_INFO "tda1004x: waiting for firmware upload (%s)...\n", TDA10045_DEFAULT_FIRMWARE);
+ ret = state->config->request_firmware(fe, &fw, TDA10045_DEFAULT_FIRMWARE);
+- if (ret) {
+- printk(KERN_ERR "tda1004x: no firmware upload (timeout or file not found?)\n");
++ if (ret)
+ return ret;
+- }
+
+ /* reset chip */
+ tda1004x_write_mask(state, TDA1004X_CONFC4, 0x10, 0);
+@@ -545,7 +543,6 @@ static int tda10046_fwupload(struct dvb_
+ /* remain compatible to old bug: try to load with tda10045 image name */
+ ret = state->config->request_firmware(fe, &fw, TDA10045_DEFAULT_FIRMWARE);
+ if (ret) {
+- printk(KERN_ERR "tda1004x: no firmware upload (timeout or file not found?)\n");
+ return ret;
+ } else {
+ printk(KERN_INFO "tda1004x: please rename the firmware file to %s\n",
+Index: linux/drivers/media/dvb-frontends/tda10071.c
+===================================================================
+--- linux.orig/drivers/media/dvb-frontends/tda10071.c
++++ linux/drivers/media/dvb-frontends/tda10071.c
+@@ -850,12 +850,8 @@ static int tda10071_init(struct dvb_fron
+
+ /* request the firmware, this will block and timeout */
+ ret = request_firmware(&fw, fw_file, &client->dev);
+- if (ret) {
+- dev_err(&client->dev,
+- "did not find the firmware file '%s' (status %d). You can use <kernel_dir>/scripts/get_dvb_firmware to get the firmware\n",
+- fw_file, ret);
++ if (ret)
+ goto error;
+- }
+
+ /* init */
+ for (i = 0; i < ARRAY_SIZE(tab2); i++) {
+Index: linux/drivers/media/pci/ngene/ngene-core.c
+===================================================================
+--- linux.orig/drivers/media/pci/ngene/ngene-core.c
++++ linux/drivers/media/pci/ngene/ngene-core.c
+@@ -1253,19 +1253,14 @@ static int ngene_load_firm(struct ngene
+ break;
+ }
+
+- if (request_firmware(&fw, fw_name, &dev->pci_dev->dev) < 0) {
+- dev_err(pdev, "Could not load firmware file %s.\n", fw_name);
+- dev_info(pdev, "Copy %s to your hotplug directory!\n",
+- fw_name);
++ if (request_firmware(&fw, fw_name, &dev->pci_dev->dev))
+ return -1;
+- }
+ if (size == 0)
+ size = fw->size;
+ if (size != fw->size) {
+ dev_err(pdev, "Firmware %s has invalid size!", fw_name);
+ err = -1;
+ } else {
+- dev_info(pdev, "Loading firmware file %s.\n", fw_name);
+ ngene_fw = (u8 *) fw->data;
+ err = ngene_command_load_firmware(dev, ngene_fw, size);
+ }
+Index: linux/drivers/media/common/siano/smscoreapi.c
+===================================================================
+--- linux.orig/drivers/media/common/siano/smscoreapi.c
++++ linux/drivers/media/common/siano/smscoreapi.c
+@@ -1164,10 +1164,8 @@ static int smscore_load_firmware_from_fi
+ return -EINVAL;
+
+ rc = request_firmware(&fw, fw_filename, coredev->device);
+- if (rc < 0) {
+- pr_err("failed to open firmware file '%s'\n", fw_filename);
++ if (rc < 0)
+ return rc;
+- }
+ pr_debug("read fw %s, buffer size=0x%zx\n", fw_filename, fw->size);
+ fw_buf = kmalloc(ALIGN(fw->size + sizeof(struct sms_firmware),
+ SMS_ALLOC_ALIGNMENT), GFP_KERNEL | coredev->gfp_buf_flags);
+Index: linux/drivers/media/pci/ttpci/av7110.c
+===================================================================
+--- linux.orig/drivers/media/pci/ttpci/av7110.c
++++ linux/drivers/media/pci/ttpci/av7110.c
+@@ -1516,13 +1516,8 @@ static int get_firmware(struct av7110* a
+ /* request the av7110 firmware, this will block until someone uploads it */
+ ret = request_firmware(&fw, "dvb-ttpci-01.fw", &av7110->dev->pci->dev);
+ if (ret) {
+- if (ret == -ENOENT) {
+- printk(KERN_ERR "dvb-ttpci: could not load firmware, file not found: dvb-ttpci-01.fw\n");
+- printk(KERN_ERR "dvb-ttpci: usually this should be in /usr/lib/hotplug/firmware or /lib/firmware\n");
+- printk(KERN_ERR "dvb-ttpci: and can be downloaded from https://linuxtv.org/download/dvb/firmware/\n");
+- } else
+- printk(KERN_ERR "dvb-ttpci: cannot request firmware (error %i)\n",
+- ret);
++ if (ret == -ENOENT)
++ printk(KERN_ERR "dvb-ttpci: firmware can be downloaded from https://linuxtv.org/download/dvb/firmware/\n");
+ return -EINVAL;
+ }
+
+Index: linux/drivers/media/pci/ttpci/av7110_hw.c
+===================================================================
+--- linux.orig/drivers/media/pci/ttpci/av7110_hw.c
++++ linux/drivers/media/pci/ttpci/av7110_hw.c
+@@ -247,11 +247,8 @@ int av7110_bootarm(struct av7110 *av7110
+ //saa7146_setgpio(dev, 3, SAA7146_GPIO_INPUT);
+
+ ret = request_firmware(&fw, fw_name, &dev->pci->dev);
+- if (ret) {
+- printk(KERN_ERR "dvb-ttpci: Failed to load firmware \"%s\"\n",
+- fw_name);
++ if (ret)
+ return ret;
+- }
+
+ mwdebi(av7110, DEBISWAB, DPRAM_BASE, fw->data, fw->size);
+ release_firmware(fw);
+Index: linux/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c
+===================================================================
+--- linux.orig/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c
++++ linux/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c
+@@ -295,10 +295,8 @@ static int ttusb_boot_dsp(struct ttusb *
+
+ err = request_firmware(&fw, "ttusb-budget/dspbootcode.bin",
+ &ttusb->dev->dev);
+- if (err) {
+- printk(KERN_ERR "ttusb-budget: failed to request firmware\n");
++ if (err)
+ return err;
+- }
+
+ /* BootBlock */
+ b[0] = 0xaa;
+Index: linux/drivers/media/usb/ttusb-dec/ttusb_dec.c
+===================================================================
+--- linux.orig/drivers/media/usb/ttusb-dec/ttusb_dec.c
++++ linux/drivers/media/usb/ttusb-dec/ttusb_dec.c
+@@ -1334,11 +1334,8 @@ static int ttusb_dec_boot_dsp(struct ttu
+ dprintk("%s\n", __func__);
+
+ result = request_firmware(&fw_entry, dec->firmware_name, &dec->udev->dev);
+- if (result) {
+- printk(KERN_ERR "%s: Firmware (%s) unavailable.\n",
+- __func__, dec->firmware_name);
++ if (result)
+ return result;
+- }
+
+ firmware = fw_entry->data;
+ firmware_size = fw_entry->size;
+Index: linux/drivers/media/radio/radio-wl1273.c
+===================================================================
+--- linux.orig/drivers/media/radio/radio-wl1273.c
++++ linux/drivers/media/radio/radio-wl1273.c
+@@ -510,11 +510,8 @@ static int wl1273_fm_upload_firmware_pat
+ * Uploading the firmware patch is not always necessary,
+ * so we only print an info message.
+ */
+- if (request_firmware(&fw_p, fw_name, dev)) {
+- dev_info(dev, "%s - %s not found\n", __func__, fw_name);
+-
++ if (request_firmware(&fw_p, fw_name, dev))
+ return 0;
+- }
+
+ ptr = (__u8 *) fw_p->data;
+ packet_num = ptr[0];
+Index: linux/drivers/media/radio/wl128x/fmdrv_common.c
+===================================================================
+--- linux.orig/drivers/media/radio/wl128x/fmdrv_common.c
++++ linux/drivers/media/radio/wl128x/fmdrv_common.c
+@@ -1245,10 +1245,8 @@ static int fm_download_firmware(struct f
+
+ ret = request_firmware(&fw_entry, fw_name,
+ &fmdev->radio_dev->dev);
+- if (ret < 0) {
+- fmerr("Unable to read firmware(%s) content\n", fw_name);
++ if (ret)
+ return ret;
+- }
+ fmdbg("Firmware(%s) length : %zu bytes\n", fw_name, fw_entry->size);
+
+ fw_data = (void *)fw_entry->data;
+Index: linux/drivers/media/pci/bt8xx/bttv-cards.c
+===================================================================
+--- linux.orig/drivers/media/pci/bt8xx/bttv-cards.c
++++ linux/drivers/media/pci/bt8xx/bttv-cards.c
+@@ -3916,10 +3916,8 @@ static int pvr_boot(struct bttv *btv)
+ int rc;
+
+ rc = request_firmware(&fw_entry, "hcwamc.rbf", &btv->c.pci->dev);
+- if (rc != 0) {
+- pr_warn("%d: no altera firmware [via hotplug]\n", btv->c.nr);
++ if (rc != 0)
+ return rc;
+- }
+ rc = pvr_altera_load(btv, fw_entry->data, fw_entry->size);
+ pr_info("%d: altera firmware upload %s\n",
+ btv->c.nr, (rc < 0) ? "failed" : "ok");
+Index: linux/drivers/media/usb/cpia2/cpia2_core.c
+===================================================================
+--- linux.orig/drivers/media/usb/cpia2/cpia2_core.c
++++ linux/drivers/media/usb/cpia2/cpia2_core.c
+@@ -921,11 +921,8 @@ static int apply_vp_patch(struct camera_
+ struct cpia2_command cmd;
+
+ ret = request_firmware(&fw, fw_name, &cam->dev->dev);
+- if (ret) {
+- printk(KERN_ERR "cpia2: failed to load VP patch \"%s\"\n",
+- fw_name);
++ if (ret)
+ return ret;
+- }
+
+ cmd.req_mode = CAMERAACCESS_TYPE_REPEAT | CAMERAACCESS_VP;
+ cmd.direction = TRANSFER_WRITE;
+Index: linux/drivers/media/pci/cx18/cx18-av-firmware.c
+===================================================================
+--- linux.orig/drivers/media/pci/cx18/cx18-av-firmware.c
++++ linux/drivers/media/pci/cx18/cx18-av-firmware.c
+@@ -79,10 +79,8 @@ int cx18_av_loadfw(struct cx18 *cx)
+ int i;
+ int retries1 = 0;
+
+- if (request_firmware(&fw, FWFILE, &cx->pci_dev->dev) != 0) {
+- CX18_ERR_DEV(sd, "unable to open firmware %s\n", FWFILE);
++ if (request_firmware(&fw, FWFILE, &cx->pci_dev->dev) != 0)
+ return -EINVAL;
+- }
+
+ /* The firmware load often has byte errors, so allow for several
+ retries, both at byte level and at the firmware load level. */
+Index: linux/drivers/media/pci/cx18/cx18-dvb.c
+===================================================================
+--- linux.orig/drivers/media/pci/cx18/cx18-dvb.c
++++ linux/drivers/media/pci/cx18/cx18-dvb.c
+@@ -137,9 +137,7 @@ static int yuan_mpc718_mt352_reqfw(struc
+ int ret;
+
+ ret = request_firmware(fw, fn, &cx->pci_dev->dev);
+- if (ret)
+- CX18_ERR("Unable to open firmware file %s\n", fn);
+- else {
++ if (!ret) {
+ size_t sz = (*fw)->size;
+ if (sz < 2 || sz > 64 || (sz % 2) != 0) {
+ CX18_ERR("Firmware %s has a bad size: %lu bytes\n",
+Index: linux/drivers/media/pci/cx18/cx18-firmware.c
+===================================================================
+--- linux.orig/drivers/media/pci/cx18/cx18-firmware.c
++++ linux/drivers/media/pci/cx18/cx18-firmware.c
+@@ -101,11 +101,8 @@ static int load_cpu_fw_direct(const char
+ u32 __iomem *dst = (u32 __iomem *)mem;
+ const u32 *src;
+
+- if (request_firmware(&fw, fn, &cx->pci_dev->dev)) {
+- CX18_ERR("Unable to open firmware %s\n", fn);
+- CX18_ERR("Did you put the firmware in the hotplug firmware directory?\n");
++ if (request_firmware(&fw, fn, &cx->pci_dev->dev))
+ return -ENOMEM;
+- }
+
+ src = (const u32 *)fw->data;
+
+@@ -146,8 +143,6 @@ static int load_apu_fw_direct(const char
+ int sz;
+
+ if (request_firmware(&fw, fn, &cx->pci_dev->dev)) {
+- CX18_ERR("unable to open firmware %s\n", fn);
+- CX18_ERR("did you put the firmware in the hotplug firmware directory?\n");
+ cx18_setup_page(cx, 0);
+ return -ENOMEM;
+ }
+Index: linux/drivers/media/usb/cx231xx/cx231xx-417.c
+===================================================================
+--- linux.orig/drivers/media/usb/cx231xx/cx231xx-417.c
++++ linux/drivers/media/usb/cx231xx/cx231xx-417.c
+@@ -996,11 +996,6 @@ static int cx231xx_load_firmware(struct
+ dev->dev);
+
+ if (retval != 0) {
+- dev_err(dev->dev,
+- "ERROR: Hotplug firmware request failed (%s).\n",
+- CX231xx_FIRM_IMAGE_NAME);
+- dev_err(dev->dev,
+- "Please fix your hotplug setup, the board will not work without firmware loaded!\n");
+ vfree(p_current_fw);
+ vfree(p_buffer);
+ return retval;
+Index: linux/drivers/media/pci/cx23885/cx23885-417.c
+===================================================================
+--- linux.orig/drivers/media/pci/cx23885/cx23885-417.c
++++ linux/drivers/media/pci/cx23885/cx23885-417.c
+@@ -929,12 +929,8 @@ static int cx23885_load_firmware(struct
+ retval = request_firmware(&firmware, CX23885_FIRM_IMAGE_NAME,
+ &dev->pci->dev);
+
+- if (retval != 0) {
+- pr_err("ERROR: Hotplug firmware request failed (%s).\n",
+- CX23885_FIRM_IMAGE_NAME);
+- pr_err("Please fix your hotplug setup, the board will not work without firmware loaded!\n");
++ if (retval != 0)
+ return -1;
+- }
+
+ if (firmware->size != CX23885_FIRM_IMAGE_SIZE) {
+ pr_err("ERROR: Firmware size mismatch (have %zu, expected %d)\n",
+Index: linux/drivers/media/pci/cx23885/cx23885-cards.c
+===================================================================
+--- linux.orig/drivers/media/pci/cx23885/cx23885-cards.c
++++ linux/drivers/media/pci/cx23885/cx23885-cards.c
+@@ -2425,10 +2425,7 @@ void cx23885_card_setup(struct cx23885_d
+ cinfo.rev, filename);
+
+ ret = request_firmware(&fw, filename, &dev->pci->dev);
+- if (ret != 0)
+- pr_err("did not find the firmware file '%s'. You can use <kernel_dir>/scripts/get_dvb_firmware to get the firmware.",
+- filename);
+- else
++ if (ret == 0)
+ altera_init(&netup_config, fw);
+
+ release_firmware(fw);
+Index: linux/drivers/media/i2c/cx25840/cx25840-firmware.c
+===================================================================
+--- linux.orig/drivers/media/i2c/cx25840/cx25840-firmware.c
++++ linux/drivers/media/i2c/cx25840/cx25840-firmware.c
+@@ -122,10 +122,8 @@ int cx25840_loadfw(struct i2c_client *cl
+ if (is_cx231xx(state) && max_buf_size > 16)
+ max_buf_size = 16;
+
+- if (request_firmware(&fw, fwname, FWDEV(client)) != 0) {
+- v4l_err(client, "unable to open firmware %s\n", fwname);
++ if (request_firmware(&fw, fwname, FWDEV(client)) != 0)
+ return -EINVAL;
+- }
+
+ start_fw_load(client);
+
+Index: linux/drivers/media/pci/cx88/cx88-blackbird.c
+===================================================================
+--- linux.orig/drivers/media/pci/cx88/cx88-blackbird.c
++++ linux/drivers/media/pci/cx88/cx88-blackbird.c
+@@ -471,12 +471,8 @@ static int blackbird_load_firmware(struc
+ retval = request_firmware(&firmware, CX2341X_FIRM_ENC_FILENAME,
+ &dev->pci->dev);
+
+- if (retval != 0) {
+- pr_err("Hotplug firmware request failed (%s).\n",
+- CX2341X_FIRM_ENC_FILENAME);
+- pr_err("Please fix your hotplug setup, the board will not work without firmware loaded!\n");
++ if (retval != 0)
+ return -EIO;
+- }
+
+ if (firmware->size != BLACKBIRD_FIRM_IMAGE_SIZE) {
+ pr_err("Firmware size mismatch (have %zd, expected %d)\n",
+Index: linux/drivers/media/usb/gspca/vicam.c
+===================================================================
+--- linux.orig/drivers/media/usb/gspca/vicam.c
++++ linux/drivers/media/usb/gspca/vicam.c
+@@ -239,10 +239,8 @@ static int sd_init(struct gspca_dev *gsp
+
+ ret = request_ihex_firmware(&fw, VICAM_FIRMWARE,
+ &gspca_dev->dev->dev);
+- if (ret) {
+- pr_err("Failed to load \"vicam/firmware.fw\": %d\n", ret);
++ if (ret)
+ return ret;
+- }
+
+ firmware_buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
+ if (!firmware_buf) {
+Index: linux/drivers/media/pci/ivtv/ivtv-firmware.c
+===================================================================
+--- linux.orig/drivers/media/pci/ivtv/ivtv-firmware.c
++++ linux/drivers/media/pci/ivtv/ivtv-firmware.c
+@@ -80,8 +80,6 @@ retry:
+ release_firmware(fw);
+ return size;
+ }
+- IVTV_ERR("Unable to open firmware %s (must be %ld bytes)\n", fn, size);
+- IVTV_ERR("Did you put the firmware in the hotplug firmware directory?\n");
+ return -ENOMEM;
+ }
+
+Index: linux/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
+===================================================================
+--- linux.orig/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
++++ linux/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
+@@ -1379,25 +1379,6 @@ static int pvr2_locate_firmware(struct p
+ "request_firmware fatal error with code=%d",ret);
+ return ret;
+ }
+- pvr2_trace(PVR2_TRACE_ERROR_LEGS,
+- "***WARNING*** Device %s firmware seems to be missing.",
+- fwtypename);
+- pvr2_trace(PVR2_TRACE_ERROR_LEGS,
+- "Did you install the pvrusb2 firmware files in their proper location?");
+- if (fwcount == 1) {
+- pvr2_trace(PVR2_TRACE_ERROR_LEGS,
+- "request_firmware unable to locate %s file %s",
+- fwtypename,fwnames[0]);
+- } else {
+- pvr2_trace(PVR2_TRACE_ERROR_LEGS,
+- "request_firmware unable to locate one of the following %s files:",
+- fwtypename);
+- for (idx = 0; idx < fwcount; idx++) {
+- pvr2_trace(PVR2_TRACE_ERROR_LEGS,
+- "request_firmware: Failed to find %s",
+- fwnames[idx]);
+- }
+- }
+ return ret;
+ }
+
+Index: linux/drivers/media/usb/s2255/s2255drv.c
+===================================================================
+--- linux.orig/drivers/media/usb/s2255/s2255drv.c
++++ linux/drivers/media/usb/s2255/s2255drv.c
+@@ -2298,10 +2298,8 @@ static int s2255_probe(struct usb_interf
+ }
+ /* load the first chunk */
+ if (request_firmware(&dev->fw_data->fw,
+- FIRMWARE_FILE_NAME, &dev->udev->dev)) {
+- dev_err(&interface->dev, "sensoray 2255 failed to get firmware\n");
++ FIRMWARE_FILE_NAME, &dev->udev->dev))
+ goto errorREQFW;
+- }
+ /* check the firmware is valid */
+ fw_size = dev->fw_data->fw->size;
+ pdata = (__le32 *) &dev->fw_data->fw->data[fw_size - 8];
+Index: linux/drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c
+===================================================================
+--- linux.orig/drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c
++++ linux/drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c
+@@ -69,10 +69,8 @@ int s5p_mfc_load_firmware(struct s5p_mfc
+ }
+ }
+
+- if (err != 0) {
+- mfc_err("Firmware is not present in the /lib/firmware directory nor compiled in kernel\n");
++ if (err != 0)
+ return -EINVAL;
+- }
+ if (fw_blob->size > dev->fw_buf.size) {
+ mfc_err("MFC firmware is too big to be loaded\n");
+ release_firmware(fw_blob);
+Index: linux/drivers/media/pci/saa7164/saa7164-fw.c
+===================================================================
+--- linux.orig/drivers/media/pci/saa7164/saa7164-fw.c
++++ linux/drivers/media/pci/saa7164/saa7164-fw.c
+@@ -416,11 +416,8 @@ int saa7164_downloadfirmware(struct saa7
+ __func__, fwname);
+
+ ret = request_firmware(&fw, fwname, &dev->pci->dev);
+- if (ret) {
+- printk(KERN_ERR "%s() Upload failed. (file not found?)\n",
+- __func__);
++ if (ret)
+ return -ENOMEM;
+- }
+
+ printk(KERN_INFO "%s() firmware read %zu bytes.\n",
+ __func__, fw->size);
+Index: linux/drivers/misc/ti-st/st_kim.c
+===================================================================
+--- linux.orig/drivers/misc/ti-st/st_kim.c
++++ linux/drivers/misc/ti-st/st_kim.c
+@@ -301,11 +301,8 @@ static long download_firmware(struct kim
+ request_firmware(&kim_gdata->fw_entry, bts_scr_name,
+ &kim_gdata->kim_pdev->dev);
+ if (unlikely((err != 0) || (kim_gdata->fw_entry->data == NULL) ||
+- (kim_gdata->fw_entry->size == 0))) {
+- pr_err(" request_firmware failed(errno %ld) for %s", err,
+- bts_scr_name);
++ (kim_gdata->fw_entry->size == 0)))
+ return -EINVAL;
+- }
+ ptr = (void *)kim_gdata->fw_entry->data;
+ len = kim_gdata->fw_entry->size;
+ /* bts_header to remove out magic number and
+Index: linux/drivers/net/can/softing/softing_fw.c
+===================================================================
+--- linux.orig/drivers/net/can/softing/softing_fw.c
++++ linux/drivers/net/can/softing/softing_fw.c
+@@ -237,11 +237,8 @@ int softing_load_app_fw(const char *file
+ int8_t type_end = 0, type_entrypoint = 0;
+
+ ret = request_firmware(&fw, file, &card->pdev->dev);
+- if (ret) {
+- dev_alert(&card->pdev->dev, "request_firmware(%s) got %i\n",
+- file, ret);
++ if (ret)
+ return ret;
+- }
+ dev_dbg(&card->pdev->dev, "firmware(%s) got %lu bytes\n",
+ file, (unsigned long)fw->size);
+ /* parse the firmware */
+Index: linux/drivers/net/ethernet/3com/typhoon.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/3com/typhoon.c
++++ linux/drivers/net/ethernet/3com/typhoon.c
+@@ -1283,11 +1283,8 @@ typhoon_request_firmware(struct typhoon
+ return 0;
+
+ err = request_firmware(&typhoon_fw, FIRMWARE_NAME, &tp->pdev->dev);
+- if (err) {
+- netdev_err(tp->dev, "Failed to load firmware \"%s\"\n",
+- FIRMWARE_NAME);
++ if (err)
+ return err;
+- }
+
+ image_data = typhoon_fw->data;
+ remaining = typhoon_fw->size;
+Index: linux/drivers/net/ethernet/adaptec/starfire.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/adaptec/starfire.c
++++ linux/drivers/net/ethernet/adaptec/starfire.c
+@@ -1015,11 +1015,8 @@ static int netdev_open(struct net_device
+ #endif /* VLAN_SUPPORT */
+
+ retval = request_firmware(&fw_rx, FIRMWARE_RX, &np->pci_dev->dev);
+- if (retval) {
+- printk(KERN_ERR "starfire: Failed to load firmware \"%s\"\n",
+- FIRMWARE_RX);
++ if (retval)
+ goto out_init;
+- }
+ if (fw_rx->size % 4) {
+ printk(KERN_ERR "starfire: bogus length %zu in \"%s\"\n",
+ fw_rx->size, FIRMWARE_RX);
+@@ -1027,11 +1024,8 @@ static int netdev_open(struct net_device
+ goto out_rx;
+ }
+ retval = request_firmware(&fw_tx, FIRMWARE_TX, &np->pci_dev->dev);
+- if (retval) {
+- printk(KERN_ERR "starfire: Failed to load firmware \"%s\"\n",
+- FIRMWARE_TX);
++ if (retval)
+ goto out_rx;
+- }
+ if (fw_tx->size % 4) {
+ printk(KERN_ERR "starfire: bogus length %zu in \"%s\"\n",
+ fw_tx->size, FIRMWARE_TX);
+Index: linux/drivers/net/ethernet/alteon/acenic.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/alteon/acenic.c
++++ linux/drivers/net/ethernet/alteon/acenic.c
+@@ -2890,11 +2890,8 @@ static int ace_load_firmware(struct net_
+ fw_name = "acenic/tg1.bin";
+
+ ret = request_firmware(&fw, fw_name, &ap->pdev->dev);
+- if (ret) {
+- printk(KERN_ERR "%s: Failed to load firmware \"%s\"\n",
+- ap->name, fw_name);
++ if (ret)
+ return ret;
+- }
+
+ fw_data = (void *)fw->data;
+
+Index: linux/drivers/net/ethernet/broadcom/bnx2.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/broadcom/bnx2.c
++++ linux/drivers/net/ethernet/broadcom/bnx2.c
+@@ -3720,16 +3720,13 @@ static int bnx2_request_uncached_firmwar
+ }
+
+ rc = request_firmware(&bp->mips_firmware, mips_fw_file, &bp->pdev->dev);
+- if (rc) {
+- pr_err("Can't load firmware file \"%s\"\n", mips_fw_file);
++ if (rc)
+ goto out;
+- }
+
+ rc = request_firmware(&bp->rv2p_firmware, rv2p_fw_file, &bp->pdev->dev);
+- if (rc) {
+- pr_err("Can't load firmware file \"%s\"\n", rv2p_fw_file);
++ if (rc)
+ goto err_release_mips_firmware;
+- }
++
+ mips_fw = (const struct bnx2_mips_fw_file *) bp->mips_firmware->data;
+ rv2p_fw = (const struct bnx2_rv2p_fw_file *) bp->rv2p_firmware->data;
+ if (bp->mips_firmware->size < sizeof(*mips_fw) ||
+Index: linux/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
++++ linux/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+@@ -13557,11 +13557,8 @@ static int bnx2x_init_firmware(struct bn
+ BNX2X_DEV_INFO("Loading %s\n", fw_file_name);
+
+ rc = request_firmware(&bp->firmware, fw_file_name, &bp->pdev->dev);
+- if (rc) {
+- BNX2X_ERR("Can't load firmware file %s\n",
+- fw_file_name);
++ if (rc)
+ goto request_firmware_exit;
+- }
+
+ rc = bnx2x_check_firmware(bp);
+ if (rc) {
+Index: linux/drivers/net/ethernet/broadcom/tg3.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/broadcom/tg3.c
++++ linux/drivers/net/ethernet/broadcom/tg3.c
+@@ -11408,11 +11408,8 @@ static int tg3_request_firmware(struct t
+ {
+ const struct tg3_firmware_hdr *fw_hdr;
+
+- if (request_firmware(&tp->fw, tp->fw_needed, &tp->pdev->dev)) {
+- netdev_err(tp->dev, "Failed to load firmware \"%s\"\n",
+- tp->fw_needed);
++ if (request_firmware(&tp->fw, tp->fw_needed, &tp->pdev->dev))
+ return -ENOENT;
+- }
+
+ fw_hdr = (struct tg3_firmware_hdr *)tp->fw->data;
+
+Index: linux/drivers/net/ethernet/brocade/bna/cna_fwimg.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/brocade/bna/cna_fwimg.c
++++ linux/drivers/net/ethernet/brocade/bna/cna_fwimg.c
+@@ -32,10 +32,8 @@ cna_read_firmware(struct pci_dev *pdev,
+ const struct firmware *fw;
+ u32 n;
+
+- if (request_firmware(&fw, fw_name, &pdev->dev)) {
+- dev_alert(&pdev->dev, "can't load firmware %s\n", fw_name);
++ if (request_firmware(&fw, fw_name, &pdev->dev))
+ goto error;
+- }
+
+ *bfi_image = (u32 *)fw->data;
+ *bfi_image_size = fw->size/sizeof(u32);
+Index: linux/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
++++ linux/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
+@@ -1038,12 +1038,8 @@ int t3_get_edc_fw(struct cphy *phy, int
+ fw_name = get_edc_fw_name(edc_idx);
+ if (fw_name)
+ ret = request_firmware(&fw, fw_name, &adapter->pdev->dev);
+- if (ret < 0) {
+- dev_err(&adapter->pdev->dev,
+- "could not upgrade firmware: unable to load %s\n",
+- fw_name);
++ if (ret)
+ return ret;
+- }
+
+ /* check size, take checksum in account */
+ if (fw->size > size + 4) {
+@@ -1080,11 +1076,8 @@ static int upgrade_fw(struct adapter *ad
+ struct device *dev = &adap->pdev->dev;
+
+ ret = request_firmware(&fw, FW_FNAME, dev);
+- if (ret < 0) {
+- dev_err(dev, "could not upgrade firmware: unable to load %s\n",
+- FW_FNAME);
++ if (ret)
+ return ret;
+- }
+ ret = t3_load_fw(adap, fw->data, fw->size);
+ release_firmware(fw);
+
+@@ -1129,11 +1122,8 @@ static int update_tpsram(struct adapter
+ snprintf(buf, sizeof(buf), TPSRAM_NAME, rev);
+
+ ret = request_firmware(&tpsram, buf, dev);
+- if (ret < 0) {
+- dev_err(dev, "could not load TP SRAM: unable to load %s\n",
+- buf);
++ if (ret)
+ return ret;
+- }
+
+ ret = t3_check_tpsram(adap, tpsram->data, tpsram->size);
+ if (ret)
+Index: linux/drivers/net/ethernet/intel/e100.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/intel/e100.c
++++ linux/drivers/net/ethernet/intel/e100.c
+@@ -1265,9 +1265,6 @@ static const struct firmware *e100_reque
+
+ if (err) {
+ if (required) {
+- netif_err(nic, probe, nic->netdev,
+- "Failed to load firmware \"%s\": %d\n",
+- fw_name, err);
+ return ERR_PTR(err);
+ } else {
+ netif_info(nic, probe, nic->netdev,
+Index: linux/drivers/net/ethernet/myricom/myri10ge/myri10ge.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/myricom/myri10ge/myri10ge.c
++++ linux/drivers/net/ethernet/myricom/myri10ge/myri10ge.c
+@@ -581,8 +581,6 @@ static int myri10ge_load_hotplug_firmwar
+ unsigned i;
+
+ if ((status = request_firmware(&fw, mgp->fw_name, dev)) < 0) {
+- dev_err(dev, "Unable to load %s firmware image via hotplug\n",
+- mgp->fw_name);
+ status = -EINVAL;
+ goto abort_with_nothing;
+ }
+Index: linux/drivers/net/ethernet/smsc/smc91c92_cs.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/smsc/smc91c92_cs.c
++++ linux/drivers/net/ethernet/smsc/smc91c92_cs.c
+@@ -647,10 +647,8 @@ static int osi_load_firmware(struct pcmc
+ int i, err;
+
+ err = request_firmware(&fw, FIRMWARE_NAME, &link->dev);
+- if (err) {
+- pr_err("Failed to load firmware \"%s\"\n", FIRMWARE_NAME);
++ if (err)
+ return err;
+- }
+
+ /* Download the Seven of Diamonds firmware */
+ for (i = 0; i < fw->size; i++) {
+Index: linux/drivers/net/ethernet/sun/cassini.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/sun/cassini.c
++++ linux/drivers/net/ethernet/sun/cassini.c
+@@ -805,11 +805,8 @@ static void cas_saturn_firmware_init(str
+ return;
+
+ err = request_firmware(&fw, fw_name, &cp->pdev->dev);
+- if (err) {
+- pr_err("Failed to load firmware \"%s\"\n",
+- fw_name);
++ if (err)
+ return;
+- }
+ if (fw->size < 2) {
+ pr_err("bogus length %zu in \"%s\"\n",
+ fw->size, fw_name);
+Index: linux/drivers/net/hamradio/yam.c
+===================================================================
+--- linux.orig/drivers/net/hamradio/yam.c
++++ linux/drivers/net/hamradio/yam.c
+@@ -372,11 +372,8 @@ static unsigned char *add_mcs(unsigned c
+ }
+ err = request_firmware(&fw, fw_name[predef], &pdev->dev);
+ platform_device_unregister(pdev);
+- if (err) {
+- printk(KERN_ERR "Failed to load firmware \"%s\"\n",
+- fw_name[predef]);
++ if (err)
+ return NULL;
+- }
+ if (fw->size != YAM_FPGA_SIZE) {
+ printk(KERN_ERR "Bogus length %zu in firmware \"%s\"\n",
+ fw->size, fw_name[predef]);
+Index: linux/drivers/net/usb/kaweth.c
+===================================================================
+--- linux.orig/drivers/net/usb/kaweth.c
++++ linux/drivers/net/usb/kaweth.c
+@@ -390,10 +390,8 @@ static int kaweth_download_firmware(stru
+ int ret;
+
+ ret = request_firmware(&fw, fwname, &kaweth->dev->dev);
+- if (ret) {
+- dev_err(&kaweth->intf->dev, "Firmware request failed\n");
++ if (ret)
+ return ret;
+- }
+
+ if (fw->size > KAWETH_FIRMWARE_BUF_SIZE) {
+ dev_err(&kaweth->intf->dev, "Firmware too big: %zu\n",
+Index: linux/drivers/net/wimax/i2400m/fw.c
+===================================================================
+--- linux.orig/drivers/net/wimax/i2400m/fw.c
++++ linux/drivers/net/wimax/i2400m/fw.c
+@@ -1583,11 +1583,8 @@ int i2400m_dev_bootstrap(struct i2400m *
+ }
+ d_printf(1, dev, "trying firmware %s (%d)\n", fw_name, itr);
+ ret = request_firmware(&fw, fw_name, dev);
+- if (ret < 0) {
+- dev_err(dev, "fw %s: cannot load file: %d\n",
+- fw_name, ret);
++ if (ret)
+ continue;
+- }
+ i2400m->fw_name = fw_name;
+ ret = i2400m_fw_bootstrap(i2400m, fw, flags);
+ release_firmware(fw);
+@@ -1630,8 +1627,6 @@ void i2400m_fw_cache(struct i2400m *i240
+ kref_init(&i2400m_fw->kref);
+ result = request_firmware(&i2400m_fw->fw, i2400m->fw_name, dev);
+ if (result < 0) {
+- dev_err(dev, "firmware %s: failed to cache: %d\n",
+- i2400m->fw_name, result);
+ kfree(i2400m_fw);
+ i2400m_fw = (void *) ~0;
+ } else
+Index: linux/drivers/net/wireless/atmel/at76c50x-usb.c
+===================================================================
+--- linux.orig/drivers/net/wireless/atmel/at76c50x-usb.c
++++ linux/drivers/net/wireless/atmel/at76c50x-usb.c
+@@ -1622,13 +1622,8 @@ static struct fwentry *at76_load_firmwar
+
+ at76_dbg(DBG_FW, "downloading firmware %s", fwe->fwname);
+ ret = request_firmware(&fwe->fw, fwe->fwname, &udev->dev);
+- if (ret < 0) {
+- dev_err(&udev->dev, "firmware %s not found!\n",
+- fwe->fwname);
+- dev_err(&udev->dev,
+- "you may need to download the firmware from http://developer.berlios.de/projects/at76c503a/\n");
++ if (ret)
+ goto exit;
+- }
+
+ at76_dbg(DBG_FW, "got it.");
+ fwh = (struct at76_fw_header *)(fwe->fw->data);
+Index: linux/drivers/net/wireless/ath/ath9k/hif_usb.c
+===================================================================
+--- linux.orig/drivers/net/wireless/ath/ath9k/hif_usb.c
++++ linux/drivers/net/wireless/ath/ath9k/hif_usb.c
+@@ -1164,9 +1164,6 @@ static void ath9k_hif_usb_firmware_cb(co
+ if (!ret)
+ return;
+
+- dev_err(&hif_dev->udev->dev,
+- "ath9k_htc: Failed to get firmware %s\n",
+- hif_dev->fw_name);
+ goto err_fw;
+ }
+
+Index: linux/drivers/net/wireless/ath/carl9170/usb.c
+===================================================================
+--- linux.orig/drivers/net/wireless/ath/carl9170/usb.c
++++ linux/drivers/net/wireless/ath/carl9170/usb.c
+@@ -1029,7 +1029,6 @@ static void carl9170_usb_firmware_step2(
+ return;
+ }
+
+- dev_err(&ar->udev->dev, "firmware not found.\n");
+ carl9170_usb_firmware_failed(ar);
+ }
+
+Index: linux/drivers/net/wireless/atmel/atmel.c
+===================================================================
+--- linux.orig/drivers/net/wireless/atmel/atmel.c
++++ linux/drivers/net/wireless/atmel/atmel.c
+@@ -3893,12 +3893,8 @@ static int reset_atmel_card(struct net_d
+ strcpy(priv->firmware_id, "atmel_at76c502.bin");
+ }
+ err = request_firmware(&fw_entry, priv->firmware_id, priv->sys_dev);
+- if (err != 0) {
+- printk(KERN_ALERT
+- "%s: firmware %s is missing, cannot continue.\n",
+- dev->name, priv->firmware_id);
++ if (err != 0)
+ return err;
+- }
+ } else {
+ int fw_index = 0;
+ int success = 0;
+Index: linux/drivers/net/wireless/broadcom/b43/main.c
+===================================================================
+--- linux.orig/drivers/net/wireless/broadcom/b43/main.c
++++ linux/drivers/net/wireless/broadcom/b43/main.c
+@@ -2263,19 +2263,8 @@ int b43_do_request_fw(struct b43_request
+ }
+ err = request_firmware(&ctx->blob, ctx->fwname,
+ ctx->dev->dev->dev);
+- if (err == -ENOENT) {
+- snprintf(ctx->errors[ctx->req_type],
+- sizeof(ctx->errors[ctx->req_type]),
+- "Firmware file \"%s\" not found\n",
+- ctx->fwname);
++ if (err)
+ return err;
+- } else if (err) {
+- snprintf(ctx->errors[ctx->req_type],
+- sizeof(ctx->errors[ctx->req_type]),
+- "Firmware file \"%s\" request failed (err=%d)\n",
+- ctx->fwname, err);
+- return err;
+- }
+ fw_ready:
+ if (ctx->blob->size < sizeof(struct b43_fw_header))
+ goto err_format;
+Index: linux/drivers/net/wireless/broadcom/b43legacy/main.c
+===================================================================
+--- linux.orig/drivers/net/wireless/broadcom/b43legacy/main.c
++++ linux/drivers/net/wireless/broadcom/b43legacy/main.c
+@@ -1554,11 +1554,8 @@ static int do_request_fw(struct b43legac
+ } else {
+ err = request_firmware(fw, path, dev->dev->dev);
+ }
+- if (err) {
+- b43legacyerr(dev->wl, "Firmware file \"%s\" not found "
+- "or load failed.\n", path);
++ if (err)
+ return err;
+- }
+ if ((*fw)->size < sizeof(struct b43legacy_fw_header))
+ goto err_format;
+ hdr = (struct b43legacy_fw_header *)((*fw)->data);
+Index: linux/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c
+===================================================================
+--- linux.orig/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c
++++ linux/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c
+@@ -378,19 +378,13 @@ static int brcms_request_fw(struct brcms
+ sprintf(fw_name, "%s-%d.fw", brcms_firmwares[i],
+ UCODE_LOADER_API_VER);
+ status = request_firmware(&wl->fw.fw_bin[i], fw_name, device);
+- if (status) {
+- wiphy_err(wl->wiphy, "%s: fail to load firmware %s\n",
+- KBUILD_MODNAME, fw_name);
++ if (status)
+ return status;
+- }
+ sprintf(fw_name, "%s_hdr-%d.fw", brcms_firmwares[i],
+ UCODE_LOADER_API_VER);
+ status = request_firmware(&wl->fw.fw_hdr[i], fw_name, device);
+- if (status) {
+- wiphy_err(wl->wiphy, "%s: fail to load firmware %s\n",
+- KBUILD_MODNAME, fw_name);
++ if (status)
+ return status;
+- }
+ wl->fw.hdr_num_entries[i] =
+ wl->fw.fw_hdr[i]->size / (sizeof(struct firmware_hdr));
+ }
+Index: linux/drivers/net/wireless/intel/ipw2x00/ipw2100.c
+===================================================================
+--- linux.orig/drivers/net/wireless/intel/ipw2x00/ipw2100.c
++++ linux/drivers/net/wireless/intel/ipw2x00/ipw2100.c
+@@ -8410,12 +8410,8 @@ static int ipw2100_get_firmware(struct i
+
+ rc = request_firmware(&fw->fw_entry, fw_name, &priv->pci_dev->dev);
+
+- if (rc < 0) {
+- printk(KERN_ERR DRV_NAME ": "
+- "%s: Firmware '%s' not available or load failed.\n",
+- priv->net_dev->name, fw_name);
++ if (rc)
+ return rc;
+- }
+ IPW_DEBUG_INFO("firmware data %p size %zd\n", fw->fw_entry->data,
+ fw->fw_entry->size);
+
+Index: linux/drivers/net/wireless/intel/ipw2x00/ipw2200.c
+===================================================================
+--- linux.orig/drivers/net/wireless/intel/ipw2x00/ipw2200.c
++++ linux/drivers/net/wireless/intel/ipw2x00/ipw2200.c
+@@ -3410,10 +3410,8 @@ static int ipw_get_fw(struct ipw_priv *p
+
+ /* ask firmware_class module to get the boot firmware off disk */
+ rc = request_firmware(raw, name, &priv->pci_dev->dev);
+- if (rc < 0) {
+- IPW_ERROR("%s request_firmware failed: Reason %d\n", name, rc);
++ if (rc)
+ return rc;
+- }
+
+ if ((*raw)->size < sizeof(*fw)) {
+ IPW_ERROR("%s is too small (%zd)\n", name, (*raw)->size);
+Index: linux/drivers/net/wireless/intel/iwlegacy/3945-mac.c
+===================================================================
+--- linux.orig/drivers/net/wireless/intel/iwlegacy/3945-mac.c
++++ linux/drivers/net/wireless/intel/iwlegacy/3945-mac.c
+@@ -1854,7 +1854,6 @@ il3945_read_ucode(struct il_priv *il)
+ sprintf(buf, "%s%u%s", name_pre, idx, ".ucode");
+ ret = request_firmware(&ucode_raw, buf, &il->pci_dev->dev);
+ if (ret < 0) {
+- IL_ERR("%s firmware file req failed: %d\n", buf, ret);
+ if (ret == -ENOENT)
+ continue;
+ else
+Index: linux/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
+===================================================================
+--- linux.orig/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
++++ linux/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
+@@ -236,8 +236,6 @@ static int iwl_request_firmware(struct i
+ }
+
+ if (drv->fw_index < cfg->ucode_api_min) {
+- IWL_ERR(drv, "no suitable firmware found!\n");
+-
+ if (cfg->ucode_api_min == cfg->ucode_api_max) {
+ IWL_ERR(drv, "%s%d is required\n", fw_pre_name,
+ cfg->ucode_api_max);
+Index: linux/drivers/net/wireless/marvell/libertas_tf/if_usb.c
+===================================================================
+--- linux.orig/drivers/net/wireless/marvell/libertas_tf/if_usb.c
++++ linux/drivers/net/wireless/marvell/libertas_tf/if_usb.c
+@@ -817,8 +817,6 @@ static int if_usb_prog_firmware(struct i
+ kernel_param_lock(THIS_MODULE);
+ ret = request_firmware(&cardp->fw, lbtf_fw_name, &cardp->udev->dev);
+ if (ret < 0) {
+- pr_err("request_firmware() failed with %#x\n", ret);
+- pr_err("firmware %s not found\n", lbtf_fw_name);
+ kernel_param_unlock(THIS_MODULE);
+ goto done;
+ }
+Index: linux/drivers/net/wireless/marvell/mwifiex/main.c
+===================================================================
+--- linux.orig/drivers/net/wireless/marvell/mwifiex/main.c
++++ linux/drivers/net/wireless/marvell/mwifiex/main.c
+@@ -528,11 +528,8 @@ static int _mwifiex_fw_dpc(const struct
+ struct wireless_dev *wdev;
+ struct completion *fw_done = adapter->fw_done;
+
+- if (!firmware) {
+- mwifiex_dbg(adapter, ERROR,
+- "Failed to get firmware %s\n", adapter->fw_name);
++ if (!firmware)
+ goto err_dnld_fw;
+- }
+
+ memset(&fw, 0, sizeof(struct mwifiex_fw_image));
+ adapter->firmware = firmware;
+Index: linux/drivers/net/wireless/marvell/mwl8k.c
+===================================================================
+--- linux.orig/drivers/net/wireless/marvell/mwl8k.c
++++ linux/drivers/net/wireless/marvell/mwl8k.c
+@@ -5724,16 +5724,12 @@ static int mwl8k_firmware_load_success(s
+ static void mwl8k_fw_state_machine(const struct firmware *fw, void *context)
+ {
+ struct mwl8k_priv *priv = context;
+- struct mwl8k_device_info *di = priv->device_info;
+ int rc;
+
+ switch (priv->fw_state) {
+ case FW_STATE_INIT:
+- if (!fw) {
+- printk(KERN_ERR "%s: Error requesting helper fw %s\n",
+- pci_name(priv->pdev), di->helper_image);
++ if (!fw)
+ goto fail;
+- }
+ priv->fw_helper = fw;
+ rc = mwl8k_request_fw(priv, priv->fw_pref, &priv->fw_ucode,
+ true);
+@@ -5768,11 +5764,8 @@ static void mwl8k_fw_state_machine(const
+ break;
+
+ case FW_STATE_LOADING_ALT:
+- if (!fw) {
+- printk(KERN_ERR "%s: Error requesting alt fw %s\n",
+- pci_name(priv->pdev), di->helper_image);
++ if (!fw)
+ goto fail;
+- }
+ priv->fw_ucode = fw;
+ rc = mwl8k_firmware_load_success(priv);
+ if (rc)
+@@ -5810,10 +5803,8 @@ retry:
+
+ /* Ask userland hotplug daemon for the device firmware */
+ rc = mwl8k_request_firmware(priv, fw_image, nowait);
+- if (rc) {
+- wiphy_err(hw->wiphy, "Firmware files not found\n");
++ if (rc)
+ return rc;
+- }
+
+ if (nowait)
+ return rc;
+Index: linux/drivers/net/wireless/intersil/orinoco/fw.c
+===================================================================
+--- linux.orig/drivers/net/wireless/intersil/orinoco/fw.c
++++ linux/drivers/net/wireless/intersil/orinoco/fw.c
+@@ -132,7 +132,6 @@ orinoco_dl_firmware(struct orinoco_priva
+ err = request_firmware(&fw_entry, firmware, priv->dev);
+
+ if (err) {
+- dev_err(dev, "Cannot find firmware %s\n", firmware);
+ err = -ENOENT;
+ goto free;
+ }
+@@ -292,10 +291,8 @@ symbol_dl_firmware(struct orinoco_privat
+ const struct firmware *fw_entry;
+
+ if (!orinoco_cached_fw_get(priv, true)) {
+- if (request_firmware(&fw_entry, fw->pri_fw, priv->dev) != 0) {
+- dev_err(dev, "Cannot find firmware: %s\n", fw->pri_fw);
++ if (request_firmware(&fw_entry, fw->pri_fw, priv->dev) != 0)
+ return -ENOENT;
+- }
+ } else
+ fw_entry = orinoco_cached_fw_get(priv, true);
+
+@@ -311,10 +308,8 @@ symbol_dl_firmware(struct orinoco_privat
+ }
+
+ if (!orinoco_cached_fw_get(priv, false)) {
+- if (request_firmware(&fw_entry, fw->sta_fw, priv->dev) != 0) {
+- dev_err(dev, "Cannot find firmware: %s\n", fw->sta_fw);
++ if (request_firmware(&fw_entry, fw->sta_fw, priv->dev) != 0)
+ return -ENOENT;
+- }
+ } else
+ fw_entry = orinoco_cached_fw_get(priv, false);
+
+Index: linux/drivers/net/wireless/intersil/orinoco/orinoco_usb.c
+===================================================================
+--- linux.orig/drivers/net/wireless/intersil/orinoco/orinoco_usb.c
++++ linux/drivers/net/wireless/intersil/orinoco/orinoco_usb.c
+@@ -1677,7 +1677,6 @@ static int ezusb_probe(struct usb_interf
+ if (ezusb_firmware_download(upriv, &firmware) < 0)
+ goto error;
+ } else {
+- err("No firmware to download");
+ goto error;
+ }
+
+Index: linux/drivers/net/wireless/intersil/p54/p54pci.c
+===================================================================
+--- linux.orig/drivers/net/wireless/intersil/p54/p54pci.c
++++ linux/drivers/net/wireless/intersil/p54/p54pci.c
+@@ -499,7 +499,6 @@ static void p54p_firmware_step2(const st
+ int err;
+
+ if (!fw) {
+- dev_err(&pdev->dev, "Cannot find firmware (isl3886pci)\n");
+ err = -ENOENT;
+ goto out;
+ }
+Index: linux/drivers/net/wireless/intersil/p54/p54spi.c
+===================================================================
+--- linux.orig/drivers/net/wireless/intersil/p54/p54spi.c
++++ linux/drivers/net/wireless/intersil/p54/p54spi.c
+@@ -170,10 +170,8 @@ static int p54spi_request_firmware(struc
+ /* FIXME: should driver use it's own struct device? */
+ ret = request_firmware(&priv->firmware, "3826.arm", &priv->spi->dev);
+
+- if (ret < 0) {
+- dev_err(&priv->spi->dev, "request_firmware() failed: %d", ret);
++ if (ret)
+ return ret;
+- }
+
+ ret = p54_parse_firmware(dev, priv->firmware);
+ if (ret) {
+Index: linux/drivers/net/wireless/intersil/p54/p54usb.c
+===================================================================
+--- linux.orig/drivers/net/wireless/intersil/p54/p54usb.c
++++ linux/drivers/net/wireless/intersil/p54/p54usb.c
+@@ -931,7 +931,6 @@ static void p54u_load_firmware_cb(const
+ err = p54u_start_ops(priv);
+ } else {
+ err = -ENOENT;
+- dev_err(&udev->dev, "Firmware not found.\n");
+ }
+
+ complete(&priv->fw_wait_load);
+Index: linux/drivers/net/wireless/intersil/prism54/islpci_dev.c
+===================================================================
+--- linux.orig/drivers/net/wireless/intersil/prism54/islpci_dev.c
++++ linux/drivers/net/wireless/intersil/prism54/islpci_dev.c
+@@ -92,12 +92,9 @@ isl_upload_firmware(islpci_private *priv
+ const u32 *fw_ptr;
+
+ rc = request_firmware(&fw_entry, priv->firmware, PRISM_FW_PDEV);
+- if (rc) {
+- printk(KERN_ERR
+- "%s: request_firmware() failed for '%s'\n",
+- "prism54", priv->firmware);
++ if (rc)
+ return rc;
+- }
++
+ /* prepare the Direct Memory Base register */
+ reg = ISL38XX_DEV_FIRMWARE_ADDRES;
+
+Index: linux/drivers/net/wireless/ralink/rt2x00/rt2x00firmware.c
+===================================================================
+--- linux.orig/drivers/net/wireless/ralink/rt2x00/rt2x00firmware.c
++++ linux/drivers/net/wireless/ralink/rt2x00/rt2x00firmware.c
+@@ -49,10 +49,8 @@ static int rt2x00lib_request_firmware(st
+ rt2x00_info(rt2x00dev, "Loading firmware file '%s'\n", fw_name);
+
+ retval = request_firmware(&fw, fw_name, device);
+- if (retval) {
+- rt2x00_err(rt2x00dev, "Failed to request Firmware\n");
++ if (retval)
+ return retval;
+- }
+
+ if (!fw || !fw->size || !fw->data) {
+ rt2x00_err(rt2x00dev, "Failed to read Firmware\n");
+Index: linux/drivers/net/wireless/realtek/rtlwifi/core.c
+===================================================================
+--- linux.orig/drivers/net/wireless/realtek/rtlwifi/core.c
++++ linux/drivers/net/wireless/realtek/rtlwifi/core.c
+@@ -111,7 +111,6 @@ static void rtl_fw_do_work(const struct
+ if (!err)
+ goto found_alt;
+ }
+- pr_err("Selected firmware is not available\n");
+ rtlpriv->max_fw_size = 0;
+ return;
+ }
+Index: linux/drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c
+===================================================================
+--- linux.orig/drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c
++++ linux/drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c
+@@ -86,13 +86,11 @@ static void rtl92se_fw_cb(const struct f
+ struct ieee80211_hw *hw = context;
+ struct rtl_priv *rtlpriv = rtl_priv(hw);
+ struct rt_firmware *pfirmware = NULL;
+- char *fw_name = "rtlwifi/rtl8192sefw.bin";
+
+ RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
+ "Firmware callback routine entered!\n");
+ complete(&rtlpriv->firmware_loading_complete);
+ if (!firmware) {
+- pr_err("Firmware %s not available\n", fw_name);
+ rtlpriv->max_fw_size = 0;
+ return;
+ }
+Index: linux/drivers/net/wireless/ti/wl1251/main.c
+===================================================================
+--- linux.orig/drivers/net/wireless/ti/wl1251/main.c
++++ linux/drivers/net/wireless/ti/wl1251/main.c
+@@ -71,10 +71,8 @@ static int wl1251_fetch_firmware(struct
+
+ ret = request_firmware(&fw, WL1251_FW_NAME, dev);
+
+- if (ret < 0) {
+- wl1251_error("could not get firmware: %d", ret);
++ if (ret)
+ return ret;
+- }
+
+ if (fw->size % 4) {
+ wl1251_error("firmware size is not multiple of 32 bits: %zu",
+@@ -110,10 +108,8 @@ static int wl1251_fetch_nvs(struct wl125
+
+ ret = request_firmware(&fw, WL1251_NVS_NAME, dev);
+
+- if (ret < 0) {
+- wl1251_error("could not get nvs file: %d", ret);
++ if (ret)
+ return ret;
+- }
+
+ if (fw->size % 4) {
+ wl1251_error("nvs size is not multiple of 32 bits: %zu",
+Index: linux/drivers/net/wireless/ti/wlcore/main.c
+===================================================================
+--- linux.orig/drivers/net/wireless/ti/wlcore/main.c
++++ linux/drivers/net/wireless/ti/wlcore/main.c
+@@ -768,10 +768,8 @@ static int wl12xx_fetch_firmware(struct
+
+ ret = request_firmware(&fw, fw_name, wl->dev);
+
+- if (ret < 0) {
+- wl1271_error("could not get firmware %s: %d", fw_name, ret);
++ if (ret)
+ return ret;
+- }
+
+ if (fw->size % 4) {
+ wl1271_error("firmware size is not multiple of 32 bits: %zu",
+Index: linux/drivers/net/wireless/zydas/zd1201.c
+===================================================================
+--- linux.orig/drivers/net/wireless/zydas/zd1201.c
++++ linux/drivers/net/wireless/zydas/zd1201.c
+@@ -65,8 +65,6 @@ static int zd1201_fw_upload(struct usb_d
+
+ err = request_firmware(&fw_entry, fwfile, &dev->dev);
+ if (err) {
+- dev_err(&dev->dev, "Failed to load %s firmware file!\n", fwfile);
+- dev_err(&dev->dev, "Make sure the hotplug firmware loader is installed.\n");
+ dev_err(&dev->dev, "Goto http://linux-lc100020.sourceforge.net for more info.\n");
+ return err;
+ }
+Index: linux/drivers/net/wireless/zydas/zd1211rw/zd_usb.c
+===================================================================
+--- linux.orig/drivers/net/wireless/zydas/zd1211rw/zd_usb.c
++++ linux/drivers/net/wireless/zydas/zd1211rw/zd_usb.c
+@@ -120,16 +120,9 @@ static void int_urb_complete(struct urb
+ static int request_fw_file(
+ const struct firmware **fw, const char *name, struct device *device)
+ {
+- int r;
+-
+ dev_dbg_f(device, "fw name %s\n", name);
+
+- r = request_firmware(fw, name, device);
+- if (r)
+- dev_err(device,
+- "Could not load firmware file %s. Error number %d\n",
+- name, r);
+- return r;
++ return request_firmware(fw, name, device);
+ }
+
+ static inline u16 get_bcdDevice(const struct usb_device *udev)
+Index: linux/drivers/scsi/advansys.c
+===================================================================
+--- linux.orig/drivers/scsi/advansys.c
++++ linux/drivers/scsi/advansys.c
+@@ -4107,8 +4107,6 @@ static int AscInitAsc1000Driver(ASC_DVC_
+
+ err = request_firmware(&fw, fwname, asc_dvc->drv_ptr->dev);
+ if (err) {
+- printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
+- fwname, err);
+ asc_dvc->err_code |= ASC_IERR_MCODE_CHKSUM;
+ return err;
+ }
+@@ -4473,8 +4471,6 @@ static int AdvInitAsc3550Driver(ADV_DVC_
+
+ err = request_firmware(&fw, fwname, asc_dvc->drv_ptr->dev);
+ if (err) {
+- printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
+- fwname, err);
+ asc_dvc->err_code = ASC_IERR_MCODE_CHKSUM;
+ return err;
+ }
+@@ -4973,8 +4969,6 @@ static int AdvInitAsc38C0800Driver(ADV_D
+
+ err = request_firmware(&fw, fwname, asc_dvc->drv_ptr->dev);
+ if (err) {
+- printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
+- fwname, err);
+ asc_dvc->err_code = ASC_IERR_MCODE_CHKSUM;
+ return err;
+ }
+@@ -5461,8 +5455,6 @@ static int AdvInitAsc38C1600Driver(ADV_D
+
+ err = request_firmware(&fw, fwname, asc_dvc->drv_ptr->dev);
+ if (err) {
+- printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
+- fwname, err);
+ asc_dvc->err_code = ASC_IERR_MCODE_CHKSUM;
+ return err;
+ }
+Index: linux/drivers/scsi/aic94xx/aic94xx_init.c
+===================================================================
+--- linux.orig/drivers/scsi/aic94xx/aic94xx_init.c
++++ linux/drivers/scsi/aic94xx/aic94xx_init.c
+@@ -384,8 +384,6 @@ static ssize_t asd_store_update_bios(str
+ filename_ptr,
+ &asd_ha->pcidev->dev);
+ if (err) {
+- asd_printk("Failed to load bios image file %s, error %d\n",
+- filename_ptr, err);
+ err = FAIL_OPEN_BIOS_FILE;
+ goto out1;
+ }
+Index: linux/drivers/scsi/aic94xx/aic94xx_seq.c
+===================================================================
+--- linux.orig/drivers/scsi/aic94xx/aic94xx_seq.c
++++ linux/drivers/scsi/aic94xx/aic94xx_seq.c
+@@ -1317,11 +1317,8 @@ int asd_init_seqs(struct asd_ha_struct *
+
+ err = asd_request_firmware(asd_ha);
+
+- if (err) {
+- asd_printk("Failed to load sequencer firmware file %s, error %d\n",
+- SAS_RAZOR_SEQUENCER_FW_FILE, err);
++ if (err)
+ return err;
+- }
+
+ err = asd_seq_download_seqs(asd_ha);
+ if (err) {
+Index: linux/drivers/scsi/bfa/bfad.c
+===================================================================
+--- linux.orig/drivers/scsi/bfa/bfad.c
++++ linux/drivers/scsi/bfa/bfad.c
+@@ -1755,7 +1755,6 @@ bfad_read_firmware(struct pci_dev *pdev,
+ const struct firmware *fw;
+
+ if (request_firmware(&fw, fw_name, &pdev->dev)) {
+- printk(KERN_ALERT "Can't locate firmware %s\n", fw_name);
+ *bfi_image = NULL;
+ goto out;
+ }
+Index: linux/drivers/scsi/ipr.c
+===================================================================
+--- linux.orig/drivers/scsi/ipr.c
++++ linux/drivers/scsi/ipr.c
+@@ -4102,10 +4102,8 @@ static ssize_t ipr_store_update_fw(struc
+ if (endline)
+ *endline = '\0';
+
+- if (request_firmware(&fw_entry, fname, &ioa_cfg->pdev->dev)) {
+- dev_err(&ioa_cfg->pdev->dev, "Firmware file %s not found\n", fname);
++ if (request_firmware(&fw_entry, fname, &ioa_cfg->pdev->dev))
+ return -EIO;
+- }
+
+ image_hdr = (struct ipr_ucode_image_header *)fw_entry->data;
+
+Index: linux/drivers/scsi/pm8001/pm8001_ctl.c
+===================================================================
+--- linux.orig/drivers/scsi/pm8001/pm8001_ctl.c
++++ linux/drivers/scsi/pm8001/pm8001_ctl.c
+@@ -737,10 +737,6 @@ static ssize_t pm8001_store_update_fw(st
+ pm8001_ha->dev);
+
+ if (ret) {
+- PM8001_FAIL_DBG(pm8001_ha,
+- pm8001_printk(
+- "Failed to load firmware image file %s, error %d\n",
+- filename_ptr, ret));
+ pm8001_ha->fw_status = FAIL_OPEN_BIOS_FILE;
+ goto out;
+ }
+Index: linux/drivers/scsi/qla1280.c
+===================================================================
+--- linux.orig/drivers/scsi/qla1280.c
++++ linux/drivers/scsi/qla1280.c
+@@ -1552,8 +1552,6 @@ qla1280_request_firmware(struct scsi_qla
+ err = request_firmware(&fw, fwname, &ha->pdev->dev);
+
+ if (err) {
+- printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
+- fwname, err);
+ fw = ERR_PTR(err);
+ goto unlock;
+ }
+Index: linux/drivers/scsi/qla2xxx/qla_init.c
+===================================================================
+--- linux.orig/drivers/scsi/qla2xxx/qla_init.c
++++ linux/drivers/scsi/qla2xxx/qla_init.c
+@@ -7470,8 +7470,6 @@ qla2x00_load_risc(scsi_qla_host_t *vha,
+ /* Load firmware blob. */
+ blob = qla2x00_request_firmware(vha);
+ if (!blob) {
+- ql_log(ql_log_info, vha, 0x0083,
+- "Firmware image unavailable.\n");
+ ql_log(ql_log_info, vha, 0x0084,
+ "Firmware images can be retrieved from: "QLA_FW_URL ".\n");
+ return QLA_FUNCTION_FAILED;
+@@ -7573,8 +7571,6 @@ qla24xx_load_risc_blob(scsi_qla_host_t *
+ /* Load firmware blob. */
+ blob = qla2x00_request_firmware(vha);
+ if (!blob) {
+- ql_log(ql_log_warn, vha, 0x0090,
+- "Firmware image unavailable.\n");
+ ql_log(ql_log_warn, vha, 0x0091,
+ "Firmware images can be retrieved from: "
+ QLA_FW_URL ".\n");
+Index: linux/drivers/scsi/qla2xxx/qla_nx.c
+===================================================================
+--- linux.orig/drivers/scsi/qla2xxx/qla_nx.c
++++ linux/drivers/scsi/qla2xxx/qla_nx.c
+@@ -2464,11 +2464,8 @@ try_blob_fw:
+
+ /* Load firmware blob. */
+ blob = ha->hablob = qla2x00_request_firmware(vha);
+- if (!blob) {
+- ql_log(ql_log_fatal, vha, 0x00a3,
+- "Firmware image not present.\n");
++ if (!blob)
+ goto fw_load_failed;
+- }
+
+ /* Validating firmware blob */
+ if (qla82xx_validate_firmware_blob(vha,
+Index: linux/drivers/scsi/qla2xxx/qla_os.c
+===================================================================
+--- linux.orig/drivers/scsi/qla2xxx/qla_os.c
++++ linux/drivers/scsi/qla2xxx/qla_os.c
+@@ -6543,8 +6543,6 @@ qla2x00_request_firmware(scsi_qla_host_t
+ goto out;
+
+ if (request_firmware(&blob->fw, blob->name, &ha->pdev->dev)) {
+- ql_log(ql_log_warn, vha, 0x0063,
+- "Failed to load firmware image (%s).\n", blob->name);
+ blob->fw = NULL;
+ blob = NULL;
+ goto out;
+Index: linux/drivers/scsi/qlogicpti.c
+===================================================================
+--- linux.orig/drivers/scsi/qlogicpti.c
++++ linux/drivers/scsi/qlogicpti.c
+@@ -475,11 +475,8 @@ static int qlogicpti_load_firmware(struc
+ int i, timeout;
+
+ err = request_firmware(&fw, fwname, &qpti->op->dev);
+- if (err) {
+- printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
+- fwname, err);
++ if (err)
+ return err;
+- }
+ if (fw->size % 2) {
+ printk(KERN_ERR "Bogus length %zu in image \"%s\"\n",
+ fw->size, fwname);
+Index: linux/drivers/media/usb/go7007/go7007-driver.c
+===================================================================
+--- linux.orig/drivers/media/usb/go7007/go7007-driver.c
++++ linux/drivers/media/usb/go7007/go7007-driver.c
+@@ -92,10 +92,8 @@ static int go7007_load_encoder(struct go
+ u16 intr_val, intr_data;
+
+ if (go->boot_fw == NULL) {
+- if (request_firmware(&fw_entry, fw_name, go->dev)) {
+- v4l2_err(go, "unable to load firmware from file \"%s\"\n", fw_name);
++ if (request_firmware(&fw_entry, fw_name, go->dev))
+ return -1;
+- }
+ if (fw_entry->size < 16 || memcmp(fw_entry->data, "WISGO7007FW", 11)) {
+ v4l2_err(go, "file \"%s\" does not appear to be go7007 firmware\n", fw_name);
+ release_firmware(fw_entry);
+Index: linux/drivers/media/usb/go7007/go7007-fw.c
+===================================================================
+--- linux.orig/drivers/media/usb/go7007/go7007-fw.c
++++ linux/drivers/media/usb/go7007/go7007-fw.c
+@@ -1573,12 +1573,8 @@ int go7007_construct_fw_image(struct go7
+ default:
+ return -1;
+ }
+- if (request_firmware(&fw_entry, GO7007_FW_NAME, go->dev)) {
+- dev_err(go->dev,
+- "unable to load firmware from file \"%s\"\n",
+- GO7007_FW_NAME);
++ if (request_firmware(&fw_entry, GO7007_FW_NAME, go->dev))
+ return -1;
+- }
+ code = kcalloc(codespace, 2, GFP_KERNEL);
+ if (code == NULL)
+ goto fw_failed;
+Index: linux/drivers/media/usb/go7007/go7007-loader.c
+===================================================================
+--- linux.orig/drivers/media/usb/go7007/go7007-loader.c
++++ linux/drivers/media/usb/go7007/go7007-loader.c
+@@ -75,11 +75,8 @@ static int go7007_loader_probe(struct us
+
+ dev_info(&interface->dev, "loading firmware %s\n", fw1);
+
+- if (request_firmware(&fw, fw1, &usbdev->dev)) {
+- dev_err(&interface->dev,
+- "unable to load firmware from file \"%s\"\n", fw1);
++ if (request_firmware(&fw, fw1, &usbdev->dev))
+ goto failed2;
+- }
+ ret = cypress_load_firmware(usbdev, fw, CYPRESS_FX2);
+ release_firmware(fw);
+ if (0 != ret) {
+@@ -90,11 +87,8 @@ static int go7007_loader_probe(struct us
+ if (fw2 == NULL)
+ return 0;
+
+- if (request_firmware(&fw, fw2, &usbdev->dev)) {
+- dev_err(&interface->dev,
+- "unable to load firmware from file \"%s\"\n", fw2);
++ if (request_firmware(&fw, fw2, &usbdev->dev))
+ goto failed2;
+- }
+ ret = cypress_load_firmware(usbdev, fw, CYPRESS_FX2);
+ release_firmware(fw);
+ if (0 != ret) {
+Index: linux/drivers/staging/rtl8192u/r819xU_firmware.c
+===================================================================
+--- linux.orig/drivers/staging/rtl8192u/r819xU_firmware.c
++++ linux/drivers/staging/rtl8192u/r819xU_firmware.c
+@@ -245,10 +245,8 @@ bool init_firmware(struct net_device *de
+ */
+ if (rst_opt == OPT_SYSTEM_RESET) {
+ rc = request_firmware(&fw_entry, fw_name[init_step], &priv->udev->dev);
+- if (rc < 0) {
+- RT_TRACE(COMP_ERR, "request firmware fail!\n");
++ if (rc)
+ goto download_firmware_fail;
+- }
+
+ if (fw_entry->size > sizeof(pfirmware->firmware_buf)) {
+ RT_TRACE(COMP_ERR, "img file size exceed the container buffer fail!\n");
+Index: linux/drivers/staging/rtl8712/hal_init.c
+===================================================================
+--- linux.orig/drivers/staging/rtl8712/hal_init.c
++++ linux/drivers/staging/rtl8712/hal_init.c
+@@ -67,8 +67,6 @@ int rtl871x_load_fw(struct _adapter *pad
+ dev_info(dev, "r8712u: Loading firmware from \"%s\"\n", firmware_file);
+ rc = request_firmware_nowait(THIS_MODULE, 1, firmware_file, dev,
+ GFP_KERNEL, padapter, rtl871x_load_fw_cb);
+- if (rc)
+- dev_err(dev, "r8712u: Firmware request error %d\n", rc);
+ return rc;
+ }
+ MODULE_FIRMWARE("rtlwifi/rtl8712u.bin");
+Index: linux/drivers/net/ethernet/alacritech/slicoss.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/alacritech/slicoss.c
++++ linux/drivers/net/ethernet/alacritech/slicoss.c
+@@ -1063,11 +1063,8 @@ static int slic_load_rcvseq_firmware(str
+ file = (sdev->model == SLIC_MODEL_OASIS) ? SLIC_RCV_FIRMWARE_OASIS :
+ SLIC_RCV_FIRMWARE_MOJAVE;
+ err = request_firmware(&fw, file, &sdev->pdev->dev);
+- if (err) {
+- dev_err(&sdev->pdev->dev,
+- "failed to load receive sequencer firmware %s\n", file);
++ if (err)
+ return err;
+- }
+ /* Do an initial sanity check concerning firmware size now. A further
+ * check follows below.
+ */
+@@ -1138,10 +1135,8 @@ static int slic_load_firmware(struct sli
+ file = (sdev->model == SLIC_MODEL_OASIS) ? SLIC_FIRMWARE_OASIS :
+ SLIC_FIRMWARE_MOJAVE;
+ err = request_firmware(&fw, file, &sdev->pdev->dev);
+- if (err) {
+- dev_err(&sdev->pdev->dev, "failed to load firmware %s\n", file);
++ if (err)
+ return err;
+- }
+ /* Do an initial sanity check concerning firmware size now. A further
+ * check follows below.
+ */
+Index: linux/drivers/staging/vt6656/firmware.c
+===================================================================
+--- linux.orig/drivers/staging/vt6656/firmware.c
++++ linux/drivers/staging/vt6656/firmware.c
+@@ -39,11 +39,8 @@ int vnt_download_firmware(struct vnt_pri
+ dev_dbg(dev, "---->Download firmware\n");
+
+ rc = request_firmware(&fw, FIRMWARE_NAME, dev);
+- if (rc) {
+- dev_err(dev, "firmware file %s request failed (%d)\n",
+- FIRMWARE_NAME, rc);
+- goto out;
+- }
++ if (rc)
++ goto out;
+
+ buffer = kmalloc(FIRMWARE_CHUNK_SIZE, GFP_KERNEL);
+ if (!buffer)
+Index: linux/drivers/tty/cyclades.c
+===================================================================
+--- linux.orig/drivers/tty/cyclades.c
++++ linux/drivers/tty/cyclades.c
+@@ -3489,10 +3489,8 @@ static int cyz_load_fw(struct pci_dev *p
+ int retval;
+
+ retval = request_firmware(&fw, "cyzfirm.bin", &pdev->dev);
+- if (retval) {
+- dev_err(&pdev->dev, "can't get firmware\n");
++ if (retval)
+ goto err;
+- }
+
+ /* Check whether the firmware is already loaded and running. If
+ positive, skip this board */
+Index: linux/drivers/tty/moxa.c
+===================================================================
+--- linux.orig/drivers/tty/moxa.c
++++ linux/drivers/tty/moxa.c
+@@ -862,13 +862,8 @@ static int moxa_init_board(struct moxa_b
+ }
+
+ ret = request_firmware(&fw, file, dev);
+- if (ret) {
+- printk(KERN_ERR "MOXA: request_firmware failed. Make sure "
+- "you've placed '%s' file into your firmware "
+- "loader directory (e.g. /lib/firmware)\n",
+- file);
++ if (ret)
+ goto err_free;
+- }
+
+ ret = moxa_load_fw(brd, fw);
+
+Index: linux/drivers/tty/serial/icom.c
+===================================================================
+--- linux.orig/drivers/tty/serial/icom.c
++++ linux/drivers/tty/serial/icom.c
+@@ -360,7 +360,6 @@ static void load_code(struct icom_port *
+
+ /* Load Call Setup into Adapter */
+ if (request_firmware(&fw, "icom_call_setup.bin", &dev->dev) < 0) {
+- dev_err(&dev->dev,"Unable to load icom_call_setup.bin firmware image\n");
+ status = -1;
+ goto load_code_exit;
+ }
+@@ -380,7 +379,6 @@ static void load_code(struct icom_port *
+
+ /* Load Resident DCE portion of Adapter */
+ if (request_firmware(&fw, "icom_res_dce.bin", &dev->dev) < 0) {
+- dev_err(&dev->dev,"Unable to load icom_res_dce.bin firmware image\n");
+ status = -1;
+ goto load_code_exit;
+ }
+@@ -425,7 +423,6 @@ static void load_code(struct icom_port *
+ }
+
+ if (request_firmware(&fw, "icom_asc.bin", &dev->dev) < 0) {
+- dev_err(&dev->dev,"Unable to load icom_asc.bin firmware image\n");
+ status = -1;
+ goto load_code_exit;
+ }
+Index: linux/drivers/tty/serial/ucc_uart.c
+===================================================================
+--- linux.orig/drivers/tty/serial/ucc_uart.c
++++ linux/drivers/tty/serial/ucc_uart.c
+@@ -1165,10 +1165,8 @@ static void uart_firmware_cont(const str
+ struct device *dev = context;
+ int ret;
+
+- if (!fw) {
+- dev_err(dev, "firmware not found\n");
++ if (!fw)
+ return;
+- }
+
+ firmware = (struct qe_firmware *) fw->data;
+
+Index: linux/drivers/usb/atm/cxacru.c
+===================================================================
+--- linux.orig/drivers/usb/atm/cxacru.c
++++ linux/drivers/usb/atm/cxacru.c
+@@ -1080,8 +1080,6 @@ static int cxacru_find_firmware(struct c
+ return -ENOENT;
+ }
+
+- usb_info(usbatm, "found firmware %s\n", buf);
+-
+ return 0;
+ }
+
+Index: linux/drivers/usb/atm/ueagle-atm.c
+===================================================================
+--- linux.orig/drivers/usb/atm/ueagle-atm.c
++++ linux/drivers/usb/atm/ueagle-atm.c
+@@ -650,10 +650,8 @@ static void uea_upload_pre_firmware(cons
+ int ret, size;
+
+ uea_enters(usb);
+- if (!fw_entry) {
+- uea_err(usb, "firmware is not available\n");
++ if (!fw_entry)
+ goto err;
+- }
+
+ pfw = fw_entry->data;
+ size = fw_entry->size;
+@@ -748,10 +746,6 @@ static int uea_load_firmware(struct usb_
+ ret = request_firmware_nowait(THIS_MODULE, 1, fw_name, &usb->dev,
+ GFP_KERNEL, usb,
+ uea_upload_pre_firmware);
+- if (ret)
+- uea_err(usb, "firmware %s is not available\n", fw_name);
+- else
+- uea_info(usb, "loading firmware %s\n", fw_name);
+
+ uea_leaves(usb);
+ return ret;
+@@ -913,12 +907,8 @@ static int request_dsp(struct uea_softc
+ }
+
+ ret = request_firmware(&sc->dsp_firm, dsp_name, &sc->usb_dev->dev);
+- if (ret < 0) {
+- uea_err(INS_TO_USBDEV(sc),
+- "requesting firmware %s failed with error %d\n",
+- dsp_name, ret);
++ if (ret)
+ return ret;
+- }
+
+ if (UEA_CHIP_VERSION(sc) == EAGLE_IV)
+ ret = check_dsp_e4(sc->dsp_firm->data, sc->dsp_firm->size);
+@@ -1631,12 +1621,8 @@ static int request_cmvs_old(struct uea_s
+
+ cmvs_file_name(sc, cmv_name, 1);
+ ret = request_firmware(fw, cmv_name, &sc->usb_dev->dev);
+- if (ret < 0) {
+- uea_err(INS_TO_USBDEV(sc),
+- "requesting firmware %s failed with error %d\n",
+- cmv_name, ret);
++ if (ret)
+ return ret;
+- }
+
+ data = (u8 *) (*fw)->data;
+ size = (*fw)->size;
+@@ -1673,9 +1659,6 @@ static int request_cmvs(struct uea_softc
+ "try to get older cmvs\n", cmv_name);
+ return request_cmvs_old(sc, cmvs, fw);
+ }
+- uea_err(INS_TO_USBDEV(sc),
+- "requesting firmware %s failed with error %d\n",
+- cmv_name, ret);
+ return ret;
+ }
+
+@@ -1958,11 +1941,8 @@ static int load_XILINX_firmware(struct u
+ uea_enters(INS_TO_USBDEV(sc));
+
+ ret = request_firmware(&fw_entry, fw_name, &sc->usb_dev->dev);
+- if (ret) {
+- uea_err(INS_TO_USBDEV(sc), "firmware %s is not available\n",
+- fw_name);
++ if (ret)
+ goto err0;
+- }
+
+ pfw = fw_entry->data;
+ size = fw_entry->size;
+Index: linux/drivers/usb/misc/emi26.c
+===================================================================
+--- linux.orig/drivers/usb/misc/emi26.c
++++ linux/drivers/usb/misc/emi26.c
+@@ -85,21 +85,17 @@ static int emi26_load_firmware (struct u
+
+ err = request_ihex_firmware(&loader_fw, "emi26/loader.fw", &dev->dev);
+ if (err)
+- goto nofw;
++ goto wraperr;
+
+ err = request_ihex_firmware(&bitstream_fw, "emi26/bitstream.fw",
+ &dev->dev);
+ if (err)
+- goto nofw;
++ goto wraperr;
+
+ err = request_ihex_firmware(&firmware_fw, "emi26/firmware.fw",
+ &dev->dev);
+- if (err) {
+- nofw:
+- dev_err(&dev->dev, "%s - request_firmware() failed\n",
+- __func__);
++ if (err)
+ goto wraperr;
+- }
+
+ /* Assert reset (stop the CPU in the EMI) */
+ err = emi26_set_reset(dev,1);
+Index: linux/drivers/usb/misc/ezusb.c
+===================================================================
+--- linux.orig/drivers/usb/misc/ezusb.c
++++ linux/drivers/usb/misc/ezusb.c
+@@ -76,12 +76,8 @@ static int ezusb_ihex_firmware_download(
+ const struct ihex_binrec *record;
+
+ if (request_ihex_firmware(&firmware, firmware_path,
+- &dev->dev)) {
+- dev_err(&dev->dev,
+- "%s - request \"%s\" failed\n",
+- __func__, firmware_path);
++ &dev->dev))
+ goto out;
+- }
+
+ ret = ezusb_set_reset(dev, fx.cpucs_reg, 0);
+ if (ret < 0)
+Index: linux/drivers/usb/misc/isight_firmware.c
+===================================================================
+--- linux.orig/drivers/usb/misc/isight_firmware.c
++++ linux/drivers/usb/misc/isight_firmware.c
+@@ -45,7 +45,6 @@ static int isight_firmware_load(struct u
+ return -ENOMEM;
+
+ if (request_firmware(&firmware, "isight.fw", &dev->dev) != 0) {
+- printk(KERN_ERR "Unable to load isight firmware\n");
+ ret = -ENODEV;
+ goto out;
+ }
+Index: linux/drivers/usb/serial/io_edgeport.c
+===================================================================
+--- linux.orig/drivers/usb/serial/io_edgeport.c
++++ linux/drivers/usb/serial/io_edgeport.c
+@@ -375,11 +375,8 @@ static void update_edgeport_E2PROM(struc
+
+ response = request_ihex_firmware(&fw, fw_name,
+ &edge_serial->serial->dev->dev);
+- if (response) {
+- dev_err(dev, "Failed to load image \"%s\" err %d\n",
+- fw_name, response);
++ if (response)
+ return;
+- }
+
+ rec = (const struct ihex_binrec *)fw->data;
+ BootMajorVersion = rec->data[0];
+Index: linux/drivers/usb/serial/io_ti.c
+===================================================================
+--- linux.orig/drivers/usb/serial/io_ti.c
++++ linux/drivers/usb/serial/io_ti.c
+@@ -1010,8 +1010,6 @@ static int download_fw(struct edgeport_s
+
+ status = request_firmware(&fw, fw_name, dev);
+ if (status) {
+- dev_err(dev, "Failed to load image \"%s\" err %d\n",
+- fw_name, status);
+ return status;
+ }
+
+Index: linux/drivers/usb/serial/ti_usb_3410_5052.c
+===================================================================
+--- linux.orig/drivers/usb/serial/ti_usb_3410_5052.c
++++ linux/drivers/usb/serial/ti_usb_3410_5052.c
+@@ -1689,10 +1689,8 @@ static int ti_download_firmware(struct t
+ }
+
+ check_firmware:
+- if (status) {
+- dev_err(&dev->dev, "%s - firmware not found\n", __func__);
++ if (status)
+ return -ENOENT;
+- }
+ if (fw_p->size > TI_FIRMWARE_BUF_SIZE) {
+ dev_err(&dev->dev, "%s - firmware too large %zu\n", __func__, fw_p->size);
+ release_firmware(fw_p);
+Index: linux/drivers/video/fbdev/broadsheetfb.c
+===================================================================
+--- linux.orig/drivers/video/fbdev/broadsheetfb.c
++++ linux/drivers/video/fbdev/broadsheetfb.c
+@@ -743,10 +743,8 @@ static ssize_t broadsheet_loadstore_wave
+ return -EINVAL;
+
+ err = request_firmware(&fw_entry, "broadsheet.wbf", dev);
+- if (err < 0) {
+- dev_err(dev, "Failed to get broadsheet waveform\n");
++ if (err)
+ goto err_failed;
+- }
+
+ /* try to enforce reasonable min max on waveform */
+ if ((fw_entry->size < 8*1024) || (fw_entry->size > 64*1024)) {
+Index: linux/drivers/video/fbdev/metronomefb.c
+===================================================================
+--- linux.orig/drivers/video/fbdev/metronomefb.c
++++ linux/drivers/video/fbdev/metronomefb.c
+@@ -679,10 +679,8 @@ static int metronomefb_probe(struct plat
+ a) request the waveform file from userspace
+ b) process waveform and decode into metromem */
+ retval = request_firmware(&fw_entry, "metronome.wbf", &dev->dev);
+- if (retval < 0) {
+- dev_err(&dev->dev, "Failed to get waveform\n");
++ if (retval)
+ goto err_csum_table;
+- }
+
+ retval = load_waveform((u8 *) fw_entry->data, fw_entry->size, 3, 31,
+ par);
+Index: linux/sound/drivers/vx/vx_hwdep.c
+===================================================================
+--- linux.orig/sound/drivers/vx/vx_hwdep.c
++++ linux/sound/drivers/vx/vx_hwdep.c
+@@ -71,10 +71,8 @@ int snd_vx_setup_firmware(struct vx_core
+ if (! fw_files[chip->type][i])
+ continue;
+ sprintf(path, "vx/%s", fw_files[chip->type][i]);
+- if (request_firmware(&fw, path, chip->dev)) {
+- snd_printk(KERN_ERR "vx: can't load firmware %s\n", path);
++ if (request_firmware(&fw, path, chip->dev))
+ return -ENOENT;
+- }
+ err = chip->ops->load_dsp(chip, i, fw);
+ if (err < 0) {
+ release_firmware(fw);
+Index: linux/sound/isa/msnd/msnd_pinnacle.c
+===================================================================
+--- linux.orig/sound/isa/msnd/msnd_pinnacle.c
++++ linux/sound/isa/msnd/msnd_pinnacle.c
+@@ -390,15 +390,11 @@ static int upload_dsp_code(struct snd_ca
+ outb(HPBLKSEL_0, chip->io + HP_BLKS);
+
+ err = request_firmware(&init_fw, INITCODEFILE, card->dev);
+- if (err < 0) {
+- printk(KERN_ERR LOGNAME ": Error loading " INITCODEFILE);
++ if (err)
+ goto cleanup1;
+- }
+ err = request_firmware(&perm_fw, PERMCODEFILE, card->dev);
+- if (err < 0) {
+- printk(KERN_ERR LOGNAME ": Error loading " PERMCODEFILE);
++ if (err)
+ goto cleanup;
+- }
+
+ memcpy_toio(chip->mappedbase, perm_fw->data, perm_fw->size);
+ if (snd_msnd_upload_host(chip, init_fw->data, init_fw->size) < 0) {
+Index: linux/sound/isa/sscape.c
+===================================================================
+--- linux.orig/sound/isa/sscape.c
++++ linux/sound/isa/sscape.c
+@@ -544,10 +544,8 @@ static int sscape_upload_bootblock(struc
+ int ret;
+
+ ret = request_firmware(&init_fw, "scope.cod", card->dev);
+- if (ret < 0) {
+- snd_printk(KERN_ERR "sscape: Error loading scope.cod");
++ if (ret)
+ return ret;
+- }
+ ret = upload_dma_data(sscape, init_fw->data, init_fw->size);
+
+ release_firmware(init_fw);
+@@ -584,11 +582,8 @@ static int sscape_upload_microcode(struc
+ snprintf(name, sizeof(name), "sndscape.co%d", version);
+
+ err = request_firmware(&init_fw, name, card->dev);
+- if (err < 0) {
+- snd_printk(KERN_ERR "sscape: Error loading sndscape.co%d",
+- version);
++ if (err)
+ return err;
+- }
+ err = upload_dma_data(sscape, init_fw->data, init_fw->size);
+ if (err == 0)
+ snd_printk(KERN_INFO "sscape: MIDI firmware loaded %zu KBs\n",
+Index: linux/sound/isa/wavefront/wavefront_synth.c
+===================================================================
+--- linux.orig/sound/isa/wavefront/wavefront_synth.c
++++ linux/sound/isa/wavefront/wavefront_synth.c
+@@ -1957,10 +1957,8 @@ wavefront_download_firmware (snd_wavefro
+ const struct firmware *firmware;
+
+ err = request_firmware(&firmware, path, dev->card->dev);
+- if (err < 0) {
+- snd_printk(KERN_ERR "firmware (%s) download failed!!!\n", path);
++ if (err)
+ return 1;
+- }
+
+ len = 0;
+ buf = firmware->data;
+Index: linux/sound/pci/asihpi/hpidspcd.c
+===================================================================
+--- linux.orig/sound/pci/asihpi/hpidspcd.c
++++ linux/sound/pci/asihpi/hpidspcd.c
+@@ -46,8 +46,6 @@ short hpi_dsp_code_open(u32 adapter, voi
+ err = request_firmware(&firmware, fw_name, &dev->dev);
+
+ if (err || !firmware) {
+- dev_err(&dev->dev, "%d, request_firmware failed for %s\n",
+- err, fw_name);
+ goto error1;
+ }
+ if (firmware->size < sizeof(header)) {
+Index: linux/sound/pci/echoaudio/echoaudio.c
+===================================================================
+--- linux.orig/sound/pci/echoaudio/echoaudio.c
++++ linux/sound/pci/echoaudio/echoaudio.c
+@@ -60,11 +60,8 @@ static int get_firmware(const struct fir
+ "firmware requested: %s\n", card_fw[fw_index].data);
+ snprintf(name, sizeof(name), "ea/%s", card_fw[fw_index].data);
+ err = request_firmware(fw_entry, name, &chip->pci->dev);
+- if (err < 0)
+- dev_err(chip->card->dev,
+- "get_firmware(): Firmware not available (%d)\n", err);
+ #ifdef CONFIG_PM_SLEEP
+- else
++ if (!err)
+ chip->fw_cache[fw_index] = *fw_entry;
+ #endif
+ return err;
+Index: linux/sound/pci/emu10k1/emu10k1_main.c
+===================================================================
+--- linux.orig/sound/pci/emu10k1/emu10k1_main.c
++++ linux/sound/pci/emu10k1/emu10k1_main.c
+@@ -888,10 +888,8 @@ static int snd_emu10k1_emu1010_init(stru
+ dev_info(emu->card->dev, "emu1010: EMU_HANA_ID = 0x%x\n", reg);
+
+ err = snd_emu1010_load_firmware(emu, 0, &emu->firmware);
+- if (err < 0) {
+- dev_info(emu->card->dev, "emu1010: Loading Firmware failed\n");
++ if (err < 0)
+ return err;
+- }
+
+ /* ID, should read & 0x7f = 0x55 when FPGA programmed. */
+ snd_emu1010_fpga_read(emu, EMU_HANA_ID, &reg);
+Index: linux/sound/pci/hda/hda_intel.c
+===================================================================
+--- linux.orig/sound/pci/hda/hda_intel.c
++++ linux/sound/pci/hda/hda_intel.c
+@@ -2079,8 +2079,6 @@ static void azx_firmware_cb(const struct
+
+ if (fw)
+ chip->fw = fw;
+- else
+- dev_err(card->dev, "Cannot load firmware, continue without patching\n");
+ if (!chip->disabled) {
+ /* continue probing */
+ azx_probe_continue(chip);
+Index: linux/sound/pci/korg1212/korg1212.c
+===================================================================
+--- linux.orig/sound/pci/korg1212/korg1212.c
++++ linux/sound/pci/korg1212/korg1212.c
+@@ -2348,7 +2348,6 @@ static int snd_korg1212_create(struct sn
+
+ err = request_firmware(&dsp_code, "korg/k1212.dsp", &pci->dev);
+ if (err < 0) {
+- snd_printk(KERN_ERR "firmware not available\n");
+ snd_korg1212_free(korg1212);
+ return err;
+ }
+Index: linux/sound/pci/mixart/mixart_hwdep.c
+===================================================================
+--- linux.orig/sound/pci/mixart/mixart_hwdep.c
++++ linux/sound/pci/mixart/mixart_hwdep.c
+@@ -571,11 +571,8 @@ int snd_mixart_setup_firmware(struct mix
+
+ for (i = 0; i < 3; i++) {
+ sprintf(path, "mixart/%s", fw_files[i]);
+- if (request_firmware(&fw_entry, path, &mgr->pci->dev)) {
+- dev_err(&mgr->pci->dev,
+- "miXart: can't load firmware %s\n", path);
++ if (request_firmware(&fw_entry, path, &mgr->pci->dev))
+ return -ENOENT;
+- }
+ /* fake hwdep dsp record */
+ err = mixart_dsp_load(mgr, i, fw_entry);
+ release_firmware(fw_entry);
+Index: linux/sound/pci/pcxhr/pcxhr_hwdep.c
+===================================================================
+--- linux.orig/sound/pci/pcxhr/pcxhr_hwdep.c
++++ linux/sound/pci/pcxhr/pcxhr_hwdep.c
+@@ -385,12 +385,8 @@ int pcxhr_setup_firmware(struct pcxhr_mg
+ if (!fw_files[fw_set][i])
+ continue;
+ sprintf(path, "pcxhr/%s", fw_files[fw_set][i]);
+- if (request_firmware(&fw_entry, path, &mgr->pci->dev)) {
+- dev_err(&mgr->pci->dev,
+- "pcxhr: can't load firmware %s\n",
+- path);
++ if (request_firmware(&fw_entry, path, &mgr->pci->dev))
+ return -ENOENT;
+- }
+ /* fake hwdep dsp record */
+ err = pcxhr_dsp_load(mgr, i, fw_entry);
+ release_firmware(fw_entry);
+Index: linux/sound/pci/riptide/riptide.c
+===================================================================
+--- linux.orig/sound/pci/riptide/riptide.c
++++ linux/sound/pci/riptide/riptide.c
+@@ -1231,11 +1231,8 @@ static int try_to_load_firmware(struct c
+ if (!chip->fw_entry) {
+ err = request_firmware(&chip->fw_entry, "riptide.hex",
+ &chip->pci->dev);
+- if (err) {
+- snd_printk(KERN_ERR
+- "Riptide: Firmware not available %d\n", err);
++ if (err)
+ return -EIO;
+- }
+ }
+ err = loadfirmware(cif, chip->fw_entry->data, chip->fw_entry->size);
+ if (err) {
+Index: linux/sound/pci/rme9652/hdsp.c
+===================================================================
+--- linux.orig/sound/pci/rme9652/hdsp.c
++++ linux/sound/pci/rme9652/hdsp.c
+@@ -5134,11 +5134,8 @@ static int hdsp_request_fw_loader(struct
+ return -EINVAL;
+ }
+
+- if (request_firmware(&fw, fwfile, &hdsp->pci->dev)) {
+- dev_err(hdsp->card->dev,
+- "cannot load firmware %s\n", fwfile);
++ if (request_firmware(&fw, fwfile, &hdsp->pci->dev))
+ return -ENOENT;
+- }
+ if (fw->size < HDSP_FIRMWARE_SIZE) {
+ dev_err(hdsp->card->dev,
+ "too short firmware size %d (expected %d)\n",
+Index: linux/sound/soc/codecs/wm2000.c
+===================================================================
+--- linux.orig/sound/soc/codecs/wm2000.c
++++ linux/sound/soc/codecs/wm2000.c
+@@ -891,10 +891,8 @@ static int wm2000_i2c_probe(struct i2c_c
+ }
+
+ ret = request_firmware(&fw, filename, &i2c->dev);
+- if (ret != 0) {
+- dev_err(&i2c->dev, "Failed to acquire ANC data: %d\n", ret);
++ if (ret != 0)
+ goto err_supplies;
+- }
+
+ /* Pre-cook the concatenation of the register address onto the image */
+ wm2000->anc_download_size = fw->size + 2;
+Index: linux/sound/usb/6fire/firmware.c
+===================================================================
+--- linux.orig/sound/usb/6fire/firmware.c
++++ linux/sound/usb/6fire/firmware.c
+@@ -219,8 +219,6 @@ static int usb6fire_fw_ezusb_upload(
+ ret = request_firmware(&fw, fwname, &device->dev);
+ if (ret < 0) {
+ kfree(rec);
+- dev_err(&intf->dev,
+- "error requesting ezusb firmware %s.\n", fwname);
+ return ret;
+ }
+ ret = usb6fire_fw_ihex_init(fw, rec);
+@@ -296,8 +294,6 @@ static int usb6fire_fw_fpga_upload(
+
+ ret = request_firmware(&fw, fwname, &device->dev);
+ if (ret < 0) {
+- dev_err(&intf->dev, "unable to get fpga firmware %s.\n",
+- fwname);
+ kfree(buffer);
+ return -EIO;
+ }
+Index: linux/sound/pci/cs46xx/cs46xx_lib.c
+===================================================================
+--- linux.orig/sound/pci/cs46xx/cs46xx_lib.c
++++ linux/sound/pci/cs46xx/cs46xx_lib.c
+@@ -3253,11 +3253,8 @@ int snd_cs46xx_start_dsp(struct snd_cs46
+ #ifdef CONFIG_SND_CS46XX_NEW_DSP
+ for (i = 0; i < CS46XX_DSP_MODULES; i++) {
+ err = load_firmware(chip, &chip->modules[i], module_names[i]);
+- if (err < 0) {
+- dev_err(chip->card->dev, "firmware load error [%s]\n",
+- module_names[i]);
++ if (err < 0)
+ return err;
+- }
+ err = cs46xx_dsp_load_module(chip, chip->modules[i]);
+ if (err < 0) {
+ dev_err(chip->card->dev, "image download error [%s]\n",
diff --git a/debian/patches/bugfix/all/firmware_class-log-every-success-and-failure.patch b/debian/patches/bugfix/all/firmware_class-log-every-success-and-failure.patch
new file mode 100644
index 000000000..266688652
--- /dev/null
+++ b/debian/patches/bugfix/all/firmware_class-log-every-success-and-failure.patch
@@ -0,0 +1,70 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Subject: firmware_class: Log every success and failure against given device
+Date: Sun, 09 Dec 2012 16:02:00 +0000
+Forwarded: no
+
+The hundreds of users of request_firmware() have nearly as many
+different log formats for reporting failures. They also have only the
+vaguest hint as to what went wrong; only firmware_class really knows
+that. Therefore, add specific log messages for the failure modes that
+aren't currently logged.
+
+In case of a driver that tries multiple names, this may result in the
+impression that it failed to initialise. Therefore, also log successes.
+
+This makes many error messages in drivers redundant, which will be
+removed in later patches.
+
+This does not cover the case where we fall back to a user-mode helper
+(which is no longer enabled in Debian).
+
+NOTE: hw-detect will depend on the "firmware: failed to load %s (%d)\n"
+format to detect missing firmware.
+---
+Index: linux/drivers/base/firmware_loader/main.c
+===================================================================
+--- linux.orig/drivers/base/firmware_loader/main.c
++++ linux/drivers/base/firmware_loader/main.c
+@@ -328,21 +328,22 @@ fw_get_filesystem_firmware(struct device
+ rc = kernel_read_file_from_path(path, &fw_priv->data, &size,
+ msize, id);
+ if (rc) {
+- if (rc == -ENOENT)
+- dev_dbg(device, "loading %s failed with error %d\n",
+- path, rc);
+- else
+- dev_warn(device, "loading %s failed with error %d\n",
+- path, rc);
++ dev_dbg(device, "loading %s failed with error %d\n",
++ path, rc);
+ continue;
+ }
+- dev_dbg(device, "direct-loading %s\n", fw_priv->fw_name);
++ dev_info(device, "firmware: direct-loading firmware %s\n",
++ fw_priv->fw_name);
+ fw_priv->size = size;
+ fw_state_done(fw_priv);
+ break;
+ }
+ __putname(path);
+
++ if (rc)
++ dev_err(device, "firmware: failed to load %s (%d)\n",
++ fw_priv->fw_name, rc);
++
+ return rc;
+ }
+
+Index: linux/drivers/base/firmware_loader/fallback.c
+===================================================================
+--- linux.orig/drivers/base/firmware_loader/fallback.c
++++ linux/drivers/base/firmware_loader/fallback.c
+@@ -604,7 +604,7 @@ static int fw_load_from_user_helper(stru
+ if (opt_flags & FW_OPT_NOWAIT) {
+ timeout = usermodehelper_read_lock_wait(timeout);
+ if (!timeout) {
+- dev_dbg(device, "firmware: %s loading timed out\n",
++ dev_err(device, "firmware: %s loading timed out\n",
+ name);
+ return -EBUSY;
+ }
diff --git a/debian/patches/bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch b/debian/patches/bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch
new file mode 100644
index 000000000..d6cb0ffac
--- /dev/null
+++ b/debian/patches/bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch
@@ -0,0 +1,66 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Wed, 13 Apr 2016 21:48:06 +0100
+Subject: fs: Add MODULE_SOFTDEP declarations for hard-coded crypto drivers
+Bug-Debian: https://bugs.debian.org/819725
+Forwarded: http://mid.gmane.org/20160517133631.GF7555@decadent.org.uk
+
+This helps initramfs builders and other tools to find the full
+dependencies of a module.
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+[Lukas Wunner: Forward-ported to 4.11: drop parts applied upstream]
+---
+--- a/fs/btrfs/super.c
++++ b/fs/btrfs/super.c
+@@ -2536,3 +2536,4 @@ late_initcall(init_btrfs_fs);
+ module_exit(exit_btrfs_fs)
+
+ MODULE_LICENSE("GPL");
++MODULE_SOFTDEP("pre: crypto-crc32c");
+--- a/fs/crypto/crypto.c
++++ b/fs/crypto/crypto.c
+@@ -504,3 +504,4 @@ static void __exit fscrypt_exit(void)
+ module_exit(fscrypt_exit);
+
+ MODULE_LICENSE("GPL");
++MODULE_SOFTDEP("pre: crypto-aes crypto-ecb");
+--- a/fs/ext4/super.c
++++ b/fs/ext4/super.c
+@@ -6200,6 +6200,6 @@ static void __exit ext4_exit_fs(void)
+ MODULE_AUTHOR("Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others");
+ MODULE_DESCRIPTION("Fourth Extended Filesystem");
+ MODULE_LICENSE("GPL");
+-MODULE_SOFTDEP("pre: crc32c");
++MODULE_SOFTDEP("pre: crypto-crc32c");
+ module_init(ext4_init_fs)
+ module_exit(ext4_exit_fs)
+--- a/fs/f2fs/super.c
++++ b/fs/f2fs/super.c
+@@ -3373,5 +3373,5 @@ module_exit(exit_f2fs_fs)
+ MODULE_AUTHOR("Samsung Electronics's Praesto Team");
+ MODULE_DESCRIPTION("Flash Friendly File System");
+ MODULE_LICENSE("GPL");
+-MODULE_SOFTDEP("pre: crc32");
++MODULE_SOFTDEP("pre: crypto-crc32");
+
+--- a/fs/jbd2/journal.c
++++ b/fs/jbd2/journal.c
+@@ -2744,6 +2744,7 @@ static void __exit journal_exit(void)
+ }
+
+ MODULE_LICENSE("GPL");
++MODULE_SOFTDEP("pre: crypto-crc32c");
+ module_init(journal_init);
+ module_exit(journal_exit);
+
+--- a/fs/nfsd/nfsctl.c
++++ b/fs/nfsd/nfsctl.c
+@@ -1337,5 +1337,8 @@ static void __exit exit_nfsd(void)
+
+ MODULE_AUTHOR("Olaf Kirch <okir@monad.swb.de>");
+ MODULE_LICENSE("GPL");
++#ifdef CONFIG_NFSD_V4
++MODULE_SOFTDEP("pre: crypto-md5");
++#endif
+ module_init(init_nfsd)
+ module_exit(exit_nfsd)
diff --git a/debian/patches/bugfix/all/kbuild-fix-recordmcount-dependency.patch b/debian/patches/bugfix/all/kbuild-fix-recordmcount-dependency.patch
new file mode 100644
index 000000000..8e942af28
--- /dev/null
+++ b/debian/patches/bugfix/all/kbuild-fix-recordmcount-dependency.patch
@@ -0,0 +1,25 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Subject: kbuild: Fix recordmcount dependency for OOT modules
+Date: Mon, 08 Sep 2014 18:31:24 +0100
+Forwarded: no
+
+We never rebuild anything in-tree when building an out-of-tree
+modules, so external modules should not depend on the recordmcount
+sources.
+
+Index: linux/scripts/Makefile.build
+===================================================================
+--- linux.orig/scripts/Makefile.build
++++ linux/scripts/Makefile.build
+@@ -232,6 +232,11 @@ cmd_record_mcount = \
+ endif # CC_USING_RECORD_MCOUNT
+ endif # CONFIG_FTRACE_MCOUNT_RECORD
+
++# Don't require recordmcount source for an OOT build.
++ifdef KBUILD_EXTMOD
++recordmcount_source :=
++endif
++
+ ifdef CONFIG_STACK_VALIDATION
+ ifneq ($(SKIP_STACK_VALIDATION),1)
+
diff --git a/debian/patches/bugfix/all/kbuild-include-addtree-remove-quotes-before-matching-path.patch b/debian/patches/bugfix/all/kbuild-include-addtree-remove-quotes-before-matching-path.patch
new file mode 100644
index 000000000..22ef11a3b
--- /dev/null
+++ b/debian/patches/bugfix/all/kbuild-include-addtree-remove-quotes-before-matching-path.patch
@@ -0,0 +1,42 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Sat, 04 Mar 2017 01:44:15 +0000
+Subject: Kbuild.include: addtree: Remove quotes before matching path
+Bug-Debian: https://bugs.debian.org/856474
+Forwarded: https://marc.info/?l=linux-kbuild&m=148987677205629
+
+systemtap currently fails to build modules when the kernel source and
+object trees are separate.
+
+systemtap adds something like -I"/usr/share/systemtap/runtime" to
+EXTRA_CFLAGS, and addtree should not adjust this as it's specifying an
+absolute directory. But since make has no understanding of shell
+quoting, it does anyway.
+
+For a long time this didn't matter, because addtree would still emit
+the original -I option after the adjusted one. However, commit
+db547ef19064 ("Kbuild: don't add obj tree in additional includes")
+changed it to remove the original -I option.
+
+Remove quotes (both double and single) before matching against the
+excluded patterns.
+
+References: https://bugs.debian.org/856474
+Reported-by: Jack Henschel <jackdev@mailbox.org>
+Reported-by: Ritesh Raj Sarraf <rrs@debian.org>
+Fixes: db547ef19064 ("Kbuild: don't add obj tree in additional includes")
+Cc: stable@vger.kernel.org # 4.8+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+Index: linux/scripts/Kbuild.include
+===================================================================
+--- linux.orig/scripts/Kbuild.include
++++ linux/scripts/Kbuild.include
+@@ -211,7 +211,7 @@ hdr-inst := -f $(srctree)/scripts/Makefi
+ # Prefix -I with $(srctree) if it is not an absolute path.
+ # skip if -I has no parameter
+ addtree = $(if $(patsubst -I%,%,$(1)), \
+-$(if $(filter-out -I/% -I./% -I../%,$(1)),$(patsubst -I%,-I$(srctree)/%,$(1)),$(1)),$(1))
++$(if $(filter-out -I/% -I./% -I../%,$(subst $(quote),,$(subst $(squote),,$(1)))),$(patsubst -I%,-I$(srctree)/%,$(1)),$(1)),$(1))
+
+ # Find all -I options and call addtree
+ flags = $(foreach o,$($(1)),$(if $(filter -I%,$(o)),$(call addtree,$(o)),$(o)))
diff --git a/debian/patches/bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch b/debian/patches/bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch
new file mode 100644
index 000000000..61a4628a4
--- /dev/null
+++ b/debian/patches/bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch
@@ -0,0 +1,91 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Sat, 19 Oct 2013 19:43:35 +0100
+Subject: kbuild: Use -nostdinc in compile tests
+Bug-Debian: https://bugs.debian.org/726861
+Bug-Debian: https://bugs.debian.org/717557
+Forwarded: https://marc.info/?l=linux-kbuild&m=141523555023625
+
+gcc 4.8 and later include <stdc-predef.h> by default. In some
+versions of eglibc that includes <bits/predefs.h>, but that may be
+missing when building with a biarch compiler. Also <stdc-predef.h>
+itself could be missing as we are only trying to build a kernel, not
+userland.
+
+The -nostdinc option disables this, though it isn't explicitly
+documented. This option is already used when actually building
+the kernel, but not by cc-option and other tests. This can result
+in silently miscompiling the kernel.
+
+References: https://bugs.debian.org/717557
+References: https://bugs.debian.org/726861
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+--- a/scripts/Kbuild.include
++++ b/scripts/Kbuild.include
+@@ -121,7 +121,7 @@ CC_OPTION_CFLAGS = $(filter-out $(GCC_PL
+ # Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586)
+
+ cc-option = $(call __cc-option, $(CC),\
+- $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS),$(1),$(2))
++ $(NOSTDINC_FLAGS) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS),$(1),$(2))
+
+ # hostcc-option
+ # Usage: cflags-y += $(call hostcc-option,-march=winchip-c6,-march=i586)
+@@ -131,23 +131,24 @@ hostcc-option = $(call __cc-option, $(HO
+ # cc-option-yn
+ # Usage: flag := $(call cc-option-yn,-march=winchip-c6)
+ cc-option-yn = $(call try-run,\
+- $(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",y,n)
++ $(CC) -Werror $(NOSTDINC_FLAGS) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",y,n)
+
+ # cc-disable-warning
+ # Usage: cflags-y += $(call cc-disable-warning,unused-but-set-variable)
+ cc-disable-warning = $(call try-run,\
+- $(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1)))
++ $(CC) -Werror $(NOSTDINC_FLAGS) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1)))
+
+ # cc-name
+ # Expands to either gcc or clang
+ cc-name = $(shell $(CC) -v 2>&1 | grep -q "clang version" && echo clang || echo gcc)
+
+ # cc-version
+-cc-version = $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-version.sh $(CC))
++cc-version = $(shell $(CONFIG_SHELL) \
++ $(srctree)/scripts/gcc-version.sh $(CC) $(NOSTDINC_FLAGS))
+
+ # cc-fullversion
+ cc-fullversion = $(shell $(CONFIG_SHELL) \
+- $(srctree)/scripts/gcc-version.sh -p $(CC))
++ $(srctree)/scripts/gcc-version.sh -p $(CC) $(NOSTDINC_FLAGS))
+
+ # cc-ifversion
+ # Usage: EXTRA_CFLAGS += $(call cc-ifversion, -lt, 0402, -O1)
+@@ -156,7 +157,7 @@ cc-ifversion = $(shell [ $(cc-version) $
+ # cc-ldoption
+ # Usage: ldflags += $(call cc-ldoption, -Wl$(comma)--hash-style=both)
+ cc-ldoption = $(call try-run,\
+- $(CC) $(1) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -nostdlib -x c /dev/null -o "$$TMP",$(1),$(2))
++ $(CC) $(1) $(NOSTDINC_FLAGS) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -nostdlib -x c /dev/null -o "$$TMP",$(1),$(2))
+
+ # ld-option
+ # Usage: KBUILD_LDFLAGS += $(call ld-option, -X, -Y)
+--- a/Makefile
++++ b/Makefile
+@@ -661,6 +661,8 @@ else
+ KBUILD_CFLAGS += -O2
+ endif
+
++NOSTDINC_FLAGS += -nostdinc
++
+ # Tell gcc to never replace conditional load with a non-conditional one
+ KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0)
+ KBUILD_CFLAGS += $(call cc-option,-fno-allow-store-data-races)
+@@ -781,7 +783,7 @@ LDFLAGS_vmlinux += --gc-sections
+ endif
+
+ # arch Makefile may override CC so keep this after arch Makefile is included
+-NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
++NOSTDINC_FLAGS += -isystem $(shell $(CC) -print-file-name=include)
+
+ # warn about C99 declaration after statement
+ KBUILD_CFLAGS += $(call cc-option,-Wdeclaration-after-statement,)
diff --git a/debian/patches/bugfix/all/lib-genalloc-add-gen_pool_dma_zalloc-for-zeroed-DMA.patch b/debian/patches/bugfix/all/lib-genalloc-add-gen_pool_dma_zalloc-for-zeroed-DMA.patch
new file mode 100644
index 000000000..360a16aa5
--- /dev/null
+++ b/debian/patches/bugfix/all/lib-genalloc-add-gen_pool_dma_zalloc-for-zeroed-DMA.patch
@@ -0,0 +1,77 @@
+From: Fredrik Noring <noring@nocrew.org>
+Date: Wed, 29 May 2019 13:28:39 +0300
+Subject: lib/genalloc: add gen_pool_dma_zalloc() for zeroed DMA allocations
+Origin: https://git.kernel.org/linus/da83a722959a82733c3ca60030cc364ca2318c5a
+
+gen_pool_dma_zalloc() is a zeroed memory variant of
+gen_pool_dma_alloc(). Also document the return values of both, and
+indicate NULL as a "%NULL" constant.
+
+Signed-off-by: Fredrik Noring <noring@nocrew.org>
+Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+---
+ include/linux/genalloc.h | 1 +
+ lib/genalloc.c | 29 ++++++++++++++++++++++++++++-
+ 2 files changed, 29 insertions(+), 1 deletion(-)
+
+--- a/include/linux/genalloc.h
++++ b/include/linux/genalloc.h
+@@ -121,6 +121,7 @@
+ genpool_algo_t algo, void *data);
+ extern void *gen_pool_dma_alloc(struct gen_pool *pool, size_t size,
+ dma_addr_t *dma);
++void *gen_pool_dma_zalloc(struct gen_pool *pool, size_t size, dma_addr_t *dma);
+ extern void gen_pool_free(struct gen_pool *, unsigned long, size_t);
+ extern void gen_pool_for_each_chunk(struct gen_pool *,
+ void (*)(struct gen_pool *, struct gen_pool_chunk *, void *), void *);
+--- a/lib/genalloc.c
++++ b/lib/genalloc.c
+@@ -337,12 +337,14 @@
+ * gen_pool_dma_alloc - allocate special memory from the pool for DMA usage
+ * @pool: pool to allocate from
+ * @size: number of bytes to allocate from the pool
+- * @dma: dma-view physical address return value. Use NULL if unneeded.
++ * @dma: dma-view physical address return value. Use %NULL if unneeded.
+ *
+ * Allocate the requested number of bytes from the specified pool.
+ * Uses the pool allocation function (with first-fit algorithm by default).
+ * Can not be used in NMI handler on architectures without
+ * NMI-safe cmpxchg implementation.
++ *
++ * Return: virtual address of the allocated memory, or %NULL on failure
+ */
+ void *gen_pool_dma_alloc(struct gen_pool *pool, size_t size, dma_addr_t *dma)
+ {
+@@ -363,6 +365,31 @@
+ EXPORT_SYMBOL(gen_pool_dma_alloc);
+
+ /**
++ * gen_pool_dma_zalloc - allocate special zeroed memory from the pool for
++ * DMA usage
++ * @pool: pool to allocate from
++ * @size: number of bytes to allocate from the pool
++ * @dma: dma-view physical address return value. Use %NULL if unneeded.
++ *
++ * Allocate the requested number of zeroed bytes from the specified pool.
++ * Uses the pool allocation function (with first-fit algorithm by default).
++ * Can not be used in NMI handler on architectures without
++ * NMI-safe cmpxchg implementation.
++ *
++ * Return: virtual address of the allocated zeroed memory, or %NULL on failure
++ */
++void *gen_pool_dma_zalloc(struct gen_pool *pool, size_t size, dma_addr_t *dma)
++{
++ void *vaddr = gen_pool_dma_alloc(pool, size, dma);
++
++ if (vaddr)
++ memset(vaddr, 0, size);
++
++ return vaddr;
++}
++EXPORT_SYMBOL(gen_pool_dma_zalloc);
++
++/**
+ * gen_pool_free - free allocated special memory back to the pool
+ * @pool: pool to free to
+ * @addr: starting address of memory to free back to pool
diff --git a/debian/patches/bugfix/all/libbpf-add-soname-to-shared-object.patch b/debian/patches/bugfix/all/libbpf-add-soname-to-shared-object.patch
new file mode 100644
index 000000000..40f2bcc1d
--- /dev/null
+++ b/debian/patches/bugfix/all/libbpf-add-soname-to-shared-object.patch
@@ -0,0 +1,56 @@
+From: Hilko Bengen <bengen@debian.org>
+Date: Sun, 02 Dec 2018 23:26:03 +0000
+Subject: libbpf: add SONAME to shared object
+
+tools/lib/bpf/libbpf: Add proper version to the shared object.
+
+Add versioning to the shared object to make it easier on distros to
+distribute the library without having to watch for API/ABI versioning.
+
+This is similar to the change made to tools/lib/lockdep/Makefile in
+be227b45fb228adff4371b8de9e3989904209ff4.
+
+Signed-off-by: Hilko Bengen <bengen@debian.org>
+[bwh: Drop unnecessary changes]
+---
+Index: linux/tools/lib/bpf/Makefile
+===================================================================
+--- linux.orig/tools/lib/bpf/Makefile
++++ linux/tools/lib/bpf/Makefile
+@@ -94,7 +94,7 @@ export prefix libdir src obj
+ libdir_SQ = $(subst ','\'',$(libdir))
+ libdir_relative_SQ = $(subst ','\'',$(libdir_relative))
+
+-LIB_FILE = libbpf.a libbpf.so
++LIB_FILE = libbpf.a libbpf.so.$(LIBBPF_VERSION)
+
+ VERSION = $(BPF_VERSION)
+ PATCHLEVEL = $(BPF_PATCHLEVEL)
+@@ -103,7 +103,7 @@ EXTRAVERSION = $(BPF_EXTRAVERSION)
+ OBJ = $@
+ N =
+
+-LIBBPF_VERSION = $(BPF_VERSION).$(BPF_PATCHLEVEL).$(BPF_EXTRAVERSION)
++LIBBPF_VERSION = $(shell make --no-print-directory -sC ../../.. kernelversion | cut -d. -f1,2)
+
+ # Set compile option CFLAGS
+ ifdef EXTRA_CFLAGS
+@@ -169,8 +169,8 @@ $(BPF_IN): force elfdep bpfdep
+ echo "Warning: Kernel ABI header at 'tools/include/uapi/linux/if_link.h' differs from latest version at 'include/uapi/linux/if_link.h'" >&2 )) || true
+ $(Q)$(MAKE) $(build)=libbpf
+
+-$(OUTPUT)libbpf.so: $(BPF_IN)
+- $(QUIET_LINK)$(CC) --shared $^ -o $@
++$(OUTPUT)libbpf.so.$(LIBBPF_VERSION): $(BPF_IN)
++ $(QUIET_LINK)$(CC) --shared $^ -Wl,-soname,$(@F) -o $@
+
+ $(OUTPUT)libbpf.a: $(BPF_IN)
+ $(QUIET_LINK)$(RM) $@; $(AR) rcs $@ $^
+@@ -185,6 +185,7 @@ endef
+ install_lib: all_cmd
+ $(call QUIET_INSTALL, $(LIB_FILE)) \
+ $(call do_install,$(LIB_FILE),$(libdir_SQ))
++ $(Q)ln -sf libbpf.so.$(LIBBPF_VERSION) $(DESTDIR_SQ)$(libdir_SQ)/libbpf.so
+
+ install_headers:
+ $(call QUIET_INSTALL, headers) \
diff --git a/debian/patches/bugfix/all/libbpf-generate-pkg-config.patch b/debian/patches/bugfix/all/libbpf-generate-pkg-config.patch
new file mode 100644
index 000000000..63ecffe5f
--- /dev/null
+++ b/debian/patches/bugfix/all/libbpf-generate-pkg-config.patch
@@ -0,0 +1,90 @@
+Author: Luca Boccassi <bluca@debian.org>
+Description: generate pkg-config file for libbpf
+ Generate a libbpf.pc file at build time so that users can rely
+ on pkg-config to find the library, its CFLAGS and LDFLAGS.
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=dd399ac9e343c7573c47d6820e4a23013c54749d
+Applied-Upstream: yes
+Index: linux/tools/lib/bpf/.gitignore
+===================================================================
+--- linux.orig/tools/lib/bpf/.gitignore
++++ linux/tools/lib/bpf/.gitignore
+@@ -1,2 +1,3 @@
+ libbpf_version.h
++libbpf.pc
+ FEATURE-DUMP.libbpf
+Index: linux/tools/lib/bpf/Makefile
+===================================================================
+--- linux.orig/tools/lib/bpf/Makefile
++++ linux/tools/lib/bpf/Makefile
+@@ -95,6 +95,7 @@ libdir_SQ = $(subst ','\'',$(libdir))
+ libdir_relative_SQ = $(subst ','\'',$(libdir_relative))
+
+ LIB_FILE = libbpf.a libbpf.so.$(LIBBPF_VERSION)
++PC_FILE = libbpf.pc
+
+ VERSION = $(BPF_VERSION)
+ PATCHLEVEL = $(BPF_PATCHLEVEL)
+@@ -144,8 +145,9 @@ include $(srctree)/tools/build/Makefile.
+
+ BPF_IN := $(OUTPUT)libbpf-in.o
+ LIB_FILE := $(addprefix $(OUTPUT),$(LIB_FILE))
++PC_FILE := $(addprefix $(OUTPUT),$(PC_FILE))
+
+-CMD_TARGETS = $(LIB_FILE)
++CMD_TARGETS = $(LIB_FILE) $(PC_FILE)
+
+ TARGETS = $(CMD_TARGETS)
+
+@@ -175,6 +177,12 @@ $(OUTPUT)libbpf.so.$(LIBBPF_VERSION): $(
+ $(OUTPUT)libbpf.a: $(BPF_IN)
+ $(QUIET_LINK)$(RM) $@; $(AR) rcs $@ $^
+
++$(OUTPUT)libbpf.pc:
++ $(QUIET_GEN)sed -e "s|@PREFIX@|$(prefix)|" \
++ -e "s|@LIBDIR@|$(libdir_SQ)|" \
++ -e "s|@VERSION@|$(LIBBPF_VERSION)|" \
++ < libbpf.pc.template > $@
++
+ define do_install
+ if [ ! -d '$(DESTDIR_SQ)$2' ]; then \
+ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$2'; \
+@@ -193,7 +201,12 @@ install_headers:
+ $(call do_install,libbpf.h,$(prefix)/include/bpf,644);
+ $(call do_install,btf.h,$(prefix)/include/bpf,644);
+
+-install: install_lib
++install_pkgconfig: $(PC_FILE)
++ $(call QUIET_INSTALL, $(PC_FILE)) \
++ $(call do_install,$(PC_FILE),$(libdir_SQ)/pkgconfig,644)
++
++
++install: install_lib install_pkgconfig
+
+ ### Cleaning rules
+
+@@ -202,7 +215,7 @@ config-clean:
+ $(Q)$(MAKE) -C $(srctree)/tools/build/feature/ clean >/dev/null
+
+ clean:
+- $(call QUIET_CLEAN, libbpf) $(RM) *.o *~ $(TARGETS) *.a *.so .*.d .*.cmd \
++ $(call QUIET_CLEAN, libbpf) $(RM) *.o *~ $(TARGETS) *.a *.so .*.d .*.cmd *.pc \
+ $(RM) LIBBPF-CFLAGS
+ $(call QUIET_CLEAN, core-gen) $(RM) $(OUTPUT)FEATURE-DUMP.libbpf
+
+Index: linux/tools/lib/bpf/libbpf.pc.template
+===================================================================
+--- /dev/null
++++ linux/tools/lib/bpf/libbpf.pc.template
+@@ -0,0 +1,12 @@
++# SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)
++
++prefix=@PREFIX@
++libdir=@LIBDIR@
++includedir=${prefix}/include
++
++Name: libbpf
++Description: BPF library
++Version: @VERSION@
++Libs: -L${libdir} -lbpf
++Requires.private: libelf
++Cflags: -I${includedir}
diff --git a/debian/patches/bugfix/all/libbpf-link-shared-object-with-libelf.patch b/debian/patches/bugfix/all/libbpf-link-shared-object-with-libelf.patch
new file mode 100644
index 000000000..f02cb07e2
--- /dev/null
+++ b/debian/patches/bugfix/all/libbpf-link-shared-object-with-libelf.patch
@@ -0,0 +1,22 @@
+From: Hilko Bengen <bengen@debian.org>
+Date: Sun, 02 Dec 2018 23:26:03 +0000
+Subject: libbpf: link shared object with libelf
+
+libbpf.so needs to be linked against libelf to avoid missing symbols.
+
+Signed-off-by: Hilko Bengen <bengen@debian.org>
+
+---
+Index: linux/tools/lib/bpf/Makefile
+===================================================================
+--- linux.orig/tools/lib/bpf/Makefile
++++ linux/tools/lib/bpf/Makefile
+@@ -170,7 +170,7 @@ $(BPF_IN): force elfdep bpfdep
+ $(Q)$(MAKE) $(build)=libbpf
+
+ $(OUTPUT)libbpf.so.$(LIBBPF_VERSION): $(BPF_IN)
+- $(QUIET_LINK)$(CC) --shared $^ -Wl,-soname,$(@F) -o $@
++ $(QUIET_LINK)$(CC) --shared $^ -lelf -Wl,-soname,$(@F) -o $@
+
+ $(OUTPUT)libbpf.a: $(BPF_IN)
+ $(QUIET_LINK)$(RM) $@; $(AR) rcs $@ $^
diff --git a/debian/patches/bugfix/all/libcpupower-hide-private-function.patch b/debian/patches/bugfix/all/libcpupower-hide-private-function.patch
new file mode 100644
index 000000000..dba71b64e
--- /dev/null
+++ b/debian/patches/bugfix/all/libcpupower-hide-private-function.patch
@@ -0,0 +1,22 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Sat, 01 Dec 2018 19:22:50 +0000
+Subject: libcpupower: Hide private function
+
+cpupower_read_sysfs() (previously known as sysfs_read_file()) is an
+internal function in libcpupower and should not be exported when
+libcpupower is a shared library. Change its visibility to "hidden".
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+Index: linux/tools/power/cpupower/lib/cpupower.c
+===================================================================
+--- linux.orig/tools/power/cpupower/lib/cpupower.c
++++ linux/tools/power/cpupower/lib/cpupower.c
+@@ -15,6 +15,7 @@
+ #include "cpupower.h"
+ #include "cpupower_intern.h"
+
++__attribute__((visibility("hidden")))
+ unsigned int cpupower_read_sysfs(const char *path, char *buf, size_t buflen)
+ {
+ int fd;
diff --git a/debian/patches/bugfix/all/module-disable-matching-missing-version-crc.patch b/debian/patches/bugfix/all/module-disable-matching-missing-version-crc.patch
new file mode 100644
index 000000000..9c3461019
--- /dev/null
+++ b/debian/patches/bugfix/all/module-disable-matching-missing-version-crc.patch
@@ -0,0 +1,25 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Fri, 02 Dec 2016 23:06:18 +0000
+Subject: module: Disable matching missing version CRC
+Forwarded: not-needed
+
+This partly reverts commit cd3caefb4663e3811d37cc2afad3cce642d60061.
+We want to fail closed if a symbol version CRC is missing, as the
+alternative may allow subverting module signing.
+---
+Index: linux/kernel/module.c
+===================================================================
+--- linux.orig/kernel/module.c
++++ linux/kernel/module.c
+@@ -1317,9 +1317,8 @@ static int check_version(const struct lo
+ goto bad_version;
+ }
+
+- /* Broken toolchain. Warn once, then let it go.. */
+- pr_warn_once("%s: no symbol version for %s\n", info->name, symname);
+- return 1;
++ pr_warn("%s: no symbol version for %s\n", info->name, symname);
++ return 0;
+
+ bad_version:
+ pr_warn("%s: disagrees about version of symbol %s\n",
diff --git a/debian/patches/bugfix/all/mt76-use-the-correct-hweight8-function.patch b/debian/patches/bugfix/all/mt76-use-the-correct-hweight8-function.patch
new file mode 100644
index 000000000..ce3b63af3
--- /dev/null
+++ b/debian/patches/bugfix/all/mt76-use-the-correct-hweight8-function.patch
@@ -0,0 +1,30 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Tue, 12 Feb 2019 15:20:48 +0000
+Subject: mt76: Use the correct hweight8() function
+Forwarded: https://marc.info/?l=linux-wireless&m=154998579614180&w=2
+
+mt76_init_stream_cap() and mt76_get_txpower() call __sw_hweight8()
+directly, but that's only defined if CONFIG_GENERIC_HWEIGHT is
+enabled. The function that works on all architectures is hweight8().
+
+Fixes: 551e1ef4d291 ("mt76: add mt76_init_stream_cap routine")
+Fixes: 9313faacbb4e ("mt76: move mt76x02_get_txpower to mt76 core")
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+[bwh: For 4.19, drop change in mt76_get_txpower()]
+---
+ drivers/net/wireless/mediatek/mt76/mac80211.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: linux/drivers/net/wireless/mediatek/mt76/mac80211.c
+===================================================================
+--- linux.orig/drivers/net/wireless/mediatek/mt76/mac80211.c
++++ linux/drivers/net/wireless/mediatek/mt76/mac80211.c
+@@ -124,7 +124,7 @@ static void mt76_init_stream_cap(struct
+ bool vht)
+ {
+ struct ieee80211_sta_ht_cap *ht_cap = &sband->ht_cap;
+- int i, nstream = __sw_hweight8(dev->antenna_mask);
++ int i, nstream = hweight8(dev->antenna_mask);
+ struct ieee80211_sta_vht_cap *vht_cap;
+ u16 mcs_map = 0;
+
diff --git a/debian/patches/bugfix/all/net_sched-let-qdisc_put-accept-null-pointer.patch b/debian/patches/bugfix/all/net_sched-let-qdisc_put-accept-null-pointer.patch
new file mode 100644
index 000000000..3f259ac4c
--- /dev/null
+++ b/debian/patches/bugfix/all/net_sched-let-qdisc_put-accept-null-pointer.patch
@@ -0,0 +1,50 @@
+From: Diederik de Haas <didi.debian@cknow.org>
+Date: Wed, 22 Jun 2022 11:44:05 +0200
+Subject: net_sched: let qdisc_put() accept NULL pointer
+Bug-Debian: https://bugs.debian.org/1013299
+
+In commit 92833e8b5db6c209e9311ac8c6a44d3bf1856659 titled
+"net: sched: rename qdisc_destroy() to qdisc_put()" part of the
+functionality of qdisc_destroy() was moved into a (for linux-4.19.y)
+new function qdisk_put(), and the previous calls to qdisc_destroy()
+were changed to qdisk_put().
+This made it similar to f.e. 5.10.y and current master.
+
+There was one part of qdisc_destroy() not moved over to qdisc_put() and
+that was the check for a NULL value, causing oopses.
+(See upstream commit: 6efb971ba8edfbd80b666f29de12882852f095ae)
+This patch fixes that.
+
+Fixes: 92833e8b5db6c209e9311ac8c6a44d3bf1856659
+Reported-by: Thorsten Glaser <tg@mirbsd.de>
+Link: https://bugs.debian.org/1013299
+---
+ net/sched/sch_generic.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
+index 7c1b1eff84f4..cad2586c3473 100644
+--- a/net/sched/sch_generic.c
++++ b/net/sched/sch_generic.c
+@@ -970,8 +970,6 @@ static void qdisc_destroy(struct Qdisc *qdisc)
+ const struct Qdisc_ops *ops;
+ struct sk_buff *skb, *tmp;
+
+- if (!qdisc)
+- return;
+ ops = qdisc->ops;
+
+ #ifdef CONFIG_NET_SCHED
+@@ -1003,6 +1001,9 @@ static void qdisc_destroy(struct Qdisc *qdisc)
+
+ void qdisc_put(struct Qdisc *qdisc)
+ {
++ if (!qdisc)
++ return;
++
+ if (qdisc->flags & TCQ_F_BUILTIN ||
+ !refcount_dec_and_test(&qdisc->refcnt))
+ return;
+--
+2.36.1
+
diff --git a/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-event_anal.patch b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-event_anal.patch
new file mode 100644
index 000000000..d50476bca
--- /dev/null
+++ b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-event_anal.patch
@@ -0,0 +1,153 @@
+From: Tony Jones <tonyj@suse.de>
+Date: Fri, 1 Mar 2019 17:19:00 -0800
+Subject: perf script python: Add Python3 support to event_analyzing_sample.py
+Origin: https://git.kernel.org/linus/c253c72e9d6723c8b078beb362f050059ef5de39
+Bug-Debian: https://bugs.debian.org/944641
+
+Support both Python2 and Python3 in the event_analyzing_sample.py script
+
+There may be differences in the ordering of output lines due to
+differences in dictionary ordering etc. However the format within lines
+should be unchanged.
+
+The use of 'from __future__' implies the minimum supported Python2 version
+is now v2.6
+
+Signed-off-by: Tony Jones <tonyj@suse.de>
+Cc: Feng Tang <feng.tang@intel.com>
+Link: http://lkml.kernel.org/r/20190302011903.2416-5-tonyj@suse.de
+Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/scripts/python/event_analyzing_sample.py | 48 ++++++++++----------
+ 1 file changed, 25 insertions(+), 23 deletions(-)
+
+--- a/tools/perf/scripts/python/event_analyzing_sample.py
++++ b/tools/perf/scripts/python/event_analyzing_sample.py
+@@ -15,6 +15,8 @@
+ # for a x86 HW PMU event: PEBS with load latency data.
+ #
+
++from __future__ import print_function
++
+ import os
+ import sys
+ import math
+@@ -37,7 +39,7 @@ con = sqlite3.connect("/dev/shm/perf.db"
+ con.isolation_level = None
+
+ def trace_begin():
+- print "In trace_begin:\n"
++ print("In trace_begin:\n")
+
+ #
+ # Will create several tables at the start, pebs_ll is for PEBS data with
+@@ -76,12 +78,12 @@ def process_event(param_dict):
+ name = param_dict["ev_name"]
+
+ # Symbol and dso info are not always resolved
+- if (param_dict.has_key("dso")):
++ if ("dso" in param_dict):
+ dso = param_dict["dso"]
+ else:
+ dso = "Unknown_dso"
+
+- if (param_dict.has_key("symbol")):
++ if ("symbol" in param_dict):
+ symbol = param_dict["symbol"]
+ else:
+ symbol = "Unknown_symbol"
+@@ -102,7 +104,7 @@ def insert_db(event):
+ event.ip, event.status, event.dse, event.dla, event.lat))
+
+ def trace_end():
+- print "In trace_end:\n"
++ print("In trace_end:\n")
+ # We show the basic info for the 2 type of event classes
+ show_general_events()
+ show_pebs_ll()
+@@ -123,29 +125,29 @@ def show_general_events():
+ # Check the total record number in the table
+ count = con.execute("select count(*) from gen_events")
+ for t in count:
+- print "There is %d records in gen_events table" % t[0]
++ print("There is %d records in gen_events table" % t[0])
+ if t[0] == 0:
+ return
+
+- print "Statistics about the general events grouped by thread/symbol/dso: \n"
++ print("Statistics about the general events grouped by thread/symbol/dso: \n")
+
+ # Group by thread
+ commq = con.execute("select comm, count(comm) from gen_events group by comm order by -count(comm)")
+- print "\n%16s %8s %16s\n%s" % ("comm", "number", "histogram", "="*42)
++ print("\n%16s %8s %16s\n%s" % ("comm", "number", "histogram", "="*42))
+ for row in commq:
+- print "%16s %8d %s" % (row[0], row[1], num2sym(row[1]))
++ print("%16s %8d %s" % (row[0], row[1], num2sym(row[1])))
+
+ # Group by symbol
+- print "\n%32s %8s %16s\n%s" % ("symbol", "number", "histogram", "="*58)
++ print("\n%32s %8s %16s\n%s" % ("symbol", "number", "histogram", "="*58))
+ symbolq = con.execute("select symbol, count(symbol) from gen_events group by symbol order by -count(symbol)")
+ for row in symbolq:
+- print "%32s %8d %s" % (row[0], row[1], num2sym(row[1]))
++ print("%32s %8d %s" % (row[0], row[1], num2sym(row[1])))
+
+ # Group by dso
+- print "\n%40s %8s %16s\n%s" % ("dso", "number", "histogram", "="*74)
++ print("\n%40s %8s %16s\n%s" % ("dso", "number", "histogram", "="*74))
+ dsoq = con.execute("select dso, count(dso) from gen_events group by dso order by -count(dso)")
+ for row in dsoq:
+- print "%40s %8d %s" % (row[0], row[1], num2sym(row[1]))
++ print("%40s %8d %s" % (row[0], row[1], num2sym(row[1])))
+
+ #
+ # This function just shows the basic info, and we could do more with the
+@@ -156,35 +158,35 @@ def show_pebs_ll():
+
+ count = con.execute("select count(*) from pebs_ll")
+ for t in count:
+- print "There is %d records in pebs_ll table" % t[0]
++ print("There is %d records in pebs_ll table" % t[0])
+ if t[0] == 0:
+ return
+
+- print "Statistics about the PEBS Load Latency events grouped by thread/symbol/dse/latency: \n"
++ print("Statistics about the PEBS Load Latency events grouped by thread/symbol/dse/latency: \n")
+
+ # Group by thread
+ commq = con.execute("select comm, count(comm) from pebs_ll group by comm order by -count(comm)")
+- print "\n%16s %8s %16s\n%s" % ("comm", "number", "histogram", "="*42)
++ print("\n%16s %8s %16s\n%s" % ("comm", "number", "histogram", "="*42))
+ for row in commq:
+- print "%16s %8d %s" % (row[0], row[1], num2sym(row[1]))
++ print("%16s %8d %s" % (row[0], row[1], num2sym(row[1])))
+
+ # Group by symbol
+- print "\n%32s %8s %16s\n%s" % ("symbol", "number", "histogram", "="*58)
++ print("\n%32s %8s %16s\n%s" % ("symbol", "number", "histogram", "="*58))
+ symbolq = con.execute("select symbol, count(symbol) from pebs_ll group by symbol order by -count(symbol)")
+ for row in symbolq:
+- print "%32s %8d %s" % (row[0], row[1], num2sym(row[1]))
++ print("%32s %8d %s" % (row[0], row[1], num2sym(row[1])))
+
+ # Group by dse
+ dseq = con.execute("select dse, count(dse) from pebs_ll group by dse order by -count(dse)")
+- print "\n%32s %8s %16s\n%s" % ("dse", "number", "histogram", "="*58)
++ print("\n%32s %8s %16s\n%s" % ("dse", "number", "histogram", "="*58))
+ for row in dseq:
+- print "%32s %8d %s" % (row[0], row[1], num2sym(row[1]))
++ print("%32s %8d %s" % (row[0], row[1], num2sym(row[1])))
+
+ # Group by latency
+ latq = con.execute("select lat, count(lat) from pebs_ll group by lat order by lat")
+- print "\n%32s %8s %16s\n%s" % ("latency", "number", "histogram", "="*58)
++ print("\n%32s %8s %16s\n%s" % ("latency", "number", "histogram", "="*58))
+ for row in latq:
+- print "%32s %8d %s" % (row[0], row[1], num2sym(row[1]))
++ print("%32s %8d %s" % (row[0], row[1], num2sym(row[1])))
+
+ def trace_unhandled(event_name, context, event_fields_dict):
+- print ' '.join(['%s=%s'%(k,str(v))for k,v in sorted(event_fields_dict.items())])
++ print (' '.join(['%s=%s'%(k,str(v))for k,v in sorted(event_fields_dict.items())]))
diff --git a/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-export-to-.patch b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-export-to-.patch
new file mode 100644
index 000000000..25633c098
--- /dev/null
+++ b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-export-to-.patch
@@ -0,0 +1,214 @@
+From: Tony Jones <tonyj@suse.de>
+Date: Fri, 8 Mar 2019 16:05:16 -0800
+Subject: perf script python: Add Python3 support to export-to-postgresql.py
+Origin: https://git.kernel.org/linus/1937b0560c3ea43b1b0f7d3617949ca50de8f8c0
+Bug-Debian: https://bugs.debian.org/944641
+
+Support both Python2 and Python3 in the export-to-postgresql.py script.
+
+The use of 'from __future__' implies the minimum supported Python2 version
+is now v2.6
+
+Signed-off-by: Tony Jones <tonyj@suse.de>
+Link: http://lkml.kernel.org/r/20190309000518.2438-3-tonyj@suse.de
+Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
+Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/scripts/python/export-to-postgresql.py | 58 +++++++++++++++-------
+ 1 file changed, 41 insertions(+), 17 deletions(-)
+
+--- a/tools/perf/scripts/python/export-to-postgresql.py
++++ b/tools/perf/scripts/python/export-to-postgresql.py
+@@ -10,6 +10,8 @@
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ # more details.
+
++from __future__ import print_function
++
+ import os
+ import sys
+ import struct
+@@ -199,6 +201,18 @@ import datetime
+
+ from PySide.QtSql import *
+
++if sys.version_info < (3, 0):
++ def toserverstr(str):
++ return str
++ def toclientstr(str):
++ return str
++else:
++ # Assume UTF-8 server_encoding and client_encoding
++ def toserverstr(str):
++ return bytes(str, "UTF_8")
++ def toclientstr(str):
++ return bytes(str, "UTF_8")
++
+ # Need to access PostgreSQL C library directly to use COPY FROM STDIN
+ from ctypes import *
+ libpq = CDLL("libpq.so.5")
+@@ -234,12 +248,14 @@ perf_db_export_mode = True
+ perf_db_export_calls = False
+ perf_db_export_callchains = False
+
++def printerr(*args, **kw_args):
++ print(*args, file=sys.stderr, **kw_args)
+
+ def usage():
+- print >> sys.stderr, "Usage is: export-to-postgresql.py <database name> [<columns>] [<calls>] [<callchains>]"
+- print >> sys.stderr, "where: columns 'all' or 'branches'"
+- print >> sys.stderr, " calls 'calls' => create calls and call_paths table"
+- print >> sys.stderr, " callchains 'callchains' => create call_paths table"
++ printerr("Usage is: export-to-postgresql.py <database name> [<columns>] [<calls>] [<callchains>]")
++ printerr("where: columns 'all' or 'branches'")
++ printerr(" calls 'calls' => create calls and call_paths table")
++ printerr(" callchains 'callchains' => create call_paths table")
+ raise Exception("Too few arguments")
+
+ if (len(sys.argv) < 2):
+@@ -273,7 +289,7 @@ def do_query(q, s):
+ return
+ raise Exception("Query failed: " + q.lastError().text())
+
+-print datetime.datetime.today(), "Creating database..."
++print(datetime.datetime.today(), "Creating database...")
+
+ db = QSqlDatabase.addDatabase('QPSQL')
+ query = QSqlQuery(db)
+@@ -504,12 +520,12 @@ do_query(query, 'CREATE VIEW samples_vie
+ ' FROM samples')
+
+
+-file_header = struct.pack("!11sii", "PGCOPY\n\377\r\n\0", 0, 0)
+-file_trailer = "\377\377"
++file_header = struct.pack("!11sii", b"PGCOPY\n\377\r\n\0", 0, 0)
++file_trailer = b"\377\377"
+
+ def open_output_file(file_name):
+ path_name = output_dir_name + "/" + file_name
+- file = open(path_name, "w+")
++ file = open(path_name, "wb+")
+ file.write(file_header)
+ return file
+
+@@ -524,13 +540,13 @@ def copy_output_file_direct(file, table_
+
+ # Use COPY FROM STDIN because security may prevent postgres from accessing the files directly
+ def copy_output_file(file, table_name):
+- conn = PQconnectdb("dbname = " + dbname)
++ conn = PQconnectdb(toclientstr("dbname = " + dbname))
+ if (PQstatus(conn)):
+ raise Exception("COPY FROM STDIN PQconnectdb failed")
+ file.write(file_trailer)
+ file.seek(0)
+ sql = "COPY " + table_name + " FROM STDIN (FORMAT 'binary')"
+- res = PQexec(conn, sql)
++ res = PQexec(conn, toclientstr(sql))
+ if (PQresultStatus(res) != 4):
+ raise Exception("COPY FROM STDIN PQexec failed")
+ data = file.read(65536)
+@@ -564,7 +580,7 @@ if perf_db_export_calls:
+ call_file = open_output_file("call_table.bin")
+
+ def trace_begin():
+- print datetime.datetime.today(), "Writing to intermediate files..."
++ print(datetime.datetime.today(), "Writing to intermediate files...")
+ # id == 0 means unknown. It is easier to create records for them than replace the zeroes with NULLs
+ evsel_table(0, "unknown")
+ machine_table(0, 0, "unknown")
+@@ -579,7 +595,7 @@ def trace_begin():
+ unhandled_count = 0
+
+ def trace_end():
+- print datetime.datetime.today(), "Copying to database..."
++ print(datetime.datetime.today(), "Copying to database...")
+ copy_output_file(evsel_file, "selected_events")
+ copy_output_file(machine_file, "machines")
+ copy_output_file(thread_file, "threads")
+@@ -594,7 +610,7 @@ def trace_end():
+ if perf_db_export_calls:
+ copy_output_file(call_file, "calls")
+
+- print datetime.datetime.today(), "Removing intermediate files..."
++ print(datetime.datetime.today(), "Removing intermediate files...")
+ remove_output_file(evsel_file)
+ remove_output_file(machine_file)
+ remove_output_file(thread_file)
+@@ -609,7 +625,7 @@ def trace_end():
+ if perf_db_export_calls:
+ remove_output_file(call_file)
+ os.rmdir(output_dir_name)
+- print datetime.datetime.today(), "Adding primary keys"
++ print(datetime.datetime.today(), "Adding primary keys")
+ do_query(query, 'ALTER TABLE selected_events ADD PRIMARY KEY (id)')
+ do_query(query, 'ALTER TABLE machines ADD PRIMARY KEY (id)')
+ do_query(query, 'ALTER TABLE threads ADD PRIMARY KEY (id)')
+@@ -624,7 +640,7 @@ def trace_end():
+ if perf_db_export_calls:
+ do_query(query, 'ALTER TABLE calls ADD PRIMARY KEY (id)')
+
+- print datetime.datetime.today(), "Adding foreign keys"
++ print(datetime.datetime.today(), "Adding foreign keys")
+ do_query(query, 'ALTER TABLE threads '
+ 'ADD CONSTRAINT machinefk FOREIGN KEY (machine_id) REFERENCES machines (id),'
+ 'ADD CONSTRAINT processfk FOREIGN KEY (process_id) REFERENCES threads (id)')
+@@ -659,8 +675,8 @@ def trace_end():
+ do_query(query, 'CREATE INDEX pcpid_idx ON calls (parent_call_path_id)')
+
+ if (unhandled_count):
+- print datetime.datetime.today(), "Warning: ", unhandled_count, " unhandled events"
+- print datetime.datetime.today(), "Done"
++ print(datetime.datetime.today(), "Warning: ", unhandled_count, " unhandled events")
++ print(datetime.datetime.today(), "Done")
+
+ def trace_unhandled(event_name, context, event_fields_dict):
+ global unhandled_count
+@@ -670,12 +686,14 @@ def sched__sched_switch(*x):
+ pass
+
+ def evsel_table(evsel_id, evsel_name, *x):
++ evsel_name = toserverstr(evsel_name)
+ n = len(evsel_name)
+ fmt = "!hiqi" + str(n) + "s"
+ value = struct.pack(fmt, 2, 8, evsel_id, n, evsel_name)
+ evsel_file.write(value)
+
+ def machine_table(machine_id, pid, root_dir, *x):
++ root_dir = toserverstr(root_dir)
+ n = len(root_dir)
+ fmt = "!hiqiii" + str(n) + "s"
+ value = struct.pack(fmt, 3, 8, machine_id, 4, pid, n, root_dir)
+@@ -686,6 +704,7 @@ def thread_table(thread_id, machine_id,
+ thread_file.write(value)
+
+ def comm_table(comm_id, comm_str, *x):
++ comm_str = toserverstr(comm_str)
+ n = len(comm_str)
+ fmt = "!hiqi" + str(n) + "s"
+ value = struct.pack(fmt, 2, 8, comm_id, n, comm_str)
+@@ -697,6 +716,9 @@ def comm_thread_table(comm_thread_id, co
+ comm_thread_file.write(value)
+
+ def dso_table(dso_id, machine_id, short_name, long_name, build_id, *x):
++ short_name = toserverstr(short_name)
++ long_name = toserverstr(long_name)
++ build_id = toserverstr(build_id)
+ n1 = len(short_name)
+ n2 = len(long_name)
+ n3 = len(build_id)
+@@ -705,12 +727,14 @@ def dso_table(dso_id, machine_id, short_
+ dso_file.write(value)
+
+ def symbol_table(symbol_id, dso_id, sym_start, sym_end, binding, symbol_name, *x):
++ symbol_name = toserverstr(symbol_name)
+ n = len(symbol_name)
+ fmt = "!hiqiqiqiqiii" + str(n) + "s"
+ value = struct.pack(fmt, 6, 8, symbol_id, 8, dso_id, 8, sym_start, 8, sym_end, 4, binding, n, symbol_name)
+ symbol_file.write(value)
+
+ def branch_type_table(branch_type, name, *x):
++ name = toserverstr(name)
+ n = len(name)
+ fmt = "!hiii" + str(n) + "s"
+ value = struct.pack(fmt, 2, 4, branch_type, n, name)
diff --git a/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-export-to-ebf6c5c181ab.patch b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-export-to-ebf6c5c181ab.patch
new file mode 100644
index 000000000..4301e54b6
--- /dev/null
+++ b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-export-to-ebf6c5c181ab.patch
@@ -0,0 +1,85 @@
+From: Tony Jones <tonyj@suse.de>
+Date: Fri, 8 Mar 2019 16:05:17 -0800
+Subject: perf script python: Add Python3 support to export-to-sqlite.py
+Origin: https://git.kernel.org/linus/ebf6c5c181abe9309788c6241d39602a1ce18723
+Bug-Debian: https://bugs.debian.org/944641
+
+Support both Python2 and Python3 in the export-to-sqlite.py script
+
+The use of 'from __future__' implies the minimum supported Python2 version
+is now v2.6
+
+Signed-off-by: Tony Jones <tonyj@suse.de>
+Acked-by: Adrian Hunter <adrian.hunter@intel.com>
+Link: http://lkml.kernel.org/r/20190309000518.2438-4-tonyj@suse.de
+Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/scripts/python/export-to-sqlite.py | 23 ++++++++++++++---------
+ 1 file changed, 14 insertions(+), 9 deletions(-)
+
+--- a/tools/perf/scripts/python/export-to-sqlite.py
++++ b/tools/perf/scripts/python/export-to-sqlite.py
+@@ -10,6 +10,8 @@
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ # more details.
+
++from __future__ import print_function
++
+ import os
+ import sys
+ import struct
+@@ -60,11 +62,14 @@ perf_db_export_mode = True
+ perf_db_export_calls = False
+ perf_db_export_callchains = False
+
++def printerr(*args, **keyword_args):
++ print(*args, file=sys.stderr, **keyword_args)
++
+ def usage():
+- print >> sys.stderr, "Usage is: export-to-sqlite.py <database name> [<columns>] [<calls>] [<callchains>]"
+- print >> sys.stderr, "where: columns 'all' or 'branches'"
+- print >> sys.stderr, " calls 'calls' => create calls and call_paths table"
+- print >> sys.stderr, " callchains 'callchains' => create call_paths table"
++ printerr("Usage is: export-to-sqlite.py <database name> [<columns>] [<calls>] [<callchains>]");
++ printerr("where: columns 'all' or 'branches'");
++ printerr(" calls 'calls' => create calls and call_paths table");
++ printerr(" callchains 'callchains' => create call_paths table");
+ raise Exception("Too few arguments")
+
+ if (len(sys.argv) < 2):
+@@ -100,7 +105,7 @@ def do_query_(q):
+ return
+ raise Exception("Query failed: " + q.lastError().text())
+
+-print datetime.datetime.today(), "Creating database..."
++print(datetime.datetime.today(), "Creating database ...")
+
+ db_exists = False
+ try:
+@@ -376,7 +381,7 @@ if perf_db_export_calls:
+ call_query.prepare("INSERT INTO calls VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")
+
+ def trace_begin():
+- print datetime.datetime.today(), "Writing records..."
++ print(datetime.datetime.today(), "Writing records...")
+ do_query(query, 'BEGIN TRANSACTION')
+ # id == 0 means unknown. It is easier to create records for them than replace the zeroes with NULLs
+ evsel_table(0, "unknown")
+@@ -394,13 +399,13 @@ unhandled_count = 0
+ def trace_end():
+ do_query(query, 'END TRANSACTION')
+
+- print datetime.datetime.today(), "Adding indexes"
++ print(datetime.datetime.today(), "Adding indexes")
+ if perf_db_export_calls:
+ do_query(query, 'CREATE INDEX pcpid_idx ON calls (parent_call_path_id)')
+
+ if (unhandled_count):
+- print datetime.datetime.today(), "Warning: ", unhandled_count, " unhandled events"
+- print datetime.datetime.today(), "Done"
++ print(datetime.datetime.today(), "Warning: ", unhandled_count, " unhandled events")
++ print(datetime.datetime.today(), "Done")
+
+ def trace_unhandled(event_name, context, event_fields_dict):
+ global unhandled_count
diff --git a/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-failed-sys.patch b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-failed-sys.patch
new file mode 100644
index 000000000..617145de6
--- /dev/null
+++ b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-failed-sys.patch
@@ -0,0 +1,76 @@
+From: Tony Jones <tonyj@suse.de>
+Date: Fri, 22 Feb 2019 15:06:08 -0800
+Subject: perf script python: Add Python3 support to
+ failed-syscalls-by-pid.py
+Origin: https://git.kernel.org/linus/9b2700efc57f46fe63beee5f64fcfe2746936b4e
+Bug-Debian: https://bugs.debian.org/944641
+
+Support both Python2 and Python3 in the failed-syscalls-by-pid.py script
+
+There may be differences in the ordering of output lines due to
+differences in dictionary ordering etc. However the format within lines
+should be unchanged.
+
+The use of 'from __future__' implies the minimum supported Python2 version
+is now v2.6
+
+Signed-off-by: Tony Jones <tonyj@suse.de>
+Cc: Tom Zanussi <tzanussi@gmail.com>
+Link: http://lkml.kernel.org/r/20190222230619.17887-5-tonyj@suse.de
+Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/scripts/python/failed-syscalls-by-pid.py | 21 ++++++++++----------
+ 1 file changed, 11 insertions(+), 10 deletions(-)
+
+--- a/tools/perf/scripts/python/failed-syscalls-by-pid.py
++++ b/tools/perf/scripts/python/failed-syscalls-by-pid.py
+@@ -5,6 +5,8 @@
+ # Displays system-wide failed system call totals, broken down by pid.
+ # If a [comm] arg is specified, only syscalls called by [comm] are displayed.
+
++from __future__ import print_function
++
+ import os
+ import sys
+
+@@ -32,7 +34,7 @@ if len(sys.argv) > 1:
+ syscalls = autodict()
+
+ def trace_begin():
+- print "Press control+C to stop and show the summary"
++ print("Press control+C to stop and show the summary")
+
+ def trace_end():
+ print_error_totals()
+@@ -57,22 +59,21 @@ def syscalls__sys_exit(event_name, conte
+
+ def print_error_totals():
+ if for_comm is not None:
+- print "\nsyscall errors for %s:\n\n" % (for_comm),
++ print("\nsyscall errors for %s:\n" % (for_comm))
+ else:
+- print "\nsyscall errors:\n\n",
++ print("\nsyscall errors:\n")
+
+- print "%-30s %10s\n" % ("comm [pid]", "count"),
+- print "%-30s %10s\n" % ("------------------------------", \
+- "----------"),
++ print("%-30s %10s" % ("comm [pid]", "count"))
++ print("%-30s %10s" % ("------------------------------", "----------"))
+
+ comm_keys = syscalls.keys()
+ for comm in comm_keys:
+ pid_keys = syscalls[comm].keys()
+ for pid in pid_keys:
+- print "\n%s [%d]\n" % (comm, pid),
++ print("\n%s [%d]" % (comm, pid))
+ id_keys = syscalls[comm][pid].keys()
+ for id in id_keys:
+- print " syscall: %-16s\n" % syscall_name(id),
++ print(" syscall: %-16s" % syscall_name(id))
+ ret_keys = syscalls[comm][pid][id].keys()
+- for ret, val in sorted(syscalls[comm][pid][id].iteritems(), key = lambda(k, v): (v, k), reverse = True):
+- print " err = %-20s %10d\n" % (strerror(ret), val),
++ for ret, val in sorted(syscalls[comm][pid][id].items(), key = lambda kv: (kv[1], kv[0]), reverse = True):
++ print(" err = %-20s %10d" % (strerror(ret), val))
diff --git a/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-futex-cont.patch b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-futex-cont.patch
new file mode 100644
index 000000000..3fb8f1baf
--- /dev/null
+++ b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-futex-cont.patch
@@ -0,0 +1,57 @@
+From: Tony Jones <tonyj@suse.de>
+Date: Fri, 1 Mar 2019 17:18:58 -0800
+Subject: perf script python: Add Python3 support to futex-contention.py
+Origin: https://git.kernel.org/linus/de2ec16bd438945813198d4de2339a396904c206
+Bug-Debian: https://bugs.debian.org/944641
+
+Support both Python2 and Python3 in the futex-contention.py script
+
+There may be differences in the ordering of output lines due to
+differences in dictionary ordering etc. However the format within lines
+should be unchanged.
+
+The use of 'from __future__' implies the minimum supported Python2 version
+is now v2.6
+
+Signed-off-by: Tony Jones <tonyj@suse.de>
+Link: http://lkml.kernel.org/r/20190302011903.2416-3-tonyj@suse.de
+Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/scripts/python/futex-contention.py | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+--- a/tools/perf/scripts/python/futex-contention.py
++++ b/tools/perf/scripts/python/futex-contention.py
+@@ -10,6 +10,8 @@
+ #
+ # Measures futex contention
+
++from __future__ import print_function
++
+ import os, sys
+ sys.path.append(os.environ['PERF_EXEC_PATH'] + '/scripts/python/Perf-Trace-Util/lib/Perf/Trace')
+ from Util import *
+@@ -33,18 +35,18 @@ def syscalls__sys_enter_futex(event, ctx
+
+ def syscalls__sys_exit_futex(event, ctxt, cpu, s, ns, tid, comm, callchain,
+ nr, ret):
+- if thread_blocktime.has_key(tid):
++ if tid in thread_blocktime:
+ elapsed = nsecs(s, ns) - thread_blocktime[tid]
+ add_stats(lock_waits, (tid, thread_thislock[tid]), elapsed)
+ del thread_blocktime[tid]
+ del thread_thislock[tid]
+
+ def trace_begin():
+- print "Press control+C to stop and show the summary"
++ print("Press control+C to stop and show the summary")
+
+ def trace_end():
+ for (tid, lock) in lock_waits:
+ min, max, avg, count = lock_waits[tid, lock]
+- print "%s[%d] lock %x contended %d times, %d avg ns" % \
+- (process_names[tid], tid, lock, count, avg)
++ print("%s[%d] lock %x contended %d times, %d avg ns" %
++ (process_names[tid], tid, lock, count, avg))
+
diff --git a/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-intel-pt-e.patch b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-intel-pt-e.patch
new file mode 100644
index 000000000..c9dd3a189
--- /dev/null
+++ b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-intel-pt-e.patch
@@ -0,0 +1,133 @@
+From: Tony Jones <tonyj@suse.de>
+Date: Tue, 5 Mar 2019 08:19:02 -0800
+Subject: perf script python: Add Python3 support to intel-pt-events.py
+Origin: https://git.kernel.org/linus/fdf2460c297f1bb2f3bd20b3b52903b267af9050
+Bug-Debian: https://bugs.debian.org/944641
+
+Support both Python2 and Python3 in the intel-pt-events.py script
+
+There may be differences in the ordering of output lines due to
+differences in dictionary ordering etc. However the format within lines
+should be unchanged.
+
+The use of 'from __future__' implies the minimum supported Python2 version
+is now v2.6
+
+Signed-off-by: Tony Jones <tonyj@suse.de>
+Acked-by: Adrian Hunter <adrian.hunter@intel.com>
+Link: http://lkml.kernel.org/r/fd26acf9-0c0f-717f-9664-a3c33043ce19@suse.de
+Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/scripts/python/intel-pt-events.py | 32 ++++++++++++++++-----------
+ 1 file changed, 19 insertions(+), 13 deletions(-)
+
+--- a/tools/perf/scripts/python/intel-pt-events.py
++++ b/tools/perf/scripts/python/intel-pt-events.py
+@@ -10,6 +10,8 @@
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ # more details.
+
++from __future__ import print_function
++
+ import os
+ import sys
+ import struct
+@@ -22,34 +24,34 @@ sys.path.append(os.environ['PERF_EXEC_PA
+ #from Core import *
+
+ def trace_begin():
+- print "Intel PT Power Events and PTWRITE"
++ print("Intel PT Power Events and PTWRITE")
+
+ def trace_end():
+- print "End"
++ print("End")
+
+ def trace_unhandled(event_name, context, event_fields_dict):
+- print ' '.join(['%s=%s'%(k,str(v))for k,v in sorted(event_fields_dict.items())])
++ print(' '.join(['%s=%s'%(k,str(v))for k,v in sorted(event_fields_dict.items())]))
+
+ def print_ptwrite(raw_buf):
+ data = struct.unpack_from("<IQ", raw_buf)
+ flags = data[0]
+ payload = data[1]
+ exact_ip = flags & 1
+- print "IP: %u payload: %#x" % (exact_ip, payload),
++ print("IP: %u payload: %#x" % (exact_ip, payload), end=' ')
+
+ def print_cbr(raw_buf):
+ data = struct.unpack_from("<BBBBII", raw_buf)
+ cbr = data[0]
+ f = (data[4] + 500) / 1000
+ p = ((cbr * 1000 / data[2]) + 5) / 10
+- print "%3u freq: %4u MHz (%3u%%)" % (cbr, f, p),
++ print("%3u freq: %4u MHz (%3u%%)" % (cbr, f, p), end=' ')
+
+ def print_mwait(raw_buf):
+ data = struct.unpack_from("<IQ", raw_buf)
+ payload = data[1]
+ hints = payload & 0xff
+ extensions = (payload >> 32) & 0x3
+- print "hints: %#x extensions: %#x" % (hints, extensions),
++ print("hints: %#x extensions: %#x" % (hints, extensions), end=' ')
+
+ def print_pwre(raw_buf):
+ data = struct.unpack_from("<IQ", raw_buf)
+@@ -57,13 +59,14 @@ def print_pwre(raw_buf):
+ hw = (payload >> 7) & 1
+ cstate = (payload >> 12) & 0xf
+ subcstate = (payload >> 8) & 0xf
+- print "hw: %u cstate: %u sub-cstate: %u" % (hw, cstate, subcstate),
++ print("hw: %u cstate: %u sub-cstate: %u" % (hw, cstate, subcstate),
++ end=' ')
+
+ def print_exstop(raw_buf):
+ data = struct.unpack_from("<I", raw_buf)
+ flags = data[0]
+ exact_ip = flags & 1
+- print "IP: %u" % (exact_ip),
++ print("IP: %u" % (exact_ip), end=' ')
+
+ def print_pwrx(raw_buf):
+ data = struct.unpack_from("<IQ", raw_buf)
+@@ -71,18 +74,21 @@ def print_pwrx(raw_buf):
+ deepest_cstate = payload & 0xf
+ last_cstate = (payload >> 4) & 0xf
+ wake_reason = (payload >> 8) & 0xf
+- print "deepest cstate: %u last cstate: %u wake reason: %#x" % (deepest_cstate, last_cstate, wake_reason),
++ print("deepest cstate: %u last cstate: %u wake reason: %#x" %
++ (deepest_cstate, last_cstate, wake_reason), end=' ')
+
+ def print_common_start(comm, sample, name):
+ ts = sample["time"]
+ cpu = sample["cpu"]
+ pid = sample["pid"]
+ tid = sample["tid"]
+- print "%16s %5u/%-5u [%03u] %9u.%09u %7s:" % (comm, pid, tid, cpu, ts / 1000000000, ts %1000000000, name),
++ print("%16s %5u/%-5u [%03u] %9u.%09u %7s:" %
++ (comm, pid, tid, cpu, ts / 1000000000, ts %1000000000, name),
++ end=' ')
+
+ def print_common_ip(sample, symbol, dso):
+ ip = sample["ip"]
+- print "%16x %s (%s)" % (ip, symbol, dso)
++ print("%16x %s (%s)" % (ip, symbol, dso))
+
+ def process_event(param_dict):
+ event_attr = param_dict["attr"]
+@@ -92,12 +98,12 @@ def process_event(param_dict):
+ name = param_dict["ev_name"]
+
+ # Symbol and dso info are not always resolved
+- if (param_dict.has_key("dso")):
++ if "dso" in param_dict:
+ dso = param_dict["dso"]
+ else:
+ dso = "[unknown]"
+
+- if (param_dict.has_key("symbol")):
++ if "symbol" in param_dict:
+ symbol = param_dict["symbol"]
+ else:
+ symbol = "[unknown]"
diff --git a/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-mem-phys-a.patch b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-mem-phys-a.patch
new file mode 100644
index 000000000..3b9e39cc9
--- /dev/null
+++ b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-mem-phys-a.patch
@@ -0,0 +1,76 @@
+From: Tony Jones <tonyj@suse.de>
+Date: Fri, 22 Feb 2019 15:06:11 -0800
+Subject: perf script python: Add Python3 support to mem-phys-addr.py
+Origin: https://git.kernel.org/linus/e4d053ddb4c48cbde27b4c5edd3cc8f957684e4f
+Bug-Debian: https://bugs.debian.org/944641
+
+Support both Python2 and Python3 in the mem-phys-addr.py script
+
+There may be differences in the ordering of output lines due to
+differences in dictionary ordering etc. However the format within lines
+should be unchanged.
+
+The use of 'from __future__' implies the minimum supported Python2 version
+is now v2.6
+
+Signed-off-by: Tony Jones <tonyj@suse.de>
+Link: http://lkml.kernel.org/r/20190222230619.17887-8-tonyj@suse.de
+Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/scripts/python/mem-phys-addr.py | 24 ++++++++++++++----------
+ 1 file changed, 14 insertions(+), 10 deletions(-)
+
+--- a/tools/perf/scripts/python/mem-phys-addr.py
++++ b/tools/perf/scripts/python/mem-phys-addr.py
+@@ -4,6 +4,8 @@
+ # Copyright (c) 2018, Intel Corporation.
+
+ from __future__ import division
++from __future__ import print_function
++
+ import os
+ import sys
+ import struct
+@@ -31,21 +33,23 @@ def parse_iomem():
+ for i, j in enumerate(f):
+ m = re.split('-|:',j,2)
+ if m[2].strip() == 'System RAM':
+- system_ram.append(long(m[0], 16))
+- system_ram.append(long(m[1], 16))
++ system_ram.append(int(m[0], 16))
++ system_ram.append(int(m[1], 16))
+ if m[2].strip() == 'Persistent Memory':
+- pmem.append(long(m[0], 16))
+- pmem.append(long(m[1], 16))
++ pmem.append(int(m[0], 16))
++ pmem.append(int(m[1], 16))
+
+ def print_memory_type():
+- print "Event: %s" % (event_name)
+- print "%-40s %10s %10s\n" % ("Memory type", "count", "percentage"),
+- print "%-40s %10s %10s\n" % ("----------------------------------------", \
++ print("Event: %s" % (event_name))
++ print("%-40s %10s %10s\n" % ("Memory type", "count", "percentage"), end='')
++ print("%-40s %10s %10s\n" % ("----------------------------------------",
+ "-----------", "-----------"),
++ end='');
+ total = sum(load_mem_type_cnt.values())
+ for mem_type, count in sorted(load_mem_type_cnt.most_common(), \
+- key = lambda(k, v): (v, k), reverse = True):
+- print "%-40s %10d %10.1f%%\n" % (mem_type, count, 100 * count / total),
++ key = lambda kv: (kv[1], kv[0]), reverse = True):
++ print("%-40s %10d %10.1f%%\n" % (mem_type, count, 100 * count / total),
++ end='')
+
+ def trace_begin():
+ parse_iomem()
+@@ -80,7 +84,7 @@ def find_memory_type(phys_addr):
+ f.seek(0, 0)
+ for j in f:
+ m = re.split('-|:',j,2)
+- if long(m[0], 16) <= phys_addr <= long(m[1], 16):
++ if int(m[0], 16) <= phys_addr <= int(m[1], 16):
+ return m[2]
+ return "N/A"
+
diff --git a/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-net_dropmo.patch b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-net_dropmo.patch
new file mode 100644
index 000000000..631a94449
--- /dev/null
+++ b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-net_dropmo.patch
@@ -0,0 +1,59 @@
+From: Tony Jones <tonyj@suse.de>
+Date: Fri, 22 Feb 2019 15:06:12 -0800
+Subject: perf script python: Add Python3 support to net_dropmonitor.py
+Origin: https://git.kernel.org/linus/8c42b9600e561666233b9c557a5209d0dc853ba1
+Bug-Debian: https://bugs.debian.org/944641
+
+Support both Python2 and Python3 in the net_dropmonitor.py script
+
+There may be differences in the ordering of output lines due to
+differences in dictionary ordering etc. However the format within lines
+should be unchanged.
+
+The use of 'from __future__' implies the minimum supported Python2 version
+is now v2.6
+
+Signed-off-by: Tony Jones <tonyj@suse.de>
+Acked-by: Neil Horman <nhorman@tuxdriver.com>
+Link: http://lkml.kernel.org/r/20190222230619.17887-9-tonyj@suse.de
+Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/scripts/python/net_dropmonitor.py | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+--- a/tools/perf/scripts/python/net_dropmonitor.py
++++ b/tools/perf/scripts/python/net_dropmonitor.py
+@@ -1,6 +1,8 @@
+ # Monitor the system for dropped packets and proudce a report of drop locations and counts
+ # SPDX-License-Identifier: GPL-2.0
+
++from __future__ import print_function
++
+ import os
+ import sys
+
+@@ -50,19 +52,19 @@ def get_sym(sloc):
+ return (None, 0)
+
+ def print_drop_table():
+- print "%25s %25s %25s" % ("LOCATION", "OFFSET", "COUNT")
++ print("%25s %25s %25s" % ("LOCATION", "OFFSET", "COUNT"))
+ for i in drop_log.keys():
+ (sym, off) = get_sym(i)
+ if sym == None:
+ sym = i
+- print "%25s %25s %25s" % (sym, off, drop_log[i])
++ print("%25s %25s %25s" % (sym, off, drop_log[i]))
+
+
+ def trace_begin():
+- print "Starting trace (Ctrl-C to dump results)"
++ print("Starting trace (Ctrl-C to dump results)")
+
+ def trace_end():
+- print "Gathering kallsyms data"
++ print("Gathering kallsyms data")
+ get_kallsyms_table()
+ print_drop_table()
+
diff --git a/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-netdev-tim.patch b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-netdev-tim.patch
new file mode 100644
index 000000000..2d501dd4c
--- /dev/null
+++ b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-netdev-tim.patch
@@ -0,0 +1,180 @@
+From: Tony Jones <tonyj@suse.de>
+Date: Fri, 22 Feb 2019 15:06:05 -0800
+Subject: perf script python: Add Python3 support to netdev-times.py
+Origin: https://git.kernel.org/linus/02b03ec383e0c79d73aa4b402b3427a8b490ef9f
+Bug-Debian: https://bugs.debian.org/944641
+
+Support both Python2 and Python3 in the netdev-times.py script
+
+There may be differences in the ordering of output lines due to
+differences in dictionary ordering etc. However the format within lines
+should be unchanged.
+
+The use of 'from __future__' implies the minimum supported Python2
+version is now v2.6.
+
+Signed-off-by: Tony Jones <tonyj@suse.de>
+Cc: Sanagi Koki <sanagi.koki@jp.fujitsu.com>
+Link: http://lkml.kernel.org/r/20190222230619.17887-2-tonyj@suse.de
+Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/scripts/python/netdev-times.py | 82 +++++++++++++++---------------
+ 1 file changed, 42 insertions(+), 40 deletions(-)
+
+--- a/tools/perf/scripts/python/netdev-times.py
++++ b/tools/perf/scripts/python/netdev-times.py
+@@ -8,6 +8,8 @@
+ # dev=: show only thing related to specified device
+ # debug: work with debug mode. It shows buffer status.
+
++from __future__ import print_function
++
+ import os
+ import sys
+
+@@ -17,6 +19,7 @@ sys.path.append(os.environ['PERF_EXEC_PA
+ from perf_trace_context import *
+ from Core import *
+ from Util import *
++from functools import cmp_to_key
+
+ all_event_list = []; # insert all tracepoint event related with this script
+ irq_dic = {}; # key is cpu and value is a list which stacks irqs
+@@ -61,12 +64,12 @@ def diff_msec(src, dst):
+ def print_transmit(hunk):
+ if dev != 0 and hunk['dev'].find(dev) < 0:
+ return
+- print "%7s %5d %6d.%06dsec %12.3fmsec %12.3fmsec" % \
++ print("%7s %5d %6d.%06dsec %12.3fmsec %12.3fmsec" %
+ (hunk['dev'], hunk['len'],
+ nsecs_secs(hunk['queue_t']),
+ nsecs_nsecs(hunk['queue_t'])/1000,
+ diff_msec(hunk['queue_t'], hunk['xmit_t']),
+- diff_msec(hunk['xmit_t'], hunk['free_t']))
++ diff_msec(hunk['xmit_t'], hunk['free_t'])))
+
+ # Format for displaying rx packet processing
+ PF_IRQ_ENTRY= " irq_entry(+%.3fmsec irq=%d:%s)"
+@@ -98,55 +101,55 @@ def print_receive(hunk):
+ if show_hunk == 0:
+ return
+
+- print "%d.%06dsec cpu=%d" % \
+- (nsecs_secs(base_t), nsecs_nsecs(base_t)/1000, cpu)
++ print("%d.%06dsec cpu=%d" %
++ (nsecs_secs(base_t), nsecs_nsecs(base_t)/1000, cpu))
+ for i in range(len(irq_list)):
+- print PF_IRQ_ENTRY % \
++ print(PF_IRQ_ENTRY %
+ (diff_msec(base_t, irq_list[i]['irq_ent_t']),
+- irq_list[i]['irq'], irq_list[i]['name'])
+- print PF_JOINT
++ irq_list[i]['irq'], irq_list[i]['name']))
++ print(PF_JOINT)
+ irq_event_list = irq_list[i]['event_list']
+ for j in range(len(irq_event_list)):
+ irq_event = irq_event_list[j]
+ if irq_event['event'] == 'netif_rx':
+- print PF_NET_RX % \
++ print(PF_NET_RX %
+ (diff_msec(base_t, irq_event['time']),
+- irq_event['skbaddr'])
+- print PF_JOINT
+- print PF_SOFT_ENTRY % \
+- diff_msec(base_t, hunk['sirq_ent_t'])
+- print PF_JOINT
++ irq_event['skbaddr']))
++ print(PF_JOINT)
++ print(PF_SOFT_ENTRY %
++ diff_msec(base_t, hunk['sirq_ent_t']))
++ print(PF_JOINT)
+ event_list = hunk['event_list']
+ for i in range(len(event_list)):
+ event = event_list[i]
+ if event['event_name'] == 'napi_poll':
+- print PF_NAPI_POLL % \
+- (diff_msec(base_t, event['event_t']), event['dev'])
++ print(PF_NAPI_POLL %
++ (diff_msec(base_t, event['event_t']), event['dev']))
+ if i == len(event_list) - 1:
+- print ""
++ print("")
+ else:
+- print PF_JOINT
++ print(PF_JOINT)
+ else:
+- print PF_NET_RECV % \
++ print(PF_NET_RECV %
+ (diff_msec(base_t, event['event_t']), event['skbaddr'],
+- event['len'])
++ event['len']))
+ if 'comm' in event.keys():
+- print PF_WJOINT
+- print PF_CPY_DGRAM % \
++ print(PF_WJOINT)
++ print(PF_CPY_DGRAM %
+ (diff_msec(base_t, event['comm_t']),
+- event['pid'], event['comm'])
++ event['pid'], event['comm']))
+ elif 'handle' in event.keys():
+- print PF_WJOINT
++ print(PF_WJOINT)
+ if event['handle'] == "kfree_skb":
+- print PF_KFREE_SKB % \
++ print(PF_KFREE_SKB %
+ (diff_msec(base_t,
+ event['comm_t']),
+- event['location'])
++ event['location']))
+ elif event['handle'] == "consume_skb":
+- print PF_CONS_SKB % \
++ print(PF_CONS_SKB %
+ diff_msec(base_t,
+- event['comm_t'])
+- print PF_JOINT
++ event['comm_t']))
++ print(PF_JOINT)
+
+ def trace_begin():
+ global show_tx
+@@ -172,8 +175,7 @@ def trace_begin():
+
+ def trace_end():
+ # order all events in time
+- all_event_list.sort(lambda a,b :cmp(a[EINFO_IDX_TIME],
+- b[EINFO_IDX_TIME]))
++ all_event_list.sort(key=cmp_to_key(lambda a,b :a[EINFO_IDX_TIME] < b[EINFO_IDX_TIME]))
+ # process all events
+ for i in range(len(all_event_list)):
+ event_info = all_event_list[i]
+@@ -210,19 +212,19 @@ def trace_end():
+ print_receive(receive_hunk_list[i])
+ # display transmit hunks
+ if show_tx:
+- print " dev len Qdisc " \
+- " netdevice free"
++ print(" dev len Qdisc "
++ " netdevice free")
+ for i in range(len(tx_free_list)):
+ print_transmit(tx_free_list[i])
+ if debug:
+- print "debug buffer status"
+- print "----------------------------"
+- print "xmit Qdisc:remain:%d overflow:%d" % \
+- (len(tx_queue_list), of_count_tx_queue_list)
+- print "xmit netdevice:remain:%d overflow:%d" % \
+- (len(tx_xmit_list), of_count_tx_xmit_list)
+- print "receive:remain:%d overflow:%d" % \
+- (len(rx_skb_list), of_count_rx_skb_list)
++ print("debug buffer status")
++ print("----------------------------")
++ print("xmit Qdisc:remain:%d overflow:%d" %
++ (len(tx_queue_list), of_count_tx_queue_list))
++ print("xmit netdevice:remain:%d overflow:%d" %
++ (len(tx_xmit_list), of_count_tx_xmit_list))
++ print("receive:remain:%d overflow:%d" %
++ (len(rx_skb_list), of_count_rx_skb_list))
+
+ # called from perf, when it finds a correspoinding event
+ def irq__softirq_entry(name, context, cpu, sec, nsec, pid, comm, callchain, vec):
diff --git a/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-powerpc-hc.patch b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-powerpc-hc.patch
new file mode 100644
index 000000000..1c8fdc5a1
--- /dev/null
+++ b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-powerpc-hc.patch
@@ -0,0 +1,87 @@
+From: Tony Jones <tonyj@suse.de>
+Date: Fri, 22 Feb 2019 15:06:13 -0800
+Subject: perf script python: Add Python3 support to powerpc-hcalls.py
+Origin: https://git.kernel.org/linus/118af5bf799bd1876c3999766d1d2f845d45f019
+Bug-Debian: https://bugs.debian.org/944641
+
+Support both Python2 and Python3 in the powerpc-hcalls.py script
+
+There may be differences in the ordering of output lines due to
+differences in dictionary ordering etc. However the format within lines
+should be unchanged.
+
+The use of 'from __future__' implies the minimum supported Python2 version
+is now v2.6
+
+Signed-off-by: Tony Jones <tonyj@suse.de>
+Cc: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
+Link: http://lkml.kernel.org/r/20190222230619.17887-10-tonyj@suse.de
+Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/scripts/python/powerpc-hcalls.py | 18 ++++++++++--------
+ 1 file changed, 10 insertions(+), 8 deletions(-)
+
+--- a/tools/perf/scripts/python/powerpc-hcalls.py
++++ b/tools/perf/scripts/python/powerpc-hcalls.py
+@@ -4,6 +4,8 @@
+ #
+ # Hypervisor call statisics
+
++from __future__ import print_function
++
+ import os
+ import sys
+
+@@ -149,7 +151,7 @@ hcall_table = {
+ }
+
+ def hcall_table_lookup(opcode):
+- if (hcall_table.has_key(opcode)):
++ if (opcode in hcall_table):
+ return hcall_table[opcode]
+ else:
+ return opcode
+@@ -157,8 +159,8 @@ def hcall_table_lookup(opcode):
+ print_ptrn = '%-28s%10s%10s%10s%10s'
+
+ def trace_end():
+- print print_ptrn % ('hcall', 'count', 'min(ns)', 'max(ns)', 'avg(ns)')
+- print '-' * 68
++ print(print_ptrn % ('hcall', 'count', 'min(ns)', 'max(ns)', 'avg(ns)'))
++ print('-' * 68)
+ for opcode in output:
+ h_name = hcall_table_lookup(opcode)
+ time = output[opcode]['time']
+@@ -166,14 +168,14 @@ def trace_end():
+ min_t = output[opcode]['min']
+ max_t = output[opcode]['max']
+
+- print print_ptrn % (h_name, cnt, min_t, max_t, time/cnt)
++ print(print_ptrn % (h_name, cnt, min_t, max_t, time//cnt))
+
+ def powerpc__hcall_exit(name, context, cpu, sec, nsec, pid, comm, callchain,
+ opcode, retval):
+- if (d_enter.has_key(cpu) and d_enter[cpu].has_key(opcode)):
++ if (cpu in d_enter and opcode in d_enter[cpu]):
+ diff = nsecs(sec, nsec) - d_enter[cpu][opcode]
+
+- if (output.has_key(opcode)):
++ if (opcode in output):
+ output[opcode]['time'] += diff
+ output[opcode]['cnt'] += 1
+ if (output[opcode]['min'] > diff):
+@@ -190,11 +192,11 @@ def powerpc__hcall_exit(name, context, c
+
+ del d_enter[cpu][opcode]
+ # else:
+-# print "Can't find matching hcall_enter event. Ignoring sample"
++# print("Can't find matching hcall_enter event. Ignoring sample")
+
+ def powerpc__hcall_entry(event_name, context, cpu, sec, nsec, pid, comm,
+ callchain, opcode):
+- if (d_enter.has_key(cpu)):
++ if (cpu in d_enter):
+ d_enter[cpu][opcode] = nsecs(sec, nsec)
+ else:
+ d_enter[cpu] = {opcode: nsecs(sec, nsec)}
diff --git a/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-sctop.py.patch b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-sctop.py.patch
new file mode 100644
index 000000000..fa90ed99a
--- /dev/null
+++ b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-sctop.py.patch
@@ -0,0 +1,69 @@
+From: Tony Jones <tonyj@suse.de>
+Date: Fri, 22 Feb 2019 15:06:14 -0800
+Subject: perf script python: Add Python3 support to sctop.py
+Origin: https://git.kernel.org/linus/ee75a896ae535d4219a82cc361be96394536f3ba
+Bug-Debian: https://bugs.debian.org/944641
+
+Support both Python2 and Python3 in the sctop.py script
+
+There may be differences in the ordering of output lines due to
+differences in dictionary ordering etc. However the format within lines
+should be unchanged.
+
+The use of 'from __future__' implies the minimum supported Python2 version
+is now v2.6
+
+Signed-off-by: Tony Jones <tonyj@suse.de>
+Cc: Tom Zanussi <tzanussi@gmail.com>
+Link: http://lkml.kernel.org/r/20190222230619.17887-11-tonyj@suse.de
+Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/scripts/python/sctop.py | 24 ++++++++++++++++--------
+ 1 file changed, 16 insertions(+), 8 deletions(-)
+
+--- a/tools/perf/scripts/python/sctop.py
++++ b/tools/perf/scripts/python/sctop.py
+@@ -8,7 +8,14 @@
+ # will be refreshed every [interval] seconds. The default interval is
+ # 3 seconds.
+
+-import os, sys, thread, time
++from __future__ import print_function
++
++import os, sys, time
++
++try:
++ import thread
++except ImportError:
++ import _thread as thread
+
+ sys.path.append(os.environ['PERF_EXEC_PATH'] + \
+ '/scripts/python/Perf-Trace-Util/lib/Perf/Trace')
+@@ -62,18 +69,19 @@ def print_syscall_totals(interval):
+ while 1:
+ clear_term()
+ if for_comm is not None:
+- print "\nsyscall events for %s:\n\n" % (for_comm),
++ print("\nsyscall events for %s:\n" % (for_comm))
+ else:
+- print "\nsyscall events:\n\n",
++ print("\nsyscall events:\n")
+
+- print "%-40s %10s\n" % ("event", "count"),
+- print "%-40s %10s\n" % ("----------------------------------------", \
+- "----------"),
++ print("%-40s %10s" % ("event", "count"))
++ print("%-40s %10s" %
++ ("----------------------------------------",
++ "----------"))
+
+- for id, val in sorted(syscalls.iteritems(), key = lambda(k, v): (v, k), \
++ for id, val in sorted(syscalls.items(), key = lambda kv: (kv[1], kv[0]), \
+ reverse = True):
+ try:
+- print "%-40s %10d\n" % (syscall_name(id), val),
++ print("%-40s %10d" % (syscall_name(id), val))
+ except TypeError:
+ pass
+ syscalls.clear()
diff --git a/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-stackcolla.patch b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-stackcolla.patch
new file mode 100644
index 000000000..ff41b4a20
--- /dev/null
+++ b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-stackcolla.patch
@@ -0,0 +1,45 @@
+From: Tony Jones <tonyj@suse.de>
+Date: Fri, 22 Feb 2019 15:06:15 -0800
+Subject: perf script python: Add Python3 support to stackcollapse.py
+Origin: https://git.kernel.org/linus/6d22d9991cf37edfe861569e2433342ad56206a7
+Bug-Debian: https://bugs.debian.org/944641
+
+Support both Python2 and Python3 in the stackcollapse.py script
+
+There may be differences in the ordering of output lines due to
+differences in dictionary ordering etc. However the format within lines
+should be unchanged.
+
+The use of 'from __future__' implies the minimum supported Python2 version
+is now v2.6
+
+Signed-off-by: Tony Jones <tonyj@suse.de>
+Cc: Paolo Bonzini <pbonzini@redhat.com> <pbonzini@redhat.com>
+Link: http://lkml.kernel.org/r/20190222230619.17887-12-tonyj@suse.de
+Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/scripts/python/stackcollapse.py | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+--- a/tools/perf/scripts/python/stackcollapse.py
++++ b/tools/perf/scripts/python/stackcollapse.py
+@@ -19,6 +19,8 @@
+ # Written by Paolo Bonzini <pbonzini@redhat.com>
+ # Based on Brendan Gregg's stackcollapse-perf.pl script.
+
++from __future__ import print_function
++
+ import os
+ import sys
+ from collections import defaultdict
+@@ -120,7 +122,6 @@ def process_event(param_dict):
+ lines[stack_string] = lines[stack_string] + 1
+
+ def trace_end():
+- list = lines.keys()
+- list.sort()
++ list = sorted(lines)
+ for stack in list:
+- print "%s %d" % (stack, lines[stack])
++ print("%s %d" % (stack, lines[stack]))
diff --git a/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-stat-cpi.p.patch b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-stat-cpi.p.patch
new file mode 100644
index 000000000..8ef6fa8b5
--- /dev/null
+++ b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-stat-cpi.p.patch
@@ -0,0 +1,61 @@
+From: Tony Jones <tonyj@suse.de>
+Date: Fri, 22 Feb 2019 15:06:16 -0800
+Subject: perf script python: Add Python3 support to stat-cpi.py
+Origin: https://git.kernel.org/linus/e985bf761db7646cebcd236249da08bd264069de
+Bug-Debian: https://bugs.debian.org/944641
+
+Support both Python2 and Python3 in the stat-cpi.py script
+
+There may be differences in the ordering of output lines due to
+differences in dictionary ordering etc. However the format within lines
+should be unchanged.
+
+The use of 'from __future__' implies the minimum supported Python2 version
+is now v2.6
+
+Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
+Cc: Jiri Olsa <jolsa@kernel.org>
+Link: http://lkml.kernel.org/r/20190222230619.17887-13-tonyj@suse.de
+Signed-off-by: Tony Jones <tonyj@suse.de>
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/scripts/python/stat-cpi.py | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+--- a/tools/perf/scripts/python/stat-cpi.py
++++ b/tools/perf/scripts/python/stat-cpi.py
+@@ -1,6 +1,8 @@
+ #!/usr/bin/env python
+ # SPDX-License-Identifier: GPL-2.0
+
++from __future__ import print_function
++
+ data = {}
+ times = []
+ threads = []
+@@ -20,8 +22,8 @@ def store_key(time, cpu, thread):
+ threads.append(thread)
+
+ def store(time, event, cpu, thread, val, ena, run):
+- #print "event %s cpu %d, thread %d, time %d, val %d, ena %d, run %d" % \
+- # (event, cpu, thread, time, val, ena, run)
++ #print("event %s cpu %d, thread %d, time %d, val %d, ena %d, run %d" %
++ # (event, cpu, thread, time, val, ena, run))
+
+ store_key(time, cpu, thread)
+ key = get_key(time, event, cpu, thread)
+@@ -59,7 +61,7 @@ def stat__interval(time):
+ if ins != 0:
+ cpi = cyc/float(ins)
+
+- print "%15f: cpu %d, thread %d -> cpi %f (%d/%d)" % (time/(float(1000000000)), cpu, thread, cpi, cyc, ins)
++ print("%15f: cpu %d, thread %d -> cpi %f (%d/%d)" % (time/(float(1000000000)), cpu, thread, cpi, cyc, ins))
+
+ def trace_end():
+ pass
+@@ -75,4 +77,4 @@ def trace_end():
+ # if ins != 0:
+ # cpi = cyc/float(ins)
+ #
+-# print "time %.9f, cpu %d, thread %d -> cpi %f" % (time/(float(1000000000)), cpu, thread, cpi)
++# print("time %.9f, cpu %d, thread %d -> cpi %f" % (time/(float(1000000000)), cpu, thread, cpi))
diff --git a/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-syscall-co-de667cce7f4f.patch b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-syscall-co-de667cce7f4f.patch
new file mode 100644
index 000000000..9dc84ceac
--- /dev/null
+++ b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-syscall-co-de667cce7f4f.patch
@@ -0,0 +1,74 @@
+From: Tony Jones <tonyj@suse.de>
+Date: Fri, 22 Feb 2019 15:06:18 -0800
+Subject: perf script python: Add Python3 support to
+ syscall-counts-by-pid.py
+Origin: https://git.kernel.org/linus/de667cce7f4f96b6e22da8fd9c065b961f355080
+Bug-Debian: https://bugs.debian.org/944641
+
+Support both Python2 and Python3 in the syscall-counts-by-pid.py script
+
+There may be differences in the ordering of output lines due to
+differences in dictionary ordering etc. However the format within lines
+should be unchanged.
+
+The use of 'from __future__' implies the minimum supported Python2 version
+is now v2.6
+
+Signed-off-by: Tony Jones <tonyj@suse.de>
+Link: http://lkml.kernel.org/r/20190222230619.17887-15-tonyj@suse.de
+Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/scripts/python/syscall-counts-by-pid.py | 22 +++++++++++----------
+ 1 file changed, 12 insertions(+), 10 deletions(-)
+
+--- a/tools/perf/scripts/python/syscall-counts-by-pid.py
++++ b/tools/perf/scripts/python/syscall-counts-by-pid.py
+@@ -5,6 +5,8 @@
+ # Displays system-wide system call totals, broken down by syscall.
+ # If a [comm] arg is specified, only syscalls called by [comm] are displayed.
+
++from __future__ import print_function
++
+ import os, sys
+
+ sys.path.append(os.environ['PERF_EXEC_PATH'] + \
+@@ -31,7 +33,7 @@ if len(sys.argv) > 1:
+ syscalls = autodict()
+
+ def trace_begin():
+- print "Press control+C to stop and show the summary"
++ print("Press control+C to stop and show the summary")
+
+ def trace_end():
+ print_syscall_totals()
+@@ -55,20 +57,20 @@ def syscalls__sys_enter(event_name, cont
+
+ def print_syscall_totals():
+ if for_comm is not None:
+- print "\nsyscall events for %s:\n\n" % (for_comm),
++ print("\nsyscall events for %s:\n" % (for_comm))
+ else:
+- print "\nsyscall events by comm/pid:\n\n",
++ print("\nsyscall events by comm/pid:\n")
+
+- print "%-40s %10s\n" % ("comm [pid]/syscalls", "count"),
+- print "%-40s %10s\n" % ("----------------------------------------", \
+- "----------"),
++ print("%-40s %10s" % ("comm [pid]/syscalls", "count"))
++ print("%-40s %10s" % ("----------------------------------------",
++ "----------"))
+
+ comm_keys = syscalls.keys()
+ for comm in comm_keys:
+ pid_keys = syscalls[comm].keys()
+ for pid in pid_keys:
+- print "\n%s [%d]\n" % (comm, pid),
++ print("\n%s [%d]" % (comm, pid))
+ id_keys = syscalls[comm][pid].keys()
+- for id, val in sorted(syscalls[comm][pid].iteritems(), \
+- key = lambda(k, v): (v, k), reverse = True):
+- print " %-38s %10d\n" % (syscall_name(id), val),
++ for id, val in sorted(syscalls[comm][pid].items(), \
++ key = lambda kv: (kv[1], kv[0]), reverse = True):
++ print(" %-38s %10d" % (syscall_name(id), val))
diff --git a/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-syscall-co.patch b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-syscall-co.patch
new file mode 100644
index 000000000..59c654479
--- /dev/null
+++ b/debian/patches/bugfix/all/perf-script-python-Add-Python3-support-to-syscall-co.patch
@@ -0,0 +1,65 @@
+From: Tony Jones <tonyj@suse.de>
+Date: Fri, 22 Feb 2019 15:06:17 -0800
+Subject: perf script python: Add Python3 support to syscall-counts.py
+Origin: https://git.kernel.org/linus/1d1b0dbb859d175eb512a9f0e1ca7e44bd0192cd
+Bug-Debian: https://bugs.debian.org/944641
+
+Support both Python2 and Python3 in the syscall-counts.py script
+
+There may be differences in the ordering of output lines due to
+differences in dictionary ordering etc. However the format within lines
+should be unchanged.
+
+The use of 'from __future__' implies the minimum supported Python2 version
+is now v2.6
+
+Signed-off-by: Tony Jones <tonyj@suse.de>
+Link: http://lkml.kernel.org/r/20190222230619.17887-14-tonyj@suse.de
+Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/scripts/python/syscall-counts.py | 18 ++++++++++--------
+ 1 file changed, 10 insertions(+), 8 deletions(-)
+
+--- a/tools/perf/scripts/python/syscall-counts.py
++++ b/tools/perf/scripts/python/syscall-counts.py
+@@ -5,6 +5,8 @@
+ # Displays system-wide system call totals, broken down by syscall.
+ # If a [comm] arg is specified, only syscalls called by [comm] are displayed.
+
++from __future__ import print_function
++
+ import os
+ import sys
+
+@@ -28,7 +30,7 @@ if len(sys.argv) > 1:
+ syscalls = autodict()
+
+ def trace_begin():
+- print "Press control+C to stop and show the summary"
++ print("Press control+C to stop and show the summary")
+
+ def trace_end():
+ print_syscall_totals()
+@@ -51,14 +53,14 @@ def syscalls__sys_enter(event_name, cont
+
+ def print_syscall_totals():
+ if for_comm is not None:
+- print "\nsyscall events for %s:\n\n" % (for_comm),
++ print("\nsyscall events for %s:\n" % (for_comm))
+ else:
+- print "\nsyscall events:\n\n",
++ print("\nsyscall events:\n")
+
+- print "%-40s %10s\n" % ("event", "count"),
+- print "%-40s %10s\n" % ("----------------------------------------", \
+- "-----------"),
++ print("%-40s %10s" % ("event", "count"))
++ print("%-40s %10s" % ("----------------------------------------",
++ "-----------"))
+
+- for id, val in sorted(syscalls.iteritems(), key = lambda(k, v): (v, k), \
++ for id, val in sorted(syscalls.items(), key = lambda kv: (kv[1], kv[0]), \
+ reverse = True):
+- print "%-40s %10d\n" % (syscall_name(id), val),
++ print("%-40s %10d" % (syscall_name(id), val))
diff --git a/debian/patches/bugfix/all/perf-script-python-Remove-mixed-indentation.patch b/debian/patches/bugfix/all/perf-script-python-Remove-mixed-indentation.patch
new file mode 100644
index 000000000..b18ceaea8
--- /dev/null
+++ b/debian/patches/bugfix/all/perf-script-python-Remove-mixed-indentation.patch
@@ -0,0 +1,511 @@
+From: Tony Jones <tonyj@suse.de>
+Date: Fri, 1 Mar 2019 17:18:57 -0800
+Subject: perf script python: Remove mixed indentation
+Origin: https://git.kernel.org/linus/b504d7f6876515b74c8e27a44ccdb22372616d97
+Bug-Debian: https://bugs.debian.org/944641
+
+Remove mixed indentation in Python scripts. Revert to either all tabs
+(most common form) or all spaces (4 or 8) depending on what was the
+intent of the original commit. This is necessary to complete Python3
+support as it will flag an error if it encounters mixed indentation.
+
+Signed-off-by: Tony Jones <tonyj@suse.de>
+Link: http://lkml.kernel.org/r/20190302011903.2416-2-tonyj@suse.de
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/scripts/python/check-perf-trace.py | 69 +++++++++-----------
+ tools/perf/scripts/python/compaction-times.py | 8 +-
+ tools/perf/scripts/python/event_analyzing_sample.py | 6 -
+ tools/perf/scripts/python/failed-syscalls-by-pid.py | 34 ++++-----
+ tools/perf/scripts/python/futex-contention.py | 2
+ tools/perf/scripts/python/intel-pt-events.py | 28 ++++----
+ tools/perf/scripts/python/mem-phys-addr.py | 7 +-
+ tools/perf/scripts/python/net_dropmonitor.py | 2
+ tools/perf/scripts/python/netdev-times.py | 12 ++-
+ tools/perf/scripts/python/sched-migration.py | 6 -
+ tools/perf/scripts/python/sctop.py | 13 ++-
+ tools/perf/scripts/python/stackcollapse.py | 2
+ tools/perf/scripts/python/syscall-counts-by-pid.py | 47 ++++++-------
+ tools/perf/scripts/python/syscall-counts.py | 27 +++----
+ 14 files changed, 132 insertions(+), 131 deletions(-)
+
+--- a/tools/perf/scripts/python/check-perf-trace.py
++++ b/tools/perf/scripts/python/check-perf-trace.py
+@@ -23,60 +23,59 @@ def trace_begin():
+ pass
+
+ def trace_end():
+- print_unhandled()
++ print_unhandled()
+
+ def irq__softirq_entry(event_name, context, common_cpu,
+- common_secs, common_nsecs, common_pid, common_comm,
+- common_callchain, vec):
+- print_header(event_name, common_cpu, common_secs, common_nsecs,
+- common_pid, common_comm)
++ common_secs, common_nsecs, common_pid, common_comm,
++ common_callchain, vec):
++ print_header(event_name, common_cpu, common_secs, common_nsecs,
++ common_pid, common_comm)
+
+- print_uncommon(context)
++ print_uncommon(context)
+
+- print "vec=%s\n" % \
+- (symbol_str("irq__softirq_entry", "vec", vec)),
++ print "vec=%s\n" % (symbol_str("irq__softirq_entry", "vec", vec)),
+
+ def kmem__kmalloc(event_name, context, common_cpu,
+- common_secs, common_nsecs, common_pid, common_comm,
+- common_callchain, call_site, ptr, bytes_req, bytes_alloc,
+- gfp_flags):
+- print_header(event_name, common_cpu, common_secs, common_nsecs,
+- common_pid, common_comm)
++ common_secs, common_nsecs, common_pid, common_comm,
++ common_callchain, call_site, ptr, bytes_req, bytes_alloc,
++ gfp_flags):
++ print_header(event_name, common_cpu, common_secs, common_nsecs,
++ common_pid, common_comm)
+
+- print_uncommon(context)
++ print_uncommon(context)
+
+- print "call_site=%u, ptr=%u, bytes_req=%u, " \
++ print "call_site=%u, ptr=%u, bytes_req=%u, " \
+ "bytes_alloc=%u, gfp_flags=%s\n" % \
+ (call_site, ptr, bytes_req, bytes_alloc,
+-
+ flag_str("kmem__kmalloc", "gfp_flags", gfp_flags)),
+
+ def trace_unhandled(event_name, context, event_fields_dict):
+- try:
+- unhandled[event_name] += 1
+- except TypeError:
+- unhandled[event_name] = 1
++ try:
++ unhandled[event_name] += 1
++ except TypeError:
++ unhandled[event_name] = 1
+
+ def print_header(event_name, cpu, secs, nsecs, pid, comm):
+ print "%-20s %5u %05u.%09u %8u %-20s " % \
+- (event_name, cpu, secs, nsecs, pid, comm),
++ (event_name, cpu, secs, nsecs, pid, comm),
+
+ # print trace fields not included in handler args
+ def print_uncommon(context):
+- print "common_preempt_count=%d, common_flags=%s, common_lock_depth=%d, " \
+- % (common_pc(context), trace_flag_str(common_flags(context)), \
+- common_lock_depth(context))
++ print "common_preempt_count=%d, common_flags=%s, " \
++ "common_lock_depth=%d, " % \
++ (common_pc(context), trace_flag_str(common_flags(context)),
++ common_lock_depth(context))
+
+ def print_unhandled():
+- keys = unhandled.keys()
+- if not keys:
+- return
+-
+- print "\nunhandled events:\n\n",
+-
+- print "%-40s %10s\n" % ("event", "count"),
+- print "%-40s %10s\n" % ("----------------------------------------", \
+- "-----------"),
++ keys = unhandled.keys()
++ if not keys:
++ return
++
++ print "\nunhandled events:\n\n",
++
++ print "%-40s %10s\n" % ("event", "count"),
++ print "%-40s %10s\n" % ("----------------------------------------", \
++ "-----------"),
+
+- for event_name in keys:
+- print "%-40s %10d\n" % (event_name, unhandled[event_name])
++ for event_name in keys:
++ print "%-40s %10d\n" % (event_name, unhandled[event_name])
+--- a/tools/perf/scripts/python/compaction-times.py
++++ b/tools/perf/scripts/python/compaction-times.py
+@@ -216,15 +216,15 @@ def compaction__mm_compaction_migratepag
+ pair(nr_migrated, nr_failed), None, None)
+
+ def compaction__mm_compaction_isolate_freepages(event_name, context, common_cpu,
+- common_secs, common_nsecs, common_pid, common_comm,
+- common_callchain, start_pfn, end_pfn, nr_scanned, nr_taken):
++ common_secs, common_nsecs, common_pid, common_comm,
++ common_callchain, start_pfn, end_pfn, nr_scanned, nr_taken):
+
+ chead.increment_pending(common_pid,
+ None, pair(nr_scanned, nr_taken), None)
+
+ def compaction__mm_compaction_isolate_migratepages(event_name, context, common_cpu,
+- common_secs, common_nsecs, common_pid, common_comm,
+- common_callchain, start_pfn, end_pfn, nr_scanned, nr_taken):
++ common_secs, common_nsecs, common_pid, common_comm,
++ common_callchain, start_pfn, end_pfn, nr_scanned, nr_taken):
+
+ chead.increment_pending(common_pid,
+ None, None, pair(nr_scanned, nr_taken))
+--- a/tools/perf/scripts/python/event_analyzing_sample.py
++++ b/tools/perf/scripts/python/event_analyzing_sample.py
+@@ -37,7 +37,7 @@ con = sqlite3.connect("/dev/shm/perf.db"
+ con.isolation_level = None
+
+ def trace_begin():
+- print "In trace_begin:\n"
++ print "In trace_begin:\n"
+
+ #
+ # Will create several tables at the start, pebs_ll is for PEBS data with
+@@ -102,7 +102,7 @@ def insert_db(event):
+ event.ip, event.status, event.dse, event.dla, event.lat))
+
+ def trace_end():
+- print "In trace_end:\n"
++ print "In trace_end:\n"
+ # We show the basic info for the 2 type of event classes
+ show_general_events()
+ show_pebs_ll()
+@@ -187,4 +187,4 @@ def show_pebs_ll():
+ print "%32s %8d %s" % (row[0], row[1], num2sym(row[1]))
+
+ def trace_unhandled(event_name, context, event_fields_dict):
+- print ' '.join(['%s=%s'%(k,str(v))for k,v in sorted(event_fields_dict.items())])
++ print ' '.join(['%s=%s'%(k,str(v))for k,v in sorted(event_fields_dict.items())])
+--- a/tools/perf/scripts/python/failed-syscalls-by-pid.py
++++ b/tools/perf/scripts/python/failed-syscalls-by-pid.py
+@@ -58,22 +58,22 @@ def syscalls__sys_exit(event_name, conte
+ raw_syscalls__sys_exit(**locals())
+
+ def print_error_totals():
+- if for_comm is not None:
+- print("\nsyscall errors for %s:\n" % (for_comm))
+- else:
+- print("\nsyscall errors:\n")
++ if for_comm is not None:
++ print("\nsyscall errors for %s:\n" % (for_comm))
++ else:
++ print("\nsyscall errors:\n")
+
+- print("%-30s %10s" % ("comm [pid]", "count"))
+- print("%-30s %10s" % ("------------------------------", "----------"))
++ print("%-30s %10s" % ("comm [pid]", "count"))
++ print("%-30s %10s" % ("------------------------------", "----------"))
+
+- comm_keys = syscalls.keys()
+- for comm in comm_keys:
+- pid_keys = syscalls[comm].keys()
+- for pid in pid_keys:
+- print("\n%s [%d]" % (comm, pid))
+- id_keys = syscalls[comm][pid].keys()
+- for id in id_keys:
+- print(" syscall: %-16s" % syscall_name(id))
+- ret_keys = syscalls[comm][pid][id].keys()
+- for ret, val in sorted(syscalls[comm][pid][id].items(), key = lambda kv: (kv[1], kv[0]), reverse = True):
+- print(" err = %-20s %10d" % (strerror(ret), val))
++ comm_keys = syscalls.keys()
++ for comm in comm_keys:
++ pid_keys = syscalls[comm].keys()
++ for pid in pid_keys:
++ print("\n%s [%d]" % (comm, pid))
++ id_keys = syscalls[comm][pid].keys()
++ for id in id_keys:
++ print(" syscall: %-16s" % syscall_name(id))
++ ret_keys = syscalls[comm][pid][id].keys()
++ for ret, val in sorted(syscalls[comm][pid][id].items(), key = lambda kv: (kv[1], kv[0]), reverse = True):
++ print(" err = %-20s %10d" % (strerror(ret), val))
+--- a/tools/perf/scripts/python/futex-contention.py
++++ b/tools/perf/scripts/python/futex-contention.py
+@@ -46,5 +46,5 @@ def trace_end():
+ for (tid, lock) in lock_waits:
+ min, max, avg, count = lock_waits[tid, lock]
+ print "%s[%d] lock %x contended %d times, %d avg ns" % \
+- (process_names[tid], tid, lock, count, avg)
++ (process_names[tid], tid, lock, count, avg)
+
+--- a/tools/perf/scripts/python/intel-pt-events.py
++++ b/tools/perf/scripts/python/intel-pt-events.py
+@@ -85,22 +85,22 @@ def print_common_ip(sample, symbol, dso)
+ print "%16x %s (%s)" % (ip, symbol, dso)
+
+ def process_event(param_dict):
+- event_attr = param_dict["attr"]
+- sample = param_dict["sample"]
+- raw_buf = param_dict["raw_buf"]
+- comm = param_dict["comm"]
+- name = param_dict["ev_name"]
++ event_attr = param_dict["attr"]
++ sample = param_dict["sample"]
++ raw_buf = param_dict["raw_buf"]
++ comm = param_dict["comm"]
++ name = param_dict["ev_name"]
+
+- # Symbol and dso info are not always resolved
+- if (param_dict.has_key("dso")):
+- dso = param_dict["dso"]
+- else:
+- dso = "[unknown]"
++ # Symbol and dso info are not always resolved
++ if (param_dict.has_key("dso")):
++ dso = param_dict["dso"]
++ else:
++ dso = "[unknown]"
+
+- if (param_dict.has_key("symbol")):
+- symbol = param_dict["symbol"]
+- else:
+- symbol = "[unknown]"
++ if (param_dict.has_key("symbol")):
++ symbol = param_dict["symbol"]
++ else:
++ symbol = "[unknown]"
+
+ if name == "ptwrite":
+ print_common_start(comm, sample, name)
+--- a/tools/perf/scripts/python/mem-phys-addr.py
++++ b/tools/perf/scripts/python/mem-phys-addr.py
+@@ -44,12 +44,13 @@ def print_memory_type():
+ print("%-40s %10s %10s\n" % ("Memory type", "count", "percentage"), end='')
+ print("%-40s %10s %10s\n" % ("----------------------------------------",
+ "-----------", "-----------"),
+- end='');
++ end='');
+ total = sum(load_mem_type_cnt.values())
+ for mem_type, count in sorted(load_mem_type_cnt.most_common(), \
+ key = lambda kv: (kv[1], kv[0]), reverse = True):
+- print("%-40s %10d %10.1f%%\n" % (mem_type, count, 100 * count / total),
+- end='')
++ print("%-40s %10d %10.1f%%\n" %
++ (mem_type, count, 100 * count / total),
++ end='')
+
+ def trace_begin():
+ parse_iomem()
+--- a/tools/perf/scripts/python/net_dropmonitor.py
++++ b/tools/perf/scripts/python/net_dropmonitor.py
+@@ -7,7 +7,7 @@ import os
+ import sys
+
+ sys.path.append(os.environ['PERF_EXEC_PATH'] + \
+- '/scripts/python/Perf-Trace-Util/lib/Perf/Trace')
++ '/scripts/python/Perf-Trace-Util/lib/Perf/Trace')
+
+ from perf_trace_context import *
+ from Core import *
+--- a/tools/perf/scripts/python/netdev-times.py
++++ b/tools/perf/scripts/python/netdev-times.py
+@@ -124,14 +124,16 @@ def print_receive(hunk):
+ event = event_list[i]
+ if event['event_name'] == 'napi_poll':
+ print(PF_NAPI_POLL %
+- (diff_msec(base_t, event['event_t']), event['dev']))
++ (diff_msec(base_t, event['event_t']),
++ event['dev']))
+ if i == len(event_list) - 1:
+ print("")
+ else:
+ print(PF_JOINT)
+ else:
+ print(PF_NET_RECV %
+- (diff_msec(base_t, event['event_t']), event['skbaddr'],
++ (diff_msec(base_t, event['event_t']),
++ event['skbaddr'],
+ event['len']))
+ if 'comm' in event.keys():
+ print(PF_WJOINT)
+@@ -256,7 +258,7 @@ def irq__irq_handler_exit(name, context,
+ all_event_list.append(event_info)
+
+ def napi__napi_poll(name, context, cpu, sec, nsec, pid, comm, callchain, napi,
+- dev_name, work=None, budget=None):
++ dev_name, work=None, budget=None):
+ event_info = (name, context, cpu, nsecs(sec, nsec), pid, comm,
+ napi, dev_name, work, budget)
+ all_event_list.append(event_info)
+@@ -353,7 +355,7 @@ def handle_irq_softirq_exit(event_info):
+ if irq_list == [] or event_list == 0:
+ return
+ rec_data = {'sirq_ent_t':sirq_ent_t, 'sirq_ext_t':time,
+- 'irq_list':irq_list, 'event_list':event_list}
++ 'irq_list':irq_list, 'event_list':event_list}
+ # merge information realted to a NET_RX softirq
+ receive_hunk_list.append(rec_data)
+
+@@ -390,7 +392,7 @@ def handle_netif_receive_skb(event_info)
+ skbaddr, skblen, dev_name) = event_info
+ if cpu in net_rx_dic.keys():
+ rec_data = {'event_name':'netif_receive_skb',
+- 'event_t':time, 'skbaddr':skbaddr, 'len':skblen}
++ 'event_t':time, 'skbaddr':skbaddr, 'len':skblen}
+ event_list = net_rx_dic[cpu]['event_list']
+ event_list.append(rec_data)
+ rx_skb_list.insert(0, rec_data)
+--- a/tools/perf/scripts/python/sched-migration.py
++++ b/tools/perf/scripts/python/sched-migration.py
+@@ -16,10 +16,10 @@ import sys
+
+ from collections import defaultdict
+ try:
+- from UserList import UserList
++ from UserList import UserList
+ except ImportError:
+- # Python 3: UserList moved to the collections package
+- from collections import UserList
++ # Python 3: UserList moved to the collections package
++ from collections import UserList
+
+ sys.path.append(os.environ['PERF_EXEC_PATH'] + \
+ '/scripts/python/Perf-Trace-Util/lib/Perf/Trace')
+--- a/tools/perf/scripts/python/sctop.py
++++ b/tools/perf/scripts/python/sctop.py
+@@ -13,9 +13,9 @@ from __future__ import print_function
+ import os, sys, time
+
+ try:
+- import thread
++ import thread
+ except ImportError:
+- import _thread as thread
++ import _thread as thread
+
+ sys.path.append(os.environ['PERF_EXEC_PATH'] + \
+ '/scripts/python/Perf-Trace-Util/lib/Perf/Trace')
+@@ -75,11 +75,12 @@ def print_syscall_totals(interval):
+
+ print("%-40s %10s" % ("event", "count"))
+ print("%-40s %10s" %
+- ("----------------------------------------",
+- "----------"))
++ ("----------------------------------------",
++ "----------"))
+
+- for id, val in sorted(syscalls.items(), key = lambda kv: (kv[1], kv[0]), \
+- reverse = True):
++ for id, val in sorted(syscalls.items(),
++ key = lambda kv: (kv[1], kv[0]),
++ reverse = True):
+ try:
+ print("%-40s %10d" % (syscall_name(id), val))
+ except TypeError:
+--- a/tools/perf/scripts/python/stackcollapse.py
++++ b/tools/perf/scripts/python/stackcollapse.py
+@@ -27,7 +27,7 @@ from collections import defaultdict
+ from optparse import OptionParser, make_option
+
+ sys.path.append(os.environ['PERF_EXEC_PATH'] + \
+- '/scripts/python/Perf-Trace-Util/lib/Perf/Trace')
++ '/scripts/python/Perf-Trace-Util/lib/Perf/Trace')
+
+ from perf_trace_context import *
+ from Core import *
+--- a/tools/perf/scripts/python/syscall-counts-by-pid.py
++++ b/tools/perf/scripts/python/syscall-counts-by-pid.py
+@@ -39,11 +39,10 @@ def trace_end():
+ print_syscall_totals()
+
+ def raw_syscalls__sys_enter(event_name, context, common_cpu,
+- common_secs, common_nsecs, common_pid, common_comm,
+- common_callchain, id, args):
+-
++ common_secs, common_nsecs, common_pid, common_comm,
++ common_callchain, id, args):
+ if (for_comm and common_comm != for_comm) or \
+- (for_pid and common_pid != for_pid ):
++ (for_pid and common_pid != for_pid ):
+ return
+ try:
+ syscalls[common_comm][common_pid][id] += 1
+@@ -51,26 +50,26 @@ def raw_syscalls__sys_enter(event_name,
+ syscalls[common_comm][common_pid][id] = 1
+
+ def syscalls__sys_enter(event_name, context, common_cpu,
+- common_secs, common_nsecs, common_pid, common_comm,
+- id, args):
++ common_secs, common_nsecs, common_pid, common_comm,
++ id, args):
+ raw_syscalls__sys_enter(**locals())
+
+ def print_syscall_totals():
+- if for_comm is not None:
+- print("\nsyscall events for %s:\n" % (for_comm))
+- else:
+- print("\nsyscall events by comm/pid:\n")
+-
+- print("%-40s %10s" % ("comm [pid]/syscalls", "count"))
+- print("%-40s %10s" % ("----------------------------------------",
+- "----------"))
+-
+- comm_keys = syscalls.keys()
+- for comm in comm_keys:
+- pid_keys = syscalls[comm].keys()
+- for pid in pid_keys:
+- print("\n%s [%d]" % (comm, pid))
+- id_keys = syscalls[comm][pid].keys()
+- for id, val in sorted(syscalls[comm][pid].items(), \
+- key = lambda kv: (kv[1], kv[0]), reverse = True):
+- print(" %-38s %10d" % (syscall_name(id), val))
++ if for_comm is not None:
++ print("\nsyscall events for %s:\n" % (for_comm))
++ else:
++ print("\nsyscall events by comm/pid:\n")
++
++ print("%-40s %10s" % ("comm [pid]/syscalls", "count"))
++ print("%-40s %10s" % ("----------------------------------------",
++ "----------"))
++
++ comm_keys = syscalls.keys()
++ for comm in comm_keys:
++ pid_keys = syscalls[comm].keys()
++ for pid in pid_keys:
++ print("\n%s [%d]" % (comm, pid))
++ id_keys = syscalls[comm][pid].keys()
++ for id, val in sorted(syscalls[comm][pid].items(),
++ key = lambda kv: (kv[1], kv[0]), reverse = True):
++ print(" %-38s %10d" % (syscall_name(id), val))
+--- a/tools/perf/scripts/python/syscall-counts.py
++++ b/tools/perf/scripts/python/syscall-counts.py
+@@ -36,8 +36,8 @@ def trace_end():
+ print_syscall_totals()
+
+ def raw_syscalls__sys_enter(event_name, context, common_cpu,
+- common_secs, common_nsecs, common_pid, common_comm,
+- common_callchain, id, args):
++ common_secs, common_nsecs, common_pid, common_comm,
++ common_callchain, id, args):
+ if for_comm is not None:
+ if common_comm != for_comm:
+ return
+@@ -47,20 +47,19 @@ def raw_syscalls__sys_enter(event_name,
+ syscalls[id] = 1
+
+ def syscalls__sys_enter(event_name, context, common_cpu,
+- common_secs, common_nsecs, common_pid, common_comm,
+- id, args):
++ common_secs, common_nsecs, common_pid, common_comm, id, args):
+ raw_syscalls__sys_enter(**locals())
+
+ def print_syscall_totals():
+- if for_comm is not None:
+- print("\nsyscall events for %s:\n" % (for_comm))
+- else:
+- print("\nsyscall events:\n")
++ if for_comm is not None:
++ print("\nsyscall events for %s:\n" % (for_comm))
++ else:
++ print("\nsyscall events:\n")
+
+- print("%-40s %10s" % ("event", "count"))
+- print("%-40s %10s" % ("----------------------------------------",
+- "-----------"))
++ print("%-40s %10s" % ("event", "count"))
++ print("%-40s %10s" % ("----------------------------------------",
++ "-----------"))
+
+- for id, val in sorted(syscalls.items(), key = lambda kv: (kv[1], kv[0]), \
+- reverse = True):
+- print("%-40s %10d" % (syscall_name(id), val))
++ for id, val in sorted(syscalls.items(),
++ key = lambda kv: (kv[1], kv[0]), reverse = True):
++ print("%-40s %10d" % (syscall_name(id), val))
diff --git a/debian/patches/bugfix/all/perf-script-python-add-Python3-support-to-check-perf.patch b/debian/patches/bugfix/all/perf-script-python-add-Python3-support-to-check-perf.patch
new file mode 100644
index 000000000..90c7aa835
--- /dev/null
+++ b/debian/patches/bugfix/all/perf-script-python-add-Python3-support-to-check-perf.patch
@@ -0,0 +1,104 @@
+From: Tony Jones <tonyj@suse.de>
+Date: Fri, 1 Mar 2019 17:18:59 -0800
+Subject: perf script python: add Python3 support to check-perf-trace.py
+Origin: https://git.kernel.org/linus/57e604b16362273af6a517abaa6cd1133a7fc732
+Bug-Debian: https://bugs.debian.org/944641
+
+Support both Python 2 and Python 3 in the check-perf-trace.py script.
+
+There may be differences in the ordering of output lines due to
+differences in dictionary ordering etc. However the format within lines
+should be unchanged.
+
+The use of from __future__ implies the minimum supported version of
+Python2 is now v2.6
+
+Signed-off-by: Tony Jones <tonyj@suse.de>
+Cc: Tom Zanussi <tzanussi@gmail.com>
+Link: http://lkml.kernel.org/r/20190302011903.2416-4-tonyj@suse.de
+Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/scripts/python/check-perf-trace.py | 31 ++++++++++++++------------
+ 1 file changed, 17 insertions(+), 14 deletions(-)
+
+--- a/tools/perf/scripts/python/check-perf-trace.py
++++ b/tools/perf/scripts/python/check-perf-trace.py
+@@ -7,6 +7,8 @@
+ # events, etc. Basically, if this script runs successfully and
+ # displays expected results, Python scripting support should be ok.
+
++from __future__ import print_function
++
+ import os
+ import sys
+
+@@ -19,7 +21,7 @@ from perf_trace_context import *
+ unhandled = autodict()
+
+ def trace_begin():
+- print "trace_begin"
++ print("trace_begin")
+ pass
+
+ def trace_end():
+@@ -33,7 +35,7 @@ def irq__softirq_entry(event_name, conte
+
+ print_uncommon(context)
+
+- print "vec=%s\n" % (symbol_str("irq__softirq_entry", "vec", vec)),
++ print("vec=%s" % (symbol_str("irq__softirq_entry", "vec", vec)))
+
+ def kmem__kmalloc(event_name, context, common_cpu,
+ common_secs, common_nsecs, common_pid, common_comm,
+@@ -44,10 +46,10 @@ def kmem__kmalloc(event_name, context, c
+
+ print_uncommon(context)
+
+- print "call_site=%u, ptr=%u, bytes_req=%u, " \
+- "bytes_alloc=%u, gfp_flags=%s\n" % \
++ print("call_site=%u, ptr=%u, bytes_req=%u, "
++ "bytes_alloc=%u, gfp_flags=%s" %
+ (call_site, ptr, bytes_req, bytes_alloc,
+- flag_str("kmem__kmalloc", "gfp_flags", gfp_flags)),
++ flag_str("kmem__kmalloc", "gfp_flags", gfp_flags)))
+
+ def trace_unhandled(event_name, context, event_fields_dict):
+ try:
+@@ -56,26 +58,27 @@ def trace_unhandled(event_name, context,
+ unhandled[event_name] = 1
+
+ def print_header(event_name, cpu, secs, nsecs, pid, comm):
+- print "%-20s %5u %05u.%09u %8u %-20s " % \
++ print("%-20s %5u %05u.%09u %8u %-20s " %
+ (event_name, cpu, secs, nsecs, pid, comm),
++ end=' ')
+
+ # print trace fields not included in handler args
+ def print_uncommon(context):
+- print "common_preempt_count=%d, common_flags=%s, " \
+- "common_lock_depth=%d, " % \
++ print("common_preempt_count=%d, common_flags=%s, "
++ "common_lock_depth=%d, " %
+ (common_pc(context), trace_flag_str(common_flags(context)),
+- common_lock_depth(context))
++ common_lock_depth(context)))
+
+ def print_unhandled():
+ keys = unhandled.keys()
+ if not keys:
+ return
+
+- print "\nunhandled events:\n\n",
++ print("\nunhandled events:\n")
+
+- print "%-40s %10s\n" % ("event", "count"),
+- print "%-40s %10s\n" % ("----------------------------------------", \
+- "-----------"),
++ print("%-40s %10s" % ("event", "count"))
++ print("%-40s %10s" % ("----------------------------------------",
++ "-----------"))
+
+ for event_name in keys:
+- print "%-40s %10d\n" % (event_name, unhandled[event_name])
++ print("%-40s %10d\n" % (event_name, unhandled[event_name]))
diff --git a/debian/patches/bugfix/all/radeon-amdgpu-firmware-is-required-for-drm-and-kms-on-r600-onward.patch b/debian/patches/bugfix/all/radeon-amdgpu-firmware-is-required-for-drm-and-kms-on-r600-onward.patch
new file mode 100644
index 000000000..cd2ba2e9e
--- /dev/null
+++ b/debian/patches/bugfix/all/radeon-amdgpu-firmware-is-required-for-drm-and-kms-on-r600-onward.patch
@@ -0,0 +1,135 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Subject: radeon, amdgpu: Firmware is required for DRM and KMS on R600 onward
+Date: Tue, 08 Jan 2013 03:25:52 +0000
+Bug-Debian: https://bugs.debian.org/607194
+Bug-Debian: https://bugs.debian.org/607471
+Bug-Debian: https://bugs.debian.org/610851
+Bug-Debian: https://bugs.debian.org/627497
+Bug-Debian: https://bugs.debian.org/632212
+Bug-Debian: https://bugs.debian.org/637943
+Bug-Debian: https://bugs.debian.org/649448
+Bug-Debian: https://bugs.debian.org/697229
+Forwarded: no
+
+radeon requires firmware/microcode for the GPU in all chips, but for
+newer chips (apparently R600 'Evergreen' onward) it also expects
+firmware for the memory controller and other sub-blocks.
+
+radeon attempts to gracefully fall back and disable some features if
+the firmware is not available, but becomes unstable - the framebuffer
+and/or system memory may be corrupted, or the display may stay black.
+
+Therefore, perform a basic check for the existence of
+/lib/firmware/{radeon,amdgpu} when a device is probed, and abort if it
+is missing, except for the pre-R600 case.
+
+---
+Index: linux/drivers/gpu/drm/radeon/radeon_drv.c
+===================================================================
+--- linux.orig/drivers/gpu/drm/radeon/radeon_drv.c
++++ linux/drivers/gpu/drm/radeon/radeon_drv.c
+@@ -43,6 +43,8 @@
+ #include <drm/drm_fb_helper.h>
+
+ #include <drm/drm_crtc_helper.h>
++#include <linux/namei.h>
++#include <linux/path.h>
+
+ /*
+ * KMS wrapper.
+@@ -316,6 +318,28 @@ static struct drm_driver kms_driver;
+
+ bool radeon_device_is_virtual(void);
+
++/* Test that /lib/firmware/radeon is a directory (or symlink to a
++ * directory). We could try to match the udev search path, but let's
++ * keep it simple.
++ */
++static bool radeon_firmware_installed(void)
++{
++#if IS_BUILTIN(CONFIG_DRM_RADEON)
++ /* It may be too early to tell. Assume it's there. */
++ return true;
++#else
++ struct path path;
++
++ if (kern_path("/lib/firmware/radeon", LOOKUP_DIRECTORY | LOOKUP_FOLLOW,
++ &path) == 0) {
++ path_put(&path);
++ return true;
++ }
++
++ return false;
++#endif
++}
++
+ static int radeon_kick_out_firmware_fb(struct pci_dev *pdev)
+ {
+ struct apertures_struct *ap;
+@@ -376,6 +400,12 @@ static int radeon_pci_probe(struct pci_d
+ if (vga_switcheroo_client_probe_defer(pdev))
+ return -EPROBE_DEFER;
+
++ if ((ent->driver_data & RADEON_FAMILY_MASK) >= CHIP_R600 &&
++ !radeon_firmware_installed()) {
++ DRM_ERROR("radeon kernel modesetting for R600 or later requires firmware installed\n");
++ return -ENODEV;
++ }
++
+ /* Get rid of things like offb */
+ ret = radeon_kick_out_firmware_fb(pdev);
+ if (ret)
+Index: linux/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+===================================================================
+--- linux.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
++++ linux/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+@@ -33,6 +33,8 @@
+ #include <linux/pm_runtime.h>
+ #include <linux/vga_switcheroo.h>
+ #include <drm/drm_crtc_helper.h>
++#include <linux/namei.h>
++#include <linux/path.h>
+
+ #include "amdgpu.h"
+ #include "amdgpu_irq.h"
+@@ -793,6 +795,28 @@ MODULE_DEVICE_TABLE(pci, pciidlist);
+
+ static struct drm_driver kms_driver;
+
++/* Test that /lib/firmware/amdgpu is a directory (or symlink to a
++ * directory). We could try to match the udev search path, but let's
++ * keep it simple.
++ */
++static bool amdgpu_firmware_installed(void)
++{
++#if IS_BUILTIN(CONFIG_DRM_AMDGPU)
++ /* It may be too early to tell. Assume it's there. */
++ return true;
++#else
++ struct path path;
++
++ if (kern_path("/lib/firmware/amdgpu", LOOKUP_DIRECTORY | LOOKUP_FOLLOW,
++ &path) == 0) {
++ path_put(&path);
++ return true;
++ }
++
++ return false;
++#endif
++}
++
+ static int amdgpu_kick_out_firmware_fb(struct pci_dev *pdev)
+ {
+ struct apertures_struct *ap;
+@@ -833,6 +857,11 @@ static int amdgpu_pci_probe(struct pci_d
+ return -ENODEV;
+ }
+
++ if (!amdgpu_firmware_installed()) {
++ DRM_ERROR("amdgpu requires firmware installed\n");
++ return -ENODEV;
++ }
++
+ /*
+ * Initialize amdkfd before starting radeon. If it was not loaded yet,
+ * defer radeon probing
diff --git a/debian/patches/bugfix/all/rtc-s35390a-set-uie_unsupported.patch b/debian/patches/bugfix/all/rtc-s35390a-set-uie_unsupported.patch
new file mode 100644
index 000000000..b3261d952
--- /dev/null
+++ b/debian/patches/bugfix/all/rtc-s35390a-set-uie_unsupported.patch
@@ -0,0 +1,40 @@
+From: Richard Leitner <richard.leitner@skidata.com>
+Date: Thu, 23 May 2019 13:54:49 +0200
+Subject: [PATCH] rtc: s35390a: set uie_unsupported
+Origin: https://git.kernel.org/linus/c0e12848be091e8410fb427f080f2e0149123443
+Bug-Debian: https://bugs.debian.org/932845
+
+Alarms are only supported on a per minute basis. This is why
+uie_unsupported is set. Furthermore issue a warning when a second based
+alarm is requested.
+
+Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
+Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
+---
+ drivers/rtc/rtc-s35390a.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+Index: linux/drivers/rtc/rtc-s35390a.c
+===================================================================
+--- linux.orig/drivers/rtc/rtc-s35390a.c
++++ linux/drivers/rtc/rtc-s35390a.c
+@@ -288,6 +288,9 @@ static int s35390a_rtc_set_alarm(struct
+ alm->time.tm_min, alm->time.tm_hour, alm->time.tm_mday,
+ alm->time.tm_mon, alm->time.tm_year, alm->time.tm_wday);
+
++ if (alm->time.tm_sec != 0)
++ dev_warn(&client->dev, "Alarms are only supported on a per minute basis!\n");
++
+ /* disable interrupt (which deasserts the irq line) */
+ err = s35390a_set_reg(s35390a, S35390A_CMD_STATUS2, &sts, sizeof(sts));
+ if (err < 0)
+@@ -502,6 +505,9 @@ static int s35390a_probe(struct i2c_clie
+ goto exit_dummy;
+ }
+
++ /* supports per-minute alarms only, therefore set uie_unsupported */
++ s35390a->rtc->uie_unsupported = 1;
++
+ if (status1 & S35390A_FLAG_INT2)
+ rtc_update_irq(s35390a->rtc, 1, RTC_AF);
+
diff --git a/debian/patches/bugfix/all/swiotlb-skip-swiotlb_bounce-when-orig_addr-is-zero.patch b/debian/patches/bugfix/all/swiotlb-skip-swiotlb_bounce-when-orig_addr-is-zero.patch
new file mode 100644
index 000000000..df77ca0b2
--- /dev/null
+++ b/debian/patches/bugfix/all/swiotlb-skip-swiotlb_bounce-when-orig_addr-is-zero.patch
@@ -0,0 +1,47 @@
+From: Liu Shixin <liushixin2@huawei.com>
+Date: Thu, 30 Jun 2022 19:33:31 +0800
+Subject: swiotlb: skip swiotlb_bounce when orig_addr is zero
+Origin: https://lore.kernel.org/stable/20220630113331.1544886-1-liushixin2@huawei.com/
+
+After patch ddbd89deb7d3 ("swiotlb: fix info leak with DMA_FROM_DEVICE"),
+swiotlb_bounce will be called in swiotlb_tbl_map_single unconditionally.
+This requires that the physical address must be valid, which is not always
+true on stable-4.19 or earlier version.
+On stable-4.19, swiotlb_alloc_buffer will call swiotlb_tbl_map_single with
+orig_addr equal to zero, which cause such a panic:
+
+Unable to handle kernel paging request at virtual address ffffb77a40000000
+...
+pc : __memcpy+0x100/0x180
+lr : swiotlb_bounce+0x74/0x88
+...
+Call trace:
+ __memcpy+0x100/0x180
+ swiotlb_tbl_map_single+0x2c8/0x338
+ swiotlb_alloc+0xb4/0x198
+ __dma_alloc+0x84/0x1d8
+ ...
+
+On stable-4.9 and stable-4.14, swiotlb_alloc_coherent wille call map_single
+with orig_addr equal to zero, which can cause same panic.
+
+Fix this by skipping swiotlb_bounce when orig_addr is zero.
+
+Fixes: ddbd89deb7d3 ("swiotlb: fix info leak with DMA_FROM_DEVICE")
+Signed-off-by: Liu Shixin <liushixin2@huawei.com>
+---
+ kernel/dma/swiotlb.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/kernel/dma/swiotlb.c
++++ b/kernel/dma/swiotlb.c
+@@ -594,7 +594,8 @@ found:
+ * unconditional bounce may prevent leaking swiotlb content (i.e.
+ * kernel memory) to user-space.
+ */
+- swiotlb_bounce(orig_addr, tlb_addr, size, DMA_TO_DEVICE);
++ if (orig_addr)
++ swiotlb_bounce(orig_addr, tlb_addr, size, DMA_TO_DEVICE);
+ return tlb_addr;
+ }
+
diff --git a/debian/patches/bugfix/all/tools-build-remove-bpf-run-time-check-at-build-time.patch b/debian/patches/bugfix/all/tools-build-remove-bpf-run-time-check-at-build-time.patch
new file mode 100644
index 000000000..39044c390
--- /dev/null
+++ b/debian/patches/bugfix/all/tools-build-remove-bpf-run-time-check-at-build-time.patch
@@ -0,0 +1,29 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Sun, 21 Feb 2016 15:33:15 +0000
+Subject: tools/build: Remove bpf() run-time check at build time
+Forwarded: no
+
+It is not correct to test that a syscall works on the build system's
+kernel. We might be building on an earlier kernel version or with
+security restrictions that block bpf().
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+Index: linux/tools/build/feature/test-bpf.c
+===================================================================
+--- linux.orig/tools/build/feature/test-bpf.c
++++ linux/tools/build/feature/test-bpf.c
+@@ -35,8 +35,10 @@ int main(void)
+ attr.prog_flags = 0;
+
+ /*
+- * Test existence of __NR_bpf and BPF_PROG_LOAD.
+- * This call should fail if we run the testcase.
++ * bwh: Don't use the bpf() syscall as we might be building on a
++ * much older kernel. Do "use" the attr structure here to avoid
++ * a "set but not used" warning.
+ */
+- return syscall(__NR_bpf, BPF_PROG_LOAD, &attr, sizeof(attr));
++ (void)&attr;
++ return 0;
+ }
diff --git a/debian/patches/bugfix/all/tools-lib-traceevent-use-ldflags.patch b/debian/patches/bugfix/all/tools-lib-traceevent-use-ldflags.patch
new file mode 100644
index 000000000..ae303f360
--- /dev/null
+++ b/debian/patches/bugfix/all/tools-lib-traceevent-use-ldflags.patch
@@ -0,0 +1,29 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Fri, 25 Sep 2015 21:26:48 +0100
+Subject: tools/lib/traceevent: Use LDFLAGS
+Forwarded: no
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+Index: linux/tools/lib/traceevent/Makefile
+===================================================================
+--- linux.orig/tools/lib/traceevent/Makefile
++++ linux/tools/lib/traceevent/Makefile
+@@ -174,7 +174,7 @@ $(TE_IN): force
+ $(Q)$(MAKE) $(build)=libtraceevent
+
+ $(OUTPUT)libtraceevent.so.$(EVENT_PARSE_VERSION): $(TE_IN)
+- $(QUIET_LINK)$(CC) --shared $^ -Wl,-soname,libtraceevent.so.$(EP_VERSION) -o $@
++ $(QUIET_LINK)$(CC) $(LDFLAGS) --shared $^ -Wl,-soname,libtraceevent.so.$(EP_VERSION) -o $@
+ @ln -sf $(@F) $(OUTPUT)libtraceevent.so
+ @ln -sf $(@F) $(OUTPUT)libtraceevent.so.$(EP_VERSION)
+
+@@ -193,7 +193,7 @@ $(PLUGINS_IN): force
+ $(Q)$(MAKE) $(build)=$(plugin_obj)
+
+ $(OUTPUT)%.so: $(OUTPUT)%-in.o
+- $(QUIET_LINK)$(CC) $(CFLAGS) -shared -nostartfiles -o $@ $^
++ $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) -shared -nostartfiles -o $@ $^
+
+ define make_version.h
+ (echo '/* This file is automatically generated. Do not modify. */'; \
diff --git a/debian/patches/bugfix/all/tools-perf-man-date.patch b/debian/patches/bugfix/all/tools-perf-man-date.patch
new file mode 100644
index 000000000..4515c703c
--- /dev/null
+++ b/debian/patches/bugfix/all/tools-perf-man-date.patch
@@ -0,0 +1,37 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Mon, 13 Jul 2015 20:29:20 +0100
+Subject: perf tools: Use $KBUILD_BUILD_TIMESTAMP as man page date
+Forwarded: http://mid.gmane.org/20160517132809.GE7555@decadent.org.uk
+
+This allows man pages to be built reproducibly.
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+Index: linux/tools/perf/Documentation/Makefile
+===================================================================
+--- linux.orig/tools/perf/Documentation/Makefile
++++ linux/tools/perf/Documentation/Makefile
+@@ -131,6 +131,9 @@ endif
+ ifdef DOCBOOK_SUPPRESS_SP
+ XMLTO_EXTRA += -m manpage-suppress-sp.xsl
+ endif
++ifdef KBUILD_BUILD_TIMESTAMP
++ASCIIDOC_EXTRA += -a revdate=$(shell date -u -d '$(KBUILD_BUILD_TIMESTAMP)' +%Y-%m-%d)
++endif
+
+ SHELL_PATH ?= $(SHELL)
+ # Shell quote;
+Index: linux/tools/perf/Documentation/asciidoc.conf
+===================================================================
+--- linux.orig/tools/perf/Documentation/asciidoc.conf
++++ linux/tools/perf/Documentation/asciidoc.conf
+@@ -71,6 +71,9 @@ ifdef::backend-docbook[]
+ [header]
+ template::[header-declarations]
+ <refentry>
++<refentryinfo>
++template::[docinfo]
++</refentryinfo>
+ <refmeta>
+ <refentrytitle>{mantitle}</refentrytitle>
+ <manvolnum>{manvolnum}</manvolnum>
diff --git a/debian/patches/bugfix/all/tools-perf-remove-shebangs.patch b/debian/patches/bugfix/all/tools-perf-remove-shebangs.patch
new file mode 100644
index 000000000..d01140709
--- /dev/null
+++ b/debian/patches/bugfix/all/tools-perf-remove-shebangs.patch
@@ -0,0 +1,47 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Fri, 25 Sep 2015 20:09:23 +0100
+Subject: tools/perf: Remove shebang lines from perf scripts
+Forwarded: no
+
+perf scripts need to be invoked through perf, not directly through
+perl (or other language interpreter). So including shebang lines in
+them is useless and possibly misleading.
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+Index: linux/tools/perf/scripts/perl/rw-by-file.pl
+===================================================================
+--- linux.orig/tools/perf/scripts/perl/rw-by-file.pl
++++ linux/tools/perf/scripts/perl/rw-by-file.pl
+@@ -1,4 +1,3 @@
+-#!/usr/bin/perl -w
+ # (c) 2009, Tom Zanussi <tzanussi@gmail.com>
+ # Licensed under the terms of the GNU GPL License version 2
+
+Index: linux/tools/perf/scripts/perl/rw-by-pid.pl
+===================================================================
+--- linux.orig/tools/perf/scripts/perl/rw-by-pid.pl
++++ linux/tools/perf/scripts/perl/rw-by-pid.pl
+@@ -1,4 +1,3 @@
+-#!/usr/bin/perl -w
+ # (c) 2009, Tom Zanussi <tzanussi@gmail.com>
+ # Licensed under the terms of the GNU GPL License version 2
+
+Index: linux/tools/perf/scripts/perl/rwtop.pl
+===================================================================
+--- linux.orig/tools/perf/scripts/perl/rwtop.pl
++++ linux/tools/perf/scripts/perl/rwtop.pl
+@@ -1,4 +1,3 @@
+-#!/usr/bin/perl -w
+ # (c) 2010, Tom Zanussi <tzanussi@gmail.com>
+ # Licensed under the terms of the GNU GPL License version 2
+
+Index: linux/tools/perf/scripts/perl/wakeup-latency.pl
+===================================================================
+--- linux.orig/tools/perf/scripts/perl/wakeup-latency.pl
++++ linux/tools/perf/scripts/perl/wakeup-latency.pl
+@@ -1,4 +1,3 @@
+-#!/usr/bin/perl -w
+ # (c) 2009, Tom Zanussi <tzanussi@gmail.com>
+ # Licensed under the terms of the GNU GPL License version 2
+
diff --git a/debian/patches/bugfix/all/usb-add-a-hcd_uses_dma-helper.patch b/debian/patches/bugfix/all/usb-add-a-hcd_uses_dma-helper.patch
new file mode 100644
index 000000000..341018e58
--- /dev/null
+++ b/debian/patches/bugfix/all/usb-add-a-hcd_uses_dma-helper.patch
@@ -0,0 +1,110 @@
+From: Christoph Hellwig <hch@lst.de>
+Date: Sun, 11 Aug 2019 10:05:16 +0200
+Subject: usb: add a hcd_uses_dma helper
+Origin: https://git.kernel.org/linus/edfbcb321faf07ca970e4191abe061deeb7d3788
+
+The USB buffer allocation code is the only place in the usb core (and in
+fact the whole kernel) that uses is_device_dma_capable, while the URB
+mapping code uses the uses_dma flag in struct usb_bus. Switch the buffer
+allocation to use the uses_dma flag used by the rest of the USB code,
+and create a helper in hcd.h that checks this flag as well as the
+CONFIG_HAS_DMA to simplify the caller a bit.
+
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+Link: https://lore.kernel.org/r/20190811080520.21712-3-hch@lst.de
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/usb/core/buffer.c | 10 +++-------
+ drivers/usb/core/hcd.c | 4 ++--
+ drivers/usb/dwc2/hcd.c | 2 +-
+ include/linux/usb.h | 2 +-
+ include/linux/usb/hcd.h | 3 +++
+ 5 files changed, 10 insertions(+), 11 deletions(-)
+
+--- a/drivers/usb/core/buffer.c
++++ b/drivers/usb/core/buffer.c
+@@ -66,9 +66,7 @@
+ char name[16];
+ int i, size;
+
+- if (hcd->localmem_pool ||
+- !IS_ENABLED(CONFIG_HAS_DMA) ||
+- !is_device_dma_capable(hcd->self.sysdev))
++ if (hcd->localmem_pool || !hcd_uses_dma(hcd))
+ return 0;
+
+ for (i = 0; i < HCD_BUFFER_POOLS; i++) {
+@@ -133,8 +131,7 @@
+ return gen_pool_dma_alloc(hcd->localmem_pool, size, dma);
+
+ /* some USB hosts just use PIO */
+- if (!IS_ENABLED(CONFIG_HAS_DMA) ||
+- !is_device_dma_capable(bus->sysdev)) {
++ if (!hcd_uses_dma(hcd)) {
+ *dma = ~(dma_addr_t) 0;
+ return kmalloc(size, mem_flags);
+ }
+@@ -164,8 +161,7 @@
+ return;
+ }
+
+- if (!IS_ENABLED(CONFIG_HAS_DMA) ||
+- !is_device_dma_capable(bus->sysdev)) {
++ if (!hcd_uses_dma(hcd)) {
+ kfree(addr);
+ return;
+ }
+--- a/drivers/usb/core/hcd.c
++++ b/drivers/usb/core/hcd.c
+@@ -1511,7 +1511,7 @@
+ if (usb_endpoint_xfer_control(&urb->ep->desc)) {
+ if (hcd->self.uses_pio_for_control)
+ return ret;
+- if (IS_ENABLED(CONFIG_HAS_DMA) && hcd->self.uses_dma) {
++ if (hcd_uses_dma(hcd)) {
+ if (is_vmalloc_addr(urb->setup_packet)) {
+ WARN_ONCE(1, "setup packet is not dma capable\n");
+ return -EAGAIN;
+@@ -1545,7 +1545,7 @@
+ dir = usb_urb_dir_in(urb) ? DMA_FROM_DEVICE : DMA_TO_DEVICE;
+ if (urb->transfer_buffer_length != 0
+ && !(urb->transfer_flags & URB_NO_TRANSFER_DMA_MAP)) {
+- if (IS_ENABLED(CONFIG_HAS_DMA) && hcd->self.uses_dma) {
++ if (hcd_uses_dma(hcd)) {
+ if (urb->num_sgs) {
+ int n;
+
+--- a/drivers/usb/dwc2/hcd.c
++++ b/drivers/usb/dwc2/hcd.c
+@@ -4770,7 +4770,7 @@
+
+ buf = urb->transfer_buffer;
+
+- if (hcd->self.uses_dma) {
++ if (hcd_uses_dma(hcd)) {
+ if (!buf && (urb->transfer_dma & 3)) {
+ dev_err(hsotg->dev,
+ "%s: unaligned transfer with no transfer_buffer",
+--- a/include/linux/usb.h
++++ b/include/linux/usb.h
+@@ -1455,7 +1455,7 @@
+ * field rather than determining a dma address themselves.
+ *
+ * Note that transfer_buffer must still be set if the controller
+- * does not support DMA (as indicated by bus.uses_dma) and when talking
++ * does not support DMA (as indicated by hcd_uses_dma()) and when talking
+ * to root hub. If you have to trasfer between highmem zone and the device
+ * on such controller, create a bounce buffer or bail out with an error.
+ * If transfer_buffer cannot be set (is in highmem) and the controller is DMA
+--- a/include/linux/usb/hcd.h
++++ b/include/linux/usb/hcd.h
+@@ -422,6 +422,9 @@
+ return hcd->high_prio_bh.completing_ep == ep;
+ }
+
++#define hcd_uses_dma(hcd) \
++ (IS_ENABLED(CONFIG_HAS_DMA) && (hcd)->self.uses_dma)
++
+ extern int usb_hcd_link_urb_to_ep(struct usb_hcd *hcd, struct urb *urb);
+ extern int usb_hcd_check_unlink_urb(struct usb_hcd *hcd, struct urb *urb,
+ int status);
diff --git a/debian/patches/bugfix/all/usb-dont-create-dma-pools-for-HCD.patch b/debian/patches/bugfix/all/usb-dont-create-dma-pools-for-HCD.patch
new file mode 100644
index 000000000..197a4fadb
--- /dev/null
+++ b/debian/patches/bugfix/all/usb-dont-create-dma-pools-for-HCD.patch
@@ -0,0 +1,31 @@
+From: Christoph Hellwig <hch@lst.de>
+Date: Sun, 11 Aug 2019 10:05:15 +0200
+Subject: usb: don't create dma pools for HCDs with a localmem_pool
+Origin: https://git.kernel.org/linus/dd3ecf17ba70a70d2c9ef9ba725281b84f8eef12
+
+If the HCD provides a localmem pool we will never use the DMA pools, so
+don't create them.
+
+Fixes: b0310c2f09bb ("USB: use genalloc for USB HCs with local memory")
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+Link: https://lore.kernel.org/r/20190811080520.21712-2-hch@lst.de
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/usb/core/buffer.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/usb/core/buffer.c
++++ b/drivers/usb/core/buffer.c
+@@ -66,9 +66,9 @@
+ char name[16];
+ int i, size;
+
+- if (!IS_ENABLED(CONFIG_HAS_DMA) ||
+- (!is_device_dma_capable(hcd->self.sysdev) &&
+- !hcd->localmem_pool))
++ if (hcd->localmem_pool ||
++ !IS_ENABLED(CONFIG_HAS_DMA) ||
++ !is_device_dma_capable(hcd->self.sysdev))
+ return 0;
+
+ for (i = 0; i < HCD_BUFFER_POOLS; i++) {
diff --git a/debian/patches/bugfix/all/usb-hcd-Fix-a-NULL-vs-IS_ERR-bug-in-usb_hcd_setup_lo.patch b/debian/patches/bugfix/all/usb-hcd-Fix-a-NULL-vs-IS_ERR-bug-in-usb_hcd_setup_lo.patch
new file mode 100644
index 000000000..920b0b780
--- /dev/null
+++ b/debian/patches/bugfix/all/usb-hcd-Fix-a-NULL-vs-IS_ERR-bug-in-usb_hcd_setup_lo.patch
@@ -0,0 +1,35 @@
+From: Dan Carpenter <dan.carpenter@oracle.com>
+Date: Fri, 7 Jun 2019 16:57:09 +0300
+Subject: usb/hcd: Fix a NULL vs IS_ERR() bug in usb_hcd_setup_local_mem()
+Origin: https://git.kernel.org/linus/94b9a70d32db0d1e8eeaeb27d74a5ae712644da9
+
+The devm_memremap() function doesn't return NULL, it returns error
+pointers.
+
+Fixes: b0310c2f09bb ("USB: use genalloc for USB HCs with local memory")
+Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
+Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Link: https://lore.kernel.org/r/20190607135709.GC16718@mwanda
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/usb/core/hcd.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
+index 8b8ec0c7325d..a84b201dd844 100644
+--- a/drivers/usb/core/hcd.c
++++ b/drivers/usb/core/hcd.c
+@@ -3038,8 +3038,8 @@ int usb_hcd_setup_local_mem(struct usb_hcd *hcd, phys_addr_t phys_addr,
+
+ local_mem = devm_memremap(hcd->self.sysdev, phys_addr,
+ size, MEMREMAP_WC);
+- if (!local_mem)
+- return -ENOMEM;
++ if (IS_ERR(local_mem))
++ return PTR_ERR(local_mem);
+
+ /*
+ * Here we pass a dma_addr_t but the arg type is a phys_addr_t.
+--
+2.26.2
+
diff --git a/debian/patches/bugfix/all/usb-host-ohci-sm501-init-genalloc-for-local-memory.patch b/debian/patches/bugfix/all/usb-host-ohci-sm501-init-genalloc-for-local-memory.patch
new file mode 100644
index 000000000..39d46e009
--- /dev/null
+++ b/debian/patches/bugfix/all/usb-host-ohci-sm501-init-genalloc-for-local-memory.patch
@@ -0,0 +1,105 @@
+From: Laurentiu Tudor <laurentiu.tudor@nxp.com>
+Date: Wed, 29 May 2019 13:28:41 +0300
+Subject: usb: host: ohci-sm501: init genalloc for local memory
+Origin: https://git.kernel.org/linus/7d9e6f5aebe8c03f1a5199ca5c30f0c53042af23
+
+In preparation for dropping the existing "coherent" dma mem declaration
+APIs, replace the current dma_declare_coherent_memory() based mechanism
+with the creation of a genalloc pool that will be used in the OHCI
+subsystem as replacement for the DMA APIs.
+
+Signed-off-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
+Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+---
+ drivers/usb/host/ohci-sm501.c | 47 +++++++++++++++--------------------
+ 1 file changed, 20 insertions(+), 27 deletions(-)
+
+--- a/drivers/usb/host/ohci-sm501.c
++++ b/drivers/usb/host/ohci-sm501.c
+@@ -110,41 +110,18 @@
+ goto err0;
+ }
+
+- /* The sm501 chip is equipped with local memory that may be used
+- * by on-chip devices such as the video controller and the usb host.
+- * This driver uses dma_declare_coherent_memory() to make sure
+- * usb allocations with dma_alloc_coherent() allocate from
+- * this local memory. The dma_handle returned by dma_alloc_coherent()
+- * will be an offset starting from 0 for the first local memory byte.
+- *
+- * So as long as data is allocated using dma_alloc_coherent() all is
+- * fine. This is however not always the case - buffers may be allocated
+- * using kmalloc() - so the usb core needs to be told that it must copy
+- * data into our local memory if the buffers happen to be placed in
+- * regular memory. The HCD_LOCAL_MEM flag does just that.
+- */
+-
+- retval = dma_declare_coherent_memory(dev, mem->start,
+- mem->start - mem->parent->start,
+- resource_size(mem),
+- DMA_MEMORY_EXCLUSIVE);
+- if (retval) {
+- dev_err(dev, "cannot declare coherent memory\n");
+- goto err1;
+- }
+-
+ /* allocate, reserve and remap resources for registers */
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (res == NULL) {
+ dev_err(dev, "no resource definition for registers\n");
+ retval = -ENOENT;
+- goto err2;
++ goto err1;
+ }
+
+ hcd = usb_create_hcd(driver, &pdev->dev, dev_name(&pdev->dev));
+ if (!hcd) {
+ retval = -ENOMEM;
+- goto err2;
++ goto err1;
+ }
+
+ hcd->rsrc_start = res->start;
+@@ -165,6 +142,24 @@
+
+ ohci_hcd_init(hcd_to_ohci(hcd));
+
++ /* The sm501 chip is equipped with local memory that may be used
++ * by on-chip devices such as the video controller and the usb host.
++ * This driver uses genalloc so that usb allocations with
++ * gen_pool_dma_alloc() allocate from this local memory. The dma_handle
++ * returned by gen_pool_dma_alloc() will be an offset starting from 0
++ * for the first local memory byte.
++ *
++ * So as long as data is allocated using gen_pool_dma_alloc() all is
++ * fine. This is however not always the case - buffers may be allocated
++ * using kmalloc() - so the usb core needs to be told that it must copy
++ * data into our local memory if the buffers happen to be placed in
++ * regular memory. The HCD_LOCAL_MEM flag does just that.
++ */
++
++ if (usb_hcd_setup_local_mem(hcd, mem->start,
++ mem->start - mem->parent->start,
++ resource_size(mem)) < 0)
++ goto err5;
+ retval = usb_add_hcd(hcd, irq, IRQF_SHARED);
+ if (retval)
+ goto err5;
+@@ -182,8 +177,6 @@
+ release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
+ err3:
+ usb_put_hcd(hcd);
+-err2:
+- dma_release_declared_memory(dev);
+ err1:
+ release_mem_region(mem->start, resource_size(mem));
+ err0:
+@@ -199,7 +192,6 @@
+ iounmap(hcd->regs);
+ release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
+ usb_put_hcd(hcd);
+- dma_release_declared_memory(&pdev->dev);
+ mem = platform_get_resource(pdev, IORESOURCE_MEM, 1);
+ if (mem)
+ release_mem_region(mem->start, resource_size(mem));
diff --git a/debian/patches/bugfix/all/usbip-document-tcp-wrappers.patch b/debian/patches/bugfix/all/usbip-document-tcp-wrappers.patch
new file mode 100644
index 000000000..0943df590
--- /dev/null
+++ b/debian/patches/bugfix/all/usbip-document-tcp-wrappers.patch
@@ -0,0 +1,31 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Sun, 24 Jun 2012 02:51:39 +0100
+Subject: usbip: Document TCP wrappers
+Forwarded: no
+
+Add references to TCP wrappers configuration in the manual page.
+
+Index: linux/tools/usb/usbip/doc/usbipd.8
+===================================================================
+--- linux.orig/tools/usb/usbip/doc/usbipd.8
++++ linux/tools/usb/usbip/doc/usbipd.8
+@@ -14,7 +14,8 @@ Devices have to explicitly be exported u
+ before usbipd makes them available to other hosts.
+
+ The daemon accepts connections from USB/IP clients
+-on TCP port 3240 by default.
++on TCP port 3240 by default. The clients authorised to connect may be
++configured as documented in hosts_access(5).
+
+ .SH OPTIONS
+ .HP
+@@ -69,7 +70,8 @@ Show version.
+
+ .B usbipd
+ offers no authentication or authorization for USB/IP. Any
+-USB/IP client can connect and use exported devices.
++USB/IP client running on an authorised host can connect and
++use exported devices.
+
+ .SH EXAMPLES
+
diff --git a/debian/patches/bugfix/all/usbip-fix-misuse-of-strncpy.patch b/debian/patches/bugfix/all/usbip-fix-misuse-of-strncpy.patch
new file mode 100644
index 000000000..b98025b8a
--- /dev/null
+++ b/debian/patches/bugfix/all/usbip-fix-misuse-of-strncpy.patch
@@ -0,0 +1,61 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Fri, 20 Jul 2018 01:30:24 +0100
+Subject: usbip: Fix misuse of strncpy()
+Bug-Debian: https://bugs.debian.org/897802
+Forwarded: https://marc.info/?l=linux-usb&m=153213915806258
+
+gcc 8 reports:
+
+usbip_device_driver.c: In function ‘read_usb_vudc_device’:
+usbip_device_driver.c:106:2: error: ‘strncpy’ specified bound 256 equals destination size [-Werror=stringop-truncation]
+ strncpy(dev->path, path, SYSFS_PATH_MAX);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+usbip_device_driver.c:125:2: error: ‘strncpy’ specified bound 32 equals destination size [-Werror=stringop-truncation]
+ strncpy(dev->busid, name, SYSFS_BUS_ID_SIZE);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+I'm not convinced it makes sense to truncate the copied strings here,
+but since we're already doing so let's ensure they're still null-
+terminated. We can't easily use strlcpy() here, so use snprintf().
+
+usbip_common.c has the same problem.
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+Index: linux/tools/usb/usbip/libsrc/usbip_common.c
+===================================================================
+--- linux.orig/tools/usb/usbip/libsrc/usbip_common.c
++++ linux/tools/usb/usbip/libsrc/usbip_common.c
+@@ -226,8 +226,8 @@ int read_usb_device(struct udev_device *
+ path = udev_device_get_syspath(sdev);
+ name = udev_device_get_sysname(sdev);
+
+- strncpy(udev->path, path, SYSFS_PATH_MAX);
+- strncpy(udev->busid, name, SYSFS_BUS_ID_SIZE);
++ snprintf(udev->path, SYSFS_PATH_MAX, "%s", path);
++ snprintf(udev->busid, SYSFS_BUS_ID_SIZE, "%s", name);
+
+ sscanf(name, "%u-%u", &busnum, &devnum);
+ udev->busnum = busnum;
+Index: linux/tools/usb/usbip/libsrc/usbip_device_driver.c
+===================================================================
+--- linux.orig/tools/usb/usbip/libsrc/usbip_device_driver.c
++++ linux/tools/usb/usbip/libsrc/usbip_device_driver.c
+@@ -103,7 +103,7 @@ int read_usb_vudc_device(struct udev_dev
+ copy_descr_attr16(dev, &descr, idProduct);
+ copy_descr_attr16(dev, &descr, bcdDevice);
+
+- strncpy(dev->path, path, SYSFS_PATH_MAX);
++ snprintf(dev->path, SYSFS_PATH_MAX, "%s", path);
+
+ dev->speed = USB_SPEED_UNKNOWN;
+ speed = udev_device_get_sysattr_value(sdev, "current_speed");
+@@ -122,7 +122,7 @@ int read_usb_vudc_device(struct udev_dev
+ dev->busnum = 0;
+
+ name = udev_device_get_sysname(plat);
+- strncpy(dev->busid, name, SYSFS_BUS_ID_SIZE);
++ snprintf(dev->busid, SYSFS_BUS_ID_SIZE, "%s", name);
+ return 0;
+ err:
+ fclose(fd);
diff --git a/debian/patches/bugfix/arm/ARM-dts-sun8i-h3-add-sy8106a-to-orange-pi-plus.patch b/debian/patches/bugfix/arm/ARM-dts-sun8i-h3-add-sy8106a-to-orange-pi-plus.patch
new file mode 100644
index 000000000..1329c9390
--- /dev/null
+++ b/debian/patches/bugfix/arm/ARM-dts-sun8i-h3-add-sy8106a-to-orange-pi-plus.patch
@@ -0,0 +1,77 @@
+From: Jorik Jonker <jorik@kippendief.biz>
+Date: Sat, 29 Sep 2018 15:18:30 +0200
+Subject: ARM: dts: sun8i-h3: add sy8106a to orange pi plus
+Origin: https://git.kernel.org/linus/e98d72d98a25890308941080d3a17b4c77e3f460
+
+The Orange Pi Plus board lacks voltage scaling capabilities in its
+current form. This results in random freezes during boot when cpufreq is
+enabled, probably due to wrong voltages.
+
+This patch (more or less copy/paste from 06139c) does the following
+things on this board:
+- enable r_i2c
+- add sy8106a to the r_i2c bus
+- have the sy8106a regulate VDD of cpu
+
+Since the Orange Pi Plus has the same PMU setup as the Orange Pi PC, I
+simply took min/max/fixed/ramp from the latter DTS. In that file the
+origin of the values are described by the following comment:
+
+ "The datasheet uses 1.1V as the minimum value of VDD-CPUX,
+ however both the Armbian DVFS table and the official one
+ have operating points with voltage under 1.1V, and both
+ DVFS table are known to work properly at the lowest
+ operating point.
+ Use 1.0V as the minimum voltage instead."
+
+I have tested this on patch two Orange Pi Plus boards, by running a
+kernel with this patch and do intermettent runs of cpuburn while
+monitoring voltage, frequency and temperature. The board runs stable
+across its operatiing points while showing a reasonable (< 40C)
+temperature. My Orange Pi PC, when put to the same test, yields similar
+stable results.
+
+Signed-off-by: Jorik Jonker <jorik@kippendief.biz>
+Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
+---
+ arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts | 20 ++++++++++++++++++++
+ 1 file changed, 20 insertions(+)
+
+Index: linux/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
+===================================================================
+--- linux.orig/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
++++ linux/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
+@@ -74,6 +74,10 @@
+ };
+ };
+
++&cpu0 {
++ cpu-supply = <&reg_vdd_cpux>;
++};
++
+ &ehci3 {
+ status = "okay";
+ };
+@@ -119,6 +123,22 @@
+ };
+ };
+
++&r_i2c {
++ status = "okay";
++
++ reg_vdd_cpux: regulator@65 {
++ compatible = "silergy,sy8106a";
++ reg = <0x65>;
++ regulator-name = "vdd-cpux";
++ silergy,fixed-microvolt = <1200000>;
++ regulator-min-microvolt = <1000000>;
++ regulator-max-microvolt = <1400000>;
++ regulator-ramp-delay = <200>;
++ regulator-boot-on;
++ regulator-always-on;
++ };
++};
++
+ &usbphy {
+ usb3_vbus-supply = <&reg_usb3_vbus>;
+ };
diff --git a/debian/patches/bugfix/arm/arm-dts-kirkwood-fix-sata-pinmux-ing-for-ts419.patch b/debian/patches/bugfix/arm/arm-dts-kirkwood-fix-sata-pinmux-ing-for-ts419.patch
new file mode 100644
index 000000000..a8fc875a3
--- /dev/null
+++ b/debian/patches/bugfix/arm/arm-dts-kirkwood-fix-sata-pinmux-ing-for-ts419.patch
@@ -0,0 +1,37 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Fri, 17 Feb 2017 01:30:30 +0000
+Subject: ARM: dts: kirkwood: Fix SATA pinmux-ing for TS419
+Forwarded: https://www.spinics.net/lists/arm-kernel/msg563610.html
+Bug-Debian: https://bugs.debian.org/855017
+
+The old board code for the TS419 assigns MPP pins 15 and 16 as SATA
+activity signals (and none as SATA presence signals). Currently the
+device tree assigns the SoC's default pinmux groups for SATA, which
+conflict with the second Ethernet port.
+
+Reported-by: gmbh@gazeta.pl
+Tested-by: gmbh@gazeta.pl
+References: https://bugs.debian.org/855017
+Cc: stable@vger.kernel.org # 3.15+
+Fixes: 934b524b3f49 ("ARM: Kirkwood: Add DT description of QNAP 419")
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+ arch/arm/boot/dts/kirkwood-ts419.dtsi | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+Index: linux/arch/arm/boot/dts/kirkwood-ts419.dtsi
+===================================================================
+--- linux.orig/arch/arm/boot/dts/kirkwood-ts419.dtsi
++++ linux/arch/arm/boot/dts/kirkwood-ts419.dtsi
+@@ -69,3 +69,11 @@
+ phy-handle = <&ethphy1>;
+ };
+ };
++
++&pmx_sata0 {
++ marvell,pins = "mpp15";
++};
++
++&pmx_sata1 {
++ marvell,pins = "mpp16";
++};
diff --git a/debian/patches/bugfix/arm/arm-mm-export-__sync_icache_dcache-for-xen-privcmd.patch b/debian/patches/bugfix/arm/arm-mm-export-__sync_icache_dcache-for-xen-privcmd.patch
new file mode 100644
index 000000000..2e8771b55
--- /dev/null
+++ b/debian/patches/bugfix/arm/arm-mm-export-__sync_icache_dcache-for-xen-privcmd.patch
@@ -0,0 +1,31 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Wed, 11 Jul 2018 23:40:55 +0100
+Subject: ARM: mm: Export __sync_icache_dcache() for xen-privcmd
+Forwarded: https://marc.info/?l=linux-arm-kernel&m=153134944429241
+
+The xen-privcmd driver, which can be modular, calls set_pte_at()
+which in turn may call __sync_icache_dcache().
+
+The call to __sync_icache_dcache() may be optimised out because it is
+conditional on !pte_special(), and xen-privcmd calls pte_mkspecial().
+However, in a non-LPAE configuration there is no "special" bit and the
+call is really unconditional.
+
+Fixes: 3ad0876554ca ("xen/privcmd: add IOCTL_PRIVCMD_MMAP_RESOURCE")
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+ arch/arm/mm/flush.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: linux/arch/arm/mm/flush.c
+===================================================================
+--- linux.orig/arch/arm/mm/flush.c
++++ linux/arch/arm/mm/flush.c
+@@ -295,6 +295,7 @@ void __sync_icache_dcache(pte_t pteval)
+ if (pte_exec(pteval))
+ __flush_icache_all();
+ }
++EXPORT_SYMBOL_GPL(__sync_icache_dcache);
+ #endif
+
+ /*
diff --git a/debian/patches/bugfix/arm64/arm64-PCI-Allow-resource-reallocation-if-necessary.patch b/debian/patches/bugfix/arm64/arm64-PCI-Allow-resource-reallocation-if-necessary.patch
new file mode 100644
index 000000000..55fbe10b5
--- /dev/null
+++ b/debian/patches/bugfix/arm64/arm64-PCI-Allow-resource-reallocation-if-necessary.patch
@@ -0,0 +1,47 @@
+From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Sat, 15 Jun 2019 10:23:56 +1000
+Subject: [PATCH 3/4] arm64: PCI: Allow resource reallocation if necessary
+Origin: https://git.kernel.org/linus/3e8ba9686600e5f77e692126bf0293edf162989a
+
+Call pci_assign_unassigned_root_bus_resources() instead of the simpler:
+
+ pci_bus_size_bridges(bus);
+ pci_bus_assign_resources(bus);
+
+pci_assign_unassigned_root_bus_resources() calls:
+
+ __pci_bus_size_bridges(bus, add_list);
+ __pci_bus_assign_resources(bus, add_list, &fail_head);
+
+so this should be equivalent as long as we're able to assign everything.
+If we were unable to assign something, previously we did nothing and left
+it unassigned, but after this patch, we will attempt to do some
+reallocation.
+
+Once we start honoring FW resource allocations, this will bring up the
+"reallocation" feature which can help making room for SR-IOV when
+necessary.
+
+Link: https://lore.kernel.org/r/20190615002359.29577-1-benh@kernel.crashing.org
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+[bhelgaas: commit log]
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
+---
+ arch/arm64/kernel/pci.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+Index: linux/arch/arm64/kernel/pci.c
+===================================================================
+--- linux.orig/arch/arm64/kernel/pci.c
++++ linux/arch/arm64/kernel/pci.c
+@@ -194,8 +194,7 @@ struct pci_bus *pci_acpi_scan_root(struc
+ if (!bus)
+ return NULL;
+
+- pci_bus_size_bridges(bus);
+- pci_bus_assign_resources(bus);
++ pci_assign_unassigned_root_bus_resources(bus);
+
+ list_for_each_entry(child, &bus->children, node)
+ pcie_bus_configure_settings(child);
diff --git a/debian/patches/bugfix/arm64/arm64-PCI-Preserve-firmware-configuration-when-desir.patch b/debian/patches/bugfix/arm64/arm64-PCI-Preserve-firmware-configuration-when-desir.patch
new file mode 100644
index 000000000..37bc6e0c8
--- /dev/null
+++ b/debian/patches/bugfix/arm64/arm64-PCI-Preserve-firmware-configuration-when-desir.patch
@@ -0,0 +1,46 @@
+From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Sat, 15 Jun 2019 10:23:59 +1000
+Subject: [PATCH 4/4] arm64: PCI: Preserve firmware configuration when desired
+Origin: https://git.kernel.org/linus/85dc04136e86680378546afb808357a58c06061c
+
+If we must preserve the firmware resource assignments, claim the existing
+resources rather than reassigning everything.
+
+Link: https://lore.kernel.org/r/20190615002359.29577-4-benh@kernel.crashing.org
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+[bhelgaas: commit log]
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
+Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+---
+ arch/arm64/kernel/pci.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+Index: linux/arch/arm64/kernel/pci.c
+===================================================================
+--- linux.orig/arch/arm64/kernel/pci.c
++++ linux/arch/arm64/kernel/pci.c
+@@ -169,6 +169,7 @@ struct pci_bus *pci_acpi_scan_root(struc
+ struct acpi_pci_generic_root_info *ri;
+ struct pci_bus *bus, *child;
+ struct acpi_pci_root_ops *root_ops;
++ struct pci_host_bridge *host;
+
+ ri = kzalloc_node(sizeof(*ri), GFP_KERNEL, node);
+ if (!ri)
+@@ -194,6 +195,15 @@ struct pci_bus *pci_acpi_scan_root(struc
+ if (!bus)
+ return NULL;
+
++ /* If we must preserve the resource configuration, claim now */
++ host = pci_find_host_bridge(bus);
++ if (host->preserve_config)
++ pci_bus_claim_resources(bus);
++
++ /*
++ * Assign whatever was left unassigned. If we didn't claim above,
++ * this will reassign everything.
++ */
+ pci_assign_unassigned_root_bus_resources(bus);
+
+ list_for_each_entry(child, &bus->children, node)
diff --git a/debian/patches/bugfix/arm64/arm64-acpi-Add-fixup-for-HPE-m400-quirks.patch b/debian/patches/bugfix/arm64/arm64-acpi-Add-fixup-for-HPE-m400-quirks.patch
new file mode 100644
index 000000000..50098d001
--- /dev/null
+++ b/debian/patches/bugfix/arm64/arm64-acpi-Add-fixup-for-HPE-m400-quirks.patch
@@ -0,0 +1,92 @@
+From: Geoff Levand <geoff@infradead.org>
+Date: Wed, 13 Jun 2018 10:56:08 -0700
+Subject: arm64/acpi: Add fixup for HPE m400 quirks
+Forwarded: https://patchwork.codeaurora.org/patch/547277/
+
+Adds a new ACPI init routine acpi_fixup_m400_quirks that adds
+a work-around for HPE ProLiant m400 APEI firmware problems.
+
+The work-around disables APEI when CONFIG_ACPI_APEI is set and
+m400 firmware is detected. Without this fixup m400 systems
+experience errors like these on startup:
+
+ [Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 2
+ [Hardware Error]: event severity: fatal
+ [Hardware Error]: Error 0, type: fatal
+ [Hardware Error]: section_type: memory error
+ [Hardware Error]: error_status: 0x0000000000001300
+ [Hardware Error]: error_type: 10, invalid address
+ Kernel panic - not syncing: Fatal hardware error!
+
+Signed-off-by: Geoff Levand <geoff@infradead.org>
+[bwh: Adjust context to apply to Linux 4.19]
+---
+ arch/arm64/kernel/acpi.c | 40 ++++++++++++++++++++++++++++++++++++----
+ 1 file changed, 36 insertions(+), 4 deletions(-)
+
+Index: linux/arch/arm64/kernel/acpi.c
+===================================================================
+--- linux.orig/arch/arm64/kernel/acpi.c
++++ linux/arch/arm64/kernel/acpi.c
+@@ -33,6 +33,8 @@
+ #include <asm/pgtable.h>
+ #include <asm/smp_plat.h>
+
++#include <acpi/apei.h>
++
+ int acpi_noirq = 1; /* skip ACPI IRQ initialization */
+ int acpi_disabled = 1;
+ EXPORT_SYMBOL(acpi_disabled);
+@@ -179,6 +181,33 @@ out:
+ }
+
+ /*
++ * acpi_fixup_m400_quirks - Work-around for HPE ProLiant m400 APEI firmware
++ * problems.
++ */
++static void __init acpi_fixup_m400_quirks(void)
++{
++ acpi_status status;
++ struct acpi_table_header *header;
++#if !defined(CONFIG_ACPI_APEI)
++ int hest_disable = HEST_DISABLED;
++#endif
++
++ if (!IS_ENABLED(CONFIG_ACPI_APEI) || hest_disable != HEST_ENABLED)
++ return;
++
++ status = acpi_get_table(ACPI_SIG_HEST, 0, &header);
++
++ if (ACPI_SUCCESS(status) && !strncmp(header->oem_id, "HPE ", 6) &&
++ !strncmp(header->oem_table_id, "ProLiant", 8) &&
++ MIDR_IMPLEMENTOR(read_cpuid_id()) == ARM_CPU_IMP_APM) {
++ hest_disable = HEST_DISABLED;
++ pr_info("Disabled APEI for m400.\n");
++ }
++
++ acpi_put_table(header);
++}
++
++/*
+ * acpi_boot_table_init() called from setup_arch(), always.
+ * 1. find RSDP and get its address, and then find XSDT
+ * 2. extract all tables and checksums them all
+@@ -233,11 +262,14 @@ done:
+ if (acpi_disabled) {
+ if (earlycon_acpi_spcr_enable)
+ early_init_dt_scan_chosen_stdout();
+- } else {
+- acpi_parse_spcr(earlycon_acpi_spcr_enable, true);
+- if (IS_ENABLED(CONFIG_ACPI_BGRT))
+- acpi_table_parse(ACPI_SIG_BGRT, acpi_parse_bgrt);
++ return;
+ }
++
++ acpi_parse_spcr(earlycon_acpi_spcr_enable, true);
++ if (IS_ENABLED(CONFIG_ACPI_BGRT))
++ acpi_table_parse(ACPI_SIG_BGRT, acpi_parse_bgrt);
++
++ acpi_fixup_m400_quirks();
+ }
+
+ pgprot_t __acpi_get_mem_attribute(phys_addr_t addr)
diff --git a/debian/patches/bugfix/arm64/arm64-dts-allwinner-a64-Enable-A64-timer-workaround.patch b/debian/patches/bugfix/arm64/arm64-dts-allwinner-a64-Enable-A64-timer-workaround.patch
new file mode 100644
index 000000000..543364416
--- /dev/null
+++ b/debian/patches/bugfix/arm64/arm64-dts-allwinner-a64-Enable-A64-timer-workaround.patch
@@ -0,0 +1,28 @@
+From: Samuel Holland <samuel@sholland.org>
+Date: Sat, 12 Jan 2019 20:17:19 -0600
+Subject: arm64: dts: allwinner: a64: Enable A64 timer workaround
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git/commit?id=55ec26d6a4241363fa94f15377ebd8f1116fbfd7
+
+As instability in the architectural timer has been observed on multiple
+devices using this SoC, inluding the Pine64 and the Orange Pi Win,
+enable the workaround in the SoC's device tree.
+
+Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
+Signed-off-by: Samuel Holland <samuel@sholland.org>
+Signed-off-by: Chen-Yu Tsai <wens@csie.org>
+---
+ arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: linux/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+===================================================================
+--- linux.orig/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
++++ linux/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+@@ -159,6 +159,7 @@
+
+ timer {
+ compatible = "arm,armv8-timer";
++ allwinner,erratum-unknown1;
+ interrupts = <GIC_PPI 13
+ (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
+ <GIC_PPI 14
diff --git a/debian/patches/bugfix/arm64/dts-rockchip-correct-voltage-selector-firefly-RK3399.patch b/debian/patches/bugfix/arm64/dts-rockchip-correct-voltage-selector-firefly-RK3399.patch
new file mode 100644
index 000000000..4116ab598
--- /dev/null
+++ b/debian/patches/bugfix/arm64/dts-rockchip-correct-voltage-selector-firefly-RK3399.patch
@@ -0,0 +1,42 @@
+From: Heinrich Schuchardt <xypron.glpk@gmx.de>
+Date: Mon, 4 Jun 2018 19:15:23 +0200
+Subject: arm64: dts: rockchip: correct voltage selector on Firefly-RK3399
+Bug-Debian: https://bugs.debian.org/900799
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git/patch/?id=710e8c4a54be82ee8a97324e7b4330bf191e08bf
+
+Without this patch the Firefly-RK3399 board boot process hangs after these
+lines:
+
+ fan53555-regulator 0-0040: FAN53555 Option[8] Rev[1] Detected!
+ fan53555-reg: supplied by vcc_sys
+ vcc1v8_s3: supplied by vcc_1v8
+
+Blacklisting driver fan53555 allows booting.
+
+The device tree uses a value of fcs,suspend-voltage-selector different to
+any other board.
+
+Changing this setting to the usual value is sufficient to enable booting
+and also matches the value used in the vendor kernel.
+
+Fixes: 171582e00db1 ("arm64: dts: rockchip: add support for firefly-rk3399 board")
+Cc: stable@vger.kernel.org
+Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
+Signed-off-by: Heiko Stuebner <heiko@sntech.de>
+---
+ arch/arm64/boot/dts/rockchip/rk3399-firefly.dts | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: linux/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
+===================================================================
+--- linux.orig/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
++++ linux/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
+@@ -455,7 +455,7 @@
+ vdd_cpu_b: regulator@40 {
+ compatible = "silergy,syr827";
+ reg = <0x40>;
+- fcs,suspend-voltage-selector = <0>;
++ fcs,suspend-voltage-selector = <1>;
+ regulator-name = "vdd_cpu_b";
+ regulator-min-microvolt = <712500>;
+ regulator-max-microvolt = <1500000>;
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0002-scsi-hisi_sas-Move-evaluation-of-hisi_hba-in-hisi_sa.patch b/debian/patches/bugfix/arm64/huawei-taishan/0002-scsi-hisi_sas-Move-evaluation-of-hisi_hba-in-hisi_sa.patch
new file mode 100644
index 000000000..98b6e734e
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0002-scsi-hisi_sas-Move-evaluation-of-hisi_hba-in-hisi_sa.patch
@@ -0,0 +1,47 @@
+From bbd24b8bdc501fb5dacb43e847b6eeb9a12829f5 Mon Sep 17 00:00:00 2001
+From: Luo Jiaxing <luojiaxing@huawei.com>
+Date: Mon, 24 Sep 2018 23:06:29 +0800
+Subject: [PATCH 02/31] scsi: hisi_sas: Move evaluation of hisi_hba in
+ hisi_sas_task_prep()
+Origin: https://git.kernel.org/linus/1668e3b6f8f8ed2ce685691c92b90dfadeaa3f2f
+
+In evaluating hisi_hba, the sas_port may be NULL, so for safety relocate
+the the check to value possible NULL deference.
+
+Signed-off-by: Luo Jiaxing <luojiaxing@huawei.com>
+Signed-off-by: John Garry <john.garry@huawei.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+---
+ drivers/scsi/hisi_sas/hisi_sas_main.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+Index: linux/drivers/scsi/hisi_sas/hisi_sas_main.c
+===================================================================
+--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_main.c
++++ linux/drivers/scsi/hisi_sas/hisi_sas_main.c
+@@ -288,13 +288,13 @@ static int hisi_sas_task_prep(struct sas
+ int *pass)
+ {
+ struct domain_device *device = task->dev;
+- struct hisi_hba *hisi_hba = dev_to_hisi_hba(device);
++ struct hisi_hba *hisi_hba;
+ struct hisi_sas_device *sas_dev = device->lldd_dev;
+ struct hisi_sas_port *port;
+ struct hisi_sas_slot *slot;
+ struct hisi_sas_cmd_hdr *cmd_hdr_base;
+ struct asd_sas_port *sas_port = device->port;
+- struct device *dev = hisi_hba->dev;
++ struct device *dev;
+ int dlvry_queue_slot, dlvry_queue, rc, slot_idx;
+ int n_elem = 0, n_elem_req = 0, n_elem_resp = 0;
+ struct hisi_sas_dq *dq;
+@@ -315,6 +315,9 @@ static int hisi_sas_task_prep(struct sas
+ return -ECOMM;
+ }
+
++ hisi_hba = dev_to_hisi_hba(device);
++ dev = hisi_hba->dev;
++
+ if (DEV_IS_GONE(sas_dev)) {
+ if (sas_dev)
+ dev_info(dev, "task prep: device %d not ready\n",
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0005-scsi-hisi_sas-unmask-interrupts-ent72-and-ent74.patch b/debian/patches/bugfix/arm64/huawei-taishan/0005-scsi-hisi_sas-unmask-interrupts-ent72-and-ent74.patch
new file mode 100644
index 000000000..a25ca7885
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0005-scsi-hisi_sas-unmask-interrupts-ent72-and-ent74.patch
@@ -0,0 +1,29 @@
+From de1d5713a20562acdb3f94466232432c9dd1d95c Mon Sep 17 00:00:00 2001
+From: Xiang Chen <chenxiang66@hisilicon.com>
+Date: Mon, 24 Sep 2018 23:06:32 +0800
+Subject: [PATCH 05/31] scsi: hisi_sas: unmask interrupts ent72 and ent74
+Origin: https://git.kernel.org/linus/6ecf5ba13cd5959eb75f617ff32c93bb67790e48
+
+The interrupts of ent72 and ent74 are not processed by PCIe AER handling,
+so we need to unmask the interrupts and process them first in the driver.
+
+Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
+Signed-off-by: John Garry <john.garry@huawei.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+---
+ drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+===================================================================
+--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
++++ linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+@@ -441,7 +441,7 @@ static void init_reg_v3_hw(struct hisi_h
+ hisi_sas_write32(hisi_hba, ENT_INT_SRC_MSK1, 0xfefefefe);
+ hisi_sas_write32(hisi_hba, ENT_INT_SRC_MSK2, 0xfefefefe);
+ if (pdev->revision >= 0x21)
+- hisi_sas_write32(hisi_hba, ENT_INT_SRC_MSK3, 0xffff7fff);
++ hisi_sas_write32(hisi_hba, ENT_INT_SRC_MSK3, 0xffff7aff);
+ else
+ hisi_sas_write32(hisi_hba, ENT_INT_SRC_MSK3, 0xfffe20ff);
+ hisi_sas_write32(hisi_hba, CHNL_PHYUPDOWN_INT_MSK, 0x0);
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0006-scsi-hisi_sas-Use-block-layer-tag-instead-for-IPTT.patch b/debian/patches/bugfix/arm64/huawei-taishan/0006-scsi-hisi_sas-Use-block-layer-tag-instead-for-IPTT.patch
new file mode 100644
index 000000000..15a26a35a
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0006-scsi-hisi_sas-Use-block-layer-tag-instead-for-IPTT.patch
@@ -0,0 +1,308 @@
+From d35bf6fccf7d4064065c078d3d369ffeaad6c731 Mon Sep 17 00:00:00 2001
+From: Xiang Chen <chenxiang66@hisilicon.com>
+Date: Mon, 24 Sep 2018 23:06:33 +0800
+Subject: [PATCH 06/31] scsi: hisi_sas: Use block layer tag instead for IPTT
+Origin: https://git.kernel.org/linus/784b46b7cba0ae914dd293f23848c5057c6ba017
+
+Currently we use the IPTT defined in LLDD to identify IOs. Actually for
+IOs which are from the block layer, they have tags to identify them. So
+for those IOs, use tag of the block layer directly, and for IOs which is
+not from the block layer (such as internal IOs from libsas/LLDD), reserve
+96 IPTTs for them.
+
+Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
+Signed-off-by: John Garry <john.garry@huawei.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+---
+ drivers/scsi/hisi_sas/hisi_sas.h | 3 +-
+ drivers/scsi/hisi_sas/hisi_sas_main.c | 89 +++++++++++++++++---------
+ drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 1 -
+ drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 9 +--
+ drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 8 ++-
+ 5 files changed, 70 insertions(+), 40 deletions(-)
+
+--- a/drivers/scsi/hisi_sas/hisi_sas.h
++++ b/drivers/scsi/hisi_sas/hisi_sas.h
+@@ -34,6 +34,7 @@
+ #define HISI_SAS_MAX_DEVICES HISI_SAS_MAX_ITCT_ENTRIES
+ #define HISI_SAS_RESET_BIT 0
+ #define HISI_SAS_REJECT_CMD_BIT 1
++#define HISI_SAS_RESERVED_IPTT_CNT 96
+
+ #define HISI_SAS_STATUS_BUF_SZ (sizeof(struct hisi_sas_status_buffer))
+ #define HISI_SAS_COMMAND_TABLE_SZ (sizeof(union hisi_sas_command_table))
+@@ -217,7 +218,7 @@ struct hisi_sas_hw {
+ int (*hw_init)(struct hisi_hba *hisi_hba);
+ void (*setup_itct)(struct hisi_hba *hisi_hba,
+ struct hisi_sas_device *device);
+- int (*slot_index_alloc)(struct hisi_hba *hisi_hba, int *slot_idx,
++ int (*slot_index_alloc)(struct hisi_hba *hisi_hba,
+ struct domain_device *device);
+ struct hisi_sas_device *(*alloc_dev)(struct domain_device *device);
+ void (*sl_notify_ssp)(struct hisi_hba *hisi_hba, int phy_no);
+--- a/drivers/scsi/hisi_sas/hisi_sas_main.c
++++ b/drivers/scsi/hisi_sas/hisi_sas_main.c
+@@ -184,7 +184,14 @@ static void hisi_sas_slot_index_clear(st
+
+ static void hisi_sas_slot_index_free(struct hisi_hba *hisi_hba, int slot_idx)
+ {
+- hisi_sas_slot_index_clear(hisi_hba, slot_idx);
++ unsigned long flags;
++
++ if (hisi_hba->hw->slot_index_alloc || (slot_idx >=
++ hisi_hba->hw->max_command_entries - HISI_SAS_RESERVED_IPTT_CNT)) {
++ spin_lock_irqsave(&hisi_hba->lock, flags);
++ hisi_sas_slot_index_clear(hisi_hba, slot_idx);
++ spin_unlock_irqrestore(&hisi_hba->lock, flags);
++ }
+ }
+
+ static void hisi_sas_slot_index_set(struct hisi_hba *hisi_hba, int slot_idx)
+@@ -194,24 +201,34 @@ static void hisi_sas_slot_index_set(stru
+ set_bit(slot_idx, bitmap);
+ }
+
+-static int hisi_sas_slot_index_alloc(struct hisi_hba *hisi_hba, int *slot_idx)
++static int hisi_sas_slot_index_alloc(struct hisi_hba *hisi_hba,
++ struct scsi_cmnd *scsi_cmnd)
+ {
+- unsigned int index;
++ int index;
+ void *bitmap = hisi_hba->slot_index_tags;
++ unsigned long flags;
+
++ if (scsi_cmnd)
++ return scsi_cmnd->request->tag;
++
++ spin_lock_irqsave(&hisi_hba->lock, flags);
+ index = find_next_zero_bit(bitmap, hisi_hba->slot_index_count,
+- hisi_hba->last_slot_index + 1);
++ hisi_hba->last_slot_index + 1);
+ if (index >= hisi_hba->slot_index_count) {
+- index = find_next_zero_bit(bitmap, hisi_hba->slot_index_count,
+- 0);
+- if (index >= hisi_hba->slot_index_count)
++ index = find_next_zero_bit(bitmap,
++ hisi_hba->slot_index_count,
++ hisi_hba->hw->max_command_entries -
++ HISI_SAS_RESERVED_IPTT_CNT);
++ if (index >= hisi_hba->slot_index_count) {
++ spin_unlock_irqrestore(&hisi_hba->lock, flags);
+ return -SAS_QUEUE_FULL;
++ }
+ }
+ hisi_sas_slot_index_set(hisi_hba, index);
+- *slot_idx = index;
+ hisi_hba->last_slot_index = index;
++ spin_unlock_irqrestore(&hisi_hba->lock, flags);
+
+- return 0;
++ return index;
+ }
+
+ static void hisi_sas_slot_index_init(struct hisi_hba *hisi_hba)
+@@ -250,9 +267,7 @@ void hisi_sas_slot_task_free(struct hisi
+
+ memset(slot, 0, offsetof(struct hisi_sas_slot, buf));
+
+- spin_lock_irqsave(&hisi_hba->lock, flags);
+ hisi_sas_slot_index_free(hisi_hba, slot->idx);
+- spin_unlock_irqrestore(&hisi_hba->lock, flags);
+ }
+ EXPORT_SYMBOL_GPL(hisi_sas_slot_task_free);
+
+@@ -385,16 +400,27 @@ static int hisi_sas_task_prep(struct sas
+ goto err_out_dma_unmap;
+ }
+
+- spin_lock_irqsave(&hisi_hba->lock, flags);
+ if (hisi_hba->hw->slot_index_alloc)
+- rc = hisi_hba->hw->slot_index_alloc(hisi_hba, &slot_idx,
+- device);
+- else
+- rc = hisi_sas_slot_index_alloc(hisi_hba, &slot_idx);
+- spin_unlock_irqrestore(&hisi_hba->lock, flags);
+- if (rc)
++ rc = hisi_hba->hw->slot_index_alloc(hisi_hba, device);
++ else {
++ struct scsi_cmnd *scsi_cmnd = NULL;
++
++ if (task->uldd_task) {
++ struct ata_queued_cmd *qc;
++
++ if (dev_is_sata(device)) {
++ qc = task->uldd_task;
++ scsi_cmnd = qc->scsicmd;
++ } else {
++ scsi_cmnd = task->uldd_task;
++ }
++ }
++ rc = hisi_sas_slot_index_alloc(hisi_hba, scsi_cmnd);
++ }
++ if (rc < 0)
+ goto err_out_dma_unmap;
+
++ slot_idx = rc;
+ slot = &hisi_hba->slot_info[slot_idx];
+
+ spin_lock_irqsave(&dq->lock, flags);
+@@ -455,9 +481,7 @@ static int hisi_sas_task_prep(struct sas
+ return 0;
+
+ err_out_tag:
+- spin_lock_irqsave(&hisi_hba->lock, flags);
+ hisi_sas_slot_index_free(hisi_hba, slot_idx);
+- spin_unlock_irqrestore(&hisi_hba->lock, flags);
+ err_out_dma_unmap:
+ if (!sas_protocol_ata(task->task_proto)) {
+ if (task->num_scatter) {
+@@ -1747,14 +1771,11 @@ hisi_sas_internal_abort_task_exec(struct
+ port = to_hisi_sas_port(sas_port);
+
+ /* simply get a slot and send abort command */
+- spin_lock_irqsave(&hisi_hba->lock, flags);
+- rc = hisi_sas_slot_index_alloc(hisi_hba, &slot_idx);
+- if (rc) {
+- spin_unlock_irqrestore(&hisi_hba->lock, flags);
++ rc = hisi_sas_slot_index_alloc(hisi_hba, NULL);
++ if (rc < 0)
+ goto err_out;
+- }
+- spin_unlock_irqrestore(&hisi_hba->lock, flags);
+
++ slot_idx = rc;
+ slot = &hisi_hba->slot_info[slot_idx];
+
+ spin_lock_irqsave(&dq->lock, flags_dq);
+@@ -1790,7 +1811,6 @@ hisi_sas_internal_abort_task_exec(struct
+ spin_lock_irqsave(&task->task_state_lock, flags);
+ task->task_state_flags |= SAS_TASK_AT_INITIATOR;
+ spin_unlock_irqrestore(&task->task_state_lock, flags);
+-
+ WRITE_ONCE(slot->ready, 1);
+ /* send abort command to the chip */
+ spin_lock_irqsave(&dq->lock, flags);
+@@ -1801,9 +1821,7 @@ hisi_sas_internal_abort_task_exec(struct
+ return 0;
+
+ err_out_tag:
+- spin_lock_irqsave(&hisi_hba->lock, flags);
+ hisi_sas_slot_index_free(hisi_hba, slot_idx);
+- spin_unlock_irqrestore(&hisi_hba->lock, flags);
+ err_out:
+ dev_err(dev, "internal abort task prep: failed[%d]!\n", rc);
+
+@@ -2179,6 +2197,8 @@ int hisi_sas_alloc(struct hisi_hba *hisi
+ hisi_sas_init_mem(hisi_hba);
+
+ hisi_sas_slot_index_init(hisi_hba);
++ hisi_hba->last_slot_index = hisi_hba->hw->max_command_entries -
++ HISI_SAS_RESERVED_IPTT_CNT;
+
+ hisi_hba->wq = create_singlethread_workqueue(dev_name(dev));
+ if (!hisi_hba->wq) {
+@@ -2382,8 +2402,15 @@ int hisi_sas_probe(struct platform_devic
+ shost->max_channel = 1;
+ shost->max_cmd_len = 16;
+ shost->sg_tablesize = min_t(u16, SG_ALL, HISI_SAS_SGE_PAGE_CNT);
+- shost->can_queue = hisi_hba->hw->max_command_entries;
+- shost->cmd_per_lun = hisi_hba->hw->max_command_entries;
++ if (hisi_hba->hw->slot_index_alloc) {
++ shost->can_queue = hisi_hba->hw->max_command_entries;
++ shost->cmd_per_lun = hisi_hba->hw->max_command_entries;
++ } else {
++ shost->can_queue = hisi_hba->hw->max_command_entries -
++ HISI_SAS_RESERVED_IPTT_CNT;
++ shost->cmd_per_lun = hisi_hba->hw->max_command_entries -
++ HISI_SAS_RESERVED_IPTT_CNT;
++ }
+
+ sha->sas_ha_name = DRV_NAME;
+ sha->dev = hisi_hba->dev;
+--- a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
++++ b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
+@@ -1807,7 +1807,6 @@ static struct scsi_host_template sht_v1_
+ .scan_start = hisi_sas_scan_start,
+ .change_queue_depth = sas_change_queue_depth,
+ .bios_param = sas_bios_param,
+- .can_queue = 1,
+ .this_id = -1,
+ .sg_tablesize = SG_ALL,
+ .max_sectors = SCSI_DEFAULT_MAX_SECTORS,
+--- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
++++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
+@@ -770,7 +770,7 @@ static u32 hisi_sas_phy_read32(struct hi
+
+ /* This function needs to be protected from pre-emption. */
+ static int
+-slot_index_alloc_quirk_v2_hw(struct hisi_hba *hisi_hba, int *slot_idx,
++slot_index_alloc_quirk_v2_hw(struct hisi_hba *hisi_hba,
+ struct domain_device *device)
+ {
+ int sata_dev = dev_is_sata(device);
+@@ -778,6 +778,7 @@ slot_index_alloc_quirk_v2_hw(struct hisi
+ struct hisi_sas_device *sas_dev = device->lldd_dev;
+ int sata_idx = sas_dev->sata_idx;
+ int start, end;
++ unsigned long flags;
+
+ if (!sata_dev) {
+ /*
+@@ -801,6 +802,7 @@ slot_index_alloc_quirk_v2_hw(struct hisi
+ end = 64 * (sata_idx + 2);
+ }
+
++ spin_lock_irqsave(&hisi_hba->lock, flags);
+ while (1) {
+ start = find_next_zero_bit(bitmap,
+ hisi_hba->slot_index_count, start);
+@@ -815,8 +817,8 @@ slot_index_alloc_quirk_v2_hw(struct hisi
+ }
+
+ set_bit(start, bitmap);
+- *slot_idx = start;
+- return 0;
++ spin_unlock_irqrestore(&hisi_hba->lock, flags);
++ return start;
+ }
+
+ static bool sata_index_alloc_v2_hw(struct hisi_hba *hisi_hba, int *idx)
+@@ -3558,7 +3560,6 @@ static struct scsi_host_template sht_v2_
+ .scan_start = hisi_sas_scan_start,
+ .change_queue_depth = sas_change_queue_depth,
+ .bios_param = sas_bios_param,
+- .can_queue = 1,
+ .this_id = -1,
+ .sg_tablesize = SG_ALL,
+ .max_sectors = SCSI_DEFAULT_MAX_SECTORS,
+--- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
++++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+@@ -2108,7 +2108,6 @@ static struct scsi_host_template sht_v3_
+ .scan_start = hisi_sas_scan_start,
+ .change_queue_depth = sas_change_queue_depth,
+ .bios_param = sas_bios_param,
+- .can_queue = 1,
+ .this_id = -1,
+ .sg_tablesize = SG_ALL,
+ .max_sectors = SCSI_DEFAULT_MAX_SECTORS,
+@@ -2118,6 +2117,7 @@ static struct scsi_host_template sht_v3_
+ .target_destroy = sas_target_destroy,
+ .ioctl = sas_ioctl,
+ .shost_attrs = host_attrs,
++ .tag_alloc_policy = BLK_TAG_ALLOC_RR,
+ };
+
+ static const struct hisi_sas_hw hisi_sas_v3_hw = {
+@@ -2255,8 +2255,10 @@ hisi_sas_v3_probe(struct pci_dev *pdev,
+ shost->max_channel = 1;
+ shost->max_cmd_len = 16;
+ shost->sg_tablesize = min_t(u16, SG_ALL, HISI_SAS_SGE_PAGE_CNT);
+- shost->can_queue = hisi_hba->hw->max_command_entries;
+- shost->cmd_per_lun = hisi_hba->hw->max_command_entries;
++ shost->can_queue = hisi_hba->hw->max_command_entries -
++ HISI_SAS_RESERVED_IPTT_CNT;
++ shost->cmd_per_lun = hisi_hba->hw->max_command_entries -
++ HISI_SAS_RESERVED_IPTT_CNT;
+
+ sha->sas_ha_name = DRV_NAME;
+ sha->dev = dev;
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0007-scsi-hisi_sas-Update-v3-hw-AIP_LIMIT-and-CFG_AGING_T.patch b/debian/patches/bugfix/arm64/huawei-taishan/0007-scsi-hisi_sas-Update-v3-hw-AIP_LIMIT-and-CFG_AGING_T.patch
new file mode 100644
index 000000000..440ad1a4a
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0007-scsi-hisi_sas-Update-v3-hw-AIP_LIMIT-and-CFG_AGING_T.patch
@@ -0,0 +1,54 @@
+From 4fdcfb8a09d75fbabf4454a60001224b89245c82 Mon Sep 17 00:00:00 2001
+From: Xiang Chen <chenxiang66@hisilicon.com>
+Date: Mon, 24 Sep 2018 23:06:34 +0800
+Subject: [PATCH 07/31] scsi: hisi_sas: Update v3 hw AIP_LIMIT and
+ CFG_AGING_TIME register values
+Origin: https://git.kernel.org/linus/3bccfba8312762becfb05b35d698ba8cffd440f2
+
+Update registers as follows:
+- Default value of AIP timer is 1ms, and it is easy for some expanders to
+ cause IO error. Change the value to max value 65ms to avoid IO error for
+ those expanders.
+
+- A CQ completion will be reported by HW when 4 CQs have occurred or the
+ aging timer expires, whichever happens first. Sor serial IO scenario, it
+ will still wait 8us for every IO before it is reported. So in the
+ situation, the performance is poor. So to improve it, change the limit
+ time to the least value.
+ For other scenario, it does little affect to the performance.
+
+Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
+Signed-off-by: John Garry <john.garry@huawei.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+---
+ drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+Index: linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+===================================================================
+--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
++++ linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+@@ -127,6 +127,7 @@
+ #define PHY_CTRL_RESET_OFF 0
+ #define PHY_CTRL_RESET_MSK (0x1 << PHY_CTRL_RESET_OFF)
+ #define SL_CFG (PORT_BASE + 0x84)
++#define AIP_LIMIT (PORT_BASE + 0x90)
+ #define SL_CONTROL (PORT_BASE + 0x94)
+ #define SL_CONTROL_NOTIFY_EN_OFF 0
+ #define SL_CONTROL_NOTIFY_EN_MSK (0x1 << SL_CONTROL_NOTIFY_EN_OFF)
+@@ -431,6 +432,7 @@ static void init_reg_v3_hw(struct hisi_h
+ (u32)((1ULL << hisi_hba->queue_count) - 1));
+ hisi_sas_write32(hisi_hba, CFG_MAX_TAG, 0xfff0400);
+ hisi_sas_write32(hisi_hba, HGC_SAS_TXFAIL_RETRY_CTRL, 0x108);
++ hisi_sas_write32(hisi_hba, CFG_AGING_TIME, 0x1);
+ hisi_sas_write32(hisi_hba, INT_COAL_EN, 0x1);
+ hisi_sas_write32(hisi_hba, OQ_INT_COAL_TIME, 0x1);
+ hisi_sas_write32(hisi_hba, OQ_INT_COAL_CNT, 0x1);
+@@ -495,6 +497,7 @@ static void init_reg_v3_hw(struct hisi_h
+ hisi_sas_phy_write32(hisi_hba, i, SAS_SSP_CON_TIMER_CFG, 0x32);
+ /* used for 12G negotiate */
+ hisi_sas_phy_write32(hisi_hba, i, COARSETUNE_TIME, 0x1e);
++ hisi_sas_phy_write32(hisi_hba, i, AIP_LIMIT, 0x2ffff);
+ }
+
+ for (i = 0; i < hisi_hba->queue_count; i++) {
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0008-scsi-hisi_sas-Fix-spin-lock-management-in-slot_index.patch b/debian/patches/bugfix/arm64/huawei-taishan/0008-scsi-hisi_sas-Fix-spin-lock-management-in-slot_index.patch
new file mode 100644
index 000000000..1dbe7390b
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0008-scsi-hisi_sas-Fix-spin-lock-management-in-slot_index.patch
@@ -0,0 +1,33 @@
+From f27f6edaf4983b00a3c0e2f6ab720cfa3150a147 Mon Sep 17 00:00:00 2001
+From: John Garry <john.garry@huawei.com>
+Date: Tue, 16 Oct 2018 23:00:36 +0800
+Subject: [PATCH 08/31] scsi: hisi_sas: Fix spin lock management in
+ slot_index_alloc_quirk_v2_hw()
+Origin: https://git.kernel.org/linus/fe5fb42de36227c1c2dbb1e7403329ec8a915c20
+
+Currently a spin_unlock_irqrestore() call is missing on the error path,
+so add it.
+
+Reported-by: Julia Lawall <julia.lawall@lip6.fr>
+Signed-off-by: John Garry <john.garry@huawei.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+---
+ drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+Index: linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
+===================================================================
+--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
++++ linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
+@@ -806,8 +806,10 @@ slot_index_alloc_quirk_v2_hw(struct hisi
+ while (1) {
+ start = find_next_zero_bit(bitmap,
+ hisi_hba->slot_index_count, start);
+- if (start >= end)
++ if (start >= end) {
++ spin_unlock_irqrestore(&hisi_hba->lock, flags);
+ return -SAS_QUEUE_FULL;
++ }
+ /*
+ * SAS IPTT bit0 should be 1, and SATA IPTT bit0 should be 0.
+ */
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0009-scsi-hisi_sas-use-dma_set_mask_and_coherent.patch b/debian/patches/bugfix/arm64/huawei-taishan/0009-scsi-hisi_sas-use-dma_set_mask_and_coherent.patch
new file mode 100644
index 000000000..9e466ba4c
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0009-scsi-hisi_sas-use-dma_set_mask_and_coherent.patch
@@ -0,0 +1,40 @@
+From 59bc5f2f2492ef9949cd723fc98bafa7d8a6c287 Mon Sep 17 00:00:00 2001
+From: Christoph Hellwig <hch@lst.de>
+Date: Thu, 18 Oct 2018 15:10:17 +0200
+Subject: [PATCH 09/31] scsi: hisi_sas: use dma_set_mask_and_coherent
+Origin: https://git.kernel.org/linus/e4db40e7a1a2cd6af3b6d5f8f3fba15533872398
+
+The driver currently uses pci_set_dma_mask despite otherwise using the
+generic DMA API. Switch it over to the better generic DMA API.
+
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+Acked-by: John Garry <john.garry@huawei.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+---
+ drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 13 +++++--------
+ 1 file changed, 5 insertions(+), 8 deletions(-)
+
+Index: linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+===================================================================
+--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
++++ linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+@@ -2199,14 +2199,11 @@ hisi_sas_v3_probe(struct pci_dev *pdev,
+ if (rc)
+ goto err_out_disable_device;
+
+- if ((pci_set_dma_mask(pdev, DMA_BIT_MASK(64)) != 0) ||
+- (pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)) != 0)) {
+- if ((pci_set_dma_mask(pdev, DMA_BIT_MASK(32)) != 0) ||
+- (pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)) != 0)) {
+- dev_err(dev, "No usable DMA addressing method\n");
+- rc = -EIO;
+- goto err_out_regions;
+- }
++ if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)) ||
++ dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32))) {
++ dev_err(dev, "No usable DMA addressing method\n");
++ rc = -EIO;
++ goto err_out_regions;
+ }
+
+ shost = hisi_sas_shost_alloc_pci(pdev);
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0010-scsi-hisi_sas-Create-separate-host-attributes-per-HB.patch b/debian/patches/bugfix/arm64/huawei-taishan/0010-scsi-hisi_sas-Create-separate-host-attributes-per-HB.patch
new file mode 100644
index 000000000..5bbf33aa2
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0010-scsi-hisi_sas-Create-separate-host-attributes-per-HB.patch
@@ -0,0 +1,116 @@
+From 4e63bca6e8c3a7fac800ee6c27f9afab13774fde Mon Sep 17 00:00:00 2001
+From: Xiang Chen <chenxiang66@hisilicon.com>
+Date: Fri, 9 Nov 2018 22:06:32 +0800
+Subject: [PATCH 10/31] scsi: hisi_sas: Create separate host attributes per HBA
+Origin: https://git.kernel.org/linus/c3566f9a617de3288739fd3b8e7539951bf2b04d
+
+Currently all the three HBA (v1/v2/v3 HW) share the same host attributes.
+
+To support each HBA having separate attributes in future, create per-HBA
+attributes.
+
+Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
+Signed-off-by: John Garry <john.garry@huawei.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+---
+ drivers/scsi/hisi_sas/hisi_sas.h | 1 -
+ drivers/scsi/hisi_sas/hisi_sas_main.c | 6 ------
+ drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 7 ++++++-
+ drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 7 ++++++-
+ drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 7 ++++++-
+ 5 files changed, 18 insertions(+), 10 deletions(-)
+
+--- a/drivers/scsi/hisi_sas/hisi_sas.h
++++ b/drivers/scsi/hisi_sas/hisi_sas.h
+@@ -468,7 +468,6 @@ extern int hisi_sas_remove(struct platfo
+ extern int hisi_sas_slave_configure(struct scsi_device *sdev);
+ extern int hisi_sas_scan_finished(struct Scsi_Host *shost, unsigned long time);
+ extern void hisi_sas_scan_start(struct Scsi_Host *shost);
+-extern struct device_attribute *host_attrs[];
+ extern int hisi_sas_host_reset(struct Scsi_Host *shost, int reset_type);
+ extern void hisi_sas_phy_down(struct hisi_hba *hisi_hba, int phy_no, int rdy);
+ extern void hisi_sas_slot_task_free(struct hisi_hba *hisi_hba,
+--- a/drivers/scsi/hisi_sas/hisi_sas_main.c
++++ b/drivers/scsi/hisi_sas/hisi_sas_main.c
+@@ -2021,12 +2021,6 @@ EXPORT_SYMBOL_GPL(hisi_sas_kill_tasklets
+ struct scsi_transport_template *hisi_sas_stt;
+ EXPORT_SYMBOL_GPL(hisi_sas_stt);
+
+-struct device_attribute *host_attrs[] = {
+- &dev_attr_phy_event_threshold,
+- NULL,
+-};
+-EXPORT_SYMBOL_GPL(host_attrs);
+-
+ static struct sas_domain_function_template hisi_sas_transport_ops = {
+ .lldd_dev_found = hisi_sas_dev_found,
+ .lldd_dev_gone = hisi_sas_dev_gone,
+--- a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
++++ b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
+@@ -1797,6 +1797,11 @@ static int hisi_sas_v1_init(struct hisi_
+ return 0;
+ }
+
++static struct device_attribute *host_attrs_v1_hw[] = {
++ &dev_attr_phy_event_threshold,
++ NULL
++};
++
+ static struct scsi_host_template sht_v1_hw = {
+ .name = DRV_NAME,
+ .module = THIS_MODULE,
+@@ -1816,7 +1821,7 @@ static struct scsi_host_template sht_v1_
+ .slave_alloc = sas_slave_alloc,
+ .target_destroy = sas_target_destroy,
+ .ioctl = sas_ioctl,
+- .shost_attrs = host_attrs,
++ .shost_attrs = host_attrs_v1_hw,
+ };
+
+ static const struct hisi_sas_hw hisi_sas_v1_hw = {
+--- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
++++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
+@@ -3552,6 +3552,11 @@ static void wait_cmds_complete_timeout_v
+ dev_dbg(dev, "wait commands complete %dms\n", time);
+ }
+
++struct device_attribute *host_attrs_v2_hw[] = {
++ &dev_attr_phy_event_threshold,
++ NULL
++};
++
+ static struct scsi_host_template sht_v2_hw = {
+ .name = DRV_NAME,
+ .module = THIS_MODULE,
+@@ -3571,7 +3576,7 @@ static struct scsi_host_template sht_v2_
+ .slave_alloc = sas_slave_alloc,
+ .target_destroy = sas_target_destroy,
+ .ioctl = sas_ioctl,
+- .shost_attrs = host_attrs,
++ .shost_attrs = host_attrs_v2_hw,
+ };
+
+ static const struct hisi_sas_hw hisi_sas_v2_hw = {
+--- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
++++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+@@ -2101,6 +2101,11 @@ static void wait_cmds_complete_timeout_v
+ dev_dbg(dev, "wait commands complete %dms\n", time);
+ }
+
++struct device_attribute *host_attrs_v3_hw[] = {
++ &dev_attr_phy_event_threshold,
++ NULL
++};
++
+ static struct scsi_host_template sht_v3_hw = {
+ .name = DRV_NAME,
+ .module = THIS_MODULE,
+@@ -2120,7 +2125,7 @@ static struct scsi_host_template sht_v3_
+ .slave_alloc = sas_slave_alloc,
+ .target_destroy = sas_target_destroy,
+ .ioctl = sas_ioctl,
+- .shost_attrs = host_attrs,
++ .shost_attrs = host_attrs_v3_hw,
+ .tag_alloc_policy = BLK_TAG_ALLOC_RR,
+ };
+
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0011-scsi-hisi_sas-Add-support-for-interrupt-converge-for.patch b/debian/patches/bugfix/arm64/huawei-taishan/0011-scsi-hisi_sas-Add-support-for-interrupt-converge-for.patch
new file mode 100644
index 000000000..ae1b2d718
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0011-scsi-hisi_sas-Add-support-for-interrupt-converge-for.patch
@@ -0,0 +1,113 @@
+From 7e5e4c2dfd67e156956e46c4d503466726a5359c Mon Sep 17 00:00:00 2001
+From: Xiang Chen <chenxiang66@hisilicon.com>
+Date: Fri, 9 Nov 2018 22:06:33 +0800
+Subject: [PATCH 11/31] scsi: hisi_sas: Add support for interrupt converge for
+ v3 hw
+Origin: https://git.kernel.org/linus/488cf558e3d7c95daf737d9cae165019ee3f2840
+
+If CQ_INT_CONVERGE_EN is enabled, the interrupts of all the 16 CQ queues
+will be reported by CQ0.
+
+So we need to change the process of CQ tasklet for this situation.
+
+Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
+Signed-off-by: John Garry <john.garry@huawei.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+---
+ drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 29 +++++++++++++++++++++-----
+ 1 file changed, 24 insertions(+), 5 deletions(-)
+
+Index: linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+===================================================================
+--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
++++ linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+@@ -42,6 +42,7 @@
+ #define MAX_CON_TIME_LIMIT_TIME 0xa4
+ #define BUS_INACTIVE_LIMIT_TIME 0xa8
+ #define REJECT_TO_OPEN_LIMIT_TIME 0xac
++#define CQ_INT_CONVERGE_EN 0xb0
+ #define CFG_AGING_TIME 0xbc
+ #define HGC_DFX_CFG2 0xc0
+ #define CFG_ABT_SET_QUERY_IPTT 0xd4
+@@ -371,6 +372,9 @@ struct hisi_sas_err_record_v3 {
+ ((fis.command == ATA_CMD_DEV_RESET) && \
+ ((fis.control & ATA_SRST) != 0)))
+
++static bool hisi_sas_intr_conv;
++MODULE_PARM_DESC(intr_conv, "interrupt converge enable (0-1)");
++
+ static u32 hisi_sas_read32(struct hisi_hba *hisi_hba, u32 off)
+ {
+ void __iomem *regs = hisi_hba->regs + off;
+@@ -436,6 +440,8 @@ static void init_reg_v3_hw(struct hisi_h
+ hisi_sas_write32(hisi_hba, INT_COAL_EN, 0x1);
+ hisi_sas_write32(hisi_hba, OQ_INT_COAL_TIME, 0x1);
+ hisi_sas_write32(hisi_hba, OQ_INT_COAL_CNT, 0x1);
++ hisi_sas_write32(hisi_hba, CQ_INT_CONVERGE_EN,
++ hisi_sas_intr_conv);
+ hisi_sas_write32(hisi_hba, OQ_INT_SRC, 0xffff);
+ hisi_sas_write32(hisi_hba, ENT_INT_SRC1, 0xffffffff);
+ hisi_sas_write32(hisi_hba, ENT_INT_SRC2, 0xffffffff);
+@@ -1878,10 +1884,12 @@ static int interrupt_init_v3_hw(struct h
+ for (i = 0; i < hisi_hba->queue_count; i++) {
+ struct hisi_sas_cq *cq = &hisi_hba->cq[i];
+ struct tasklet_struct *t = &cq->tasklet;
++ int nr = hisi_sas_intr_conv ? 16 : 16 + i;
++ unsigned long irqflags = hisi_sas_intr_conv ? IRQF_SHARED : 0;
+
+- rc = devm_request_irq(dev, pci_irq_vector(pdev, i+16),
+- cq_interrupt_v3_hw, 0,
+- DRV_NAME " cq", cq);
++ rc = devm_request_irq(dev, pci_irq_vector(pdev, nr),
++ cq_interrupt_v3_hw, irqflags,
++ DRV_NAME " cq", cq);
+ if (rc) {
+ dev_err(dev,
+ "could not request cq%d interrupt, rc=%d\n",
+@@ -1898,8 +1906,9 @@ static int interrupt_init_v3_hw(struct h
+ free_cq_irqs:
+ for (k = 0; k < i; k++) {
+ struct hisi_sas_cq *cq = &hisi_hba->cq[k];
++ int nr = hisi_sas_intr_conv ? 16 : 16 + k;
+
+- free_irq(pci_irq_vector(pdev, k+16), cq);
++ free_irq(pci_irq_vector(pdev, nr), cq);
+ }
+ free_irq(pci_irq_vector(pdev, 11), hisi_hba);
+ free_chnl_interrupt:
+@@ -2089,8 +2098,16 @@ static void wait_cmds_complete_timeout_v
+ dev_dbg(dev, "wait commands complete %dms\n", time);
+ }
+
++static ssize_t intr_conv_v3_hw_show(struct device *dev,
++ struct device_attribute *attr, char *buf)
++{
++ return scnprintf(buf, PAGE_SIZE, "%u\n", hisi_sas_intr_conv);
++}
++static DEVICE_ATTR_RO(intr_conv_v3_hw);
++
+ struct device_attribute *host_attrs_v3_hw[] = {
+ &dev_attr_phy_event_threshold,
++ &dev_attr_intr_conv_v3_hw,
+ NULL
+ };
+
+@@ -2303,8 +2320,9 @@ hisi_sas_v3_destroy_irqs(struct pci_dev
+ free_irq(pci_irq_vector(pdev, 11), hisi_hba);
+ for (i = 0; i < hisi_hba->queue_count; i++) {
+ struct hisi_sas_cq *cq = &hisi_hba->cq[i];
++ int nr = hisi_sas_intr_conv ? 16 : 16 + i;
+
+- free_irq(pci_irq_vector(pdev, i+16), cq);
++ free_irq(pci_irq_vector(pdev, nr), cq);
+ }
+ pci_free_irq_vectors(pdev);
+ }
+@@ -2626,6 +2644,7 @@ static struct pci_driver sas_v3_pci_driv
+ };
+
+ module_pci_driver(sas_v3_pci_driver);
++module_param_named(intr_conv, hisi_sas_intr_conv, bool, 0444);
+
+ MODULE_LICENSE("GPL");
+ MODULE_AUTHOR("John Garry <john.garry@huawei.com>");
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0012-scsi-hisi_sas-Add-support-for-interrupt-coalescing-f.patch b/debian/patches/bugfix/arm64/huawei-taishan/0012-scsi-hisi_sas-Add-support-for-interrupt-coalescing-f.patch
new file mode 100644
index 000000000..4595633a2
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0012-scsi-hisi_sas-Add-support-for-interrupt-coalescing-f.patch
@@ -0,0 +1,150 @@
+From 20ca5e4f2c4a2c08340225f074c56f7be1c86f5b Mon Sep 17 00:00:00 2001
+From: Xiang Chen <chenxiang66@hisilicon.com>
+Date: Fri, 9 Nov 2018 22:06:34 +0800
+Subject: [PATCH 12/31] scsi: hisi_sas: Add support for interrupt coalescing
+ for v3 hw
+Origin: https://git.kernel.org/linus/37359798ec44ae03fab383a9bef3b7c9df819063
+
+If INT_COAL_EN is enabled, configure time and count of interrupt
+coalescing. Then if CQ collects count of CQ entries in time, it will
+report the interrupt. Or if CQ doesn't collect enough CQ entries in time,
+it will report the interrupt at timeout.
+
+As all the registers are not supported to be changed dynamically, we need
+to config those register between disable and enable PHYs.
+
+Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
+Signed-off-by: John Garry <john.garry@huawei.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+---
+ drivers/scsi/hisi_sas/hisi_sas.h | 2 +
+ drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 100 +++++++++++++++++++++++++
+ 2 files changed, 102 insertions(+)
+
+Index: linux/drivers/scsi/hisi_sas/hisi_sas.h
+===================================================================
+--- linux.orig/drivers/scsi/hisi_sas/hisi_sas.h
++++ linux/drivers/scsi/hisi_sas/hisi_sas.h
+@@ -322,6 +322,8 @@ struct hisi_hba {
+ unsigned long sata_dev_bitmap[BITS_TO_LONGS(HISI_SAS_MAX_DEVICES)];
+ struct work_struct rst_work;
+ u32 phy_state;
++ u32 intr_coal_ticks; /* Time of interrupt coalesce in us */
++ u32 intr_coal_count; /* Interrupt count to coalesce */
+ };
+
+ /* Generic HW DMA host memory structures */
+Index: linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+===================================================================
+--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
++++ linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+@@ -2105,9 +2105,109 @@ static ssize_t intr_conv_v3_hw_show(stru
+ }
+ static DEVICE_ATTR_RO(intr_conv_v3_hw);
+
++static void config_intr_coal_v3_hw(struct hisi_hba *hisi_hba)
++{
++ /* config those registers between enable and disable PHYs */
++ hisi_sas_stop_phys(hisi_hba);
++
++ if (hisi_hba->intr_coal_ticks == 0 ||
++ hisi_hba->intr_coal_count == 0) {
++ hisi_sas_write32(hisi_hba, INT_COAL_EN, 0x1);
++ hisi_sas_write32(hisi_hba, OQ_INT_COAL_TIME, 0x1);
++ hisi_sas_write32(hisi_hba, OQ_INT_COAL_CNT, 0x1);
++ } else {
++ hisi_sas_write32(hisi_hba, INT_COAL_EN, 0x3);
++ hisi_sas_write32(hisi_hba, OQ_INT_COAL_TIME,
++ hisi_hba->intr_coal_ticks);
++ hisi_sas_write32(hisi_hba, OQ_INT_COAL_CNT,
++ hisi_hba->intr_coal_count);
++ }
++ phys_init_v3_hw(hisi_hba);
++}
++
++static ssize_t intr_coal_ticks_v3_hw_show(struct device *dev,
++ struct device_attribute *attr,
++ char *buf)
++{
++ struct Scsi_Host *shost = class_to_shost(dev);
++ struct hisi_hba *hisi_hba = shost_priv(shost);
++
++ return scnprintf(buf, PAGE_SIZE, "%u\n",
++ hisi_hba->intr_coal_ticks);
++}
++
++static ssize_t intr_coal_ticks_v3_hw_store(struct device *dev,
++ struct device_attribute *attr,
++ const char *buf, size_t count)
++{
++ struct Scsi_Host *shost = class_to_shost(dev);
++ struct hisi_hba *hisi_hba = shost_priv(shost);
++ u32 intr_coal_ticks;
++ int ret;
++
++ ret = kstrtou32(buf, 10, &intr_coal_ticks);
++ if (ret) {
++ dev_err(dev, "Input data of interrupt coalesce unmatch\n");
++ return -EINVAL;
++ }
++
++ if (intr_coal_ticks >= BIT(24)) {
++ dev_err(dev, "intr_coal_ticks must be less than 2^24!\n");
++ return -EINVAL;
++ }
++
++ hisi_hba->intr_coal_ticks = intr_coal_ticks;
++
++ config_intr_coal_v3_hw(hisi_hba);
++
++ return count;
++}
++static DEVICE_ATTR_RW(intr_coal_ticks_v3_hw);
++
++static ssize_t intr_coal_count_v3_hw_show(struct device *dev,
++ struct device_attribute
++ *attr, char *buf)
++{
++ struct Scsi_Host *shost = class_to_shost(dev);
++ struct hisi_hba *hisi_hba = shost_priv(shost);
++
++ return scnprintf(buf, PAGE_SIZE, "%u\n",
++ hisi_hba->intr_coal_count);
++}
++
++static ssize_t intr_coal_count_v3_hw_store(struct device *dev,
++ struct device_attribute
++ *attr, const char *buf, size_t count)
++{
++ struct Scsi_Host *shost = class_to_shost(dev);
++ struct hisi_hba *hisi_hba = shost_priv(shost);
++ u32 intr_coal_count;
++ int ret;
++
++ ret = kstrtou32(buf, 10, &intr_coal_count);
++ if (ret) {
++ dev_err(dev, "Input data of interrupt coalesce unmatch\n");
++ return -EINVAL;
++ }
++
++ if (intr_coal_count >= BIT(8)) {
++ dev_err(dev, "intr_coal_count must be less than 2^8!\n");
++ return -EINVAL;
++ }
++
++ hisi_hba->intr_coal_count = intr_coal_count;
++
++ config_intr_coal_v3_hw(hisi_hba);
++
++ return count;
++}
++static DEVICE_ATTR_RW(intr_coal_count_v3_hw);
++
+ struct device_attribute *host_attrs_v3_hw[] = {
+ &dev_attr_phy_event_threshold,
+ &dev_attr_intr_conv_v3_hw,
++ &dev_attr_intr_coal_ticks_v3_hw,
++ &dev_attr_intr_coal_count_v3_hw,
+ NULL
+ };
+
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0013-scsi-hisi_sas-Relocate-some-codes-to-avoid-an-unused.patch b/debian/patches/bugfix/arm64/huawei-taishan/0013-scsi-hisi_sas-Relocate-some-codes-to-avoid-an-unused.patch
new file mode 100644
index 000000000..060fbcfb8
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0013-scsi-hisi_sas-Relocate-some-codes-to-avoid-an-unused.patch
@@ -0,0 +1,92 @@
+From 22834ed6cec2690817120e960d43bbf76ddfda17 Mon Sep 17 00:00:00 2001
+From: Xiang Chen <chenxiang66@hisilicon.com>
+Date: Fri, 9 Nov 2018 22:06:35 +0800
+Subject: [PATCH 13/31] scsi: hisi_sas: Relocate some codes to avoid an unused
+ check
+Origin: https://git.kernel.org/linus/745b6847634c11dda1079d0290781a443eddb4b7
+
+In function hisi_sas_task_prep(), we check asd_sas_port, but in function
+hisi_sas_task_exec(), we already refer to asd_sas_port by using function
+dev_to_hisi_hba() implicitly. So to avoid this possible invalid
+dereference, relocate the check to function hisi_sas_task_prep().
+
+Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
+Signed-off-by: John Garry <john.garry@huawei.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+---
+ drivers/scsi/hisi_sas/hisi_sas_main.c | 44 ++++++++++++++-------------
+ 1 file changed, 23 insertions(+), 21 deletions(-)
+
+--- a/drivers/scsi/hisi_sas/hisi_sas_main.c
++++ b/drivers/scsi/hisi_sas/hisi_sas_main.c
+@@ -303,36 +303,19 @@ static int hisi_sas_task_prep(struct sas
+ int *pass)
+ {
+ struct domain_device *device = task->dev;
+- struct hisi_hba *hisi_hba;
++ struct hisi_hba *hisi_hba = dev_to_hisi_hba(device);
+ struct hisi_sas_device *sas_dev = device->lldd_dev;
+ struct hisi_sas_port *port;
+ struct hisi_sas_slot *slot;
+ struct hisi_sas_cmd_hdr *cmd_hdr_base;
+ struct asd_sas_port *sas_port = device->port;
+- struct device *dev;
++ struct device *dev = hisi_hba->dev;
+ int dlvry_queue_slot, dlvry_queue, rc, slot_idx;
+ int n_elem = 0, n_elem_req = 0, n_elem_resp = 0;
+ struct hisi_sas_dq *dq;
+ unsigned long flags;
+ int wr_q_index;
+
+- if (!sas_port) {
+- struct task_status_struct *ts = &task->task_status;
+-
+- ts->resp = SAS_TASK_UNDELIVERED;
+- ts->stat = SAS_PHY_DOWN;
+- /*
+- * libsas will use dev->port, should
+- * not call task_done for sata
+- */
+- if (device->dev_type != SAS_SATA_DEV)
+- task->task_done(task);
+- return -ECOMM;
+- }
+-
+- hisi_hba = dev_to_hisi_hba(device);
+- dev = hisi_hba->dev;
+-
+ if (DEV_IS_GONE(sas_dev)) {
+ if (sas_dev)
+ dev_info(dev, "task prep: device %d not ready\n",
+@@ -507,10 +490,29 @@ static int hisi_sas_task_exec(struct sas
+ u32 rc;
+ u32 pass = 0;
+ unsigned long flags;
+- struct hisi_hba *hisi_hba = dev_to_hisi_hba(task->dev);
+- struct device *dev = hisi_hba->dev;
++ struct hisi_hba *hisi_hba;
++ struct device *dev;
++ struct domain_device *device = task->dev;
++ struct asd_sas_port *sas_port = device->port;
+ struct hisi_sas_dq *dq = NULL;
+
++ if (!sas_port) {
++ struct task_status_struct *ts = &task->task_status;
++
++ ts->resp = SAS_TASK_UNDELIVERED;
++ ts->stat = SAS_PHY_DOWN;
++ /*
++ * libsas will use dev->port, should
++ * not call task_done for sata
++ */
++ if (device->dev_type != SAS_SATA_DEV)
++ task->task_done(task);
++ return -ECOMM;
++ }
++
++ hisi_hba = dev_to_hisi_hba(device);
++ dev = hisi_hba->dev;
++
+ if (unlikely(test_bit(HISI_SAS_REJECT_CMD_BIT, &hisi_hba->flags))) {
+ /*
+ * For IOs from upper layer, it may already disable preempt
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0014-scsi-hisi_sas-Fix-warnings-detected-by-sparse.patch b/debian/patches/bugfix/arm64/huawei-taishan/0014-scsi-hisi_sas-Fix-warnings-detected-by-sparse.patch
new file mode 100644
index 000000000..1f9ed71c0
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0014-scsi-hisi_sas-Fix-warnings-detected-by-sparse.patch
@@ -0,0 +1,429 @@
+From 13dda01985003ca1b930b42bb3927f7522f4ce69 Mon Sep 17 00:00:00 2001
+From: John Garry <john.garry@huawei.com>
+Date: Thu, 6 Dec 2018 21:34:40 +0800
+Subject: [PATCH 14/31] scsi: hisi_sas: Fix warnings detected by sparse
+Origin: https://git.kernel.org/linus/735bcc77e6ba83e464665cea9041072190ede37e
+
+This patchset fixes some warnings detected by the sparse tool, like these:
+drivers/scsi/hisi_sas/hisi_sas_main.c:1469:52: warning: incorrect type in assignment (different base types)
+drivers/scsi/hisi_sas/hisi_sas_main.c:1469:52: expected unsigned short [unsigned] [assigned] [usertype] tag_of_task_to_be_managed
+drivers/scsi/hisi_sas/hisi_sas_main.c:1469:52: got restricted __le16 [usertype] <noident>
+drivers/scsi/hisi_sas/hisi_sas_main.c:1723:52: warning: incorrect type in assignment (different base types)
+drivers/scsi/hisi_sas/hisi_sas_main.c:1723:52: expected unsigned short [unsigned] [assigned] [usertype] tag_of_task_to_be_managed
+drivers/scsi/hisi_sas/hisi_sas_main.c:1723:52: got restricted __le16 [usertype] <noident>
+
+Signed-off-by: John Garry <john.garry@huawei.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+---
+ drivers/scsi/hisi_sas/hisi_sas.h | 2 +-
+ drivers/scsi/hisi_sas/hisi_sas_main.c | 6 +--
+ drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 15 +++---
+ drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 66 +++++++++++++++-----------
+ drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 37 +++++++++------
+ 5 files changed, 71 insertions(+), 55 deletions(-)
+
+Index: linux/drivers/scsi/hisi_sas/hisi_sas.h
+===================================================================
+--- linux.orig/drivers/scsi/hisi_sas/hisi_sas.h
++++ linux/drivers/scsi/hisi_sas/hisi_sas.h
+@@ -211,7 +211,7 @@ struct hisi_sas_slot {
+ /* Do not reorder/change members after here */
+ void *buf;
+ dma_addr_t buf_dma;
+- int idx;
++ u16 idx;
+ };
+
+ struct hisi_sas_hw {
+Index: linux/drivers/scsi/hisi_sas/hisi_sas_main.c
+===================================================================
+--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_main.c
++++ linux/drivers/scsi/hisi_sas/hisi_sas_main.c
+@@ -1463,12 +1463,12 @@ static int hisi_sas_abort_task(struct sa
+ if (task->lldd_task && task->task_proto & SAS_PROTOCOL_SSP) {
+ struct scsi_cmnd *cmnd = task->uldd_task;
+ struct hisi_sas_slot *slot = task->lldd_task;
+- u32 tag = slot->idx;
++ u16 tag = slot->idx;
+ int rc2;
+
+ int_to_scsilun(cmnd->device->lun, &lun);
+ tmf_task.tmf = TMF_ABORT_TASK;
+- tmf_task.tag_of_task_to_be_managed = cpu_to_le16(tag);
++ tmf_task.tag_of_task_to_be_managed = tag;
+
+ rc = hisi_sas_debug_issue_ssp_tmf(task->dev, lun.scsi_lun,
+ &tmf_task);
+@@ -1722,7 +1722,7 @@ static int hisi_sas_query_task(struct sa
+
+ int_to_scsilun(cmnd->device->lun, &lun);
+ tmf_task.tmf = TMF_QUERY_TASK;
+- tmf_task.tag_of_task_to_be_managed = cpu_to_le16(tag);
++ tmf_task.tag_of_task_to_be_managed = tag;
+
+ rc = hisi_sas_debug_issue_ssp_tmf(device,
+ lun.scsi_lun,
+Index: linux/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
+===================================================================
+--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
++++ linux/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
+@@ -510,6 +510,7 @@ static void setup_itct_v1_hw(struct hisi
+ struct hisi_sas_itct *itct = &hisi_hba->itct[device_id];
+ struct asd_sas_port *sas_port = device->port;
+ struct hisi_sas_port *port = to_hisi_sas_port(sas_port);
++ u64 sas_addr;
+
+ memset(itct, 0, sizeof(*itct));
+
+@@ -534,8 +535,8 @@ static void setup_itct_v1_hw(struct hisi
+ itct->qw0 = cpu_to_le64(qw0);
+
+ /* qw1 */
+- memcpy(&itct->sas_addr, device->sas_addr, SAS_ADDR_SIZE);
+- itct->sas_addr = __swab64(itct->sas_addr);
++ memcpy(&sas_addr, device->sas_addr, SAS_ADDR_SIZE);
++ itct->sas_addr = cpu_to_le64(__swab64(sas_addr));
+
+ /* qw2 */
+ itct->qw2 = cpu_to_le64((500ULL << ITCT_HDR_IT_NEXUS_LOSS_TL_OFF) |
+@@ -561,7 +562,7 @@ static void clear_itct_v1_hw(struct hisi
+ reg_val &= ~CFG_AGING_TIME_ITCT_REL_MSK;
+ hisi_sas_write32(hisi_hba, CFG_AGING_TIME, reg_val);
+
+- qw0 = cpu_to_le64(itct->qw0);
++ qw0 = le64_to_cpu(itct->qw0);
+ qw0 &= ~ITCT_HDR_VALID_MSK;
+ itct->qw0 = cpu_to_le64(qw0);
+ }
+@@ -1100,7 +1101,7 @@ static void slot_err_v1_hw(struct hisi_h
+ case SAS_PROTOCOL_SSP:
+ {
+ int error = -1;
+- u32 dma_err_type = cpu_to_le32(err_record->dma_err_type);
++ u32 dma_err_type = le32_to_cpu(err_record->dma_err_type);
+ u32 dma_tx_err_type = ((dma_err_type &
+ ERR_HDR_DMA_TX_ERR_TYPE_MSK)) >>
+ ERR_HDR_DMA_TX_ERR_TYPE_OFF;
+@@ -1108,9 +1109,9 @@ static void slot_err_v1_hw(struct hisi_h
+ ERR_HDR_DMA_RX_ERR_TYPE_MSK)) >>
+ ERR_HDR_DMA_RX_ERR_TYPE_OFF;
+ u32 trans_tx_fail_type =
+- cpu_to_le32(err_record->trans_tx_fail_type);
++ le32_to_cpu(err_record->trans_tx_fail_type);
+ u32 trans_rx_fail_type =
+- cpu_to_le32(err_record->trans_rx_fail_type);
++ le32_to_cpu(err_record->trans_rx_fail_type);
+
+ if (dma_tx_err_type) {
+ /* dma tx err */
+@@ -1558,7 +1559,7 @@ static irqreturn_t cq_interrupt_v1_hw(in
+ u32 cmplt_hdr_data;
+
+ complete_hdr = &complete_queue[rd_point];
+- cmplt_hdr_data = cpu_to_le32(complete_hdr->data);
++ cmplt_hdr_data = le32_to_cpu(complete_hdr->data);
+ idx = (cmplt_hdr_data & CMPLT_HDR_IPTT_MSK) >>
+ CMPLT_HDR_IPTT_OFF;
+ slot = &hisi_hba->slot_info[idx];
+Index: linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
+===================================================================
+--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
++++ linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
+@@ -934,6 +934,7 @@ static void setup_itct_v2_hw(struct hisi
+ struct domain_device *parent_dev = device->parent;
+ struct asd_sas_port *sas_port = device->port;
+ struct hisi_sas_port *port = to_hisi_sas_port(sas_port);
++ u64 sas_addr;
+
+ memset(itct, 0, sizeof(*itct));
+
+@@ -966,8 +967,8 @@ static void setup_itct_v2_hw(struct hisi
+ itct->qw0 = cpu_to_le64(qw0);
+
+ /* qw1 */
+- memcpy(&itct->sas_addr, device->sas_addr, SAS_ADDR_SIZE);
+- itct->sas_addr = __swab64(itct->sas_addr);
++ memcpy(&sas_addr, device->sas_addr, SAS_ADDR_SIZE);
++ itct->sas_addr = cpu_to_le64(__swab64(sas_addr));
+
+ /* qw2 */
+ if (!dev_is_sata(device))
+@@ -2044,11 +2045,11 @@ static void slot_err_v2_hw(struct hisi_h
+ struct task_status_struct *ts = &task->task_status;
+ struct hisi_sas_err_record_v2 *err_record =
+ hisi_sas_status_buf_addr_mem(slot);
+- u32 trans_tx_fail_type = cpu_to_le32(err_record->trans_tx_fail_type);
+- u32 trans_rx_fail_type = cpu_to_le32(err_record->trans_rx_fail_type);
+- u16 dma_tx_err_type = cpu_to_le16(err_record->dma_tx_err_type);
+- u16 sipc_rx_err_type = cpu_to_le16(err_record->sipc_rx_err_type);
+- u32 dma_rx_err_type = cpu_to_le32(err_record->dma_rx_err_type);
++ u32 trans_tx_fail_type = le32_to_cpu(err_record->trans_tx_fail_type);
++ u32 trans_rx_fail_type = le32_to_cpu(err_record->trans_rx_fail_type);
++ u16 dma_tx_err_type = le16_to_cpu(err_record->dma_tx_err_type);
++ u16 sipc_rx_err_type = le16_to_cpu(err_record->sipc_rx_err_type);
++ u32 dma_rx_err_type = le32_to_cpu(err_record->dma_rx_err_type);
+ int error = -1;
+
+ if (err_phase == 1) {
+@@ -2059,8 +2060,7 @@ static void slot_err_v2_hw(struct hisi_h
+ trans_tx_fail_type);
+ } else if (err_phase == 2) {
+ /* error in RX phase, the priority is: DW1 > DW3 > DW2 */
+- error = parse_trans_rx_err_code_v2_hw(
+- trans_rx_fail_type);
++ error = parse_trans_rx_err_code_v2_hw(trans_rx_fail_type);
+ if (error == -1) {
+ error = parse_dma_rx_err_code_v2_hw(
+ dma_rx_err_type);
+@@ -2358,6 +2358,7 @@ slot_complete_v2_hw(struct hisi_hba *his
+ &complete_queue[slot->cmplt_queue_slot];
+ unsigned long flags;
+ bool is_internal = slot->is_internal;
++ u32 dw0;
+
+ if (unlikely(!task || !task->lldd_task || !task->dev))
+ return -EINVAL;
+@@ -2382,8 +2383,9 @@ slot_complete_v2_hw(struct hisi_hba *his
+ }
+
+ /* Use SAS+TMF status codes */
+- switch ((complete_hdr->dw0 & CMPLT_HDR_ABORT_STAT_MSK)
+- >> CMPLT_HDR_ABORT_STAT_OFF) {
++ dw0 = le32_to_cpu(complete_hdr->dw0);
++ switch ((dw0 & CMPLT_HDR_ABORT_STAT_MSK) >>
++ CMPLT_HDR_ABORT_STAT_OFF) {
+ case STAT_IO_ABORTED:
+ /* this io has been aborted by abort command */
+ ts->stat = SAS_ABORTED_TASK;
+@@ -2408,9 +2410,8 @@ slot_complete_v2_hw(struct hisi_hba *his
+ break;
+ }
+
+- if ((complete_hdr->dw0 & CMPLT_HDR_ERX_MSK) &&
+- (!(complete_hdr->dw0 & CMPLT_HDR_RSPNS_XFRD_MSK))) {
+- u32 err_phase = (complete_hdr->dw0 & CMPLT_HDR_ERR_PHASE_MSK)
++ if ((dw0 & CMPLT_HDR_ERX_MSK) && (!(dw0 & CMPLT_HDR_RSPNS_XFRD_MSK))) {
++ u32 err_phase = (dw0 & CMPLT_HDR_ERR_PHASE_MSK)
+ >> CMPLT_HDR_ERR_PHASE_OFF;
+ u32 *error_info = hisi_sas_status_buf_addr_mem(slot);
+
+@@ -2526,22 +2527,23 @@ static void prep_ata_v2_hw(struct hisi_h
+ struct hisi_sas_tmf_task *tmf = slot->tmf;
+ u8 *buf_cmd;
+ int has_data = 0, hdr_tag = 0;
+- u32 dw1 = 0, dw2 = 0;
++ u32 dw0, dw1 = 0, dw2 = 0;
+
+ /* create header */
+ /* dw0 */
+- hdr->dw0 = cpu_to_le32(port->id << CMD_HDR_PORT_OFF);
++ dw0 = port->id << CMD_HDR_PORT_OFF;
+ if (parent_dev && DEV_IS_EXPANDER(parent_dev->dev_type))
+- hdr->dw0 |= cpu_to_le32(3 << CMD_HDR_CMD_OFF);
++ dw0 |= 3 << CMD_HDR_CMD_OFF;
+ else
+- hdr->dw0 |= cpu_to_le32(4 << CMD_HDR_CMD_OFF);
++ dw0 |= 4 << CMD_HDR_CMD_OFF;
+
+ if (tmf && tmf->force_phy) {
+- hdr->dw0 |= CMD_HDR_FORCE_PHY_MSK;
+- hdr->dw0 |= cpu_to_le32((1 << tmf->phy_id)
+- << CMD_HDR_PHY_ID_OFF);
++ dw0 |= CMD_HDR_FORCE_PHY_MSK;
++ dw0 |= (1 << tmf->phy_id) << CMD_HDR_PHY_ID_OFF;
+ }
+
++ hdr->dw0 = cpu_to_le32(dw0);
++
+ /* dw1 */
+ switch (task->data_dir) {
+ case DMA_TO_DEVICE:
+@@ -3152,20 +3154,24 @@ static void cq_tasklet_v2_hw(unsigned lo
+
+ /* Check for NCQ completion */
+ if (complete_hdr->act) {
+- u32 act_tmp = complete_hdr->act;
++ u32 act_tmp = le32_to_cpu(complete_hdr->act);
+ int ncq_tag_count = ffs(act_tmp);
++ u32 dw1 = le32_to_cpu(complete_hdr->dw1);
+
+- dev_id = (complete_hdr->dw1 & CMPLT_HDR_DEV_ID_MSK) >>
++ dev_id = (dw1 & CMPLT_HDR_DEV_ID_MSK) >>
+ CMPLT_HDR_DEV_ID_OFF;
+ itct = &hisi_hba->itct[dev_id];
+
+ /* The NCQ tags are held in the itct header */
+ while (ncq_tag_count) {
+- __le64 *ncq_tag = &itct->qw4_15[0];
++ __le64 *_ncq_tag = &itct->qw4_15[0], __ncq_tag;
++ u64 ncq_tag;
+
+- ncq_tag_count -= 1;
+- iptt = (ncq_tag[ncq_tag_count / 5]
+- >> (ncq_tag_count % 5) * 12) & 0xfff;
++ ncq_tag_count--;
++ __ncq_tag = _ncq_tag[ncq_tag_count / 5];
++ ncq_tag = le64_to_cpu(__ncq_tag);
++ iptt = (ncq_tag >> (ncq_tag_count % 5) * 12) &
++ 0xfff;
+
+ slot = &hisi_hba->slot_info[iptt];
+ slot->cmplt_queue_slot = rd_point;
+@@ -3176,7 +3182,9 @@ static void cq_tasklet_v2_hw(unsigned lo
+ ncq_tag_count = ffs(act_tmp);
+ }
+ } else {
+- iptt = (complete_hdr->dw1) & CMPLT_HDR_IPTT_MSK;
++ u32 dw1 = le32_to_cpu(complete_hdr->dw1);
++
++ iptt = dw1 & CMPLT_HDR_IPTT_MSK;
+ slot = &hisi_hba->slot_info[iptt];
+ slot->cmplt_queue_slot = rd_point;
+ slot->cmplt_queue = queue;
+@@ -3552,7 +3560,7 @@ static void wait_cmds_complete_timeout_v
+ dev_dbg(dev, "wait commands complete %dms\n", time);
+ }
+
+-struct device_attribute *host_attrs_v2_hw[] = {
++static struct device_attribute *host_attrs_v2_hw[] = {
+ &dev_attr_phy_event_threshold,
+ NULL
+ };
+Index: linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+===================================================================
+--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
++++ linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+@@ -628,6 +628,7 @@ static void setup_itct_v3_hw(struct hisi
+ struct domain_device *parent_dev = device->parent;
+ struct asd_sas_port *sas_port = device->port;
+ struct hisi_sas_port *port = to_hisi_sas_port(sas_port);
++ u64 sas_addr;
+
+ memset(itct, 0, sizeof(*itct));
+
+@@ -660,8 +661,8 @@ static void setup_itct_v3_hw(struct hisi
+ itct->qw0 = cpu_to_le64(qw0);
+
+ /* qw1 */
+- memcpy(&itct->sas_addr, device->sas_addr, SAS_ADDR_SIZE);
+- itct->sas_addr = __swab64(itct->sas_addr);
++ memcpy(&sas_addr, device->sas_addr, SAS_ADDR_SIZE);
++ itct->sas_addr = cpu_to_le64(__swab64(sas_addr));
+
+ /* qw2 */
+ if (!dev_is_sata(device))
+@@ -1590,15 +1591,16 @@ slot_err_v3_hw(struct hisi_hba *hisi_hba
+ &complete_queue[slot->cmplt_queue_slot];
+ struct hisi_sas_err_record_v3 *record =
+ hisi_sas_status_buf_addr_mem(slot);
+- u32 dma_rx_err_type = record->dma_rx_err_type;
+- u32 trans_tx_fail_type = record->trans_tx_fail_type;
++ u32 dma_rx_err_type = le32_to_cpu(record->dma_rx_err_type);
++ u32 trans_tx_fail_type = le32_to_cpu(record->trans_tx_fail_type);
++ u32 dw3 = le32_to_cpu(complete_hdr->dw3);
+
+ switch (task->task_proto) {
+ case SAS_PROTOCOL_SSP:
+ if (dma_rx_err_type & RX_DATA_LEN_UNDERFLOW_MSK) {
+ ts->residual = trans_tx_fail_type;
+ ts->stat = SAS_DATA_UNDERRUN;
+- } else if (complete_hdr->dw3 & CMPLT_HDR_IO_IN_TARGET_MSK) {
++ } else if (dw3 & CMPLT_HDR_IO_IN_TARGET_MSK) {
+ ts->stat = SAS_QUEUE_FULL;
+ slot->abort = 1;
+ } else {
+@@ -1612,7 +1614,7 @@ slot_err_v3_hw(struct hisi_hba *hisi_hba
+ if (dma_rx_err_type & RX_DATA_LEN_UNDERFLOW_MSK) {
+ ts->residual = trans_tx_fail_type;
+ ts->stat = SAS_DATA_UNDERRUN;
+- } else if (complete_hdr->dw3 & CMPLT_HDR_IO_IN_TARGET_MSK) {
++ } else if (dw3 & CMPLT_HDR_IO_IN_TARGET_MSK) {
+ ts->stat = SAS_PHY_DOWN;
+ slot->abort = 1;
+ } else {
+@@ -1645,6 +1647,7 @@ slot_complete_v3_hw(struct hisi_hba *his
+ &complete_queue[slot->cmplt_queue_slot];
+ unsigned long flags;
+ bool is_internal = slot->is_internal;
++ u32 dw0, dw1, dw3;
+
+ if (unlikely(!task || !task->lldd_task || !task->dev))
+ return -EINVAL;
+@@ -1668,11 +1671,14 @@ slot_complete_v3_hw(struct hisi_hba *his
+ goto out;
+ }
+
++ dw0 = le32_to_cpu(complete_hdr->dw0);
++ dw1 = le32_to_cpu(complete_hdr->dw1);
++ dw3 = le32_to_cpu(complete_hdr->dw3);
++
+ /*
+ * Use SAS+TMF status codes
+ */
+- switch ((complete_hdr->dw0 & CMPLT_HDR_ABORT_STAT_MSK)
+- >> CMPLT_HDR_ABORT_STAT_OFF) {
++ switch ((dw0 & CMPLT_HDR_ABORT_STAT_MSK) >> CMPLT_HDR_ABORT_STAT_OFF) {
+ case STAT_IO_ABORTED:
+ /* this IO has been aborted by abort command */
+ ts->stat = SAS_ABORTED_TASK;
+@@ -1695,7 +1701,7 @@ slot_complete_v3_hw(struct hisi_hba *his
+ }
+
+ /* check for erroneous completion */
+- if ((complete_hdr->dw0 & CMPLT_HDR_CMPLT_MSK) == 0x3) {
++ if ((dw0 & CMPLT_HDR_CMPLT_MSK) == 0x3) {
+ u32 *error_info = hisi_sas_status_buf_addr_mem(slot);
+
+ slot_err_v3_hw(hisi_hba, task, slot);
+@@ -1704,8 +1710,7 @@ slot_complete_v3_hw(struct hisi_hba *his
+ "CQ hdr: 0x%x 0x%x 0x%x 0x%x "
+ "Error info: 0x%x 0x%x 0x%x 0x%x\n",
+ slot->idx, task, sas_dev->device_id,
+- complete_hdr->dw0, complete_hdr->dw1,
+- complete_hdr->act, complete_hdr->dw3,
++ dw0, dw1, complete_hdr->act, dw3,
+ error_info[0], error_info[1],
+ error_info[2], error_info[3]);
+ if (unlikely(slot->abort))
+@@ -1803,11 +1808,13 @@ static void cq_tasklet_v3_hw(unsigned lo
+ while (rd_point != wr_point) {
+ struct hisi_sas_complete_v3_hdr *complete_hdr;
+ struct device *dev = hisi_hba->dev;
++ u32 dw1;
+ int iptt;
+
+ complete_hdr = &complete_queue[rd_point];
++ dw1 = le32_to_cpu(complete_hdr->dw1);
+
+- iptt = (complete_hdr->dw1) & CMPLT_HDR_IPTT_MSK;
++ iptt = dw1 & CMPLT_HDR_IPTT_MSK;
+ if (likely(iptt < HISI_SAS_COMMAND_ENTRIES_V3_HW)) {
+ slot = &hisi_hba->slot_info[iptt];
+ slot->cmplt_queue_slot = rd_point;
+@@ -2203,7 +2210,7 @@ static ssize_t intr_coal_count_v3_hw_sto
+ }
+ static DEVICE_ATTR_RW(intr_coal_count_v3_hw);
+
+-struct device_attribute *host_attrs_v3_hw[] = {
++static struct device_attribute *host_attrs_v3_hw[] = {
+ &dev_attr_phy_event_threshold,
+ &dev_attr_intr_conv_v3_hw,
+ &dev_attr_intr_coal_ticks_v3_hw,
+@@ -2649,7 +2656,7 @@ static int hisi_sas_v3_suspend(struct pc
+ struct hisi_hba *hisi_hba = sha->lldd_ha;
+ struct device *dev = hisi_hba->dev;
+ struct Scsi_Host *shost = hisi_hba->shost;
+- u32 device_state;
++ pci_power_t device_state;
+ int rc;
+
+ if (!pdev->pm_cap) {
+@@ -2695,7 +2702,7 @@ static int hisi_sas_v3_resume(struct pci
+ struct Scsi_Host *shost = hisi_hba->shost;
+ struct device *dev = hisi_hba->dev;
+ unsigned int rc;
+- u32 device_state = pdev->current_state;
++ pci_power_t device_state = pdev->current_state;
+
+ dev_warn(dev, "resuming from operating state [D%d]\n",
+ device_state);
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0015-scsi-hisi_sas-Relocate-some-code-to-reduce-complexit.patch b/debian/patches/bugfix/arm64/huawei-taishan/0015-scsi-hisi_sas-Relocate-some-code-to-reduce-complexit.patch
new file mode 100644
index 000000000..1e44aa3b8
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0015-scsi-hisi_sas-Relocate-some-code-to-reduce-complexit.patch
@@ -0,0 +1,187 @@
+From 9e9903e8e143c32498565cb49a7aab6081734782 Mon Sep 17 00:00:00 2001
+From: Xiang Chen <chenxiang66@hisilicon.com>
+Date: Thu, 6 Dec 2018 21:34:41 +0800
+Subject: [PATCH 15/31] scsi: hisi_sas: Relocate some code to reduce complexity
+Origin: https://git.kernel.org/linus/6e1b731b535231e199c7810451c851398afccd33
+
+Relocate the codes related to dma_map/unmap in hisi_sas_task_prep() to
+reduce complexity, with a view to add DIF/DIX support.
+
+Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
+Signed-off-by: John Garry <john.garry@huawei.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+---
+ drivers/scsi/hisi_sas/hisi_sas_main.c | 146 ++++++++++++++++----------
+ 1 file changed, 90 insertions(+), 56 deletions(-)
+
+Index: linux/drivers/scsi/hisi_sas/hisi_sas_main.c
+===================================================================
+--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_main.c
++++ linux/drivers/scsi/hisi_sas/hisi_sas_main.c
+@@ -297,6 +297,90 @@ static void hisi_sas_task_prep_abort(str
+ device_id, abort_flag, tag_to_abort);
+ }
+
++static void hisi_sas_dma_unmap(struct hisi_hba *hisi_hba,
++ struct sas_task *task, int n_elem,
++ int n_elem_req, int n_elem_resp)
++{
++ struct device *dev = hisi_hba->dev;
++
++ if (!sas_protocol_ata(task->task_proto)) {
++ if (task->num_scatter) {
++ if (n_elem)
++ dma_unmap_sg(dev, task->scatter,
++ task->num_scatter,
++ task->data_dir);
++ } else if (task->task_proto & SAS_PROTOCOL_SMP) {
++ if (n_elem_req)
++ dma_unmap_sg(dev, &task->smp_task.smp_req,
++ 1, DMA_TO_DEVICE);
++ if (n_elem_resp)
++ dma_unmap_sg(dev, &task->smp_task.smp_resp,
++ 1, DMA_FROM_DEVICE);
++ }
++ }
++}
++
++static int hisi_sas_dma_map(struct hisi_hba *hisi_hba,
++ struct sas_task *task, int *n_elem,
++ int *n_elem_req, int *n_elem_resp)
++{
++ struct device *dev = hisi_hba->dev;
++ int rc;
++
++ if (sas_protocol_ata(task->task_proto)) {
++ *n_elem = task->num_scatter;
++ } else {
++ unsigned int req_len, resp_len;
++
++ if (task->num_scatter) {
++ *n_elem = dma_map_sg(dev, task->scatter,
++ task->num_scatter, task->data_dir);
++ if (!*n_elem) {
++ rc = -ENOMEM;
++ goto prep_out;
++ }
++ } else if (task->task_proto & SAS_PROTOCOL_SMP) {
++ *n_elem_req = dma_map_sg(dev, &task->smp_task.smp_req,
++ 1, DMA_TO_DEVICE);
++ if (!*n_elem_req) {
++ rc = -ENOMEM;
++ goto prep_out;
++ }
++ req_len = sg_dma_len(&task->smp_task.smp_req);
++ if (req_len & 0x3) {
++ rc = -EINVAL;
++ goto err_out_dma_unmap;
++ }
++ *n_elem_resp = dma_map_sg(dev, &task->smp_task.smp_resp,
++ 1, DMA_FROM_DEVICE);
++ if (!*n_elem_resp) {
++ rc = -ENOMEM;
++ goto err_out_dma_unmap;
++ }
++ resp_len = sg_dma_len(&task->smp_task.smp_resp);
++ if (resp_len & 0x3) {
++ rc = -EINVAL;
++ goto err_out_dma_unmap;
++ }
++ }
++ }
++
++ if (*n_elem > HISI_SAS_SGE_PAGE_CNT) {
++ dev_err(dev, "task prep: n_elem(%d) > HISI_SAS_SGE_PAGE_CNT",
++ *n_elem);
++ rc = -EINVAL;
++ goto err_out_dma_unmap;
++ }
++ return 0;
++
++err_out_dma_unmap:
++ /* It would be better to call dma_unmap_sg() here, but it's messy */
++ hisi_sas_dma_unmap(hisi_hba, task, *n_elem,
++ *n_elem_req, *n_elem_resp);
++prep_out:
++ return rc;
++}
++
+ static int hisi_sas_task_prep(struct sas_task *task,
+ struct hisi_sas_dq **dq_pointer,
+ bool is_tmf, struct hisi_sas_tmf_task *tmf,
+@@ -339,49 +423,10 @@ static int hisi_sas_task_prep(struct sas
+ return -ECOMM;
+ }
+
+- if (!sas_protocol_ata(task->task_proto)) {
+- unsigned int req_len, resp_len;
+-
+- if (task->num_scatter) {
+- n_elem = dma_map_sg(dev, task->scatter,
+- task->num_scatter, task->data_dir);
+- if (!n_elem) {
+- rc = -ENOMEM;
+- goto prep_out;
+- }
+- } else if (task->task_proto & SAS_PROTOCOL_SMP) {
+- n_elem_req = dma_map_sg(dev, &task->smp_task.smp_req,
+- 1, DMA_TO_DEVICE);
+- if (!n_elem_req) {
+- rc = -ENOMEM;
+- goto prep_out;
+- }
+- req_len = sg_dma_len(&task->smp_task.smp_req);
+- if (req_len & 0x3) {
+- rc = -EINVAL;
+- goto err_out_dma_unmap;
+- }
+- n_elem_resp = dma_map_sg(dev, &task->smp_task.smp_resp,
+- 1, DMA_FROM_DEVICE);
+- if (!n_elem_resp) {
+- rc = -ENOMEM;
+- goto err_out_dma_unmap;
+- }
+- resp_len = sg_dma_len(&task->smp_task.smp_resp);
+- if (resp_len & 0x3) {
+- rc = -EINVAL;
+- goto err_out_dma_unmap;
+- }
+- }
+- } else
+- n_elem = task->num_scatter;
+-
+- if (n_elem > HISI_SAS_SGE_PAGE_CNT) {
+- dev_err(dev, "task prep: n_elem(%d) > HISI_SAS_SGE_PAGE_CNT",
+- n_elem);
+- rc = -EINVAL;
+- goto err_out_dma_unmap;
+- }
++ rc = hisi_sas_dma_map(hisi_hba, task, &n_elem,
++ &n_elem_req, &n_elem_resp);
++ if (rc < 0)
++ goto prep_out;
+
+ if (hisi_hba->hw->slot_index_alloc)
+ rc = hisi_hba->hw->slot_index_alloc(hisi_hba, device);
+@@ -466,19 +511,8 @@ static int hisi_sas_task_prep(struct sas
+ err_out_tag:
+ hisi_sas_slot_index_free(hisi_hba, slot_idx);
+ err_out_dma_unmap:
+- if (!sas_protocol_ata(task->task_proto)) {
+- if (task->num_scatter) {
+- dma_unmap_sg(dev, task->scatter, task->num_scatter,
+- task->data_dir);
+- } else if (task->task_proto & SAS_PROTOCOL_SMP) {
+- if (n_elem_req)
+- dma_unmap_sg(dev, &task->smp_task.smp_req,
+- 1, DMA_TO_DEVICE);
+- if (n_elem_resp)
+- dma_unmap_sg(dev, &task->smp_task.smp_resp,
+- 1, DMA_FROM_DEVICE);
+- }
+- }
++ hisi_sas_dma_unmap(hisi_hba, task, n_elem,
++ n_elem_req, n_elem_resp);
+ prep_out:
+ dev_err(dev, "task prep: failed[%d]!\n", rc);
+ return rc;
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0016-scsi-hisi_sas-Make-sg_tablesize-consistent-value.patch b/debian/patches/bugfix/arm64/huawei-taishan/0016-scsi-hisi_sas-Make-sg_tablesize-consistent-value.patch
new file mode 100644
index 000000000..e025687be
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0016-scsi-hisi_sas-Make-sg_tablesize-consistent-value.patch
@@ -0,0 +1,82 @@
+From 8baf75dd36d8e311434162c6a2c74a45262dc0d4 Mon Sep 17 00:00:00 2001
+From: Xiang Chen <chenxiang66@hisilicon.com>
+Date: Thu, 6 Dec 2018 21:34:42 +0800
+Subject: [PATCH 16/31] scsi: hisi_sas: Make sg_tablesize consistent value
+Origin: https://git.kernel.org/linus/6db831f4ef764ca19d7300d56ab9455af3cb930d
+
+Sht->sg_tablesize is set in the driver, and it will be assigned to
+shost->sg_tablesize in SCSI mid-layer. So it is not necessary to assign
+shost->sg_table one more time in the driver.
+
+In addition to the change, change each scsi_host_template.sg_tablesize
+to HISI_SAS_SGE_PAGE_CNT instead of SG_ALL.
+
+Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
+Signed-off-by: John Garry <john.garry@huawei.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+---
+ drivers/scsi/hisi_sas/hisi_sas_main.c | 1 -
+ drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 2 +-
+ drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 2 +-
+ drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 3 +--
+ 4 files changed, 3 insertions(+), 5 deletions(-)
+
+Index: linux/drivers/scsi/hisi_sas/hisi_sas_main.c
+===================================================================
+--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_main.c
++++ linux/drivers/scsi/hisi_sas/hisi_sas_main.c
+@@ -2426,7 +2426,6 @@ int hisi_sas_probe(struct platform_devic
+ shost->max_lun = ~0;
+ shost->max_channel = 1;
+ shost->max_cmd_len = 16;
+- shost->sg_tablesize = min_t(u16, SG_ALL, HISI_SAS_SGE_PAGE_CNT);
+ if (hisi_hba->hw->slot_index_alloc) {
+ shost->can_queue = hisi_hba->hw->max_command_entries;
+ shost->cmd_per_lun = hisi_hba->hw->max_command_entries;
+Index: linux/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
+===================================================================
+--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
++++ linux/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
+@@ -1814,7 +1814,7 @@ static struct scsi_host_template sht_v1_
+ .change_queue_depth = sas_change_queue_depth,
+ .bios_param = sas_bios_param,
+ .this_id = -1,
+- .sg_tablesize = SG_ALL,
++ .sg_tablesize = HISI_SAS_SGE_PAGE_CNT,
+ .max_sectors = SCSI_DEFAULT_MAX_SECTORS,
+ .use_clustering = ENABLE_CLUSTERING,
+ .eh_device_reset_handler = sas_eh_device_reset_handler,
+Index: linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
+===================================================================
+--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
++++ linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
+@@ -3576,7 +3576,7 @@ static struct scsi_host_template sht_v2_
+ .change_queue_depth = sas_change_queue_depth,
+ .bios_param = sas_bios_param,
+ .this_id = -1,
+- .sg_tablesize = SG_ALL,
++ .sg_tablesize = HISI_SAS_SGE_PAGE_CNT,
+ .max_sectors = SCSI_DEFAULT_MAX_SECTORS,
+ .use_clustering = ENABLE_CLUSTERING,
+ .eh_device_reset_handler = sas_eh_device_reset_handler,
+Index: linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+===================================================================
+--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
++++ linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+@@ -2229,7 +2229,7 @@ static struct scsi_host_template sht_v3_
+ .change_queue_depth = sas_change_queue_depth,
+ .bios_param = sas_bios_param,
+ .this_id = -1,
+- .sg_tablesize = SG_ALL,
++ .sg_tablesize = HISI_SAS_SGE_PAGE_CNT,
+ .max_sectors = SCSI_DEFAULT_MAX_SECTORS,
+ .use_clustering = ENABLE_CLUSTERING,
+ .eh_device_reset_handler = sas_eh_device_reset_handler,
+@@ -2371,7 +2371,6 @@ hisi_sas_v3_probe(struct pci_dev *pdev,
+ shost->max_lun = ~0;
+ shost->max_channel = 1;
+ shost->max_cmd_len = 16;
+- shost->sg_tablesize = min_t(u16, SG_ALL, HISI_SAS_SGE_PAGE_CNT);
+ shost->can_queue = hisi_hba->hw->max_command_entries -
+ HISI_SAS_RESERVED_IPTT_CNT;
+ shost->cmd_per_lun = hisi_hba->hw->max_command_entries -
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0017-net-hns3-remove-unnecessary-configuration-recapture-.patch b/debian/patches/bugfix/arm64/huawei-taishan/0017-net-hns3-remove-unnecessary-configuration-recapture-.patch
new file mode 100644
index 000000000..377ee58bd
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0017-net-hns3-remove-unnecessary-configuration-recapture-.patch
@@ -0,0 +1,43 @@
+From 341487a9b370af5c2566fb0c3fe5384c96bdbda7 Mon Sep 17 00:00:00 2001
+From: Huazhong Tan <tanhuazhong@huawei.com>
+Date: Tue, 18 Dec 2018 19:37:52 +0800
+Subject: [PATCH 17/31] net: hns3: remove unnecessary configuration recapture
+ while resetting
+Origin: https://git.kernel.org/linus/b51c366df70da0100193d13975980f1990a2d47b
+
+When doing reset, it is unnecessary to get the hardware's default
+configuration again, otherwise, the user's configuration will be
+overwritten.
+
+Fixes: 4ed340ab8f49 ("net: hns3: Add reset process in hclge_main")
+Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
+Signed-off-by: Peng Li <lipeng321@huawei.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ .../net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 13 -------------
+ 1 file changed, 13 deletions(-)
+
+Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+@@ -5814,19 +5814,6 @@ static int hclge_reset_ae_dev(struct hna
+ return ret;
+ }
+
+- ret = hclge_get_cap(hdev);
+- if (ret) {
+- dev_err(&pdev->dev, "get hw capability error, ret = %d.\n",
+- ret);
+- return ret;
+- }
+-
+- ret = hclge_configure(hdev);
+- if (ret) {
+- dev_err(&pdev->dev, "Configure dev error, ret = %d.\n", ret);
+- return ret;
+- }
+-
+ ret = hclge_map_tqp(hdev);
+ if (ret) {
+ dev_err(&pdev->dev, "Map tqp error, ret = %d.\n", ret);
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0018-net-hns3-remove-1000M-half-support-of-phy.patch b/debian/patches/bugfix/arm64/huawei-taishan/0018-net-hns3-remove-1000M-half-support-of-phy.patch
new file mode 100644
index 000000000..e5141d719
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0018-net-hns3-remove-1000M-half-support-of-phy.patch
@@ -0,0 +1,29 @@
+From 7740fe91e657e23f25e750d9e34da059a6f607ac Mon Sep 17 00:00:00 2001
+From: Fuyun Liang <liangfuyun1@huawei.com>
+Date: Tue, 18 Dec 2018 19:37:55 +0800
+Subject: [PATCH 18/31] net: hns3: remove 1000M/half support of phy
+Origin: https://git.kernel.org/linus/8362089d787724bb252f13f942921051943369c7
+
+Our phy does not support 1000M/half, this patch removes 1000M/half from
+PHY_SUPPORTED_FEATURES.
+
+Signed-off-by: Fuyun Liang <liangfuyun1@huawei.com>
+Signed-off-by: Peng Li <lipeng321@huawei.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c
++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c
+@@ -14,7 +14,7 @@
+ SUPPORTED_Asym_Pause | \
+ PHY_10BT_FEATURES | \
+ PHY_100BT_FEATURES | \
+- PHY_1000BT_FEATURES)
++ SUPPORTED_1000baseT_Full)
+
+ enum hclge_mdio_c22_op_seq {
+ HCLGE_MDIO_C22_WRITE = 1,
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0019-net-hns3-synchronize-speed-and-duplex-from-phy-when-.patch b/debian/patches/bugfix/arm64/huawei-taishan/0019-net-hns3-synchronize-speed-and-duplex-from-phy-when-.patch
new file mode 100644
index 000000000..6769afdcf
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0019-net-hns3-synchronize-speed-and-duplex-from-phy-when-.patch
@@ -0,0 +1,32 @@
+From 4f28c6b52ffb62eb5a0a5a85af4fa10658fecee5 Mon Sep 17 00:00:00 2001
+From: Peng Li <lipeng321@huawei.com>
+Date: Tue, 18 Dec 2018 19:37:56 +0800
+Subject: [PATCH 19/31] net: hns3: synchronize speed and duplex from phy when
+ phy link up
+Origin: https://git.kernel.org/linus/0ad5ea5dbd6cb1e62bac547db5e61bab15af4f44
+
+Driver calls phy_connect_direct and registers hclge_mac_adjust_link
+to synchronize mac speed and duplex from phy. It is better to
+synchronize mac speed and duplex from phy when phy link up.
+
+Signed-off-by: Peng Li <lipeng321@huawei.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c
++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c
+@@ -181,6 +181,10 @@ static void hclge_mac_adjust_link(struct
+ int duplex, speed;
+ int ret;
+
++ /* When phy link down, do nothing */
++ if (netdev->phydev->link == 0)
++ return;
++
+ speed = netdev->phydev->speed;
+ duplex = netdev->phydev->duplex;
+
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0020-net-hns3-getting-tx-and-dv-buffer-size-through-firmw.patch b/debian/patches/bugfix/arm64/huawei-taishan/0020-net-hns3-getting-tx-and-dv-buffer-size-through-firmw.patch
new file mode 100644
index 000000000..de4795be4
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0020-net-hns3-getting-tx-and-dv-buffer-size-through-firmw.patch
@@ -0,0 +1,157 @@
+From caeef6247aa6f5250d14108b33cef5458ba6c58e Mon Sep 17 00:00:00 2001
+From: Yunsheng Lin <linyunsheng@huawei.com>
+Date: Tue, 18 Dec 2018 19:37:57 +0800
+Subject: [PATCH 20/31] net: hns3: getting tx and dv buffer size through
+ firmware
+Origin: https://git.kernel.org/linus/368686be234daf365ef184a6ee1c4a6c18ede3b1
+
+This patch adds support of getting tx and dv buffer size through
+firmware, because different version of hardware requires different
+size of tx and dv buffer.
+
+This patch also add dv_buf_size to tc' private buffer size even if
+pfc is not enable for the tc.
+
+Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
+Signed-off-by: Peng Li <lipeng321@huawei.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ .../hisilicon/hns3/hns3pf/hclge_cmd.h | 5 ++-
+ .../hisilicon/hns3/hns3pf/hclge_main.c | 41 ++++++++++++++-----
+ .../hisilicon/hns3/hns3pf/hclge_main.h | 3 ++
+ 3 files changed, 38 insertions(+), 11 deletions(-)
+
+Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h
++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h
+@@ -365,7 +365,9 @@ struct hclge_pf_res_cmd {
+ #define HCLGE_PF_VEC_NUM_M GENMASK(7, 0)
+ __le16 pf_intr_vector_number;
+ __le16 pf_own_fun_number;
+- __le32 rsv[3];
++ __le16 tx_buf_size;
++ __le16 dv_buf_size;
++ __le32 rsv[2];
+ };
+
+ #define HCLGE_CFG_OFFSET_S 0
+@@ -791,6 +793,7 @@ struct hclge_serdes_lb_cmd {
+ #define HCLGE_TOTAL_PKT_BUF 0x108000 /* 1.03125M bytes */
+ #define HCLGE_DEFAULT_DV 0xA000 /* 40k byte */
+ #define HCLGE_DEFAULT_NON_DCB_DV 0x7800 /* 30K byte */
++#define HCLGE_NON_DCB_ADDITIONAL_BUF 0x200 /* 512 byte */
+
+ #define HCLGE_TYPE_CRQ 0
+ #define HCLGE_TYPE_CSQ 1
+Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+@@ -931,6 +931,18 @@ static int hclge_query_pf_resource(struc
+ hdev->num_tqps = __le16_to_cpu(req->tqp_num);
+ hdev->pkt_buf_size = __le16_to_cpu(req->buf_size) << HCLGE_BUF_UNIT_S;
+
++ if (req->tx_buf_size)
++ hdev->tx_buf_size =
++ __le16_to_cpu(req->tx_buf_size) << HCLGE_BUF_UNIT_S;
++ else
++ hdev->tx_buf_size = HCLGE_DEFAULT_TX_BUF;
++
++ if (req->dv_buf_size)
++ hdev->dv_buf_size =
++ __le16_to_cpu(req->dv_buf_size) << HCLGE_BUF_UNIT_S;
++ else
++ hdev->dv_buf_size = HCLGE_DEFAULT_DV;
++
+ if (hnae3_dev_roce_supported(hdev)) {
+ hdev->roce_base_msix_offset =
+ hnae3_get_field(__le16_to_cpu(req->msixcap_localid_ba_rocee),
+@@ -1591,9 +1603,10 @@ static bool hclge_is_rx_buf_ok(struct h
+ pfc_enable_num = hclge_get_pfc_enalbe_num(hdev);
+
+ if (hnae3_dev_dcb_supported(hdev))
+- shared_buf_min = 2 * hdev->mps + HCLGE_DEFAULT_DV;
++ shared_buf_min = 2 * hdev->mps + hdev->dv_buf_size;
+ else
+- shared_buf_min = 2 * hdev->mps + HCLGE_DEFAULT_NON_DCB_DV;
++ shared_buf_min = hdev->mps + HCLGE_NON_DCB_ADDITIONAL_BUF
++ + hdev->dv_buf_size;
+
+ shared_buf_tc = pfc_enable_num * hdev->mps +
+ (tc_num - pfc_enable_num) * hdev->mps / 2 +
+@@ -1606,8 +1619,15 @@ static bool hclge_is_rx_buf_ok(struct h
+
+ shared_buf = rx_all - rx_priv;
+ buf_alloc->s_buf.buf_size = shared_buf;
+- buf_alloc->s_buf.self.high = shared_buf;
+- buf_alloc->s_buf.self.low = 2 * hdev->mps;
++ if (hnae3_dev_dcb_supported(hdev)) {
++ buf_alloc->s_buf.self.high = shared_buf - hdev->dv_buf_size;
++ buf_alloc->s_buf.self.low = buf_alloc->s_buf.self.high
++ - hdev->mps / 2;
++ } else {
++ buf_alloc->s_buf.self.high = hdev->mps +
++ HCLGE_NON_DCB_ADDITIONAL_BUF;
++ buf_alloc->s_buf.self.low = hdev->mps / 2;
++ }
+
+ for (i = 0; i < HCLGE_MAX_TC_NUM; i++) {
+ if ((hdev->hw_tc_map & BIT(i)) &&
+@@ -1634,11 +1654,11 @@ static int hclge_tx_buffer_calc(struct h
+ for (i = 0; i < HCLGE_MAX_TC_NUM; i++) {
+ struct hclge_priv_buf *priv = &buf_alloc->priv_buf[i];
+
+- if (total_size < HCLGE_DEFAULT_TX_BUF)
++ if (total_size < hdev->tx_buf_size)
+ return -ENOMEM;
+
+ if (hdev->hw_tc_map & BIT(i))
+- priv->tx_buf_size = HCLGE_DEFAULT_TX_BUF;
++ priv->tx_buf_size = hdev->tx_buf_size;
+ else
+ priv->tx_buf_size = 0;
+
+@@ -1684,11 +1704,12 @@ static int hclge_rx_buffer_calc(struct h
+ priv->wl.low = aligned_mps;
+ priv->wl.high = priv->wl.low + aligned_mps;
+ priv->buf_size = priv->wl.high +
+- HCLGE_DEFAULT_DV;
++ hdev->dv_buf_size;
+ } else {
+ priv->wl.low = 0;
+ priv->wl.high = 2 * aligned_mps;
+- priv->buf_size = priv->wl.high;
++ priv->buf_size = priv->wl.high +
++ hdev->dv_buf_size;
+ }
+ } else {
+ priv->enable = 0;
+@@ -1720,11 +1741,11 @@ static int hclge_rx_buffer_calc(struct h
+ if (hdev->tm_info.hw_pfc_map & BIT(i)) {
+ priv->wl.low = 128;
+ priv->wl.high = priv->wl.low + aligned_mps;
+- priv->buf_size = priv->wl.high + HCLGE_DEFAULT_DV;
++ priv->buf_size = priv->wl.high + hdev->dv_buf_size;
+ } else {
+ priv->wl.low = 0;
+ priv->wl.high = aligned_mps;
+- priv->buf_size = priv->wl.high;
++ priv->buf_size = priv->wl.high + hdev->dv_buf_size;
+ }
+ }
+
+Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h
++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h
+@@ -545,6 +545,9 @@ struct hclge_dev {
+ u32 flag;
+
+ u32 pkt_buf_size; /* Total pf buf size for tx/rx */
++ u32 tx_buf_size; /* Tx buffer size for each TC */
++ u32 dv_buf_size; /* Dv buffer size for each TC */
++
+ u32 mps; /* Max packet size */
+
+ enum hclge_mta_dmac_sel_type mta_mac_sel_type;
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0021-net-hns3-aligning-buffer-size-in-SSU-to-256-bytes.patch b/debian/patches/bugfix/arm64/huawei-taishan/0021-net-hns3-aligning-buffer-size-in-SSU-to-256-bytes.patch
new file mode 100644
index 000000000..e5c403de9
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0021-net-hns3-aligning-buffer-size-in-SSU-to-256-bytes.patch
@@ -0,0 +1,144 @@
+From 234c314e892d40daa37e97e9057e04d3e3a0c285 Mon Sep 17 00:00:00 2001
+From: Yunsheng Lin <linyunsheng@huawei.com>
+Date: Tue, 18 Dec 2018 19:37:58 +0800
+Subject: [PATCH 21/31] net: hns3: aligning buffer size in SSU to 256 bytes
+Origin: https://git.kernel.org/linus/b9a400ac295728b2d47445e09814e1880409b311
+
+The hardware expects the buffer size set to SSU is aligned to
+256 bytes, this patch aligns the buffer size to 256 byte using
+roundup or rounddown function.
+
+Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
+Signed-off-by: Peng Li <lipeng321@huawei.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ .../hisilicon/hns3/hns3pf/hclge_main.c | 45 ++++++++++++-------
+ 1 file changed, 28 insertions(+), 17 deletions(-)
+
+Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+@@ -31,6 +31,10 @@ static int hclge_set_mta_filter_mode(str
+ enum hclge_mta_dmac_sel_type mta_mac_sel,
+ bool enable);
+ static int hclge_set_mtu(struct hnae3_handle *handle, int new_mtu);
++
++#define HCLGE_BUF_SIZE_UNIT 256
++
++static int hclge_set_mac_mtu(struct hclge_dev *hdev, int new_mps);
+ static int hclge_init_vlan_config(struct hclge_dev *hdev);
+ static int hclge_reset_ae_dev(struct hnae3_ae_dev *ae_dev);
+
+@@ -937,12 +941,16 @@ static int hclge_query_pf_resource(struc
+ else
+ hdev->tx_buf_size = HCLGE_DEFAULT_TX_BUF;
+
++ hdev->tx_buf_size = roundup(hdev->tx_buf_size, HCLGE_BUF_SIZE_UNIT);
++
+ if (req->dv_buf_size)
+ hdev->dv_buf_size =
+ __le16_to_cpu(req->dv_buf_size) << HCLGE_BUF_UNIT_S;
+ else
+ hdev->dv_buf_size = HCLGE_DEFAULT_DV;
+
++ hdev->dv_buf_size = roundup(hdev->dv_buf_size, HCLGE_BUF_SIZE_UNIT);
++
+ if (hnae3_dev_roce_supported(hdev)) {
+ hdev->roce_base_msix_offset =
+ hnae3_get_field(__le16_to_cpu(req->msixcap_localid_ba_rocee),
+@@ -1595,48 +1603,50 @@ static bool hclge_is_rx_buf_ok(struct h
+ {
+ u32 shared_buf_min, shared_buf_tc, shared_std;
+ int tc_num, pfc_enable_num;
+- u32 shared_buf;
++ u32 shared_buf, aligned_mps;
+ u32 rx_priv;
+ int i;
+
+ tc_num = hclge_get_tc_num(hdev);
+ pfc_enable_num = hclge_get_pfc_enalbe_num(hdev);
++ aligned_mps = roundup(hdev->mps, HCLGE_BUF_SIZE_UNIT);
+
+ if (hnae3_dev_dcb_supported(hdev))
+- shared_buf_min = 2 * hdev->mps + hdev->dv_buf_size;
++ shared_buf_min = 2 * aligned_mps + hdev->dv_buf_size;
+ else
+- shared_buf_min = hdev->mps + HCLGE_NON_DCB_ADDITIONAL_BUF
++ shared_buf_min = aligned_mps + HCLGE_NON_DCB_ADDITIONAL_BUF
+ + hdev->dv_buf_size;
+
+- shared_buf_tc = pfc_enable_num * hdev->mps +
+- (tc_num - pfc_enable_num) * hdev->mps / 2 +
+- hdev->mps;
++ shared_buf_tc = pfc_enable_num * aligned_mps +
++ (tc_num - pfc_enable_num) * aligned_mps / 2 +
++ aligned_mps;
+ shared_std = max_t(u32, shared_buf_min, shared_buf_tc);
+
+ rx_priv = hclge_get_rx_priv_buff_alloced(buf_alloc);
+ if (rx_all <= rx_priv + shared_std)
+ return false;
+
+- shared_buf = rx_all - rx_priv;
++ shared_buf = rounddown(rx_all - rx_priv, HCLGE_BUF_SIZE_UNIT);
+ buf_alloc->s_buf.buf_size = shared_buf;
+ if (hnae3_dev_dcb_supported(hdev)) {
+ buf_alloc->s_buf.self.high = shared_buf - hdev->dv_buf_size;
+ buf_alloc->s_buf.self.low = buf_alloc->s_buf.self.high
+- - hdev->mps / 2;
++ - roundup(aligned_mps / 2, HCLGE_BUF_SIZE_UNIT);
+ } else {
+- buf_alloc->s_buf.self.high = hdev->mps +
++ buf_alloc->s_buf.self.high = aligned_mps +
+ HCLGE_NON_DCB_ADDITIONAL_BUF;
+- buf_alloc->s_buf.self.low = hdev->mps / 2;
++ buf_alloc->s_buf.self.low =
++ roundup(aligned_mps / 2, HCLGE_BUF_SIZE_UNIT);
+ }
+
+ for (i = 0; i < HCLGE_MAX_TC_NUM; i++) {
+ if ((hdev->hw_tc_map & BIT(i)) &&
+ (hdev->tm_info.hw_pfc_map & BIT(i))) {
+- buf_alloc->s_buf.tc_thrd[i].low = hdev->mps;
+- buf_alloc->s_buf.tc_thrd[i].high = 2 * hdev->mps;
++ buf_alloc->s_buf.tc_thrd[i].low = aligned_mps;
++ buf_alloc->s_buf.tc_thrd[i].high = 2 * aligned_mps;
+ } else {
+ buf_alloc->s_buf.tc_thrd[i].low = 0;
+- buf_alloc->s_buf.tc_thrd[i].high = hdev->mps;
++ buf_alloc->s_buf.tc_thrd[i].high = aligned_mps;
+ }
+ }
+
+@@ -1676,7 +1686,6 @@ static int hclge_tx_buffer_calc(struct h
+ static int hclge_rx_buffer_calc(struct hclge_dev *hdev,
+ struct hclge_pkt_buf_alloc *buf_alloc)
+ {
+-#define HCLGE_BUF_SIZE_UNIT 128
+ u32 rx_all = hdev->pkt_buf_size, aligned_mps;
+ int no_pfc_priv_num, pfc_priv_num;
+ struct hclge_priv_buf *priv;
+@@ -1702,9 +1711,11 @@ static int hclge_rx_buffer_calc(struct h
+ priv->enable = 1;
+ if (hdev->tm_info.hw_pfc_map & BIT(i)) {
+ priv->wl.low = aligned_mps;
+- priv->wl.high = priv->wl.low + aligned_mps;
++ priv->wl.high =
++ roundup(priv->wl.low + aligned_mps,
++ HCLGE_BUF_SIZE_UNIT);
+ priv->buf_size = priv->wl.high +
+- hdev->dv_buf_size;
++ hdev->dv_buf_size;
+ } else {
+ priv->wl.low = 0;
+ priv->wl.high = 2 * aligned_mps;
+@@ -1739,7 +1750,7 @@ static int hclge_rx_buffer_calc(struct h
+ priv->enable = 1;
+
+ if (hdev->tm_info.hw_pfc_map & BIT(i)) {
+- priv->wl.low = 128;
++ priv->wl.low = 256;
+ priv->wl.high = priv->wl.low + aligned_mps;
+ priv->buf_size = priv->wl.high + hdev->dv_buf_size;
+ } else {
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0022-net-hns3-fix-a-SSU-buffer-checking-bug.patch b/debian/patches/bugfix/arm64/huawei-taishan/0022-net-hns3-fix-a-SSU-buffer-checking-bug.patch
new file mode 100644
index 000000000..26cee78ea
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0022-net-hns3-fix-a-SSU-buffer-checking-bug.patch
@@ -0,0 +1,45 @@
+From 4d887b7901d59b472df97bd8a2f8bdeb43be7ced Mon Sep 17 00:00:00 2001
+From: Yunsheng Lin <linyunsheng@huawei.com>
+Date: Tue, 18 Dec 2018 19:37:59 +0800
+Subject: [PATCH 22/31] net: hns3: fix a SSU buffer checking bug
+Origin: https://git.kernel.org/linus/af854724e51e4047f534ac6d19b3ef9fb3c35c49
+
+When caculating the SSU buffer, it first allocate tx and
+rx private buffer, then the remaining buffer is for rx
+shared buffer. The remaining buffer size should be at
+least bigger than or equal to the shared_std, which is the
+minimum shared buffer size required by the driver, but
+currently if the remaining buffer size is equal to the
+shared_std, it returns failure, which causes SSU buffer
+allocation failure problem.
+
+This patch fixes this problem by rounding up shared_std before
+checking the the remaining buffer size bigger than or equal to
+the shared_std.
+
+Fixes: 46a3df9f9718 ("net: hns3: Add HNS3 Acceleration Engine & Compatibility Layer Support")
+Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
+Signed-off-by: Peng Li <lipeng321@huawei.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+@@ -1620,10 +1620,11 @@ static bool hclge_is_rx_buf_ok(struct h
+ shared_buf_tc = pfc_enable_num * aligned_mps +
+ (tc_num - pfc_enable_num) * aligned_mps / 2 +
+ aligned_mps;
+- shared_std = max_t(u32, shared_buf_min, shared_buf_tc);
++ shared_std = roundup(max_t(u32, shared_buf_min, shared_buf_tc),
++ HCLGE_BUF_SIZE_UNIT);
+
+ rx_priv = hclge_get_rx_priv_buff_alloced(buf_alloc);
+- if (rx_all <= rx_priv + shared_std)
++ if (rx_all < rx_priv + shared_std)
+ return false;
+
+ shared_buf = rounddown(rx_all - rx_priv, HCLGE_BUF_SIZE_UNIT);
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0023-net-hns3-change-default-tc-state-to-close.patch b/debian/patches/bugfix/arm64/huawei-taishan/0023-net-hns3-change-default-tc-state-to-close.patch
new file mode 100644
index 000000000..ad8ccd77f
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0023-net-hns3-change-default-tc-state-to-close.patch
@@ -0,0 +1,30 @@
+From ea3eff7a2ef69730c8e48715fbf965cb9da8b0bc Mon Sep 17 00:00:00 2001
+From: Jian Shen <shenjian15@huawei.com>
+Date: Thu, 20 Dec 2018 11:51:59 +0800
+Subject: [PATCH 23/31] net: hns3: change default tc state to close
+Origin: https://git.kernel.org/linus/a298797532d9dc244abf349d7c2ed063732c6ba3
+
+In original codes, default tc value is set to the max tc. It's more
+reasonable to close tc by changing default tc value to 1. Users can
+enable it with lldp tool when they want to use tc.
+
+Signed-off-by: Jian Shen <shenjian15@huawei.com>
+Signed-off-by: Peng Li <lipeng321@huawei.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+@@ -1200,7 +1200,7 @@ static int hclge_configure(struct hclge_
+ hdev->pfc_max = hdev->tc_max;
+ }
+
+- hdev->tm_info.num_tc = hdev->tc_max;
++ hdev->tm_info.num_tc = 1;
+
+ /* Currently not support uncontiuous tc */
+ for (i = 0; i < hdev->tm_info.num_tc; i++)
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0024-net-hns3-fix-a-bug-caused-by-udelay.patch b/debian/patches/bugfix/arm64/huawei-taishan/0024-net-hns3-fix-a-bug-caused-by-udelay.patch
new file mode 100644
index 000000000..b3c3464ca
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0024-net-hns3-fix-a-bug-caused-by-udelay.patch
@@ -0,0 +1,39 @@
+From 0f27af14383edac1efaf140d7cbe2d7dfdab7318 Mon Sep 17 00:00:00 2001
+From: Peng Li <lipeng321@huawei.com>
+Date: Thu, 20 Dec 2018 11:52:00 +0800
+Subject: [PATCH 24/31] net: hns3: fix a bug caused by udelay
+Origin: https://git.kernel.org/linus/1b7d7b0581173219b82abbd81c88cf8aa7d402c2
+
+udelay() in driver may always occupancy processor. If there is only
+one cpu in system, the VF driver may initialize fail when insmod
+PF and VF driver in the same system. This patch use msleep() to free
+cpu when VF wait PF message.
+
+Signed-off-by: Peng Li <lipeng321@huawei.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c
++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c
+@@ -26,7 +26,7 @@ static int hclgevf_get_mbx_resp(struct h
+ u8 *resp_data, u16 resp_len)
+ {
+ #define HCLGEVF_MAX_TRY_TIMES 500
+-#define HCLGEVF_SLEEP_USCOEND 1000
++#define HCLGEVF_SLEEP_USECOND 1000
+ struct hclgevf_mbx_resp_status *mbx_resp;
+ u16 r_code0, r_code1;
+ int i = 0;
+@@ -40,7 +40,7 @@ static int hclgevf_get_mbx_resp(struct h
+ }
+
+ while ((!hdev->mbx_resp.received_resp) && (i < HCLGEVF_MAX_TRY_TIMES)) {
+- udelay(HCLGEVF_SLEEP_USCOEND);
++ usleep_range(HCLGEVF_SLEEP_USECOND, HCLGEVF_SLEEP_USECOND * 2);
+ i++;
+ }
+
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0025-net-hns3-remove-redundant-variable-initialization.patch b/debian/patches/bugfix/arm64/huawei-taishan/0025-net-hns3-remove-redundant-variable-initialization.patch
new file mode 100644
index 000000000..2dcf9f2ef
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0025-net-hns3-remove-redundant-variable-initialization.patch
@@ -0,0 +1,28 @@
+From 883a7a53d7f6a6494e3a0df73fb02f76ecc42bc1 Mon Sep 17 00:00:00 2001
+From: Peng Li <lipeng321@huawei.com>
+Date: Thu, 20 Dec 2018 11:52:06 +0800
+Subject: [PATCH 25/31] net: hns3: remove redundant variable initialization
+Origin: https://git.kernel.org/linus/1154bb26c879fea51c20aee167ddce4345caa255
+
+This patch removes the redundant variable initialization,
+as driver will devm_kzalloc to set value to hdev soon.
+
+Signed-off-by: Peng Li <lipeng321@huawei.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
+@@ -1360,7 +1360,7 @@ static int hclgevf_configure(struct hclg
+ static int hclgevf_alloc_hdev(struct hnae3_ae_dev *ae_dev)
+ {
+ struct pci_dev *pdev = ae_dev->pdev;
+- struct hclgevf_dev *hdev = ae_dev->priv;
++ struct hclgevf_dev *hdev;
+
+ hdev = devm_kzalloc(&pdev->dev, sizeof(*hdev), GFP_KERNEL);
+ if (!hdev)
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0026-net-hns3-call-hns3_nic_net_open-while-doing-HNAE3_UP.patch b/debian/patches/bugfix/arm64/huawei-taishan/0026-net-hns3-call-hns3_nic_net_open-while-doing-HNAE3_UP.patch
new file mode 100644
index 000000000..9eddea483
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0026-net-hns3-call-hns3_nic_net_open-while-doing-HNAE3_UP.patch
@@ -0,0 +1,46 @@
+From a4e5945057386872cb9add271aea76ca2413f481 Mon Sep 17 00:00:00 2001
+From: Huazhong Tan <tanhuazhong@huawei.com>
+Date: Mon, 31 Dec 2018 10:58:29 +0800
+Subject: [PATCH 26/31] net: hns3: call hns3_nic_net_open() while doing
+ HNAE3_UP_CLIENT
+Origin: https://git.kernel.org/linus/e888402789b9db5de4fcda361331d66dbf0cd9fd
+
+For HNAE3_DOWN_CLIENT calling hns3_nic_net_stop(), HNAE3_UP_CLIENT
+should call hns3_nic_net_open(), since if the number of queue or
+the map of TC has is changed before HHAE3_UP_CLIENT is called,
+it will cause problem.
+
+Also the HNS3_NIC_STATE_RESETTING flag needs to be cleared before
+hns3_nic_net_open() called, and set it back while hns3_nic_net_open()
+failed.
+
+Fixes: bb6b94a896d4 ("net: hns3: Add reset interface implementation in client")
+Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
+Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
+Signed-off-by: Peng Li <lipeng321@huawei.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
+@@ -3439,11 +3439,15 @@ static int hns3_reset_notify_down_enet(s
+ static int hns3_reset_notify_up_enet(struct hnae3_handle *handle)
+ {
+ struct hnae3_knic_private_info *kinfo = &handle->kinfo;
++ struct hns3_nic_priv *priv = netdev_priv(kinfo->netdev);
+ int ret = 0;
+
++ clear_bit(HNS3_NIC_STATE_RESETTING, &priv->state);
++
+ if (netif_running(kinfo->netdev)) {
+- ret = hns3_nic_net_up(kinfo->netdev);
++ ret = hns3_nic_net_open(kinfo->netdev);
+ if (ret) {
++ set_bit(HNS3_NIC_STATE_RESETTING, &priv->state);
+ netdev_err(kinfo->netdev,
+ "hns net up fail, ret=%d!\n", ret);
+ return ret;
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0029-RDMA-hns-Add-constraint-on-the-setting-of-local-ACK-.patch b/debian/patches/bugfix/arm64/huawei-taishan/0029-RDMA-hns-Add-constraint-on-the-setting-of-local-ACK-.patch
new file mode 100644
index 000000000..48e2022bd
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0029-RDMA-hns-Add-constraint-on-the-setting-of-local-ACK-.patch
@@ -0,0 +1,43 @@
+From 84193e72c505286e4681b3c566c64eea3e25f7fd Mon Sep 17 00:00:00 2001
+From: Lijun Ou <oulijun@huawei.com>
+Date: Wed, 12 Dec 2018 17:49:08 +0800
+Subject: [PATCH 29/31] RDMA/hns: Add constraint on the setting of local ACK
+ timeout
+Origin: https://git.kernel.org/linus/44754b95dd35ee07c462b5425ae9c4cde8c7e7c8
+
+According to IB protocol, local ACK timeout shall be a 5 bit
+value. Currently, hip08 could not support the possible max value 31. Fail
+the request in this case.
+
+Signed-off-by: Yixian Liu <liuyixian@huawei.com>
+Signed-off-by: Lijun Ou <oulijun@huawei.com>
+Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
+---
+ drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+Index: linux/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
+===================================================================
+--- linux.orig/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
++++ linux/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
+@@ -3398,10 +3398,16 @@ static int modify_qp_rtr_to_rts(struct i
+ V2_QPC_BYTE_212_LSN_S, 0);
+
+ if (attr_mask & IB_QP_TIMEOUT) {
+- roce_set_field(context->byte_28_at_fl, V2_QPC_BYTE_28_AT_M,
+- V2_QPC_BYTE_28_AT_S, attr->timeout);
+- roce_set_field(qpc_mask->byte_28_at_fl, V2_QPC_BYTE_28_AT_M,
+- V2_QPC_BYTE_28_AT_S, 0);
++ if (attr->timeout < 31) {
++ roce_set_field(context->byte_28_at_fl,
++ V2_QPC_BYTE_28_AT_M, V2_QPC_BYTE_28_AT_S,
++ attr->timeout);
++ roce_set_field(qpc_mask->byte_28_at_fl,
++ V2_QPC_BYTE_28_AT_M, V2_QPC_BYTE_28_AT_S,
++ 0);
++ } else {
++ dev_warn(dev, "Local ACK timeout shall be 0 to 30.\n");
++ }
+ }
+
+ roce_set_field(context->byte_172_sq_psn, V2_QPC_BYTE_172_SQ_CUR_PSN_M,
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0030-RDMA-hns-Modify-the-pbl-ba-page-size-for-hip08.patch b/debian/patches/bugfix/arm64/huawei-taishan/0030-RDMA-hns-Modify-the-pbl-ba-page-size-for-hip08.patch
new file mode 100644
index 000000000..612b481ff
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0030-RDMA-hns-Modify-the-pbl-ba-page-size-for-hip08.patch
@@ -0,0 +1,28 @@
+From 454bc02382f8ed2eb3ebc7db4867ed419e3f0241 Mon Sep 17 00:00:00 2001
+From: Lijun Ou <oulijun@huawei.com>
+Date: Wed, 12 Dec 2018 17:49:09 +0800
+Subject: [PATCH 30/31] RDMA/hns: Modify the pbl ba page size for hip08
+Origin: https://git.kernel.org/linus/91fb4d83b88a7b544ce564c44167aad29d4154f0
+
+Modify the pbl ba page size to 16K for in order to support 4G MR size.
+
+Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
+Signed-off-by: Lijun Ou <oulijun@huawei.com>
+Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
+---
+ drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: linux/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
+===================================================================
+--- linux.orig/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
++++ linux/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
+@@ -1235,7 +1235,7 @@ static int hns_roce_v2_profile(struct hn
+ caps->mpt_ba_pg_sz = 0;
+ caps->mpt_buf_pg_sz = 0;
+ caps->mpt_hop_num = HNS_ROCE_CONTEXT_HOP_NUM;
+- caps->pbl_ba_pg_sz = 0;
++ caps->pbl_ba_pg_sz = 2;
+ caps->pbl_buf_pg_sz = 0;
+ caps->pbl_hop_num = HNS_ROCE_PBL_HOP_NUM;
+ caps->mtt_ba_pg_sz = 0;
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0031-RDMA-hns-RDMA-hns-Assign-rq-head-pointer-when-enable.patch b/debian/patches/bugfix/arm64/huawei-taishan/0031-RDMA-hns-RDMA-hns-Assign-rq-head-pointer-when-enable.patch
new file mode 100644
index 000000000..4f9e5f6be
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0031-RDMA-hns-RDMA-hns-Assign-rq-head-pointer-when-enable.patch
@@ -0,0 +1,63 @@
+From 07a7830061e657ce352e690dbe0a794ffb10d22e Mon Sep 17 00:00:00 2001
+From: Lijun Ou <oulijun@huawei.com>
+Date: Sat, 12 Jan 2019 18:36:29 +0800
+Subject: [PATCH 31/31] RDMA/hns: RDMA/hns: Assign rq head pointer when enable
+ rq record db
+Origin: https://git.kernel.org/linus/de77503a59403e7045c18c6bb0a10c245a99b648
+
+When flush cqe, it needs to get the pointer of rq and sq from db address
+space of user and update it into qp context by modified qp. if rq does not
+exist, it will not get the value from db address space of user.
+
+Signed-off-by: Lijun Ou <oulijun@huawei.com>
+Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
+---
+ drivers/infiniband/hw/hns/hns_roce_qp.c | 19 ++++++++++---------
+ 1 file changed, 10 insertions(+), 9 deletions(-)
+
+Index: linux/drivers/infiniband/hw/hns/hns_roce_qp.c
+===================================================================
+--- linux.orig/drivers/infiniband/hw/hns/hns_roce_qp.c
++++ linux/drivers/infiniband/hw/hns/hns_roce_qp.c
+@@ -652,6 +652,10 @@ static int hns_roce_create_qp_common(str
+ dev_err(dev, "rq record doorbell map failed!\n");
+ goto err_sq_dbmap;
+ }
++
++ /* indicate kernel supports rq record db */
++ resp.cap_flags |= HNS_ROCE_SUPPORT_RQ_RECORD_DB;
++ hr_qp->rdb_en = 1;
+ }
+ } else {
+ if (init_attr->create_flags &
+@@ -760,16 +764,11 @@ static int hns_roce_create_qp_common(str
+ else
+ hr_qp->doorbell_qpn = cpu_to_le64(hr_qp->qpn);
+
+- if (ib_pd->uobject && (udata->outlen >= sizeof(resp)) &&
+- (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_RECORD_DB)) {
+-
+- /* indicate kernel supports rq record db */
+- resp.cap_flags |= HNS_ROCE_SUPPORT_RQ_RECORD_DB;
+- ret = ib_copy_to_udata(udata, &resp, sizeof(resp));
++ if (udata) {
++ ret = ib_copy_to_udata(udata, &resp,
++ min(udata->outlen, sizeof(resp)));
+ if (ret)
+ goto err_qp;
+-
+- hr_qp->rdb_en = 1;
+ }
+ hr_qp->event = hns_roce_ib_qp_event;
+
+@@ -946,7 +945,9 @@ int hns_roce_modify_qp(struct ib_qp *ibq
+ (attr_mask & IB_QP_STATE) && new_state == IB_QPS_ERR) {
+ if (hr_qp->sdb_en == 1) {
+ hr_qp->sq.head = *(int *)(hr_qp->sdb.virt_addr);
+- hr_qp->rq.head = *(int *)(hr_qp->rdb.virt_addr);
++
++ if (hr_qp->rdb_en == 1)
++ hr_qp->rq.head = *(int *)(hr_qp->rdb.virt_addr);
+ } else {
+ dev_warn(dev, "flush cqe is not supported in userspace!\n");
+ goto out;
diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0033-scsi-hisi_sas-fix-calls-to-dma_set_mask_and_coherent.patch b/debian/patches/bugfix/arm64/huawei-taishan/0033-scsi-hisi_sas-fix-calls-to-dma_set_mask_and_coherent.patch
new file mode 100644
index 000000000..68374aee8
--- /dev/null
+++ b/debian/patches/bugfix/arm64/huawei-taishan/0033-scsi-hisi_sas-fix-calls-to-dma_set_mask_and_coherent.patch
@@ -0,0 +1,70 @@
+From badecc38102204f5297ad6ce1d7c7875e514c6f7 Mon Sep 17 00:00:00 2001
+From: Hannes Reinecke <hare@suse.de>
+Date: Mon, 18 Feb 2019 08:34:25 +0100
+Subject: [PATCH] scsi: hisi_sas: fix calls to dma_set_mask_and_coherent()
+Origin: https://git.kernel.org/linus/d9a00459effc30f6de2cdd887b64f15c6c54ae71
+
+The change to use dma_set_mask_and_coherent() incorrectly made a second
+call with the 32 bit DMA mask value when the call with the 64 bit DMA
+mask value succeeded.
+
+[mkp: fixed commit message]
+
+Fixes: e4db40e7a1a2 ("scsi: hisi_sas: use dma_set_mask_and_coherent")
+Cc: <stable@vger.kernel.org>
+Suggested-by: Ewan D. Milne <emilne@redhat.com>
+Signed-off-by: Hannes Reinecke <hare@suse.com>
+Reviewed-by: Christoph Hellwig <hch@lst.de>
+Signed-off-by: Hannes Reinecke <hare@suse.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+---
+ drivers/scsi/hisi_sas/hisi_sas_main.c | 8 ++++++--
+ drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 8 +++++---
+ 2 files changed, 11 insertions(+), 5 deletions(-)
+
+Index: linux/drivers/scsi/hisi_sas/hisi_sas_main.c
+===================================================================
+--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_main.c
++++ linux/drivers/scsi/hisi_sas/hisi_sas_main.c
+@@ -2339,6 +2339,7 @@ static struct Scsi_Host *hisi_sas_shost_
+ struct Scsi_Host *shost;
+ struct hisi_hba *hisi_hba;
+ struct device *dev = &pdev->dev;
++ int error;
+
+ shost = scsi_host_alloc(hw->sht, sizeof(*hisi_hba));
+ if (!shost) {
+@@ -2359,8 +2360,11 @@ static struct Scsi_Host *hisi_sas_shost_
+ if (hisi_sas_get_fw_info(hisi_hba) < 0)
+ goto err_out;
+
+- if (dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64)) &&
+- dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32))) {
++ error = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64));
++ if (error)
++ error = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32));
++
++ if (error) {
+ dev_err(dev, "No usable DMA addressing method\n");
+ goto err_out;
+ }
+Index: linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+===================================================================
+--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
++++ linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+@@ -2328,10 +2328,12 @@ hisi_sas_v3_probe(struct pci_dev *pdev,
+ if (rc)
+ goto err_out_disable_device;
+
+- if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)) ||
+- dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32))) {
++ rc = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
++ if (rc)
++ rc = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
++ if (rc) {
+ dev_err(dev, "No usable DMA addressing method\n");
+- rc = -EIO;
++ rc = -ENODEV;
+ goto err_out_regions;
+ }
+
diff --git a/debian/patches/bugfix/mips/MIPS-Loongson-Introduce-and-use-loongson_llsc_mb.patch b/debian/patches/bugfix/mips/MIPS-Loongson-Introduce-and-use-loongson_llsc_mb.patch
new file mode 100644
index 000000000..b45fc948b
--- /dev/null
+++ b/debian/patches/bugfix/mips/MIPS-Loongson-Introduce-and-use-loongson_llsc_mb.patch
@@ -0,0 +1,387 @@
+From: Huacai Chen <chenhc@lemote.com>
+Date: Tue, 15 Jan 2019 16:04:54 +0800
+Subject: MIPS: Loongson: Introduce and use loongson_llsc_mb()
+Origin: https://git.kernel.org/linus/e02e07e3127d8aec1f4bcdfb2fc52a2d99b4859e
+
+On the Loongson-2G/2H/3A/3B there is a hardware flaw that ll/sc and
+lld/scd is very weak ordering. We should add sync instructions "before
+each ll/lld" and "at the branch-target between ll/sc" to workaround.
+Otherwise, this flaw will cause deadlock occasionally (e.g. when doing
+heavy load test with LTP).
+
+Below is the explaination of CPU designer:
+
+"For Loongson 3 family, when a memory access instruction (load, store,
+or prefetch)'s executing occurs between the execution of LL and SC, the
+success or failure of SC is not predictable. Although programmer would
+not insert memory access instructions between LL and SC, the memory
+instructions before LL in program-order, may dynamically executed
+between the execution of LL/SC, so a memory fence (SYNC) is needed
+before LL/LLD to avoid this situation.
+
+Since Loongson-3A R2 (3A2000), we have improved our hardware design to
+handle this case. But we later deduce a rarely circumstance that some
+speculatively executed memory instructions due to branch misprediction
+between LL/SC still fall into the above case, so a memory fence (SYNC)
+at branch-target (if its target is not between LL/SC) is needed for
+Loongson 3A1000, 3B1500, 3A2000 and 3A3000.
+
+Our processor is continually evolving and we aim to to remove all these
+workaround-SYNCs around LL/SC for new-come processor."
+
+Here is an example:
+
+Both cpu1 and cpu2 simutaneously run atomic_add by 1 on same atomic var,
+this bug cause both 'sc' run by two cpus (in atomic_add) succeed at same
+time('sc' return 1), and the variable is only *added by 1*, sometimes,
+which is wrong and unacceptable(it should be added by 2).
+
+Why disable fix-loongson3-llsc in compiler?
+Because compiler fix will cause problems in kernel's __ex_table section.
+
+This patch fix all the cases in kernel, but:
+
++. the fix at the end of futex_atomic_cmpxchg_inatomic is for branch-target
+of 'bne', there other cases which smp_mb__before_llsc() and smp_llsc_mb() fix
+the ll and branch-target coincidently such as atomic_sub_if_positive/
+cmpxchg/xchg, just like this one.
+
++. Loongson 3 does support CONFIG_EDAC_ATOMIC_SCRUB, so no need to touch
+edac.h
+
++. local_ops and cmpxchg_local should not be affected by this bug since
+only the owner can write.
+
++. mips_atomic_set for syscall.c is deprecated and rarely used, just let
+it go
+
+Signed-off-by: Huacai Chen <chenhc@lemote.com>
+Signed-off-by: Huang Pei <huangpei@loongson.cn>
+[paul.burton@mips.com:
+ - Simplify the addition of -mno-fix-loongson3-llsc to cflags, and add
+ a comment describing why it's there.
+ - Make loongson_llsc_mb() a no-op when
+ CONFIG_CPU_LOONGSON3_WORKAROUNDS=n, rather than a compiler memory
+ barrier.
+ - Add a comment describing the bug & how loongson_llsc_mb() helps
+ in asm/barrier.h.]
+Signed-off-by: Paul Burton <paul.burton@mips.com>
+Cc: Ralf Baechle <ralf@linux-mips.org>
+Cc: ambrosehua@gmail.com
+Cc: Steven J . Hill <Steven.Hill@cavium.com>
+Cc: linux-mips@linux-mips.org
+Cc: Fuxin Zhang <zhangfx@lemote.com>
+Cc: Zhangjin Wu <wuzhangjin@gmail.com>
+Cc: Li Xuefeng <lixuefeng@loongson.cn>
+Cc: Xu Chenghua <xuchenghua@loongson.cn>
+---
+ arch/mips/Kconfig | 15 +++++++++++++++
+ arch/mips/include/asm/atomic.h | 6 ++++++
+ arch/mips/include/asm/barrier.h | 36 ++++++++++++++++++++++++++++++++++++
+ arch/mips/include/asm/bitops.h | 5 +++++
+ arch/mips/include/asm/futex.h | 3 +++
+ arch/mips/include/asm/pgtable.h | 2 ++
+ arch/mips/loongson64/Platform | 23 +++++++++++++++++++++++
+ arch/mips/mm/tlbex.c | 10 ++++++++++
+ 8 files changed, 100 insertions(+)
+
+Index: linux/arch/mips/Kconfig
+===================================================================
+--- linux.orig/arch/mips/Kconfig
++++ linux/arch/mips/Kconfig
+@@ -1397,6 +1397,21 @@ config LOONGSON3_ENHANCEMENT
+ please say 'N' here. If you want a high-performance kernel to run on
+ new Loongson 3 machines only, please say 'Y' here.
+
++config CPU_LOONGSON3_WORKAROUNDS
++ bool "Old Loongson 3 LLSC Workarounds"
++ default y if SMP
++ depends on CPU_LOONGSON3
++ help
++ Loongson 3 processors have the llsc issues which require workarounds.
++ Without workarounds the system may hang unexpectedly.
++
++ Newer Loongson 3 will fix these issues and no workarounds are needed.
++ The workarounds have no significant side effect on them but may
++ decrease the performance of the system so this option should be
++ disabled unless the kernel is intended to be run on old systems.
++
++ If unsure, please say Y.
++
+ config CPU_LOONGSON2E
+ bool "Loongson 2E"
+ depends on SYS_HAS_CPU_LOONGSON2E
+Index: linux/arch/mips/include/asm/atomic.h
+===================================================================
+--- linux.orig/arch/mips/include/asm/atomic.h
++++ linux/arch/mips/include/asm/atomic.h
+@@ -58,6 +58,7 @@ static __inline__ void atomic_##op(int i
+ if (kernel_uses_llsc) { \
+ int temp; \
+ \
++ loongson_llsc_mb(); \
+ __asm__ __volatile__( \
+ " .set "MIPS_ISA_LEVEL" \n" \
+ "1: ll %0, %1 # atomic_" #op " \n" \
+@@ -84,6 +85,7 @@ static __inline__ int atomic_##op##_retu
+ if (kernel_uses_llsc) { \
+ int temp; \
+ \
++ loongson_llsc_mb(); \
+ __asm__ __volatile__( \
+ " .set "MIPS_ISA_LEVEL" \n" \
+ "1: ll %1, %2 # atomic_" #op "_return \n" \
+@@ -116,6 +118,7 @@ static __inline__ int atomic_fetch_##op#
+ if (kernel_uses_llsc) { \
+ int temp; \
+ \
++ loongson_llsc_mb(); \
+ __asm__ __volatile__( \
+ " .set "MIPS_ISA_LEVEL" \n" \
+ "1: ll %1, %2 # atomic_fetch_" #op " \n" \
+@@ -251,6 +254,7 @@ static __inline__ void atomic64_##op(lon
+ if (kernel_uses_llsc) { \
+ long temp; \
+ \
++ loongson_llsc_mb(); \
+ __asm__ __volatile__( \
+ " .set "MIPS_ISA_LEVEL" \n" \
+ "1: lld %0, %1 # atomic64_" #op " \n" \
+@@ -277,6 +281,7 @@ static __inline__ long atomic64_##op##_r
+ if (kernel_uses_llsc) { \
+ long temp; \
+ \
++ loongson_llsc_mb(); \
+ __asm__ __volatile__( \
+ " .set "MIPS_ISA_LEVEL" \n" \
+ "1: lld %1, %2 # atomic64_" #op "_return\n" \
+@@ -309,6 +314,7 @@ static __inline__ long atomic64_fetch_##
+ if (kernel_uses_llsc) { \
+ long temp; \
+ \
++ loongson_llsc_mb(); \
+ __asm__ __volatile__( \
+ " .set "MIPS_ISA_LEVEL" \n" \
+ "1: lld %1, %2 # atomic64_fetch_" #op "\n" \
+Index: linux/arch/mips/include/asm/barrier.h
+===================================================================
+--- linux.orig/arch/mips/include/asm/barrier.h
++++ linux/arch/mips/include/asm/barrier.h
+@@ -222,6 +222,42 @@
+ #define __smp_mb__before_atomic() __smp_mb__before_llsc()
+ #define __smp_mb__after_atomic() smp_llsc_mb()
+
++/*
++ * Some Loongson 3 CPUs have a bug wherein execution of a memory access (load,
++ * store or pref) in between an ll & sc can cause the sc instruction to
++ * erroneously succeed, breaking atomicity. Whilst it's unusual to write code
++ * containing such sequences, this bug bites harder than we might otherwise
++ * expect due to reordering & speculation:
++ *
++ * 1) A memory access appearing prior to the ll in program order may actually
++ * be executed after the ll - this is the reordering case.
++ *
++ * In order to avoid this we need to place a memory barrier (ie. a sync
++ * instruction) prior to every ll instruction, in between it & any earlier
++ * memory access instructions. Many of these cases are already covered by
++ * smp_mb__before_llsc() but for the remaining cases, typically ones in
++ * which multiple CPUs may operate on a memory location but ordering is not
++ * usually guaranteed, we use loongson_llsc_mb() below.
++ *
++ * This reordering case is fixed by 3A R2 CPUs, ie. 3A2000 models and later.
++ *
++ * 2) If a conditional branch exists between an ll & sc with a target outside
++ * of the ll-sc loop, for example an exit upon value mismatch in cmpxchg()
++ * or similar, then misprediction of the branch may allow speculative
++ * execution of memory accesses from outside of the ll-sc loop.
++ *
++ * In order to avoid this we need a memory barrier (ie. a sync instruction)
++ * at each affected branch target, for which we also use loongson_llsc_mb()
++ * defined below.
++ *
++ * This case affects all current Loongson 3 CPUs.
++ */
++#ifdef CONFIG_CPU_LOONGSON3_WORKAROUNDS /* Loongson-3's LLSC workaround */
++#define loongson_llsc_mb() __asm__ __volatile__(__WEAK_LLSC_MB : : :"memory")
++#else
++#define loongson_llsc_mb() do { } while (0)
++#endif
++
+ #include <asm-generic/barrier.h>
+
+ #endif /* __ASM_BARRIER_H */
+Index: linux/arch/mips/include/asm/bitops.h
+===================================================================
+--- linux.orig/arch/mips/include/asm/bitops.h
++++ linux/arch/mips/include/asm/bitops.h
+@@ -68,6 +68,7 @@ static inline void set_bit(unsigned long
+ : "ir" (1UL << bit), GCC_OFF_SMALL_ASM() (*m));
+ #if defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR6)
+ } else if (kernel_uses_llsc && __builtin_constant_p(bit)) {
++ loongson_llsc_mb();
+ do {
+ __asm__ __volatile__(
+ " " __LL "%0, %1 # set_bit \n"
+@@ -78,6 +79,7 @@ static inline void set_bit(unsigned long
+ } while (unlikely(!temp));
+ #endif /* CONFIG_CPU_MIPSR2 || CONFIG_CPU_MIPSR6 */
+ } else if (kernel_uses_llsc) {
++ loongson_llsc_mb();
+ do {
+ __asm__ __volatile__(
+ " .set "MIPS_ISA_ARCH_LEVEL" \n"
+@@ -120,6 +122,7 @@ static inline void clear_bit(unsigned lo
+ : "ir" (~(1UL << bit)));
+ #if defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR6)
+ } else if (kernel_uses_llsc && __builtin_constant_p(bit)) {
++ loongson_llsc_mb();
+ do {
+ __asm__ __volatile__(
+ " " __LL "%0, %1 # clear_bit \n"
+@@ -130,6 +133,7 @@ static inline void clear_bit(unsigned lo
+ } while (unlikely(!temp));
+ #endif /* CONFIG_CPU_MIPSR2 || CONFIG_CPU_MIPSR6 */
+ } else if (kernel_uses_llsc) {
++ loongson_llsc_mb();
+ do {
+ __asm__ __volatile__(
+ " .set "MIPS_ISA_ARCH_LEVEL" \n"
+@@ -188,6 +192,7 @@ static inline void change_bit(unsigned l
+ unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
+ unsigned long temp;
+
++ loongson_llsc_mb();
+ do {
+ __asm__ __volatile__(
+ " .set "MIPS_ISA_ARCH_LEVEL" \n"
+Index: linux/arch/mips/include/asm/futex.h
+===================================================================
+--- linux.orig/arch/mips/include/asm/futex.h
++++ linux/arch/mips/include/asm/futex.h
+@@ -50,6 +50,7 @@
+ "i" (-EFAULT) \
+ : "memory"); \
+ } else if (cpu_has_llsc) { \
++ loongson_llsc_mb(); \
+ __asm__ __volatile__( \
+ " .set push \n" \
+ " .set noat \n" \
+@@ -162,6 +163,7 @@ futex_atomic_cmpxchg_inatomic(u32 *uval,
+ "i" (-EFAULT)
+ : "memory");
+ } else if (cpu_has_llsc) {
++ loongson_llsc_mb();
+ __asm__ __volatile__(
+ "# futex_atomic_cmpxchg_inatomic \n"
+ " .set push \n"
+@@ -190,6 +192,7 @@ futex_atomic_cmpxchg_inatomic(u32 *uval,
+ : GCC_OFF_SMALL_ASM() (*uaddr), "Jr" (oldval), "Jr" (newval),
+ "i" (-EFAULT)
+ : "memory");
++ loongson_llsc_mb();
+ } else
+ return -ENOSYS;
+
+Index: linux/arch/mips/include/asm/pgtable.h
+===================================================================
+--- linux.orig/arch/mips/include/asm/pgtable.h
++++ linux/arch/mips/include/asm/pgtable.h
+@@ -229,6 +229,7 @@ static inline void set_pte(pte_t *ptep,
+ : [buddy] "+m" (buddy->pte), [tmp] "=&r" (tmp)
+ : [global] "r" (page_global));
+ } else if (kernel_uses_llsc) {
++ loongson_llsc_mb();
+ __asm__ __volatile__ (
+ " .set "MIPS_ISA_ARCH_LEVEL" \n"
+ " .set push \n"
+@@ -244,6 +245,7 @@ static inline void set_pte(pte_t *ptep,
+ " .set mips0 \n"
+ : [buddy] "+m" (buddy->pte), [tmp] "=&r" (tmp)
+ : [global] "r" (page_global));
++ loongson_llsc_mb();
+ }
+ #else /* !CONFIG_SMP */
+ if (pte_none(*buddy))
+Index: linux/arch/mips/loongson64/Platform
+===================================================================
+--- linux.orig/arch/mips/loongson64/Platform
++++ linux/arch/mips/loongson64/Platform
+@@ -23,6 +23,29 @@ ifdef CONFIG_CPU_LOONGSON2F_WORKAROUNDS
+ endif
+
+ cflags-$(CONFIG_CPU_LOONGSON3) += -Wa,--trap
++
++#
++# Some versions of binutils, not currently mainline as of 2019/02/04, support
++# an -mfix-loongson3-llsc flag which emits a sync prior to each ll instruction
++# to work around a CPU bug (see loongson_llsc_mb() in asm/barrier.h for a
++# description).
++#
++# We disable this in order to prevent the assembler meddling with the
++# instruction that labels refer to, ie. if we label an ll instruction:
++#
++# 1: ll v0, 0(a0)
++#
++# ...then with the assembler fix applied the label may actually point at a sync
++# instruction inserted by the assembler, and if we were using the label in an
++# exception table the table would no longer contain the address of the ll
++# instruction.
++#
++# Avoid this by explicitly disabling that assembler behaviour. If upstream
++# binutils does not merge support for the flag then we can revisit & remove
++# this later - for now it ensures vendor toolchains don't cause problems.
++#
++cflags-$(CONFIG_CPU_LOONGSON3) += $(call as-option,-Wa$(comma)-mno-fix-loongson3-llsc,)
++
+ #
+ # binutils from v2.25 on and gcc starting from v4.9.0 treat -march=loongson3a
+ # as MIPS64 R2; older versions as just R1. This leaves the possibility open
+Index: linux/arch/mips/mm/tlbex.c
+===================================================================
+--- linux.orig/arch/mips/mm/tlbex.c
++++ linux/arch/mips/mm/tlbex.c
+@@ -943,6 +943,8 @@ build_get_pgd_vmalloc64(u32 **p, struct
+ * to mimic that here by taking a load/istream page
+ * fault.
+ */
++ if (IS_ENABLED(CONFIG_CPU_LOONGSON3_WORKAROUNDS))
++ uasm_i_sync(p, 0);
+ UASM_i_LA(p, ptr, (unsigned long)tlb_do_page_fault_0);
+ uasm_i_jr(p, ptr);
+
+@@ -1663,6 +1665,8 @@ static void
+ iPTE_LW(u32 **p, unsigned int pte, unsigned int ptr)
+ {
+ #ifdef CONFIG_SMP
++ if (IS_ENABLED(CONFIG_CPU_LOONGSON3_WORKAROUNDS))
++ uasm_i_sync(p, 0);
+ # ifdef CONFIG_PHYS_ADDR_T_64BIT
+ if (cpu_has_64bits)
+ uasm_i_lld(p, pte, 0, ptr);
+@@ -2276,6 +2280,8 @@ static void build_r4000_tlb_load_handler
+ #endif
+
+ uasm_l_nopage_tlbl(&l, p);
++ if (IS_ENABLED(CONFIG_CPU_LOONGSON3_WORKAROUNDS))
++ uasm_i_sync(&p, 0);
+ build_restore_work_registers(&p);
+ #ifdef CONFIG_CPU_MICROMIPS
+ if ((unsigned long)tlb_do_page_fault_0 & 1) {
+@@ -2330,6 +2336,8 @@ static void build_r4000_tlb_store_handle
+ #endif
+
+ uasm_l_nopage_tlbs(&l, p);
++ if (IS_ENABLED(CONFIG_CPU_LOONGSON3_WORKAROUNDS))
++ uasm_i_sync(&p, 0);
+ build_restore_work_registers(&p);
+ #ifdef CONFIG_CPU_MICROMIPS
+ if ((unsigned long)tlb_do_page_fault_1 & 1) {
+@@ -2385,6 +2393,8 @@ static void build_r4000_tlb_modify_handl
+ #endif
+
+ uasm_l_nopage_tlbm(&l, p);
++ if (IS_ENABLED(CONFIG_CPU_LOONGSON3_WORKAROUNDS))
++ uasm_i_sync(&p, 0);
+ build_restore_work_registers(&p);
+ #ifdef CONFIG_CPU_MICROMIPS
+ if ((unsigned long)tlb_do_page_fault_1 & 1) {
diff --git a/debian/patches/bugfix/powerpc/powerpc-boot-fix-missing-crc32poly.h-when-building-with-kernel_xz.patch b/debian/patches/bugfix/powerpc/powerpc-boot-fix-missing-crc32poly.h-when-building-with-kernel_xz.patch
new file mode 100644
index 000000000..45e1252df
--- /dev/null
+++ b/debian/patches/bugfix/powerpc/powerpc-boot-fix-missing-crc32poly.h-when-building-with-kernel_xz.patch
@@ -0,0 +1,39 @@
+From: Krzysztof Kozlowski <krzk@kernel.org>
+Date: Wed, 29 Aug 2018 09:32:23 +0200
+Subject: powerpc/boot: Fix missing crc32poly.h when building with KERNEL_XZ
+Origin: https://patchwork.ozlabs.org/patch/963258/
+
+After commit faa16bc404d7 ("lib: Use existing define with
+polynomial") the lib/xz/xz_crc32.c includes a header from include/linux
+directory thus any other user of this code should define proper include
+path.
+
+This fixes the build error on powerpc with CONFIG_KERNEL_XZ:
+
+ In file included from ../arch/powerpc/boot/../../../lib/decompress_unxz.c:233:0,
+ from ../arch/powerpc/boot/decompress.c:42:
+ ../arch/powerpc/boot/../../../lib/xz/xz_crc32.c:18:29: fatal error: linux/crc32poly.h: No such file or directory
+
+Reported-by: Michal Kubecek <mkubecek@suse.cz>
+Fixes: faa16bc404d7 ("lib: Use existing define with polynomial")
+Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
+Reported-by: kbuild test robot <lkp@intel.com>
+Reported-by: Meelis Roos <mroos@linux.ee>
+Tested-by: Michal Kubecek <mkubecek@suse.cz>
+---
+ arch/powerpc/boot/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: linux/arch/powerpc/boot/Makefile
+===================================================================
+--- linux.orig/arch/powerpc/boot/Makefile
++++ linux/arch/powerpc/boot/Makefile
+@@ -68,7 +68,7 @@ ifeq ($(call cc-option-yn, -fstack-prote
+ BOOTCFLAGS += -fno-stack-protector
+ endif
+
+-BOOTCFLAGS += -I$(objtree)/$(obj) -I$(srctree)/$(obj)
++BOOTCFLAGS += -I$(objtree)/$(obj) -I$(srctree)/$(obj) -I$(srctree)/include
+
+ DTC_FLAGS ?= -p 1024
+
diff --git a/debian/patches/bugfix/powerpc/powerpc-fix-mcpu-options-for-spe-only-compiler.patch b/debian/patches/bugfix/powerpc/powerpc-fix-mcpu-options-for-spe-only-compiler.patch
new file mode 100644
index 000000000..833cf5a3c
--- /dev/null
+++ b/debian/patches/bugfix/powerpc/powerpc-fix-mcpu-options-for-spe-only-compiler.patch
@@ -0,0 +1,42 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Wed, 26 Dec 2018 00:00:40 +0000
+Subject: powerpc: Fix -mcpu= options for SPE-only compiler
+Forwarded: https://lists.debian.org/debian-kernel/2018/12/msg00295.html
+
+GCC for Debian's "powerpcspe" architecture only supports 32-bit
+SPE targets, and using -mcpu=powerpc or -mcpu=powerpc64 is a fatal
+error.
+
+* Change the test for a biarch compiler to pass both the -m32 and -m64
+ options, so that it doesn't catch 32-bit-only compilers
+* Add an ifdef CONFIG_PPC64 around the 64-bit CPU option definitions
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+--- a/arch/powerpc/Makefile
++++ b/arch/powerpc/Makefile
+@@ -12,7 +12,7 @@
+ # Rewritten by Cort Dougan and Paul Mackerras
+ #
+
+-HAS_BIARCH := $(call cc-option-yn, -m32)
++HAS_BIARCH := $(call cc-option-yn, -m32 -m64)
+
+ # Set default 32 bits cross compilers for vdso and boot wrapper
+ CROSS32_COMPILE ?=
+@@ -159,6 +159,7 @@ CFLAGS-$(CONFIG_PPC32) += $(call cc-opti
+
+ CFLAGS-$(CONFIG_PPC32) += $(call cc-option,-mno-readonly-in-sdata)
+
++ifdef CONFIG_PPC64
+ ifdef CONFIG_PPC_BOOK3S_64
+ ifdef CONFIG_CPU_LITTLE_ENDIAN
+ CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=power8
+@@ -170,6 +171,7 @@ endif
+ else ifdef CONFIG_PPC_BOOK3E_64
+ CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=powerpc64
+ endif
++endif
+
+ ifdef CONFIG_FUNCTION_TRACER
+ CC_FLAGS_FTRACE := -pg
diff --git a/debian/patches/bugfix/powerpc/powerpc-lib-makefile-don-t-pull-in-quad.o-for-32-bit.patch b/debian/patches/bugfix/powerpc/powerpc-lib-makefile-don-t-pull-in-quad.o-for-32-bit.patch
new file mode 100644
index 000000000..8fc19da9f
--- /dev/null
+++ b/debian/patches/bugfix/powerpc/powerpc-lib-makefile-don-t-pull-in-quad.o-for-32-bit.patch
@@ -0,0 +1,30 @@
+From: James Clarke <jrtc27@jrtc27.com>
+Date: Sun, 18 Feb 2018 15:54:44 +0000
+Subject: powerpc/lib/Makefile: Don't pull in quad.o for 32-bit kernels
+Origin: https://people.debian.org/~jrtc27/linux-ppc32/0002-powerpc-lib-Makefile-Don-t-pull-in-quad.o-for-32-bit.patch
+
+The functions exported by quad.o are only used when guarded by
+__powerpc64__ and so are unused on 32-bit kernels. Moreover, their
+implementations make use of instructions which will cause an illegal
+instruction error on 32-bit processors, and are not accepted by the
+assembler for SPE processors.
+
+Fixes: 31bfdb036f12 ("powerpc: Use instruction emulation infrastructure to handle alignment faults")
+Signed-off-by: James Clarke <jrtc27@jrtc27.com>
+---
+ arch/powerpc/lib/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: linux/arch/powerpc/lib/Makefile
+===================================================================
+--- linux.orig/arch/powerpc/lib/Makefile
++++ linux/arch/powerpc/lib/Makefile
+@@ -35,7 +35,7 @@ obj64-$(CONFIG_KPROBES_SANITY_TEST) += t
+ obj-y += checksum_$(BITS).o checksum_wrappers.o \
+ string_$(BITS).o memcmp_$(BITS).o
+
+-obj-y += sstep.o ldstfp.o quad.o
++obj-y += sstep.o ldstfp.o
+ obj64-y += quad.o
+
+ obj-$(CONFIG_PPC_LIB_RHEAP) += rheap.o
diff --git a/debian/patches/bugfix/sh/sh-boot-do-not-use-hyphen-in-exported-variable-name.patch b/debian/patches/bugfix/sh/sh-boot-do-not-use-hyphen-in-exported-variable-name.patch
new file mode 100644
index 000000000..8e50801c9
--- /dev/null
+++ b/debian/patches/bugfix/sh/sh-boot-do-not-use-hyphen-in-exported-variable-name.patch
@@ -0,0 +1,132 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Sat, 19 Aug 2017 21:42:09 +0100
+Subject: sh: Do not use hyphen in exported variable names
+Forwarded: https://marc.info/?l=linux-sh&m=150317827322995&w=2
+
+arch/sh/Makefile defines and exports ld-bfd to be used by
+arch/sh/boot/Makefile and arch/sh/boot/compressed/Makefile. Similarly
+arch/sh/boot/Makefile defines and exports suffix-y to be used by
+arch/sh/boot/compressed/Makefile. However some shells, including
+dash, will not pass through environment variables whose name includes
+a hyphen. Usually GNU make does not use a shell to recurse, but if
+e.g. $(srctree) contains '~' it will use a shell here.
+
+Rename these variables to ld_bfd and suffix_y.
+
+References: https://buildd.debian.org/status/fetch.php?pkg=linux&arch=sh4&ver=4.13%7Erc5-1%7Eexp1&stamp=1502943967&raw=0
+Fixes: ef9b542fce00 ("sh: bzip2/lzma uImage support.")
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+ arch/sh/Makefile | 10 +++++-----
+ arch/sh/boot/Makefile | 16 ++++++++--------
+ arch/sh/boot/compressed/Makefile | 6 +++---
+ arch/sh/boot/romimage/Makefile | 4 ++--
+ 4 files changed, 18 insertions(+), 18 deletions(-)
+
+Index: linux/arch/sh/Makefile
+===================================================================
+--- linux.orig/arch/sh/Makefile
++++ linux/arch/sh/Makefile
+@@ -119,16 +119,16 @@ LDFLAGS_vmlinux += --defsym phys_stext=
+ endif
+
+ ifdef CONFIG_CPU_LITTLE_ENDIAN
+-ld-bfd := elf32-$(UTS_MACHINE)-linux
+-LDFLAGS_vmlinux += --defsym jiffies=jiffies_64 --oformat $(ld-bfd)
++ld_bfd := elf32-$(UTS_MACHINE)-linux
++LDFLAGS_vmlinux += --defsym jiffies=jiffies_64 --oformat $(ld_bfd)
+ KBUILD_LDFLAGS += -EL
+ else
+-ld-bfd := elf32-$(UTS_MACHINE)big-linux
+-LDFLAGS_vmlinux += --defsym jiffies=jiffies_64+4 --oformat $(ld-bfd)
++ld_bfd := elf32-$(UTS_MACHINE)big-linux
++LDFLAGS_vmlinux += --defsym jiffies=jiffies_64+4 --oformat $(ld_bfd)
+ KBUILD_LDFLAGS += -EB
+ endif
+
+-export ld-bfd BITS
++export ld_bfd BITS
+
+ head-y := arch/sh/kernel/head_$(BITS).o
+
+Index: linux/arch/sh/boot/Makefile
+===================================================================
+--- linux.orig/arch/sh/boot/Makefile
++++ linux/arch/sh/boot/Makefile
+@@ -19,12 +19,12 @@ CONFIG_ZERO_PAGE_OFFSET ?= 0x00001000
+ CONFIG_ENTRY_OFFSET ?= 0x00001000
+ CONFIG_PHYSICAL_START ?= $(CONFIG_MEMORY_START)
+
+-suffix-y := bin
+-suffix-$(CONFIG_KERNEL_GZIP) := gz
+-suffix-$(CONFIG_KERNEL_BZIP2) := bz2
+-suffix-$(CONFIG_KERNEL_LZMA) := lzma
+-suffix-$(CONFIG_KERNEL_XZ) := xz
+-suffix-$(CONFIG_KERNEL_LZO) := lzo
++suffix_y := bin
++suffix_$(CONFIG_KERNEL_GZIP) := gz
++suffix_$(CONFIG_KERNEL_BZIP2) := bz2
++suffix_$(CONFIG_KERNEL_LZMA) := lzma
++suffix_$(CONFIG_KERNEL_XZ) := xz
++suffix_$(CONFIG_KERNEL_LZO) := lzo
+
+ targets := zImage vmlinux.srec romImage uImage uImage.srec uImage.gz \
+ uImage.bz2 uImage.lzma uImage.xz uImage.lzo uImage.bin
+@@ -106,10 +106,10 @@ OBJCOPYFLAGS_uImage.srec := -I binary -O
+ $(obj)/uImage.srec: $(obj)/uImage
+ $(call if_changed,objcopy)
+
+-$(obj)/uImage: $(obj)/uImage.$(suffix-y)
++$(obj)/uImage: $(obj)/uImage.$(suffix_y)
+ @ln -sf $(notdir $<) $@
+ @echo ' Image $@ is ready'
+
+ export CONFIG_PAGE_OFFSET CONFIG_MEMORY_START CONFIG_BOOT_LINK_OFFSET \
+ CONFIG_PHYSICAL_START CONFIG_ZERO_PAGE_OFFSET CONFIG_ENTRY_OFFSET \
+- KERNEL_MEMORY suffix-y
++ KERNEL_MEMORY suffix_y
+Index: linux/arch/sh/boot/compressed/Makefile
+===================================================================
+--- linux.orig/arch/sh/boot/compressed/Makefile
++++ linux/arch/sh/boot/compressed/Makefile
+@@ -33,7 +33,7 @@ ORIG_CFLAGS := $(KBUILD_CFLAGS)
+ KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS))
+ endif
+
+-LDFLAGS_vmlinux := --oformat $(ld-bfd) -Ttext $(IMAGE_OFFSET) -e startup \
++LDFLAGS_vmlinux := --oformat $(ld_bfd) -Ttext $(IMAGE_OFFSET) -e startup \
+ -T $(obj)/../../kernel/vmlinux.lds
+
+ #
+@@ -75,7 +75,7 @@ $(obj)/vmlinux.bin.lzo: $(vmlinux.bin.al
+
+ OBJCOPYFLAGS += -R .empty_zero_page
+
+-LDFLAGS_piggy.o := -r --format binary --oformat $(ld-bfd) -T
++LDFLAGS_piggy.o := -r --format binary --oformat $(ld_bfd) -T
+
+-$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix-y) FORCE
++$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix_y) FORCE
+ $(call if_changed,ld)
+Index: linux/arch/sh/boot/romimage/Makefile
+===================================================================
+--- linux.orig/arch/sh/boot/romimage/Makefile
++++ linux/arch/sh/boot/romimage/Makefile
+@@ -13,7 +13,7 @@ mmcif-obj-$(CONFIG_CPU_SUBTYPE_SH7724) :
+ load-$(CONFIG_ROMIMAGE_MMCIF) := $(mmcif-load-y)
+ obj-$(CONFIG_ROMIMAGE_MMCIF) := $(mmcif-obj-y)
+
+-LDFLAGS_vmlinux := --oformat $(ld-bfd) -Ttext $(load-y) -e romstart \
++LDFLAGS_vmlinux := --oformat $(ld_bfd) -Ttext $(load-y) -e romstart \
+ -T $(obj)/../../kernel/vmlinux.lds
+
+ $(obj)/vmlinux: $(obj)/head.o $(obj-y) $(obj)/piggy.o FORCE
+@@ -24,7 +24,7 @@ OBJCOPYFLAGS += -j .empty_zero_page
+ $(obj)/zeropage.bin: vmlinux FORCE
+ $(call if_changed,objcopy)
+
+-LDFLAGS_piggy.o := -r --format binary --oformat $(ld-bfd) -T
++LDFLAGS_piggy.o := -r --format binary --oformat $(ld_bfd) -T
+
+ $(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/zeropage.bin arch/sh/boot/zImage FORCE
+ $(call if_changed,ld)
diff --git a/debian/patches/bugfix/x86/perf-tools-fix-unwind-build-on-i386.patch b/debian/patches/bugfix/x86/perf-tools-fix-unwind-build-on-i386.patch
new file mode 100644
index 000000000..e8727ef11
--- /dev/null
+++ b/debian/patches/bugfix/x86/perf-tools-fix-unwind-build-on-i386.patch
@@ -0,0 +1,37 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Sat, 22 Jul 2017 17:37:33 +0100
+Subject: perf tools: Fix unwind build on i386
+Forwarded: no
+
+EINVAL may not be defined when building unwind-libunwind.c with
+REMOTE_UNWIND_LIBUNWIND, resulting in a compiler error in
+LIBUNWIND__ARCH_REG_ID(). Its only caller, access_reg(), only checks
+for a negative return value and doesn't care what it is. So change
+-EINVAL to -1.
+
+Fixes: 52ffe0ff02fc ("Support x86(32-bit) cross platform callchain unwind.")
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+
+Index: linux/tools/perf/arch/x86/util/unwind-libunwind.c
+===================================================================
+--- linux.orig/tools/perf/arch/x86/util/unwind-libunwind.c
++++ linux/tools/perf/arch/x86/util/unwind-libunwind.c
+@@ -67,7 +67,7 @@ int LIBUNWIND__ARCH_REG_ID(int regnum)
+ break;
+ default:
+ pr_err("unwind: invalid reg id %d\n", regnum);
+- return -EINVAL;
++ return -1;
+ }
+
+ return id;
+@@ -107,7 +107,7 @@ int LIBUNWIND__ARCH_REG_ID(int regnum)
+ break;
+ default:
+ pr_err("unwind: invalid reg id %d\n", regnum);
+- return -EINVAL;
++ return -1;
+ }
+
+ return id;
diff --git a/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-310-15ikb-to.patch b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-310-15ikb-to.patch
new file mode 100644
index 000000000..c9cd5cfc4
--- /dev/null
+++ b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-310-15ikb-to.patch
@@ -0,0 +1,37 @@
+From: Sven Rebhan <sven.rebhan@gmail.com>
+Date: Tue, 21 Feb 2017 20:53:48 +0100
+Subject: platform/x86: ideapad-laptop: Add IdeaPad 310-15IKB to no_hw_rfkill
+Origin: https://git.kernel.org/linus/1f3bc53d843f92d6e7e7cf56ee79acec918e6421
+
+Like other Lenovo models the IdeaPad 310-15IKB does not have an hw rfkill
+switch. This results in hard-blocked radios after boot, resulting in
+always blocked radios rendering them unusable.
+
+Add the IdeaPad 310-15IKB to the no_hw_rfkill DMI list and allows using
+the built-in radios.
+
+Signed-off-by: Sven Rebhan <Sven.Rebhan@googlemail.com>
+[andy: massaged commit message]
+Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+---
+ drivers/platform/x86/ideapad-laptop.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+Index: linux/drivers/platform/x86/ideapad-laptop.c
+===================================================================
+--- linux.orig/drivers/platform/x86/ideapad-laptop.c
++++ linux/drivers/platform/x86/ideapad-laptop.c
+@@ -1098,6 +1098,13 @@ static const struct dmi_system_id no_hw_
+ },
+ },
+ {
++ .ident = "Lenovo ideapad 310-15IKB",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++ DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad 310-15IKB"),
++ },
++ },
++ {
+ .ident = "Lenovo ideapad Y700-15ACZ",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
diff --git a/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-v310-15isk-t.patch b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-v310-15isk-t.patch
new file mode 100644
index 000000000..43a075fea
--- /dev/null
+++ b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-v310-15isk-t.patch
@@ -0,0 +1,35 @@
+From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Date: Tue, 21 Feb 2017 20:53:48 +0100
+Subject: platform/x86: ideapad-laptop: Add IdeaPad V310-15ISK to no_hw_rfkill
+Origin: https://git.kernel.org/linus/ccc7179f4d9467947c94f4302d61cd5143842fcd
+
+Like other Lenovo models the IdeaPad V310-15ISK does not have an hw
+rfkill switch. This results in hard-blocked radios after boot, resulting
+in always blocked radios rendering them unusable.
+
+Add the IdeaPad V310-15ISK to the no_hw_rfkill DMI list and allows using
+the built-in radios.
+
+Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+---
+ drivers/platform/x86/ideapad-laptop.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+Index: linux/drivers/platform/x86/ideapad-laptop.c
+===================================================================
+--- linux.orig/drivers/platform/x86/ideapad-laptop.c
++++ linux/drivers/platform/x86/ideapad-laptop.c
+@@ -1098,6 +1098,13 @@ static const struct dmi_system_id no_hw_
+ },
+ },
+ {
++ .ident = "Lenovo V310-15ISK",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++ DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo V310-15ISK"),
++ },
++ },
++ {
+ .ident = "Lenovo ideapad 310-15IKB",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
diff --git a/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-v510-15ikb-t.patch b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-v510-15ikb-t.patch
new file mode 100644
index 000000000..f64747726
--- /dev/null
+++ b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-v510-15ikb-t.patch
@@ -0,0 +1,37 @@
+From: Sven Eckelmann <sven@narfation.org>
+Date: Sat, 1 Jul 2017 08:20:18 +0200
+Subject: platform/x86: ideapad-laptop: Add IdeaPad V510-15IKB to no_hw_rfkill
+Origin: https://git.kernel.org/linus/0df4b805cbccbe3f8378f49c415adb2fcffdd3dc
+Bug-Debian: https://bugs.debian.org/866706
+
+Like other Lenovo models the IdeaPad V510-15IKB does not have an hw
+rfkill switch. This results in hard-blocked radios after boot, resulting
+in always blocked radios rendering them unusable.
+
+Add the IdeaPad V510-15IKB to the no_hw_rfkill DMI list and allows using
+the built-in radios.
+
+Signed-off-by: Sven Eckelmann <sven@narfation.org>
+Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+---
+ drivers/platform/x86/ideapad-laptop.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+Index: linux/drivers/platform/x86/ideapad-laptop.c
+===================================================================
+--- linux.orig/drivers/platform/x86/ideapad-laptop.c
++++ linux/drivers/platform/x86/ideapad-laptop.c
+@@ -1105,6 +1105,13 @@ static const struct dmi_system_id no_hw_
+ },
+ },
+ {
++ .ident = "Lenovo V510-15IKB",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++ DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo V510-15IKB"),
++ },
++ },
++ {
+ .ident = "Lenovo ideapad 310-15IKB",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
diff --git a/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-several-models-to-no.patch b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-several-models-to-no.patch
new file mode 100644
index 000000000..4041cd9a3
--- /dev/null
+++ b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-several-models-to-no.patch
@@ -0,0 +1,112 @@
+From: Yang Jiaxun <yjx@flygoat.com>
+Date: Tue, 4 Jul 2017 14:39:19 +0000
+Subject: platform/x86: ideapad-laptop: Add several models to no_hw_rfkill
+Origin: https://git.kernel.org/linus/710c059c248a24609051f5a3dd1d8468cdc675b0
+
+Some Lenovo ideapad models do not have hardware rfkill switches, but
+trying to read the rfkill switches through the ideapad-laptop module.
+It caused to always reported blocking breaking wifi.
+
+Fix it by adding those models to no_hw_rfkill_list.
+
+Signed-off-by: Yang Jiaxun <yjx@flygoat.com>
+Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+---
+ drivers/platform/x86/ideapad-laptop.c | 70 +++++++++++++++++++++++++++++++++++
+ 1 file changed, 70 insertions(+)
+
+Index: linux/drivers/platform/x86/ideapad-laptop.c
+===================================================================
+--- linux.orig/drivers/platform/x86/ideapad-laptop.c
++++ linux/drivers/platform/x86/ideapad-laptop.c
+@@ -1098,6 +1098,27 @@ static const struct dmi_system_id no_hw_
+ },
+ },
+ {
++ .ident = "Lenovo V310-14IKB",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++ DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo V310-14IKB"),
++ },
++ },
++ {
++ .ident = "Lenovo V310-14ISK",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++ DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo V310-14ISK"),
++ },
++ },
++ {
++ .ident = "Lenovo V310-15IKB",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++ DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo V310-15IKB"),
++ },
++ },
++ {
+ .ident = "Lenovo V310-15ISK",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+@@ -1112,6 +1133,41 @@ static const struct dmi_system_id no_hw_
+ },
+ },
+ {
++ .ident = "Lenovo ideapad 300-15IBR",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++ DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad 300-15IBR"),
++ },
++ },
++ {
++ .ident = "Lenovo ideapad 300-15IKB",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++ DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad 300-15IKB"),
++ },
++ },
++ {
++ .ident = "Lenovo ideapad 300S-11IBR",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++ DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad 300S-11BR"),
++ },
++ },
++ {
++ .ident = "Lenovo ideapad 310-15ABR",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++ DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad 310-15ABR"),
++ },
++ },
++ {
++ .ident = "Lenovo ideapad 310-15IAP",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++ DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad 310-15IAP"),
++ },
++ },
++ {
+ .ident = "Lenovo ideapad 310-15IKB",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+@@ -1119,6 +1175,20 @@ static const struct dmi_system_id no_hw_
+ },
+ },
+ {
++ .ident = "Lenovo ideapad 310-15ISK",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++ DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad 310-15ISK"),
++ },
++ },
++ {
++ .ident = "Lenovo ideapad Y700-14ISK",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++ DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad Y700-14ISK"),
++ },
++ },
++ {
+ .ident = "Lenovo ideapad Y700-15ACZ",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
diff --git a/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-y520-15ikbn-to-no_hw.patch b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-y520-15ikbn-to-no_hw.patch
new file mode 100644
index 000000000..0020839df
--- /dev/null
+++ b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-y520-15ikbn-to-no_hw.patch
@@ -0,0 +1,35 @@
+From: Olle Liljenzin <olle@liljenzin.se>
+Date: Sun, 18 Jun 2017 13:09:31 +0200
+Subject: platform/x86: ideapad-laptop: Add Y520-15IKBN to no_hw_rfkill
+Origin: https://git.kernel.org/linus/5d9f40b56630a8702b5f7a61a770f9b73aa07464
+
+Lenovo Legion Y520-15IKBN is yet another Lenovo model that does not
+have an hw rfkill switch, resulting in wifi always reported as hard
+blocked.
+
+Add the model to the list of models without rfkill switch.
+
+Signed-off-by: Olle Liljenzin <olle@liljenzin.se>
+Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+---
+ drivers/platform/x86/ideapad-laptop.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+Index: linux/drivers/platform/x86/ideapad-laptop.c
+===================================================================
+--- linux.orig/drivers/platform/x86/ideapad-laptop.c
++++ linux/drivers/platform/x86/ideapad-laptop.c
+@@ -1182,6 +1182,13 @@ static const struct dmi_system_id no_hw_
+ },
+ },
+ {
++ .ident = "Lenovo Legion Y520-15IKBN",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++ DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo Y520-15IKBN"),
++ },
++ },
++ {
+ .ident = "Lenovo Yoga 2 11 / 13 / Pro",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
diff --git a/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-y720-15ikbn-to-no_hw.patch b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-y720-15ikbn-to-no_hw.patch
new file mode 100644
index 000000000..59f3dc3f6
--- /dev/null
+++ b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-y720-15ikbn-to-no_hw.patch
@@ -0,0 +1,35 @@
+From: Olle Liljenzin <olle@liljenzin.se>
+Date: Sun, 18 Jun 2017 14:37:58 +0200
+Subject: platform/x86: ideapad-laptop: Add Y720-15IKBN to no_hw_rfkill
+Origin: https://git.kernel.org/linus/b2f2fe205c3b9b595dc50ee431230a45d03f9c2c
+
+Lenovo Legion Y720-15IKBN is yet another Lenovo model that does not
+have an hw rfkill switch, resulting in wifi always reported as hard
+blocked.
+
+Add the model to the list of models without rfkill switch.
+
+Signed-off-by: Olle Liljenzin <olle@liljenzin.se>
+Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+---
+ drivers/platform/x86/ideapad-laptop.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+Index: linux/drivers/platform/x86/ideapad-laptop.c
+===================================================================
+--- linux.orig/drivers/platform/x86/ideapad-laptop.c
++++ linux/drivers/platform/x86/ideapad-laptop.c
+@@ -1189,6 +1189,13 @@ static const struct dmi_system_id no_hw_
+ },
+ },
+ {
++ .ident = "Lenovo Legion Y720-15IKBN",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++ DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo Y720-15IKBN"),
++ },
++ },
++ {
+ .ident = "Lenovo Yoga 2 11 / 13 / Pro",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
diff --git a/debian/patches/bugfix/x86/revert-perf-build-fix-libunwind-feature-detection-on.patch b/debian/patches/bugfix/x86/revert-perf-build-fix-libunwind-feature-detection-on.patch
new file mode 100644
index 000000000..e571c91fe
--- /dev/null
+++ b/debian/patches/bugfix/x86/revert-perf-build-fix-libunwind-feature-detection-on.patch
@@ -0,0 +1,24 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Fri, 25 Sep 2015 22:50:50 +0100
+Subject: Revert "perf build: Fix libunwind feature detection on 32-bit x86"
+Forwarded: no
+
+This reverts commit 05b41775e2edd69a83f592e3534930c934d4038e.
+It broke feature detection that was working just fine for us.
+---
+ tools/perf/Makefile.config | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: linux/tools/perf/Makefile.config
+===================================================================
+--- linux.orig/tools/perf/Makefile.config
++++ linux/tools/perf/Makefile.config
+@@ -42,7 +42,7 @@ ifeq ($(SRCARCH),x86)
+ LIBUNWIND_LIBS = -lunwind-x86_64 -lunwind -llzma
+ $(call detected,CONFIG_X86_64)
+ else
+- LIBUNWIND_LIBS = -lunwind-x86 -llzma -lunwind
++ LIBUNWIND_LIBS = -lunwind -lunwind-x86
+ endif
+ NO_PERF_REGS := 0
+ endif
diff --git a/debian/patches/bugfix/x86/tools-turbostat-Add-checks-for-failure-of-fgets-and-.patch b/debian/patches/bugfix/x86/tools-turbostat-Add-checks-for-failure-of-fgets-and-.patch
new file mode 100644
index 000000000..77b56df47
--- /dev/null
+++ b/debian/patches/bugfix/x86/tools-turbostat-Add-checks-for-failure-of-fgets-and-.patch
@@ -0,0 +1,114 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Tue, 11 Sep 2018 03:07:28 +0100
+Subject: tools: turbostat: Add checks for failure of fgets() and fscanf()
+Forwarded: https://marc.info/?l=linux-pm&m=153711036626779
+
+Most calls to fgets() and fscanf() are followed by error checks.
+Add an exit-on-error in the remaining cases.
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+ tools/power/x86/turbostat/turbostat.c | 28 +++++++++++++++++----------
+ 1 file changed, 18 insertions(+), 10 deletions(-)
+
+Index: linux/tools/power/x86/turbostat/turbostat.c
+===================================================================
+--- linux.orig/tools/power/x86/turbostat/turbostat.c
++++ linux/tools/power/x86/turbostat/turbostat.c
+@@ -2554,7 +2554,8 @@ int get_thread_siblings(struct cpu_topol
+ filep = fopen_or_die(path, "r");
+ do {
+ offset -= BITMASK_SIZE;
+- fscanf(filep, "%lx%c", &map, &character);
++ if (fscanf(filep, "%lx%c", &map, &character) != 2)
++ err(1, "%s: failed to parse file", path);
+ for (shift = 0; shift < BITMASK_SIZE; shift++) {
+ if ((map >> shift) & 0x1) {
+ so = shift + offset;
+@@ -3407,14 +3408,14 @@ dump_sysfs_cstate_config(void)
+ input = fopen(path, "r");
+ if (input == NULL)
+ continue;
+- fgets(name_buf, sizeof(name_buf), input);
++ if (!fgets(name_buf, sizeof(name_buf), input))
++ err(1, "%s: failed to read file", path);
+
+ /* truncate "C1-HSW\n" to "C1", or truncate "C1\n" to "C1" */
+ sp = strchr(name_buf, '-');
+ if (!sp)
+ sp = strchrnul(name_buf, '\n');
+ *sp = '\0';
+-
+ fclose(input);
+
+ sprintf(path, "/sys/devices/system/cpu/cpu%d/cpuidle/state%d/desc",
+@@ -3422,7 +3423,8 @@ dump_sysfs_cstate_config(void)
+ input = fopen(path, "r");
+ if (input == NULL)
+ continue;
+- fgets(desc, sizeof(desc), input);
++ if (!fgets(desc, sizeof(desc), input))
++ err(1, "%s: failed to read file", path);
+
+ fprintf(outf, "cpu%d: %s: %s", base_cpu, name_buf, desc);
+ fclose(input);
+@@ -3444,7 +3446,8 @@ dump_sysfs_pstate_config(void)
+ fprintf(stderr, "NSFOD %s\n", path);
+ return;
+ }
+- fgets(driver_buf, sizeof(driver_buf), input);
++ if (!fgets(driver_buf, sizeof(driver_buf), input))
++ err(1, "%s: failed to read file", path);
+ fclose(input);
+
+ sprintf(path, "/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor",
+@@ -3454,7 +3457,8 @@ dump_sysfs_pstate_config(void)
+ fprintf(stderr, "NSFOD %s\n", path);
+ return;
+ }
+- fgets(governor_buf, sizeof(governor_buf), input);
++ if (!fgets(governor_buf, sizeof(governor_buf), input))
++ err(1, "%s: failed to read file", path);
+ fclose(input);
+
+ fprintf(outf, "cpu%d: cpufreq driver: %s", base_cpu, driver_buf);
+@@ -3463,7 +3467,8 @@ dump_sysfs_pstate_config(void)
+ sprintf(path, "/sys/devices/system/cpu/cpufreq/boost");
+ input = fopen(path, "r");
+ if (input != NULL) {
+- fscanf(input, "%d", &turbo);
++ if (fscanf(input, "%d", &turbo) != 1)
++ err(1, "%s: failed to parse number from file", path);
+ fprintf(outf, "cpufreq boost: %d\n", turbo);
+ fclose(input);
+ }
+@@ -3471,7 +3476,8 @@ dump_sysfs_pstate_config(void)
+ sprintf(path, "/sys/devices/system/cpu/intel_pstate/no_turbo");
+ input = fopen(path, "r");
+ if (input != NULL) {
+- fscanf(input, "%d", &turbo);
++ if (fscanf(input, "%d", &turbo) != 1)
++ err(1, "%s: failed to parse number from file", path);
+ fprintf(outf, "cpufreq intel_pstate no_turbo: %d\n", turbo);
+ fclose(input);
+ }
+@@ -5296,7 +5302,8 @@ void probe_sysfs(void)
+ input = fopen(path, "r");
+ if (input == NULL)
+ continue;
+- fgets(name_buf, sizeof(name_buf), input);
++ if (!fgets(name_buf, sizeof(name_buf), input))
++ err(1, "%s: failed to read file", path);
+
+ /* truncate "C1-HSW\n" to "C1", or truncate "C1\n" to "C1" */
+ sp = strchr(name_buf, '-');
+@@ -5323,7 +5330,8 @@ void probe_sysfs(void)
+ input = fopen(path, "r");
+ if (input == NULL)
+ continue;
+- fgets(name_buf, sizeof(name_buf), input);
++ if (!fgets(name_buf, sizeof(name_buf), input))
++ err(1, "%s: failed to read file", path);
+ /* truncate "C1-HSW\n" to "C1", or truncate "C1\n" to "C1" */
+ sp = strchr(name_buf, '-');
+ if (!sp)
diff --git a/debian/patches/bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch b/debian/patches/bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch
new file mode 100644
index 000000000..14df64f35
--- /dev/null
+++ b/debian/patches/bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch
@@ -0,0 +1,36 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Sat, 20 Apr 2013 15:52:02 +0100
+Subject: viafb: Autoload on OLPC XO 1.5 only
+Bug-Debian: https://bugs.debian.org/705788
+Forwarded: no
+
+It appears that viafb won't work automatically on all the boards for
+which it has a PCI device ID match. Currently, it is blacklisted by
+udev along with most other framebuffer drivers, so this doesn't matter
+much.
+
+However, this driver is required for console support on the XO 1.5.
+We need to allow it to be autoloaded on this model only, and then
+un-blacklist it in udev.
+
+---
+Index: linux/drivers/video/fbdev/via/via-core.c
+===================================================================
+--- linux.orig/drivers/video/fbdev/via/via-core.c
++++ linux/drivers/video/fbdev/via/via-core.c
+@@ -752,7 +752,14 @@ static const struct pci_device_id via_pc
+ .driver_data = UNICHROME_VX900 },
+ { }
+ };
+-MODULE_DEVICE_TABLE(pci, via_pci_table);
++
++static const struct pci_device_id via_pci_autoload_table[] __initconst = {
++ /* OLPC XO 1.5 */
++ { PCI_DEVICE(PCI_VENDOR_ID_VIA, UNICHROME_VX855_DID),
++ .subvendor = 0x152d, .subdevice = 0x0833 },
++ { }
++};
++MODULE_DEVICE_TABLE(pci, via_pci_autoload_table);
+
+ static struct pci_driver via_driver = {
+ .name = "viafb",
diff --git a/debian/patches/bugfix/x86/x86-32-disable-3dnow-in-generic-config.patch b/debian/patches/bugfix/x86/x86-32-disable-3dnow-in-generic-config.patch
new file mode 100644
index 000000000..2970dc8b4
--- /dev/null
+++ b/debian/patches/bugfix/x86/x86-32-disable-3dnow-in-generic-config.patch
@@ -0,0 +1,31 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Tue, 25 Sep 2018 19:44:13 +0100
+Subject: x86-32: Disable 3D-Now in generic config
+
+We want the 686 flavour to run on Geode LX and similar AMD family 5
+CPUs as well as family 6 and higher CPUs. This used to work with
+CONFIG_M686=y. However commit 25d76ac88821 "x86/Kconfig: Explicitly
+enumerate i686-class CPUs in Kconfig" in Linux 4.16 has made the
+kernel require family 6 or higher.
+
+It looks like a sensible choice would be to enable CONFIG_MGEODE_LX
+and CONFIG_X86_GENERIC (for more generic optimisations), but this
+currently enables CONFIG_X86_USE_3D_NOW which will cause the kernel to
+crash on CPUs without the AMD-specific 3D-Now instructions.
+
+Make CONFIG_X86_USE_3DNOW depend on CONFIG_X86_GENERIC being disabled.
+
+---
+Index: linux/arch/x86/Kconfig.cpu
+===================================================================
+--- linux.orig/arch/x86/Kconfig.cpu
++++ linux/arch/x86/Kconfig.cpu
+@@ -337,7 +337,7 @@ config X86_USE_PPRO_CHECKSUM
+
+ config X86_USE_3DNOW
+ def_bool y
+- depends on (MCYRIXIII || MK7 || MGEODE_LX) && !UML
++ depends on (MCYRIXIII || MK7 || MGEODE_LX) && !X86_GENERIC && !UML
+
+ #
+ # P6_NOPs are a relatively minor optimization that require a family >=
diff --git a/debian/patches/debian/add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch b/debian/patches/debian/add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch
new file mode 100644
index 000000000..3f6baa5dc
--- /dev/null
+++ b/debian/patches/debian/add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch
@@ -0,0 +1,99 @@
+From: Serge Hallyn <serge.hallyn@canonical.com>
+Date: Fri, 31 May 2013 19:12:12 +0000 (+0100)
+Subject: add sysctl to disallow unprivileged CLONE_NEWUSER by default
+Origin: http://kernel.ubuntu.com/git?p=serge%2Fubuntu-saucy.git;a=commit;h=5c847404dcb2e3195ad0057877e1422ae90892b8
+
+add sysctl to disallow unprivileged CLONE_NEWUSER by default
+
+This is a short-term patch. Unprivileged use of CLONE_NEWUSER
+is certainly an intended feature of user namespaces. However
+for at least saucy we want to make sure that, if any security
+issues are found, we have a fail-safe.
+
+Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
+[bwh: Remove unneeded binary sysctl bits]
+---
+Index: linux/kernel/fork.c
+===================================================================
+--- linux.orig/kernel/fork.c
++++ linux/kernel/fork.c
+@@ -103,6 +103,11 @@
+
+ #define CREATE_TRACE_POINTS
+ #include <trace/events/task.h>
++#ifdef CONFIG_USER_NS
++extern int unprivileged_userns_clone;
++#else
++#define unprivileged_userns_clone 0
++#endif
+
+ /*
+ * Minimum number of threads to boot the kernel
+@@ -1675,6 +1680,10 @@ static __latent_entropy struct task_stru
+ if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS))
+ return ERR_PTR(-EINVAL);
+
++ if ((clone_flags & CLONE_NEWUSER) && !unprivileged_userns_clone)
++ if (!capable(CAP_SYS_ADMIN))
++ return ERR_PTR(-EPERM);
++
+ /*
+ * Thread groups must share signals as well, and detached threads
+ * can only be started up within the thread group.
+@@ -2504,6 +2513,12 @@ int ksys_unshare(unsigned long unshare_f
+ if (unshare_flags & CLONE_NEWNS)
+ unshare_flags |= CLONE_FS;
+
++ if ((unshare_flags & CLONE_NEWUSER) && !unprivileged_userns_clone) {
++ err = -EPERM;
++ if (!capable(CAP_SYS_ADMIN))
++ goto bad_unshare_out;
++ }
++
+ err = check_unshare_flags(unshare_flags);
+ if (err)
+ goto bad_unshare_out;
+Index: linux/kernel/sysctl.c
+===================================================================
+--- linux.orig/kernel/sysctl.c
++++ linux/kernel/sysctl.c
+@@ -105,6 +105,9 @@ extern int core_uses_pid;
+ extern char core_pattern[];
+ extern unsigned int core_pipe_limit;
+ #endif
++#ifdef CONFIG_USER_NS
++extern int unprivileged_userns_clone;
++#endif
+ extern int pid_max;
+ extern int pid_max_min, pid_max_max;
+ extern int percpu_pagelist_fraction;
+@@ -515,6 +518,15 @@ static struct ctl_table kern_table[] = {
+ .mode = 0644,
+ .proc_handler = proc_dointvec,
+ },
++#endif
++#ifdef CONFIG_USER_NS
++ {
++ .procname = "unprivileged_userns_clone",
++ .data = &unprivileged_userns_clone,
++ .maxlen = sizeof(int),
++ .mode = 0644,
++ .proc_handler = proc_dointvec,
++ },
+ #endif
+ #ifdef CONFIG_PROC_SYSCTL
+ {
+Index: linux/kernel/user_namespace.c
+===================================================================
+--- linux.orig/kernel/user_namespace.c
++++ linux/kernel/user_namespace.c
+@@ -26,6 +26,9 @@
+ #include <linux/bsearch.h>
+ #include <linux/sort.h>
+
++/* sysctl */
++int unprivileged_userns_clone;
++
+ static struct kmem_cache *user_ns_cachep __read_mostly;
+ static DEFINE_MUTEX(userns_state_mutex);
+
diff --git a/debian/patches/debian/af_802154-Disable-auto-loading-as-mitigation-against.patch b/debian/patches/debian/af_802154-Disable-auto-loading-as-mitigation-against.patch
new file mode 100644
index 000000000..8726519ad
--- /dev/null
+++ b/debian/patches/debian/af_802154-Disable-auto-loading-as-mitigation-against.patch
@@ -0,0 +1,31 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Fri, 19 Nov 2010 02:12:48 +0000
+Subject: [PATCH 2/3] af_802154: Disable auto-loading as mitigation against local exploits
+Forwarded: not-needed
+
+Recent review has revealed several bugs in obscure protocol
+implementations that can be exploited by local users for denial of
+service or privilege escalation. We can mitigate the effect of any
+remaining vulnerabilities in such protocols by preventing unprivileged
+users from loading the modules, so that they are only exploitable on
+systems where the administrator has chosen to load the protocol.
+
+The 'af_802154' (IEEE 802.15.4) protocol is not widely used, was
+not present in the 'lenny' kernel, and seems to receive only sporadic
+maintenance. Therefore disable auto-loading.
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+ net/ieee802154/socket.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+Index: linux/net/ieee802154/socket.c
+===================================================================
+--- linux.orig/net/ieee802154/socket.c
++++ linux/net/ieee802154/socket.c
+@@ -1144,4 +1144,4 @@ module_init(af_ieee802154_init);
+ module_exit(af_ieee802154_remove);
+
+ MODULE_LICENSE("GPL");
+-MODULE_ALIAS_NETPROTO(PF_IEEE802154);
++/* MODULE_ALIAS_NETPROTO(PF_IEEE802154); */
diff --git a/debian/patches/debian/android-enable-building-ashmem-and-binder-as-modules.patch b/debian/patches/debian/android-enable-building-ashmem-and-binder-as-modules.patch
new file mode 100644
index 000000000..da02e00e0
--- /dev/null
+++ b/debian/patches/debian/android-enable-building-ashmem-and-binder-as-modules.patch
@@ -0,0 +1,97 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Fri, 22 Jun 2018 17:27:00 +0100
+Subject: android: Enable building ashmem and binder as modules
+Bug-Debian: https://bugs.debian.org/901492
+
+We want to enable use of the Android ashmem and binder drivers to
+support Anbox, but they should not be built-in as that would waste
+resources and increase security attack surface on systems that don't
+need them.
+
+- Add a MODULE_LICENSE declaration to ashmem
+- Change the Makefiles to build each driver as an object with the
+ "_linux" suffix (which is what Anbox expects)
+- Change config symbol types to tristate
+
+---
+Index: linux/drivers/android/Kconfig
+===================================================================
+--- linux.orig/drivers/android/Kconfig
++++ linux/drivers/android/Kconfig
+@@ -9,7 +9,7 @@ config ANDROID
+ if ANDROID
+
+ config ANDROID_BINDER_IPC
+- bool "Android Binder IPC Driver"
++ tristate "Android Binder IPC Driver"
+ depends on MMU
+ default n
+ ---help---
+Index: linux/drivers/android/Makefile
+===================================================================
+--- linux.orig/drivers/android/Makefile
++++ linux/drivers/android/Makefile
+@@ -1,4 +1,5 @@
+ ccflags-y += -I$(src) # needed for trace events
+
+-obj-$(CONFIG_ANDROID_BINDER_IPC) += binder.o binder_alloc.o
+-obj-$(CONFIG_ANDROID_BINDER_IPC_SELFTEST) += binder_alloc_selftest.o
++obj-$(CONFIG_ANDROID_BINDER_IPC) += binder_linux.o
++binder_linux-y := binder.o binder_alloc.o
++binder_linux-$(CONFIG_ANDROID_BINDER_IPC_SELFTEST) += binder_alloc_selftest.o
+Index: linux/drivers/staging/android/Kconfig
+===================================================================
+--- linux.orig/drivers/staging/android/Kconfig
++++ linux/drivers/staging/android/Kconfig
+@@ -3,7 +3,7 @@ menu "Android"
+ if ANDROID
+
+ config ASHMEM
+- bool "Enable the Anonymous Shared Memory Subsystem"
++ tristate "Enable the Anonymous Shared Memory Subsystem"
+ default n
+ depends on SHMEM
+ help
+Index: linux/drivers/staging/android/Makefile
+===================================================================
+--- linux.orig/drivers/staging/android/Makefile
++++ linux/drivers/staging/android/Makefile
+@@ -2,5 +2,6 @@ ccflags-y += -I$(src) # needed for tra
+
+ obj-y += ion/
+
+-obj-$(CONFIG_ASHMEM) += ashmem.o
++obj-$(CONFIG_ASHMEM) += ashmem_linux.o
++ashmem_linux-y += ashmem.o
+ obj-$(CONFIG_ANDROID_VSOC) += vsoc.o
+Index: linux/drivers/staging/android/ashmem.c
+===================================================================
+--- linux.orig/drivers/staging/android/ashmem.c
++++ linux/drivers/staging/android/ashmem.c
+@@ -24,6 +24,7 @@
+ #include <linux/bitops.h>
+ #include <linux/mutex.h>
+ #include <linux/shmem_fs.h>
++#include <linux/module.h>
+ #include "ashmem.h"
+
+ #define ASHMEM_NAME_PREFIX "dev/ashmem/"
+@@ -924,3 +925,5 @@ out:
+ return ret;
+ }
+ device_initcall(ashmem_init);
++
++MODULE_LICENSE("GPL v2");
+Index: linux/drivers/android/binder_alloc.c
+===================================================================
+--- linux.orig/drivers/android/binder_alloc.c
++++ linux/drivers/android/binder_alloc.c
+@@ -44,7 +44,7 @@ enum {
+ };
+ static uint32_t binder_alloc_debug_mask = BINDER_DEBUG_USER_ERROR;
+
+-module_param_named(debug_mask, binder_alloc_debug_mask,
++module_param_named(alloc_debug_mask, binder_alloc_debug_mask,
+ uint, 0644);
+
+ #define binder_alloc_debug(mask, x...) \
diff --git a/debian/patches/debian/arch-sh4-fix-uimage-build.patch b/debian/patches/debian/arch-sh4-fix-uimage-build.patch
new file mode 100644
index 000000000..d9c651ccb
--- /dev/null
+++ b/debian/patches/debian/arch-sh4-fix-uimage-build.patch
@@ -0,0 +1,20 @@
+From: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
+Subject: [sh4] Fix uImage build
+Bug-Debian: https://bugs.debian.org/569034
+Forwarded: not-needed
+
+[bwh: This was added without a description, but I think it is dealing
+with a similar issue to powerpcspe-omit-uimage.patch]
+
+Index: linux/arch/sh/Makefile
+===================================================================
+--- linux.orig/arch/sh/Makefile
++++ linux/arch/sh/Makefile
+@@ -89,7 +89,6 @@ OBJCOPYFLAGS := -O binary -R .note -R .n
+
+ # Give the various platforms the opportunity to set default image types
+ defaultimage-$(CONFIG_SUPERH32) := zImage
+-defaultimage-$(CONFIG_SH_SH7785LCR) := uImage
+ defaultimage-$(CONFIG_SH_RSK) := uImage
+ defaultimage-$(CONFIG_SH_URQUELL) := uImage
+ defaultimage-$(CONFIG_SH_MIGOR) := uImage
diff --git a/debian/patches/debian/btrfs-warn-about-raid5-6-being-experimental-at-mount.patch b/debian/patches/debian/btrfs-warn-about-raid5-6-being-experimental-at-mount.patch
new file mode 100644
index 000000000..5be1b26a7
--- /dev/null
+++ b/debian/patches/debian/btrfs-warn-about-raid5-6-being-experimental-at-mount.patch
@@ -0,0 +1,37 @@
+From: Adam Borowski <kilobyte@angband.pl>
+Date: Tue, 28 Mar 2017 16:55:05 +0200
+Subject: btrfs: warn about RAID5/6 being experimental at mount time
+Bug-Debian: https://bugs.debian.org/863290
+Origin: https://bugs.debian.org/863290#5
+
+Too many people come complaining about losing their data -- and indeed,
+there's no warning outside a wiki and the mailing list tribal knowledge.
+Message severity chosen for consistency with XFS -- "alert" makes dmesg
+produce nice red background which should get the point across.
+
+Signed-off-by: Adam Borowski <kilobyte@angband.pl>
+[bwh: Also add_taint() so this is flagged in bug reports]
+---
+ fs/btrfs/disk-io.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+Index: linux/fs/btrfs/disk-io.c
+===================================================================
+--- linux.orig/fs/btrfs/disk-io.c
++++ linux/fs/btrfs/disk-io.c
+@@ -3089,6 +3089,15 @@ retry_root_backup:
+ btrfs_set_and_info(fs_info, SSD, "enabling ssd optimizations");
+ }
+
++ if ((fs_info->avail_data_alloc_bits |
++ fs_info->avail_metadata_alloc_bits |
++ fs_info->avail_system_alloc_bits) &
++ BTRFS_BLOCK_GROUP_RAID56_MASK) {
++ btrfs_alert(fs_info,
++ "btrfs RAID5/6 is EXPERIMENTAL and has known data-loss bugs");
++ add_taint(TAINT_USER, LOCKDEP_STILL_OK);
++ }
++
+ /*
+ * Mount does not set all options immediately, we can do it now and do
+ * not have to wait for transaction commit
diff --git a/debian/patches/debian/cdc_ncm-cdc_mbim-use-ncm-by-default.patch b/debian/patches/debian/cdc_ncm-cdc_mbim-use-ncm-by-default.patch
new file mode 100644
index 000000000..57e118698
--- /dev/null
+++ b/debian/patches/debian/cdc_ncm-cdc_mbim-use-ncm-by-default.patch
@@ -0,0 +1,29 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Subject: cdc_ncm,cdc_mbim: Use NCM by default
+Date: Sun, 31 Mar 2013 03:58:04 +0100
+Forwarded: not-needed
+
+Devices that support both NCM and MBIM modes should be kept in NCM
+mode unless there is userland support for MBIM.
+
+Set the default value of cdc_ncm.prefer_mbim to false and leave it to
+userland (modem-manager) to override this with a modprobe.conf file
+once it's ready to speak MBIM.
+
+---
+Index: linux/drivers/net/usb/cdc_ncm.c
+===================================================================
+--- linux.orig/drivers/net/usb/cdc_ncm.c
++++ linux/drivers/net/usb/cdc_ncm.c
+@@ -53,11 +53,7 @@
+ #include <linux/usb/cdc.h>
+ #include <linux/usb/cdc_ncm.h>
+
+-#if IS_ENABLED(CONFIG_USB_NET_CDC_MBIM)
+-static bool prefer_mbim = true;
+-#else
+ static bool prefer_mbim;
+-#endif
+ module_param(prefer_mbim, bool, 0644);
+ MODULE_PARM_DESC(prefer_mbim, "Prefer MBIM setting on dual NCM/MBIM functions");
+
diff --git a/debian/patches/debian/dccp-disable-auto-loading-as-mitigation-against-local-exploits.patch b/debian/patches/debian/dccp-disable-auto-loading-as-mitigation-against-local-exploits.patch
new file mode 100644
index 000000000..9f0e897c7
--- /dev/null
+++ b/debian/patches/debian/dccp-disable-auto-loading-as-mitigation-against-local-exploits.patch
@@ -0,0 +1,45 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Thu, 16 Feb 2017 19:09:17 +0000
+Subject: dccp: Disable auto-loading as mitigation against local exploits
+Forwarded: not-needed
+
+We can mitigate the effect of vulnerabilities in obscure protocols by
+preventing unprivileged users from loading the modules, so that they
+are only exploitable on systems where the administrator has chosen to
+load the protocol.
+
+The 'dccp' protocol is not actively maintained or widely used.
+Therefore disable auto-loading.
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+Index: linux/net/dccp/ipv4.c
+===================================================================
+--- linux.orig/net/dccp/ipv4.c
++++ linux/net/dccp/ipv4.c
+@@ -1079,8 +1079,8 @@ module_exit(dccp_v4_exit);
+ * values directly, Also cover the case where the protocol is not specified,
+ * i.e. net-pf-PF_INET-proto-0-type-SOCK_DCCP
+ */
+-MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET, 33, 6);
+-MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET, 0, 6);
++/* MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET, 33, 6); */
++/* MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET, 0, 6); */
+ MODULE_LICENSE("GPL");
+ MODULE_AUTHOR("Arnaldo Carvalho de Melo <acme@mandriva.com>");
+ MODULE_DESCRIPTION("DCCP - Datagram Congestion Controlled Protocol");
+Index: linux/net/dccp/ipv6.c
+===================================================================
+--- linux.orig/net/dccp/ipv6.c
++++ linux/net/dccp/ipv6.c
+@@ -1162,8 +1162,8 @@ module_exit(dccp_v6_exit);
+ * values directly, Also cover the case where the protocol is not specified,
+ * i.e. net-pf-PF_INET6-proto-0-type-SOCK_DCCP
+ */
+-MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET6, 33, 6);
+-MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET6, 0, 6);
++/* MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET6, 33, 6); */
++/* MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET6, 0, 6); */
+ MODULE_LICENSE("GPL");
+ MODULE_AUTHOR("Arnaldo Carvalho de Melo <acme@mandriva.com>");
+ MODULE_DESCRIPTION("DCCPv6 - Datagram Congestion Controlled Protocol");
diff --git a/debian/patches/debian/decnet-Disable-auto-loading-as-mitigation-against-lo.patch b/debian/patches/debian/decnet-Disable-auto-loading-as-mitigation-against-lo.patch
new file mode 100644
index 000000000..cb83e5ee8
--- /dev/null
+++ b/debian/patches/debian/decnet-Disable-auto-loading-as-mitigation-against-lo.patch
@@ -0,0 +1,34 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Sat, 20 Nov 2010 02:24:55 +0000
+Subject: [PATCH] decnet: Disable auto-loading as mitigation against local exploits
+Forwarded: not-needed
+
+Recent review has revealed several bugs in obscure protocol
+implementations that can be exploited by local users for denial of
+service or privilege escalation. We can mitigate the effect of any
+remaining vulnerabilities in such protocols by preventing unprivileged
+users from loading the modules, so that they are only exploitable on
+systems where the administrator has chosen to load the protocol.
+
+The 'decnet' protocol is unmaintained and of mostly historical
+interest, and the user-space support package 'dnet-common' loads the
+module explicitly. Therefore disable auto-loading.
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+ net/decnet/af_decnet.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+Index: linux/net/decnet/af_decnet.c
+===================================================================
+--- linux.orig/net/decnet/af_decnet.c
++++ linux/net/decnet/af_decnet.c
+@@ -2346,7 +2346,7 @@ static const struct proto_ops dn_proto_o
+ MODULE_DESCRIPTION("The Linux DECnet Network Protocol");
+ MODULE_AUTHOR("Linux DECnet Project Team");
+ MODULE_LICENSE("GPL");
+-MODULE_ALIAS_NETPROTO(PF_DECnet);
++/* MODULE_ALIAS_NETPROTO(PF_DECnet); */
+
+ static const char banner[] __initconst = KERN_INFO
+ "NET4: DECnet for Linux: V.2.5.68s (C) 1995-2003 Linux DECnet Project Team\n";
diff --git a/debian/patches/debian/dfsg/arch-powerpc-platforms-8xx-ucode-disable.patch b/debian/patches/debian/dfsg/arch-powerpc-platforms-8xx-ucode-disable.patch
new file mode 100644
index 000000000..97d8be0b2
--- /dev/null
+++ b/debian/patches/debian/dfsg/arch-powerpc-platforms-8xx-ucode-disable.patch
@@ -0,0 +1,29 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Mon, 13 Apr 2009 17:34:00 +0100
+Subject: Remove microcode patches for mgsuvd (not enabled in Debian configs)
+Forwarded: not-needed
+
+Index: linux/arch/powerpc/platforms/8xx/Kconfig
+===================================================================
+--- linux.orig/arch/powerpc/platforms/8xx/Kconfig
++++ linux/arch/powerpc/platforms/8xx/Kconfig
+@@ -144,16 +144,19 @@ config NO_UCODE_PATCH
+
+ config USB_SOF_UCODE_PATCH
+ bool "USB SOF patch"
++ depends on BROKEN
+ help
+ Help not implemented yet, coming soon.
+
+ config I2C_SPI_UCODE_PATCH
+ bool "I2C/SPI relocation patch"
++ depends on BROKEN
+ help
+ Help not implemented yet, coming soon.
+
+ config I2C_SPI_SMC1_UCODE_PATCH
+ bool "I2C/SPI/SMC1 relocation patch"
++ depends on BROKEN
+ help
+ Help not implemented yet, coming soon.
+
diff --git a/debian/patches/debian/dfsg/drivers-media-dvb-dvb-usb-af9005-disable.patch b/debian/patches/debian/dfsg/drivers-media-dvb-dvb-usb-af9005-disable.patch
new file mode 100644
index 000000000..47233b0ff
--- /dev/null
+++ b/debian/patches/debian/dfsg/drivers-media-dvb-dvb-usb-af9005-disable.patch
@@ -0,0 +1,17 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Mon, 17 Aug 2009 02:45:41 +0100
+Subject: dvb-usb-af9005: mark as broken
+Forwarded: not-needed
+
+Index: linux/drivers/media/usb/dvb-usb/Kconfig
+===================================================================
+--- linux.orig/drivers/media/usb/dvb-usb/Kconfig
++++ linux/drivers/media/usb/dvb-usb/Kconfig
+@@ -246,6 +246,7 @@ config DVB_USB_OPERA1
+
+ config DVB_USB_AF9005
+ tristate "Afatech AF9005 DVB-T USB1.1 support"
++ depends on BROKEN
+ depends on DVB_USB
+ select MEDIA_TUNER_MT2060 if MEDIA_SUBDRV_AUTOSELECT
+ select MEDIA_TUNER_QT1010 if MEDIA_SUBDRV_AUTOSELECT
diff --git a/debian/patches/debian/dfsg/drivers-net-appletalk-cops.patch b/debian/patches/debian/dfsg/drivers-net-appletalk-cops.patch
new file mode 100644
index 000000000..d0d266861
--- /dev/null
+++ b/debian/patches/debian/dfsg/drivers-net-appletalk-cops.patch
@@ -0,0 +1,52 @@
+From: Frederik Schüler <fs@debian.org>
+Date: Fri, 05 Jan 2007 15:55:24 +0000
+Subject: Add removal patches for: 3c359, smctr, keyspan, cops
+Forwarded: not-needed
+
+Index: linux/drivers/net/appletalk/Kconfig
+===================================================================
+--- linux.orig/drivers/net/appletalk/Kconfig
++++ linux/drivers/net/appletalk/Kconfig
+@@ -49,32 +49,6 @@ config LTPC
+ This driver is experimental, which means that it may not work.
+ See the file <file:Documentation/networking/ltpc.txt>.
+
+-config COPS
+- tristate "COPS LocalTalk PC support"
+- depends on DEV_APPLETALK && (ISA || EISA)
+- help
+- This allows you to use COPS AppleTalk cards to connect to LocalTalk
+- networks. You also need version 1.3.3 or later of the netatalk
+- package. This driver is experimental, which means that it may not
+- work. This driver will only work if you choose "AppleTalk DDP"
+- networking support, above.
+- Please read the file <file:Documentation/networking/cops.txt>.
+-
+-config COPS_DAYNA
+- bool "Dayna firmware support"
+- depends on COPS
+- help
+- Support COPS compatible cards with Dayna style firmware (Dayna
+- DL2000/ Daynatalk/PC (half length), COPS LT-95, Farallon PhoneNET PC
+- III, Farallon PhoneNET PC II).
+-
+-config COPS_TANGENT
+- bool "Tangent firmware support"
+- depends on COPS
+- help
+- Support COPS compatible cards with Tangent style firmware (Tangent
+- ATB_II, Novell NL-1000, Daystar Digital LT-200.
+-
+ config IPDDP
+ tristate "Appletalk-IP driver support"
+ depends on DEV_APPLETALK && ATALK
+Index: linux/drivers/net/appletalk/Makefile
+===================================================================
+--- linux.orig/drivers/net/appletalk/Makefile
++++ linux/drivers/net/appletalk/Makefile
+@@ -3,5 +3,4 @@
+ #
+
+ obj-$(CONFIG_IPDDP) += ipddp.o
+-obj-$(CONFIG_COPS) += cops.o
+ obj-$(CONFIG_LTPC) += ltpc.o
diff --git a/debian/patches/debian/dfsg/video-remove-nvidiafb-and-rivafb.patch b/debian/patches/debian/dfsg/video-remove-nvidiafb-and-rivafb.patch
new file mode 100644
index 000000000..24e209fd1
--- /dev/null
+++ b/debian/patches/debian/dfsg/video-remove-nvidiafb-and-rivafb.patch
@@ -0,0 +1,134 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Sat, 2 Jun 2012 19:53:38 +0100
+Subject: video: Remove nvidiafb and rivafb
+Bug-Debian: https://bugs.debian.org/383481
+Forwarded: no
+
+These drivers contain register programming code provided by the
+hardware vendor that appears to have been deliberately obfuscated.
+This is arguably not the preferred form for modification.
+
+These drivers are also largely redundant with nouveau. The RIVA 128
+(NV3) is not supported by nouveau but is about 15 years old and
+probably discontinued 10 years ago.
+
+---
+Index: linux/drivers/video/fbdev/Kconfig
+===================================================================
+--- linux.orig/drivers/video/fbdev/Kconfig
++++ linux/drivers/video/fbdev/Kconfig
+@@ -901,101 +901,6 @@ config FB_ATMEL
+ help
+ This enables support for the AT91/AT32 LCD Controller.
+
+-config FB_NVIDIA
+- tristate "nVidia Framebuffer Support"
+- depends on FB && PCI
+- select FB_BACKLIGHT if FB_NVIDIA_BACKLIGHT
+- select FB_MODE_HELPERS
+- select FB_CFB_FILLRECT
+- select FB_CFB_COPYAREA
+- select FB_CFB_IMAGEBLIT
+- select BITREVERSE
+- select VGASTATE
+- help
+- This driver supports graphics boards with the nVidia chips, TNT
+- and newer. For very old chipsets, such as the RIVA128, then use
+- the rivafb.
+- Say Y if you have such a graphics board.
+-
+- To compile this driver as a module, choose M here: the
+- module will be called nvidiafb.
+-
+-config FB_NVIDIA_I2C
+- bool "Enable DDC Support"
+- depends on FB_NVIDIA
+- select FB_DDC
+- help
+- This enables I2C support for nVidia Chipsets. This is used
+- only for getting EDID information from the attached display
+- allowing for robust video mode handling and switching.
+-
+- Because fbdev-2.6 requires that drivers must be able to
+- independently validate video mode parameters, you should say Y
+- here.
+-
+-config FB_NVIDIA_DEBUG
+- bool "Lots of debug output"
+- depends on FB_NVIDIA
+- default n
+- help
+- Say Y here if you want the nVidia driver to output all sorts
+- of debugging information to provide to the maintainer when
+- something goes wrong.
+-
+-config FB_NVIDIA_BACKLIGHT
+- bool "Support for backlight control"
+- depends on FB_NVIDIA
+- default y
+- help
+- Say Y here if you want to control the backlight of your display.
+-
+-config FB_RIVA
+- tristate "nVidia Riva support"
+- depends on FB && PCI
+- select FB_BACKLIGHT if FB_RIVA_BACKLIGHT
+- select FB_MODE_HELPERS
+- select FB_CFB_FILLRECT
+- select FB_CFB_COPYAREA
+- select FB_CFB_IMAGEBLIT
+- select BITREVERSE
+- select VGASTATE
+- help
+- This driver supports graphics boards with the nVidia Riva/Geforce
+- chips.
+- Say Y if you have such a graphics board.
+-
+- To compile this driver as a module, choose M here: the
+- module will be called rivafb.
+-
+-config FB_RIVA_I2C
+- bool "Enable DDC Support"
+- depends on FB_RIVA
+- select FB_DDC
+- help
+- This enables I2C support for nVidia Chipsets. This is used
+- only for getting EDID information from the attached display
+- allowing for robust video mode handling and switching.
+-
+- Because fbdev-2.6 requires that drivers must be able to
+- independently validate video mode parameters, you should say Y
+- here.
+-
+-config FB_RIVA_DEBUG
+- bool "Lots of debug output"
+- depends on FB_RIVA
+- default n
+- help
+- Say Y here if you want the Riva driver to output all sorts
+- of debugging information to provide to the maintainer when
+- something goes wrong.
+-
+-config FB_RIVA_BACKLIGHT
+- bool "Support for backlight control"
+- depends on FB_RIVA
+- default y
+- help
+- Say Y here if you want to control the backlight of your display.
+-
+ config FB_I740
+ tristate "Intel740 support"
+ depends on FB && PCI
+Index: linux/drivers/video/fbdev/Makefile
+===================================================================
+--- linux.orig/drivers/video/fbdev/Makefile
++++ linux/drivers/video/fbdev/Makefile
+@@ -22,8 +22,6 @@ obj-$(CONFIG_FB_PM3) += pm3fb.o
+
+ obj-$(CONFIG_FB_I740) += i740fb.o
+ obj-$(CONFIG_FB_MATROX) += matrox/
+-obj-$(CONFIG_FB_RIVA) += riva/
+-obj-$(CONFIG_FB_NVIDIA) += nvidia/
+ obj-$(CONFIG_FB_ATY) += aty/ macmodes.o
+ obj-$(CONFIG_FB_ATY128) += aty/ macmodes.o
+ obj-$(CONFIG_FB_RADEON) += aty/
diff --git a/debian/patches/debian/dfsg/vs6624-disable.patch b/debian/patches/debian/dfsg/vs6624-disable.patch
new file mode 100644
index 000000000..41219ffd5
--- /dev/null
+++ b/debian/patches/debian/dfsg/vs6624-disable.patch
@@ -0,0 +1,17 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Sun, 27 May 2012 01:56:58 +0100
+Subject: vs6624: mark as broken
+Forwarded: not-needed
+
+Index: linux/drivers/media/i2c/Kconfig
+===================================================================
+--- linux.orig/drivers/media/i2c/Kconfig
++++ linux/drivers/media/i2c/Kconfig
+@@ -803,6 +803,7 @@ config VIDEO_OV13858
+ OV13858 camera.
+
+ config VIDEO_VS6624
++ depends on BROKEN
+ tristate "ST VS6624 sensor support"
+ depends on VIDEO_V4L2 && I2C
+ depends on MEDIA_CAMERA_SUPPORT
diff --git a/debian/patches/debian/export-symbols-needed-by-android-drivers.patch b/debian/patches/debian/export-symbols-needed-by-android-drivers.patch
new file mode 100644
index 000000000..c2c8b5f23
--- /dev/null
+++ b/debian/patches/debian/export-symbols-needed-by-android-drivers.patch
@@ -0,0 +1,156 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Tue, 26 Jun 2018 16:59:01 +0100
+Subject: Export symbols needed by Android drivers
+Bug-Debian: https://bugs.debian.org/901492
+
+We want to enable use of the Android ashmem and binder drivers to
+support Anbox, but they should not be built-in as that would waste
+resources and increase security attack surface on systems that don't
+need them.
+
+Export the currently un-exported symbols they depend on.
+
+---
+--- a/fs/file.c
++++ b/fs/file.c
+@@ -409,6 +409,7 @@ struct files_struct *get_files_struct(st
+
+ return files;
+ }
++EXPORT_SYMBOL_GPL(get_files_struct);
+
+ void put_files_struct(struct files_struct *files)
+ {
+@@ -421,6 +422,7 @@ void put_files_struct(struct files_struc
+ kmem_cache_free(files_cachep, files);
+ }
+ }
++EXPORT_SYMBOL_GPL(put_files_struct);
+
+ void reset_files_struct(struct files_struct *files)
+ {
+@@ -534,6 +536,7 @@ out:
+ spin_unlock(&files->file_lock);
+ return error;
+ }
++EXPORT_SYMBOL_GPL(__alloc_fd);
+
+ static int alloc_fd(unsigned start, unsigned flags)
+ {
+@@ -607,6 +610,7 @@ void __fd_install(struct files_struct *f
+ rcu_assign_pointer(fdt->fd[fd], file);
+ rcu_read_unlock_sched();
+ }
++EXPORT_SYMBOL_GPL(__fd_install);
+
+ void fd_install(unsigned int fd, struct file *file)
+ {
+--- a/kernel/fork.c
++++ b/kernel/fork.c
+@@ -1054,6 +1054,7 @@ void mmput_async(struct mm_struct *mm)
+ schedule_work(&mm->async_put_work);
+ }
+ }
++EXPORT_SYMBOL_GPL(mmput_async);
+ #endif
+
+ /**
+--- a/kernel/signal.c
++++ b/kernel/signal.c
+@@ -1368,6 +1368,7 @@ struct sighand_struct *__lock_task_sigha
+
+ return sighand;
+ }
++EXPORT_SYMBOL_GPL(__lock_task_sighand);
+
+ /*
+ * send signal info to all the members of a group
+--- a/mm/memory.c
++++ b/mm/memory.c
+@@ -1644,6 +1644,7 @@ void zap_page_range(struct vm_area_struc
+ mmu_notifier_invalidate_range_end(mm, start, end);
+ tlb_finish_mmu(&tlb, start, end);
+ }
++EXPORT_SYMBOL_GPL(zap_page_range);
+
+ /**
+ * zap_page_range_single - remove user pages in a given range
+--- a/mm/shmem.c
++++ b/mm/shmem.c
+@@ -4053,6 +4053,7 @@ int shmem_zero_setup(struct vm_area_stru
+
+ return 0;
+ }
++EXPORT_SYMBOL_GPL(shmem_zero_setup);
+
+ /**
+ * shmem_read_mapping_page_gfp - read into page cache, using specified page allocation flags.
+--- a/mm/vmalloc.c
++++ b/mm/vmalloc.c
+@@ -1300,6 +1300,7 @@ int map_kernel_range_noflush(unsigned lo
+ {
+ return vmap_page_range_noflush(addr, addr + size, prot, pages);
+ }
++EXPORT_SYMBOL_GPL(map_kernel_range_noflush);
+
+ /**
+ * unmap_kernel_range_noflush - unmap kernel VM area
+@@ -1440,6 +1441,7 @@ struct vm_struct *get_vm_area(unsigned l
+ NUMA_NO_NODE, GFP_KERNEL,
+ __builtin_return_address(0));
+ }
++EXPORT_SYMBOL_GPL(get_vm_area);
+
+ struct vm_struct *get_vm_area_caller(unsigned long size, unsigned long flags,
+ const void *caller)
+--- a/security/security.c
++++ b/security/security.c
+@@ -236,24 +236,28 @@ int security_binder_set_context_mgr(cons
+ {
+ return call_int_hook(binder_set_context_mgr, 0, mgr);
+ }
++EXPORT_SYMBOL_GPL(security_binder_set_context_mgr);
+
+ int security_binder_transaction(const struct cred *from,
+ const struct cred *to)
+ {
+ return call_int_hook(binder_transaction, 0, from, to);
+ }
++EXPORT_SYMBOL_GPL(security_binder_transaction);
+
+ int security_binder_transfer_binder(const struct cred *from,
+ const struct cred *to)
+ {
+ return call_int_hook(binder_transfer_binder, 0, from, to);
+ }
++EXPORT_SYMBOL_GPL(security_binder_transfer_binder);
+
+ int security_binder_transfer_file(const struct cred *from,
+ const struct cred *to, struct file *file)
+ {
+ return call_int_hook(binder_transfer_file, 0, from, to, file);
+ }
++EXPORT_SYMBOL_GPL(security_binder_transfer_file);
+
+ int security_ptrace_access_check(struct task_struct *child, unsigned int mode)
+ {
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -3979,6 +3979,7 @@ int can_nice(const struct task_struct *p
+ return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) ||
+ capable(CAP_SYS_NICE));
+ }
++EXPORT_SYMBOL_GPL(can_nice);
+
+ #ifdef __ARCH_WANT_SYS_NICE
+
+--- a/kernel/sched/wait.c
++++ b/kernel/sched/wait.c
+@@ -215,6 +215,7 @@ void __wake_up_pollfree(struct wait_queu
+ /* POLLFREE must have cleared the queue. */
+ WARN_ON_ONCE(waitqueue_active(wq_head));
+ }
++EXPORT_SYMBOL_GPL(__wake_up_pollfree);
+
+ /*
+ * Note: we use "set_current_state()" _after_ the wait-queue add,
diff --git a/debian/patches/debian/fanotify-taint-on-use-of-fanotify_access_permissions.patch b/debian/patches/debian/fanotify-taint-on-use-of-fanotify_access_permissions.patch
new file mode 100644
index 000000000..5149007a4
--- /dev/null
+++ b/debian/patches/debian/fanotify-taint-on-use-of-fanotify_access_permissions.patch
@@ -0,0 +1,31 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Subject: fanotify: Taint on use of FANOTIFY_ACCESS_PERMISSIONS
+Date: Wed, 13 Jul 2016 01:37:22 +0100
+Forwarded: not-needed
+
+Various free and proprietary AV products use this feature and users
+apparently want it. But punting access checks to userland seems like
+an easy way to deadlock the system, and there will be nothing we can
+do about that. So warn and taint the kernel if this feature is
+actually used.
+
+---
+Index: linux/fs/notify/fanotify/fanotify_user.c
+===================================================================
+--- linux.orig/fs/notify/fanotify/fanotify_user.c
++++ linux/fs/notify/fanotify/fanotify_user.c
+@@ -842,6 +842,14 @@ static int do_fanotify_mark(int fanotify
+ if (mask & ~valid_mask)
+ return -EINVAL;
+
++#ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS
++ if (mask & FAN_ALL_PERM_EVENTS) {
++ pr_warn_once("%s (%d): Using fanotify permission checks may lead to deadlock; tainting kernel\n",
++ current->comm, current->pid);
++ add_taint(TAINT_USER, LOCKDEP_STILL_OK);
++ }
++#endif
++
+ f = fdget(fanotify_fd);
+ if (unlikely(!f.file))
+ return -EBADF;
diff --git a/debian/patches/debian/firmware_class-refer-to-debian-wiki-firmware-page.patch b/debian/patches/debian/firmware_class-refer-to-debian-wiki-firmware-page.patch
new file mode 100644
index 000000000..da4942ee6
--- /dev/null
+++ b/debian/patches/debian/firmware_class-refer-to-debian-wiki-firmware-page.patch
@@ -0,0 +1,58 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Mon, 12 Mar 2018 01:14:03 +0000
+Subject: firmware_class: Refer to Debian wiki page when logging missing firmware
+Bug-Debian: https://bugs.debian.org/888405
+Forwarded: not-needed
+
+If firmware loading fails due to a missing file, log a second error
+message referring to our wiki page about firmware. This will explain
+why some firmware is in non-free, or can't be packaged at all. Only
+do this once per boot.
+
+Do something similar in the radeon and amdgpu drivers, where we have
+an early check to avoid failing at a point where we cannot display
+anything.
+
+---
+Index: linux/drivers/base/firmware_loader/main.c
+===================================================================
+--- linux.orig/drivers/base/firmware_loader/main.c
++++ linux/drivers/base/firmware_loader/main.c
+@@ -340,9 +340,12 @@ fw_get_filesystem_firmware(struct device
+ }
+ __putname(path);
+
+- if (rc)
++ if (rc) {
+ dev_err(device, "firmware: failed to load %s (%d)\n",
+ fw_priv->fw_name, rc);
++ if (rc == -ENOENT)
++ pr_err_once("See https://wiki.debian.org/Firmware for information about missing firmware\n");
++ }
+
+ return rc;
+ }
+Index: linux/drivers/gpu/drm/radeon/radeon_drv.c
+===================================================================
+--- linux.orig/drivers/gpu/drm/radeon/radeon_drv.c
++++ linux/drivers/gpu/drm/radeon/radeon_drv.c
+@@ -403,6 +403,7 @@ static int radeon_pci_probe(struct pci_d
+ if ((ent->driver_data & RADEON_FAMILY_MASK) >= CHIP_R600 &&
+ !radeon_firmware_installed()) {
+ DRM_ERROR("radeon kernel modesetting for R600 or later requires firmware installed\n");
++ pr_err_once("See https://wiki.debian.org/Firmware for information about missing firmware\n");
+ return -ENODEV;
+ }
+
+Index: linux/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+===================================================================
+--- linux.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
++++ linux/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+@@ -859,6 +859,7 @@ static int amdgpu_pci_probe(struct pci_d
+
+ if (!amdgpu_firmware_installed()) {
+ DRM_ERROR("amdgpu requires firmware installed\n");
++ pr_err_once("See https://wiki.debian.org/Firmware for information about missing firmware\n");
+ return -ENODEV;
+ }
+
diff --git a/debian/patches/debian/fjes-disable-autoload.patch b/debian/patches/debian/fjes-disable-autoload.patch
new file mode 100644
index 000000000..e1081d872
--- /dev/null
+++ b/debian/patches/debian/fjes-disable-autoload.patch
@@ -0,0 +1,26 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Sat, 18 Mar 2017 20:47:58 +0000
+Subject: fjes: Disable auto-loading
+Bug-Debian: https://bugs.debian.org/853976
+Forwarded: no
+
+fjes matches a generic ACPI device ID, and relies on its probe
+function to distinguish whether that really corresponds to a supported
+device. Very few system will need the driver and it wastes memory on
+all the other systems where the same device ID appears, so disable
+auto-loading.
+
+---
+Index: linux/drivers/net/fjes/fjes_main.c
+===================================================================
+--- linux.orig/drivers/net/fjes/fjes_main.c
++++ linux/drivers/net/fjes/fjes_main.c
+@@ -83,7 +83,7 @@ static const struct acpi_device_id fjes_
+ {ACPI_MOTHERBOARD_RESOURCE_HID, 0},
+ {"", 0},
+ };
+-MODULE_DEVICE_TABLE(acpi, fjes_acpi_ids);
++/* MODULE_DEVICE_TABLE(acpi, fjes_acpi_ids); */
+
+ static struct acpi_driver fjes_acpi_driver = {
+ .name = DRV_NAME,
diff --git a/debian/patches/debian/fs-enable-link-security-restrictions-by-default.patch b/debian/patches/debian/fs-enable-link-security-restrictions-by-default.patch
new file mode 100644
index 000000000..50b32bc2d
--- /dev/null
+++ b/debian/patches/debian/fs-enable-link-security-restrictions-by-default.patch
@@ -0,0 +1,24 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Subject: fs: Enable link security restrictions by default
+Date: Fri, 02 Nov 2012 05:32:06 +0000
+Bug-Debian: https://bugs.debian.org/609455
+Forwarded: not-needed
+
+This reverts commit 561ec64ae67ef25cac8d72bb9c4bfc955edfd415
+('VFS: don't do protected {sym,hard}links by default').
+
+Index: linux/fs/namei.c
+===================================================================
+--- linux.orig/fs/namei.c
++++ linux/fs/namei.c
+@@ -885,8 +885,8 @@ static inline void put_link(struct namei
+ path_put(&last->link);
+ }
+
+-int sysctl_protected_symlinks __read_mostly = 0;
+-int sysctl_protected_hardlinks __read_mostly = 0;
++int sysctl_protected_symlinks __read_mostly = 1;
++int sysctl_protected_hardlinks __read_mostly = 1;
+ int sysctl_protected_fifos __read_mostly;
+ int sysctl_protected_regular __read_mostly;
+
diff --git a/debian/patches/debian/gitignore.patch b/debian/patches/debian/gitignore.patch
new file mode 100644
index 000000000..493e558b7
--- /dev/null
+++ b/debian/patches/debian/gitignore.patch
@@ -0,0 +1,49 @@
+From: Ian Campbell <ijc@hellion.org.uk>
+Date: Thu, 17 Jan 2013 08:55:21 +0000
+Subject: Tweak gitignore for Debian pkg-kernel using git svn.
+Forwarded: not-needed
+
+[bwh: Tweak further for pure git]
+
+Index: linux/.gitignore
+===================================================================
+--- linux.orig/.gitignore
++++ linux/.gitignore
+@@ -64,11 +64,6 @@ modules.builtin
+ /*.spec
+
+ #
+-# Debian directory (make deb-pkg)
+-#
+-/debian/
+-
+-#
+ # Snap directory (make snap-pkg)
+ #
+ /snap/
+@@ -79,14 +74,6 @@ modules.builtin
+ /tar-install/
+
+ #
+-# git files that we don't want to ignore even if they are dot-files
+-#
+-!.gitignore
+-!.mailmap
+-!.cocciconfig
+-!.clang-format
+-
+-#
+ # Generated include files
+ #
+ include/config
+@@ -132,3 +119,10 @@ all.config
+
+ # Kdevelop4
+ *.kdev4
++
++#
++# Debian packaging: ignore everything at the top level, since it isn't
++# included in our repository
++#
++/*
++!/debian/
diff --git a/debian/patches/debian/i386-686-pae-pci-set-pci-nobios-by-default.patch b/debian/patches/debian/i386-686-pae-pci-set-pci-nobios-by-default.patch
new file mode 100644
index 000000000..d9dcef669
--- /dev/null
+++ b/debian/patches/debian/i386-686-pae-pci-set-pci-nobios-by-default.patch
@@ -0,0 +1,29 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Tue, 16 Feb 2016 02:45:42 +0000
+Subject: [i386/686-pae] PCI: Set pci=nobios by default
+Forwarded: not-needed
+
+CONFIG_PCI_GOBIOS results in physical addresses 640KB-1MB being mapped
+W+X, which is undesirable for security reasons and will result in a
+warning at boot now that we enable CONFIG_DEBUG_WX.
+
+This can be overridden using the kernel parameter "pci=nobios", but we
+want to disable W+X by default. Disable PCI BIOS probing by default;
+it can still be enabled using "pci=bios".
+
+---
+Index: linux/arch/x86/pci/common.c
+===================================================================
+--- linux.orig/arch/x86/pci/common.c
++++ linux/arch/x86/pci/common.c
+@@ -19,8 +19,8 @@
+ #include <asm/pci_x86.h>
+ #include <asm/setup.h>
+
+-unsigned int pci_probe = PCI_PROBE_BIOS | PCI_PROBE_CONF1 | PCI_PROBE_CONF2 |
+- PCI_PROBE_MMCONF;
++unsigned int pci_probe = PCI_PROBE_CONF1 | PCI_PROBE_CONF2 | PCI_PROBE_MMCONF |
++ (IS_ENABLED(CONFIG_X86_64) || IS_ENABLED(CONFIG_X86_PAE) ? 0 : PCI_PROBE_BIOS);
+
+ static int pci_bf_sort;
+ int pci_routeirq;
diff --git a/debian/patches/debian/ia64-hardcode-arch-script-output.patch b/debian/patches/debian/ia64-hardcode-arch-script-output.patch
new file mode 100644
index 000000000..f4b320f15
--- /dev/null
+++ b/debian/patches/debian/ia64-hardcode-arch-script-output.patch
@@ -0,0 +1,72 @@
+From: dann frazier <dannf@debian.org>
+Subject: Hardcode arch script output
+Date: Mon, 26 Mar 2007 16:30:51 -0600
+Bug-Debian: https://bugs.debian.org/392592
+Forwarded: not-needed
+
+Here's a patch that simply uses hardcoded definitions instead of
+doing the dynamic tests that require architecture-specific scripts.
+
+I don't particularly like this approach because it restricts
+portability and diverts from upstream. But, it is simpler, and this
+really needs to be fixed somehow before etch (along with a rebuild of
+linux-modules-extra-2.6), so I'm willing to live with it if my other
+patch is deemed unacceptable.
+
+My primary concern is that, in the future, the output of these scripts
+will change and we (or our successors) will either not notice or
+forget to update the hardcoded values.
+
+Including the scripts in linux-kbuild will avoid this manual step
+altogether, and allow for the possibility of other archs to provide
+their own scripts in the future.
+
+Index: linux/arch/ia64/Makefile
+===================================================================
+--- linux.orig/arch/ia64/Makefile
++++ linux/arch/ia64/Makefile
+@@ -30,16 +30,7 @@ cflags-y := -pipe $(EXTRA) -ffixed-r13 -
+ -falign-functions=32 -frename-registers -fno-optimize-sibling-calls
+ KBUILD_CFLAGS_KERNEL := -mconstant-gp
+
+-GAS_STATUS = $(shell $(srctree)/arch/ia64/scripts/check-gas "$(CC)" "$(OBJDUMP)")
+-KBUILD_CPPFLAGS += $(shell $(srctree)/arch/ia64/scripts/toolchain-flags "$(CC)" "$(OBJDUMP)" "$(READELF)")
+-
+-ifeq ($(GAS_STATUS),buggy)
+-$(error Sorry, you need a newer version of the assember, one that is built from \
+- a source-tree that post-dates 18-Dec-2002. You can find a pre-compiled \
+- static binary of such an assembler at: \
+- \
+- ftp://ftp.hpl.hp.com/pub/linux-ia64/gas-030124.tar.gz)
+-endif
++KBUILD_CPPFLAGS += -DHAVE_WORKING_TEXT_ALIGN -DHAVE_MODEL_SMALL_ATTRIBUTE -DHAVE_SERIALIZE_DIRECTIVE
+
+ KBUILD_CFLAGS += $(cflags-y)
+ head-y := arch/ia64/kernel/head.o
+@@ -65,7 +56,7 @@ boot := arch/ia64/hp/sim/boot
+
+ PHONY += boot compressed check
+
+-all: compressed unwcheck
++all: compressed
+
+ compressed: vmlinux.gz
+
+@@ -74,9 +65,6 @@ vmlinuz: vmlinux.gz
+ vmlinux.gz: vmlinux
+ $(Q)$(MAKE) $(build)=$(boot) $@
+
+-unwcheck: vmlinux
+- -$(Q)READELF=$(READELF) $(PYTHON) $(srctree)/arch/ia64/scripts/unwcheck.py $<
+-
+ archclean:
+ $(Q)$(MAKE) $(clean)=$(boot)
+
+@@ -92,7 +80,6 @@ define archhelp
+ echo '* compressed - Build compressed kernel image'
+ echo ' install - Install compressed kernel image'
+ echo ' boot - Build vmlinux and bootloader for Ski simulator'
+- echo '* unwcheck - Check vmlinux for invalid unwind info'
+ endef
+
+ archprepare: make_nr_irqs_h
diff --git a/debian/patches/debian/iwlwifi-do-not-request-unreleased-firmware.patch b/debian/patches/debian/iwlwifi-do-not-request-unreleased-firmware.patch
new file mode 100644
index 000000000..37d84d005
--- /dev/null
+++ b/debian/patches/debian/iwlwifi-do-not-request-unreleased-firmware.patch
@@ -0,0 +1,28 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Subject: iwlwifi: Do not request unreleased firmware for IWL6000
+Bug-Debian: https://bugs.debian.org/689416
+Forwarded: not-needed
+
+The iwlwifi driver currently supports firmware API versions 4-6 for
+these devices. It will request the file for the latest supported
+version and then fall back to earlier versions. However, the latest
+version that has actually been released is 4, so we expect the
+requests for versions 6 and then 5 to fail.
+
+The installer appears to report any failed request, and it is probably
+not easy to detect that this particular failure is harmless. So stop
+requesting the unreleased firmware.
+
+Index: linux/drivers/net/wireless/intel/iwlwifi/cfg/6000.c
+===================================================================
+--- linux.orig/drivers/net/wireless/intel/iwlwifi/cfg/6000.c
++++ linux/drivers/net/wireless/intel/iwlwifi/cfg/6000.c
+@@ -32,7 +32,7 @@
+ #include "dvm/commands.h" /* needed for BT for now */
+
+ /* Highest firmware API version supported */
+-#define IWL6000_UCODE_API_MAX 6
++#define IWL6000_UCODE_API_MAX 4 /* v5-6 are supported but not released */
+ #define IWL6050_UCODE_API_MAX 5
+ #define IWL6000G2_UCODE_API_MAX 6
+ #define IWL6035_UCODE_API_MAX 6
diff --git a/debian/patches/debian/kernelvariables.patch b/debian/patches/debian/kernelvariables.patch
new file mode 100644
index 000000000..d33dad595
--- /dev/null
+++ b/debian/patches/debian/kernelvariables.patch
@@ -0,0 +1,81 @@
+From: Bastian Blank <waldi@debian.org>
+Subject: kbuild: Make the toolchain variables easily overwritable
+Date: Sun, 22 Feb 2009 15:39:35 +0100
+Forwarded: not-needed
+
+Allow make variables to be overridden for each flavour by a file in
+the build tree, .kernelvariables.
+
+We currently use this for ARCH, KERNELRELEASE, CC, and in some cases
+also CROSS_COMPILE, CFLAGS_KERNEL and CFLAGS_MODULE.
+
+This file can only be read after we establish the build tree, and all
+use of $(ARCH) needs to be moved after this.
+
+Index: linux/Makefile
+===================================================================
+--- linux.orig/Makefile
++++ linux/Makefile
+@@ -321,31 +321,6 @@ include scripts/subarch.include
+ # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
+ ARCH ?= $(SUBARCH)
+
+-# Architecture as present in compile.h
+-UTS_MACHINE := $(ARCH)
+-SRCARCH := $(ARCH)
+-
+-# Additional ARCH settings for x86
+-ifeq ($(ARCH),i386)
+- SRCARCH := x86
+-endif
+-ifeq ($(ARCH),x86_64)
+- SRCARCH := x86
+-endif
+-
+-# Additional ARCH settings for sparc
+-ifeq ($(ARCH),sparc32)
+- SRCARCH := sparc
+-endif
+-ifeq ($(ARCH),sparc64)
+- SRCARCH := sparc
+-endif
+-
+-# Additional ARCH settings for sh
+-ifeq ($(ARCH),sh64)
+- SRCARCH := sh
+-endif
+-
+ KCONFIG_CONFIG ?= .config
+ export KCONFIG_CONFIG
+
+@@ -399,6 +374,30 @@ CFLAGS_KERNEL =
+ AFLAGS_KERNEL =
+ LDFLAGS_vmlinux =
+
++-include $(obj)/.kernelvariables
++
++# Architecture as present in compile.h
++UTS_MACHINE := $(ARCH)
++SRCARCH := $(ARCH)
++
++# Additional ARCH settings for x86
++ifeq ($(ARCH),i386)
++ SRCARCH := x86
++endif
++ifeq ($(ARCH),x86_64)
++ SRCARCH := x86
++endif
++
++# Additional ARCH settings for sparc
++ifeq ($(ARCH),sparc64)
++ SRCARCH := sparc
++endif
++
++# Additional ARCH settings for sh
++ifeq ($(ARCH),sh64)
++ SRCARCH := sh
++endif
++
+ # Use USERINCLUDE when you must reference the UAPI directories only.
+ USERINCLUDE := \
+ -I$(srctree)/arch/$(SRCARCH)/include/uapi \
diff --git a/debian/patches/debian/mips-boston-disable-its.patch b/debian/patches/debian/mips-boston-disable-its.patch
new file mode 100644
index 000000000..ad93dfa8a
--- /dev/null
+++ b/debian/patches/debian/mips-boston-disable-its.patch
@@ -0,0 +1,22 @@
+From: YunQiang Su <syq@debian.org>
+Date: Mon, 14 May 2018 16:16:18 +0800
+Subject: Disable uImage generation for mips generic
+Forwarded: not-needed
+
+MIPS generic trys to generate uImage when build, which then ask for
+u-boot-tools.
+
+Index: linux/arch/mips/generic/Platform
+===================================================================
+--- linux.orig/arch/mips/generic/Platform
++++ linux/arch/mips/generic/Platform
+@@ -11,9 +11,7 @@
+ platform-$(CONFIG_MIPS_GENERIC) += generic/
+ cflags-$(CONFIG_MIPS_GENERIC) += -I$(srctree)/arch/mips/include/asm/mach-generic
+ load-$(CONFIG_MIPS_GENERIC) += 0xffffffff80100000
+-all-$(CONFIG_MIPS_GENERIC) := vmlinux.gz.itb
+
+-its-y := vmlinux.its.S
+ its-$(CONFIG_FIT_IMAGE_FDT_BOSTON) += board-boston.its.S
+ its-$(CONFIG_FIT_IMAGE_FDT_NI169445) += board-ni169445.its.S
+ its-$(CONFIG_FIT_IMAGE_FDT_OCELOT_PCB123) += board-ocelot_pcb123.its.S
diff --git a/debian/patches/debian/mips-disable-werror.patch b/debian/patches/debian/mips-disable-werror.patch
new file mode 100644
index 000000000..37da74ce3
--- /dev/null
+++ b/debian/patches/debian/mips-disable-werror.patch
@@ -0,0 +1,25 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Mon, 13 Sep 2010 02:16:18 +0100
+Subject: [PATCH] Partially revert "MIPS: Add -Werror to arch/mips/Kbuild"
+Forwarded: not-needed
+
+This reverts commits 66f9ba101f54bda63ab1db97f9e9e94763d0651b and
+5373633cc9253ba82547473e899cab141c54133e.
+
+We really don't want to add -Werror anywhere.
+---
+Index: linux/arch/mips/Kbuild
+===================================================================
+--- linux.orig/arch/mips/Kbuild
++++ linux/arch/mips/Kbuild
+@@ -1,10 +1,3 @@
+-# Fail on warnings - also for files referenced in subdirs
+-# -Werror can be disabled for specific files using:
+-# CFLAGS_<file.o> := -Wno-error
+-ifeq ($(W),)
+-subdir-ccflags-y := -Werror
+-endif
+-
+ # platform specific definitions
+ include arch/mips/Kbuild.platforms
+ obj-y := $(platform-y)
diff --git a/debian/patches/debian/ntfs-mark-it-as-broken.patch b/debian/patches/debian/ntfs-mark-it-as-broken.patch
new file mode 100644
index 000000000..19892c9f0
--- /dev/null
+++ b/debian/patches/debian/ntfs-mark-it-as-broken.patch
@@ -0,0 +1,21 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Thu, 25 Apr 2019 15:31:33 +0100
+Subject: ntfs: mark it as broken
+
+NTFS has unfixed issues CVE-2018-12929, CVE-2018-12930, and
+CVE-2018-12931. ntfs-3g is a better supported alternative.
+
+Make sure it can't be enabled even in custom kernels.
+
+---
+Index: linux/fs/ntfs/Kconfig
+===================================================================
+--- linux.orig/fs/ntfs/Kconfig
++++ linux/fs/ntfs/Kconfig
+@@ -1,5 +1,6 @@
+ config NTFS_FS
+ tristate "NTFS file system support"
++ depends on BROKEN
+ select NLS
+ help
+ NTFS is the file system of Microsoft Windows NT, 2000, XP and 2003.
diff --git a/debian/patches/debian/overlayfs-permit-mounts-in-userns.patch b/debian/patches/debian/overlayfs-permit-mounts-in-userns.patch
new file mode 100644
index 000000000..b951744e5
--- /dev/null
+++ b/debian/patches/debian/overlayfs-permit-mounts-in-userns.patch
@@ -0,0 +1,59 @@
+From: Nicolas Schier <nicolas@fjasle.eu>
+Subject: ovl: permit overlayfs mounts in user namespaces (taints kernel)
+Date: Mon, 19 Nov 2018 20:36:14 +0100
+
+Permit overlayfs mounts within user namespaces to allow utilisation of e.g.
+unprivileged LXC overlay snapshots.
+
+Except by the Ubuntu community [1], overlayfs mounts in user namespaces are
+expected to be a security risk [2] and thus are not enabled on upstream
+Linux kernels. For the non-Ubuntu users that have to stick to unprivileged
+overlay-based LXCs, this meant to patch and compile the kernel manually.
+Instead, adding the kernel tainting 'permit_mounts_in_userns' module
+parameter allows a kind of a user-friendly way to enable the feature.
+
+Testable with:
+
+ sudo modprobe overlay permit_mounts_in_userns=1
+ sudo sysctl -w kernel.unprivileged_userns_clone=1
+ mkdir -p lower upper work mnt
+ unshare --map-root-user --mount \
+ mount -t overlay none mnt \
+ -o lowerdir=lower,upperdir=upper,workdir=work
+
+[1]: Ubuntu allows unprivileged mounting of overlay filesystem
+https://lists.ubuntu.com/archives/kernel-team/2014-February/038091.html
+
+[2]: User namespaces + overlayfs = root privileges
+https://lwn.net/Articles/671641/
+
+Signed-off-by: Nicolas Schier <nicolas@fjasle.eu>
+
+Index: linux/fs/overlayfs/super.c
+===================================================================
+--- linux.orig/fs/overlayfs/super.c
++++ linux/fs/overlayfs/super.c
+@@ -56,6 +56,11 @@ module_param_named(xino_auto, ovl_xino_a
+ MODULE_PARM_DESC(ovl_xino_auto_def,
+ "Auto enable xino feature");
+
++static bool ovl_permit_mounts_in_userns;
++module_param_named_unsafe(permit_mounts_in_userns, ovl_permit_mounts_in_userns,
++ bool, 0444);
++MODULE_PARM_DESC(permit_mounts_in_userns, "Permit mounts in user namespaces");
++
+ static void ovl_entry_stack_free(struct ovl_entry *oe)
+ {
+ unsigned int i;
+@@ -1715,6 +1720,11 @@ static int __init ovl_init(void)
+ if (ovl_inode_cachep == NULL)
+ return -ENOMEM;
+
++ if (unlikely(ovl_permit_mounts_in_userns)) {
++ pr_warn("overlayfs: Allowing overlay mounts in user namespaces bears security risks\n");
++ ovl_fs_type.fs_flags |= FS_USERNS_MOUNT;
++ }
++
+ err = register_filesystem(&ovl_fs_type);
+ if (err)
+ kmem_cache_destroy(ovl_inode_cachep);
diff --git a/debian/patches/debian/powerpcspe-omit-uimage.patch b/debian/patches/debian/powerpcspe-omit-uimage.patch
new file mode 100644
index 000000000..48606a174
--- /dev/null
+++ b/debian/patches/debian/powerpcspe-omit-uimage.patch
@@ -0,0 +1,45 @@
+Description: Prevent building uImage with missing mkimage
+ On some powerpc platforms, CONFIG_DEFAULT_UIMAGE is selected automatically,
+ which leads to uImage being built automatically with mkimage. This tool is not
+ available in linux's build-dependencies, and the file is not strictly
+ necessary, so we are omitting this step in the build process, Debian-specific.
+Author: Roland Stigge <stigge@antcom.de>
+Bug-Debian: https://bugs.debian.org/708094
+Forwarded: not-needed
+
+Index: linux/arch/powerpc/boot/Makefile
+===================================================================
+--- linux.orig/arch/powerpc/boot/Makefile
++++ linux/arch/powerpc/boot/Makefile
+@@ -268,7 +268,6 @@ image-$(CONFIG_PPC_CHRP) += zImage.chrp
+ image-$(CONFIG_PPC_EFIKA) += zImage.chrp
+ image-$(CONFIG_PPC_PMAC) += zImage.pmac
+ image-$(CONFIG_PPC_HOLLY) += dtbImage.holly
+-image-$(CONFIG_DEFAULT_UIMAGE) += uImage
+ image-$(CONFIG_EPAPR_BOOT) += zImage.epapr
+
+ #
+@@ -327,23 +326,6 @@ image-$(CONFIG_MPC834x_MDS) += cuImage.
+ image-$(CONFIG_MPC836x_MDS) += cuImage.mpc836x_mds
+ image-$(CONFIG_ASP834x) += dtbImage.asp834x-redboot
+
+-# Board ports in arch/powerpc/platform/85xx/Kconfig
+-image-$(CONFIG_MPC8540_ADS) += cuImage.mpc8540ads
+-image-$(CONFIG_MPC8560_ADS) += cuImage.mpc8560ads
+-image-$(CONFIG_MPC85xx_CDS) += cuImage.mpc8541cds \
+- cuImage.mpc8548cds_32b \
+- cuImage.mpc8555cds
+-image-$(CONFIG_MPC85xx_MDS) += cuImage.mpc8568mds
+-image-$(CONFIG_MPC85xx_DS) += cuImage.mpc8544ds \
+- cuImage.mpc8572ds
+-image-$(CONFIG_TQM8540) += cuImage.tqm8540
+-image-$(CONFIG_TQM8541) += cuImage.tqm8541
+-image-$(CONFIG_TQM8548) += cuImage.tqm8548
+-image-$(CONFIG_TQM8555) += cuImage.tqm8555
+-image-$(CONFIG_TQM8560) += cuImage.tqm8560
+-image-$(CONFIG_SBC8548) += cuImage.sbc8548
+-image-$(CONFIG_KSI8560) += cuImage.ksi8560
+-
+ # Board ports in arch/powerpc/platform/86xx/Kconfig
+ image-$(CONFIG_MVME7100) += dtbImage.mvme7100
+
diff --git a/debian/patches/debian/rds-Disable-auto-loading-as-mitigation-against-local.patch b/debian/patches/debian/rds-Disable-auto-loading-as-mitigation-against-local.patch
new file mode 100644
index 000000000..451c2923e
--- /dev/null
+++ b/debian/patches/debian/rds-Disable-auto-loading-as-mitigation-against-local.patch
@@ -0,0 +1,31 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Fri, 19 Nov 2010 02:12:48 +0000
+Subject: [PATCH 1/3] rds: Disable auto-loading as mitigation against local exploits
+Forwarded: not-needed
+
+Recent review has revealed several bugs in obscure protocol
+implementations that can be exploited by local users for denial of
+service or privilege escalation. We can mitigate the effect of any
+remaining vulnerabilities in such protocols by preventing unprivileged
+users from loading the modules, so that they are only exploitable on
+systems where the administrator has chosen to load the protocol.
+
+The 'rds' protocol is one such protocol that has been found to be
+vulnerable, and which was not present in the 'lenny' kernel.
+Therefore disable auto-loading.
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+ net/rds/af_rds.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+Index: linux/net/rds/af_rds.c
+===================================================================
+--- linux.orig/net/rds/af_rds.c
++++ linux/net/rds/af_rds.c
+@@ -836,4 +836,4 @@ MODULE_DESCRIPTION("RDS: Reliable Datagr
+ " v" DRV_VERSION " (" DRV_RELDATE ")");
+ MODULE_VERSION(DRV_VERSION);
+ MODULE_LICENSE("Dual BSD/GPL");
+-MODULE_ALIAS_NETPROTO(PF_RDS);
++/* MODULE_ALIAS_NETPROTO(PF_RDS); */
diff --git a/debian/patches/debian/revert-objtool-fix-config_stack_validation-y-warning.patch b/debian/patches/debian/revert-objtool-fix-config_stack_validation-y-warning.patch
new file mode 100644
index 000000000..6abe64a8f
--- /dev/null
+++ b/debian/patches/debian/revert-objtool-fix-config_stack_validation-y-warning.patch
@@ -0,0 +1,50 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Sun, 14 Jan 2018 19:27:18 +0000
+Subject: Revert "objtool: Fix CONFIG_STACK_VALIDATION=y warning for
+ out-of-tree modules"
+
+This reverts commit 9f0c18aec620bc9d82268b3cb937568dd07b43ff. This
+check doesn't make sense for OOT modules as they should always use
+a pre-built objtool.
+---
+ Makefile | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+--- a/Makefile
++++ b/Makefile
+@@ -971,17 +971,6 @@ export mod_sign_cmd
+
+ HOST_LIBELF_LIBS = $(shell pkg-config libelf --libs 2>/dev/null || echo -lelf)
+
+-ifdef CONFIG_STACK_VALIDATION
+- has_libelf := $(call try-run,\
+- echo "int main() {}" | $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -xc -o /dev/null $(HOST_LIBELF_LIBS) -,1,0)
+- ifeq ($(has_libelf),1)
+- objtool_target := tools/objtool FORCE
+- else
+- SKIP_STACK_VALIDATION := 1
+- export SKIP_STACK_VALIDATION
+- endif
+-endif
+-
+ PHONY += prepare0
+
+ ifeq ($(KBUILD_EXTMOD),)
+@@ -1132,6 +1121,17 @@ uapi-asm-generic:
+ $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.asm-generic \
+ src=uapi/asm obj=arch/$(SRCARCH)/include/generated/uapi/asm
+
++ifdef CONFIG_STACK_VALIDATION
++ has_libelf := $(call try-run,\
++ echo "int main() {}" | $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -xc -o /dev/null $(HOST_LIBELF_LIBS) -,1,0)
++ ifeq ($(has_libelf),1)
++ objtool_target := tools/objtool FORCE
++ else
++ SKIP_STACK_VALIDATION := 1
++ export SKIP_STACK_VALIDATION
++ endif
++endif
++
+ PHONY += prepare-objtool
+ prepare-objtool: $(objtool_target)
+ ifeq ($(SKIP_STACK_VALIDATION),1)
diff --git a/debian/patches/debian/sched-autogroup-disabled.patch b/debian/patches/debian/sched-autogroup-disabled.patch
new file mode 100644
index 000000000..20e57105c
--- /dev/null
+++ b/debian/patches/debian/sched-autogroup-disabled.patch
@@ -0,0 +1,21 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Subject: sched: Do not enable autogrouping by default
+Date: Wed, 16 Mar 2011 03:17:06 +0000
+Forwarded: not-needed
+
+We want to provide the option of autogrouping but without enabling
+it by default yet.
+
+Index: linux/kernel/sched/autogroup.c
+===================================================================
+--- linux.orig/kernel/sched/autogroup.c
++++ linux/kernel/sched/autogroup.c
+@@ -5,7 +5,7 @@
+ #include <linux/nospec.h>
+ #include "sched.h"
+
+-unsigned int __read_mostly sysctl_sched_autogroup_enabled = 1;
++unsigned int __read_mostly sysctl_sched_autogroup_enabled = 0;
+ static struct autogroup autogroup_default;
+ static atomic_t autogroup_seq_nr;
+
diff --git a/debian/patches/debian/snd-pcsp-disable-autoload.patch b/debian/patches/debian/snd-pcsp-disable-autoload.patch
new file mode 100644
index 000000000..2681d4275
--- /dev/null
+++ b/debian/patches/debian/snd-pcsp-disable-autoload.patch
@@ -0,0 +1,32 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Wed, 05 Feb 2014 23:01:30 +0000
+Subject: snd-pcsp: Disable autoload
+Forwarded: not-needed
+Bug-Debian: https://bugs.debian.org/697709
+
+There are two drivers claiming the platform:pcspkr device:
+- pcspkr creates an input(!) device that can only beep
+- snd-pcsp creates an equivalent input device plus a PCM device that can
+ play barely recognisable renditions of sampled sound
+
+snd-pcsp is blacklisted by the alsa-base package, but not everyone
+installs that. On PCs where no sound is wanted at all, both drivers
+will still be loaded and one or other will complain that it couldn't
+claim the relevant I/O range.
+
+In case anyone finds snd-pcsp useful, we continue to build it. But
+remove the alias, to ensure it's not loaded where it's not wanted.
+
+Index: linux/sound/drivers/pcsp/pcsp.c
+===================================================================
+--- linux.orig/sound/drivers/pcsp/pcsp.c
++++ linux/sound/drivers/pcsp/pcsp.c
+@@ -22,7 +22,7 @@ MODULE_AUTHOR("Stas Sergeev <stsp@users.
+ MODULE_DESCRIPTION("PC-Speaker driver");
+ MODULE_LICENSE("GPL");
+ MODULE_SUPPORTED_DEVICE("{{PC-Speaker, pcsp}}");
+-MODULE_ALIAS("platform:pcspkr");
++/*MODULE_ALIAS("platform:pcspkr");*/
+
+ static int index = SNDRV_DEFAULT_IDX1; /* Index 0-MAX */
+ static char *id = SNDRV_DEFAULT_STR1; /* ID for this card */
diff --git a/debian/patches/debian/tools-perf-install.patch b/debian/patches/debian/tools-perf-install.patch
new file mode 100644
index 000000000..8cfd02afd
--- /dev/null
+++ b/debian/patches/debian/tools-perf-install.patch
@@ -0,0 +1,58 @@
+From: Bastian Blank <waldi@debian.org>
+Date: Fri, 07 Oct 2011 21:37:52 +0100
+Subject: Install perf scripts non-executable
+Forwarded: no
+
+[bwh: Forward-ported to 4.13]
+
+Index: linux/tools/perf/Makefile.perf
+===================================================================
+--- linux.orig/tools/perf/Makefile.perf
++++ linux/tools/perf/Makefile.perf
+@@ -796,8 +796,8 @@ endif
+ ifndef NO_LIBPERL
+ $(call QUIET_INSTALL, perl-scripts) \
+ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace'; \
+- $(INSTALL) scripts/perl/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace'; \
+- $(INSTALL) scripts/perl/*.pl -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl'; \
++ $(INSTALL) -m 644 scripts/perl/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace'; \
++ $(INSTALL) -m 644 scripts/perl/*.pl -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl'; \
+ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin'; \
+ $(INSTALL) scripts/perl/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin'
+ endif
+@@ -805,27 +805,27 @@ ifndef NO_LIBPYTHON
+ $(call QUIET_INSTALL, python-scripts) \
+ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace'; \
+ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin'; \
+- $(INSTALL) scripts/python/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace'; \
+- $(INSTALL) scripts/python/*.py -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python'; \
++ $(INSTALL) -m 644 scripts/python/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace'; \
++ $(INSTALL) -m 644 scripts/python/*.py -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python'; \
+ $(INSTALL) scripts/python/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin'
+ endif
+ $(call QUIET_INSTALL, perf_completion-script) \
+ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d'; \
+- $(INSTALL) perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf_$(VERSION)'
++ $(INSTALL) -m 644 perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf_$(VERSION)'
+ $(call QUIET_INSTALL, perf-tip) \
+ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(tip_instdir_SQ)'; \
+- $(INSTALL) Documentation/tips.txt -t '$(DESTDIR_SQ)$(tip_instdir_SQ)'
++ $(INSTALL) -m 644 Documentation/tips.txt -t '$(DESTDIR_SQ)$(tip_instdir_SQ)'
+
+ install-tests: all install-gtk
+ $(call QUIET_INSTALL, tests) \
+ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'; \
+- $(INSTALL) tests/attr.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'; \
++ $(INSTALL) -m 644 tests/attr.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'; \
+ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'; \
+- $(INSTALL) tests/attr/* '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'; \
++ $(INSTALL) -m 644 tests/attr/* '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'; \
+ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
+- $(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
++ $(INSTALL) -m 644 tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
+ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
+- $(INSTALL) tests/shell/lib/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
++ $(INSTALL) -m 644 tests/shell/lib/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
+
+ install-bin: install-tools install-tests install-traceevent-plugins
+
diff --git a/debian/patches/debian/tools-perf-version.patch b/debian/patches/debian/tools-perf-version.patch
new file mode 100644
index 000000000..6833bb7a7
--- /dev/null
+++ b/debian/patches/debian/tools-perf-version.patch
@@ -0,0 +1,119 @@
+From: Bastian Blank <waldi@debian.org>
+Date: Mon, 26 Sep 2011 13:53:12 +0100
+Subject: Create manpages and binaries including the version
+Forwarded: no
+
+[bwh: Fix version insertion in perf man page cross-references and perf
+man page title. Install bash_completion script for perf with a
+version-dependent name. And do the same for trace.]
+
+Index: linux/tools/perf/Makefile.perf
+===================================================================
+--- linux.orig/tools/perf/Makefile.perf
++++ linux/tools/perf/Makefile.perf
+@@ -759,23 +759,23 @@ endif
+ install-tools: all install-gtk
+ $(call QUIET_INSTALL, binaries) \
+ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)'; \
+- $(INSTALL) $(OUTPUT)perf '$(DESTDIR_SQ)$(bindir_SQ)'; \
+- $(LN) '$(DESTDIR_SQ)$(bindir_SQ)/perf' '$(DESTDIR_SQ)$(bindir_SQ)/trace'
++ $(INSTALL) $(OUTPUT)perf '$(DESTDIR_SQ)$(bindir_SQ)/perf_$(VERSION)'; \
++ $(LN) '$(DESTDIR_SQ)$(bindir_SQ)/perf_$(VERSION)' '$(DESTDIR_SQ)$(bindir_SQ)/trace_$(VERSION)'
++ $(call QUIET_INSTALL, libexec) \
++ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
+ ifndef NO_PERF_READ_VDSO32
+ $(call QUIET_INSTALL, perf-read-vdso32) \
+- $(INSTALL) $(OUTPUT)perf-read-vdso32 '$(DESTDIR_SQ)$(bindir_SQ)';
++ $(INSTALL) $(OUTPUT)perf-read-vdso32 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)';
+ endif
+ ifndef NO_PERF_READ_VDSOX32
+ $(call QUIET_INSTALL, perf-read-vdsox32) \
+- $(INSTALL) $(OUTPUT)perf-read-vdsox32 '$(DESTDIR_SQ)$(bindir_SQ)';
++ $(INSTALL) $(OUTPUT)perf-read-vdsox32 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)';
+ endif
+ ifndef NO_JVMTI
+ $(call QUIET_INSTALL, $(LIBJVMTI)) \
+ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(libdir_SQ)'; \
+ $(INSTALL) $(OUTPUT)$(LIBJVMTI) '$(DESTDIR_SQ)$(libdir_SQ)';
+ endif
+- $(call QUIET_INSTALL, libexec) \
+- $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
+ ifndef NO_LIBBPF
+ $(call QUIET_INSTALL, bpf-headers) \
+ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perf_include_instdir_SQ)/bpf'; \
+@@ -811,7 +811,7 @@ ifndef NO_LIBPYTHON
+ endif
+ $(call QUIET_INSTALL, perf_completion-script) \
+ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d'; \
+- $(INSTALL) perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf'
++ $(INSTALL) perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf_$(VERSION)'
+ $(call QUIET_INSTALL, perf-tip) \
+ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(tip_instdir_SQ)'; \
+ $(INSTALL) Documentation/tips.txt -t '$(DESTDIR_SQ)$(tip_instdir_SQ)'
+@@ -836,7 +836,7 @@ install-python_ext:
+
+ # 'make install-doc' should call 'make -C Documentation install'
+ $(INSTALL_DOC_TARGETS):
+- $(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) $(@:-doc=)
++ $(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) $(@:-doc=) VERSION=$(VERSION)
+
+ ### Cleaning rules
+
+Index: linux/tools/perf/Documentation/Makefile
+===================================================================
+--- linux.orig/tools/perf/Documentation/Makefile
++++ linux/tools/perf/Documentation/Makefile
+@@ -194,14 +194,16 @@ ifdef missing_tools
+ $(error "You need to install $(missing_tools) for man pages")
+ endif
+
+-do-install-man: man
++do-install-man: $(addprefix install-man-,$(_DOC_MAN1))
++
++install-man-perf.1: $(OUTPUT)perf.1
++ $(INSTALL) -d -m 755 $(DESTDIR)$(man1dir)
++ sed -e 's/"PERF"/"PERF_$(VERSION)"/' -e 's/fBperf-/fBperf_$(VERSION)-/g' $^ > $(DESTDIR)$(man1dir)/perf_$(VERSION).1
++
++install-man-perf%.1: $(OUTPUT)perf%.1
+ $(call QUIET_INSTALL, Documentation-man) \
+ $(INSTALL) -d -m 755 $(DESTDIR)$(man1dir); \
+-# $(INSTALL) -d -m 755 $(DESTDIR)$(man5dir); \
+-# $(INSTALL) -d -m 755 $(DESTDIR)$(man7dir); \
+- $(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(man1dir); \
+-# $(INSTALL) -m 644 $(DOC_MAN5) $(DESTDIR)$(man5dir); \
+-# $(INSTALL) -m 644 $(DOC_MAN7) $(DESTDIR)$(man7dir)
++ sed -e 's/"PERF\\-/"PERF_$(VERSION)\\-/' -e 's/fBperf-/fBperf_$(VERSION)-/g' $^ > $(DESTDIR)$(man1dir)/perf_$(VERSION)$*.1
+
+ install-man: check-man-tools man do-install-man
+
+Index: linux/tools/perf/util/Build
+===================================================================
+--- linux.orig/tools/perf/util/Build
++++ linux/tools/perf/util/Build
+@@ -193,6 +193,7 @@ CFLAGS_libstring.o += -Wno-unused-pa
+ CFLAGS_hweight.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
+ CFLAGS_parse-events.o += -Wno-redundant-decls
+ CFLAGS_header.o += -include $(OUTPUT)PERF-VERSION-FILE
++CFLAGS_vdso.o += -DPERFEXECDIR='"$(perfexec_instdir_SQ)"'
+
+ $(OUTPUT)util/kallsyms.o: ../lib/symbol/kallsyms.c FORCE
+ $(call rule_mkdir)
+Index: linux/tools/perf/util/vdso.c
+===================================================================
+--- linux.orig/tools/perf/util/vdso.c
++++ linux/tools/perf/util/vdso.c
+@@ -52,12 +52,12 @@ static struct vdso_info *vdso_info__new(
+ .vdso32 = {
+ .temp_file_name = VDSO__TEMP_FILE_NAME,
+ .dso_name = DSO__NAME_VDSO32,
+- .read_prog = "perf-read-vdso32",
++ .read_prog = PERFEXECDIR "/perf-read-vdso32",
+ },
+ .vdsox32 = {
+ .temp_file_name = VDSO__TEMP_FILE_NAME,
+ .dso_name = DSO__NAME_VDSOX32,
+- .read_prog = "perf-read-vdsox32",
++ .read_prog = PERFEXECDIR "/perf-read-vdsox32",
+ },
+ #endif
+ };
diff --git a/debian/patches/debian/uname-version-timestamp.patch b/debian/patches/debian/uname-version-timestamp.patch
new file mode 100644
index 000000000..74cbebbde
--- /dev/null
+++ b/debian/patches/debian/uname-version-timestamp.patch
@@ -0,0 +1,35 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Subject: Make mkcompile_h accept an alternate timestamp string
+Date: Tue, 12 May 2015 19:29:22 +0100
+Forwarded: not-needed
+
+We want to include the Debian version in the utsname::version string
+instead of a full timestamp string. However, we still need to provide
+a standard timestamp string for gen_initramfs_list.sh to make the
+kernel image reproducible.
+
+Make mkcompile_h use $KBUILD_BUILD_VERSION_TIMESTAMP in preference to
+$KBUILD_BUILD_TIMESTAMP.
+
+Index: linux/scripts/mkcompile_h
+===================================================================
+--- linux.orig/scripts/mkcompile_h
++++ linux/scripts/mkcompile_h
+@@ -33,10 +33,14 @@ else
+ VERSION=$KBUILD_BUILD_VERSION
+ fi
+
+-if [ -z "$KBUILD_BUILD_TIMESTAMP" ]; then
+- TIMESTAMP=`date`
++if [ -z "$KBUILD_BUILD_VERSION_TIMESTAMP" ]; then
++ if [ -z "$KBUILD_BUILD_TIMESTAMP" ]; then
++ TIMESTAMP=`date`
++ else
++ TIMESTAMP=$KBUILD_BUILD_TIMESTAMP
++ fi
+ else
+- TIMESTAMP=$KBUILD_BUILD_TIMESTAMP
++ TIMESTAMP=$KBUILD_BUILD_VERSION_TIMESTAMP
+ fi
+ if test -z "$KBUILD_BUILD_USER"; then
+ LINUX_COMPILE_BY=$(whoami | sed 's/\\/\\\\/')
diff --git a/debian/patches/debian/version.patch b/debian/patches/debian/version.patch
new file mode 100644
index 000000000..4447df7bb
--- /dev/null
+++ b/debian/patches/debian/version.patch
@@ -0,0 +1,177 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Subject: Include package version along with kernel release in stack traces
+Date: Tue, 24 Jul 2012 03:13:10 +0100
+Forwarded: not-needed
+
+For distribution binary packages we assume
+$DISTRIBUTION_OFFICIAL_BUILD, $DISTRIBUTOR and $DISTRIBUTION_VERSION
+are set.
+
+Index: linux/Makefile
+===================================================================
+--- linux.orig/Makefile
++++ linux/Makefile
+@@ -1087,7 +1087,8 @@ endif
+ # that need to depend on updated CONFIG_* values can be checked here.
+ prepare2: prepare3 outputmakefile asm-generic
+
+-prepare1: prepare2 $(version_h) $(autoksyms_h) include/generated/utsrelease.h
++prepare1: prepare2 $(version_h) $(autoksyms_h) include/generated/utsrelease.h \
++ include/generated/package.h
+ $(cmd_crmodverdir)
+
+ archprepare: archheaders archscripts prepare1 scripts_basic
+@@ -1139,6 +1140,16 @@ define filechk_version.h
+ echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))';)
+ endef
+
++ifneq ($(DISTRIBUTION_OFFICIAL_BUILD),)
++define filechk_package.h
++ echo \#define LINUX_PACKAGE_ID \" $(DISTRIBUTOR) $(DISTRIBUTION_VERSION)\"
++endef
++else
++define filechk_package.h
++ echo \#define LINUX_PACKAGE_ID \"\"
++endef
++endif
++
+ $(version_h): FORCE
+ $(call filechk,version.h)
+ $(Q)rm -f $(old_version_h)
+@@ -1146,6 +1157,9 @@ $(version_h): FORCE
+ include/generated/utsrelease.h: include/config/kernel.release FORCE
+ $(call filechk,utsrelease.h)
+
++include/generated/package.h: $(srctree)/Makefile FORCE
++ $(call filechk,package.h)
++
+ PHONY += headerdep
+ headerdep:
+ $(Q)find $(srctree)/include/ -name '*.h' | xargs --max-args 1 \
+Index: linux/arch/x86/um/sysrq_64.c
+===================================================================
+--- linux.orig/arch/x86/um/sysrq_64.c
++++ linux/arch/x86/um/sysrq_64.c
+@@ -9,6 +9,7 @@
+ #include <linux/sched.h>
+ #include <linux/sched/debug.h>
+ #include <linux/utsname.h>
++#include <generated/package.h>
+ #include <asm/current.h>
+ #include <asm/ptrace.h>
+ #include <asm/sysrq.h>
+@@ -17,8 +18,9 @@ void show_regs(struct pt_regs *regs)
+ {
+ printk("\n");
+ print_modules();
+- printk(KERN_INFO "Pid: %d, comm: %.20s %s %s\n", task_pid_nr(current),
+- current->comm, print_tainted(), init_utsname()->release);
++ printk(KERN_INFO "Pid: %d, comm: %.20s %s %s%s\n", task_pid_nr(current),
++ current->comm, print_tainted(), init_utsname()->release,
++ LINUX_PACKAGE_ID);
+ printk(KERN_INFO "RIP: %04lx:[<%016lx>]\n", PT_REGS_CS(regs) & 0xffff,
+ PT_REGS_IP(regs));
+ printk(KERN_INFO "RSP: %016lx EFLAGS: %08lx\n", PT_REGS_SP(regs),
+Index: linux/arch/ia64/kernel/process.c
+===================================================================
+--- linux.orig/arch/ia64/kernel/process.c
++++ linux/arch/ia64/kernel/process.c
+@@ -34,6 +34,7 @@
+ #include <linux/utsname.h>
+ #include <linux/tracehook.h>
+ #include <linux/rcupdate.h>
++#include <generated/package.h>
+
+ #include <asm/cpu.h>
+ #include <asm/delay.h>
+@@ -104,9 +105,9 @@ show_regs (struct pt_regs *regs)
+ print_modules();
+ printk("\n");
+ show_regs_print_info(KERN_DEFAULT);
+- printk("psr : %016lx ifs : %016lx ip : [<%016lx>] %s (%s)\n",
++ printk("psr : %016lx ifs : %016lx ip : [<%016lx>] %s (%s%s)\n",
+ regs->cr_ipsr, regs->cr_ifs, ip, print_tainted(),
+- init_utsname()->release);
++ init_utsname()->release, LINUX_PACKAGE_ID);
+ printk("ip is at %pS\n", (void *)ip);
+ printk("unat: %016lx pfs : %016lx rsc : %016lx\n",
+ regs->ar_unat, regs->ar_pfs, regs->ar_rsc);
+Index: linux/arch/powerpc/kernel/process.c
+===================================================================
+--- linux.orig/arch/powerpc/kernel/process.c
++++ linux/arch/powerpc/kernel/process.c
+@@ -43,6 +43,7 @@
+ #include <linux/uaccess.h>
+ #include <linux/elf-randomize.h>
+ #include <linux/pkeys.h>
++#include <generated/package.h>
+
+ #include <asm/pgtable.h>
+ #include <asm/io.h>
+@@ -1424,8 +1425,9 @@ void show_regs(struct pt_regs * regs)
+
+ printk("NIP: "REG" LR: "REG" CTR: "REG"\n",
+ regs->nip, regs->link, regs->ctr);
+- printk("REGS: %px TRAP: %04lx %s (%s)\n",
+- regs, regs->trap, print_tainted(), init_utsname()->release);
++ printk("REGS: %px TRAP: %04lx %s (%s%s)\n",
++ regs, regs->trap, print_tainted(), init_utsname()->release,
++ LINUX_PACKAGE_ID);
+ printk("MSR: "REG" ", regs->msr);
+ print_msr_bits(regs->msr);
+ pr_cont(" CR: %08lx XER: %08lx\n", regs->ccr, regs->xer);
+Index: linux/kernel/hung_task.c
+===================================================================
+--- linux.orig/kernel/hung_task.c
++++ linux/kernel/hung_task.c
+@@ -21,6 +21,7 @@
+ #include <linux/sched/debug.h>
+
+ #include <trace/events/sched.h>
++#include <generated/package.h>
+
+ /*
+ * The number of tasks checked:
+@@ -127,10 +128,11 @@ static void check_hung_task(struct task_
+ sysctl_hung_task_warnings--;
+ pr_err("INFO: task %s:%d blocked for more than %ld seconds.\n",
+ t->comm, t->pid, timeout);
+- pr_err(" %s %s %.*s\n",
++ pr_err(" %s %s %.*s%s\n",
+ print_tainted(), init_utsname()->release,
+ (int)strcspn(init_utsname()->version, " "),
+- init_utsname()->version);
++ init_utsname()->version,
++ LINUX_PACKAGE_ID);
+ pr_err("\"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\""
+ " disables this message.\n");
+ sched_show_task(t);
+Index: linux/lib/dump_stack.c
+===================================================================
+--- linux.orig/lib/dump_stack.c
++++ linux/lib/dump_stack.c
+@@ -12,6 +12,7 @@
+ #include <linux/atomic.h>
+ #include <linux/kexec.h>
+ #include <linux/utsname.h>
++#include <generated/package.h>
+
+ static char dump_stack_arch_desc_str[128];
+
+@@ -44,13 +45,14 @@ void __init dump_stack_set_arch_desc(con
+ */
+ void dump_stack_print_info(const char *log_lvl)
+ {
+- printk("%sCPU: %d PID: %d Comm: %.20s %s%s %s %.*s\n",
++ printk("%sCPU: %d PID: %d Comm: %.20s %s%s %s %.*s%s\n",
+ log_lvl, raw_smp_processor_id(), current->pid, current->comm,
+ kexec_crash_loaded() ? "Kdump: loaded " : "",
+ print_tainted(),
+ init_utsname()->release,
+ (int)strcspn(init_utsname()->version, " "),
+- init_utsname()->version);
++ init_utsname()->version,
++ LINUX_PACKAGE_ID);
+
+ if (dump_stack_arch_desc_str[0] != '\0')
+ printk("%sHardware name: %s\n",
diff --git a/debian/patches/debian/wireless-add-debian-wireless-regdb-certificates.patch b/debian/patches/debian/wireless-add-debian-wireless-regdb-certificates.patch
new file mode 100644
index 000000000..112683839
--- /dev/null
+++ b/debian/patches/debian/wireless-add-debian-wireless-regdb-certificates.patch
@@ -0,0 +1,963 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Fri, 13 Apr 2018 20:10:28 +0100
+Subject: wireless: Add Debian wireless-regdb certificates
+Forwarded: not-needed
+
+This hex dump is generated using:
+
+{
+ for cert in debian/certs/wireless-regdb-*.pem; do
+ openssl x509 -in $cert -outform der;
+ done
+} | hexdump -v -e '1/1 "0x%.2x," "\n"' > net/wireless/certs/debian.hex
+
+---
+Index: linux/net/wireless/certs/debian.hex
+===================================================================
+--- /dev/null
++++ linux/net/wireless/certs/debian.hex
+@@ -0,0 +1,944 @@
++0x30,
++0x82,
++0x03,
++0xac,
++0x30,
++0x82,
++0x02,
++0x94,
++0xa0,
++0x03,
++0x02,
++0x01,
++0x02,
++0x02,
++0x09,
++0x00,
++0xd9,
++0xb1,
++0xe4,
++0x6f,
++0x28,
++0xf3,
++0xd4,
++0x97,
++0x30,
++0x0d,
++0x06,
++0x09,
++0x2a,
++0x86,
++0x48,
++0x86,
++0xf7,
++0x0d,
++0x01,
++0x01,
++0x0b,
++0x05,
++0x00,
++0x30,
++0x6b,
++0x31,
++0x0b,
++0x30,
++0x09,
++0x06,
++0x03,
++0x55,
++0x04,
++0x06,
++0x13,
++0x02,
++0x47,
++0x42,
++0x31,
++0x13,
++0x30,
++0x11,
++0x06,
++0x03,
++0x55,
++0x04,
++0x07,
++0x0c,
++0x0a,
++0x4d,
++0x61,
++0x6e,
++0x63,
++0x68,
++0x65,
++0x73,
++0x74,
++0x65,
++0x72,
++0x31,
++0x0f,
++0x30,
++0x0d,
++0x06,
++0x03,
++0x55,
++0x04,
++0x0a,
++0x0c,
++0x06,
++0x44,
++0x65,
++0x62,
++0x69,
++0x61,
++0x6e,
++0x31,
++0x16,
++0x30,
++0x14,
++0x06,
++0x03,
++0x55,
++0x04,
++0x03,
++0x0c,
++0x0d,
++0x42,
++0x65,
++0x6e,
++0x20,
++0x48,
++0x75,
++0x74,
++0x63,
++0x68,
++0x69,
++0x6e,
++0x67,
++0x73,
++0x31,
++0x1e,
++0x30,
++0x1c,
++0x06,
++0x09,
++0x2a,
++0x86,
++0x48,
++0x86,
++0xf7,
++0x0d,
++0x01,
++0x09,
++0x01,
++0x16,
++0x0f,
++0x62,
++0x65,
++0x6e,
++0x68,
++0x40,
++0x64,
++0x65,
++0x62,
++0x69,
++0x61,
++0x6e,
++0x2e,
++0x6f,
++0x72,
++0x67,
++0x30,
++0x1e,
++0x17,
++0x0d,
++0x31,
++0x38,
++0x30,
++0x34,
++0x31,
++0x33,
++0x31,
++0x38,
++0x32,
++0x31,
++0x34,
++0x36,
++0x5a,
++0x17,
++0x0d,
++0x31,
++0x38,
++0x30,
++0x35,
++0x31,
++0x33,
++0x31,
++0x38,
++0x32,
++0x31,
++0x34,
++0x36,
++0x5a,
++0x30,
++0x6b,
++0x31,
++0x0b,
++0x30,
++0x09,
++0x06,
++0x03,
++0x55,
++0x04,
++0x06,
++0x13,
++0x02,
++0x47,
++0x42,
++0x31,
++0x13,
++0x30,
++0x11,
++0x06,
++0x03,
++0x55,
++0x04,
++0x07,
++0x0c,
++0x0a,
++0x4d,
++0x61,
++0x6e,
++0x63,
++0x68,
++0x65,
++0x73,
++0x74,
++0x65,
++0x72,
++0x31,
++0x0f,
++0x30,
++0x0d,
++0x06,
++0x03,
++0x55,
++0x04,
++0x0a,
++0x0c,
++0x06,
++0x44,
++0x65,
++0x62,
++0x69,
++0x61,
++0x6e,
++0x31,
++0x16,
++0x30,
++0x14,
++0x06,
++0x03,
++0x55,
++0x04,
++0x03,
++0x0c,
++0x0d,
++0x42,
++0x65,
++0x6e,
++0x20,
++0x48,
++0x75,
++0x74,
++0x63,
++0x68,
++0x69,
++0x6e,
++0x67,
++0x73,
++0x31,
++0x1e,
++0x30,
++0x1c,
++0x06,
++0x09,
++0x2a,
++0x86,
++0x48,
++0x86,
++0xf7,
++0x0d,
++0x01,
++0x09,
++0x01,
++0x16,
++0x0f,
++0x62,
++0x65,
++0x6e,
++0x68,
++0x40,
++0x64,
++0x65,
++0x62,
++0x69,
++0x61,
++0x6e,
++0x2e,
++0x6f,
++0x72,
++0x67,
++0x30,
++0x82,
++0x01,
++0x22,
++0x30,
++0x0d,
++0x06,
++0x09,
++0x2a,
++0x86,
++0x48,
++0x86,
++0xf7,
++0x0d,
++0x01,
++0x01,
++0x01,
++0x05,
++0x00,
++0x03,
++0x82,
++0x01,
++0x0f,
++0x00,
++0x30,
++0x82,
++0x01,
++0x0a,
++0x02,
++0x82,
++0x01,
++0x01,
++0x00,
++0x9d,
++0xe1,
++0x77,
++0xa0,
++0x24,
++0xa0,
++0xd5,
++0x79,
++0x65,
++0x3a,
++0x07,
++0x90,
++0xc9,
++0xf6,
++0xa5,
++0xa6,
++0x1f,
++0x84,
++0x1c,
++0x23,
++0x07,
++0x4b,
++0x4f,
++0xa5,
++0x03,
++0xc6,
++0x0f,
++0xf7,
++0x54,
++0xd5,
++0x8b,
++0x7e,
++0x79,
++0x81,
++0x00,
++0xd2,
++0xe9,
++0x3d,
++0xf4,
++0x97,
++0xfe,
++0x84,
++0xcd,
++0x55,
++0xbd,
++0xc9,
++0x8f,
++0x21,
++0x57,
++0x88,
++0x06,
++0x39,
++0x90,
++0x66,
++0x41,
++0x26,
++0x79,
++0x2c,
++0xca,
++0x3f,
++0x95,
++0x87,
++0x01,
++0x11,
++0x2f,
++0x2f,
++0xb0,
++0xe1,
++0x0b,
++0x43,
++0xfc,
++0x5f,
++0x2f,
++0x4f,
++0x67,
++0x04,
++0xdb,
++0x4d,
++0xb7,
++0x72,
++0x4d,
++0xd1,
++0xc5,
++0x76,
++0x73,
++0x4d,
++0x91,
++0x69,
++0xb0,
++0x71,
++0x17,
++0x36,
++0xea,
++0xab,
++0x0a,
++0x3a,
++0xcd,
++0x95,
++0x9b,
++0x76,
++0x1b,
++0x8e,
++0x21,
++0x17,
++0x8f,
++0xc5,
++0x02,
++0xbf,
++0x24,
++0xc7,
++0xc0,
++0x40,
++0xb1,
++0x3b,
++0xc4,
++0x80,
++0x7c,
++0x71,
++0xa5,
++0x51,
++0xdc,
++0xf7,
++0x3a,
++0x58,
++0x7f,
++0xb1,
++0x07,
++0x81,
++0x8a,
++0x10,
++0xd1,
++0xf6,
++0x93,
++0x17,
++0x71,
++0xe0,
++0xfa,
++0x51,
++0x79,
++0x15,
++0xd4,
++0xd7,
++0x8f,
++0xad,
++0xbd,
++0x6f,
++0x38,
++0xe1,
++0x26,
++0x7d,
++0xbc,
++0xf0,
++0x3e,
++0x80,
++0x89,
++0xb4,
++0xec,
++0x8e,
++0x69,
++0x90,
++0xdb,
++0x97,
++0x8a,
++0xf0,
++0x23,
++0x23,
++0x83,
++0x82,
++0x3b,
++0x6a,
++0xb1,
++0xac,
++0xeb,
++0xe7,
++0x99,
++0x74,
++0x2a,
++0x35,
++0x8e,
++0xa9,
++0x64,
++0xfd,
++0x46,
++0x9e,
++0xe8,
++0xe5,
++0x48,
++0x61,
++0x31,
++0x6e,
++0xe6,
++0xfc,
++0x19,
++0x18,
++0x54,
++0xc3,
++0x1b,
++0x4f,
++0xd6,
++0x00,
++0x44,
++0x87,
++0x1c,
++0x37,
++0x45,
++0xea,
++0xf5,
++0xc9,
++0xcb,
++0x0f,
++0x0c,
++0x55,
++0xec,
++0xcf,
++0x6a,
++0xc2,
++0x45,
++0x26,
++0x23,
++0xa2,
++0x31,
++0x52,
++0x4d,
++0xee,
++0x21,
++0x7d,
++0xfd,
++0x58,
++0x72,
++0xc2,
++0x28,
++0xc5,
++0x8e,
++0xa9,
++0xd0,
++0xee,
++0x01,
++0x77,
++0x08,
++0xa5,
++0xf0,
++0x22,
++0x2b,
++0x47,
++0x79,
++0x2b,
++0xcf,
++0x9a,
++0x46,
++0xb5,
++0x8f,
++0xfd,
++0x64,
++0xa2,
++0xb5,
++0xed,
++0x02,
++0x03,
++0x01,
++0x00,
++0x01,
++0xa3,
++0x53,
++0x30,
++0x51,
++0x30,
++0x1d,
++0x06,
++0x03,
++0x55,
++0x1d,
++0x0e,
++0x04,
++0x16,
++0x04,
++0x14,
++0xd3,
++0xfb,
++0x2d,
++0xdb,
++0xf0,
++0x8e,
++0xfa,
++0x67,
++0x6d,
++0x2f,
++0x21,
++0x99,
++0x4c,
++0xeb,
++0x41,
++0x59,
++0xe6,
++0x9d,
++0xd8,
++0xd5,
++0x30,
++0x1f,
++0x06,
++0x03,
++0x55,
++0x1d,
++0x23,
++0x04,
++0x18,
++0x30,
++0x16,
++0x80,
++0x14,
++0xd3,
++0xfb,
++0x2d,
++0xdb,
++0xf0,
++0x8e,
++0xfa,
++0x67,
++0x6d,
++0x2f,
++0x21,
++0x99,
++0x4c,
++0xeb,
++0x41,
++0x59,
++0xe6,
++0x9d,
++0xd8,
++0xd5,
++0x30,
++0x0f,
++0x06,
++0x03,
++0x55,
++0x1d,
++0x13,
++0x01,
++0x01,
++0xff,
++0x04,
++0x05,
++0x30,
++0x03,
++0x01,
++0x01,
++0xff,
++0x30,
++0x0d,
++0x06,
++0x09,
++0x2a,
++0x86,
++0x48,
++0x86,
++0xf7,
++0x0d,
++0x01,
++0x01,
++0x0b,
++0x05,
++0x00,
++0x03,
++0x82,
++0x01,
++0x01,
++0x00,
++0x71,
++0x71,
++0xe4,
++0xcd,
++0x40,
++0x84,
++0xf3,
++0x60,
++0x34,
++0x6a,
++0x78,
++0xdc,
++0xe7,
++0x81,
++0x20,
++0x8f,
++0x1e,
++0x7f,
++0x54,
++0x31,
++0x8e,
++0x4a,
++0xe5,
++0x69,
++0x91,
++0x1c,
++0x4c,
++0x77,
++0x00,
++0x47,
++0x09,
++0x98,
++0x91,
++0xf4,
++0x27,
++0x52,
++0x9a,
++0x2d,
++0x30,
++0x87,
++0x4c,
++0x51,
++0x51,
++0x1f,
++0xae,
++0xd8,
++0x8c,
++0xdb,
++0x3c,
++0x73,
++0x06,
++0x43,
++0xc6,
++0x1f,
++0x3a,
++0xba,
++0xaf,
++0x9e,
++0xd2,
++0xeb,
++0x3e,
++0x9f,
++0xd1,
++0xb2,
++0x8a,
++0xa2,
++0x16,
++0x08,
++0x26,
++0xa1,
++0x39,
++0x0c,
++0x63,
++0xe7,
++0x2d,
++0x78,
++0x9c,
++0xac,
++0x2c,
++0x4e,
++0x69,
++0xd5,
++0xa0,
++0xfd,
++0xbd,
++0xea,
++0x95,
++0xfe,
++0xe2,
++0x69,
++0x06,
++0xe1,
++0xb2,
++0x27,
++0x90,
++0x68,
++0xd8,
++0x3a,
++0xac,
++0xd6,
++0xa0,
++0x4e,
++0xe2,
++0x8a,
++0xfa,
++0xff,
++0x9c,
++0x98,
++0x6b,
++0x60,
++0x83,
++0xea,
++0xe7,
++0x46,
++0x24,
++0x09,
++0x21,
++0x12,
++0xa8,
++0xfe,
++0xaa,
++0x46,
++0x0d,
++0x24,
++0xa5,
++0xcf,
++0x52,
++0x37,
++0x48,
++0xb9,
++0xe2,
++0xb1,
++0xd6,
++0xb0,
++0xe4,
++0xbf,
++0x6f,
++0x59,
++0x7b,
++0x17,
++0x9e,
++0xdd,
++0x24,
++0x00,
++0xee,
++0xc6,
++0x89,
++0x76,
++0xe9,
++0x35,
++0x40,
++0x1f,
++0xeb,
++0x7d,
++0x23,
++0x8c,
++0xed,
++0x13,
++0x6c,
++0x66,
++0xbc,
++0xc4,
++0x88,
++0xb5,
++0x55,
++0x9a,
++0xec,
++0xbd,
++0x52,
++0x0d,
++0x0b,
++0xc5,
++0x40,
++0xe1,
++0xfe,
++0xb7,
++0x20,
++0xb1,
++0x22,
++0x16,
++0x32,
++0xed,
++0x28,
++0x3e,
++0x1f,
++0xbf,
++0xf2,
++0x00,
++0x12,
++0x75,
++0x92,
++0xd7,
++0x99,
++0x2e,
++0x25,
++0xfb,
++0xf2,
++0xe6,
++0xfd,
++0x2a,
++0x10,
++0xd1,
++0x75,
++0x89,
++0x31,
++0x52,
++0xe4,
++0xb2,
++0xc2,
++0xee,
++0xcd,
++0x41,
++0xa3,
++0x08,
++0x48,
++0x18,
++0x5e,
++0x66,
++0x42,
++0x67,
++0xcf,
++0x0b,
++0x2a,
++0x26,
++0x6b,
++0x65,
++0x87,
++0x4d,
++0xfa,
++0x04,
++0x51,
++0xec,
++0xed,
++0x03,
++0x8b,
++0x38,
++0x52,
++0x93,
++0x6d,
++0xc4,
++0x30,
++0x41,
++0x9a,
++0x6c,
++0x28,
++0x35,
++0xf0,
++0x87,
++0x15,
++0xce,
++0x78,
++0x4f,
++0x32,
++0xca,
++0x52,
++0xed,
diff --git a/debian/patches/debian/wireless-disable-regulatory.db-direct-loading.patch b/debian/patches/debian/wireless-disable-regulatory.db-direct-loading.patch
new file mode 100644
index 000000000..6815dc947
--- /dev/null
+++ b/debian/patches/debian/wireless-disable-regulatory.db-direct-loading.patch
@@ -0,0 +1,75 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Thu, 05 Apr 2018 18:13:52 +0200
+Subject: wireless: Disable regulatory.db direct loading
+Forwarded: not-needed
+Bug-Debian: https://bugs.debian.org/892229
+
+Don't complain about being unable to load regulatory.db directly.
+This is expected until we generate a signing key and update
+wireless-regdb to be signed with it.
+
+Index: linux/net/wireless/reg.c
+===================================================================
+--- linux.orig/net/wireless/reg.c
++++ linux/net/wireless/reg.c
+@@ -476,6 +476,7 @@ static void reg_regdb_apply(struct work_
+
+ static DECLARE_WORK(reg_regdb_work, reg_regdb_apply);
+
++#if 0
+ static int reg_schedule_apply(const struct ieee80211_regdomain *regdom)
+ {
+ struct reg_regdb_apply_request *request;
+@@ -495,6 +496,7 @@ static int reg_schedule_apply(const stru
+ schedule_work(&reg_regdb_work);
+ return 0;
+ }
++#endif
+
+ #ifdef CONFIG_CFG80211_CRDA_SUPPORT
+ /* Max number of consecutive attempts to communicate with CRDA */
+@@ -574,6 +576,35 @@ static inline int call_crda(const char *
+ /* code to directly load a firmware database through request_firmware */
+ static const struct fwdb_header *regdb;
+
++#if 1
++
++static int load_builtin_regdb_keys(void)
++{
++ return 0;
++}
++
++static void free_regdb_keyring(void)
++{
++}
++
++static int query_regdb_file(const char *alpha2)
++{
++ return -ENOENT;
++}
++
++int reg_reload_regdb(void)
++{
++ return -ENOENT;
++}
++
++int reg_query_regdb_wmm(char *alpha2, int freq, struct ieee80211_reg_rule *rule)
++{
++ return -ENODATA;
++}
++EXPORT_SYMBOL(reg_query_regdb_wmm);
++
++#else /* disabled until we update wireless-regdb */
++
+ struct fwdb_country {
+ u8 alpha2[2];
+ __be16 coll_ptr;
+@@ -1090,6 +1121,8 @@ int reg_reload_regdb(void)
+ return err;
+ }
+
++#endif
++
+ static bool reg_query_database(struct regulatory_request *request)
+ {
+ if (query_regdb_file(request->alpha2) == 0)
diff --git a/debian/patches/debian/yama-disable-by-default.patch b/debian/patches/debian/yama-disable-by-default.patch
new file mode 100644
index 000000000..f35a598ae
--- /dev/null
+++ b/debian/patches/debian/yama-disable-by-default.patch
@@ -0,0 +1,28 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Subject: yama: Disable by default
+Date: Wed, 19 Jun 2013 04:35:28 +0100
+Bug-Debian: https://bugs.debian.org/712740
+Forwarded: not-needed
+
+Index: linux/security/yama/yama_lsm.c
+===================================================================
+--- linux.orig/security/yama/yama_lsm.c
++++ linux/security/yama/yama_lsm.c
+@@ -28,7 +28,7 @@
+ #define YAMA_SCOPE_CAPABILITY 2
+ #define YAMA_SCOPE_NO_ATTACH 3
+
+-static int ptrace_scope = YAMA_SCOPE_RELATIONAL;
++static int ptrace_scope = YAMA_SCOPE_DISABLED;
+
+ /* describe a ptrace relationship for potential exception */
+ struct ptrace_relation {
+@@ -481,7 +481,7 @@ static inline void yama_init_sysctl(void
+
+ void __init yama_add_hooks(void)
+ {
+- pr_info("Yama: becoming mindful.\n");
++ pr_info("Yama: disabled by default; enable with sysctl kernel.yama.*\n");
+ security_add_hooks(yama_hooks, ARRAY_SIZE(yama_hooks), "yama");
+ yama_init_sysctl();
+ }
diff --git a/debian/patches/features/all/aufs4/aufs4-base.patch b/debian/patches/features/all/aufs4/aufs4-base.patch
new file mode 100644
index 000000000..c0e036a73
--- /dev/null
+++ b/debian/patches/features/all/aufs4/aufs4-base.patch
@@ -0,0 +1,328 @@
+From: J. R. Okajima <hooanon05@yahoo.co.jp>
+Date: Tue Sep 3 14:14:09 2019 +0900
+Subject: aufs4.19.63+ base patch
+Origin: https://github.com/sfjro/aufs4-standalone/tree/6c582cc629cbfb4fac5bfc7d20db128c7d201da6
+Bug-Debian: https://bugs.debian.org/541828
+
+Patch headers added by debian/bin/genpatch-aufs
+
+SPDX-License-Identifier: GPL-2.0
+aufs4.19.63+ base patch
+
+diff --git a/MAINTAINERS b/MAINTAINERS
+index 11a59e82d92e..573d5b42b28b 100644
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -2605,6 +2605,19 @@ F: include/linux/audit.h
+ F: include/uapi/linux/audit.h
+ F: kernel/audit*
+
++AUFS (advanced multi layered unification filesystem) FILESYSTEM
++M: "J. R. Okajima" <hooanon05g@gmail.com>
++L: aufs-users@lists.sourceforge.net (members only)
++L: linux-unionfs@vger.kernel.org
++W: http://aufs.sourceforge.net
++T: git://github.com/sfjro/aufs4-linux.git
++S: Supported
++F: Documentation/filesystems/aufs/
++F: Documentation/ABI/testing/debugfs-aufs
++F: Documentation/ABI/testing/sysfs-aufs
++F: fs/aufs/
++F: include/uapi/linux/aufs_type.h
++
+ AUXILIARY DISPLAY DRIVERS
+ M: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
+ S: Maintained
+diff --git a/drivers/block/loop.c b/drivers/block/loop.c
+index f1e63eb7cbca..b732df5f14f3 100644
+--- a/drivers/block/loop.c
++++ b/drivers/block/loop.c
+@@ -739,6 +739,24 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
+ return error;
+ }
+
++/*
++ * for AUFS
++ * no get/put for file.
++ */
++struct file *loop_backing_file(struct super_block *sb)
++{
++ struct file *ret;
++ struct loop_device *l;
++
++ ret = NULL;
++ if (MAJOR(sb->s_dev) == LOOP_MAJOR) {
++ l = sb->s_bdev->bd_disk->private_data;
++ ret = l->lo_backing_file;
++ }
++ return ret;
++}
++EXPORT_SYMBOL_GPL(loop_backing_file);
++
+ /* loop sysfs attributes */
+
+ static ssize_t loop_attr_show(struct device *dev, char *page,
+diff --git a/fs/dcache.c b/fs/dcache.c
+index 6e0022326afe..3bd53094ac3d 100644
+--- a/fs/dcache.c
++++ b/fs/dcache.c
+@@ -1234,7 +1234,7 @@ enum d_walk_ret {
+ *
+ * The @enter() callbacks are called with d_lock held.
+ */
+-static void d_walk(struct dentry *parent, void *data,
++void d_walk(struct dentry *parent, void *data,
+ enum d_walk_ret (*enter)(void *, struct dentry *))
+ {
+ struct dentry *this_parent;
+diff --git a/fs/fcntl.c b/fs/fcntl.c
+index 4137d96534a6..c91b3e3c4580 100644
+--- a/fs/fcntl.c
++++ b/fs/fcntl.c
+@@ -32,7 +32,7 @@
+
+ #define SETFL_MASK (O_APPEND | O_NONBLOCK | O_NDELAY | O_DIRECT | O_NOATIME)
+
+-static int setfl(int fd, struct file * filp, unsigned long arg)
++int setfl(int fd, struct file * filp, unsigned long arg)
+ {
+ struct inode * inode = file_inode(filp);
+ int error = 0;
+@@ -63,6 +63,8 @@ static int setfl(int fd, struct file * filp, unsigned long arg)
+
+ if (filp->f_op->check_flags)
+ error = filp->f_op->check_flags(arg);
++ if (!error && filp->f_op->setfl)
++ error = filp->f_op->setfl(filp, arg);
+ if (error)
+ return error;
+
+diff --git a/fs/inode.c b/fs/inode.c
+index 5c63693326bb..43046d7223e4 100644
+--- a/fs/inode.c
++++ b/fs/inode.c
+@@ -1657,7 +1657,7 @@ EXPORT_SYMBOL(generic_update_time);
+ * This does the actual work of updating an inodes time or version. Must have
+ * had called mnt_want_write() before calling this.
+ */
+-static int update_time(struct inode *inode, struct timespec64 *time, int flags)
++int update_time(struct inode *inode, struct timespec64 *time, int flags)
+ {
+ int (*update_time)(struct inode *, struct timespec64 *, int);
+
+diff --git a/fs/namespace.c b/fs/namespace.c
+index 1fce41ba3535..fbd7edd49a2f 100644
+--- a/fs/namespace.c
++++ b/fs/namespace.c
+@@ -770,6 +770,12 @@ static inline int check_mnt(struct mount *mnt)
+ return mnt->mnt_ns == current->nsproxy->mnt_ns;
+ }
+
++/* for aufs, CONFIG_AUFS_BR_FUSE */
++int is_current_mnt_ns(struct vfsmount *mnt)
++{
++ return check_mnt(real_mount(mnt));
++}
++
+ /*
+ * vfsmount lock must be held for write
+ */
+diff --git a/fs/read_write.c b/fs/read_write.c
+index 85fd7a8ee29e..c1335b4f19c0 100644
+--- a/fs/read_write.c
++++ b/fs/read_write.c
+@@ -489,6 +489,28 @@ ssize_t __vfs_write(struct file *file, const char __user *p, size_t count,
+ return -EINVAL;
+ }
+
++vfs_readf_t vfs_readf(struct file *file)
++{
++ const struct file_operations *fop = file->f_op;
++
++ if (fop->read)
++ return fop->read;
++ if (fop->read_iter)
++ return new_sync_read;
++ return ERR_PTR(-ENOSYS);
++}
++
++vfs_writef_t vfs_writef(struct file *file)
++{
++ const struct file_operations *fop = file->f_op;
++
++ if (fop->write)
++ return fop->write;
++ if (fop->write_iter)
++ return new_sync_write;
++ return ERR_PTR(-ENOSYS);
++}
++
+ ssize_t __kernel_write(struct file *file, const void *buf, size_t count, loff_t *pos)
+ {
+ mm_segment_t old_fs;
+diff --git a/fs/splice.c b/fs/splice.c
+index 485e409ef841..b2c2d320565b 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -838,8 +838,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
+ /*
+ * Attempt to initiate a splice from pipe to file.
+ */
+-static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+- loff_t *ppos, size_t len, unsigned int flags)
++long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags)
+ {
+ ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
+ loff_t *, size_t, unsigned int);
+@@ -855,9 +855,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ /*
+ * Attempt to initiate a splice from a file to a pipe.
+ */
+-static long do_splice_to(struct file *in, loff_t *ppos,
+- struct pipe_inode_info *pipe, size_t len,
+- unsigned int flags)
++long do_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags)
+ {
+ ssize_t (*splice_read)(struct file *, loff_t *,
+ struct pipe_inode_info *, size_t, unsigned int);
+diff --git a/fs/sync.c b/fs/sync.c
+index b54e0541ad89..28607828e96f 100644
+--- a/fs/sync.c
++++ b/fs/sync.c
+@@ -28,7 +28,7 @@
+ * wait == 1 case since in that case write_inode() functions do
+ * sync_dirty_buffer() and thus effectively write one block at a time.
+ */
+-static int __sync_filesystem(struct super_block *sb, int wait)
++int __sync_filesystem(struct super_block *sb, int wait)
+ {
+ if (wait)
+ sync_inodes_sb(sb);
+diff --git a/include/linux/fs.h b/include/linux/fs.h
+index 92420009b9bc..ecad33c40cae 100644
+--- a/include/linux/fs.h
++++ b/include/linux/fs.h
+@@ -1295,6 +1295,7 @@ extern void fasync_free(struct fasync_struct *);
+ /* can be called from interrupts */
+ extern void kill_fasync(struct fasync_struct **, int, int);
+
++extern int setfl(int fd, struct file * filp, unsigned long arg);
+ extern void __f_setown(struct file *filp, struct pid *, enum pid_type, int force);
+ extern int f_setown(struct file *filp, unsigned long arg, int force);
+ extern void f_delown(struct file *filp);
+@@ -1759,6 +1760,7 @@ struct file_operations {
+ ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int);
+ unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
+ int (*check_flags)(int);
++ int (*setfl)(struct file *, unsigned long);
+ int (*flock) (struct file *, int, struct file_lock *);
+ ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int);
+ ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
+@@ -1830,6 +1832,12 @@ ssize_t rw_copy_check_uvector(int type, const struct iovec __user * uvector,
+ struct iovec *fast_pointer,
+ struct iovec **ret_pointer);
+
++typedef ssize_t (*vfs_readf_t)(struct file *, char __user *, size_t, loff_t *);
++typedef ssize_t (*vfs_writef_t)(struct file *, const char __user *, size_t,
++ loff_t *);
++vfs_readf_t vfs_readf(struct file *file);
++vfs_writef_t vfs_writef(struct file *file);
++
+ extern ssize_t __vfs_read(struct file *, char __user *, size_t, loff_t *);
+ extern ssize_t vfs_read(struct file *, char __user *, size_t, loff_t *);
+ extern ssize_t vfs_write(struct file *, const char __user *, size_t, loff_t *);
+@@ -2255,6 +2263,7 @@ extern int current_umask(void);
+ extern void ihold(struct inode * inode);
+ extern void iput(struct inode *);
+ extern int generic_update_time(struct inode *, struct timespec64 *, int);
++extern int update_time(struct inode *, struct timespec64 *, int);
+
+ /* /sys/fs */
+ extern struct kobject *fs_kobj;
+@@ -2542,6 +2551,7 @@ static inline bool sb_is_blkdev_sb(struct super_block *sb)
+ return false;
+ }
+ #endif
++extern int __sync_filesystem(struct super_block *, int);
+ extern int sync_filesystem(struct super_block *);
+ extern const struct file_operations def_blk_fops;
+ extern const struct file_operations def_chr_fops;
+diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
+index b0d0b51c4d85..f73ffaa0199e 100644
+--- a/include/linux/lockdep.h
++++ b/include/linux/lockdep.h
+@@ -313,6 +313,8 @@ static inline int lockdep_match_key(struct lockdep_map *lock,
+ return lock->key == key;
+ }
+
++struct lock_class *lockdep_hlock_class(struct held_lock *hlock);
++
+ /*
+ * Acquire a lock.
+ *
+@@ -439,6 +441,7 @@ struct lockdep_map { };
+
+ #define lockdep_depth(tsk) (0)
+
++#define lockdep_is_held(lock) (1)
+ #define lockdep_is_held_type(l, r) (1)
+
+ #define lockdep_assert_held(l) do { (void)(l); } while (0)
+diff --git a/include/linux/mnt_namespace.h b/include/linux/mnt_namespace.h
+index 35942084cd40..24f5fd1a789d 100644
+--- a/include/linux/mnt_namespace.h
++++ b/include/linux/mnt_namespace.h
+@@ -6,11 +6,14 @@
+ struct mnt_namespace;
+ struct fs_struct;
+ struct user_namespace;
++struct vfsmount;
+
+ extern struct mnt_namespace *copy_mnt_ns(unsigned long, struct mnt_namespace *,
+ struct user_namespace *, struct fs_struct *);
+ extern void put_mnt_ns(struct mnt_namespace *ns);
+
++extern int is_current_mnt_ns(struct vfsmount *mnt);
++
+ extern const struct file_operations proc_mounts_operations;
+ extern const struct file_operations proc_mountinfo_operations;
+ extern const struct file_operations proc_mountstats_operations;
+diff --git a/include/linux/splice.h b/include/linux/splice.h
+index 74b4911ac16d..19789fbea567 100644
+--- a/include/linux/splice.h
++++ b/include/linux/splice.h
+@@ -87,4 +87,10 @@ extern void splice_shrink_spd(struct splice_pipe_desc *);
+
+ extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
+ extern const struct pipe_buf_operations default_pipe_buf_ops;
++
++extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags);
++extern long do_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags);
+ #endif
+diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
+index e810e8cb17e1..d0c9931e6531 100644
+--- a/kernel/locking/lockdep.c
++++ b/kernel/locking/lockdep.c
+@@ -140,7 +140,7 @@ static struct lock_list list_entries[MAX_LOCKDEP_ENTRIES];
+ unsigned long nr_lock_classes;
+ static struct lock_class lock_classes[MAX_LOCKDEP_KEYS];
+
+-static inline struct lock_class *hlock_class(struct held_lock *hlock)
++inline struct lock_class *lockdep_hlock_class(struct held_lock *hlock)
+ {
+ if (!hlock->class_idx) {
+ /*
+@@ -151,6 +151,7 @@ static inline struct lock_class *hlock_class(struct held_lock *hlock)
+ }
+ return lock_classes + hlock->class_idx - 1;
+ }
++#define hlock_class(hlock) lockdep_hlock_class(hlock)
+
+ #ifdef CONFIG_LOCK_STAT
+ static DEFINE_PER_CPU(struct lock_class_stats[MAX_LOCKDEP_KEYS], cpu_lock_stats);
diff --git a/debian/patches/features/all/aufs4/aufs4-mmap.patch b/debian/patches/features/all/aufs4/aufs4-mmap.patch
new file mode 100644
index 000000000..98fe007a8
--- /dev/null
+++ b/debian/patches/features/all/aufs4/aufs4-mmap.patch
@@ -0,0 +1,406 @@
+From: J. R. Okajima <hooanon05@yahoo.co.jp>
+Date: Tue Sep 3 14:14:09 2019 +0900
+Subject: aufs4.19.63+ mmap patch
+Origin: https://github.com/sfjro/aufs4-standalone/tree/6c582cc629cbfb4fac5bfc7d20db128c7d201da6
+Bug-Debian: https://bugs.debian.org/541828
+
+Patch headers added by debian/bin/genpatch-aufs
+
+SPDX-License-Identifier: GPL-2.0
+aufs4.19.63+ mmap patch
+
+diff --git a/fs/proc/base.c b/fs/proc/base.c
+index a7fbda72afeb..9c8439a01c5b 100644
+--- a/fs/proc/base.c
++++ b/fs/proc/base.c
+@@ -2018,7 +2018,7 @@ static int map_files_get_link(struct dentry *dentry, struct path *path)
+ rc = -ENOENT;
+ vma = find_exact_vma(mm, vm_start, vm_end);
+ if (vma && vma->vm_file) {
+- *path = vma->vm_file->f_path;
++ *path = vma_pr_or_file(vma)->f_path;
+ path_get(path);
+ rc = 0;
+ }
+diff --git a/fs/proc/nommu.c b/fs/proc/nommu.c
+index 3b63be64e436..fb9913bf3d10 100644
+--- a/fs/proc/nommu.c
++++ b/fs/proc/nommu.c
+@@ -45,7 +45,10 @@ static int nommu_region_show(struct seq_file *m, struct vm_region *region)
+ file = region->vm_file;
+
+ if (file) {
+- struct inode *inode = file_inode(region->vm_file);
++ struct inode *inode;
++
++ file = vmr_pr_or_file(region);
++ inode = file_inode(file);
+ dev = inode->i_sb->s_dev;
+ ino = inode->i_ino;
+ }
+diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
+index 71aba44c4fa6..87cdce66a3f4 100644
+--- a/fs/proc/task_mmu.c
++++ b/fs/proc/task_mmu.c
+@@ -309,7 +309,10 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma)
+ const char *name = NULL;
+
+ if (file) {
+- struct inode *inode = file_inode(vma->vm_file);
++ struct inode *inode;
++
++ file = vma_pr_or_file(vma);
++ inode = file_inode(file);
+ dev = inode->i_sb->s_dev;
+ ino = inode->i_ino;
+ pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
+@@ -1766,7 +1769,7 @@ static int show_numa_map(struct seq_file *m, void *v)
+ struct proc_maps_private *proc_priv = &numa_priv->proc_maps;
+ struct vm_area_struct *vma = v;
+ struct numa_maps *md = &numa_priv->md;
+- struct file *file = vma->vm_file;
++ struct file *file = vma_pr_or_file(vma);
+ struct mm_struct *mm = vma->vm_mm;
+ struct mm_walk walk = {
+ .hugetlb_entry = gather_hugetlb_stats,
+diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c
+index 5161894a6d62..b6d13cce45f3 100644
+--- a/fs/proc/task_nommu.c
++++ b/fs/proc/task_nommu.c
+@@ -155,7 +155,10 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma)
+ file = vma->vm_file;
+
+ if (file) {
+- struct inode *inode = file_inode(vma->vm_file);
++ struct inode *inode;
++
++ file = vma_pr_or_file(vma);
++ inode = file_inode(file);
+ dev = inode->i_sb->s_dev;
+ ino = inode->i_ino;
+ pgoff = (loff_t)vma->vm_pgoff << PAGE_SHIFT;
+diff --git a/include/linux/mm.h b/include/linux/mm.h
+index bdec425c8e14..88cb95dc57dd 100644
+--- a/include/linux/mm.h
++++ b/include/linux/mm.h
+@@ -1453,6 +1453,28 @@ static inline void unmap_shared_mapping_range(struct address_space *mapping,
+ unmap_mapping_range(mapping, holebegin, holelen, 0);
+ }
+
++extern void vma_do_file_update_time(struct vm_area_struct *, const char[], int);
++extern struct file *vma_do_pr_or_file(struct vm_area_struct *, const char[],
++ int);
++extern void vma_do_get_file(struct vm_area_struct *, const char[], int);
++extern void vma_do_fput(struct vm_area_struct *, const char[], int);
++
++#define vma_file_update_time(vma) vma_do_file_update_time(vma, __func__, \
++ __LINE__)
++#define vma_pr_or_file(vma) vma_do_pr_or_file(vma, __func__, \
++ __LINE__)
++#define vma_get_file(vma) vma_do_get_file(vma, __func__, __LINE__)
++#define vma_fput(vma) vma_do_fput(vma, __func__, __LINE__)
++
++#ifndef CONFIG_MMU
++extern struct file *vmr_do_pr_or_file(struct vm_region *, const char[], int);
++extern void vmr_do_fput(struct vm_region *, const char[], int);
++
++#define vmr_pr_or_file(region) vmr_do_pr_or_file(region, __func__, \
++ __LINE__)
++#define vmr_fput(region) vmr_do_fput(region, __func__, __LINE__)
++#endif /* !CONFIG_MMU */
++
+ extern int access_process_vm(struct task_struct *tsk, unsigned long addr,
+ void *buf, int len, unsigned int gup_flags);
+ extern int access_remote_vm(struct mm_struct *mm, unsigned long addr,
+diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
+index 5ed8f6292a53..01229754077f 100644
+--- a/include/linux/mm_types.h
++++ b/include/linux/mm_types.h
+@@ -239,6 +239,7 @@ struct vm_region {
+ unsigned long vm_top; /* region allocated to here */
+ unsigned long vm_pgoff; /* the offset in vm_file corresponding to vm_start */
+ struct file *vm_file; /* the backing file or NULL */
++ struct file *vm_prfile; /* the virtual backing file or NULL */
+
+ int vm_usage; /* region usage count (access under nommu_region_sem) */
+ bool vm_icache_flushed : 1; /* true if the icache has been flushed for
+@@ -313,6 +314,7 @@ struct vm_area_struct {
+ unsigned long vm_pgoff; /* Offset (within vm_file) in PAGE_SIZE
+ units */
+ struct file * vm_file; /* File we map to (can be NULL). */
++ struct file *vm_prfile; /* shadow of vm_file */
+ void * vm_private_data; /* was vm_pte (shared mem) */
+
+ atomic_long_t swap_readahead_info;
+diff --git a/kernel/fork.c b/kernel/fork.c
+index 69874db3fba8..757620e64e7b 100644
+--- a/kernel/fork.c
++++ b/kernel/fork.c
+@@ -505,7 +505,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
+ struct inode *inode = file_inode(file);
+ struct address_space *mapping = file->f_mapping;
+
+- get_file(file);
++ vma_get_file(tmp);
+ if (tmp->vm_flags & VM_DENYWRITE)
+ atomic_dec(&inode->i_writecount);
+ i_mmap_lock_write(mapping);
+diff --git a/mm/Makefile b/mm/Makefile
+index 26ef77a3883b..b2869af1ef08 100644
+--- a/mm/Makefile
++++ b/mm/Makefile
+@@ -39,7 +39,7 @@ obj-y := filemap.o mempool.o oom_kill.o fadvise.o \
+ mm_init.o mmu_context.o percpu.o slab_common.o \
+ compaction.o vmacache.o \
+ interval_tree.o list_lru.o workingset.o \
+- debug.o $(mmu-y)
++ prfile.o debug.o $(mmu-y)
+
+ obj-y += init-mm.o
+
+diff --git a/mm/filemap.c b/mm/filemap.c
+index 287f3fa02e5e..f96b6dd07b0b 100644
+--- a/mm/filemap.c
++++ b/mm/filemap.c
+@@ -2722,7 +2722,7 @@ vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf)
+ vm_fault_t ret = VM_FAULT_LOCKED;
+
+ sb_start_pagefault(inode->i_sb);
+- file_update_time(vmf->vma->vm_file);
++ vma_file_update_time(vmf->vma);
+ lock_page(page);
+ if (page->mapping != inode->i_mapping) {
+ unlock_page(page);
+diff --git a/mm/mmap.c b/mm/mmap.c
+index 1480880ff814..03ae15dfe614 100644
+--- a/mm/mmap.c
++++ b/mm/mmap.c
+@@ -181,7 +181,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
+ if (vma->vm_ops && vma->vm_ops->close)
+ vma->vm_ops->close(vma);
+ if (vma->vm_file)
+- fput(vma->vm_file);
++ vma_fput(vma);
+ mpol_put(vma_policy(vma));
+ vm_area_free(vma);
+ return next;
+@@ -906,7 +906,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start,
+ if (remove_next) {
+ if (file) {
+ uprobe_munmap(next, next->vm_start, next->vm_end);
+- fput(file);
++ vma_fput(vma);
+ }
+ if (next->anon_vma)
+ anon_vma_merge(vma, next);
+@@ -1822,8 +1822,8 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
+ return addr;
+
+ unmap_and_free_vma:
++ vma_fput(vma);
+ vma->vm_file = NULL;
+- fput(file);
+
+ /* Undo any partial mapping done by a device driver. */
+ unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end);
+@@ -2645,7 +2645,7 @@ int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
+ goto out_free_mpol;
+
+ if (new->vm_file)
+- get_file(new->vm_file);
++ vma_get_file(new);
+
+ if (new->vm_ops && new->vm_ops->open)
+ new->vm_ops->open(new);
+@@ -2664,7 +2664,7 @@ int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
+ if (new->vm_ops && new->vm_ops->close)
+ new->vm_ops->close(new);
+ if (new->vm_file)
+- fput(new->vm_file);
++ vma_fput(new);
+ unlink_anon_vmas(new);
+ out_free_mpol:
+ mpol_put(vma_policy(new));
+@@ -2826,7 +2826,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+ struct vm_area_struct *vma;
+ unsigned long populate = 0;
+ unsigned long ret = -EINVAL;
+- struct file *file;
++ struct file *file, *prfile;
+
+ pr_warn_once("%s (%d) uses deprecated remap_file_pages() syscall. See Documentation/vm/remap_file_pages.rst.\n",
+ current->comm, current->pid);
+@@ -2901,10 +2901,27 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+ }
+ }
+
+- file = get_file(vma->vm_file);
++ vma_get_file(vma);
++ file = vma->vm_file;
++ prfile = vma->vm_prfile;
+ ret = do_mmap_pgoff(vma->vm_file, start, size,
+ prot, flags, pgoff, &populate, NULL);
++ if (!IS_ERR_VALUE(ret) && file && prfile) {
++ struct vm_area_struct *new_vma;
++
++ new_vma = find_vma(mm, ret);
++ if (!new_vma->vm_prfile)
++ new_vma->vm_prfile = prfile;
++ if (new_vma != vma)
++ get_file(prfile);
++ }
++ /*
++ * two fput()s instead of vma_fput(vma),
++ * coz vma may not be available anymore.
++ */
+ fput(file);
++ if (prfile)
++ fput(prfile);
+ out:
+ up_write(&mm->mmap_sem);
+ if (populate)
+@@ -3210,7 +3227,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+ if (anon_vma_clone(new_vma, vma))
+ goto out_free_mempol;
+ if (new_vma->vm_file)
+- get_file(new_vma->vm_file);
++ vma_get_file(new_vma);
+ if (new_vma->vm_ops && new_vma->vm_ops->open)
+ new_vma->vm_ops->open(new_vma);
+ vma_link(mm, new_vma, prev, rb_link, rb_parent);
+diff --git a/mm/nommu.c b/mm/nommu.c
+index 1d63ecfc98c5..15eafddeb944 100644
+--- a/mm/nommu.c
++++ b/mm/nommu.c
+@@ -625,7 +625,7 @@ static void __put_nommu_region(struct vm_region *region)
+ up_write(&nommu_region_sem);
+
+ if (region->vm_file)
+- fput(region->vm_file);
++ vmr_fput(region);
+
+ /* IO memory and memory shared directly out of the pagecache
+ * from ramfs/tmpfs mustn't be released here */
+@@ -763,7 +763,7 @@ static void delete_vma(struct mm_struct *mm, struct vm_area_struct *vma)
+ if (vma->vm_ops && vma->vm_ops->close)
+ vma->vm_ops->close(vma);
+ if (vma->vm_file)
+- fput(vma->vm_file);
++ vma_fput(vma);
+ put_nommu_region(vma->vm_region);
+ vm_area_free(vma);
+ }
+@@ -1286,7 +1286,7 @@ unsigned long do_mmap(struct file *file,
+ goto error_just_free;
+ }
+ }
+- fput(region->vm_file);
++ vmr_fput(region);
+ kmem_cache_free(vm_region_jar, region);
+ region = pregion;
+ result = start;
+@@ -1361,10 +1361,10 @@ unsigned long do_mmap(struct file *file,
+ up_write(&nommu_region_sem);
+ error:
+ if (region->vm_file)
+- fput(region->vm_file);
++ vmr_fput(region);
+ kmem_cache_free(vm_region_jar, region);
+ if (vma->vm_file)
+- fput(vma->vm_file);
++ vma_fput(vma);
+ vm_area_free(vma);
+ return ret;
+
+diff --git a/mm/prfile.c b/mm/prfile.c
+new file mode 100644
+index 000000000000..024cdcfae1b1
+--- /dev/null
++++ b/mm/prfile.c
+@@ -0,0 +1,86 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * Mainly for aufs which mmap(2) different file and wants to print different
++ * path in /proc/PID/maps.
++ * Call these functions via macros defined in linux/mm.h.
++ *
++ * See Documentation/filesystems/aufs/design/06mmap.txt
++ *
++ * Copyright (c) 2014-2019 Junjro R. Okajima
++ * Copyright (c) 2014 Ian Campbell
++ */
++
++#include <linux/mm.h>
++#include <linux/file.h>
++#include <linux/fs.h>
++
++/* #define PRFILE_TRACE */
++static inline void prfile_trace(struct file *f, struct file *pr,
++ const char func[], int line, const char func2[])
++{
++#ifdef PRFILE_TRACE
++ if (pr)
++ pr_info("%s:%d: %s, %pD2\n", func, line, func2, f);
++#endif
++}
++
++void vma_do_file_update_time(struct vm_area_struct *vma, const char func[],
++ int line)
++{
++ struct file *f = vma->vm_file, *pr = vma->vm_prfile;
++
++ prfile_trace(f, pr, func, line, __func__);
++ file_update_time(f);
++ if (f && pr)
++ file_update_time(pr);
++}
++
++struct file *vma_do_pr_or_file(struct vm_area_struct *vma, const char func[],
++ int line)
++{
++ struct file *f = vma->vm_file, *pr = vma->vm_prfile;
++
++ prfile_trace(f, pr, func, line, __func__);
++ return (f && pr) ? pr : f;
++}
++
++void vma_do_get_file(struct vm_area_struct *vma, const char func[], int line)
++{
++ struct file *f = vma->vm_file, *pr = vma->vm_prfile;
++
++ prfile_trace(f, pr, func, line, __func__);
++ get_file(f);
++ if (f && pr)
++ get_file(pr);
++}
++
++void vma_do_fput(struct vm_area_struct *vma, const char func[], int line)
++{
++ struct file *f = vma->vm_file, *pr = vma->vm_prfile;
++
++ prfile_trace(f, pr, func, line, __func__);
++ fput(f);
++ if (f && pr)
++ fput(pr);
++}
++
++#ifndef CONFIG_MMU
++struct file *vmr_do_pr_or_file(struct vm_region *region, const char func[],
++ int line)
++{
++ struct file *f = region->vm_file, *pr = region->vm_prfile;
++
++ prfile_trace(f, pr, func, line, __func__);
++ return (f && pr) ? pr : f;
++}
++
++void vmr_do_fput(struct vm_region *region, const char func[], int line)
++{
++ struct file *f = region->vm_file, *pr = region->vm_prfile;
++
++ prfile_trace(f, pr, func, line, __func__);
++ fput(f);
++ if (f && pr)
++ fput(pr);
++}
++#endif /* !CONFIG_MMU */
diff --git a/debian/patches/features/all/aufs4/aufs4-standalone.patch b/debian/patches/features/all/aufs4/aufs4-standalone.patch
new file mode 100644
index 000000000..0a682c2f5
--- /dev/null
+++ b/debian/patches/features/all/aufs4/aufs4-standalone.patch
@@ -0,0 +1,385 @@
+From: J. R. Okajima <hooanon05@yahoo.co.jp>
+Date: Tue Sep 3 14:14:09 2019 +0900
+Subject: aufs4.19.63+ standalone patch
+Origin: https://github.com/sfjro/aufs4-standalone/tree/6c582cc629cbfb4fac5bfc7d20db128c7d201da6
+Bug-Debian: https://bugs.debian.org/541828
+
+Patch headers added by debian/bin/genpatch-aufs
+
+SPDX-License-Identifier: GPL-2.0
+aufs4.19.63+ standalone patch
+
+diff --git a/fs/dcache.c b/fs/dcache.c
+index 3bd53094ac3d..d6b2f7a994f4 100644
+--- a/fs/dcache.c
++++ b/fs/dcache.c
+@@ -1339,6 +1339,7 @@ void d_walk(struct dentry *parent, void *data,
+ seq = 1;
+ goto again;
+ }
++EXPORT_SYMBOL_GPL(d_walk);
+
+ struct check_mount {
+ struct vfsmount *mnt;
+@@ -2835,6 +2836,7 @@ void d_exchange(struct dentry *dentry1, struct dentry *dentry2)
+
+ write_sequnlock(&rename_lock);
+ }
++EXPORT_SYMBOL_GPL(d_exchange);
+
+ /**
+ * d_ancestor - search for an ancestor
+diff --git a/fs/exec.c b/fs/exec.c
+index 433b1257694a..504c56308700 100644
+--- a/fs/exec.c
++++ b/fs/exec.c
+@@ -109,6 +109,7 @@ bool path_noexec(const struct path *path)
+ return (path->mnt->mnt_flags & MNT_NOEXEC) ||
+ (path->mnt->mnt_sb->s_iflags & SB_I_NOEXEC);
+ }
++EXPORT_SYMBOL_GPL(path_noexec);
+
+ #ifdef CONFIG_USELIB
+ /*
+diff --git a/fs/fcntl.c b/fs/fcntl.c
+index c91b3e3c4580..77513097f04c 100644
+--- a/fs/fcntl.c
++++ b/fs/fcntl.c
+@@ -85,6 +85,7 @@ int setfl(int fd, struct file * filp, unsigned long arg)
+ out:
+ return error;
+ }
++EXPORT_SYMBOL_GPL(setfl);
+
+ static void f_modown(struct file *filp, struct pid *pid, enum pid_type type,
+ int force)
+diff --git a/fs/file_table.c b/fs/file_table.c
+index e49af4caf15d..569020fd1fb3 100644
+--- a/fs/file_table.c
++++ b/fs/file_table.c
+@@ -161,6 +161,7 @@ struct file *alloc_empty_file(int flags, const struct cred *cred)
+ }
+ return ERR_PTR(-ENFILE);
+ }
++EXPORT_SYMBOL_GPL(alloc_empty_file);
+
+ /*
+ * Variant of alloc_empty_file() that doesn't check and modify nr_files.
+@@ -323,6 +324,7 @@ void flush_delayed_fput(void)
+ {
+ delayed_fput(NULL);
+ }
++EXPORT_SYMBOL_GPL(flush_delayed_fput);
+
+ static DECLARE_DELAYED_WORK(delayed_fput_work, delayed_fput);
+
+@@ -365,6 +367,7 @@ void __fput_sync(struct file *file)
+ }
+
+ EXPORT_SYMBOL(fput);
++EXPORT_SYMBOL_GPL(__fput_sync);
+
+ void __init files_init(void)
+ {
+diff --git a/fs/inode.c b/fs/inode.c
+index 43046d7223e4..36146c757aa2 100644
+--- a/fs/inode.c
++++ b/fs/inode.c
+@@ -1666,6 +1666,7 @@ int update_time(struct inode *inode, struct timespec64 *time, int flags)
+
+ return update_time(inode, time, flags);
+ }
++EXPORT_SYMBOL_GPL(update_time);
+
+ /**
+ * touch_atime - update the access time
+diff --git a/fs/namespace.c b/fs/namespace.c
+index fbd7edd49a2f..d6eca814d9fc 100644
+--- a/fs/namespace.c
++++ b/fs/namespace.c
+@@ -437,6 +437,7 @@ void __mnt_drop_write(struct vfsmount *mnt)
+ mnt_dec_writers(real_mount(mnt));
+ preempt_enable();
+ }
++EXPORT_SYMBOL_GPL(__mnt_drop_write);
+
+ /**
+ * mnt_drop_write - give up write access to a mount
+@@ -775,6 +776,7 @@ int is_current_mnt_ns(struct vfsmount *mnt)
+ {
+ return check_mnt(real_mount(mnt));
+ }
++EXPORT_SYMBOL_GPL(is_current_mnt_ns);
+
+ /*
+ * vfsmount lock must be held for write
+@@ -1844,6 +1846,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+ }
+ return 0;
+ }
++EXPORT_SYMBOL_GPL(iterate_mounts);
+
+ static void cleanup_group_ids(struct mount *mnt, struct mount *end)
+ {
+diff --git a/fs/notify/group.c b/fs/notify/group.c
+index c03b83662876..94d210ca384a 100644
+--- a/fs/notify/group.c
++++ b/fs/notify/group.c
+@@ -112,6 +112,7 @@ void fsnotify_get_group(struct fsnotify_group *group)
+ {
+ refcount_inc(&group->refcnt);
+ }
++EXPORT_SYMBOL_GPL(fsnotify_get_group);
+
+ /*
+ * Drop a reference to a group. Free it if it's through.
+@@ -121,6 +122,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
+ if (refcount_dec_and_test(&group->refcnt))
+ fsnotify_final_destroy_group(group);
+ }
++EXPORT_SYMBOL_GPL(fsnotify_put_group);
+
+ /*
+ * Create a new fsnotify_group and hold a reference for the group returned.
+@@ -150,6 +152,7 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
+
+ return group;
+ }
++EXPORT_SYMBOL_GPL(fsnotify_alloc_group);
+
+ int fsnotify_fasync(int fd, struct file *file, int on)
+ {
+diff --git a/fs/notify/mark.c b/fs/notify/mark.c
+index 09535f6423fc..e9401ec71fc7 100644
+--- a/fs/notify/mark.c
++++ b/fs/notify/mark.c
+@@ -285,6 +285,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
+ queue_delayed_work(system_unbound_wq, &reaper_work,
+ FSNOTIFY_REAPER_DELAY);
+ }
++EXPORT_SYMBOL_GPL(fsnotify_put_mark);
+
+ /*
+ * Get mark reference when we found the mark via lockless traversal of object
+@@ -439,6 +440,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark,
+ mutex_unlock(&group->mark_mutex);
+ fsnotify_free_mark(mark);
+ }
++EXPORT_SYMBOL_GPL(fsnotify_destroy_mark);
+
+ /*
+ * Sorting function for lists of fsnotify marks.
+@@ -654,6 +656,7 @@ int fsnotify_add_mark(struct fsnotify_mark *mark, fsnotify_connp_t *connp,
+ mutex_unlock(&group->mark_mutex);
+ return ret;
+ }
++EXPORT_SYMBOL_GPL(fsnotify_add_mark);
+
+ /*
+ * Given a list of marks, find the mark associated with given group. If found
+@@ -777,6 +780,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
+ fsnotify_get_group(group);
+ mark->group = group;
+ }
++EXPORT_SYMBOL_GPL(fsnotify_init_mark);
+
+ /*
+ * Destroy all marks in destroy_list, waits for SRCU period to finish before
+diff --git a/fs/open.c b/fs/open.c
+index 878478745924..ab755f585f29 100644
+--- a/fs/open.c
++++ b/fs/open.c
+@@ -64,6 +64,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
+ inode_unlock(dentry->d_inode);
+ return ret;
+ }
++EXPORT_SYMBOL_GPL(do_truncate);
+
+ long vfs_truncate(const struct path *path, loff_t length)
+ {
+diff --git a/fs/read_write.c b/fs/read_write.c
+index c1335b4f19c0..6ed1f2ddcb03 100644
+--- a/fs/read_write.c
++++ b/fs/read_write.c
+@@ -459,6 +459,7 @@ ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)
+
+ return ret;
+ }
++EXPORT_SYMBOL_GPL(vfs_read);
+
+ static ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos)
+ {
+@@ -499,6 +500,7 @@ vfs_readf_t vfs_readf(struct file *file)
+ return new_sync_read;
+ return ERR_PTR(-ENOSYS);
+ }
++EXPORT_SYMBOL_GPL(vfs_readf);
+
+ vfs_writef_t vfs_writef(struct file *file)
+ {
+@@ -510,6 +512,7 @@ vfs_writef_t vfs_writef(struct file *file)
+ return new_sync_write;
+ return ERR_PTR(-ENOSYS);
+ }
++EXPORT_SYMBOL_GPL(vfs_writef);
+
+ ssize_t __kernel_write(struct file *file, const void *buf, size_t count, loff_t *pos)
+ {
+@@ -579,6 +582,7 @@ ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_
+
+ return ret;
+ }
++EXPORT_SYMBOL_GPL(vfs_write);
+
+ static inline loff_t file_pos_read(struct file *file)
+ {
+diff --git a/fs/splice.c b/fs/splice.c
+index b2c2d320565b..8250f2366329 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -851,6 +851,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+
+ return splice_write(pipe, out, ppos, len, flags);
+ }
++EXPORT_SYMBOL_GPL(do_splice_from);
+
+ /*
+ * Attempt to initiate a splice from a file to a pipe.
+@@ -880,6 +881,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
+
+ return splice_read(in, ppos, pipe, len, flags);
+ }
++EXPORT_SYMBOL_GPL(do_splice_to);
+
+ /**
+ * splice_direct_to_actor - splices data directly between two non-pipes
+diff --git a/fs/sync.c b/fs/sync.c
+index 28607828e96f..ffd7ea43831e 100644
+--- a/fs/sync.c
++++ b/fs/sync.c
+@@ -39,6 +39,7 @@ int __sync_filesystem(struct super_block *sb, int wait)
+ sb->s_op->sync_fs(sb, wait);
+ return __sync_blockdev(sb->s_bdev, wait);
+ }
++EXPORT_SYMBOL_GPL(__sync_filesystem);
+
+ /*
+ * Write out and wait upon all dirty data associated with this
+diff --git a/fs/xattr.c b/fs/xattr.c
+index 0d6a6a4af861..7ce4701b7289 100644
+--- a/fs/xattr.c
++++ b/fs/xattr.c
+@@ -295,6 +295,7 @@ vfs_getxattr_alloc(struct dentry *dentry, const char *name, char **xattr_value,
+ *xattr_value = value;
+ return error;
+ }
++EXPORT_SYMBOL_GPL(vfs_getxattr_alloc);
+
+ ssize_t
+ __vfs_getxattr(struct dentry *dentry, struct inode *inode, const char *name,
+diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
+index d0c9931e6531..0e5d9706723c 100644
+--- a/kernel/locking/lockdep.c
++++ b/kernel/locking/lockdep.c
+@@ -151,6 +151,7 @@ inline struct lock_class *lockdep_hlock_class(struct held_lock *hlock)
+ }
+ return lock_classes + hlock->class_idx - 1;
+ }
++EXPORT_SYMBOL_GPL(lockdep_hlock_class);
+ #define hlock_class(hlock) lockdep_hlock_class(hlock)
+
+ #ifdef CONFIG_LOCK_STAT
+diff --git a/kernel/task_work.c b/kernel/task_work.c
+index 0fef395662a6..83fb1ecfc33d 100644
+--- a/kernel/task_work.c
++++ b/kernel/task_work.c
+@@ -116,3 +116,4 @@ void task_work_run(void)
+ } while (work);
+ }
+ }
++EXPORT_SYMBOL_GPL(task_work_run);
+diff --git a/security/device_cgroup.c b/security/device_cgroup.c
+index dc28914fa72e..c2ddfea2b280 100644
+--- a/security/device_cgroup.c
++++ b/security/device_cgroup.c
+@@ -824,3 +824,4 @@ int __devcgroup_check_permission(short type, u32 major, u32 minor,
+
+ return 0;
+ }
++EXPORT_SYMBOL_GPL(__devcgroup_check_permission);
+diff --git a/security/security.c b/security/security.c
+index 5ce2448f3a45..3997af3462bc 100644
+--- a/security/security.c
++++ b/security/security.c
+@@ -542,6 +542,7 @@ int security_path_rmdir(const struct path *dir, struct dentry *dentry)
+ return 0;
+ return call_int_hook(path_rmdir, 0, dir, dentry);
+ }
++EXPORT_SYMBOL_GPL(security_path_rmdir);
+
+ int security_path_unlink(const struct path *dir, struct dentry *dentry)
+ {
+@@ -558,6 +559,7 @@ int security_path_symlink(const struct path *dir, struct dentry *dentry,
+ return 0;
+ return call_int_hook(path_symlink, 0, dir, dentry, old_name);
+ }
++EXPORT_SYMBOL_GPL(security_path_symlink);
+
+ int security_path_link(struct dentry *old_dentry, const struct path *new_dir,
+ struct dentry *new_dentry)
+@@ -566,6 +568,7 @@ int security_path_link(struct dentry *old_dentry, const struct path *new_dir,
+ return 0;
+ return call_int_hook(path_link, 0, old_dentry, new_dir, new_dentry);
+ }
++EXPORT_SYMBOL_GPL(security_path_link);
+
+ int security_path_rename(const struct path *old_dir, struct dentry *old_dentry,
+ const struct path *new_dir, struct dentry *new_dentry,
+@@ -593,6 +596,7 @@ int security_path_truncate(const struct path *path)
+ return 0;
+ return call_int_hook(path_truncate, 0, path);
+ }
++EXPORT_SYMBOL_GPL(security_path_truncate);
+
+ int security_path_chmod(const struct path *path, umode_t mode)
+ {
+@@ -600,6 +604,7 @@ int security_path_chmod(const struct path *path, umode_t mode)
+ return 0;
+ return call_int_hook(path_chmod, 0, path, mode);
+ }
++EXPORT_SYMBOL_GPL(security_path_chmod);
+
+ int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid)
+ {
+@@ -607,6 +612,7 @@ int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid)
+ return 0;
+ return call_int_hook(path_chown, 0, path, uid, gid);
+ }
++EXPORT_SYMBOL_GPL(security_path_chown);
+
+ int security_path_chroot(const struct path *path)
+ {
+@@ -707,6 +713,7 @@ int security_inode_permission(struct inode *inode, int mask)
+ return 0;
+ return call_int_hook(inode_permission, 0, inode, mask);
+ }
++EXPORT_SYMBOL_GPL(security_inode_permission);
+
+ int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
+ {
+@@ -878,6 +885,7 @@ int security_file_permission(struct file *file, int mask)
+
+ return fsnotify_perm(file, mask);
+ }
++EXPORT_SYMBOL_GPL(security_file_permission);
+
+ int security_file_alloc(struct file *file)
+ {
+@@ -937,6 +945,7 @@ int security_mmap_file(struct file *file, unsigned long prot,
+ return ret;
+ return ima_file_mmap(file, prot);
+ }
++EXPORT_SYMBOL_GPL(security_mmap_file);
+
+ int security_mmap_addr(unsigned long addr)
+ {
diff --git a/debian/patches/features/all/db-mok-keyring/0001-KEYS-Allow-unrestricted-boot-time-addition-of-keys-t.patch b/debian/patches/features/all/db-mok-keyring/0001-KEYS-Allow-unrestricted-boot-time-addition-of-keys-t.patch
new file mode 100644
index 000000000..a67217c02
--- /dev/null
+++ b/debian/patches/features/all/db-mok-keyring/0001-KEYS-Allow-unrestricted-boot-time-addition-of-keys-t.patch
@@ -0,0 +1,91 @@
+From: David Howells <dhowells@redhat.com>
+Date: Fri, 5 May 2017 08:21:56 +0100
+Subject: [PATCH 1/7] KEYS: Allow unrestricted boot-time addition of keys to
+ secondary keyring
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/jforbes/linux.git/commit/?id=40db8fc497d010ae6cee6297c3882d3dc3d76d48
+
+Allow keys to be added to the system secondary certificates keyring during
+kernel initialisation in an unrestricted fashion. Such keys are implicitly
+trusted and don't have their trust chains checked on link.
+
+This allows keys in the UEFI database to be added in secure boot mode for
+the purposes of module signing.
+
+Signed-off-by: David Howells <dhowells@redhat.com>
+---
+ certs/internal.h | 18 ++++++++++++++++++
+ certs/system_keyring.c | 33 +++++++++++++++++++++++++++++++++
+ 2 files changed, 51 insertions(+)
+ create mode 100644 certs/internal.h
+
+Index: linux/certs/internal.h
+===================================================================
+--- /dev/null
++++ linux/certs/internal.h
+@@ -0,0 +1,18 @@
++/* Internal definitions
++ *
++ * Copyright (C) 2016 Red Hat, Inc. All Rights Reserved.
++ * Written by David Howells (dhowells@redhat.com)
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public Licence
++ * as published by the Free Software Foundation; either version
++ * 2 of the Licence, or (at your option) any later version.
++ */
++
++/*
++ * system_keyring.c
++ */
++#ifdef CONFIG_SECONDARY_TRUSTED_KEYRING
++extern void __init add_trusted_secondary_key(const char *source,
++ const void *data, size_t len);
++#endif
+Index: linux/certs/system_keyring.c
+===================================================================
+--- linux.orig/certs/system_keyring.c
++++ linux/certs/system_keyring.c
+@@ -19,6 +19,7 @@
+ #include <keys/asymmetric-type.h>
+ #include <keys/system_keyring.h>
+ #include <crypto/pkcs7.h>
++#include "internal.h"
+
+ static struct key *builtin_trusted_keys;
+ #ifdef CONFIG_SECONDARY_TRUSTED_KEYRING
+@@ -266,3 +267,35 @@ error:
+ EXPORT_SYMBOL_GPL(verify_pkcs7_signature);
+
+ #endif /* CONFIG_SYSTEM_DATA_VERIFICATION */
++
++#ifdef CONFIG_SECONDARY_TRUSTED_KEYRING
++/**
++ * add_trusted_secondary_key - Add to secondary keyring with no validation
++ * @source: Source of key
++ * @data: The blob holding the key
++ * @len: The length of the data blob
++ *
++ * Add a key to the secondary keyring without checking its trust chain. This
++ * is available only during kernel initialisation.
++ */
++void __init add_trusted_secondary_key(const char *source,
++ const void *data, size_t len)
++{
++ key_ref_t key;
++
++ key = key_create_or_update(make_key_ref(secondary_trusted_keys, 1),
++ "asymmetric",
++ NULL, data, len,
++ (KEY_POS_ALL & ~KEY_POS_SETATTR) |
++ KEY_USR_VIEW,
++ KEY_ALLOC_NOT_IN_QUOTA |
++ KEY_ALLOC_BYPASS_RESTRICTION);
++
++ if (IS_ERR(key))
++ pr_err("Problem loading %s X.509 certificate (%ld)\n",
++ source, PTR_ERR(key));
++ else
++ pr_notice("Loaded %s cert '%s' linked to secondary sys keyring\n",
++ source, key_ref_to_ptr(key)->description);
++}
++#endif /* CONFIG_SECONDARY_TRUSTED_KEYRING */
diff --git a/debian/patches/features/all/db-mok-keyring/0001-MODSIGN-do-not-load-mok-when-secure-boot-disabled.patch b/debian/patches/features/all/db-mok-keyring/0001-MODSIGN-do-not-load-mok-when-secure-boot-disabled.patch
new file mode 100644
index 000000000..d36028413
--- /dev/null
+++ b/debian/patches/features/all/db-mok-keyring/0001-MODSIGN-do-not-load-mok-when-secure-boot-disabled.patch
@@ -0,0 +1,64 @@
+From: "Lee, Chun-Yi" <joeyli.kernel@gmail.com>
+Date: Tue, 13 Mar 2018 18:37:59 +0800
+Subject: [PATCH 1/5] MODSIGN: do not load mok when secure boot disabled
+Origin: https://lore.kernel.org/patchwork/patch/933173/
+
+The mok can not be trusted when the secure boot is disabled. Which
+means that the kernel embedded certificate is the only trusted key.
+
+Due to db/dbx are authenticated variables, they needs manufacturer's
+KEK for update. So db/dbx are secure when secureboot disabled.
+
+Cc: David Howells <dhowells@redhat.com>
+Cc: Josh Boyer <jwboyer@fedoraproject.org>
+Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
+Signed-off-by: "Lee, Chun-Yi" <jlee@suse.com>
+[Rebased by Luca Boccassi]
+---
+ certs/load_uefi.c | 26 +++++++++++++++-----------
+ 1 file changed, 15 insertions(+), 11 deletions(-)
+
+Index: linux/certs/load_uefi.c
+===================================================================
+--- linux.orig/certs/load_uefi.c
++++ linux/certs/load_uefi.c
+@@ -171,17 +171,6 @@ static int __init load_uefi_certs(void)
+ }
+ }
+
+- rc = get_cert_list(L"MokListRT", &mok_var, &moksize, &mok);
+- if (rc < 0) {
+- pr_info("MODSIGN: Couldn't get UEFI MokListRT\n");
+- } else if (moksize != 0) {
+- rc = parse_efi_signature_list("UEFI:MokListRT",
+- mok, moksize, get_handler_for_db);
+- if (rc)
+- pr_err("Couldn't parse MokListRT signatures: %d\n", rc);
+- kfree(mok);
+- }
+-
+ rc = get_cert_list(L"dbx", &secure_var, &dbxsize, &dbx);
+ if (rc < 0) {
+ pr_info("MODSIGN: Couldn't get UEFI dbx list\n");
+@@ -194,6 +183,21 @@ static int __init load_uefi_certs(void)
+ kfree(dbx);
+ }
+
++ /* the MOK can not be trusted when secure boot is disabled */
++ if (!efi_enabled(EFI_SECURE_BOOT))
++ return 0;
++
++ rc = get_cert_list(L"MokListRT", &mok_var, &moksize, &mok);
++ if (rc < 0) {
++ pr_info("MODSIGN: Couldn't get UEFI MokListRT\n");
++ } else if (moksize != 0) {
++ rc = parse_efi_signature_list("UEFI:MokListRT",
++ mok, moksize, get_handler_for_db);
++ if (rc)
++ pr_err("Couldn't parse MokListRT signatures: %d\n", rc);
++ kfree(mok);
++ }
++
+ return rc;
+ }
+ late_initcall(load_uefi_certs);
diff --git a/debian/patches/features/all/db-mok-keyring/0002-MODSIGN-load-blacklist-from-MOKx.patch b/debian/patches/features/all/db-mok-keyring/0002-MODSIGN-load-blacklist-from-MOKx.patch
new file mode 100644
index 000000000..d23b7ac98
--- /dev/null
+++ b/debian/patches/features/all/db-mok-keyring/0002-MODSIGN-load-blacklist-from-MOKx.patch
@@ -0,0 +1,60 @@
+From: "Lee, Chun-Yi" <joeyli.kernel@gmail.com>
+Date: Tue, 13 Mar 2018 18:38:01 +0800
+Subject: [PATCH 2/4] MODSIGN: load blacklist from MOKx
+Origin: https://lore.kernel.org/patchwork/patch/933177/
+
+This patch adds the logic to load the blacklisted hash and
+certificates from MOKx which is maintained by shim bootloader.
+
+Cc: David Howells <dhowells@redhat.com>
+Cc: Josh Boyer <jwboyer@fedoraproject.org>
+Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
+Signed-off-by: "Lee, Chun-Yi" <jlee@suse.com>
+[Rebased by Luca Boccassi]
+---
+ certs/load_uefi.c | 16 +++++++++++++---
+ 1 file changed, 13 insertions(+), 3 deletions(-)
+
+Index: linux/certs/load_uefi.c
+===================================================================
+--- linux.orig/certs/load_uefi.c
++++ linux/certs/load_uefi.c
+@@ -148,8 +148,8 @@ static int __init load_uefi_certs(void)
+ {
+ efi_guid_t secure_var = EFI_IMAGE_SECURITY_DATABASE_GUID;
+ efi_guid_t mok_var = EFI_SHIM_LOCK_GUID;
+- void *db = NULL, *dbx = NULL, *mok = NULL;
+- unsigned long dbsize = 0, dbxsize = 0, moksize = 0;
++ void *db = NULL, *dbx = NULL, *mok = NULL, *mokx = NULL;
++ unsigned long dbsize = 0, dbxsize = 0, moksize = 0, mokxsize = 0;
+ int rc = 0;
+
+ if (!efi.get_variable)
+@@ -183,7 +183,7 @@ static int __init load_uefi_certs(void)
+ kfree(dbx);
+ }
+
+- /* the MOK can not be trusted when secure boot is disabled */
++ /* the MOK and MOKx can not be trusted when secure boot is disabled */
+ if (!efi_enabled(EFI_SECURE_BOOT))
+ return 0;
+
+@@ -198,6 +198,18 @@ static int __init load_uefi_certs(void)
+ kfree(mok);
+ }
+
++ rc = get_cert_list(L"MokListXRT", &mok_var, &mokxsize, &mokx);
++ if (rc < 0) {
++ pr_info("MODSIGN: Couldn't get UEFI MokListXRT\n");
++ } else if (mokxsize != 0) {
++ rc = parse_efi_signature_list("UEFI:mokx",
++ mokx, mokxsize,
++ get_handler_for_dbx);
++ if (rc)
++ pr_err("Couldn't parse MokListXRT signatures: %d\n", rc);
++ kfree(mokx);
++ }
++
+ return rc;
+ }
+ late_initcall(load_uefi_certs);
diff --git a/debian/patches/features/all/db-mok-keyring/0002-efi-Add-EFI-signature-data-types.patch b/debian/patches/features/all/db-mok-keyring/0002-efi-Add-EFI-signature-data-types.patch
new file mode 100644
index 000000000..bf8d40768
--- /dev/null
+++ b/debian/patches/features/all/db-mok-keyring/0002-efi-Add-EFI-signature-data-types.patch
@@ -0,0 +1,57 @@
+From: Dave Howells <dhowells@redhat.com>
+Date: Fri, 5 May 2017 08:21:58 +0100
+Subject: [PATCH 2/7] efi: Add EFI signature data types
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/jforbes/linux.git/commit/?id=446e0e29d7d53fe7786d33603df5a6682dd00c12
+
+Add the data types that are used for containing hashes, keys and
+certificates for cryptographic verification along with their corresponding
+type GUIDs.
+
+Signed-off-by: David Howells <dhowells@redhat.com>
+---
+ include/linux/efi.h | 25 +++++++++++++++++++++++++
+ 1 file changed, 25 insertions(+)
+
+Index: linux/include/linux/efi.h
+===================================================================
+--- linux.orig/include/linux/efi.h
++++ linux/include/linux/efi.h
+@@ -663,6 +663,10 @@ void efi_native_runtime_setup(void);
+ #define EFI_IMAGE_SECURITY_DATABASE_GUID EFI_GUID(0xd719b2cb, 0x3d3a, 0x4596, 0xa3, 0xbc, 0xda, 0xd0, 0x0e, 0x67, 0x65, 0x6f)
+ #define EFI_SHIM_LOCK_GUID EFI_GUID(0x605dab50, 0xe046, 0x4300, 0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23)
+
++#define EFI_CERT_SHA256_GUID EFI_GUID(0xc1c41626, 0x504c, 0x4092, 0xac, 0xa9, 0x41, 0xf9, 0x36, 0x93, 0x43, 0x28)
++#define EFI_CERT_X509_GUID EFI_GUID(0xa5c059a1, 0x94e4, 0x4aa7, 0x87, 0xb5, 0xab, 0x15, 0x5c, 0x2b, 0xf0, 0x72)
++#define EFI_CERT_X509_SHA256_GUID EFI_GUID(0x3bd2a492, 0x96c0, 0x4079, 0xb4, 0x20, 0xfc, 0xf9, 0x8e, 0xf1, 0x03, 0xed)
++
+ /*
+ * This GUID is used to pass to the kernel proper the struct screen_info
+ * structure that was populated by the stub based on the GOP protocol instance
+@@ -934,6 +938,27 @@ typedef struct {
+ efi_memory_desc_t entry[0];
+ } efi_memory_attributes_table_t;
+
++typedef struct {
++ efi_guid_t signature_owner;
++ u8 signature_data[];
++} efi_signature_data_t;
++
++typedef struct {
++ efi_guid_t signature_type;
++ u32 signature_list_size;
++ u32 signature_header_size;
++ u32 signature_size;
++ u8 signature_header[];
++ /* efi_signature_data_t signatures[][] */
++} efi_signature_list_t;
++
++typedef u8 efi_sha256_hash_t[32];
++
++typedef struct {
++ efi_sha256_hash_t to_be_signed_hash;
++ efi_time_t time_of_revocation;
++} efi_cert_x509_sha256_t;
++
+ /*
+ * All runtime access to EFI goes through this structure:
+ */
diff --git a/debian/patches/features/all/db-mok-keyring/0003-MODSIGN-checking-the-blacklisted-hash-before-loading-a-kernel-module.patch b/debian/patches/features/all/db-mok-keyring/0003-MODSIGN-checking-the-blacklisted-hash-before-loading-a-kernel-module.patch
new file mode 100644
index 000000000..1a43ca553
--- /dev/null
+++ b/debian/patches/features/all/db-mok-keyring/0003-MODSIGN-checking-the-blacklisted-hash-before-loading-a-kernel-module.patch
@@ -0,0 +1,129 @@
+From: "Lee, Chun-Yi" <joeyli.kernel@gmail.com>
+Date: Tue, 13 Mar 2018 18:38:02 +0800
+Subject: [PATCH 3/4] MODSIGN: checking the blacklisted hash before loading a
+ kernel module
+Origin: https://lore.kernel.org/patchwork/patch/933175/
+
+This patch adds the logic for checking the kernel module's hash
+base on blacklist. The hash must be generated by sha256 and enrolled
+to dbx/mokx.
+
+For example:
+ sha256sum sample.ko
+ mokutil --mokx --import-hash $HASH_RESULT
+
+Whether the signature on ko file is stripped or not, the hash can be
+compared by kernel.
+
+Cc: David Howells <dhowells@redhat.com>
+Cc: Josh Boyer <jwboyer@fedoraproject.org>
+Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
+Signed-off-by: "Lee, Chun-Yi" <jlee@suse.com>
+[Rebased by Luca Boccassi]
+---
+ kernel/module_signing.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 60 insertions(+), 2 deletions(-)
+
+Index: linux/kernel/module_signing.c
+===================================================================
+--- linux.orig/kernel/module_signing.c
++++ linux/kernel/module_signing.c
+@@ -11,9 +11,12 @@
+
+ #include <linux/kernel.h>
+ #include <linux/errno.h>
++#include <linux/module.h>
+ #include <linux/string.h>
+ #include <linux/verification.h>
+ #include <crypto/public_key.h>
++#include <crypto/hash.h>
++#include <keys/system_keyring.h>
+ #include "module-internal.h"
+
+ enum pkey_id_type {
+@@ -42,19 +45,67 @@ struct module_signature {
+ __be32 sig_len; /* Length of signature data */
+ };
+
++static int mod_is_hash_blacklisted(const void *mod, size_t verifylen)
++{
++ struct crypto_shash *tfm;
++ struct shash_desc *desc;
++ size_t digest_size, desc_size;
++ u8 *digest;
++ int ret = 0;
++
++ tfm = crypto_alloc_shash("sha256", 0, 0);
++ if (IS_ERR(tfm))
++ goto error_return;
++
++ desc_size = crypto_shash_descsize(tfm) + sizeof(*desc);
++ digest_size = crypto_shash_digestsize(tfm);
++ digest = kzalloc(digest_size + desc_size, GFP_KERNEL);
++ if (!digest) {
++ pr_err("digest memory buffer allocate fail\n");
++ ret = -ENOMEM;
++ goto error_digest;
++ }
++ desc = (void *)digest + digest_size;
++ desc->tfm = tfm;
++ desc->flags = CRYPTO_TFM_REQ_MAY_SLEEP;
++ ret = crypto_shash_init(desc);
++ if (ret < 0)
++ goto error_shash;
++
++ ret = crypto_shash_finup(desc, mod, verifylen, digest);
++ if (ret < 0)
++ goto error_shash;
++
++ pr_debug("%ld digest: %*phN\n", verifylen, (int) digest_size, digest);
++
++ ret = is_hash_blacklisted(digest, digest_size, "bin");
++ if (ret == -EKEYREJECTED)
++ pr_err("Module hash %*phN is blacklisted\n",
++ (int) digest_size, digest);
++
++error_shash:
++ kfree(digest);
++error_digest:
++ crypto_free_shash(tfm);
++error_return:
++ return ret;
++}
++
+ /*
+ * Verify the signature on a module.
+ */
+ int mod_verify_sig(const void *mod, struct load_info *info)
+ {
+ struct module_signature ms;
+- size_t sig_len, modlen = info->len;
++ size_t sig_len, modlen = info->len, wholelen;
++ int ret;;
+
+ pr_devel("==>%s(,%zu)\n", __func__, modlen);
+
+ if (modlen <= sizeof(ms))
+ return -EBADMSG;
+
++ wholelen = modlen + sizeof(MODULE_SIG_STRING) - 1;
+ memcpy(&ms, mod + (modlen - sizeof(ms)), sizeof(ms));
+ modlen -= sizeof(ms);
+
+@@ -82,8 +133,15 @@ int mod_verify_sig(const void *mod, stru
+ return -EBADMSG;
+ }
+
+- return verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len,
++ ret = verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len,
+ VERIFY_USE_SECONDARY_KEYRING,
+ VERIFYING_MODULE_SIGNATURE,
+ NULL, NULL);
++ pr_devel("verify_pkcs7_signature() = %d\n", ret);
++
++ /* checking hash of module is in blacklist */
++ if (!ret)
++ ret = mod_is_hash_blacklisted(mod, wholelen);
++
++ return ret;
+ }
diff --git a/debian/patches/features/all/db-mok-keyring/0003-efi-Add-an-EFI-signature-blob-parser.patch b/debian/patches/features/all/db-mok-keyring/0003-efi-Add-an-EFI-signature-blob-parser.patch
new file mode 100644
index 000000000..e82287cff
--- /dev/null
+++ b/debian/patches/features/all/db-mok-keyring/0003-efi-Add-an-EFI-signature-blob-parser.patch
@@ -0,0 +1,193 @@
+From: Dave Howells <dhowells@redhat.com>
+Date: Fri, 5 May 2017 08:21:58 +0100
+Subject: [PATCH 3/7] efi: Add an EFI signature blob parser
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/jforbes/linux.git/commit/?id=41a595bb0dc097c19ad377a0c32c993234aa2525
+
+Add a function to parse an EFI signature blob looking for elements of
+interest. A list is made up of a series of sublists, where all the
+elements in a sublist are of the same type, but sublists can be of
+different types.
+
+For each sublist encountered, the function pointed to by the
+get_handler_for_guid argument is called with the type specifier GUID and
+returns either a pointer to a function to handle elements of that type or
+NULL if the type is not of interest.
+
+If the sublist is of interest, each element is passed to the handler
+function in turn.
+
+Signed-off-by: David Howells <dhowells@redhat.com>
+---
+ certs/Kconfig | 8 ++++
+ certs/Makefile | 1 +
+ certs/efi_parser.c | 112 ++++++++++++++++++++++++++++++++++++++++++++
+ include/linux/efi.h | 9 ++++
+ 4 files changed, 130 insertions(+)
+ create mode 100644 certs/efi_parser.c
+
+Index: linux/certs/Kconfig
+===================================================================
+--- linux.orig/certs/Kconfig
++++ linux/certs/Kconfig
+@@ -83,4 +83,12 @@ config SYSTEM_BLACKLIST_HASH_LIST
+ wrapper to incorporate the list into the kernel. Each <hash> should
+ be a string of hex digits.
+
++config EFI_SIGNATURE_LIST_PARSER
++ bool "EFI signature list parser"
++ depends on EFI
++ select X509_CERTIFICATE_PARSER
++ help
++ This option provides support for parsing EFI signature lists for
++ X.509 certificates and turning them into keys.
++
+ endmenu
+Index: linux/certs/Makefile
+===================================================================
+--- linux.orig/certs/Makefile
++++ linux/certs/Makefile
+@@ -10,6 +10,7 @@ obj-$(CONFIG_SYSTEM_BLACKLIST_KEYRING) +
+ else
+ obj-$(CONFIG_SYSTEM_BLACKLIST_KEYRING) += blacklist_nohashes.o
+ endif
++obj-$(CONFIG_EFI_SIGNATURE_LIST_PARSER) += efi_parser.o
+
+ ifeq ($(CONFIG_SYSTEM_TRUSTED_KEYRING),y)
+
+Index: linux/certs/efi_parser.c
+===================================================================
+--- /dev/null
++++ linux/certs/efi_parser.c
+@@ -0,0 +1,112 @@
++/* EFI signature/key/certificate list parser
++ *
++ * Copyright (C) 2012, 2016 Red Hat, Inc. All Rights Reserved.
++ * Written by David Howells (dhowells@redhat.com)
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public Licence
++ * as published by the Free Software Foundation; either version
++ * 2 of the Licence, or (at your option) any later version.
++ */
++
++#define pr_fmt(fmt) "EFI: "fmt
++#include <linux/module.h>
++#include <linux/printk.h>
++#include <linux/err.h>
++#include <linux/efi.h>
++
++/**
++ * parse_efi_signature_list - Parse an EFI signature list for certificates
++ * @source: The source of the key
++ * @data: The data blob to parse
++ * @size: The size of the data blob
++ * @get_handler_for_guid: Get the handler func for the sig type (or NULL)
++ *
++ * Parse an EFI signature list looking for elements of interest. A list is
++ * made up of a series of sublists, where all the elements in a sublist are of
++ * the same type, but sublists can be of different types.
++ *
++ * For each sublist encountered, the @get_handler_for_guid function is called
++ * with the type specifier GUID and returns either a pointer to a function to
++ * handle elements of that type or NULL if the type is not of interest.
++ *
++ * If the sublist is of interest, each element is passed to the handler
++ * function in turn.
++ *
++ * Error EBADMSG is returned if the list doesn't parse correctly and 0 is
++ * returned if the list was parsed correctly. No error can be returned from
++ * the @get_handler_for_guid function or the element handler function it
++ * returns.
++ */
++int __init parse_efi_signature_list(
++ const char *source,
++ const void *data, size_t size,
++ efi_element_handler_t (*get_handler_for_guid)(const efi_guid_t *))
++{
++ efi_element_handler_t handler;
++ unsigned offs = 0;
++
++ pr_devel("-->%s(,%zu)\n", __func__, size);
++
++ while (size > 0) {
++ const efi_signature_data_t *elem;
++ efi_signature_list_t list;
++ size_t lsize, esize, hsize, elsize;
++
++ if (size < sizeof(list))
++ return -EBADMSG;
++
++ memcpy(&list, data, sizeof(list));
++ pr_devel("LIST[%04x] guid=%pUl ls=%x hs=%x ss=%x\n",
++ offs,
++ list.signature_type.b, list.signature_list_size,
++ list.signature_header_size, list.signature_size);
++
++ lsize = list.signature_list_size;
++ hsize = list.signature_header_size;
++ esize = list.signature_size;
++ elsize = lsize - sizeof(list) - hsize;
++
++ if (lsize > size) {
++ pr_devel("<--%s() = -EBADMSG [overrun @%x]\n",
++ __func__, offs);
++ return -EBADMSG;
++ }
++
++ if (lsize < sizeof(list) ||
++ lsize - sizeof(list) < hsize ||
++ esize < sizeof(*elem) ||
++ elsize < esize ||
++ elsize % esize != 0) {
++ pr_devel("- bad size combo @%x\n", offs);
++ return -EBADMSG;
++ }
++
++ handler = get_handler_for_guid(&list.signature_type);
++ if (!handler) {
++ data += lsize;
++ size -= lsize;
++ offs += lsize;
++ continue;
++ }
++
++ data += sizeof(list) + hsize;
++ size -= sizeof(list) + hsize;
++ offs += sizeof(list) + hsize;
++
++ for (; elsize > 0; elsize -= esize) {
++ elem = data;
++
++ pr_devel("ELEM[%04x]\n", offs);
++ handler(source,
++ &elem->signature_data,
++ esize - sizeof(*elem));
++
++ data += esize;
++ size -= esize;
++ offs += esize;
++ }
++ }
++
++ return 0;
++}
+Index: linux/include/linux/efi.h
+===================================================================
+--- linux.orig/include/linux/efi.h
++++ linux/include/linux/efi.h
+@@ -1139,6 +1139,15 @@ extern int efi_memattr_apply_permissions
+ char * __init efi_md_typeattr_format(char *buf, size_t size,
+ const efi_memory_desc_t *md);
+
++
++typedef void (*efi_element_handler_t)(const char *source,
++ const void *element_data,
++ size_t element_size);
++extern int __init parse_efi_signature_list(
++ const char *source,
++ const void *data, size_t size,
++ efi_element_handler_t (*get_handler_for_guid)(const efi_guid_t *));
++
+ /**
+ * efi_range_is_wc - check the WC bit on an address range
+ * @start: starting kvirt address
diff --git a/debian/patches/features/all/db-mok-keyring/0004-MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch b/debian/patches/features/all/db-mok-keyring/0004-MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch
new file mode 100644
index 000000000..cdb3b7a22
--- /dev/null
+++ b/debian/patches/features/all/db-mok-keyring/0004-MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch
@@ -0,0 +1,242 @@
+From: Josh Boyer <jwboyer@fedoraproject.org>
+Date: Fri, 5 May 2017 08:21:59 +0100
+Subject: [PATCH 4/7] MODSIGN: Import certificates from UEFI Secure Boot
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/jforbes/linux.git/commit/?id=7b7aae2efea13b5a7b80305856c28f235ea8b2fa
+
+Secure Boot stores a list of allowed certificates in the 'db' variable.
+This imports those certificates into the system trusted keyring. This
+allows for a third party signing certificate to be used in conjunction
+with signed modules. By importing the public certificate into the 'db'
+variable, a user can allow a module signed with that certificate to
+load. The shim UEFI bootloader has a similar certificate list stored
+in the 'MokListRT' variable. We import those as well.
+
+Secure Boot also maintains a list of disallowed certificates in the 'dbx'
+variable. We load those certificates into the newly introduced system
+blacklist keyring and forbid any module signed with those from loading and
+forbid the use within the kernel of any key with a matching hash.
+
+This facility is enabled by setting CONFIG_LOAD_UEFI_KEYS.
+
+Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
+Signed-off-by: David Howells <dhowells@redhat.com>
+---
+ certs/Kconfig | 16 +++++
+ certs/Makefile | 4 ++
+ certs/load_uefi.c | 168 ++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 188 insertions(+)
+ create mode 100644 certs/load_uefi.c
+
+Index: linux/certs/Kconfig
+===================================================================
+--- linux.orig/certs/Kconfig
++++ linux/certs/Kconfig
+@@ -91,4 +91,20 @@ config EFI_SIGNATURE_LIST_PARSER
+ This option provides support for parsing EFI signature lists for
+ X.509 certificates and turning them into keys.
+
++config LOAD_UEFI_KEYS
++ bool "Load certs and blacklist from UEFI db for module checking"
++ depends on SYSTEM_BLACKLIST_KEYRING
++ depends on SECONDARY_TRUSTED_KEYRING
++ depends on EFI
++ depends on EFI_SIGNATURE_LIST_PARSER
++ help
++ If the kernel is booted in secure boot mode, this option will cause
++ the kernel to load the certificates from the UEFI db and MokListRT
++ into the secondary trusted keyring. It will also load any X.509
++ SHA256 hashes in the dbx list into the blacklist.
++
++ The effect of this is that, if the kernel is booted in secure boot
++ mode, modules signed with UEFI-stored keys will be permitted to be
++ loaded and keys that match the blacklist will be rejected.
++
+ endmenu
+Index: linux/certs/Makefile
+===================================================================
+--- linux.orig/certs/Makefile
++++ linux/certs/Makefile
+@@ -12,6 +12,10 @@ obj-$(CONFIG_SYSTEM_BLACKLIST_KEYRING) +
+ endif
+ obj-$(CONFIG_EFI_SIGNATURE_LIST_PARSER) += efi_parser.o
+
++obj-$(CONFIG_LOAD_UEFI_KEYS) += load_uefi.o
++$(obj)/load_uefi.o: KBUILD_CFLAGS += -fshort-wchar
++
++
+ ifeq ($(CONFIG_SYSTEM_TRUSTED_KEYRING),y)
+
+ $(eval $(call config_filename,SYSTEM_TRUSTED_KEYS))
+Index: linux/certs/load_uefi.c
+===================================================================
+--- /dev/null
++++ linux/certs/load_uefi.c
+@@ -0,0 +1,168 @@
++#include <linux/kernel.h>
++#include <linux/sched.h>
++#include <linux/cred.h>
++#include <linux/err.h>
++#include <linux/efi.h>
++#include <linux/slab.h>
++#include <keys/asymmetric-type.h>
++#include <keys/system_keyring.h>
++#include "internal.h"
++
++static __initdata efi_guid_t efi_cert_x509_guid = EFI_CERT_X509_GUID;
++static __initdata efi_guid_t efi_cert_x509_sha256_guid = EFI_CERT_X509_SHA256_GUID;
++static __initdata efi_guid_t efi_cert_sha256_guid = EFI_CERT_SHA256_GUID;
++
++/*
++ * Get a certificate list blob from the named EFI variable.
++ */
++static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid,
++ unsigned long *size)
++{
++ efi_status_t status;
++ unsigned long lsize = 4;
++ unsigned long tmpdb[4];
++ void *db;
++
++ status = efi.get_variable(name, guid, NULL, &lsize, &tmpdb);
++ if (status != EFI_BUFFER_TOO_SMALL) {
++ pr_err("Couldn't get size: 0x%lx\n", status);
++ return NULL;
++ }
++
++ db = kmalloc(lsize, GFP_KERNEL);
++ if (!db) {
++ pr_err("Couldn't allocate memory for uefi cert list\n");
++ return NULL;
++ }
++
++ status = efi.get_variable(name, guid, NULL, &lsize, db);
++ if (status != EFI_SUCCESS) {
++ kfree(db);
++ pr_err("Error reading db var: 0x%lx\n", status);
++ return NULL;
++ }
++
++ *size = lsize;
++ return db;
++}
++
++/*
++ * Blacklist an X509 TBS hash.
++ */
++static __init void uefi_blacklist_x509_tbs(const char *source,
++ const void *data, size_t len)
++{
++ char *hash, *p;
++
++ hash = kmalloc(4 + len * 2 + 1, GFP_KERNEL);
++ if (!hash)
++ return;
++ p = memcpy(hash, "tbs:", 4);
++ p += 4;
++ bin2hex(p, data, len);
++ p += len * 2;
++ *p = 0;
++
++ mark_hash_blacklisted(hash);
++ kfree(hash);
++}
++
++/*
++ * Blacklist the hash of an executable.
++ */
++static __init void uefi_blacklist_binary(const char *source,
++ const void *data, size_t len)
++{
++ char *hash, *p;
++
++ hash = kmalloc(4 + len * 2 + 1, GFP_KERNEL);
++ if (!hash)
++ return;
++ p = memcpy(hash, "bin:", 4);
++ p += 4;
++ bin2hex(p, data, len);
++ p += len * 2;
++ *p = 0;
++
++ mark_hash_blacklisted(hash);
++ kfree(hash);
++}
++
++/*
++ * Return the appropriate handler for particular signature list types found in
++ * the UEFI db and MokListRT tables.
++ */
++static __init efi_element_handler_t get_handler_for_db(const efi_guid_t *sig_type)
++{
++ if (efi_guidcmp(*sig_type, efi_cert_x509_guid) == 0)
++ return add_trusted_secondary_key;
++ return 0;
++}
++
++/*
++ * Return the appropriate handler for particular signature list types found in
++ * the UEFI dbx and MokListXRT tables.
++ */
++static __init efi_element_handler_t get_handler_for_dbx(const efi_guid_t *sig_type)
++{
++ if (efi_guidcmp(*sig_type, efi_cert_x509_sha256_guid) == 0)
++ return uefi_blacklist_x509_tbs;
++ if (efi_guidcmp(*sig_type, efi_cert_sha256_guid) == 0)
++ return uefi_blacklist_binary;
++ return 0;
++}
++
++/*
++ * Load the certs contained in the UEFI databases
++ */
++static int __init load_uefi_certs(void)
++{
++ efi_guid_t secure_var = EFI_IMAGE_SECURITY_DATABASE_GUID;
++ efi_guid_t mok_var = EFI_SHIM_LOCK_GUID;
++ void *db = NULL, *dbx = NULL, *mok = NULL;
++ unsigned long dbsize = 0, dbxsize = 0, moksize = 0;
++ int rc = 0;
++
++ if (!efi.get_variable)
++ return false;
++
++ /* Get db, MokListRT, and dbx. They might not exist, so it isn't
++ * an error if we can't get them.
++ */
++ db = get_cert_list(L"db", &secure_var, &dbsize);
++ if (!db) {
++ pr_err("MODSIGN: Couldn't get UEFI db list\n");
++ } else {
++ rc = parse_efi_signature_list("UEFI:db",
++ db, dbsize, get_handler_for_db);
++ if (rc)
++ pr_err("Couldn't parse db signatures: %d\n", rc);
++ kfree(db);
++ }
++
++ mok = get_cert_list(L"MokListRT", &mok_var, &moksize);
++ if (!mok) {
++ pr_info("MODSIGN: Couldn't get UEFI MokListRT\n");
++ } else {
++ rc = parse_efi_signature_list("UEFI:MokListRT",
++ mok, moksize, get_handler_for_db);
++ if (rc)
++ pr_err("Couldn't parse MokListRT signatures: %d\n", rc);
++ kfree(mok);
++ }
++
++ dbx = get_cert_list(L"dbx", &secure_var, &dbxsize);
++ if (!dbx) {
++ pr_info("MODSIGN: Couldn't get UEFI dbx list\n");
++ } else {
++ rc = parse_efi_signature_list("UEFI:dbx",
++ dbx, dbxsize,
++ get_handler_for_dbx);
++ if (rc)
++ pr_err("Couldn't parse dbx signatures: %d\n", rc);
++ kfree(dbx);
++ }
++
++ return rc;
++}
++late_initcall(load_uefi_certs);
diff --git a/debian/patches/features/all/db-mok-keyring/0004-MODSIGN-check-the-attributes-of-db-and-mok.patch b/debian/patches/features/all/db-mok-keyring/0004-MODSIGN-check-the-attributes-of-db-and-mok.patch
new file mode 100644
index 000000000..57b6e61ff
--- /dev/null
+++ b/debian/patches/features/all/db-mok-keyring/0004-MODSIGN-check-the-attributes-of-db-and-mok.patch
@@ -0,0 +1,108 @@
+From: "Lee, Chun-Yi" <joeyli.kernel@gmail.com>
+Date: Tue, 13 Mar 2018 18:38:03 +0800
+Subject: [PATCH 4/4] MODSIGN: check the attributes of db and mok
+Origin: https://lore.kernel.org/patchwork/patch/933176/
+
+That's better for checking the attributes of db and mok variables
+before loading certificates to kernel keyring.
+
+For db and dbx, both of them are authenticated variables. Which
+means that they can only be modified by manufacturer's key. So
+the kernel should checks EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS
+attribute before we trust it.
+
+For mok-rt and mokx-rt, both of them are created by shim boot loader
+to forward the mok/mokx content to runtime. They must be runtime-volatile
+variables. So kernel should checks that the attributes map did not set
+EFI_VARIABLE_NON_VOLATILE bit before we trust it.
+
+Cc: David Howells <dhowells@redhat.com>
+Cc: Josh Boyer <jwboyer@fedoraproject.org>
+Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
+Signed-off-by: "Lee, Chun-Yi" <jlee@suse.com>
+[Rebased by Luca Boccassi]
+---
+ certs/load_uefi.c | 35 +++++++++++++++++++++++------------
+ 1 file changed, 23 insertions(+), 12 deletions(-)
+
+Index: linux/certs/load_uefi.c
+===================================================================
+--- linux.orig/certs/load_uefi.c
++++ linux/certs/load_uefi.c
+@@ -36,12 +36,14 @@ static __init bool uefi_check_ignore_db(
+ * Get a certificate list blob from the named EFI variable.
+ */
+ static __init int get_cert_list(efi_char16_t *name, efi_guid_t *guid,
+- unsigned long *size, void **cert_list)
++ unsigned long *size, void **cert_list,
++ u32 pos_attr, u32 neg_attr)
+ {
+ efi_status_t status;
+ unsigned long lsize = 4;
+ unsigned long tmpdb[4];
+ void *db;
++ u32 attr = 0;
+
+ status = efi.get_variable(name, guid, NULL, &lsize, &tmpdb);
+ if (status == EFI_NOT_FOUND) {
+@@ -61,12 +63,19 @@ static __init int get_cert_list(efi_char
+ return -ENOMEM;
+ }
+
+- status = efi.get_variable(name, guid, NULL, &lsize, db);
++ status = efi.get_variable(name, guid, &attr, &lsize, db);
+ if (status != EFI_SUCCESS) {
+ kfree(db);
+ pr_err("Error reading db var: 0x%lx\n", status);
+ return efi_status_to_err(status);
+ }
++ /* must have positive attributes and no negative attributes */
++ if ((pos_attr && !(attr & pos_attr)) ||
++ (neg_attr && (attr & neg_attr))) {
++ kfree(db);
++ pr_err("Error reading db var attributes: 0x%016x\n", attr);
++ return -1;
++ }
+
+ *size = lsize;
+ *cert_list = db;
+@@ -159,7 +168,8 @@ static int __init load_uefi_certs(void)
+ * an error if we can't get them.
+ */
+ if (!uefi_check_ignore_db()) {
+- rc = get_cert_list(L"db", &secure_var, &dbsize, &db);
++ rc = get_cert_list(L"db", &secure_var, &dbsize, &db,
++ EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS, 0);
+ if (rc < 0) {
+ pr_err("MODSIGN: Couldn't get UEFI db list\n");
+ } else if (dbsize != 0) {
+@@ -171,7 +181,8 @@ static int __init load_uefi_certs(void)
+ }
+ }
+
+- rc = get_cert_list(L"dbx", &secure_var, &dbxsize, &dbx);
++ rc = get_cert_list(L"dbx", &secure_var, &dbxsize, &dbx,
++ EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS, 0);
+ if (rc < 0) {
+ pr_info("MODSIGN: Couldn't get UEFI dbx list\n");
+ } else if (dbxsize != 0) {
+@@ -187,7 +198,8 @@ static int __init load_uefi_certs(void)
+ if (!efi_enabled(EFI_SECURE_BOOT))
+ return 0;
+
+- rc = get_cert_list(L"MokListRT", &mok_var, &moksize, &mok);
++ rc = get_cert_list(L"MokListRT", &mok_var, &moksize, &mok,
++ 0, EFI_VARIABLE_NON_VOLATILE);
+ if (rc < 0) {
+ pr_info("MODSIGN: Couldn't get UEFI MokListRT\n");
+ } else if (moksize != 0) {
+@@ -198,7 +210,8 @@ static int __init load_uefi_certs(void)
+ kfree(mok);
+ }
+
+- rc = get_cert_list(L"MokListXRT", &mok_var, &mokxsize, &mokx);
++ rc = get_cert_list(L"MokListXRT", &mok_var, &mokxsize, &mokx,
++ 0, EFI_VARIABLE_NON_VOLATILE);
+ if (rc < 0) {
+ pr_info("MODSIGN: Couldn't get UEFI MokListXRT\n");
+ } else if (mokxsize != 0) {
diff --git a/debian/patches/features/all/db-mok-keyring/0005-MODSIGN-Allow-the-db-UEFI-variable-to-be-suppressed.patch b/debian/patches/features/all/db-mok-keyring/0005-MODSIGN-Allow-the-db-UEFI-variable-to-be-suppressed.patch
new file mode 100644
index 000000000..b5e2e843c
--- /dev/null
+++ b/debian/patches/features/all/db-mok-keyring/0005-MODSIGN-Allow-the-db-UEFI-variable-to-be-suppressed.patch
@@ -0,0 +1,85 @@
+From: Josh Boyer <jwboyer@fedoraproject.org>
+Date: Fri, 5 May 2017 08:21:59 +0100
+Subject: [PATCH 5/7] MODSIGN: Allow the "db" UEFI variable to be suppressed
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/jforbes/linux.git/commit/?id=b51ca4e4d6c0c8000789de31a1184a41ac611d33
+
+If a user tells shim to not use the certs/hashes in the UEFI db variable
+for verification purposes, shim will set a UEFI variable called
+MokIgnoreDB. Have the uefi import code look for this and ignore the db
+variable if it is found.
+
+Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
+Signed-off-by: David Howells <dhowells@redhat.com>
+---
+ certs/load_uefi.c | 44 ++++++++++++++++++++++++++++++++++----------
+ 1 file changed, 34 insertions(+), 10 deletions(-)
+
+Index: linux/certs/load_uefi.c
+===================================================================
+--- linux.orig/certs/load_uefi.c
++++ linux/certs/load_uefi.c
+@@ -13,6 +13,26 @@ static __initdata efi_guid_t efi_cert_x5
+ static __initdata efi_guid_t efi_cert_sha256_guid = EFI_CERT_SHA256_GUID;
+
+ /*
++ * Look to see if a UEFI variable called MokIgnoreDB exists and return true if
++ * it does.
++ *
++ * This UEFI variable is set by the shim if a user tells the shim to not use
++ * the certs/hashes in the UEFI db variable for verification purposes. If it
++ * is set, we should ignore the db variable also and the true return indicates
++ * this.
++ */
++static __init bool uefi_check_ignore_db(void)
++{
++ efi_status_t status;
++ unsigned int db = 0;
++ unsigned long size = sizeof(db);
++ efi_guid_t guid = EFI_SHIM_LOCK_GUID;
++
++ status = efi.get_variable(L"MokIgnoreDB", &guid, NULL, &size, &db);
++ return status == EFI_SUCCESS;
++}
++
++/*
+ * Get a certificate list blob from the named EFI variable.
+ */
+ static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid,
+@@ -113,7 +133,9 @@ static __init efi_element_handler_t get_
+ }
+
+ /*
+- * Load the certs contained in the UEFI databases
++ * Load the certs contained in the UEFI databases into the secondary trusted
++ * keyring and the UEFI blacklisted X.509 cert SHA256 hashes into the blacklist
++ * keyring.
+ */
+ static int __init load_uefi_certs(void)
+ {
+@@ -129,15 +151,17 @@ static int __init load_uefi_certs(void)
+ /* Get db, MokListRT, and dbx. They might not exist, so it isn't
+ * an error if we can't get them.
+ */
+- db = get_cert_list(L"db", &secure_var, &dbsize);
+- if (!db) {
+- pr_err("MODSIGN: Couldn't get UEFI db list\n");
+- } else {
+- rc = parse_efi_signature_list("UEFI:db",
+- db, dbsize, get_handler_for_db);
+- if (rc)
+- pr_err("Couldn't parse db signatures: %d\n", rc);
+- kfree(db);
++ if (!uefi_check_ignore_db()) {
++ db = get_cert_list(L"db", &secure_var, &dbsize);
++ if (!db) {
++ pr_err("MODSIGN: Couldn't get UEFI db list\n");
++ } else {
++ rc = parse_efi_signature_list("UEFI:db",
++ db, dbsize, get_handler_for_db);
++ if (rc)
++ pr_err("Couldn't parse db signatures: %d\n", rc);
++ kfree(db);
++ }
+ }
+
+ mok = get_cert_list(L"MokListRT", &mok_var, &moksize);
diff --git a/debian/patches/features/all/db-mok-keyring/0006-Make-get_cert_list-not-complain-about-cert-lists-tha.patch b/debian/patches/features/all/db-mok-keyring/0006-Make-get_cert_list-not-complain-about-cert-lists-tha.patch
new file mode 100644
index 000000000..c348e2f04
--- /dev/null
+++ b/debian/patches/features/all/db-mok-keyring/0006-Make-get_cert_list-not-complain-about-cert-lists-tha.patch
@@ -0,0 +1,106 @@
+From: Peter Jones <pjones@redhat.com>
+Date: Mon, 2 Oct 2017 18:25:29 -0400
+Subject: [PATCH 6/7] Make get_cert_list() not complain about cert lists that
+ aren't present.
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/jforbes/linux.git/commit/?id=0f4d5c7b49b45e7cf038bb769e33451b78a6445d
+
+Signed-off-by: Peter Jones <pjones@redhat.com>
+---
+ certs/load_uefi.c | 37 ++++++++++++++++++++++---------------
+ 1 file changed, 22 insertions(+), 15 deletions(-)
+
+Index: linux/certs/load_uefi.c
+===================================================================
+--- linux.orig/certs/load_uefi.c
++++ linux/certs/load_uefi.c
+@@ -35,8 +35,8 @@ static __init bool uefi_check_ignore_db(
+ /*
+ * Get a certificate list blob from the named EFI variable.
+ */
+-static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid,
+- unsigned long *size)
++static __init int get_cert_list(efi_char16_t *name, efi_guid_t *guid,
++ unsigned long *size, void **cert_list)
+ {
+ efi_status_t status;
+ unsigned long lsize = 4;
+@@ -44,26 +44,33 @@ static __init void *get_cert_list(efi_ch
+ void *db;
+
+ status = efi.get_variable(name, guid, NULL, &lsize, &tmpdb);
++ if (status == EFI_NOT_FOUND) {
++ *size = 0;
++ *cert_list = NULL;
++ return 0;
++ }
++
+ if (status != EFI_BUFFER_TOO_SMALL) {
+ pr_err("Couldn't get size: 0x%lx\n", status);
+- return NULL;
++ return efi_status_to_err(status);
+ }
+
+ db = kmalloc(lsize, GFP_KERNEL);
+ if (!db) {
+ pr_err("Couldn't allocate memory for uefi cert list\n");
+- return NULL;
++ return -ENOMEM;
+ }
+
+ status = efi.get_variable(name, guid, NULL, &lsize, db);
+ if (status != EFI_SUCCESS) {
+ kfree(db);
+ pr_err("Error reading db var: 0x%lx\n", status);
+- return NULL;
++ return efi_status_to_err(status);
+ }
+
+ *size = lsize;
+- return db;
++ *cert_list = db;
++ return 0;
+ }
+
+ /*
+@@ -152,10 +159,10 @@ static int __init load_uefi_certs(void)
+ * an error if we can't get them.
+ */
+ if (!uefi_check_ignore_db()) {
+- db = get_cert_list(L"db", &secure_var, &dbsize);
+- if (!db) {
++ rc = get_cert_list(L"db", &secure_var, &dbsize, &db);
++ if (rc < 0) {
+ pr_err("MODSIGN: Couldn't get UEFI db list\n");
+- } else {
++ } else if (dbsize != 0) {
+ rc = parse_efi_signature_list("UEFI:db",
+ db, dbsize, get_handler_for_db);
+ if (rc)
+@@ -164,10 +171,10 @@ static int __init load_uefi_certs(void)
+ }
+ }
+
+- mok = get_cert_list(L"MokListRT", &mok_var, &moksize);
+- if (!mok) {
++ rc = get_cert_list(L"MokListRT", &mok_var, &moksize, &mok);
++ if (rc < 0) {
+ pr_info("MODSIGN: Couldn't get UEFI MokListRT\n");
+- } else {
++ } else if (moksize != 0) {
+ rc = parse_efi_signature_list("UEFI:MokListRT",
+ mok, moksize, get_handler_for_db);
+ if (rc)
+@@ -175,10 +182,10 @@ static int __init load_uefi_certs(void)
+ kfree(mok);
+ }
+
+- dbx = get_cert_list(L"dbx", &secure_var, &dbxsize);
+- if (!dbx) {
++ rc = get_cert_list(L"dbx", &secure_var, &dbxsize, &dbx);
++ if (rc < 0) {
+ pr_info("MODSIGN: Couldn't get UEFI dbx list\n");
+- } else {
++ } else if (dbxsize != 0) {
+ rc = parse_efi_signature_list("UEFI:dbx",
+ dbx, dbxsize,
+ get_handler_for_dbx);
diff --git a/debian/patches/features/all/db-mok-keyring/0007-modsign-Use-secondary-trust-keyring-for-module-signi.patch b/debian/patches/features/all/db-mok-keyring/0007-modsign-Use-secondary-trust-keyring-for-module-signi.patch
new file mode 100644
index 000000000..b831869e4
--- /dev/null
+++ b/debian/patches/features/all/db-mok-keyring/0007-modsign-Use-secondary-trust-keyring-for-module-signi.patch
@@ -0,0 +1,28 @@
+From: Ke Wu <mikewu@google.com>
+Date: Tue, 6 Nov 2018 15:21:30 -0800
+Subject: modsign: use all trusted keys to verify module signature
+Origin: https://git.kernel.org/linus/e84cd7ee630e44a2cc8ae49e85920a271b214cb3
+
+Make mod_verify_sig to use all trusted keys. This allows keys in
+secondary_trusted_keys to be used to verify PKCS#7 signature on a
+kernel module.
+
+Signed-off-by: Ke Wu <mikewu@google.com>
+Signed-off-by: Jessica Yu <jeyu@kernel.org>
+---
+ kernel/module_signing.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+Index: linux/kernel/module_signing.c
+===================================================================
+--- linux.orig/kernel/module_signing.c
++++ linux/kernel/module_signing.c
+@@ -83,6 +83,7 @@ int mod_verify_sig(const void *mod, stru
+ }
+
+ return verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len,
+- NULL, VERIFYING_MODULE_SIGNATURE,
++ VERIFY_USE_SECONDARY_KEYRING,
++ VERIFYING_MODULE_SIGNATURE,
+ NULL, NULL);
+ }
diff --git a/debian/patches/features/all/db-mok-keyring/modsign-make-shash-allocation-failure-fatal.patch b/debian/patches/features/all/db-mok-keyring/modsign-make-shash-allocation-failure-fatal.patch
new file mode 100644
index 000000000..a0aea95a2
--- /dev/null
+++ b/debian/patches/features/all/db-mok-keyring/modsign-make-shash-allocation-failure-fatal.patch
@@ -0,0 +1,30 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Sun, 05 May 2019 13:45:06 +0100
+Subject: MODSIGN: Make shash allocation failure fatal
+
+mod_is_hash_blacklisted() currently returns 0 (suceess) if
+crypto_alloc_shash() fails. This should instead be a fatal error,
+so unwrap and pass up the error code.
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+Index: linux/kernel/module_signing.c
+===================================================================
+--- linux.orig/kernel/module_signing.c
++++ linux/kernel/module_signing.c
+@@ -51,11 +51,13 @@ static int mod_is_hash_blacklisted(const
+ struct shash_desc *desc;
+ size_t digest_size, desc_size;
+ u8 *digest;
+- int ret = 0;
++ int ret;
+
+ tfm = crypto_alloc_shash("sha256", 0, 0);
+- if (IS_ERR(tfm))
++ if (IS_ERR(tfm)) {
++ ret = PTR_ERR(tfm);
+ goto error_return;
++ }
+
+ desc_size = crypto_shash_descsize(tfm) + sizeof(*desc);
+ digest_size = crypto_shash_digestsize(tfm);
diff --git a/debian/patches/features/all/drivers-media-dvb-usb-af9005-request_firmware.patch b/debian/patches/features/all/drivers-media-dvb-usb-af9005-request_firmware.patch
new file mode 100644
index 000000000..2d3b1a5da
--- /dev/null
+++ b/debian/patches/features/all/drivers-media-dvb-usb-af9005-request_firmware.patch
@@ -0,0 +1,149 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Mon, 24 Aug 2009 23:19:58 +0100
+Subject: af9005: Use request_firmware() to load register init script
+Forwarded: no
+
+Read the register init script from the Windows driver. This is sick
+but should avoid the potential copyright infringement in distributing
+a version of the script which is directly derived from the driver.
+---
+ drivers/media/dvb/dvb-usb/Kconfig | 2 +-
+ drivers/media/dvb/dvb-usb/af9005-fe.c | 66 ++++++++++++++++++++++++++------
+ 2 files changed, 54 insertions(+), 14 deletions(-)
+
+Index: linux/drivers/media/usb/dvb-usb/Kconfig
+===================================================================
+--- linux.orig/drivers/media/usb/dvb-usb/Kconfig
++++ linux/drivers/media/usb/dvb-usb/Kconfig
+@@ -246,10 +246,10 @@ config DVB_USB_OPERA1
+
+ config DVB_USB_AF9005
+ tristate "Afatech AF9005 DVB-T USB1.1 support"
+- depends on BROKEN
+ depends on DVB_USB
+ select MEDIA_TUNER_MT2060 if MEDIA_SUBDRV_AUTOSELECT
+ select MEDIA_TUNER_QT1010 if MEDIA_SUBDRV_AUTOSELECT
++ select FW_LOADER
+ help
+ Say Y here to support the Afatech AF9005 based DVB-T USB1.1 receiver
+ and the TerraTec Cinergy T USB XE (Rev.1)
+Index: linux/drivers/media/usb/dvb-usb/af9005-fe.c
+===================================================================
+--- linux.orig/drivers/media/usb/dvb-usb/af9005-fe.c
++++ linux/drivers/media/usb/dvb-usb/af9005-fe.c
+@@ -18,10 +18,26 @@
+ * see Documentation/media/dvb-drivers/dvb-usb.rst for more information
+ */
+ #include "af9005.h"
+-#include "af9005-script.h"
+ #include "mt2060.h"
+ #include "qt1010.h"
+ #include <asm/div64.h>
++#include <linux/firmware.h>
++
++/* Register initialisation script to be extracted from the Windows driver */
++
++typedef struct {
++ __le16 reg;
++ u8 pos;
++ u8 len;
++ u8 val;
++ u8 pad;
++} __packed RegDesc;
++
++#define WIN_DRV_NAME "AF05BDA.sys"
++#define WIN_DRV_VERSION "6.3.2.1"
++#define WIN_DRV_SIZE 133504
++#define WIN_DRV_SCRIPT_OFFSET 88316
++#define WIN_DRV_SCRIPT_SIZE 1110
+
+ struct af9005_fe_state {
+ struct dvb_usb_device *d;
+@@ -813,6 +829,8 @@ static int af9005_fe_init(struct dvb_fro
+ {
+ struct af9005_fe_state *state = fe->demodulator_priv;
+ struct dvb_usb_adapter *adap = fe->dvb->priv;
++ const struct firmware *fw;
++ const RegDesc *script;
+ int ret, i, scriptlen;
+ u8 temp, temp0 = 0, temp1 = 0, temp2 = 0;
+ u8 buf[2];
+@@ -965,37 +983,55 @@ static int af9005_fe_init(struct dvb_fro
+ if ((ret = af9005_write_ofdm_register(state->d, 0xaefb, 0x01)))
+ return ret;
+
+- /* load init script */
+- deb_info("load init script\n");
+- scriptlen = sizeof(script) / sizeof(RegDesc);
++ /* load and validate init script */
++ deb_info("load init script from Windows driver\n");
++ ret = request_firmware(&fw, WIN_DRV_NAME, &state->d->udev->dev);
++ if (ret)
++ return ret;
++ BUILD_BUG_ON(sizeof(RegDesc) != 6);
++ if (fw->size != WIN_DRV_SIZE ||
++ memcmp(fw->data + WIN_DRV_SCRIPT_OFFSET,
++ "\x80\xa1\x00\x08\x0a\x00", 6) ||
++ memcmp(fw->data + WIN_DRV_SCRIPT_OFFSET + WIN_DRV_SCRIPT_SIZE - 6,
++ "\x49\xa3\x00\x06\x02\x00", 6)) {
++ err("%s is invalid - should be version %s, size %u bytes\n",
++ WIN_DRV_NAME, WIN_DRV_VERSION, WIN_DRV_SIZE);
++ ret = -EINVAL;
++ goto fail_release;
++ }
++
++ script = (const RegDesc *)(fw->data + WIN_DRV_SCRIPT_OFFSET);
++ scriptlen = WIN_DRV_SCRIPT_SIZE / sizeof(RegDesc);
+ for (i = 0; i < scriptlen; i++) {
++ u16 reg = le16_to_cpu(script[i].reg);
+ if ((ret =
+- af9005_write_register_bits(state->d, script[i].reg,
++ af9005_write_register_bits(state->d, reg,
+ script[i].pos,
+ script[i].len, script[i].val)))
+- return ret;
++ goto fail_release;
+ /* save 3 bytes of original fcw */
+- if (script[i].reg == 0xae18)
++ if (reg == 0xae18)
+ temp2 = script[i].val;
+- if (script[i].reg == 0xae19)
++ if (reg == 0xae19)
+ temp1 = script[i].val;
+- if (script[i].reg == 0xae1a)
++ if (reg == 0xae1a)
+ temp0 = script[i].val;
+
+ /* save original unplug threshold */
+- if (script[i].reg == xd_p_reg_unplug_th)
++ if (reg == xd_p_reg_unplug_th)
+ state->original_if_unplug_th = script[i].val;
+- if (script[i].reg == xd_p_reg_unplug_rf_gain_th)
++ if (reg == xd_p_reg_unplug_rf_gain_th)
+ state->original_rf_unplug_th = script[i].val;
+- if (script[i].reg == xd_p_reg_unplug_dtop_if_gain_th)
++ if (reg == xd_p_reg_unplug_dtop_if_gain_th)
+ state->original_dtop_if_unplug_th = script[i].val;
+- if (script[i].reg == xd_p_reg_unplug_dtop_rf_gain_th)
++ if (reg == xd_p_reg_unplug_dtop_rf_gain_th)
+ state->original_dtop_rf_unplug_th = script[i].val;
+
+ }
+ state->original_fcw =
+ ((u32) temp2 << 16) + ((u32) temp1 << 8) + (u32) temp0;
+
++ release_firmware(fw);
+
+ /* save original TOPs */
+ deb_info("save original TOPs\n");
+@@ -1075,6 +1111,10 @@ static int af9005_fe_init(struct dvb_fro
+
+ deb_info("profit!\n");
+ return 0;
++
++fail_release:
++ release_firmware(fw);
++ return ret;
+ }
+
+ static int af9005_fe_sleep(struct dvb_frontend *fe)
diff --git a/debian/patches/features/all/e1000e-Add-support-for-Comet-Lake.patch b/debian/patches/features/all/e1000e-Add-support-for-Comet-Lake.patch
new file mode 100644
index 000000000..2cb42334d
--- /dev/null
+++ b/debian/patches/features/all/e1000e-Add-support-for-Comet-Lake.patch
@@ -0,0 +1,54 @@
+From: Sasha Neftin <sasha.neftin@intel.com>
+Date: Thu, 10 Oct 2019 13:15:39 +0300
+Subject: e1000e: Add support for Comet Lake
+Origin: https://git.kernel.org/linus/914ee9c436cbe90c8ca8a46ec8433cb614a2ada5
+
+Add devices ID's for the next LOM generations that will be
+available on the next Intel Client platform (Comet Lake)
+This patch provides the initial support for these devices
+
+Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
+Tested-by: Aaron Brown <aaron.f.brown@intel.com>
+Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
+---
+ drivers/net/ethernet/intel/e1000e/hw.h | 6 ++++++
+ drivers/net/ethernet/intel/e1000e/netdev.c | 6 ++++++
+ 2 files changed, 12 insertions(+)
+
+diff --git a/drivers/net/ethernet/intel/e1000e/hw.h b/drivers/net/ethernet/intel/e1000e/hw.h
+index eff75bd8a8f0..11fdc27faa82 100644
+--- a/drivers/net/ethernet/intel/e1000e/hw.h
++++ b/drivers/net/ethernet/intel/e1000e/hw.h
+@@ -86,6 +86,12 @@ struct e1000_hw;
+ #define E1000_DEV_ID_PCH_ICP_I219_V8 0x15E0
+ #define E1000_DEV_ID_PCH_ICP_I219_LM9 0x15E1
+ #define E1000_DEV_ID_PCH_ICP_I219_V9 0x15E2
++#define E1000_DEV_ID_PCH_CMP_I219_LM10 0x0D4E
++#define E1000_DEV_ID_PCH_CMP_I219_V10 0x0D4F
++#define E1000_DEV_ID_PCH_CMP_I219_LM11 0x0D4C
++#define E1000_DEV_ID_PCH_CMP_I219_V11 0x0D4D
++#define E1000_DEV_ID_PCH_CMP_I219_LM12 0x0D53
++#define E1000_DEV_ID_PCH_CMP_I219_V12 0x0D55
+
+ #define E1000_REVISION_4 4
+
+diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
+index 42f57ab8fb8e..731e1b3e103a 100644
+--- a/drivers/net/ethernet/intel/e1000e/netdev.c
++++ b/drivers/net/ethernet/intel/e1000e/netdev.c
+@@ -7749,6 +7749,12 @@ static const struct pci_device_id e1000_pci_tbl[] = {
+ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ICP_I219_V8), board_pch_cnp },
+ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ICP_I219_LM9), board_pch_cnp },
+ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ICP_I219_V9), board_pch_cnp },
++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_LM10), board_pch_cnp },
++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_V10), board_pch_cnp },
++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_LM11), board_pch_cnp },
++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_V11), board_pch_cnp },
++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_LM12), board_pch_spt },
++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_V12), board_pch_spt },
+
+ { 0, 0, 0, 0, 0, 0, 0 } /* terminate list */
+ };
+--
+2.27.0
+
diff --git a/debian/patches/features/all/ena/0001-net-ethernet-remove-redundant-include.patch b/debian/patches/features/all/ena/0001-net-ethernet-remove-redundant-include.patch
new file mode 100644
index 000000000..0c681dd2a
--- /dev/null
+++ b/debian/patches/features/all/ena/0001-net-ethernet-remove-redundant-include.patch
@@ -0,0 +1,34 @@
+From: zhong jiang <zhongjiang@huawei.com>
+Date: Wed, 28 Nov 2018 23:04:48 -0800
+Subject: [PATCH 01/19] net: ethernet: remove redundant include
+Origin: https://git.kernel.org/linus/e641e99f261f5203a911a9e0db54a214460d2cc4
+
+Manual cherry-pick from e641e99f261f5203a911a9e0db54a214460d2cc4:
+
+ module.h already contained moduleparam.h, so it is safe to remove
+ the redundant include.
+
+ The issue is detected with the help of Coccinelle.
+
+ Signed-off-by: zhong jiang <zhongjiang@huawei.com>
+ Signed-off-by: David S. Miller <davem@davemloft.net>
+
+limited only to the amazon/ena driver
+
+Signed-off-by: Noah Meyerhans <noahm@debian.org>
+---
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -39,7 +39,6 @@
+ #include <linux/if_vlan.h>
+ #include <linux/kernel.h>
+ #include <linux/module.h>
+-#include <linux/moduleparam.h>
+ #include <linux/numa.h>
+ #include <linux/pci.h>
+ #include <linux/utsname.h>
diff --git a/debian/patches/features/all/ena/0002-net-ena-minor-performance-improvement.patch b/debian/patches/features/all/ena/0002-net-ena-minor-performance-improvement.patch
new file mode 100644
index 000000000..f4f95e9fa
--- /dev/null
+++ b/debian/patches/features/all/ena/0002-net-ena-minor-performance-improvement.patch
@@ -0,0 +1,139 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Thu, 11 Oct 2018 11:26:16 +0300
+Subject: [PATCH 02/19] net: ena: minor performance improvement
+Origin: https://git.kernel.org/linus/0e575f8542d1f4d74df30b5a9ba419c5373d01a1
+
+Reduce fastpath overhead by making ena_com_tx_comp_req_id_get() inline.
+Also move it to ena_eth_com.h file with its dependency function
+ena_com_cq_inc_head().
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_eth_com.c | 43 -----------------
+ drivers/net/ethernet/amazon/ena/ena_eth_com.h | 46 ++++++++++++++++++-
+ 2 files changed, 44 insertions(+), 45 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_eth_com.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_eth_com.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_eth_com.c
+@@ -59,15 +59,6 @@ static inline struct ena_eth_io_rx_cdesc
+ return cdesc;
+ }
+
+-static inline void ena_com_cq_inc_head(struct ena_com_io_cq *io_cq)
+-{
+- io_cq->head++;
+-
+- /* Switch phase bit in case of wrap around */
+- if (unlikely((io_cq->head & (io_cq->q_depth - 1)) == 0))
+- io_cq->phase ^= 1;
+-}
+-
+ static inline void *get_sq_desc(struct ena_com_io_sq *io_sq)
+ {
+ u16 tail_masked;
+@@ -476,40 +467,6 @@ int ena_com_add_single_rx_desc(struct en
+
+ return 0;
+ }
+-
+-int ena_com_tx_comp_req_id_get(struct ena_com_io_cq *io_cq, u16 *req_id)
+-{
+- u8 expected_phase, cdesc_phase;
+- struct ena_eth_io_tx_cdesc *cdesc;
+- u16 masked_head;
+-
+- masked_head = io_cq->head & (io_cq->q_depth - 1);
+- expected_phase = io_cq->phase;
+-
+- cdesc = (struct ena_eth_io_tx_cdesc *)
+- ((uintptr_t)io_cq->cdesc_addr.virt_addr +
+- (masked_head * io_cq->cdesc_entry_size_in_bytes));
+-
+- /* When the current completion descriptor phase isn't the same as the
+- * expected, it mean that the device still didn't update
+- * this completion.
+- */
+- cdesc_phase = READ_ONCE(cdesc->flags) & ENA_ETH_IO_TX_CDESC_PHASE_MASK;
+- if (cdesc_phase != expected_phase)
+- return -EAGAIN;
+-
+- dma_rmb();
+- if (unlikely(cdesc->req_id >= io_cq->q_depth)) {
+- pr_err("Invalid req id %d\n", cdesc->req_id);
+- return -EINVAL;
+- }
+-
+- ena_com_cq_inc_head(io_cq);
+-
+- *req_id = READ_ONCE(cdesc->req_id);
+-
+- return 0;
+-}
+
+ bool ena_com_cq_empty(struct ena_com_io_cq *io_cq)
+ {
+Index: linux/drivers/net/ethernet/amazon/ena/ena_eth_com.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_eth_com.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_eth_com.h
+@@ -86,8 +86,6 @@ int ena_com_add_single_rx_desc(struct en
+ struct ena_com_buf *ena_buf,
+ u16 req_id);
+
+-int ena_com_tx_comp_req_id_get(struct ena_com_io_cq *io_cq, u16 *req_id);
+-
+ bool ena_com_cq_empty(struct ena_com_io_cq *io_cq);
+
+ static inline void ena_com_unmask_intr(struct ena_com_io_cq *io_cq,
+@@ -159,4 +157,48 @@ static inline void ena_com_comp_ack(stru
+ io_sq->next_to_comp += elem;
+ }
+
++static inline void ena_com_cq_inc_head(struct ena_com_io_cq *io_cq)
++{
++ io_cq->head++;
++
++ /* Switch phase bit in case of wrap around */
++ if (unlikely((io_cq->head & (io_cq->q_depth - 1)) == 0))
++ io_cq->phase ^= 1;
++}
++
++static inline int ena_com_tx_comp_req_id_get(struct ena_com_io_cq *io_cq,
++ u16 *req_id)
++{
++ u8 expected_phase, cdesc_phase;
++ struct ena_eth_io_tx_cdesc *cdesc;
++ u16 masked_head;
++
++ masked_head = io_cq->head & (io_cq->q_depth - 1);
++ expected_phase = io_cq->phase;
++
++ cdesc = (struct ena_eth_io_tx_cdesc *)
++ ((uintptr_t)io_cq->cdesc_addr.virt_addr +
++ (masked_head * io_cq->cdesc_entry_size_in_bytes));
++
++ /* When the current completion descriptor phase isn't the same as the
++ * expected, it mean that the device still didn't update
++ * this completion.
++ */
++ cdesc_phase = READ_ONCE(cdesc->flags) & ENA_ETH_IO_TX_CDESC_PHASE_MASK;
++ if (cdesc_phase != expected_phase)
++ return -EAGAIN;
++
++ dma_rmb();
++
++ *req_id = READ_ONCE(cdesc->req_id);
++ if (unlikely(*req_id >= io_cq->q_depth)) {
++ pr_err("Invalid req id %d\n", cdesc->req_id);
++ return -EINVAL;
++ }
++
++ ena_com_cq_inc_head(io_cq);
++
++ return 0;
++}
++
+ #endif /* ENA_ETH_COM_H_ */
diff --git a/debian/patches/features/all/ena/0003-net-ena-complete-host-info-to-match-latest-ENA-spec.patch b/debian/patches/features/all/ena/0003-net-ena-complete-host-info-to-match-latest-ENA-spec.patch
new file mode 100644
index 000000000..a7e02fd9e
--- /dev/null
+++ b/debian/patches/features/all/ena/0003-net-ena-complete-host-info-to-match-latest-ENA-spec.patch
@@ -0,0 +1,178 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Thu, 11 Oct 2018 11:26:17 +0300
+Subject: [PATCH 03/19] net: ena: complete host info to match latest ENA spec
+Origin: https://git.kernel.org/linus/095f2f1facba0c78f23750dba65c78cef722c1ea
+
+Add new fields and definitions to host info and fill them
+according to the latest ENA spec version.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ .../net/ethernet/amazon/ena/ena_admin_defs.h | 31 ++++++++++++++++++-
+ drivers/net/ethernet/amazon/ena/ena_com.c | 12 +++----
+ .../net/ethernet/amazon/ena/ena_common_defs.h | 4 +--
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 10 ++++--
+ 4 files changed, 43 insertions(+), 14 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
+@@ -63,6 +63,8 @@ enum ena_admin_aq_completion_status {
+ ENA_ADMIN_ILLEGAL_PARAMETER = 5,
+
+ ENA_ADMIN_UNKNOWN_ERROR = 6,
++
++ ENA_ADMIN_RESOURCE_BUSY = 7,
+ };
+
+ enum ena_admin_aq_feature_id {
+@@ -702,6 +704,10 @@ enum ena_admin_os_type {
+ ENA_ADMIN_OS_FREEBSD = 4,
+
+ ENA_ADMIN_OS_IPXE = 5,
++
++ ENA_ADMIN_OS_ESXI = 6,
++
++ ENA_ADMIN_OS_GROUPS_NUM = 6,
+ };
+
+ struct ena_admin_host_info {
+@@ -723,11 +729,27 @@ struct ena_admin_host_info {
+ /* 7:0 : major
+ * 15:8 : minor
+ * 23:16 : sub_minor
++ * 31:24 : module_type
+ */
+ u32 driver_version;
+
+ /* features bitmap */
+- u32 supported_network_features[4];
++ u32 supported_network_features[2];
++
++ /* ENA spec version of driver */
++ u16 ena_spec_version;
++
++ /* ENA device's Bus, Device and Function
++ * 2:0 : function
++ * 7:3 : device
++ * 15:8 : bus
++ */
++ u16 bdf;
++
++ /* Number of CPUs */
++ u16 num_cpus;
++
++ u16 reserved;
+ };
+
+ struct ena_admin_rss_ind_table_entry {
+@@ -1008,6 +1030,13 @@ struct ena_admin_ena_mmio_req_read_less_
+ #define ENA_ADMIN_HOST_INFO_MINOR_MASK GENMASK(15, 8)
+ #define ENA_ADMIN_HOST_INFO_SUB_MINOR_SHIFT 16
+ #define ENA_ADMIN_HOST_INFO_SUB_MINOR_MASK GENMASK(23, 16)
++#define ENA_ADMIN_HOST_INFO_MODULE_TYPE_SHIFT 24
++#define ENA_ADMIN_HOST_INFO_MODULE_TYPE_MASK GENMASK(31, 24)
++#define ENA_ADMIN_HOST_INFO_FUNCTION_MASK GENMASK(2, 0)
++#define ENA_ADMIN_HOST_INFO_DEVICE_SHIFT 3
++#define ENA_ADMIN_HOST_INFO_DEVICE_MASK GENMASK(7, 3)
++#define ENA_ADMIN_HOST_INFO_BUS_SHIFT 8
++#define ENA_ADMIN_HOST_INFO_BUS_MASK GENMASK(15, 8)
+
+ /* aenq_common_desc */
+ #define ENA_ADMIN_AENQ_COMMON_DESC_PHASE_MASK BIT(0)
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.c
+@@ -41,9 +41,6 @@
+ #define ENA_ASYNC_QUEUE_DEPTH 16
+ #define ENA_ADMIN_QUEUE_DEPTH 32
+
+-#define MIN_ENA_VER (((ENA_COMMON_SPEC_VERSION_MAJOR) << \
+- ENA_REGS_VERSION_MAJOR_VERSION_SHIFT) \
+- | (ENA_COMMON_SPEC_VERSION_MINOR))
+
+ #define ENA_CTRL_MAJOR 0
+ #define ENA_CTRL_MINOR 0
+@@ -1400,11 +1397,6 @@ int ena_com_validate_version(struct ena_
+ ENA_REGS_VERSION_MAJOR_VERSION_SHIFT,
+ ver & ENA_REGS_VERSION_MINOR_VERSION_MASK);
+
+- if (ver < MIN_ENA_VER) {
+- pr_err("ENA version is lower than the minimal version the driver supports\n");
+- return -1;
+- }
+-
+ pr_info("ena controller version: %d.%d.%d implementation version %d\n",
+ (ctrl_ver & ENA_REGS_CONTROLLER_VERSION_MAJOR_VERSION_MASK) >>
+ ENA_REGS_CONTROLLER_VERSION_MAJOR_VERSION_SHIFT,
+@@ -2441,6 +2433,10 @@ int ena_com_allocate_host_info(struct en
+ if (unlikely(!host_attr->host_info))
+ return -ENOMEM;
+
++ host_attr->host_info->ena_spec_version =
++ ((ENA_COMMON_SPEC_VERSION_MAJOR << ENA_REGS_VERSION_MAJOR_VERSION_SHIFT) |
++ (ENA_COMMON_SPEC_VERSION_MINOR));
++
+ return 0;
+ }
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_common_defs.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_common_defs.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_common_defs.h
+@@ -32,8 +32,8 @@
+ #ifndef _ENA_COMMON_H_
+ #define _ENA_COMMON_H_
+
+-#define ENA_COMMON_SPEC_VERSION_MAJOR 0 /* */
+-#define ENA_COMMON_SPEC_VERSION_MINOR 10 /* */
++#define ENA_COMMON_SPEC_VERSION_MAJOR 2
++#define ENA_COMMON_SPEC_VERSION_MINOR 0
+
+ /* ENA operates with 48-bit memory addresses. ena_mem_addr_t */
+ struct ena_common_mem_addr {
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -2206,7 +2206,8 @@ static u16 ena_select_queue(struct net_d
+ return qid;
+ }
+
+-static void ena_config_host_info(struct ena_com_dev *ena_dev)
++static void ena_config_host_info(struct ena_com_dev *ena_dev,
++ struct pci_dev *pdev)
+ {
+ struct ena_admin_host_info *host_info;
+ int rc;
+@@ -2220,6 +2221,7 @@ static void ena_config_host_info(struct
+
+ host_info = ena_dev->host_attr.host_info;
+
++ host_info->bdf = (pdev->bus->number << 8) | pdev->devfn;
+ host_info->os_type = ENA_ADMIN_OS_LINUX;
+ host_info->kernel_ver = LINUX_VERSION_CODE;
+ strlcpy(host_info->kernel_ver_str, utsname()->version,
+@@ -2230,7 +2232,9 @@ static void ena_config_host_info(struct
+ host_info->driver_version =
+ (DRV_MODULE_VER_MAJOR) |
+ (DRV_MODULE_VER_MINOR << ENA_ADMIN_HOST_INFO_MINOR_SHIFT) |
+- (DRV_MODULE_VER_SUBMINOR << ENA_ADMIN_HOST_INFO_SUB_MINOR_SHIFT);
++ (DRV_MODULE_VER_SUBMINOR << ENA_ADMIN_HOST_INFO_SUB_MINOR_SHIFT) |
++ ("K"[0] << ENA_ADMIN_HOST_INFO_MODULE_TYPE_SHIFT);
++ host_info->num_cpus = num_online_cpus();
+
+ rc = ena_com_set_host_attributes(ena_dev);
+ if (rc) {
+@@ -2454,7 +2458,7 @@ static int ena_device_init(struct ena_co
+ */
+ ena_com_set_admin_polling_mode(ena_dev, true);
+
+- ena_config_host_info(ena_dev);
++ ena_config_host_info(ena_dev, pdev);
+
+ /* Get Device Attributes*/
+ rc = ena_com_get_dev_attr_feat(ena_dev, get_feat_ctx);
diff --git a/debian/patches/features/all/ena/0004-net-ena-introduce-Low-Latency-Queues-data-structures.patch b/debian/patches/features/all/ena/0004-net-ena-introduce-Low-Latency-Queues-data-structures.patch
new file mode 100644
index 000000000..51e655bab
--- /dev/null
+++ b/debian/patches/features/all/ena/0004-net-ena-introduce-Low-Latency-Queues-data-structures.patch
@@ -0,0 +1,271 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Thu, 11 Oct 2018 11:26:18 +0300
+Subject: [PATCH 04/19] net: ena: introduce Low Latency Queues data structures
+ according to ENA spec
+Origin: https://git.kernel.org/linus/a7982b8ec947052df6d4467b3a81571f02f528e0
+
+Low Latency Queues(LLQ) allow usage of device's memory for descriptors
+and headers. Such queues decrease processing time since data is already
+located on the device when driver rings the doorbell.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ .../net/ethernet/amazon/ena/ena_admin_defs.h | 90 ++++++++++++++++++-
+ drivers/net/ethernet/amazon/ena/ena_com.h | 38 ++++++++
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 6 +-
+ 3 files changed, 128 insertions(+), 6 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
+@@ -74,6 +74,8 @@ enum ena_admin_aq_feature_id {
+
+ ENA_ADMIN_HW_HINTS = 3,
+
++ ENA_ADMIN_LLQ = 4,
++
+ ENA_ADMIN_RSS_HASH_FUNCTION = 10,
+
+ ENA_ADMIN_STATELESS_OFFLOAD_CONFIG = 11,
+@@ -485,8 +487,85 @@ struct ena_admin_device_attr_feature_des
+ u32 max_mtu;
+ };
+
++enum ena_admin_llq_header_location {
++ /* header is in descriptor list */
++ ENA_ADMIN_INLINE_HEADER = 1,
++ /* header in a separate ring, implies 16B descriptor list entry */
++ ENA_ADMIN_HEADER_RING = 2,
++};
++
++enum ena_admin_llq_ring_entry_size {
++ ENA_ADMIN_LIST_ENTRY_SIZE_128B = 1,
++ ENA_ADMIN_LIST_ENTRY_SIZE_192B = 2,
++ ENA_ADMIN_LIST_ENTRY_SIZE_256B = 4,
++};
++
++enum ena_admin_llq_num_descs_before_header {
++ ENA_ADMIN_LLQ_NUM_DESCS_BEFORE_HEADER_0 = 0,
++ ENA_ADMIN_LLQ_NUM_DESCS_BEFORE_HEADER_1 = 1,
++ ENA_ADMIN_LLQ_NUM_DESCS_BEFORE_HEADER_2 = 2,
++ ENA_ADMIN_LLQ_NUM_DESCS_BEFORE_HEADER_4 = 4,
++ ENA_ADMIN_LLQ_NUM_DESCS_BEFORE_HEADER_8 = 8,
++};
++
++/* packet descriptor list entry always starts with one or more descriptors,
++ * followed by a header. The rest of the descriptors are located in the
++ * beginning of the subsequent entry. Stride refers to how the rest of the
++ * descriptors are placed. This field is relevant only for inline header
++ * mode
++ */
++enum ena_admin_llq_stride_ctrl {
++ ENA_ADMIN_SINGLE_DESC_PER_ENTRY = 1,
++ ENA_ADMIN_MULTIPLE_DESCS_PER_ENTRY = 2,
++};
++
++struct ena_admin_feature_llq_desc {
++ u32 max_llq_num;
++
++ u32 max_llq_depth;
++
++ /* specify the header locations the device supports. bitfield of
++ * enum ena_admin_llq_header_location.
++ */
++ u16 header_location_ctrl_supported;
++
++ /* the header location the driver selected to use. */
++ u16 header_location_ctrl_enabled;
++
++ /* if inline header is specified - this is the size of descriptor
++ * list entry. If header in a separate ring is specified - this is
++ * the size of header ring entry. bitfield of enum
++ * ena_admin_llq_ring_entry_size. specify the entry sizes the device
++ * supports
++ */
++ u16 entry_size_ctrl_supported;
++
++ /* the entry size the driver selected to use. */
++ u16 entry_size_ctrl_enabled;
++
++ /* valid only if inline header is specified. First entry associated
++ * with the packet includes descriptors and header. Rest of the
++ * entries occupied by descriptors. This parameter defines the max
++ * number of descriptors precedding the header in the first entry.
++ * The field is bitfield of enum
++ * ena_admin_llq_num_descs_before_header and specify the values the
++ * device supports
++ */
++ u16 desc_num_before_header_supported;
++
++ /* the desire field the driver selected to use */
++ u16 desc_num_before_header_enabled;
++
++ /* valid only if inline was chosen. bitfield of enum
++ * ena_admin_llq_stride_ctrl
++ */
++ u16 descriptors_stride_ctrl_supported;
++
++ /* the stride control the driver selected to use */
++ u16 descriptors_stride_ctrl_enabled;
++};
++
+ struct ena_admin_queue_feature_desc {
+- /* including LLQs */
+ u32 max_sq_num;
+
+ u32 max_sq_depth;
+@@ -495,9 +574,9 @@ struct ena_admin_queue_feature_desc {
+
+ u32 max_cq_depth;
+
+- u32 max_llq_num;
++ u32 max_legacy_llq_num;
+
+- u32 max_llq_depth;
++ u32 max_legacy_llq_depth;
+
+ u32 max_header_size;
+
+@@ -822,6 +901,8 @@ struct ena_admin_get_feat_resp {
+
+ struct ena_admin_device_attr_feature_desc dev_attr;
+
++ struct ena_admin_feature_llq_desc llq;
++
+ struct ena_admin_queue_feature_desc max_queue;
+
+ struct ena_admin_feature_aenq_desc aenq;
+@@ -869,6 +950,9 @@ struct ena_admin_set_feat_cmd {
+
+ /* rss indirection table */
+ struct ena_admin_feature_rss_ind_table ind_table;
++
++ /* LLQ configuration */
++ struct ena_admin_feature_llq_desc llq;
+ } u;
+ };
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.h
+@@ -108,6 +108,14 @@ enum ena_intr_moder_level {
+ ENA_INTR_MAX_NUM_OF_LEVELS,
+ };
+
++struct ena_llq_configurations {
++ enum ena_admin_llq_header_location llq_header_location;
++ enum ena_admin_llq_ring_entry_size llq_ring_entry_size;
++ enum ena_admin_llq_stride_ctrl llq_stride_ctrl;
++ enum ena_admin_llq_num_descs_before_header llq_num_decs_before_header;
++ u16 llq_ring_entry_size_value;
++};
++
+ struct ena_intr_moder_entry {
+ unsigned int intr_moder_interval;
+ unsigned int pkts_per_interval;
+@@ -142,6 +150,15 @@ struct ena_com_tx_meta {
+ u16 l4_hdr_len; /* In words */
+ };
+
++struct ena_com_llq_info {
++ u16 header_location_ctrl;
++ u16 desc_stride_ctrl;
++ u16 desc_list_entry_size_ctrl;
++ u16 desc_list_entry_size;
++ u16 descs_num_before_header;
++ u16 descs_per_entry;
++};
++
+ struct ena_com_io_cq {
+ struct ena_com_io_desc_addr cdesc_addr;
+
+@@ -179,6 +196,20 @@ struct ena_com_io_cq {
+
+ } ____cacheline_aligned;
+
++struct ena_com_io_bounce_buffer_control {
++ u8 *base_buffer;
++ u16 next_to_use;
++ u16 buffer_size;
++ u16 buffers_num; /* Must be a power of 2 */
++};
++
++/* This struct is to keep tracking the current location of the next llq entry */
++struct ena_com_llq_pkt_ctrl {
++ u8 *curr_bounce_buf;
++ u16 idx;
++ u16 descs_left_in_line;
++};
++
+ struct ena_com_io_sq {
+ struct ena_com_io_desc_addr desc_addr;
+
+@@ -190,6 +221,9 @@ struct ena_com_io_sq {
+
+ u32 msix_vector;
+ struct ena_com_tx_meta cached_tx_meta;
++ struct ena_com_llq_info llq_info;
++ struct ena_com_llq_pkt_ctrl llq_buf_ctrl;
++ struct ena_com_io_bounce_buffer_control bounce_buf_ctrl;
+
+ u16 q_depth;
+ u16 qid;
+@@ -197,6 +231,7 @@ struct ena_com_io_sq {
+ u16 idx;
+ u16 tail;
+ u16 next_to_comp;
++ u16 llq_last_copy_tail;
+ u32 tx_max_header_size;
+ u8 phase;
+ u8 desc_entry_size;
+@@ -334,6 +369,8 @@ struct ena_com_dev {
+ u16 intr_delay_resolution;
+ u32 intr_moder_tx_interval;
+ struct ena_intr_moder_entry *intr_moder_tbl;
++
++ struct ena_com_llq_info llq_info;
+ };
+
+ struct ena_com_dev_get_features_ctx {
+@@ -342,6 +379,7 @@ struct ena_com_dev_get_features_ctx {
+ struct ena_admin_feature_aenq_desc aenq;
+ struct ena_admin_feature_offload_desc offload;
+ struct ena_admin_ena_hw_hints hw_hints;
++ struct ena_admin_feature_llq_desc llq;
+ };
+
+ struct ena_com_create_io_ctx {
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -2959,7 +2959,7 @@ static int ena_calc_io_queue_num(struct
+
+ /* In case of LLQ use the llq number in the get feature cmd */
+ if (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV) {
+- io_sq_num = get_feat_ctx->max_queues.max_llq_num;
++ io_sq_num = get_feat_ctx->max_queues.max_legacy_llq_num;
+
+ if (io_sq_num == 0) {
+ dev_err(&pdev->dev,
+@@ -2995,7 +2995,7 @@ static void ena_set_push_mode(struct pci
+ has_mem_bar = pci_select_bars(pdev, IORESOURCE_MEM) & BIT(ENA_MEM_BAR);
+
+ /* Enable push mode if device supports LLQ */
+- if (has_mem_bar && (get_feat_ctx->max_queues.max_llq_num > 0))
++ if (has_mem_bar && get_feat_ctx->max_queues.max_legacy_llq_num > 0)
+ ena_dev->tx_mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_DEV;
+ else
+ ena_dev->tx_mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_HOST;
+@@ -3131,7 +3131,7 @@ static int ena_calc_queue_size(struct pc
+
+ if (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV)
+ queue_size = min_t(u32, queue_size,
+- get_feat_ctx->max_queues.max_llq_depth);
++ get_feat_ctx->max_queues.max_legacy_llq_depth);
+
+ queue_size = rounddown_pow_of_two(queue_size);
+
diff --git a/debian/patches/features/all/ena/0005-net-ena-add-functions-for-handling-Low-Latency-Queue.patch b/debian/patches/features/all/ena/0005-net-ena-add-functions-for-handling-Low-Latency-Queue.patch
new file mode 100644
index 000000000..375541b10
--- /dev/null
+++ b/debian/patches/features/all/ena/0005-net-ena-add-functions-for-handling-Low-Latency-Queue.patch
@@ -0,0 +1,832 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Thu, 11 Oct 2018 11:26:19 +0300
+Subject: [PATCH 05/19] net: ena: add functions for handling Low Latency Queues
+ in ena_com
+Origin: https://git.kernel.org/linus/689b2bdaaa1480ad2c14bdc4c6eaf38284549022
+
+This patch introduces APIs for detection, initialization, configuration
+and actual usage of low latency queues(LLQ). It extends transmit API with
+creation of LLQ descriptors in device memory (which include host buffers
+descriptors as well as packet header)
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_com.c | 249 +++++++++++++++++-
+ drivers/net/ethernet/amazon/ena/ena_com.h | 28 ++
+ drivers/net/ethernet/amazon/ena/ena_eth_com.c | 231 ++++++++++++----
+ drivers/net/ethernet/amazon/ena/ena_eth_com.h | 25 +-
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 21 +-
+ 5 files changed, 474 insertions(+), 80 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.c
+@@ -58,6 +58,8 @@
+
+ #define ENA_MMIO_READ_TIMEOUT 0xFFFFFFFF
+
++#define ENA_COM_BOUNCE_BUFFER_CNTRL_CNT 4
++
+ #define ENA_REGS_ADMIN_INTR_MASK 1
+
+ #define ENA_POLL_MS 5
+@@ -352,21 +354,48 @@ static int ena_com_init_io_sq(struct ena
+ &io_sq->desc_addr.phys_addr,
+ GFP_KERNEL);
+ }
+- } else {
++
++ if (!io_sq->desc_addr.virt_addr) {
++ pr_err("memory allocation failed");
++ return -ENOMEM;
++ }
++ }
++
++ if (io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV) {
++ /* Allocate bounce buffers */
++ io_sq->bounce_buf_ctrl.buffer_size =
++ ena_dev->llq_info.desc_list_entry_size;
++ io_sq->bounce_buf_ctrl.buffers_num =
++ ENA_COM_BOUNCE_BUFFER_CNTRL_CNT;
++ io_sq->bounce_buf_ctrl.next_to_use = 0;
++
++ size = io_sq->bounce_buf_ctrl.buffer_size *
++ io_sq->bounce_buf_ctrl.buffers_num;
++
+ dev_node = dev_to_node(ena_dev->dmadev);
+ set_dev_node(ena_dev->dmadev, ctx->numa_node);
+- io_sq->desc_addr.virt_addr =
++ io_sq->bounce_buf_ctrl.base_buffer =
+ devm_kzalloc(ena_dev->dmadev, size, GFP_KERNEL);
+ set_dev_node(ena_dev->dmadev, dev_node);
+- if (!io_sq->desc_addr.virt_addr) {
+- io_sq->desc_addr.virt_addr =
++ if (!io_sq->bounce_buf_ctrl.base_buffer)
++ io_sq->bounce_buf_ctrl.base_buffer =
+ devm_kzalloc(ena_dev->dmadev, size, GFP_KERNEL);
++
++ if (!io_sq->bounce_buf_ctrl.base_buffer) {
++ pr_err("bounce buffer memory allocation failed");
++ return -ENOMEM;
+ }
+- }
+
+- if (!io_sq->desc_addr.virt_addr) {
+- pr_err("memory allocation failed");
+- return -ENOMEM;
++ memcpy(&io_sq->llq_info, &ena_dev->llq_info,
++ sizeof(io_sq->llq_info));
++
++ /* Initiate the first bounce buffer */
++ io_sq->llq_buf_ctrl.curr_bounce_buf =
++ ena_com_get_next_bounce_buffer(&io_sq->bounce_buf_ctrl);
++ memset(io_sq->llq_buf_ctrl.curr_bounce_buf,
++ 0x0, io_sq->llq_info.desc_list_entry_size);
++ io_sq->llq_buf_ctrl.descs_left_in_line =
++ io_sq->llq_info.descs_num_before_header;
+ }
+
+ io_sq->tail = 0;
+@@ -554,6 +583,156 @@ err:
+ return ret;
+ }
+
++/**
++ * Set the LLQ configurations of the firmware
++ *
++ * The driver provides only the enabled feature values to the device,
++ * which in turn, checks if they are supported.
++ */
++static int ena_com_set_llq(struct ena_com_dev *ena_dev)
++{
++ struct ena_com_admin_queue *admin_queue;
++ struct ena_admin_set_feat_cmd cmd;
++ struct ena_admin_set_feat_resp resp;
++ struct ena_com_llq_info *llq_info = &ena_dev->llq_info;
++ int ret;
++
++ memset(&cmd, 0x0, sizeof(cmd));
++ admin_queue = &ena_dev->admin_queue;
++
++ cmd.aq_common_descriptor.opcode = ENA_ADMIN_SET_FEATURE;
++ cmd.feat_common.feature_id = ENA_ADMIN_LLQ;
++
++ cmd.u.llq.header_location_ctrl_enabled = llq_info->header_location_ctrl;
++ cmd.u.llq.entry_size_ctrl_enabled = llq_info->desc_list_entry_size_ctrl;
++ cmd.u.llq.desc_num_before_header_enabled = llq_info->descs_num_before_header;
++ cmd.u.llq.descriptors_stride_ctrl_enabled = llq_info->desc_stride_ctrl;
++
++ ret = ena_com_execute_admin_command(admin_queue,
++ (struct ena_admin_aq_entry *)&cmd,
++ sizeof(cmd),
++ (struct ena_admin_acq_entry *)&resp,
++ sizeof(resp));
++
++ if (unlikely(ret))
++ pr_err("Failed to set LLQ configurations: %d\n", ret);
++
++ return ret;
++}
++
++static int ena_com_config_llq_info(struct ena_com_dev *ena_dev,
++ struct ena_admin_feature_llq_desc *llq_features,
++ struct ena_llq_configurations *llq_default_cfg)
++{
++ struct ena_com_llq_info *llq_info = &ena_dev->llq_info;
++ u16 supported_feat;
++ int rc;
++
++ memset(llq_info, 0, sizeof(*llq_info));
++
++ supported_feat = llq_features->header_location_ctrl_supported;
++
++ if (likely(supported_feat & llq_default_cfg->llq_header_location)) {
++ llq_info->header_location_ctrl =
++ llq_default_cfg->llq_header_location;
++ } else {
++ pr_err("Invalid header location control, supported: 0x%x\n",
++ supported_feat);
++ return -EINVAL;
++ }
++
++ if (likely(llq_info->header_location_ctrl == ENA_ADMIN_INLINE_HEADER)) {
++ supported_feat = llq_features->descriptors_stride_ctrl_supported;
++ if (likely(supported_feat & llq_default_cfg->llq_stride_ctrl)) {
++ llq_info->desc_stride_ctrl = llq_default_cfg->llq_stride_ctrl;
++ } else {
++ if (supported_feat & ENA_ADMIN_MULTIPLE_DESCS_PER_ENTRY) {
++ llq_info->desc_stride_ctrl = ENA_ADMIN_MULTIPLE_DESCS_PER_ENTRY;
++ } else if (supported_feat & ENA_ADMIN_SINGLE_DESC_PER_ENTRY) {
++ llq_info->desc_stride_ctrl = ENA_ADMIN_SINGLE_DESC_PER_ENTRY;
++ } else {
++ pr_err("Invalid desc_stride_ctrl, supported: 0x%x\n",
++ supported_feat);
++ return -EINVAL;
++ }
++
++ pr_err("Default llq stride ctrl is not supported, performing fallback, default: 0x%x, supported: 0x%x, used: 0x%x\n",
++ llq_default_cfg->llq_stride_ctrl, supported_feat,
++ llq_info->desc_stride_ctrl);
++ }
++ } else {
++ llq_info->desc_stride_ctrl = 0;
++ }
++
++ supported_feat = llq_features->entry_size_ctrl_supported;
++ if (likely(supported_feat & llq_default_cfg->llq_ring_entry_size)) {
++ llq_info->desc_list_entry_size_ctrl = llq_default_cfg->llq_ring_entry_size;
++ llq_info->desc_list_entry_size = llq_default_cfg->llq_ring_entry_size_value;
++ } else {
++ if (supported_feat & ENA_ADMIN_LIST_ENTRY_SIZE_128B) {
++ llq_info->desc_list_entry_size_ctrl = ENA_ADMIN_LIST_ENTRY_SIZE_128B;
++ llq_info->desc_list_entry_size = 128;
++ } else if (supported_feat & ENA_ADMIN_LIST_ENTRY_SIZE_192B) {
++ llq_info->desc_list_entry_size_ctrl = ENA_ADMIN_LIST_ENTRY_SIZE_192B;
++ llq_info->desc_list_entry_size = 192;
++ } else if (supported_feat & ENA_ADMIN_LIST_ENTRY_SIZE_256B) {
++ llq_info->desc_list_entry_size_ctrl = ENA_ADMIN_LIST_ENTRY_SIZE_256B;
++ llq_info->desc_list_entry_size = 256;
++ } else {
++ pr_err("Invalid entry_size_ctrl, supported: 0x%x\n",
++ supported_feat);
++ return -EINVAL;
++ }
++
++ pr_err("Default llq ring entry size is not supported, performing fallback, default: 0x%x, supported: 0x%x, used: 0x%x\n",
++ llq_default_cfg->llq_ring_entry_size, supported_feat,
++ llq_info->desc_list_entry_size);
++ }
++ if (unlikely(llq_info->desc_list_entry_size & 0x7)) {
++ /* The desc list entry size should be whole multiply of 8
++ * This requirement comes from __iowrite64_copy()
++ */
++ pr_err("illegal entry size %d\n",
++ llq_info->desc_list_entry_size);
++ return -EINVAL;
++ }
++
++ if (llq_info->desc_stride_ctrl == ENA_ADMIN_MULTIPLE_DESCS_PER_ENTRY)
++ llq_info->descs_per_entry = llq_info->desc_list_entry_size /
++ sizeof(struct ena_eth_io_tx_desc);
++ else
++ llq_info->descs_per_entry = 1;
++
++ supported_feat = llq_features->desc_num_before_header_supported;
++ if (likely(supported_feat & llq_default_cfg->llq_num_decs_before_header)) {
++ llq_info->descs_num_before_header = llq_default_cfg->llq_num_decs_before_header;
++ } else {
++ if (supported_feat & ENA_ADMIN_LLQ_NUM_DESCS_BEFORE_HEADER_2) {
++ llq_info->descs_num_before_header = ENA_ADMIN_LLQ_NUM_DESCS_BEFORE_HEADER_2;
++ } else if (supported_feat & ENA_ADMIN_LLQ_NUM_DESCS_BEFORE_HEADER_1) {
++ llq_info->descs_num_before_header = ENA_ADMIN_LLQ_NUM_DESCS_BEFORE_HEADER_1;
++ } else if (supported_feat & ENA_ADMIN_LLQ_NUM_DESCS_BEFORE_HEADER_4) {
++ llq_info->descs_num_before_header = ENA_ADMIN_LLQ_NUM_DESCS_BEFORE_HEADER_4;
++ } else if (supported_feat & ENA_ADMIN_LLQ_NUM_DESCS_BEFORE_HEADER_8) {
++ llq_info->descs_num_before_header = ENA_ADMIN_LLQ_NUM_DESCS_BEFORE_HEADER_8;
++ } else {
++ pr_err("Invalid descs_num_before_header, supported: 0x%x\n",
++ supported_feat);
++ return -EINVAL;
++ }
++
++ pr_err("Default llq num descs before header is not supported, performing fallback, default: 0x%x, supported: 0x%x, used: 0x%x\n",
++ llq_default_cfg->llq_num_decs_before_header,
++ supported_feat, llq_info->descs_num_before_header);
++ }
++
++ rc = ena_com_set_llq(ena_dev);
++ if (rc)
++ pr_err("Cannot set LLQ configuration: %d\n", rc);
++
++ return 0;
++}
++
+ static int ena_com_wait_and_process_admin_cq_interrupts(struct ena_comp_ctx *comp_ctx,
+ struct ena_com_admin_queue *admin_queue)
+ {
+@@ -725,15 +904,17 @@ static void ena_com_io_queue_free(struct
+ if (io_sq->desc_addr.virt_addr) {
+ size = io_sq->desc_entry_size * io_sq->q_depth;
+
+- if (io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_HOST)
+- dma_free_coherent(ena_dev->dmadev, size,
+- io_sq->desc_addr.virt_addr,
+- io_sq->desc_addr.phys_addr);
+- else
+- devm_kfree(ena_dev->dmadev, io_sq->desc_addr.virt_addr);
++ dma_free_coherent(ena_dev->dmadev, size,
++ io_sq->desc_addr.virt_addr,
++ io_sq->desc_addr.phys_addr);
+
+ io_sq->desc_addr.virt_addr = NULL;
+ }
++
++ if (io_sq->bounce_buf_ctrl.base_buffer) {
++ devm_kfree(ena_dev->dmadev, io_sq->bounce_buf_ctrl.base_buffer);
++ io_sq->bounce_buf_ctrl.base_buffer = NULL;
++ }
+ }
+
+ static int wait_for_reset_state(struct ena_com_dev *ena_dev, u32 timeout,
+@@ -1740,6 +1921,15 @@ int ena_com_get_dev_attr_feat(struct ena
+ else
+ return rc;
+
++ rc = ena_com_get_feature(ena_dev, &get_resp, ENA_ADMIN_LLQ);
++ if (!rc)
++ memcpy(&get_feat_ctx->llq, &get_resp.u.llq,
++ sizeof(get_resp.u.llq));
++ else if (rc == -EOPNOTSUPP)
++ memset(&get_feat_ctx->llq, 0x0, sizeof(get_feat_ctx->llq));
++ else
++ return rc;
++
+ return 0;
+ }
+
+@@ -2708,3 +2898,34 @@ void ena_com_get_intr_moderation_entry(s
+ intr_moder_tbl[level].pkts_per_interval;
+ entry->bytes_per_interval = intr_moder_tbl[level].bytes_per_interval;
+ }
++
++int ena_com_config_dev_mode(struct ena_com_dev *ena_dev,
++ struct ena_admin_feature_llq_desc *llq_features,
++ struct ena_llq_configurations *llq_default_cfg)
++{
++ int rc;
++ int size;
++
++ if (!llq_features->max_llq_num) {
++ ena_dev->tx_mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_HOST;
++ return 0;
++ }
++
++ rc = ena_com_config_llq_info(ena_dev, llq_features, llq_default_cfg);
++ if (rc)
++ return rc;
++
++ /* Validate the descriptor is not too big */
++ size = ena_dev->tx_max_header_size;
++ size += ena_dev->llq_info.descs_num_before_header *
++ sizeof(struct ena_eth_io_tx_desc);
++
++ if (unlikely(ena_dev->llq_info.desc_list_entry_size < size)) {
++ pr_err("the size of the LLQ entry is smaller than needed\n");
++ return -EINVAL;
++ }
++
++ ena_dev->tx_mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_DEV;
++
++ return 0;
++}
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.h
+@@ -37,6 +37,7 @@
+ #include <linux/delay.h>
+ #include <linux/dma-mapping.h>
+ #include <linux/gfp.h>
++#include <linux/io.h>
+ #include <linux/sched.h>
+ #include <linux/sizes.h>
+ #include <linux/spinlock.h>
+@@ -973,6 +974,16 @@ void ena_com_get_intr_moderation_entry(s
+ enum ena_intr_moder_level level,
+ struct ena_intr_moder_entry *entry);
+
++/* ena_com_config_dev_mode - Configure the placement policy of the device.
++ * @ena_dev: ENA communication layer struct
++ * @llq_features: LLQ feature descriptor, retrieve via
++ * ena_com_get_dev_attr_feat.
++ * @ena_llq_config: The default driver LLQ parameters configurations
++ */
++int ena_com_config_dev_mode(struct ena_com_dev *ena_dev,
++ struct ena_admin_feature_llq_desc *llq_features,
++ struct ena_llq_configurations *llq_default_config);
++
+ static inline bool ena_com_get_adaptive_moderation_enabled(struct ena_com_dev *ena_dev)
+ {
+ return ena_dev->adaptive_coalescing;
+@@ -1082,4 +1093,21 @@ static inline void ena_com_update_intr_r
+ intr_reg->intr_control |= ENA_ETH_IO_INTR_REG_INTR_UNMASK_MASK;
+ }
+
++static inline u8 *ena_com_get_next_bounce_buffer(struct ena_com_io_bounce_buffer_control *bounce_buf_ctrl)
++{
++ u16 size, buffers_num;
++ u8 *buf;
++
++ size = bounce_buf_ctrl->buffer_size;
++ buffers_num = bounce_buf_ctrl->buffers_num;
++
++ buf = bounce_buf_ctrl->base_buffer +
++ (bounce_buf_ctrl->next_to_use++ & (buffers_num - 1)) * size;
++
++ prefetchw(bounce_buf_ctrl->base_buffer +
++ (bounce_buf_ctrl->next_to_use & (buffers_num - 1)) * size);
++
++ return buf;
++}
++
+ #endif /* !(ENA_COM) */
+Index: linux/drivers/net/ethernet/amazon/ena/ena_eth_com.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_eth_com.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_eth_com.c
+@@ -59,7 +59,7 @@ static inline struct ena_eth_io_rx_cdesc
+ return cdesc;
+ }
+
+-static inline void *get_sq_desc(struct ena_com_io_sq *io_sq)
++static inline void *get_sq_desc_regular_queue(struct ena_com_io_sq *io_sq)
+ {
+ u16 tail_masked;
+ u32 offset;
+@@ -71,45 +71,159 @@ static inline void *get_sq_desc(struct e
+ return (void *)((uintptr_t)io_sq->desc_addr.virt_addr + offset);
+ }
+
+-static inline void ena_com_copy_curr_sq_desc_to_dev(struct ena_com_io_sq *io_sq)
++static inline int ena_com_write_bounce_buffer_to_dev(struct ena_com_io_sq *io_sq,
++ u8 *bounce_buffer)
+ {
+- u16 tail_masked = io_sq->tail & (io_sq->q_depth - 1);
+- u32 offset = tail_masked * io_sq->desc_entry_size;
++ struct ena_com_llq_info *llq_info = &io_sq->llq_info;
+
+- /* In case this queue isn't a LLQ */
+- if (io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_HOST)
+- return;
++ u16 dst_tail_mask;
++ u32 dst_offset;
+
+- memcpy_toio(io_sq->desc_addr.pbuf_dev_addr + offset,
+- io_sq->desc_addr.virt_addr + offset,
+- io_sq->desc_entry_size);
+-}
++ dst_tail_mask = io_sq->tail & (io_sq->q_depth - 1);
++ dst_offset = dst_tail_mask * llq_info->desc_list_entry_size;
++
++ /* Make sure everything was written into the bounce buffer before
++ * writing the bounce buffer to the device
++ */
++ wmb();
++
++ /* The line is completed. Copy it to dev */
++ __iowrite64_copy(io_sq->desc_addr.pbuf_dev_addr + dst_offset,
++ bounce_buffer, (llq_info->desc_list_entry_size) / 8);
+
+-static inline void ena_com_sq_update_tail(struct ena_com_io_sq *io_sq)
+-{
+ io_sq->tail++;
+
+ /* Switch phase bit in case of wrap around */
+ if (unlikely((io_sq->tail & (io_sq->q_depth - 1)) == 0))
+ io_sq->phase ^= 1;
++
++ return 0;
+ }
+
+-static inline int ena_com_write_header(struct ena_com_io_sq *io_sq,
+- u8 *head_src, u16 header_len)
++static inline int ena_com_write_header_to_bounce(struct ena_com_io_sq *io_sq,
++ u8 *header_src,
++ u16 header_len)
++{
++ struct ena_com_llq_pkt_ctrl *pkt_ctrl = &io_sq->llq_buf_ctrl;
++ struct ena_com_llq_info *llq_info = &io_sq->llq_info;
++ u8 *bounce_buffer = pkt_ctrl->curr_bounce_buf;
++ u16 header_offset;
++
++ if (unlikely(io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_HOST))
++ return 0;
++
++ header_offset =
++ llq_info->descs_num_before_header * io_sq->desc_entry_size;
++
++ if (unlikely((header_offset + header_len) >
++ llq_info->desc_list_entry_size)) {
++ pr_err("trying to write header larger than llq entry can accommodate\n");
++ return -EFAULT;
++ }
++
++ if (unlikely(!bounce_buffer)) {
++ pr_err("bounce buffer is NULL\n");
++ return -EFAULT;
++ }
++
++ memcpy(bounce_buffer + header_offset, header_src, header_len);
++
++ return 0;
++}
++
++static inline void *get_sq_desc_llq(struct ena_com_io_sq *io_sq)
++{
++ struct ena_com_llq_pkt_ctrl *pkt_ctrl = &io_sq->llq_buf_ctrl;
++ u8 *bounce_buffer;
++ void *sq_desc;
++
++ bounce_buffer = pkt_ctrl->curr_bounce_buf;
++
++ if (unlikely(!bounce_buffer)) {
++ pr_err("bounce buffer is NULL\n");
++ return NULL;
++ }
++
++ sq_desc = bounce_buffer + pkt_ctrl->idx * io_sq->desc_entry_size;
++ pkt_ctrl->idx++;
++ pkt_ctrl->descs_left_in_line--;
++
++ return sq_desc;
++}
++
++static inline int ena_com_close_bounce_buffer(struct ena_com_io_sq *io_sq)
+ {
+- u16 tail_masked = io_sq->tail & (io_sq->q_depth - 1);
+- u8 __iomem *dev_head_addr =
+- io_sq->header_addr + (tail_masked * io_sq->tx_max_header_size);
++ struct ena_com_llq_pkt_ctrl *pkt_ctrl = &io_sq->llq_buf_ctrl;
++ struct ena_com_llq_info *llq_info = &io_sq->llq_info;
++ int rc;
+
+- if (io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_HOST)
++ if (unlikely(io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_HOST))
+ return 0;
+
+- if (unlikely(!io_sq->header_addr)) {
+- pr_err("Push buffer header ptr is NULL\n");
+- return -EINVAL;
++ /* bounce buffer was used, so write it and get a new one */
++ if (pkt_ctrl->idx) {
++ rc = ena_com_write_bounce_buffer_to_dev(io_sq,
++ pkt_ctrl->curr_bounce_buf);
++ if (unlikely(rc))
++ return rc;
++
++ pkt_ctrl->curr_bounce_buf =
++ ena_com_get_next_bounce_buffer(&io_sq->bounce_buf_ctrl);
++ memset(io_sq->llq_buf_ctrl.curr_bounce_buf,
++ 0x0, llq_info->desc_list_entry_size);
+ }
+
+- memcpy_toio(dev_head_addr, head_src, header_len);
++ pkt_ctrl->idx = 0;
++ pkt_ctrl->descs_left_in_line = llq_info->descs_num_before_header;
++ return 0;
++}
++
++static inline void *get_sq_desc(struct ena_com_io_sq *io_sq)
++{
++ if (io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV)
++ return get_sq_desc_llq(io_sq);
++
++ return get_sq_desc_regular_queue(io_sq);
++}
++
++static inline int ena_com_sq_update_llq_tail(struct ena_com_io_sq *io_sq)
++{
++ struct ena_com_llq_pkt_ctrl *pkt_ctrl = &io_sq->llq_buf_ctrl;
++ struct ena_com_llq_info *llq_info = &io_sq->llq_info;
++ int rc;
++
++ if (!pkt_ctrl->descs_left_in_line) {
++ rc = ena_com_write_bounce_buffer_to_dev(io_sq,
++ pkt_ctrl->curr_bounce_buf);
++ if (unlikely(rc))
++ return rc;
++
++ pkt_ctrl->curr_bounce_buf =
++ ena_com_get_next_bounce_buffer(&io_sq->bounce_buf_ctrl);
++ memset(io_sq->llq_buf_ctrl.curr_bounce_buf,
++ 0x0, llq_info->desc_list_entry_size);
++
++ pkt_ctrl->idx = 0;
++ if (unlikely(llq_info->desc_stride_ctrl == ENA_ADMIN_SINGLE_DESC_PER_ENTRY))
++ pkt_ctrl->descs_left_in_line = 1;
++ else
++ pkt_ctrl->descs_left_in_line =
++ llq_info->desc_list_entry_size / io_sq->desc_entry_size;
++ }
++
++ return 0;
++}
++
++static inline int ena_com_sq_update_tail(struct ena_com_io_sq *io_sq)
++{
++ if (io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV)
++ return ena_com_sq_update_llq_tail(io_sq);
++
++ io_sq->tail++;
++
++ /* Switch phase bit in case of wrap around */
++ if (unlikely((io_sq->tail & (io_sq->q_depth - 1)) == 0))
++ io_sq->phase ^= 1;
+
+ return 0;
+ }
+@@ -177,8 +291,8 @@ static inline bool ena_com_meta_desc_cha
+ return false;
+ }
+
+-static inline void ena_com_create_and_store_tx_meta_desc(struct ena_com_io_sq *io_sq,
+- struct ena_com_tx_ctx *ena_tx_ctx)
++static inline int ena_com_create_and_store_tx_meta_desc(struct ena_com_io_sq *io_sq,
++ struct ena_com_tx_ctx *ena_tx_ctx)
+ {
+ struct ena_eth_io_tx_meta_desc *meta_desc = NULL;
+ struct ena_com_tx_meta *ena_meta = &ena_tx_ctx->ena_meta;
+@@ -223,8 +337,7 @@ static inline void ena_com_create_and_st
+ memcpy(&io_sq->cached_tx_meta, ena_meta,
+ sizeof(struct ena_com_tx_meta));
+
+- ena_com_copy_curr_sq_desc_to_dev(io_sq);
+- ena_com_sq_update_tail(io_sq);
++ return ena_com_sq_update_tail(io_sq);
+ }
+
+ static inline void ena_com_rx_set_flags(struct ena_com_rx_ctx *ena_rx_ctx,
+@@ -262,18 +375,19 @@ int ena_com_prepare_tx(struct ena_com_io
+ {
+ struct ena_eth_io_tx_desc *desc = NULL;
+ struct ena_com_buf *ena_bufs = ena_tx_ctx->ena_bufs;
+- void *push_header = ena_tx_ctx->push_header;
++ void *buffer_to_push = ena_tx_ctx->push_header;
+ u16 header_len = ena_tx_ctx->header_len;
+ u16 num_bufs = ena_tx_ctx->num_bufs;
+- int total_desc, i, rc;
++ u16 start_tail = io_sq->tail;
++ int i, rc;
+ bool have_meta;
+ u64 addr_hi;
+
+ WARN(io_sq->direction != ENA_COM_IO_QUEUE_DIRECTION_TX, "wrong Q type");
+
+ /* num_bufs +1 for potential meta desc */
+- if (ena_com_sq_empty_space(io_sq) < (num_bufs + 1)) {
+- pr_err("Not enough space in the tx queue\n");
++ if (unlikely(!ena_com_sq_have_enough_space(io_sq, num_bufs + 1))) {
++ pr_debug("Not enough space in the tx queue\n");
+ return -ENOMEM;
+ }
+
+@@ -283,23 +397,32 @@ int ena_com_prepare_tx(struct ena_com_io
+ return -EINVAL;
+ }
+
+- /* start with pushing the header (if needed) */
+- rc = ena_com_write_header(io_sq, push_header, header_len);
++ if (unlikely(io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV &&
++ !buffer_to_push))
++ return -EINVAL;
++
++ rc = ena_com_write_header_to_bounce(io_sq, buffer_to_push, header_len);
+ if (unlikely(rc))
+ return rc;
+
+ have_meta = ena_tx_ctx->meta_valid && ena_com_meta_desc_changed(io_sq,
+ ena_tx_ctx);
+- if (have_meta)
+- ena_com_create_and_store_tx_meta_desc(io_sq, ena_tx_ctx);
++ if (have_meta) {
++ rc = ena_com_create_and_store_tx_meta_desc(io_sq, ena_tx_ctx);
++ if (unlikely(rc))
++ return rc;
++ }
+
+- /* If the caller doesn't want send packets */
++ /* If the caller doesn't want to send packets */
+ if (unlikely(!num_bufs && !header_len)) {
+- *nb_hw_desc = have_meta ? 0 : 1;
+- return 0;
++ rc = ena_com_close_bounce_buffer(io_sq);
++ *nb_hw_desc = io_sq->tail - start_tail;
++ return rc;
+ }
+
+ desc = get_sq_desc(io_sq);
++ if (unlikely(!desc))
++ return -EFAULT;
+ memset(desc, 0x0, sizeof(struct ena_eth_io_tx_desc));
+
+ /* Set first desc when we don't have meta descriptor */
+@@ -351,10 +474,14 @@ int ena_com_prepare_tx(struct ena_com_io
+ for (i = 0; i < num_bufs; i++) {
+ /* The first desc share the same desc as the header */
+ if (likely(i != 0)) {
+- ena_com_copy_curr_sq_desc_to_dev(io_sq);
+- ena_com_sq_update_tail(io_sq);
++ rc = ena_com_sq_update_tail(io_sq);
++ if (unlikely(rc))
++ return rc;
+
+ desc = get_sq_desc(io_sq);
++ if (unlikely(!desc))
++ return -EFAULT;
++
+ memset(desc, 0x0, sizeof(struct ena_eth_io_tx_desc));
+
+ desc->len_ctrl |= (io_sq->phase <<
+@@ -377,15 +504,14 @@ int ena_com_prepare_tx(struct ena_com_io
+ /* set the last desc indicator */
+ desc->len_ctrl |= ENA_ETH_IO_TX_DESC_LAST_MASK;
+
+- ena_com_copy_curr_sq_desc_to_dev(io_sq);
+-
+- ena_com_sq_update_tail(io_sq);
++ rc = ena_com_sq_update_tail(io_sq);
++ if (unlikely(rc))
++ return rc;
+
+- total_desc = max_t(u16, num_bufs, 1);
+- total_desc += have_meta ? 1 : 0;
++ rc = ena_com_close_bounce_buffer(io_sq);
+
+- *nb_hw_desc = total_desc;
+- return 0;
++ *nb_hw_desc = io_sq->tail - start_tail;
++ return rc;
+ }
+
+ int ena_com_rx_pkt(struct ena_com_io_cq *io_cq,
+@@ -444,15 +570,18 @@ int ena_com_add_single_rx_desc(struct en
+
+ WARN(io_sq->direction != ENA_COM_IO_QUEUE_DIRECTION_RX, "wrong Q type");
+
+- if (unlikely(ena_com_sq_empty_space(io_sq) == 0))
++ if (unlikely(!ena_com_sq_have_enough_space(io_sq, 1)))
+ return -ENOSPC;
+
+ desc = get_sq_desc(io_sq);
++ if (unlikely(!desc))
++ return -EFAULT;
++
+ memset(desc, 0x0, sizeof(struct ena_eth_io_rx_desc));
+
+ desc->length = ena_buf->len;
+
+- desc->ctrl |= ENA_ETH_IO_RX_DESC_FIRST_MASK;
++ desc->ctrl = ENA_ETH_IO_RX_DESC_FIRST_MASK;
+ desc->ctrl |= ENA_ETH_IO_RX_DESC_LAST_MASK;
+ desc->ctrl |= io_sq->phase & ENA_ETH_IO_RX_DESC_PHASE_MASK;
+ desc->ctrl |= ENA_ETH_IO_RX_DESC_COMP_REQ_MASK;
+@@ -463,9 +592,7 @@ int ena_com_add_single_rx_desc(struct en
+ desc->buff_addr_hi =
+ ((ena_buf->paddr & GENMASK_ULL(io_sq->dma_addr_bits - 1, 32)) >> 32);
+
+- ena_com_sq_update_tail(io_sq);
+-
+- return 0;
++ return ena_com_sq_update_tail(io_sq);
+ }
+
+ bool ena_com_cq_empty(struct ena_com_io_cq *io_cq)
+Index: linux/drivers/net/ethernet/amazon/ena/ena_eth_com.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_eth_com.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_eth_com.h
+@@ -94,7 +94,7 @@ static inline void ena_com_unmask_intr(s
+ writel(intr_reg->intr_control, io_cq->unmask_reg);
+ }
+
+-static inline int ena_com_sq_empty_space(struct ena_com_io_sq *io_sq)
++static inline int ena_com_free_desc(struct ena_com_io_sq *io_sq)
+ {
+ u16 tail, next_to_comp, cnt;
+
+@@ -105,11 +105,28 @@ static inline int ena_com_sq_empty_space
+ return io_sq->q_depth - 1 - cnt;
+ }
+
+-static inline int ena_com_write_sq_doorbell(struct ena_com_io_sq *io_sq)
++/* Check if the submission queue has enough space to hold required_buffers */
++static inline bool ena_com_sq_have_enough_space(struct ena_com_io_sq *io_sq,
++ u16 required_buffers)
+ {
+- u16 tail;
++ int temp;
+
+- tail = io_sq->tail;
++ if (io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_HOST)
++ return ena_com_free_desc(io_sq) >= required_buffers;
++
++ /* This calculation doesn't need to be 100% accurate. So to reduce
++ * the calculation overhead just Subtract 2 lines from the free descs
++ * (one for the header line and one to compensate the devision
++ * down calculation.
++ */
++ temp = required_buffers / io_sq->llq_info.descs_per_entry + 2;
++
++ return ena_com_free_desc(io_sq) > temp;
++}
++
++static inline int ena_com_write_sq_doorbell(struct ena_com_io_sq *io_sq)
++{
++ u16 tail = io_sq->tail;
+
+ pr_debug("write submission queue doorbell for queue: %d tail: %d\n",
+ io_sq->qid, tail);
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -804,12 +804,13 @@ static int ena_clean_tx_irq(struct ena_r
+ */
+ smp_mb();
+
+- above_thresh = ena_com_sq_empty_space(tx_ring->ena_com_io_sq) >
+- ENA_TX_WAKEUP_THRESH;
++ above_thresh = ena_com_sq_have_enough_space(tx_ring->ena_com_io_sq,
++ ENA_TX_WAKEUP_THRESH);
+ if (unlikely(netif_tx_queue_stopped(txq) && above_thresh)) {
+ __netif_tx_lock(txq, smp_processor_id());
+- above_thresh = ena_com_sq_empty_space(tx_ring->ena_com_io_sq) >
+- ENA_TX_WAKEUP_THRESH;
++ above_thresh =
++ ena_com_sq_have_enough_space(tx_ring->ena_com_io_sq,
++ ENA_TX_WAKEUP_THRESH);
+ if (netif_tx_queue_stopped(txq) && above_thresh) {
+ netif_tx_wake_queue(txq);
+ u64_stats_update_begin(&tx_ring->syncp);
+@@ -1101,7 +1102,7 @@ static int ena_clean_rx_irq(struct ena_r
+
+ rx_ring->next_to_clean = next_to_clean;
+
+- refill_required = ena_com_sq_empty_space(rx_ring->ena_com_io_sq);
++ refill_required = ena_com_free_desc(rx_ring->ena_com_io_sq);
+ refill_threshold = rx_ring->ring_size / ENA_RX_REFILL_THRESH_DIVIDER;
+
+ /* Optimization, try to batch new rx buffers */
+@@ -2115,8 +2116,8 @@ static netdev_tx_t ena_start_xmit(struct
+ * to sgl_size + 2. one for the meta descriptor and one for header
+ * (if the header is larger than tx_max_header_size).
+ */
+- if (unlikely(ena_com_sq_empty_space(tx_ring->ena_com_io_sq) <
+- (tx_ring->sgl_size + 2))) {
++ if (unlikely(!ena_com_sq_have_enough_space(tx_ring->ena_com_io_sq,
++ tx_ring->sgl_size + 2))) {
+ netif_dbg(adapter, tx_queued, dev, "%s stop queue %d\n",
+ __func__, qid);
+
+@@ -2135,8 +2136,8 @@ static netdev_tx_t ena_start_xmit(struct
+ */
+ smp_mb();
+
+- if (ena_com_sq_empty_space(tx_ring->ena_com_io_sq)
+- > ENA_TX_WAKEUP_THRESH) {
++ if (ena_com_sq_have_enough_space(tx_ring->ena_com_io_sq,
++ ENA_TX_WAKEUP_THRESH)) {
+ netif_tx_wake_queue(txq);
+ u64_stats_update_begin(&tx_ring->syncp);
+ tx_ring->tx_stats.queue_wakeup++;
+@@ -2813,7 +2814,7 @@ static void check_for_empty_rx_ring(stru
+ rx_ring = &adapter->rx_ring[i];
+
+ refill_required =
+- ena_com_sq_empty_space(rx_ring->ena_com_io_sq);
++ ena_com_free_desc(rx_ring->ena_com_io_sq);
+ if (unlikely(refill_required == (rx_ring->ring_size - 1))) {
+ rx_ring->empty_rx_queue++;
+
diff --git a/debian/patches/features/all/ena/0006-net-ena-add-functions-for-handling-Low-Latency-Queue.patch b/debian/patches/features/all/ena/0006-net-ena-add-functions-for-handling-Low-Latency-Queue.patch
new file mode 100644
index 000000000..8f288529e
--- /dev/null
+++ b/debian/patches/features/all/ena/0006-net-ena-add-functions-for-handling-Low-Latency-Queue.patch
@@ -0,0 +1,655 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Thu, 11 Oct 2018 11:26:20 +0300
+Subject: [PATCH 06/19] net: ena: add functions for handling Low Latency Queues
+ in ena_netdev
+Origin: https://git.kernel.org/linus/38005ca816a7ef5516dc8e59ae95716739aa75b0
+
+This patch includes all code changes necessary in ena_netdev to enable
+packet sending via the LLQ placemnt mode.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_ethtool.c | 1 +
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 387 +++++++++++-------
+ drivers/net/ethernet/amazon/ena/ena_netdev.h | 6 +
+ 3 files changed, 251 insertions(+), 143 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_ethtool.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+@@ -81,6 +81,7 @@ static const struct ena_stats ena_stats_
+ ENA_STAT_TX_ENTRY(doorbells),
+ ENA_STAT_TX_ENTRY(prepare_ctx_err),
+ ENA_STAT_TX_ENTRY(bad_req_id),
++ ENA_STAT_TX_ENTRY(llq_buffer_copy),
+ ENA_STAT_TX_ENTRY(missed_tx),
+ };
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -237,6 +237,17 @@ static int ena_setup_tx_resources(struct
+ }
+ }
+
++ size = tx_ring->tx_max_header_size;
++ tx_ring->push_buf_intermediate_buf = vzalloc_node(size, node);
++ if (!tx_ring->push_buf_intermediate_buf) {
++ tx_ring->push_buf_intermediate_buf = vzalloc(size);
++ if (!tx_ring->push_buf_intermediate_buf) {
++ vfree(tx_ring->tx_buffer_info);
++ vfree(tx_ring->free_tx_ids);
++ return -ENOMEM;
++ }
++ }
++
+ /* Req id ring for TX out of order completions */
+ for (i = 0; i < tx_ring->ring_size; i++)
+ tx_ring->free_tx_ids[i] = i;
+@@ -265,6 +276,9 @@ static void ena_free_tx_resources(struct
+
+ vfree(tx_ring->free_tx_ids);
+ tx_ring->free_tx_ids = NULL;
++
++ vfree(tx_ring->push_buf_intermediate_buf);
++ tx_ring->push_buf_intermediate_buf = NULL;
+ }
+
+ /* ena_setup_all_tx_resources - allocate I/O Tx queues resources for All queues
+@@ -602,6 +616,36 @@ static void ena_free_all_rx_bufs(struct
+ ena_free_rx_bufs(adapter, i);
+ }
+
++static inline void ena_unmap_tx_skb(struct ena_ring *tx_ring,
++ struct ena_tx_buffer *tx_info)
++{
++ struct ena_com_buf *ena_buf;
++ u32 cnt;
++ int i;
++
++ ena_buf = tx_info->bufs;
++ cnt = tx_info->num_of_bufs;
++
++ if (unlikely(!cnt))
++ return;
++
++ if (tx_info->map_linear_data) {
++ dma_unmap_single(tx_ring->dev,
++ dma_unmap_addr(ena_buf, paddr),
++ dma_unmap_len(ena_buf, len),
++ DMA_TO_DEVICE);
++ ena_buf++;
++ cnt--;
++ }
++
++ /* unmap remaining mapped pages */
++ for (i = 0; i < cnt; i++) {
++ dma_unmap_page(tx_ring->dev, dma_unmap_addr(ena_buf, paddr),
++ dma_unmap_len(ena_buf, len), DMA_TO_DEVICE);
++ ena_buf++;
++ }
++}
++
+ /* ena_free_tx_bufs - Free Tx Buffers per Queue
+ * @tx_ring: TX ring for which buffers be freed
+ */
+@@ -612,9 +656,6 @@ static void ena_free_tx_bufs(struct ena_
+
+ for (i = 0; i < tx_ring->ring_size; i++) {
+ struct ena_tx_buffer *tx_info = &tx_ring->tx_buffer_info[i];
+- struct ena_com_buf *ena_buf;
+- int nr_frags;
+- int j;
+
+ if (!tx_info->skb)
+ continue;
+@@ -630,21 +671,7 @@ static void ena_free_tx_bufs(struct ena_
+ tx_ring->qid, i);
+ }
+
+- ena_buf = tx_info->bufs;
+- dma_unmap_single(tx_ring->dev,
+- ena_buf->paddr,
+- ena_buf->len,
+- DMA_TO_DEVICE);
+-
+- /* unmap remaining mapped pages */
+- nr_frags = tx_info->num_of_bufs - 1;
+- for (j = 0; j < nr_frags; j++) {
+- ena_buf++;
+- dma_unmap_page(tx_ring->dev,
+- ena_buf->paddr,
+- ena_buf->len,
+- DMA_TO_DEVICE);
+- }
++ ena_unmap_tx_skb(tx_ring, tx_info);
+
+ dev_kfree_skb_any(tx_info->skb);
+ }
+@@ -735,8 +762,6 @@ static int ena_clean_tx_irq(struct ena_r
+ while (tx_pkts < budget) {
+ struct ena_tx_buffer *tx_info;
+ struct sk_buff *skb;
+- struct ena_com_buf *ena_buf;
+- int i, nr_frags;
+
+ rc = ena_com_tx_comp_req_id_get(tx_ring->ena_com_io_cq,
+ &req_id);
+@@ -756,24 +781,7 @@ static int ena_clean_tx_irq(struct ena_r
+ tx_info->skb = NULL;
+ tx_info->last_jiffies = 0;
+
+- if (likely(tx_info->num_of_bufs != 0)) {
+- ena_buf = tx_info->bufs;
+-
+- dma_unmap_single(tx_ring->dev,
+- dma_unmap_addr(ena_buf, paddr),
+- dma_unmap_len(ena_buf, len),
+- DMA_TO_DEVICE);
+-
+- /* unmap remaining mapped pages */
+- nr_frags = tx_info->num_of_bufs - 1;
+- for (i = 0; i < nr_frags; i++) {
+- ena_buf++;
+- dma_unmap_page(tx_ring->dev,
+- dma_unmap_addr(ena_buf, paddr),
+- dma_unmap_len(ena_buf, len),
+- DMA_TO_DEVICE);
+- }
+- }
++ ena_unmap_tx_skb(tx_ring, tx_info);
+
+ netif_dbg(tx_ring->adapter, tx_done, tx_ring->netdev,
+ "tx_poll: q %d skb %p completed\n", tx_ring->qid,
+@@ -1300,7 +1308,6 @@ static int ena_enable_msix(struct ena_ad
+
+ /* Reserved the max msix vectors we might need */
+ msix_vecs = ENA_MAX_MSIX_VEC(num_queues);
+-
+ netif_dbg(adapter, probe, adapter->netdev,
+ "trying to enable MSI-X, vectors %d\n", msix_vecs);
+
+@@ -1591,7 +1598,7 @@ static int ena_up_complete(struct ena_ad
+
+ static int ena_create_io_tx_queue(struct ena_adapter *adapter, int qid)
+ {
+- struct ena_com_create_io_ctx ctx = { 0 };
++ struct ena_com_create_io_ctx ctx;
+ struct ena_com_dev *ena_dev;
+ struct ena_ring *tx_ring;
+ u32 msix_vector;
+@@ -1604,6 +1611,8 @@ static int ena_create_io_tx_queue(struct
+ msix_vector = ENA_IO_IRQ_IDX(qid);
+ ena_qid = ENA_IO_TXQ_IDX(qid);
+
++ memset(&ctx, 0x0, sizeof(ctx));
++
+ ctx.direction = ENA_COM_IO_QUEUE_DIRECTION_TX;
+ ctx.qid = ena_qid;
+ ctx.mem_queue_type = ena_dev->tx_mem_queue_type;
+@@ -1657,7 +1666,7 @@ create_err:
+ static int ena_create_io_rx_queue(struct ena_adapter *adapter, int qid)
+ {
+ struct ena_com_dev *ena_dev;
+- struct ena_com_create_io_ctx ctx = { 0 };
++ struct ena_com_create_io_ctx ctx;
+ struct ena_ring *rx_ring;
+ u32 msix_vector;
+ u16 ena_qid;
+@@ -1669,6 +1678,8 @@ static int ena_create_io_rx_queue(struct
+ msix_vector = ENA_IO_IRQ_IDX(qid);
+ ena_qid = ENA_IO_RXQ_IDX(qid);
+
++ memset(&ctx, 0x0, sizeof(ctx));
++
+ ctx.qid = ena_qid;
+ ctx.direction = ENA_COM_IO_QUEUE_DIRECTION_RX;
+ ctx.mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_HOST;
+@@ -1986,73 +1997,70 @@ static int ena_check_and_linearize_skb(s
+ return rc;
+ }
+
+-/* Called with netif_tx_lock. */
+-static netdev_tx_t ena_start_xmit(struct sk_buff *skb, struct net_device *dev)
++static int ena_tx_map_skb(struct ena_ring *tx_ring,
++ struct ena_tx_buffer *tx_info,
++ struct sk_buff *skb,
++ void **push_hdr,
++ u16 *header_len)
+ {
+- struct ena_adapter *adapter = netdev_priv(dev);
+- struct ena_tx_buffer *tx_info;
+- struct ena_com_tx_ctx ena_tx_ctx;
+- struct ena_ring *tx_ring;
+- struct netdev_queue *txq;
++ struct ena_adapter *adapter = tx_ring->adapter;
+ struct ena_com_buf *ena_buf;
+- void *push_hdr;
+- u32 len, last_frag;
+- u16 next_to_use;
+- u16 req_id;
+- u16 push_len;
+- u16 header_len;
+ dma_addr_t dma;
+- int qid, rc, nb_hw_desc;
+- int i = -1;
+-
+- netif_dbg(adapter, tx_queued, dev, "%s skb %p\n", __func__, skb);
+- /* Determine which tx ring we will be placed on */
+- qid = skb_get_queue_mapping(skb);
+- tx_ring = &adapter->tx_ring[qid];
+- txq = netdev_get_tx_queue(dev, qid);
+-
+- rc = ena_check_and_linearize_skb(tx_ring, skb);
+- if (unlikely(rc))
+- goto error_drop_packet;
+-
+- skb_tx_timestamp(skb);
+- len = skb_headlen(skb);
++ u32 skb_head_len, frag_len, last_frag;
++ u16 push_len = 0;
++ u16 delta = 0;
++ int i = 0;
+
+- next_to_use = tx_ring->next_to_use;
+- req_id = tx_ring->free_tx_ids[next_to_use];
+- tx_info = &tx_ring->tx_buffer_info[req_id];
+- tx_info->num_of_bufs = 0;
+-
+- WARN(tx_info->skb, "SKB isn't NULL req_id %d\n", req_id);
+- ena_buf = tx_info->bufs;
++ skb_head_len = skb_headlen(skb);
+ tx_info->skb = skb;
++ ena_buf = tx_info->bufs;
+
+ if (tx_ring->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV) {
+- /* prepared the push buffer */
+- push_len = min_t(u32, len, tx_ring->tx_max_header_size);
+- header_len = push_len;
+- push_hdr = skb->data;
++ /* When the device is LLQ mode, the driver will copy
++ * the header into the device memory space.
++ * the ena_com layer assume the header is in a linear
++ * memory space.
++ * This assumption might be wrong since part of the header
++ * can be in the fragmented buffers.
++ * Use skb_header_pointer to make sure the header is in a
++ * linear memory space.
++ */
++
++ push_len = min_t(u32, skb->len, tx_ring->tx_max_header_size);
++ *push_hdr = skb_header_pointer(skb, 0, push_len,
++ tx_ring->push_buf_intermediate_buf);
++ *header_len = push_len;
++ if (unlikely(skb->data != *push_hdr)) {
++ u64_stats_update_begin(&tx_ring->syncp);
++ tx_ring->tx_stats.llq_buffer_copy++;
++ u64_stats_update_end(&tx_ring->syncp);
++
++ delta = push_len - skb_head_len;
++ }
+ } else {
+- push_len = 0;
+- header_len = min_t(u32, len, tx_ring->tx_max_header_size);
+- push_hdr = NULL;
++ *push_hdr = NULL;
++ *header_len = min_t(u32, skb_head_len,
++ tx_ring->tx_max_header_size);
+ }
+
+- netif_dbg(adapter, tx_queued, dev,
++ netif_dbg(adapter, tx_queued, adapter->netdev,
+ "skb: %p header_buf->vaddr: %p push_len: %d\n", skb,
+- push_hdr, push_len);
++ *push_hdr, push_len);
+
+- if (len > push_len) {
++ if (skb_head_len > push_len) {
+ dma = dma_map_single(tx_ring->dev, skb->data + push_len,
+- len - push_len, DMA_TO_DEVICE);
+- if (dma_mapping_error(tx_ring->dev, dma))
++ skb_head_len - push_len, DMA_TO_DEVICE);
++ if (unlikely(dma_mapping_error(tx_ring->dev, dma)))
+ goto error_report_dma_error;
+
+ ena_buf->paddr = dma;
+- ena_buf->len = len - push_len;
++ ena_buf->len = skb_head_len - push_len;
+
+ ena_buf++;
+ tx_info->num_of_bufs++;
++ tx_info->map_linear_data = 1;
++ } else {
++ tx_info->map_linear_data = 0;
+ }
+
+ last_frag = skb_shinfo(skb)->nr_frags;
+@@ -2060,18 +2068,75 @@ static netdev_tx_t ena_start_xmit(struct
+ for (i = 0; i < last_frag; i++) {
+ const skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
+
+- len = skb_frag_size(frag);
+- dma = skb_frag_dma_map(tx_ring->dev, frag, 0, len,
+- DMA_TO_DEVICE);
+- if (dma_mapping_error(tx_ring->dev, dma))
++ frag_len = skb_frag_size(frag);
++
++ if (unlikely(delta >= frag_len)) {
++ delta -= frag_len;
++ continue;
++ }
++
++ dma = skb_frag_dma_map(tx_ring->dev, frag, delta,
++ frag_len - delta, DMA_TO_DEVICE);
++ if (unlikely(dma_mapping_error(tx_ring->dev, dma)))
+ goto error_report_dma_error;
+
+ ena_buf->paddr = dma;
+- ena_buf->len = len;
++ ena_buf->len = frag_len - delta;
+ ena_buf++;
++ tx_info->num_of_bufs++;
++ delta = 0;
+ }
+
+- tx_info->num_of_bufs += last_frag;
++ return 0;
++
++error_report_dma_error:
++ u64_stats_update_begin(&tx_ring->syncp);
++ tx_ring->tx_stats.dma_mapping_err++;
++ u64_stats_update_end(&tx_ring->syncp);
++ netdev_warn(adapter->netdev, "failed to map skb\n");
++
++ tx_info->skb = NULL;
++
++ tx_info->num_of_bufs += i;
++ ena_unmap_tx_skb(tx_ring, tx_info);
++
++ return -EINVAL;
++}
++
++/* Called with netif_tx_lock. */
++static netdev_tx_t ena_start_xmit(struct sk_buff *skb, struct net_device *dev)
++{
++ struct ena_adapter *adapter = netdev_priv(dev);
++ struct ena_tx_buffer *tx_info;
++ struct ena_com_tx_ctx ena_tx_ctx;
++ struct ena_ring *tx_ring;
++ struct netdev_queue *txq;
++ void *push_hdr;
++ u16 next_to_use, req_id, header_len;
++ int qid, rc, nb_hw_desc;
++
++ netif_dbg(adapter, tx_queued, dev, "%s skb %p\n", __func__, skb);
++ /* Determine which tx ring we will be placed on */
++ qid = skb_get_queue_mapping(skb);
++ tx_ring = &adapter->tx_ring[qid];
++ txq = netdev_get_tx_queue(dev, qid);
++
++ rc = ena_check_and_linearize_skb(tx_ring, skb);
++ if (unlikely(rc))
++ goto error_drop_packet;
++
++ skb_tx_timestamp(skb);
++
++ next_to_use = tx_ring->next_to_use;
++ req_id = tx_ring->free_tx_ids[next_to_use];
++ tx_info = &tx_ring->tx_buffer_info[req_id];
++ tx_info->num_of_bufs = 0;
++
++ WARN(tx_info->skb, "SKB isn't NULL req_id %d\n", req_id);
++
++ rc = ena_tx_map_skb(tx_ring, tx_info, skb, &push_hdr, &header_len);
++ if (unlikely(rc))
++ goto error_drop_packet;
+
+ memset(&ena_tx_ctx, 0x0, sizeof(struct ena_com_tx_ctx));
+ ena_tx_ctx.ena_bufs = tx_info->bufs;
+@@ -2087,14 +2152,22 @@ static netdev_tx_t ena_start_xmit(struct
+ rc = ena_com_prepare_tx(tx_ring->ena_com_io_sq, &ena_tx_ctx,
+ &nb_hw_desc);
+
++ /* ena_com_prepare_tx() can't fail due to overflow of tx queue,
++ * since the number of free descriptors in the queue is checked
++ * after sending the previous packet. In case there isn't enough
++ * space in the queue for the next packet, it is stopped
++ * until there is again enough available space in the queue.
++ * All other failure reasons of ena_com_prepare_tx() are fatal
++ * and therefore require a device reset.
++ */
+ if (unlikely(rc)) {
+ netif_err(adapter, tx_queued, dev,
+ "failed to prepare tx bufs\n");
+ u64_stats_update_begin(&tx_ring->syncp);
+- tx_ring->tx_stats.queue_stop++;
+ tx_ring->tx_stats.prepare_ctx_err++;
+ u64_stats_update_end(&tx_ring->syncp);
+- netif_tx_stop_queue(txq);
++ adapter->reset_reason = ENA_REGS_RESET_DRIVER_INVALID_STATE;
++ set_bit(ENA_FLAG_TRIGGER_RESET, &adapter->flags);
+ goto error_unmap_dma;
+ }
+
+@@ -2157,35 +2230,11 @@ static netdev_tx_t ena_start_xmit(struct
+
+ return NETDEV_TX_OK;
+
+-error_report_dma_error:
+- u64_stats_update_begin(&tx_ring->syncp);
+- tx_ring->tx_stats.dma_mapping_err++;
+- u64_stats_update_end(&tx_ring->syncp);
+- netdev_warn(adapter->netdev, "failed to map skb\n");
+-
+- tx_info->skb = NULL;
+-
+ error_unmap_dma:
+- if (i >= 0) {
+- /* save value of frag that failed */
+- last_frag = i;
+-
+- /* start back at beginning and unmap skb */
+- tx_info->skb = NULL;
+- ena_buf = tx_info->bufs;
+- dma_unmap_single(tx_ring->dev, dma_unmap_addr(ena_buf, paddr),
+- dma_unmap_len(ena_buf, len), DMA_TO_DEVICE);
+-
+- /* unmap remaining mapped pages */
+- for (i = 0; i < last_frag; i++) {
+- ena_buf++;
+- dma_unmap_page(tx_ring->dev, dma_unmap_addr(ena_buf, paddr),
+- dma_unmap_len(ena_buf, len), DMA_TO_DEVICE);
+- }
+- }
++ ena_unmap_tx_skb(tx_ring, tx_info);
++ tx_info->skb = NULL;
+
+ error_drop_packet:
+-
+ dev_kfree_skb(skb);
+ return NETDEV_TX_OK;
+ }
+@@ -2621,7 +2670,9 @@ static int ena_restore_device(struct ena
+ netif_carrier_on(adapter->netdev);
+
+ mod_timer(&adapter->timer_service, round_jiffies(jiffies + HZ));
+- dev_err(&pdev->dev, "Device reset completed successfully\n");
++ dev_err(&pdev->dev,
++ "Device reset completed successfully, Driver info: %s\n",
++ version);
+
+ return rc;
+ err_disable_msix:
+@@ -2988,18 +3039,52 @@ static int ena_calc_io_queue_num(struct
+ return io_queue_num;
+ }
+
+-static void ena_set_push_mode(struct pci_dev *pdev, struct ena_com_dev *ena_dev,
+- struct ena_com_dev_get_features_ctx *get_feat_ctx)
++static int ena_set_queues_placement_policy(struct pci_dev *pdev,
++ struct ena_com_dev *ena_dev,
++ struct ena_admin_feature_llq_desc *llq,
++ struct ena_llq_configurations *llq_default_configurations)
+ {
+ bool has_mem_bar;
++ int rc;
++ u32 llq_feature_mask;
++
++ llq_feature_mask = 1 << ENA_ADMIN_LLQ;
++ if (!(ena_dev->supported_features & llq_feature_mask)) {
++ dev_err(&pdev->dev,
++ "LLQ is not supported Fallback to host mode policy.\n");
++ ena_dev->tx_mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_HOST;
++ return 0;
++ }
+
+ has_mem_bar = pci_select_bars(pdev, IORESOURCE_MEM) & BIT(ENA_MEM_BAR);
+
+- /* Enable push mode if device supports LLQ */
+- if (has_mem_bar && get_feat_ctx->max_queues.max_legacy_llq_num > 0)
+- ena_dev->tx_mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_DEV;
+- else
++ rc = ena_com_config_dev_mode(ena_dev, llq, llq_default_configurations);
++ if (unlikely(rc)) {
++ dev_err(&pdev->dev,
++ "Failed to configure the device mode. Fallback to host mode policy.\n");
++ ena_dev->tx_mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_HOST;
++ return 0;
++ }
++
++ /* Nothing to config, exit */
++ if (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_HOST)
++ return 0;
++
++ if (!has_mem_bar) {
++ dev_err(&pdev->dev,
++ "ENA device does not expose LLQ bar. Fallback to host mode policy.\n");
+ ena_dev->tx_mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_HOST;
++ return 0;
++ }
++
++ ena_dev->mem_bar = devm_ioremap_wc(&pdev->dev,
++ pci_resource_start(pdev, ENA_MEM_BAR),
++ pci_resource_len(pdev, ENA_MEM_BAR));
++
++ if (!ena_dev->mem_bar)
++ return -EFAULT;
++
++ return 0;
+ }
+
+ static void ena_set_dev_offloads(struct ena_com_dev_get_features_ctx *feat,
+@@ -3117,6 +3202,15 @@ static void ena_release_bars(struct ena_
+ pci_release_selected_regions(pdev, release_bars);
+ }
+
++static inline void set_default_llq_configurations(struct ena_llq_configurations *llq_config)
++{
++ llq_config->llq_header_location = ENA_ADMIN_INLINE_HEADER;
++ llq_config->llq_ring_entry_size = ENA_ADMIN_LIST_ENTRY_SIZE_128B;
++ llq_config->llq_stride_ctrl = ENA_ADMIN_MULTIPLE_DESCS_PER_ENTRY;
++ llq_config->llq_num_decs_before_header = ENA_ADMIN_LLQ_NUM_DESCS_BEFORE_HEADER_2;
++ llq_config->llq_ring_entry_size_value = 128;
++}
++
+ static int ena_calc_queue_size(struct pci_dev *pdev,
+ struct ena_com_dev *ena_dev,
+ u16 *max_tx_sgl_size,
+@@ -3165,7 +3259,9 @@ static int ena_probe(struct pci_dev *pde
+ static int version_printed;
+ struct net_device *netdev;
+ struct ena_adapter *adapter;
++ struct ena_llq_configurations llq_config;
+ struct ena_com_dev *ena_dev = NULL;
++ char *queue_type_str;
+ static int adapters_found;
+ int io_queue_num, bars, rc;
+ int queue_size;
+@@ -3219,16 +3315,13 @@ static int ena_probe(struct pci_dev *pde
+ goto err_free_region;
+ }
+
+- ena_set_push_mode(pdev, ena_dev, &get_feat_ctx);
++ set_default_llq_configurations(&llq_config);
+
+- if (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV) {
+- ena_dev->mem_bar = devm_ioremap_wc(&pdev->dev,
+- pci_resource_start(pdev, ENA_MEM_BAR),
+- pci_resource_len(pdev, ENA_MEM_BAR));
+- if (!ena_dev->mem_bar) {
+- rc = -EFAULT;
+- goto err_device_destroy;
+- }
++ rc = ena_set_queues_placement_policy(pdev, ena_dev, &get_feat_ctx.llq,
++ &llq_config);
++ if (rc) {
++ dev_err(&pdev->dev, "ena device init failed\n");
++ goto err_device_destroy;
+ }
+
+ /* initial Tx interrupt delay, Assumes 1 usec granularity.
+@@ -3243,8 +3336,10 @@ static int ena_probe(struct pci_dev *pde
+ goto err_device_destroy;
+ }
+
+- dev_info(&pdev->dev, "creating %d io queues. queue size: %d\n",
+- io_queue_num, queue_size);
++ dev_info(&pdev->dev, "creating %d io queues. queue size: %d. LLQ is %s\n",
++ io_queue_num, queue_size,
++ (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV) ?
++ "ENABLED" : "DISABLED");
+
+ /* dev zeroed in init_etherdev */
+ netdev = alloc_etherdev_mq(sizeof(struct ena_adapter), io_queue_num);
+@@ -3334,9 +3429,15 @@ static int ena_probe(struct pci_dev *pde
+ timer_setup(&adapter->timer_service, ena_timer_service, 0);
+ mod_timer(&adapter->timer_service, round_jiffies(jiffies + HZ));
+
+- dev_info(&pdev->dev, "%s found at mem %lx, mac addr %pM Queues %d\n",
++ if (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_HOST)
++ queue_type_str = "Regular";
++ else
++ queue_type_str = "Low Latency";
++
++ dev_info(&pdev->dev,
++ "%s found at mem %lx, mac addr %pM Queues %d, Placement policy: %s\n",
+ DEVICE_NAME, (long)pci_resource_start(pdev, 0),
+- netdev->dev_addr, io_queue_num);
++ netdev->dev_addr, io_queue_num, queue_type_str);
+
+ set_bit(ENA_FLAG_DEVICE_RUNNING, &adapter->flags);
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+@@ -151,6 +151,9 @@ struct ena_tx_buffer {
+ /* num of buffers used by this skb */
+ u32 num_of_bufs;
+
++ /* Indicate if bufs[0] map the linear data of the skb. */
++ u8 map_linear_data;
++
+ /* Used for detect missing tx packets to limit the number of prints */
+ u32 print_once;
+ /* Save the last jiffies to detect missing tx packets
+@@ -186,6 +189,7 @@ struct ena_stats_tx {
+ u64 tx_poll;
+ u64 doorbells;
+ u64 bad_req_id;
++ u64 llq_buffer_copy;
+ u64 missed_tx;
+ };
+
+@@ -257,6 +261,8 @@ struct ena_ring {
+ struct ena_stats_tx tx_stats;
+ struct ena_stats_rx rx_stats;
+ };
++
++ u8 *push_buf_intermediate_buf;
+ int empty_rx_queue;
+ } ____cacheline_aligned;
+
diff --git a/debian/patches/features/all/ena/0007-net-ena-use-CSUM_CHECKED-device-indication-to-report.patch b/debian/patches/features/all/ena/0007-net-ena-use-CSUM_CHECKED-device-indication-to-report.patch
new file mode 100644
index 000000000..cc25333b8
--- /dev/null
+++ b/debian/patches/features/all/ena/0007-net-ena-use-CSUM_CHECKED-device-indication-to-report.patch
@@ -0,0 +1,125 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Thu, 11 Oct 2018 11:26:21 +0300
+Subject: [PATCH 07/19] net: ena: use CSUM_CHECKED device indication to report
+ skb's checksum status
+Origin: https://git.kernel.org/linus/cb36bb36e1f17d2a7b9a9751e5cfec4235b46c93
+
+Set skb->ip_summed to the correct value as reported by the device.
+Add counter for the case where rx csum offload is enabled but
+device didn't check it.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_eth_com.c | 7 +++++--
+ drivers/net/ethernet/amazon/ena/ena_eth_com.h | 1 +
+ drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h | 10 ++++++++--
+ drivers/net/ethernet/amazon/ena/ena_ethtool.c | 1 +
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 13 ++++++++++++-
+ drivers/net/ethernet/amazon/ena/ena_netdev.h | 1 +
+ 6 files changed, 28 insertions(+), 5 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_eth_com.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_eth_com.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_eth_com.c
+@@ -354,6 +354,9 @@ static inline void ena_com_rx_set_flags(
+ ena_rx_ctx->l4_csum_err =
+ !!((cdesc->status & ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_ERR_MASK) >>
+ ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_ERR_SHIFT);
++ ena_rx_ctx->l4_csum_checked =
++ !!((cdesc->status & ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_CHECKED_MASK) >>
++ ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_CHECKED_SHIFT);
+ ena_rx_ctx->hash = cdesc->hash;
+ ena_rx_ctx->frag =
+ (cdesc->status & ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_MASK) >>
+Index: linux/drivers/net/ethernet/amazon/ena/ena_eth_com.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_eth_com.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_eth_com.h
+@@ -67,6 +67,7 @@ struct ena_com_rx_ctx {
+ enum ena_eth_io_l4_proto_index l4_proto;
+ bool l3_csum_err;
+ bool l4_csum_err;
++ u8 l4_csum_checked;
+ /* fragmented packet */
+ bool frag;
+ u32 hash;
+Index: linux/drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h
+@@ -242,9 +242,13 @@ struct ena_eth_io_rx_cdesc_base {
+ * checksum error detected, or, the controller didn't
+ * validate the checksum. This bit is valid only when
+ * l4_proto_idx indicates TCP/UDP packet, and,
+- * ipv4_frag is not set
++ * ipv4_frag is not set. This bit is valid only when
++ * l4_csum_checked below is set.
+ * 15 : ipv4_frag - Indicates IPv4 fragmented packet
+- * 23:16 : reserved16
++ * 16 : l4_csum_checked - L4 checksum was verified
++ * (could be OK or error), when cleared the status of
++ * checksum is unknown
++ * 23:17 : reserved17 - MBZ
+ * 24 : phase
+ * 25 : l3_csum2 - second checksum engine result
+ * 26 : first - Indicates first descriptor in
+@@ -390,6 +394,8 @@ struct ena_eth_io_numa_node_cfg_reg {
+ #define ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_ERR_MASK BIT(14)
+ #define ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_SHIFT 15
+ #define ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_MASK BIT(15)
++#define ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_CHECKED_SHIFT 16
++#define ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_CHECKED_MASK BIT(16)
+ #define ENA_ETH_IO_RX_CDESC_BASE_PHASE_SHIFT 24
+ #define ENA_ETH_IO_RX_CDESC_BASE_PHASE_MASK BIT(24)
+ #define ENA_ETH_IO_RX_CDESC_BASE_L3_CSUM2_SHIFT 25
+Index: linux/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_ethtool.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+@@ -97,6 +97,7 @@ static const struct ena_stats ena_stats_
+ ENA_STAT_RX_ENTRY(rx_copybreak_pkt),
+ ENA_STAT_RX_ENTRY(bad_req_id),
+ ENA_STAT_RX_ENTRY(empty_rx_ring),
++ ENA_STAT_RX_ENTRY(csum_unchecked),
+ };
+
+ static const struct ena_stats ena_stats_ena_com_strings[] = {
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -994,8 +994,19 @@ static inline void ena_rx_checksum(struc
+ return;
+ }
+
+- skb->ip_summed = CHECKSUM_UNNECESSARY;
++ if (likely(ena_rx_ctx->l4_csum_checked)) {
++ skb->ip_summed = CHECKSUM_UNNECESSARY;
++ } else {
++ u64_stats_update_begin(&rx_ring->syncp);
++ rx_ring->rx_stats.csum_unchecked++;
++ u64_stats_update_end(&rx_ring->syncp);
++ skb->ip_summed = CHECKSUM_NONE;
++ }
++ } else {
++ skb->ip_summed = CHECKSUM_NONE;
++ return;
+ }
++
+ }
+
+ static void ena_set_rx_hash(struct ena_ring *rx_ring,
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+@@ -205,6 +205,7 @@ struct ena_stats_rx {
+ u64 rx_copybreak_pkt;
+ u64 bad_req_id;
+ u64 empty_rx_ring;
++ u64 csum_unchecked;
+ };
+
+ struct ena_ring {
diff --git a/debian/patches/features/all/ena/0008-net-ena-explicit-casting-and-initialization-and-clea.patch b/debian/patches/features/all/ena/0008-net-ena-explicit-casting-and-initialization-and-clea.patch
new file mode 100644
index 000000000..59ea0566a
--- /dev/null
+++ b/debian/patches/features/all/ena/0008-net-ena-explicit-casting-and-initialization-and-clea.patch
@@ -0,0 +1,223 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Thu, 11 Oct 2018 11:26:22 +0300
+Subject: [PATCH 08/19] net: ena: explicit casting and initialization, and
+ clearer error handling
+Origin: https://git.kernel.org/linus/bd791175a6432d24fc5d7b348304276027372545
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_com.c | 39 ++++++++++++--------
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 5 +--
+ drivers/net/ethernet/amazon/ena/ena_netdev.h | 22 +++++------
+ 3 files changed, 36 insertions(+), 30 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.c
+@@ -235,7 +235,7 @@ static struct ena_comp_ctx *__ena_com_su
+ tail_masked = admin_queue->sq.tail & queue_size_mask;
+
+ /* In case of queue FULL */
+- cnt = atomic_read(&admin_queue->outstanding_cmds);
++ cnt = (u16)atomic_read(&admin_queue->outstanding_cmds);
+ if (cnt >= admin_queue->q_depth) {
+ pr_debug("admin queue is full.\n");
+ admin_queue->stats.out_of_space++;
+@@ -304,7 +304,7 @@ static struct ena_comp_ctx *ena_com_subm
+ struct ena_admin_acq_entry *comp,
+ size_t comp_size_in_bytes)
+ {
+- unsigned long flags;
++ unsigned long flags = 0;
+ struct ena_comp_ctx *comp_ctx;
+
+ spin_lock_irqsave(&admin_queue->q_lock, flags);
+@@ -332,7 +332,7 @@ static int ena_com_init_io_sq(struct ena
+
+ memset(&io_sq->desc_addr, 0x0, sizeof(io_sq->desc_addr));
+
+- io_sq->dma_addr_bits = ena_dev->dma_addr_bits;
++ io_sq->dma_addr_bits = (u8)ena_dev->dma_addr_bits;
+ io_sq->desc_entry_size =
+ (io_sq->direction == ENA_COM_IO_QUEUE_DIRECTION_TX) ?
+ sizeof(struct ena_eth_io_tx_desc) :
+@@ -486,7 +486,7 @@ static void ena_com_handle_admin_complet
+
+ /* Go over all the completions */
+ while ((READ_ONCE(cqe->acq_common_descriptor.flags) &
+- ENA_ADMIN_ACQ_COMMON_DESC_PHASE_MASK) == phase) {
++ ENA_ADMIN_ACQ_COMMON_DESC_PHASE_MASK) == phase) {
+ /* Do not read the rest of the completion entry before the
+ * phase bit was validated
+ */
+@@ -537,7 +537,8 @@ static int ena_com_comp_status_to_errno(
+ static int ena_com_wait_and_process_admin_cq_polling(struct ena_comp_ctx *comp_ctx,
+ struct ena_com_admin_queue *admin_queue)
+ {
+- unsigned long flags, timeout;
++ unsigned long flags = 0;
++ unsigned long timeout;
+ int ret;
+
+ timeout = jiffies + usecs_to_jiffies(admin_queue->completion_timeout);
+@@ -736,7 +737,7 @@ static int ena_com_config_llq_info(struc
+ static int ena_com_wait_and_process_admin_cq_interrupts(struct ena_comp_ctx *comp_ctx,
+ struct ena_com_admin_queue *admin_queue)
+ {
+- unsigned long flags;
++ unsigned long flags = 0;
+ int ret;
+
+ wait_for_completion_timeout(&comp_ctx->wait_event,
+@@ -782,7 +783,7 @@ static u32 ena_com_reg_bar_read32(struct
+ volatile struct ena_admin_ena_mmio_req_read_less_resp *read_resp =
+ mmio_read->read_resp;
+ u32 mmio_read_reg, ret, i;
+- unsigned long flags;
++ unsigned long flags = 0;
+ u32 timeout = mmio_read->reg_read_to;
+
+ might_sleep();
+@@ -1426,7 +1427,7 @@ void ena_com_abort_admin_commands(struct
+ void ena_com_wait_for_abort_completion(struct ena_com_dev *ena_dev)
+ {
+ struct ena_com_admin_queue *admin_queue = &ena_dev->admin_queue;
+- unsigned long flags;
++ unsigned long flags = 0;
+
+ spin_lock_irqsave(&admin_queue->q_lock, flags);
+ while (atomic_read(&admin_queue->outstanding_cmds) != 0) {
+@@ -1470,7 +1471,7 @@ bool ena_com_get_admin_running_state(str
+ void ena_com_set_admin_running_state(struct ena_com_dev *ena_dev, bool state)
+ {
+ struct ena_com_admin_queue *admin_queue = &ena_dev->admin_queue;
+- unsigned long flags;
++ unsigned long flags = 0;
+
+ spin_lock_irqsave(&admin_queue->q_lock, flags);
+ ena_dev->admin_queue.running_state = state;
+@@ -1504,7 +1505,7 @@ int ena_com_set_aenq_config(struct ena_c
+ }
+
+ if ((get_resp.u.aenq.supported_groups & groups_flag) != groups_flag) {
+- pr_warn("Trying to set unsupported aenq events. supported flag: %x asked flag: %x\n",
++ pr_warn("Trying to set unsupported aenq events. supported flag: 0x%x asked flag: 0x%x\n",
+ get_resp.u.aenq.supported_groups, groups_flag);
+ return -EOPNOTSUPP;
+ }
+@@ -1652,7 +1653,7 @@ int ena_com_mmio_reg_read_request_init(s
+ sizeof(*mmio_read->read_resp),
+ &mmio_read->read_resp_dma_addr, GFP_KERNEL);
+ if (unlikely(!mmio_read->read_resp))
+- return -ENOMEM;
++ goto err;
+
+ ena_com_mmio_reg_read_request_write_dev_addr(ena_dev);
+
+@@ -1661,6 +1662,10 @@ int ena_com_mmio_reg_read_request_init(s
+ mmio_read->readless_supported = true;
+
+ return 0;
++
++err:
++
++ return -ENOMEM;
+ }
+
+ void ena_com_set_mmio_read_mode(struct ena_com_dev *ena_dev, bool readless_supported)
+@@ -1961,6 +1966,7 @@ void ena_com_aenq_intr_handler(struct en
+ struct ena_admin_aenq_entry *aenq_e;
+ struct ena_admin_aenq_common_desc *aenq_common;
+ struct ena_com_aenq *aenq = &dev->aenq;
++ unsigned long long timestamp;
+ ena_aenq_handler handler_cb;
+ u16 masked_head, processed = 0;
+ u8 phase;
+@@ -1978,10 +1984,11 @@ void ena_com_aenq_intr_handler(struct en
+ */
+ dma_rmb();
+
++ timestamp =
++ (unsigned long long)aenq_common->timestamp_low |
++ ((unsigned long long)aenq_common->timestamp_high << 32);
+ pr_debug("AENQ! Group[%x] Syndrom[%x] timestamp: [%llus]\n",
+- aenq_common->group, aenq_common->syndrom,
+- (u64)aenq_common->timestamp_low +
+- ((u64)aenq_common->timestamp_high << 32));
++ aenq_common->group, aenq_common->syndrom, timestamp);
+
+ /* Handle specific event*/
+ handler_cb = ena_com_get_specific_aenq_cb(dev,
+@@ -2623,8 +2630,8 @@ int ena_com_allocate_host_info(struct en
+ if (unlikely(!host_attr->host_info))
+ return -ENOMEM;
+
+- host_attr->host_info->ena_spec_version =
+- ((ENA_COMMON_SPEC_VERSION_MAJOR << ENA_REGS_VERSION_MAJOR_VERSION_SHIFT) |
++ host_attr->host_info->ena_spec_version = ((ENA_COMMON_SPEC_VERSION_MAJOR <<
++ ENA_REGS_VERSION_MAJOR_VERSION_SHIFT) |
+ (ENA_COMMON_SPEC_VERSION_MINOR));
+
+ return 0;
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -2604,15 +2604,14 @@ static void ena_destroy_device(struct en
+
+ dev_up = test_bit(ENA_FLAG_DEV_UP, &adapter->flags);
+ adapter->dev_up_before_reset = dev_up;
+-
+ if (!graceful)
+ ena_com_set_admin_running_state(ena_dev, false);
+
+ if (test_bit(ENA_FLAG_DEV_UP, &adapter->flags))
+ ena_down(adapter);
+
+- /* Before releasing the ENA resources, a device reset is required.
+- * (to prevent the device from accessing them).
++ /* Stop the device from sending AENQ events (in case reset flag is set
++ * and device is up, ena_close already reset the device
+ * In case the reset flag is set and the device is up, ena_down()
+ * already perform the reset, so it can be skipped.
+ */
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+@@ -61,6 +61,17 @@
+ #define ENA_ADMIN_MSIX_VEC 1
+ #define ENA_MAX_MSIX_VEC(io_queues) (ENA_ADMIN_MSIX_VEC + (io_queues))
+
++/* The ENA buffer length fields is 16 bit long. So when PAGE_SIZE == 64kB the
++ * driver passes 0.
++ * Since the max packet size the ENA handles is ~9kB limit the buffer length to
++ * 16kB.
++ */
++#if PAGE_SIZE > SZ_16K
++#define ENA_PAGE_SIZE SZ_16K
++#else
++#define ENA_PAGE_SIZE PAGE_SIZE
++#endif
++
+ #define ENA_MIN_MSIX_VEC 2
+
+ #define ENA_REG_BAR 0
+@@ -362,15 +373,4 @@ void ena_dump_stats_to_buf(struct ena_ad
+
+ int ena_get_sset_count(struct net_device *netdev, int sset);
+
+-/* The ENA buffer length fields is 16 bit long. So when PAGE_SIZE == 64kB the
+- * driver passas 0.
+- * Since the max packet size the ENA handles is ~9kB limit the buffer length to
+- * 16kB.
+- */
+-#if PAGE_SIZE > SZ_16K
+-#define ENA_PAGE_SIZE SZ_16K
+-#else
+-#define ENA_PAGE_SIZE PAGE_SIZE
+-#endif
+-
+ #endif /* !(ENA_H) */
diff --git a/debian/patches/features/all/ena/0009-net-ena-limit-refill-Rx-threshold-to-256-to-avoid-la.patch b/debian/patches/features/all/ena/0009-net-ena-limit-refill-Rx-threshold-to-256-to-avoid-la.patch
new file mode 100644
index 000000000..3eaae9950
--- /dev/null
+++ b/debian/patches/features/all/ena/0009-net-ena-limit-refill-Rx-threshold-to-256-to-avoid-la.patch
@@ -0,0 +1,54 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Thu, 11 Oct 2018 11:26:23 +0300
+Subject: [PATCH 09/19] net: ena: limit refill Rx threshold to 256 to avoid
+ latency issues
+Origin: https://git.kernel.org/linus/0574bb806dad29a3dada0ee42b01645477d48282
+
+Currently Rx refill is done when the number of required descriptors is
+above 1/8 queue size. With a default of 1024 entries per queue the
+threshold is 128 descriptors.
+There is intention to increase the queue size to 8196 entries.
+In this case threshold of 1024 descriptors is too large and can hurt
+latency.
+Add another limitation to Rx threshold to be at most 256 descriptors.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 4 +++-
+ drivers/net/ethernet/amazon/ena/ena_netdev.h | 5 +++--
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -1122,7 +1122,9 @@ static int ena_clean_rx_irq(struct ena_r
+ rx_ring->next_to_clean = next_to_clean;
+
+ refill_required = ena_com_free_desc(rx_ring->ena_com_io_sq);
+- refill_threshold = rx_ring->ring_size / ENA_RX_REFILL_THRESH_DIVIDER;
++ refill_threshold =
++ min_t(int, rx_ring->ring_size / ENA_RX_REFILL_THRESH_DIVIDER,
++ ENA_RX_REFILL_THRESH_PACKET);
+
+ /* Optimization, try to batch new rx buffers */
+ if (refill_required > refill_threshold) {
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+@@ -106,10 +106,11 @@
+ */
+ #define ENA_TX_POLL_BUDGET_DIVIDER 4
+
+-/* Refill Rx queue when number of available descriptors is below
+- * QUEUE_SIZE / ENA_RX_REFILL_THRESH_DIVIDER
++/* Refill Rx queue when number of required descriptors is above
++ * QUEUE_SIZE / ENA_RX_REFILL_THRESH_DIVIDER or ENA_RX_REFILL_THRESH_PACKET
+ */
+ #define ENA_RX_REFILL_THRESH_DIVIDER 8
++#define ENA_RX_REFILL_THRESH_PACKET 256
+
+ /* Number of queues to check for missing queues per timer service */
+ #define ENA_MONITORED_TX_QUEUES 4
diff --git a/debian/patches/features/all/ena/0010-net-ena-change-rx-copybreak-default-to-reduce-kernel.patch b/debian/patches/features/all/ena/0010-net-ena-change-rx-copybreak-default-to-reduce-kernel.patch
new file mode 100644
index 000000000..6e493b217
--- /dev/null
+++ b/debian/patches/features/all/ena/0010-net-ena-change-rx-copybreak-default-to-reduce-kernel.patch
@@ -0,0 +1,28 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Thu, 11 Oct 2018 11:26:24 +0300
+Subject: [PATCH 10/19] net: ena: change rx copybreak default to reduce kernel
+ memory pressure
+Origin: https://git.kernel.org/linus/87731f0c681c9682c5521e5197d89e561b7da395
+
+Improves socket memory utilization when receiving packets larger
+than 128 bytes (the previous rx copybreak) and smaller than 256 bytes.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_netdev.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+@@ -81,7 +81,7 @@
+ #define ENA_DEFAULT_RING_SIZE (1024)
+
+ #define ENA_TX_WAKEUP_THRESH (MAX_SKB_FRAGS + 2)
+-#define ENA_DEFAULT_RX_COPYBREAK (128 - NET_IP_ALIGN)
++#define ENA_DEFAULT_RX_COPYBREAK (256 - NET_IP_ALIGN)
+
+ /* limit the buffer size to 600 bytes to handle MTU changes from very
+ * small to very large, in which case the number of buffers per packet
diff --git a/debian/patches/features/all/ena/0011-net-ena-remove-redundant-parameter-in-ena_com_admin_.patch b/debian/patches/features/all/ena/0011-net-ena-remove-redundant-parameter-in-ena_com_admin_.patch
new file mode 100644
index 000000000..ac5ab95e5
--- /dev/null
+++ b/debian/patches/features/all/ena/0011-net-ena-remove-redundant-parameter-in-ena_com_admin_.patch
@@ -0,0 +1,76 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Thu, 11 Oct 2018 11:26:25 +0300
+Subject: [PATCH 11/19] net: ena: remove redundant parameter in
+ ena_com_admin_init()
+Origin: https://git.kernel.org/linus/f1e90f6e2c1fb0e491f910540314015324fed1e2
+
+Remove redundant spinlock acquire parameter from ena_com_admin_init()
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_com.c | 6 ++----
+ drivers/net/ethernet/amazon/ena/ena_com.h | 5 +----
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 2 +-
+ 3 files changed, 4 insertions(+), 9 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.c
+@@ -1701,8 +1701,7 @@ void ena_com_mmio_reg_read_request_write
+ }
+
+ int ena_com_admin_init(struct ena_com_dev *ena_dev,
+- struct ena_aenq_handlers *aenq_handlers,
+- bool init_spinlock)
++ struct ena_aenq_handlers *aenq_handlers)
+ {
+ struct ena_com_admin_queue *admin_queue = &ena_dev->admin_queue;
+ u32 aq_caps, acq_caps, dev_sts, addr_low, addr_high;
+@@ -1728,8 +1727,7 @@ int ena_com_admin_init(struct ena_com_de
+
+ atomic_set(&admin_queue->outstanding_cmds, 0);
+
+- if (init_spinlock)
+- spin_lock_init(&admin_queue->q_lock);
++ spin_lock_init(&admin_queue->q_lock);
+
+ ret = ena_com_init_comp_ctxt(admin_queue);
+ if (ret)
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.h
+@@ -436,8 +436,6 @@ void ena_com_mmio_reg_read_request_destr
+ /* ena_com_admin_init - Init the admin and the async queues
+ * @ena_dev: ENA communication layer struct
+ * @aenq_handlers: Those handlers to be called upon event.
+- * @init_spinlock: Indicate if this method should init the admin spinlock or
+- * the spinlock was init before (for example, in a case of FLR).
+ *
+ * Initialize the admin submission and completion queues.
+ * Initialize the asynchronous events notification queues.
+@@ -445,8 +443,7 @@ void ena_com_mmio_reg_read_request_destr
+ * @return - 0 on success, negative value on failure.
+ */
+ int ena_com_admin_init(struct ena_com_dev *ena_dev,
+- struct ena_aenq_handlers *aenq_handlers,
+- bool init_spinlock);
++ struct ena_aenq_handlers *aenq_handlers);
+
+ /* ena_com_admin_destroy - Destroy the admin and the async events queues.
+ * @ena_dev: ENA communication layer struct
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -2508,7 +2508,7 @@ static int ena_device_init(struct ena_co
+ }
+
+ /* ENA admin level init */
+- rc = ena_com_admin_init(ena_dev, &aenq_handlers, true);
++ rc = ena_com_admin_init(ena_dev, &aenq_handlers);
+ if (rc) {
+ dev_err(dev,
+ "Can not initialize ena admin queue with device\n");
diff --git a/debian/patches/features/all/ena/0012-net-ena-update-driver-version-to-2.0.1.patch b/debian/patches/features/all/ena/0012-net-ena-update-driver-version-to-2.0.1.patch
new file mode 100644
index 000000000..ce4d8d8e0
--- /dev/null
+++ b/debian/patches/features/all/ena/0012-net-ena-update-driver-version-to-2.0.1.patch
@@ -0,0 +1,28 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Thu, 11 Oct 2018 11:26:26 +0300
+Subject: [PATCH 12/19] net: ena: update driver version to 2.0.1
+Origin: https://git.kernel.org/linus/3a7b9d8ddd200bdafaa3ef75b8544d2403eaa03b
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_netdev.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+@@ -43,9 +43,9 @@
+ #include "ena_com.h"
+ #include "ena_eth_com.h"
+
+-#define DRV_MODULE_VER_MAJOR 1
+-#define DRV_MODULE_VER_MINOR 5
+-#define DRV_MODULE_VER_SUBMINOR 0
++#define DRV_MODULE_VER_MAJOR 2
++#define DRV_MODULE_VER_MINOR 0
++#define DRV_MODULE_VER_SUBMINOR 1
+
+ #define DRV_MODULE_NAME "ena"
+ #ifndef DRV_MODULE_VERSION
diff --git a/debian/patches/features/all/ena/0013-net-ena-fix-indentations-in-ena_defs-for-better-read.patch b/debian/patches/features/all/ena/0013-net-ena-fix-indentations-in-ena_defs-for-better-read.patch
new file mode 100644
index 000000000..2e0ad4279
--- /dev/null
+++ b/debian/patches/features/all/ena/0013-net-ena-fix-indentations-in-ena_defs-for-better-read.patch
@@ -0,0 +1,1000 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Thu, 11 Oct 2018 11:26:27 +0300
+Subject: [PATCH 13/19] net: ena: fix indentations in ena_defs for better
+ readability
+Origin: https://git.kernel.org/linus/be26667cb3947c90322467f1d15ad86b02350e00
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ .../net/ethernet/amazon/ena/ena_admin_defs.h | 334 +++++++-----------
+ .../net/ethernet/amazon/ena/ena_eth_io_defs.h | 223 ++++++------
+ .../net/ethernet/amazon/ena/ena_regs_defs.h | 206 +++++------
+ 3 files changed, 338 insertions(+), 425 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
+@@ -32,119 +32,81 @@
+ #ifndef _ENA_ADMIN_H_
+ #define _ENA_ADMIN_H_
+
+-enum ena_admin_aq_opcode {
+- ENA_ADMIN_CREATE_SQ = 1,
+-
+- ENA_ADMIN_DESTROY_SQ = 2,
+-
+- ENA_ADMIN_CREATE_CQ = 3,
+-
+- ENA_ADMIN_DESTROY_CQ = 4,
+-
+- ENA_ADMIN_GET_FEATURE = 8,
+
+- ENA_ADMIN_SET_FEATURE = 9,
+-
+- ENA_ADMIN_GET_STATS = 11,
++enum ena_admin_aq_opcode {
++ ENA_ADMIN_CREATE_SQ = 1,
++ ENA_ADMIN_DESTROY_SQ = 2,
++ ENA_ADMIN_CREATE_CQ = 3,
++ ENA_ADMIN_DESTROY_CQ = 4,
++ ENA_ADMIN_GET_FEATURE = 8,
++ ENA_ADMIN_SET_FEATURE = 9,
++ ENA_ADMIN_GET_STATS = 11,
+ };
+
+ enum ena_admin_aq_completion_status {
+- ENA_ADMIN_SUCCESS = 0,
+-
+- ENA_ADMIN_RESOURCE_ALLOCATION_FAILURE = 1,
+-
+- ENA_ADMIN_BAD_OPCODE = 2,
+-
+- ENA_ADMIN_UNSUPPORTED_OPCODE = 3,
+-
+- ENA_ADMIN_MALFORMED_REQUEST = 4,
+-
++ ENA_ADMIN_SUCCESS = 0,
++ ENA_ADMIN_RESOURCE_ALLOCATION_FAILURE = 1,
++ ENA_ADMIN_BAD_OPCODE = 2,
++ ENA_ADMIN_UNSUPPORTED_OPCODE = 3,
++ ENA_ADMIN_MALFORMED_REQUEST = 4,
+ /* Additional status is provided in ACQ entry extended_status */
+- ENA_ADMIN_ILLEGAL_PARAMETER = 5,
+-
+- ENA_ADMIN_UNKNOWN_ERROR = 6,
+-
+- ENA_ADMIN_RESOURCE_BUSY = 7,
++ ENA_ADMIN_ILLEGAL_PARAMETER = 5,
++ ENA_ADMIN_UNKNOWN_ERROR = 6,
++ ENA_ADMIN_RESOURCE_BUSY = 7,
+ };
+
+ enum ena_admin_aq_feature_id {
+- ENA_ADMIN_DEVICE_ATTRIBUTES = 1,
+-
+- ENA_ADMIN_MAX_QUEUES_NUM = 2,
+-
+- ENA_ADMIN_HW_HINTS = 3,
+-
+- ENA_ADMIN_LLQ = 4,
+-
+- ENA_ADMIN_RSS_HASH_FUNCTION = 10,
+-
+- ENA_ADMIN_STATELESS_OFFLOAD_CONFIG = 11,
+-
+- ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG = 12,
+-
+- ENA_ADMIN_MTU = 14,
+-
+- ENA_ADMIN_RSS_HASH_INPUT = 18,
+-
+- ENA_ADMIN_INTERRUPT_MODERATION = 20,
+-
+- ENA_ADMIN_AENQ_CONFIG = 26,
+-
+- ENA_ADMIN_LINK_CONFIG = 27,
+-
+- ENA_ADMIN_HOST_ATTR_CONFIG = 28,
+-
+- ENA_ADMIN_FEATURES_OPCODE_NUM = 32,
++ ENA_ADMIN_DEVICE_ATTRIBUTES = 1,
++ ENA_ADMIN_MAX_QUEUES_NUM = 2,
++ ENA_ADMIN_HW_HINTS = 3,
++ ENA_ADMIN_LLQ = 4,
++ ENA_ADMIN_RSS_HASH_FUNCTION = 10,
++ ENA_ADMIN_STATELESS_OFFLOAD_CONFIG = 11,
++ ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG = 12,
++ ENA_ADMIN_MTU = 14,
++ ENA_ADMIN_RSS_HASH_INPUT = 18,
++ ENA_ADMIN_INTERRUPT_MODERATION = 20,
++ ENA_ADMIN_AENQ_CONFIG = 26,
++ ENA_ADMIN_LINK_CONFIG = 27,
++ ENA_ADMIN_HOST_ATTR_CONFIG = 28,
++ ENA_ADMIN_FEATURES_OPCODE_NUM = 32,
+ };
+
+ enum ena_admin_placement_policy_type {
+ /* descriptors and headers are in host memory */
+- ENA_ADMIN_PLACEMENT_POLICY_HOST = 1,
+-
++ ENA_ADMIN_PLACEMENT_POLICY_HOST = 1,
+ /* descriptors and headers are in device memory (a.k.a Low Latency
+ * Queue)
+ */
+- ENA_ADMIN_PLACEMENT_POLICY_DEV = 3,
++ ENA_ADMIN_PLACEMENT_POLICY_DEV = 3,
+ };
+
+ enum ena_admin_link_types {
+- ENA_ADMIN_LINK_SPEED_1G = 0x1,
+-
+- ENA_ADMIN_LINK_SPEED_2_HALF_G = 0x2,
+-
+- ENA_ADMIN_LINK_SPEED_5G = 0x4,
+-
+- ENA_ADMIN_LINK_SPEED_10G = 0x8,
+-
+- ENA_ADMIN_LINK_SPEED_25G = 0x10,
+-
+- ENA_ADMIN_LINK_SPEED_40G = 0x20,
+-
+- ENA_ADMIN_LINK_SPEED_50G = 0x40,
+-
+- ENA_ADMIN_LINK_SPEED_100G = 0x80,
+-
+- ENA_ADMIN_LINK_SPEED_200G = 0x100,
+-
+- ENA_ADMIN_LINK_SPEED_400G = 0x200,
++ ENA_ADMIN_LINK_SPEED_1G = 0x1,
++ ENA_ADMIN_LINK_SPEED_2_HALF_G = 0x2,
++ ENA_ADMIN_LINK_SPEED_5G = 0x4,
++ ENA_ADMIN_LINK_SPEED_10G = 0x8,
++ ENA_ADMIN_LINK_SPEED_25G = 0x10,
++ ENA_ADMIN_LINK_SPEED_40G = 0x20,
++ ENA_ADMIN_LINK_SPEED_50G = 0x40,
++ ENA_ADMIN_LINK_SPEED_100G = 0x80,
++ ENA_ADMIN_LINK_SPEED_200G = 0x100,
++ ENA_ADMIN_LINK_SPEED_400G = 0x200,
+ };
+
+ enum ena_admin_completion_policy_type {
+ /* completion queue entry for each sq descriptor */
+- ENA_ADMIN_COMPLETION_POLICY_DESC = 0,
+-
++ ENA_ADMIN_COMPLETION_POLICY_DESC = 0,
+ /* completion queue entry upon request in sq descriptor */
+- ENA_ADMIN_COMPLETION_POLICY_DESC_ON_DEMAND = 1,
+-
++ ENA_ADMIN_COMPLETION_POLICY_DESC_ON_DEMAND = 1,
+ /* current queue head pointer is updated in OS memory upon sq
+ * descriptor request
+ */
+- ENA_ADMIN_COMPLETION_POLICY_HEAD_ON_DEMAND = 2,
+-
++ ENA_ADMIN_COMPLETION_POLICY_HEAD_ON_DEMAND = 2,
+ /* current queue head pointer is updated in OS memory for each sq
+ * descriptor
+ */
+- ENA_ADMIN_COMPLETION_POLICY_HEAD = 3,
++ ENA_ADMIN_COMPLETION_POLICY_HEAD = 3,
+ };
+
+ /* basic stats return ena_admin_basic_stats while extanded stats return a
+@@ -152,15 +114,13 @@ enum ena_admin_completion_policy_type {
+ * device id
+ */
+ enum ena_admin_get_stats_type {
+- ENA_ADMIN_GET_STATS_TYPE_BASIC = 0,
+-
+- ENA_ADMIN_GET_STATS_TYPE_EXTENDED = 1,
++ ENA_ADMIN_GET_STATS_TYPE_BASIC = 0,
++ ENA_ADMIN_GET_STATS_TYPE_EXTENDED = 1,
+ };
+
+ enum ena_admin_get_stats_scope {
+- ENA_ADMIN_SPECIFIC_QUEUE = 0,
+-
+- ENA_ADMIN_ETH_TRAFFIC = 1,
++ ENA_ADMIN_SPECIFIC_QUEUE = 0,
++ ENA_ADMIN_ETH_TRAFFIC = 1,
+ };
+
+ struct ena_admin_aq_common_desc {
+@@ -231,7 +191,9 @@ struct ena_admin_acq_common_desc {
+
+ u16 extended_status;
+
+- /* serves as a hint what AQ entries can be revoked */
++ /* indicates to the driver which AQ entry has been consumed by the
++ * device and could be reused
++ */
+ u16 sq_head_indx;
+ };
+
+@@ -300,9 +262,8 @@ struct ena_admin_aq_create_sq_cmd {
+ };
+
+ enum ena_admin_sq_direction {
+- ENA_ADMIN_SQ_DIRECTION_TX = 1,
+-
+- ENA_ADMIN_SQ_DIRECTION_RX = 2,
++ ENA_ADMIN_SQ_DIRECTION_TX = 1,
++ ENA_ADMIN_SQ_DIRECTION_RX = 2,
+ };
+
+ struct ena_admin_acq_create_sq_resp_desc {
+@@ -664,9 +625,8 @@ struct ena_admin_feature_offload_desc {
+ };
+
+ enum ena_admin_hash_functions {
+- ENA_ADMIN_TOEPLITZ = 1,
+-
+- ENA_ADMIN_CRC32 = 2,
++ ENA_ADMIN_TOEPLITZ = 1,
++ ENA_ADMIN_CRC32 = 2,
+ };
+
+ struct ena_admin_feature_rss_flow_hash_control {
+@@ -692,50 +652,35 @@ struct ena_admin_feature_rss_flow_hash_f
+
+ /* RSS flow hash protocols */
+ enum ena_admin_flow_hash_proto {
+- ENA_ADMIN_RSS_TCP4 = 0,
+-
+- ENA_ADMIN_RSS_UDP4 = 1,
+-
+- ENA_ADMIN_RSS_TCP6 = 2,
+-
+- ENA_ADMIN_RSS_UDP6 = 3,
+-
+- ENA_ADMIN_RSS_IP4 = 4,
+-
+- ENA_ADMIN_RSS_IP6 = 5,
+-
+- ENA_ADMIN_RSS_IP4_FRAG = 6,
+-
+- ENA_ADMIN_RSS_NOT_IP = 7,
+-
++ ENA_ADMIN_RSS_TCP4 = 0,
++ ENA_ADMIN_RSS_UDP4 = 1,
++ ENA_ADMIN_RSS_TCP6 = 2,
++ ENA_ADMIN_RSS_UDP6 = 3,
++ ENA_ADMIN_RSS_IP4 = 4,
++ ENA_ADMIN_RSS_IP6 = 5,
++ ENA_ADMIN_RSS_IP4_FRAG = 6,
++ ENA_ADMIN_RSS_NOT_IP = 7,
+ /* TCPv6 with extension header */
+- ENA_ADMIN_RSS_TCP6_EX = 8,
+-
++ ENA_ADMIN_RSS_TCP6_EX = 8,
+ /* IPv6 with extension header */
+- ENA_ADMIN_RSS_IP6_EX = 9,
+-
+- ENA_ADMIN_RSS_PROTO_NUM = 16,
++ ENA_ADMIN_RSS_IP6_EX = 9,
++ ENA_ADMIN_RSS_PROTO_NUM = 16,
+ };
+
+ /* RSS flow hash fields */
+ enum ena_admin_flow_hash_fields {
+ /* Ethernet Dest Addr */
+- ENA_ADMIN_RSS_L2_DA = BIT(0),
+-
++ ENA_ADMIN_RSS_L2_DA = BIT(0),
+ /* Ethernet Src Addr */
+- ENA_ADMIN_RSS_L2_SA = BIT(1),
+-
++ ENA_ADMIN_RSS_L2_SA = BIT(1),
+ /* ipv4/6 Dest Addr */
+- ENA_ADMIN_RSS_L3_DA = BIT(2),
+-
++ ENA_ADMIN_RSS_L3_DA = BIT(2),
+ /* ipv4/6 Src Addr */
+- ENA_ADMIN_RSS_L3_SA = BIT(3),
+-
++ ENA_ADMIN_RSS_L3_SA = BIT(3),
+ /* tcp/udp Dest Port */
+- ENA_ADMIN_RSS_L4_DP = BIT(4),
+-
++ ENA_ADMIN_RSS_L4_DP = BIT(4),
+ /* tcp/udp Src Port */
+- ENA_ADMIN_RSS_L4_SP = BIT(5),
++ ENA_ADMIN_RSS_L4_SP = BIT(5),
+ };
+
+ struct ena_admin_proto_input {
+@@ -774,19 +719,13 @@ struct ena_admin_feature_rss_flow_hash_i
+ };
+
+ enum ena_admin_os_type {
+- ENA_ADMIN_OS_LINUX = 1,
+-
+- ENA_ADMIN_OS_WIN = 2,
+-
+- ENA_ADMIN_OS_DPDK = 3,
+-
+- ENA_ADMIN_OS_FREEBSD = 4,
+-
+- ENA_ADMIN_OS_IPXE = 5,
+-
+- ENA_ADMIN_OS_ESXI = 6,
+-
+- ENA_ADMIN_OS_GROUPS_NUM = 6,
++ ENA_ADMIN_OS_LINUX = 1,
++ ENA_ADMIN_OS_WIN = 2,
++ ENA_ADMIN_OS_DPDK = 3,
++ ENA_ADMIN_OS_FREEBSD = 4,
++ ENA_ADMIN_OS_IPXE = 5,
++ ENA_ADMIN_OS_ESXI = 6,
++ ENA_ADMIN_OS_GROUPS_NUM = 6,
+ };
+
+ struct ena_admin_host_info {
+@@ -981,25 +920,18 @@ struct ena_admin_aenq_common_desc {
+
+ /* asynchronous event notification groups */
+ enum ena_admin_aenq_group {
+- ENA_ADMIN_LINK_CHANGE = 0,
+-
+- ENA_ADMIN_FATAL_ERROR = 1,
+-
+- ENA_ADMIN_WARNING = 2,
+-
+- ENA_ADMIN_NOTIFICATION = 3,
+-
+- ENA_ADMIN_KEEP_ALIVE = 4,
+-
+- ENA_ADMIN_AENQ_GROUPS_NUM = 5,
++ ENA_ADMIN_LINK_CHANGE = 0,
++ ENA_ADMIN_FATAL_ERROR = 1,
++ ENA_ADMIN_WARNING = 2,
++ ENA_ADMIN_NOTIFICATION = 3,
++ ENA_ADMIN_KEEP_ALIVE = 4,
++ ENA_ADMIN_AENQ_GROUPS_NUM = 5,
+ };
+
+ enum ena_admin_aenq_notification_syndrom {
+- ENA_ADMIN_SUSPEND = 0,
+-
+- ENA_ADMIN_RESUME = 1,
+-
+- ENA_ADMIN_UPDATE_HINTS = 2,
++ ENA_ADMIN_SUSPEND = 0,
++ ENA_ADMIN_RESUME = 1,
++ ENA_ADMIN_UPDATE_HINTS = 2,
+ };
+
+ struct ena_admin_aenq_entry {
+@@ -1034,27 +966,27 @@ struct ena_admin_ena_mmio_req_read_less_
+ };
+
+ /* aq_common_desc */
+-#define ENA_ADMIN_AQ_COMMON_DESC_COMMAND_ID_MASK GENMASK(11, 0)
+-#define ENA_ADMIN_AQ_COMMON_DESC_PHASE_MASK BIT(0)
+-#define ENA_ADMIN_AQ_COMMON_DESC_CTRL_DATA_SHIFT 1
+-#define ENA_ADMIN_AQ_COMMON_DESC_CTRL_DATA_MASK BIT(1)
+-#define ENA_ADMIN_AQ_COMMON_DESC_CTRL_DATA_INDIRECT_SHIFT 2
+-#define ENA_ADMIN_AQ_COMMON_DESC_CTRL_DATA_INDIRECT_MASK BIT(2)
++#define ENA_ADMIN_AQ_COMMON_DESC_COMMAND_ID_MASK GENMASK(11, 0)
++#define ENA_ADMIN_AQ_COMMON_DESC_PHASE_MASK BIT(0)
++#define ENA_ADMIN_AQ_COMMON_DESC_CTRL_DATA_SHIFT 1
++#define ENA_ADMIN_AQ_COMMON_DESC_CTRL_DATA_MASK BIT(1)
++#define ENA_ADMIN_AQ_COMMON_DESC_CTRL_DATA_INDIRECT_SHIFT 2
++#define ENA_ADMIN_AQ_COMMON_DESC_CTRL_DATA_INDIRECT_MASK BIT(2)
+
+ /* sq */
+-#define ENA_ADMIN_SQ_SQ_DIRECTION_SHIFT 5
+-#define ENA_ADMIN_SQ_SQ_DIRECTION_MASK GENMASK(7, 5)
++#define ENA_ADMIN_SQ_SQ_DIRECTION_SHIFT 5
++#define ENA_ADMIN_SQ_SQ_DIRECTION_MASK GENMASK(7, 5)
+
+ /* acq_common_desc */
+-#define ENA_ADMIN_ACQ_COMMON_DESC_COMMAND_ID_MASK GENMASK(11, 0)
+-#define ENA_ADMIN_ACQ_COMMON_DESC_PHASE_MASK BIT(0)
++#define ENA_ADMIN_ACQ_COMMON_DESC_COMMAND_ID_MASK GENMASK(11, 0)
++#define ENA_ADMIN_ACQ_COMMON_DESC_PHASE_MASK BIT(0)
+
+ /* aq_create_sq_cmd */
+-#define ENA_ADMIN_AQ_CREATE_SQ_CMD_SQ_DIRECTION_SHIFT 5
+-#define ENA_ADMIN_AQ_CREATE_SQ_CMD_SQ_DIRECTION_MASK GENMASK(7, 5)
+-#define ENA_ADMIN_AQ_CREATE_SQ_CMD_PLACEMENT_POLICY_MASK GENMASK(3, 0)
+-#define ENA_ADMIN_AQ_CREATE_SQ_CMD_COMPLETION_POLICY_SHIFT 4
+-#define ENA_ADMIN_AQ_CREATE_SQ_CMD_COMPLETION_POLICY_MASK GENMASK(6, 4)
++#define ENA_ADMIN_AQ_CREATE_SQ_CMD_SQ_DIRECTION_SHIFT 5
++#define ENA_ADMIN_AQ_CREATE_SQ_CMD_SQ_DIRECTION_MASK GENMASK(7, 5)
++#define ENA_ADMIN_AQ_CREATE_SQ_CMD_PLACEMENT_POLICY_MASK GENMASK(3, 0)
++#define ENA_ADMIN_AQ_CREATE_SQ_CMD_COMPLETION_POLICY_SHIFT 4
++#define ENA_ADMIN_AQ_CREATE_SQ_CMD_COMPLETION_POLICY_MASK GENMASK(6, 4)
+ #define ENA_ADMIN_AQ_CREATE_SQ_CMD_IS_PHYSICALLY_CONTIGUOUS_MASK BIT(0)
+
+ /* aq_create_cq_cmd */
+@@ -1063,12 +995,12 @@ struct ena_admin_ena_mmio_req_read_less_
+ #define ENA_ADMIN_AQ_CREATE_CQ_CMD_CQ_ENTRY_SIZE_WORDS_MASK GENMASK(4, 0)
+
+ /* get_set_feature_common_desc */
+-#define ENA_ADMIN_GET_SET_FEATURE_COMMON_DESC_SELECT_MASK GENMASK(1, 0)
++#define ENA_ADMIN_GET_SET_FEATURE_COMMON_DESC_SELECT_MASK GENMASK(1, 0)
+
+ /* get_feature_link_desc */
+-#define ENA_ADMIN_GET_FEATURE_LINK_DESC_AUTONEG_MASK BIT(0)
+-#define ENA_ADMIN_GET_FEATURE_LINK_DESC_DUPLEX_SHIFT 1
+-#define ENA_ADMIN_GET_FEATURE_LINK_DESC_DUPLEX_MASK BIT(1)
++#define ENA_ADMIN_GET_FEATURE_LINK_DESC_AUTONEG_MASK BIT(0)
++#define ENA_ADMIN_GET_FEATURE_LINK_DESC_DUPLEX_SHIFT 1
++#define ENA_ADMIN_GET_FEATURE_LINK_DESC_DUPLEX_MASK BIT(1)
+
+ /* feature_offload_desc */
+ #define ENA_ADMIN_FEATURE_OFFLOAD_DESC_TX_L3_CSUM_IPV4_MASK BIT(0)
+@@ -1080,19 +1012,19 @@ struct ena_admin_ena_mmio_req_read_less_
+ #define ENA_ADMIN_FEATURE_OFFLOAD_DESC_TX_L4_IPV6_CSUM_PART_MASK BIT(3)
+ #define ENA_ADMIN_FEATURE_OFFLOAD_DESC_TX_L4_IPV6_CSUM_FULL_SHIFT 4
+ #define ENA_ADMIN_FEATURE_OFFLOAD_DESC_TX_L4_IPV6_CSUM_FULL_MASK BIT(4)
+-#define ENA_ADMIN_FEATURE_OFFLOAD_DESC_TSO_IPV4_SHIFT 5
+-#define ENA_ADMIN_FEATURE_OFFLOAD_DESC_TSO_IPV4_MASK BIT(5)
+-#define ENA_ADMIN_FEATURE_OFFLOAD_DESC_TSO_IPV6_SHIFT 6
+-#define ENA_ADMIN_FEATURE_OFFLOAD_DESC_TSO_IPV6_MASK BIT(6)
+-#define ENA_ADMIN_FEATURE_OFFLOAD_DESC_TSO_ECN_SHIFT 7
+-#define ENA_ADMIN_FEATURE_OFFLOAD_DESC_TSO_ECN_MASK BIT(7)
++#define ENA_ADMIN_FEATURE_OFFLOAD_DESC_TSO_IPV4_SHIFT 5
++#define ENA_ADMIN_FEATURE_OFFLOAD_DESC_TSO_IPV4_MASK BIT(5)
++#define ENA_ADMIN_FEATURE_OFFLOAD_DESC_TSO_IPV6_SHIFT 6
++#define ENA_ADMIN_FEATURE_OFFLOAD_DESC_TSO_IPV6_MASK BIT(6)
++#define ENA_ADMIN_FEATURE_OFFLOAD_DESC_TSO_ECN_SHIFT 7
++#define ENA_ADMIN_FEATURE_OFFLOAD_DESC_TSO_ECN_MASK BIT(7)
+ #define ENA_ADMIN_FEATURE_OFFLOAD_DESC_RX_L3_CSUM_IPV4_MASK BIT(0)
+ #define ENA_ADMIN_FEATURE_OFFLOAD_DESC_RX_L4_IPV4_CSUM_SHIFT 1
+ #define ENA_ADMIN_FEATURE_OFFLOAD_DESC_RX_L4_IPV4_CSUM_MASK BIT(1)
+ #define ENA_ADMIN_FEATURE_OFFLOAD_DESC_RX_L4_IPV6_CSUM_SHIFT 2
+ #define ENA_ADMIN_FEATURE_OFFLOAD_DESC_RX_L4_IPV6_CSUM_MASK BIT(2)
+-#define ENA_ADMIN_FEATURE_OFFLOAD_DESC_RX_HASH_SHIFT 3
+-#define ENA_ADMIN_FEATURE_OFFLOAD_DESC_RX_HASH_MASK BIT(3)
++#define ENA_ADMIN_FEATURE_OFFLOAD_DESC_RX_HASH_SHIFT 3
++#define ENA_ADMIN_FEATURE_OFFLOAD_DESC_RX_HASH_MASK BIT(3)
+
+ /* feature_rss_flow_hash_function */
+ #define ENA_ADMIN_FEATURE_RSS_FLOW_HASH_FUNCTION_FUNCS_MASK GENMASK(7, 0)
+@@ -1100,32 +1032,32 @@ struct ena_admin_ena_mmio_req_read_less_
+
+ /* feature_rss_flow_hash_input */
+ #define ENA_ADMIN_FEATURE_RSS_FLOW_HASH_INPUT_L3_SORT_SHIFT 1
+-#define ENA_ADMIN_FEATURE_RSS_FLOW_HASH_INPUT_L3_SORT_MASK BIT(1)
++#define ENA_ADMIN_FEATURE_RSS_FLOW_HASH_INPUT_L3_SORT_MASK BIT(1)
+ #define ENA_ADMIN_FEATURE_RSS_FLOW_HASH_INPUT_L4_SORT_SHIFT 2
+-#define ENA_ADMIN_FEATURE_RSS_FLOW_HASH_INPUT_L4_SORT_MASK BIT(2)
++#define ENA_ADMIN_FEATURE_RSS_FLOW_HASH_INPUT_L4_SORT_MASK BIT(2)
+ #define ENA_ADMIN_FEATURE_RSS_FLOW_HASH_INPUT_ENABLE_L3_SORT_SHIFT 1
+ #define ENA_ADMIN_FEATURE_RSS_FLOW_HASH_INPUT_ENABLE_L3_SORT_MASK BIT(1)
+ #define ENA_ADMIN_FEATURE_RSS_FLOW_HASH_INPUT_ENABLE_L4_SORT_SHIFT 2
+ #define ENA_ADMIN_FEATURE_RSS_FLOW_HASH_INPUT_ENABLE_L4_SORT_MASK BIT(2)
+
+ /* host_info */
+-#define ENA_ADMIN_HOST_INFO_MAJOR_MASK GENMASK(7, 0)
+-#define ENA_ADMIN_HOST_INFO_MINOR_SHIFT 8
+-#define ENA_ADMIN_HOST_INFO_MINOR_MASK GENMASK(15, 8)
+-#define ENA_ADMIN_HOST_INFO_SUB_MINOR_SHIFT 16
+-#define ENA_ADMIN_HOST_INFO_SUB_MINOR_MASK GENMASK(23, 16)
+-#define ENA_ADMIN_HOST_INFO_MODULE_TYPE_SHIFT 24
+-#define ENA_ADMIN_HOST_INFO_MODULE_TYPE_MASK GENMASK(31, 24)
+-#define ENA_ADMIN_HOST_INFO_FUNCTION_MASK GENMASK(2, 0)
+-#define ENA_ADMIN_HOST_INFO_DEVICE_SHIFT 3
+-#define ENA_ADMIN_HOST_INFO_DEVICE_MASK GENMASK(7, 3)
+-#define ENA_ADMIN_HOST_INFO_BUS_SHIFT 8
+-#define ENA_ADMIN_HOST_INFO_BUS_MASK GENMASK(15, 8)
++#define ENA_ADMIN_HOST_INFO_MAJOR_MASK GENMASK(7, 0)
++#define ENA_ADMIN_HOST_INFO_MINOR_SHIFT 8
++#define ENA_ADMIN_HOST_INFO_MINOR_MASK GENMASK(15, 8)
++#define ENA_ADMIN_HOST_INFO_SUB_MINOR_SHIFT 16
++#define ENA_ADMIN_HOST_INFO_SUB_MINOR_MASK GENMASK(23, 16)
++#define ENA_ADMIN_HOST_INFO_MODULE_TYPE_SHIFT 24
++#define ENA_ADMIN_HOST_INFO_MODULE_TYPE_MASK GENMASK(31, 24)
++#define ENA_ADMIN_HOST_INFO_FUNCTION_MASK GENMASK(2, 0)
++#define ENA_ADMIN_HOST_INFO_DEVICE_SHIFT 3
++#define ENA_ADMIN_HOST_INFO_DEVICE_MASK GENMASK(7, 3)
++#define ENA_ADMIN_HOST_INFO_BUS_SHIFT 8
++#define ENA_ADMIN_HOST_INFO_BUS_MASK GENMASK(15, 8)
+
+ /* aenq_common_desc */
+-#define ENA_ADMIN_AENQ_COMMON_DESC_PHASE_MASK BIT(0)
++#define ENA_ADMIN_AENQ_COMMON_DESC_PHASE_MASK BIT(0)
+
+ /* aenq_link_change_desc */
+-#define ENA_ADMIN_AENQ_LINK_CHANGE_DESC_LINK_STATUS_MASK BIT(0)
++#define ENA_ADMIN_AENQ_LINK_CHANGE_DESC_LINK_STATUS_MASK BIT(0)
+
+ #endif /*_ENA_ADMIN_H_ */
+Index: linux/drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h
+@@ -33,25 +33,18 @@
+ #define _ENA_ETH_IO_H_
+
+ enum ena_eth_io_l3_proto_index {
+- ENA_ETH_IO_L3_PROTO_UNKNOWN = 0,
+-
+- ENA_ETH_IO_L3_PROTO_IPV4 = 8,
+-
+- ENA_ETH_IO_L3_PROTO_IPV6 = 11,
+-
+- ENA_ETH_IO_L3_PROTO_FCOE = 21,
+-
+- ENA_ETH_IO_L3_PROTO_ROCE = 22,
++ ENA_ETH_IO_L3_PROTO_UNKNOWN = 0,
++ ENA_ETH_IO_L3_PROTO_IPV4 = 8,
++ ENA_ETH_IO_L3_PROTO_IPV6 = 11,
++ ENA_ETH_IO_L3_PROTO_FCOE = 21,
++ ENA_ETH_IO_L3_PROTO_ROCE = 22,
+ };
+
+ enum ena_eth_io_l4_proto_index {
+- ENA_ETH_IO_L4_PROTO_UNKNOWN = 0,
+-
+- ENA_ETH_IO_L4_PROTO_TCP = 12,
+-
+- ENA_ETH_IO_L4_PROTO_UDP = 13,
+-
+- ENA_ETH_IO_L4_PROTO_ROUTEABLE_ROCE = 23,
++ ENA_ETH_IO_L4_PROTO_UNKNOWN = 0,
++ ENA_ETH_IO_L4_PROTO_TCP = 12,
++ ENA_ETH_IO_L4_PROTO_UDP = 13,
++ ENA_ETH_IO_L4_PROTO_ROUTEABLE_ROCE = 23,
+ };
+
+ struct ena_eth_io_tx_desc {
+@@ -307,116 +300,116 @@ struct ena_eth_io_numa_node_cfg_reg {
+ };
+
+ /* tx_desc */
+-#define ENA_ETH_IO_TX_DESC_LENGTH_MASK GENMASK(15, 0)
+-#define ENA_ETH_IO_TX_DESC_REQ_ID_HI_SHIFT 16
+-#define ENA_ETH_IO_TX_DESC_REQ_ID_HI_MASK GENMASK(21, 16)
+-#define ENA_ETH_IO_TX_DESC_META_DESC_SHIFT 23
+-#define ENA_ETH_IO_TX_DESC_META_DESC_MASK BIT(23)
+-#define ENA_ETH_IO_TX_DESC_PHASE_SHIFT 24
+-#define ENA_ETH_IO_TX_DESC_PHASE_MASK BIT(24)
+-#define ENA_ETH_IO_TX_DESC_FIRST_SHIFT 26
+-#define ENA_ETH_IO_TX_DESC_FIRST_MASK BIT(26)
+-#define ENA_ETH_IO_TX_DESC_LAST_SHIFT 27
+-#define ENA_ETH_IO_TX_DESC_LAST_MASK BIT(27)
+-#define ENA_ETH_IO_TX_DESC_COMP_REQ_SHIFT 28
+-#define ENA_ETH_IO_TX_DESC_COMP_REQ_MASK BIT(28)
+-#define ENA_ETH_IO_TX_DESC_L3_PROTO_IDX_MASK GENMASK(3, 0)
+-#define ENA_ETH_IO_TX_DESC_DF_SHIFT 4
+-#define ENA_ETH_IO_TX_DESC_DF_MASK BIT(4)
+-#define ENA_ETH_IO_TX_DESC_TSO_EN_SHIFT 7
+-#define ENA_ETH_IO_TX_DESC_TSO_EN_MASK BIT(7)
+-#define ENA_ETH_IO_TX_DESC_L4_PROTO_IDX_SHIFT 8
+-#define ENA_ETH_IO_TX_DESC_L4_PROTO_IDX_MASK GENMASK(12, 8)
+-#define ENA_ETH_IO_TX_DESC_L3_CSUM_EN_SHIFT 13
+-#define ENA_ETH_IO_TX_DESC_L3_CSUM_EN_MASK BIT(13)
+-#define ENA_ETH_IO_TX_DESC_L4_CSUM_EN_SHIFT 14
+-#define ENA_ETH_IO_TX_DESC_L4_CSUM_EN_MASK BIT(14)
+-#define ENA_ETH_IO_TX_DESC_ETHERNET_FCS_DIS_SHIFT 15
+-#define ENA_ETH_IO_TX_DESC_ETHERNET_FCS_DIS_MASK BIT(15)
+-#define ENA_ETH_IO_TX_DESC_L4_CSUM_PARTIAL_SHIFT 17
+-#define ENA_ETH_IO_TX_DESC_L4_CSUM_PARTIAL_MASK BIT(17)
+-#define ENA_ETH_IO_TX_DESC_REQ_ID_LO_SHIFT 22
+-#define ENA_ETH_IO_TX_DESC_REQ_ID_LO_MASK GENMASK(31, 22)
+-#define ENA_ETH_IO_TX_DESC_ADDR_HI_MASK GENMASK(15, 0)
+-#define ENA_ETH_IO_TX_DESC_HEADER_LENGTH_SHIFT 24
+-#define ENA_ETH_IO_TX_DESC_HEADER_LENGTH_MASK GENMASK(31, 24)
++#define ENA_ETH_IO_TX_DESC_LENGTH_MASK GENMASK(15, 0)
++#define ENA_ETH_IO_TX_DESC_REQ_ID_HI_SHIFT 16
++#define ENA_ETH_IO_TX_DESC_REQ_ID_HI_MASK GENMASK(21, 16)
++#define ENA_ETH_IO_TX_DESC_META_DESC_SHIFT 23
++#define ENA_ETH_IO_TX_DESC_META_DESC_MASK BIT(23)
++#define ENA_ETH_IO_TX_DESC_PHASE_SHIFT 24
++#define ENA_ETH_IO_TX_DESC_PHASE_MASK BIT(24)
++#define ENA_ETH_IO_TX_DESC_FIRST_SHIFT 26
++#define ENA_ETH_IO_TX_DESC_FIRST_MASK BIT(26)
++#define ENA_ETH_IO_TX_DESC_LAST_SHIFT 27
++#define ENA_ETH_IO_TX_DESC_LAST_MASK BIT(27)
++#define ENA_ETH_IO_TX_DESC_COMP_REQ_SHIFT 28
++#define ENA_ETH_IO_TX_DESC_COMP_REQ_MASK BIT(28)
++#define ENA_ETH_IO_TX_DESC_L3_PROTO_IDX_MASK GENMASK(3, 0)
++#define ENA_ETH_IO_TX_DESC_DF_SHIFT 4
++#define ENA_ETH_IO_TX_DESC_DF_MASK BIT(4)
++#define ENA_ETH_IO_TX_DESC_TSO_EN_SHIFT 7
++#define ENA_ETH_IO_TX_DESC_TSO_EN_MASK BIT(7)
++#define ENA_ETH_IO_TX_DESC_L4_PROTO_IDX_SHIFT 8
++#define ENA_ETH_IO_TX_DESC_L4_PROTO_IDX_MASK GENMASK(12, 8)
++#define ENA_ETH_IO_TX_DESC_L3_CSUM_EN_SHIFT 13
++#define ENA_ETH_IO_TX_DESC_L3_CSUM_EN_MASK BIT(13)
++#define ENA_ETH_IO_TX_DESC_L4_CSUM_EN_SHIFT 14
++#define ENA_ETH_IO_TX_DESC_L4_CSUM_EN_MASK BIT(14)
++#define ENA_ETH_IO_TX_DESC_ETHERNET_FCS_DIS_SHIFT 15
++#define ENA_ETH_IO_TX_DESC_ETHERNET_FCS_DIS_MASK BIT(15)
++#define ENA_ETH_IO_TX_DESC_L4_CSUM_PARTIAL_SHIFT 17
++#define ENA_ETH_IO_TX_DESC_L4_CSUM_PARTIAL_MASK BIT(17)
++#define ENA_ETH_IO_TX_DESC_REQ_ID_LO_SHIFT 22
++#define ENA_ETH_IO_TX_DESC_REQ_ID_LO_MASK GENMASK(31, 22)
++#define ENA_ETH_IO_TX_DESC_ADDR_HI_MASK GENMASK(15, 0)
++#define ENA_ETH_IO_TX_DESC_HEADER_LENGTH_SHIFT 24
++#define ENA_ETH_IO_TX_DESC_HEADER_LENGTH_MASK GENMASK(31, 24)
+
+ /* tx_meta_desc */
+-#define ENA_ETH_IO_TX_META_DESC_REQ_ID_LO_MASK GENMASK(9, 0)
+-#define ENA_ETH_IO_TX_META_DESC_EXT_VALID_SHIFT 14
+-#define ENA_ETH_IO_TX_META_DESC_EXT_VALID_MASK BIT(14)
+-#define ENA_ETH_IO_TX_META_DESC_MSS_HI_SHIFT 16
+-#define ENA_ETH_IO_TX_META_DESC_MSS_HI_MASK GENMASK(19, 16)
+-#define ENA_ETH_IO_TX_META_DESC_ETH_META_TYPE_SHIFT 20
+-#define ENA_ETH_IO_TX_META_DESC_ETH_META_TYPE_MASK BIT(20)
+-#define ENA_ETH_IO_TX_META_DESC_META_STORE_SHIFT 21
+-#define ENA_ETH_IO_TX_META_DESC_META_STORE_MASK BIT(21)
+-#define ENA_ETH_IO_TX_META_DESC_META_DESC_SHIFT 23
+-#define ENA_ETH_IO_TX_META_DESC_META_DESC_MASK BIT(23)
+-#define ENA_ETH_IO_TX_META_DESC_PHASE_SHIFT 24
+-#define ENA_ETH_IO_TX_META_DESC_PHASE_MASK BIT(24)
+-#define ENA_ETH_IO_TX_META_DESC_FIRST_SHIFT 26
+-#define ENA_ETH_IO_TX_META_DESC_FIRST_MASK BIT(26)
+-#define ENA_ETH_IO_TX_META_DESC_LAST_SHIFT 27
+-#define ENA_ETH_IO_TX_META_DESC_LAST_MASK BIT(27)
+-#define ENA_ETH_IO_TX_META_DESC_COMP_REQ_SHIFT 28
+-#define ENA_ETH_IO_TX_META_DESC_COMP_REQ_MASK BIT(28)
+-#define ENA_ETH_IO_TX_META_DESC_REQ_ID_HI_MASK GENMASK(5, 0)
+-#define ENA_ETH_IO_TX_META_DESC_L3_HDR_LEN_MASK GENMASK(7, 0)
+-#define ENA_ETH_IO_TX_META_DESC_L3_HDR_OFF_SHIFT 8
+-#define ENA_ETH_IO_TX_META_DESC_L3_HDR_OFF_MASK GENMASK(15, 8)
+-#define ENA_ETH_IO_TX_META_DESC_L4_HDR_LEN_IN_WORDS_SHIFT 16
+-#define ENA_ETH_IO_TX_META_DESC_L4_HDR_LEN_IN_WORDS_MASK GENMASK(21, 16)
+-#define ENA_ETH_IO_TX_META_DESC_MSS_LO_SHIFT 22
+-#define ENA_ETH_IO_TX_META_DESC_MSS_LO_MASK GENMASK(31, 22)
++#define ENA_ETH_IO_TX_META_DESC_REQ_ID_LO_MASK GENMASK(9, 0)
++#define ENA_ETH_IO_TX_META_DESC_EXT_VALID_SHIFT 14
++#define ENA_ETH_IO_TX_META_DESC_EXT_VALID_MASK BIT(14)
++#define ENA_ETH_IO_TX_META_DESC_MSS_HI_SHIFT 16
++#define ENA_ETH_IO_TX_META_DESC_MSS_HI_MASK GENMASK(19, 16)
++#define ENA_ETH_IO_TX_META_DESC_ETH_META_TYPE_SHIFT 20
++#define ENA_ETH_IO_TX_META_DESC_ETH_META_TYPE_MASK BIT(20)
++#define ENA_ETH_IO_TX_META_DESC_META_STORE_SHIFT 21
++#define ENA_ETH_IO_TX_META_DESC_META_STORE_MASK BIT(21)
++#define ENA_ETH_IO_TX_META_DESC_META_DESC_SHIFT 23
++#define ENA_ETH_IO_TX_META_DESC_META_DESC_MASK BIT(23)
++#define ENA_ETH_IO_TX_META_DESC_PHASE_SHIFT 24
++#define ENA_ETH_IO_TX_META_DESC_PHASE_MASK BIT(24)
++#define ENA_ETH_IO_TX_META_DESC_FIRST_SHIFT 26
++#define ENA_ETH_IO_TX_META_DESC_FIRST_MASK BIT(26)
++#define ENA_ETH_IO_TX_META_DESC_LAST_SHIFT 27
++#define ENA_ETH_IO_TX_META_DESC_LAST_MASK BIT(27)
++#define ENA_ETH_IO_TX_META_DESC_COMP_REQ_SHIFT 28
++#define ENA_ETH_IO_TX_META_DESC_COMP_REQ_MASK BIT(28)
++#define ENA_ETH_IO_TX_META_DESC_REQ_ID_HI_MASK GENMASK(5, 0)
++#define ENA_ETH_IO_TX_META_DESC_L3_HDR_LEN_MASK GENMASK(7, 0)
++#define ENA_ETH_IO_TX_META_DESC_L3_HDR_OFF_SHIFT 8
++#define ENA_ETH_IO_TX_META_DESC_L3_HDR_OFF_MASK GENMASK(15, 8)
++#define ENA_ETH_IO_TX_META_DESC_L4_HDR_LEN_IN_WORDS_SHIFT 16
++#define ENA_ETH_IO_TX_META_DESC_L4_HDR_LEN_IN_WORDS_MASK GENMASK(21, 16)
++#define ENA_ETH_IO_TX_META_DESC_MSS_LO_SHIFT 22
++#define ENA_ETH_IO_TX_META_DESC_MSS_LO_MASK GENMASK(31, 22)
+
+ /* tx_cdesc */
+-#define ENA_ETH_IO_TX_CDESC_PHASE_MASK BIT(0)
++#define ENA_ETH_IO_TX_CDESC_PHASE_MASK BIT(0)
+
+ /* rx_desc */
+-#define ENA_ETH_IO_RX_DESC_PHASE_MASK BIT(0)
+-#define ENA_ETH_IO_RX_DESC_FIRST_SHIFT 2
+-#define ENA_ETH_IO_RX_DESC_FIRST_MASK BIT(2)
+-#define ENA_ETH_IO_RX_DESC_LAST_SHIFT 3
+-#define ENA_ETH_IO_RX_DESC_LAST_MASK BIT(3)
+-#define ENA_ETH_IO_RX_DESC_COMP_REQ_SHIFT 4
+-#define ENA_ETH_IO_RX_DESC_COMP_REQ_MASK BIT(4)
++#define ENA_ETH_IO_RX_DESC_PHASE_MASK BIT(0)
++#define ENA_ETH_IO_RX_DESC_FIRST_SHIFT 2
++#define ENA_ETH_IO_RX_DESC_FIRST_MASK BIT(2)
++#define ENA_ETH_IO_RX_DESC_LAST_SHIFT 3
++#define ENA_ETH_IO_RX_DESC_LAST_MASK BIT(3)
++#define ENA_ETH_IO_RX_DESC_COMP_REQ_SHIFT 4
++#define ENA_ETH_IO_RX_DESC_COMP_REQ_MASK BIT(4)
+
+ /* rx_cdesc_base */
+-#define ENA_ETH_IO_RX_CDESC_BASE_L3_PROTO_IDX_MASK GENMASK(4, 0)
+-#define ENA_ETH_IO_RX_CDESC_BASE_SRC_VLAN_CNT_SHIFT 5
+-#define ENA_ETH_IO_RX_CDESC_BASE_SRC_VLAN_CNT_MASK GENMASK(6, 5)
+-#define ENA_ETH_IO_RX_CDESC_BASE_L4_PROTO_IDX_SHIFT 8
+-#define ENA_ETH_IO_RX_CDESC_BASE_L4_PROTO_IDX_MASK GENMASK(12, 8)
+-#define ENA_ETH_IO_RX_CDESC_BASE_L3_CSUM_ERR_SHIFT 13
+-#define ENA_ETH_IO_RX_CDESC_BASE_L3_CSUM_ERR_MASK BIT(13)
+-#define ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_ERR_SHIFT 14
+-#define ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_ERR_MASK BIT(14)
+-#define ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_SHIFT 15
+-#define ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_MASK BIT(15)
+-#define ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_CHECKED_SHIFT 16
+-#define ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_CHECKED_MASK BIT(16)
+-#define ENA_ETH_IO_RX_CDESC_BASE_PHASE_SHIFT 24
+-#define ENA_ETH_IO_RX_CDESC_BASE_PHASE_MASK BIT(24)
+-#define ENA_ETH_IO_RX_CDESC_BASE_L3_CSUM2_SHIFT 25
+-#define ENA_ETH_IO_RX_CDESC_BASE_L3_CSUM2_MASK BIT(25)
+-#define ENA_ETH_IO_RX_CDESC_BASE_FIRST_SHIFT 26
+-#define ENA_ETH_IO_RX_CDESC_BASE_FIRST_MASK BIT(26)
+-#define ENA_ETH_IO_RX_CDESC_BASE_LAST_SHIFT 27
+-#define ENA_ETH_IO_RX_CDESC_BASE_LAST_MASK BIT(27)
+-#define ENA_ETH_IO_RX_CDESC_BASE_BUFFER_SHIFT 30
+-#define ENA_ETH_IO_RX_CDESC_BASE_BUFFER_MASK BIT(30)
++#define ENA_ETH_IO_RX_CDESC_BASE_L3_PROTO_IDX_MASK GENMASK(4, 0)
++#define ENA_ETH_IO_RX_CDESC_BASE_SRC_VLAN_CNT_SHIFT 5
++#define ENA_ETH_IO_RX_CDESC_BASE_SRC_VLAN_CNT_MASK GENMASK(6, 5)
++#define ENA_ETH_IO_RX_CDESC_BASE_L4_PROTO_IDX_SHIFT 8
++#define ENA_ETH_IO_RX_CDESC_BASE_L4_PROTO_IDX_MASK GENMASK(12, 8)
++#define ENA_ETH_IO_RX_CDESC_BASE_L3_CSUM_ERR_SHIFT 13
++#define ENA_ETH_IO_RX_CDESC_BASE_L3_CSUM_ERR_MASK BIT(13)
++#define ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_ERR_SHIFT 14
++#define ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_ERR_MASK BIT(14)
++#define ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_SHIFT 15
++#define ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_MASK BIT(15)
++#define ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_CHECKED_SHIFT 16
++#define ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_CHECKED_MASK BIT(16)
++#define ENA_ETH_IO_RX_CDESC_BASE_PHASE_SHIFT 24
++#define ENA_ETH_IO_RX_CDESC_BASE_PHASE_MASK BIT(24)
++#define ENA_ETH_IO_RX_CDESC_BASE_L3_CSUM2_SHIFT 25
++#define ENA_ETH_IO_RX_CDESC_BASE_L3_CSUM2_MASK BIT(25)
++#define ENA_ETH_IO_RX_CDESC_BASE_FIRST_SHIFT 26
++#define ENA_ETH_IO_RX_CDESC_BASE_FIRST_MASK BIT(26)
++#define ENA_ETH_IO_RX_CDESC_BASE_LAST_SHIFT 27
++#define ENA_ETH_IO_RX_CDESC_BASE_LAST_MASK BIT(27)
++#define ENA_ETH_IO_RX_CDESC_BASE_BUFFER_SHIFT 30
++#define ENA_ETH_IO_RX_CDESC_BASE_BUFFER_MASK BIT(30)
+
+ /* intr_reg */
+-#define ENA_ETH_IO_INTR_REG_RX_INTR_DELAY_MASK GENMASK(14, 0)
+-#define ENA_ETH_IO_INTR_REG_TX_INTR_DELAY_SHIFT 15
+-#define ENA_ETH_IO_INTR_REG_TX_INTR_DELAY_MASK GENMASK(29, 15)
+-#define ENA_ETH_IO_INTR_REG_INTR_UNMASK_SHIFT 30
+-#define ENA_ETH_IO_INTR_REG_INTR_UNMASK_MASK BIT(30)
++#define ENA_ETH_IO_INTR_REG_RX_INTR_DELAY_MASK GENMASK(14, 0)
++#define ENA_ETH_IO_INTR_REG_TX_INTR_DELAY_SHIFT 15
++#define ENA_ETH_IO_INTR_REG_TX_INTR_DELAY_MASK GENMASK(29, 15)
++#define ENA_ETH_IO_INTR_REG_INTR_UNMASK_SHIFT 30
++#define ENA_ETH_IO_INTR_REG_INTR_UNMASK_MASK BIT(30)
+
+ /* numa_node_cfg_reg */
+-#define ENA_ETH_IO_NUMA_NODE_CFG_REG_NUMA_MASK GENMASK(7, 0)
+-#define ENA_ETH_IO_NUMA_NODE_CFG_REG_ENABLED_SHIFT 31
+-#define ENA_ETH_IO_NUMA_NODE_CFG_REG_ENABLED_MASK BIT(31)
++#define ENA_ETH_IO_NUMA_NODE_CFG_REG_NUMA_MASK GENMASK(7, 0)
++#define ENA_ETH_IO_NUMA_NODE_CFG_REG_ENABLED_SHIFT 31
++#define ENA_ETH_IO_NUMA_NODE_CFG_REG_ENABLED_MASK BIT(31)
+
+ #endif /*_ENA_ETH_IO_H_ */
+Index: linux/drivers/net/ethernet/amazon/ena/ena_regs_defs.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_regs_defs.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_regs_defs.h
+@@ -33,137 +33,125 @@
+ #define _ENA_REGS_H_
+
+ enum ena_regs_reset_reason_types {
+- ENA_REGS_RESET_NORMAL = 0,
+-
+- ENA_REGS_RESET_KEEP_ALIVE_TO = 1,
+-
+- ENA_REGS_RESET_ADMIN_TO = 2,
+-
+- ENA_REGS_RESET_MISS_TX_CMPL = 3,
+-
+- ENA_REGS_RESET_INV_RX_REQ_ID = 4,
+-
+- ENA_REGS_RESET_INV_TX_REQ_ID = 5,
+-
+- ENA_REGS_RESET_TOO_MANY_RX_DESCS = 6,
+-
+- ENA_REGS_RESET_INIT_ERR = 7,
+-
+- ENA_REGS_RESET_DRIVER_INVALID_STATE = 8,
+-
+- ENA_REGS_RESET_OS_TRIGGER = 9,
+-
+- ENA_REGS_RESET_OS_NETDEV_WD = 10,
+-
+- ENA_REGS_RESET_SHUTDOWN = 11,
+-
+- ENA_REGS_RESET_USER_TRIGGER = 12,
+-
+- ENA_REGS_RESET_GENERIC = 13,
+-
+- ENA_REGS_RESET_MISS_INTERRUPT = 14,
++ ENA_REGS_RESET_NORMAL = 0,
++ ENA_REGS_RESET_KEEP_ALIVE_TO = 1,
++ ENA_REGS_RESET_ADMIN_TO = 2,
++ ENA_REGS_RESET_MISS_TX_CMPL = 3,
++ ENA_REGS_RESET_INV_RX_REQ_ID = 4,
++ ENA_REGS_RESET_INV_TX_REQ_ID = 5,
++ ENA_REGS_RESET_TOO_MANY_RX_DESCS = 6,
++ ENA_REGS_RESET_INIT_ERR = 7,
++ ENA_REGS_RESET_DRIVER_INVALID_STATE = 8,
++ ENA_REGS_RESET_OS_TRIGGER = 9,
++ ENA_REGS_RESET_OS_NETDEV_WD = 10,
++ ENA_REGS_RESET_SHUTDOWN = 11,
++ ENA_REGS_RESET_USER_TRIGGER = 12,
++ ENA_REGS_RESET_GENERIC = 13,
++ ENA_REGS_RESET_MISS_INTERRUPT = 14,
+ };
+
+ /* ena_registers offsets */
+-#define ENA_REGS_VERSION_OFF 0x0
+-#define ENA_REGS_CONTROLLER_VERSION_OFF 0x4
+-#define ENA_REGS_CAPS_OFF 0x8
+-#define ENA_REGS_CAPS_EXT_OFF 0xc
+-#define ENA_REGS_AQ_BASE_LO_OFF 0x10
+-#define ENA_REGS_AQ_BASE_HI_OFF 0x14
+-#define ENA_REGS_AQ_CAPS_OFF 0x18
+-#define ENA_REGS_ACQ_BASE_LO_OFF 0x20
+-#define ENA_REGS_ACQ_BASE_HI_OFF 0x24
+-#define ENA_REGS_ACQ_CAPS_OFF 0x28
+-#define ENA_REGS_AQ_DB_OFF 0x2c
+-#define ENA_REGS_ACQ_TAIL_OFF 0x30
+-#define ENA_REGS_AENQ_CAPS_OFF 0x34
+-#define ENA_REGS_AENQ_BASE_LO_OFF 0x38
+-#define ENA_REGS_AENQ_BASE_HI_OFF 0x3c
+-#define ENA_REGS_AENQ_HEAD_DB_OFF 0x40
+-#define ENA_REGS_AENQ_TAIL_OFF 0x44
+-#define ENA_REGS_INTR_MASK_OFF 0x4c
+-#define ENA_REGS_DEV_CTL_OFF 0x54
+-#define ENA_REGS_DEV_STS_OFF 0x58
+-#define ENA_REGS_MMIO_REG_READ_OFF 0x5c
+-#define ENA_REGS_MMIO_RESP_LO_OFF 0x60
+-#define ENA_REGS_MMIO_RESP_HI_OFF 0x64
+-#define ENA_REGS_RSS_IND_ENTRY_UPDATE_OFF 0x68
++
++/* 0 base */
++#define ENA_REGS_VERSION_OFF 0x0
++#define ENA_REGS_CONTROLLER_VERSION_OFF 0x4
++#define ENA_REGS_CAPS_OFF 0x8
++#define ENA_REGS_CAPS_EXT_OFF 0xc
++#define ENA_REGS_AQ_BASE_LO_OFF 0x10
++#define ENA_REGS_AQ_BASE_HI_OFF 0x14
++#define ENA_REGS_AQ_CAPS_OFF 0x18
++#define ENA_REGS_ACQ_BASE_LO_OFF 0x20
++#define ENA_REGS_ACQ_BASE_HI_OFF 0x24
++#define ENA_REGS_ACQ_CAPS_OFF 0x28
++#define ENA_REGS_AQ_DB_OFF 0x2c
++#define ENA_REGS_ACQ_TAIL_OFF 0x30
++#define ENA_REGS_AENQ_CAPS_OFF 0x34
++#define ENA_REGS_AENQ_BASE_LO_OFF 0x38
++#define ENA_REGS_AENQ_BASE_HI_OFF 0x3c
++#define ENA_REGS_AENQ_HEAD_DB_OFF 0x40
++#define ENA_REGS_AENQ_TAIL_OFF 0x44
++#define ENA_REGS_INTR_MASK_OFF 0x4c
++#define ENA_REGS_DEV_CTL_OFF 0x54
++#define ENA_REGS_DEV_STS_OFF 0x58
++#define ENA_REGS_MMIO_REG_READ_OFF 0x5c
++#define ENA_REGS_MMIO_RESP_LO_OFF 0x60
++#define ENA_REGS_MMIO_RESP_HI_OFF 0x64
++#define ENA_REGS_RSS_IND_ENTRY_UPDATE_OFF 0x68
+
+ /* version register */
+-#define ENA_REGS_VERSION_MINOR_VERSION_MASK 0xff
+-#define ENA_REGS_VERSION_MAJOR_VERSION_SHIFT 8
+-#define ENA_REGS_VERSION_MAJOR_VERSION_MASK 0xff00
++#define ENA_REGS_VERSION_MINOR_VERSION_MASK 0xff
++#define ENA_REGS_VERSION_MAJOR_VERSION_SHIFT 8
++#define ENA_REGS_VERSION_MAJOR_VERSION_MASK 0xff00
+
+ /* controller_version register */
+-#define ENA_REGS_CONTROLLER_VERSION_SUBMINOR_VERSION_MASK 0xff
+-#define ENA_REGS_CONTROLLER_VERSION_MINOR_VERSION_SHIFT 8
+-#define ENA_REGS_CONTROLLER_VERSION_MINOR_VERSION_MASK 0xff00
+-#define ENA_REGS_CONTROLLER_VERSION_MAJOR_VERSION_SHIFT 16
+-#define ENA_REGS_CONTROLLER_VERSION_MAJOR_VERSION_MASK 0xff0000
+-#define ENA_REGS_CONTROLLER_VERSION_IMPL_ID_SHIFT 24
+-#define ENA_REGS_CONTROLLER_VERSION_IMPL_ID_MASK 0xff000000
++#define ENA_REGS_CONTROLLER_VERSION_SUBMINOR_VERSION_MASK 0xff
++#define ENA_REGS_CONTROLLER_VERSION_MINOR_VERSION_SHIFT 8
++#define ENA_REGS_CONTROLLER_VERSION_MINOR_VERSION_MASK 0xff00
++#define ENA_REGS_CONTROLLER_VERSION_MAJOR_VERSION_SHIFT 16
++#define ENA_REGS_CONTROLLER_VERSION_MAJOR_VERSION_MASK 0xff0000
++#define ENA_REGS_CONTROLLER_VERSION_IMPL_ID_SHIFT 24
++#define ENA_REGS_CONTROLLER_VERSION_IMPL_ID_MASK 0xff000000
+
+ /* caps register */
+-#define ENA_REGS_CAPS_CONTIGUOUS_QUEUE_REQUIRED_MASK 0x1
+-#define ENA_REGS_CAPS_RESET_TIMEOUT_SHIFT 1
+-#define ENA_REGS_CAPS_RESET_TIMEOUT_MASK 0x3e
+-#define ENA_REGS_CAPS_DMA_ADDR_WIDTH_SHIFT 8
+-#define ENA_REGS_CAPS_DMA_ADDR_WIDTH_MASK 0xff00
+-#define ENA_REGS_CAPS_ADMIN_CMD_TO_SHIFT 16
+-#define ENA_REGS_CAPS_ADMIN_CMD_TO_MASK 0xf0000
++#define ENA_REGS_CAPS_CONTIGUOUS_QUEUE_REQUIRED_MASK 0x1
++#define ENA_REGS_CAPS_RESET_TIMEOUT_SHIFT 1
++#define ENA_REGS_CAPS_RESET_TIMEOUT_MASK 0x3e
++#define ENA_REGS_CAPS_DMA_ADDR_WIDTH_SHIFT 8
++#define ENA_REGS_CAPS_DMA_ADDR_WIDTH_MASK 0xff00
++#define ENA_REGS_CAPS_ADMIN_CMD_TO_SHIFT 16
++#define ENA_REGS_CAPS_ADMIN_CMD_TO_MASK 0xf0000
+
+ /* aq_caps register */
+-#define ENA_REGS_AQ_CAPS_AQ_DEPTH_MASK 0xffff
+-#define ENA_REGS_AQ_CAPS_AQ_ENTRY_SIZE_SHIFT 16
+-#define ENA_REGS_AQ_CAPS_AQ_ENTRY_SIZE_MASK 0xffff0000
++#define ENA_REGS_AQ_CAPS_AQ_DEPTH_MASK 0xffff
++#define ENA_REGS_AQ_CAPS_AQ_ENTRY_SIZE_SHIFT 16
++#define ENA_REGS_AQ_CAPS_AQ_ENTRY_SIZE_MASK 0xffff0000
+
+ /* acq_caps register */
+-#define ENA_REGS_ACQ_CAPS_ACQ_DEPTH_MASK 0xffff
+-#define ENA_REGS_ACQ_CAPS_ACQ_ENTRY_SIZE_SHIFT 16
+-#define ENA_REGS_ACQ_CAPS_ACQ_ENTRY_SIZE_MASK 0xffff0000
++#define ENA_REGS_ACQ_CAPS_ACQ_DEPTH_MASK 0xffff
++#define ENA_REGS_ACQ_CAPS_ACQ_ENTRY_SIZE_SHIFT 16
++#define ENA_REGS_ACQ_CAPS_ACQ_ENTRY_SIZE_MASK 0xffff0000
+
+ /* aenq_caps register */
+-#define ENA_REGS_AENQ_CAPS_AENQ_DEPTH_MASK 0xffff
+-#define ENA_REGS_AENQ_CAPS_AENQ_ENTRY_SIZE_SHIFT 16
+-#define ENA_REGS_AENQ_CAPS_AENQ_ENTRY_SIZE_MASK 0xffff0000
++#define ENA_REGS_AENQ_CAPS_AENQ_DEPTH_MASK 0xffff
++#define ENA_REGS_AENQ_CAPS_AENQ_ENTRY_SIZE_SHIFT 16
++#define ENA_REGS_AENQ_CAPS_AENQ_ENTRY_SIZE_MASK 0xffff0000
+
+ /* dev_ctl register */
+-#define ENA_REGS_DEV_CTL_DEV_RESET_MASK 0x1
+-#define ENA_REGS_DEV_CTL_AQ_RESTART_SHIFT 1
+-#define ENA_REGS_DEV_CTL_AQ_RESTART_MASK 0x2
+-#define ENA_REGS_DEV_CTL_QUIESCENT_SHIFT 2
+-#define ENA_REGS_DEV_CTL_QUIESCENT_MASK 0x4
+-#define ENA_REGS_DEV_CTL_IO_RESUME_SHIFT 3
+-#define ENA_REGS_DEV_CTL_IO_RESUME_MASK 0x8
+-#define ENA_REGS_DEV_CTL_RESET_REASON_SHIFT 28
+-#define ENA_REGS_DEV_CTL_RESET_REASON_MASK 0xf0000000
++#define ENA_REGS_DEV_CTL_DEV_RESET_MASK 0x1
++#define ENA_REGS_DEV_CTL_AQ_RESTART_SHIFT 1
++#define ENA_REGS_DEV_CTL_AQ_RESTART_MASK 0x2
++#define ENA_REGS_DEV_CTL_QUIESCENT_SHIFT 2
++#define ENA_REGS_DEV_CTL_QUIESCENT_MASK 0x4
++#define ENA_REGS_DEV_CTL_IO_RESUME_SHIFT 3
++#define ENA_REGS_DEV_CTL_IO_RESUME_MASK 0x8
++#define ENA_REGS_DEV_CTL_RESET_REASON_SHIFT 28
++#define ENA_REGS_DEV_CTL_RESET_REASON_MASK 0xf0000000
+
+ /* dev_sts register */
+-#define ENA_REGS_DEV_STS_READY_MASK 0x1
+-#define ENA_REGS_DEV_STS_AQ_RESTART_IN_PROGRESS_SHIFT 1
+-#define ENA_REGS_DEV_STS_AQ_RESTART_IN_PROGRESS_MASK 0x2
+-#define ENA_REGS_DEV_STS_AQ_RESTART_FINISHED_SHIFT 2
+-#define ENA_REGS_DEV_STS_AQ_RESTART_FINISHED_MASK 0x4
+-#define ENA_REGS_DEV_STS_RESET_IN_PROGRESS_SHIFT 3
+-#define ENA_REGS_DEV_STS_RESET_IN_PROGRESS_MASK 0x8
+-#define ENA_REGS_DEV_STS_RESET_FINISHED_SHIFT 4
+-#define ENA_REGS_DEV_STS_RESET_FINISHED_MASK 0x10
+-#define ENA_REGS_DEV_STS_FATAL_ERROR_SHIFT 5
+-#define ENA_REGS_DEV_STS_FATAL_ERROR_MASK 0x20
+-#define ENA_REGS_DEV_STS_QUIESCENT_STATE_IN_PROGRESS_SHIFT 6
+-#define ENA_REGS_DEV_STS_QUIESCENT_STATE_IN_PROGRESS_MASK 0x40
+-#define ENA_REGS_DEV_STS_QUIESCENT_STATE_ACHIEVED_SHIFT 7
+-#define ENA_REGS_DEV_STS_QUIESCENT_STATE_ACHIEVED_MASK 0x80
++#define ENA_REGS_DEV_STS_READY_MASK 0x1
++#define ENA_REGS_DEV_STS_AQ_RESTART_IN_PROGRESS_SHIFT 1
++#define ENA_REGS_DEV_STS_AQ_RESTART_IN_PROGRESS_MASK 0x2
++#define ENA_REGS_DEV_STS_AQ_RESTART_FINISHED_SHIFT 2
++#define ENA_REGS_DEV_STS_AQ_RESTART_FINISHED_MASK 0x4
++#define ENA_REGS_DEV_STS_RESET_IN_PROGRESS_SHIFT 3
++#define ENA_REGS_DEV_STS_RESET_IN_PROGRESS_MASK 0x8
++#define ENA_REGS_DEV_STS_RESET_FINISHED_SHIFT 4
++#define ENA_REGS_DEV_STS_RESET_FINISHED_MASK 0x10
++#define ENA_REGS_DEV_STS_FATAL_ERROR_SHIFT 5
++#define ENA_REGS_DEV_STS_FATAL_ERROR_MASK 0x20
++#define ENA_REGS_DEV_STS_QUIESCENT_STATE_IN_PROGRESS_SHIFT 6
++#define ENA_REGS_DEV_STS_QUIESCENT_STATE_IN_PROGRESS_MASK 0x40
++#define ENA_REGS_DEV_STS_QUIESCENT_STATE_ACHIEVED_SHIFT 7
++#define ENA_REGS_DEV_STS_QUIESCENT_STATE_ACHIEVED_MASK 0x80
+
+ /* mmio_reg_read register */
+-#define ENA_REGS_MMIO_REG_READ_REQ_ID_MASK 0xffff
+-#define ENA_REGS_MMIO_REG_READ_REG_OFF_SHIFT 16
+-#define ENA_REGS_MMIO_REG_READ_REG_OFF_MASK 0xffff0000
++#define ENA_REGS_MMIO_REG_READ_REQ_ID_MASK 0xffff
++#define ENA_REGS_MMIO_REG_READ_REG_OFF_SHIFT 16
++#define ENA_REGS_MMIO_REG_READ_REG_OFF_MASK 0xffff0000
+
+ /* rss_ind_entry_update register */
+-#define ENA_REGS_RSS_IND_ENTRY_UPDATE_INDEX_MASK 0xffff
+-#define ENA_REGS_RSS_IND_ENTRY_UPDATE_CQ_IDX_SHIFT 16
+-#define ENA_REGS_RSS_IND_ENTRY_UPDATE_CQ_IDX_MASK 0xffff0000
++#define ENA_REGS_RSS_IND_ENTRY_UPDATE_INDEX_MASK 0xffff
++#define ENA_REGS_RSS_IND_ENTRY_UPDATE_CQ_IDX_SHIFT 16
++#define ENA_REGS_RSS_IND_ENTRY_UPDATE_CQ_IDX_MASK 0xffff0000
+
+ #endif /*_ENA_REGS_H_ */
diff --git a/debian/patches/features/all/ena/0015-net-ena-enable-Low-Latency-Queues.patch b/debian/patches/features/all/ena/0015-net-ena-enable-Low-Latency-Queues.patch
new file mode 100644
index 000000000..6161a87ba
--- /dev/null
+++ b/debian/patches/features/all/ena/0015-net-ena-enable-Low-Latency-Queues.patch
@@ -0,0 +1,50 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Wed, 17 Oct 2018 15:33:23 +0300
+Subject: [PATCH 15/19] net: ena: enable Low Latency Queues
+Origin: https://git.kernel.org/linus/9fd255928d7ffb56d8466fab3331d0b2f40aa8c7
+
+Use the new API to enable usage of LLQ.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 18 ++++--------------
+ 1 file changed, 4 insertions(+), 14 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -3022,20 +3022,10 @@ static int ena_calc_io_queue_num(struct
+ int io_sq_num, io_queue_num;
+
+ /* In case of LLQ use the llq number in the get feature cmd */
+- if (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV) {
+- io_sq_num = get_feat_ctx->max_queues.max_legacy_llq_num;
+-
+- if (io_sq_num == 0) {
+- dev_err(&pdev->dev,
+- "Trying to use LLQ but llq_num is 0. Fall back into regular queues\n");
+-
+- ena_dev->tx_mem_queue_type =
+- ENA_ADMIN_PLACEMENT_POLICY_HOST;
+- io_sq_num = get_feat_ctx->max_queues.max_sq_num;
+- }
+- } else {
++ if (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV)
++ io_sq_num = get_feat_ctx->llq.max_llq_num;
++ else
+ io_sq_num = get_feat_ctx->max_queues.max_sq_num;
+- }
+
+ io_queue_num = min_t(int, num_online_cpus(), ENA_MAX_NUM_IO_QUEUES);
+ io_queue_num = min_t(int, io_queue_num, io_sq_num);
+@@ -3238,7 +3228,7 @@ static int ena_calc_queue_size(struct pc
+
+ if (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV)
+ queue_size = min_t(u32, queue_size,
+- get_feat_ctx->max_queues.max_legacy_llq_depth);
++ get_feat_ctx->llq.max_llq_depth);
+
+ queue_size = rounddown_pow_of_two(queue_size);
+
diff --git a/debian/patches/features/all/ena/0016-net-ena-fix-compilation-error-in-xtensa-architecture.patch b/debian/patches/features/all/ena/0016-net-ena-fix-compilation-error-in-xtensa-architecture.patch
new file mode 100644
index 000000000..b37c7a169
--- /dev/null
+++ b/debian/patches/features/all/ena/0016-net-ena-fix-compilation-error-in-xtensa-architecture.patch
@@ -0,0 +1,31 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Sun, 21 Oct 2018 18:07:14 +0300
+Subject: [PATCH 16/19] net: ena: fix compilation error in xtensa architecture
+Origin: https://git.kernel.org/linus/00f17a8219f02139119d8b4547e032bf4888fa0d
+
+linux/prefetch.h is never explicitly included in ena_com, although
+functions from it, such as prefetchw(), are used throughout ena_com.
+This is an inclusion bug, and we fix it here by explicitly including
+linux/prefetch.h. The bug was exposed when the driver was compiled
+for the xtensa architecture.
+
+Fixes: 689b2bdaaa14 ("net: ena: add functions for handling Low Latency Queues in ena_com")
+Fixes: 8c590f977638 ("ena: Fix Kconfig dependency on X86")
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_com.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.h
+@@ -38,6 +38,7 @@
+ #include <linux/dma-mapping.h>
+ #include <linux/gfp.h>
+ #include <linux/io.h>
++#include <linux/prefetch.h>
+ #include <linux/sched.h>
+ #include <linux/sizes.h>
+ #include <linux/spinlock.h>
diff --git a/debian/patches/features/all/ena/0017-net-ena-fix-crash-during-ena_remove.patch b/debian/patches/features/all/ena/0017-net-ena-fix-crash-during-ena_remove.patch
new file mode 100644
index 000000000..59f2b13b7
--- /dev/null
+++ b/debian/patches/features/all/ena/0017-net-ena-fix-crash-during-ena_remove.patch
@@ -0,0 +1,97 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Mon, 19 Nov 2018 12:05:21 +0200
+Subject: [PATCH 18/19] net: ena: fix crash during ena_remove()
+Origin: https://git.kernel.org/linus/58a54b9c62e206b8d5f6e59020bcb178fc271d8e
+
+In ena_remove() we have the following stack call:
+ena_remove()
+ unregister_netdev()
+ ena_destroy_device()
+ netif_carrier_off()
+
+Calling netif_carrier_off() causes linkwatch to try to handle the
+link change event on the already unregistered netdev, which leads
+to a read from an unreadable memory address.
+
+This patch switches the order of the two functions, so that
+netif_carrier_off() is called on a regiestered netdev.
+
+To accomplish this fix we also had to:
+1. Remove the set bit ENA_FLAG_TRIGGER_RESET
+2. Add a sanitiy check in ena_close()
+both to prevent double device reset (when calling unregister_netdev()
+ena_close is called, but the device was already deleted in
+ena_destroy_device()).
+3. Set the admin_queue running state to false to avoid using it after
+device was reset (for example when calling ena_destroy_all_io_queues()
+right after ena_com_dev_reset() in ena_down)
+
+Fixes: 944b28aa2982 ("net: ena: fix missing lock during device destruction")
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 21 ++++++++++----------
+ 1 file changed, 10 insertions(+), 11 deletions(-)
+
+--- a/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -1853,6 +1853,8 @@ static void ena_down(struct ena_adapter
+ rc = ena_com_dev_reset(adapter->ena_dev, adapter->reset_reason);
+ if (rc)
+ dev_err(&adapter->pdev->dev, "Device reset failed\n");
++ /* stop submitting admin commands on a device that was reset */
++ ena_com_set_admin_running_state(adapter->ena_dev, false);
+ }
+
+ ena_destroy_all_io_queues(adapter);
+@@ -1919,6 +1921,9 @@ static int ena_close(struct net_device *
+
+ netif_dbg(adapter, ifdown, netdev, "%s\n", __func__);
+
++ if (!test_bit(ENA_FLAG_DEVICE_RUNNING, &adapter->flags))
++ return 0;
++
+ if (test_bit(ENA_FLAG_DEV_UP, &adapter->flags))
+ ena_down(adapter);
+
+@@ -2618,9 +2623,7 @@ static void ena_destroy_device(struct en
+ ena_down(adapter);
+
+ /* Stop the device from sending AENQ events (in case reset flag is set
+- * and device is up, ena_close already reset the device
+- * In case the reset flag is set and the device is up, ena_down()
+- * already perform the reset, so it can be skipped.
++ * and device is up, ena_down() already reset the device.
+ */
+ if (!(test_bit(ENA_FLAG_TRIGGER_RESET, &adapter->flags) && dev_up))
+ ena_com_dev_reset(adapter->ena_dev, adapter->reset_reason);
+@@ -3455,6 +3458,8 @@ err_rss:
+ ena_com_rss_destroy(ena_dev);
+ err_free_msix:
+ ena_com_dev_reset(ena_dev, ENA_REGS_RESET_INIT_ERR);
++ /* stop submitting admin commands on a device that was reset */
++ ena_com_set_admin_running_state(ena_dev, false);
+ ena_free_mgmnt_irq(adapter);
+ ena_disable_msix(adapter);
+ err_worker_destroy:
+@@ -3504,18 +3509,12 @@ static void ena_remove(struct pci_dev *p
+ del_timer_sync(&adapter->timer_service);
+ cancel_work_sync(&adapter->reset_task);
+
+- unregister_netdev(netdev);
+-
+- /* If the device is running then we want to make sure the device will be
+- * reset to make sure no more events will be issued by the device.
+- */
+- if (test_bit(ENA_FLAG_DEVICE_RUNNING, &adapter->flags))
+- set_bit(ENA_FLAG_TRIGGER_RESET, &adapter->flags);
+-
+ rtnl_lock();
+ ena_destroy_device(adapter, true);
+ rtnl_unlock();
+
++ unregister_netdev(netdev);
++
+ free_netdev(netdev);
+
+ ena_com_rss_destroy(ena_dev);
diff --git a/debian/patches/features/all/ena/0018-net-ena-update-driver-version-from-2.0.1-to-2.0.2.patch b/debian/patches/features/all/ena/0018-net-ena-update-driver-version-from-2.0.1-to-2.0.2.patch
new file mode 100644
index 000000000..68194bdc9
--- /dev/null
+++ b/debian/patches/features/all/ena/0018-net-ena-update-driver-version-from-2.0.1-to-2.0.2.patch
@@ -0,0 +1,26 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Mon, 19 Nov 2018 12:05:22 +0200
+Subject: [PATCH 19/19] net: ena: update driver version from 2.0.1 to 2.0.2
+Origin: https://git.kernel.org/linus/4c23738a3f9f203a9b41c89e030eaa8ee241f90f
+
+Update driver version due to critical bug fixes.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_netdev.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+@@ -45,7 +45,7 @@
+
+ #define DRV_MODULE_VER_MAJOR 2
+ #define DRV_MODULE_VER_MINOR 0
+-#define DRV_MODULE_VER_SUBMINOR 1
++#define DRV_MODULE_VER_SUBMINOR 2
+
+ #define DRV_MODULE_NAME "ena"
+ #ifndef DRV_MODULE_VERSION
diff --git a/debian/patches/features/all/ena/net-ena-Fix-bug-where-ring-allocation-backoff-stoppe.patch b/debian/patches/features/all/ena/net-ena-Fix-bug-where-ring-allocation-backoff-stoppe.patch
new file mode 100644
index 000000000..d2e7da1ab
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-Fix-bug-where-ring-allocation-backoff-stoppe.patch
@@ -0,0 +1,39 @@
+From: Sameeh Jubran <sameehj@amazon.com>
+Date: Sun, 23 Jun 2019 10:11:10 +0300
+Subject: [PATCH] net: ena: Fix bug where ring allocation backoff stopped too
+ late
+Origin: https://git.kernel.org/linus/3e5bfb189e1a65df132fd0e3fa00fbb6feec1431
+Bug-Debian: https://bugs.debian.org/941291
+
+The current code of create_queues_with_size_backoff() allows the ring size
+to become as small as ENA_MIN_RING_SIZE/2. This is a bug since we don't
+want the queue ring to be smaller than ENA_MIN_RING_SIZE
+
+In this commit we change the loop's termination condition to look at the
+queue size of the next iteration instead of that of the current one,
+so that the minimal queue size again becomes ENA_MIN_RING_SIZE.
+
+Fixes: eece4d2ab9d2 ("net: ena: add ethtool function for changing io queue sizes")
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -1836,8 +1836,8 @@ err_setup_tx:
+ if (cur_rx_ring_size >= cur_tx_ring_size)
+ new_rx_ring_size = cur_rx_ring_size / 2;
+
+- if (cur_tx_ring_size < ENA_MIN_RING_SIZE ||
+- cur_rx_ring_size < ENA_MIN_RING_SIZE) {
++ if (new_tx_ring_size < ENA_MIN_RING_SIZE ||
++ new_rx_ring_size < ENA_MIN_RING_SIZE) {
+ netif_err(adapter, ifup, adapter->netdev,
+ "Queue creation failed with the smallest possible queue size of %d for both queues. Not retrying with smaller queues\n",
+ ENA_MIN_RING_SIZE);
diff --git a/debian/patches/features/all/ena/net-ena-add-MAX_QUEUES_EXT-get-feature-admin-command.patch b/debian/patches/features/all/ena/net-ena-add-MAX_QUEUES_EXT-get-feature-admin-command.patch
new file mode 100644
index 000000000..bf790f061
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-add-MAX_QUEUES_EXT-get-feature-admin-command.patch
@@ -0,0 +1,345 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Tue, 11 Jun 2019 14:58:05 +0300
+Subject: [PATCH] net: ena: add MAX_QUEUES_EXT get feature admin command
+Origin: https://git.kernel.org/linus/ba8ef506fb91005fc4808370b7587ab7bf4bd918
+Bug-Debian: https://bugs.debian.org/941291
+
+Add a new admin command to support different queue size for Tx/Rx
+queues (the change also support different SQ/CQ sizes)
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ .../net/ethernet/amazon/ena/ena_admin_defs.h | 56 +++++++++++++-
+ drivers/net/ethernet/amazon/ena/ena_com.c | 76 ++++++++++++-------
+ drivers/net/ethernet/amazon/ena/ena_com.h | 3 +
+ 3 files changed, 105 insertions(+), 30 deletions(-)
+
+--- a/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
++++ b/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
+@@ -60,6 +60,7 @@ enum ena_admin_aq_feature_id {
+ ENA_ADMIN_MAX_QUEUES_NUM = 2,
+ ENA_ADMIN_HW_HINTS = 3,
+ ENA_ADMIN_LLQ = 4,
++ ENA_ADMIN_MAX_QUEUES_EXT = 7,
+ ENA_ADMIN_RSS_HASH_FUNCTION = 10,
+ ENA_ADMIN_STATELESS_OFFLOAD_CONFIG = 11,
+ ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG = 12,
+@@ -421,7 +422,13 @@ struct ena_admin_get_set_feature_common_
+ /* as appears in ena_admin_aq_feature_id */
+ u8 feature_id;
+
+- u16 reserved16;
++ /* The driver specifies the max feature version it supports and the
++ * device responds with the currently supported feature version. The
++ * field is zero based
++ */
++ u8 feature_version;
++
++ u8 reserved8;
+ };
+
+ struct ena_admin_device_attr_feature_desc {
+@@ -531,6 +538,34 @@ struct ena_admin_feature_llq_desc {
+ u32 max_tx_burst_size;
+ };
+
++struct ena_admin_queue_ext_feature_fields {
++ u32 max_tx_sq_num;
++
++ u32 max_tx_cq_num;
++
++ u32 max_rx_sq_num;
++
++ u32 max_rx_cq_num;
++
++ u32 max_tx_sq_depth;
++
++ u32 max_tx_cq_depth;
++
++ u32 max_rx_sq_depth;
++
++ u32 max_rx_cq_depth;
++
++ u32 max_tx_header_size;
++
++ /* Maximum Descriptors number, including meta descriptor, allowed for
++ * a single Tx packet
++ */
++ u16 max_per_packet_tx_descs;
++
++ /* Maximum Descriptors number allowed for a single Rx packet */
++ u16 max_per_packet_rx_descs;
++};
++
+ struct ena_admin_queue_feature_desc {
+ u32 max_sq_num;
+
+@@ -837,6 +872,19 @@ struct ena_admin_get_feat_cmd {
+ u32 raw[11];
+ };
+
++struct ena_admin_queue_ext_feature_desc {
++ /* version */
++ u8 version;
++
++ u8 reserved1[3];
++
++ union {
++ struct ena_admin_queue_ext_feature_fields max_queue_ext;
++
++ u32 raw[10];
++ };
++};
++
+ struct ena_admin_get_feat_resp {
+ struct ena_admin_acq_common_desc acq_common_desc;
+
+@@ -849,6 +897,8 @@ struct ena_admin_get_feat_resp {
+
+ struct ena_admin_queue_feature_desc max_queue;
+
++ struct ena_admin_queue_ext_feature_desc max_queue_ext;
++
+ struct ena_admin_feature_aenq_desc aenq;
+
+ struct ena_admin_get_feature_link_desc link;
+@@ -913,7 +963,9 @@ struct ena_admin_aenq_common_desc {
+
+ u16 syndrom;
+
+- /* 0 : phase */
++ /* 0 : phase
++ * 7:1 : reserved - MBZ
++ */
+ u8 flags;
+
+ u8 reserved1[3];
+--- a/drivers/net/ethernet/amazon/ena/ena_com.c
++++ b/drivers/net/ethernet/amazon/ena/ena_com.c
+@@ -983,7 +983,8 @@ static int ena_com_get_feature_ex(struct
+ struct ena_admin_get_feat_resp *get_resp,
+ enum ena_admin_aq_feature_id feature_id,
+ dma_addr_t control_buf_dma_addr,
+- u32 control_buff_size)
++ u32 control_buff_size,
++ u8 feature_ver)
+ {
+ struct ena_com_admin_queue *admin_queue;
+ struct ena_admin_get_feat_cmd get_cmd;
+@@ -1014,7 +1015,7 @@ static int ena_com_get_feature_ex(struct
+ }
+
+ get_cmd.control_buffer.length = control_buff_size;
+-
++ get_cmd.feat_common.feature_version = feature_ver;
+ get_cmd.feat_common.feature_id = feature_id;
+
+ ret = ena_com_execute_admin_command(admin_queue,
+@@ -1034,13 +1035,15 @@ static int ena_com_get_feature_ex(struct
+
+ static int ena_com_get_feature(struct ena_com_dev *ena_dev,
+ struct ena_admin_get_feat_resp *get_resp,
+- enum ena_admin_aq_feature_id feature_id)
++ enum ena_admin_aq_feature_id feature_id,
++ u8 feature_ver)
+ {
+ return ena_com_get_feature_ex(ena_dev,
+ get_resp,
+ feature_id,
+ 0,
+- 0);
++ 0,
++ feature_ver);
+ }
+
+ static void ena_com_hash_key_fill_default_key(struct ena_com_dev *ena_dev)
+@@ -1118,7 +1121,7 @@ static int ena_com_indirect_table_alloca
+ int ret;
+
+ ret = ena_com_get_feature(ena_dev, &get_resp,
+- ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG);
++ ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG, 0);
+ if (unlikely(ret))
+ return ret;
+
+@@ -1538,7 +1541,7 @@ int ena_com_set_aenq_config(struct ena_c
+ struct ena_admin_get_feat_resp get_resp;
+ int ret;
+
+- ret = ena_com_get_feature(ena_dev, &get_resp, ENA_ADMIN_AENQ_CONFIG);
++ ret = ena_com_get_feature(ena_dev, &get_resp, ENA_ADMIN_AENQ_CONFIG, 0);
+ if (ret) {
+ pr_info("Can't get aenq configuration\n");
+ return ret;
+@@ -1913,7 +1916,7 @@ void ena_com_destroy_io_queue(struct ena
+ int ena_com_get_link_params(struct ena_com_dev *ena_dev,
+ struct ena_admin_get_feat_resp *resp)
+ {
+- return ena_com_get_feature(ena_dev, resp, ENA_ADMIN_LINK_CONFIG);
++ return ena_com_get_feature(ena_dev, resp, ENA_ADMIN_LINK_CONFIG, 0);
+ }
+
+ int ena_com_get_dev_attr_feat(struct ena_com_dev *ena_dev,
+@@ -1923,7 +1926,7 @@ int ena_com_get_dev_attr_feat(struct ena
+ int rc;
+
+ rc = ena_com_get_feature(ena_dev, &get_resp,
+- ENA_ADMIN_DEVICE_ATTRIBUTES);
++ ENA_ADMIN_DEVICE_ATTRIBUTES, 0);
+ if (rc)
+ return rc;
+
+@@ -1931,17 +1934,34 @@ int ena_com_get_dev_attr_feat(struct ena
+ sizeof(get_resp.u.dev_attr));
+ ena_dev->supported_features = get_resp.u.dev_attr.supported_features;
+
+- rc = ena_com_get_feature(ena_dev, &get_resp,
+- ENA_ADMIN_MAX_QUEUES_NUM);
+- if (rc)
+- return rc;
++ if (ena_dev->supported_features & BIT(ENA_ADMIN_MAX_QUEUES_EXT)) {
++ rc = ena_com_get_feature(ena_dev, &get_resp,
++ ENA_ADMIN_MAX_QUEUES_EXT,
++ ENA_FEATURE_MAX_QUEUE_EXT_VER);
++ if (rc)
++ return rc;
+
+- memcpy(&get_feat_ctx->max_queues, &get_resp.u.max_queue,
+- sizeof(get_resp.u.max_queue));
+- ena_dev->tx_max_header_size = get_resp.u.max_queue.max_header_size;
++ if (get_resp.u.max_queue_ext.version != ENA_FEATURE_MAX_QUEUE_EXT_VER)
++ return -EINVAL;
++
++ memcpy(&get_feat_ctx->max_queue_ext, &get_resp.u.max_queue_ext,
++ sizeof(get_resp.u.max_queue_ext));
++ ena_dev->tx_max_header_size =
++ get_resp.u.max_queue_ext.max_queue_ext.max_tx_header_size;
++ } else {
++ rc = ena_com_get_feature(ena_dev, &get_resp,
++ ENA_ADMIN_MAX_QUEUES_NUM, 0);
++ memcpy(&get_feat_ctx->max_queues, &get_resp.u.max_queue,
++ sizeof(get_resp.u.max_queue));
++ ena_dev->tx_max_header_size =
++ get_resp.u.max_queue.max_header_size;
++
++ if (rc)
++ return rc;
++ }
+
+ rc = ena_com_get_feature(ena_dev, &get_resp,
+- ENA_ADMIN_AENQ_CONFIG);
++ ENA_ADMIN_AENQ_CONFIG, 0);
+ if (rc)
+ return rc;
+
+@@ -1949,7 +1969,7 @@ int ena_com_get_dev_attr_feat(struct ena
+ sizeof(get_resp.u.aenq));
+
+ rc = ena_com_get_feature(ena_dev, &get_resp,
+- ENA_ADMIN_STATELESS_OFFLOAD_CONFIG);
++ ENA_ADMIN_STATELESS_OFFLOAD_CONFIG, 0);
+ if (rc)
+ return rc;
+
+@@ -1959,7 +1979,7 @@ int ena_com_get_dev_attr_feat(struct ena
+ /* Driver hints isn't mandatory admin command. So in case the
+ * command isn't supported set driver hints to 0
+ */
+- rc = ena_com_get_feature(ena_dev, &get_resp, ENA_ADMIN_HW_HINTS);
++ rc = ena_com_get_feature(ena_dev, &get_resp, ENA_ADMIN_HW_HINTS, 0);
+
+ if (!rc)
+ memcpy(&get_feat_ctx->hw_hints, &get_resp.u.hw_hints,
+@@ -1970,7 +1990,7 @@ int ena_com_get_dev_attr_feat(struct ena
+ else
+ return rc;
+
+- rc = ena_com_get_feature(ena_dev, &get_resp, ENA_ADMIN_LLQ);
++ rc = ena_com_get_feature(ena_dev, &get_resp, ENA_ADMIN_LLQ, 0);
+ if (!rc)
+ memcpy(&get_feat_ctx->llq, &get_resp.u.llq,
+ sizeof(get_resp.u.llq));
+@@ -2208,7 +2228,7 @@ int ena_com_get_offload_settings(struct
+ struct ena_admin_get_feat_resp resp;
+
+ ret = ena_com_get_feature(ena_dev, &resp,
+- ENA_ADMIN_STATELESS_OFFLOAD_CONFIG);
++ ENA_ADMIN_STATELESS_OFFLOAD_CONFIG, 0);
+ if (unlikely(ret)) {
+ pr_err("Failed to get offload capabilities %d\n", ret);
+ return ret;
+@@ -2237,7 +2257,7 @@ int ena_com_set_hash_function(struct ena
+
+ /* Validate hash function is supported */
+ ret = ena_com_get_feature(ena_dev, &get_resp,
+- ENA_ADMIN_RSS_HASH_FUNCTION);
++ ENA_ADMIN_RSS_HASH_FUNCTION, 0);
+ if (unlikely(ret))
+ return ret;
+
+@@ -2297,7 +2317,7 @@ int ena_com_fill_hash_function(struct en
+ rc = ena_com_get_feature_ex(ena_dev, &get_resp,
+ ENA_ADMIN_RSS_HASH_FUNCTION,
+ rss->hash_key_dma_addr,
+- sizeof(*rss->hash_key));
++ sizeof(*rss->hash_key), 0);
+ if (unlikely(rc))
+ return rc;
+
+@@ -2350,7 +2370,7 @@ int ena_com_get_hash_function(struct ena
+ rc = ena_com_get_feature_ex(ena_dev, &get_resp,
+ ENA_ADMIN_RSS_HASH_FUNCTION,
+ rss->hash_key_dma_addr,
+- sizeof(*rss->hash_key));
++ sizeof(*rss->hash_key), 0);
+ if (unlikely(rc))
+ return rc;
+
+@@ -2379,7 +2399,7 @@ int ena_com_get_hash_ctrl(struct ena_com
+ rc = ena_com_get_feature_ex(ena_dev, &get_resp,
+ ENA_ADMIN_RSS_HASH_INPUT,
+ rss->hash_ctrl_dma_addr,
+- sizeof(*rss->hash_ctrl));
++ sizeof(*rss->hash_ctrl), 0);
+ if (unlikely(rc))
+ return rc;
+
+@@ -2615,7 +2635,7 @@ int ena_com_indirect_table_get(struct en
+ rc = ena_com_get_feature_ex(ena_dev, &get_resp,
+ ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG,
+ rss->rss_ind_tbl_dma_addr,
+- tbl_size);
++ tbl_size, 0);
+ if (unlikely(rc))
+ return rc;
+
+@@ -2831,7 +2851,7 @@ int ena_com_init_interrupt_moderation(st
+ int rc;
+
+ rc = ena_com_get_feature(ena_dev, &get_resp,
+- ENA_ADMIN_INTERRUPT_MODERATION);
++ ENA_ADMIN_INTERRUPT_MODERATION, 0);
+
+ if (rc) {
+ if (rc == -EOPNOTSUPP) {
+--- a/drivers/net/ethernet/amazon/ena/ena_com.h
++++ b/drivers/net/ethernet/amazon/ena/ena_com.h
+@@ -102,6 +102,8 @@
+
+ #define ENA_HW_HINTS_NO_TIMEOUT 0xFFFF
+
++#define ENA_FEATURE_MAX_QUEUE_EXT_VER 1
++
+ enum ena_intr_moder_level {
+ ENA_INTR_MODER_LOWEST = 0,
+ ENA_INTR_MODER_LOW,
+@@ -383,6 +385,7 @@ struct ena_com_dev {
+
+ struct ena_com_dev_get_features_ctx {
+ struct ena_admin_queue_feature_desc max_queues;
++ struct ena_admin_queue_ext_feature_desc max_queue_ext;
+ struct ena_admin_device_attr_feature_desc dev_attr;
+ struct ena_admin_feature_aenq_desc aenq;
+ struct ena_admin_feature_offload_desc offload;
diff --git a/debian/patches/features/all/ena/net-ena-add-ethtool-function-for-changing-io-queue-s.patch b/debian/patches/features/all/ena/net-ena-add-ethtool-function-for-changing-io-queue-s.patch
new file mode 100644
index 000000000..227f39b3b
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-add-ethtool-function-for-changing-io-queue-s.patch
@@ -0,0 +1,106 @@
+From: Sameeh Jubran <sameehj@amazon.com>
+Date: Tue, 11 Jun 2019 14:58:09 +0300
+Subject: [PATCH] net: ena: add ethtool function for changing io queue sizes
+Origin: https://git.kernel.org/linus/eece4d2ab9d214e3b12f5ac1ed189a05793b28a5
+Bug-Debian: https://bugs.debian.org/941291
+
+Implement the set_ringparam() function of the ethtool interface
+to enable the changing of io queue sizes.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_ethtool.c | 22 +++++++++++++++++++
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 14 ++++++++++++
+ drivers/net/ethernet/amazon/ena/ena_netdev.h | 5 ++++-
+ 3 files changed, 40 insertions(+), 1 deletion(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_ethtool.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+@@ -454,6 +454,27 @@ static void ena_get_ringparam(struct net
+ ring->rx_pending = adapter->rx_ring[0].ring_size;
+ }
+
++static int ena_set_ringparam(struct net_device *netdev,
++ struct ethtool_ringparam *ring)
++{
++ struct ena_adapter *adapter = netdev_priv(netdev);
++ u32 new_tx_size, new_rx_size;
++
++ new_tx_size = ring->tx_pending < ENA_MIN_RING_SIZE ?
++ ENA_MIN_RING_SIZE : ring->tx_pending;
++ new_tx_size = rounddown_pow_of_two(new_tx_size);
++
++ new_rx_size = ring->rx_pending < ENA_MIN_RING_SIZE ?
++ ENA_MIN_RING_SIZE : ring->rx_pending;
++ new_rx_size = rounddown_pow_of_two(new_rx_size);
++
++ if (new_tx_size == adapter->requested_tx_ring_size &&
++ new_rx_size == adapter->requested_rx_ring_size)
++ return 0;
++
++ return ena_update_queue_sizes(adapter, new_tx_size, new_rx_size);
++}
++
+ static u32 ena_flow_hash_to_flow_type(u16 hash_fields)
+ {
+ u32 data = 0;
+@@ -805,6 +826,7 @@ static const struct ethtool_ops ena_etht
+ .get_coalesce = ena_get_coalesce,
+ .set_coalesce = ena_set_coalesce,
+ .get_ringparam = ena_get_ringparam,
++ .set_ringparam = ena_set_ringparam,
+ .get_sset_count = ena_get_sset_count,
+ .get_strings = ena_get_strings,
+ .get_ethtool_stats = ena_get_ethtool_stats,
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -2028,6 +2028,20 @@ static int ena_close(struct net_device *
+ return 0;
+ }
+
++int ena_update_queue_sizes(struct ena_adapter *adapter,
++ u32 new_tx_size,
++ u32 new_rx_size)
++{
++ bool dev_up;
++
++ dev_up = test_bit(ENA_FLAG_DEV_UP, &adapter->flags);
++ ena_close(adapter->netdev);
++ adapter->requested_tx_ring_size = new_tx_size;
++ adapter->requested_rx_ring_size = new_rx_size;
++ ena_init_io_rings(adapter);
++ return dev_up ? ena_up(adapter) : 0;
++}
++
+ static void ena_tx_csum(struct ena_com_tx_ctx *ena_tx_ctx, struct sk_buff *skb)
+ {
+ u32 mss = skb_shinfo(skb)->gso_size;
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+@@ -81,7 +81,6 @@
+ #define ENA_DEFAULT_RING_SIZE (1024)
+ #define ENA_MIN_RING_SIZE (256)
+
+-
+ #define ENA_TX_WAKEUP_THRESH (MAX_SKB_FRAGS + 2)
+ #define ENA_DEFAULT_RX_COPYBREAK (256 - NET_IP_ALIGN)
+
+@@ -386,6 +385,10 @@ void ena_dump_stats_to_dmesg(struct ena_
+
+ void ena_dump_stats_to_buf(struct ena_adapter *adapter, u8 *buf);
+
++int ena_update_queue_sizes(struct ena_adapter *adapter,
++ u32 new_tx_size,
++ u32 new_rx_size);
++
+ int ena_get_sset_count(struct net_device *netdev, int sset);
+
+ #endif /* !(ENA_H) */
diff --git a/debian/patches/features/all/ena/net-ena-add-good-checksum-counter.patch b/debian/patches/features/all/ena/net-ena-add-good-checksum-counter.patch
new file mode 100644
index 000000000..cde5cdad4
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-add-good-checksum-counter.patch
@@ -0,0 +1,72 @@
+From: Sameeh Jubran <sameehj@amazon.com>
+Date: Mon, 3 Jun 2019 17:43:28 +0300
+Subject: [PATCH] net: ena: add good checksum counter
+Origin: https://git.kernel.org/linus/d2eecc6ee8c92053797513e34931334dd0e85e18
+Bug-Debian: https://bugs.debian.org/941291
+
+Add a new statistics to ETHTOOL to specify if the device calculated
+and validated the Rx csum.
+
+Signed-off-by: Evgeny Shmeilin <evgeny@annapurnaLabs.com>
+Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_ethtool.c | 3 ++-
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 3 +++
+ drivers/net/ethernet/amazon/ena/ena_netdev.h | 3 ++-
+ 3 files changed, 7 insertions(+), 2 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_ethtool.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+@@ -88,13 +88,14 @@ static const struct ena_stats ena_stats_
+ static const struct ena_stats ena_stats_rx_strings[] = {
+ ENA_STAT_RX_ENTRY(cnt),
+ ENA_STAT_RX_ENTRY(bytes),
++ ENA_STAT_RX_ENTRY(rx_copybreak_pkt),
++ ENA_STAT_RX_ENTRY(csum_good),
+ ENA_STAT_RX_ENTRY(refil_partial),
+ ENA_STAT_RX_ENTRY(bad_csum),
+ ENA_STAT_RX_ENTRY(page_alloc_fail),
+ ENA_STAT_RX_ENTRY(skb_alloc_fail),
+ ENA_STAT_RX_ENTRY(dma_mapping_err),
+ ENA_STAT_RX_ENTRY(bad_desc_num),
+- ENA_STAT_RX_ENTRY(rx_copybreak_pkt),
+ ENA_STAT_RX_ENTRY(bad_req_id),
+ ENA_STAT_RX_ENTRY(empty_rx_ring),
+ ENA_STAT_RX_ENTRY(csum_unchecked),
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -1001,6 +1001,9 @@ static inline void ena_rx_checksum(struc
+
+ if (likely(ena_rx_ctx->l4_csum_checked)) {
+ skb->ip_summed = CHECKSUM_UNNECESSARY;
++ u64_stats_update_begin(&rx_ring->syncp);
++ rx_ring->rx_stats.csum_good++;
++ u64_stats_update_end(&rx_ring->syncp);
+ } else {
+ u64_stats_update_begin(&rx_ring->syncp);
+ rx_ring->rx_stats.csum_unchecked++;
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+@@ -221,13 +221,14 @@ struct ena_stats_tx {
+ struct ena_stats_rx {
+ u64 cnt;
+ u64 bytes;
++ u64 rx_copybreak_pkt;
++ u64 csum_good;
+ u64 refil_partial;
+ u64 bad_csum;
+ u64 page_alloc_fail;
+ u64 skb_alloc_fail;
+ u64 dma_mapping_err;
+ u64 bad_desc_num;
+- u64 rx_copybreak_pkt;
+ u64 bad_req_id;
+ u64 empty_rx_ring;
+ u64 csum_unchecked;
diff --git a/debian/patches/features/all/ena/net-ena-add-handling-of-llq-max-tx-burst-size.patch b/debian/patches/features/all/ena/net-ena-add-handling-of-llq-max-tx-burst-size.patch
new file mode 100644
index 000000000..4034439eb
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-add-handling-of-llq-max-tx-burst-size.patch
@@ -0,0 +1,232 @@
+From: Sameeh Jubran <sameehj@amazon.com>
+Date: Mon, 3 Jun 2019 17:43:19 +0300
+Subject: [PATCH] net: ena: add handling of llq max tx burst size
+Origin: https://git.kernel.org/linus/05d62ca218f8425c70389d0416c15bd0d455b416
+Bug-Debian: https://bugs.debian.org/941291
+
+There is a maximum TX burst size that the ENA device can handle.
+It is exposed by the device to the driver and the driver
+needs to comply with it to avoid bugs.
+
+In this commit we:
+1. Add ena_com_is_doorbell_needed(), which calculates the number of
+ llq entries that will be used to hold a packet, and will return
+ true if they exceed the number of allowed entries in a burst.
+ If the function returns true, a doorbell needs to be invoked
+ to send this packet in the next burst.
+
+2. Follow the available entries in the current burst:
+ - Every doorbell a new burst begins
+ - With each write of an llq entry, the available entries in the
+ current burst are decreased by 1.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ .../net/ethernet/amazon/ena/ena_admin_defs.h | 5 ++
+ drivers/net/ethernet/amazon/ena/ena_com.c | 7 +++
+ drivers/net/ethernet/amazon/ena/ena_com.h | 2 +
+ drivers/net/ethernet/amazon/ena/ena_eth_com.c | 28 ++++------
+ drivers/net/ethernet/amazon/ena/ena_eth_com.h | 53 +++++++++++++++++++
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 7 +++
+ 6 files changed, 85 insertions(+), 17 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
+@@ -524,6 +524,11 @@ struct ena_admin_feature_llq_desc {
+
+ /* the stride control the driver selected to use */
+ u16 descriptors_stride_ctrl_enabled;
++
++ /* Maximum size in bytes taken by llq entries in a single tx burst.
++ * Set to 0 when there is no such limit.
++ */
++ u32 max_tx_burst_size;
+ };
+
+ struct ena_admin_queue_feature_desc {
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.c
+@@ -396,6 +396,10 @@ static int ena_com_init_io_sq(struct ena
+ 0x0, io_sq->llq_info.desc_list_entry_size);
+ io_sq->llq_buf_ctrl.descs_left_in_line =
+ io_sq->llq_info.descs_num_before_header;
++
++ if (io_sq->llq_info.max_entries_in_tx_burst > 0)
++ io_sq->entries_in_tx_burst_left =
++ io_sq->llq_info.max_entries_in_tx_burst;
+ }
+
+ io_sq->tail = 0;
+@@ -727,6 +731,9 @@ static int ena_com_config_llq_info(struc
+ supported_feat, llq_info->descs_num_before_header);
+ }
+
++ llq_info->max_entries_in_tx_burst =
++ (u16)(llq_features->max_tx_burst_size / llq_default_cfg->llq_ring_entry_size_value);
++
+ rc = ena_com_set_llq(ena_dev);
+ if (rc)
+ pr_err("Cannot set LLQ configuration: %d\n", rc);
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.h
+@@ -159,6 +159,7 @@ struct ena_com_llq_info {
+ u16 desc_list_entry_size;
+ u16 descs_num_before_header;
+ u16 descs_per_entry;
++ u16 max_entries_in_tx_burst;
+ };
+
+ struct ena_com_io_cq {
+@@ -238,6 +239,7 @@ struct ena_com_io_sq {
+ u8 phase;
+ u8 desc_entry_size;
+ u8 dma_addr_bits;
++ u16 entries_in_tx_burst_left;
+ } ____cacheline_aligned;
+
+ struct ena_com_admin_cq {
+Index: linux/drivers/net/ethernet/amazon/ena/ena_eth_com.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_eth_com.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_eth_com.c
+@@ -82,6 +82,17 @@ static inline int ena_com_write_bounce_b
+ dst_tail_mask = io_sq->tail & (io_sq->q_depth - 1);
+ dst_offset = dst_tail_mask * llq_info->desc_list_entry_size;
+
++ if (is_llq_max_tx_burst_exists(io_sq)) {
++ if (unlikely(!io_sq->entries_in_tx_burst_left)) {
++ pr_err("Error: trying to send more packets than tx burst allows\n");
++ return -ENOSPC;
++ }
++
++ io_sq->entries_in_tx_burst_left--;
++ pr_debug("decreasing entries_in_tx_burst_left of queue %d to %d\n",
++ io_sq->qid, io_sq->entries_in_tx_burst_left);
++ }
++
+ /* Make sure everything was written into the bounce buffer before
+ * writing the bounce buffer to the device
+ */
+@@ -274,23 +285,6 @@ static inline u16 ena_com_cdesc_rx_pkt_g
+ return count;
+ }
+
+-static inline bool ena_com_meta_desc_changed(struct ena_com_io_sq *io_sq,
+- struct ena_com_tx_ctx *ena_tx_ctx)
+-{
+- int rc;
+-
+- if (ena_tx_ctx->meta_valid) {
+- rc = memcmp(&io_sq->cached_tx_meta,
+- &ena_tx_ctx->ena_meta,
+- sizeof(struct ena_com_tx_meta));
+-
+- if (unlikely(rc != 0))
+- return true;
+- }
+-
+- return false;
+-}
+-
+ static inline int ena_com_create_and_store_tx_meta_desc(struct ena_com_io_sq *io_sq,
+ struct ena_com_tx_ctx *ena_tx_ctx)
+ {
+Index: linux/drivers/net/ethernet/amazon/ena/ena_eth_com.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_eth_com.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_eth_com.h
+@@ -125,8 +125,55 @@ static inline bool ena_com_sq_have_enoug
+ return ena_com_free_desc(io_sq) > temp;
+ }
+
++static inline bool ena_com_meta_desc_changed(struct ena_com_io_sq *io_sq,
++ struct ena_com_tx_ctx *ena_tx_ctx)
++{
++ if (!ena_tx_ctx->meta_valid)
++ return false;
++
++ return !!memcmp(&io_sq->cached_tx_meta,
++ &ena_tx_ctx->ena_meta,
++ sizeof(struct ena_com_tx_meta));
++}
++
++static inline bool is_llq_max_tx_burst_exists(struct ena_com_io_sq *io_sq)
++{
++ return (io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV) &&
++ io_sq->llq_info.max_entries_in_tx_burst > 0;
++}
++
++static inline bool ena_com_is_doorbell_needed(struct ena_com_io_sq *io_sq,
++ struct ena_com_tx_ctx *ena_tx_ctx)
++{
++ struct ena_com_llq_info *llq_info;
++ int descs_after_first_entry;
++ int num_entries_needed = 1;
++ u16 num_descs;
++
++ if (!is_llq_max_tx_burst_exists(io_sq))
++ return false;
++
++ llq_info = &io_sq->llq_info;
++ num_descs = ena_tx_ctx->num_bufs;
++
++ if (unlikely(ena_com_meta_desc_changed(io_sq, ena_tx_ctx)))
++ ++num_descs;
++
++ if (num_descs > llq_info->descs_num_before_header) {
++ descs_after_first_entry = num_descs - llq_info->descs_num_before_header;
++ num_entries_needed += DIV_ROUND_UP(descs_after_first_entry,
++ llq_info->descs_per_entry);
++ }
++
++ pr_debug("queue: %d num_descs: %d num_entries_needed: %d\n", io_sq->qid,
++ num_descs, num_entries_needed);
++
++ return num_entries_needed > io_sq->entries_in_tx_burst_left;
++}
++
+ static inline int ena_com_write_sq_doorbell(struct ena_com_io_sq *io_sq)
+ {
++ u16 max_entries_in_tx_burst = io_sq->llq_info.max_entries_in_tx_burst;
+ u16 tail = io_sq->tail;
+
+ pr_debug("write submission queue doorbell for queue: %d tail: %d\n",
+@@ -134,6 +181,12 @@ static inline int ena_com_write_sq_doorb
+
+ writel(tail, io_sq->db_addr);
+
++ if (is_llq_max_tx_burst_exists(io_sq)) {
++ pr_debug("reset available entries in tx burst for queue %d to %d\n",
++ io_sq->qid, max_entries_in_tx_burst);
++ io_sq->entries_in_tx_burst_left = max_entries_in_tx_burst;
++ }
++
+ return 0;
+ }
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -2172,6 +2172,13 @@ static netdev_tx_t ena_start_xmit(struct
+ /* set flags and meta data */
+ ena_tx_csum(&ena_tx_ctx, skb);
+
++ if (unlikely(ena_com_is_doorbell_needed(tx_ring->ena_com_io_sq, &ena_tx_ctx))) {
++ netif_dbg(adapter, tx_queued, dev,
++ "llq tx max burst size of queue %d achieved, writing doorbell to send burst\n",
++ qid);
++ ena_com_write_sq_doorbell(tx_ring->ena_com_io_sq);
++ }
++
+ /* prepare the packet's descriptors to dma engine */
+ rc = ena_com_prepare_tx(tx_ring->ena_com_io_sq, &ena_tx_ctx,
+ &nb_hw_desc);
diff --git a/debian/patches/features/all/ena/net-ena-add-intr_moder_rx_interval-to-struct-ena_com.patch b/debian/patches/features/all/ena/net-ena-add-intr_moder_rx_interval-to-struct-ena_com.patch
new file mode 100644
index 000000000..086da850a
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-add-intr_moder_rx_interval-to-struct-ena_com.patch
@@ -0,0 +1,118 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Mon, 16 Sep 2019 14:31:26 +0300
+Subject: [PATCH] net: ena: add intr_moder_rx_interval to struct ena_com_dev
+ and use it
+Origin: https://git.kernel.org/linus/15619e722b16aaa40f942b93631aa92581a7b393
+Bug-Debian: https://bugs.debian.org/941291
+
+Add intr_moder_rx_interval to struct ena_com_dev and use it as the
+location where the interrupt moderation rx interval is saved, instead
+of the interrupt moderation table.
+
+This is done as a first step before removing the old interrupt moderation
+code.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_com.c | 20 ++++----------------
+ drivers/net/ethernet/amazon/ena/ena_com.h | 8 +++++++-
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 3 ++-
+ 3 files changed, 13 insertions(+), 18 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.c
+@@ -1297,9 +1297,6 @@ static int ena_com_init_interrupt_modera
+ static void ena_com_update_intr_delay_resolution(struct ena_com_dev *ena_dev,
+ u16 intr_delay_resolution)
+ {
+- struct ena_intr_moder_entry *intr_moder_tbl = ena_dev->intr_moder_tbl;
+- unsigned int i;
+-
+ if (!intr_delay_resolution) {
+ pr_err("Illegal intr_delay_resolution provided. Going to use default 1 usec resolution\n");
+ intr_delay_resolution = 1;
+@@ -1307,8 +1304,7 @@ static void ena_com_update_intr_delay_re
+ ena_dev->intr_delay_resolution = intr_delay_resolution;
+
+ /* update Rx */
+- for (i = 0; i < ENA_INTR_MAX_NUM_OF_LEVELS; i++)
+- intr_moder_tbl[i].intr_moder_interval /= intr_delay_resolution;
++ ena_dev->intr_moder_rx_interval /= intr_delay_resolution;
+
+ /* update Tx */
+ ena_dev->intr_moder_tx_interval /= intr_delay_resolution;
+@@ -2798,11 +2794,8 @@ int ena_com_update_nonadaptive_moderatio
+ return -EFAULT;
+ }
+
+- /* We use LOWEST entry of moderation table for storing
+- * nonadaptive interrupt coalescing values
+- */
+- ena_dev->intr_moder_tbl[ENA_INTR_MODER_LOWEST].intr_moder_interval =
+- rx_coalesce_usecs / ena_dev->intr_delay_resolution;
++ ena_dev->intr_moder_rx_interval = rx_coalesce_usecs /
++ ena_dev->intr_delay_resolution;
+
+ return 0;
+ }
+@@ -2907,12 +2900,7 @@ unsigned int ena_com_get_nonadaptive_mod
+
+ unsigned int ena_com_get_nonadaptive_moderation_interval_rx(struct ena_com_dev *ena_dev)
+ {
+- struct ena_intr_moder_entry *intr_moder_tbl = ena_dev->intr_moder_tbl;
+-
+- if (intr_moder_tbl)
+- return intr_moder_tbl[ENA_INTR_MODER_LOWEST].intr_moder_interval;
+-
+- return 0;
++ return ena_dev->intr_moder_rx_interval;
+ }
+
+ void ena_com_init_intr_moderation_entry(struct ena_com_dev *ena_dev,
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.h
+@@ -93,7 +93,7 @@
+ #define ENA_INTR_HIGHEST_BYTES (192 * 1024)
+
+ #define ENA_INTR_INITIAL_TX_INTERVAL_USECS 196
+-#define ENA_INTR_INITIAL_RX_INTERVAL_USECS 4
++#define ENA_INTR_INITIAL_RX_INTERVAL_USECS 0
+ #define ENA_INTR_DELAY_OLD_VALUE_WEIGHT 6
+ #define ENA_INTR_DELAY_NEW_VALUE_WEIGHT 4
+ #define ENA_INTR_MODER_LEVEL_STRIDE 2
+@@ -376,7 +376,13 @@ struct ena_com_dev {
+ struct ena_host_attribute host_attr;
+ bool adaptive_coalescing;
+ u16 intr_delay_resolution;
++
++ /* interrupt moderation intervals are in usec divided by
++ * intr_delay_resolution, which is supplied by the device.
++ */
+ u32 intr_moder_tx_interval;
++ u32 intr_moder_rx_interval;
++
+ struct ena_intr_moder_entry *intr_moder_tbl;
+
+ struct ena_com_llq_info llq_info;
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -3487,10 +3487,11 @@ static int ena_probe(struct pci_dev *pde
+ calc_queue_ctx.get_feat_ctx = &get_feat_ctx;
+ calc_queue_ctx.pdev = pdev;
+
+- /* initial Tx interrupt delay, Assumes 1 usec granularity.
++ /* Initial Tx and RX interrupt delay. Assumes 1 usec granularity.
+ * Updated during device initialization with the real granularity
+ */
+ ena_dev->intr_moder_tx_interval = ENA_INTR_INITIAL_TX_INTERVAL_USECS;
++ ena_dev->intr_moder_rx_interval = ENA_INTR_INITIAL_RX_INTERVAL_USECS;
+ io_queue_num = ena_calc_io_queue_num(pdev, ena_dev, &get_feat_ctx);
+ rc = ena_calc_queue_size(&calc_queue_ctx);
+ if (rc || io_queue_num <= 0) {
diff --git a/debian/patches/features/all/ena/net-ena-add-newline-at-the-end-of-pr_err-prints.patch b/debian/patches/features/all/ena/net-ena-add-newline-at-the-end-of-pr_err-prints.patch
new file mode 100644
index 000000000..3b1c6c4cb
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-add-newline-at-the-end-of-pr_err-prints.patch
@@ -0,0 +1,91 @@
+From: Sameeh Jubran <sameehj@amazon.com>
+Date: Mon, 3 Jun 2019 17:43:23 +0300
+Subject: [PATCH] net: ena: add newline at the end of pr_err prints
+Origin: https://git.kernel.org/linus/9cb9c0de266f1ea52f01589f2f4019f163c01cd1
+Bug-Debian: https://bugs.debian.org/941291
+
+Some pr_err prints lacked '\n' in the end. Added where missing.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_com.c | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.c
+@@ -115,7 +115,7 @@ static int ena_com_admin_init_sq(struct
+ GFP_KERNEL);
+
+ if (!sq->entries) {
+- pr_err("memory allocation failed");
++ pr_err("memory allocation failed\n");
+ return -ENOMEM;
+ }
+
+@@ -137,7 +137,7 @@ static int ena_com_admin_init_cq(struct
+ GFP_KERNEL);
+
+ if (!cq->entries) {
+- pr_err("memory allocation failed");
++ pr_err("memory allocation failed\n");
+ return -ENOMEM;
+ }
+
+@@ -160,7 +160,7 @@ static int ena_com_admin_init_aenq(struc
+ GFP_KERNEL);
+
+ if (!aenq->entries) {
+- pr_err("memory allocation failed");
++ pr_err("memory allocation failed\n");
+ return -ENOMEM;
+ }
+
+@@ -285,7 +285,7 @@ static inline int ena_com_init_comp_ctxt
+
+ queue->comp_ctx = devm_kzalloc(queue->q_dmadev, size, GFP_KERNEL);
+ if (unlikely(!queue->comp_ctx)) {
+- pr_err("memory allocation failed");
++ pr_err("memory allocation failed\n");
+ return -ENOMEM;
+ }
+
+@@ -356,7 +356,7 @@ static int ena_com_init_io_sq(struct ena
+ }
+
+ if (!io_sq->desc_addr.virt_addr) {
+- pr_err("memory allocation failed");
++ pr_err("memory allocation failed\n");
+ return -ENOMEM;
+ }
+ }
+@@ -382,7 +382,7 @@ static int ena_com_init_io_sq(struct ena
+ devm_kzalloc(ena_dev->dmadev, size, GFP_KERNEL);
+
+ if (!io_sq->bounce_buf_ctrl.base_buffer) {
+- pr_err("bounce buffer memory allocation failed");
++ pr_err("bounce buffer memory allocation failed\n");
+ return -ENOMEM;
+ }
+
+@@ -440,7 +440,7 @@ static int ena_com_init_io_cq(struct ena
+ }
+
+ if (!io_cq->cdesc_addr.virt_addr) {
+- pr_err("memory allocation failed");
++ pr_err("memory allocation failed\n");
+ return -ENOMEM;
+ }
+
+@@ -829,7 +829,7 @@ static u32 ena_com_reg_bar_read32(struct
+ }
+
+ if (read_resp->reg_off != offset) {
+- pr_err("Read failure: wrong offset provided");
++ pr_err("Read failure: wrong offset provided\n");
+ ret = ENA_MMIO_READ_TIMEOUT;
+ } else {
+ ret = read_resp->reg_val;
diff --git a/debian/patches/features/all/ena/net-ena-add-support-for-changing-max_header_size-in-.patch b/debian/patches/features/all/ena/net-ena-add-support-for-changing-max_header_size-in-.patch
new file mode 100644
index 000000000..ac5bc89e7
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-add-support-for-changing-max_header_size-in-.patch
@@ -0,0 +1,54 @@
+From: Sameeh Jubran <sameehj@amazon.com>
+Date: Mon, 3 Jun 2019 17:43:26 +0300
+Subject: [PATCH] net: ena: add support for changing max_header_size in LLQ
+ mode
+Origin: https://git.kernel.org/linus/cdf449eccc5946d5dd4145b38347874a7423c50d
+Bug-Debian: https://bugs.debian.org/941291
+
+Up until now the driver always used a single setting for the sizes
+of the different parts of the llq entry - 128 for entry size, 2 for
+descriptors before header and 96 for maximum header size.
+
+The current code makes sure that the parts of the llq entry are
+compatible with each other and with the initial llq entry size given
+by the device.
+
+This commit changes this code to support any llq entry size
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_com.c | 10 ++++------
+ 1 file changed, 4 insertions(+), 6 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.c
+@@ -2936,8 +2936,8 @@ int ena_com_config_dev_mode(struct ena_c
+ struct ena_admin_feature_llq_desc *llq_features,
+ struct ena_llq_configurations *llq_default_cfg)
+ {
++ struct ena_com_llq_info *llq_info = &ena_dev->llq_info;
+ int rc;
+- int size;
+
+ if (!llq_features->max_llq_num) {
+ ena_dev->tx_mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_HOST;
+@@ -2948,12 +2948,10 @@ int ena_com_config_dev_mode(struct ena_c
+ if (rc)
+ return rc;
+
+- /* Validate the descriptor is not too big */
+- size = ena_dev->tx_max_header_size;
+- size += ena_dev->llq_info.descs_num_before_header *
+- sizeof(struct ena_eth_io_tx_desc);
++ ena_dev->tx_max_header_size = llq_info->desc_list_entry_size -
++ (llq_info->descs_num_before_header * sizeof(struct ena_eth_io_tx_desc));
+
+- if (unlikely(ena_dev->llq_info.desc_list_entry_size < size)) {
++ if (unlikely(ena_dev->tx_max_header_size == 0)) {
+ pr_err("the size of the LLQ entry is smaller than needed\n");
+ return -EINVAL;
+ }
diff --git a/debian/patches/features/all/ena/net-ena-allow-automatic-fallback-to-polling-mode.patch b/debian/patches/features/all/ena/net-ena-allow-automatic-fallback-to-polling-mode.patch
new file mode 100644
index 000000000..dab6166e1
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-allow-automatic-fallback-to-polling-mode.patch
@@ -0,0 +1,103 @@
+From: Sameeh Jubran <sameehj@amazon.com>
+Date: Mon, 3 Jun 2019 17:43:25 +0300
+Subject: [PATCH] net: ena: allow automatic fallback to polling mode
+Origin: https://git.kernel.org/linus/a4e262cde3cda4491ce666e7c5270954c4d926b9
+Bug-Debian: https://bugs.debian.org/941291
+
+Enable fallback to polling mode for Admin queue
+when identified a command response arrival
+without an accompanying MSI-X interrupt
+
+Signed-off-by: Igor Chauskin <igorch@amazon.com>
+Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_com.c | 34 +++++++++++++++++------
+ drivers/net/ethernet/amazon/ena/ena_com.h | 14 ++++++++++
+ 2 files changed, 39 insertions(+), 9 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.c
+@@ -762,16 +762,26 @@ static int ena_com_wait_and_process_admi
+ admin_queue->stats.no_completion++;
+ spin_unlock_irqrestore(&admin_queue->q_lock, flags);
+
+- if (comp_ctx->status == ENA_CMD_COMPLETED)
+- pr_err("The ena device have completion but the driver didn't receive any MSI-X interrupt (cmd %d)\n",
+- comp_ctx->cmd_opcode);
+- else
+- pr_err("The ena device doesn't send any completion for the admin cmd %d status %d\n",
++ if (comp_ctx->status == ENA_CMD_COMPLETED) {
++ pr_err("The ena device sent a completion but the driver didn't receive a MSI-X interrupt (cmd %d), autopolling mode is %s\n",
++ comp_ctx->cmd_opcode,
++ admin_queue->auto_polling ? "ON" : "OFF");
++ /* Check if fallback to polling is enabled */
++ if (admin_queue->auto_polling)
++ admin_queue->polling = true;
++ } else {
++ pr_err("The ena device doesn't send a completion for the admin cmd %d status %d\n",
+ comp_ctx->cmd_opcode, comp_ctx->status);
+-
+- admin_queue->running_state = false;
+- ret = -ETIME;
+- goto err;
++ }
++ /* Check if shifted to polling mode.
++ * This will happen if there is a completion without an interrupt
++ * and autopolling mode is enabled. Continuing normal execution in such case
++ */
++ if (!admin_queue->polling) {
++ admin_queue->running_state = false;
++ ret = -ETIME;
++ goto err;
++ }
+ }
+
+ ret = ena_com_comp_status_to_errno(comp_ctx->comp_status);
+@@ -1650,6 +1660,12 @@ void ena_com_set_admin_polling_mode(stru
+ ena_dev->admin_queue.polling = polling;
+ }
+
++void ena_com_set_admin_auto_polling_mode(struct ena_com_dev *ena_dev,
++ bool polling)
++{
++ ena_dev->admin_queue.auto_polling = polling;
++}
++
+ int ena_com_mmio_reg_read_request_init(struct ena_com_dev *ena_dev)
+ {
+ struct ena_com_mmio_read *mmio_read = &ena_dev->mmio_read;
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.h
+@@ -283,6 +283,9 @@ struct ena_com_admin_queue {
+ /* Indicate if the admin queue should poll for completion */
+ bool polling;
+
++ /* Define if fallback to polling mode should occur */
++ bool auto_polling;
++
+ u16 curr_cmd_id;
+
+ /* Indicate that the ena was initialized and can
+@@ -538,6 +541,17 @@ void ena_com_set_admin_polling_mode(stru
+ */
+ bool ena_com_get_ena_admin_polling_mode(struct ena_com_dev *ena_dev);
+
++/* ena_com_set_admin_auto_polling_mode - Enable autoswitch to polling mode
++ * @ena_dev: ENA communication layer struct
++ * @polling: Enable/Disable polling mode
++ *
++ * Set the autopolling mode.
++ * If autopolling is on:
++ * In case of missing interrupt when data is available switch to polling.
++ */
++void ena_com_set_admin_auto_polling_mode(struct ena_com_dev *ena_dev,
++ bool polling);
++
+ /* ena_com_admin_q_comp_intr_handler - admin queue interrupt handler
+ * @ena_dev: ENA communication layer struct
+ *
diff --git a/debian/patches/features/all/ena/net-ena-allow-queue-allocation-backoff-when-low-on-m.patch b/debian/patches/features/all/ena/net-ena-allow-queue-allocation-backoff-when-low-on-m.patch
new file mode 100644
index 000000000..6f902b864
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-allow-queue-allocation-backoff-when-low-on-m.patch
@@ -0,0 +1,323 @@
+From: Sameeh Jubran <sameehj@amazon.com>
+Date: Tue, 11 Jun 2019 14:58:08 +0300
+Subject: [PATCH] net: ena: allow queue allocation backoff when low on memory
+Origin: https://git.kernel.org/linus/13ca32a69e29f3a0fe72094dd930f312b3f3ee44
+Bug-Debian: https://bugs.debian.org/941291
+
+If there is not enough memory to allocate io queues the driver will
+try to allocate smaller queues.
+
+The backoff algorithm is as follows:
+
+1. Try to allocate TX and RX and if successful.
+1.1. return success
+
+2. Divide by 2 the size of the larger of RX and TX queues (or both if their size is the same).
+
+3. If TX or RX is smaller than 256
+3.1. return failure.
+4. else
+4.1. go back to 1.
+
+Also change the tx_queue_size, rx_queue_size field names in struct
+adapter to requested_tx_queue_size and requested_rx_queue_size, and
+use RX and TX queue 0 for actual queue sizes.
+Explanation:
+The original fields were useless as they were simply used to assign
+values once from them to each of the queues in the adapter in ena_probe().
+They could simply be deleted. However now that we have a backoff
+feature, we have use for them. In case of backoff there is a difference
+between the requested queue sizes and the actual sizes. Therefore there
+is a need to save the requested queue size for future retries of queue
+allocation (for example if allocation failed and then ifdown + ifup was
+called we want to start the allocation from the original requested size of
+the queues).
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_ethtool.c | 4 +-
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 159 +++++++++++++-----
+ drivers/net/ethernet/amazon/ena/ena_netdev.h | 6 +-
+ 3 files changed, 127 insertions(+), 42 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_ethtool.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+@@ -450,8 +450,8 @@ static void ena_get_ringparam(struct net
+
+ ring->tx_max_pending = adapter->max_tx_ring_size;
+ ring->rx_max_pending = adapter->max_rx_ring_size;
+- ring->tx_pending = adapter->tx_ring_size;
+- ring->rx_pending = adapter->rx_ring_size;
++ ring->tx_pending = adapter->tx_ring[0].ring_size;
++ ring->rx_pending = adapter->rx_ring[0].ring_size;
+ }
+
+ static u32 ena_flow_hash_to_flow_type(u16 hash_fields)
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -182,7 +182,7 @@ static void ena_init_io_rings(struct ena
+ ena_init_io_rings_common(adapter, rxr, i);
+
+ /* TX specific ring state */
+- txr->ring_size = adapter->tx_ring_size;
++ txr->ring_size = adapter->requested_tx_ring_size;
+ txr->tx_max_header_size = ena_dev->tx_max_header_size;
+ txr->tx_mem_queue_type = ena_dev->tx_mem_queue_type;
+ txr->sgl_size = adapter->max_tx_sgl_size;
+@@ -190,7 +190,7 @@ static void ena_init_io_rings(struct ena
+ ena_com_get_nonadaptive_moderation_interval_tx(ena_dev);
+
+ /* RX specific ring state */
+- rxr->ring_size = adapter->rx_ring_size;
++ rxr->ring_size = adapter->requested_rx_ring_size;
+ rxr->rx_copybreak = adapter->rx_copybreak;
+ rxr->sgl_size = adapter->max_rx_sgl_size;
+ rxr->smoothed_interval =
+@@ -594,7 +594,6 @@ static void ena_free_rx_bufs(struct ena_
+
+ /* ena_refill_all_rx_bufs - allocate all queues Rx buffers
+ * @adapter: board private structure
+- *
+ */
+ static void ena_refill_all_rx_bufs(struct ena_adapter *adapter)
+ {
+@@ -1635,7 +1634,7 @@ static int ena_create_io_tx_queue(struct
+ ctx.qid = ena_qid;
+ ctx.mem_queue_type = ena_dev->tx_mem_queue_type;
+ ctx.msix_vector = msix_vector;
+- ctx.queue_size = adapter->tx_ring_size;
++ ctx.queue_size = tx_ring->ring_size;
+ ctx.numa_node = cpu_to_node(tx_ring->cpu);
+
+ rc = ena_com_create_io_queue(ena_dev, &ctx);
+@@ -1702,7 +1701,7 @@ static int ena_create_io_rx_queue(struct
+ ctx.direction = ENA_COM_IO_QUEUE_DIRECTION_RX;
+ ctx.mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_HOST;
+ ctx.msix_vector = msix_vector;
+- ctx.queue_size = adapter->rx_ring_size;
++ ctx.queue_size = rx_ring->ring_size;
+ ctx.numa_node = cpu_to_node(rx_ring->cpu);
+
+ rc = ena_com_create_io_queue(ena_dev, &ctx);
+@@ -1749,6 +1748,112 @@ create_err:
+ return rc;
+ }
+
++static void set_io_rings_size(struct ena_adapter *adapter,
++ int new_tx_size, int new_rx_size)
++{
++ int i;
++
++ for (i = 0; i < adapter->num_queues; i++) {
++ adapter->tx_ring[i].ring_size = new_tx_size;
++ adapter->rx_ring[i].ring_size = new_rx_size;
++ }
++}
++
++/* This function allows queue allocation to backoff when the system is
++ * low on memory. If there is not enough memory to allocate io queues
++ * the driver will try to allocate smaller queues.
++ *
++ * The backoff algorithm is as follows:
++ * 1. Try to allocate TX and RX and if successful.
++ * 1.1. return success
++ *
++ * 2. Divide by 2 the size of the larger of RX and TX queues (or both if their size is the same).
++ *
++ * 3. If TX or RX is smaller than 256
++ * 3.1. return failure.
++ * 4. else
++ * 4.1. go back to 1.
++ */
++static int create_queues_with_size_backoff(struct ena_adapter *adapter)
++{
++ int rc, cur_rx_ring_size, cur_tx_ring_size;
++ int new_rx_ring_size, new_tx_ring_size;
++
++ /* current queue sizes might be set to smaller than the requested
++ * ones due to past queue allocation failures.
++ */
++ set_io_rings_size(adapter, adapter->requested_tx_ring_size,
++ adapter->requested_rx_ring_size);
++
++ while (1) {
++ rc = ena_setup_all_tx_resources(adapter);
++ if (rc)
++ goto err_setup_tx;
++
++ rc = ena_create_all_io_tx_queues(adapter);
++ if (rc)
++ goto err_create_tx_queues;
++
++ rc = ena_setup_all_rx_resources(adapter);
++ if (rc)
++ goto err_setup_rx;
++
++ rc = ena_create_all_io_rx_queues(adapter);
++ if (rc)
++ goto err_create_rx_queues;
++
++ return 0;
++
++err_create_rx_queues:
++ ena_free_all_io_rx_resources(adapter);
++err_setup_rx:
++ ena_destroy_all_tx_queues(adapter);
++err_create_tx_queues:
++ ena_free_all_io_tx_resources(adapter);
++err_setup_tx:
++ if (rc != -ENOMEM) {
++ netif_err(adapter, ifup, adapter->netdev,
++ "Queue creation failed with error code %d\n",
++ rc);
++ return rc;
++ }
++
++ cur_tx_ring_size = adapter->tx_ring[0].ring_size;
++ cur_rx_ring_size = adapter->rx_ring[0].ring_size;
++
++ netif_err(adapter, ifup, adapter->netdev,
++ "Not enough memory to create queues with sizes TX=%d, RX=%d\n",
++ cur_tx_ring_size, cur_rx_ring_size);
++
++ new_tx_ring_size = cur_tx_ring_size;
++ new_rx_ring_size = cur_rx_ring_size;
++
++ /* Decrease the size of the larger queue, or
++ * decrease both if they are the same size.
++ */
++ if (cur_rx_ring_size <= cur_tx_ring_size)
++ new_tx_ring_size = cur_tx_ring_size / 2;
++ if (cur_rx_ring_size >= cur_tx_ring_size)
++ new_rx_ring_size = cur_rx_ring_size / 2;
++
++ if (cur_tx_ring_size < ENA_MIN_RING_SIZE ||
++ cur_rx_ring_size < ENA_MIN_RING_SIZE) {
++ netif_err(adapter, ifup, adapter->netdev,
++ "Queue creation failed with the smallest possible queue size of %d for both queues. Not retrying with smaller queues\n",
++ ENA_MIN_RING_SIZE);
++ return rc;
++ }
++
++ netif_err(adapter, ifup, adapter->netdev,
++ "Retrying queue creation with sizes TX=%d, RX=%d\n",
++ new_tx_ring_size,
++ new_rx_ring_size);
++
++ set_io_rings_size(adapter, new_tx_ring_size,
++ new_rx_ring_size);
++ }
++}
++
+ static int ena_up(struct ena_adapter *adapter)
+ {
+ int rc, i;
+@@ -1768,25 +1873,9 @@ static int ena_up(struct ena_adapter *ad
+ if (rc)
+ goto err_req_irq;
+
+- /* allocate transmit descriptors */
+- rc = ena_setup_all_tx_resources(adapter);
++ rc = create_queues_with_size_backoff(adapter);
+ if (rc)
+- goto err_setup_tx;
+-
+- /* allocate receive descriptors */
+- rc = ena_setup_all_rx_resources(adapter);
+- if (rc)
+- goto err_setup_rx;
+-
+- /* Create TX queues */
+- rc = ena_create_all_io_tx_queues(adapter);
+- if (rc)
+- goto err_create_tx_queues;
+-
+- /* Create RX queues */
+- rc = ena_create_all_io_rx_queues(adapter);
+- if (rc)
+- goto err_create_rx_queues;
++ goto err_create_queues_with_backoff;
+
+ rc = ena_up_complete(adapter);
+ if (rc)
+@@ -1815,14 +1904,11 @@ static int ena_up(struct ena_adapter *ad
+ return rc;
+
+ err_up:
+- ena_destroy_all_rx_queues(adapter);
+-err_create_rx_queues:
+ ena_destroy_all_tx_queues(adapter);
+-err_create_tx_queues:
+- ena_free_all_io_rx_resources(adapter);
+-err_setup_rx:
+ ena_free_all_io_tx_resources(adapter);
+-err_setup_tx:
++ ena_destroy_all_rx_queues(adapter);
++ ena_free_all_io_rx_resources(adapter);
++err_create_queues_with_backoff:
+ ena_free_io_irq(adapter);
+ err_req_irq:
+ ena_del_napi(adapter);
+@@ -3286,17 +3372,14 @@ static int ena_calc_queue_size(struct en
+ max_tx_queue_size = rounddown_pow_of_two(max_tx_queue_size);
+ max_rx_queue_size = rounddown_pow_of_two(max_rx_queue_size);
+
+- tx_queue_size = min_t(u32, tx_queue_size, max_tx_queue_size);
+- rx_queue_size = min_t(u32, rx_queue_size, max_rx_queue_size);
++ tx_queue_size = clamp_val(tx_queue_size, ENA_MIN_RING_SIZE,
++ max_tx_queue_size);
++ rx_queue_size = clamp_val(rx_queue_size, ENA_MIN_RING_SIZE,
++ max_rx_queue_size);
+
+ tx_queue_size = rounddown_pow_of_two(tx_queue_size);
+ rx_queue_size = rounddown_pow_of_two(rx_queue_size);
+
+- if (unlikely(!rx_queue_size || !tx_queue_size)) {
+- dev_err(&ctx->pdev->dev, "Invalid queue size\n");
+- return -EFAULT;
+- }
+-
+ ctx->max_tx_queue_size = max_tx_queue_size;
+ ctx->max_rx_queue_size = max_rx_queue_size;
+ ctx->tx_queue_size = tx_queue_size;
+@@ -3426,8 +3509,8 @@ static int ena_probe(struct pci_dev *pde
+ adapter->msg_enable = netif_msg_init(debug, DEFAULT_MSG_ENABLE);
+ adapter->reset_reason = ENA_REGS_RESET_NORMAL;
+
+- adapter->tx_ring_size = calc_queue_ctx.tx_queue_size;
+- adapter->rx_ring_size = calc_queue_ctx.rx_queue_size;
++ adapter->requested_tx_ring_size = calc_queue_ctx.tx_queue_size;
++ adapter->requested_rx_ring_size = calc_queue_ctx.rx_queue_size;
+ adapter->max_tx_ring_size = calc_queue_ctx.max_tx_queue_size;
+ adapter->max_rx_ring_size = calc_queue_ctx.max_rx_queue_size;
+ adapter->max_tx_sgl_size = calc_queue_ctx.max_tx_sgl_size;
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+@@ -79,6 +79,8 @@
+ #define ENA_BAR_MASK (BIT(ENA_REG_BAR) | BIT(ENA_MEM_BAR))
+
+ #define ENA_DEFAULT_RING_SIZE (1024)
++#define ENA_MIN_RING_SIZE (256)
++
+
+ #define ENA_TX_WAKEUP_THRESH (MAX_SKB_FRAGS + 2)
+ #define ENA_DEFAULT_RX_COPYBREAK (256 - NET_IP_ALIGN)
+@@ -330,8 +332,8 @@ struct ena_adapter {
+ u32 tx_usecs, rx_usecs; /* interrupt moderation */
+ u32 tx_frames, rx_frames; /* interrupt moderation */
+
+- u32 tx_ring_size;
+- u32 rx_ring_size;
++ u32 requested_tx_ring_size;
++ u32 requested_rx_ring_size;
+
+ u32 max_tx_ring_size;
+ u32 max_rx_ring_size;
diff --git a/debian/patches/features/all/ena/net-ena-arrange-ena_probe-function-variables-in-reve.patch b/debian/patches/features/all/ena/net-ena-arrange-ena_probe-function-variables-in-reve.patch
new file mode 100644
index 000000000..af89762f1
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-arrange-ena_probe-function-variables-in-reve.patch
@@ -0,0 +1,49 @@
+From: Sameeh Jubran <sameehj@amazon.com>
+Date: Mon, 3 Jun 2019 17:43:22 +0300
+Subject: [PATCH] net: ena: arrange ena_probe() function variables in reverse
+ christmas tree
+Origin: https://git.kernel.org/linus/83b9240428a66da3c8e24e719b985d533cf58067
+Bug-Debian: https://bugs.debian.org/941291
+
+Reverse christmas tree arrangement is when strings are written from longer
+to shorter with each line. Most of our functions are abiding this
+arrangement but this function does not.
+
+In this commit we arrange the variables of ena_probe() in reverse christmas
+tree.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -3274,17 +3274,17 @@ static int ena_calc_queue_size(struct pc
+ static int ena_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
+ {
+ struct ena_com_dev_get_features_ctx get_feat_ctx;
+- static int version_printed;
+- struct net_device *netdev;
+- struct ena_adapter *adapter;
+ struct ena_llq_configurations llq_config;
+ struct ena_com_dev *ena_dev = NULL;
+- char *queue_type_str;
+- static int adapters_found;
++ struct ena_adapter *adapter;
++ static int version_printed;
+ int io_queue_num, bars, rc;
+- int queue_size;
++ struct net_device *netdev;
++ static int adapters_found;
++ char *queue_type_str;
+ u16 tx_sgl_size = 0;
+ u16 rx_sgl_size = 0;
++ int queue_size;
+ bool wd_state;
+
+ dev_dbg(&pdev->dev, "%s\n", __func__);
diff --git a/debian/patches/features/all/ena/net-ena-don-t-wake-up-tx-queue-when-down.patch b/debian/patches/features/all/ena/net-ena-don-t-wake-up-tx-queue-when-down.patch
new file mode 100644
index 000000000..e1b214e80
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-don-t-wake-up-tx-queue-when-down.patch
@@ -0,0 +1,52 @@
+From: Sameeh Jubran <sameehj@amazon.com>
+Date: Sun, 15 Sep 2019 17:29:44 +0300
+Subject: [PATCH] net: ena: don't wake up tx queue when down
+Origin: https://git.kernel.org/linus/a53651ec93a8d7ab5b26c5390e0c389048b4b4b6
+Bug-Debian: https://bugs.debian.org/941291
+
+There is a race condition that can occur when calling ena_down().
+The ena_clean_tx_irq() - which is a part of the napi handler -
+function might wake up the tx queue when the queue is supposed
+to be down (during recovery or changing the size of the queues
+for example) This causes the ena_start_xmit() function to trigger
+and possibly try to access the destroyed queues.
+
+The race is illustrated below:
+
+Flow A: Flow B(napi handler)
+ena_down()
+ netif_carrier_off()
+ netif_tx_disable()
+ ena_clean_tx_irq()
+ netif_tx_wake_queue()
+ ena_napi_disable_all()
+ ena_destroy_all_io_queues()
+
+After these flows the tx queue is active and ena_start_xmit() accesses
+the destroyed queue which leads to a kernel panic.
+
+fixes: 1738cd3ed342 (net: ena: Add a driver for Amazon Elastic Network Adapters (ENA))
+
+Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c
+index 664e3ed97ea9..d118ed4c57ce 100644
+--- a/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -823,7 +823,8 @@ static int ena_clean_tx_irq(struct ena_ring *tx_ring, u32 budget)
+ above_thresh =
+ ena_com_sq_have_enough_space(tx_ring->ena_com_io_sq,
+ ENA_TX_WAKEUP_THRESH);
+- if (netif_tx_queue_stopped(txq) && above_thresh) {
++ if (netif_tx_queue_stopped(txq) && above_thresh &&
++ test_bit(ENA_FLAG_DEV_UP, &tx_ring->adapter->flags)) {
+ netif_tx_wake_queue(txq);
+ u64_stats_update_begin(&tx_ring->syncp);
+ tx_ring->tx_stats.queue_wakeup++;
+--
+2.17.1
+
diff --git a/debian/patches/features/all/ena/net-ena-enable-negotiating-larger-Rx-ring-size.patch b/debian/patches/features/all/ena/net-ena-enable-negotiating-larger-Rx-ring-size.patch
new file mode 100644
index 000000000..43be08179
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-enable-negotiating-larger-Rx-ring-size.patch
@@ -0,0 +1,270 @@
+From: Sameeh Jubran <sameehj@amazon.com>
+Date: Tue, 11 Jun 2019 14:58:06 +0300
+Subject: [PATCH] net: ena: enable negotiating larger Rx ring size
+Origin: https://git.kernel.org/linus/31aa9857f1733403f2eb12d51c1cec20a22483d9
+Bug-Debian: https://bugs.debian.org/941291
+
+Use MAX_QUEUES_EXT get feature capability to query the device.
+
+Signed-off-by: Netanel Belgazal <netanel@amazon.com>
+Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 144 ++++++++++++-------
+ drivers/net/ethernet/amazon/ena/ena_netdev.h | 15 ++
+ 2 files changed, 110 insertions(+), 49 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -2455,13 +2455,6 @@ static int ena_device_validate_params(st
+ return -EINVAL;
+ }
+
+- if ((get_feat_ctx->max_queues.max_cq_num < adapter->num_queues) ||
+- (get_feat_ctx->max_queues.max_sq_num < adapter->num_queues)) {
+- netif_err(adapter, drv, netdev,
+- "Error, device doesn't support enough queues\n");
+- return -EINVAL;
+- }
+-
+ if (get_feat_ctx->dev_attr.max_mtu < netdev->mtu) {
+ netif_err(adapter, drv, netdev,
+ "Error, device max mtu is smaller than netdev MTU\n");
+@@ -3035,18 +3028,32 @@ static int ena_calc_io_queue_num(struct
+ struct ena_com_dev *ena_dev,
+ struct ena_com_dev_get_features_ctx *get_feat_ctx)
+ {
+- int io_sq_num, io_queue_num;
++ int io_tx_sq_num, io_tx_cq_num, io_rx_num, io_queue_num;
++
++ if (ena_dev->supported_features & BIT(ENA_ADMIN_MAX_QUEUES_EXT)) {
++ struct ena_admin_queue_ext_feature_fields *max_queue_ext =
++ &get_feat_ctx->max_queue_ext.max_queue_ext;
++ io_rx_num = min_t(int, max_queue_ext->max_rx_sq_num,
++ max_queue_ext->max_rx_cq_num);
+
+- /* In case of LLQ use the llq number in the get feature cmd */
++ io_tx_sq_num = max_queue_ext->max_tx_sq_num;
++ io_tx_cq_num = max_queue_ext->max_tx_cq_num;
++ } else {
++ struct ena_admin_queue_feature_desc *max_queues =
++ &get_feat_ctx->max_queues;
++ io_tx_sq_num = max_queues->max_sq_num;
++ io_tx_cq_num = max_queues->max_cq_num;
++ io_rx_num = min_t(int, io_tx_sq_num, io_tx_cq_num);
++ }
++
++ /* In case of LLQ use the llq fields for the tx SQ/CQ */
+ if (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV)
+- io_sq_num = get_feat_ctx->llq.max_llq_num;
+- else
+- io_sq_num = get_feat_ctx->max_queues.max_sq_num;
++ io_tx_sq_num = get_feat_ctx->llq.max_llq_num;
+
+ io_queue_num = min_t(int, num_online_cpus(), ENA_MAX_NUM_IO_QUEUES);
+- io_queue_num = min_t(int, io_queue_num, io_sq_num);
+- io_queue_num = min_t(int, io_queue_num,
+- get_feat_ctx->max_queues.max_cq_num);
++ io_queue_num = min_t(int, io_queue_num, io_rx_num);
++ io_queue_num = min_t(int, io_queue_num, io_tx_sq_num);
++ io_queue_num = min_t(int, io_queue_num, io_tx_cq_num);
+ /* 1 IRQ for for mgmnt and 1 IRQs for each IO direction */
+ io_queue_num = min_t(int, io_queue_num, pci_msix_vec_count(pdev) - 1);
+ if (unlikely(!io_queue_num)) {
+@@ -3229,36 +3236,73 @@ static inline void set_default_llq_confi
+ llq_config->llq_ring_entry_size_value = 128;
+ }
+
+-static int ena_calc_queue_size(struct pci_dev *pdev,
+- struct ena_com_dev *ena_dev,
+- u16 *max_tx_sgl_size,
+- u16 *max_rx_sgl_size,
+- struct ena_com_dev_get_features_ctx *get_feat_ctx)
+-{
+- u32 queue_size = ENA_DEFAULT_RING_SIZE;
+-
+- queue_size = min_t(u32, queue_size,
+- get_feat_ctx->max_queues.max_cq_depth);
+- queue_size = min_t(u32, queue_size,
+- get_feat_ctx->max_queues.max_sq_depth);
++static int ena_calc_queue_size(struct ena_calc_queue_size_ctx *ctx)
++{
++ struct ena_admin_feature_llq_desc *llq = &ctx->get_feat_ctx->llq;
++ struct ena_com_dev *ena_dev = ctx->ena_dev;
++ u32 tx_queue_size = ENA_DEFAULT_RING_SIZE;
++ u32 rx_queue_size = ENA_DEFAULT_RING_SIZE;
++ u32 max_tx_queue_size;
++ u32 max_rx_queue_size;
++
++ if (ctx->ena_dev->supported_features & BIT(ENA_ADMIN_MAX_QUEUES_EXT)) {
++ struct ena_admin_queue_ext_feature_fields *max_queue_ext =
++ &ctx->get_feat_ctx->max_queue_ext.max_queue_ext;
++ max_rx_queue_size = min_t(u32, max_queue_ext->max_rx_cq_depth,
++ max_queue_ext->max_rx_sq_depth);
++ max_tx_queue_size = max_queue_ext->max_tx_cq_depth;
++
++ if (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV)
++ max_tx_queue_size = min_t(u32, max_tx_queue_size,
++ llq->max_llq_depth);
++ else
++ max_tx_queue_size = min_t(u32, max_tx_queue_size,
++ max_queue_ext->max_tx_sq_depth);
++
++ ctx->max_tx_sgl_size = min_t(u16, ENA_PKT_MAX_BUFS,
++ max_queue_ext->max_per_packet_tx_descs);
++ ctx->max_rx_sgl_size = min_t(u16, ENA_PKT_MAX_BUFS,
++ max_queue_ext->max_per_packet_rx_descs);
++ } else {
++ struct ena_admin_queue_feature_desc *max_queues =
++ &ctx->get_feat_ctx->max_queues;
++ max_rx_queue_size = min_t(u32, max_queues->max_cq_depth,
++ max_queues->max_sq_depth);
++ max_tx_queue_size = max_queues->max_cq_depth;
++
++ if (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV)
++ max_tx_queue_size = min_t(u32, max_tx_queue_size,
++ llq->max_llq_depth);
++ else
++ max_tx_queue_size = min_t(u32, max_tx_queue_size,
++ max_queues->max_sq_depth);
+
+- if (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV)
+- queue_size = min_t(u32, queue_size,
+- get_feat_ctx->llq.max_llq_depth);
++ ctx->max_tx_sgl_size = min_t(u16, ENA_PKT_MAX_BUFS,
++ max_queues->max_packet_tx_descs);
++ ctx->max_rx_sgl_size = min_t(u16, ENA_PKT_MAX_BUFS,
++ max_queues->max_packet_rx_descs);
++ }
+
+- queue_size = rounddown_pow_of_two(queue_size);
++ max_tx_queue_size = rounddown_pow_of_two(max_tx_queue_size);
++ max_rx_queue_size = rounddown_pow_of_two(max_rx_queue_size);
+
+- if (unlikely(!queue_size)) {
+- dev_err(&pdev->dev, "Invalid queue size\n");
++ tx_queue_size = min_t(u32, tx_queue_size, max_tx_queue_size);
++ rx_queue_size = min_t(u32, rx_queue_size, max_rx_queue_size);
++
++ tx_queue_size = rounddown_pow_of_two(tx_queue_size);
++ rx_queue_size = rounddown_pow_of_two(rx_queue_size);
++
++ if (unlikely(!rx_queue_size || !tx_queue_size)) {
++ dev_err(&ctx->pdev->dev, "Invalid queue size\n");
+ return -EFAULT;
+ }
+
+- *max_tx_sgl_size = min_t(u16, ENA_PKT_MAX_BUFS,
+- get_feat_ctx->max_queues.max_packet_tx_descs);
+- *max_rx_sgl_size = min_t(u16, ENA_PKT_MAX_BUFS,
+- get_feat_ctx->max_queues.max_packet_rx_descs);
++ ctx->max_tx_queue_size = max_tx_queue_size;
++ ctx->max_rx_queue_size = max_rx_queue_size;
++ ctx->tx_queue_size = tx_queue_size;
++ ctx->rx_queue_size = rx_queue_size;
+
+- return queue_size;
++ return 0;
+ }
+
+ /* ena_probe - Device Initialization Routine
+@@ -3274,6 +3318,7 @@ static int ena_calc_queue_size(struct pc
+ static int ena_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
+ {
+ struct ena_com_dev_get_features_ctx get_feat_ctx;
++ struct ena_calc_queue_size_ctx calc_queue_ctx = { 0 };
+ struct ena_llq_configurations llq_config;
+ struct ena_com_dev *ena_dev = NULL;
+ struct ena_adapter *adapter;
+@@ -3281,9 +3326,6 @@ static int ena_probe(struct pci_dev *pde
+ struct net_device *netdev;
+ static int adapters_found;
+ char *queue_type_str;
+- u16 tx_sgl_size = 0;
+- u16 rx_sgl_size = 0;
+- int queue_size;
+ bool wd_state;
+
+ dev_dbg(&pdev->dev, "%s\n", __func__);
+@@ -3340,20 +3382,25 @@ static int ena_probe(struct pci_dev *pde
+ goto err_device_destroy;
+ }
+
++ calc_queue_ctx.ena_dev = ena_dev;
++ calc_queue_ctx.get_feat_ctx = &get_feat_ctx;
++ calc_queue_ctx.pdev = pdev;
++
+ /* initial Tx interrupt delay, Assumes 1 usec granularity.
+ * Updated during device initialization with the real granularity
+ */
+ ena_dev->intr_moder_tx_interval = ENA_INTR_INITIAL_TX_INTERVAL_USECS;
+ io_queue_num = ena_calc_io_queue_num(pdev, ena_dev, &get_feat_ctx);
+- queue_size = ena_calc_queue_size(pdev, ena_dev, &tx_sgl_size,
+- &rx_sgl_size, &get_feat_ctx);
+- if ((queue_size <= 0) || (io_queue_num <= 0)) {
++ rc = ena_calc_queue_size(&calc_queue_ctx);
++ if (rc || io_queue_num <= 0) {
+ rc = -EFAULT;
+ goto err_device_destroy;
+ }
+
+- dev_info(&pdev->dev, "creating %d io queues. queue size: %d. LLQ is %s\n",
+- io_queue_num, queue_size,
++ dev_info(&pdev->dev, "creating %d io queues. rx queue size: %d tx queue size. %d LLQ is %s\n",
++ io_queue_num,
++ calc_queue_ctx.rx_queue_size,
++ calc_queue_ctx.tx_queue_size,
+ (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV) ?
+ "ENABLED" : "DISABLED");
+
+@@ -3379,11 +3426,10 @@ static int ena_probe(struct pci_dev *pde
+ adapter->msg_enable = netif_msg_init(debug, DEFAULT_MSG_ENABLE);
+ adapter->reset_reason = ENA_REGS_RESET_NORMAL;
+
+- adapter->tx_ring_size = queue_size;
+- adapter->rx_ring_size = queue_size;
+-
+- adapter->max_tx_sgl_size = tx_sgl_size;
+- adapter->max_rx_sgl_size = rx_sgl_size;
++ adapter->tx_ring_size = calc_queue_ctx.tx_queue_size;
++ adapter->rx_ring_size = calc_queue_ctx.rx_queue_size;
++ adapter->max_tx_sgl_size = calc_queue_ctx.max_tx_sgl_size;
++ adapter->max_rx_sgl_size = calc_queue_ctx.max_rx_sgl_size;
+
+ adapter->num_queues = io_queue_num;
+ adapter->last_monitored_tx_qid = 0;
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+@@ -154,6 +154,18 @@ struct ena_napi {
+ u32 qid;
+ };
+
++struct ena_calc_queue_size_ctx {
++ struct ena_com_dev_get_features_ctx *get_feat_ctx;
++ struct ena_com_dev *ena_dev;
++ struct pci_dev *pdev;
++ u16 tx_queue_size;
++ u16 rx_queue_size;
++ u16 max_tx_queue_size;
++ u16 max_rx_queue_size;
++ u16 max_tx_sgl_size;
++ u16 max_rx_sgl_size;
++};
++
+ struct ena_tx_buffer {
+ struct sk_buff *skb;
+ /* num of ena desc for this specific skb
+@@ -321,6 +333,9 @@ struct ena_adapter {
+ u32 tx_ring_size;
+ u32 rx_ring_size;
+
++ u32 max_tx_ring_size;
++ u32 max_rx_ring_size;
++
+ u32 msg_enable;
+
+ u16 max_tx_sgl_size;
diff --git a/debian/patches/features/all/ena/net-ena-enable-the-interrupt_moderation-in-driver_su.patch b/debian/patches/features/all/ena/net-ena-enable-the-interrupt_moderation-in-driver_su.patch
new file mode 100644
index 000000000..3eb7e408c
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-enable-the-interrupt_moderation-in-driver_su.patch
@@ -0,0 +1,63 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Mon, 16 Sep 2019 14:31:29 +0300
+Subject: [PATCH] net: ena: enable the interrupt_moderation in
+ driver_supported_features
+Origin: https://git.kernel.org/linus/bd21b0cc3a63d1c658b230db084b0f392b78cab2
+Bug-Debian: https://bugs.debian.org/941291
+
+Add driver_supported_features to host_host info which is a new API used to
+communicate to the device which features are supported by the driver.
+
+Add the interrupt_moderation bit to host_info->driver_supported_features
+and enable it to signal the device that this driver supports interrupt
+moderation properly.
+
+Reserved bits are for features implemented in the future
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_admin_defs.h | 8 ++++++++
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 3 +++
+ 2 files changed, 11 insertions(+)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
+@@ -808,6 +808,12 @@ struct ena_admin_host_info {
+ u16 num_cpus;
+
+ u16 reserved;
++
++ /* 1 :0 : reserved
++ * 2 : interrupt_moderation
++ * 31:3 : reserved
++ */
++ u32 driver_supported_features;
+ };
+
+ struct ena_admin_rss_ind_table_entry {
+@@ -1110,6 +1116,8 @@ struct ena_admin_ena_mmio_req_read_less_
+ #define ENA_ADMIN_HOST_INFO_DEVICE_MASK GENMASK(7, 3)
+ #define ENA_ADMIN_HOST_INFO_BUS_SHIFT 8
+ #define ENA_ADMIN_HOST_INFO_BUS_MASK GENMASK(15, 8)
++#define ENA_ADMIN_HOST_INFO_INTERRUPT_MODERATION_SHIFT 2
++#define ENA_ADMIN_HOST_INFO_INTERRUPT_MODERATION_MASK BIT(2)
+
+ /* aenq_common_desc */
+ #define ENA_ADMIN_AENQ_COMMON_DESC_PHASE_MASK BIT(0)
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -2440,6 +2440,9 @@ static void ena_config_host_info(struct
+ ("K"[0] << ENA_ADMIN_HOST_INFO_MODULE_TYPE_SHIFT);
+ host_info->num_cpus = num_online_cpus();
+
++ host_info->driver_supported_features =
++ ENA_ADMIN_HOST_INFO_INTERRUPT_MODERATION_MASK;
++
+ rc = ena_com_set_host_attributes(ena_dev);
+ if (rc) {
+ if (rc == -EOPNOTSUPP)
diff --git a/debian/patches/features/all/ena/net-ena-fix-incorrect-update-of-intr_delay_resolutio.patch b/debian/patches/features/all/ena/net-ena-fix-incorrect-update-of-intr_delay_resolutio.patch
new file mode 100644
index 000000000..e194ecde9
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-fix-incorrect-update-of-intr_delay_resolutio.patch
@@ -0,0 +1,89 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Mon, 16 Sep 2019 14:31:36 +0300
+Subject: [PATCH] net: ena: fix incorrect update of intr_delay_resolution
+Origin: https://git.kernel.org/linus/79226cea4a5ebbd84a4eee1762526f664c7beb62
+Bug-Debian: https://bugs.debian.org/941291
+
+ena_dev->intr_moder_rx/tx_interval save the intervals received from the
+user after dividing them by ena_dev->intr_delay_resolution. Therefore
+when intr_delay_resolution changes, the code needs to first mutiply
+intr_moder_rx/tx_interval by the previous intr_delay_resolution to get
+the value originally given by the user, and only then divide it by the
+new intr_delay_resolution.
+
+Current code does not first multiply intr_moder_rx/tx_interval by the old
+intr_delay_resolution. This commit fixes it.
+
+Also initialize ena_dev->intr_delay_resolution to be 1.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_com.c | 21 ++++++++++++++++----
+ drivers/net/ethernet/amazon/ena/ena_com.h | 1 +
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 1 +
+ 3 files changed, 19 insertions(+), 4 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.c
+@@ -1281,17 +1281,30 @@ static int ena_com_ind_tbl_convert_from_
+ static void ena_com_update_intr_delay_resolution(struct ena_com_dev *ena_dev,
+ u16 intr_delay_resolution)
+ {
++ /* Initial value of intr_delay_resolution might be 0 */
++ u16 prev_intr_delay_resolution =
++ ena_dev->intr_delay_resolution ?
++ ena_dev->intr_delay_resolution :
++ ENA_DEFAULT_INTR_DELAY_RESOLUTION;
++
+ if (!intr_delay_resolution) {
+ pr_err("Illegal intr_delay_resolution provided. Going to use default 1 usec resolution\n");
+- intr_delay_resolution = 1;
++ intr_delay_resolution = ENA_DEFAULT_INTR_DELAY_RESOLUTION;
+ }
+- ena_dev->intr_delay_resolution = intr_delay_resolution;
+
+ /* update Rx */
+- ena_dev->intr_moder_rx_interval /= intr_delay_resolution;
++ ena_dev->intr_moder_rx_interval =
++ ena_dev->intr_moder_rx_interval *
++ prev_intr_delay_resolution /
++ intr_delay_resolution;
+
+ /* update Tx */
+- ena_dev->intr_moder_tx_interval /= intr_delay_resolution;
++ ena_dev->intr_moder_tx_interval =
++ ena_dev->intr_moder_tx_interval *
++ prev_intr_delay_resolution /
++ intr_delay_resolution;
++
++ ena_dev->intr_delay_resolution = intr_delay_resolution;
+ }
+
+ /*****************************************************************************/
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.h
+@@ -74,6 +74,7 @@
+
+ #define ENA_INTR_INITIAL_TX_INTERVAL_USECS 196
+ #define ENA_INTR_INITIAL_RX_INTERVAL_USECS 0
++#define ENA_DEFAULT_INTR_DELAY_RESOLUTION 1
+
+ #define ENA_HW_HINTS_NO_TIMEOUT 0xFFFF
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -3502,6 +3502,7 @@ static int ena_probe(struct pci_dev *pde
+ */
+ ena_dev->intr_moder_tx_interval = ENA_INTR_INITIAL_TX_INTERVAL_USECS;
+ ena_dev->intr_moder_rx_interval = ENA_INTR_INITIAL_RX_INTERVAL_USECS;
++ ena_dev->intr_delay_resolution = ENA_DEFAULT_INTR_DELAY_RESOLUTION;
+ io_queue_num = ena_calc_io_queue_num(pdev, ena_dev, &get_feat_ctx);
+ rc = ena_calc_queue_size(&calc_queue_ctx);
+ if (rc || io_queue_num <= 0) {
diff --git a/debian/patches/features/all/ena/net-ena-fix-retrieval-of-nonadaptive-interrupt-moder.patch b/debian/patches/features/all/ena/net-ena-fix-retrieval-of-nonadaptive-interrupt-moder.patch
new file mode 100644
index 000000000..353f87dbf
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-fix-retrieval-of-nonadaptive-interrupt-moder.patch
@@ -0,0 +1,45 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Mon, 16 Sep 2019 14:31:35 +0300
+Subject: [PATCH] net: ena: fix retrieval of nonadaptive interrupt moderation
+ intervals
+Origin: https://git.kernel.org/linus/0eda847953d8dfb4b713ea62420f66157e230e13
+Bug-Debian: https://bugs.debian.org/941291
+
+Nonadaptive interrupt moderation intervals are assigned the value set
+by the user in ethtool -C divided by ena_dev->intr_delay_resolution.
+
+Therefore when the user tries to get the nonadaptive interrupt moderation
+intervals with ethtool -c the code needs to multiply the saved value
+by ena_dev->intr_delay_resolution.
+
+The current code erroneously divides instead of multiplying in ethtool -c.
+This patch fixes this.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_ethtool.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_ethtool.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+@@ -310,14 +310,15 @@ static int ena_get_coalesce(struct net_d
+ /* the devie doesn't support interrupt moderation */
+ return -EOPNOTSUPP;
+ }
++
+ coalesce->tx_coalesce_usecs =
+- ena_com_get_nonadaptive_moderation_interval_tx(ena_dev) /
++ ena_com_get_nonadaptive_moderation_interval_tx(ena_dev) *
+ ena_dev->intr_delay_resolution;
+
+ if (!ena_com_get_adaptive_moderation_enabled(ena_dev))
+ coalesce->rx_coalesce_usecs =
+ ena_com_get_nonadaptive_moderation_interval_rx(ena_dev)
+- / ena_dev->intr_delay_resolution;
++ * ena_dev->intr_delay_resolution;
+
+ coalesce->use_adaptive_rx_coalesce =
+ ena_com_get_adaptive_moderation_enabled(ena_dev);
diff --git a/debian/patches/features/all/ena/net-ena-fix-return-value-of-ena_com_config_llq_info.patch b/debian/patches/features/all/ena/net-ena-fix-return-value-of-ena_com_config_llq_info.patch
new file mode 100644
index 000000000..f757bf178
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-fix-return-value-of-ena_com_config_llq_info.patch
@@ -0,0 +1,34 @@
+From: Sameeh Jubran <sameehj@amazon.com>
+Date: Wed, 1 May 2019 16:47:07 +0300
+Subject: [PATCH] net: ena: fix return value of ena_com_config_llq_info()
+Origin: https://git.kernel.org/linus/9a27de0c6ba10fe1af74d16d3524425e52c1ba3e
+Bug-Debian: https://bugs.debian.org/941291
+
+ena_com_config_llq_info() returns 0 even if ena_com_set_llq() fails.
+Return the failure code of ena_com_set_llq() in case it fails.
+
+fixes: 689b2bdaaa14 ("net: ena: add functions for handling Low Latency Queues in ena_com")
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_com.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/net/ethernet/amazon/ena/ena_com.c b/drivers/net/ethernet/amazon/ena/ena_com.c
+index f9bc0b831a1a..4fe437fe771b 100644
+--- a/drivers/net/ethernet/amazon/ena/ena_com.c
++++ b/drivers/net/ethernet/amazon/ena/ena_com.c
+@@ -731,7 +731,7 @@ static int ena_com_config_llq_info(struct ena_com_dev *ena_dev,
+ if (rc)
+ pr_err("Cannot set LLQ configuration: %d\n", rc);
+
+- return 0;
++ return rc;
+ }
+
+ static int ena_com_wait_and_process_admin_cq_interrupts(struct ena_comp_ctx *comp_ctx,
+--
+2.17.1
+
diff --git a/debian/patches/features/all/ena/net-ena-fix-set-freed-objects-to-NULL-to-avoid-faili.patch b/debian/patches/features/all/ena/net-ena-fix-set-freed-objects-to-NULL-to-avoid-faili.patch
new file mode 100644
index 000000000..bc30849de
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-fix-set-freed-objects-to-NULL-to-avoid-faili.patch
@@ -0,0 +1,91 @@
+From: Sameeh Jubran <sameehj@amazon.com>
+Date: Wed, 1 May 2019 16:47:04 +0300
+Subject: [PATCH] net: ena: fix: set freed objects to NULL to avoid failing
+ future allocations
+Origin: https://git.kernel.org/linus/8ee8ee7fe87bf64738ab4e31be036a7165608b27
+Bug-Debian: https://bugs.debian.org/941291
+
+In some cases when a queue related allocation fails, successful past
+allocations are freed but the pointer that pointed to them is not
+set to NULL. This is a problem for 2 reasons:
+1. This is generally a bad practice since this pointer might be
+accidentally accessed in the future.
+2. Future allocations using the same pointer check if the pointer
+is NULL and fail if it is not.
+
+Fixed this by setting such pointers to NULL in the allocation of
+queue related objects.
+
+Also refactored the code of ena_setup_tx_resources() to goto-style
+error handling to avoid code duplication of resource freeing.
+
+Fixes: 1738cd3ed342 ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)")
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 25 ++++++++++++--------
+ 1 file changed, 15 insertions(+), 10 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -224,28 +224,23 @@ static int ena_setup_tx_resources(struct
+ if (!tx_ring->tx_buffer_info) {
+ tx_ring->tx_buffer_info = vzalloc(size);
+ if (!tx_ring->tx_buffer_info)
+- return -ENOMEM;
++ goto err_tx_buffer_info;
+ }
+
+ size = sizeof(u16) * tx_ring->ring_size;
+ tx_ring->free_tx_ids = vzalloc_node(size, node);
+ if (!tx_ring->free_tx_ids) {
+ tx_ring->free_tx_ids = vzalloc(size);
+- if (!tx_ring->free_tx_ids) {
+- vfree(tx_ring->tx_buffer_info);
+- return -ENOMEM;
+- }
++ if (!tx_ring->free_tx_ids)
++ goto err_free_tx_ids;
+ }
+
+ size = tx_ring->tx_max_header_size;
+ tx_ring->push_buf_intermediate_buf = vzalloc_node(size, node);
+ if (!tx_ring->push_buf_intermediate_buf) {
+ tx_ring->push_buf_intermediate_buf = vzalloc(size);
+- if (!tx_ring->push_buf_intermediate_buf) {
+- vfree(tx_ring->tx_buffer_info);
+- vfree(tx_ring->free_tx_ids);
+- return -ENOMEM;
+- }
++ if (!tx_ring->push_buf_intermediate_buf)
++ goto err_push_buf_intermediate_buf;
+ }
+
+ /* Req id ring for TX out of order completions */
+@@ -259,6 +254,15 @@ static int ena_setup_tx_resources(struct
+ tx_ring->next_to_clean = 0;
+ tx_ring->cpu = ena_irq->cpu;
+ return 0;
++
++err_push_buf_intermediate_buf:
++ vfree(tx_ring->free_tx_ids);
++ tx_ring->free_tx_ids = NULL;
++err_free_tx_ids:
++ vfree(tx_ring->tx_buffer_info);
++ tx_ring->tx_buffer_info = NULL;
++err_tx_buffer_info:
++ return -ENOMEM;
+ }
+
+ /* ena_free_tx_resources - Free I/O Tx Resources per Queue
+@@ -378,6 +382,7 @@ static int ena_setup_rx_resources(struct
+ rx_ring->free_rx_ids = vzalloc(size);
+ if (!rx_ring->free_rx_ids) {
+ vfree(rx_ring->rx_buffer_info);
++ rx_ring->rx_buffer_info = NULL;
+ return -ENOMEM;
+ }
+ }
diff --git a/debian/patches/features/all/ena/net-ena-fix-update-of-interrupt-moderation-register.patch b/debian/patches/features/all/ena/net-ena-fix-update-of-interrupt-moderation-register.patch
new file mode 100644
index 000000000..72137a523
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-fix-update-of-interrupt-moderation-register.patch
@@ -0,0 +1,39 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Mon, 16 Sep 2019 14:31:34 +0300
+Subject: [PATCH] net: ena: fix update of interrupt moderation register
+Origin: https://git.kernel.org/linus/7b8a28787e2ba671eaeb073e3b62fb4786338a09
+Bug-Debian: https://bugs.debian.org/941291
+
+Current implementation always updates the interrupt register with
+the smoothed_interval of the rx_ring. However this should be
+done only in case of adaptive interrupt moderation. If non-adaptive
+interrupt moderation is used, the non-adaptive interrupt moderation
+interval should be used. This commit fixes that.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -1188,12 +1188,15 @@ static void ena_unmask_interrupt(struct
+ struct ena_ring *rx_ring)
+ {
+ struct ena_eth_io_intr_reg intr_reg;
++ u32 rx_interval = ena_com_get_adaptive_moderation_enabled(rx_ring->ena_dev) ?
++ rx_ring->smoothed_interval :
++ ena_com_get_nonadaptive_moderation_interval_rx(rx_ring->ena_dev);
+
+ /* Update intr register: rx intr delay,
+ * tx intr delay and interrupt unmask
+ */
+ ena_com_update_intr_reg(&intr_reg,
+- rx_ring->smoothed_interval,
++ rx_interval,
+ tx_ring->smoothed_interval,
+ true);
+
diff --git a/debian/patches/features/all/ena/net-ena-improve-latency-by-disabling-adaptive-interr.patch b/debian/patches/features/all/ena/net-ena-improve-latency-by-disabling-adaptive-interr.patch
new file mode 100644
index 000000000..ec5dc707c
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-improve-latency-by-disabling-adaptive-interr.patch
@@ -0,0 +1,41 @@
+From: Sameeh Jubran <sameehj@amazon.com>
+Date: Wed, 1 May 2019 16:47:08 +0300
+Subject: [PATCH] net: ena: improve latency by disabling adaptive interrupt
+ moderation by default
+Origin: https://git.kernel.org/linus/78cb421d185cfb4fcea94e7c3ff6e6ea77bb8c11
+Bug-Debian: https://bugs.debian.org/941291
+
+Adaptive interrupt moderation was erroneously enabled by default
+in the driver.
+
+In case the device supports adaptive interrupt moderation it will
+be automatically used, which may potentially increase latency.
+
+The adaptive moderation can be enabled from ethtool command in
+case the feature is supported by the device.
+
+Fixes: 1738cd3ed342 ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)")
+Signed-off-by: Guy Tzalik <gtzalik@amazon.com>
+Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_com.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.c
+@@ -2801,7 +2801,11 @@ int ena_com_init_interrupt_moderation(st
+ /* if moderation is supported by device we set adaptive moderation */
+ delay_resolution = get_resp.u.intr_moderation.intr_delay_resolution;
+ ena_com_update_intr_delay_resolution(ena_dev, delay_resolution);
+- ena_com_enable_adaptive_moderation(ena_dev);
++
++ /* Disable adaptive moderation by default - can be enabled from
++ * ethtool
++ */
++ ena_com_disable_adaptive_moderation(ena_dev);
+
+ return 0;
+ err:
diff --git a/debian/patches/features/all/ena/net-ena-make-ethtool-show-correct-current-and-max-qu.patch b/debian/patches/features/all/ena/net-ena-make-ethtool-show-correct-current-and-max-qu.patch
new file mode 100644
index 000000000..3367bc9f9
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-make-ethtool-show-correct-current-and-max-qu.patch
@@ -0,0 +1,53 @@
+From: Sameeh Jubran <sameehj@amazon.com>
+Date: Tue, 11 Jun 2019 14:58:07 +0300
+Subject: [PATCH] net: ena: make ethtool show correct current and max queue
+ sizes
+Origin: https://git.kernel.org/linus/9f9ae3f98b8d8b8aa709831057759dbb52ba5083
+Bug-Debian: https://bugs.debian.org/941291
+
+Currently ethtool -g shows the same size for current and max queue
+sizes.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_ethtool.c | 10 ++++------
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 2 ++
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_ethtool.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+@@ -447,13 +447,11 @@ static void ena_get_ringparam(struct net
+ struct ethtool_ringparam *ring)
+ {
+ struct ena_adapter *adapter = netdev_priv(netdev);
+- struct ena_ring *tx_ring = &adapter->tx_ring[0];
+- struct ena_ring *rx_ring = &adapter->rx_ring[0];
+
+- ring->rx_max_pending = rx_ring->ring_size;
+- ring->tx_max_pending = tx_ring->ring_size;
+- ring->rx_pending = rx_ring->ring_size;
+- ring->tx_pending = tx_ring->ring_size;
++ ring->tx_max_pending = adapter->max_tx_ring_size;
++ ring->rx_max_pending = adapter->max_rx_ring_size;
++ ring->tx_pending = adapter->tx_ring_size;
++ ring->rx_pending = adapter->rx_ring_size;
+ }
+
+ static u32 ena_flow_hash_to_flow_type(u16 hash_fields)
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -3428,6 +3428,8 @@ static int ena_probe(struct pci_dev *pde
+
+ adapter->tx_ring_size = calc_queue_ctx.tx_queue_size;
+ adapter->rx_ring_size = calc_queue_ctx.rx_queue_size;
++ adapter->max_tx_ring_size = calc_queue_ctx.max_tx_queue_size;
++ adapter->max_rx_ring_size = calc_queue_ctx.max_rx_queue_size;
+ adapter->max_tx_sgl_size = calc_queue_ctx.max_tx_sgl_size;
+ adapter->max_rx_sgl_size = calc_queue_ctx.max_rx_sgl_size;
+
diff --git a/debian/patches/features/all/ena/net-ena-optimise-calculations-for-CQ-doorbell.patch b/debian/patches/features/all/ena/net-ena-optimise-calculations-for-CQ-doorbell.patch
new file mode 100644
index 000000000..c790eae13
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-optimise-calculations-for-CQ-doorbell.patch
@@ -0,0 +1,50 @@
+From: Sameeh Jubran <sameehj@amazon.com>
+Date: Mon, 3 Jun 2019 17:43:27 +0300
+Subject: [PATCH] net: ena: optimise calculations for CQ doorbell
+Origin: https://git.kernel.org/linus/d91860989dd4bce582ed6c3647a0d41d6fd895b3
+Bug-Debian: https://bugs.debian.org/941291
+
+This patch initially checks if CQ doorbell
+is needed before proceeding with the calculations.
+
+Signed-off-by: Igor Chauskin <igorch@amazon.com>
+Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_eth_com.h | 20 ++++++++++---------
+ 1 file changed, 11 insertions(+), 9 deletions(-)
+
+diff --git a/drivers/net/ethernet/amazon/ena/ena_eth_com.h b/drivers/net/ethernet/amazon/ena/ena_eth_com.h
+index 0a3d9180e40e..77986c0ea52c 100644
+--- a/drivers/net/ethernet/amazon/ena/ena_eth_com.h
++++ b/drivers/net/ethernet/amazon/ena/ena_eth_com.h
+@@ -195,15 +195,17 @@ static inline int ena_com_update_dev_comp_head(struct ena_com_io_cq *io_cq)
+ u16 unreported_comp, head;
+ bool need_update;
+
+- head = io_cq->head;
+- unreported_comp = head - io_cq->last_head_update;
+- need_update = unreported_comp > (io_cq->q_depth / ENA_COMP_HEAD_THRESH);
+-
+- if (io_cq->cq_head_db_reg && need_update) {
+- pr_debug("Write completion queue doorbell for queue %d: head: %d\n",
+- io_cq->qid, head);
+- writel(head, io_cq->cq_head_db_reg);
+- io_cq->last_head_update = head;
++ if (unlikely(io_cq->cq_head_db_reg)) {
++ head = io_cq->head;
++ unreported_comp = head - io_cq->last_head_update;
++ need_update = unreported_comp > (io_cq->q_depth / ENA_COMP_HEAD_THRESH);
++
++ if (unlikely(need_update)) {
++ pr_debug("Write completion queue doorbell for queue %d: head: %d\n",
++ io_cq->qid, head);
++ writel(head, io_cq->cq_head_db_reg);
++ io_cq->last_head_update = head;
++ }
+ }
+
+ return 0;
+--
+2.17.1
+
diff --git a/debian/patches/features/all/ena/net-ena-reimplement-set-get_coalesce.patch b/debian/patches/features/all/ena/net-ena-reimplement-set-get_coalesce.patch
new file mode 100644
index 000000000..c88ebef3a
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-reimplement-set-get_coalesce.patch
@@ -0,0 +1,158 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Mon, 16 Sep 2019 14:31:28 +0300
+Subject: [PATCH] net: ena: reimplement set/get_coalesce()
+Origin: https://git.kernel.org/linus/b3db86dc4b82ffc63e33c78dafc09d5c78ac4fe4
+Bug-Debian: https://bugs.debian.org/941291
+
+1. Remove old adaptive interrupt moderation code from set/get_coalesce()
+2. Add ena_update_rx_rings_intr_moderation() function for updating
+ nonadaptive interrupt moderation intervals similarly to
+ ena_update_tx_rings_intr_moderation().
+3. Remove checks of multiple unsupported received interrupt coalescing
+ parameters. This makes code cleaner and cancels the need to update
+ it every time a new coalescing parameter is invented.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_ethtool.c | 84 ++++++-------------
+ 1 file changed, 26 insertions(+), 58 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_ethtool.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+@@ -305,7 +305,6 @@ static int ena_get_coalesce(struct net_d
+ {
+ struct ena_adapter *adapter = netdev_priv(net_dev);
+ struct ena_com_dev *ena_dev = adapter->ena_dev;
+- struct ena_intr_moder_entry intr_moder_entry;
+
+ if (!ena_com_interrupt_moderation_supported(ena_dev)) {
+ /* the devie doesn't support interrupt moderation */
+@@ -314,23 +313,12 @@ static int ena_get_coalesce(struct net_d
+ coalesce->tx_coalesce_usecs =
+ ena_com_get_nonadaptive_moderation_interval_tx(ena_dev) /
+ ena_dev->intr_delay_resolution;
+- if (!ena_com_get_adaptive_moderation_enabled(ena_dev)) {
++
++ if (!ena_com_get_adaptive_moderation_enabled(ena_dev))
+ coalesce->rx_coalesce_usecs =
+ ena_com_get_nonadaptive_moderation_interval_rx(ena_dev)
+ / ena_dev->intr_delay_resolution;
+- } else {
+- ena_com_get_intr_moderation_entry(adapter->ena_dev, ENA_INTR_MODER_LOWEST, &intr_moder_entry);
+- coalesce->rx_coalesce_usecs_low = intr_moder_entry.intr_moder_interval;
+- coalesce->rx_max_coalesced_frames_low = intr_moder_entry.pkts_per_interval;
+-
+- ena_com_get_intr_moderation_entry(adapter->ena_dev, ENA_INTR_MODER_MID, &intr_moder_entry);
+- coalesce->rx_coalesce_usecs = intr_moder_entry.intr_moder_interval;
+- coalesce->rx_max_coalesced_frames = intr_moder_entry.pkts_per_interval;
+-
+- ena_com_get_intr_moderation_entry(adapter->ena_dev, ENA_INTR_MODER_HIGHEST, &intr_moder_entry);
+- coalesce->rx_coalesce_usecs_high = intr_moder_entry.intr_moder_interval;
+- coalesce->rx_max_coalesced_frames_high = intr_moder_entry.pkts_per_interval;
+- }
++
+ coalesce->use_adaptive_rx_coalesce =
+ ena_com_get_adaptive_moderation_enabled(ena_dev);
+
+@@ -348,12 +336,22 @@ static void ena_update_tx_rings_intr_mod
+ adapter->tx_ring[i].smoothed_interval = val;
+ }
+
++static void ena_update_rx_rings_intr_moderation(struct ena_adapter *adapter)
++{
++ unsigned int val;
++ int i;
++
++ val = ena_com_get_nonadaptive_moderation_interval_rx(adapter->ena_dev);
++
++ for (i = 0; i < adapter->num_queues; i++)
++ adapter->rx_ring[i].smoothed_interval = val;
++}
++
+ static int ena_set_coalesce(struct net_device *net_dev,
+ struct ethtool_coalesce *coalesce)
+ {
+ struct ena_adapter *adapter = netdev_priv(net_dev);
+ struct ena_com_dev *ena_dev = adapter->ena_dev;
+- struct ena_intr_moder_entry intr_moder_entry;
+ int rc;
+
+ if (!ena_com_interrupt_moderation_supported(ena_dev)) {
+@@ -361,22 +359,6 @@ static int ena_set_coalesce(struct net_d
+ return -EOPNOTSUPP;
+ }
+
+- if (coalesce->rx_coalesce_usecs_irq ||
+- coalesce->rx_max_coalesced_frames_irq ||
+- coalesce->tx_coalesce_usecs_irq ||
+- coalesce->tx_max_coalesced_frames ||
+- coalesce->tx_max_coalesced_frames_irq ||
+- coalesce->stats_block_coalesce_usecs ||
+- coalesce->use_adaptive_tx_coalesce ||
+- coalesce->pkt_rate_low ||
+- coalesce->tx_coalesce_usecs_low ||
+- coalesce->tx_max_coalesced_frames_low ||
+- coalesce->pkt_rate_high ||
+- coalesce->tx_coalesce_usecs_high ||
+- coalesce->tx_max_coalesced_frames_high ||
+- coalesce->rate_sample_interval)
+- return -EINVAL;
+-
+ rc = ena_com_update_nonadaptive_moderation_interval_tx(ena_dev,
+ coalesce->tx_coalesce_usecs);
+ if (rc)
+@@ -384,37 +366,23 @@ static int ena_set_coalesce(struct net_d
+
+ ena_update_tx_rings_intr_moderation(adapter);
+
+- if (ena_com_get_adaptive_moderation_enabled(ena_dev)) {
+- if (!coalesce->use_adaptive_rx_coalesce) {
+- ena_com_disable_adaptive_moderation(ena_dev);
+- rc = ena_com_update_nonadaptive_moderation_interval_rx(ena_dev,
+- coalesce->rx_coalesce_usecs);
+- return rc;
+- }
+- } else { /* was in non-adaptive mode */
+- if (coalesce->use_adaptive_rx_coalesce) {
++ if (coalesce->use_adaptive_rx_coalesce) {
++ if (!ena_com_get_adaptive_moderation_enabled(ena_dev))
+ ena_com_enable_adaptive_moderation(ena_dev);
+- } else {
+- rc = ena_com_update_nonadaptive_moderation_interval_rx(ena_dev,
+- coalesce->rx_coalesce_usecs);
+- return rc;
+- }
++ return 0;
+ }
+
+- intr_moder_entry.intr_moder_interval = coalesce->rx_coalesce_usecs_low;
+- intr_moder_entry.pkts_per_interval = coalesce->rx_max_coalesced_frames_low;
+- intr_moder_entry.bytes_per_interval = ENA_INTR_BYTE_COUNT_NOT_SUPPORTED;
+- ena_com_init_intr_moderation_entry(adapter->ena_dev, ENA_INTR_MODER_LOWEST, &intr_moder_entry);
+-
+- intr_moder_entry.intr_moder_interval = coalesce->rx_coalesce_usecs;
+- intr_moder_entry.pkts_per_interval = coalesce->rx_max_coalesced_frames;
+- intr_moder_entry.bytes_per_interval = ENA_INTR_BYTE_COUNT_NOT_SUPPORTED;
+- ena_com_init_intr_moderation_entry(adapter->ena_dev, ENA_INTR_MODER_MID, &intr_moder_entry);
+-
+- intr_moder_entry.intr_moder_interval = coalesce->rx_coalesce_usecs_high;
+- intr_moder_entry.pkts_per_interval = coalesce->rx_max_coalesced_frames_high;
+- intr_moder_entry.bytes_per_interval = ENA_INTR_BYTE_COUNT_NOT_SUPPORTED;
+- ena_com_init_intr_moderation_entry(adapter->ena_dev, ENA_INTR_MODER_HIGHEST, &intr_moder_entry);
++ rc = ena_com_update_nonadaptive_moderation_interval_rx(ena_dev,
++ coalesce->rx_coalesce_usecs);
++ if (rc)
++ return rc;
++
++ ena_update_rx_rings_intr_moderation(adapter);
++
++ if (!coalesce->use_adaptive_rx_coalesce) {
++ if (ena_com_get_adaptive_moderation_enabled(ena_dev))
++ ena_com_disable_adaptive_moderation(ena_dev);
++ }
+
+ return 0;
+ }
diff --git a/debian/patches/features/all/ena/net-ena-remove-all-old-adaptive-rx-interrupt-moderat.patch b/debian/patches/features/all/ena/net-ena-remove-all-old-adaptive-rx-interrupt-moderat.patch
new file mode 100644
index 000000000..2f3c2839d
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-remove-all-old-adaptive-rx-interrupt-moderat.patch
@@ -0,0 +1,361 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Mon, 16 Sep 2019 14:31:33 +0300
+Subject: [PATCH] net: ena: remove all old adaptive rx interrupt moderation
+ code from ena_com
+Origin: https://git.kernel.org/linus/3ced8cbdf7ddb3160ffa714a91040dd18f39a12c
+Bug-Debian: https://bugs.debian.org/941291
+
+Remove previous implementation of adaptive rx interrupt moderation
+from ena_com files.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_com.c | 110 -----------------
+ drivers/net/ethernet/amazon/ena/ena_com.h | 142 ----------------------
+ 2 files changed, 252 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.c
+@@ -1278,22 +1278,6 @@ static int ena_com_ind_tbl_convert_from_
+ return 0;
+ }
+
+-static int ena_com_init_interrupt_moderation_table(struct ena_com_dev *ena_dev)
+-{
+- size_t size;
+-
+- size = sizeof(struct ena_intr_moder_entry) * ENA_INTR_MAX_NUM_OF_LEVELS;
+-
+- ena_dev->intr_moder_tbl =
+- devm_kzalloc(ena_dev->dmadev, size, GFP_KERNEL);
+- if (!ena_dev->intr_moder_tbl)
+- return -ENOMEM;
+-
+- ena_com_config_default_interrupt_moderation_table(ena_dev);
+-
+- return 0;
+-}
+-
+ static void ena_com_update_intr_delay_resolution(struct ena_com_dev *ena_dev,
+ u16 intr_delay_resolution)
+ {
+@@ -2802,13 +2786,6 @@ int ena_com_update_nonadaptive_moderatio
+ &ena_dev->intr_moder_rx_interval);
+ }
+
+-void ena_com_destroy_interrupt_moderation(struct ena_com_dev *ena_dev)
+-{
+- if (ena_dev->intr_moder_tbl)
+- devm_kfree(ena_dev->dmadev, ena_dev->intr_moder_tbl);
+- ena_dev->intr_moder_tbl = NULL;
+-}
+-
+ int ena_com_init_interrupt_moderation(struct ena_com_dev *ena_dev)
+ {
+ struct ena_admin_get_feat_resp get_resp;
+@@ -2833,10 +2810,6 @@ int ena_com_init_interrupt_moderation(st
+ return rc;
+ }
+
+- rc = ena_com_init_interrupt_moderation_table(ena_dev);
+- if (rc)
+- goto err;
+-
+ /* if moderation is supported by device we set adaptive moderation */
+ delay_resolution = get_resp.u.intr_moderation.intr_delay_resolution;
+ ena_com_update_intr_delay_resolution(ena_dev, delay_resolution);
+@@ -2845,52 +2818,6 @@ int ena_com_init_interrupt_moderation(st
+ ena_com_disable_adaptive_moderation(ena_dev);
+
+ return 0;
+-err:
+- ena_com_destroy_interrupt_moderation(ena_dev);
+- return rc;
+-}
+-
+-void ena_com_config_default_interrupt_moderation_table(struct ena_com_dev *ena_dev)
+-{
+- struct ena_intr_moder_entry *intr_moder_tbl = ena_dev->intr_moder_tbl;
+-
+- if (!intr_moder_tbl)
+- return;
+-
+- intr_moder_tbl[ENA_INTR_MODER_LOWEST].intr_moder_interval =
+- ENA_INTR_LOWEST_USECS;
+- intr_moder_tbl[ENA_INTR_MODER_LOWEST].pkts_per_interval =
+- ENA_INTR_LOWEST_PKTS;
+- intr_moder_tbl[ENA_INTR_MODER_LOWEST].bytes_per_interval =
+- ENA_INTR_LOWEST_BYTES;
+-
+- intr_moder_tbl[ENA_INTR_MODER_LOW].intr_moder_interval =
+- ENA_INTR_LOW_USECS;
+- intr_moder_tbl[ENA_INTR_MODER_LOW].pkts_per_interval =
+- ENA_INTR_LOW_PKTS;
+- intr_moder_tbl[ENA_INTR_MODER_LOW].bytes_per_interval =
+- ENA_INTR_LOW_BYTES;
+-
+- intr_moder_tbl[ENA_INTR_MODER_MID].intr_moder_interval =
+- ENA_INTR_MID_USECS;
+- intr_moder_tbl[ENA_INTR_MODER_MID].pkts_per_interval =
+- ENA_INTR_MID_PKTS;
+- intr_moder_tbl[ENA_INTR_MODER_MID].bytes_per_interval =
+- ENA_INTR_MID_BYTES;
+-
+- intr_moder_tbl[ENA_INTR_MODER_HIGH].intr_moder_interval =
+- ENA_INTR_HIGH_USECS;
+- intr_moder_tbl[ENA_INTR_MODER_HIGH].pkts_per_interval =
+- ENA_INTR_HIGH_PKTS;
+- intr_moder_tbl[ENA_INTR_MODER_HIGH].bytes_per_interval =
+- ENA_INTR_HIGH_BYTES;
+-
+- intr_moder_tbl[ENA_INTR_MODER_HIGHEST].intr_moder_interval =
+- ENA_INTR_HIGHEST_USECS;
+- intr_moder_tbl[ENA_INTR_MODER_HIGHEST].pkts_per_interval =
+- ENA_INTR_HIGHEST_PKTS;
+- intr_moder_tbl[ENA_INTR_MODER_HIGHEST].bytes_per_interval =
+- ENA_INTR_HIGHEST_BYTES;
+ }
+
+ unsigned int ena_com_get_nonadaptive_moderation_interval_tx(struct ena_com_dev *ena_dev)
+@@ -2903,43 +2830,6 @@ unsigned int ena_com_get_nonadaptive_mod
+ return ena_dev->intr_moder_rx_interval;
+ }
+
+-void ena_com_init_intr_moderation_entry(struct ena_com_dev *ena_dev,
+- enum ena_intr_moder_level level,
+- struct ena_intr_moder_entry *entry)
+-{
+- struct ena_intr_moder_entry *intr_moder_tbl = ena_dev->intr_moder_tbl;
+-
+- if (level >= ENA_INTR_MAX_NUM_OF_LEVELS)
+- return;
+-
+- intr_moder_tbl[level].intr_moder_interval = entry->intr_moder_interval;
+- if (ena_dev->intr_delay_resolution)
+- intr_moder_tbl[level].intr_moder_interval /=
+- ena_dev->intr_delay_resolution;
+- intr_moder_tbl[level].pkts_per_interval = entry->pkts_per_interval;
+-
+- /* use hardcoded value until ethtool supports bytecount parameter */
+- if (entry->bytes_per_interval != ENA_INTR_BYTE_COUNT_NOT_SUPPORTED)
+- intr_moder_tbl[level].bytes_per_interval = entry->bytes_per_interval;
+-}
+-
+-void ena_com_get_intr_moderation_entry(struct ena_com_dev *ena_dev,
+- enum ena_intr_moder_level level,
+- struct ena_intr_moder_entry *entry)
+-{
+- struct ena_intr_moder_entry *intr_moder_tbl = ena_dev->intr_moder_tbl;
+-
+- if (level >= ENA_INTR_MAX_NUM_OF_LEVELS)
+- return;
+-
+- entry->intr_moder_interval = intr_moder_tbl[level].intr_moder_interval;
+- if (ena_dev->intr_delay_resolution)
+- entry->intr_moder_interval *= ena_dev->intr_delay_resolution;
+- entry->pkts_per_interval =
+- intr_moder_tbl[level].pkts_per_interval;
+- entry->bytes_per_interval = intr_moder_tbl[level].bytes_per_interval;
+-}
+-
+ int ena_com_config_dev_mode(struct ena_com_dev *ena_dev,
+ struct ena_admin_feature_llq_desc *llq_features,
+ struct ena_llq_configurations *llq_default_cfg)
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.h
+@@ -72,46 +72,13 @@
+ /*****************************************************************************/
+ /* ENA adaptive interrupt moderation settings */
+
+-#define ENA_INTR_LOWEST_USECS (0)
+-#define ENA_INTR_LOWEST_PKTS (3)
+-#define ENA_INTR_LOWEST_BYTES (2 * 1524)
+-
+-#define ENA_INTR_LOW_USECS (32)
+-#define ENA_INTR_LOW_PKTS (12)
+-#define ENA_INTR_LOW_BYTES (16 * 1024)
+-
+-#define ENA_INTR_MID_USECS (80)
+-#define ENA_INTR_MID_PKTS (48)
+-#define ENA_INTR_MID_BYTES (64 * 1024)
+-
+-#define ENA_INTR_HIGH_USECS (128)
+-#define ENA_INTR_HIGH_PKTS (96)
+-#define ENA_INTR_HIGH_BYTES (128 * 1024)
+-
+-#define ENA_INTR_HIGHEST_USECS (192)
+-#define ENA_INTR_HIGHEST_PKTS (128)
+-#define ENA_INTR_HIGHEST_BYTES (192 * 1024)
+-
+ #define ENA_INTR_INITIAL_TX_INTERVAL_USECS 196
+ #define ENA_INTR_INITIAL_RX_INTERVAL_USECS 0
+-#define ENA_INTR_DELAY_OLD_VALUE_WEIGHT 6
+-#define ENA_INTR_DELAY_NEW_VALUE_WEIGHT 4
+-#define ENA_INTR_MODER_LEVEL_STRIDE 2
+-#define ENA_INTR_BYTE_COUNT_NOT_SUPPORTED 0xFFFFFF
+
+ #define ENA_HW_HINTS_NO_TIMEOUT 0xFFFF
+
+ #define ENA_FEATURE_MAX_QUEUE_EXT_VER 1
+
+-enum ena_intr_moder_level {
+- ENA_INTR_MODER_LOWEST = 0,
+- ENA_INTR_MODER_LOW,
+- ENA_INTR_MODER_MID,
+- ENA_INTR_MODER_HIGH,
+- ENA_INTR_MODER_HIGHEST,
+- ENA_INTR_MAX_NUM_OF_LEVELS,
+-};
+-
+ struct ena_llq_configurations {
+ enum ena_admin_llq_header_location llq_header_location;
+ enum ena_admin_llq_ring_entry_size llq_ring_entry_size;
+@@ -120,12 +87,6 @@ struct ena_llq_configurations {
+ u16 llq_ring_entry_size_value;
+ };
+
+-struct ena_intr_moder_entry {
+- unsigned int intr_moder_interval;
+- unsigned int pkts_per_interval;
+- unsigned int bytes_per_interval;
+-};
+-
+ enum queue_direction {
+ ENA_COM_IO_QUEUE_DIRECTION_TX,
+ ENA_COM_IO_QUEUE_DIRECTION_RX
+@@ -920,11 +881,6 @@ int ena_com_execute_admin_command(struct
+ */
+ int ena_com_init_interrupt_moderation(struct ena_com_dev *ena_dev);
+
+-/* ena_com_destroy_interrupt_moderation - Destroy interrupt moderation resources
+- * @ena_dev: ENA communication layer struct
+- */
+-void ena_com_destroy_interrupt_moderation(struct ena_com_dev *ena_dev);
+-
+ /* ena_com_interrupt_moderation_supported - Return if interrupt moderation
+ * capability is supported by the device.
+ *
+@@ -932,12 +888,6 @@ void ena_com_destroy_interrupt_moderatio
+ */
+ bool ena_com_interrupt_moderation_supported(struct ena_com_dev *ena_dev);
+
+-/* ena_com_config_default_interrupt_moderation_table - Restore the interrupt
+- * moderation table back to the default parameters.
+- * @ena_dev: ENA communication layer struct
+- */
+-void ena_com_config_default_interrupt_moderation_table(struct ena_com_dev *ena_dev);
+-
+ /* ena_com_update_nonadaptive_moderation_interval_tx - Update the
+ * non-adaptive interval in Tx direction.
+ * @ena_dev: ENA communication layer struct
+@@ -974,29 +924,6 @@ unsigned int ena_com_get_nonadaptive_mod
+ */
+ unsigned int ena_com_get_nonadaptive_moderation_interval_rx(struct ena_com_dev *ena_dev);
+
+-/* ena_com_init_intr_moderation_entry - Update a single entry in the interrupt
+- * moderation table.
+- * @ena_dev: ENA communication layer struct
+- * @level: Interrupt moderation table level
+- * @entry: Entry value
+- *
+- * Update a single entry in the interrupt moderation table.
+- */
+-void ena_com_init_intr_moderation_entry(struct ena_com_dev *ena_dev,
+- enum ena_intr_moder_level level,
+- struct ena_intr_moder_entry *entry);
+-
+-/* ena_com_get_intr_moderation_entry - Init ena_intr_moder_entry.
+- * @ena_dev: ENA communication layer struct
+- * @level: Interrupt moderation table level
+- * @entry: Entry to fill.
+- *
+- * Initialize the entry according to the adaptive interrupt moderation table.
+- */
+-void ena_com_get_intr_moderation_entry(struct ena_com_dev *ena_dev,
+- enum ena_intr_moder_level level,
+- struct ena_intr_moder_entry *entry);
+-
+ /* ena_com_config_dev_mode - Configure the placement policy of the device.
+ * @ena_dev: ENA communication layer struct
+ * @llq_features: LLQ feature descriptor, retrieve via
+@@ -1022,75 +949,6 @@ static inline void ena_com_disable_adapt
+ ena_dev->adaptive_coalescing = false;
+ }
+
+-/* ena_com_calculate_interrupt_delay - Calculate new interrupt delay
+- * @ena_dev: ENA communication layer struct
+- * @pkts: Number of packets since the last update
+- * @bytes: Number of bytes received since the last update.
+- * @smoothed_interval: Returned interval
+- * @moder_tbl_idx: Current table level as input update new level as return
+- * value.
+- */
+-static inline void ena_com_calculate_interrupt_delay(struct ena_com_dev *ena_dev,
+- unsigned int pkts,
+- unsigned int bytes,
+- unsigned int *smoothed_interval,
+- unsigned int *moder_tbl_idx)
+-{
+- enum ena_intr_moder_level curr_moder_idx, new_moder_idx;
+- struct ena_intr_moder_entry *curr_moder_entry;
+- struct ena_intr_moder_entry *pred_moder_entry;
+- struct ena_intr_moder_entry *new_moder_entry;
+- struct ena_intr_moder_entry *intr_moder_tbl = ena_dev->intr_moder_tbl;
+- unsigned int interval;
+-
+- /* We apply adaptive moderation on Rx path only.
+- * Tx uses static interrupt moderation.
+- */
+- if (!pkts || !bytes)
+- /* Tx interrupt, or spurious interrupt,
+- * in both cases we just use same delay values
+- */
+- return;
+-
+- curr_moder_idx = (enum ena_intr_moder_level)(*moder_tbl_idx);
+- if (unlikely(curr_moder_idx >= ENA_INTR_MAX_NUM_OF_LEVELS)) {
+- pr_err("Wrong moderation index %u\n", curr_moder_idx);
+- return;
+- }
+-
+- curr_moder_entry = &intr_moder_tbl[curr_moder_idx];
+- new_moder_idx = curr_moder_idx;
+-
+- if (curr_moder_idx == ENA_INTR_MODER_LOWEST) {
+- if ((pkts > curr_moder_entry->pkts_per_interval) ||
+- (bytes > curr_moder_entry->bytes_per_interval))
+- new_moder_idx =
+- (enum ena_intr_moder_level)(curr_moder_idx + ENA_INTR_MODER_LEVEL_STRIDE);
+- } else {
+- pred_moder_entry = &intr_moder_tbl[curr_moder_idx - ENA_INTR_MODER_LEVEL_STRIDE];
+-
+- if ((pkts <= pred_moder_entry->pkts_per_interval) ||
+- (bytes <= pred_moder_entry->bytes_per_interval))
+- new_moder_idx =
+- (enum ena_intr_moder_level)(curr_moder_idx - ENA_INTR_MODER_LEVEL_STRIDE);
+- else if ((pkts > curr_moder_entry->pkts_per_interval) ||
+- (bytes > curr_moder_entry->bytes_per_interval)) {
+- if (curr_moder_idx != ENA_INTR_MODER_HIGHEST)
+- new_moder_idx =
+- (enum ena_intr_moder_level)(curr_moder_idx + ENA_INTR_MODER_LEVEL_STRIDE);
+- }
+- }
+- new_moder_entry = &intr_moder_tbl[new_moder_idx];
+-
+- interval = new_moder_entry->intr_moder_interval;
+- *smoothed_interval = (
+- (interval * ENA_INTR_DELAY_NEW_VALUE_WEIGHT +
+- ENA_INTR_DELAY_OLD_VALUE_WEIGHT * (*smoothed_interval)) + 5) /
+- 10;
+-
+- *moder_tbl_idx = new_moder_idx;
+-}
+-
+ /* ena_com_update_intr_reg - Prepare interrupt register
+ * @intr_reg: interrupt register to update.
+ * @rx_delay_interval: Rx interval in usecs
diff --git a/debian/patches/features/all/ena/net-ena-remove-code-duplication-in-ena_com_update_no.patch b/debian/patches/features/all/ena/net-ena-remove-code-duplication-in-ena_com_update_no.patch
new file mode 100644
index 000000000..3dcad5609
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-remove-code-duplication-in-ena_com_update_no.patch
@@ -0,0 +1,71 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Mon, 16 Sep 2019 14:31:30 +0300
+Subject: [PATCH] net: ena: remove code duplication in
+ ena_com_update_nonadaptive_moderation_interval _*()
+Origin: https://git.kernel.org/linus/57e3a5f24bb5bf265988e973a911845abcbf6a00
+Bug-Debian: https://bugs.debian.org/941291
+
+Remove code duplication in:
+ena_com_update_nonadaptive_moderation_interval_tx()
+ena_com_update_nonadaptive_moderation_interval_rx()
+functions.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_com.c | 30 ++++++++++++-----------
+ 1 file changed, 16 insertions(+), 14 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.c
+@@ -2772,32 +2772,34 @@ bool ena_com_interrupt_moderation_suppor
+ ENA_ADMIN_INTERRUPT_MODERATION);
+ }
+
+-int ena_com_update_nonadaptive_moderation_interval_tx(struct ena_com_dev *ena_dev,
+- u32 tx_coalesce_usecs)
++static int ena_com_update_nonadaptive_moderation_interval(u32 coalesce_usecs,
++ u32 intr_delay_resolution,
++ u32 *intr_moder_interval)
+ {
+- if (!ena_dev->intr_delay_resolution) {
++ if (!intr_delay_resolution) {
+ pr_err("Illegal interrupt delay granularity value\n");
+ return -EFAULT;
+ }
+
+- ena_dev->intr_moder_tx_interval = tx_coalesce_usecs /
+- ena_dev->intr_delay_resolution;
++ *intr_moder_interval = coalesce_usecs / intr_delay_resolution;
+
+ return 0;
+ }
+
++int ena_com_update_nonadaptive_moderation_interval_tx(struct ena_com_dev *ena_dev,
++ u32 tx_coalesce_usecs)
++{
++ return ena_com_update_nonadaptive_moderation_interval(tx_coalesce_usecs,
++ ena_dev->intr_delay_resolution,
++ &ena_dev->intr_moder_tx_interval);
++}
++
+ int ena_com_update_nonadaptive_moderation_interval_rx(struct ena_com_dev *ena_dev,
+ u32 rx_coalesce_usecs)
+ {
+- if (!ena_dev->intr_delay_resolution) {
+- pr_err("Illegal interrupt delay granularity value\n");
+- return -EFAULT;
+- }
+-
+- ena_dev->intr_moder_rx_interval = rx_coalesce_usecs /
+- ena_dev->intr_delay_resolution;
+-
+- return 0;
++ return ena_com_update_nonadaptive_moderation_interval(rx_coalesce_usecs,
++ ena_dev->intr_delay_resolution,
++ &ena_dev->intr_moder_rx_interval);
+ }
+
+ void ena_com_destroy_interrupt_moderation(struct ena_com_dev *ena_dev)
diff --git a/debian/patches/features/all/ena/net-ena-remove-ena_restore_ethtool_params-and-releva.patch b/debian/patches/features/all/ena/net-ena-remove-ena_restore_ethtool_params-and-releva.patch
new file mode 100644
index 000000000..1dad10a1a
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-remove-ena_restore_ethtool_params-and-releva.patch
@@ -0,0 +1,59 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Mon, 16 Sep 2019 14:31:32 +0300
+Subject: [PATCH] net: ena: remove ena_restore_ethtool_params() and relevant
+ fields
+Origin: https://git.kernel.org/linus/64d1fb9dfc6c5d8589312fa847fee14ec14ee12b
+Bug-Debian: https://bugs.debian.org/941291
+
+Deleted unused 4 fields from struct ena_adapter and their only user
+ena_restore_ethtool_params().
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 10 ----------
+ drivers/net/ethernet/amazon/ena/ena_netdev.h | 3 ---
+ 2 files changed, 13 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -1564,14 +1564,6 @@ static void ena_napi_enable_all(struct e
+ napi_enable(&adapter->ena_napi[i].napi);
+ }
+
+-static void ena_restore_ethtool_params(struct ena_adapter *adapter)
+-{
+- adapter->tx_usecs = 0;
+- adapter->rx_usecs = 0;
+- adapter->tx_frames = 1;
+- adapter->rx_frames = 1;
+-}
+-
+ /* Configure the Rx forwarding */
+ static int ena_rss_configure(struct ena_adapter *adapter)
+ {
+@@ -1621,8 +1613,6 @@ static int ena_up_complete(struct ena_ad
+ /* enable transmits */
+ netif_tx_start_all_queues(adapter->netdev);
+
+- ena_restore_ethtool_params(adapter);
+-
+ ena_napi_enable_all(adapter);
+
+ return 0;
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+@@ -330,9 +330,6 @@ struct ena_adapter {
+
+ u32 missing_tx_completion_threshold;
+
+- u32 tx_usecs, rx_usecs; /* interrupt moderation */
+- u32 tx_frames, rx_frames; /* interrupt moderation */
+-
+ u32 requested_tx_ring_size;
+ u32 requested_rx_ring_size;
+
diff --git a/debian/patches/features/all/ena/net-ena-remove-inline-keyword-from-functions-in-.c.patch b/debian/patches/features/all/ena/net-ena-remove-inline-keyword-from-functions-in-.c.patch
new file mode 100644
index 000000000..8d4a2b349
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-remove-inline-keyword-from-functions-in-.c.patch
@@ -0,0 +1,244 @@
+From: Sameeh Jubran <sameehj@amazon.com>
+Date: Tue, 11 Jun 2019 14:58:10 +0300
+Subject: [PATCH] net: ena: remove inline keyword from functions in *.c
+Origin: https://git.kernel.org/linus/c2b542044761965db0e4cc400ab6abf670fc25b7
+Bug-Debian: https://bugs.debian.org/941291
+
+Let the compiler decide if the function should be inline in *.c files
+
+Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_com.c | 6 ++---
+ drivers/net/ethernet/amazon/ena/ena_eth_com.c | 26 +++++++++----------
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 16 ++++++------
+ 3 files changed, 24 insertions(+), 24 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.c
+@@ -91,7 +91,7 @@ struct ena_com_stats_ctx {
+ struct ena_admin_acq_get_stats_resp get_resp;
+ };
+
+-static inline int ena_com_mem_addr_set(struct ena_com_dev *ena_dev,
++static int ena_com_mem_addr_set(struct ena_com_dev *ena_dev,
+ struct ena_common_mem_addr *ena_addr,
+ dma_addr_t addr)
+ {
+@@ -190,7 +190,7 @@ static int ena_com_admin_init_aenq(struc
+ return 0;
+ }
+
+-static inline void comp_ctxt_release(struct ena_com_admin_queue *queue,
++static void comp_ctxt_release(struct ena_com_admin_queue *queue,
+ struct ena_comp_ctx *comp_ctx)
+ {
+ comp_ctx->occupied = false;
+@@ -277,7 +277,7 @@ static struct ena_comp_ctx *__ena_com_su
+ return comp_ctx;
+ }
+
+-static inline int ena_com_init_comp_ctxt(struct ena_com_admin_queue *queue)
++static int ena_com_init_comp_ctxt(struct ena_com_admin_queue *queue)
+ {
+ size_t size = queue->q_depth * sizeof(struct ena_comp_ctx);
+ struct ena_comp_ctx *comp_ctx;
+Index: linux/drivers/net/ethernet/amazon/ena/ena_eth_com.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_eth_com.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_eth_com.c
+@@ -32,7 +32,7 @@
+
+ #include "ena_eth_com.h"
+
+-static inline struct ena_eth_io_rx_cdesc_base *ena_com_get_next_rx_cdesc(
++static struct ena_eth_io_rx_cdesc_base *ena_com_get_next_rx_cdesc(
+ struct ena_com_io_cq *io_cq)
+ {
+ struct ena_eth_io_rx_cdesc_base *cdesc;
+@@ -59,7 +59,7 @@ static inline struct ena_eth_io_rx_cdesc
+ return cdesc;
+ }
+
+-static inline void *get_sq_desc_regular_queue(struct ena_com_io_sq *io_sq)
++static void *get_sq_desc_regular_queue(struct ena_com_io_sq *io_sq)
+ {
+ u16 tail_masked;
+ u32 offset;
+@@ -71,7 +71,7 @@ static inline void *get_sq_desc_regular_
+ return (void *)((uintptr_t)io_sq->desc_addr.virt_addr + offset);
+ }
+
+-static inline int ena_com_write_bounce_buffer_to_dev(struct ena_com_io_sq *io_sq,
++static int ena_com_write_bounce_buffer_to_dev(struct ena_com_io_sq *io_sq,
+ u8 *bounce_buffer)
+ {
+ struct ena_com_llq_info *llq_info = &io_sq->llq_info;
+@@ -111,7 +111,7 @@ static inline int ena_com_write_bounce_b
+ return 0;
+ }
+
+-static inline int ena_com_write_header_to_bounce(struct ena_com_io_sq *io_sq,
++static int ena_com_write_header_to_bounce(struct ena_com_io_sq *io_sq,
+ u8 *header_src,
+ u16 header_len)
+ {
+@@ -142,7 +142,7 @@ static inline int ena_com_write_header_t
+ return 0;
+ }
+
+-static inline void *get_sq_desc_llq(struct ena_com_io_sq *io_sq)
++static void *get_sq_desc_llq(struct ena_com_io_sq *io_sq)
+ {
+ struct ena_com_llq_pkt_ctrl *pkt_ctrl = &io_sq->llq_buf_ctrl;
+ u8 *bounce_buffer;
+@@ -162,7 +162,7 @@ static inline void *get_sq_desc_llq(stru
+ return sq_desc;
+ }
+
+-static inline int ena_com_close_bounce_buffer(struct ena_com_io_sq *io_sq)
++static int ena_com_close_bounce_buffer(struct ena_com_io_sq *io_sq)
+ {
+ struct ena_com_llq_pkt_ctrl *pkt_ctrl = &io_sq->llq_buf_ctrl;
+ struct ena_com_llq_info *llq_info = &io_sq->llq_info;
+@@ -189,7 +189,7 @@ static inline int ena_com_close_bounce_b
+ return 0;
+ }
+
+-static inline void *get_sq_desc(struct ena_com_io_sq *io_sq)
++static void *get_sq_desc(struct ena_com_io_sq *io_sq)
+ {
+ if (io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV)
+ return get_sq_desc_llq(io_sq);
+@@ -197,7 +197,7 @@ static inline void *get_sq_desc(struct e
+ return get_sq_desc_regular_queue(io_sq);
+ }
+
+-static inline int ena_com_sq_update_llq_tail(struct ena_com_io_sq *io_sq)
++static int ena_com_sq_update_llq_tail(struct ena_com_io_sq *io_sq)
+ {
+ struct ena_com_llq_pkt_ctrl *pkt_ctrl = &io_sq->llq_buf_ctrl;
+ struct ena_com_llq_info *llq_info = &io_sq->llq_info;
+@@ -225,7 +225,7 @@ static inline int ena_com_sq_update_llq_
+ return 0;
+ }
+
+-static inline int ena_com_sq_update_tail(struct ena_com_io_sq *io_sq)
++static int ena_com_sq_update_tail(struct ena_com_io_sq *io_sq)
+ {
+ if (io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV)
+ return ena_com_sq_update_llq_tail(io_sq);
+@@ -239,7 +239,7 @@ static inline int ena_com_sq_update_tail
+ return 0;
+ }
+
+-static inline struct ena_eth_io_rx_cdesc_base *
++static struct ena_eth_io_rx_cdesc_base *
+ ena_com_rx_cdesc_idx_to_ptr(struct ena_com_io_cq *io_cq, u16 idx)
+ {
+ idx &= (io_cq->q_depth - 1);
+@@ -248,7 +248,7 @@ static inline struct ena_eth_io_rx_cdesc
+ idx * io_cq->cdesc_entry_size_in_bytes);
+ }
+
+-static inline u16 ena_com_cdesc_rx_pkt_get(struct ena_com_io_cq *io_cq,
++static u16 ena_com_cdesc_rx_pkt_get(struct ena_com_io_cq *io_cq,
+ u16 *first_cdesc_idx)
+ {
+ struct ena_eth_io_rx_cdesc_base *cdesc;
+@@ -285,7 +285,7 @@ static inline u16 ena_com_cdesc_rx_pkt_g
+ return count;
+ }
+
+-static inline int ena_com_create_and_store_tx_meta_desc(struct ena_com_io_sq *io_sq,
++static int ena_com_create_and_store_tx_meta_desc(struct ena_com_io_sq *io_sq,
+ struct ena_com_tx_ctx *ena_tx_ctx)
+ {
+ struct ena_eth_io_tx_meta_desc *meta_desc = NULL;
+@@ -334,7 +334,7 @@ static inline int ena_com_create_and_sto
+ return ena_com_sq_update_tail(io_sq);
+ }
+
+-static inline void ena_com_rx_set_flags(struct ena_com_rx_ctx *ena_rx_ctx,
++static void ena_com_rx_set_flags(struct ena_com_rx_ctx *ena_rx_ctx,
+ struct ena_eth_io_rx_cdesc_base *cdesc)
+ {
+ ena_rx_ctx->l3_proto = cdesc->status &
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -326,7 +326,7 @@ static void ena_free_all_io_tx_resources
+ ena_free_tx_resources(adapter, i);
+ }
+
+-static inline int validate_rx_req_id(struct ena_ring *rx_ring, u16 req_id)
++static int validate_rx_req_id(struct ena_ring *rx_ring, u16 req_id)
+ {
+ if (likely(req_id < rx_ring->ring_size))
+ return 0;
+@@ -460,7 +460,7 @@ static void ena_free_all_io_rx_resources
+ ena_free_rx_resources(adapter, i);
+ }
+
+-static inline int ena_alloc_rx_page(struct ena_ring *rx_ring,
++static int ena_alloc_rx_page(struct ena_ring *rx_ring,
+ struct ena_rx_buffer *rx_info, gfp_t gfp)
+ {
+ struct ena_com_buf *ena_buf;
+@@ -620,7 +620,7 @@ static void ena_free_all_rx_bufs(struct
+ ena_free_rx_bufs(adapter, i);
+ }
+
+-static inline void ena_unmap_tx_skb(struct ena_ring *tx_ring,
++static void ena_unmap_tx_skb(struct ena_ring *tx_ring,
+ struct ena_tx_buffer *tx_info)
+ {
+ struct ena_com_buf *ena_buf;
+@@ -956,7 +956,7 @@ static struct sk_buff *ena_rx_skb(struct
+ * @ena_rx_ctx: received packet context/metadata
+ * @skb: skb currently being received and modified
+ */
+-static inline void ena_rx_checksum(struct ena_ring *rx_ring,
++static void ena_rx_checksum(struct ena_ring *rx_ring,
+ struct ena_com_rx_ctx *ena_rx_ctx,
+ struct sk_buff *skb)
+ {
+@@ -1156,7 +1156,7 @@ error:
+ return 0;
+ }
+
+-inline void ena_adjust_intr_moderation(struct ena_ring *rx_ring,
++void ena_adjust_intr_moderation(struct ena_ring *rx_ring,
+ struct ena_ring *tx_ring)
+ {
+ /* We apply adaptive moderation on Rx path only.
+@@ -1175,7 +1175,7 @@ inline void ena_adjust_intr_moderation(s
+ rx_ring->per_napi_bytes = 0;
+ }
+
+-static inline void ena_unmask_interrupt(struct ena_ring *tx_ring,
++static void ena_unmask_interrupt(struct ena_ring *tx_ring,
+ struct ena_ring *rx_ring)
+ {
+ struct ena_eth_io_intr_reg intr_reg;
+@@ -1195,7 +1195,7 @@ static inline void ena_unmask_interrupt(
+ ena_com_unmask_intr(rx_ring->ena_com_io_cq, &intr_reg);
+ }
+
+-static inline void ena_update_ring_numa_node(struct ena_ring *tx_ring,
++static void ena_update_ring_numa_node(struct ena_ring *tx_ring,
+ struct ena_ring *rx_ring)
+ {
+ int cpu = get_cpu();
+@@ -3331,7 +3331,7 @@ static void ena_release_bars(struct ena_
+ pci_release_selected_regions(pdev, release_bars);
+ }
+
+-static inline void set_default_llq_configurations(struct ena_llq_configurations *llq_config)
++static void set_default_llq_configurations(struct ena_llq_configurations *llq_config)
+ {
+ llq_config->llq_header_location = ENA_ADMIN_INLINE_HEADER;
+ llq_config->llq_ring_entry_size = ENA_ADMIN_LIST_ENTRY_SIZE_128B;
diff --git a/debian/patches/features/all/ena/net-ena-remove-old-adaptive-interrupt-moderation-cod.patch b/debian/patches/features/all/ena/net-ena-remove-old-adaptive-interrupt-moderation-cod.patch
new file mode 100644
index 000000000..17cb06e09
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-remove-old-adaptive-interrupt-moderation-cod.patch
@@ -0,0 +1,83 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Mon, 16 Sep 2019 14:31:31 +0300
+Subject: [PATCH] net: ena: remove old adaptive interrupt moderation code from
+ ena_netdev
+Origin: https://git.kernel.org/linus/242d81fd3dd9f301b0c20564aafec8efdb2bbe5b
+Bug-Debian: https://bugs.debian.org/941291
+
+1. Out of the fields {per_napi_bytes, per_napi_packets} in struct ena_ring,
+ only rx_ring->per_napi_packets are used to determine if napi did work
+ for dim.
+ This commit removes all other uses of these fields.
+2. Remove ena_ring->moder_tbl_idx, which is not used by dim.
+3. Remove all calls to ena_com_destroy_interrupt_moderation(), since all it
+ did was to destroy the interrupt moderation table, which is removed as
+ part of removing old interrupt moderation code.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 8 --------
+ drivers/net/ethernet/amazon/ena/ena_netdev.h | 2 --
+ 2 files changed, 10 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -158,7 +158,6 @@ static void ena_init_io_rings_common(str
+ ring->adapter = adapter;
+ ring->ena_dev = adapter->ena_dev;
+ ring->per_napi_packets = 0;
+- ring->per_napi_bytes = 0;
+ ring->cpu = 0;
+ ring->first_interrupt = false;
+ ring->no_interrupt_event_cnt = 0;
+@@ -835,9 +834,6 @@ static int ena_clean_tx_irq(struct ena_r
+ __netif_tx_unlock(txq);
+ }
+
+- tx_ring->per_napi_bytes += tx_bytes;
+- tx_ring->per_napi_packets += tx_pkts;
+-
+ return tx_pkts;
+ }
+
+@@ -1121,7 +1117,6 @@ static int ena_clean_rx_irq(struct ena_r
+ } while (likely(res_budget));
+
+ work_done = budget - res_budget;
+- rx_ring->per_napi_bytes += total_len;
+ rx_ring->per_napi_packets += work_done;
+ u64_stats_update_begin(&rx_ring->syncp);
+ rx_ring->rx_stats.bytes += total_len;
+@@ -3643,7 +3638,6 @@ err_free_msix:
+ ena_free_mgmnt_irq(adapter);
+ ena_disable_msix(adapter);
+ err_worker_destroy:
+- ena_com_destroy_interrupt_moderation(ena_dev);
+ del_timer(&adapter->timer_service);
+ err_netdev_destroy:
+ free_netdev(netdev);
+@@ -3704,8 +3698,6 @@ static void ena_remove(struct pci_dev *p
+
+ pci_disable_device(pdev);
+
+- ena_com_destroy_interrupt_moderation(ena_dev);
+-
+ vfree(ena_dev);
+ }
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+@@ -280,8 +280,6 @@ struct ena_ring {
+ struct ena_com_rx_buf_info ena_bufs[ENA_PKT_MAX_BUFS];
+ u32 smoothed_interval;
+ u32 per_napi_packets;
+- u32 per_napi_bytes;
+- enum ena_intr_moder_level moder_tbl_idx;
+ u16 non_empty_napi_events;
+ struct u64_stats_sync syncp;
+ union {
diff --git a/debian/patches/features/all/ena/net-ena-replace-free_tx-rx_ids-union-with-single-fre.patch b/debian/patches/features/all/ena/net-ena-replace-free_tx-rx_ids-union-with-single-fre.patch
new file mode 100644
index 000000000..c63ce87c6
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-replace-free_tx-rx_ids-union-with-single-fre.patch
@@ -0,0 +1,198 @@
+From: Sameeh Jubran <sameehj@amazon.com>
+Date: Mon, 3 Jun 2019 17:43:21 +0300
+Subject: [PATCH] net: ena: replace free_tx/rx_ids union with single free_ids
+ field in ena_ring
+Origin: https://git.kernel.org/linus/f917249833c7a00ea8be39b1bcb3ec8ef3aea45f
+Bug-Debian: https://bugs.debian.org/941291
+
+struct ena_ring holds a union of free_rx_ids and free_tx_ids.
+Both of the above fields mean the exact same thing and are used
+exactly the same way.
+Furthermore, these fields are always used with a prefix of the
+type of ring. So for tx it will be tx_ring->free_tx_ids, and for
+rx it will be rx_ring->free_rx_ids, which shows how redundant the
+"_tx" and "_rx" parts are.
+Furthermore still, this may lead to confusing code like where
+tx_ring->free_rx_ids which works correctly but looks like a mess.
+
+This commit removes the aforementioned redundancy by replacing the
+free_rx/tx_ids union with a single free_ids field.
+It also changes a single goto label name from err_free_tx_ids: to
+err_tx_free_ids: for consistency with the above new notation.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 48 ++++++++++----------
+ drivers/net/ethernet/amazon/ena/ena_netdev.h | 11 ++---
+ 2 files changed, 28 insertions(+), 31 deletions(-)
+
+diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c
+index 33fab4f41d7c..b80b5eddca91 100644
+--- a/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -228,11 +228,11 @@ static int ena_setup_tx_resources(struct ena_adapter *adapter, int qid)
+ }
+
+ size = sizeof(u16) * tx_ring->ring_size;
+- tx_ring->free_tx_ids = vzalloc_node(size, node);
+- if (!tx_ring->free_tx_ids) {
+- tx_ring->free_tx_ids = vzalloc(size);
+- if (!tx_ring->free_tx_ids)
+- goto err_free_tx_ids;
++ tx_ring->free_ids = vzalloc_node(size, node);
++ if (!tx_ring->free_ids) {
++ tx_ring->free_ids = vzalloc(size);
++ if (!tx_ring->free_ids)
++ goto err_tx_free_ids;
+ }
+
+ size = tx_ring->tx_max_header_size;
+@@ -245,7 +245,7 @@ static int ena_setup_tx_resources(struct ena_adapter *adapter, int qid)
+
+ /* Req id ring for TX out of order completions */
+ for (i = 0; i < tx_ring->ring_size; i++)
+- tx_ring->free_tx_ids[i] = i;
++ tx_ring->free_ids[i] = i;
+
+ /* Reset tx statistics */
+ memset(&tx_ring->tx_stats, 0x0, sizeof(tx_ring->tx_stats));
+@@ -256,9 +256,9 @@ static int ena_setup_tx_resources(struct ena_adapter *adapter, int qid)
+ return 0;
+
+ err_push_buf_intermediate_buf:
+- vfree(tx_ring->free_tx_ids);
+- tx_ring->free_tx_ids = NULL;
+-err_free_tx_ids:
++ vfree(tx_ring->free_ids);
++ tx_ring->free_ids = NULL;
++err_tx_free_ids:
+ vfree(tx_ring->tx_buffer_info);
+ tx_ring->tx_buffer_info = NULL;
+ err_tx_buffer_info:
+@@ -278,8 +278,8 @@ static void ena_free_tx_resources(struct ena_adapter *adapter, int qid)
+ vfree(tx_ring->tx_buffer_info);
+ tx_ring->tx_buffer_info = NULL;
+
+- vfree(tx_ring->free_tx_ids);
+- tx_ring->free_tx_ids = NULL;
++ vfree(tx_ring->free_ids);
++ tx_ring->free_ids = NULL;
+
+ vfree(tx_ring->push_buf_intermediate_buf);
+ tx_ring->push_buf_intermediate_buf = NULL;
+@@ -377,10 +377,10 @@ static int ena_setup_rx_resources(struct ena_adapter *adapter,
+ }
+
+ size = sizeof(u16) * rx_ring->ring_size;
+- rx_ring->free_rx_ids = vzalloc_node(size, node);
+- if (!rx_ring->free_rx_ids) {
+- rx_ring->free_rx_ids = vzalloc(size);
+- if (!rx_ring->free_rx_ids) {
++ rx_ring->free_ids = vzalloc_node(size, node);
++ if (!rx_ring->free_ids) {
++ rx_ring->free_ids = vzalloc(size);
++ if (!rx_ring->free_ids) {
+ vfree(rx_ring->rx_buffer_info);
+ rx_ring->rx_buffer_info = NULL;
+ return -ENOMEM;
+@@ -389,7 +389,7 @@ static int ena_setup_rx_resources(struct ena_adapter *adapter,
+
+ /* Req id ring for receiving RX pkts out of order */
+ for (i = 0; i < rx_ring->ring_size; i++)
+- rx_ring->free_rx_ids[i] = i;
++ rx_ring->free_ids[i] = i;
+
+ /* Reset rx statistics */
+ memset(&rx_ring->rx_stats, 0x0, sizeof(rx_ring->rx_stats));
+@@ -415,8 +415,8 @@ static void ena_free_rx_resources(struct ena_adapter *adapter,
+ vfree(rx_ring->rx_buffer_info);
+ rx_ring->rx_buffer_info = NULL;
+
+- vfree(rx_ring->free_rx_ids);
+- rx_ring->free_rx_ids = NULL;
++ vfree(rx_ring->free_ids);
++ rx_ring->free_ids = NULL;
+ }
+
+ /* ena_setup_all_rx_resources - allocate I/O Rx queues resources for all queues
+@@ -531,7 +531,7 @@ static int ena_refill_rx_bufs(struct ena_ring *rx_ring, u32 num)
+ for (i = 0; i < num; i++) {
+ struct ena_rx_buffer *rx_info;
+
+- req_id = rx_ring->free_rx_ids[next_to_use];
++ req_id = rx_ring->free_ids[next_to_use];
+ rc = validate_rx_req_id(rx_ring, req_id);
+ if (unlikely(rc < 0))
+ break;
+@@ -797,7 +797,7 @@ static int ena_clean_tx_irq(struct ena_ring *tx_ring, u32 budget)
+ tx_pkts++;
+ total_done += tx_info->tx_descs;
+
+- tx_ring->free_tx_ids[next_to_clean] = req_id;
++ tx_ring->free_ids[next_to_clean] = req_id;
+ next_to_clean = ENA_TX_RING_IDX_NEXT(next_to_clean,
+ tx_ring->ring_size);
+ }
+@@ -911,7 +911,7 @@ static struct sk_buff *ena_rx_skb(struct ena_ring *rx_ring,
+
+ skb_put(skb, len);
+ skb->protocol = eth_type_trans(skb, rx_ring->netdev);
+- rx_ring->free_rx_ids[*next_to_clean] = req_id;
++ rx_ring->free_ids[*next_to_clean] = req_id;
+ *next_to_clean = ENA_RX_RING_IDX_ADD(*next_to_clean, descs,
+ rx_ring->ring_size);
+ return skb;
+@@ -935,7 +935,7 @@ static struct sk_buff *ena_rx_skb(struct ena_ring *rx_ring,
+
+ rx_info->page = NULL;
+
+- rx_ring->free_rx_ids[*next_to_clean] = req_id;
++ rx_ring->free_ids[*next_to_clean] = req_id;
+ *next_to_clean =
+ ENA_RX_RING_IDX_NEXT(*next_to_clean,
+ rx_ring->ring_size);
+@@ -1088,7 +1088,7 @@ static int ena_clean_rx_irq(struct ena_ring *rx_ring, struct napi_struct *napi,
+ /* exit if we failed to retrieve a buffer */
+ if (unlikely(!skb)) {
+ for (i = 0; i < ena_rx_ctx.descs; i++) {
+- rx_ring->free_tx_ids[next_to_clean] =
++ rx_ring->free_ids[next_to_clean] =
+ rx_ring->ena_bufs[i].req_id;
+ next_to_clean =
+ ENA_RX_RING_IDX_NEXT(next_to_clean,
+@@ -2152,7 +2152,7 @@ static netdev_tx_t ena_start_xmit(struct sk_buff *skb, struct net_device *dev)
+ skb_tx_timestamp(skb);
+
+ next_to_use = tx_ring->next_to_use;
+- req_id = tx_ring->free_tx_ids[next_to_use];
++ req_id = tx_ring->free_ids[next_to_use];
+ tx_info = &tx_ring->tx_buffer_info[req_id];
+ tx_info->num_of_bufs = 0;
+
+diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.h b/drivers/net/ethernet/amazon/ena/ena_netdev.h
+index 0681e18b0019..74c316081499 100644
+--- a/drivers/net/ethernet/amazon/ena/ena_netdev.h
++++ b/drivers/net/ethernet/amazon/ena/ena_netdev.h
+@@ -221,13 +221,10 @@ struct ena_stats_rx {
+ };
+
+ struct ena_ring {
+- union {
+- /* Holds the empty requests for TX/RX
+- * out of order completions
+- */
+- u16 *free_tx_ids;
+- u16 *free_rx_ids;
+- };
++ /* Holds the empty requests for TX/RX
++ * out of order completions
++ */
++ u16 *free_ids;
+
+ union {
+ struct ena_tx_buffer *tx_buffer_info;
+--
+2.17.1
+
diff --git a/debian/patches/features/all/ena/net-ena-switch-to-dim-algorithm-for-rx-adaptive-inte.patch b/debian/patches/features/all/ena/net-ena-switch-to-dim-algorithm-for-rx-adaptive-inte.patch
new file mode 100644
index 000000000..eb5269408
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-switch-to-dim-algorithm-for-rx-adaptive-inte.patch
@@ -0,0 +1,163 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Mon, 16 Sep 2019 14:31:27 +0300
+Subject: [PATCH] net: ena: switch to dim algorithm for rx adaptive interrupt
+ moderation
+Origin: https://git.kernel.org/linus/282faf61a053be43910fcc42d86ecf16c0d30123
+Bug-Debian: https://bugs.debian.org/941291
+
+Use the dim library for the rx adaptive interrupt moderation implementation
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_com.c | 4 +-
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 55 +++++++++++++-------
+ drivers/net/ethernet/amazon/ena/ena_netdev.h | 3 ++
+ 3 files changed, 41 insertions(+), 21 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_com.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_com.c
+@@ -2839,9 +2839,7 @@ int ena_com_init_interrupt_moderation(st
+ delay_resolution = get_resp.u.intr_moderation.intr_delay_resolution;
+ ena_com_update_intr_delay_resolution(ena_dev, delay_resolution);
+
+- /* Disable adaptive moderation by default - can be enabled from
+- * ethtool
+- */
++ /* Disable adaptive moderation by default - can be enabled later */
+ ena_com_disable_adaptive_moderation(ena_dev);
+
+ return 0;
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -196,6 +196,7 @@ static void ena_init_io_rings(struct ena
+ rxr->smoothed_interval =
+ ena_com_get_nonadaptive_moderation_interval_rx(ena_dev);
+ rxr->empty_rx_queue = 0;
++ adapter->ena_napi[i].dim.mode = NET_DIM_CQ_PERIOD_MODE_START_FROM_EQE;
+ }
+ }
+
+@@ -712,6 +713,7 @@ static void ena_destroy_all_rx_queues(st
+
+ for (i = 0; i < adapter->num_queues; i++) {
+ ena_qid = ENA_IO_RXQ_IDX(i);
++ cancel_work_sync(&adapter->ena_napi[i].dim.work);
+ ena_com_destroy_io_queue(adapter->ena_dev, ena_qid);
+ }
+ }
+@@ -1156,23 +1158,35 @@ error:
+ return 0;
+ }
+
+-void ena_adjust_intr_moderation(struct ena_ring *rx_ring,
+- struct ena_ring *tx_ring)
++static void ena_dim_work(struct work_struct *w)
+ {
+- /* We apply adaptive moderation on Rx path only.
+- * Tx uses static interrupt moderation.
+- */
+- ena_com_calculate_interrupt_delay(rx_ring->ena_dev,
+- rx_ring->per_napi_packets,
+- rx_ring->per_napi_bytes,
+- &rx_ring->smoothed_interval,
+- &rx_ring->moder_tbl_idx);
+-
+- /* Reset per napi packets/bytes */
+- tx_ring->per_napi_packets = 0;
+- tx_ring->per_napi_bytes = 0;
++ struct net_dim *dim = container_of(w, struct net_dim, work);
++ struct net_dim_cq_moder cur_moder =
++ net_dim_get_rx_moderation(dim->mode, dim->profile_ix);
++ struct ena_napi *ena_napi = container_of(dim, struct ena_napi, dim);
++
++ ena_napi->rx_ring->smoothed_interval = cur_moder.usec;
++ dim->state = NET_DIM_START_MEASURE;
++}
++
++static void ena_adjust_adaptive_rx_intr_moderation(struct ena_napi *ena_napi)
++{
++ struct net_dim_sample dim_sample;
++ struct ena_ring *rx_ring = ena_napi->rx_ring;
++
++ if (!rx_ring->per_napi_packets)
++ return;
++
++ rx_ring->non_empty_napi_events++;
++
++ net_dim_sample(rx_ring->non_empty_napi_events,
++ rx_ring->rx_stats.cnt,
++ rx_ring->rx_stats.bytes,
++ &dim_sample);
++
++ net_dim(&ena_napi->dim, dim_sample);
++
+ rx_ring->per_napi_packets = 0;
+- rx_ring->per_napi_bytes = 0;
+ }
+
+ static void ena_unmask_interrupt(struct ena_ring *tx_ring,
+@@ -1261,9 +1275,11 @@ static int ena_io_poll(struct napi_struc
+ * from the interrupt context (vs from sk_busy_loop)
+ */
+ if (napi_complete_done(napi, rx_work_done)) {
+- /* Tx and Rx share the same interrupt vector */
++ /* We apply adaptive moderation on Rx path only.
++ * Tx uses static interrupt moderation.
++ */
+ if (ena_com_get_adaptive_moderation_enabled(rx_ring->ena_dev))
+- ena_adjust_intr_moderation(rx_ring, tx_ring);
++ ena_adjust_adaptive_rx_intr_moderation(ena_napi);
+
+ ena_unmask_interrupt(tx_ring, rx_ring);
+ }
+@@ -1741,13 +1757,16 @@ static int ena_create_all_io_rx_queues(s
+ rc = ena_create_io_rx_queue(adapter, i);
+ if (rc)
+ goto create_err;
++ INIT_WORK(&adapter->ena_napi[i].dim.work, ena_dim_work);
+ }
+
+ return 0;
+
+ create_err:
+- while (i--)
++ while (i--) {
++ cancel_work_sync(&adapter->ena_napi[i].dim.work);
+ ena_com_destroy_io_queue(ena_dev, ENA_IO_RXQ_IDX(i));
++ }
+
+ return rc;
+ }
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+@@ -34,6 +34,7 @@
+ #define ENA_H
+
+ #include <linux/bitops.h>
++#include <linux/net_dim.h>
+ #include <linux/etherdevice.h>
+ #include <linux/inetdevice.h>
+ #include <linux/interrupt.h>
+@@ -153,6 +154,7 @@ struct ena_napi {
+ struct ena_ring *tx_ring;
+ struct ena_ring *rx_ring;
+ u32 qid;
++ struct net_dim dim;
+ };
+
+ struct ena_calc_queue_size_ctx {
+@@ -280,6 +282,7 @@ struct ena_ring {
+ u32 per_napi_packets;
+ u32 per_napi_bytes;
+ enum ena_intr_moder_level moder_tbl_idx;
++ u16 non_empty_napi_events;
+ struct u64_stats_sync syncp;
+ union {
+ struct ena_stats_tx tx_stats;
diff --git a/debian/patches/features/all/ena/net-ena-update-driver-version-from-2.0.2-to-2.0.3.patch b/debian/patches/features/all/ena/net-ena-update-driver-version-from-2.0.2-to-2.0.3.patch
new file mode 100644
index 000000000..7b3fd73ce
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-update-driver-version-from-2.0.2-to-2.0.3.patch
@@ -0,0 +1,27 @@
+From: Arthur Kiyanovski <akiyano@amazon.com>
+Date: Mon, 11 Feb 2019 19:17:44 +0200
+Subject: [PATCH] net: ena: update driver version from 2.0.2 to 2.0.3
+Origin: https://git.kernel.org/linus/d9b8656da92223eb004b4f4db74fe48e7433f7b2
+Bug-Debian: https://bugs.debian.org/941291
+
+Update driver version due to bug fix.
+
+Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_netdev.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.h
+@@ -45,7 +45,7 @@
+
+ #define DRV_MODULE_VER_MAJOR 2
+ #define DRV_MODULE_VER_MINOR 0
+-#define DRV_MODULE_VER_SUBMINOR 2
++#define DRV_MODULE_VER_SUBMINOR 3
+
+ #define DRV_MODULE_NAME "ena"
+ #ifndef DRV_MODULE_VERSION
diff --git a/debian/patches/features/all/ena/net-ena-update-driver-version-from-2.0.3-to-2.1.0.patch b/debian/patches/features/all/ena/net-ena-update-driver-version-from-2.0.3-to-2.1.0.patch
new file mode 100644
index 000000000..9a62b79ac
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-update-driver-version-from-2.0.3-to-2.1.0.patch
@@ -0,0 +1,32 @@
+From: Sameeh Jubran <sameehj@amazon.com>
+Date: Tue, 11 Jun 2019 14:58:11 +0300
+Subject: [PATCH] net: ena: update driver version from 2.0.3 to 2.1.0
+Origin: https://git.kernel.org/linus/dbbc6e6877768a03092751edf89d012d561b4553
+Bug-Debian: https://bugs.debian.org/941291
+
+Update driver version to match device specification.
+
+Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_netdev.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.h b/drivers/net/ethernet/amazon/ena/ena_netdev.h
+index b9d590879815..f2b6e2e0504d 100644
+--- a/drivers/net/ethernet/amazon/ena/ena_netdev.h
++++ b/drivers/net/ethernet/amazon/ena/ena_netdev.h
+@@ -44,8 +44,8 @@
+ #include "ena_eth_com.h"
+
+ #define DRV_MODULE_VER_MAJOR 2
+-#define DRV_MODULE_VER_MINOR 0
+-#define DRV_MODULE_VER_SUBMINOR 3
++#define DRV_MODULE_VER_MINOR 1
++#define DRV_MODULE_VER_SUBMINOR 0
+
+ #define DRV_MODULE_NAME "ena"
+ #ifndef DRV_MODULE_VERSION
+--
+2.17.1
+
diff --git a/debian/patches/features/all/ena/net-ena-use-dev_info_once-instead-of-static-variable.patch b/debian/patches/features/all/ena/net-ena-use-dev_info_once-instead-of-static-variable.patch
new file mode 100644
index 000000000..8b3a55e8d
--- /dev/null
+++ b/debian/patches/features/all/ena/net-ena-use-dev_info_once-instead-of-static-variable.patch
@@ -0,0 +1,34 @@
+From: Sameeh Jubran <sameehj@amazon.com>
+Date: Mon, 3 Jun 2019 17:43:29 +0300
+Subject: [PATCH] net: ena: use dev_info_once instead of static variable
+Origin: https://git.kernel.org/linus/1e9c3fbad83a70e0b00806df3f4dd2db0bc04cc4
+Bug-Debian: https://bugs.debian.org/941291
+
+Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/amazon/ena/ena_netdev.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+===================================================================
+--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c
+@@ -3277,7 +3277,6 @@ static int ena_probe(struct pci_dev *pde
+ struct ena_llq_configurations llq_config;
+ struct ena_com_dev *ena_dev = NULL;
+ struct ena_adapter *adapter;
+- static int version_printed;
+ int io_queue_num, bars, rc;
+ struct net_device *netdev;
+ static int adapters_found;
+@@ -3289,8 +3288,7 @@ static int ena_probe(struct pci_dev *pde
+
+ dev_dbg(&pdev->dev, "%s\n", __func__);
+
+- if (version_printed++ == 0)
+- dev_info(&pdev->dev, "%s", version);
++ dev_info_once(&pdev->dev, "%s", version);
+
+ rc = pci_enable_device_mem(pdev);
+ if (rc) {
diff --git a/debian/patches/features/all/lockdown/0001-Add-the-ability-to-lock-down-access-to-the-running-k.patch b/debian/patches/features/all/lockdown/0001-Add-the-ability-to-lock-down-access-to-the-running-k.patch
new file mode 100644
index 000000000..9a8cd7c82
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0001-Add-the-ability-to-lock-down-access-to-the-running-k.patch
@@ -0,0 +1,164 @@
+From: David Howells <dhowells@redhat.com>
+Date: Wed, 8 Nov 2017 15:11:31 +0000
+Subject: [01/29] Add the ability to lock down access to the running kernel
+ image
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=6d350e2534bfaaaa3e523484b2ca44d22377e951
+
+Provide a single call to allow kernel code to determine whether the system
+should be locked down, thereby disallowing various accesses that might
+allow the running kernel image to be changed including the loading of
+modules that aren't validly signed with a key we recognise, fiddling with
+MSR registers and disallowing hibernation,
+
+Signed-off-by: David Howells <dhowells@redhat.com>
+Acked-by: James Morris <james.l.morris@oracle.com>
+---
+ include/linux/kernel.h | 17 ++++++++++++++
+ include/linux/security.h | 8 +++++++
+ security/Kconfig | 8 +++++++
+ security/Makefile | 3 +++
+ security/lock_down.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++
+ 5 files changed, 96 insertions(+)
+ create mode 100644 security/lock_down.c
+
+Index: linux/include/linux/kernel.h
+===================================================================
+--- linux.orig/include/linux/kernel.h
++++ linux/include/linux/kernel.h
+@@ -341,6 +341,23 @@ static inline void refcount_error_report
+ { }
+ #endif
+
++#ifdef CONFIG_LOCK_DOWN_KERNEL
++extern bool __kernel_is_locked_down(const char *what, bool first);
++#else
++static inline bool __kernel_is_locked_down(const char *what, bool first)
++{
++ return false;
++}
++#endif
++
++#define kernel_is_locked_down(what) \
++ ({ \
++ static bool message_given; \
++ bool locked_down = __kernel_is_locked_down(what, !message_given); \
++ message_given = true; \
++ locked_down; \
++ })
++
+ /* Internal, do not use. */
+ int __must_check _kstrtoul(const char *s, unsigned int base, unsigned long *res);
+ int __must_check _kstrtol(const char *s, unsigned int base, long *res);
+Index: linux/include/linux/security.h
+===================================================================
+--- linux.orig/include/linux/security.h
++++ linux/include/linux/security.h
+@@ -1843,5 +1843,13 @@ static inline void free_secdata(void *se
+ { }
+ #endif /* CONFIG_SECURITY */
+
++#ifdef CONFIG_LOCK_DOWN_KERNEL
++extern void __init init_lockdown(void);
++#else
++static inline void __init init_lockdown(void)
++{
++}
++#endif
++
+ #endif /* ! __LINUX_SECURITY_H */
+
+Index: linux/security/Kconfig
+===================================================================
+--- linux.orig/security/Kconfig
++++ linux/security/Kconfig
+@@ -239,6 +239,14 @@ config STATIC_USERMODEHELPER_PATH
+ If you wish for all usermode helper programs to be disabled,
+ specify an empty string here (i.e. "").
+
++config LOCK_DOWN_KERNEL
++ bool "Allow the kernel to be 'locked down'"
++ help
++ Allow the kernel to be locked down under certain circumstances, for
++ instance if UEFI secure boot is enabled. Locking down the kernel
++ turns off various features that might otherwise allow access to the
++ kernel image (eg. setting MSR registers).
++
+ source security/selinux/Kconfig
+ source security/smack/Kconfig
+ source security/tomoyo/Kconfig
+Index: linux/security/Makefile
+===================================================================
+--- linux.orig/security/Makefile
++++ linux/security/Makefile
+@@ -30,3 +30,6 @@ obj-$(CONFIG_CGROUP_DEVICE) += device_c
+ # Object integrity file lists
+ subdir-$(CONFIG_INTEGRITY) += integrity
+ obj-$(CONFIG_INTEGRITY) += integrity/
++
++# Allow the kernel to be locked down
++obj-$(CONFIG_LOCK_DOWN_KERNEL) += lock_down.o
+Index: linux/security/lock_down.c
+===================================================================
+--- /dev/null
++++ linux/security/lock_down.c
+@@ -0,0 +1,60 @@
++/* Lock down the kernel
++ *
++ * Copyright (C) 2016 Red Hat, Inc. All Rights Reserved.
++ * Written by David Howells (dhowells@redhat.com)
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public Licence
++ * as published by the Free Software Foundation; either version
++ * 2 of the Licence, or (at your option) any later version.
++ */
++
++#include <linux/security.h>
++#include <linux/export.h>
++
++static __ro_after_init bool kernel_locked_down;
++
++/*
++ * Put the kernel into lock-down mode.
++ */
++static void __init lock_kernel_down(const char *where)
++{
++ if (!kernel_locked_down) {
++ kernel_locked_down = true;
++ pr_notice("Kernel is locked down from %s; see man kernel_lockdown.7\n",
++ where);
++ }
++}
++
++static int __init lockdown_param(char *ignored)
++{
++ lock_kernel_down("command line");
++ return 0;
++}
++
++early_param("lockdown", lockdown_param);
++
++/*
++ * Lock the kernel down from very early in the arch setup. This must happen
++ * prior to things like ACPI being initialised.
++ */
++void __init init_lockdown(void)
++{
++#ifdef CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT
++ if (efi_enabled(EFI_SECURE_BOOT))
++ lock_kernel_down("EFI secure boot");
++#endif
++}
++
++/**
++ * kernel_is_locked_down - Find out if the kernel is locked down
++ * @what: Tag to use in notice generated if lockdown is in effect
++ */
++bool __kernel_is_locked_down(const char *what, bool first)
++{
++ if (what && first && kernel_locked_down)
++ pr_notice("Lockdown: %s is restricted; see man kernel_lockdown.7\n",
++ what);
++ return kernel_locked_down;
++}
++EXPORT_SYMBOL(__kernel_is_locked_down);
diff --git a/debian/patches/features/all/lockdown/0003-ima-require-secure_boot-rules-in-lockdown-mode.patch b/debian/patches/features/all/lockdown/0003-ima-require-secure_boot-rules-in-lockdown-mode.patch
new file mode 100644
index 000000000..0ab99ba64
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0003-ima-require-secure_boot-rules-in-lockdown-mode.patch
@@ -0,0 +1,75 @@
+From: Mimi Zohar <zohar@linux.vnet.ibm.com>
+Date: Wed, 8 Nov 2017 15:11:32 +0000
+Subject: [03/29] ima: require secure_boot rules in lockdown mode
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=29c55d71a8185208c7962843a29c9a84ae27b2b0
+
+Require the "secure_boot" rules, whether or not it is specified
+on the boot command line, for both the builtin and custom policies
+in secure boot lockdown mode.
+
+Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+[bwh: Adjust context to apply after commits 6f0911a666d1
+ "ima: fix updating the ima_appraise flag" and ef96837b0de4
+ "ima: add build time policy"]
+---
+ security/integrity/ima/ima_policy.c | 39 +++++++++++++++++++++++++++----------
+ 1 file changed, 29 insertions(+), 10 deletions(-)
+
+Index: linux/security/integrity/ima/ima_policy.c
+===================================================================
+--- linux.orig/security/integrity/ima/ima_policy.c
++++ linux/security/integrity/ima/ima_policy.c
+@@ -481,14 +481,21 @@ static int ima_appraise_flag(enum ima_ho
+ */
+ void __init ima_init_policy(void)
+ {
+- int i, measure_entries, appraise_entries, secure_boot_entries;
++ int i;
++ int measure_entries = 0;
++ int appraise_entries = 0;
++ int secure_boot_entries = 0;
++ bool kernel_locked_down = __kernel_is_locked_down(NULL, false);
+
+ /* if !ima_policy set entries = 0 so we load NO default rules */
+- measure_entries = ima_policy ? ARRAY_SIZE(dont_measure_rules) : 0;
+- appraise_entries = ima_use_appraise_tcb ?
+- ARRAY_SIZE(default_appraise_rules) : 0;
+- secure_boot_entries = ima_use_secure_boot ?
+- ARRAY_SIZE(secure_boot_rules) : 0;
++ if (ima_policy)
++ measure_entries = ARRAY_SIZE(dont_measure_rules);
++
++ if (ima_use_appraise_tcb)
++ appraise_entries = ARRAY_SIZE(default_appraise_rules);
++
++ if (ima_use_secure_boot || kernel_locked_down)
++ secure_boot_entries = ARRAY_SIZE(secure_boot_rules);
+
+ for (i = 0; i < measure_entries; i++)
+ list_add_tail(&dont_measure_rules[i].list, &ima_default_rules);
+@@ -510,11 +517,24 @@ void __init ima_init_policy(void)
+ /*
+ * Insert the builtin "secure_boot" policy rules requiring file
+ * signatures, prior to any other appraise rules.
++ * In secure boot lock-down mode, also require these appraise
++ * rules for custom policies.
+ */
+ for (i = 0; i < secure_boot_entries; i++) {
++ struct ima_rule_entry *entry;
++
++ /* Include for builtin policies */
+ list_add_tail(&secure_boot_rules[i].list, &ima_default_rules);
+ temp_ima_appraise |=
+ ima_appraise_flag(secure_boot_rules[i].func);
++
++ /* Include for custom policies */
++ if (kernel_locked_down) {
++ entry = kmemdup(&secure_boot_rules[i], sizeof(*entry),
++ GFP_KERNEL);
++ if (entry)
++ list_add_tail(&entry->list, &ima_policy_rules);
++ }
+ }
+
+ /*
diff --git a/debian/patches/features/all/lockdown/0004-Enforce-module-signatures-if-the-kernel-is-locked-do.patch b/debian/patches/features/all/lockdown/0004-Enforce-module-signatures-if-the-kernel-is-locked-do.patch
new file mode 100644
index 000000000..0ab5e258c
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0004-Enforce-module-signatures-if-the-kernel-is-locked-do.patch
@@ -0,0 +1,95 @@
+From: David Howells <dhowells@redhat.com>
+Date: Wed, 8 Nov 2017 15:11:32 +0000
+Subject: [04/29] Enforce module signatures if the kernel is locked down
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=1616ef1deccf5fdb525643a6b3efae34946a148d
+
+If the kernel is locked down, require that all modules have valid
+signatures that we can verify or that IMA can validate the file.
+
+Signed-off-by: David Howells <dhowells@redhat.com>
+Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
+Reviewed-by: James Morris <james.l.morris@oracle.com>
+[bwh: Adjust context to apply after commits 2c8fd268f418
+ "module: Do not access sig_enforce directly" and 5fdc7db6448a
+ "module: setup load info before module_sig_check()"]
+---
+ kernel/module.c | 19 ++++++++++++-------
+ 1 file changed, 12 insertions(+), 7 deletions(-)
+
+Index: linux/kernel/module.c
+===================================================================
+--- linux.orig/kernel/module.c
++++ linux/kernel/module.c
+@@ -64,6 +64,7 @@
+ #include <linux/bsearch.h>
+ #include <linux/dynamic_debug.h>
+ #include <linux/audit.h>
++#include <linux/ima.h>
+ #include <uapi/linux/module.h>
+ #include "module-internal.h"
+
+@@ -2784,7 +2785,8 @@ static inline void kmemleak_load_module(
+ #endif
+
+ #ifdef CONFIG_MODULE_SIG
+-static int module_sig_check(struct load_info *info, int flags)
++static int module_sig_check(struct load_info *info, int flags,
++ bool can_do_ima_check)
+ {
+ int err = -ENOKEY;
+ const unsigned long markerlen = sizeof(MODULE_SIG_STRING) - 1;
+@@ -2808,13 +2810,16 @@ static int module_sig_check(struct load_
+ }
+
+ /* Not having a signature is only an error if we're strict. */
+- if (err == -ENOKEY && !is_module_sig_enforced())
++ if (err == -ENOKEY && !is_module_sig_enforced() &&
++ (!can_do_ima_check || !is_ima_appraise_enabled()) &&
++ !kernel_is_locked_down("Loading of unsigned modules"))
+ err = 0;
+
+ return err;
+ }
+ #else /* !CONFIG_MODULE_SIG */
+-static int module_sig_check(struct load_info *info, int flags)
++static int module_sig_check(struct load_info *info, int flags,
++ bool can_do_ima_check)
+ {
+ return 0;
+ }
+@@ -3662,7 +3667,7 @@ static int unknown_module_param_cb(char
+ /* Allocate and load the module: note that size of section 0 is always
+ zero, and we rely on this for optional sections. */
+ static int load_module(struct load_info *info, const char __user *uargs,
+- int flags)
++ int flags, bool can_do_ima_check)
+ {
+ struct module *mod;
+ long err = 0;
+@@ -3681,7 +3686,7 @@ static int load_module(struct load_info
+ goto free_copy;
+ }
+
+- err = module_sig_check(info, flags);
++ err = module_sig_check(info, flags, can_do_ima_check);
+ if (err)
+ goto free_copy;
+
+@@ -3876,7 +3881,7 @@ SYSCALL_DEFINE3(init_module, void __user
+ if (err)
+ return err;
+
+- return load_module(&info, uargs, 0);
++ return load_module(&info, uargs, 0, false);
+ }
+
+ SYSCALL_DEFINE3(finit_module, int, fd, const char __user *, uargs, int, flags)
+@@ -3903,7 +3908,7 @@ SYSCALL_DEFINE3(finit_module, int, fd, c
+ info.hdr = hdr;
+ info.len = size;
+
+- return load_module(&info, uargs, flags);
++ return load_module(&info, uargs, flags, true);
+ }
+
+ static inline int within(unsigned long addr, void *start, unsigned long size)
diff --git a/debian/patches/features/all/lockdown/0005-Restrict-dev-mem-kmem-port-when-the-kernel-is-locked.patch b/debian/patches/features/all/lockdown/0005-Restrict-dev-mem-kmem-port-when-the-kernel-is-locked.patch
new file mode 100644
index 000000000..625f8f763
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0005-Restrict-dev-mem-kmem-port-when-the-kernel-is-locked.patch
@@ -0,0 +1,35 @@
+From: Matthew Garrett <matthew.garrett@nebula.com>
+Date: Wed, 8 Nov 2017 15:11:32 +0000
+Subject: [05/29] Restrict /dev/{mem,kmem,port} when the kernel is locked down
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=8214bb0d847928bf08a7d8475f84c06541c5a352
+
+Allowing users to read and write to core kernel memory makes it possible
+for the kernel to be subverted, avoiding module loading restrictions, and
+also to steal cryptographic information.
+
+Disallow /dev/mem and /dev/kmem from being opened this when the kernel has
+been locked down to prevent this.
+
+Also disallow /dev/port from being opened to prevent raw ioport access and
+thus DMA from being used to accomplish the same thing.
+
+Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
+---
+ drivers/char/mem.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+Index: linux/drivers/char/mem.c
+===================================================================
+--- linux.orig/drivers/char/mem.c
++++ linux/drivers/char/mem.c
+@@ -807,6 +807,8 @@ static loff_t memory_lseek(struct file *
+
+ static int open_port(struct inode *inode, struct file *filp)
+ {
++ if (kernel_is_locked_down("/dev/mem,kmem,port"))
++ return -EPERM;
+ return capable(CAP_SYS_RAWIO) ? 0 : -EPERM;
+ }
+
diff --git a/debian/patches/features/all/lockdown/0006-kexec-Disable-at-runtime-if-the-kernel-is-locked-dow.patch b/debian/patches/features/all/lockdown/0006-kexec-Disable-at-runtime-if-the-kernel-is-locked-dow.patch
new file mode 100644
index 000000000..522387d9a
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0006-kexec-Disable-at-runtime-if-the-kernel-is-locked-dow.patch
@@ -0,0 +1,42 @@
+From: Matthew Garrett <matthew.garrett@nebula.com>
+Date: Wed, 8 Nov 2017 15:11:32 +0000
+Subject: [06/29] kexec: Disable at runtime if the kernel is locked down
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=6081db9ba435b757a3a3473d0cd50ee2252ccaeb
+
+kexec permits the loading and execution of arbitrary code in ring 0, which
+is something that lock-down is meant to prevent. It makes sense to disable
+kexec in this situation.
+
+This does not affect kexec_file_load() which can check for a signature on the
+image to be booted.
+
+Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+Acked-by: Dave Young <dyoung@redhat.com>
+Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
+Reviewed-by: James Morris <james.l.morris@oracle.com>
+cc: kexec@lists.infradead.org
+[bwh: Adjust context to apply after commit a210fd32a46b
+ "kexec: add call to LSM hook in original kexec_load syscall"]
+---
+ kernel/kexec.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+Index: linux/kernel/kexec.c
+===================================================================
+--- linux.orig/kernel/kexec.c
++++ linux/kernel/kexec.c
+@@ -208,6 +208,13 @@ static inline int kexec_load_check(unsig
+ return result;
+
+ /*
++ * kexec can be used to circumvent module loading restrictions, so
++ * prevent loading in that case
++ */
++ if (kernel_is_locked_down("kexec of unsigned images"))
++ return -EPERM;
++
++ /*
+ * Verify we have a legal set of flags
+ * This leaves us room for future extensions.
+ */
diff --git a/debian/patches/features/all/lockdown/0007-Copy-secure_boot-flag-in-boot-params-across-kexec-re.patch b/debian/patches/features/all/lockdown/0007-Copy-secure_boot-flag-in-boot-params-across-kexec-re.patch
new file mode 100644
index 000000000..2024c04a6
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0007-Copy-secure_boot-flag-in-boot-params-across-kexec-re.patch
@@ -0,0 +1,36 @@
+From: Dave Young <dyoung@redhat.com>
+Date: Wed, 8 Nov 2017 15:11:32 +0000
+Subject: [07/29] Copy secure_boot flag in boot params across kexec reboot
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=a6b7f780bdaa731f3e2970d65dcd52fe9ba2409d
+
+Kexec reboot in case secure boot being enabled does not keep the secure
+boot mode in new kernel, so later one can load unsigned kernel via legacy
+kexec_load. In this state, the system is missing the protections provided
+by secure boot.
+
+Adding a patch to fix this by retain the secure_boot flag in original
+kernel.
+
+secure_boot flag in boot_params is set in EFI stub, but kexec bypasses the
+stub. Fixing this issue by copying secure_boot flag across kexec reboot.
+
+Signed-off-by: Dave Young <dyoung@redhat.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
+cc: kexec@lists.infradead.org
+---
+ arch/x86/kernel/kexec-bzimage64.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: linux/arch/x86/kernel/kexec-bzimage64.c
+===================================================================
+--- linux.orig/arch/x86/kernel/kexec-bzimage64.c
++++ linux/arch/x86/kernel/kexec-bzimage64.c
+@@ -182,6 +182,7 @@ setup_efi_state(struct boot_params *para
+ if (efi_enabled(EFI_OLD_MEMMAP))
+ return 0;
+
++ params->secure_boot = boot_params.secure_boot;
+ ei->efi_loader_signature = current_ei->efi_loader_signature;
+ ei->efi_systab = current_ei->efi_systab;
+ ei->efi_systab_hi = current_ei->efi_systab_hi;
diff --git a/debian/patches/features/all/lockdown/0008-kexec_file-Restrict-at-runtime-if-the-kernel-is-lock.patch b/debian/patches/features/all/lockdown/0008-kexec_file-Restrict-at-runtime-if-the-kernel-is-lock.patch
new file mode 100644
index 000000000..056936427
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0008-kexec_file-Restrict-at-runtime-if-the-kernel-is-lock.patch
@@ -0,0 +1,40 @@
+From: Chun-Yi Lee <joeyli.kernel@gmail.com>
+Date: Wed, 8 Nov 2017 15:11:33 +0000
+Subject: [08/29] kexec_file: Restrict at runtime if the kernel is locked down
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=eed4aca0409692d7d24bc64f5c98d346cd0506c4
+
+When KEXEC_VERIFY_SIG is not enabled, kernel should not load images through
+kexec_file systemcall if the kernel is locked down unless IMA can be used
+to validate the image.
+
+This code was showed in Matthew's patch but not in git:
+https://lkml.org/lkml/2015/3/13/778
+
+Cc: Matthew Garrett <mjg59@srcf.ucam.org>
+Signed-off-by: Chun-Yi Lee <jlee@suse.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+Reviewed-by: James Morris <james.l.morris@oracle.com>
+cc: kexec@lists.infradead.org
+---
+ kernel/kexec_file.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+Index: linux/kernel/kexec_file.c
+===================================================================
+--- linux.orig/kernel/kexec_file.c
++++ linux/kernel/kexec_file.c
+@@ -328,6 +328,14 @@ SYSCALL_DEFINE5(kexec_file_load, int, ke
+ if (!capable(CAP_SYS_BOOT) || kexec_load_disabled)
+ return -EPERM;
+
++ /* Don't permit images to be loaded into trusted kernels if we're not
++ * going to verify the signature on them
++ */
++ if (!IS_ENABLED(CONFIG_KEXEC_VERIFY_SIG) &&
++ !is_ima_appraise_enabled() &&
++ kernel_is_locked_down("kexec of unsigned images"))
++ return -EPERM;
++
+ /* Make sure we have a legal set of flags */
+ if (flags != (flags & KEXEC_FILE_FLAGS))
+ return -EINVAL;
diff --git a/debian/patches/features/all/lockdown/0009-hibernate-Disable-when-the-kernel-is-locked-down.patch b/debian/patches/features/all/lockdown/0009-hibernate-Disable-when-the-kernel-is-locked-down.patch
new file mode 100644
index 000000000..56060f80a
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0009-hibernate-Disable-when-the-kernel-is-locked-down.patch
@@ -0,0 +1,31 @@
+From: Josh Boyer <jwboyer@fedoraproject.org>
+Date: Wed, 8 Nov 2017 15:11:33 +0000
+Subject: [09/29] hibernate: Disable when the kernel is locked down
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=480ddca2a40c2efd1c01cfa20d8f6c1377ddafe3
+
+There is currently no way to verify the resume image when returning
+from hibernate. This might compromise the signed modules trust model,
+so until we can work with signed hibernate images we disable it when the
+kernel is locked down.
+
+Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
+Signed-off-by: David Howells <dhowells@redhat.com>
+Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
+cc: linux-pm@vger.kernel.org
+---
+ kernel/power/hibernate.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: linux/kernel/power/hibernate.c
+===================================================================
+--- linux.orig/kernel/power/hibernate.c
++++ linux/kernel/power/hibernate.c
+@@ -70,7 +70,7 @@ static const struct platform_hibernation
+
+ bool hibernation_available(void)
+ {
+- return (nohibernate == 0);
++ return nohibernate == 0 && !kernel_is_locked_down("Hibernation");
+ }
+
+ /**
diff --git a/debian/patches/features/all/lockdown/0010-uswsusp-Disable-when-the-kernel-is-locked-down.patch b/debian/patches/features/all/lockdown/0010-uswsusp-Disable-when-the-kernel-is-locked-down.patch
new file mode 100644
index 000000000..79b5f3461
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0010-uswsusp-Disable-when-the-kernel-is-locked-down.patch
@@ -0,0 +1,32 @@
+From: Matthew Garrett <mjg59@srcf.ucam.org>
+Date: Wed, 8 Nov 2017 15:11:33 +0000
+Subject: [10/29] uswsusp: Disable when the kernel is locked down
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=706def46d58e9c69e91db506305485731f615e44
+
+uswsusp allows a user process to dump and then restore kernel state, which
+makes it possible to modify the running kernel. Disable this if the kernel
+is locked down.
+
+Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
+Signed-off-by: David Howells <dhowells@redhat.com>
+Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
+Reviewed-by: James Morris <james.l.morris@oracle.com>
+cc: linux-pm@vger.kernel.org
+---
+ kernel/power/user.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+Index: linux/kernel/power/user.c
+===================================================================
+--- linux.orig/kernel/power/user.c
++++ linux/kernel/power/user.c
+@@ -52,6 +52,9 @@ static int snapshot_open(struct inode *i
+ if (!hibernation_available())
+ return -EPERM;
+
++ if (kernel_is_locked_down("/dev/snapshot"))
++ return -EPERM;
++
+ lock_system_sleep();
+
+ if (!atomic_add_unless(&snapshot_device_available, -1, 0)) {
diff --git a/debian/patches/features/all/lockdown/0011-PCI-Lock-down-BAR-access-when-the-kernel-is-locked-d.patch b/debian/patches/features/all/lockdown/0011-PCI-Lock-down-BAR-access-when-the-kernel-is-locked-d.patch
new file mode 100644
index 000000000..1f9186ab3
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0011-PCI-Lock-down-BAR-access-when-the-kernel-is-locked-d.patch
@@ -0,0 +1,104 @@
+From: Matthew Garrett <matthew.garrett@nebula.com>
+Date: Wed, 8 Nov 2017 15:11:33 +0000
+Subject: [11/29] PCI: Lock down BAR access when the kernel is locked down
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=d107d11fd7ac982a34b1233722cb3e72f9fe5a20
+
+Any hardware that can potentially generate DMA has to be locked down in
+order to avoid it being possible for an attacker to modify kernel code,
+allowing them to circumvent disabled module loading or module signing.
+Default to paranoid - in future we can potentially relax this for
+sufficiently IOMMU-isolated devices.
+
+Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+Acked-by: Bjorn Helgaas <bhelgaas@google.com>
+Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
+cc: linux-pci@vger.kernel.org
+---
+ drivers/pci/pci-sysfs.c | 9 +++++++++
+ drivers/pci/proc.c | 9 ++++++++-
+ drivers/pci/syscall.c | 3 ++-
+ 3 files changed, 19 insertions(+), 2 deletions(-)
+
+Index: linux/drivers/pci/pci-sysfs.c
+===================================================================
+--- linux.orig/drivers/pci/pci-sysfs.c
++++ linux/drivers/pci/pci-sysfs.c
+@@ -905,6 +905,9 @@ static ssize_t pci_write_config(struct f
+ loff_t init_off = off;
+ u8 *data = (u8 *) buf;
+
++ if (kernel_is_locked_down("Direct PCI access"))
++ return -EPERM;
++
+ if (off > dev->cfg_size)
+ return 0;
+ if (off + count > dev->cfg_size) {
+@@ -1167,6 +1170,9 @@ static int pci_mmap_resource(struct kobj
+ enum pci_mmap_state mmap_type;
+ struct resource *res = &pdev->resource[bar];
+
++ if (kernel_is_locked_down("Direct PCI access"))
++ return -EPERM;
++
+ if (res->flags & IORESOURCE_MEM && iomem_is_exclusive(res->start))
+ return -EINVAL;
+
+@@ -1242,6 +1248,9 @@ static ssize_t pci_write_resource_io(str
+ struct bin_attribute *attr, char *buf,
+ loff_t off, size_t count)
+ {
++ if (kernel_is_locked_down("Direct PCI access"))
++ return -EPERM;
++
+ return pci_resource_io(filp, kobj, attr, buf, off, count, true);
+ }
+
+Index: linux/drivers/pci/proc.c
+===================================================================
+--- linux.orig/drivers/pci/proc.c
++++ linux/drivers/pci/proc.c
+@@ -117,6 +117,9 @@ static ssize_t proc_bus_pci_write(struct
+ int size = dev->cfg_size;
+ int cnt;
+
++ if (kernel_is_locked_down("Direct PCI access"))
++ return -EPERM;
++
+ if (pos >= size)
+ return 0;
+ if (nbytes >= size)
+@@ -196,6 +199,9 @@ static long proc_bus_pci_ioctl(struct fi
+ #endif /* HAVE_PCI_MMAP */
+ int ret = 0;
+
++ if (kernel_is_locked_down("Direct PCI access"))
++ return -EPERM;
++
+ switch (cmd) {
+ case PCIIOC_CONTROLLER:
+ ret = pci_domain_nr(dev->bus);
+@@ -237,7 +243,8 @@ static int proc_bus_pci_mmap(struct file
+ struct pci_filp_private *fpriv = file->private_data;
+ int i, ret, write_combine = 0, res_bit = IORESOURCE_MEM;
+
+- if (!capable(CAP_SYS_RAWIO))
++ if (!capable(CAP_SYS_RAWIO) ||
++ kernel_is_locked_down("Direct PCI access"))
+ return -EPERM;
+
+ if (fpriv->mmap_state == pci_mmap_io) {
+Index: linux/drivers/pci/syscall.c
+===================================================================
+--- linux.orig/drivers/pci/syscall.c
++++ linux/drivers/pci/syscall.c
+@@ -90,7 +90,8 @@ SYSCALL_DEFINE5(pciconfig_write, unsigne
+ u32 dword;
+ int err = 0;
+
+- if (!capable(CAP_SYS_ADMIN))
++ if (!capable(CAP_SYS_ADMIN) ||
++ kernel_is_locked_down("Direct PCI access"))
+ return -EPERM;
+
+ dev = pci_get_domain_bus_and_slot(0, bus, dfn);
diff --git a/debian/patches/features/all/lockdown/0012-x86-Lock-down-IO-port-access-when-the-kernel-is-lock.patch b/debian/patches/features/all/lockdown/0012-x86-Lock-down-IO-port-access-when-the-kernel-is-lock.patch
new file mode 100644
index 000000000..3a9d69dcb
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0012-x86-Lock-down-IO-port-access-when-the-kernel-is-lock.patch
@@ -0,0 +1,46 @@
+From: Matthew Garrett <matthew.garrett@nebula.com>
+Date: Wed, 8 Nov 2017 15:11:34 +0000
+Subject: [12/29] x86: Lock down IO port access when the kernel is locked down
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=00ebba940247d4c37c06da4aedecf6b80db213cf
+
+IO port access would permit users to gain access to PCI configuration
+registers, which in turn (on a lot of hardware) give access to MMIO
+register space. This would potentially permit root to trigger arbitrary
+DMA, so lock it down by default.
+
+This also implicitly locks down the KDADDIO, KDDELIO, KDENABIO and
+KDDISABIO console ioctls.
+
+Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
+Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
+cc: x86@kernel.org
+---
+ arch/x86/kernel/ioport.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+Index: linux/arch/x86/kernel/ioport.c
+===================================================================
+--- linux.orig/arch/x86/kernel/ioport.c
++++ linux/arch/x86/kernel/ioport.c
+@@ -31,7 +31,8 @@ long ksys_ioperm(unsigned long from, uns
+
+ if ((from + num <= from) || (from + num > IO_BITMAP_BITS))
+ return -EINVAL;
+- if (turn_on && !capable(CAP_SYS_RAWIO))
++ if (turn_on && (!capable(CAP_SYS_RAWIO) ||
++ kernel_is_locked_down("ioperm")))
+ return -EPERM;
+
+ /*
+@@ -126,7 +127,8 @@ SYSCALL_DEFINE1(iopl, unsigned int, leve
+ return -EINVAL;
+ /* Trying to gain more privileges? */
+ if (level > old) {
+- if (!capable(CAP_SYS_RAWIO))
++ if (!capable(CAP_SYS_RAWIO) ||
++ kernel_is_locked_down("iopl"))
+ return -EPERM;
+ }
+ regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) |
diff --git a/debian/patches/features/all/lockdown/0013-x86-msr-Restrict-MSR-access-when-the-kernel-is-locke.patch b/debian/patches/features/all/lockdown/0013-x86-msr-Restrict-MSR-access-when-the-kernel-is-locke.patch
new file mode 100644
index 000000000..1a7a4d879
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0013-x86-msr-Restrict-MSR-access-when-the-kernel-is-locke.patch
@@ -0,0 +1,50 @@
+From: Matthew Garrett <matthew.garrett@nebula.com>
+Date: Wed, 8 Nov 2017 15:11:34 +0000
+Subject: [13/29] x86/msr: Restrict MSR access when the kernel is locked down
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=696dcddb285558b4febf318fe620a344d2b2fa47
+
+Writing to MSRs should not be allowed if the kernel is locked down, since
+it could lead to execution of arbitrary code in kernel mode. Based on a
+patch by Kees Cook.
+
+MSR accesses are logged for the purposes of building up a whitelist as per
+Alan Cox's suggestion.
+
+Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+Acked-by: Kees Cook <keescook@chromium.org>
+Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
+Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
+cc: x86@kernel.org
+---
+ arch/x86/kernel/msr.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+Index: linux/arch/x86/kernel/msr.c
+===================================================================
+--- linux.orig/arch/x86/kernel/msr.c
++++ linux/arch/x86/kernel/msr.c
+@@ -84,6 +84,11 @@ static ssize_t msr_write(struct file *fi
+ int err = 0;
+ ssize_t bytes = 0;
+
++ if (kernel_is_locked_down("Direct MSR access")) {
++ pr_info("Direct access to MSR %x\n", reg);
++ return -EPERM;
++ }
++
+ if (count % 8)
+ return -EINVAL; /* Invalid chunk size */
+
+@@ -135,6 +140,11 @@ static long msr_ioctl(struct file *file,
+ err = -EFAULT;
+ break;
+ }
++ if (kernel_is_locked_down("Direct MSR access")) {
++ pr_info("Direct access to MSR %x\n", regs[1]); /* Display %ecx */
++ err = -EPERM;
++ break;
++ }
+ err = wrmsr_safe_regs_on_cpu(cpu, regs);
+ if (err)
+ break;
diff --git a/debian/patches/features/all/lockdown/0014-asus-wmi-Restrict-debugfs-interface-when-the-kernel-.patch b/debian/patches/features/all/lockdown/0014-asus-wmi-Restrict-debugfs-interface-when-the-kernel-.patch
new file mode 100644
index 000000000..295b46e88
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0014-asus-wmi-Restrict-debugfs-interface-when-the-kernel-.patch
@@ -0,0 +1,55 @@
+From: Matthew Garrett <matthew.garrett@nebula.com>
+Date: Wed, 8 Nov 2017 15:11:34 +0000
+Subject: [14/29] asus-wmi: Restrict debugfs interface when the kernel is
+ locked down
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=2e6d31b3176ee27d216bb92a3b108f6b19d4719a
+
+We have no way of validating what all of the Asus WMI methods do on a given
+machine - and there's a risk that some will allow hardware state to be
+manipulated in such a way that arbitrary code can be executed in the
+kernel, circumventing module loading restrictions. Prevent that if the
+kernel is locked down.
+
+Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
+cc: acpi4asus-user@lists.sourceforge.net
+cc: platform-driver-x86@vger.kernel.org
+---
+ drivers/platform/x86/asus-wmi.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+Index: linux/drivers/platform/x86/asus-wmi.c
+===================================================================
+--- linux.orig/drivers/platform/x86/asus-wmi.c
++++ linux/drivers/platform/x86/asus-wmi.c
+@@ -2002,6 +2002,9 @@ static int show_dsts(struct seq_file *m,
+ int err;
+ u32 retval = -1;
+
++ if (kernel_is_locked_down("Asus WMI"))
++ return -EPERM;
++
+ err = asus_wmi_get_devstate(asus, asus->debug.dev_id, &retval);
+
+ if (err < 0)
+@@ -2018,6 +2021,9 @@ static int show_devs(struct seq_file *m,
+ int err;
+ u32 retval = -1;
+
++ if (kernel_is_locked_down("Asus WMI"))
++ return -EPERM;
++
+ err = asus_wmi_set_devstate(asus->debug.dev_id, asus->debug.ctrl_param,
+ &retval);
+
+@@ -2042,6 +2048,9 @@ static int show_call(struct seq_file *m,
+ union acpi_object *obj;
+ acpi_status status;
+
++ if (kernel_is_locked_down("Asus WMI"))
++ return -EPERM;
++
+ status = wmi_evaluate_method(ASUS_WMI_MGMT_GUID,
+ 0, asus->debug.method_id,
+ &input, &output);
diff --git a/debian/patches/features/all/lockdown/0015-ACPI-Limit-access-to-custom_method-when-the-kernel-i.patch b/debian/patches/features/all/lockdown/0015-ACPI-Limit-access-to-custom_method-when-the-kernel-i.patch
new file mode 100644
index 000000000..17778da72
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0015-ACPI-Limit-access-to-custom_method-when-the-kernel-i.patch
@@ -0,0 +1,32 @@
+From: Matthew Garrett <matthew.garrett@nebula.com>
+Date: Wed, 8 Nov 2017 15:11:34 +0000
+Subject: [15/29] ACPI: Limit access to custom_method when the kernel is locked
+ down
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=5ff99c830aacf02f25816a0da427216fb63ba16d
+
+custom_method effectively allows arbitrary access to system memory, making
+it possible for an attacker to circumvent restrictions on module loading.
+Disable it if the kernel is locked down.
+
+Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
+cc: linux-acpi@vger.kernel.org
+---
+ drivers/acpi/custom_method.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+Index: linux/drivers/acpi/custom_method.c
+===================================================================
+--- linux.orig/drivers/acpi/custom_method.c
++++ linux/drivers/acpi/custom_method.c
+@@ -29,6 +29,9 @@ static ssize_t cm_write(struct file *fil
+ struct acpi_table_header table;
+ acpi_status status;
+
++ if (kernel_is_locked_down("ACPI custom methods"))
++ return -EPERM;
++
+ if (!(*ppos)) {
+ /* parse the table header to get the table length */
+ if (count <= sizeof(struct acpi_table_header))
diff --git a/debian/patches/features/all/lockdown/0016-acpi-Ignore-acpi_rsdp-kernel-param-when-the-kernel-h.patch b/debian/patches/features/all/lockdown/0016-acpi-Ignore-acpi_rsdp-kernel-param-when-the-kernel-h.patch
new file mode 100644
index 000000000..f8ee397c8
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0016-acpi-Ignore-acpi_rsdp-kernel-param-when-the-kernel-h.patch
@@ -0,0 +1,32 @@
+From: Josh Boyer <jwboyer@redhat.com>
+Date: Wed, 8 Nov 2017 15:11:34 +0000
+Subject: [16/29] acpi: Ignore acpi_rsdp kernel param when the kernel has been
+ locked down
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=67890a0361626ec3e035264656896c77670c414b
+
+This option allows userspace to pass the RSDP address to the kernel, which
+makes it possible for a user to modify the workings of hardware . Reject
+the option when the kernel is locked down.
+
+Signed-off-by: Josh Boyer <jwboyer@redhat.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
+cc: Dave Young <dyoung@redhat.com>
+cc: linux-acpi@vger.kernel.org
+---
+ drivers/acpi/osl.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: linux/drivers/acpi/osl.c
+===================================================================
+--- linux.orig/drivers/acpi/osl.c
++++ linux/drivers/acpi/osl.c
+@@ -194,7 +194,7 @@ acpi_physical_address __init acpi_os_get
+ acpi_physical_address pa;
+
+ #ifdef CONFIG_KEXEC
+- if (acpi_rsdp)
++ if (acpi_rsdp && !kernel_is_locked_down("ACPI RSDP specification"))
+ return acpi_rsdp;
+ #endif
+ pa = acpi_arch_get_root_pointer();
diff --git a/debian/patches/features/all/lockdown/0017-acpi-Disable-ACPI-table-override-if-the-kernel-is-lo.patch b/debian/patches/features/all/lockdown/0017-acpi-Disable-ACPI-table-override-if-the-kernel-is-lo.patch
new file mode 100644
index 000000000..fd12eedb2
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0017-acpi-Disable-ACPI-table-override-if-the-kernel-is-lo.patch
@@ -0,0 +1,40 @@
+From: Linn Crosetto <linn@hpe.com>
+Date: Wed, 8 Nov 2017 15:11:34 +0000
+Subject: [17/29] acpi: Disable ACPI table override if the kernel is locked
+ down
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=5976d26de05569951641ebeb95f7240993b66063
+
+From the kernel documentation (initrd_table_override.txt):
+
+ If the ACPI_INITRD_TABLE_OVERRIDE compile option is true, it is possible
+ to override nearly any ACPI table provided by the BIOS with an
+ instrumented, modified one.
+
+When securelevel is set, the kernel should disallow any unauthenticated
+changes to kernel space. ACPI tables contain code invoked by the kernel,
+so do not allow ACPI tables to be overridden if the kernel is locked down.
+
+Signed-off-by: Linn Crosetto <linn@hpe.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
+cc: linux-acpi@vger.kernel.org
+---
+ drivers/acpi/tables.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+Index: linux/drivers/acpi/tables.c
+===================================================================
+--- linux.orig/drivers/acpi/tables.c
++++ linux/drivers/acpi/tables.c
+@@ -532,6 +532,11 @@ void __init acpi_table_upgrade(void)
+ if (table_nr == 0)
+ return;
+
++ if (kernel_is_locked_down("ACPI table override")) {
++ pr_notice("kernel is locked down, ignoring table override\n");
++ return;
++ }
++
+ acpi_tables_addr =
+ memblock_find_in_range(0, ACPI_TABLE_UPGRADE_MAX_PHYS,
+ all_tables_size, PAGE_SIZE);
diff --git a/debian/patches/features/all/lockdown/0018-acpi-Disable-APEI-error-injection-if-the-kernel-is-l.patch b/debian/patches/features/all/lockdown/0018-acpi-Disable-APEI-error-injection-if-the-kernel-is-l.patch
new file mode 100644
index 000000000..396a506ac
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0018-acpi-Disable-APEI-error-injection-if-the-kernel-is-l.patch
@@ -0,0 +1,43 @@
+From: Linn Crosetto <linn@hpe.com>
+Date: Wed, 8 Nov 2017 15:11:35 +0000
+Subject: [18/29] acpi: Disable APEI error injection if the kernel is locked
+ down
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=a9c239382bce17b9108f941130392151d5fff262
+
+ACPI provides an error injection mechanism, EINJ, for debugging and testing
+the ACPI Platform Error Interface (APEI) and other RAS features. If
+supported by the firmware, ACPI specification 5.0 and later provide for a
+way to specify a physical memory address to which to inject the error.
+
+Injecting errors through EINJ can produce errors which to the platform are
+indistinguishable from real hardware errors. This can have undesirable
+side-effects, such as causing the platform to mark hardware as needing
+replacement.
+
+While it does not provide a method to load unauthenticated privileged code,
+the effect of these errors may persist across reboots and affect trust in
+the underlying hardware, so disable error injection through EINJ if
+the kernel is locked down.
+
+Signed-off-by: Linn Crosetto <linn@hpe.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
+cc: linux-acpi@vger.kernel.org
+---
+ drivers/acpi/apei/einj.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+Index: linux/drivers/acpi/apei/einj.c
+===================================================================
+--- linux.orig/drivers/acpi/apei/einj.c
++++ linux/drivers/acpi/apei/einj.c
+@@ -518,6 +518,9 @@ static int einj_error_inject(u32 type, u
+ int rc;
+ u64 base_addr, size;
+
++ if (kernel_is_locked_down("ACPI error injection"))
++ return -EPERM;
++
+ /* If user manually set "flags", make sure it is legal */
+ if (flags && (flags &
+ ~(SETWA_FLAGS_APICID|SETWA_FLAGS_MEM|SETWA_FLAGS_PCIE_SBDF)))
diff --git a/debian/patches/features/all/lockdown/0020-Prohibit-PCMCIA-CIS-storage-when-the-kernel-is-locke.patch b/debian/patches/features/all/lockdown/0020-Prohibit-PCMCIA-CIS-storage-when-the-kernel-is-locke.patch
new file mode 100644
index 000000000..2ed56ad5b
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0020-Prohibit-PCMCIA-CIS-storage-when-the-kernel-is-locke.patch
@@ -0,0 +1,29 @@
+From: David Howells <dhowells@redhat.com>
+Date: Wed, 8 Nov 2017 15:11:35 +0000
+Subject: [20/29] Prohibit PCMCIA CIS storage when the kernel is locked down
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=18b2dfc74efeafbdbb8f5d4d28da6334b7e1f1ac
+
+Prohibit replacement of the PCMCIA Card Information Structure when the
+kernel is locked down.
+
+Suggested-by: Dominik Brodowski <linux@dominikbrodowski.net>
+Signed-off-by: David Howells <dhowells@redhat.com>
+cc: linux-pcmcia@lists.infradead.org
+---
+ drivers/pcmcia/cistpl.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+Index: linux/drivers/pcmcia/cistpl.c
+===================================================================
+--- linux.orig/drivers/pcmcia/cistpl.c
++++ linux/drivers/pcmcia/cistpl.c
+@@ -1578,6 +1578,9 @@ static ssize_t pccard_store_cis(struct f
+ struct pcmcia_socket *s;
+ int error;
+
++ if (kernel_is_locked_down("Direct PCMCIA CIS storage"))
++ return -EPERM;
++
+ s = to_socket(container_of(kobj, struct device, kobj));
+
+ if (off)
diff --git a/debian/patches/features/all/lockdown/0021-Lock-down-TIOCSSERIAL.patch b/debian/patches/features/all/lockdown/0021-Lock-down-TIOCSSERIAL.patch
new file mode 100644
index 000000000..d906326a9
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0021-Lock-down-TIOCSSERIAL.patch
@@ -0,0 +1,34 @@
+From: David Howells <dhowells@redhat.com>
+Date: Wed, 8 Nov 2017 15:11:35 +0000
+Subject: [21/29] Lock down TIOCSSERIAL
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=f5fdeda0622ca040961521819794193777a03e8a
+
+Lock down TIOCSSERIAL as that can be used to change the ioport and irq
+settings on a serial port. This only appears to be an issue for the serial
+drivers that use the core serial code. All other drivers seem to either
+ignore attempts to change port/irq or give an error.
+
+Reported-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: David Howells <dhowells@redhat.com>
+cc: Jiri Slaby <jslaby@suse.com>
+---
+ drivers/tty/serial/serial_core.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+Index: linux/drivers/tty/serial/serial_core.c
+===================================================================
+--- linux.orig/drivers/tty/serial/serial_core.c
++++ linux/drivers/tty/serial/serial_core.c
+@@ -850,6 +850,12 @@ static int uart_set_info(struct tty_stru
+ new_flags = (__force upf_t)new_info->flags;
+ old_custom_divisor = uport->custom_divisor;
+
++ if ((change_port || change_irq) &&
++ kernel_is_locked_down("Using TIOCSSERIAL to change device addresses, irqs and dma channels")) {
++ retval = -EPERM;
++ goto exit;
++ }
++
+ if (!capable(CAP_SYS_ADMIN)) {
+ retval = -EPERM;
+ if (change_irq || change_port ||
diff --git a/debian/patches/features/all/lockdown/0022-Lock-down-module-params-that-specify-hardware-parame.patch b/debian/patches/features/all/lockdown/0022-Lock-down-module-params-that-specify-hardware-parame.patch
new file mode 100644
index 000000000..3582e3106
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0022-Lock-down-module-params-that-specify-hardware-parame.patch
@@ -0,0 +1,80 @@
+From: David Howells <dhowells@redhat.com>
+Date: Wed, 8 Nov 2017 15:11:36 +0000
+Subject: [22/29] Lock down module params that specify hardware parameters (eg.
+ ioport)
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=d20a28efda02a7ce70b943c15246ea2f07e780f4
+
+Provided an annotation for module parameters that specify hardware
+parameters (such as io ports, iomem addresses, irqs, dma channels, fixed
+dma buffers and other types).
+
+Suggested-by: Alan Cox <gnomes@lxorguk.ukuu.org.uk>
+Signed-off-by: David Howells <dhowells@redhat.com>
+---
+ kernel/params.c | 26 +++++++++++++++++++++-----
+ 1 file changed, 21 insertions(+), 5 deletions(-)
+
+Index: linux/kernel/params.c
+===================================================================
+--- linux.orig/kernel/params.c
++++ linux/kernel/params.c
+@@ -108,13 +108,19 @@ bool parameq(const char *a, const char *
+ return parameqn(a, b, strlen(a)+1);
+ }
+
+-static void param_check_unsafe(const struct kernel_param *kp)
++static bool param_check_unsafe(const struct kernel_param *kp,
++ const char *doing)
+ {
+ if (kp->flags & KERNEL_PARAM_FL_UNSAFE) {
+ pr_notice("Setting dangerous option %s - tainting kernel\n",
+ kp->name);
+ add_taint(TAINT_USER, LOCKDEP_STILL_OK);
+ }
++
++ if (kp->flags & KERNEL_PARAM_FL_HWPARAM &&
++ kernel_is_locked_down("Command line-specified device addresses, irqs and dma channels"))
++ return false;
++ return true;
+ }
+
+ static int parse_one(char *param,
+@@ -144,8 +150,10 @@ static int parse_one(char *param,
+ pr_debug("handling %s with %p\n", param,
+ params[i].ops->set);
+ kernel_param_lock(params[i].mod);
+- param_check_unsafe(&params[i]);
+- err = params[i].ops->set(val, &params[i]);
++ if (param_check_unsafe(&params[i], doing))
++ err = params[i].ops->set(val, &params[i]);
++ else
++ err = -EPERM;
+ kernel_param_unlock(params[i].mod);
+ return err;
+ }
+@@ -553,6 +561,12 @@ static ssize_t param_attr_show(struct mo
+ return count;
+ }
+
++#ifdef CONFIG_MODULES
++#define mod_name(mod) (mod)->name
++#else
++#define mod_name(mod) "unknown"
++#endif
++
+ /* sysfs always hands a nul-terminated string in buf. We rely on that. */
+ static ssize_t param_attr_store(struct module_attribute *mattr,
+ struct module_kobject *mk,
+@@ -565,8 +579,10 @@ static ssize_t param_attr_store(struct m
+ return -EPERM;
+
+ kernel_param_lock(mk->mod);
+- param_check_unsafe(attribute->param);
+- err = attribute->param->ops->set(buf, attribute->param);
++ if (param_check_unsafe(attribute->param, mod_name(mk->mod)))
++ err = attribute->param->ops->set(buf, attribute->param);
++ else
++ err = -EPERM;
+ kernel_param_unlock(mk->mod);
+ if (!err)
+ return len;
diff --git a/debian/patches/features/all/lockdown/0023-x86-mmiotrace-Lock-down-the-testmmiotrace-module.patch b/debian/patches/features/all/lockdown/0023-x86-mmiotrace-Lock-down-the-testmmiotrace-module.patch
new file mode 100644
index 000000000..47edb3442
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0023-x86-mmiotrace-Lock-down-the-testmmiotrace-module.patch
@@ -0,0 +1,33 @@
+From: David Howells <dhowells@redhat.com>
+Date: Wed, 8 Nov 2017 15:11:36 +0000
+Subject: [23/29] x86/mmiotrace: Lock down the testmmiotrace module
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=20af3be0bcf6a78e3632770561fba6531dd3b444
+
+The testmmiotrace module shouldn't be permitted when the kernel is locked
+down as it can be used to arbitrarily read and write MMIO space.
+
+Suggested-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: David Howells <dhowells@redhat.com
+cc: Thomas Gleixner <tglx@linutronix.de>
+cc: Steven Rostedt <rostedt@goodmis.org>
+cc: Ingo Molnar <mingo@kernel.org>
+cc: "H. Peter Anvin" <hpa@zytor.com>
+cc: x86@kernel.org
+---
+ arch/x86/mm/testmmiotrace.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+Index: linux/arch/x86/mm/testmmiotrace.c
+===================================================================
+--- linux.orig/arch/x86/mm/testmmiotrace.c
++++ linux/arch/x86/mm/testmmiotrace.c
+@@ -115,6 +115,9 @@ static int __init init(void)
+ {
+ unsigned long size = (read_far) ? (8 << 20) : (16 << 10);
+
++ if (kernel_is_locked_down("MMIO trace testing"))
++ return -EPERM;
++
+ if (mmio_address == 0) {
+ pr_err("you have to use the module argument mmio_address.\n");
+ pr_err("DO NOT LOAD THIS MODULE UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!\n");
diff --git a/debian/patches/features/all/lockdown/0024-debugfs-Disallow-use-of-debugfs-files-when-the-kerne.patch b/debian/patches/features/all/lockdown/0024-debugfs-Disallow-use-of-debugfs-files-when-the-kerne.patch
new file mode 100644
index 000000000..2dd3fa020
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0024-debugfs-Disallow-use-of-debugfs-files-when-the-kerne.patch
@@ -0,0 +1,53 @@
+From: David Howells <dhowells@redhat.com>
+Date: Wed, 8 Nov 2017 15:11:36 +0000
+Subject: [24/29] debugfs: Disallow use of debugfs files when the kernel is
+ locked down
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=118cc5e1c27e1a75640cf2379c1299e12791063e
+
+Disallow opening of debugfs files when the kernel is locked down as various
+drivers give raw access to hardware through debugfs.
+
+Accesses to tracefs should use /sys/kernel/tracing/ rather than
+/sys/kernel/debug/tracing/. Possibly a symlink should be emplaced.
+
+Normal device interaction should be done through configfs or a miscdev, not
+debugfs.
+
+Note that this makes it unnecessary to specifically lock down show_dsts(),
+show_devs() and show_call() in the asus-wmi driver.
+
+Signed-off-by: David Howells <dhowells@redhat.com>
+cc: Andy Shevchenko <andy.shevchenko@gmail.com>
+cc: acpi4asus-user@lists.sourceforge.net
+cc: platform-driver-x86@vger.kernel.org
+cc: Matthew Garrett <matthew.garrett@nebula.com>
+cc: Thomas Gleixner <tglx@linutronix.de>
+[bwh: Forward-ported to 4.15]
+---
+ fs/debugfs/file.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+Index: linux/fs/debugfs/file.c
+===================================================================
+--- linux.orig/fs/debugfs/file.c
++++ linux/fs/debugfs/file.c
+@@ -142,6 +142,9 @@ static int open_proxy_open(struct inode
+ const struct file_operations *real_fops = NULL;
+ int r;
+
++ if (kernel_is_locked_down("debugfs"))
++ return -EPERM;
++
+ r = debugfs_file_get(dentry);
+ if (r)
+ return r == -EIO ? -ENOENT : r;
+@@ -267,6 +270,9 @@ static int full_proxy_open(struct inode
+ struct file_operations *proxy_fops = NULL;
+ int r;
+
++ if (kernel_is_locked_down("debugfs"))
++ return -EPERM;
++
+ r = debugfs_file_get(dentry);
+ if (r)
+ return r == -EIO ? -ENOENT : r;
diff --git a/debian/patches/features/all/lockdown/0025-Lock-down-proc-kcore.patch b/debian/patches/features/all/lockdown/0025-Lock-down-proc-kcore.patch
new file mode 100644
index 000000000..58df9739b
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0025-Lock-down-proc-kcore.patch
@@ -0,0 +1,27 @@
+From: David Howells <dhowells@redhat.com>
+Date: Wed, 8 Nov 2017 15:11:37 +0000
+Subject: [25/29] Lock down /proc/kcore
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=797378dc4498207c3abc1101cfdc9ef2581d8c71
+
+Disallow access to /proc/kcore when the kernel is locked down to prevent
+access to cryptographic data.
+
+Signed-off-by: David Howells <dhowells@redhat.com>
+Reviewed-by: James Morris <james.l.morris@oracle.com>
+---
+ fs/proc/kcore.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+Index: linux/fs/proc/kcore.c
+===================================================================
+--- linux.orig/fs/proc/kcore.c
++++ linux/fs/proc/kcore.c
+@@ -545,6 +545,8 @@ out:
+
+ static int open_kcore(struct inode *inode, struct file *filp)
+ {
++ if (kernel_is_locked_down("/proc/kcore"))
++ return -EPERM;
+ if (!capable(CAP_SYS_RAWIO))
+ return -EPERM;
+
diff --git a/debian/patches/features/all/lockdown/0026-Lock-down-kprobes.patch b/debian/patches/features/all/lockdown/0026-Lock-down-kprobes.patch
new file mode 100644
index 000000000..e7d9f0b4e
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0026-Lock-down-kprobes.patch
@@ -0,0 +1,29 @@
+From: David Howells <dhowells@redhat.com>
+Date: Wed, 8 Nov 2017 16:14:12 +0000
+Subject: [26/29] Lock down kprobes
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=cfacbbe6ef95336d99817fb8063c19bd36dfaa3d
+
+Disallow the creation of kprobes when the kernel is locked down by
+preventing their registration. This prevents kprobes from being used to
+access kernel memory, either to make modifications or to steal crypto data.
+
+Reported-by: Alexei Starovoitov <alexei.starovoitov@gmail.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+---
+ kernel/kprobes.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+Index: linux/kernel/kprobes.c
+===================================================================
+--- linux.orig/kernel/kprobes.c
++++ linux/kernel/kprobes.c
+@@ -1548,6 +1548,9 @@ int register_kprobe(struct kprobe *p)
+ struct module *probed_mod;
+ kprobe_opcode_t *addr;
+
++ if (kernel_is_locked_down("Use of kprobes"))
++ return -EPERM;
++
+ /* Adjust probe address from symbol */
+ addr = kprobe_addr(p);
+ if (IS_ERR(addr))
diff --git a/debian/patches/features/all/lockdown/0027-bpf-Restrict-kernel-image-access-functions-when-the-.patch b/debian/patches/features/all/lockdown/0027-bpf-Restrict-kernel-image-access-functions-when-the-.patch
new file mode 100644
index 000000000..87273834c
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0027-bpf-Restrict-kernel-image-access-functions-when-the-.patch
@@ -0,0 +1,39 @@
+From: David Howells <dhowells@redhat.com>
+Date: Wed, 24 May 2017 14:56:05 +0100
+Subject: [27/29] bpf: Restrict kernel image access functions when the kernel
+ is locked down
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=a13e9f58894129d9fd02fdb81b56ac7590704155
+
+There are some bpf functions can be used to read kernel memory:
+bpf_probe_read, bpf_probe_write_user and bpf_trace_printk. These allow
+private keys in kernel memory (e.g. the hibernation image signing key) to
+be read by an eBPF program and kernel memory to be altered without
+restriction.
+
+Completely prohibit the use of BPF when the kernel is locked down.
+
+Suggested-by: Alexei Starovoitov <alexei.starovoitov@gmail.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+cc: netdev@vger.kernel.org
+cc: Chun-Yi Lee <jlee@suse.com>
+cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>
+[bwh: Adjust context to apply after commit dcab51f19b29
+ "bpf: Expose check_uarg_tail_zero()"]
+---
+ kernel/bpf/syscall.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+Index: linux/kernel/bpf/syscall.c
+===================================================================
+--- linux.orig/kernel/bpf/syscall.c
++++ linux/kernel/bpf/syscall.c
+@@ -2378,6 +2378,9 @@ SYSCALL_DEFINE3(bpf, int, cmd, union bpf
+ if (sysctl_unprivileged_bpf_disabled && !capable(CAP_SYS_ADMIN))
+ return -EPERM;
+
++ if (kernel_is_locked_down("BPF"))
++ return -EPERM;
++
+ err = bpf_check_uarg_tail_zero(uattr, sizeof(attr), size);
+ if (err)
+ return err;
diff --git a/debian/patches/features/all/lockdown/0028-efi-Add-an-EFI_SECURE_BOOT-flag-to-indicate-secure-b.patch b/debian/patches/features/all/lockdown/0028-efi-Add-an-EFI_SECURE_BOOT-flag-to-indicate-secure-b.patch
new file mode 100644
index 000000000..be357055b
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0028-efi-Add-an-EFI_SECURE_BOOT-flag-to-indicate-secure-b.patch
@@ -0,0 +1,152 @@
+From: David Howells <dhowells@redhat.com>
+Date: Wed, 8 Nov 2017 15:11:37 +0000
+Subject: [28/29] efi: Add an EFI_SECURE_BOOT flag to indicate secure boot mode
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=eb4a8603eb727afaeb9c6123eda2eda4b2757bf3
+
+UEFI machines can be booted in Secure Boot mode. Add an EFI_SECURE_BOOT
+flag that can be passed to efi_enabled() to find out whether secure boot is
+enabled.
+
+Move the switch-statement in x86's setup_arch() that inteprets the
+secure_boot boot parameter to generic code and set the bit there.
+
+Suggested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+Signed-off-by: David Howells <dhowells@redhat.com>
+Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+cc: linux-efi@vger.kernel.org
+---
+ arch/x86/kernel/setup.c | 14 +-------------
+ drivers/firmware/efi/Makefile | 1 +
+ drivers/firmware/efi/secureboot.c | 38 ++++++++++++++++++++++++++++++++++++++
+ include/linux/efi.h | 16 ++++++++++------
+ 4 files changed, 50 insertions(+), 19 deletions(-)
+ create mode 100644 drivers/firmware/efi/secureboot.c
+
+Index: linux/arch/x86/kernel/setup.c
+===================================================================
+--- linux.orig/arch/x86/kernel/setup.c
++++ linux/arch/x86/kernel/setup.c
+@@ -1159,19 +1159,7 @@ void __init setup_arch(char **cmdline_p)
+ /* Allocate bigger log buffer */
+ setup_log_buf(1);
+
+- if (efi_enabled(EFI_BOOT)) {
+- switch (boot_params.secure_boot) {
+- case efi_secureboot_mode_disabled:
+- pr_info("Secure boot disabled\n");
+- break;
+- case efi_secureboot_mode_enabled:
+- pr_info("Secure boot enabled\n");
+- break;
+- default:
+- pr_info("Secure boot could not be determined\n");
+- break;
+- }
+- }
++ efi_set_secure_boot(boot_params.secure_boot);
+
+ reserve_initrd();
+
+Index: linux/drivers/firmware/efi/Makefile
+===================================================================
+--- linux.orig/drivers/firmware/efi/Makefile
++++ linux/drivers/firmware/efi/Makefile
+@@ -24,6 +24,7 @@ obj-$(CONFIG_EFI_FAKE_MEMMAP) += fake_m
+ obj-$(CONFIG_EFI_BOOTLOADER_CONTROL) += efibc.o
+ obj-$(CONFIG_EFI_TEST) += test/
+ obj-$(CONFIG_EFI_DEV_PATH_PARSER) += dev-path-parser.o
++obj-$(CONFIG_EFI) += secureboot.o
+ obj-$(CONFIG_APPLE_PROPERTIES) += apple-properties.o
+
+ arm-obj-$(CONFIG_EFI) := arm-init.o arm-runtime.o
+Index: linux/drivers/firmware/efi/secureboot.c
+===================================================================
+--- /dev/null
++++ linux/drivers/firmware/efi/secureboot.c
+@@ -0,0 +1,38 @@
++/* Core kernel secure boot support.
++ *
++ * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved.
++ * Written by David Howells (dhowells@redhat.com)
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public Licence
++ * as published by the Free Software Foundation; either version
++ * 2 of the Licence, or (at your option) any later version.
++ */
++
++#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
++
++#include <linux/efi.h>
++#include <linux/kernel.h>
++#include <linux/printk.h>
++
++/*
++ * Decide what to do when UEFI secure boot mode is enabled.
++ */
++void __init efi_set_secure_boot(enum efi_secureboot_mode mode)
++{
++ if (efi_enabled(EFI_BOOT)) {
++ switch (mode) {
++ case efi_secureboot_mode_disabled:
++ pr_info("Secure boot disabled\n");
++ break;
++ case efi_secureboot_mode_enabled:
++ set_bit(EFI_SECURE_BOOT, &efi.flags);
++ pr_info("Secure boot enabled\n");
++ break;
++ default:
++ pr_warning("Secure boot could not be determined (mode %u)\n",
++ mode);
++ break;
++ }
++ }
++}
+Index: linux/include/linux/efi.h
+===================================================================
+--- linux.orig/include/linux/efi.h
++++ linux/include/linux/efi.h
+@@ -1152,6 +1152,14 @@ extern int __init efi_setup_pcdp_console
+ #define EFI_DBG 8 /* Print additional debug info at runtime */
+ #define EFI_NX_PE_DATA 9 /* Can runtime data regions be mapped non-executable? */
+ #define EFI_MEM_ATTR 10 /* Did firmware publish an EFI_MEMORY_ATTRIBUTES table? */
++#define EFI_SECURE_BOOT 11 /* Are we in Secure Boot mode? */
++
++enum efi_secureboot_mode {
++ efi_secureboot_mode_unset,
++ efi_secureboot_mode_unknown,
++ efi_secureboot_mode_disabled,
++ efi_secureboot_mode_enabled,
++};
+
+ #ifdef CONFIG_EFI
+ /*
+@@ -1164,6 +1172,7 @@ static inline bool efi_enabled(int featu
+ extern void efi_reboot(enum reboot_mode reboot_mode, const char *__unused);
+
+ extern bool efi_is_table_address(unsigned long phys_addr);
++extern void __init efi_set_secure_boot(enum efi_secureboot_mode mode);
+ #else
+ static inline bool efi_enabled(int feature)
+ {
+@@ -1182,6 +1191,7 @@ static inline bool efi_is_table_address(
+ {
+ return false;
+ }
++static inline void efi_set_secure_boot(enum efi_secureboot_mode mode) {}
+ #endif
+
+ extern int efi_status_to_err(efi_status_t status);
+@@ -1572,12 +1582,6 @@ static inline bool efi_runtime_disabled(
+
+ extern void efi_call_virt_check_flags(unsigned long flags, const char *call);
+
+-enum efi_secureboot_mode {
+- efi_secureboot_mode_unset,
+- efi_secureboot_mode_unknown,
+- efi_secureboot_mode_disabled,
+- efi_secureboot_mode_enabled,
+-};
+ enum efi_secureboot_mode efi_get_secureboot(efi_system_table_t *sys_table);
+
+ #ifdef CONFIG_RESET_ATTACK_MITIGATION
diff --git a/debian/patches/features/all/lockdown/0029-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch b/debian/patches/features/all/lockdown/0029-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch
new file mode 100644
index 000000000..9ab10afb3
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0029-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch
@@ -0,0 +1,83 @@
+From: David Howells <dhowells@redhat.com>
+Date: Wed, 8 Nov 2017 15:11:37 +0000
+Subject: [29/29] efi: Lock down the kernel if booted in secure boot mode
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=a364bd945ffc141a7b17cb331bda0d8ad68f7e72
+
+UEFI Secure Boot provides a mechanism for ensuring that the firmware will
+only load signed bootloaders and kernels. Certain use cases may also
+require that all kernel modules also be signed. Add a configuration option
+that to lock down the kernel - which includes requiring validly signed
+modules - if the kernel is secure-booted.
+
+Signed-off-by: David Howells <dhowells@redhat.com>
+Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+cc: linux-efi@vger.kernel.org
+---
+ arch/x86/kernel/setup.c | 6 ++++--
+ security/Kconfig | 14 ++++++++++++++
+ security/lock_down.c | 1 +
+ 3 files changed, 19 insertions(+), 2 deletions(-)
+
+--- a/arch/x86/kernel/setup.c
++++ b/arch/x86/kernel/setup.c
+@@ -65,6 +65,7 @@
+ #include <linux/dma-mapping.h>
+ #include <linux/ctype.h>
+ #include <linux/uaccess.h>
++#include <linux/security.h>
+
+ #include <linux/percpu.h>
+ #include <linux/crash_dump.h>
+@@ -1005,6 +1006,9 @@ void __init setup_arch(char **cmdline_p)
+ if (efi_enabled(EFI_BOOT))
+ efi_init();
+
++ efi_set_secure_boot(boot_params.secure_boot);
++ init_lockdown();
++
+ dmi_scan_machine();
+ dmi_memdev_walk();
+ dmi_set_dump_stack_arch_desc();
+@@ -1159,8 +1163,6 @@ void __init setup_arch(char **cmdline_p)
+ /* Allocate bigger log buffer */
+ setup_log_buf(1);
+
+- efi_set_secure_boot(boot_params.secure_boot);
+-
+ reserve_initrd();
+
+ acpi_table_upgrade();
+--- a/security/Kconfig
++++ b/security/Kconfig
+@@ -247,6 +247,21 @@ config LOCK_DOWN_KERNEL
+ turns off various features that might otherwise allow access to the
+ kernel image (eg. setting MSR registers).
+
++config LOCK_DOWN_IN_EFI_SECURE_BOOT
++ bool "Lock down the kernel in EFI Secure Boot mode"
++ default n
++ select LOCK_DOWN_KERNEL
++ depends on EFI
++ help
++ UEFI Secure Boot provides a mechanism for ensuring that the firmware
++ will only load signed bootloaders and kernels. Secure boot mode may
++ be determined from EFI variables provided by the system firmware if
++ not indicated by the boot parameters.
++
++ Enabling this option turns on results in kernel lockdown being
++ triggered if EFI Secure Boot is set.
++
++
+ source security/selinux/Kconfig
+ source security/smack/Kconfig
+ source security/tomoyo/Kconfig
+--- a/security/lock_down.c
++++ b/security/lock_down.c
+@@ -11,6 +11,7 @@
+
+ #include <linux/security.h>
+ #include <linux/export.h>
++#include <linux/efi.h>
+
+ static __ro_after_init bool kernel_locked_down;
+
diff --git a/debian/patches/features/all/lockdown/0032-efi-Restrict-efivar_ssdt_load-when-the-kernel-is-loc.patch b/debian/patches/features/all/lockdown/0032-efi-Restrict-efivar_ssdt_load-when-the-kernel-is-loc.patch
new file mode 100644
index 000000000..bb2f4f60b
--- /dev/null
+++ b/debian/patches/features/all/lockdown/0032-efi-Restrict-efivar_ssdt_load-when-the-kernel-is-loc.patch
@@ -0,0 +1,36 @@
+From: Matthew Garrett <matthewgarrett@google.com>
+Date: Wed, 31 Jul 2019 15:16:16 -0700
+Subject: efi: Restrict efivar_ssdt_load when the kernel is locked down
+Origin: https://patchwork.kernel.org/patch/11069659/
+
+efivar_ssdt_load allows the kernel to import arbitrary ACPI code from an
+EFI variable, which gives arbitrary code execution in ring 0. Prevent
+that when the kernel is locked down.
+
+Signed-off-by: Matthew Garrett <mjg59@google.com>
+Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+Reviewed-by: Kees Cook <keescook@chromium.org>
+Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+Cc: linux-efi@vger.kernel.org
+[bwh: Convert back to the non-LSM lockdown API]
+---
+--- a/drivers/firmware/efi/efi.c
++++ b/drivers/firmware/efi/efi.c
+@@ -30,6 +30,7 @@
+ #include <linux/acpi.h>
+ #include <linux/ucs2_string.h>
+ #include <linux/memblock.h>
++#include <linux/security.h>
+
+ #include <asm/early_ioremap.h>
+
+@@ -241,6 +242,9 @@ static void generic_ops_unregister(void)
+ static char efivar_ssdt[EFIVAR_SSDT_NAME_MAX] __initdata;
+ static int __init efivar_ssdt_setup(char *str)
+ {
++ if (kernel_is_locked_down("ACPI tables"))
++ return -EPERM;
++
+ if (strlen(str) < sizeof(efivar_ssdt))
+ memcpy(efivar_ssdt, str, strlen(str));
+ else
diff --git a/debian/patches/features/all/lockdown/ACPI-configfs-Disallow-loading-ACPI-tables-when-lock.patch b/debian/patches/features/all/lockdown/ACPI-configfs-Disallow-loading-ACPI-tables-when-lock.patch
new file mode 100644
index 000000000..4970a4bd4
--- /dev/null
+++ b/debian/patches/features/all/lockdown/ACPI-configfs-Disallow-loading-ACPI-tables-when-lock.patch
@@ -0,0 +1,44 @@
+From: "Jason A. Donenfeld" <Jason@zx2c4.com>
+Date: Mon, 15 Jun 2020 04:43:32 -0600
+Subject: ACPI: configfs: Disallow loading ACPI tables when locked down
+Origin: https://git.kernel.org/linus/75b0cea7bf307f362057cc778efe89af4c615354
+Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2020-15780
+
+Like other vectors already patched, this one here allows the root
+user to load ACPI tables, which enables arbitrary physical address
+writes, which in turn makes it possible to disable lockdown.
+
+Prevents this by checking the lockdown status before allowing a new
+ACPI table to be installed. The link in the trailer shows a PoC of
+how this might be used.
+
+Link: https://git.zx2c4.com/american-unsigned-language/tree/american-unsigned-language-2.sh
+Cc: 5.4+ <stable@vger.kernel.org> # 5.4+
+Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+[Salvatore Bonaccorso: Backport to v4.19.y: Use kernel_is_locked_down instead
+of security_locked_down]
+---
+ drivers/acpi/acpi_configfs.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+--- a/drivers/acpi/acpi_configfs.c
++++ b/drivers/acpi/acpi_configfs.c
+@@ -14,6 +14,7 @@
+ #include <linux/module.h>
+ #include <linux/configfs.h>
+ #include <linux/acpi.h>
++#include <linux/security.h>
+
+ #include "acpica/accommon.h"
+ #include "acpica/actables.h"
+@@ -33,6 +34,9 @@ static ssize_t acpi_table_aml_write(stru
+ struct acpi_table *table;
+ int ret;
+
++ if (kernel_is_locked_down("Modifying ACPI tables"))
++ return -EPERM;
++
+ table = container_of(cfg, struct acpi_table, cfg);
+
+ if (table->header) {
diff --git a/debian/patches/features/all/lockdown/arm64-add-kernel-config-option-to-lock-down-when.patch b/debian/patches/features/all/lockdown/arm64-add-kernel-config-option-to-lock-down-when.patch
new file mode 100644
index 000000000..beb09c3e6
--- /dev/null
+++ b/debian/patches/features/all/lockdown/arm64-add-kernel-config-option-to-lock-down-when.patch
@@ -0,0 +1,97 @@
+From: Linn Crosetto <linn@hpe.com>
+Date: Tue, 30 Aug 2016 11:54:38 -0600
+Subject: arm64: add kernel config option to lock down when in Secure Boot mode
+Bug-Debian: https://bugs.debian.org/831827
+Forwarded: no
+
+Add a kernel configuration option to lock down the kernel, to restrict
+userspace's ability to modify the running kernel when UEFI Secure Boot is
+enabled. Based on the x86 patch by Matthew Garrett.
+
+Determine the state of Secure Boot in the EFI stub and pass this to the
+kernel using the FDT.
+
+Signed-off-by: Linn Crosetto <linn@hpe.com>
+[bwh: Forward-ported to 4.10: adjust context]
+[Lukas Wunner: Forward-ported to 4.11: drop parts applied upstream]
+[bwh: Forward-ported to 4.15 and lockdown patch set:
+ - Pass result of efi_get_secureboot() in stub through to
+ efi_set_secure_boot() in main kernel
+ - Use lockdown API and naming]
+[bwh: Forward-ported to 4.19.3: adjust context in update_fdt()]
+[dannf: Moved init_lockdown() call after uefi_init(), fixing SB detection]
+---
+ arch/arm64/Kconfig | 13 +++++++++++++
+ drivers/firmware/efi/arm-init.c | 7 +++++++
+ drivers/firmware/efi/efi.c | 3 ++-
+ drivers/firmware/efi/libstub/arm-stub.c | 2 +-
+ drivers/firmware/efi/libstub/efistub.h | 1 +
+ drivers/firmware/efi/libstub/fdt.c | 7 +++++++
+ include/linux/efi.h | 1 +
+ 7 files changed, 32 insertions(+), 2 deletions(-)
+
+Index: linux/drivers/firmware/efi/arm-init.c
+===================================================================
+--- linux.orig/drivers/firmware/efi/arm-init.c
++++ linux/drivers/firmware/efi/arm-init.c
+@@ -21,6 +21,7 @@
+ #include <linux/of_fdt.h>
+ #include <linux/platform_device.h>
+ #include <linux/screen_info.h>
++#include <linux/security.h>
+
+ #include <asm/efi.h>
+
+@@ -257,6 +258,9 @@ void __init efi_init(void)
+ return;
+ }
+
++ efi_set_secure_boot(params.secure_boot);
++ init_lockdown();
++
+ reserve_regions();
+ efi_esrt_init();
+
+Index: linux/drivers/firmware/efi/efi.c
+===================================================================
+--- linux.orig/drivers/firmware/efi/efi.c
++++ linux/drivers/firmware/efi/efi.c
+@@ -660,7 +660,8 @@ static __initdata struct params fdt_para
+ UEFI_PARAM("MemMap Address", "linux,uefi-mmap-start", mmap),
+ UEFI_PARAM("MemMap Size", "linux,uefi-mmap-size", mmap_size),
+ UEFI_PARAM("MemMap Desc. Size", "linux,uefi-mmap-desc-size", desc_size),
+- UEFI_PARAM("MemMap Desc. Version", "linux,uefi-mmap-desc-ver", desc_ver)
++ UEFI_PARAM("MemMap Desc. Version", "linux,uefi-mmap-desc-ver", desc_ver),
++ UEFI_PARAM("Secure Boot Enabled", "linux,uefi-secure-boot", secure_boot)
+ };
+
+ static __initdata struct params xen_fdt_params[] = {
+Index: linux/drivers/firmware/efi/libstub/fdt.c
+===================================================================
+--- linux.orig/drivers/firmware/efi/libstub/fdt.c
++++ linux/drivers/firmware/efi/libstub/fdt.c
+@@ -159,6 +159,12 @@ static efi_status_t update_fdt(efi_syste
+ }
+ }
+
++ fdt_val32 = cpu_to_fdt32(efi_get_secureboot(sys_table));
++ status = fdt_setprop(fdt, node, "linux,uefi-secure-boot",
++ &fdt_val32, sizeof(fdt_val32));
++ if (status)
++ goto fdt_set_fail;
++
+ /* shrink the FDT back to its minimum size */
+ fdt_pack(fdt);
+
+Index: linux/include/linux/efi.h
+===================================================================
+--- linux.orig/include/linux/efi.h
++++ linux/include/linux/efi.h
+@@ -786,6 +786,7 @@ struct efi_fdt_params {
+ u32 mmap_size;
+ u32 desc_size;
+ u32 desc_ver;
++ u32 secure_boot;
+ };
+
+ typedef struct {
diff --git a/debian/patches/features/all/lockdown/enable-cold-boot-attack-mitigation.patch b/debian/patches/features/all/lockdown/enable-cold-boot-attack-mitigation.patch
new file mode 100644
index 000000000..7a3b8e9bb
--- /dev/null
+++ b/debian/patches/features/all/lockdown/enable-cold-boot-attack-mitigation.patch
@@ -0,0 +1,50 @@
+From: Matthew Garrett <mjg59@coreos.com>
+Date: Tue, 12 Jan 2016 12:51:27 -0800
+Subject: [18/18] Enable cold boot attack mitigation
+Origin: https://github.com/mjg59/linux/commit/02d999574936dd234a508c0112a0200c135a5c34
+
+[Lukas Wunner: Forward-ported to 4.11: adjust context]
+---
+ arch/x86/boot/compressed/eboot.c | 22 ++++++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+Index: linux/arch/x86/boot/compressed/eboot.c
+===================================================================
+--- linux.orig/arch/x86/boot/compressed/eboot.c
++++ linux/arch/x86/boot/compressed/eboot.c
+@@ -372,6 +372,22 @@ void setup_graphics(struct boot_params *
+ }
+ }
+
++#define MEMORY_ONLY_RESET_CONTROL_GUID \
++ EFI_GUID (0xe20939be, 0x32d4, 0x41be, 0xa1, 0x50, 0x89, 0x7f, 0x85, 0xd4, 0x98, 0x29)
++
++static void enable_reset_attack_mitigation(void)
++{
++ u8 val = 1;
++ efi_guid_t var_guid = MEMORY_ONLY_RESET_CONTROL_GUID;
++
++ /* Ignore the return value here - there's not really a lot we can do */
++ efi_early->call((unsigned long)sys_table->runtime->set_variable,
++ L"MemoryOverwriteRequestControl", &var_guid,
++ EFI_VARIABLE_NON_VOLATILE |
++ EFI_VARIABLE_BOOTSERVICE_ACCESS |
++ EFI_VARIABLE_RUNTIME_ACCESS, sizeof(val), val);
++}
++
+ /*
+ * Because the x86 boot code expects to be passed a boot_params we
+ * need to create one ourselves (usually the bootloader would create
+@@ -783,6 +799,12 @@ efi_main(struct efi_config *c, struct bo
+ efi_parse_options((char *)cmdline_paddr);
+
+ /*
++ * Ask the firmware to clear memory if we don't have a clean
++ * shutdown
++ */
++ enable_reset_attack_mitigation();
++
++ /*
+ * If the boot loader gave us a value for secure_boot then we use that,
+ * otherwise we ask the BIOS.
+ */
diff --git a/debian/patches/features/all/lockdown/lockdown-refer-to-debian-wiki-until-manual-page-exists.patch b/debian/patches/features/all/lockdown/lockdown-refer-to-debian-wiki-until-manual-page-exists.patch
new file mode 100644
index 000000000..586be8cab
--- /dev/null
+++ b/debian/patches/features/all/lockdown/lockdown-refer-to-debian-wiki-until-manual-page-exists.patch
@@ -0,0 +1,34 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Sun, 21 Apr 2019 00:17:13 +0100
+Subject: lockdown: Refer to Debian wiki until manual page exists
+Forwarded: not-needed
+
+The lockdown denial log message currently refers to a
+"kernel_lockdown.7" manual page, which is supposed to document it.
+That manual page hasn't been accepted by the man-pages project and
+doesn't even seem to have been submitted yet. For now, refer to the
+Debian wiki.
+
+---
+Index: linux/security/lock_down.c
+===================================================================
+--- linux.orig/security/lock_down.c
++++ linux/security/lock_down.c
+@@ -28,7 +28,7 @@ static void __init lock_kernel_down(cons
+ {
+ if (!kernel_locked_down) {
+ kernel_locked_down = true;
+- pr_notice("Kernel is locked down from %s; see man kernel_lockdown.7\n",
++ pr_notice("Kernel is locked down from %s; see https://wiki.debian.org/SecureBoot\n",
+ where);
+ }
+ }
+@@ -60,7 +60,7 @@ void __init init_lockdown(void)
+ bool __kernel_is_locked_down(const char *what, bool first)
+ {
+ if (what && first && kernel_locked_down)
+- pr_notice("Lockdown: %s is restricted; see man kernel_lockdown.7\n",
++ pr_notice("Lockdown: %s is restricted; see https://wiki.debian.org/SecureBoot\n",
+ what);
+ return kernel_locked_down;
+ }
diff --git a/debian/patches/features/all/lockdown/mtd-disable-slram-and-phram-when-locked-down.patch b/debian/patches/features/all/lockdown/mtd-disable-slram-and-phram-when-locked-down.patch
new file mode 100644
index 000000000..f02392f10
--- /dev/null
+++ b/debian/patches/features/all/lockdown/mtd-disable-slram-and-phram-when-locked-down.patch
@@ -0,0 +1,41 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Fri, 03 Jun 2016 00:48:39 +0100
+Subject: mtd: Disable slram and phram when locked down
+Forwarded: no
+
+The slram and phram drivers both allow mapping regions of physical
+address space such that they can then be read and written by userland
+through the MTD interface. This is probably usable to manipulate
+hardware into overwriting kernel code on many systems. Prevent that
+if locked down.
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+Index: linux/drivers/mtd/devices/phram.c
+===================================================================
+--- linux.orig/drivers/mtd/devices/phram.c
++++ linux/drivers/mtd/devices/phram.c
+@@ -219,6 +219,9 @@ static int phram_setup(const char *val)
+ uint64_t len;
+ int i, ret;
+
++ if (kernel_is_locked_down("Command line-specified device addresses"))
++ return -EPERM;
++
+ if (strnlen(val, sizeof(buf)) >= sizeof(buf))
+ parse_err("parameter too long\n");
+
+Index: linux/drivers/mtd/devices/slram.c
+===================================================================
+--- linux.orig/drivers/mtd/devices/slram.c
++++ linux/drivers/mtd/devices/slram.c
+@@ -226,6 +226,9 @@ static int parse_cmdline(char *devname,
+ unsigned long devstart;
+ unsigned long devlength;
+
++ if (kernel_is_locked_down("Command line-specified device addresses"))
++ return -EPERM;
++
+ if ((!devname) || (!szstart) || (!szlength)) {
+ unregister_devices();
+ return(-EINVAL);
diff --git a/debian/patches/features/all/security-perf-allow-further-restriction-of-perf_event_open.patch b/debian/patches/features/all/security-perf-allow-further-restriction-of-perf_event_open.patch
new file mode 100644
index 000000000..22cd1283a
--- /dev/null
+++ b/debian/patches/features/all/security-perf-allow-further-restriction-of-perf_event_open.patch
@@ -0,0 +1,81 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Mon, 11 Jan 2016 15:23:55 +0000
+Subject: security,perf: Allow further restriction of perf_event_open
+Forwarded: https://lkml.org/lkml/2016/1/11/587
+
+When kernel.perf_event_open is set to 3 (or greater), disallow all
+access to performance events by users without CAP_SYS_ADMIN.
+Add a Kconfig symbol CONFIG_SECURITY_PERF_EVENTS_RESTRICT that
+makes this value the default.
+
+This is based on a similar feature in grsecurity
+(CONFIG_GRKERNSEC_PERF_HARDEN). This version doesn't include making
+the variable read-only. It also allows enabling further restriction
+at run-time regardless of whether the default is changed.
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+Index: linux/include/linux/perf_event.h
+===================================================================
+--- linux.orig/include/linux/perf_event.h
++++ linux/include/linux/perf_event.h
+@@ -1189,6 +1189,11 @@ extern int perf_cpu_time_max_percent_han
+ int perf_event_max_stack_handler(struct ctl_table *table, int write,
+ void __user *buffer, size_t *lenp, loff_t *ppos);
+
++static inline bool perf_paranoid_any(void)
++{
++ return sysctl_perf_event_paranoid > 2;
++}
++
+ static inline bool perf_paranoid_tracepoint_raw(void)
+ {
+ return sysctl_perf_event_paranoid > -1;
+Index: linux/kernel/events/core.c
+===================================================================
+--- linux.orig/kernel/events/core.c
++++ linux/kernel/events/core.c
+@@ -397,8 +397,13 @@ static cpumask_var_t perf_online_mask;
+ * 0 - disallow raw tracepoint access for unpriv
+ * 1 - disallow cpu events for unpriv
+ * 2 - disallow kernel profiling for unpriv
++ * 3 - disallow all unpriv perf event use
+ */
++#ifdef CONFIG_SECURITY_PERF_EVENTS_RESTRICT
++int sysctl_perf_event_paranoid __read_mostly = 3;
++#else
+ int sysctl_perf_event_paranoid __read_mostly = 2;
++#endif
+
+ /* Minimum for 512 kiB + 1 user control page */
+ int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */
+@@ -10485,6 +10490,9 @@ SYSCALL_DEFINE5(perf_event_open,
+ if (flags & ~PERF_FLAG_ALL)
+ return -EINVAL;
+
++ if (perf_paranoid_any() && !capable(CAP_SYS_ADMIN))
++ return -EACCES;
++
+ err = perf_copy_attr(attr_uptr, &attr);
+ if (err)
+ return err;
+Index: linux/security/Kconfig
+===================================================================
+--- linux.orig/security/Kconfig
++++ linux/security/Kconfig
+@@ -18,6 +18,15 @@ config SECURITY_DMESG_RESTRICT
+
+ If you are unsure how to answer this question, answer N.
+
++config SECURITY_PERF_EVENTS_RESTRICT
++ bool "Restrict unprivileged use of performance events"
++ depends on PERF_EVENTS
++ help
++ If you say Y here, the kernel.perf_event_paranoid sysctl
++ will be set to 3 by default, and no unprivileged use of the
++ perf_event_open syscall will be permitted unless it is
++ changed.
++
+ config SECURITY
+ bool "Enable different security models"
+ depends on SYSFS
diff --git a/debian/patches/features/arm/ARM-dts-add-Raspberry-Pi-3-A-Plus.patch b/debian/patches/features/arm/ARM-dts-add-Raspberry-Pi-3-A-Plus.patch
new file mode 100644
index 000000000..45f7696da
--- /dev/null
+++ b/debian/patches/features/arm/ARM-dts-add-Raspberry-Pi-3-A-Plus.patch
@@ -0,0 +1,211 @@
+From: Stefan Wahren <stefan.wahren@i2se.com>
+Date: Fri, 28 Dec 2018 23:09:26 +0100
+Subject: ARM: dts: add Raspberry Pi 3 A+
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/?id=bd80be88e05792db948bf3567a216743fdea5027
+
+The Raspberry Pi 3 A+ is similar to the Pi 3 B+ but has only 512 MB RAM,
+1 USB 2.0 port and no Ethernet.
+
+Compared to the Raspberry Pi 3 B it isn't possible to control BT_ON and
+WL_ON separately.
+
+Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
+Acked-by: Eric Anholt <eric@anholt.net>
+---
+ arch/arm/boot/dts/Makefile | 1 +
+ arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts | 175 +++++++++++++++++++++
+ 2 files changed, 176 insertions(+)
+ create mode 100644 arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts
+
+Index: debian-kernel/arch/arm/boot/dts/Makefile
+===================================================================
+--- debian-kernel.orig/arch/arm/boot/dts/Makefile
++++ debian-kernel/arch/arm/boot/dts/Makefile
+@@ -79,6 +79,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
+ bcm2835-rpi-a-plus.dtb \
+ bcm2835-rpi-cm1-io1.dtb \
+ bcm2836-rpi-2-b.dtb \
++ bcm2837-rpi-3-a-plus.dtb \
+ bcm2837-rpi-3-b.dtb \
+ bcm2837-rpi-3-b-plus.dtb \
+ bcm2837-rpi-cm3-io3.dtb \
+Index: debian-kernel/arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts
+===================================================================
+--- /dev/null
++++ debian-kernel/arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts
+@@ -0,0 +1,175 @@
++// SPDX-License-Identifier: GPL-2.0
++/dts-v1/;
++#include "bcm2837.dtsi"
++#include "bcm2836-rpi.dtsi"
++#include "bcm283x-rpi-usb-host.dtsi"
++
++/ {
++ compatible = "raspberrypi,3-model-a-plus", "brcm,bcm2837";
++ model = "Raspberry Pi 3 Model A+";
++
++ chosen {
++ /* 8250 auxiliary UART instead of pl011 */
++ stdout-path = "serial1:115200n8";
++ };
++
++ memory {
++ reg = <0 0x20000000>;
++ };
++
++ leds {
++ act {
++ gpios = <&gpio 29 GPIO_ACTIVE_HIGH>;
++ };
++
++ pwr {
++ label = "PWR";
++ gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
++ };
++ };
++};
++
++&firmware {
++ expgpio: gpio {
++ compatible = "raspberrypi,firmware-gpio";
++ gpio-controller;
++ #gpio-cells = <2>;
++ gpio-line-names = "",
++ "BT_WL_ON",
++ "STATUS_LED_R",
++ "",
++ "",
++ "CAM_GPIO0",
++ "CAM_GPIO1",
++ "";
++ status = "okay";
++ };
++};
++
++&gpio {
++ /*
++ * This is mostly based on the official GPU firmware DT blob.
++ *
++ * Legend:
++ * "NC" = not connected (no rail from the SoC)
++ * "FOO" = GPIO line named "FOO" on the schematic
++ * "FOO_N" = GPIO line named "FOO" on schematic, active low
++ */
++ gpio-line-names = "ID_SDA",
++ "ID_SCL",
++ "SDA1",
++ "SCL1",
++ "GPIO_GCLK",
++ "GPIO5",
++ "GPIO6",
++ "SPI_CE1_N",
++ "SPI_CE0_N",
++ "SPI_MISO",
++ "SPI_MOSI",
++ "SPI_SCLK",
++ "GPIO12",
++ "GPIO13",
++ /* Serial port */
++ "TXD1",
++ "RXD1",
++ "GPIO16",
++ "GPIO17",
++ "GPIO18",
++ "GPIO19",
++ "GPIO20",
++ "GPIO21",
++ "GPIO22",
++ "GPIO23",
++ "GPIO24",
++ "GPIO25",
++ "GPIO26",
++ "GPIO27",
++ "HDMI_HPD_N",
++ "STATUS_LED_G",
++ /* Used by BT module */
++ "CTS0",
++ "RTS0",
++ "TXD0",
++ "RXD0",
++ /* Used by Wifi */
++ "SD1_CLK",
++ "SD1_CMD",
++ "SD1_DATA0",
++ "SD1_DATA1",
++ "SD1_DATA2",
++ "SD1_DATA3",
++ "PWM0_OUT",
++ "PWM1_OUT",
++ "", /* GPIO42 */
++ "WIFI_CLK",
++ "SDA0",
++ "SCL0",
++ "SMPS_SCL",
++ "SMPS_SDA",
++ /* Used by SD Card */
++ "SD_CLK_R",
++ "SD_CMD_R",
++ "SD_DATA0_R",
++ "SD_DATA1_R",
++ "SD_DATA2_R",
++ "SD_DATA3_R";
++};
++
++&hdmi {
++ hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
++};
++
++&pwm {
++ pinctrl-names = "default";
++ pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>;
++ status = "okay";
++};
++
++/*
++ * SDHCI is used to control the SDIO for wireless
++ *
++ * WL_REG_ON and BT_REG_ON of the CYW43455 Wifi/BT module are driven
++ * by a single GPIO. We can't give GPIO control to one of the drivers,
++ * otherwise the other part would get unexpectedly disturbed.
++ */
++&sdhci {
++ #address-cells = <1>;
++ #size-cells = <0>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&emmc_gpio34>;
++ status = "okay";
++ bus-width = <4>;
++ non-removable;
++
++ brcmf: wifi@1 {
++ reg = <1>;
++ compatible = "brcm,bcm4329-fmac";
++ };
++};
++
++/* SDHOST is used to drive the SD card */
++&sdhost {
++ pinctrl-names = "default";
++ pinctrl-0 = <&sdhost_gpio48>;
++ status = "okay";
++ bus-width = <4>;
++};
++
++/* uart0 communicates with the BT module */
++&uart0 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32 &gpclk2_gpio43>;
++ status = "okay";
++
++ bluetooth {
++ compatible = "brcm,bcm43438-bt";
++ max-speed = <2000000>;
++ };
++};
++
++/* uart1 is mapped to the pin header */
++&uart1 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&uart1_gpio14>;
++ status = "okay";
++};
diff --git a/debian/patches/features/arm/ARM-dts-add-Raspberry-Pi-Compute-Module-3-and-IO-boa.patch b/debian/patches/features/arm/ARM-dts-add-Raspberry-Pi-Compute-Module-3-and-IO-boa.patch
new file mode 100644
index 000000000..e746f9e1a
--- /dev/null
+++ b/debian/patches/features/arm/ARM-dts-add-Raspberry-Pi-Compute-Module-3-and-IO-boa.patch
@@ -0,0 +1,183 @@
+From: Stefan Wahren <stefan.wahren@i2se.com>
+Date: Mon, 27 Aug 2018 19:31:17 +0200
+Subject: ARM: dts: add Raspberry Pi Compute Module 3 and IO board
+Origin: https://git.kernel.org/linus/a54fe8a6cf66828499b121c3c39c194b43b8ed94
+
+The Raspberry Pi Compute Module 3 (CM3) and the Raspberry Pi
+Compute Module 3 Lite (CM3L) are SoMs which contains a BCM2837 processor,
+1 GB RAM and a GPIO expander. The CM3 has a 4 GB eMMC, but on the CM3L
+the eMMC is unpopulated and it's up to the user to connect their
+own SD/MMC device. The dtsi file is designed to work for both modules.
+There is also a matching carrier board which is called
+Compute Module IO Board V3.
+
+Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
+---
+ arch/arm/boot/dts/Makefile | 1 +
+ arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts | 87 +++++++++++++++++++++++++++++++
+ arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi | 52 ++++++++++++++++++
+ 3 files changed, 140 insertions(+)
+ create mode 100644 arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts
+ create mode 100644 arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi
+
+Index: linux/arch/arm/boot/dts/Makefile
+===================================================================
+--- linux.orig/arch/arm/boot/dts/Makefile
++++ linux/arch/arm/boot/dts/Makefile
+@@ -81,6 +81,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
+ bcm2836-rpi-2-b.dtb \
+ bcm2837-rpi-3-b.dtb \
+ bcm2837-rpi-3-b-plus.dtb \
++ bcm2837-rpi-cm3-io3.dtb \
+ bcm2835-rpi-zero.dtb \
+ bcm2835-rpi-zero-w.dtb
+ dtb-$(CONFIG_ARCH_BCM_5301X) += \
+Index: linux/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts
+===================================================================
+--- /dev/null
++++ linux/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts
+@@ -0,0 +1,87 @@
++// SPDX-License-Identifier: GPL-2.0
++/dts-v1/;
++#include "bcm2837-rpi-cm3.dtsi"
++#include "bcm283x-rpi-usb-host.dtsi"
++
++/ {
++ compatible = "raspberrypi,3-compute-module", "brcm,bcm2837";
++ model = "Raspberry Pi Compute Module 3 IO board V3.0";
++};
++
++&gpio {
++ /*
++ * This is based on the official GPU firmware DT blob.
++ *
++ * Legend:
++ * "NC" = not connected (no rail from the SoC)
++ * "FOO" = GPIO line named "FOO" on the schematic
++ * "FOO_N" = GPIO line named "FOO" on schematic, active low
++ */
++ gpio-line-names = "GPIO0",
++ "GPIO1",
++ "GPIO2",
++ "GPIO3",
++ "GPIO4",
++ "GPIO5",
++ "GPIO6",
++ "GPIO7",
++ "GPIO8",
++ "GPIO9",
++ "GPIO10",
++ "GPIO11",
++ "GPIO12",
++ "GPIO13",
++ "GPIO14",
++ "GPIO15",
++ "GPIO16",
++ "GPIO17",
++ "GPIO18",
++ "GPIO19",
++ "GPIO20",
++ "GPIO21",
++ "GPIO22",
++ "GPIO23",
++ "GPIO24",
++ "GPIO25",
++ "GPIO26",
++ "GPIO27",
++ "GPIO28",
++ "GPIO29",
++ "GPIO30",
++ "GPIO31",
++ "GPIO32",
++ "GPIO33",
++ "GPIO34",
++ "GPIO35",
++ "GPIO36",
++ "GPIO37",
++ "GPIO38",
++ "GPIO39",
++ "GPIO40",
++ "GPIO41",
++ "GPIO42",
++ "GPIO43",
++ "GPIO44",
++ "GPIO45",
++ "GPIO46",
++ "GPIO47",
++ /* Used by eMMC */
++ "SD_CLK_R",
++ "SD_CMD_R",
++ "SD_DATA0_R",
++ "SD_DATA1_R",
++ "SD_DATA2_R",
++ "SD_DATA3_R";
++
++ pinctrl-0 = <&gpioout &alt0>;
++};
++
++&hdmi {
++ hpd-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
++};
++
++&uart0 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&uart0_gpio14>;
++ status = "okay";
++};
+Index: linux/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi
+===================================================================
+--- /dev/null
++++ linux/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi
+@@ -0,0 +1,52 @@
++// SPDX-License-Identifier: GPL-2.0
++/dts-v1/;
++#include "bcm2837.dtsi"
++#include "bcm2835-rpi.dtsi"
++
++/ {
++ memory {
++ reg = <0 0x40000000>;
++ };
++
++ reg_3v3: fixed-regulator {
++ compatible = "regulator-fixed";
++ regulator-name = "3V3";
++ regulator-min-microvolt = <3300000>;
++ regulator-max-microvolt = <3300000>;
++ regulator-always-on;
++ };
++
++ reg_1v8: fixed-regulator {
++ compatible = "regulator-fixed";
++ regulator-name = "1V8";
++ regulator-min-microvolt = <1800000>;
++ regulator-max-microvolt = <1800000>;
++ regulator-always-on;
++ };
++};
++
++&firmware {
++ expgpio: gpio {
++ compatible = "raspberrypi,firmware-gpio";
++ gpio-controller;
++ #gpio-cells = <2>;
++ gpio-line-names = "HDMI_HPD_N",
++ "EMMC_EN_N",
++ "NC",
++ "NC",
++ "NC",
++ "NC",
++ "NC",
++ "NC";
++ status = "okay";
++ };
++};
++
++&sdhost {
++ pinctrl-names = "default";
++ pinctrl-0 = <&sdhost_gpio48>;
++ bus-width = <4>;
++ vmmc-supply = <&reg_3v3>;
++ vqmmc-supply = <&reg_1v8>;
++ status = "okay";
++};
diff --git a/debian/patches/features/arm/ARM-dts-bcm283x-Correct-vchiq-compatible-string.patch b/debian/patches/features/arm/ARM-dts-bcm283x-Correct-vchiq-compatible-string.patch
new file mode 100644
index 000000000..8dfed0cb1
--- /dev/null
+++ b/debian/patches/features/arm/ARM-dts-bcm283x-Correct-vchiq-compatible-string.patch
@@ -0,0 +1,35 @@
+From: Romain Perier <romain.perier@gmail.com>
+Date: Wed, 16 Oct 2019 19:03:00 +0200
+Subject: ARM: dts: bcm283x: Correct vchiq compatible string
+
+This allows VCHIQ to determine the correct cache line size, use the new
+"brcm,bcm2836-vchiq" compatible string on BCM2836. It is based on commit
+499770 ("ARM: dts: bcm283x: Correct vchiq compatible string")
+
+Signed-off-by: Romain Perier <romain.perier@gmail.com>
+---
+ arch/arm/boot/dts/bcm2835-rpi.dtsi | 2 +-
+ arch/arm/boot/dts/bcm2836-rpi.dtsi | 6 ++++++
+ 2 files changed, 7 insertions(+), 1 deletion(-)
+ create mode 100644 arch/arm/boot/dts/bcm2836-rpi.dtsi
+
+--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
++++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
+@@ -30,7 +30,7 @@
+ #power-domain-cells = <1>;
+ };
+
+- mailbox@7e00b840 {
++ vchiq: mmailbox@7e00b840 {
+ compatible = "brcm,bcm2835-vchiq";
+ reg = <0x7e00b840 0x3c>;
+ interrupts = <0 2>;
+--- /dev/null
++++ b/arch/arm/boot/dts/bcm2836-rpi.dtsi
+@@ -0,0 +1,6 @@
++// SPDX-License-Identifier: GPL-2.0
++#include "bcm2835-rpi.dtsi"
++
++&vchiq {
++ compatible = "brcm,bcm2836-vchiq", "brcm,bcm2835-vchiq";
++};
diff --git a/debian/patches/features/arm/staging-vc04_services-Use-correct-cache-line-size.patch b/debian/patches/features/arm/staging-vc04_services-Use-correct-cache-line-size.patch
new file mode 100644
index 000000000..b77ae1b02
--- /dev/null
+++ b/debian/patches/features/arm/staging-vc04_services-Use-correct-cache-line-size.patch
@@ -0,0 +1,133 @@
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Mon, 17 Sep 2018 09:22:21 +0100
+Subject: staging/vc04_services: Use correct cache line size
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/?id=c683db8860a80562a2bb5b451d77b3e471d24f36
+
+Use the compatible string in the DTB to select the correct cache line
+size for the SoC - 32 for BCM2835, and 64 for BCM2836 and BCM2837.
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ .../interface/vchiq_arm/vchiq_2835_arm.c | 4 ++-
+ .../interface/vchiq_arm/vchiq_arm.c | 35 +++++++++++++------
+ .../interface/vchiq_arm/vchiq_arm.h | 5 +++
+ 3 files changed, 33 insertions(+), 11 deletions(-)
+
+diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c
+index 3bece6b86831..dd67b80c0f99 100644
+--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c
++++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c
+@@ -109,7 +109,8 @@ free_pagelist(struct vchiq_pagelist_info *pagelistinfo,
+ int vchiq_platform_init(struct platform_device *pdev, VCHIQ_STATE_T *state)
+ {
+ struct device *dev = &pdev->dev;
+- struct rpi_firmware *fw = platform_get_drvdata(pdev);
++ struct vchiq_drvdata *drvdata = platform_get_drvdata(pdev);
++ struct rpi_firmware *fw = drvdata->fw;
+ VCHIQ_SLOT_ZERO_T *vchiq_slot_zero;
+ struct resource *res;
+ void *slot_mem;
+@@ -127,6 +128,7 @@ int vchiq_platform_init(struct platform_device *pdev, VCHIQ_STATE_T *state)
+ if (err < 0)
+ return err;
+
++ g_cache_line_size = drvdata->cache_line_size;
+ g_fragments_size = 2 * g_cache_line_size;
+
+ /* Allocate space for the channels in coherent memory */
+diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
+index fe431302a030..45de21c210c1 100644
+--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
++++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
+@@ -170,6 +170,14 @@ static struct device *vchiq_dev;
+ static DEFINE_SPINLOCK(msg_queue_spinlock);
+ static struct platform_device *bcm2835_camera;
+
++static struct vchiq_drvdata bcm2835_drvdata = {
++ .cache_line_size = 32,
++};
++
++static struct vchiq_drvdata bcm2836_drvdata = {
++ .cache_line_size = 64,
++};
++
+ static const char *const ioctl_names[] = {
+ "CONNECT",
+ "SHUTDOWN",
+@@ -3578,12 +3586,25 @@ void vchiq_platform_conn_state_changed(VCHIQ_STATE_T *state,
+ }
+ }
+
++static const struct of_device_id vchiq_of_match[] = {
++ { .compatible = "brcm,bcm2835-vchiq", .data = &bcm2835_drvdata },
++ { .compatible = "brcm,bcm2836-vchiq", .data = &bcm2836_drvdata },
++ {},
++};
++MODULE_DEVICE_TABLE(of, vchiq_of_match);
++
+ static int vchiq_probe(struct platform_device *pdev)
+ {
+ struct device_node *fw_node;
+- struct rpi_firmware *fw;
++ const struct of_device_id *of_id;
++ struct vchiq_drvdata *drvdata;
+ int err;
+
++ of_id = of_match_node(vchiq_of_match, pdev->dev.of_node);
++ drvdata = (struct vchiq_drvdata *)of_id->data;
++ if (!drvdata)
++ return -EINVAL;
++
+ fw_node = of_find_compatible_node(NULL, NULL,
+ "raspberrypi,bcm2835-firmware");
+ if (!fw_node) {
+@@ -3591,12 +3612,12 @@ static int vchiq_probe(struct platform_device *pdev)
+ return -ENOENT;
+ }
+
+- fw = rpi_firmware_get(fw_node);
++ drvdata->fw = rpi_firmware_get(fw_node);
+ of_node_put(fw_node);
+- if (!fw)
++ if (!drvdata->fw)
+ return -EPROBE_DEFER;
+
+- platform_set_drvdata(pdev, fw);
++ platform_set_drvdata(pdev, drvdata);
+
+ err = vchiq_platform_init(pdev, &g_state);
+ if (err != 0)
+@@ -3666,12 +3687,6 @@ static int vchiq_remove(struct platform_device *pdev)
+ return 0;
+ }
+
+-static const struct of_device_id vchiq_of_match[] = {
+- { .compatible = "brcm,bcm2835-vchiq", },
+- {},
+-};
+-MODULE_DEVICE_TABLE(of, vchiq_of_match);
+-
+ static struct platform_driver vchiq_driver = {
+ .driver = {
+ .name = "bcm2835_vchiq",
+diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h
+index 40bb0c63b1a9..2f3ebc99cbcf 100644
+--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h
++++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h
+@@ -123,6 +123,11 @@ typedef struct vchiq_arm_state_struct {
+
+ } VCHIQ_ARM_STATE_T;
+
++struct vchiq_drvdata {
++ const unsigned int cache_line_size;
++ struct rpi_firmware *fw;
++};
++
+ extern int vchiq_arm_log_level;
+ extern int vchiq_susp_log_level;
+
+--
+2.23.0
+
diff --git a/debian/patches/features/arm64/arm64-dts-allwinner-a64-Add-Pine64-LTS-device-tree-f.patch b/debian/patches/features/arm64/arm64-dts-allwinner-a64-Add-Pine64-LTS-device-tree-f.patch
new file mode 100644
index 000000000..c87b9f1a9
--- /dev/null
+++ b/debian/patches/features/arm64/arm64-dts-allwinner-a64-Add-Pine64-LTS-device-tree-f.patch
@@ -0,0 +1,55 @@
+From: Andre Przywara <andre.przywara@arm.com>
+Date: Mon, 30 Jul 2018 13:31:20 +0100
+Subject: arm64: dts: allwinner: a64: Add Pine64-LTS device tree file
+Origin: https://git.kernel.org/linus/b3ee15a509ffd7473b77b21cb921b3128efdd005
+
+The Pine64-LTS is a variant of the Pine64 board, from the software
+visible side resembling a SoPine module on a baseboard, though the
+board has the SoC and DRAM integrated on one PCB.
+Due to this it basically shares the DT with the SoPine baseboard, which
+we mimic in our DT by inclucing the boardboard .dts into the new file,
+just overwriting the model name.
+Having a separate .dts for this seems useful, since we don't know yet if
+there are subtle differences between the two. Also the SoC on the LTS
+board is technically an "R18" instead of the original "A64", although as
+far as we know this is just a relabelled version of the original SoC.
+
+Signed-off-by: Andre Przywara <andre.przywara@arm.com>
+Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
+Signed-off-by: Chen-Yu Tsai <wens@csie.org>
+---
+ arch/arm64/boot/dts/allwinner/Makefile | 1 +
+ .../boot/dts/allwinner/sun50i-a64-pine64-lts.dts | 13 +++++++++++++
+ 2 files changed, 14 insertions(+)
+ create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts
+
+Index: linux/arch/arm64/boot/dts/allwinner/Makefile
+===================================================================
+--- linux.orig/arch/arm64/boot/dts/allwinner/Makefile
++++ linux/arch/arm64/boot/dts/allwinner/Makefile
+@@ -4,6 +4,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-b
+ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb
+ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino.dtb
+ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb
++dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-lts.dtb
+ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb
+ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinebook.dtb
+ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb
+Index: linux/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts
+===================================================================
+--- /dev/null
++++ linux/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts
+@@ -0,0 +1,13 @@
++/*
++ * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
++ *
++ * Copyright (c) 2018 ARM Ltd.
++ */
++
++#include "sun50i-a64-sopine-baseboard.dts"
++
++/ {
++ model = "Pine64 LTS";
++ compatible = "pine64,pine64-lts", "allwinner,sun50i-r18",
++ "allwinner,sun50i-a64";
++};
diff --git a/debian/patches/features/arm64/arm64-dts-broadcom-Add-reference-to-Compute-Module-I.patch b/debian/patches/features/arm64/arm64-dts-broadcom-Add-reference-to-Compute-Module-I.patch
new file mode 100644
index 000000000..1d34ce743
--- /dev/null
+++ b/debian/patches/features/arm64/arm64-dts-broadcom-Add-reference-to-Compute-Module-I.patch
@@ -0,0 +1,35 @@
+From: Stefan Wahren <stefan.wahren@i2se.com>
+Date: Mon, 27 Aug 2018 19:33:28 +0200
+Subject: arm64: dts: broadcom: Add reference to Compute Module IO Board V3
+Origin: https://git.kernel.org/linus/a7eb26392b893bff92b1eb6483f4af3d2eb19510
+
+This adds a reference to the dts of the Compute Module IO Board V3 in arm,
+so we don't need to maintain the content in arm64.
+
+Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
+---
+ arch/arm64/boot/dts/broadcom/Makefile | 3 ++-
+ arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts | 2 ++
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+ create mode 100644 arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts
+
+Index: linux/arch/arm64/boot/dts/broadcom/Makefile
+===================================================================
+--- linux.orig/arch/arm64/boot/dts/broadcom/Makefile
++++ linux/arch/arm64/boot/dts/broadcom/Makefile
+@@ -1,6 +1,7 @@
+ # SPDX-License-Identifier: GPL-2.0
+ dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb \
+- bcm2837-rpi-3-b-plus.dtb
++ bcm2837-rpi-3-b-plus.dtb \
++ bcm2837-rpi-cm3-io3.dts
+
+ subdir-y += northstar2
+ subdir-y += stingray
+Index: linux/arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts
+===================================================================
+--- /dev/null
++++ linux/arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts
+@@ -0,0 +1,2 @@
++// SPDX-License-Identifier: GPL-2.0
++#include "arm/bcm2837-rpi-cm3-io3.dts"
diff --git a/debian/patches/features/arm64/arm64-dts-broadcom-Add-reference-to-RPi-3-A-Plus.patch b/debian/patches/features/arm64/arm64-dts-broadcom-Add-reference-to-RPi-3-A-Plus.patch
new file mode 100644
index 000000000..745cc8d09
--- /dev/null
+++ b/debian/patches/features/arm64/arm64-dts-broadcom-Add-reference-to-RPi-3-A-Plus.patch
@@ -0,0 +1,35 @@
+From: Stefan Wahren <stefan.wahren@i2se.com>
+Date: Fri, 28 Dec 2018 23:09:27 +0100
+Subject: arm64: dts: broadcom: Add reference to RPi 3 A+
+Origin: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/?id=441d8020d8fc8654698f5518cdf76832f84101f4
+
+This adds a reference to the dts of the Raspberry Pi 3 A+,
+so we don't need to maintain the content in arm64.
+
+Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
+Reviewed-by: Eric Anholt <eric@anholt.net>
+---
+ arch/arm64/boot/dts/broadcom/Makefile | 3 ++-
+ arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-a-plus.dts | 2 ++
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+ create mode 100644 arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-a-plus.dts
+
+Index: debian-kernel/arch/arm64/boot/dts/broadcom/Makefile
+===================================================================
+--- debian-kernel.orig/arch/arm64/boot/dts/broadcom/Makefile
++++ debian-kernel/arch/arm64/boot/dts/broadcom/Makefile
+@@ -1,5 +1,6 @@
+ # SPDX-License-Identifier: GPL-2.0
+-dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb \
++dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-a-plus.dtb \
++ bcm2837-rpi-3-b.dtb \
+ bcm2837-rpi-3-b-plus.dtb \
+ bcm2837-rpi-cm3-io3.dtb
+
+Index: debian-kernel/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-a-plus.dts
+===================================================================
+--- /dev/null
++++ debian-kernel/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-a-plus.dts
+@@ -0,0 +1,2 @@
++// SPDX-License-Identifier: GPL-2.0
++#include "arm/bcm2837-rpi-3-a-plus.dts"
diff --git a/debian/patches/features/arm64/arm64-dts-broadcom-Use-the-.dtb-name-in-the-rule-rat.patch b/debian/patches/features/arm64/arm64-dts-broadcom-Use-the-.dtb-name-in-the-rule-rat.patch
new file mode 100644
index 000000000..d2c9849bb
--- /dev/null
+++ b/debian/patches/features/arm64/arm64-dts-broadcom-Use-the-.dtb-name-in-the-rule-rat.patch
@@ -0,0 +1,32 @@
+From: Liviu Dudau <liviu@dudau.co.uk>
+Date: Mon, 24 Sep 2018 11:22:28 +0100
+Subject: arm64: dts: broadcom: Use the .dtb name in the rule, rather than .dts
+Origin: https://git.kernel.org/linus/74cf77e8be35795b4cc57b7010bc348295e421b9
+
+Commit a7eb26392b893 ("arm64: dts: broadcom: Add reference to Compute
+Module IO Board V3") adds the bcm2837-rpi-cm3-io3.dts file as a target
+in the Makefile, rather than the .dtb name. This will skip the
+generation of the .dtb file at compile time and will fail the dtbs_install
+target.
+
+Fixes: a7eb26392b893 ("arm64: dts: broadcom: Add reference to Compute Module IO Board V3")
+Signed-off-by: Liviu Dudau <liviu@dudau.co.uk>
+Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
+Signed-off-by: Olof Johansson <olof@lixom.net>
+---
+ arch/arm64/boot/dts/broadcom/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: linux/arch/arm64/boot/dts/broadcom/Makefile
+===================================================================
+--- linux.orig/arch/arm64/boot/dts/broadcom/Makefile
++++ linux/arch/arm64/boot/dts/broadcom/Makefile
+@@ -1,7 +1,7 @@
+ # SPDX-License-Identifier: GPL-2.0
+ dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb \
+ bcm2837-rpi-3-b-plus.dtb \
+- bcm2837-rpi-cm3-io3.dts
++ bcm2837-rpi-cm3-io3.dtb
+
+ subdir-y += northstar2
+ subdir-y += stingray
diff --git a/debian/patches/features/mips/MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch b/debian/patches/features/mips/MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch
new file mode 100644
index 000000000..73f420b6c
--- /dev/null
+++ b/debian/patches/features/mips/MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch
@@ -0,0 +1,65 @@
+From: Aurelien Jarno <aurelien@aurel32.net>
+Date: Sun, 20 Jul 2014 19:16:31 +0200
+Subject: MIPS: Loongson 3: Add Loongson LS3A RS780E 1-way machine definition
+Forwarded: no
+
+Add a Loongson LS3A RS780E 1-way machine definition, which only differs
+from other Loongson 3 based machines by the UART base clock speed.
+
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+[bwh: Forward-ported to 4.2]
+---
+ arch/mips/include/asm/bootinfo.h | 1 +
+ arch/mips/loongson64/common/machtype.c | 1 +
+ arch/mips/loongson64/common/serial.c | 1 +
+ arch/mips/loongson64/common/uart_base.c | 1 +
+ 4 files changed, 4 insertions(+)
+
+Index: linux/arch/mips/include/asm/bootinfo.h
+===================================================================
+--- linux.orig/arch/mips/include/asm/bootinfo.h
++++ linux/arch/mips/include/asm/bootinfo.h
+@@ -71,6 +71,7 @@ enum loongson_machine_type {
+ MACH_LEMOTE_NAS,
+ MACH_LEMOTE_LL2F,
+ MACH_LOONGSON_GENERIC,
++ MACH_LOONGSON_3A780E1W,
+ MACH_LOONGSON_END
+ };
+
+Index: linux/arch/mips/loongson64/common/machtype.c
+===================================================================
+--- linux.orig/arch/mips/loongson64/common/machtype.c
++++ linux/arch/mips/loongson64/common/machtype.c
+@@ -28,6 +28,7 @@ static const char *system_types[] = {
+ [MACH_LEMOTE_NAS] = "lemote-nas-2f",
+ [MACH_LEMOTE_LL2F] = "lemote-lynloong-2f",
+ [MACH_LOONGSON_GENERIC] = "generic-loongson-machine",
++ [MACH_LOONGSON_3A780E1W] = "loongson-ls3a-rs780e-1w",
+ [MACH_LOONGSON_END] = NULL,
+ };
+
+Index: linux/arch/mips/loongson64/common/serial.c
+===================================================================
+--- linux.orig/arch/mips/loongson64/common/serial.c
++++ linux/arch/mips/loongson64/common/serial.c
+@@ -48,6 +48,7 @@ static struct plat_serial8250_port uart8
+ [MACH_LEMOTE_NAS] = {PORT_M(3, 3686400), {} },
+ [MACH_LEMOTE_LL2F] = {PORT(3, 1843200), {} },
+ [MACH_LOONGSON_GENERIC] = {PORT_M(2, 25000000), {} },
++ [MACH_LOONGSON_3A780E1W] = {PORT_M(2, 33177600), {} },
+ [MACH_LOONGSON_END] = {},
+ };
+
+Index: linux/arch/mips/loongson64/common/uart_base.c
+===================================================================
+--- linux.orig/arch/mips/loongson64/common/uart_base.c
++++ linux/arch/mips/loongson64/common/uart_base.c
+@@ -25,6 +25,7 @@ void prom_init_loongson_uart_base(void)
+ {
+ switch (mips_machtype) {
+ case MACH_LOONGSON_GENERIC:
++ case MACH_LOONGSON_3A780E1W:
+ /* The CPU provided serial port (CPU) */
+ loongson_uart_base[0] = LOONGSON_REG_BASE + 0x1e0;
+ break;
diff --git a/debian/patches/features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch b/debian/patches/features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch
new file mode 100644
index 000000000..3de14026f
--- /dev/null
+++ b/debian/patches/features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch
@@ -0,0 +1,29 @@
+From: Aurelien Jarno <aurelien@aurel32.net>
+Subject: MIPS: increase MAX_PHYSMEM_BITS on Loongson 3 only
+Bug-Debian: https://bugs.debian.org/764223
+Forwarded: no
+
+Commit c4617318 broke Loongson-2 support and maybe even more by increasing
+the value of MAX_PHYSMEM_BITS. At it is currently only needed on
+Loongson-3, define it conditionally.
+
+Note: this should be replace by upstream fix when available.
+
+Index: linux/arch/mips/include/asm/sparsemem.h
+===================================================================
+--- linux.orig/arch/mips/include/asm/sparsemem.h
++++ linux/arch/mips/include/asm/sparsemem.h
+@@ -12,7 +12,12 @@
+ #else
+ # define SECTION_SIZE_BITS 28
+ #endif
+-#define MAX_PHYSMEM_BITS 48
++
++#if defined(CONFIG_CPU_LOONGSON3)
++# define MAX_PHYSMEM_BITS 48
++#else
++# define MAX_PHYSMEM_BITS 35
++#endif
+
+ #endif /* CONFIG_SPARSEMEM */
+ #endif /* _MIPS_SPARSEMEM_H */
diff --git a/debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-for-boot-params-.patch b/debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-for-boot-params-.patch
new file mode 100644
index 000000000..d56f9f289
--- /dev/null
+++ b/debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-for-boot-params-.patch
@@ -0,0 +1,101 @@
+From: Juergen Gross <jgross@suse.com>
+Date: Wed, 10 Oct 2018 08:14:56 +0200
+Subject: x86/acpi, x86/boot: Take RSDP address for boot params if available
+Origin: https://git.kernel.org/linus/e7b66d16fe41722350ba87f5788052ef53ee28bb
+
+In case the RSDP address in struct boot_params is specified don't try
+to find the table by searching, but take the address directly as set
+by the boot loader.
+
+Signed-off-by: Juergen Gross <jgross@suse.com>
+Cc: Andy Lutomirski <luto@kernel.org>
+Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Cc: Baoquan He <bhe@redhat.com>
+Cc: Borislav Petkov <bp@alien8.de>
+Cc: Jia Zhang <qianyue.zj@alibaba-inc.com>
+Cc: Len Brown <len.brown@intel.com>
+Cc: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Pavel Machek <pavel@ucw.cz>
+Cc: Pavel Tatashin <pasha.tatashin@oracle.com>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Cc: boris.ostrovsky@oracle.com
+Cc: linux-kernel@vger.kernel.org
+Cc: linux-pm@vger.kernel.org
+Cc: xen-devel@lists.xenproject.org
+Link: http://lkml.kernel.org/r/20181010061456.22238-4-jgross@suse.com
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+---
+ arch/x86/include/asm/acpi.h | 7 +++++++
+ arch/x86/kernel/acpi/boot.c | 6 ++++++
+ arch/x86/kernel/x86_init.c | 3 +--
+ 3 files changed, 14 insertions(+), 2 deletions(-)
+
+Index: linux/arch/x86/include/asm/acpi.h
+===================================================================
+--- linux.orig/arch/x86/include/asm/acpi.h
++++ linux/arch/x86/include/asm/acpi.h
+@@ -142,6 +142,8 @@ static inline u64 acpi_arch_get_root_poi
+
+ void acpi_generic_reduced_hw_init(void);
+
++u64 x86_default_get_root_pointer(void);
++
+ #else /* !CONFIG_ACPI */
+
+ #define acpi_lapic 0
+@@ -153,6 +155,11 @@ static inline void disable_acpi(void) {
+
+ static inline void acpi_generic_reduced_hw_init(void) { }
+
++static inline u64 x86_default_get_root_pointer(void)
++{
++ return 0;
++}
++
+ #endif /* !CONFIG_ACPI */
+
+ #define ARCH_HAS_POWER_INIT 1
+Index: linux/arch/x86/kernel/acpi/boot.c
+===================================================================
+--- linux.orig/arch/x86/kernel/acpi/boot.c
++++ linux/arch/x86/kernel/acpi/boot.c
+@@ -48,6 +48,7 @@
+ #include <asm/mpspec.h>
+ #include <asm/smp.h>
+ #include <asm/i8259.h>
++#include <asm/setup.h>
+
+ #include "sleep.h" /* To include x86_acpi_suspend_lowlevel */
+ static int __initdata acpi_force = 0;
+@@ -1771,3 +1772,8 @@ void __init arch_reserve_mem_area(acpi_p
+ e820__range_add(addr, size, E820_TYPE_ACPI);
+ e820__update_table_print();
+ }
++
++u64 x86_default_get_root_pointer(void)
++{
++ return boot_params.hdr.acpi_rsdp_addr;
++}
+Index: linux/arch/x86/kernel/x86_init.c
+===================================================================
+--- linux.orig/arch/x86/kernel/x86_init.c
++++ linux/arch/x86/kernel/x86_init.c
+@@ -31,7 +31,6 @@ static int __init iommu_init_noop(void)
+ static void iommu_shutdown_noop(void) { }
+ static bool __init bool_x86_init_noop(void) { return false; }
+ static void x86_op_int_noop(int cpu) { }
+-static u64 u64_x86_init_noop(void) { return 0; }
+
+ /*
+ * The platform setup functions are preset with the default functions
+@@ -96,7 +95,7 @@ struct x86_init_ops x86_init __initdata
+ },
+
+ .acpi = {
+- .get_root_pointer = u64_x86_init_noop,
++ .get_root_pointer = x86_default_get_root_pointer,
+ .reduced_hw_early_init = acpi_generic_reduced_hw_init,
+ },
+ };
diff --git a/debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-from-boot-params.patch b/debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-from-boot-params.patch
new file mode 100644
index 000000000..5382acce3
--- /dev/null
+++ b/debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-from-boot-params.patch
@@ -0,0 +1,51 @@
+From: Juergen Gross <jgross@suse.com>
+Date: Tue, 20 Nov 2018 08:25:29 +0100
+Subject: x86/acpi, x86/boot: Take RSDP address from boot params if available
+Origin: https://git.kernel.org/linus/e6e094e053af75cbc164e950814d3d084fb1e698
+
+In case the RSDP address in struct boot_params is specified don't try
+to find the table by searching, but take the address directly as set
+by the boot loader.
+
+Suggested-by: "H. Peter Anvin" <hpa@zytor.com>
+Signed-off-by: Juergen Gross <jgross@suse.com>
+Cc: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Cc: boris.ostrovsky@oracle.com
+Cc: bp@alien8.de
+Cc: daniel.kiper@oracle.com
+Cc: sstabellini@kernel.org
+Cc: xen-devel@lists.xenproject.org
+Link: http://lkml.kernel.org/r/20181120072529.5489-3-jgross@suse.com
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+---
+ arch/x86/include/uapi/asm/bootparam.h | 3 ++-
+ arch/x86/kernel/acpi/boot.c | 2 +-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+Index: linux/arch/x86/include/uapi/asm/bootparam.h
+===================================================================
+--- linux.orig/arch/x86/include/uapi/asm/bootparam.h
++++ linux/arch/x86/include/uapi/asm/bootparam.h
+@@ -155,7 +155,8 @@ struct boot_params {
+ __u8 _pad2[4]; /* 0x054 */
+ __u64 tboot_addr; /* 0x058 */
+ struct ist_info ist_info; /* 0x060 */
+- __u8 _pad3[16]; /* 0x070 */
++ __u64 acpi_rsdp_addr; /* 0x070 */
++ __u8 _pad3[8]; /* 0x078 */
+ __u8 hd0_info[16]; /* obsolete! */ /* 0x080 */
+ __u8 hd1_info[16]; /* obsolete! */ /* 0x090 */
+ struct sys_desc_table sys_desc_table; /* obsolete! */ /* 0x0a0 */
+Index: linux/arch/x86/kernel/acpi/boot.c
+===================================================================
+--- linux.orig/arch/x86/kernel/acpi/boot.c
++++ linux/arch/x86/kernel/acpi/boot.c
+@@ -1775,5 +1775,5 @@ void __init arch_reserve_mem_area(acpi_p
+
+ u64 x86_default_get_root_pointer(void)
+ {
+- return 0;
++ return boot_params.acpi_rsdp_addr;
+ }
diff --git a/debian/patches/features/x86/x86-boot-Add-ACPI-RSDP-address-to-setup_header.patch b/debian/patches/features/x86/x86-boot-Add-ACPI-RSDP-address-to-setup_header.patch
new file mode 100644
index 000000000..55b116db9
--- /dev/null
+++ b/debian/patches/features/x86/x86-boot-Add-ACPI-RSDP-address-to-setup_header.patch
@@ -0,0 +1,232 @@
+From: Juergen Gross <jgross@suse.com>
+Date: Wed, 10 Oct 2018 08:14:55 +0200
+Subject: x86/boot: Add ACPI RSDP address to setup_header
+Origin: https://git.kernel.org/linus/ae7e1238e68f2a472a125673ab506d49158c1889
+
+Xen PVH guests receive the address of the RSDP table from Xen. In order
+to support booting a Xen PVH guest via Grub2 using the standard x86
+boot entry we need a way for Grub2 to pass the RSDP address to the
+kernel.
+
+For this purpose expand the struct setup_header to hold the physical
+address of the RSDP address. Being zero means it isn't specified and
+has to be located the legacy way (searching through low memory or
+EBDA).
+
+While documenting the new setup_header layout and protocol version
+2.14 add the missing documentation of protocol version 2.13.
+
+There are Grub2 versions in several distros with a downstream patch
+violating the boot protocol by writing past the end of setup_header.
+This requires another update of the boot protocol to enable the kernel
+to distinguish between a specified RSDP address and one filled with
+garbage by such a broken Grub2.
+
+From protocol 2.14 on Grub2 will write the version it is supporting
+(but never a higher value than found to be supported by the kernel)
+ored with 0x8000 to the version field of setup_header. This enables
+the kernel to know up to which field Grub2 has written information
+to. All fields after that are supposed to be clobbered.
+
+Signed-off-by: Juergen Gross <jgross@suse.com>
+Cc: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Cc: boris.ostrovsky@oracle.com
+Cc: bp@alien8.de
+Cc: corbet@lwn.net
+Cc: linux-doc@vger.kernel.org
+Cc: xen-devel@lists.xenproject.org
+Link: http://lkml.kernel.org/r/20181010061456.22238-3-jgross@suse.com
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+---
+ Documentation/x86/boot.txt | 32 ++++++++++++++++++++++++++-
+ arch/x86/boot/header.S | 6 ++++-
+ arch/x86/include/asm/x86_init.h | 2 ++
+ arch/x86/include/uapi/asm/bootparam.h | 4 ++++
+ arch/x86/kernel/head32.c | 1 +
+ arch/x86/kernel/head64.c | 2 ++
+ arch/x86/kernel/setup.c | 17 ++++++++++++++
+ 7 files changed, 62 insertions(+), 2 deletions(-)
+
+Index: linux/Documentation/x86/boot.txt
+===================================================================
+--- linux.orig/Documentation/x86/boot.txt
++++ linux/Documentation/x86/boot.txt
+@@ -61,6 +61,18 @@ Protocol 2.12: (Kernel 3.8) Added the xl
+ to struct boot_params for loading bzImage and ramdisk
+ above 4G in 64bit.
+
++Protocol 2.13: (Kernel 3.14) Support 32- and 64-bit flags being set in
++ xloadflags to support booting a 64-bit kernel from 32-bit
++ EFI
++
++Protocol 2.14: (Kernel 4.20) Added acpi_rsdp_addr holding the physical
++ address of the ACPI RSDP table.
++ The bootloader updates version with:
++ 0x8000 | min(kernel-version, bootloader-version)
++ kernel-version being the protocol version supported by
++ the kernel and bootloader-version the protocol version
++ supported by the bootloader.
++
+ **** MEMORY LAYOUT
+
+ The traditional memory map for the kernel loader, used for Image or
+@@ -197,6 +209,7 @@ Offset Proto Name Meaning
+ 0258/8 2.10+ pref_address Preferred loading address
+ 0260/4 2.10+ init_size Linear memory required during initialization
+ 0264/4 2.11+ handover_offset Offset of handover entry point
++0268/8 2.14+ acpi_rsdp_addr Physical address of RSDP table
+
+ (1) For backwards compatibility, if the setup_sects field contains 0, the
+ real value is 4.
+@@ -309,7 +322,7 @@ Protocol: 2.00+
+ Contains the magic number "HdrS" (0x53726448).
+
+ Field name: version
+-Type: read
++Type: modify
+ Offset/size: 0x206/2
+ Protocol: 2.00+
+
+@@ -317,6 +330,12 @@ Protocol: 2.00+
+ e.g. 0x0204 for version 2.04, and 0x0a11 for a hypothetical version
+ 10.17.
+
++ Up to protocol version 2.13 this information is only read by the
++ bootloader. From protocol version 2.14 onwards the bootloader will
++ write the used protocol version or-ed with 0x8000 to the field. The
++ used protocol version will be the minimum of the supported protocol
++ versions of the bootloader and the kernel.
++
+ Field name: realmode_swtch
+ Type: modify (optional)
+ Offset/size: 0x208/4
+@@ -744,6 +763,17 @@ Offset/size: 0x264/4
+
+ See EFI HANDOVER PROTOCOL below for more details.
+
++Field name: acpi_rsdp_addr
++Type: write
++Offset/size: 0x268/8
++Protocol: 2.14+
++
++ This field can be set by the boot loader to tell the kernel the
++ physical address of the ACPI RSDP table.
++
++ A value of 0 indicates the kernel should fall back to the standard
++ methods to locate the RSDP.
++
+
+ **** THE IMAGE CHECKSUM
+
+Index: linux/arch/x86/boot/header.S
+===================================================================
+--- linux.orig/arch/x86/boot/header.S
++++ linux/arch/x86/boot/header.S
+@@ -300,7 +300,7 @@ _start:
+ # Part 2 of the header, from the old setup.S
+
+ .ascii "HdrS" # header signature
+- .word 0x020d # header version number (>= 0x0105)
++ .word 0x020e # header version number (>= 0x0105)
+ # or else old loadlin-1.5 will fail)
+ .globl realmode_swtch
+ realmode_swtch: .word 0, 0 # default_switch, SETUPSEG
+@@ -558,6 +558,10 @@ pref_address: .quad LOAD_PHYSICAL_ADDR
+ init_size: .long INIT_SIZE # kernel initialization size
+ handover_offset: .long 0 # Filled in by build.c
+
++acpi_rsdp_addr: .quad 0 # 64-bit physical pointer to the
++ # ACPI RSDP table, added with
++ # version 2.14
++
+ # End of setup header #####################################################
+
+ .section ".entrytext", "ax"
+Index: linux/arch/x86/include/asm/x86_init.h
+===================================================================
+--- linux.orig/arch/x86/include/asm/x86_init.h
++++ linux/arch/x86/include/asm/x86_init.h
+@@ -303,4 +303,6 @@ extern void x86_init_noop(void);
+ extern void x86_init_uint_noop(unsigned int unused);
+ extern bool x86_pnpbios_disabled(void);
+
++void x86_verify_bootdata_version(void);
++
+ #endif
+Index: linux/arch/x86/include/uapi/asm/bootparam.h
+===================================================================
+--- linux.orig/arch/x86/include/uapi/asm/bootparam.h
++++ linux/arch/x86/include/uapi/asm/bootparam.h
+@@ -16,6 +16,9 @@
+ #define RAMDISK_PROMPT_FLAG 0x8000
+ #define RAMDISK_LOAD_FLAG 0x4000
+
++/* version flags */
++#define VERSION_WRITTEN 0x8000
++
+ /* loadflags */
+ #define LOADED_HIGH (1<<0)
+ #define KASLR_FLAG (1<<1)
+@@ -86,6 +89,7 @@ struct setup_header {
+ __u64 pref_address;
+ __u32 init_size;
+ __u32 handover_offset;
++ __u64 acpi_rsdp_addr;
+ } __attribute__((packed));
+
+ struct sys_desc_table {
+Index: linux/arch/x86/kernel/head32.c
+===================================================================
+--- linux.orig/arch/x86/kernel/head32.c
++++ linux/arch/x86/kernel/head32.c
+@@ -37,6 +37,7 @@ asmlinkage __visible void __init i386_st
+ cr4_init_shadow();
+
+ sanitize_boot_params(&boot_params);
++ x86_verify_bootdata_version();
+
+ x86_early_init_platform_quirks();
+
+Index: linux/arch/x86/kernel/head64.c
+===================================================================
+--- linux.orig/arch/x86/kernel/head64.c
++++ linux/arch/x86/kernel/head64.c
+@@ -477,6 +477,8 @@ void __init x86_64_start_reservations(ch
+ if (!boot_params.hdr.version)
+ copy_bootdata(__va(real_mode_data));
+
++ x86_verify_bootdata_version();
++
+ x86_early_init_platform_quirks();
+
+ switch (boot_params.hdr.hardware_subarch) {
+Index: linux/arch/x86/kernel/setup.c
+===================================================================
+--- linux.orig/arch/x86/kernel/setup.c
++++ linux/arch/x86/kernel/setup.c
+@@ -1281,6 +1281,23 @@ void __init setup_arch(char **cmdline_p)
+ unwind_init();
+ }
+
++/*
++ * From boot protocol 2.14 onwards we expect the bootloader to set the
++ * version to "0x8000 | <used version>". In case we find a version >= 2.14
++ * without the 0x8000 we assume the boot loader supports 2.13 only and
++ * reset the version accordingly. The 0x8000 flag is removed in any case.
++ */
++void __init x86_verify_bootdata_version(void)
++{
++ if (boot_params.hdr.version & VERSION_WRITTEN)
++ boot_params.hdr.version &= ~VERSION_WRITTEN;
++ else if (boot_params.hdr.version >= 0x020e)
++ boot_params.hdr.version = 0x020d;
++
++ if (boot_params.hdr.version < 0x020e)
++ boot_params.hdr.acpi_rsdp_addr = 0;
++}
++
+ #ifdef CONFIG_X86_32
+
+ static struct resource video_ram_resource = {
diff --git a/debian/patches/features/x86/x86-boot-Mostly-revert-commit-ae7e1238e68f2a-Add-ACP.patch b/debian/patches/features/x86/x86-boot-Mostly-revert-commit-ae7e1238e68f2a-Add-ACP.patch
new file mode 100644
index 000000000..d2b67f4ea
--- /dev/null
+++ b/debian/patches/features/x86/x86-boot-Mostly-revert-commit-ae7e1238e68f2a-Add-ACP.patch
@@ -0,0 +1,236 @@
+From: Juergen Gross <jgross@suse.com>
+Date: Tue, 20 Nov 2018 08:25:28 +0100
+Subject: x86/boot: Mostly revert commit ae7e1238e68f2a ("Add ACPI RSDP address
+ to setup_header")
+Origin: https://git.kernel.org/linus/3841840449817ba6cf3e636008bc4e1061a03388
+
+Peter Anvin pointed out that commit:
+
+ ae7e1238e68f2a ("x86/boot: Add ACPI RSDP address to setup_header")
+
+should be reverted as setup_header should only contain items set by the
+legacy BIOS.
+
+So revert said commit. Instead of fully reverting the dependent commit
+of:
+
+ e7b66d16fe4172 ("x86/acpi, x86/boot: Take RSDP address for boot params if available")
+
+just remove the setup_header reference in order to replace it by
+a boot_params in a followup patch.
+
+Suggested-by: "H. Peter Anvin" <hpa@zytor.com>
+Signed-off-by: Juergen Gross <jgross@suse.com>
+Cc: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Cc: boris.ostrovsky@oracle.com
+Cc: bp@alien8.de
+Cc: daniel.kiper@oracle.com
+Cc: sstabellini@kernel.org
+Cc: xen-devel@lists.xenproject.org
+Link: http://lkml.kernel.org/r/20181120072529.5489-2-jgross@suse.com
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+---
+ Documentation/x86/boot.txt | 32 +--------------------------
+ arch/x86/boot/header.S | 6 +----
+ arch/x86/include/asm/x86_init.h | 2 --
+ arch/x86/include/uapi/asm/bootparam.h | 4 ----
+ arch/x86/kernel/acpi/boot.c | 2 +-
+ arch/x86/kernel/head32.c | 1 -
+ arch/x86/kernel/head64.c | 2 --
+ arch/x86/kernel/setup.c | 17 --------------
+ 8 files changed, 3 insertions(+), 63 deletions(-)
+
+Index: linux/Documentation/x86/boot.txt
+===================================================================
+--- linux.orig/Documentation/x86/boot.txt
++++ linux/Documentation/x86/boot.txt
+@@ -61,18 +61,6 @@ Protocol 2.12: (Kernel 3.8) Added the xl
+ to struct boot_params for loading bzImage and ramdisk
+ above 4G in 64bit.
+
+-Protocol 2.13: (Kernel 3.14) Support 32- and 64-bit flags being set in
+- xloadflags to support booting a 64-bit kernel from 32-bit
+- EFI
+-
+-Protocol 2.14: (Kernel 4.20) Added acpi_rsdp_addr holding the physical
+- address of the ACPI RSDP table.
+- The bootloader updates version with:
+- 0x8000 | min(kernel-version, bootloader-version)
+- kernel-version being the protocol version supported by
+- the kernel and bootloader-version the protocol version
+- supported by the bootloader.
+-
+ **** MEMORY LAYOUT
+
+ The traditional memory map for the kernel loader, used for Image or
+@@ -209,7 +197,6 @@ Offset Proto Name Meaning
+ 0258/8 2.10+ pref_address Preferred loading address
+ 0260/4 2.10+ init_size Linear memory required during initialization
+ 0264/4 2.11+ handover_offset Offset of handover entry point
+-0268/8 2.14+ acpi_rsdp_addr Physical address of RSDP table
+
+ (1) For backwards compatibility, if the setup_sects field contains 0, the
+ real value is 4.
+@@ -322,7 +309,7 @@ Protocol: 2.00+
+ Contains the magic number "HdrS" (0x53726448).
+
+ Field name: version
+-Type: modify
++Type: read
+ Offset/size: 0x206/2
+ Protocol: 2.00+
+
+@@ -330,12 +317,6 @@ Protocol: 2.00+
+ e.g. 0x0204 for version 2.04, and 0x0a11 for a hypothetical version
+ 10.17.
+
+- Up to protocol version 2.13 this information is only read by the
+- bootloader. From protocol version 2.14 onwards the bootloader will
+- write the used protocol version or-ed with 0x8000 to the field. The
+- used protocol version will be the minimum of the supported protocol
+- versions of the bootloader and the kernel.
+-
+ Field name: realmode_swtch
+ Type: modify (optional)
+ Offset/size: 0x208/4
+@@ -763,17 +744,6 @@ Offset/size: 0x264/4
+
+ See EFI HANDOVER PROTOCOL below for more details.
+
+-Field name: acpi_rsdp_addr
+-Type: write
+-Offset/size: 0x268/8
+-Protocol: 2.14+
+-
+- This field can be set by the boot loader to tell the kernel the
+- physical address of the ACPI RSDP table.
+-
+- A value of 0 indicates the kernel should fall back to the standard
+- methods to locate the RSDP.
+-
+
+ **** THE IMAGE CHECKSUM
+
+Index: linux/arch/x86/boot/header.S
+===================================================================
+--- linux.orig/arch/x86/boot/header.S
++++ linux/arch/x86/boot/header.S
+@@ -300,7 +300,7 @@ _start:
+ # Part 2 of the header, from the old setup.S
+
+ .ascii "HdrS" # header signature
+- .word 0x020e # header version number (>= 0x0105)
++ .word 0x020d # header version number (>= 0x0105)
+ # or else old loadlin-1.5 will fail)
+ .globl realmode_swtch
+ realmode_swtch: .word 0, 0 # default_switch, SETUPSEG
+@@ -558,10 +558,6 @@ pref_address: .quad LOAD_PHYSICAL_ADDR
+ init_size: .long INIT_SIZE # kernel initialization size
+ handover_offset: .long 0 # Filled in by build.c
+
+-acpi_rsdp_addr: .quad 0 # 64-bit physical pointer to the
+- # ACPI RSDP table, added with
+- # version 2.14
+-
+ # End of setup header #####################################################
+
+ .section ".entrytext", "ax"
+Index: linux/arch/x86/include/asm/x86_init.h
+===================================================================
+--- linux.orig/arch/x86/include/asm/x86_init.h
++++ linux/arch/x86/include/asm/x86_init.h
+@@ -303,6 +303,4 @@ extern void x86_init_noop(void);
+ extern void x86_init_uint_noop(unsigned int unused);
+ extern bool x86_pnpbios_disabled(void);
+
+-void x86_verify_bootdata_version(void);
+-
+ #endif
+Index: linux/arch/x86/include/uapi/asm/bootparam.h
+===================================================================
+--- linux.orig/arch/x86/include/uapi/asm/bootparam.h
++++ linux/arch/x86/include/uapi/asm/bootparam.h
+@@ -16,9 +16,6 @@
+ #define RAMDISK_PROMPT_FLAG 0x8000
+ #define RAMDISK_LOAD_FLAG 0x4000
+
+-/* version flags */
+-#define VERSION_WRITTEN 0x8000
+-
+ /* loadflags */
+ #define LOADED_HIGH (1<<0)
+ #define KASLR_FLAG (1<<1)
+@@ -89,7 +86,6 @@ struct setup_header {
+ __u64 pref_address;
+ __u32 init_size;
+ __u32 handover_offset;
+- __u64 acpi_rsdp_addr;
+ } __attribute__((packed));
+
+ struct sys_desc_table {
+Index: linux/arch/x86/kernel/acpi/boot.c
+===================================================================
+--- linux.orig/arch/x86/kernel/acpi/boot.c
++++ linux/arch/x86/kernel/acpi/boot.c
+@@ -1775,5 +1775,5 @@ void __init arch_reserve_mem_area(acpi_p
+
+ u64 x86_default_get_root_pointer(void)
+ {
+- return boot_params.hdr.acpi_rsdp_addr;
++ return 0;
+ }
+Index: linux/arch/x86/kernel/head32.c
+===================================================================
+--- linux.orig/arch/x86/kernel/head32.c
++++ linux/arch/x86/kernel/head32.c
+@@ -37,7 +37,6 @@ asmlinkage __visible void __init i386_st
+ cr4_init_shadow();
+
+ sanitize_boot_params(&boot_params);
+- x86_verify_bootdata_version();
+
+ x86_early_init_platform_quirks();
+
+Index: linux/arch/x86/kernel/head64.c
+===================================================================
+--- linux.orig/arch/x86/kernel/head64.c
++++ linux/arch/x86/kernel/head64.c
+@@ -477,8 +477,6 @@ void __init x86_64_start_reservations(ch
+ if (!boot_params.hdr.version)
+ copy_bootdata(__va(real_mode_data));
+
+- x86_verify_bootdata_version();
+-
+ x86_early_init_platform_quirks();
+
+ switch (boot_params.hdr.hardware_subarch) {
+Index: linux/arch/x86/kernel/setup.c
+===================================================================
+--- linux.orig/arch/x86/kernel/setup.c
++++ linux/arch/x86/kernel/setup.c
+@@ -1281,23 +1281,6 @@ void __init setup_arch(char **cmdline_p)
+ unwind_init();
+ }
+
+-/*
+- * From boot protocol 2.14 onwards we expect the bootloader to set the
+- * version to "0x8000 | <used version>". In case we find a version >= 2.14
+- * without the 0x8000 we assume the boot loader supports 2.13 only and
+- * reset the version accordingly. The 0x8000 flag is removed in any case.
+- */
+-void __init x86_verify_bootdata_version(void)
+-{
+- if (boot_params.hdr.version & VERSION_WRITTEN)
+- boot_params.hdr.version &= ~VERSION_WRITTEN;
+- else if (boot_params.hdr.version >= 0x020e)
+- boot_params.hdr.version = 0x020d;
+-
+- if (boot_params.hdr.version < 0x020e)
+- boot_params.hdr.acpi_rsdp_addr = 0;
+-}
+-
+ #ifdef CONFIG_X86_32
+
+ static struct resource video_ram_resource = {
diff --git a/debian/patches/features/x86/x86-make-x32-syscall-support-conditional.patch b/debian/patches/features/x86/x86-make-x32-syscall-support-conditional.patch
new file mode 100644
index 000000000..3dde15cce
--- /dev/null
+++ b/debian/patches/features/x86/x86-make-x32-syscall-support-conditional.patch
@@ -0,0 +1,227 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Mon, 12 Feb 2018 23:59:26 +0000
+Subject: x86: Make x32 syscall support conditional on a kernel parameter
+Bug-Debian: https://bugs.debian.org/708070
+Forwarded: https://lore.kernel.org/lkml/1415245982.3398.53.camel@decadent.org.uk/T/#u
+
+Enabling x32 in the standard amd64 kernel would increase its attack
+surface while provide no benefit to the vast majority of its users.
+No-one seems interested in regularly checking for vulnerabilities
+specific to x32 (at least no-one with a white hat).
+
+Still, adding another flavour just to turn on x32 seems wasteful. And
+the only differences on syscall entry are a few instructions that mask
+out the x32 flag and compare the syscall number.
+
+Use a static key to control whether x32 syscalls are really enabled, a
+Kconfig parameter to set its default value and a kernel parameter
+"syscall.x32" to change it at boot time.
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+ Documentation/admin-guide/kernel-parameters.txt | 4 ++
+ arch/x86/Kconfig | 8 ++++
+ arch/x86/entry/common.c | 11 +++++-
+ arch/x86/entry/syscall_64.c | 41 ++++++++++++++++++++++++
+ arch/x86/include/asm/elf.h | 4 +-
+ arch/x86/include/asm/syscall.h | 13 +++++++
+ arch/x86/include/asm/unistd.h | 4 +-
+ 7 files changed, 80 insertions(+), 5 deletions(-)
+
+Index: linux/Documentation/admin-guide/kernel-parameters.txt
+===================================================================
+--- linux.orig/Documentation/admin-guide/kernel-parameters.txt
++++ linux/Documentation/admin-guide/kernel-parameters.txt
+@@ -4501,6 +4501,10 @@
+
+ switches= [HW,M68k]
+
++ syscall.x32= [KNL,x86_64] Enable/disable use of x32 syscalls on
++ an x86_64 kernel where CONFIG_X86_X32 is enabled.
++ Default depends on CONFIG_X86_X32_DISABLED.
++
+ sysfs.deprecated=0|1 [KNL]
+ Enable/disable old style sysfs layout for old udev
+ on older distributions. When this option is enabled
+Index: linux/arch/x86/Kconfig
+===================================================================
+--- linux.orig/arch/x86/Kconfig
++++ linux/arch/x86/Kconfig
+@@ -2884,6 +2884,14 @@ config COMPAT_32
+ select HAVE_UID16
+ select OLD_SIGSUSPEND3
+
++config X86_X32_DISABLED
++ bool "x32 ABI disabled by default"
++ depends on X86_X32
++ default n
++ help
++ Disable the x32 ABI unless explicitly enabled using the
++ kernel paramter "syscall.x32=y".
++
+ config COMPAT
+ def_bool y
+ depends on IA32_EMULATION || X86_X32
+Index: linux/arch/x86/entry/common.c
+===================================================================
+--- linux.orig/arch/x86/entry/common.c
++++ linux/arch/x86/entry/common.c
+@@ -287,12 +287,21 @@ __visible void do_syscall_64(unsigned lo
+ * table. The only functional difference is the x32 bit in
+ * regs->orig_ax, which changes the behavior of some syscalls.
+ */
+- nr &= __SYSCALL_MASK;
+- if (likely(nr < NR_syscalls)) {
++ if (x32_enabled) {
++ nr &= ~__X32_SYSCALL_BIT;
++ if (unlikely(nr >= NR_syscalls))
++ goto bad;
+ nr = array_index_nospec(nr, NR_syscalls);
++ goto good;
++ } else {
++ nr &= ~0U;
++ if (unlikely(nr >= NR_non_x32_syscalls))
++ goto bad;
++ nr = array_index_nospec(nr, NR_non_x32_syscalls);
++good:
+ regs->ax = sys_call_table[nr](regs);
+ }
+-
++bad:
+ syscall_return_slowpath(regs);
+ }
+ #endif
+Index: linux/arch/x86/entry/syscall_64.c
+===================================================================
+--- linux.orig/arch/x86/entry/syscall_64.c
++++ linux/arch/x86/entry/syscall_64.c
+@@ -4,6 +4,9 @@
+ #include <linux/linkage.h>
+ #include <linux/sys.h>
+ #include <linux/cache.h>
++#include <linux/moduleparam.h>
++#undef MODULE_PARAM_PREFIX
++#define MODULE_PARAM_PREFIX "syscall."
+ #include <asm/asm-offsets.h>
+ #include <asm/syscall.h>
+
+@@ -23,3 +26,50 @@ asmlinkage const sys_call_ptr_t sys_call
+ [0 ... __NR_syscall_max] = &sys_ni_syscall,
+ #include <asm/syscalls_64.h>
+ };
++
++#ifdef CONFIG_X86_X32_ABI
++
++/* Maybe enable x32 syscalls */
++
++#if defined(CONFIG_X86_X32_DISABLED)
++DEFINE_STATIC_KEY_FALSE(x32_enabled_skey);
++#else
++DEFINE_STATIC_KEY_TRUE(x32_enabled_skey);
++#endif
++
++static int __init x32_param_set(const char *val, const struct kernel_param *p)
++{
++ bool enabled;
++ int ret;
++
++ ret = kstrtobool(val, &enabled);
++ if (ret)
++ return ret;
++ if (IS_ENABLED(CONFIG_X86_X32_DISABLED)) {
++ if (enabled) {
++ static_key_enable(&x32_enabled_skey.key);
++ pr_info("Enabled x32 syscalls\n");
++ }
++ } else {
++ if (!enabled) {
++ static_key_disable(&x32_enabled_skey.key);
++ pr_info("Disabled x32 syscalls\n");
++ }
++ }
++ return 0;
++}
++
++static int x32_param_get(char *buffer, const struct kernel_param *p)
++{
++ return sprintf(buffer, "%c\n",
++ static_key_enabled(&x32_enabled_skey) ? 'Y' : 'N');
++}
++
++static const struct kernel_param_ops x32_param_ops = {
++ .set = x32_param_set,
++ .get = x32_param_get,
++};
++
++arch_param_cb(x32, &x32_param_ops, NULL, 0444);
++
++#endif
+Index: linux/arch/x86/include/asm/elf.h
+===================================================================
+--- linux.orig/arch/x86/include/asm/elf.h
++++ linux/arch/x86/include/asm/elf.h
+@@ -10,6 +10,7 @@
+ #include <asm/ptrace.h>
+ #include <asm/user.h>
+ #include <asm/auxvec.h>
++#include <asm/syscall.h>
+
+ typedef unsigned long elf_greg_t;
+
+@@ -163,7 +164,8 @@ do { \
+
+ #define compat_elf_check_arch(x) \
+ (elf_check_arch_ia32(x) || \
+- (IS_ENABLED(CONFIG_X86_X32_ABI) && (x)->e_machine == EM_X86_64))
++ (IS_ENABLED(CONFIG_X86_X32_ABI) && x32_enabled && \
++ (x)->e_machine == EM_X86_64))
+
+ #if __USER32_DS != __USER_DS
+ # error "The following code assumes __USER32_DS == __USER_DS"
+Index: linux/arch/x86/include/asm/syscall.h
+===================================================================
+--- linux.orig/arch/x86/include/asm/syscall.h
++++ linux/arch/x86/include/asm/syscall.h
+@@ -16,6 +16,7 @@
+ #include <uapi/linux/audit.h>
+ #include <linux/sched.h>
+ #include <linux/err.h>
++#include <linux/jump_label.h>
+ #include <asm/asm-offsets.h> /* For NR_syscalls */
+ #include <asm/thread_info.h> /* for TS_COMPAT */
+ #include <asm/unistd.h>
+@@ -39,6 +40,18 @@ extern const sys_call_ptr_t sys_call_tab
+ extern const sys_call_ptr_t ia32_sys_call_table[];
+ #endif
+
++#if defined(CONFIG_X86_X32_ABI)
++#if defined(CONFIG_X86_X32_DISABLED)
++DECLARE_STATIC_KEY_FALSE(x32_enabled_skey);
++#define x32_enabled static_branch_unlikely(&x32_enabled_skey)
++#else
++DECLARE_STATIC_KEY_TRUE(x32_enabled_skey);
++#define x32_enabled static_branch_likely(&x32_enabled_skey)
++#endif
++#else
++#define x32_enabled 0
++#endif
++
+ /*
+ * Only the low 32 bits of orig_ax are meaningful, so we return int.
+ * This importantly ignores the high bits on 64-bit, so comparisons
+Index: linux/arch/x86/include/asm/unistd.h
+===================================================================
+--- linux.orig/arch/x86/include/asm/unistd.h
++++ linux/arch/x86/include/asm/unistd.h
+@@ -6,9 +6,9 @@
+
+
+ # ifdef CONFIG_X86_X32_ABI
+-# define __SYSCALL_MASK (~(__X32_SYSCALL_BIT))
++# define NR_non_x32_syscalls 512
+ # else
+-# define __SYSCALL_MASK (~0)
++# define NR_non_x32_syscalls NR_syscalls
+ # endif
+
+ # ifdef CONFIG_X86_32
diff --git a/debian/patches/features/x86/x86-memtest-WARN-if-bad-RAM-found.patch b/debian/patches/features/x86/x86-memtest-WARN-if-bad-RAM-found.patch
new file mode 100644
index 000000000..87b90de80
--- /dev/null
+++ b/debian/patches/features/x86/x86-memtest-WARN-if-bad-RAM-found.patch
@@ -0,0 +1,30 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Mon, 5 Dec 2011 04:00:58 +0000
+Subject: x86: memtest: WARN if bad RAM found
+Bug-Debian: https://bugs.debian.org/613321
+Forwarded: http://thread.gmane.org/gmane.linux.kernel/1286471
+
+Since this is not a particularly thorough test, if we find any bad
+bits of RAM then there is a fair chance that there are other bad bits
+we fail to detect.
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+ mm/memtest.c | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+Index: linux/mm/memtest.c
+===================================================================
+--- linux.orig/mm/memtest.c
++++ linux/mm/memtest.c
+@@ -27,6 +27,10 @@ static u64 patterns[] __initdata = {
+
+ static void __init reserve_bad_mem(u64 pattern, phys_addr_t start_bad, phys_addr_t end_bad)
+ {
++#ifdef CONFIG_X86
++ WARN_ONCE(1, "Bad RAM detected. Use memtest86+ to perform a thorough test\n"
++ "and the memmap= parameter to reserve the bad areas.");
++#endif
+ pr_info(" %016llx bad mem addr %pa - %pa reserved\n",
+ cpu_to_be64(pattern), &start_bad, &end_bad);
+ memblock_reserve(start_bad, end_bad - start_bad);
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 000000000..9563bf8b8
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,315 @@
+# Disable features broken by exclusion of upstream files
+debian/dfsg/arch-powerpc-platforms-8xx-ucode-disable.patch
+debian/dfsg/drivers-media-dvb-dvb-usb-af9005-disable.patch
+debian/dfsg/vs6624-disable.patch
+debian/dfsg/drivers-net-appletalk-cops.patch
+debian/dfsg/video-remove-nvidiafb-and-rivafb.patch
+
+# Changes to support package build system
+debian/version.patch
+debian/uname-version-timestamp.patch
+debian/kernelvariables.patch
+debian/gitignore.patch
+debian/ia64-hardcode-arch-script-output.patch
+debian/mips-disable-werror.patch
+debian/mips-boston-disable-its.patch
+debian/arch-sh4-fix-uimage-build.patch
+debian/powerpcspe-omit-uimage.patch
+debian/tools-perf-version.patch
+debian/tools-perf-install.patch
+debian/wireless-add-debian-wireless-regdb-certificates.patch
+debian/export-symbols-needed-by-android-drivers.patch
+debian/android-enable-building-ashmem-and-binder-as-modules.patch
+
+# Fixes/improvements to firmware loading
+features/all/drivers-media-dvb-usb-af9005-request_firmware.patch
+debian/iwlwifi-do-not-request-unreleased-firmware.patch
+bugfix/all/firmware_class-log-every-success-and-failure.patch
+bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch
+bugfix/all/radeon-amdgpu-firmware-is-required-for-drm-and-kms-on-r600-onward.patch
+debian/firmware_class-refer-to-debian-wiki-firmware-page.patch
+
+# Patches from aufs4 repository, imported with debian/bin/genpatch-aufs.
+# These are only the changes needed to allow aufs to be built out-of-tree.
+features/all/aufs4/aufs4-base.patch
+features/all/aufs4/aufs4-mmap.patch
+features/all/aufs4/aufs4-standalone.patch
+
+# Change some defaults for security reasons
+debian/af_802154-Disable-auto-loading-as-mitigation-against.patch
+debian/rds-Disable-auto-loading-as-mitigation-against-local.patch
+debian/decnet-Disable-auto-loading-as-mitigation-against-lo.patch
+debian/dccp-disable-auto-loading-as-mitigation-against-local-exploits.patch
+debian/fs-enable-link-security-restrictions-by-default.patch
+
+# Set various features runtime-disabled by default
+debian/sched-autogroup-disabled.patch
+debian/yama-disable-by-default.patch
+debian/add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch
+features/all/security-perf-allow-further-restriction-of-perf_event_open.patch
+
+# Disable autoloading/probing of various drivers by default
+debian/cdc_ncm-cdc_mbim-use-ncm-by-default.patch
+debian/snd-pcsp-disable-autoload.patch
+bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch
+debian/fjes-disable-autoload.patch
+
+# Taint if dangerous features are used
+debian/fanotify-taint-on-use-of-fanotify_access_permissions.patch
+debian/btrfs-warn-about-raid5-6-being-experimental-at-mount.patch
+
+# Arch bug fixes
+bugfix/arm/arm-dts-kirkwood-fix-sata-pinmux-ing-for-ts419.patch
+bugfix/arm64/dts-rockchip-correct-voltage-selector-firefly-RK3399.patch
+bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-310-15ikb-to.patch
+bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-v310-15isk-t.patch
+bugfix/x86/platform-x86-ideapad-laptop-add-y520-15ikbn-to-no_hw.patch
+bugfix/x86/platform-x86-ideapad-laptop-add-y720-15ikbn-to-no_hw.patch
+bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-v510-15ikb-t.patch
+bugfix/x86/platform-x86-ideapad-laptop-add-several-models-to-no.patch
+bugfix/x86/perf-tools-fix-unwind-build-on-i386.patch
+bugfix/sh/sh-boot-do-not-use-hyphen-in-exported-variable-name.patch
+bugfix/powerpc/powerpc-lib-makefile-don-t-pull-in-quad.o-for-32-bit.patch
+bugfix/arm/arm-mm-export-__sync_icache_dcache-for-xen-privcmd.patch
+bugfix/powerpc/powerpc-boot-fix-missing-crc32poly.h-when-building-with-kernel_xz.patch
+bugfix/arm64/arm64-acpi-Add-fixup-for-HPE-m400-quirks.patch
+bugfix/x86/x86-32-disable-3dnow-in-generic-config.patch
+bugfix/powerpc/powerpc-fix-mcpu-options-for-spe-only-compiler.patch
+bugfix/arm/ARM-dts-sun8i-h3-add-sy8106a-to-orange-pi-plus.patch
+bugfix/arm64/arm64-dts-allwinner-a64-Enable-A64-timer-workaround.patch
+bugfix/mips/MIPS-Loongson-Introduce-and-use-loongson_llsc_mb.patch
+
+# Arch features
+features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch
+features/mips/MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch
+features/x86/x86-memtest-WARN-if-bad-RAM-found.patch
+features/x86/x86-make-x32-syscall-support-conditional.patch
+features/x86/x86-boot-Add-ACPI-RSDP-address-to-setup_header.patch
+features/x86/x86-acpi-x86-boot-Take-RSDP-address-for-boot-params-.patch
+features/x86/x86-boot-Mostly-revert-commit-ae7e1238e68f2a-Add-ACP.patch
+features/x86/x86-acpi-x86-boot-Take-RSDP-address-from-boot-params.patch
+features/arm64/arm64-dts-allwinner-a64-Add-Pine64-LTS-device-tree-f.patch
+
+# Miscellaneous bug fixes
+bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch
+bugfix/all/disable-some-marvell-phys.patch
+bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch
+bugfix/all/kbuild-include-addtree-remove-quotes-before-matching-path.patch
+debian/revert-objtool-fix-config_stack_validation-y-warning.patch
+bugfix/all/mt76-use-the-correct-hweight8-function.patch
+bugfix/all/rtc-s35390a-set-uie_unsupported.patch
+bugfix/all/lib-genalloc-add-gen_pool_dma_zalloc-for-zeroed-DMA.patch
+bugfix/all/USB-use-genalloc-for-USB-HCs-with-local-memory.patch
+bugfix/all/usb-host-ohci-sm501-init-genalloc-for-local-memory.patch
+bugfix/all/USB-ohci-sm501-fix-error-return-code-in-ohci_hcd_sm5.patch
+bugfix/all/USB-drop-HDC_LOCAL_MEM-flag.patch
+bugfix/all/usb-dont-create-dma-pools-for-HCD.patch
+bugfix/all/usb-add-a-hcd_uses_dma-helper.patch
+bugfix/all/usb-hcd-Fix-a-NULL-vs-IS_ERR-bug-in-usb_hcd_setup_lo.patch
+bugfix/all/net_sched-let-qdisc_put-accept-null-pointer.patch
+bugfix/all/swiotlb-skip-swiotlb_bounce-when-orig_addr-is-zero.patch
+
+# Miscellaneous features
+features/all/e1000e-Add-support-for-Comet-Lake.patch
+
+# Lockdown (formerly 'securelevel') patchset
+features/all/lockdown/0001-Add-the-ability-to-lock-down-access-to-the-running-k.patch
+features/all/lockdown/0003-ima-require-secure_boot-rules-in-lockdown-mode.patch
+features/all/lockdown/0004-Enforce-module-signatures-if-the-kernel-is-locked-do.patch
+features/all/lockdown/0005-Restrict-dev-mem-kmem-port-when-the-kernel-is-locked.patch
+features/all/lockdown/0006-kexec-Disable-at-runtime-if-the-kernel-is-locked-dow.patch
+features/all/lockdown/0007-Copy-secure_boot-flag-in-boot-params-across-kexec-re.patch
+features/all/lockdown/0008-kexec_file-Restrict-at-runtime-if-the-kernel-is-lock.patch
+features/all/lockdown/0009-hibernate-Disable-when-the-kernel-is-locked-down.patch
+features/all/lockdown/0010-uswsusp-Disable-when-the-kernel-is-locked-down.patch
+features/all/lockdown/0011-PCI-Lock-down-BAR-access-when-the-kernel-is-locked-d.patch
+features/all/lockdown/0012-x86-Lock-down-IO-port-access-when-the-kernel-is-lock.patch
+features/all/lockdown/0013-x86-msr-Restrict-MSR-access-when-the-kernel-is-locke.patch
+features/all/lockdown/0014-asus-wmi-Restrict-debugfs-interface-when-the-kernel-.patch
+features/all/lockdown/0015-ACPI-Limit-access-to-custom_method-when-the-kernel-i.patch
+features/all/lockdown/0016-acpi-Ignore-acpi_rsdp-kernel-param-when-the-kernel-h.patch
+features/all/lockdown/0017-acpi-Disable-ACPI-table-override-if-the-kernel-is-lo.patch
+features/all/lockdown/0018-acpi-Disable-APEI-error-injection-if-the-kernel-is-l.patch
+features/all/lockdown/0020-Prohibit-PCMCIA-CIS-storage-when-the-kernel-is-locke.patch
+features/all/lockdown/0021-Lock-down-TIOCSSERIAL.patch
+features/all/lockdown/0022-Lock-down-module-params-that-specify-hardware-parame.patch
+features/all/lockdown/0023-x86-mmiotrace-Lock-down-the-testmmiotrace-module.patch
+features/all/lockdown/0024-debugfs-Disallow-use-of-debugfs-files-when-the-kerne.patch
+features/all/lockdown/0025-Lock-down-proc-kcore.patch
+features/all/lockdown/0026-Lock-down-kprobes.patch
+features/all/lockdown/0027-bpf-Restrict-kernel-image-access-functions-when-the-.patch
+features/all/lockdown/0028-efi-Add-an-EFI_SECURE_BOOT-flag-to-indicate-secure-b.patch
+features/all/lockdown/0029-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch
+features/all/lockdown/0032-efi-Restrict-efivar_ssdt_load-when-the-kernel-is-loc.patch
+# some missing pieces
+features/all/lockdown/enable-cold-boot-attack-mitigation.patch
+features/all/lockdown/mtd-disable-slram-and-phram-when-locked-down.patch
+features/all/lockdown/arm64-add-kernel-config-option-to-lock-down-when.patch
+features/all/lockdown/ACPI-configfs-Disallow-loading-ACPI-tables-when-lock.patch
+# until the "kernel_lockdown.7" manual page exists
+features/all/lockdown/lockdown-refer-to-debian-wiki-until-manual-page-exists.patch
+
+# load db and MOK keys into secondary keyring for kernel modules verification
+features/all/db-mok-keyring/0001-KEYS-Allow-unrestricted-boot-time-addition-of-keys-t.patch
+features/all/db-mok-keyring/0002-efi-Add-EFI-signature-data-types.patch
+features/all/db-mok-keyring/0003-efi-Add-an-EFI-signature-blob-parser.patch
+features/all/db-mok-keyring/0004-MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch
+features/all/db-mok-keyring/0005-MODSIGN-Allow-the-db-UEFI-variable-to-be-suppressed.patch
+features/all/db-mok-keyring/0006-Make-get_cert_list-not-complain-about-cert-lists-tha.patch
+features/all/db-mok-keyring/0007-modsign-Use-secondary-trust-keyring-for-module-signi.patch
+features/all/db-mok-keyring/0001-MODSIGN-do-not-load-mok-when-secure-boot-disabled.patch
+features/all/db-mok-keyring/0002-MODSIGN-load-blacklist-from-MOKx.patch
+features/all/db-mok-keyring/0003-MODSIGN-checking-the-blacklisted-hash-before-loading-a-kernel-module.patch
+features/all/db-mok-keyring/0004-MODSIGN-check-the-attributes-of-db-and-mok.patch
+features/all/db-mok-keyring/modsign-make-shash-allocation-failure-fatal.patch
+
+# Fix exported symbol versions
+bugfix/all/module-disable-matching-missing-version-crc.patch
+
+# Tools bug fixes
+bugfix/all/usbip-document-tcp-wrappers.patch
+bugfix/all/kbuild-fix-recordmcount-dependency.patch
+bugfix/all/tools-perf-man-date.patch
+bugfix/all/tools-perf-remove-shebangs.patch
+bugfix/all/tools-lib-traceevent-use-ldflags.patch
+bugfix/x86/revert-perf-build-fix-libunwind-feature-detection-on.patch
+bugfix/all/tools-build-remove-bpf-run-time-check-at-build-time.patch
+bugfix/all/cpupower-bump-soname-version.patch
+bugfix/all/libcpupower-hide-private-function.patch
+bugfix/all/cpupower-fix-checks-for-cpu-existence.patch
+bugfix/all/usbip-fix-misuse-of-strncpy.patch
+bugfix/x86/tools-turbostat-Add-checks-for-failure-of-fgets-and-.patch
+bugfix/all/libbpf-add-soname-to-shared-object.patch
+bugfix/all/libbpf-link-shared-object-with-libelf.patch
+bugfix/all/libbpf-generate-pkg-config.patch
+bugfix/all/perf-script-python-Add-Python3-support-to-netdev-tim.patch
+bugfix/all/perf-script-python-Add-Python3-support-to-failed-sys.patch
+bugfix/all/perf-script-python-Add-Python3-support-to-mem-phys-a.patch
+bugfix/all/perf-script-python-Add-Python3-support-to-net_dropmo.patch
+bugfix/all/perf-script-python-Add-Python3-support-to-powerpc-hc.patch
+bugfix/all/perf-script-python-Add-Python3-support-to-sctop.py.patch
+bugfix/all/perf-script-python-Add-Python3-support-to-stackcolla.patch
+bugfix/all/perf-script-python-Add-Python3-support-to-stat-cpi.p.patch
+bugfix/all/perf-script-python-Add-Python3-support-to-syscall-co.patch
+bugfix/all/perf-script-python-Add-Python3-support-to-syscall-co-de667cce7f4f.patch
+bugfix/all/perf-script-python-Remove-mixed-indentation.patch
+bugfix/all/perf-script-python-Add-Python3-support-to-futex-cont.patch
+bugfix/all/perf-script-python-add-Python3-support-to-check-perf.patch
+bugfix/all/perf-script-python-Add-Python3-support-to-event_anal.patch
+bugfix/all/perf-script-python-Add-Python3-support-to-intel-pt-e.patch
+bugfix/all/perf-script-python-Add-Python3-support-to-export-to-.patch
+bugfix/all/perf-script-python-Add-Python3-support-to-export-to-ebf6c5c181ab.patch
+
+# wireless: Disable regulatory.db direct loading (until we sort out signing)
+debian/wireless-disable-regulatory.db-direct-loading.patch
+
+# Licence clarification
+bugfix/all/documentation-media-uapi-explicitly-say-there-are-no-invariant-sections.patch
+
+# overlay: allow mounting in user namespaces
+debian/overlayfs-permit-mounts-in-userns.patch
+
+# Amazon ENA ethernet driver backport from Linux 4.20
+features/all/ena/0001-net-ethernet-remove-redundant-include.patch
+features/all/ena/0002-net-ena-minor-performance-improvement.patch
+features/all/ena/0003-net-ena-complete-host-info-to-match-latest-ENA-spec.patch
+features/all/ena/0004-net-ena-introduce-Low-Latency-Queues-data-structures.patch
+features/all/ena/0005-net-ena-add-functions-for-handling-Low-Latency-Queue.patch
+features/all/ena/0006-net-ena-add-functions-for-handling-Low-Latency-Queue.patch
+features/all/ena/0007-net-ena-use-CSUM_CHECKED-device-indication-to-report.patch
+features/all/ena/0008-net-ena-explicit-casting-and-initialization-and-clea.patch
+features/all/ena/0009-net-ena-limit-refill-Rx-threshold-to-256-to-avoid-la.patch
+features/all/ena/0010-net-ena-change-rx-copybreak-default-to-reduce-kernel.patch
+features/all/ena/0011-net-ena-remove-redundant-parameter-in-ena_com_admin_.patch
+features/all/ena/0012-net-ena-update-driver-version-to-2.0.1.patch
+features/all/ena/0013-net-ena-fix-indentations-in-ena_defs-for-better-read.patch
+features/all/ena/0015-net-ena-enable-Low-Latency-Queues.patch
+features/all/ena/0016-net-ena-fix-compilation-error-in-xtensa-architecture.patch
+features/all/ena/0017-net-ena-fix-crash-during-ena_remove.patch
+features/all/ena/0018-net-ena-update-driver-version-from-2.0.1-to-2.0.2.patch
+
+features/all/ena/net-ena-update-driver-version-from-2.0.2-to-2.0.3.patch
+features/all/ena/net-ena-fix-set-freed-objects-to-NULL-to-avoid-faili.patch
+features/all/ena/net-ena-fix-return-value-of-ena_com_config_llq_info.patch
+features/all/ena/net-ena-improve-latency-by-disabling-adaptive-interr.patch
+features/all/ena/net-ena-add-handling-of-llq-max-tx-burst-size.patch
+features/all/ena/net-ena-replace-free_tx-rx_ids-union-with-single-fre.patch
+features/all/ena/net-ena-arrange-ena_probe-function-variables-in-reve.patch
+features/all/ena/net-ena-add-newline-at-the-end-of-pr_err-prints.patch
+features/all/ena/net-ena-allow-automatic-fallback-to-polling-mode.patch
+features/all/ena/net-ena-add-support-for-changing-max_header_size-in-.patch
+features/all/ena/net-ena-optimise-calculations-for-CQ-doorbell.patch
+features/all/ena/net-ena-use-dev_info_once-instead-of-static-variable.patch
+features/all/ena/net-ena-add-MAX_QUEUES_EXT-get-feature-admin-command.patch
+features/all/ena/net-ena-enable-negotiating-larger-Rx-ring-size.patch
+features/all/ena/net-ena-make-ethtool-show-correct-current-and-max-qu.patch
+features/all/ena/net-ena-allow-queue-allocation-backoff-when-low-on-m.patch
+features/all/ena/net-ena-add-ethtool-function-for-changing-io-queue-s.patch
+features/all/ena/net-ena-update-driver-version-from-2.0.3-to-2.1.0.patch
+features/all/ena/net-ena-Fix-bug-where-ring-allocation-backoff-stoppe.patch
+features/all/ena/net-ena-don-t-wake-up-tx-queue-when-down.patch
+features/all/ena/net-ena-add-good-checksum-counter.patch
+features/all/ena/net-ena-add-intr_moder_rx_interval-to-struct-ena_com.patch
+features/all/ena/net-ena-remove-inline-keyword-from-functions-in-.c.patch
+features/all/ena/net-ena-switch-to-dim-algorithm-for-rx-adaptive-inte.patch
+features/all/ena/net-ena-reimplement-set-get_coalesce.patch
+features/all/ena/net-ena-enable-the-interrupt_moderation-in-driver_su.patch
+features/all/ena/net-ena-remove-code-duplication-in-ena_com_update_no.patch
+features/all/ena/net-ena-remove-old-adaptive-interrupt-moderation-cod.patch
+features/all/ena/net-ena-remove-ena_restore_ethtool_params-and-releva.patch
+features/all/ena/net-ena-remove-all-old-adaptive-rx-interrupt-moderat.patch
+features/all/ena/net-ena-fix-update-of-interrupt-moderation-register.patch
+features/all/ena/net-ena-fix-retrieval-of-nonadaptive-interrupt-moder.patch
+features/all/ena/net-ena-fix-incorrect-update-of-intr_delay_resolutio.patch
+
+# Backported bugfixes from 4.20/4.21 for the Huawei TaiShan server platform (aka D06)
+bugfix/arm64/huawei-taishan/0002-scsi-hisi_sas-Move-evaluation-of-hisi_hba-in-hisi_sa.patch
+bugfix/arm64/huawei-taishan/0005-scsi-hisi_sas-unmask-interrupts-ent72-and-ent74.patch
+bugfix/arm64/huawei-taishan/0006-scsi-hisi_sas-Use-block-layer-tag-instead-for-IPTT.patch
+bugfix/arm64/huawei-taishan/0007-scsi-hisi_sas-Update-v3-hw-AIP_LIMIT-and-CFG_AGING_T.patch
+bugfix/arm64/huawei-taishan/0008-scsi-hisi_sas-Fix-spin-lock-management-in-slot_index.patch
+bugfix/arm64/huawei-taishan/0009-scsi-hisi_sas-use-dma_set_mask_and_coherent.patch
+bugfix/arm64/huawei-taishan/0010-scsi-hisi_sas-Create-separate-host-attributes-per-HB.patch
+bugfix/arm64/huawei-taishan/0011-scsi-hisi_sas-Add-support-for-interrupt-converge-for.patch
+bugfix/arm64/huawei-taishan/0012-scsi-hisi_sas-Add-support-for-interrupt-coalescing-f.patch
+bugfix/arm64/huawei-taishan/0013-scsi-hisi_sas-Relocate-some-codes-to-avoid-an-unused.patch
+bugfix/arm64/huawei-taishan/0014-scsi-hisi_sas-Fix-warnings-detected-by-sparse.patch
+bugfix/arm64/huawei-taishan/0015-scsi-hisi_sas-Relocate-some-code-to-reduce-complexit.patch
+bugfix/arm64/huawei-taishan/0016-scsi-hisi_sas-Make-sg_tablesize-consistent-value.patch
+bugfix/arm64/huawei-taishan/0017-net-hns3-remove-unnecessary-configuration-recapture-.patch
+bugfix/arm64/huawei-taishan/0018-net-hns3-remove-1000M-half-support-of-phy.patch
+bugfix/arm64/huawei-taishan/0019-net-hns3-synchronize-speed-and-duplex-from-phy-when-.patch
+bugfix/arm64/huawei-taishan/0020-net-hns3-getting-tx-and-dv-buffer-size-through-firmw.patch
+bugfix/arm64/huawei-taishan/0021-net-hns3-aligning-buffer-size-in-SSU-to-256-bytes.patch
+bugfix/arm64/huawei-taishan/0022-net-hns3-fix-a-SSU-buffer-checking-bug.patch
+bugfix/arm64/huawei-taishan/0023-net-hns3-change-default-tc-state-to-close.patch
+bugfix/arm64/huawei-taishan/0024-net-hns3-fix-a-bug-caused-by-udelay.patch
+bugfix/arm64/huawei-taishan/0025-net-hns3-remove-redundant-variable-initialization.patch
+bugfix/arm64/huawei-taishan/0026-net-hns3-call-hns3_nic_net_open-while-doing-HNAE3_UP.patch
+bugfix/arm64/huawei-taishan/0029-RDMA-hns-Add-constraint-on-the-setting-of-local-ACK-.patch
+bugfix/arm64/huawei-taishan/0030-RDMA-hns-Modify-the-pbl-ba-page-size-for-hip08.patch
+bugfix/arm64/huawei-taishan/0031-RDMA-hns-RDMA-hns-Assign-rq-head-pointer-when-enable.patch
+bugfix/arm64/huawei-taishan/0033-scsi-hisi_sas-fix-calls-to-dma_set_mask_and_coherent.patch
+
+# Backported DTB support for Raspberry Pi Compute Module 3 from 4.20-rc1:
+features/arm/ARM-dts-add-Raspberry-Pi-Compute-Module-3-and-IO-boa.patch
+features/arm64/arm64-dts-broadcom-Add-reference-to-Compute-Module-I.patch
+features/arm64/arm64-dts-broadcom-Use-the-.dtb-name-in-the-rule-rat.patch
+
+# Backported devicetree support for Raspberry Pi 3 1+ from 5.1
+features/arm/ARM-dts-add-Raspberry-Pi-3-A-Plus.patch
+features/arm64/arm64-dts-broadcom-Add-reference-to-RPi-3-A-Plus.patch
+features/arm/ARM-dts-bcm283x-Correct-vchiq-compatible-string.patch
+features/arm/staging-vc04_services-Use-correct-cache-line-size.patch
+
+# Preserve PCI bridge boot configuration if requested by firmware
+bugfix/all/PCI-ACPI-Evaluate-PCI-Boot-Configuration-_DSM.patch
+bugfix/all/PCI-Don-t-auto-realloc-if-we-re-preserving-firmware-.patch
+bugfix/arm64/arm64-PCI-Allow-resource-reallocation-if-necessary.patch
+bugfix/arm64/arm64-PCI-Preserve-firmware-configuration-when-desir.patch
+
+# Security fixes
+debian/i386-686-pae-pci-set-pci-nobios-by-default.patch
+debian/ntfs-mark-it-as-broken.patch
+
+# ABI maintenance
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 000000000..92049ad7e
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,108 @@
+#!/usr/bin/make -f
+
+SHELL := sh -e
+SOURCE := $(shell dpkg-parsechangelog -SSource)
+VERSION := $(shell dpkg-parsechangelog -SVersion)
+VERSION_UPSTREAM := $(shell echo "$(VERSION)" | sed -e 's,-[^-]*$$,,')
+VERSION_BINNMU := $(shell echo "$(VERSION)" | sed -rne 's,.*\+b([0-9]+)$$,\1,p')
+VERSION_SOURCE := $(patsubst %+b$(VERSION_BINNMU),%,$(VERSION))
+
+include /usr/share/dpkg/architecture.mk
+
+include debian/rules.defs
+
+ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+ DEBIAN_KERNEL_JOBS := $(subst parallel=,,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+endif
+ifdef DEBIAN_KERNEL_JOBS
+ MAKEFLAGS += -j$(DEBIAN_KERNEL_JOBS)
+endif
+
+.NOTPARALLEL:
+
+source: debian/control
+ dh_testdir
+ $(MAKE) -f debian/rules.gen source
+
+setup: debian/control
+ dh_testdir
+ $(MAKE) -f debian/rules.gen setup_$(DEB_HOST_ARCH)
+
+build: build-arch build-indep
+
+build-arch: debian/control
+ dh_testdir
+ $(MAKE) -f debian/rules.gen build-arch_$(DEB_HOST_ARCH)
+
+build-indep: debian/control
+ dh_testdir
+ $(MAKE) -f debian/rules.gen build-indep
+
+binary: binary-indep binary-arch
+
+binary-arch: build-arch
+ dh_testdir
+ $(MAKE) -f debian/rules.gen binary-arch_$(DEB_HOST_ARCH)
+
+binary-indep: build-indep
+ dh_testdir
+ $(MAKE) -f debian/rules.gen binary-indep
+
+DIR_ORIG = ../orig/$(SOURCE)-$(VERSION_UPSTREAM)
+TAR_ORIG_NAME = $(SOURCE)_$(VERSION_UPSTREAM).orig.tar.xz
+TAR_ORIG = $(firstword $(wildcard ../$(TAR_ORIG_NAME)) $(wildcard ../orig/$(TAR_ORIG_NAME)))
+
+orig: $(DIR_ORIG)
+ rsync --delete --exclude /debian --exclude .svk --exclude .svn --exclude .git --link-dest=$(DIR_ORIG)/ -a $(DIR_ORIG)/ .
+ QUILT_PATCHES='$(CURDIR)/debian/patches' QUILT_PC=.pc quilt push --quiltrc - -a -q --fuzz=0
+
+$(DIR_ORIG):
+ifeq ($(TAR_ORIG),)
+ $(error Cannot find orig tarball $(TAR_ORIG_NAME))
+else
+ mkdir -p ../orig
+ tar -C ../orig -xaf $(TAR_ORIG)
+endif
+
+maintainerclean:
+ rm -f debian/config.defines.dump debian/control debian/control.md5sum debian/linux-headers-* debian/linux-image-* debian/rules.gen
+ rm -rf $(filter-out debian .svk .svn .git, $(wildcard * .[^.]*))
+
+clean: debian/control
+ dh_testdir
+ rm -rf $(BUILD_DIR) $(STAMPS_DIR) debian/lib/python/debian_linux/*.pyc debian/lib/python/debian_linux/__pycache__ $$(find debian -maxdepth 1 -type d -name 'linux-*') debian/*-modules-*-di* debian/kernel-image-*-di* debian/xen-linux-system-* debian/*-tmp
+ dh_clean
+
+CONTROL_FILES = $(BUILD_DIR)/version-info $(wildcard debian/templates/*.in)
+CONTROL_FILES += debian/config/defines $(wildcard debian/config/*/defines) $(wildcard debian/config/*/*/defines)
+CONTROL_FILES += debian/installer/kernel-versions debian/installer/package-list
+
+# debian/bin/gencontrol.py uses debian/changelog as input, but the
+# output only depends on the source name and version. To avoid
+# frequent changes to debian/control.md5sum, include only those fields
+# in the checksum.
+$(BUILD_DIR)/version-info: debian/changelog
+ mkdir -p $(@D)
+ printf >$@ 'Source: %s\nVersion: %s\n' $(SOURCE) $(VERSION_SOURCE)
+
+debian/control debian/rules.gen: debian/bin/gencontrol.py $(CONTROL_FILES)
+ifeq ($(wildcard debian/control.md5sum),)
+ $(MAKE) -f debian/rules debian/control-real
+else
+ md5sum --check debian/control.md5sum --status || \
+ $(MAKE) -f debian/rules debian/control-real
+endif
+
+debian/control-real: debian/bin/gencontrol.py $(CONTROL_FILES)
+# Hash randomisation makes the pickled config unreproducible
+ PYTHONHASHSEED=0 $<
+ md5sum $^ > debian/control.md5sum
+ @echo
+ @echo This target is made to fail intentionally, to make sure
+ @echo that it is NEVER run during the automated build. Please
+ @echo ignore the following error, the debian/control file has
+ @echo been generated SUCCESSFULLY.
+ @echo
+ exit 1
+
+.PHONY: binary binary-% build build-% clean debian/control-real orig setup source
diff --git a/debian/rules.d/Makefile.inc b/debian/rules.d/Makefile.inc
new file mode 100644
index 000000000..719e8ca67
--- /dev/null
+++ b/debian/rules.d/Makefile.inc
@@ -0,0 +1,59 @@
+# Normalise OUTDIR to avoid triggering rebuilds
+override OUTDIR := $(patsubst ./%,%,$(OUTDIR))
+
+VPATH = $(top_rulesdir)/$(OUTDIR) $(top_srcdir)/$(OUTDIR)
+
+SHELL = /bin/sh -e
+
+CC = $(CROSS_COMPILE)gcc
+CXX = $(CROSS_COMPILE)g++
+CFLAGS := $(shell dpkg-buildflags --get CFLAGS) -Wall
+CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS) \
+ -I$(top_srcdir)/$(OUTDIR) \
+ -I$(top_srcdir)/debian/build/build-tools/$(OUTDIR) \
+ -isystem $(top_srcdir)/debian/build/build-tools/include
+CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS) -Wall
+LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)
+
+installdir ?= $(prefix)/$(OUTDIR)
+
+all: all-local all-recursive
+clean: clean-recursive
+install: install-local install-recursive
+
+%-recursive:
+ +@list='$(SUBDIRS)'; \
+ for subdir in $$list; do \
+ echo "Making $* in $$subdir"; \
+ mkdir -p $$subdir; \
+ $(MAKE) -C $$subdir -f $(top_rulesdir)/$(OUTDIR)/$$subdir/Makefile OUTDIR=$(OUTDIR)/$$subdir $*; \
+ done
+
+all-local: $(PROGS)
+
+install-local: install-local-progs install-local-scripts install-local-data
+
+install-local-progs: $(PROGS)
+ @for p in $^; do \
+ echo " install -m755 '$$p' '$(DESTDIR)/$(installdir)'"; \
+ install -D -m755 "$$p" "$(DESTDIR)/$(installdir)/$$(basename $$p)"; \
+ done
+
+SCRIPTS_REAL = $(wildcard $(addprefix $(top_srcdir)/$(OUTDIR)/,$(SCRIPTS)))
+
+install-local-scripts: $(SCRIPTS_REAL)
+ @for p in $^; do \
+ echo " install -m755 '$$p' '$(DESTDIR)/$(installdir)'"; \
+ install -D -m755 \
+ -s --strip-program $(top_srcdir)/debian/bin/fix-shebang \
+ "$$p" "$(DESTDIR)/$(installdir)/$$(basename $$p)"; \
+ done
+
+DATA_REAL = $(wildcard $(addprefix $(top_srcdir)/$(OUTDIR)/,$(DATA)))
+
+install-local-data: $(DATA_REAL)
+ @for p in $^; do \
+ echo " install -m644 '$$p' '$(DESTDIR)/$(installdir)'"; \
+ install -D -m644 "$$p" "$(DESTDIR)/$(installdir)/$$(basename $$p)"; \
+ done
+
diff --git a/debian/rules.d/arch/powerpc/boot/Makefile b/debian/rules.d/arch/powerpc/boot/Makefile
new file mode 100644
index 000000000..9dc418f26
--- /dev/null
+++ b/debian/rules.d/arch/powerpc/boot/Makefile
@@ -0,0 +1,18 @@
+PROGS = \
+ addnote \
+ hack-coff \
+ mktree
+
+SCRIPTS = \
+ wrapper
+
+include $(top_rulesdir)/Makefile.inc
+
+CPPFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
+
+# gcc for ppc64 currently seems to be treating -I like -isystem, and
+# since arch/powerpc/boot has substitute versions of some standard
+# headers for use at boot time, they are also included in these tools.
+# In this case there is actually no need to use the -I option, so
+# filter it out.
+CPPFLAGS := $(filter-out -I%,$(CPPFLAGS))
diff --git a/debian/rules.d/scripts/Makefile b/debian/rules.d/scripts/Makefile
new file mode 100644
index 000000000..a015ddfa9
--- /dev/null
+++ b/debian/rules.d/scripts/Makefile
@@ -0,0 +1,47 @@
+PROGS = \
+ bin2c \
+ conmakehash \
+ extract-cert \
+ kallsyms \
+ pnmtologo \
+ recordmcount \
+ sign-file \
+ unifdef
+
+DATA = \
+ Kbuild.include \
+ Makefile.* \
+ mkversion \
+ module-common.lds \
+ subarch.include
+
+SCRIPTS = \
+ checkincludes.pl \
+ checkstack.pl \
+ checkversion.pl \
+ depmod.sh \
+ gcc-*.sh \
+ gen_initramfs_list.sh \
+ headers_install.sh \
+ kernel-doc \
+ ld-version.sh \
+ Lindent \
+ makelst \
+ mksysmap \
+ mkuboot.sh \
+ namespace.pl \
+ patch-kernel \
+ recordmcount.pl \
+ setlocalversion \
+ ver_linux
+
+SUBDIRS = \
+ basic \
+ genksyms \
+ kconfig \
+ mod
+
+include $(top_rulesdir)/Makefile.inc
+
+CPPFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
+extract-cert sign-file: LDLIBS += -lcrypto
diff --git a/debian/rules.d/scripts/basic/Makefile b/debian/rules.d/scripts/basic/Makefile
new file mode 100644
index 000000000..127f53fa8
--- /dev/null
+++ b/debian/rules.d/scripts/basic/Makefile
@@ -0,0 +1,4 @@
+PROGS = \
+ fixdep
+
+include $(top_rulesdir)/Makefile.inc
diff --git a/debian/rules.d/scripts/genksyms/Makefile b/debian/rules.d/scripts/genksyms/Makefile
new file mode 100644
index 000000000..88524563f
--- /dev/null
+++ b/debian/rules.d/scripts/genksyms/Makefile
@@ -0,0 +1,16 @@
+PROGS = genksyms
+
+include $(top_rulesdir)/Makefile.inc
+
+genksyms: genksyms.o parse.tab.o lex.lex.o
+
+lex.lex.o: keywords.c parse.tab.h
+
+parse.tab.c: parse.y
+ $(YACC) -o$@ -t -l $<
+
+parse.tab.h: parse.y
+ $(YACC) -o/dev/null --defines=$@ -t -l $<
+
+lex.lex.c: lex.l
+ $(LEX) -o$@ -L $<
diff --git a/debian/rules.d/scripts/kconfig/Makefile b/debian/rules.d/scripts/kconfig/Makefile
new file mode 100644
index 000000000..1fc248f29
--- /dev/null
+++ b/debian/rules.d/scripts/kconfig/Makefile
@@ -0,0 +1,13 @@
+PROGS = conf
+
+include $(top_rulesdir)/Makefile.inc
+
+conf: conf.o zconf.tab.o
+
+zconf.tab.c: kconf_id.c zconf.lex.c
+
+%.lex.c: %.l
+ flex -o$@ -L $<
+
+%.tab.c: %.y
+ bison -o$@ -t -l $<
diff --git a/debian/rules.d/scripts/mod/Makefile b/debian/rules.d/scripts/mod/Makefile
new file mode 100644
index 000000000..35bf77cd2
--- /dev/null
+++ b/debian/rules.d/scripts/mod/Makefile
@@ -0,0 +1,22 @@
+PROGS = \
+ modpost \
+ modpost.real-lsb-32 \
+ modpost.real-lsb-64 \
+ modpost.real-msb-32 \
+ modpost.real-msb-64
+
+include $(top_rulesdir)/Makefile.inc
+
+wrapperdir = $(top_rulesdir)/$(OUTDIR)
+
+modpost.real-%:
+ $(MAKE) -f $(wrapperdir)/Makefile.real TYPE=$* SOURCEDIR=$(top_srcdir)/scripts/mod
+
+%: %.o
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
+
+modpost-opts.h: $(top_srcdir)/scripts/mod/modpost.c
+ $(wrapperdir)/gendef.py $< > $@
+
+modpost.o: modpost.c modpost-opts.h
+ $(CC) $(CFLAGS) -I $(CURDIR) -c -o $@ $<
diff --git a/debian/rules.d/scripts/mod/Makefile.real b/debian/rules.d/scripts/mod/Makefile.real
new file mode 100644
index 000000000..8b097f897
--- /dev/null
+++ b/debian/rules.d/scripts/mod/Makefile.real
@@ -0,0 +1,23 @@
+PROGS = modpost.real-$(TYPE)
+
+include $(top_rulesdir)/Makefile.inc
+
+wrapperdir = $(top_rulesdir)/$(OUTDIR)
+CFLAGS += -I $(CURDIR)/real-$(TYPE) -I $(wrapperdir)/real-$(TYPE)
+
+modpost.real-$(TYPE): file2alias.real-$(TYPE).o modpost.real-$(TYPE).o sumversion.real-$(TYPE).o
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
+
+%.real-$(TYPE).o: $(SOURCEDIR)/%.c real-$(TYPE)/devicetable-offsets.h
+ $(CC) $(CFLAGS) -c -o $@ $<
+
+real-$(TYPE)/devicetable-offsets.s: $(SOURCEDIR)/devicetable-offsets.c
+ mkdir -p real-$(TYPE)
+ $(CC) -include $(wrapperdir)/real-$(TYPE)/types.h $(CFLAGS) -nostdinc -I$(top_srcdir)/include -S -o $@ $<
+
+real-$(TYPE)/devicetable-offsets.h: real-$(TYPE)/devicetable-offsets.s
+ echo >$@ "#define __DEVICEVTABLE_OFFSETS_H__"
+ sed -ne "s:^[[:space:]]*\.ascii[[:space:]]*\"\(.*\)\".*:\1:; \
+ /^->/{s:->#\(.*\):/* \1 */:; \
+ s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
+ s:->::; p;}" $< >>$@
diff --git a/debian/rules.d/scripts/mod/elfconfig.h b/debian/rules.d/scripts/mod/elfconfig.h
new file mode 100644
index 000000000..8c90ea600
--- /dev/null
+++ b/debian/rules.d/scripts/mod/elfconfig.h
@@ -0,0 +1,7 @@
+#include <endian.h>
+
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+#define HOST_ELFDATA ELFDATA2LSB
+#elif __BYTE_ORDER == __BIG_ENDIAN
+#define HOST_ELFDATA ELFDATA2MSB
+#endif
diff --git a/debian/rules.d/scripts/mod/gendef.py b/debian/rules.d/scripts/mod/gendef.py
new file mode 100755
index 000000000..55d3fc60e
--- /dev/null
+++ b/debian/rules.d/scripts/mod/gendef.py
@@ -0,0 +1,20 @@
+#!/usr/bin/python3
+import re
+import sys
+
+for line in open(sys.argv[1]):
+ match = re.search(r'getopt\(argc, argv, "([\w:]*?)"\)', line)
+ if match:
+ options = match.group(1)
+ break
+else:
+ raise RuntimeError
+
+print('#define GETOPT_OPTIONS "%s"' % options)
+
+print('#define GETOPT_CASE', end=' ')
+for c in options:
+ if c == ':' or c == 'T':
+ continue
+ print("case '%c':" % c, end=' ')
+print()
diff --git a/debian/rules.d/scripts/mod/modpost.c b/debian/rules.d/scripts/mod/modpost.c
new file mode 100644
index 000000000..d574957ae
--- /dev/null
+++ b/debian/rules.d/scripts/mod/modpost.c
@@ -0,0 +1,136 @@
+#include <elf.h>
+#include <errno.h>
+#include <getopt.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "modpost-opts.h"
+
+int main (int argc, char *argv[])
+{
+ char const *data, *class;
+ char *list_name = NULL;
+ char *name = NULL;
+ char prog[1024];
+ unsigned char ei[EI_NIDENT];
+ int opt;
+ FILE *file;
+
+ while ((opt = getopt (argc, argv, GETOPT_OPTIONS)) != -1)
+ {
+ switch(opt)
+ {
+ GETOPT_CASE
+ break;
+ case 'T':
+ list_name = optarg;
+ break;
+ default:
+ return EXIT_FAILURE;
+ }
+ }
+
+ if (optind != argc)
+ {
+ name = argv[optind];
+ }
+ else if (list_name)
+ {
+ size_t name_len;
+ int is_stdin = strcmp (list_name, "-") == 0;
+
+ /* Read first line of list file */
+ if (is_stdin)
+ {
+ file = stdin;
+ setvbuf(stdin, NULL, _IONBF, 0); /* don't over-read */
+ }
+ else
+ {
+ file = fopen (list_name, "r");
+ if (!file)
+ {
+ fprintf (stderr, "Can't open \"%s\"\n", list_name);
+ return EXIT_FAILURE;
+ }
+ }
+ if (getline (&name, &name_len, file) < 0)
+ {
+ if (errno)
+ {
+ fprintf (stderr, "Can't read \"%s\"\n", list_name);
+ return EXIT_FAILURE;
+ }
+ else
+ {
+ /* Empty list */
+ return EXIT_SUCCESS;
+ }
+ }
+ if (!is_stdin)
+ fclose(file);
+
+ /* Remove new-line */
+ name [strcspn (name, "\n")] = 0;
+
+ /* If this came from stdin, we need to add the first name to the
+ * arguments, because the upstream modpost can't read it again.
+ */
+ if (is_stdin)
+ {
+ char **new_argv = malloc (sizeof(*argv) * (argc + 2));
+ memcpy(new_argv, argv, sizeof(*argv) * argc);
+ new_argv [argc] = name;
+ new_argv [argc + 1] = NULL;
+ argv = new_argv;
+ }
+ }
+ else
+ {
+ /* Empty list */
+ return EXIT_SUCCESS;
+ }
+
+ if (!(file = fopen (name, "r")))
+ {
+ fprintf (stderr, "Can't open \"%s\"\n", name);
+ return EXIT_FAILURE;
+ }
+
+ if (fread (ei, 1, EI_NIDENT, file) != EI_NIDENT)
+ {
+ fprintf (stderr, "Error: input truncated\n");
+ return EXIT_FAILURE;
+ }
+
+ if (memcmp (ei, ELFMAG, SELFMAG) != 0)
+ {
+ fprintf (stderr, "Error: not ELF\n");
+ return EXIT_FAILURE;
+ }
+ switch (ei[EI_DATA]) {
+ case ELFDATA2LSB:
+ data = "lsb";
+ break;
+ case ELFDATA2MSB:
+ data = "msb";
+ break;
+ default:
+ return EXIT_FAILURE;
+ }
+ switch (ei[EI_CLASS]) {
+ case ELFCLASS32:
+ class = "32";
+ break;
+ case ELFCLASS64:
+ class = "64";
+ break;
+ default:
+ return EXIT_FAILURE;
+ }
+ snprintf (prog, sizeof prog, "%s.real-%s-%s", argv[0], data, class);
+
+ return execv (prog, argv);
+}
diff --git a/debian/rules.d/scripts/mod/real-lsb-32/elfconfig.h b/debian/rules.d/scripts/mod/real-lsb-32/elfconfig.h
new file mode 100644
index 000000000..1f7a7321a
--- /dev/null
+++ b/debian/rules.d/scripts/mod/real-lsb-32/elfconfig.h
@@ -0,0 +1,4 @@
+#define KERNEL_ELFCLASS ELFCLASS32
+#define KERNEL_ELFDATA ELFDATA2LSB
+#define MODULE_SYMBOL_PREFIX ""
+#include "../elfconfig.h"
diff --git a/debian/rules.d/scripts/mod/real-lsb-32/types.h b/debian/rules.d/scripts/mod/real-lsb-32/types.h
new file mode 100644
index 000000000..bad6dcccd
--- /dev/null
+++ b/debian/rules.d/scripts/mod/real-lsb-32/types.h
@@ -0,0 +1,3 @@
+#include "../types.h"
+typedef __u32 kernel_ulong_t;
+#define BITS_PER_LONG 32
diff --git a/debian/rules.d/scripts/mod/real-lsb-64/elfconfig.h b/debian/rules.d/scripts/mod/real-lsb-64/elfconfig.h
new file mode 100644
index 000000000..e6f519fcc
--- /dev/null
+++ b/debian/rules.d/scripts/mod/real-lsb-64/elfconfig.h
@@ -0,0 +1,4 @@
+#define KERNEL_ELFCLASS ELFCLASS64
+#define KERNEL_ELFDATA ELFDATA2LSB
+#define MODULE_SYMBOL_PREFIX ""
+#include "../elfconfig.h"
diff --git a/debian/rules.d/scripts/mod/real-lsb-64/types.h b/debian/rules.d/scripts/mod/real-lsb-64/types.h
new file mode 100644
index 000000000..8d7b87591
--- /dev/null
+++ b/debian/rules.d/scripts/mod/real-lsb-64/types.h
@@ -0,0 +1,3 @@
+#include "../types.h"
+typedef __u64 __attribute__((aligned(8))) kernel_ulong_t;
+#define BITS_PER_LONG 64
diff --git a/debian/rules.d/scripts/mod/real-msb-32/elfconfig.h b/debian/rules.d/scripts/mod/real-msb-32/elfconfig.h
new file mode 100644
index 000000000..a9ae561ab
--- /dev/null
+++ b/debian/rules.d/scripts/mod/real-msb-32/elfconfig.h
@@ -0,0 +1,4 @@
+#define KERNEL_ELFCLASS ELFCLASS32
+#define KERNEL_ELFDATA ELFDATA2MSB
+#define MODULE_SYMBOL_PREFIX ""
+#include "../elfconfig.h"
diff --git a/debian/rules.d/scripts/mod/real-msb-32/types.h b/debian/rules.d/scripts/mod/real-msb-32/types.h
new file mode 100644
index 000000000..bad6dcccd
--- /dev/null
+++ b/debian/rules.d/scripts/mod/real-msb-32/types.h
@@ -0,0 +1,3 @@
+#include "../types.h"
+typedef __u32 kernel_ulong_t;
+#define BITS_PER_LONG 32
diff --git a/debian/rules.d/scripts/mod/real-msb-64/elfconfig.h b/debian/rules.d/scripts/mod/real-msb-64/elfconfig.h
new file mode 100644
index 000000000..844d22f5c
--- /dev/null
+++ b/debian/rules.d/scripts/mod/real-msb-64/elfconfig.h
@@ -0,0 +1,4 @@
+#define KERNEL_ELFCLASS ELFCLASS64
+#define KERNEL_ELFDATA ELFDATA2MSB
+#define MODULE_SYMBOL_PREFIX ""
+#include "../elfconfig.h"
diff --git a/debian/rules.d/scripts/mod/real-msb-64/types.h b/debian/rules.d/scripts/mod/real-msb-64/types.h
new file mode 100644
index 000000000..8d7b87591
--- /dev/null
+++ b/debian/rules.d/scripts/mod/real-msb-64/types.h
@@ -0,0 +1,3 @@
+#include "../types.h"
+typedef __u64 __attribute__((aligned(8))) kernel_ulong_t;
+#define BITS_PER_LONG 64
diff --git a/debian/rules.d/scripts/mod/types.h b/debian/rules.d/scripts/mod/types.h
new file mode 100644
index 000000000..aba3827f4
--- /dev/null
+++ b/debian/rules.d/scripts/mod/types.h
@@ -0,0 +1,9 @@
+/* Minimal definitions for mod_devicetable.h and devicetable-offsets.c */
+typedef unsigned char __u8;
+typedef unsigned short __u16;
+typedef unsigned int __u32;
+typedef unsigned long long __u64;
+typedef struct {
+ __u8 b[16];
+} uuid_le;
+#define offsetof(a,b) __builtin_offsetof(a,b)
diff --git a/debian/rules.d/tools/hv/Makefile b/debian/rules.d/tools/hv/Makefile
new file mode 100644
index 000000000..8c563673b
--- /dev/null
+++ b/debian/rules.d/tools/hv/Makefile
@@ -0,0 +1,17 @@
+ifeq ($(filter i386 amd64 x32,$(DEB_HOST_ARCH)),)
+
+# Build nothing
+include $(top_rulesdir)/Makefile.inc
+
+else
+
+PROGS = \
+ hv_fcopy_daemon \
+ hv_kvp_daemon \
+ hv_vss_daemon
+
+installdir = /usr/sbin
+
+include $(top_rulesdir)/Makefile.inc
+
+endif
diff --git a/debian/rules.d/tools/lib/bpf/Makefile b/debian/rules.d/tools/lib/bpf/Makefile
new file mode 100644
index 000000000..bc454045d
--- /dev/null
+++ b/debian/rules.d/tools/lib/bpf/Makefile
@@ -0,0 +1,17 @@
+include $(top_rulesdir)/Makefile.inc
+
+DEB_HOST_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+
+# Catch use of missing kernel APIs early
+CFLAGS += -Werror=implicit-function-declaration
+
+MAKE_BPF := +$(MAKE) -C $(top_srcdir)/$(OUTDIR) O=$(CURDIR)
+MAKE_BPF += prefix=/usr
+MAKE_BPF += libdir_relative=lib/$(DEB_HOST_MULTIARCH)
+MAKE_BPF += V=$(KBUILD_VERBOSE)
+
+all:
+ $(MAKE_BPF)
+
+install:
+ $(MAKE_BPF) install install_headers
diff --git a/debian/rules.d/tools/objtool/Makefile b/debian/rules.d/tools/objtool/Makefile
new file mode 100644
index 000000000..9990cde31
--- /dev/null
+++ b/debian/rules.d/tools/objtool/Makefile
@@ -0,0 +1,11 @@
+include $(top_rulesdir)/Makefile.inc
+
+all:
+# For now, only supported target architecture is x86. Later we'll need to build
+# for multiple targets and add a wrapper, same as for modpost.
+# objtool explicitly sets CC and LD to be native tools; we need to override
+# this on the command line to make cross-builds work.
+ $(MAKE) -C $(top_srcdir)/tools/objtool O=$(CURDIR) HOSTARCH=$(KERNEL_ARCH) ARCH=x86 CC=$(CC) LD=$(CROSS_COMPILE)ld V=$(KBUILD_VERBOSE)
+
+install:
+ install -D -m755 objtool $(DESTDIR)/$(installdir)/objtool
diff --git a/debian/rules.d/tools/perf/Makefile b/debian/rules.d/tools/perf/Makefile
new file mode 100644
index 000000000..3c397c75e
--- /dev/null
+++ b/debian/rules.d/tools/perf/Makefile
@@ -0,0 +1,62 @@
+include $(top_rulesdir)/Makefile.inc
+
+MAKE_PERF := $(MAKE) O=$(CURDIR) prefix=/usr V=1 VF=1 ARCH=$(KERNEL_ARCH) WERROR=0 EXTRA_CFLAGS='$(CFLAGS) $(CPPFLAGS)' LDFLAGS='$(LDFLAGS)'
+
+# Disable Gtk UI until it's more usable
+MAKE_PERF += NO_GTK2=1
+
+# Do not build the unversioned jvmti library
+MAKE_PERF += feature-jvmti=0
+
+# Include version in all directory names
+MAKE_PERF += perfexecdir=lib/perf_$(VERSION)-core plugindir=/usr/lib/traceevent_$(VERSION)/plugins STRACE_GROUPS_DIR=share/perf_$(VERSION)-core/strace/groups tipdir=share/doc/linux-perf-$(VERSION) perf_include_dir=include/perf_$(VERSION) perf_examples_dir=share/doc/linux-perf-$(VERSION)/examples
+
+# perf can link against libbfd if available, but the result is
+# undistributable as they are licenced under GPL v2 and v3+
+# respectively. Override detection of libbfd and insist that
+# cplus_demangle() can be found in libiberty (LGPL v2.1+).
+MAKE_PERF += feature-libbfd=0 feature-libbfd-liberty=0 feature-libbfd-liberty-z=0 HAVE_CPLUS_DEMANGLE_SUPPORT=1
+
+# perf can link against libcrypto if available, but the result is
+# undistributable as GPL v2 and OpenSSL are not compatible without
+# an explicit exception. Override detection of libcrypto.
+MAKE_PERF += NO_LIBCRYPTO=1
+
+# Currently babeltrace support for `perf data' is not automatically detected.
+MAKE_PERF += LIBBABELTRACE=1
+
+# Build with asciidoctor, not asciidoc
+MAKE_PERF += USE_ASCIIDOCTOR=1
+
+# Build with Python 3, not Python 2
+MAKE_PERF += PYTHON=/usr/bin/python3
+
+all:
+# perf changes some default directories depending on whether DESTDIR is
+# set. We must define it even when building to avoid a rebuild when we
+# run 'make install'.
+ +$(MAKE_PERF) -C $(top_srcdir)/tools/perf -f Makefile.perf all VERSION=$(VERSION) DESTDIR=dummy
+ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
+ +$(MAKE_PERF) -C $(top_srcdir)/tools/perf/Documentation man VERSION=$(VERSION)
+endif
+# Check that perf didn't get linked against libbfd or libcrypto
+ type ldd
+ ! ldd $(CURDIR)/perf | grep -E '\blib(bfd|crypto)'
+# Check that it includes cplus_demangle from libiberty
+ grep cplus_demangle $(CURDIR)/perf
+
+install:
+ +$(MAKE_PERF) -C $(top_srcdir)/tools/perf -f Makefile.perf install VERSION=$(VERSION)
+# Don't install a 'trace' alias yet:
+# - We need a wrapper for it anyway, so there's little point adding a
+# versioned link
+# - It doesn't work out-of-the-box as non-root (it depends on debugfs),
+# so it's less widely useful than strace
+# - 'perf trace' doesn't take much more typing
+ rm -f $(DESTDIR)/usr/bin/trace_$(VERSION)
+ mkdir -p $(DESTDIR)/usr/share/bash-completion/
+ mv $(DESTDIR)/etc/bash_completion.d \
+ $(DESTDIR)/usr/share/bash-completion/completions
+ rmdir --ignore-fail-on-non-empty $(DESTDIR)/etc
+# Check for unversioned files that are likely to result in file conflicts
+ cd $(DESTDIR) && ! find \! -type d \! -path '*[_-]$(VERSION)*' | grep .
diff --git a/debian/rules.d/tools/power/cpupower/Makefile b/debian/rules.d/tools/power/cpupower/Makefile
new file mode 100644
index 000000000..c43bd62f1
--- /dev/null
+++ b/debian/rules.d/tools/power/cpupower/Makefile
@@ -0,0 +1,26 @@
+include $(top_rulesdir)/Makefile.inc
+
+MAKE_CPUPOWER := $(shell dpkg-buildflags --export=cmdline) $(MAKE) O=$(CURDIR) CPUFREQ_BENCH=false V=true mandir=/usr/share/man
+
+MAKE_CPUPOWER += DEBUG=$(if $(filter noopt,$(DEB_BUILD_OPTIONS)),true,)
+
+# Don't strip binaries here; let dh_strip determine what to do
+MAKE_CPUPOWER += STRIP=true
+
+MAKE_CPUPOWER += CROSS='$(CROSS_COMPILE)'
+
+MAKE_CPUPOWER += PACKAGE_BUGREPORT='Debian\ \(reportbug\ linux-cpupower\)'
+
+MAKE_CPUPOWER += libdir=/usr/lib/$(DEB_HOST_MULTIARCH)
+
+all:
+ +$(MAKE_CPUPOWER) -C $(top_srcdir)/tools/power/cpupower
+
+install:
+ +$(MAKE_CPUPOWER) -C $(top_srcdir)/tools/power/cpupower install DESTDIR=$(DESTDIR)
+ifneq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
+ rm -rf $(DESTDIR)/usr/share/man
+endif
+
+clean:
+ +$(MAKE_CPUPOWER) -C $(top_srcdir)/tools/power/cpupower clean
diff --git a/debian/rules.d/tools/power/x86/Makefile b/debian/rules.d/tools/power/x86/Makefile
new file mode 100644
index 000000000..2b9d7735c
--- /dev/null
+++ b/debian/rules.d/tools/power/x86/Makefile
@@ -0,0 +1,5 @@
+SUBDIRS = \
+ turbostat \
+ x86_energy_perf_policy
+
+include $(top_rulesdir)/Makefile.inc
diff --git a/debian/rules.d/tools/power/x86/turbostat/Makefile b/debian/rules.d/tools/power/x86/turbostat/Makefile
new file mode 100644
index 000000000..4c4ed2cdf
--- /dev/null
+++ b/debian/rules.d/tools/power/x86/turbostat/Makefile
@@ -0,0 +1,7 @@
+PROGS = turbostat
+
+installdir = /usr/sbin
+
+include $(top_rulesdir)/Makefile.inc
+
+CPPFLAGS += -I"$(top_srcdir)/tools/include" -DMSRHEADER='"$(top_srcdir)/arch/x86/include/asm/msr-index.h"' -DINTEL_FAMILY_HEADER='"$(top_srcdir)/arch/x86/include/asm/intel-family.h"'
diff --git a/debian/rules.d/tools/power/x86/x86_energy_perf_policy/Makefile b/debian/rules.d/tools/power/x86/x86_energy_perf_policy/Makefile
new file mode 100644
index 000000000..b9ec56c89
--- /dev/null
+++ b/debian/rules.d/tools/power/x86/x86_energy_perf_policy/Makefile
@@ -0,0 +1,7 @@
+PROGS = x86_energy_perf_policy
+
+installdir = /usr/sbin
+
+include $(top_rulesdir)/Makefile.inc
+
+CPPFLAGS += -I"$(top_srcdir)/tools/include" -DMSRHEADER='"$(top_srcdir)/arch/x86/include/asm/msr-index.h"'
diff --git a/debian/rules.d/tools/usb/usbip/Makefile b/debian/rules.d/tools/usb/usbip/Makefile
new file mode 100644
index 000000000..3decaac98
--- /dev/null
+++ b/debian/rules.d/tools/usb/usbip/Makefile
@@ -0,0 +1,31 @@
+srcdir := $(top_srcdir)/tools/usb/usbip
+
+# Make sure we don't override top_srcdir in the sub-make. 'unexport
+# top_srcdir' is *not* sufficient; nor is adding 'MAKEFLAGS=' to the
+# sub-make command line.
+unexport MAKEFLAGS
+
+all: export CFLAGS := $(shell dpkg-buildflags --get CFLAGS)
+all: export CPPFLAGS := $(shell dpkg-buildflags --get CFLAGS) \
+ -isystem $(top_srcdir)/debian/build/build-tools/include
+all: export LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)
+all:
+ rsync -a $(srcdir)/ .
+ ./autogen.sh
+ ./configure \
+ --prefix=/usr \
+ --with-tcp-wrappers \
+ --with-usbids-dir=/usr/share/misc \
+ --disable-shared \
+ --disable-static \
+ --host=$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+ $(MAKE) V=$(KBUILD_VERBOSE)
+
+install:
+ $(MAKE) V=$(KBUILD_VERBOSE) install
+ifneq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
+ rm -rf $(DESTDIR)/usr/share/man
+endif
+
+clean:
+ rm -rf *
diff --git a/debian/rules.defs b/debian/rules.defs
new file mode 100644
index 000000000..9384a9b3e
--- /dev/null
+++ b/debian/rules.defs
@@ -0,0 +1,5 @@
+include /usr/share/dpkg/default.mk
+
+BUILD_DIR = debian/build
+STAMPS_DIR = debian/stamps
+
diff --git a/debian/rules.gen b/debian/rules.gen
new file mode 100644
index 000000000..aec70fcc3
--- /dev/null
+++ b/debian/rules.gen
@@ -0,0 +1,1140 @@
+.NOTPARALLEL:
+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_powerpcspe 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='4.19.0-21' ARCH='alpha' KERNEL_ARCH='alpha' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-alpha-generic-di nic-modules-4.19.0-21-alpha-generic-di nic-wireless-modules-4.19.0-21-alpha-generic-di nic-shared-modules-4.19.0-21-alpha-generic-di serial-modules-4.19.0-21-alpha-generic-di usb-serial-modules-4.19.0-21-alpha-generic-di ppp-modules-4.19.0-21-alpha-generic-di pata-modules-4.19.0-21-alpha-generic-di cdrom-core-modules-4.19.0-21-alpha-generic-di scsi-core-modules-4.19.0-21-alpha-generic-di scsi-modules-4.19.0-21-alpha-generic-di scsi-nic-modules-4.19.0-21-alpha-generic-di loop-modules-4.19.0-21-alpha-generic-di btrfs-modules-4.19.0-21-alpha-generic-di ext4-modules-4.19.0-21-alpha-generic-di isofs-modules-4.19.0-21-alpha-generic-di jfs-modules-4.19.0-21-alpha-generic-di xfs-modules-4.19.0-21-alpha-generic-di fat-modules-4.19.0-21-alpha-generic-di md-modules-4.19.0-21-alpha-generic-di multipath-modules-4.19.0-21-alpha-generic-di usb-modules-4.19.0-21-alpha-generic-di usb-storage-modules-4.19.0-21-alpha-generic-di fb-modules-4.19.0-21-alpha-generic-di input-modules-4.19.0-21-alpha-generic-di event-modules-4.19.0-21-alpha-generic-di mouse-modules-4.19.0-21-alpha-generic-di nic-pcmcia-modules-4.19.0-21-alpha-generic-di pcmcia-modules-4.19.0-21-alpha-generic-di nic-usb-modules-4.19.0-21-alpha-generic-di sata-modules-4.19.0-21-alpha-generic-di i2c-modules-4.19.0-21-alpha-generic-di crc-modules-4.19.0-21-alpha-generic-di crypto-modules-4.19.0-21-alpha-generic-di crypto-dm-modules-4.19.0-21-alpha-generic-di ata-modules-4.19.0-21-alpha-generic-di nbd-modules-4.19.0-21-alpha-generic-di squashfs-modules-4.19.0-21-alpha-generic-di zlib-modules-4.19.0-21-alpha-generic-di compress-modules-4.19.0-21-alpha-generic-di fuse-modules-4.19.0-21-alpha-generic-di srm-modules-4.19.0-21-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='4.19.0-21' ARCH='alpha' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-generic' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-alpha-generic\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-generic' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-generic' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='alpha' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-smp' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-alpha-smp\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-smp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_alpha_none_real:
+binary-arch_alpha_real:: setup_alpha
+binary-arch_alpha_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='alpha' KERNEL_ARCH='alpha' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='amd64' KERNEL_ARCH='x86' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-amd64-di nic-modules-4.19.0-21-amd64-di nic-wireless-modules-4.19.0-21-amd64-di nic-shared-modules-4.19.0-21-amd64-di serial-modules-4.19.0-21-amd64-di usb-serial-modules-4.19.0-21-amd64-di ppp-modules-4.19.0-21-amd64-di pata-modules-4.19.0-21-amd64-di cdrom-core-modules-4.19.0-21-amd64-di firewire-core-modules-4.19.0-21-amd64-di scsi-core-modules-4.19.0-21-amd64-di scsi-modules-4.19.0-21-amd64-di scsi-nic-modules-4.19.0-21-amd64-di loop-modules-4.19.0-21-amd64-di btrfs-modules-4.19.0-21-amd64-di ext4-modules-4.19.0-21-amd64-di isofs-modules-4.19.0-21-amd64-di jfs-modules-4.19.0-21-amd64-di xfs-modules-4.19.0-21-amd64-di fat-modules-4.19.0-21-amd64-di md-modules-4.19.0-21-amd64-di multipath-modules-4.19.0-21-amd64-di usb-modules-4.19.0-21-amd64-di usb-storage-modules-4.19.0-21-amd64-di pcmcia-storage-modules-4.19.0-21-amd64-di fb-modules-4.19.0-21-amd64-di input-modules-4.19.0-21-amd64-di event-modules-4.19.0-21-amd64-di mouse-modules-4.19.0-21-amd64-di nic-pcmcia-modules-4.19.0-21-amd64-di pcmcia-modules-4.19.0-21-amd64-di nic-usb-modules-4.19.0-21-amd64-di sata-modules-4.19.0-21-amd64-di acpi-modules-4.19.0-21-amd64-di i2c-modules-4.19.0-21-amd64-di crc-modules-4.19.0-21-amd64-di crypto-modules-4.19.0-21-amd64-di crypto-dm-modules-4.19.0-21-amd64-di efi-modules-4.19.0-21-amd64-di ata-modules-4.19.0-21-amd64-di mmc-core-modules-4.19.0-21-amd64-di mmc-modules-4.19.0-21-amd64-di nbd-modules-4.19.0-21-amd64-di squashfs-modules-4.19.0-21-amd64-di speakup-modules-4.19.0-21-amd64-di uinput-modules-4.19.0-21-amd64-di sound-modules-4.19.0-21-amd64-di compress-modules-4.19.0-21-amd64-di udf-modules-4.19.0-21-amd64-di fuse-modules-4.19.0-21-amd64-di mtd-core-modules-4.19.0-21-amd64-di' UDEB_UNSIGNED_TEST_BUILD=True
+binary-arch_amd64::
+ $(MAKE) -f debian/rules.real install-signed-template_amd64 ABINAME='4.19.0-21' ARCH='amd64' KERNEL_ARCH='x86' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_amd64_extra::
+ $(MAKE) -f debian/rules.real install-dummy ARCH='amd64' DH_OPTIONS='-plinux-compiler-gcc-8-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='4.19.0-21' ARCH='amd64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+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='4.19.0-21' ARCH='amd64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='cloud-amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-cloud-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/amd64/config.cloud-amd64' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-cloud-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-cloud-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-cloud-amd64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+binary-arch_amd64_none_real:
+binary-arch_amd64_real:: setup_amd64
+binary-arch_amd64_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='amd64' KERNEL_ARCH='x86' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='amd64' COMPILER='gcc-8' DEBUG='True' FEATURESET='rt' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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 MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-rt-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-amd64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-amd64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+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='4.19.0-21' ARCH='arm64' KERNEL_ARCH='arm64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-arm64-di nic-modules-4.19.0-21-arm64-di nic-wireless-modules-4.19.0-21-arm64-di nic-shared-modules-4.19.0-21-arm64-di usb-serial-modules-4.19.0-21-arm64-di ppp-modules-4.19.0-21-arm64-di cdrom-core-modules-4.19.0-21-arm64-di scsi-core-modules-4.19.0-21-arm64-di scsi-modules-4.19.0-21-arm64-di scsi-nic-modules-4.19.0-21-arm64-di loop-modules-4.19.0-21-arm64-di btrfs-modules-4.19.0-21-arm64-di ext4-modules-4.19.0-21-arm64-di isofs-modules-4.19.0-21-arm64-di jfs-modules-4.19.0-21-arm64-di xfs-modules-4.19.0-21-arm64-di fat-modules-4.19.0-21-arm64-di md-modules-4.19.0-21-arm64-di multipath-modules-4.19.0-21-arm64-di usb-modules-4.19.0-21-arm64-di usb-storage-modules-4.19.0-21-arm64-di fb-modules-4.19.0-21-arm64-di input-modules-4.19.0-21-arm64-di event-modules-4.19.0-21-arm64-di nic-usb-modules-4.19.0-21-arm64-di sata-modules-4.19.0-21-arm64-di i2c-modules-4.19.0-21-arm64-di crc-modules-4.19.0-21-arm64-di crypto-modules-4.19.0-21-arm64-di crypto-dm-modules-4.19.0-21-arm64-di efi-modules-4.19.0-21-arm64-di ata-modules-4.19.0-21-arm64-di mmc-modules-4.19.0-21-arm64-di nbd-modules-4.19.0-21-arm64-di squashfs-modules-4.19.0-21-arm64-di uinput-modules-4.19.0-21-arm64-di compress-modules-4.19.0-21-arm64-di leds-modules-4.19.0-21-arm64-di udf-modules-4.19.0-21-arm64-di fuse-modules-4.19.0-21-arm64-di mtd-core-modules-4.19.0-21-arm64-di' UDEB_UNSIGNED_TEST_BUILD=True
+binary-arch_arm64::
+ $(MAKE) -f debian/rules.real install-signed-template_arm64 ABINAME='4.19.0-21' ARCH='arm64' KERNEL_ARCH='arm64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_arm64_none: binary-arch_arm64_none_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='4.19.0-21' ARCH='arm64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-arm64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+binary-arch_arm64_none_real:
+binary-arch_arm64_real:: setup_arm64
+binary-arch_arm64_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='arm64' KERNEL_ARCH='arm64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='arm64' COMPILER='gcc-8' DEBUG='True' FEATURESET='rt' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-rt-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-rt-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-rt-arm64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-arm64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+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='4.19.0-21' ARCH='arm64ilp32' KERNEL_ARCH='arm64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='armel' KERNEL_ARCH='arm' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-marvell-di nic-modules-4.19.0-21-marvell-di nic-shared-modules-4.19.0-21-marvell-di usb-serial-modules-4.19.0-21-marvell-di ppp-modules-4.19.0-21-marvell-di cdrom-core-modules-4.19.0-21-marvell-di scsi-core-modules-4.19.0-21-marvell-di loop-modules-4.19.0-21-marvell-di ipv6-modules-4.19.0-21-marvell-di btrfs-modules-4.19.0-21-marvell-di ext4-modules-4.19.0-21-marvell-di isofs-modules-4.19.0-21-marvell-di jffs2-modules-4.19.0-21-marvell-di jfs-modules-4.19.0-21-marvell-di fat-modules-4.19.0-21-marvell-di minix-modules-4.19.0-21-marvell-di md-modules-4.19.0-21-marvell-di multipath-modules-4.19.0-21-marvell-di usb-modules-4.19.0-21-marvell-di usb-storage-modules-4.19.0-21-marvell-di fb-modules-4.19.0-21-marvell-di input-modules-4.19.0-21-marvell-di event-modules-4.19.0-21-marvell-di mouse-modules-4.19.0-21-marvell-di nic-usb-modules-4.19.0-21-marvell-di sata-modules-4.19.0-21-marvell-di crc-modules-4.19.0-21-marvell-di crypto-modules-4.19.0-21-marvell-di crypto-dm-modules-4.19.0-21-marvell-di mmc-core-modules-4.19.0-21-marvell-di mmc-modules-4.19.0-21-marvell-di nbd-modules-4.19.0-21-marvell-di squashfs-modules-4.19.0-21-marvell-di uinput-modules-4.19.0-21-marvell-di zlib-modules-4.19.0-21-marvell-di compress-modules-4.19.0-21-marvell-di leds-modules-4.19.0-21-marvell-di udf-modules-4.19.0-21-marvell-di fuse-modules-4.19.0-21-marvell-di mtd-modules-4.19.0-21-marvell-di mtd-core-modules-4.19.0-21-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-8-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='4.19.0-21' ARCH='armel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='marvell' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-marvell\""' KERNEL_ARCH='arm' LOCALVERSION='-marvell' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-marvell' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='armel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='rpi' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-rpi\""' KERNEL_ARCH='arm' LOCALVERSION='-rpi' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-rpi' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_armel_real:: setup_armel
+binary-arch_armel_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='armel' KERNEL_ARCH='arm' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='armhf' KERNEL_ARCH='arm' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-armmp-di nic-modules-4.19.0-21-armmp-di nic-wireless-modules-4.19.0-21-armmp-di nic-shared-modules-4.19.0-21-armmp-di usb-serial-modules-4.19.0-21-armmp-di ppp-modules-4.19.0-21-armmp-di pata-modules-4.19.0-21-armmp-di cdrom-core-modules-4.19.0-21-armmp-di scsi-core-modules-4.19.0-21-armmp-di scsi-modules-4.19.0-21-armmp-di scsi-nic-modules-4.19.0-21-armmp-di loop-modules-4.19.0-21-armmp-di btrfs-modules-4.19.0-21-armmp-di ext4-modules-4.19.0-21-armmp-di isofs-modules-4.19.0-21-armmp-di jfs-modules-4.19.0-21-armmp-di fat-modules-4.19.0-21-armmp-di md-modules-4.19.0-21-armmp-di multipath-modules-4.19.0-21-armmp-di usb-modules-4.19.0-21-armmp-di usb-storage-modules-4.19.0-21-armmp-di fb-modules-4.19.0-21-armmp-di input-modules-4.19.0-21-armmp-di event-modules-4.19.0-21-armmp-di nic-usb-modules-4.19.0-21-armmp-di sata-modules-4.19.0-21-armmp-di i2c-modules-4.19.0-21-armmp-di crc-modules-4.19.0-21-armmp-di crypto-modules-4.19.0-21-armmp-di crypto-dm-modules-4.19.0-21-armmp-di efi-modules-4.19.0-21-armmp-di ata-modules-4.19.0-21-armmp-di mmc-modules-4.19.0-21-armmp-di nbd-modules-4.19.0-21-armmp-di squashfs-modules-4.19.0-21-armmp-di uinput-modules-4.19.0-21-armmp-di zlib-modules-4.19.0-21-armmp-di compress-modules-4.19.0-21-armmp-di leds-modules-4.19.0-21-armmp-di udf-modules-4.19.0-21-armmp-di fuse-modules-4.19.0-21-armmp-di mtd-modules-4.19.0-21-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-8-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='4.19.0-21' ARCH='armhf' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='armmp-lpae' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-armmp-lpae\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp-lpae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp-lpae' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+binary-arch_armhf_none_armmp_real::
+ $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.19.0-21' ARCH='armhf' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-armmp' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+binary-arch_armhf_none_real:
+binary-arch_armhf_real:: setup_armhf
+binary-arch_armhf_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='armhf' KERNEL_ARCH='arm' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='armhf' COMPILER='gcc-8' DEBUG='True' FEATURESET='rt' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-rt-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-rt-armmp' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-armmp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+binary-arch_armhf_rt_real:
+binary-arch_hppa:: binary-arch_hppa_none binary-arch_hppa_real
+binary-arch_hppa::
+ $(MAKE) -f debian/rules.real install-udeb_hppa ABINAME='4.19.0-21' ARCH='hppa' KERNEL_ARCH='parisc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-parisc-di nic-modules-4.19.0-21-parisc-di nic-shared-modules-4.19.0-21-parisc-di serial-modules-4.19.0-21-parisc-di usb-serial-modules-4.19.0-21-parisc-di ppp-modules-4.19.0-21-parisc-di pata-modules-4.19.0-21-parisc-di cdrom-core-modules-4.19.0-21-parisc-di scsi-core-modules-4.19.0-21-parisc-di scsi-modules-4.19.0-21-parisc-di loop-modules-4.19.0-21-parisc-di btrfs-modules-4.19.0-21-parisc-di ext4-modules-4.19.0-21-parisc-di isofs-modules-4.19.0-21-parisc-di jfs-modules-4.19.0-21-parisc-di xfs-modules-4.19.0-21-parisc-di fat-modules-4.19.0-21-parisc-di md-modules-4.19.0-21-parisc-di multipath-modules-4.19.0-21-parisc-di usb-modules-4.19.0-21-parisc-di usb-storage-modules-4.19.0-21-parisc-di input-modules-4.19.0-21-parisc-di event-modules-4.19.0-21-parisc-di mouse-modules-4.19.0-21-parisc-di nic-usb-modules-4.19.0-21-parisc-di sata-modules-4.19.0-21-parisc-di crc-modules-4.19.0-21-parisc-di crypto-modules-4.19.0-21-parisc-di crypto-dm-modules-4.19.0-21-parisc-di ata-modules-4.19.0-21-parisc-di nbd-modules-4.19.0-21-parisc-di squashfs-modules-4.19.0-21-parisc-di zlib-modules-4.19.0-21-parisc-di compress-modules-4.19.0-21-parisc-di fuse-modules-4.19.0-21-parisc-di kernel-image-4.19.0-21-parisc64-smp-di nic-modules-4.19.0-21-parisc64-smp-di nic-shared-modules-4.19.0-21-parisc64-smp-di serial-modules-4.19.0-21-parisc64-smp-di usb-serial-modules-4.19.0-21-parisc64-smp-di ppp-modules-4.19.0-21-parisc64-smp-di pata-modules-4.19.0-21-parisc64-smp-di cdrom-core-modules-4.19.0-21-parisc64-smp-di scsi-core-modules-4.19.0-21-parisc64-smp-di scsi-modules-4.19.0-21-parisc64-smp-di loop-modules-4.19.0-21-parisc64-smp-di btrfs-modules-4.19.0-21-parisc64-smp-di ext4-modules-4.19.0-21-parisc64-smp-di isofs-modules-4.19.0-21-parisc64-smp-di jfs-modules-4.19.0-21-parisc64-smp-di xfs-modules-4.19.0-21-parisc64-smp-di fat-modules-4.19.0-21-parisc64-smp-di md-modules-4.19.0-21-parisc64-smp-di multipath-modules-4.19.0-21-parisc64-smp-di usb-modules-4.19.0-21-parisc64-smp-di usb-storage-modules-4.19.0-21-parisc64-smp-di fb-modules-4.19.0-21-parisc64-smp-di input-modules-4.19.0-21-parisc64-smp-di event-modules-4.19.0-21-parisc64-smp-di mouse-modules-4.19.0-21-parisc64-smp-di nic-usb-modules-4.19.0-21-parisc64-smp-di sata-modules-4.19.0-21-parisc64-smp-di crc-modules-4.19.0-21-parisc64-smp-di crypto-modules-4.19.0-21-parisc64-smp-di crypto-dm-modules-4.19.0-21-parisc64-smp-di ata-modules-4.19.0-21-parisc64-smp-di nbd-modules-4.19.0-21-parisc64-smp-di squashfs-modules-4.19.0-21-parisc64-smp-di zlib-modules-4.19.0-21-parisc64-smp-di compress-modules-4.19.0-21-parisc64-smp-di fuse-modules-4.19.0-21-parisc64-smp-di' UDEB_UNSIGNED_TEST_BUILD=False
+binary-arch_hppa_none: binary-arch_hppa_none_parisc binary-arch_hppa_none_parisc-smp binary-arch_hppa_none_parisc64-smp binary-arch_hppa_none_real
+binary-arch_hppa_none_parisc: binary-arch_hppa_none_parisc_real
+binary-arch_hppa_none_parisc-smp: binary-arch_hppa_none_parisc-smp_real
+binary-arch_hppa_none_parisc-smp_real::
+ $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.19.0-21' ARCH='hppa' COMPILER='gcc-8' FEATURESET='none' FLAVOUR='parisc-smp' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-parisc-smp' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc-smp' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"4.19.0-21-parisc-smp\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc-smp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_hppa_none_parisc64-smp: binary-arch_hppa_none_parisc64-smp_real
+binary-arch_hppa_none_parisc64-smp_real::
+ $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.19.0-21' ARCH='hppa' CFLAGS_KERNEL='-fno-cse-follow-jumps' COMPILER='gcc-8' FEATURESET='none' FLAVOUR='parisc64-smp' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-parisc64-smp' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc64-smp' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"4.19.0-21-parisc64-smp\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc64-smp' OVERRIDE_HOST_TYPE='hppa64-linux-gnu' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_hppa_none_parisc_real::
+ $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.19.0-21' ARCH='hppa' COMPILER='gcc-8' FEATURESET='none' FLAVOUR='parisc' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-parisc' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"4.19.0-21-parisc\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_hppa_none_real:
+binary-arch_hppa_real:: setup_hppa
+binary-arch_hppa_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='hppa' KERNEL_ARCH='parisc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='i386' KERNEL_ARCH='x86' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-686-di nic-modules-4.19.0-21-686-di nic-wireless-modules-4.19.0-21-686-di nic-shared-modules-4.19.0-21-686-di serial-modules-4.19.0-21-686-di usb-serial-modules-4.19.0-21-686-di ppp-modules-4.19.0-21-686-di pata-modules-4.19.0-21-686-di cdrom-core-modules-4.19.0-21-686-di firewire-core-modules-4.19.0-21-686-di scsi-core-modules-4.19.0-21-686-di scsi-modules-4.19.0-21-686-di scsi-nic-modules-4.19.0-21-686-di loop-modules-4.19.0-21-686-di btrfs-modules-4.19.0-21-686-di ext4-modules-4.19.0-21-686-di isofs-modules-4.19.0-21-686-di jfs-modules-4.19.0-21-686-di xfs-modules-4.19.0-21-686-di fat-modules-4.19.0-21-686-di md-modules-4.19.0-21-686-di multipath-modules-4.19.0-21-686-di usb-modules-4.19.0-21-686-di usb-storage-modules-4.19.0-21-686-di pcmcia-storage-modules-4.19.0-21-686-di fb-modules-4.19.0-21-686-di input-modules-4.19.0-21-686-di event-modules-4.19.0-21-686-di mouse-modules-4.19.0-21-686-di nic-pcmcia-modules-4.19.0-21-686-di pcmcia-modules-4.19.0-21-686-di nic-usb-modules-4.19.0-21-686-di sata-modules-4.19.0-21-686-di acpi-modules-4.19.0-21-686-di i2c-modules-4.19.0-21-686-di crc-modules-4.19.0-21-686-di crypto-modules-4.19.0-21-686-di crypto-dm-modules-4.19.0-21-686-di efi-modules-4.19.0-21-686-di ata-modules-4.19.0-21-686-di mmc-core-modules-4.19.0-21-686-di mmc-modules-4.19.0-21-686-di nbd-modules-4.19.0-21-686-di squashfs-modules-4.19.0-21-686-di speakup-modules-4.19.0-21-686-di uinput-modules-4.19.0-21-686-di sound-modules-4.19.0-21-686-di compress-modules-4.19.0-21-686-di udf-modules-4.19.0-21-686-di fuse-modules-4.19.0-21-686-di mtd-core-modules-4.19.0-21-686-di kernel-image-4.19.0-21-686-pae-di nic-modules-4.19.0-21-686-pae-di nic-wireless-modules-4.19.0-21-686-pae-di nic-shared-modules-4.19.0-21-686-pae-di serial-modules-4.19.0-21-686-pae-di usb-serial-modules-4.19.0-21-686-pae-di ppp-modules-4.19.0-21-686-pae-di pata-modules-4.19.0-21-686-pae-di cdrom-core-modules-4.19.0-21-686-pae-di firewire-core-modules-4.19.0-21-686-pae-di scsi-core-modules-4.19.0-21-686-pae-di scsi-modules-4.19.0-21-686-pae-di scsi-nic-modules-4.19.0-21-686-pae-di loop-modules-4.19.0-21-686-pae-di btrfs-modules-4.19.0-21-686-pae-di ext4-modules-4.19.0-21-686-pae-di isofs-modules-4.19.0-21-686-pae-di jfs-modules-4.19.0-21-686-pae-di xfs-modules-4.19.0-21-686-pae-di fat-modules-4.19.0-21-686-pae-di md-modules-4.19.0-21-686-pae-di multipath-modules-4.19.0-21-686-pae-di usb-modules-4.19.0-21-686-pae-di usb-storage-modules-4.19.0-21-686-pae-di pcmcia-storage-modules-4.19.0-21-686-pae-di fb-modules-4.19.0-21-686-pae-di input-modules-4.19.0-21-686-pae-di event-modules-4.19.0-21-686-pae-di mouse-modules-4.19.0-21-686-pae-di nic-pcmcia-modules-4.19.0-21-686-pae-di pcmcia-modules-4.19.0-21-686-pae-di nic-usb-modules-4.19.0-21-686-pae-di sata-modules-4.19.0-21-686-pae-di acpi-modules-4.19.0-21-686-pae-di i2c-modules-4.19.0-21-686-pae-di crc-modules-4.19.0-21-686-pae-di crypto-modules-4.19.0-21-686-pae-di crypto-dm-modules-4.19.0-21-686-pae-di efi-modules-4.19.0-21-686-pae-di ata-modules-4.19.0-21-686-pae-di mmc-core-modules-4.19.0-21-686-pae-di mmc-modules-4.19.0-21-686-pae-di nbd-modules-4.19.0-21-686-pae-di squashfs-modules-4.19.0-21-686-pae-di speakup-modules-4.19.0-21-686-pae-di uinput-modules-4.19.0-21-686-pae-di sound-modules-4.19.0-21-686-pae-di compress-modules-4.19.0-21-686-pae-di udf-modules-4.19.0-21-686-pae-di fuse-modules-4.19.0-21-686-pae-di mtd-core-modules-4.19.0-21-686-pae-di' UDEB_UNSIGNED_TEST_BUILD=True
+binary-arch_i386::
+ $(MAKE) -f debian/rules.real install-signed-template_i386 ABINAME='4.19.0-21' ARCH='i386' KERNEL_ARCH='x86' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_i386_extra::
+ $(MAKE) -f debian/rules.real install-dummy ARCH='i386' DH_OPTIONS='-plinux-compiler-gcc-8-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='4.19.0-21' ARCH='i386' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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 MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-686-pae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686-pae' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+binary-arch_i386_none_686_real::
+ $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.19.0-21' ARCH='i386' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='686' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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 MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-686\""' KERNEL_ARCH='x86' LOCALVERSION='-686' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+binary-arch_i386_none_real:
+binary-arch_i386_real:: setup_i386
+binary-arch_i386_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='i386' KERNEL_ARCH='x86' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='i386' COMPILER='gcc-8' DEBUG='True' FEATURESET='rt' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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 MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-rt-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-686-pae' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-686-pae' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+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='4.19.0-21' ARCH='ia64' KERNEL_ARCH='ia64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-itanium-di nic-modules-4.19.0-21-itanium-di nic-shared-modules-4.19.0-21-itanium-di serial-modules-4.19.0-21-itanium-di usb-serial-modules-4.19.0-21-itanium-di ppp-modules-4.19.0-21-itanium-di pata-modules-4.19.0-21-itanium-di cdrom-core-modules-4.19.0-21-itanium-di firewire-core-modules-4.19.0-21-itanium-di scsi-core-modules-4.19.0-21-itanium-di scsi-modules-4.19.0-21-itanium-di scsi-nic-modules-4.19.0-21-itanium-di loop-modules-4.19.0-21-itanium-di btrfs-modules-4.19.0-21-itanium-di ext4-modules-4.19.0-21-itanium-di isofs-modules-4.19.0-21-itanium-di jfs-modules-4.19.0-21-itanium-di xfs-modules-4.19.0-21-itanium-di fat-modules-4.19.0-21-itanium-di md-modules-4.19.0-21-itanium-di multipath-modules-4.19.0-21-itanium-di usb-modules-4.19.0-21-itanium-di usb-storage-modules-4.19.0-21-itanium-di fb-modules-4.19.0-21-itanium-di input-modules-4.19.0-21-itanium-di event-modules-4.19.0-21-itanium-di mouse-modules-4.19.0-21-itanium-di pcmcia-modules-4.19.0-21-itanium-di nic-usb-modules-4.19.0-21-itanium-di sata-modules-4.19.0-21-itanium-di i2c-modules-4.19.0-21-itanium-di crc-modules-4.19.0-21-itanium-di crypto-modules-4.19.0-21-itanium-di crypto-dm-modules-4.19.0-21-itanium-di ata-modules-4.19.0-21-itanium-di nbd-modules-4.19.0-21-itanium-di squashfs-modules-4.19.0-21-itanium-di uinput-modules-4.19.0-21-itanium-di compress-modules-4.19.0-21-itanium-di udf-modules-4.19.0-21-itanium-di fuse-modules-4.19.0-21-itanium-di mtd-core-modules-4.19.0-21-itanium-di ide-core-modules-4.19.0-21-itanium-di ide-modules-4.19.0-21-itanium-di sn-modules-4.19.0-21-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='4.19.0-21' ARCH='ia64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='itanium' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-itanium' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.itanium' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-itanium\""' KERNEL_ARCH='ia64' LOCALVERSION='-itanium' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-itanium' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='ia64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mckinley' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-mckinley' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.mckinley' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-mckinley\""' KERNEL_ARCH='ia64' LOCALVERSION='-mckinley' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mckinley' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_ia64_none_real:
+binary-arch_ia64_real:: setup_ia64
+binary-arch_ia64_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='ia64' KERNEL_ARCH='ia64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_m68k:: binary-arch_m68k_none binary-arch_m68k_real
+binary-arch_m68k::
+ $(MAKE) -f debian/rules.real install-udeb_m68k ABINAME='4.19.0-21' ARCH='m68k' KERNEL_ARCH='m68k' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-m68k-di nic-modules-4.19.0-21-m68k-di nic-shared-modules-4.19.0-21-m68k-di ppp-modules-4.19.0-21-m68k-di pata-modules-4.19.0-21-m68k-di cdrom-core-modules-4.19.0-21-m68k-di scsi-core-modules-4.19.0-21-m68k-di scsi-modules-4.19.0-21-m68k-di loop-modules-4.19.0-21-m68k-di btrfs-modules-4.19.0-21-m68k-di ext4-modules-4.19.0-21-m68k-di isofs-modules-4.19.0-21-m68k-di fat-modules-4.19.0-21-m68k-di hfs-modules-4.19.0-21-m68k-di affs-modules-4.19.0-21-m68k-di md-modules-4.19.0-21-m68k-di crc-modules-4.19.0-21-m68k-di crypto-modules-4.19.0-21-m68k-di ata-modules-4.19.0-21-m68k-di nbd-modules-4.19.0-21-m68k-di squashfs-modules-4.19.0-21-m68k-di zlib-modules-4.19.0-21-m68k-di compress-modules-4.19.0-21-m68k-di udf-modules-4.19.0-21-m68k-di fuse-modules-4.19.0-21-m68k-di ide-core-modules-4.19.0-21-m68k-di ide-modules-4.19.0-21-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='4.19.0-21' ARCH='m68k' CFLAGS_KERNEL='-ffreestanding' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='m68k' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-m68k' KCONFIG='debian/config/config debian/config/m68k/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-m68k\""' KERNEL_ARCH='m68k' LOCALVERSION='-m68k' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-m68k' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_m68k_none_real:
+binary-arch_m68k_real:: setup_m68k
+binary-arch_m68k_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='m68k' KERNEL_ARCH='m68k' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_mips:: binary-arch_mips_none binary-arch_mips_real
+binary-arch_mips::
+ $(MAKE) -f debian/rules.real install-udeb_mips ABINAME='4.19.0-21' ARCH='mips' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-4kc-malta-di nic-modules-4.19.0-21-4kc-malta-di nic-wireless-modules-4.19.0-21-4kc-malta-di nic-shared-modules-4.19.0-21-4kc-malta-di usb-serial-modules-4.19.0-21-4kc-malta-di ppp-modules-4.19.0-21-4kc-malta-di pata-modules-4.19.0-21-4kc-malta-di cdrom-core-modules-4.19.0-21-4kc-malta-di scsi-core-modules-4.19.0-21-4kc-malta-di scsi-modules-4.19.0-21-4kc-malta-di scsi-nic-modules-4.19.0-21-4kc-malta-di loop-modules-4.19.0-21-4kc-malta-di btrfs-modules-4.19.0-21-4kc-malta-di ext4-modules-4.19.0-21-4kc-malta-di isofs-modules-4.19.0-21-4kc-malta-di jfs-modules-4.19.0-21-4kc-malta-di xfs-modules-4.19.0-21-4kc-malta-di fat-modules-4.19.0-21-4kc-malta-di hfs-modules-4.19.0-21-4kc-malta-di affs-modules-4.19.0-21-4kc-malta-di minix-modules-4.19.0-21-4kc-malta-di md-modules-4.19.0-21-4kc-malta-di multipath-modules-4.19.0-21-4kc-malta-di usb-modules-4.19.0-21-4kc-malta-di usb-storage-modules-4.19.0-21-4kc-malta-di fb-modules-4.19.0-21-4kc-malta-di input-modules-4.19.0-21-4kc-malta-di event-modules-4.19.0-21-4kc-malta-di mouse-modules-4.19.0-21-4kc-malta-di nic-usb-modules-4.19.0-21-4kc-malta-di sata-modules-4.19.0-21-4kc-malta-di i2c-modules-4.19.0-21-4kc-malta-di crc-modules-4.19.0-21-4kc-malta-di crypto-modules-4.19.0-21-4kc-malta-di crypto-dm-modules-4.19.0-21-4kc-malta-di ata-modules-4.19.0-21-4kc-malta-di mmc-core-modules-4.19.0-21-4kc-malta-di mmc-modules-4.19.0-21-4kc-malta-di nbd-modules-4.19.0-21-4kc-malta-di squashfs-modules-4.19.0-21-4kc-malta-di sound-modules-4.19.0-21-4kc-malta-di zlib-modules-4.19.0-21-4kc-malta-di compress-modules-4.19.0-21-4kc-malta-di udf-modules-4.19.0-21-4kc-malta-di fuse-modules-4.19.0-21-4kc-malta-di mtd-core-modules-4.19.0-21-4kc-malta-di kernel-image-4.19.0-21-octeon-di nic-modules-4.19.0-21-octeon-di nic-wireless-modules-4.19.0-21-octeon-di nic-shared-modules-4.19.0-21-octeon-di usb-serial-modules-4.19.0-21-octeon-di ppp-modules-4.19.0-21-octeon-di pata-modules-4.19.0-21-octeon-di cdrom-core-modules-4.19.0-21-octeon-di scsi-core-modules-4.19.0-21-octeon-di scsi-modules-4.19.0-21-octeon-di scsi-nic-modules-4.19.0-21-octeon-di loop-modules-4.19.0-21-octeon-di btrfs-modules-4.19.0-21-octeon-di ext4-modules-4.19.0-21-octeon-di isofs-modules-4.19.0-21-octeon-di jfs-modules-4.19.0-21-octeon-di xfs-modules-4.19.0-21-octeon-di fat-modules-4.19.0-21-octeon-di hfs-modules-4.19.0-21-octeon-di affs-modules-4.19.0-21-octeon-di minix-modules-4.19.0-21-octeon-di md-modules-4.19.0-21-octeon-di multipath-modules-4.19.0-21-octeon-di usb-modules-4.19.0-21-octeon-di usb-storage-modules-4.19.0-21-octeon-di input-modules-4.19.0-21-octeon-di event-modules-4.19.0-21-octeon-di nic-usb-modules-4.19.0-21-octeon-di sata-modules-4.19.0-21-octeon-di crc-modules-4.19.0-21-octeon-di crypto-modules-4.19.0-21-octeon-di crypto-dm-modules-4.19.0-21-octeon-di nbd-modules-4.19.0-21-octeon-di squashfs-modules-4.19.0-21-octeon-di rtc-modules-4.19.0-21-octeon-di sound-modules-4.19.0-21-octeon-di zlib-modules-4.19.0-21-octeon-di compress-modules-4.19.0-21-octeon-di udf-modules-4.19.0-21-octeon-di fuse-modules-4.19.0-21-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='4.19.0-21' ARCH='mips64' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-5kc-malta-di nic-modules-4.19.0-21-5kc-malta-di nic-wireless-modules-4.19.0-21-5kc-malta-di nic-shared-modules-4.19.0-21-5kc-malta-di usb-serial-modules-4.19.0-21-5kc-malta-di ppp-modules-4.19.0-21-5kc-malta-di pata-modules-4.19.0-21-5kc-malta-di cdrom-core-modules-4.19.0-21-5kc-malta-di scsi-core-modules-4.19.0-21-5kc-malta-di scsi-modules-4.19.0-21-5kc-malta-di scsi-nic-modules-4.19.0-21-5kc-malta-di loop-modules-4.19.0-21-5kc-malta-di btrfs-modules-4.19.0-21-5kc-malta-di ext4-modules-4.19.0-21-5kc-malta-di isofs-modules-4.19.0-21-5kc-malta-di jfs-modules-4.19.0-21-5kc-malta-di xfs-modules-4.19.0-21-5kc-malta-di fat-modules-4.19.0-21-5kc-malta-di hfs-modules-4.19.0-21-5kc-malta-di affs-modules-4.19.0-21-5kc-malta-di minix-modules-4.19.0-21-5kc-malta-di md-modules-4.19.0-21-5kc-malta-di multipath-modules-4.19.0-21-5kc-malta-di usb-modules-4.19.0-21-5kc-malta-di usb-storage-modules-4.19.0-21-5kc-malta-di fb-modules-4.19.0-21-5kc-malta-di input-modules-4.19.0-21-5kc-malta-di event-modules-4.19.0-21-5kc-malta-di mouse-modules-4.19.0-21-5kc-malta-di nic-usb-modules-4.19.0-21-5kc-malta-di sata-modules-4.19.0-21-5kc-malta-di i2c-modules-4.19.0-21-5kc-malta-di crc-modules-4.19.0-21-5kc-malta-di crypto-modules-4.19.0-21-5kc-malta-di crypto-dm-modules-4.19.0-21-5kc-malta-di ata-modules-4.19.0-21-5kc-malta-di mmc-core-modules-4.19.0-21-5kc-malta-di mmc-modules-4.19.0-21-5kc-malta-di nbd-modules-4.19.0-21-5kc-malta-di squashfs-modules-4.19.0-21-5kc-malta-di sound-modules-4.19.0-21-5kc-malta-di zlib-modules-4.19.0-21-5kc-malta-di compress-modules-4.19.0-21-5kc-malta-di udf-modules-4.19.0-21-5kc-malta-di fuse-modules-4.19.0-21-5kc-malta-di mtd-core-modules-4.19.0-21-5kc-malta-di kernel-image-4.19.0-21-octeon-di nic-modules-4.19.0-21-octeon-di nic-wireless-modules-4.19.0-21-octeon-di nic-shared-modules-4.19.0-21-octeon-di usb-serial-modules-4.19.0-21-octeon-di ppp-modules-4.19.0-21-octeon-di pata-modules-4.19.0-21-octeon-di cdrom-core-modules-4.19.0-21-octeon-di scsi-core-modules-4.19.0-21-octeon-di scsi-modules-4.19.0-21-octeon-di scsi-nic-modules-4.19.0-21-octeon-di loop-modules-4.19.0-21-octeon-di btrfs-modules-4.19.0-21-octeon-di ext4-modules-4.19.0-21-octeon-di isofs-modules-4.19.0-21-octeon-di jfs-modules-4.19.0-21-octeon-di xfs-modules-4.19.0-21-octeon-di fat-modules-4.19.0-21-octeon-di hfs-modules-4.19.0-21-octeon-di affs-modules-4.19.0-21-octeon-di minix-modules-4.19.0-21-octeon-di md-modules-4.19.0-21-octeon-di multipath-modules-4.19.0-21-octeon-di usb-modules-4.19.0-21-octeon-di usb-storage-modules-4.19.0-21-octeon-di input-modules-4.19.0-21-octeon-di event-modules-4.19.0-21-octeon-di nic-usb-modules-4.19.0-21-octeon-di sata-modules-4.19.0-21-octeon-di crc-modules-4.19.0-21-octeon-di crypto-modules-4.19.0-21-octeon-di crypto-dm-modules-4.19.0-21-octeon-di nbd-modules-4.19.0-21-octeon-di squashfs-modules-4.19.0-21-octeon-di rtc-modules-4.19.0-21-octeon-di sound-modules-4.19.0-21-octeon-di zlib-modules-4.19.0-21-octeon-di compress-modules-4.19.0-21-octeon-di udf-modules-4.19.0-21-octeon-di fuse-modules-4.19.0-21-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='4.19.0-21' ARCH='mips64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_mips64_none_real:
+binary-arch_mips64_real:: setup_mips64
+binary-arch_mips64_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='mips64' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_mips64el:: binary-arch_mips64el_none binary-arch_mips64el_real
+binary-arch_mips64el::
+ $(MAKE) -f debian/rules.real install-udeb_mips64el ABINAME='4.19.0-21' ARCH='mips64el' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-5kc-malta-di nic-modules-4.19.0-21-5kc-malta-di nic-wireless-modules-4.19.0-21-5kc-malta-di nic-shared-modules-4.19.0-21-5kc-malta-di usb-serial-modules-4.19.0-21-5kc-malta-di ppp-modules-4.19.0-21-5kc-malta-di pata-modules-4.19.0-21-5kc-malta-di cdrom-core-modules-4.19.0-21-5kc-malta-di scsi-core-modules-4.19.0-21-5kc-malta-di scsi-modules-4.19.0-21-5kc-malta-di scsi-nic-modules-4.19.0-21-5kc-malta-di loop-modules-4.19.0-21-5kc-malta-di btrfs-modules-4.19.0-21-5kc-malta-di ext4-modules-4.19.0-21-5kc-malta-di isofs-modules-4.19.0-21-5kc-malta-di jfs-modules-4.19.0-21-5kc-malta-di xfs-modules-4.19.0-21-5kc-malta-di fat-modules-4.19.0-21-5kc-malta-di hfs-modules-4.19.0-21-5kc-malta-di affs-modules-4.19.0-21-5kc-malta-di minix-modules-4.19.0-21-5kc-malta-di md-modules-4.19.0-21-5kc-malta-di multipath-modules-4.19.0-21-5kc-malta-di usb-modules-4.19.0-21-5kc-malta-di usb-storage-modules-4.19.0-21-5kc-malta-di fb-modules-4.19.0-21-5kc-malta-di input-modules-4.19.0-21-5kc-malta-di event-modules-4.19.0-21-5kc-malta-di mouse-modules-4.19.0-21-5kc-malta-di nic-usb-modules-4.19.0-21-5kc-malta-di sata-modules-4.19.0-21-5kc-malta-di i2c-modules-4.19.0-21-5kc-malta-di crc-modules-4.19.0-21-5kc-malta-di crypto-modules-4.19.0-21-5kc-malta-di crypto-dm-modules-4.19.0-21-5kc-malta-di ata-modules-4.19.0-21-5kc-malta-di mmc-core-modules-4.19.0-21-5kc-malta-di mmc-modules-4.19.0-21-5kc-malta-di nbd-modules-4.19.0-21-5kc-malta-di squashfs-modules-4.19.0-21-5kc-malta-di sound-modules-4.19.0-21-5kc-malta-di zlib-modules-4.19.0-21-5kc-malta-di compress-modules-4.19.0-21-5kc-malta-di udf-modules-4.19.0-21-5kc-malta-di fuse-modules-4.19.0-21-5kc-malta-di mtd-core-modules-4.19.0-21-5kc-malta-di kernel-image-4.19.0-21-loongson-3-di nic-modules-4.19.0-21-loongson-3-di nic-wireless-modules-4.19.0-21-loongson-3-di nic-shared-modules-4.19.0-21-loongson-3-di usb-serial-modules-4.19.0-21-loongson-3-di ppp-modules-4.19.0-21-loongson-3-di pata-modules-4.19.0-21-loongson-3-di cdrom-core-modules-4.19.0-21-loongson-3-di firewire-core-modules-4.19.0-21-loongson-3-di scsi-core-modules-4.19.0-21-loongson-3-di scsi-modules-4.19.0-21-loongson-3-di scsi-nic-modules-4.19.0-21-loongson-3-di loop-modules-4.19.0-21-loongson-3-di btrfs-modules-4.19.0-21-loongson-3-di ext4-modules-4.19.0-21-loongson-3-di isofs-modules-4.19.0-21-loongson-3-di jfs-modules-4.19.0-21-loongson-3-di xfs-modules-4.19.0-21-loongson-3-di fat-modules-4.19.0-21-loongson-3-di hfs-modules-4.19.0-21-loongson-3-di affs-modules-4.19.0-21-loongson-3-di minix-modules-4.19.0-21-loongson-3-di nfs-modules-4.19.0-21-loongson-3-di md-modules-4.19.0-21-loongson-3-di multipath-modules-4.19.0-21-loongson-3-di usb-modules-4.19.0-21-loongson-3-di usb-storage-modules-4.19.0-21-loongson-3-di fb-modules-4.19.0-21-loongson-3-di input-modules-4.19.0-21-loongson-3-di event-modules-4.19.0-21-loongson-3-di nic-usb-modules-4.19.0-21-loongson-3-di sata-modules-4.19.0-21-loongson-3-di crc-modules-4.19.0-21-loongson-3-di crypto-modules-4.19.0-21-loongson-3-di crypto-dm-modules-4.19.0-21-loongson-3-di ata-modules-4.19.0-21-loongson-3-di nbd-modules-4.19.0-21-loongson-3-di squashfs-modules-4.19.0-21-loongson-3-di speakup-modules-4.19.0-21-loongson-3-di sound-modules-4.19.0-21-loongson-3-di zlib-modules-4.19.0-21-loongson-3-di compress-modules-4.19.0-21-loongson-3-di udf-modules-4.19.0-21-loongson-3-di fuse-modules-4.19.0-21-loongson-3-di mtd-core-modules-4.19.0-21-loongson-3-di kernel-image-4.19.0-21-octeon-di nic-modules-4.19.0-21-octeon-di nic-wireless-modules-4.19.0-21-octeon-di nic-shared-modules-4.19.0-21-octeon-di usb-serial-modules-4.19.0-21-octeon-di ppp-modules-4.19.0-21-octeon-di pata-modules-4.19.0-21-octeon-di cdrom-core-modules-4.19.0-21-octeon-di scsi-core-modules-4.19.0-21-octeon-di scsi-modules-4.19.0-21-octeon-di scsi-nic-modules-4.19.0-21-octeon-di loop-modules-4.19.0-21-octeon-di btrfs-modules-4.19.0-21-octeon-di ext4-modules-4.19.0-21-octeon-di isofs-modules-4.19.0-21-octeon-di jfs-modules-4.19.0-21-octeon-di xfs-modules-4.19.0-21-octeon-di fat-modules-4.19.0-21-octeon-di hfs-modules-4.19.0-21-octeon-di affs-modules-4.19.0-21-octeon-di minix-modules-4.19.0-21-octeon-di md-modules-4.19.0-21-octeon-di multipath-modules-4.19.0-21-octeon-di usb-modules-4.19.0-21-octeon-di usb-storage-modules-4.19.0-21-octeon-di input-modules-4.19.0-21-octeon-di event-modules-4.19.0-21-octeon-di nic-usb-modules-4.19.0-21-octeon-di sata-modules-4.19.0-21-octeon-di crc-modules-4.19.0-21-octeon-di crypto-modules-4.19.0-21-octeon-di crypto-dm-modules-4.19.0-21-octeon-di nbd-modules-4.19.0-21-octeon-di squashfs-modules-4.19.0-21-octeon-di rtc-modules-4.19.0-21-octeon-di sound-modules-4.19.0-21-octeon-di zlib-modules-4.19.0-21-octeon-di compress-modules-4.19.0-21-octeon-di udf-modules-4.19.0-21-octeon-di fuse-modules-4.19.0-21-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='4.19.0-21' ARCH='mips64el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips64el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips64el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_mips64el_none_real:
+binary-arch_mips64el_real:: setup_mips64el
+binary-arch_mips64el_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='mips64el' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_mips64r6:: binary-arch_mips64r6_none binary-arch_mips64r6_real
+binary-arch_mips64r6::
+ $(MAKE) -f debian/rules.real install-udeb_mips64r6 ABINAME='4.19.0-21' ARCH='mips64r6' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-mips64r6-di nic-shared-modules-4.19.0-21-mips64r6-di loop-modules-4.19.0-21-mips64r6-di btrfs-modules-4.19.0-21-mips64r6-di ext4-modules-4.19.0-21-mips64r6-di isofs-modules-4.19.0-21-mips64r6-di jfs-modules-4.19.0-21-mips64r6-di xfs-modules-4.19.0-21-mips64r6-di md-modules-4.19.0-21-mips64r6-di multipath-modules-4.19.0-21-mips64r6-di crc-modules-4.19.0-21-mips64r6-di crypto-modules-4.19.0-21-mips64r6-di crypto-dm-modules-4.19.0-21-mips64r6-di nbd-modules-4.19.0-21-mips64r6-di squashfs-modules-4.19.0-21-mips64r6-di zlib-modules-4.19.0-21-mips64r6-di compress-modules-4.19.0-21-mips64r6-di udf-modules-4.19.0-21-mips64r6-di fuse-modules-4.19.0-21-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='4.19.0-21' ARCH='mips64r6' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_mips64r6_none_real:
+binary-arch_mips64r6_real:: setup_mips64r6
+binary-arch_mips64r6_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='mips64r6' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_mips64r6el:: binary-arch_mips64r6el_none binary-arch_mips64r6el_real
+binary-arch_mips64r6el::
+ $(MAKE) -f debian/rules.real install-udeb_mips64r6el ABINAME='4.19.0-21' ARCH='mips64r6el' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-mips64r6el-di nic-shared-modules-4.19.0-21-mips64r6el-di loop-modules-4.19.0-21-mips64r6el-di btrfs-modules-4.19.0-21-mips64r6el-di ext4-modules-4.19.0-21-mips64r6el-di isofs-modules-4.19.0-21-mips64r6el-di jfs-modules-4.19.0-21-mips64r6el-di xfs-modules-4.19.0-21-mips64r6el-di md-modules-4.19.0-21-mips64r6el-di multipath-modules-4.19.0-21-mips64r6el-di crc-modules-4.19.0-21-mips64r6el-di crypto-modules-4.19.0-21-mips64r6el-di crypto-dm-modules-4.19.0-21-mips64r6el-di nbd-modules-4.19.0-21-mips64r6el-di squashfs-modules-4.19.0-21-mips64r6el-di zlib-modules-4.19.0-21-mips64r6el-di compress-modules-4.19.0-21-mips64r6el-di udf-modules-4.19.0-21-mips64r6el-di fuse-modules-4.19.0-21-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='4.19.0-21' ARCH='mips64r6el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_mips64r6el_none_real:
+binary-arch_mips64r6el_real:: setup_mips64r6el
+binary-arch_mips64r6el_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='mips64r6el' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_mips_none_real:
+binary-arch_mips_real:: setup_mips
+binary-arch_mips_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='mips' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_mipsel:: binary-arch_mipsel_none binary-arch_mipsel_real
+binary-arch_mipsel::
+ $(MAKE) -f debian/rules.real install-udeb_mipsel ABINAME='4.19.0-21' ARCH='mipsel' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-4kc-malta-di nic-modules-4.19.0-21-4kc-malta-di nic-wireless-modules-4.19.0-21-4kc-malta-di nic-shared-modules-4.19.0-21-4kc-malta-di usb-serial-modules-4.19.0-21-4kc-malta-di ppp-modules-4.19.0-21-4kc-malta-di pata-modules-4.19.0-21-4kc-malta-di cdrom-core-modules-4.19.0-21-4kc-malta-di scsi-core-modules-4.19.0-21-4kc-malta-di scsi-modules-4.19.0-21-4kc-malta-di scsi-nic-modules-4.19.0-21-4kc-malta-di loop-modules-4.19.0-21-4kc-malta-di btrfs-modules-4.19.0-21-4kc-malta-di ext4-modules-4.19.0-21-4kc-malta-di isofs-modules-4.19.0-21-4kc-malta-di jfs-modules-4.19.0-21-4kc-malta-di xfs-modules-4.19.0-21-4kc-malta-di fat-modules-4.19.0-21-4kc-malta-di hfs-modules-4.19.0-21-4kc-malta-di affs-modules-4.19.0-21-4kc-malta-di minix-modules-4.19.0-21-4kc-malta-di md-modules-4.19.0-21-4kc-malta-di multipath-modules-4.19.0-21-4kc-malta-di usb-modules-4.19.0-21-4kc-malta-di usb-storage-modules-4.19.0-21-4kc-malta-di fb-modules-4.19.0-21-4kc-malta-di input-modules-4.19.0-21-4kc-malta-di event-modules-4.19.0-21-4kc-malta-di mouse-modules-4.19.0-21-4kc-malta-di nic-usb-modules-4.19.0-21-4kc-malta-di sata-modules-4.19.0-21-4kc-malta-di i2c-modules-4.19.0-21-4kc-malta-di crc-modules-4.19.0-21-4kc-malta-di crypto-modules-4.19.0-21-4kc-malta-di crypto-dm-modules-4.19.0-21-4kc-malta-di ata-modules-4.19.0-21-4kc-malta-di mmc-core-modules-4.19.0-21-4kc-malta-di mmc-modules-4.19.0-21-4kc-malta-di nbd-modules-4.19.0-21-4kc-malta-di squashfs-modules-4.19.0-21-4kc-malta-di sound-modules-4.19.0-21-4kc-malta-di zlib-modules-4.19.0-21-4kc-malta-di compress-modules-4.19.0-21-4kc-malta-di udf-modules-4.19.0-21-4kc-malta-di fuse-modules-4.19.0-21-4kc-malta-di mtd-core-modules-4.19.0-21-4kc-malta-di kernel-image-4.19.0-21-loongson-3-di nic-modules-4.19.0-21-loongson-3-di nic-wireless-modules-4.19.0-21-loongson-3-di nic-shared-modules-4.19.0-21-loongson-3-di usb-serial-modules-4.19.0-21-loongson-3-di ppp-modules-4.19.0-21-loongson-3-di pata-modules-4.19.0-21-loongson-3-di cdrom-core-modules-4.19.0-21-loongson-3-di firewire-core-modules-4.19.0-21-loongson-3-di scsi-core-modules-4.19.0-21-loongson-3-di scsi-modules-4.19.0-21-loongson-3-di scsi-nic-modules-4.19.0-21-loongson-3-di loop-modules-4.19.0-21-loongson-3-di btrfs-modules-4.19.0-21-loongson-3-di ext4-modules-4.19.0-21-loongson-3-di isofs-modules-4.19.0-21-loongson-3-di jfs-modules-4.19.0-21-loongson-3-di xfs-modules-4.19.0-21-loongson-3-di fat-modules-4.19.0-21-loongson-3-di hfs-modules-4.19.0-21-loongson-3-di affs-modules-4.19.0-21-loongson-3-di minix-modules-4.19.0-21-loongson-3-di nfs-modules-4.19.0-21-loongson-3-di md-modules-4.19.0-21-loongson-3-di multipath-modules-4.19.0-21-loongson-3-di usb-modules-4.19.0-21-loongson-3-di usb-storage-modules-4.19.0-21-loongson-3-di fb-modules-4.19.0-21-loongson-3-di input-modules-4.19.0-21-loongson-3-di event-modules-4.19.0-21-loongson-3-di nic-usb-modules-4.19.0-21-loongson-3-di sata-modules-4.19.0-21-loongson-3-di crc-modules-4.19.0-21-loongson-3-di crypto-modules-4.19.0-21-loongson-3-di crypto-dm-modules-4.19.0-21-loongson-3-di ata-modules-4.19.0-21-loongson-3-di nbd-modules-4.19.0-21-loongson-3-di squashfs-modules-4.19.0-21-loongson-3-di speakup-modules-4.19.0-21-loongson-3-di sound-modules-4.19.0-21-loongson-3-di zlib-modules-4.19.0-21-loongson-3-di compress-modules-4.19.0-21-loongson-3-di udf-modules-4.19.0-21-loongson-3-di fuse-modules-4.19.0-21-loongson-3-di mtd-core-modules-4.19.0-21-loongson-3-di kernel-image-4.19.0-21-octeon-di nic-modules-4.19.0-21-octeon-di nic-wireless-modules-4.19.0-21-octeon-di nic-shared-modules-4.19.0-21-octeon-di usb-serial-modules-4.19.0-21-octeon-di ppp-modules-4.19.0-21-octeon-di pata-modules-4.19.0-21-octeon-di cdrom-core-modules-4.19.0-21-octeon-di scsi-core-modules-4.19.0-21-octeon-di scsi-modules-4.19.0-21-octeon-di scsi-nic-modules-4.19.0-21-octeon-di loop-modules-4.19.0-21-octeon-di btrfs-modules-4.19.0-21-octeon-di ext4-modules-4.19.0-21-octeon-di isofs-modules-4.19.0-21-octeon-di jfs-modules-4.19.0-21-octeon-di xfs-modules-4.19.0-21-octeon-di fat-modules-4.19.0-21-octeon-di hfs-modules-4.19.0-21-octeon-di affs-modules-4.19.0-21-octeon-di minix-modules-4.19.0-21-octeon-di md-modules-4.19.0-21-octeon-di multipath-modules-4.19.0-21-octeon-di usb-modules-4.19.0-21-octeon-di usb-storage-modules-4.19.0-21-octeon-di input-modules-4.19.0-21-octeon-di event-modules-4.19.0-21-octeon-di nic-usb-modules-4.19.0-21-octeon-di sata-modules-4.19.0-21-octeon-di crc-modules-4.19.0-21-octeon-di crypto-modules-4.19.0-21-octeon-di crypto-dm-modules-4.19.0-21-octeon-di nbd-modules-4.19.0-21-octeon-di squashfs-modules-4.19.0-21-octeon-di rtc-modules-4.19.0-21-octeon-di sound-modules-4.19.0-21-octeon-di zlib-modules-4.19.0-21-octeon-di compress-modules-4.19.0-21-octeon-di udf-modules-4.19.0-21-octeon-di fuse-modules-4.19.0-21-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='4.19.0-21' ARCH='mipsel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mipsel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mipsel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mipsel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_mipsel_none_real:
+binary-arch_mipsel_real:: setup_mipsel
+binary-arch_mipsel_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='mipsel' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mipsn32' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mipsn32el' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mipsn32r6' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mipsn32r6el' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_mipsr6:: binary-arch_mipsr6_none binary-arch_mipsr6_real
+binary-arch_mipsr6::
+ $(MAKE) -f debian/rules.real install-udeb_mipsr6 ABINAME='4.19.0-21' ARCH='mipsr6' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-mips32r6-di nic-shared-modules-4.19.0-21-mips32r6-di loop-modules-4.19.0-21-mips32r6-di btrfs-modules-4.19.0-21-mips32r6-di ext4-modules-4.19.0-21-mips32r6-di isofs-modules-4.19.0-21-mips32r6-di jfs-modules-4.19.0-21-mips32r6-di xfs-modules-4.19.0-21-mips32r6-di md-modules-4.19.0-21-mips32r6-di multipath-modules-4.19.0-21-mips32r6-di crc-modules-4.19.0-21-mips32r6-di crypto-modules-4.19.0-21-mips32r6-di crypto-dm-modules-4.19.0-21-mips32r6-di nbd-modules-4.19.0-21-mips32r6-di squashfs-modules-4.19.0-21-mips32r6-di zlib-modules-4.19.0-21-mips32r6-di compress-modules-4.19.0-21-mips32r6-di udf-modules-4.19.0-21-mips32r6-di fuse-modules-4.19.0-21-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='4.19.0-21' ARCH='mipsr6' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips32r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mipsr6' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_mipsr6_none_real:
+binary-arch_mipsr6_real:: setup_mipsr6
+binary-arch_mipsr6_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='mipsr6' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_mipsr6el:: binary-arch_mipsr6el_none binary-arch_mipsr6el_real
+binary-arch_mipsr6el::
+ $(MAKE) -f debian/rules.real install-udeb_mipsr6el ABINAME='4.19.0-21' ARCH='mipsr6el' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-mips32r6el-di nic-shared-modules-4.19.0-21-mips32r6el-di loop-modules-4.19.0-21-mips32r6el-di btrfs-modules-4.19.0-21-mips32r6el-di ext4-modules-4.19.0-21-mips32r6el-di isofs-modules-4.19.0-21-mips32r6el-di jfs-modules-4.19.0-21-mips32r6el-di xfs-modules-4.19.0-21-mips32r6el-di md-modules-4.19.0-21-mips32r6el-di multipath-modules-4.19.0-21-mips32r6el-di crc-modules-4.19.0-21-mips32r6el-di crypto-modules-4.19.0-21-mips32r6el-di crypto-dm-modules-4.19.0-21-mips32r6el-di nbd-modules-4.19.0-21-mips32r6el-di squashfs-modules-4.19.0-21-mips32r6el-di zlib-modules-4.19.0-21-mips32r6el-di compress-modules-4.19.0-21-mips32r6el-di udf-modules-4.19.0-21-mips32r6el-di fuse-modules-4.19.0-21-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='4.19.0-21' ARCH='mipsr6el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips32r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6el' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mipsr6el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_mipsr6el_none_real:
+binary-arch_mipsr6el_real:: setup_mipsr6el
+binary-arch_mipsr6el_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='mipsr6el' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_powerpc:: binary-arch_powerpc_none binary-arch_powerpc_real
+binary-arch_powerpc::
+ $(MAKE) -f debian/rules.real install-udeb_powerpc ABINAME='4.19.0-21' ARCH='powerpc' KERNEL_ARCH='powerpc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-powerpc-di nic-modules-4.19.0-21-powerpc-di nic-wireless-modules-4.19.0-21-powerpc-di nic-shared-modules-4.19.0-21-powerpc-di serial-modules-4.19.0-21-powerpc-di usb-serial-modules-4.19.0-21-powerpc-di ppp-modules-4.19.0-21-powerpc-di pata-modules-4.19.0-21-powerpc-di cdrom-core-modules-4.19.0-21-powerpc-di firewire-core-modules-4.19.0-21-powerpc-di scsi-core-modules-4.19.0-21-powerpc-di scsi-modules-4.19.0-21-powerpc-di scsi-nic-modules-4.19.0-21-powerpc-di loop-modules-4.19.0-21-powerpc-di btrfs-modules-4.19.0-21-powerpc-di ext4-modules-4.19.0-21-powerpc-di isofs-modules-4.19.0-21-powerpc-di jfs-modules-4.19.0-21-powerpc-di xfs-modules-4.19.0-21-powerpc-di fat-modules-4.19.0-21-powerpc-di hfs-modules-4.19.0-21-powerpc-di affs-modules-4.19.0-21-powerpc-di md-modules-4.19.0-21-powerpc-di multipath-modules-4.19.0-21-powerpc-di usb-modules-4.19.0-21-powerpc-di usb-storage-modules-4.19.0-21-powerpc-di pcmcia-storage-modules-4.19.0-21-powerpc-di fb-modules-4.19.0-21-powerpc-di input-modules-4.19.0-21-powerpc-di event-modules-4.19.0-21-powerpc-di mouse-modules-4.19.0-21-powerpc-di nic-pcmcia-modules-4.19.0-21-powerpc-di pcmcia-modules-4.19.0-21-powerpc-di nic-usb-modules-4.19.0-21-powerpc-di sata-modules-4.19.0-21-powerpc-di crc-modules-4.19.0-21-powerpc-di crypto-modules-4.19.0-21-powerpc-di crypto-dm-modules-4.19.0-21-powerpc-di ata-modules-4.19.0-21-powerpc-di mmc-core-modules-4.19.0-21-powerpc-di nbd-modules-4.19.0-21-powerpc-di squashfs-modules-4.19.0-21-powerpc-di uinput-modules-4.19.0-21-powerpc-di zlib-modules-4.19.0-21-powerpc-di compress-modules-4.19.0-21-powerpc-di udf-modules-4.19.0-21-powerpc-di fuse-modules-4.19.0-21-powerpc-di kernel-image-4.19.0-21-powerpc64-di nic-modules-4.19.0-21-powerpc64-di nic-wireless-modules-4.19.0-21-powerpc64-di nic-shared-modules-4.19.0-21-powerpc64-di serial-modules-4.19.0-21-powerpc64-di usb-serial-modules-4.19.0-21-powerpc64-di ppp-modules-4.19.0-21-powerpc64-di pata-modules-4.19.0-21-powerpc64-di cdrom-core-modules-4.19.0-21-powerpc64-di firewire-core-modules-4.19.0-21-powerpc64-di scsi-core-modules-4.19.0-21-powerpc64-di scsi-modules-4.19.0-21-powerpc64-di scsi-nic-modules-4.19.0-21-powerpc64-di loop-modules-4.19.0-21-powerpc64-di btrfs-modules-4.19.0-21-powerpc64-di ext4-modules-4.19.0-21-powerpc64-di isofs-modules-4.19.0-21-powerpc64-di jfs-modules-4.19.0-21-powerpc64-di xfs-modules-4.19.0-21-powerpc64-di fat-modules-4.19.0-21-powerpc64-di hfs-modules-4.19.0-21-powerpc64-di affs-modules-4.19.0-21-powerpc64-di md-modules-4.19.0-21-powerpc64-di multipath-modules-4.19.0-21-powerpc64-di usb-modules-4.19.0-21-powerpc64-di usb-storage-modules-4.19.0-21-powerpc64-di pcmcia-storage-modules-4.19.0-21-powerpc64-di fb-modules-4.19.0-21-powerpc64-di input-modules-4.19.0-21-powerpc64-di event-modules-4.19.0-21-powerpc64-di mouse-modules-4.19.0-21-powerpc64-di nic-pcmcia-modules-4.19.0-21-powerpc64-di pcmcia-modules-4.19.0-21-powerpc64-di nic-usb-modules-4.19.0-21-powerpc64-di sata-modules-4.19.0-21-powerpc64-di i2c-modules-4.19.0-21-powerpc64-di crc-modules-4.19.0-21-powerpc64-di crypto-modules-4.19.0-21-powerpc64-di crypto-dm-modules-4.19.0-21-powerpc64-di ata-modules-4.19.0-21-powerpc64-di mmc-core-modules-4.19.0-21-powerpc64-di nbd-modules-4.19.0-21-powerpc64-di squashfs-modules-4.19.0-21-powerpc64-di uinput-modules-4.19.0-21-powerpc64-di compress-modules-4.19.0-21-powerpc64-di udf-modules-4.19.0-21-powerpc64-di fuse-modules-4.19.0-21-powerpc64-di mtd-core-modules-4.19.0-21-powerpc64-di hypervisor-modules-4.19.0-21-powerpc64-di fancontrol-modules-4.19.0-21-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='4.19.0-21' ARCH='powerpc' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-powerpc-smp\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc-smp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+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='4.19.0-21' ARCH='powerpc' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+binary-arch_powerpc_none_powerpc_real::
+ $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.19.0-21' ARCH='powerpc' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-powerpc' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-powerpc\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+binary-arch_powerpc_none_real:
+binary-arch_powerpc_real:: setup_powerpc
+binary-arch_powerpc_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='powerpc' KERNEL_ARCH='powerpc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_powerpcspe: binary-arch_powerpcspe_none binary-arch_powerpcspe_real
+binary-arch_powerpcspe_none: binary-arch_powerpcspe_none_powerpcspe binary-arch_powerpcspe_none_real
+binary-arch_powerpcspe_none_powerpcspe: binary-arch_powerpcspe_none_powerpcspe_real
+binary-arch_powerpcspe_none_powerpcspe_real::
+ $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.19.0-21' ARCH='powerpcspe' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpcspe' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-powerpcspe' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpcspe/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-powerpcspe\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpcspe' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpcspe' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+binary-arch_powerpcspe_none_real:
+binary-arch_powerpcspe_real:: setup_powerpcspe
+binary-arch_powerpcspe_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='powerpcspe' KERNEL_ARCH='powerpc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_ppc64:: binary-arch_ppc64_none binary-arch_ppc64_real
+binary-arch_ppc64::
+ $(MAKE) -f debian/rules.real install-udeb_ppc64 ABINAME='4.19.0-21' ARCH='ppc64' KERNEL_ARCH='powerpc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-powerpc64-di nic-modules-4.19.0-21-powerpc64-di nic-wireless-modules-4.19.0-21-powerpc64-di nic-shared-modules-4.19.0-21-powerpc64-di serial-modules-4.19.0-21-powerpc64-di usb-serial-modules-4.19.0-21-powerpc64-di ppp-modules-4.19.0-21-powerpc64-di pata-modules-4.19.0-21-powerpc64-di cdrom-core-modules-4.19.0-21-powerpc64-di firewire-core-modules-4.19.0-21-powerpc64-di scsi-core-modules-4.19.0-21-powerpc64-di scsi-modules-4.19.0-21-powerpc64-di scsi-nic-modules-4.19.0-21-powerpc64-di loop-modules-4.19.0-21-powerpc64-di btrfs-modules-4.19.0-21-powerpc64-di ext4-modules-4.19.0-21-powerpc64-di isofs-modules-4.19.0-21-powerpc64-di jfs-modules-4.19.0-21-powerpc64-di xfs-modules-4.19.0-21-powerpc64-di fat-modules-4.19.0-21-powerpc64-di hfs-modules-4.19.0-21-powerpc64-di affs-modules-4.19.0-21-powerpc64-di md-modules-4.19.0-21-powerpc64-di multipath-modules-4.19.0-21-powerpc64-di usb-modules-4.19.0-21-powerpc64-di usb-storage-modules-4.19.0-21-powerpc64-di pcmcia-storage-modules-4.19.0-21-powerpc64-di fb-modules-4.19.0-21-powerpc64-di input-modules-4.19.0-21-powerpc64-di event-modules-4.19.0-21-powerpc64-di mouse-modules-4.19.0-21-powerpc64-di nic-pcmcia-modules-4.19.0-21-powerpc64-di pcmcia-modules-4.19.0-21-powerpc64-di nic-usb-modules-4.19.0-21-powerpc64-di sata-modules-4.19.0-21-powerpc64-di i2c-modules-4.19.0-21-powerpc64-di crc-modules-4.19.0-21-powerpc64-di crypto-modules-4.19.0-21-powerpc64-di crypto-dm-modules-4.19.0-21-powerpc64-di ata-modules-4.19.0-21-powerpc64-di mmc-core-modules-4.19.0-21-powerpc64-di nbd-modules-4.19.0-21-powerpc64-di squashfs-modules-4.19.0-21-powerpc64-di uinput-modules-4.19.0-21-powerpc64-di compress-modules-4.19.0-21-powerpc64-di udf-modules-4.19.0-21-powerpc64-di fuse-modules-4.19.0-21-powerpc64-di mtd-core-modules-4.19.0-21-powerpc64-di hypervisor-modules-4.19.0-21-powerpc64-di fancontrol-modules-4.19.0-21-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='4.19.0-21' ARCH='ppc64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+binary-arch_ppc64_none_real:
+binary-arch_ppc64_real:: setup_ppc64
+binary-arch_ppc64_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='ppc64' KERNEL_ARCH='powerpc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_ppc64el:: binary-arch_ppc64el_none binary-arch_ppc64el_real
+binary-arch_ppc64el::
+ $(MAKE) -f debian/rules.real install-udeb_ppc64el ABINAME='4.19.0-21' ARCH='ppc64el' KERNEL_ARCH='powerpc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-powerpc64le-di nic-modules-4.19.0-21-powerpc64le-di nic-wireless-modules-4.19.0-21-powerpc64le-di nic-shared-modules-4.19.0-21-powerpc64le-di serial-modules-4.19.0-21-powerpc64le-di usb-serial-modules-4.19.0-21-powerpc64le-di ppp-modules-4.19.0-21-powerpc64le-di cdrom-core-modules-4.19.0-21-powerpc64le-di firewire-core-modules-4.19.0-21-powerpc64le-di scsi-core-modules-4.19.0-21-powerpc64le-di scsi-modules-4.19.0-21-powerpc64le-di scsi-nic-modules-4.19.0-21-powerpc64le-di loop-modules-4.19.0-21-powerpc64le-di btrfs-modules-4.19.0-21-powerpc64le-di ext4-modules-4.19.0-21-powerpc64le-di isofs-modules-4.19.0-21-powerpc64le-di jfs-modules-4.19.0-21-powerpc64le-di xfs-modules-4.19.0-21-powerpc64le-di fat-modules-4.19.0-21-powerpc64le-di md-modules-4.19.0-21-powerpc64le-di multipath-modules-4.19.0-21-powerpc64le-di usb-modules-4.19.0-21-powerpc64le-di usb-storage-modules-4.19.0-21-powerpc64le-di fb-modules-4.19.0-21-powerpc64le-di input-modules-4.19.0-21-powerpc64le-di event-modules-4.19.0-21-powerpc64le-di mouse-modules-4.19.0-21-powerpc64le-di nic-usb-modules-4.19.0-21-powerpc64le-di sata-modules-4.19.0-21-powerpc64le-di i2c-modules-4.19.0-21-powerpc64le-di crc-modules-4.19.0-21-powerpc64le-di crypto-modules-4.19.0-21-powerpc64le-di crypto-dm-modules-4.19.0-21-powerpc64le-di ata-modules-4.19.0-21-powerpc64le-di nbd-modules-4.19.0-21-powerpc64le-di squashfs-modules-4.19.0-21-powerpc64le-di uinput-modules-4.19.0-21-powerpc64le-di compress-modules-4.19.0-21-powerpc64le-di udf-modules-4.19.0-21-powerpc64le-di fuse-modules-4.19.0-21-powerpc64le-di mtd-core-modules-4.19.0-21-powerpc64le-di hypervisor-modules-4.19.0-21-powerpc64le-di fancontrol-modules-4.19.0-21-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='4.19.0-21' ARCH='ppc64el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64le' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-powerpc64le\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64le' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64le' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+binary-arch_ppc64el_none_real:
+binary-arch_ppc64el_real:: setup_ppc64el
+binary-arch_ppc64el_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='ppc64el' KERNEL_ARCH='powerpc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_riscv64:: binary-arch_riscv64_none binary-arch_riscv64_real
+binary-arch_riscv64::
+ $(MAKE) -f debian/rules.real install-udeb_riscv64 ABINAME='4.19.0-21' ARCH='riscv64' KERNEL_ARCH='riscv' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-riscv64-di nic-modules-4.19.0-21-riscv64-di nic-wireless-modules-4.19.0-21-riscv64-di nic-shared-modules-4.19.0-21-riscv64-di usb-serial-modules-4.19.0-21-riscv64-di ppp-modules-4.19.0-21-riscv64-di pata-modules-4.19.0-21-riscv64-di cdrom-core-modules-4.19.0-21-riscv64-di scsi-core-modules-4.19.0-21-riscv64-di scsi-modules-4.19.0-21-riscv64-di scsi-nic-modules-4.19.0-21-riscv64-di loop-modules-4.19.0-21-riscv64-di btrfs-modules-4.19.0-21-riscv64-di ext4-modules-4.19.0-21-riscv64-di isofs-modules-4.19.0-21-riscv64-di jfs-modules-4.19.0-21-riscv64-di fat-modules-4.19.0-21-riscv64-di md-modules-4.19.0-21-riscv64-di multipath-modules-4.19.0-21-riscv64-di usb-modules-4.19.0-21-riscv64-di usb-storage-modules-4.19.0-21-riscv64-di fb-modules-4.19.0-21-riscv64-di input-modules-4.19.0-21-riscv64-di event-modules-4.19.0-21-riscv64-di nic-usb-modules-4.19.0-21-riscv64-di sata-modules-4.19.0-21-riscv64-di i2c-modules-4.19.0-21-riscv64-di crc-modules-4.19.0-21-riscv64-di crypto-modules-4.19.0-21-riscv64-di crypto-dm-modules-4.19.0-21-riscv64-di ata-modules-4.19.0-21-riscv64-di nbd-modules-4.19.0-21-riscv64-di squashfs-modules-4.19.0-21-riscv64-di zlib-modules-4.19.0-21-riscv64-di compress-modules-4.19.0-21-riscv64-di udf-modules-4.19.0-21-riscv64-di fuse-modules-4.19.0-21-riscv64-di mtd-modules-4.19.0-21-riscv64-di mtd-core-modules-4.19.0-21-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='4.19.0-21' ARCH='riscv64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='riscv64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-riscv64' KCONFIG='debian/config/config debian/config/riscv64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-riscv64\""' KERNEL_ARCH='riscv' LOCALVERSION='-riscv64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-riscv64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+binary-arch_riscv64_real:: setup_riscv64
+binary-arch_riscv64_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='riscv64' KERNEL_ARCH='riscv' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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-8-s390'
+binary-arch_s390_real:: setup_s390
+binary-arch_s390_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='s390' KERNEL_ARCH='s390' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='s390x' KERNEL_ARCH='s390' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-s390x-di nic-modules-4.19.0-21-s390x-di cdrom-core-modules-4.19.0-21-s390x-di scsi-core-modules-4.19.0-21-s390x-di scsi-modules-4.19.0-21-s390x-di loop-modules-4.19.0-21-s390x-di btrfs-modules-4.19.0-21-s390x-di ext4-modules-4.19.0-21-s390x-di isofs-modules-4.19.0-21-s390x-di xfs-modules-4.19.0-21-s390x-di fat-modules-4.19.0-21-s390x-di md-modules-4.19.0-21-s390x-di multipath-modules-4.19.0-21-s390x-di crc-modules-4.19.0-21-s390x-di crypto-modules-4.19.0-21-s390x-di crypto-dm-modules-4.19.0-21-s390x-di nbd-modules-4.19.0-21-s390x-di zlib-modules-4.19.0-21-s390x-di compress-modules-4.19.0-21-s390x-di udf-modules-4.19.0-21-s390x-di fuse-modules-4.19.0-21-s390x-di mtd-core-modules-4.19.0-21-s390x-di dasd-modules-4.19.0-21-s390x-di dasd-extra-modules-4.19.0-21-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-8-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='4.19.0-21' ARCH='s390x' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='s390x' IMAGE_FILE='arch/s390/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-s390x' KCONFIG='debian/config/config debian/config/s390x/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-s390x\""' KERNEL_ARCH='s390' LOCALVERSION='-s390x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+binary-arch_s390x_real:: setup_s390x
+binary-arch_s390x_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='s390x' KERNEL_ARCH='s390' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='sh3' KERNEL_ARCH='sh' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_sh4:: binary-arch_sh4_none binary-arch_sh4_real
+binary-arch_sh4::
+ $(MAKE) -f debian/rules.real install-udeb_sh4 ABINAME='4.19.0-21' ARCH='sh4' KERNEL_ARCH='sh' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-sh7751r-di nic-modules-4.19.0-21-sh7751r-di nic-shared-modules-4.19.0-21-sh7751r-di usb-serial-modules-4.19.0-21-sh7751r-di ppp-modules-4.19.0-21-sh7751r-di pata-modules-4.19.0-21-sh7751r-di cdrom-core-modules-4.19.0-21-sh7751r-di firewire-core-modules-4.19.0-21-sh7751r-di loop-modules-4.19.0-21-sh7751r-di btrfs-modules-4.19.0-21-sh7751r-di ext4-modules-4.19.0-21-sh7751r-di isofs-modules-4.19.0-21-sh7751r-di jfs-modules-4.19.0-21-sh7751r-di xfs-modules-4.19.0-21-sh7751r-di fat-modules-4.19.0-21-sh7751r-di minix-modules-4.19.0-21-sh7751r-di md-modules-4.19.0-21-sh7751r-di multipath-modules-4.19.0-21-sh7751r-di usb-storage-modules-4.19.0-21-sh7751r-di nic-usb-modules-4.19.0-21-sh7751r-di sata-modules-4.19.0-21-sh7751r-di i2c-modules-4.19.0-21-sh7751r-di crc-modules-4.19.0-21-sh7751r-di crypto-modules-4.19.0-21-sh7751r-di crypto-dm-modules-4.19.0-21-sh7751r-di nbd-modules-4.19.0-21-sh7751r-di squashfs-modules-4.19.0-21-sh7751r-di speakup-modules-4.19.0-21-sh7751r-di sound-modules-4.19.0-21-sh7751r-di zlib-modules-4.19.0-21-sh7751r-di compress-modules-4.19.0-21-sh7751r-di udf-modules-4.19.0-21-sh7751r-di fuse-modules-4.19.0-21-sh7751r-di kernel-image-4.19.0-21-sh7785lcr-di nic-modules-4.19.0-21-sh7785lcr-di nic-shared-modules-4.19.0-21-sh7785lcr-di usb-serial-modules-4.19.0-21-sh7785lcr-di ppp-modules-4.19.0-21-sh7785lcr-di pata-modules-4.19.0-21-sh7785lcr-di cdrom-core-modules-4.19.0-21-sh7785lcr-di firewire-core-modules-4.19.0-21-sh7785lcr-di loop-modules-4.19.0-21-sh7785lcr-di btrfs-modules-4.19.0-21-sh7785lcr-di ext4-modules-4.19.0-21-sh7785lcr-di isofs-modules-4.19.0-21-sh7785lcr-di jfs-modules-4.19.0-21-sh7785lcr-di xfs-modules-4.19.0-21-sh7785lcr-di fat-modules-4.19.0-21-sh7785lcr-di minix-modules-4.19.0-21-sh7785lcr-di md-modules-4.19.0-21-sh7785lcr-di multipath-modules-4.19.0-21-sh7785lcr-di nic-usb-modules-4.19.0-21-sh7785lcr-di sata-modules-4.19.0-21-sh7785lcr-di crc-modules-4.19.0-21-sh7785lcr-di crypto-modules-4.19.0-21-sh7785lcr-di crypto-dm-modules-4.19.0-21-sh7785lcr-di nbd-modules-4.19.0-21-sh7785lcr-di squashfs-modules-4.19.0-21-sh7785lcr-di speakup-modules-4.19.0-21-sh7785lcr-di sound-modules-4.19.0-21-sh7785lcr-di zlib-modules-4.19.0-21-sh7785lcr-di compress-modules-4.19.0-21-sh7785lcr-di udf-modules-4.19.0-21-sh7785lcr-di fuse-modules-4.19.0-21-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='4.19.0-21' ARCH='sh4' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='sh7751r' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-sh7751r' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7751r' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-sh7751r\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7751r' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7751r' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='sh4' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='sh7785lcr' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-sh7785lcr' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7785lcr' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-sh7785lcr\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7785lcr' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7785lcr' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_sh4_real:: setup_sh4
+binary-arch_sh4_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='sh4' KERNEL_ARCH='sh' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='sparc64' KERNEL_ARCH='sparc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19' PACKAGE_NAMES='kernel-image-4.19.0-21-sparc64-di nic-modules-4.19.0-21-sparc64-di nic-shared-modules-4.19.0-21-sparc64-di usb-serial-modules-4.19.0-21-sparc64-di ppp-modules-4.19.0-21-sparc64-di pata-modules-4.19.0-21-sparc64-di cdrom-core-modules-4.19.0-21-sparc64-di scsi-core-modules-4.19.0-21-sparc64-di scsi-modules-4.19.0-21-sparc64-di btrfs-modules-4.19.0-21-sparc64-di ext4-modules-4.19.0-21-sparc64-di isofs-modules-4.19.0-21-sparc64-di jfs-modules-4.19.0-21-sparc64-di ufs-modules-4.19.0-21-sparc64-di xfs-modules-4.19.0-21-sparc64-di fat-modules-4.19.0-21-sparc64-di md-modules-4.19.0-21-sparc64-di multipath-modules-4.19.0-21-sparc64-di usb-modules-4.19.0-21-sparc64-di usb-storage-modules-4.19.0-21-sparc64-di fb-modules-4.19.0-21-sparc64-di input-modules-4.19.0-21-sparc64-di nic-usb-modules-4.19.0-21-sparc64-di sata-modules-4.19.0-21-sparc64-di i2c-modules-4.19.0-21-sparc64-di crc-modules-4.19.0-21-sparc64-di crypto-modules-4.19.0-21-sparc64-di crypto-dm-modules-4.19.0-21-sparc64-di ata-modules-4.19.0-21-sparc64-di nbd-modules-4.19.0-21-sparc64-di squashfs-modules-4.19.0-21-sparc64-di zlib-modules-4.19.0-21-sparc64-di compress-modules-4.19.0-21-sparc64-di udf-modules-4.19.0-21-sparc64-di fuse-modules-4.19.0-21-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='4.19.0-21' ARCH='sparc64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-sparc64-smp\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64-smp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_sparc64_none_sparc64_real::
+ $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.19.0-21' ARCH='sparc64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-sparc64\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_sparc64_real:: setup_sparc64
+binary-arch_sparc64_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='sparc64' KERNEL_ARCH='sparc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-arch_sparc_real:: setup_sparc
+binary-arch_sparc_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='sparc' KERNEL_ARCH='sparc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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-8-x86'
+binary-arch_x32_real:: setup_x32
+binary-arch_x32_real::
+ $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.19.0-21' ARCH='x32' KERNEL_ARCH='x86' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-indep:: binary-indep_none binary-indep_rt
+binary-indep::
+ $(MAKE) -f debian/rules.real binary-indep ABINAME='4.19.0-21' ALL_FEATURESETS='none rt' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-indep_none: binary-indep_none_real
+binary-indep_none_real::
+ $(MAKE) -f debian/rules.real binary-indep-featureset ABINAME='4.19.0-21' ALL_KERNEL_ARCHES='alpha arm arm64 ia64 m68k mips parisc powerpc riscv s390 sh sparc x86' FEATURESET='none' LOCALVERSION='' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+binary-indep_rt: binary-indep_rt_real
+binary-indep_rt_real::
+ $(MAKE) -f debian/rules.real binary-indep-featureset ABINAME='4.19.0-21' ALL_KERNEL_ARCHES='arm arm64 x86' FEATURESET='rt' LOCALVERSION='-rt' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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_powerpcspe 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='4.19.0-21' ARCH='alpha' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-generic' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-alpha-generic\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-generic' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-generic' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='alpha' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-smp' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-alpha-smp\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-smp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_alpha_none_real:
+build-arch_alpha_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='alpha' KERNEL_ARCH='alpha' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='amd64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+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='4.19.0-21' ARCH='amd64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='cloud-amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-cloud-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/amd64/config.cloud-amd64' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-cloud-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-cloud-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-cloud-amd64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+build-arch_amd64_none_real:
+build-arch_amd64_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='amd64' KERNEL_ARCH='x86' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='amd64' COMPILER='gcc-8' DEBUG='True' FEATURESET='rt' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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 MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-rt-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-amd64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-amd64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+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_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='4.19.0-21' ARCH='arm64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-arm64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+build-arch_arm64_none_real:
+build-arch_arm64_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='arm64' KERNEL_ARCH='arm64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='arm64' COMPILER='gcc-8' DEBUG='True' FEATURESET='rt' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-rt-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-rt-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-rt-arm64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-arm64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+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='4.19.0-21' ARCH='arm64ilp32' KERNEL_ARCH='arm64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='armel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='marvell' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-marvell\""' KERNEL_ARCH='arm' LOCALVERSION='-marvell' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-marvell' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='armel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='rpi' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-rpi\""' KERNEL_ARCH='arm' LOCALVERSION='-rpi' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-rpi' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_armel_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='armel' KERNEL_ARCH='arm' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='armhf' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='armmp-lpae' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-armmp-lpae\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp-lpae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp-lpae' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+build-arch_armhf_none_armmp_real::
+ $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.19.0-21' ARCH='armhf' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-armmp' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+build-arch_armhf_none_real:
+build-arch_armhf_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='armhf' KERNEL_ARCH='arm' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='armhf' COMPILER='gcc-8' DEBUG='True' FEATURESET='rt' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-rt-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-rt-armmp' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-armmp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+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_parisc-smp build-arch_hppa_none_parisc64-smp build-arch_hppa_none_real
+build-arch_hppa_none_parisc: build-arch_hppa_none_parisc_real
+build-arch_hppa_none_parisc-smp: build-arch_hppa_none_parisc-smp_real
+build-arch_hppa_none_parisc-smp_real::
+ $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.19.0-21' ARCH='hppa' COMPILER='gcc-8' FEATURESET='none' FLAVOUR='parisc-smp' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-parisc-smp' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc-smp' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"4.19.0-21-parisc-smp\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc-smp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_hppa_none_parisc64-smp: build-arch_hppa_none_parisc64-smp_real
+build-arch_hppa_none_parisc64-smp_real::
+ $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.19.0-21' ARCH='hppa' CFLAGS_KERNEL='-fno-cse-follow-jumps' COMPILER='gcc-8' FEATURESET='none' FLAVOUR='parisc64-smp' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-parisc64-smp' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc64-smp' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"4.19.0-21-parisc64-smp\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc64-smp' OVERRIDE_HOST_TYPE='hppa64-linux-gnu' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_hppa_none_parisc_real::
+ $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.19.0-21' ARCH='hppa' COMPILER='gcc-8' FEATURESET='none' FLAVOUR='parisc' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-parisc' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"4.19.0-21-parisc\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_hppa_none_real:
+build-arch_hppa_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='hppa' KERNEL_ARCH='parisc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='i386' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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 MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-686-pae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686-pae' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+build-arch_i386_none_686_real::
+ $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.19.0-21' ARCH='i386' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='686' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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 MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-686\""' KERNEL_ARCH='x86' LOCALVERSION='-686' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+build-arch_i386_none_real:
+build-arch_i386_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='i386' KERNEL_ARCH='x86' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='i386' COMPILER='gcc-8' DEBUG='True' FEATURESET='rt' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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 MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-rt-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-686-pae' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-686-pae' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+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='4.19.0-21' ARCH='ia64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='itanium' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-itanium' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.itanium' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-itanium\""' KERNEL_ARCH='ia64' LOCALVERSION='-itanium' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-itanium' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='ia64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mckinley' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-mckinley' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.mckinley' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-mckinley\""' KERNEL_ARCH='ia64' LOCALVERSION='-mckinley' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mckinley' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_ia64_none_real:
+build-arch_ia64_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='ia64' KERNEL_ARCH='ia64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='m68k' CFLAGS_KERNEL='-ffreestanding' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='m68k' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-m68k' KCONFIG='debian/config/config debian/config/m68k/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-m68k\""' KERNEL_ARCH='m68k' LOCALVERSION='-m68k' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-m68k' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_m68k_none_real:
+build-arch_m68k_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='m68k' KERNEL_ARCH='m68k' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_mips64_none_real:
+build-arch_mips64_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='mips64' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips64el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips64el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips64el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_mips64el_none_real:
+build-arch_mips64el_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='mips64el' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips64r6' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_mips64r6_none_real:
+build-arch_mips64r6_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='mips64r6' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips64r6el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_mips64r6el_none_real:
+build-arch_mips64r6el_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='mips64r6el' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_mips_none_real:
+build-arch_mips_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='mips' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mipsel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mipsel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mipsel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mipsel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_mipsel_none_real:
+build-arch_mipsel_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='mipsel' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_mipsn32: build-arch_mipsn32_real
+build-arch_mipsn32_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='mipsn32' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_mipsn32el: build-arch_mipsn32el_real
+build-arch_mipsn32el_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='mipsn32el' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_mipsn32r6: build-arch_mipsn32r6_real
+build-arch_mipsn32r6_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='mipsn32r6' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_mipsn32r6el: build-arch_mipsn32r6el_real
+build-arch_mipsn32r6el_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='mipsn32r6el' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mipsr6' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips32r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mipsr6' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_mipsr6_none_real:
+build-arch_mipsr6_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='mipsr6' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mipsr6el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips32r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6el' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mipsr6el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_mipsr6el_none_real:
+build-arch_mipsr6el_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='mipsr6el' KERNEL_ARCH='mips' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='powerpc' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-powerpc-smp\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc-smp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+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='4.19.0-21' ARCH='powerpc' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+build-arch_powerpc_none_powerpc_real::
+ $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.19.0-21' ARCH='powerpc' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-powerpc' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-powerpc\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+build-arch_powerpc_none_real:
+build-arch_powerpc_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='powerpc' KERNEL_ARCH='powerpc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_powerpcspe: build-arch_powerpcspe_none build-arch_powerpcspe_real
+build-arch_powerpcspe_none: build-arch_powerpcspe_none_powerpcspe build-arch_powerpcspe_none_real
+build-arch_powerpcspe_none_powerpcspe: build-arch_powerpcspe_none_powerpcspe_real
+build-arch_powerpcspe_none_powerpcspe_real::
+ $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.19.0-21' ARCH='powerpcspe' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpcspe' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-powerpcspe' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpcspe/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-powerpcspe\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpcspe' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpcspe' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+build-arch_powerpcspe_none_real:
+build-arch_powerpcspe_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='powerpcspe' KERNEL_ARCH='powerpc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='ppc64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+build-arch_ppc64_none_real:
+build-arch_ppc64_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='ppc64' KERNEL_ARCH='powerpc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='ppc64el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64le' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-powerpc64le\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64le' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64le' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+build-arch_ppc64el_none_real:
+build-arch_ppc64el_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='ppc64el' KERNEL_ARCH='powerpc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='riscv64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='riscv64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-riscv64' KCONFIG='debian/config/config debian/config/riscv64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-riscv64\""' KERNEL_ARCH='riscv' LOCALVERSION='-riscv64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-riscv64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+build-arch_riscv64_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='riscv64' KERNEL_ARCH='riscv' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_s390: build-arch_s390_real
+build-arch_s390_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='s390' KERNEL_ARCH='s390' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='s390x' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='s390x' IMAGE_FILE='arch/s390/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-s390x' KCONFIG='debian/config/config debian/config/s390x/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-s390x\""' KERNEL_ARCH='s390' LOCALVERSION='-s390x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+build-arch_s390x_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='s390x' KERNEL_ARCH='s390' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_sh3: build-arch_sh3_real
+build-arch_sh3_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='sh3' KERNEL_ARCH='sh' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='sh4' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='sh7751r' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-sh7751r' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7751r' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-sh7751r\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7751r' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7751r' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='sh4' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='sh7785lcr' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-sh7785lcr' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7785lcr' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-sh7785lcr\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7785lcr' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7785lcr' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_sh4_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='sh4' KERNEL_ARCH='sh' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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
+build-arch_sparc64_none_real:
+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='4.19.0-21' ARCH='sparc64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-sparc64-smp\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64-smp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_sparc64_none_sparc64_real::
+ $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.19.0-21' ARCH='sparc64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-sparc64\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_sparc64_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='sparc64' KERNEL_ARCH='sparc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_sparc_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='sparc' KERNEL_ARCH='sparc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-arch_x32: build-arch_x32_real
+build-arch_x32_real::
+ $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.19.0-21' ARCH='x32' KERNEL_ARCH='x86' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+build-indep:: build-indep_none build-indep_rt
+build-indep::
+ $(MAKE) -f debian/rules.real build-indep ABINAME='4.19.0-21' ALL_FEATURESETS='none rt' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='alpha' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-generic' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-alpha-generic\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-generic' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-generic' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.alpha_none_alpha-smp::
+ $(MAKE) -f debian/rules.real debian/build/config.alpha_none_alpha-smp ABINAME='4.19.0-21' ARCH='alpha' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-smp' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-alpha-smp\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-smp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.amd64_none_amd64::
+ $(MAKE) -f debian/rules.real debian/build/config.amd64_none_amd64 ABINAME='4.19.0-21' ARCH='amd64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+debian/build/config.amd64_none_cloud-amd64::
+ $(MAKE) -f debian/rules.real debian/build/config.amd64_none_cloud-amd64 ABINAME='4.19.0-21' ARCH='amd64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='cloud-amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-cloud-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/amd64/config.cloud-amd64' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-cloud-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-cloud-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-cloud-amd64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+debian/build/config.amd64_rt_amd64::
+ $(MAKE) -f debian/rules.real debian/build/config.amd64_rt_amd64 ABINAME='4.19.0-21' ARCH='amd64' COMPILER='gcc-8' DEBUG='True' FEATURESET='rt' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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 MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-rt-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-amd64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-amd64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+debian/build/config.arm64_none_arm64::
+ $(MAKE) -f debian/rules.real debian/build/config.arm64_none_arm64 ABINAME='4.19.0-21' ARCH='arm64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-arm64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+debian/build/config.arm64_rt_arm64::
+ $(MAKE) -f debian/rules.real debian/build/config.arm64_rt_arm64 ABINAME='4.19.0-21' ARCH='arm64' COMPILER='gcc-8' DEBUG='True' FEATURESET='rt' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-rt-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-rt-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-rt-arm64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-arm64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+debian/build/config.armel_none_marvell::
+ $(MAKE) -f debian/rules.real debian/build/config.armel_none_marvell ABINAME='4.19.0-21' ARCH='armel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='marvell' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-marvell\""' KERNEL_ARCH='arm' LOCALVERSION='-marvell' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-marvell' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.armel_none_rpi::
+ $(MAKE) -f debian/rules.real debian/build/config.armel_none_rpi ABINAME='4.19.0-21' ARCH='armel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='rpi' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-rpi\""' KERNEL_ARCH='arm' LOCALVERSION='-rpi' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-rpi' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.armhf_none_armmp::
+ $(MAKE) -f debian/rules.real debian/build/config.armhf_none_armmp ABINAME='4.19.0-21' ARCH='armhf' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-armmp' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+debian/build/config.armhf_none_armmp-lpae::
+ $(MAKE) -f debian/rules.real debian/build/config.armhf_none_armmp-lpae ABINAME='4.19.0-21' ARCH='armhf' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='armmp-lpae' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-armmp-lpae\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp-lpae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp-lpae' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+debian/build/config.armhf_rt_armmp::
+ $(MAKE) -f debian/rules.real debian/build/config.armhf_rt_armmp ABINAME='4.19.0-21' ARCH='armhf' COMPILER='gcc-8' DEBUG='True' FEATURESET='rt' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-rt-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-rt-armmp' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-armmp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+debian/build/config.hppa_none_parisc::
+ $(MAKE) -f debian/rules.real debian/build/config.hppa_none_parisc ABINAME='4.19.0-21' ARCH='hppa' COMPILER='gcc-8' FEATURESET='none' FLAVOUR='parisc' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-parisc' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"4.19.0-21-parisc\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.hppa_none_parisc-smp::
+ $(MAKE) -f debian/rules.real debian/build/config.hppa_none_parisc-smp ABINAME='4.19.0-21' ARCH='hppa' COMPILER='gcc-8' FEATURESET='none' FLAVOUR='parisc-smp' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-parisc-smp' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc-smp' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"4.19.0-21-parisc-smp\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc-smp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.hppa_none_parisc64-smp::
+ $(MAKE) -f debian/rules.real debian/build/config.hppa_none_parisc64-smp ABINAME='4.19.0-21' ARCH='hppa' CFLAGS_KERNEL='-fno-cse-follow-jumps' COMPILER='gcc-8' FEATURESET='none' FLAVOUR='parisc64-smp' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-parisc64-smp' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc64-smp' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"4.19.0-21-parisc64-smp\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc64-smp' OVERRIDE_HOST_TYPE='hppa64-linux-gnu' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.i386_none_686::
+ $(MAKE) -f debian/rules.real debian/build/config.i386_none_686 ABINAME='4.19.0-21' ARCH='i386' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='686' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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 MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-686\""' KERNEL_ARCH='x86' LOCALVERSION='-686' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+debian/build/config.i386_none_686-pae::
+ $(MAKE) -f debian/rules.real debian/build/config.i386_none_686-pae ABINAME='4.19.0-21' ARCH='i386' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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 MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-686-pae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686-pae' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+debian/build/config.i386_rt_686-pae::
+ $(MAKE) -f debian/rules.real debian/build/config.i386_rt_686-pae ABINAME='4.19.0-21' ARCH='i386' COMPILER='gcc-8' DEBUG='True' FEATURESET='rt' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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 MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-rt-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-686-pae' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-686-pae' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+debian/build/config.ia64_none_itanium::
+ $(MAKE) -f debian/rules.real debian/build/config.ia64_none_itanium ABINAME='4.19.0-21' ARCH='ia64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='itanium' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-itanium' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.itanium' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-itanium\""' KERNEL_ARCH='ia64' LOCALVERSION='-itanium' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-itanium' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.ia64_none_mckinley::
+ $(MAKE) -f debian/rules.real debian/build/config.ia64_none_mckinley ABINAME='4.19.0-21' ARCH='ia64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mckinley' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-mckinley' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.mckinley' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-mckinley\""' KERNEL_ARCH='ia64' LOCALVERSION='-mckinley' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mckinley' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.m68k_none_m68k::
+ $(MAKE) -f debian/rules.real debian/build/config.m68k_none_m68k ABINAME='4.19.0-21' ARCH='m68k' CFLAGS_KERNEL='-ffreestanding' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='m68k' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-m68k' KCONFIG='debian/config/config debian/config/m68k/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-m68k\""' KERNEL_ARCH='m68k' LOCALVERSION='-m68k' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-m68k' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.mips64_none_5kc-malta::
+ $(MAKE) -f debian/rules.real debian/build/config.mips64_none_5kc-malta ABINAME='4.19.0-21' ARCH='mips64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.mips64_none_octeon::
+ $(MAKE) -f debian/rules.real debian/build/config.mips64_none_octeon ABINAME='4.19.0-21' ARCH='mips64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.mips64el_none_5kc-malta::
+ $(MAKE) -f debian/rules.real debian/build/config.mips64el_none_5kc-malta ABINAME='4.19.0-21' ARCH='mips64el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.mips64el_none_loongson-3::
+ $(MAKE) -f debian/rules.real debian/build/config.mips64el_none_loongson-3 ABINAME='4.19.0-21' ARCH='mips64el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.mips64el_none_octeon::
+ $(MAKE) -f debian/rules.real debian/build/config.mips64el_none_octeon ABINAME='4.19.0-21' ARCH='mips64el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.mips64r6_none_mips64r6::
+ $(MAKE) -f debian/rules.real debian/build/config.mips64r6_none_mips64r6 ABINAME='4.19.0-21' ARCH='mips64r6' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.mips64r6el_none_mips64r6el::
+ $(MAKE) -f debian/rules.real debian/build/config.mips64r6el_none_mips64r6el ABINAME='4.19.0-21' ARCH='mips64r6el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.mips_none_4kc-malta::
+ $(MAKE) -f debian/rules.real debian/build/config.mips_none_4kc-malta ABINAME='4.19.0-21' ARCH='mips' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.mips_none_5kc-malta::
+ $(MAKE) -f debian/rules.real debian/build/config.mips_none_5kc-malta ABINAME='4.19.0-21' ARCH='mips' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.mips_none_octeon::
+ $(MAKE) -f debian/rules.real debian/build/config.mips_none_octeon ABINAME='4.19.0-21' ARCH='mips' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.mipsel_none_4kc-malta::
+ $(MAKE) -f debian/rules.real debian/build/config.mipsel_none_4kc-malta ABINAME='4.19.0-21' ARCH='mipsel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.mipsel_none_5kc-malta::
+ $(MAKE) -f debian/rules.real debian/build/config.mipsel_none_5kc-malta ABINAME='4.19.0-21' ARCH='mipsel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.mipsel_none_loongson-3::
+ $(MAKE) -f debian/rules.real debian/build/config.mipsel_none_loongson-3 ABINAME='4.19.0-21' ARCH='mipsel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.mipsel_none_octeon::
+ $(MAKE) -f debian/rules.real debian/build/config.mipsel_none_octeon ABINAME='4.19.0-21' ARCH='mipsel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.mipsr6_none_mips32r6::
+ $(MAKE) -f debian/rules.real debian/build/config.mipsr6_none_mips32r6 ABINAME='4.19.0-21' ARCH='mipsr6' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips32r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.mipsr6_none_mips64r6::
+ $(MAKE) -f debian/rules.real debian/build/config.mipsr6_none_mips64r6 ABINAME='4.19.0-21' ARCH='mipsr6' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.mipsr6el_none_mips32r6el::
+ $(MAKE) -f debian/rules.real debian/build/config.mipsr6el_none_mips32r6el ABINAME='4.19.0-21' ARCH='mipsr6el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips32r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6el' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.mipsr6el_none_mips64r6el::
+ $(MAKE) -f debian/rules.real debian/build/config.mipsr6el_none_mips64r6el ABINAME='4.19.0-21' ARCH='mipsr6el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.powerpc_none_powerpc::
+ $(MAKE) -f debian/rules.real debian/build/config.powerpc_none_powerpc ABINAME='4.19.0-21' ARCH='powerpc' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-powerpc' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-powerpc\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+debian/build/config.powerpc_none_powerpc-smp::
+ $(MAKE) -f debian/rules.real debian/build/config.powerpc_none_powerpc-smp ABINAME='4.19.0-21' ARCH='powerpc' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-powerpc-smp\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc-smp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+debian/build/config.powerpc_none_powerpc64::
+ $(MAKE) -f debian/rules.real debian/build/config.powerpc_none_powerpc64 ABINAME='4.19.0-21' ARCH='powerpc' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+debian/build/config.powerpcspe_none_powerpcspe::
+ $(MAKE) -f debian/rules.real debian/build/config.powerpcspe_none_powerpcspe ABINAME='4.19.0-21' ARCH='powerpcspe' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpcspe' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-powerpcspe' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpcspe/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-powerpcspe\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpcspe' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpcspe' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+debian/build/config.ppc64_none_powerpc64::
+ $(MAKE) -f debian/rules.real debian/build/config.ppc64_none_powerpc64 ABINAME='4.19.0-21' ARCH='ppc64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+debian/build/config.ppc64el_none_powerpc64le::
+ $(MAKE) -f debian/rules.real debian/build/config.ppc64el_none_powerpc64le ABINAME='4.19.0-21' ARCH='ppc64el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64le' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-powerpc64le\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64le' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64le' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+debian/build/config.riscv64_none_riscv64::
+ $(MAKE) -f debian/rules.real debian/build/config.riscv64_none_riscv64 ABINAME='4.19.0-21' ARCH='riscv64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='riscv64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-riscv64' KCONFIG='debian/config/config debian/config/riscv64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-riscv64\""' KERNEL_ARCH='riscv' LOCALVERSION='-riscv64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-riscv64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+debian/build/config.s390x_none_s390x::
+ $(MAKE) -f debian/rules.real debian/build/config.s390x_none_s390x ABINAME='4.19.0-21' ARCH='s390x' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='s390x' IMAGE_FILE='arch/s390/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-s390x' KCONFIG='debian/config/config debian/config/s390x/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-s390x\""' KERNEL_ARCH='s390' LOCALVERSION='-s390x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+debian/build/config.sh4_none_sh7751r::
+ $(MAKE) -f debian/rules.real debian/build/config.sh4_none_sh7751r ABINAME='4.19.0-21' ARCH='sh4' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='sh7751r' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-sh7751r' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7751r' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-sh7751r\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7751r' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7751r' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.sh4_none_sh7785lcr::
+ $(MAKE) -f debian/rules.real debian/build/config.sh4_none_sh7785lcr ABINAME='4.19.0-21' ARCH='sh4' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='sh7785lcr' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-sh7785lcr' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7785lcr' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-sh7785lcr\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7785lcr' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7785lcr' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.sparc64_none_sparc64::
+ $(MAKE) -f debian/rules.real debian/build/config.sparc64_none_sparc64 ABINAME='4.19.0-21' ARCH='sparc64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-sparc64\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+debian/build/config.sparc64_none_sparc64-smp::
+ $(MAKE) -f debian/rules.real debian/build/config.sparc64_none_sparc64-smp ABINAME='4.19.0-21' ARCH='sparc64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-sparc64-smp\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64-smp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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_powerpcspe 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='4.19.0-21' ARCH='alpha' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-generic' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-alpha-generic\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-generic' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-generic' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='alpha' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-smp' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-alpha-smp\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-smp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='amd64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+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='4.19.0-21' ARCH='amd64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='cloud-amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-cloud-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/amd64/config.cloud-amd64' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-cloud-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-cloud-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-cloud-amd64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+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='4.19.0-21' ARCH='amd64' COMPILER='gcc-8' DEBUG='True' FEATURESET='rt' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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 MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-rt-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-amd64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-amd64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+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_real
+setup_arm64_none_arm64: setup_arm64_none_arm64_real
+setup_arm64_none_arm64_real::
+ $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.19.0-21' ARCH='arm64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-arm64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+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='4.19.0-21' ARCH='arm64' COMPILER='gcc-8' DEBUG='True' FEATURESET='rt' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-rt-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-rt-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-rt-arm64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-arm64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+setup_arm64_rt_real:
+setup_arm64ilp32: setup_arm64ilp32_real
+setup_arm64ilp32_real:
+setup_armel: setup_armel_none setup_armel_real
+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='4.19.0-21' ARCH='armel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='marvell' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-marvell\""' KERNEL_ARCH='arm' LOCALVERSION='-marvell' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-marvell' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='armel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='rpi' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-rpi\""' KERNEL_ARCH='arm' LOCALVERSION='-rpi' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-rpi' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='armhf' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='armmp-lpae' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-armmp-lpae\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp-lpae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp-lpae' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+setup_armhf_none_armmp_real::
+ $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.19.0-21' ARCH='armhf' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-armmp' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+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='4.19.0-21' ARCH='armhf' COMPILER='gcc-8' DEBUG='True' FEATURESET='rt' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-rt-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-rt-armmp' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-armmp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+setup_armhf_rt_real:
+setup_hppa: setup_hppa_none setup_hppa_real
+setup_hppa_none: setup_hppa_none_parisc setup_hppa_none_parisc-smp setup_hppa_none_parisc64-smp setup_hppa_none_real
+setup_hppa_none_parisc: setup_hppa_none_parisc_real
+setup_hppa_none_parisc-smp: setup_hppa_none_parisc-smp_real
+setup_hppa_none_parisc-smp_real::
+ $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.19.0-21' ARCH='hppa' COMPILER='gcc-8' FEATURESET='none' FLAVOUR='parisc-smp' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-parisc-smp' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc-smp' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"4.19.0-21-parisc-smp\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc-smp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+setup_hppa_none_parisc64-smp: setup_hppa_none_parisc64-smp_real
+setup_hppa_none_parisc64-smp_real::
+ $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.19.0-21' ARCH='hppa' CFLAGS_KERNEL='-fno-cse-follow-jumps' COMPILER='gcc-8' FEATURESET='none' FLAVOUR='parisc64-smp' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-parisc64-smp' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc64-smp' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"4.19.0-21-parisc64-smp\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc64-smp' OVERRIDE_HOST_TYPE='hppa64-linux-gnu' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+setup_hppa_none_parisc_real::
+ $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.19.0-21' ARCH='hppa' COMPILER='gcc-8' FEATURESET='none' FLAVOUR='parisc' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-parisc' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"4.19.0-21-parisc\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+setup_hppa_none_real:
+setup_hppa_real:
+setup_i386: setup_i386_none setup_i386_real setup_i386_rt
+setup_i386_none: setup_i386_none_686 setup_i386_none_686-pae setup_i386_none_real
+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='4.19.0-21' ARCH='i386' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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 MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-686-pae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686-pae' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+setup_i386_none_686_real::
+ $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.19.0-21' ARCH='i386' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='686' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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 MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-686\""' KERNEL_ARCH='x86' LOCALVERSION='-686' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+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='4.19.0-21' ARCH='i386' COMPILER='gcc-8' DEBUG='True' FEATURESET='rt' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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 MODULE_SIG=y -o "BUILD_SALT=\"4.19.0-21-rt-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-686-pae' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-686-pae' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+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='4.19.0-21' ARCH='ia64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='itanium' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-itanium' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.itanium' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-itanium\""' KERNEL_ARCH='ia64' LOCALVERSION='-itanium' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-itanium' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+setup_ia64_none_mckinley: setup_ia64_none_mckinley_real
+setup_ia64_none_mckinley_real::
+ $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.19.0-21' ARCH='ia64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mckinley' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-mckinley' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.mckinley' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-mckinley\""' KERNEL_ARCH='ia64' LOCALVERSION='-mckinley' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mckinley' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='m68k' CFLAGS_KERNEL='-ffreestanding' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='m68k' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-m68k' KCONFIG='debian/config/config debian/config/m68k/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-m68k\""' KERNEL_ARCH='m68k' LOCALVERSION='-m68k' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-m68k' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+setup_m68k_none_real:
+setup_m68k_real:
+setup_mips: setup_mips_none setup_mips_real
+setup_mips64: setup_mips64_none setup_mips64_real
+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='4.19.0-21' ARCH='mips64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+setup_mips64_none_octeon: setup_mips64_none_octeon_real
+setup_mips64_none_octeon_real::
+ $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.19.0-21' ARCH='mips64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips64el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips64el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+setup_mips64el_none_octeon: setup_mips64el_none_octeon_real
+setup_mips64el_none_octeon_real::
+ $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.19.0-21' ARCH='mips64el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips64r6' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips64r6el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mips' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+setup_mips_none_octeon: setup_mips_none_octeon_real
+setup_mips_none_octeon_real::
+ $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.19.0-21' ARCH='mips' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mipsel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mipsel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mipsel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+setup_mipsel_none_octeon: setup_mipsel_none_octeon_real
+setup_mipsel_none_octeon_real::
+ $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.19.0-21' ARCH='mipsel' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+setup_mipsel_none_real:
+setup_mipsel_real:
+setup_mipsn32: setup_mipsn32_real
+setup_mipsn32_real:
+setup_mipsn32el: setup_mipsn32el_real
+setup_mipsn32el_real:
+setup_mipsn32r6: setup_mipsn32r6_real
+setup_mipsn32r6_real:
+setup_mipsn32r6el: setup_mipsn32r6el_real
+setup_mipsn32r6el_real:
+setup_mipsr6: setup_mipsr6_none setup_mipsr6_real
+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='4.19.0-21' ARCH='mipsr6' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips32r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+setup_mipsr6_none_mips64r6: setup_mipsr6_none_mips64r6_real
+setup_mipsr6_none_mips64r6_real::
+ $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.19.0-21' ARCH='mipsr6' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+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='4.19.0-21' ARCH='mipsr6el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips32r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6el' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+setup_mipsr6el_none_mips64r6el: setup_mipsr6el_none_mips64r6el_real
+setup_mipsr6el_none_mips64r6el_real::
+ $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.19.0-21' ARCH='mipsr6el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+setup_mipsr6el_none_real:
+setup_mipsr6el_real:
+setup_none: setup_none_real
+setup_none_real:
+setup_powerpc: setup_powerpc_none setup_powerpc_real
+setup_powerpc_none: setup_powerpc_none_powerpc setup_powerpc_none_powerpc-smp setup_powerpc_none_powerpc64 setup_powerpc_none_real
+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='4.19.0-21' ARCH='powerpc' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-powerpc-smp\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc-smp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+setup_powerpc_none_powerpc64: setup_powerpc_none_powerpc64_real
+setup_powerpc_none_powerpc64_real::
+ $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.19.0-21' ARCH='powerpc' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+setup_powerpc_none_powerpc_real::
+ $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.19.0-21' ARCH='powerpc' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-powerpc' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-powerpc\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+setup_powerpc_none_real:
+setup_powerpc_real:
+setup_powerpcspe: setup_powerpcspe_none setup_powerpcspe_real
+setup_powerpcspe_none: setup_powerpcspe_none_powerpcspe setup_powerpcspe_none_real
+setup_powerpcspe_none_powerpcspe: setup_powerpcspe_none_powerpcspe_real
+setup_powerpcspe_none_powerpcspe_real::
+ $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.19.0-21' ARCH='powerpcspe' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpcspe' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-powerpcspe' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpcspe/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-powerpcspe\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpcspe' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpcspe' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+setup_powerpcspe_none_real:
+setup_powerpcspe_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='4.19.0-21' ARCH='ppc64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+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='4.19.0-21' ARCH='ppc64el' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64le' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-powerpc64le\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64le' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64le' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+setup_ppc64el_none_real:
+setup_ppc64el_real:
+setup_riscv64: setup_riscv64_none setup_riscv64_real
+setup_riscv64_none: setup_riscv64_none_real setup_riscv64_none_riscv64
+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='4.19.0-21' ARCH='riscv64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='riscv64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-riscv64' KCONFIG='debian/config/config debian/config/riscv64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-riscv64\""' KERNEL_ARCH='riscv' LOCALVERSION='-riscv64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-riscv64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+setup_riscv64_real:
+setup_rt: setup_rt_real
+setup_rt_real:
+setup_s390: setup_s390_real
+setup_s390_real:
+setup_s390x: setup_s390x_none setup_s390x_real
+setup_s390x_none: setup_s390x_none_real setup_s390x_none_s390x
+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='4.19.0-21' ARCH='s390x' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='s390x' IMAGE_FILE='arch/s390/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-s390x' KCONFIG='debian/config/config debian/config/s390x/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-s390x\""' KERNEL_ARCH='s390' LOCALVERSION='-s390x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VDSO='True' VERSION='4.19'
+setup_s390x_real:
+setup_sh3: setup_sh3_real
+setup_sh3_real:
+setup_sh4: setup_sh4_none setup_sh4_real
+setup_sh4_none: setup_sh4_none_real setup_sh4_none_sh7751r setup_sh4_none_sh7785lcr
+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='4.19.0-21' ARCH='sh4' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='sh7751r' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-sh7751r' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7751r' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-sh7751r\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7751r' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7751r' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+setup_sh4_none_sh7785lcr: setup_sh4_none_sh7785lcr_real
+setup_sh4_none_sh7785lcr_real::
+ $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.19.0-21' ARCH='sh4' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='sh7785lcr' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-sh7785lcr' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7785lcr' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"4.19.0-21-sh7785lcr\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7785lcr' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7785lcr' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+setup_sh4_real:
+setup_sparc: setup_sparc_real
+setup_sparc64: setup_sparc64_none setup_sparc64_real
+setup_sparc64_none: setup_sparc64_none_real setup_sparc64_none_sparc64 setup_sparc64_none_sparc64-smp
+setup_sparc64_none_real:
+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='4.19.0-21' ARCH='sparc64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-sparc64-smp\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64-smp' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+setup_sparc64_none_sparc64_real::
+ $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.19.0-21' ARCH='sparc64' COMPILER='gcc-8' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.19.0-21-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=\"4.19.0-21-sparc64\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+setup_sparc64_real:
+setup_sparc_real:
+setup_x32: setup_x32_real
+setup_x32_real:
+source: source_none source_rt
+source_none: source_none_real
+source_none_real::
+ $(MAKE) -f debian/rules.real source-featureset ABINAME='4.19.0-21' FEATURESET='none' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
+source_rt: source_rt_real
+source_rt_real::
+ $(MAKE) -f debian/rules.real source-featureset ABINAME='4.19.0-21' FEATURESET='rt' SOURCEVERSION='4.19.249-2' SOURCE_BASENAME='linux' UPSTREAMVERSION='4.19' VERSION='4.19'
diff --git a/debian/rules.real b/debian/rules.real
new file mode 100644
index 000000000..1ca03b4d9
--- /dev/null
+++ b/debian/rules.real
@@ -0,0 +1,814 @@
+#
+# This Makefile executes the unpack/build/binary targets for a single
+# subarch, which is passed in the subarch variable. Empty subarch
+# variable means that we are building for an arch without the subarch.
+# Additionally, variables version, abiname and ltver are
+# expected to be available (need to be exported from the parent process).
+#
+SHELL := bash -e
+MAINTAINER := $(shell sed -ne 's,^Maintainer: .[^<]*<\([^>]*\)>,\1,p' debian/control)
+DISTRIBUTION := $(shell dpkg-parsechangelog -SDistribution)
+SOURCE_DATE := $(shell dpkg-parsechangelog -SDate)
+SOURCE_DATE_UTC_ISO := $(shell date -u -d '$(SOURCE_DATE)' +%Y-%m-%d)
+
+DISTRIBUTOR := $(shell lsb_release -is 2>/dev/null)
+ifeq ($(DISTRIBUTOR),)
+DISTRIBUTOR := Debian
+endif
+
+include /usr/share/dpkg/architecture.mk
+
+include debian/rules.defs
+
+ifdef ARCH
+ ifneq ($(DEB_HOST_ARCH),$(ARCH))
+ $(error Attempting to build a $(ARCH) target but host architecture is $(DEB_HOST_ARCH). Use dpkg-architecture to override the host architecture)
+ endif
+endif
+
+ifdef OVERRIDE_HOST_TYPE
+ CROSS_COMPILE := $(OVERRIDE_HOST_TYPE)-
+else ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
+ CROSS_COMPILE := $(DEB_HOST_GNU_TYPE)-
+else
+ CROSS_COMPILE :=
+endif
+export CROSS_COMPILE
+
+export DH_OPTIONS
+export DEB_HOST_ARCH DEB_HOST_GNU_TYPE DEB_BUILD_ARCH
+export DEB_BUILD_PATH = $(CURDIR) # for dpkg-buildflags
+export LC_ALL = C.UTF-8
+undefine LANGUAGE
+
+stamp = [ -d $(dir $@) ] || mkdir $(dir $@); touch $@
+
+setup_env := env -u ABINAME -u ARCH -u FEATURESET -u FLAVOUR -u VERSION -u LOCALVERSION
+setup_env += DISTRIBUTION_OFFICIAL_BUILD=1 DISTRIBUTOR="$(DISTRIBUTOR)" DISTRIBUTION_VERSION="$(SOURCEVERSION)" KBUILD_BUILD_TIMESTAMP="$(SOURCE_DATE)" KBUILD_BUILD_VERSION_TIMESTAMP="$(DISTRIBUTOR) $(SOURCEVERSION) ($(SOURCE_DATE_UTC_ISO))" KBUILD_BUILD_USER="$(word 1,$(subst @, ,$(MAINTAINER)))" KBUILD_BUILD_HOST="$(word 2,$(subst @, ,$(MAINTAINER)))"
+setup_env += KBUILD_VERBOSE=$(if $(filter terse,$(DEB_BUILD_OPTIONS)),0,1)
+
+MAKE_CLEAN = $(setup_env) $(MAKE) CFLAGS_KERNEL=-fdebug-prefix-map=$(CURDIR)=. CFLAGS_MODULE=-fdebug-prefix-map=$(CURDIR)=.
+MAKE_SELF := $(MAKE) -f debian/rules.real $(MAKEOVERRIDES)
+MAKEOVERRIDES =
+
+#
+# Targets
+#
+
+packages_enabled := $(shell dh_listpackages)
+define if_package
+$(if $(filter $(1),$(packages_enabled)),$(2))
+endef
+
+build-arch-arch: \
+ $(call if_package, linux-kbuild-$(VERSION), build-kbuild) \
+ $(call if_package, linux-perf-$(VERSION), build-perf) \
+ $(call if_package, linux-bootwrapper-$(ABINAME), build-bootwrapper) \
+ $(call if_package, usbip, build-usbip) \
+ $(call if_package, linux-cpupower, build-cpupower) \
+ $(call if_package, libbpf-dev, build-libbpf) \
+ $(call if_package, hyperv-daemons, build-hyperv-daemons)
+binary-arch-arch: \
+ $(call if_package, $(SOURCE_BASENAME)-config-$(VERSION), install-config_$(ARCH)) \
+ $(call if_package, linux-headers-$(ABINAME)-all, install-headers_$(ARCH)) \
+ $(call if_package, linux-libc-dev, install-libc-dev_$(ARCH)) \
+ $(call if_package, linux-kbuild-$(VERSION), install-kbuild) \
+ $(call if_package, linux-perf-$(VERSION), install-perf) \
+ $(call if_package, linux-bootwrapper-$(ABINAME), install-bootwrapper) \
+ $(call if_package, usbip, install-usbip) \
+ $(call if_package, linux-cpupower, install-cpupower) \
+ $(call if_package, libbpf-dev, install-libbpf) \
+ $(call if_package, hyperv-daemons, install-hyperv-daemons)
+
+build-indep: \
+ $(call if_package, $(SOURCE_BASENAME)-doc-$(VERSION), $(STAMPS_DIR)/build-doc)
+binary-indep: \
+ $(call if_package, $(SOURCE_BASENAME)-doc-$(VERSION), install-doc) \
+ $(call if_package, $(SOURCE_BASENAME)-source-$(VERSION), install-source) \
+ $(call if_package, $(SOURCE_BASENAME)-support-$(ABINAME), install-support) \
+
+binary-arch-flavour: \
+ $(call if_package, $(IMAGE_PACKAGE_NAME), install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)) \
+ $(call if_package, linux-image-$(ABINAME)$(LOCALVERSION)-dbg, install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR)) \
+ $(call if_package, linux-headers-$(ABINAME)$(LOCALVERSION), install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR))
+
+binary-indep-featureset: \
+ $(call if_package, linux-headers-$(ABINAME)-common$(LOCALVERSION), install-common-headers_$(FEATURESET))
+
+build-arch-flavour: \
+ $(call if_package, $(IMAGE_PACKAGE_NAME), $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR))
+
+setup-arch-flavour: \
+ $(call if_package, $(IMAGE_PACKAGE_NAME), $(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR))
+
+source-featureset: $(STAMPS_DIR)/source_$(FEATURESET)
+
+$(BUILD_DIR)/config.$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(KCONFIG)
+ mkdir -p '$(dir $@)'
+ debian/bin/kconfig.py '$@' $(KCONFIG) $(KCONFIG_OPTIONS)
+
+define copy_source
+mkdir -p '$(1)'
+cp -al $(filter-out debian .pc .svk .svn .git, $(wildcard * .[^.]*)) '$(1)'
+endef
+
+$(BUILD_DIR)/$(SOURCE_BASENAME)-source-$(UPSTREAMVERSION).tar.xz: DIR = $(BUILD_DIR)/$(SOURCE_BASENAME)-source-$(UPSTREAMVERSION)
+$(BUILD_DIR)/$(SOURCE_BASENAME)-source-$(UPSTREAMVERSION).tar.xz: $(STAMPS_DIR)/source
+ rm -rf '$@' '$(DIR)'
+ $(call copy_source,$(DIR))
+ chmod -R u+rw,go=rX '$(DIR)'
+ find '$(DIR)' -depth -newermt '$(SOURCE_DATE)' -print0 | \
+ xargs -0r touch --no-dereference --date='$(SOURCE_DATE)'
+ cd '$(BUILD_DIR)'; \
+ find '$(SOURCE_BASENAME)-source-$(UPSTREAMVERSION)' \
+ -name '*.pyc' -prune -o \
+ -print0 | \
+ sort -z | \
+ tar --owner=root --group=root --numeric-owner \
+ --no-recursion --null -T - -caf '$(SOURCE_BASENAME)-source-$(UPSTREAMVERSION).tar.xz'
+ rm -rf '$(DIR)'
+
+$(BUILD_DIR)/linux-patch-$(UPSTREAMVERSION)-%.patch.xz: $(STAMPS_DIR)/source_none $(STAMPS_DIR)/source_%
+ set -o pipefail; \
+ (cd '$(BUILD_DIR)'; \
+ set +e; \
+ diff -urN -p -x debian -x .pc -x .svk -x .svn -x .git -x '*.pyc' source_none source_$*; \
+ test $$? -eq 1) | \
+ filterdiff --remove-timestamps --strip=1 --addoldprefix=a/ --addnewprefix=b/ | \
+ xz -c >$@ || \
+ (rm -f $@; exit 1)
+
+$(STAMPS_DIR)/source:
+ test -d .pc
+ set +e; QUILT_PC=.pc quilt unapplied --quiltrc - >/dev/null && echo 'Patch series not fully applied'; test $$? -eq 1
+ @$(stamp)
+
+$(STAMPS_DIR)/source_%: SOURCE_DIR=$(BUILD_DIR)/source
+$(STAMPS_DIR)/source_%: DIR=$(BUILD_DIR)/source_$*
+$(STAMPS_DIR)/source_%: $(STAMPS_DIR)/source
+ mkdir -p '$(BUILD_DIR)'
+ rm -rf '$(DIR)'
+ $(call copy_source,$(DIR))
+ cd '$(DIR)' && QUILT_PATCHES='$(CURDIR)/debian/patches-$*' QUILT_PC=.pc quilt push --quiltrc - -a -q --fuzz=0
+ @$(stamp)
+.PRECIOUS: $(STAMPS_DIR)/source_%
+
+$(STAMPS_DIR)/source_none: DIR=$(BUILD_DIR)/source_none
+$(STAMPS_DIR)/source_none: $(STAMPS_DIR)/source
+ mkdir -p '$(BUILD_DIR)'
+ rm -f '$(DIR)'
+ ln -s '$(CURDIR)' '$(DIR)'
+ @$(stamp)
+
+$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): CONFIG=$(BUILD_DIR)/config.$(ARCH)_$(FEATURESET)_$(FLAVOUR)
+$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): SOURCE_DIR=$(BUILD_DIR)/source_$(FEATURESET)
+$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR=$(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
+$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/source_$(FEATURESET) $(BUILD_DIR)/config.$(ARCH)_$(FEATURESET)_$(FLAVOUR)
+ rm -rf '$(DIR)'
+ mkdir '$(DIR)'
+ cp '$(CONFIG)' '$(DIR)/.config'
+ echo 'override ARCH = $(KERNEL_ARCH)' >> '$(DIR)/.kernelvariables'
+ echo 'override KERNELRELEASE = $(ABINAME)$(LOCALVERSION_IMAGE)' >> '$(DIR)/.kernelvariables'
+ echo 'CCACHE = ccache' >> '$(DIR)/.kernelvariables'
+ifeq (./,$(dir $(COMPILER)))
+ echo 'CC = $$(if $$(DEBIAN_KERNEL_USE_CCACHE),$$(CCACHE)) $$(CROSS_COMPILE)$(COMPILER)' >> '$(DIR)/.kernelvariables'
+else
+# To allow for cross-compiles, we want to split up the configured
+# compiler filename and prepend the directory to $PATH. For a native
+# compile, so long as the configured compiler is installed it should
+# always be found first.
+# However, $PATH changes don't work consistently in make (bug #895835).
+# Instead we do the path lookup here and generate a new absolute
+# filename.
+ echo 'CC = $$(if $$(DEBIAN_KERNEL_USE_CCACHE),$$(CCACHE)) $$(word 1,$$(foreach dir,$(dir $(COMPILER)) $$(subst :, ,$$(PATH)),$$(wildcard $$(dir)/$$(CROSS_COMPILE)$(notdir $(COMPILER)))))' >> '$(DIR)/.kernelvariables'
+endif
+# TODO: Should we set CROSS_COMPILE always?
+ifdef OVERRIDE_HOST_TYPE
+ echo 'override CROSS_COMPILE = $(OVERRIDE_HOST_TYPE)-' >> '$(DIR)/.kernelvariables'
+else
+ echo 'ifneq ($$(DEB_BUILD_ARCH),$$(DEB_HOST_ARCH))' >> '$(DIR)/.kernelvariables'
+ echo 'override CROSS_COMPILE = $$(DEB_HOST_GNU_TYPE)-' >> '$(DIR)/.kernelvariables'
+ echo 'endif' >> '$(DIR)/.kernelvariables'
+endif
+ifdef CFLAGS_KERNEL
+ echo 'CFLAGS_KERNEL += $(CFLAGS_KERNEL)' >> '$(DIR)/.kernelvariables'
+ echo 'CFLAGS_MODULE += $(CFLAGS_KERNEL)' >> '$(DIR)/.kernelvariables'
+endif
+ +$(MAKE_CLEAN) -C '$(SOURCE_DIR)' O='$(CURDIR)/$(DIR)' listnewconfig
+ +yes "" | $(MAKE_CLEAN) -C '$(SOURCE_DIR)' O='$(CURDIR)/$(DIR)' oldconfig >/dev/null
+ @$(stamp)
+
+$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR=$(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
+$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
+
+$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR):
+ +$(MAKE_CLEAN) -C '$(DIR)'
+ debian/bin/buildcheck.py $(DIR) $(ARCH) $(FEATURESET) $(FLAVOUR)
+ @$(stamp)
+
+$(STAMPS_DIR)/build-doc: DIR=$(BUILD_DIR)/build-doc
+# sphinx commands in /usr/bin are managed by the alternatives system.
+# Change $PATH to make sure we consistently use the Python 3 version.
+$(STAMPS_DIR)/build-doc: PATH:=/usr/share/sphinx/scripts/python3:$(PATH)
+$(STAMPS_DIR)/build-doc: $(STAMPS_DIR)/source
+ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
+ mkdir -p '$(BUILD_DIR)'
+ rm -rf '$(DIR)'
+ $(call copy_source,$(DIR))
+ +$(MAKE_CLEAN) -C '$(DIR)' xmldocs
+ +$(MAKE_CLEAN) -C '$(DIR)' htmldocs
+endif
+ @$(stamp)
+
+install-base:
+ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
+ dh_installdocs
+endif
+ dh_installchangelogs
+ dh_compress
+ dh_fixperms
+ dh_installdeb
+ dh_gencontrol -- $(GENCONTROL_ARGS)
+ dh_md5sums
+ dh_builddeb -- -Zxz $(BUILDDEB_ARGS)
+
+install-dummy:
+ dh_testdir
+ dh_testroot
+ dh_prep
+ +$(MAKE_SELF) install-base
+
+install-doc: PACKAGE_NAME = $(SOURCE_BASENAME)-doc-$(VERSION)
+install-doc: DIR = $(BUILD_DIR)/build-doc
+install-doc: PACKAGE_DIR = debian/$(PACKAGE_NAME)
+install-doc: OUT_DIR = $(PACKAGE_DIR)/usr/share/doc/$(PACKAGE_NAME)
+install-doc: DH_OPTIONS = -p$(PACKAGE_NAME)
+install-doc: $(STAMPS_DIR)/build-doc
+ dh_prep
+ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
+ mkdir -p $(OUT_DIR)
+ set -o pipefail; \
+ find CREDITS MAINTAINERS README Documentation \
+ -name '.gitignore' -prune -o -name DocBook -prune -o \
+ -path Documentation/media -prune -o \
+ -path Documentation/sphinx -prune -o \
+ -name 'Makefile*' -prune -o \
+ -print | \
+ cpio -pd --preserve-modification-time '$(CURDIR)/$(OUT_DIR)'
+ set -o pipefail; \
+ cd $(DIR)/Documentation/output; \
+ find * -name '*.rst' -prune -o -name objects.inv -prune \
+ -o -name xml -prune -o -print | \
+ cpio -pd --preserve-modification-time '$(CURDIR)/$(OUT_DIR)/html'
+ find $(OUT_DIR)/Documentation -type f | xargs gzip -9n
+# Fix up symlinks to gzipped docs
+ cd $(OUT_DIR)/Documentation; \
+ find -type l | while read link; do \
+ dest="$$(readlink -f "$$link")"; \
+ if [ -f "$$dest.gz" ]; then \
+ rm -f "$$link"; \
+ ln -sr "$$dest.gz" "$$link.gz"; \
+ fi; \
+ done
+endif
+ +$(MAKE_SELF) install-base
+
+install-headers_$(ARCH): PACKAGE_NAMES = linux-headers-$(ABINAME)-all linux-headers-$(ABINAME)-all-$(ARCH)
+install-headers_$(ARCH): DH_OPTIONS = $(foreach p, $(PACKAGE_NAMES), -p$(p))
+install-headers_$(ARCH):
+ dh_testdir
+ dh_testroot
+ +$(MAKE_SELF) install-base GENCONTROL_ARGS='-Vkernel:Arch=$(ARCH)'
+
+install-common-headers_$(FEATURESET): PACKAGE_NAME = linux-headers-$(ABINAME)-common$(LOCALVERSION)
+install-common-headers_$(FEATURESET): PACKAGE_NAME_KBUILD = linux-kbuild-$(VERSION)
+install-common-headers_$(FEATURESET): DH_OPTIONS = -p$(PACKAGE_NAME)
+install-common-headers_$(FEATURESET): BASE_DIR = /usr/src/$(PACKAGE_NAME)
+install-common-headers_$(FEATURESET): SOURCE_DIR = $(BUILD_DIR)/source_$(FEATURESET)
+install-common-headers_$(FEATURESET): DIR = debian/$(PACKAGE_NAME)/$(BASE_DIR)
+install-common-headers_$(FEATURESET): $(STAMPS_DIR)/source_$(FEATURESET)
+ dh_testdir
+ dh_testroot
+ dh_prep
+
+ set -o pipefail; \
+ cd $(SOURCE_DIR); \
+ ( \
+ echo Makefile; \
+ for arch in $(ALL_KERNEL_ARCHES); do \
+ find arch/$$arch -maxdepth 1 -name 'Makefile*' -print; \
+ find arch/$$arch \( -name 'module.lds' -o -name 'Kbuild.platforms' -o -name 'Platform' \) -print; \
+ find $$(find arch/$$arch \( -name include -o -name scripts \) -type d -print) -print; \
+ done; \
+ find include -print; \
+ ) \
+ | \
+ cpio -pd --preserve-modification-time '$(CURDIR)/$(DIR)'
+
+ dh_link /usr/lib/$(PACKAGE_NAME_KBUILD)/scripts $(BASE_DIR)/scripts
+ dh_link /usr/lib/$(PACKAGE_NAME_KBUILD)/tools $(BASE_DIR)/tools
+
+ +$(MAKE_SELF) install-base
+
+install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): REAL_VERSION = $(ABINAME)$(LOCALVERSION)
+install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_NAME = linux-headers-$(REAL_VERSION)
+install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_NAME_COMMON = linux-headers-$(ABINAME)-common$(LOCALVERSION_HEADERS)
+install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_NAME_KBUILD = linux-kbuild-$(VERSION)
+install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DH_OPTIONS = -p$(PACKAGE_NAME)
+install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): BASE_DIR = /usr/src/$(PACKAGE_NAME)
+install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): BASE_DIR_COMMON = /usr/src/$(PACKAGE_NAME_COMMON)
+install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): SOURCE_DIR = $(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
+install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): REF_DIR = $(BUILD_DIR)/source_$(FEATURESET)
+install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_DIR = debian/$(PACKAGE_NAME)
+install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR = $(PACKAGE_DIR)/$(BASE_DIR)
+install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
+ dh_testdir
+ dh_testroot
+ dh_prep
+
+ mkdir -p $(DIR)/arch/$(KERNEL_ARCH)/kernel
+ cp -a $(SOURCE_DIR)/{.config,.kernel*,Module.symvers,include} $(DIR)
+ cp -a $(SOURCE_DIR)/arch/$(KERNEL_ARCH)/include $(DIR)/arch/$(KERNEL_ARCH)
+ find $(DIR) -name '*.cmd' -delete
+
+ if [ -f $(SOURCE_DIR)/arch/$(KERNEL_ARCH)/lib/crtsavres.o ]; then \
+ mkdir $(DIR)/arch/$(KERNEL_ARCH)/lib; \
+ cp -a $(SOURCE_DIR)/arch/$(KERNEL_ARCH)/lib/crtsavres.o $(DIR)/arch/$(KERNEL_ARCH)/lib; \
+ fi
+
+ @echo 'VERSION = 2' > $(DIR)/Makefile
+ @echo 'PATCHLEVEL = 6' >> $(DIR)/Makefile
+
+ @echo 'MAKEARGS := -C $(BASE_DIR_COMMON) O=$(BASE_DIR)' >> $(DIR)/Makefile
+ @echo 'MAKEFLAGS += --no-print-directory' >> $(DIR)/Makefile
+
+ @echo '.PHONY: all $$(MAKECMDGOALS)' >> $(DIR)/Makefile
+ @echo 'cmd := $$(filter-out all Makefile,$$(MAKECMDGOALS))' >> $(DIR)/Makefile
+ @echo 'all:' >> $(DIR)/Makefile
+ @echo ' @$$(MAKE) $$(MAKEARGS) $$(cmd)' >> $(DIR)/Makefile
+ @echo 'Makefile:;' >> $(DIR)/Makefile
+ @echo '$$(cmd): all' >> $(DIR)/Makefile
+ @echo ' @:' >> $(DIR)/Makefile
+ @echo '%/: all' >> $(DIR)/Makefile
+ @echo ' @:' >> $(DIR)/Makefile
+
+ dh_link /usr/lib/$(PACKAGE_NAME_KBUILD)/scripts $(BASE_DIR)/scripts
+ dh_link /usr/lib/$(PACKAGE_NAME_KBUILD)/tools $(BASE_DIR)/tools
+
+ mkdir -p $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)
+ ln -s /usr/src/$(PACKAGE_NAME) $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/build
+ ln -s /usr/src/$(PACKAGE_NAME_COMMON) $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/source
+
+ +$(MAKE_SELF) install-base
+
+install-libc-dev_$(ARCH): PACKAGE_NAME = linux-libc-dev
+install-libc-dev_$(ARCH): DH_OPTIONS = -p$(PACKAGE_NAME)
+install-libc-dev_$(ARCH): DIR = $(BUILD_DIR)/build-libc-dev
+install-libc-dev_$(ARCH): OUT_DIR = debian/$(PACKAGE_NAME)/usr
+install-libc-dev_$(ARCH):
+ dh_testdir
+ dh_testroot
+ dh_prep
+ rm -rf '$(DIR)'
+ mkdir -p $(DIR)
+ +$(MAKE_CLEAN) O='$(CURDIR)/$(DIR)' headers_check ARCH=$(KERNEL_ARCH)
+ +$(MAKE_CLEAN) O='$(CURDIR)/$(DIR)' headers_install ARCH=$(KERNEL_ARCH) INSTALL_HDR_PATH='$(CURDIR)'/$(OUT_DIR)
+
+ rm -rf $(OUT_DIR)/include/drm $(OUT_DIR)/include/scsi
+ find $(OUT_DIR)/include \( -name .install -o -name ..install.cmd \) -execdir rm {} +
+
+# Move include/asm to arch-specific directory
+ mkdir -p $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH)
+ mv $(OUT_DIR)/include/asm $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH)/
+ test ! -d $(OUT_DIR)/include/arch || \
+ mv $(OUT_DIR)/include/arch $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH)/
+
+ +$(MAKE_SELF) install-base
+
+install-support: PACKAGE_NAME = $(SOURCE_BASENAME)-support-$(ABINAME)
+install-support: DH_OPTIONS = -p$(PACKAGE_NAME)
+install-support: PACKAGE_DIR = debian/$(PACKAGE_NAME)
+install-support: PACKAGE_ROOT = /usr/share/$(PACKAGE_NAME)
+install-support:
+ dh_testdir
+ dh_testroot
+ dh_prep
+ dh_installdirs $(PACKAGE_ROOT)/lib/python/debian_linux $(PACKAGE_ROOT)/modules
+ cp debian/config.defines.dump $(PACKAGE_DIR)$(PACKAGE_ROOT)
+ cp -R debian/installer $(PACKAGE_DIR)$(PACKAGE_ROOT)/installer
+ cp debian/lib/python/debian_linux/*.py $(PACKAGE_DIR)$(PACKAGE_ROOT)/lib/python/debian_linux
+ dh_python3
+ dh_link $(PACKAGE_ROOT) /usr/src/$(PACKAGE_NAME)
+ +$(MAKE_SELF) install-base
+
+install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): REAL_VERSION = $(ABINAME)$(LOCALVERSION)
+install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_NAME = $(IMAGE_PACKAGE_NAME)
+install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_DIR = debian/$(PACKAGE_NAME)
+install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): INSTALL_DIR = $(PACKAGE_DIR)/boot
+install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR = $(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
+install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DH_OPTIONS = -p$(PACKAGE_NAME)
+install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
+
+install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR):
+ dh_testdir
+ dh_testroot
+ dh_prep
+ dh_installdirs 'boot'
+ifeq ($(IMAGE_FILE),vmlinux)
+# This is the unprocessed ELF image, so we need to strip debug symbols
+ $(CROSS_COMPILE)objcopy --strip-debug '$(DIR)/vmlinux' $(INSTALL_DIR)/$(IMAGE_INSTALL_STEM)-$(REAL_VERSION)
+else
+ install -m644 '$(DIR)/$(IMAGE_FILE)' $(INSTALL_DIR)/$(IMAGE_INSTALL_STEM)-$(REAL_VERSION)
+endif
+ +$(MAKE_SELF) \
+ install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_dt \
+ DIR='$(DIR)' PACKAGE_DIR='$(PACKAGE_DIR)' REAL_VERSION='$(REAL_VERSION)'
+ +$(MAKE_CLEAN) -C $(DIR) modules_install DEPMOD='$(CURDIR)/debian/bin/no-depmod' INSTALL_MOD_PATH='$(CURDIR)'/$(PACKAGE_DIR) INSTALL_MOD_STRIP=1
+ifeq ($(DEBUG),True)
+ set -o pipefail; \
+ find $(PACKAGE_DIR) -name '*.ko' | sed 's|$(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/kernel/||' | while read module ; do \
+ $(CROSS_COMPILE)objcopy --add-gnu-debuglink=$(DIR)/$$module $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/kernel/$$module || exit; \
+ done
+# stripping the modules removes signatures as well - if automated signing is enabled with
+# an ephemeral key, re-do the sign step
+ +if grep -qs '^CONFIG_MODULE_SIG_ALL=y' $(DIR)/.config; then \
+ $(MAKE_CLEAN) -C $(DIR) modules_sign INSTALL_MOD_PATH='$(CURDIR)'/$(PACKAGE_DIR); \
+ fi
+endif
+ cp $(DIR)/.config $(PACKAGE_DIR)/boot/config-$(REAL_VERSION)
+ cp $(DIR)/System.map $(PACKAGE_DIR)/boot/System.map-$(REAL_VERSION)
+ rm -f $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/build
+ rm -f $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/source
+ rm $(PACKAGE_DIR)/lib/firmware -rf
+ +$(MAKE_SELF) \
+ install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_bug \
+ PACKAGE_DIR='$(PACKAGE_DIR)' PACKAGE_NAME='$(PACKAGE_NAME)' REAL_VERSION='$(REAL_VERSION)'
+ dh_strip --no-automatic-dbgsym -Xvmlinux
+ +$(MAKE_SELF) install-base
+
+install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_dt: DT_INSTALL_DIR = $(PACKAGE_DIR)/usr/lib/linux-image-$(REAL_VERSION)
+install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_dt:
+ifneq ($(filter arm64 armel armhf mipsr6 mipsr6el mips64r6 mips64r6el,$(ARCH)),)
+ +$(MAKE_CLEAN) -C $(DIR) dtbs
+ +$(MAKE_CLEAN) -C $(DIR) dtbs_install INSTALL_DTBS_PATH=$(CURDIR)/$(DT_INSTALL_DIR)
+endif
+ifneq ($(filter powerpc powerpcspe ppc64,$(ARCH)),)
+# Install wrapper code and DT source, but not the wrapper script or
+# the executables it calls. Kbuild will always build these executable
+# as native code, which is wrong for a cross-built package. Install
+# symlinks to the versions in the linux-bootwrapper package instead.
+ rm -rf '$(BUILD_DIR)/bootwrapper_$(ARCH)_$(FEATURESET)_$(FLAVOUR)'
+ +$(MAKE_CLEAN) -C '$(DIR)' bootwrapper_install \
+ WRAPPER_OBJDIR='$(CURDIR)/$(DT_INSTALL_DIR)' \
+ WRAPPER_DTSDIR='$(CURDIR)/$(DT_INSTALL_DIR)/dts' \
+ WRAPPER_BINDIR='$(CURDIR)/$(BUILD_DIR)/bootwrapper_$(ARCH)_$(FEATURESET)_$(FLAVOUR)'
+ for prog in '$(BUILD_DIR)/bootwrapper_$(ARCH)_$(FEATURESET)_$(FLAVOUR)'/*; do \
+ prog="$$(basename $$prog)"; \
+ ln -s ../linux-bootwrapper-$(ABINAME)/$$prog \
+ '$(DT_INSTALL_DIR)'/$$prog; \
+ done
+endif
+
+install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_bug:
+ dh_installdirs usr/share/bug/$(PACKAGE_NAME)
+ dh_install debian/templates/image.bug/* usr/share/bug/$(PACKAGE_NAME)
+ chmod 755 $(PACKAGE_DIR)/usr/share/bug/$(PACKAGE_NAME)/script
+ printf "RELEASE='$(REAL_VERSION)'\nDISTRIBUTOR='$(DISTRIBUTOR)'\nSOURCEVERSION='$(SOURCEVERSION)'\nPACKAGE_NAME='$(PACKAGE_NAME)'\nPACKAGE_VERSION='$(SOURCEVERSION)'" > $(PACKAGE_DIR)/usr/share/bug/$(PACKAGE_NAME)/info
+
+install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): REAL_VERSION = $(ABINAME)$(LOCALVERSION)
+install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_NAME = linux-image-$(REAL_VERSION)-dbg
+install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_DIR = debian/$(PACKAGE_NAME)
+install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DEBUG_DIR = $(PACKAGE_DIR)/usr/lib/debug
+install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR = $(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
+install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DH_OPTIONS = -p$(PACKAGE_NAME)
+install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
+ dh_testdir
+ dh_testroot
+ dh_prep
+ dh_installdirs usr/lib/debug usr/lib/debug/boot usr/share/lintian/overrides/
+ dh_lintian
+ install -m644 $(DIR)/vmlinux $(DEBUG_DIR)/boot/vmlinux-$(REAL_VERSION)
+ +$(MAKE_CLEAN) -C $(DIR) modules_install DEPMOD='$(CURDIR)/debian/bin/no-depmod' INSTALL_MOD_PATH='$(CURDIR)'/$(DEBUG_DIR)
+ find $(DEBUG_DIR)/lib/modules/$(REAL_VERSION)/ -mindepth 1 -maxdepth 1 \! -name kernel -exec rm {} \+
+ rm $(DEBUG_DIR)/lib/firmware -rf
+ifeq ($(VDSO),True)
+ +$(MAKE_CLEAN) -C $(DIR) vdso_install INSTALL_MOD_PATH='$(CURDIR)'/$(DEBUG_DIR)
+# Create .build-id links. Some architectures already do so, but in the
+# wrong place, so delete those first.
+ rm -rf $(DEBUG_DIR)/lib/modules/$(REAL_VERSION)/vdso/.build-id
+ find $(DEBUG_DIR)/lib/modules/$(REAL_VERSION)/vdso/ -type f | while read vdso; do \
+ if buildid="$$(readelf -n "$$vdso" | sed -rne 's/^\s+Build ID: (.*)$$/\1/p')" && [ "$$buildid" ]; then \
+ mkdir -p "$(DEBUG_DIR)/.build-id/$${buildid:0:2}"; \
+ ln -s -r "$$vdso" "$(DEBUG_DIR)/.build-id/$${buildid:0:2}/$${buildid:2}.debug"; \
+ fi; \
+ done
+endif
+# Add symlinks to vmlinux from the locations expected by kdump-tools,
+# systemtap and others
+ ln -s boot/vmlinux-$(REAL_VERSION) $(DEBUG_DIR)/
+ mkdir -p $(DEBUG_DIR)/lib/modules/$(REAL_VERSION)
+ ln -s ../../../boot/vmlinux-$(REAL_VERSION) $(DEBUG_DIR)/lib/modules/$(REAL_VERSION)/vmlinux
+ +$(MAKE_SELF) install-base
+
+install-signed-template_$(ARCH): PACKAGE_NAME = linux-image-$(ARCH)-signed-template
+install-signed-template_$(ARCH): DH_OPTIONS = -p$(PACKAGE_NAME)
+install-signed-template_$(ARCH): PACKAGE_DIR = debian/$(PACKAGE_NAME)
+install-signed-template_$(ARCH): CODE_SIGNING_DIR = $(PACKAGE_DIR)/usr/share/code-signing/$(PACKAGE_NAME)
+install-signed-template_$(ARCH):
+ifneq (,$(filter linux-image-$(ARCH)-signed-template,$(packages_enabled)))
+ dh_testdir
+ dh_testroot
+ dh_prep
+ rm -rf $(CODE_SIGNING_DIR)
+ mkdir -p $(CODE_SIGNING_DIR)
+ PYTHONHASHSEED=0 debian/bin/gencontrol_signed.py $(ARCH)
+ cp -R debian/compat \
+ debian/copyright \
+ debian/signing_templates/README.source \
+ debian/signing_templates/rules \
+ debian/signing_templates/rules.real \
+ debian/signing_templates/source \
+ $(CODE_SIGNING_DIR)/source-template/debian/
+ +$(MAKE_SELF) install-base
+endif # enabled
+
+install-udeb_$(ARCH): export KW_DEFCONFIG_DIR=debian/installer
+install-udeb_$(ARCH): export KW_CONFIG_DIR=debian/installer
+install-udeb_$(ARCH): DH_OPTIONS=$(PACKAGE_NAMES:%=-p%)
+ifeq ($(UDEB_UNSIGNED_TEST_BUILD),True)
+install-udeb_$(ARCH): export DEB_BUILD_PROFILES=pkg.linux.udeb-unsigned-test-build
+endif
+install-udeb_$(ARCH):
+# Logically we should check for %-di here, but that would break test builds
+ifneq (,$(filter linux-image-%,$(packages_enabled)))
+ dh_testdir
+ dh_prep
+ifeq ($(UDEB_UNSIGNED_TEST_BUILD),True)
+# kernel-wedge doesn't expect a -unsigned suffix; work around that for now
+ while read flavour; do \
+ rm -f debian/linux-image-$(ABINAME)-$$flavour; \
+ ln -s linux-image-$(ABINAME)-$$flavour-unsigned \
+ debian/linux-image-$(ABINAME)-$$flavour; \
+ done < <(awk '!/^#/ { print $$3 }' $(KW_CONFIG_DIR)/kernel-versions)
+endif
+ kernel-wedge install-files $(ABINAME)
+ kernel-wedge check $(PACKAGE_NAMES)
+ dh_fixperms
+ifeq ($(UDEB_UNSIGNED_TEST_BUILD),False)
+ dh_gencontrol
+ dh_builddeb
+endif
+endif # enabled
+
+install-source: PACKAGE_NAME = $(SOURCE_BASENAME)-source-$(VERSION)
+install-source: DH_OPTIONS = -p$(PACKAGE_NAME)
+install-source: $(BUILD_DIR)/$(SOURCE_BASENAME)-source-$(UPSTREAMVERSION).tar.xz $(foreach FEATURESET,$(filter-out none,$(ALL_FEATURESETS)),$(BUILD_DIR)/linux-patch-$(UPSTREAMVERSION)-$(FEATURESET).patch.xz)
+ dh_testdir
+ dh_testroot
+ dh_install $^ /usr/src
+# We don't want to recompress, but -Znone is not compatible with older
+# tools and is currently rejected by dak. -Zgzip -z0 (uncompressed
+# data.tar.gz!) makes dpkg and dak happy, but is incomaptible with
+# other things (#725492). So use the fastest real gzip mode.
+ +$(MAKE_SELF) install-base BUILDDEB_ARGS='-Zgzip -z1'
+
+install-config_$(ARCH): PACKAGE_NAME = $(SOURCE_BASENAME)-config-$(VERSION)
+install-config_$(ARCH): DH_OPTIONS = -p$(PACKAGE_NAME)
+install-config_$(ARCH): TRIPLETS = $(subst $(BUILD_DIR)/build_,,$(wildcard $(BUILD_DIR)/build_$(ARCH)_*_*))
+install-config_$(ARCH):
+ dh_testdir
+ dh_testroot
+ dh_installdirs /usr/src/linux-config-$(UPSTREAMVERSION)
+# Fix the module signing configuration to work for custom kernels. Also delete
+# CONFIG_BUILD_SALT which makes no sense for custom kernels.
+ for triplet in $(TRIPLETS); do \
+ sed '/CONFIG_\(MODULE_SIG_\(ALL\|KEY\)\|SYSTEM_TRUSTED_KEYS\|BUILD_SALT\)[ =]/d' $(BUILD_DIR)/build_$$triplet/.config | xz -c >debian/$(PACKAGE_NAME)/usr/src/linux-config-$(UPSTREAMVERSION)/config.$$triplet.xz; \
+ done
+ +$(MAKE_SELF) install-base
+
+define make-tools
++mkdir -p $(BUILD_DIR)/build-tools/$(1) && $(MAKE_CLEAN) -C $(BUILD_DIR)/build-tools/$(1) -f $(CURDIR)/debian/rules.d/$(1)/Makefile top_srcdir=$(CURDIR) top_rulesdir=$(CURDIR)/debian/rules.d OUTDIR=$(1) VERSION=$(VERSION) KERNEL_ARCH=$(KERNEL_ARCH)
+endef
+
+$(STAMPS_DIR)/build-tools-headers:
+ mkdir -p $(BUILD_DIR)/build-tools/headers-tools
+ $(MAKE) ARCH=$(KERNEL_ARCH) O=$(BUILD_DIR)/build-tools/headers-tools \
+ INSTALL_HDR_PATH=$(CURDIR)/$(BUILD_DIR)/build-tools \
+ headers_install
+ @$(stamp)
+
+build-kbuild: $(STAMPS_DIR)/build-tools-headers
+ $(call make-tools,scripts)
+ $(call make-tools,tools/objtool)
+
+install-kbuild: PACKAGE_NAME = linux-kbuild-$(VERSION)
+install-kbuild: DH_OPTIONS = -p$(PACKAGE_NAME)
+install-kbuild: PREFIX_DIR = /usr/lib/$(PACKAGE_NAME)
+install-kbuild: DIR = $(CURDIR)/debian/$(PACKAGE_NAME)
+install-kbuild: build-kbuild
+ dh_testdir
+ dh_testroot
+ dh_prep
+ $(call make-tools,scripts) install DESTDIR=$(DIR) prefix=$(PREFIX_DIR)
+ $(call make-tools,tools/objtool) install DESTDIR=$(DIR) prefix=$(PREFIX_DIR)
+ dh_link $(PREFIX_DIR) /usr/src/$(PACKAGE_NAME)
+ dh_installchangelogs
+ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
+ dh_installdocs
+endif
+ dh_strip
+ dh_compress
+ dh_fixperms
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+build-cpupower: $(STAMPS_DIR)/build-tools-headers
+ $(call make-tools,tools/power/cpupower)
+ifneq ($(filter i386 amd64 x32,$(DEB_HOST_ARCH)),)
+ $(call make-tools,tools/power/x86)
+endif
+
+install-cpupower: DH_OPTIONS = -plinux-cpupower -plibcpupower1 -plibcpupower-dev
+install-cpupower: DIR = $(CURDIR)/debian/cpupower-tmp
+install-cpupower: build-cpupower
+ dh_testdir
+ dh_testroot
+ dh_prep
+ $(call make-tools,tools/power/cpupower) install DESTDIR=$(DIR)
+ifneq ($(filter i386 amd64 x32,$(DEB_HOST_ARCH)),)
+ $(call make-tools,tools/power/x86) install DESTDIR=$(DIR)
+ echo >> debian/linux-cpupower.substvars 'cpupower:Arch-Description='\
+'The turbostat command reports topology, frequency, idle power-state$${Newline}'\
+'statistics, temperature and power consumption information as provided$${Newline}'\
+'by the CPU.$${Newline}'\
+'$${Newline}'\
+'The x86_energy_perf_policy command sets a general policy on some Intel$${Newline}'\
+'CPU models for the relative importance of performance versus energy$${Newline}'\
+'savings.'
+endif
+ dh_install --sourcedir=$(DIR)
+ dh_installchangelogs
+ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
+ dh_installdocs
+ dh_installman
+endif
+ dh_strip
+ dh_compress
+ dh_fixperms
+ dh_makeshlibs
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+build-perf: $(STAMPS_DIR)/build-tools-headers
+ $(call make-tools,tools/perf)
+
+install-perf: PACKAGE_NAME = linux-perf-$(VERSION)
+install-perf: DH_OPTIONS = -p$(PACKAGE_NAME)
+install-perf: DIR = $(CURDIR)/debian/$(PACKAGE_NAME)
+install-perf: build-perf
+ dh_testdir
+ dh_testroot
+ dh_prep
+ $(call make-tools,tools/perf) install DESTDIR=$(DIR)
+ # do not ship python2 script
+ rm -f $(DIR)/usr/lib/perf_$(VERSION)-core/scripts/python/call-graph-from-sql.py
+ dh_perl /usr/lib/perf_$(VERSION)-core/scripts/perl/Perf-Trace-Util/lib/
+ dh_python3 /usr/lib/perf_$(VERSION)-core/scripts/python/Perf-Trace-Util/lib/
+ dh_installchangelogs
+ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
+ dh_installdocs
+endif
+ dh_lintian
+ dh_strip
+ dh_compress
+ dh_fixperms
+ dh_installdeb
+ dh_shlibdeps -Xperf-read-vdso
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+build-usbip: $(STAMPS_DIR)/build-tools-headers
+ $(call make-tools,tools/usb/usbip)
+
+install-usbip: DH_OPTIONS = -pusbip
+install-usbip: DIR = $(CURDIR)/debian/usbip-tmp
+install-usbip: build-usbip
+ dh_testdir
+ dh_testroot
+ dh_prep
+ $(call make-tools,tools/usb/usbip) install DESTDIR=$(DIR)
+ dh_install --sourcedir=$(DIR)
+ dh_installchangelogs
+ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
+ dh_installdocs
+ dh_installman
+endif
+ dh_lintian
+ dh_strip
+ dh_compress
+ dh_fixperms
+ dh_installdeb
+ dh_shlibdeps
+ VERSION=$$(sed -ne 's,^#define PACKAGE_VERSION "\(.*\)"$$,\1,p' $(BUILD_DIR)/build-tools/tools/usb/usbip/config.h) && \
+ test -n "$$VERSION" -a -n "$(DEB_VERSION)" && \
+ dh_gencontrol -- -v$$VERSION+$(DEB_VERSION)
+ dh_md5sums
+ dh_builddeb
+
+build-hyperv-daemons: $(STAMPS_DIR)/build-tools-headers
+ $(call make-tools,tools/hv)
+
+install-hyperv-daemons: PACKAGE_NAME = hyperv-daemons
+install-hyperv-daemons: DH_OPTIONS = -p$(PACKAGE_NAME)
+install-hyperv-daemons: DIR = $(CURDIR)/debian/$(PACKAGE_NAME)
+install-hyperv-daemons: build-hyperv-daemons
+ dh_testdir
+ dh_testroot
+ dh_prep
+ $(call make-tools,tools/hv) install DESTDIR=$(DIR)
+ dh_install
+ for service in fcopy kvp vss; do \
+ install -D -m755 debian/hyperv-daemons.hv-$$service-daemon.init \
+ $(DIR)/etc/init.d/hyperv-daemons.hv-$$service-daemon \
+ || break; \
+ done
+ dh_installchangelogs
+ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
+ dh_installdocs
+endif
+ dh_systemd_enable
+ for service in fcopy kvp vss; do \
+ dh_installinit --name hyperv-daemons.hv-$$service-daemon \
+ --onlyscripts \
+ || break; \
+ done
+ dh_systemd_start
+ dh_lintian
+ dh_strip
+ dh_compress
+ dh_fixperms
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+build-libbpf: $(STAMPS_DIR)/build-tools-headers
+ $(call make-tools,tools/lib/bpf)
+
+install-libbpf: DH_OPTIONS = -plibbpf$(VERSION) -plibbpf-dev
+install-libbpf: DIR = $(CURDIR)/debian/libbpf-tmp
+install-libbpf: build-libbpf
+ dh_testdir
+ dh_testroot
+ dh_prep
+ $(call make-tools,tools/lib/bpf) install DESTDIR=$(DIR)
+ env -u DH_OPTIONS dh_install -plibbpf$(VERSION) --sourcedir=$(DIR) \
+ 'usr/lib/*/libbpf.so.*'
+ dh_install --sourcedir=$(DIR)
+ dh_installchangelogs
+ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
+ dh_installdocs
+endif
+ dh_strip
+ dh_compress
+ dh_fixperms
+ env -u DH_OPTIONS dh_makeshlibs -plibbpf$(VERSION) \
+ libbpf$(VERSION)
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+build-bootwrapper: $(STAMPS_DIR)/build-tools-headers
+ $(call make-tools,arch/powerpc/boot)
+
+install-bootwrapper: PACKAGE_NAME = linux-bootwrapper-$(ABINAME)
+install-bootwrapper: DH_OPTIONS = -p$(PACKAGE_NAME)
+install-bootwrapper: DIR = $(CURDIR)/debian/$(PACKAGE_NAME)
+install-bootwrapper: build-bootwrapper
+ dh_testdir
+ dh_testroot
+ dh_prep
+ $(call make-tools,arch/powerpc/boot) install DESTDIR=$(DIR) installdir=/usr/lib/$(PACKAGE_NAME)
+ dh_installchangelogs
+ dh_strip
+ dh_compress
+ dh_fixperms
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+.PHONY: binary-% build-% install-% setup-% source-%
+
+# vim: filetype=make
diff --git a/debian/signing_templates/README.source b/debian/signing_templates/README.source
new file mode 100644
index 000000000..f175c35b3
--- /dev/null
+++ b/debian/signing_templates/README.source
@@ -0,0 +1,4 @@
+This source package is generated by the Debian signing service from a
+template built by the linux package. It should never be updated directly.
+
+ -- Ben Hutchings <ben@decadent.org.uk> Fri, 06 Apr 2018 10:23:29 +0100
diff --git a/debian/signing_templates/control.image.in b/debian/signing_templates/control.image.in
new file mode 100644
index 000000000..0bc4f6f83
--- /dev/null
+++ b/debian/signing_templates/control.image.in
@@ -0,0 +1,11 @@
+Package: linux-image-@abiname@@localversion@
+Depends: ${unsigned:Depends}, ${misc:Depends}
+Recommends: ${unsigned:Recommends}
+Suggests: ${unsigned:Suggests}
+Breaks: ${unsigned:Breaks}
+Conflicts: linux-image-@abiname@@localversion@-unsigned
+Replaces: linux-image-@abiname@@localversion@-unsigned
+Description: ${unsigned:DescriptionShort} (signed)
+ ${unsigned:DescriptionLong}
+ .
+ ${signed:Description}
diff --git a/debian/signing_templates/control.source.in b/debian/signing_templates/control.source.in
new file mode 100644
index 000000000..6e0870e31
--- /dev/null
+++ b/debian/signing_templates/control.source.in
@@ -0,0 +1,11 @@
+Source: linux-signed-@arch@
+Section: kernel
+Priority: optional
+Maintainer: Debian Kernel Team <debian-kernel@lists.debian.org>
+Uploaders: Ben Hutchings <ben@decadent.org.uk>
+Standards-Version: 4.1.1
+Build-Depends: debhelper (>= 10.1~), rsync, sbsigntool [amd64 arm64 i386], kernel-wedge (>= 2.99~), linux-kbuild-@version@
+Rules-Requires-Root: no
+Vcs-Git: https://salsa.debian.org/kernel-team/linux.git
+Vcs-Browser: https://salsa.debian.org/kernel-team/linux
+Homepage: https://www.kernel.org/
diff --git a/debian/signing_templates/rules b/debian/signing_templates/rules
new file mode 100755
index 000000000..ad6156b87
--- /dev/null
+++ b/debian/signing_templates/rules
@@ -0,0 +1,20 @@
+#!/usr/bin/make -f
+SHELL := sh -e
+
+include /usr/share/dpkg/architecture.mk
+
+build: build-arch build-indep
+build-arch:
+build-indep:
+
+clean:
+ dh_testdir
+ dh_clean
+
+binary: binary-arch binary-indep
+binary-arch: debian/control
+ dh_testdir
+ $(MAKE) -f debian/rules.gen binary-arch_$(DEB_HOST_ARCH)
+binary-indep:
+
+.PHONY: build build-arch build-indep clean binary binary-arch binary-indep
diff --git a/debian/signing_templates/rules.real b/debian/signing_templates/rules.real
new file mode 100644
index 000000000..dbb1a33a3
--- /dev/null
+++ b/debian/signing_templates/rules.real
@@ -0,0 +1,71 @@
+SHELL := bash -e
+
+export DH_OPTIONS
+
+build-indep:
+
+install-signed: DH_OPTIONS = -p$(PACKAGE_NAME)
+install-signed: KERNEL_VERSION = $(ABINAME)$(LOCALVERSION)
+install-signed: IMAGE_PACKAGE_NAME = linux-image-$(KERNEL_VERSION)-unsigned
+install-signed: PACKAGE_DIR = debian/$(PACKAGE_NAME)
+install-signed: SIGNATURE_DIR = debian/signatures/$(IMAGE_PACKAGE_NAME)
+install-signed:
+ mkdir -p $(PACKAGE_DIR)/boot
+ rsync -a $(patsubst %,/boot/%-$(KERNEL_VERSION),config System.map $(IMAGE_INSTALL_STEM)) \
+ $(PACKAGE_DIR)/boot/
+ if [ -f $(SIGNATURE_DIR)/boot/vmlinuz-$(KERNEL_VERSION).sig ]; then \
+ sbattach --attach $(SIGNATURE_DIR)/boot/vmlinuz-$(KERNEL_VERSION).sig \
+ $(PACKAGE_DIR)/boot/vmlinuz-$(KERNEL_VERSION); \
+ echo >> debian/$(PACKAGE_NAME).substvars 'signed:Description=The kernel image and modules are signed for use with Secure Boot.'; \
+ else \
+ echo >> debian/$(PACKAGE_NAME).substvars 'signed:Description=The modules are signed.'; \
+ fi
+ mkdir -p $(PACKAGE_DIR)/lib/modules/$(KERNEL_VERSION)
+ rsync -a $(addprefix /lib/modules/$(KERNEL_VERSION)/,kernel modules.builtin modules.order) \
+ $(PACKAGE_DIR)/lib/modules/$(KERNEL_VERSION)/
+ while read path; do \
+ /usr/lib/linux-kbuild-$(VERSION)/scripts/sign-file -s \
+ $(SIGNATURE_DIR)/lib/modules/$(KERNEL_VERSION)/$$path \
+ sha256 dummy \
+ $(PACKAGE_DIR)/lib/modules/$(KERNEL_VERSION)/$${path%.sig}; \
+ done < <(find $(SIGNATURE_DIR)/lib/modules/$(KERNEL_VERSION) -name '*.sig' -printf '%P\n')
+# Copy any device tree files
+ if [ -d /usr/lib/linux-image-$(KERNEL_VERSION) ]; then \
+ mkdir -p $(PACKAGE_DIR)/usr/lib/linux-image-$(KERNEL_VERSION); \
+ rsync -a /usr/lib/linux-image-$(KERNEL_VERSION)/ \
+ $(PACKAGE_DIR)/usr/lib/linux-image-$(KERNEL_VERSION)/; \
+ fi
+# Copy bug scripts but change the info file to refer to the right package
+ mkdir -p $(PACKAGE_DIR)/usr/share/bug/$(PACKAGE_NAME)
+ rsync -a /usr/share/bug/$(IMAGE_PACKAGE_NAME)/ \
+ $(PACKAGE_DIR)/usr/share/bug/$(PACKAGE_NAME)/
+ sed -i -e 's/^PACKAGE_NAME=.*/PACKAGE_NAME=$(PACKAGE_NAME)/' \
+ -e 's/^PACKAGE_VERSION=.*/PACKAGE_VERSION=$(PACKAGE_VERSION)/' \
+ $(PACKAGE_DIR)/usr/share/bug/$(PACKAGE_NAME)/info
+ dh_install
+ dh_installchangelogs
+ dh_installdocs
+ dh_compress
+ dh_fixperms
+ dh_installdeb
+# Copy most package relations and description from unsigned package
+ for field in Depends Suggests Recommends Breaks; do \
+ echo >> debian/$(PACKAGE_NAME).substvars "unsigned:$$field=$$(dpkg-query -f '$${'$$field'}' -W $(IMAGE_PACKAGE_NAME))"; \
+ done
+ echo >> debian/$(PACKAGE_NAME).substvars "unsigned:DescriptionShort=$$(dpkg-query -f '$${Description}' -W $(IMAGE_PACKAGE_NAME) | head -n 1)"
+ echo >> debian/$(PACKAGE_NAME).substvars "unsigned:DescriptionLong=$$(dpkg-query -f '$${Description}' -W $(IMAGE_PACKAGE_NAME) | tail -n +2 | sed -rz 's/\$$/$${}/g; s/^ //; s/\n \.?/$${Newline}/g')"
+ dh_gencontrol -- $(GENCONTROL_ARGS)
+ dh_md5sums
+ dh_builddeb
+
+install-udeb_$(ARCH): export KW_DEFCONFIG_DIR=/usr/share/linux-support-$(ABINAME)/installer
+install-udeb_$(ARCH): export KW_CONFIG_DIR=/usr/share/linux-support-$(ABINAME)/installer
+install-udeb_$(ARCH): DH_OPTIONS=$(PACKAGE_NAMES:%=-p%)
+install-udeb_$(ARCH):
+ dh_testdir
+ dh_prep
+ kernel-wedge install-files $(ABINAME)
+ kernel-wedge check $(PACKAGE_NAMES)
+ dh_fixperms
+ dh_gencontrol -- $(GENCONTROL_ARGS)
+ dh_builddeb
diff --git a/debian/signing_templates/source/format b/debian/signing_templates/source/format
new file mode 100644
index 000000000..89ae9db8f
--- /dev/null
+++ b/debian/signing_templates/source/format
@@ -0,0 +1 @@
+3.0 (native)
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 000000000..c3d9f2407
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1,2 @@
+3.0 (quilt)
+
diff --git a/debian/source/include-binaries b/debian/source/include-binaries
new file mode 100644
index 000000000..f9b965374
--- /dev/null
+++ b/debian/source/include-binaries
@@ -0,0 +1,2 @@
+debian/upstream/rt-signing-key.pgp
+debian/upstream/signing-key.pgp
diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides
new file mode 100644
index 000000000..e834d6f1c
--- /dev/null
+++ b/debian/source/lintian-overrides
@@ -0,0 +1,6 @@
+# The copyright notice in the GFDL itself, mentioning invariant
+# sections, is just an example. lintian seems to whitelist the
+# plain-text version but that doesn't cover this ReST version.
+linux source: license-problem-gfdl-invariants Documentation/media/uapi/fdl-appendix.rst invariant part is: with the :ref:`invariant sections <fdl-invariant>` being list their titles, with the :ref:`front-cover texts <fdl-cover-texts>` being list, and with the :ref:`back-cover texts <fdl-cover-texts>` being list
+# Kernel dbg packages contain a full image with debug data.
+linux source: dbg-package-missing-depends
diff --git a/debian/templates/control.config.in b/debian/templates/control.config.in
new file mode 100644
index 000000000..5b3822776
--- /dev/null
+++ b/debian/templates/control.config.in
@@ -0,0 +1,11 @@
+Package: @source_basename@-config-@version@
+Build-Profiles: <!stage1 !pkg.linux.nosource>
+Multi-Arch: same
+Depends: ${misc:Depends}
+Recommends: @source_basename@-source-@version@
+Description: Debian kernel configurations for Linux @version@
+ This package contains the configuration files used to build the
+ official Debian kernel files, but without references to Debian's
+ signing certificates.
+ .
+ These can be used as a basis for configuring custom kernels.
diff --git a/debian/templates/control.docs.in b/debian/templates/control.docs.in
new file mode 100644
index 000000000..12540467b
--- /dev/null
+++ b/debian/templates/control.docs.in
@@ -0,0 +1,15 @@
+Package: @source_basename@-doc-@version@
+Build-Profiles: <!stage1 !nodoc>
+Architecture: all
+Build-Depends: graphviz, python3-sphinx, python3-sphinx-rtd-theme,
+ texlive-latex-base, texlive-latex-extra, dvipng
+Depends: ${misc:Depends}
+Section: doc
+Multi-Arch: foreign
+Description: Linux kernel specific documentation for version @version@
+ This package provides the various README files and HTML documentation for
+ the Linux kernel version @version@. Plenty of information, including the
+ descriptions of various kernel subsystems, filesystems, driver-specific
+ notes and the like. Consult the file
+ /usr/share/doc/linux-doc-@version@/Documentation/00-INDEX
+ for the detailed description of the contents.
diff --git a/debian/templates/control.extra.in b/debian/templates/control.extra.in
new file mode 100644
index 000000000..7abbc1132
--- /dev/null
+++ b/debian/templates/control.extra.in
@@ -0,0 +1,26 @@
+Package: linux-compiler-gcc-8-arm
+Build-Profiles: <!stage1>
+Depends: gcc-8, ${misc:Depends}
+Architecture: armel armhf
+Multi-Arch: foreign
+Description: Compiler for Linux on ARM (meta-package)
+ This package depends on GCC of the appropriate version and architecture
+ for Linux on armel and armhf.
+
+Package: linux-compiler-gcc-8-s390
+Build-Profiles: <!stage1>
+Depends: gcc-8, ${misc:Depends}
+Architecture: s390 s390x
+Multi-Arch: foreign
+Description: Compiler for Linux on IBM zSeries (meta-package)
+ This package depends on GCC of the appropriate version and architecture
+ for Linux on s390 and s390x.
+
+Package: linux-compiler-gcc-8-x86
+Build-Profiles: <!stage1>
+Depends: gcc-8 (>= 8-20180123-1~), ${misc:Depends}
+Architecture: amd64 i386 x32
+Multi-Arch: foreign
+Description: Compiler for Linux on x86 (meta-package)
+ This package depends on GCC of the appropriate version and architecture
+ for Linux on amd64, i386 and x32.
diff --git a/debian/templates/control.headers.arch.in b/debian/templates/control.headers.arch.in
new file mode 100644
index 000000000..34f97e179
--- /dev/null
+++ b/debian/templates/control.headers.arch.in
@@ -0,0 +1,16 @@
+Package: linux-headers-@abiname@-all
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Depends: linux-headers-@abiname@-all-${kernel:Arch} (= ${binary:Version}), ${misc:Depends}
+Description: All header files for Linux @version@ (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version @upstreamversion@, generally used for building out-of-tree
+ kernel modules.
+
+Package: linux-headers-@abiname@-all-@arch@
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Depends: ${misc:Depends}
+Description: All header files for Linux @version@ (meta-package)
+ This package depends against all architecture-specific kernel header files
+ for Linux kernel version @upstreamversion@, generally used for building out-of-tree
+ kernel modules.
+
diff --git a/debian/templates/control.headers.featureset.in b/debian/templates/control.headers.featureset.in
new file mode 100644
index 000000000..123fedf5a
--- /dev/null
+++ b/debian/templates/control.headers.featureset.in
@@ -0,0 +1,11 @@
+Package: linux-headers-@abiname@-common@localversion@
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Architecture: all
+Depends: ${misc:Depends}
+Multi-Arch: foreign
+Description: Common header files for Linux @abiname@@localversion@
+ This package provides the common kernel header files for Linux kernel
+ version @abiname@@featureset_desc@, generally used for building
+ out-of-tree kernel modules. To obtain a complete set of headers you
+ also need to install the linux-headers-@abiname@-(flavour) package,
+ matching the flavour of the kernel you intend the build for.
diff --git a/debian/templates/control.headers.in b/debian/templates/control.headers.in
new file mode 100644
index 000000000..dc77662cd
--- /dev/null
+++ b/debian/templates/control.headers.in
@@ -0,0 +1,10 @@
+Package: linux-headers-@abiname@@localversion@
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Depends: linux-headers-@abiname@-common@localversion_headers@ (= ${source:Version}), linux-kbuild-@version@ (>= ${source:Version}), ${misc:Depends}
+Description: Header files for Linux @abiname@@localversion@
+ This package provides the architecture-specific kernel header files
+ for Linux kernel @abiname@@localversion@, generally
+ used for building out-of-tree kernel modules. These files are going to be
+ installed into /usr/src/linux-headers-@abiname@@localversion@, and can
+ be used for building modules that load into the kernel provided by the
+ linux-image-@abiname@@localversion@ package.
diff --git a/debian/templates/control.image-dbg.in b/debian/templates/control.image-dbg.in
new file mode 100644
index 000000000..3c67d56ac
--- /dev/null
+++ b/debian/templates/control.image-dbg.in
@@ -0,0 +1,8 @@
+Package: linux-image-@abiname@@localversion@-dbg
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Depends: ${misc:Depends}
+Section: debug
+Priority: optional
+Description: Debug symbols for linux-image-@abiname@@localversion@
+ This package provides the detached debug symbols for the Linux kernel
+ and modules in linux-image-@abiname@@localversion@.
diff --git a/debian/templates/control.image-unsigned.in b/debian/templates/control.image-unsigned.in
new file mode 100644
index 000000000..2b258d005
--- /dev/null
+++ b/debian/templates/control.image-unsigned.in
@@ -0,0 +1,9 @@
+Package: linux-image-@abiname@@localversion@-unsigned
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}
+Recommends: firmware-linux-free, ${kernel:Recommends}
+Suggests: linux-doc-@version@, debian-kernel-handbook
+Conflicts: linux-image-@abiname@@localversion@
+Replaces: linux-image-@abiname@@localversion@
+Description: Linux @upstreamversion@ for @class@
+ The Linux kernel @upstreamversion@ and modules for use on @longclass@.
diff --git a/debian/templates/control.image.in b/debian/templates/control.image.in
new file mode 100644
index 000000000..4a4b36aad
--- /dev/null
+++ b/debian/templates/control.image.in
@@ -0,0 +1,7 @@
+Package: linux-image-@abiname@@localversion@
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-@abiname@ [powerpc powerpcspe ppc64], ${misc:Depends}
+Recommends: firmware-linux-free, ${kernel:Recommends}
+Suggests: linux-doc-@version@, debian-kernel-handbook
+Description: Linux @upstreamversion@ for @class@
+ The Linux kernel @upstreamversion@ and modules for use on @longclass@.
diff --git a/debian/templates/control.libc-dev.in b/debian/templates/control.libc-dev.in
new file mode 100644
index 000000000..6e975e4c3
--- /dev/null
+++ b/debian/templates/control.libc-dev.in
@@ -0,0 +1,9 @@
+Package: linux-libc-dev
+Section: devel
+Depends: ${misc:Depends}
+# Remove this Provides when #826519 is closed
+Provides: linux-kernel-headers
+Multi-Arch: same
+Description: Linux support headers for userspace development
+ This package provides userspaces headers from the Linux kernel. These headers
+ are used by the installed headers for GNU libc and other system libraries.
diff --git a/debian/templates/control.main.in b/debian/templates/control.main.in
new file mode 100644
index 000000000..aa092b025
--- /dev/null
+++ b/debian/templates/control.main.in
@@ -0,0 +1,11 @@
+Package: @source_basename@-support-@abiname@
+Build-Profiles: <!stage1>
+Architecture: all
+Section: devel
+Depends: ${python3:Depends}, ${misc:Depends}
+Multi-Arch: foreign
+Description: Support files for Linux @upstreamversion@
+ This package provides support files for the Linux kernel build,
+ e.g. scripts to handle ABI information and for generation of
+ build system meta data.
+
diff --git a/debian/templates/control.signed-template.in b/debian/templates/control.signed-template.in
new file mode 100644
index 000000000..2af3ba424
--- /dev/null
+++ b/debian/templates/control.signed-template.in
@@ -0,0 +1,6 @@
+Package: linux-image-@arch@-signed-template
+Build-Profiles: <!stage1 !pkg.linux.nokernel>
+Depends: dpkg-dev, ${misc:Depends}
+Description: Template for signed linux-image packages for @arch@
+ This package is used to control code signing by the Debian signing
+ service.
diff --git a/debian/templates/control.source.in b/debian/templates/control.source.in
new file mode 100644
index 000000000..85c4d8b1b
--- /dev/null
+++ b/debian/templates/control.source.in
@@ -0,0 +1,38 @@
+Section: kernel
+Priority: optional
+Maintainer: Debian Kernel Team <debian-kernel@lists.debian.org>
+Uploaders: Bastian Blank <waldi@debian.org>, maximilian attems <maks@debian.org>, Ben Hutchings <ben@decadent.org.uk>, Salvatore Bonaccorso <carnil@debian.org>
+Standards-Version: 4.2.0
+Build-Depends:
+ debhelper (>= 10.1~), dh-exec,
+# used to run debian/bin/*.py
+ python3:any,
+# used by debian/rules.real to prepare the source
+ quilt,
+# used by debian/rules.real to build linux-doc and linux-headers
+ cpio <!stage1>,
+# used by upstream to compress kernel and by debian/rules.real to build linux-source
+ xz-utils <!stage1>,
+# used by debian/rules.real to build linux-perf and linux-support
+ dh-python <!stage1>,
+# used by upstream to build genksyms, kconfig, and perf
+ bison <!stage1>, flex (>= 2.6.1-1.1~) <!stage1>,
+Build-Depends-Arch:
+# used by debian/rules.real to build udebs
+ kernel-wedge (>= 2.99~) <!stage1 !pkg.linux.nokernel>,
+# used by kernel-wedge (only on Linux, thus not declared as a dependency)
+ kmod <!stage1 !pkg.linux.nokernel>,
+# used by upstream to build include/generated/timeconst.h
+ bc <!stage1 !pkg.linux.nokernel>,
+# used by upstream to build signing tools and to process certificates
+ libssl-dev:native <!stage1 !pkg.linux.nokernel>,
+ libssl-dev <!stage1 !pkg.linux.notools>,
+ openssl (>= 1.1.0-1~) <!stage1 !pkg.linux.nokernel>,
+# used by upstream to build objtool (native for amd64 images; host arch for
+# linux-kbuild), perf (host arch), libbpf (host arch)
+ libelf-dev:native [amd64] <!stage1 !pkg.linux.nokernel>,
+ libelf-dev <!stage1 !pkg.linux.notools>,
+Rules-Requires-Root: no
+Vcs-Git: https://salsa.debian.org/kernel-team/linux.git
+Vcs-Browser: https://salsa.debian.org/kernel-team/linux
+Homepage: https://www.kernel.org/
diff --git a/debian/templates/control.sourcebin.in b/debian/templates/control.sourcebin.in
new file mode 100644
index 000000000..859a22c3f
--- /dev/null
+++ b/debian/templates/control.sourcebin.in
@@ -0,0 +1,15 @@
+Package: @source_basename@-source-@version@
+Build-Profiles: <!stage1 !pkg.linux.nosource>
+Architecture: all
+Section: kernel
+Build-Depends: patchutils
+Depends: binutils, xz-utils, ${misc:Depends}
+Recommends: libc6-dev | libc-dev, gcc, make, bc, bison, flex, @source_basename@-config-@version@
+Suggests: libncurses-dev | ncurses-dev, libqt4-dev, pkg-config
+Multi-Arch: foreign
+Description: Linux kernel source for version @version@ with Debian patches
+ This package provides source code for the Linux kernel version @version@.
+ This source closely tracks official Linux kernel releases. Debian's
+ modifications to that source consist of security fixes, bug fixes, and
+ features that have already been (or are believed to be) accepted by the
+ upstream maintainers.
diff --git a/debian/templates/control.tools-unversioned.in b/debian/templates/control.tools-unversioned.in
new file mode 100644
index 000000000..58f128d0a
--- /dev/null
+++ b/debian/templates/control.tools-unversioned.in
@@ -0,0 +1,102 @@
+Package: linux-cpupower
+Build-Profiles: <!stage1 !pkg.linux.notools>
+Section: admin
+Architecture: linux-any
+Build-Depends: libpci-dev
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: CPU power management tools for Linux
+ The cpupower command allows inspection and control of cpufreq and
+ cpuidle tunables for hardware that support these features. It
+ replaces "cpufreq-info" and "cpufreq-set" in cpufrequtils.
+ .
+ ${cpupower:Arch-Description}
+
+Package: libcpupower1
+Build-Profiles: <!stage1 !pkg.linux.notools>
+Section: libs
+Architecture: linux-any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: CPU frequency and voltage scaling tools for Linux (libraries)
+ This package contains the shared library.
+
+Package: libcpupower-dev
+Build-Profiles: <!stage1 !pkg.linux.notools>
+Section: libdevel
+Architecture: linux-any
+Depends: ${misc:Depends}, libcpupower1 (= ${binary:Version})
+Provides: libcpufreq-dev
+Conflicts: libcpufreq-dev
+Replaces: libcpufreq-dev
+Description: CPU frequency and voltage scaling tools for Linux (development files)
+ This package contains the 'power/cpupower' headers and library shared objects.
+
+Package: usbip
+Build-Profiles: <!stage1 !pkg.linux.notools>
+Architecture: linux-any
+Build-Depends:
+ autoconf,
+ automake,
+ libtool,
+ libglib2.0-dev,
+ libudev-dev,
+ libwrap0-dev,
+# used by debian/rules.d/tools/usb/usbip
+ rsync,
+Depends: usbutils, ${shlibs:Depends}, ${misc:Depends}
+Section: admin
+Description: USB device sharing system over IP network
+ USB/IP is a system for sharing USB devices over the network.
+ .
+ To share USB devices between computers with their full
+ functionality, USB/IP encapsulates "USB requests" into IP
+ packets and transmits them between computers.
+ .
+ Original USB device drivers and applications can be used
+ for remote USB devices without any modification of them. A
+ computer can use remote USB devices as if they were
+ directly attached.
+ .
+ Currently USB/IP provides no access control or encryption.
+ It should only be used in trusted environments.
+ .
+ This package provides the server component 'usbipd' and the
+ client tool 'usbip'.
+
+Package: hyperv-daemons
+Build-Profiles: <!stage1 !pkg.linux.notools>
+Architecture: i386 amd64 x32
+Depends: lsb-base, ${shlibs:Depends}, ${misc:Depends}
+Section: admin
+Description: Support daemons for Linux running on Hyper-V
+ Suite of daemons for Linux guests running on Hyper-V, consisting of
+ hv_fcopy_daemon, hv_kvp_daemon and hv_vss_daemon.
+ .
+ hv_fcopy_daemon provides the file copy service, allowing the host to
+ copy files into the guest.
+ .
+ hv_kvp_daemon provides the key-value pair (KVP) service, allowing the
+ host to get and set the IP networking configuration of the guest.
+ (This requires helper scripts which are not currently included.)
+ .
+ hv_vss_daemon provides the volume shadow copy service (VSS), allowing
+ the host to freeze the guest filesystems while taking a snapshot.
+
+Package: libbpf@version@
+Build-Profiles: <!stage1 !pkg.linux.notools>
+Architecture: alpha amd64 arm64 arm64ilp32 armel armhf hppa i386 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc powerpcspe ppc64 ppc64el riscv64 s390 s390x sh3 sh4 sparc sparc64 x32
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Section: libs
+Multi-Arch: same
+Description: eBPF helper library (shared library)
+ libbpf is a library for loading eBPF programs and reading and
+ manipulating eBPF objects from user-space.
+
+Package: libbpf-dev
+Build-Profiles: <!stage1 !pkg.linux.notools>
+Architecture: alpha amd64 arm64 arm64ilp32 armel armhf hppa i386 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc powerpcspe ppc64 ppc64el riscv64 s390 s390x sh3 sh4 sparc sparc64 x32
+Depends: ${misc:Depends}, libbpf@version@ (= ${binary:Version})
+Section: libdevel
+Multi-Arch: same
+Description: eBPF helper library (development files)
+ libbpf is a library for loading eBPF programs and reading and
+ manipulating eBPF objects from user-space.
diff --git a/debian/templates/control.tools-versioned.in b/debian/templates/control.tools-versioned.in
new file mode 100644
index 000000000..6f330ffa3
--- /dev/null
+++ b/debian/templates/control.tools-versioned.in
@@ -0,0 +1,48 @@
+Package: linux-kbuild-@version@
+Build-Profiles: <!stage1 !pkg.linux.notools>
+Architecture: linux-any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Multi-Arch: foreign
+Description: Kbuild infrastructure for Linux @version@
+ This package provides the kbuild infrastructure for the headers packages for Linux kernel version @version@.
+
+Package: linux-perf-@version@
+Build-Profiles: <!stage1 !pkg.linux.notools !nopython>
+Section: devel
+Architecture: alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64
+Build-Depends:
+ asciidoctor <!stage1 !nodoc !pkg.linux.notools !nopython>,
+ gcc-multilib [amd64 mips64 mips64el mips64r6 mips64r6el ppc64 s390x sparc64],
+ libaudit-dev,
+ libbabeltrace-dev (>= 1.5.0),
+# libbabeltrace-ctf-dev may or may not be needed as well
+ libbabeltrace-dev (>= 1.5.3-2~) | libbabeltrace-ctf-dev (>= 1.5.0),
+ libdw-dev,
+ libiberty-dev,
+ libnewt-dev,
+ libnuma-dev,
+ libperl-dev,
+ libunwind-dev [amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mipsel powerpc ppc64 ppc64el sh4],
+ libopencsd-dev,
+ python3-dev,
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, ${python3:Depends}
+Recommends: linux-base
+Provides: linux-tools-@version@
+Conflicts: linux-tools-@version@
+Replaces: linux-tools-@version@
+Suggests: linux-doc-@version@
+Description: Performance analysis tools for Linux @version@
+ This package contains the 'perf' performance analysis tools for Linux
+ kernel version @version@.
+ .
+ The linux-base package contains a 'perf' command which will invoke the
+ appropriate version for the running kernel.
+
+Package: linux-bootwrapper-@abiname@
+Build-Profiles: <!stage1 !pkg.linux.notools>
+Architecture: powerpc powerpcspe ppc64
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Multi-Arch: foreign
+Description: Boot wrapper tools for Linux @version@ on PowerPC
+ This package provides the 'wrapper' script and related tools needed
+ to process the Linux kernel image for use with some PowerPC platforms.
diff --git a/debian/templates/headers.postinst.in b/debian/templates/headers.postinst.in
new file mode 100644
index 000000000..c13e6dc54
--- /dev/null
+++ b/debian/templates/headers.postinst.in
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+# Author: Michael Gilbert <michael.s.gilbert@gmail.com>
+# 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 = "@abiname@@localversion@";
+
+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 --git a/debian/templates/image-dbg.lintian-overrides.in b/debian/templates/image-dbg.lintian-overrides.in
new file mode 100644
index 000000000..4290c1566
--- /dev/null
+++ b/debian/templates/image-dbg.lintian-overrides.in
@@ -0,0 +1,15 @@
+#!/usr/bin/dh-exec
+
+# Kernel dbg packages contain a full image with debug data
+linux-image-@abiname@@localversion@-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-@abiname@@localversion@-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/@abiname@@localversion@/vdso/vdso.so
+[amd64 i386 ppc64el s390x] linux-image-@abiname@@localversion@-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/@abiname@@localversion@/vdso/vdso32.so
+[amd64 ppc64el s390x] linux-image-@abiname@@localversion@-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/@abiname@@localversion@/vdso/vdso64.so
+[amd64] linux-image-@abiname@@localversion@-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/@abiname@@localversion@/vdso/vdsox32.so
+
+# It is intended that 64-bit kernels provide vDSOs for 32-bit executables
+[amd64 ppc64el s390x] linux-image-@abiname@@localversion@-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/@abiname@@localversion@/vdso/vdso32.so
+[amd64] linux-image-@abiname@@localversion@-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/@abiname@@localversion@/vdso/vdsox32.so
diff --git a/debian/templates/image.bug/control b/debian/templates/image.bug/control
new file mode 100644
index 000000000..b60912c4c
--- /dev/null
+++ b/debian/templates/image.bug/control
@@ -0,0 +1,2 @@
+Submit-As: src:linux
+Package-Status: firmware-amd-graphics firmware-atheros firmware-bnx2 firmware-bnx2x firmware-brcm80211 firmware-cavium firmware-intelwimax firmware-intel-sound firmware-ipw2x00 firmware-ivtv firmware-iwlwifi firmware-libertas firmware-linux-nonfree firmware-misc-nonfree firmware-myricom firmware-netxen firmware-qlogic firmware-realtek firmware-samsung firmware-siano firmware-ti-connectivity xen-hypervisor
diff --git a/debian/templates/image.bug/include-0version b/debian/templates/image.bug/include-0version
new file mode 100644
index 000000000..b5b32bfbd
--- /dev/null
+++ b/debian/templates/image.bug/include-0version
@@ -0,0 +1,9 @@
+add_0version() {
+ echo '** Version:' >&3
+ cat /proc/version >&3
+ echo >&3
+}
+
+ask_0version() {
+ true
+}
diff --git a/debian/templates/image.bug/include-1cmdline b/debian/templates/image.bug/include-1cmdline
new file mode 100644
index 000000000..3fcc94098
--- /dev/null
+++ b/debian/templates/image.bug/include-1cmdline
@@ -0,0 +1,9 @@
+add_1cmdline() {
+ echo '** Command line:' >&3
+ cat /proc/cmdline >&3
+ echo >&3
+}
+
+ask_1cmdline() {
+ true
+}
diff --git a/debian/templates/image.bug/include-1tainted b/debian/templates/image.bug/include-1tainted
new file mode 100644
index 000000000..921922e3c
--- /dev/null
+++ b/debian/templates/image.bug/include-1tainted
@@ -0,0 +1,55 @@
+TAINT_PROPRIETARY_MODULE=0
+TAINT_FORCED_MODULE=1
+TAINT_UNSAFE_SMP=2
+TAINT_FORCED_RMMOD=3
+TAINT_MACHINE_CHECK=4
+TAINT_BAD_PAGE=5
+TAINT_USER=6
+TAINT_DIE=7
+TAINT_OVERRIDDEN_ACPI_TABLE=8
+TAINT_WARN=9
+TAINT_CRAP=10
+TAINT_FIRMWARE_WORKAROUND=11
+TAINT_OOT_MODULE=12
+TAINT_UNSIGNED_MODULE=13
+TAINT_SOFTLOCKUP=14
+TAINT_LIVEPATCH=15
+
+_check() {
+ if [ $(($tainted & 1<<$1)) -ne 0 ]; then
+ result_short="$result_short$2"
+ result_long="$result_long * $3\n"
+ fi
+}
+
+add_1tainted() {
+ tainted=$(cat /proc/sys/kernel/tainted)
+ if [ "$tainted" -gt 0 ]; then
+ local result_short result_long
+ _check $TAINT_PROPRIETARY_MODULE 'P' 'Proprietary module has been loaded.'
+ _check $TAINT_FORCED_MODULE 'F' 'Module has been forcibly loaded.'
+ _check $TAINT_UNSAFE_SMP 'S' 'SMP with CPUs not designed for SMP.'
+ _check $TAINT_FORCED_RMMOD 'R' 'User forced a module unload.'
+ _check $TAINT_MACHINE_CHECK 'M' 'System experienced a machine check exception.'
+ _check $TAINT_BAD_PAGE 'B' 'System has hit bad_page.'
+ _check $TAINT_USER 'U' 'Userspace-defined naughtiness.'
+ _check $TAINT_DIE 'D' 'Kernel has oopsed before.'
+ _check $TAINT_OVERRIDDEN_ACPI_TABLE 'A' 'ACPI table overridden.'
+ _check $TAINT_WARN 'W' 'Taint on warning.'
+ _check $TAINT_CRAP 'C' 'Module from drivers/staging has been loaded.'
+ _check $TAINT_FIRMWARE_WORKAROUND 'I' 'Working around severe firmware bug.'
+ _check $TAINT_OOT_MODULE 'O' 'Out-of-tree module has been loaded.'
+ _check $TAINT_UNSIGNED_MODULE 'E' 'Unsigned module has been loaded.'
+ _check $TAINT_SOFTLOCKUP 'L' 'Kernel has detected soft lockup before.'
+ _check $TAINT_LIVEPATCH 'K' 'Live patch has been loaded.'
+ echo "** Tainted: $result_short ($tainted)" >&3
+ printf "$result_long" >&3
+ else
+ echo '** Not tainted' >&3
+ fi
+ echo >&3
+}
+
+ask_1tainted() {
+ true
+}
diff --git a/debian/templates/image.bug/include-dmesg b/debian/templates/image.bug/include-dmesg
new file mode 100644
index 000000000..634dc99ac
--- /dev/null
+++ b/debian/templates/image.bug/include-dmesg
@@ -0,0 +1,21 @@
+add_dmesg() {
+ local got_log=
+ echo '** Kernel log:' >&3
+ if [ "$(cat /proc/sys/kernel/dmesg_restrict)" = 0 ]; then
+ dmesg > >(tail -n 100 >&3) && got_log=y
+ elif command -v sudo >/dev/null; then
+ yesno "Use sudo to read the kernel log? " yep
+ if [ "$REPLY" = yep ]; then
+ sudo dmesg > >(tail -n 100 >&3) && got_log=y
+ fi
+ fi
+ test "$got_log" || echo 'Unable to read kernel log; any relevant messages should be attached' >&3
+ echo >&3
+}
+
+ask_dmesg() {
+ # Remind the user to attach the kernel log. This should also trigger
+ # a reminder in some MUAs if the user tries to send without it.
+ echo '** Kernel log: boot messages should be attached' >&3
+ echo >&3
+}
diff --git a/debian/templates/image.bug/include-model b/debian/templates/image.bug/include-model
new file mode 100644
index 000000000..ba77fb266
--- /dev/null
+++ b/debian/templates/image.bug/include-model
@@ -0,0 +1,60 @@
+grep_model() {
+ case "$(uname -m)" in
+ alpha)
+ egrep '^(system (type|variation|revision)|platform string)\b' /proc/cpuinfo
+ ;;
+ arm*)
+ egrep '^(Processor|Hardware|Revision)\b' /proc/cpuinfo
+ ;;
+ i386|ia64|x86_64)
+ local found=
+ for name in {sys,product,chassis,bios,board}_{vendor,name,version}; do
+ if [ -f /sys/class/dmi/id/$name ]; then
+ echo -n "$name: "
+ cat /sys/class/dmi/id/$name
+ found=y
+ fi
+ done
+ test -n "$found"
+ ;;
+ mips|mips64)
+ egrep '^(system type|cpu model)\b' /proc/cpuinfo
+ ;;
+ parisc|parisc64)
+ egrep '^(model|[hs]version)\b' /proc/cpuinfo
+ ;;
+ ppc|ppc64|ppc64le)
+ egrep -i '^(board|machine|model|motherboard|platform|revision|vendor)\b' /proc/cpuinfo
+ ;;
+ s390|s390x)
+ egrep '^processor\b' /proc/cpuinfo
+ ;;
+ sparc|sparc64)
+ egrep '^(cpu|fpu|pmu|prom|type)\b' /proc/cpuinfo
+ ;;
+ sh4|sh4a)
+ egrep '^(machine|cpu)\b' /proc/cpuinfo
+ ;;
+ *)
+ false
+ ;;
+ esac
+
+ # Device Tree model
+ if [ -r /proc/device-tree/model ]; then
+ echo "Device Tree model:" $(cat /proc/device-tree/model)
+ fi
+}
+
+add_model() {
+ local found=
+ echo '** Model information' >&3
+ grep_model >&3 2>/dev/null || echo "not available" >&3
+ echo >&3
+}
+
+ask_model() {
+ # This is still valid as long as the bug is being reported on the same
+ # system.
+ test $same_system = nop || add_model
+}
diff --git a/debian/templates/image.bug/include-modules b/debian/templates/image.bug/include-modules
new file mode 100644
index 000000000..22271c905
--- /dev/null
+++ b/debian/templates/image.bug/include-modules
@@ -0,0 +1,13 @@
+add_modules() {
+ echo '** Loaded modules:' >&3
+ # List modules along with any taint flags.
+ # We should be able to tell cut to use an empty output delimiter, but
+ # currently (coreutils 8.13-3) this results in null bytes in the output.
+ cut -d' ' -f1,7 /proc/modules | sed 's/ //' >&3
+ echo >&3
+}
+
+ask_modules() {
+ true
+}
+
diff --git a/debian/templates/image.bug/include-network b/debian/templates/image.bug/include-network
new file mode 100644
index 000000000..bd12defe6
--- /dev/null
+++ b/debian/templates/image.bug/include-network
@@ -0,0 +1,39 @@
+_add_etc_network_interfaces() {
+ echo '** Network interface configuration:' >&3
+ # Hide passwords/keys
+ awk '$1 ~ /key|pass|^wpa-(anonymous|identity|phase|pin|private|psk)/ { gsub(".", "*", $2); }
+ $1 == "ethtool-wol" { gsub(".", "*", $3); }
+ !/^[[:space:]]*\#/ { print; }
+ ' </etc/network/interfaces >&3
+ echo >&3
+}
+
+add_network() {
+ yesno "Include network configuration and status from this computer? " nop
+ test $REPLY = yep || return 0
+
+ _add_etc_network_interfaces
+ echo '** Network status:' >&3
+ if command -v ip >/dev/null; then
+ echo '*** IP interfaces and addresses:' >&3
+ ip address show >&3
+ echo >&3
+ fi
+ echo '*** Device statistics:' >&3
+ cat /proc/net/dev >&3
+ echo >&3
+ if command -v netstat >/dev/null; then
+ echo '*** Protocol statistics:' >&3
+ netstat -s >&3 || true
+ echo >&3
+ fi
+ echo >&3
+}
+
+ask_network() {
+ test $same_system = yep || return 0
+ yesno "Include network configuration from this computer? " nop
+ test $REPLY = yep || return 0
+
+ _add_etc_network_interfaces
+}
diff --git a/debian/templates/image.bug/include-pci b/debian/templates/image.bug/include-pci
new file mode 100644
index 000000000..8e6528e5a
--- /dev/null
+++ b/debian/templates/image.bug/include-pci
@@ -0,0 +1,12 @@
+add_pci() {
+ echo '** PCI devices:' >&3
+ lspci -nnvv >&3 2>/dev/null || echo 'not available' >&3
+ echo >&3
+}
+
+ask_pci() {
+ # This information shouldn't vary much between kernel versions, so
+ # include it anyway.
+ test $same_system = nop || add_pci
+}
+
diff --git a/debian/templates/image.bug/include-pstore b/debian/templates/image.bug/include-pstore
new file mode 100644
index 000000000..43285bd6a
--- /dev/null
+++ b/debian/templates/image.bug/include-pstore
@@ -0,0 +1,77 @@
+_add_pstore_log() {
+ if [ $# -le 3 ]; then
+ return
+ fi
+
+ local backend="$1"
+ local event="$2"
+ local date="$3"
+
+ yesno "Include log of $event at $(date -d @$date +%c) stored by $backend?" yep
+ if [ $REPLY != yep ]; then
+ return
+ fi
+
+ echo >&3
+ echo "*** Log of $event at $(date -d @$date -Iseconds) from $backend" >&3
+
+ shift 3
+ for file in "$@"; do
+ tail -n +2 "$file" | sed 's/^<.>//' >&3
+ done
+}
+
+add_pstore() {
+ local backend
+ local i
+ local j
+ local file
+ local date
+ local head
+ local event
+ local log_files
+
+ if ! mountpoint -q /sys/fs/pstore; then
+ return 0
+ fi
+
+ set -- /sys/fs/pstore/dmesg-*-1
+ backend=${1#*/dmesg-}
+ backend=${backend%-1}
+ if [ "$backend" = '*' ]; then
+ return 0
+ fi
+
+ i=1
+ while [ -f /sys/fs/pstore/dmesg-$backend-$i ]; do
+ file=/sys/fs/pstore/dmesg-$backend-$i
+ head="$(head -1 "$file")"
+
+ # Is this the first part of a log?
+ if [ "x${head% Part1}" != "x$head" ]; then
+ # Flush previous log, if any
+ _add_pstore_log "$backend" "$event" "$date" $log_files
+
+ event="${head% Part1}"
+ date=$(stat -c %Y $file)
+ log_files=
+ j=1
+ fi
+
+ if [ "x$head" = "x$event Part$j" ]; then
+ # Each part is prepended to the list, because they're numbered
+ # backward in log history
+ log_files="$file $log_files"
+ j=$((j + 1))
+ fi
+
+ i=$((i + 1))
+ done
+
+ # Flush last log, if any
+ _add_pstore_log "$backend" "$event" "$date" $log_files
+}
+
+ask_pstore() {
+ add_pstore
+}
diff --git a/debian/templates/image.bug/include-usb b/debian/templates/image.bug/include-usb
new file mode 100644
index 000000000..e8eb67e42
--- /dev/null
+++ b/debian/templates/image.bug/include-usb
@@ -0,0 +1,11 @@
+add_usb() {
+ echo '** USB devices:' >&3
+ lsusb >&3 2>/dev/null || echo 'not available' >&3
+ echo >&3
+}
+
+ask_usb() {
+ # This information shouldn't vary much between kernel versions, so
+ # include it anyway.
+ test $same_system = nop || add_usb
+}
diff --git a/debian/templates/image.bug/presubj b/debian/templates/image.bug/presubj
new file mode 100644
index 000000000..59b891acb
--- /dev/null
+++ b/debian/templates/image.bug/presubj
@@ -0,0 +1,8 @@
+Please ensure that you are currently running the kernel version that you
+are reporting on. This will allow your bug report to include useful
+diagnostic information about the running kernel.
+
+If you are reporting that the kernel fails to boot, please use a digital
+camera, serial console or netconsole to record the boot messages and
+attach these to your report. You can use the kernel parameter
+'boot_delay=1000' to slow down the boot messages.
diff --git a/debian/templates/image.bug/script b/debian/templates/image.bug/script
new file mode 100644
index 000000000..8e0b5d557
--- /dev/null
+++ b/debian/templates/image.bug/script
@@ -0,0 +1,46 @@
+#!/bin/bash
+set -e
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+
+dir="$(dirname $0)"
+
+. "$dir"/info
+
+for file in "$dir"/include-*; do
+ name="$(echo $file | sed -e 's,^.*/include-,,')"
+ hooks+=($name)
+ . "$file"
+done
+
+if [ "$RELEASE" == "$(uname -r)" ]; then
+ running_ver="$(uname -v)"
+ running_ver="${running_ver#* $DISTRIBUTOR }"
+ running_ver="${running_ver%% *}"
+ if [ "$running_ver" != "$SOURCEVERSION" ]; then
+ cat <<EOF
+You have installed version $PACKAGE_VERSION of
+$PACKAGE_NAME, but version $running_ver is currently
+running.
+
+You should reboot to complete the upgrade. Until you do this, some
+modules may fail to load. This is NOT a bug.
+
+If you have already rebooted, check your boot loader configuration.
+
+EOF
+ yesno "Do you still want to report a bug? " nop
+ if [ "$REPLY" = nop ]; then
+ exit 1
+ fi
+ fi
+ for hook in ${hooks[@]}; do
+ add_$hook
+ done
+else
+ yesno "Does the bug you are reporting affect this computer? " yep
+ same_system=$REPLY
+ for hook in ${hooks[@]}; do
+ ask_$hook
+ done
+fi
diff --git a/debian/templates/image.postinst.in b/debian/templates/image.postinst.in
new file mode 100755
index 000000000..25e7dd654
--- /dev/null
+++ b/debian/templates/image.postinst.in
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+version=@abiname@@localversion@
+image_path=/boot/@image-stem@-$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 --git a/debian/templates/image.postrm.in b/debian/templates/image.postrm.in
new file mode 100755
index 000000000..4298752b3
--- /dev/null
+++ b/debian/templates/image.postrm.in
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+version=@abiname@@localversion@
+image_path=/boot/@image-stem@-$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 --git a/debian/templates/image.preinst.in b/debian/templates/image.preinst.in
new file mode 100755
index 000000000..8a5658ecd
--- /dev/null
+++ b/debian/templates/image.preinst.in
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+version=@abiname@@localversion@
+image_path=/boot/@image-stem@-$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 --git a/debian/templates/image.prerm.in b/debian/templates/image.prerm.in
new file mode 100755
index 000000000..f1bde29b1
--- /dev/null
+++ b/debian/templates/image.prerm.in
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+version=@abiname@@localversion@
+image_path=/boot/@image-stem@-$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 --git a/debian/templates/perf.lintian-overrides.in b/debian/templates/perf.lintian-overrides.in
new file mode 100644
index 000000000..858faa782
--- /dev/null
+++ b/debian/templates/perf.lintian-overrides.in
@@ -0,0 +1,3 @@
+# These executables are needed to handle processes running in compat mode
+linux-perf-@version@: binary-from-other-architecture usr/lib/perf_@version@-core/perf-read-vdso32
+linux-perf-@version@: binary-from-other-architecture usr/lib/perf_@version@-core/perf-read-vdsox32
diff --git a/debian/templates/tests-control.image.in b/debian/templates/tests-control.image.in
new file mode 100644
index 000000000..62497c67a
--- /dev/null
+++ b/debian/templates/tests-control.image.in
@@ -0,0 +1,4 @@
+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
+Classes: smp
diff --git a/debian/templates/tests-control.main.in b/debian/templates/tests-control.main.in
new file mode 100644
index 000000000..cd037b835
--- /dev/null
+++ b/debian/templates/tests-control.main.in
@@ -0,0 +1,2 @@
+Tests: python
+Depends: python3, pycodestyle, pyflakes3
diff --git a/debian/tests/control b/debian/tests/control
new file mode 100644
index 000000000..053bf00bc
--- /dev/null
+++ b/debian/tests/control
@@ -0,0 +1,8 @@
+Tests: python
+Depends: python3, pycodestyle, pyflakes3
+
+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-4.19.0-21-alpha-generic [alpha], linux-image-4.19.0-21-alpha-smp [alpha], linux-image-4.19.0-21-amd64-unsigned [amd64], linux-image-4.19.0-21-cloud-amd64-unsigned [amd64], linux-image-4.19.0-21-rt-amd64-unsigned [amd64], linux-image-4.19.0-21-arm64-unsigned [arm64], linux-image-4.19.0-21-rt-arm64-unsigned [arm64], linux-image-4.19.0-21-marvell [armel], linux-image-4.19.0-21-rpi [armel], linux-image-4.19.0-21-armmp [armhf], linux-image-4.19.0-21-armmp-lpae [armhf], linux-image-4.19.0-21-rt-armmp [armhf], linux-image-4.19.0-21-parisc [hppa], linux-image-4.19.0-21-parisc-smp [hppa], linux-image-4.19.0-21-parisc64-smp [hppa], linux-image-4.19.0-21-686-unsigned [i386], linux-image-4.19.0-21-686-pae-unsigned [i386], linux-image-4.19.0-21-rt-686-pae-unsigned [i386], linux-image-4.19.0-21-itanium [ia64], linux-image-4.19.0-21-mckinley [ia64], linux-image-4.19.0-21-m68k [m68k], linux-image-4.19.0-21-4kc-malta [mips mipsel], linux-image-4.19.0-21-5kc-malta [mips mips64 mips64el mipsel], linux-image-4.19.0-21-octeon [mips mips64 mips64el mipsel], linux-image-4.19.0-21-loongson-3 [mips64el mipsel], linux-image-4.19.0-21-mips64r6 [mips64r6 mipsr6], linux-image-4.19.0-21-mips64r6el [mips64r6el mipsr6el], linux-image-4.19.0-21-mips32r6 [mipsr6], linux-image-4.19.0-21-mips32r6el [mipsr6el], linux-image-4.19.0-21-powerpc [powerpc], linux-image-4.19.0-21-powerpc-smp [powerpc], linux-image-4.19.0-21-powerpc64 [powerpc ppc64], linux-image-4.19.0-21-powerpcspe [powerpcspe], linux-image-4.19.0-21-powerpc64le [ppc64el], linux-image-4.19.0-21-riscv64 [riscv64], linux-image-4.19.0-21-s390x [s390x], linux-image-4.19.0-21-sh7751r [sh4], linux-image-4.19.0-21-sh7785lcr [sh4], linux-image-4.19.0-21-sparc64 [sparc64], linux-image-4.19.0-21-sparc64-smp [sparc64]
+Classes: smp
+
diff --git a/debian/tests/python b/debian/tests/python
new file mode 100755
index 000000000..c743f21ef
--- /dev/null
+++ b/debian/tests/python
@@ -0,0 +1,40 @@
+#!/bin/bash -eu
+
+sources="$AUTOPKGTEST_TMP/sources"
+
+{
+ # Check Python modules under debian/lib and Python scripts under
+ # debian/bin or debian/rules.d.
+ find debian/lib/python -name '*.py'
+ find debian/bin debian/rules.d -type f -perm /111 |
+ while read script; do
+ # Check for Python shebang on the first line only
+ if awk '/^#!.*python/ { exit 0 } { exit 1 }' "$script"; then
+ echo "$script"
+ fi
+ done
+} > "$sources"
+
+# autopkgtest checks for a non-zero exit code *or* any output to
+# stderr. So we should continue after a failure, but make sure
+# something is written to stderr.
+
+echo "I: Running pycodestyle..."
+# Ignore E126,E226,W503 (ignored by default) and also E127,W291 which
+# give false positives.
+if ! xargs pycodestyle --max-line-length=100 --ignore E126,E127,E226,W291,W503 < "$sources"; then
+ # pycodestyle only writes to stdout
+ echo >&2 "E: pycodestyle detected problems"
+fi
+
+echo "I: Running pyflakes..."
+if ! xargs pyflakes3 < "$sources"; then
+ # pyflakes only writes to stdout
+ echo >&2 "E: pyflakes detected problems"
+fi
+
+echo "I: Running debian_linux.debian unit tests..."
+# unittest only writes to stderr
+if ! PYTHONPATH=debian/lib/python python3 -m debian_linux.debian 2>&1; then
+ echo >&2 "E: some unit tests failed"
+fi
diff --git a/debian/tests/selftests b/debian/tests/selftests
new file mode 100644
index 000000000..c19064ca6
--- /dev/null
+++ b/debian/tests/selftests
@@ -0,0 +1,88 @@
+#!/bin/bash -eu
+
+PATH=/usr/sbin:/sbin:/usr/bin:/bin
+
+getconfig() {
+ debian/bin/getconfig.py "$@"
+}
+
+# Look up current ABI name and 'localversion' (featureset/flavour) suffixes
+abiname=$(getconfig version abiname)
+arch=$(dpkg --print-architecture)
+localversion=()
+for featureset in $(getconfig base $arch featuresets); do
+ if [ "$(getconfig base '' $featureset enabled || echo True)" = True ]; then
+ for flavour in $(getconfig base $arch $featureset flavours); do
+ if [ "$featureset" = none ]; then
+ localversion+=(-$flavour)
+ else
+ localversion+=(-$featureset-$flavour)
+ fi
+ done
+ fi
+done
+steps=${#localversion[*]}
+
+case "${ADT_REBOOT_MARK:-}" in
+ "")
+ step=-1
+ ;;
+ step*)
+ step=${ADT_REBOOT_MARK#step}
+ ;;
+esac
+
+if [ "$step" -ge 0 ]; then
+ ver=$abiname${localversion[$step]}
+
+ if [ "$(uname -r)" != "$ver" ]; then
+ echo >&2 "Should be running: $ver"
+ echo >&2 "Actually running: $(uname -r)"
+ else
+ cp -lR . $ADTTMP/build
+ cd $ADTTMP/build
+ make headers_install
+
+ # Ignore compiler warnings
+ {
+ make -C tools/testing/selftests &&
+ make -C tools/testing/selftests/memfd build_fuse
+ } 2>&1 || echo >&2 "Build failed"
+
+ # Enable testing CLONE_USERNS by unprivileged users
+ sysctl kernel.unprivileged_userns_clone=1
+
+ # Some tests will write to stderr despite being successful,
+ # and the exit code from make will be 0 even if tests failed.
+ # So we have to do some post-analysis...
+ set -o pipefail
+ {
+ make -C tools/testing/selftests quicktest=1 run_tests &&
+ make -C tools/testing/selftests/cpu-hotplug run_full_test &&
+ make -C tools/testing/selftests/memory-hotplug run_full_test &&
+ make -C tools/testing/selftests/memfd run_fuse &&
+ make -C tools/testing/selftests/timers run_destructive_tests
+ } 2>&1 | tee $ADTTMP/log
+ set +o pipefail
+ if grep -E '\[(FAIL|UNSUPPORTED)\]|recipe for target .run_tests. failed' $ADTTMP/log | \
+ grep -q -v \
+ -e '^selftests: fw_userhelper.sh \[FAIL\]' \
+ -e 'ftrace - function profiler with function tracing \[UNSUPPORTED\]' \
+ -e '^selftests: ftracetest \[FAIL\]' \
+ -e '|| echo .*\[FAIL\]' \
+ ; then
+ echo >&2 "Unexpected failures found"
+ fi
+ fi
+fi
+
+step=$((step + 1))
+
+if [ "$step" -lt "$steps" ]; then
+ # Load the next kernel
+ ver=$abiname${localversion[$step]}
+ kexec -l /boot/vmlinuz-$ver --initrd /boot/initrd.img-$ver --reuse-cmdline
+ /tmp/autopkgtest-reboot step$step
+fi
+
+exit 0
diff --git a/debian/upstream/rt-signing-key.pgp b/debian/upstream/rt-signing-key.pgp
new file mode 100644
index 000000000..f4e3c5a32
--- /dev/null
+++ b/debian/upstream/rt-signing-key.pgp
Binary files differ
diff --git a/debian/upstream/signing-key.pgp b/debian/upstream/signing-key.pgp
new file mode 100644
index 000000000..60a46ab97
--- /dev/null
+++ b/debian/upstream/signing-key.pgp
Binary files differ
diff --git a/debian/usbip.install b/debian/usbip.install
new file mode 100644
index 000000000..04a6ce5b5
--- /dev/null
+++ b/debian/usbip.install
@@ -0,0 +1,2 @@
+usr/sbin/usbip
+usr/sbin/usbipd
diff --git a/debian/usbip.manpages b/debian/usbip.manpages
new file mode 100644
index 000000000..ff94009a6
--- /dev/null
+++ b/debian/usbip.manpages
@@ -0,0 +1,2 @@
+tools/usb/usbip/doc/usbip.8
+tools/usb/usbip/doc/usbipd.8
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 000000000..54040107b
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,4 @@
+# Find first non-rc tarball linked from kernel.org.
+version=3
+opts="pgpmode=mangle, pgpsigurlmangle=s|\.xz$|.sign|, decompress" \
+https://www.kernel.org/ .*/linux-([0-9.]+).tar.xz debian uupdate