aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--debian/changelog497
-rw-r--r--debian/config/config16
-rw-r--r--debian/config/defines2
-rw-r--r--debian/lib/python/debian_linux/abi.py4
-rw-r--r--debian/patches-rt/Use-CONFIG_PREEMPTION.patch230
-rw-r--r--debian/patches-rt/lib-ubsan-Don-t-seralize-UBSAN-report.patch12
-rw-r--r--debian/patches-rt/series4
-rw-r--r--debian/patches-rt/watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch75
-rw-r--r--debian/patches-rt/x86-ioapic-Prevent-inconsistent-state-when-moving-an.patch73
9 files changed, 636 insertions, 277 deletions
diff --git a/debian/changelog b/debian/changelog
index e226e2c75563..c7445811df7b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -26,13 +26,506 @@ linux (5.5~rc4-1~exp1) UNRELEASED; urgency=medium
-- Romain Perier <romain.perier@gmail.com> Thu, 02 Jan 2020 16:44:44 +0100
-linux (5.4.6-2) UNRELEASED; urgency=medium
+linux (5.4.8-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.4.7
+ - af_packet: set defaule value for tmo
+ - [amd64] fjes: fix missed check in fjes_acpi_add
+ - mod_devicetable: fix PHY module format
+ - net: dst: Force 4-byte alignment of dst_metrics
+ - [arm64] net: hisilicon: Fix a BUG trigered by wrong bytes_compl
+ - net: phy: ensure that phy IDs are correctly typed
+ - net: qlogic: Fix error paths in ql_alloc_large_buffers()
+ - net-sysfs: Call dev_hold always in rx_queue_add_kobject
+ - net: usb: lan78xx: Fix suspend/resume PHY register access error
+ - [arm64,armhf] nfp: flower: fix stats id allocation
+ - qede: Disable hardware gro when xdp prog is installed
+ - qede: Fix multicast mac configuration
+ - sctp: fix memleak on err handling of stream initialization
+ - sctp: fully initialize v4 addr in some functions
+ - neighbour: remove neigh_cleanup() method
+ - bonding: fix bond_neigh_init()
+ - net: ena: fix default tx interrupt moderation interval
+ - net: ena: fix issues in setting interrupt moderation params in ethtool
+ - [armhf] net: ethernet: ti: davinci_cpdma: fix warning "device driver
+ frees DMA memory with different size"
+ - [arm64,armhf] net: stmmac: platform: Fix MDIO init for platforms without
+ PHY
+ - [armhf] net: dsa: b53: Fix egress flooding settings
+ - btrfs: don't double lock the subvol_sem for rename exchange
+ - btrfs: do not call synchronize_srcu() in inode_tree_del
+ - Btrfs: make tree checker detect checksum items with overlapping ranges
+ - btrfs: return error pointer from alloc_test_extent_buffer
+ - 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
+ - [arm*] drm/vc4/vc4_hdmi: fill in connector info
+ - drm/virtio: switch virtio_gpu_wait_ioctl() to gem helper.
+ - drm: mst: Fix query_payload ack reply struct
+ - [arm64,armhf] drm/panel: Add missing drm_panel_init() in panel drivers
+ - [armhf] drm: exynos: exynos_hdmi: use cec_notifier_conn_(un)register
+ - drm: Use EOPNOTSUPP, not ENOTSUPP
+ - drm/amdgpu/sriov: add ring_stop before ring_create in psp v11 code
+ - drm/amdgpu: grab the id mgr lock while accessing passid_mapping
+ - drm/ttm: return -EBUSY on pipelining with no_gpu_wait (v2)
+ - ath10k: add cleanup in ath10k_sta_state()
+ - ath10k: Check if station exists before forwarding tx airtime report
+ - spi: Add call to spi_slave_abort() function when spidev driver is
+ released
+ - [arm64] drm/meson: vclk: use the correct G12A frac max value
+ - [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
+ - [armhf] spi: gpio: prevent memory leak in spi_gpio_probe
+ - media: max2175: Fix build error without CONFIG_REGMAP_I2C
+ - [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
+ - [armhf] drm/sun4i: dsi: Fix TCON DRQ set bits
+ - [arm64] media: venus: Fix occasionally failures to suspend
+ - rtw88: fix NSS of hw_cap
+ - [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
+ - mwifiex: pcie: Fix memory leak in mwifiex_pcie_init_evt_ring
+ (CVE-2019-19057)
+ - drm/drm_vblank: Change EINVAL by the correct errno
+ - libbpf: Fix struct end padding in btf_dump
+ - libbpf: Fix passing uninitialized bytes to setsockopt
+ - net/smc: increase device refcount for added link group
+ - team: call RCU read lock when walking the port_list
+ - media: cx88: Fix some error handling path in 'cx8800_initdev()'
+ - [arm64] crypto: inside-secure - Fix a maybe-uninitialized warning
+ - [arm64] crypto: aegis128/simd - build 32-bit ARM for v8 architecture
+ explicitly
+ - [x86] ASoC: SOF: enable sync_write in hdac_bus
+ - [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()
+ - rtw88: coex: Set 4 slot mode for A2DP
+ - [arm64,armhf] drm/bridge: dw-hdmi: Restore audio when setting a mode
+ - perf vendor events arm64: Fix Hisi hip08 DDRC PMU eventname
+ - usb: usbfs: Suppress problematic bind and unbind uevents.
+ - Bluetooth: btusb: avoid unused function warning
+ - 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
+ - bpf/stackmap: Fix deadlock with rq_lock in bpf_get_stack()
+ - [x86] mce: Lower throttling MCE messages' priority to warning
+ - [arm64] net: hns3: log and clear hardware error after reset complete
+ - [arm64] RDMA/hns: Fix wrong parameters when initial mtt of srq->idx_que
+ - [x86] drm/gma500: fix memory disclosures due to uninitialized bytes
+ - ASoC: soc-pcm: fixup dpcm_prune_paths() loop continue
+ - 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
+ - media: cedrus: Fix undefined shift with a SHIFT_AND_MASK_BITS macro
+ - drm/nouveau: Don't grab runtime PM refs for HPD IRQs
+ - md: no longer compare spare disk superblock events in super_load
+ - md/bitmap: avoid race window between md_bitmap_resize and
+ bitmap_file_clear_bit
+ - drm: Don't free jobs in wait_event_interruptible()
+ - EDAC/amd64: Set grain per DIMM
+ - [arm64] psci: Reduce the waiting time for cpu_psci_cpu_kill()
+ - i40e: initialize ITRN registers with correct values
+ - i40e: Wrong 'Advertised FEC modes' after set FEC to AUTO
+ - net: phy: dp83867: enable robust auto-mdix
+ - [arm64,armhf] drm/tegra: sor: Use correct SOR index on Tegra210
+ - regulator: core: Release coupled_rdevs on regulator_init_coupling()
+ error
+ - ubsan, x86: Annotate and allow __ubsan_handle_shift_out_of_bounds() in
+ uaccess regions
+ - ACPI: button: Add DMI quirk for Medion Akoya E2215T
+ - RDMA/qedr: Fix memory leak in user qp and mr
+ - [arm64] RDMA/hns: Fix memory leak on 'context' on error return path
+ - RDMA/qedr: Fix srqs xarray initialization
+ - RDMA/core: Set DMA parameters correctly
+ - [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] add error handling to perf_callchain_kernel
+ - [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
+ - [arm64,armhf] net/mlx5e: Verify that rule has at least one fwd/drop
+ action
+ - ALSA: bebob: expand sleep just after breaking connections for protocol
+ version 1
+ - libbpf: Fix error handling in bpf_map__reuse_fd()
+ - Bluetooth: Fix advertising duplicated flags
+ - ALSA: pcm: Fix missing check of the new non-cached buffer type
+ - [riscv64] spi: sifive: disable clk when probe fails and remove
+ - 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
+ - nvme: introduce "Command Aborted By host" status code
+ - nvmem: core: fix nvmem_cell_write inline function
+ - ASoC: SOF: topology: set trigger order for FE DAI link
+ - media: vivid: media_device_cleanup was called too early
+ - bnx2x: Fix PF-VF communication over multi-cos queues.
+ - ALSA: timer: Limit max amount of slave instances
+ - RDMA/core: Fix return code when modify_port isn't supported
+ - [arm64] drm: msm: a6xx: fix debug bus register configuration
+ - rtlwifi: fix memory leak in rtl92c_set_fw_rsvdpagepkt()
+ - perf probe: Fix to find range-only function instance
+ - perf cs-etm: Fix definition of macro TO_CS_QUEUE_NR
+ - 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: Fix cross compile for ARM64
+ - perf tools: Splice events onto evlist even on error
+ - ice: Check for null pointer dereference when setting rings
+ - perf parse: If pmu configuration fails free terms
+ - perf probe: Skip overlapped location on searching variables
+ - net: avoid potential false sharing in neighbor related code
+ - 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
+ - libbpf: Fix negative FD close() in xsk_setup_xdp_prog()
+ - [s390x] bpf: Use kvcalloc for addrs array
+ - cgroup: freezer: don't change task and cgroups status unnecessarily
+ - 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
+ - media: cedrus: Use helpers to access capture queue
+ - [arm64,armhf] 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
+ - r8169: respect EEE user setting when restarting network
+ - [s390x] disassembler: don't hide instruction addresses
+ - [armhf] net: ethernet: ti: Add dependency for TI_DAVINCI_EMAC
+ - 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
+ - [x86] crash: Add a forward declaration of struct kimage
+ - 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
+ - regulator: core: Let boot-on regulators be powered off
+ - [arm64] spi: tegra20-slink: add missed clk_unprepare
+ - tun: fix data-race in gro_normal_list()
+ - xhci-pci: Allow host runtime PM as default also for Intel Ice Lake xHCI
+ - 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()
+ - sched/uclamp: Fix overzealous type replacement
+ - perf/core: Fix the mlock accounting, again
+ - bnxt_en: Return proper error code for non-existent NVM variable
+ - net: phy: avoid matching all-ones clause 45 PHY IDs
+ - [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
+ - perf session: Fix decompression of PERF_RECORD_COMPRESSED records
+ - perf probe: Fix to show function entry line as probe-able
+ - [s390x] crypto: Fix unsigned variable compared with zero
+ - [s390x] kasan: support memcpy_real with TRACE_IRQFLAGS
+ - bnxt_en: Improve RX buffer error handling.
+ - iwlwifi: check kasprintf() return value
+ - ASoC: soc-pcm: check symmetry before hw_params
+ - [armhf] net: ethernet: ti: ale: clean ale tbl on init and intf restart
+ - [s390x] cpumf: Adjust registration of s390 PMU device drivers
+ - [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
+ - libtraceevent: Fix memory leakage in copy_filter_type
+ - ice: Only disable VF state when freeing each VF resources
+ - ice: Fix setting coalesce to handle DCB configuration
+ - net: phy: initialise phydev speed and duplex sanely
+ - tools, bpf: Fix build for 'make -s tools/bpf O=<dir>'
+ - bpf: Provide better register bounds after jmp32 instructions
+ - net: wireless: intel: iwlwifi: fix GRO_NORMAL packet stalling
+ - 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"
+ - tpm_tis: reserve chip for duration of tpm_tis_core_init
+ - tpm: fix invalid locking in NONBLOCKING mode
+ - iommu: fix KASAN use-after-free in iommu_insert_resv_region
+ - iommu: set group default domain before creating direct mappings
+ - iommu/vt-d: Fix dmar pte read access not set error
+ - iommu/vt-d: Set ISA bridge reserved region as relaxable
+ - iommu/vt-d: Allocate reserved region for ISA with correct permission
+ - [armhf] can: flexcan: fix possible deadlock and out-of-order reception
+ after wakeup
+ - [armhf] can: flexcan: poll MCR_LPM_ACK instead of GPR ACK for stop mode
+ acknowledgment
+ - 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
+ - ath10k: Revert "ath10k: add cleanup in ath10k_sta_state()"
+ - md: avoid invalid memory access for array sb->dev_roles
+ - [s390x] ftrace: fix endless recursion in function_graph tracer
+ - [armhf] can: flexcan: add low power enter/exit acknowledgment helper
+ - 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
+ - mm: vmscan: protect shrinker idr replace with CONFIG_MEMCG
+ - [x86] intel_th: pci: Add Comet Lake PCH-V support
+ - [x86] intel_th: pci: Add Elkhart Lake SOC support
+ - [x86] intel_th: Fix freeing IRQs
+ - [x86] intel_th: msu: Fix window switching without windows
+ - [x86] platform/x86: hp-wmi: Make buffer for HPWMI_FEATURE2_QUERY 128
+ bytes
+ - [x86] staging: comedi: gsc_hpdi: check dma_alloc_coherent() return value
+ - [x86] pinctrl: baytrail: Really serialize all register accesses
+ - 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()
+ - ext4: validate the debug_want_extra_isize mount option at parse time
+ - [powerpc*] KVM: PPC: Book3S HV: Fix regression on big endian hosts
+ - [x86] kvm: x86: Host feature SSBD doesn't imply guest feature
+ SPEC_CTRL_SSBD
+ - [x86] kvm: x86: Host feature SSBD doesn't imply guest feature AMD_SSBD
+ - [arm64,armhf] KVM: arm/arm64: Properly handle faulting of device
+ mappings
+ - [arm64] KVM: arm64: Ensure 'params' is initialised when looking up sys
+ register
+ - [x86] intel: Disable HPET on Intel Coffee Lake H platforms
+ - [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[]
+ - [x86] mce: Fix possibly incorrect severity calculation on AMD
+ - [powerpc*] irq: fix stack overflow verification
+ - [powerpc*] ocxl: Fix concurrent AFU open and device removal
+ - [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 v2
+ - iwlwifi: pcie: move power gating workaround earlier in the flow
+ https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.4.8
+ - Revert "MIPS: futex: Restore \n after sync instructions"
+ - Revert "MIPS: futex: Emit Loongson3 sync workarounds within asm"
+ - scsi: lpfc: Fix spinlock_irq issues in lpfc_els_flush_cmd()
+ - 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
+ - scsi: mpt3sas: Reject NVMe Encap cmnds to unsupported HBA
+ - [armhf] gpio: mxc: Only get the second IRQ when there is more than one
+ IRQ
+ - scsi: lpfc: Fix list corruption in lpfc_sli_get_iocbq
+ - Input: atmel_mxt_ts - disable IRQ across suspend
+ - f2fs: fix to update time in lazytime mode
+ - [x86] platform/x86: peaq-wmi: switch to using polled mode of input
+ devices
+ - [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 hardlockup in lpfc_abort_handler
+ - 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()
+ - [arm64] scsi: hisi_sas: Delete the debugfs folder of hisi_sas when the
+ probe fails
+ - [powerpc*] pseries: Mark accumulate_stolen_time() as notrace
+ - [powerpc*] pseries: Don't fail hash page table insert for bolted mapping
+ - dma-mapping: Add vmap checks to dma_map_single()
+ - dma-mapping: fix handling of dma-ranges for reserved memory (again)
+ - clocksource/drivers/timer-of: Use unique device name instead of timer
+ - [powerpc*] security/book3s64: Report L1TF status in sysfs
+ - [powerpc*] 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 unexpected error messages during RSCN handling
+ - 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: smd: Add missing pnoc clock
+ - [arm64] clk: qcom: Allow constant ratio freq tables for rcg
+ - clk: clk-gpio: propagate rate change to parent
+ - dma-direct: check for overflows on 32 bit DMA addresses
+ - fs/quota: handle overflows of sysctl fs.quota.* and report as unsigned
+ long
+ - [arm64] iommu/arm-smmu-v3: Don't display an error when IRQ lines are
+ missing
+ - [armhf] i2c: stm32f7: fix & reorder remove & probe error handling
+ - iomap: fix return value of iomap_dio_bio_actor on 32bit systems
+ - scsi: lpfc: fix: Coverity: lpfc_cmpl_els_rsp(): Null pointer
+ dereferences
+ - [m68k] scsi: zorro_esp: Limit DMA transfers to 65536 bytes (except on
+ Fastlane)
+ - [powerpc*] PCI: rpaphp: Fix up pointer to first drc-info entry
+ - scsi: ufs: fix potential bug which ends in system hang
+ - [powerpc*] PCI: rpaphp: Don't rely on firmware feature to imply drc-info
+ support
+ - [powerpc*] PCI: rpaphp: Annotate and correctly byte swap DRC properties
+ - [powerpc*] PCI: rpaphp: Correctly match ibm, my-drc-index to drc-name
+ when using drc-info
+ - [powerpc*] security: Fix wrong message when RFI Flush is disable
+ - [powerpc*] eeh: differentiate duplicate detection message
+ - [powerpc*] book3s/mm: Update Oops message to print the correct
+ translation in use
+ - 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
+ - HID: i2c-hid: fix no irq after reset on raydium 3118
+ - [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: prevent deferral of watchdogd wakeup on RT
+ - 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: target: core: Release SPC-2 reservations when closing a session
+ - scsi: ufs: Fix up auto hibern8 enablement
+ - scsi: iscsi: Don't send data to unbound connection
+ - scsi: target: iscsi: Wait for all commands to finish before freeing a
+ session
+ - f2fs: Fix deadlock in f2fs_gc() context during atomic files handling
+ - [x86] Drivers: hv: vmbus: Fix crash handler reset of Hyper-V synic
+ - apparmor: fix unsigned len comparison with less than zero
+ - drm/amdgpu: Call find_vma under mmap_sem
+ - cifs: Fix use-after-free bug in cifs_reconnect()
+ - io_uring: io_allocate_scq_urings() should return a sane state
+ - cdrom: respect device capabilities during opening action
+ - cifs: move cifsFileInfo_put logic into a work-queue
+ - perf diff: Use llabs() with 64-bit values
+ - 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] unwind: filter out unreliable bogus %r14
+ - [s390x] cpum_sf: Check for SDBT and SDB consistency
+ - ocfs2: fix passing zero to 'PTR_ERR' warning
+ - [s390x] disable preemption when switching to nodat stack with
+ CALL_ON_STACK
+ - mm/hugetlbfs: fix error handling when setting up mounts
+ - kernel: sysctl: make drop_caches write-only
+ - userfaultfd: require CAP_SYS_PTRACE for UFFD_FEATURE_EVENT_FORK
+ - sctp: fix err handling of stream initialization
+ - md: make sure desc_nr less than MD_SB_DISKS
+ - Revert "iwlwifi: assign directly to iwl_trans->cfg in QuZ detection"
+ - netfilter: ebtables: compat: reject all padding in matches/watchers
+ - 6pack,mkiss: fix possible deadlock
+ - [powerpc*] Fix __clear_user() with KUAP enabled
+ - net/smc: add fallback check to connect()
+ - 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
+ - tomoyo: Don't use nifty names on sockets.
+ - uaccess: disallow > INT_MAX copy sizes
+ - drm: limit to INT_MAX in create_blob ioctl
+ - xfs: fix mount failure crash on invalid iclog memory access
+ - cxgb4/cxgb4vf: fix flow control display for auto negotiation
+ - [armhf] net: dsa: bcm_sf2: Fix IP fragment location and behavior
+ - net/mlxfw: Fix out-of-memory error in mfa2 flash burning
+ - net: phy: aquantia: add suspend / resume ops for AQR105
+ - net/sched: act_mirred: Pull mac prior redir to non mac_header_xmit
+ device
+ - net/sched: add delete_empty() to filters and use it in cls_flower
+ - net_sched: sch_fq: properly set sk->sk_pacing_status
+ - [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
+ - bnxt_en: Fix MSIX request logic for RDMA driver.
+ - bnxt_en: Free context memory in the open path if firmware has been
+ reset.
+ - bnxt_en: Return error if FW returns more data than dump length
+ - bnxt_en: Fix bp->fw_health allocation and free logic.
+ - bnxt_en: Remove unnecessary NULL checks for fw_health
+ - bnxt_en: Fix the logic that creates the health reporters.
+ - bnxt_en: Add missing devlink health reporters for VFs.
+ - 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
+ - [arm64,armhf] net: marvell: mvpp2: phylink requires the link interrupt
+ - gtp: fix wrong condition in gtp_genl_dump_pdp()
+ - gtp: avoid zero size hashtable
+ - bonding: fix active-backup transition after link failure
+ - tcp: do not send empty skb from tcp_write_xmit()
+ - tcp/dccp: fix possible race __inet_lookup_established()
+ - [x86] hv_netvsc: Fix tx_table init in rndis_set_subchannel()
+ - gtp: fix an use-after-free in ipv4_pdp_find()
+ - gtp: do not allow adding duplicate tid and ms_addr pdp context
+ - bnxt: apply computed clamp value for coalece parameter
+ - ipv6/addrconf: only check invalid header values when
+ NETLINK_F_STRICT_CHK is set
+ - [arm64,armhf] net: phylink: fix interface passed to mac_link_up
+ - net: ena: fix napi handler misbehavior when the napi budget is zero
+ - vhost/vsock: accept only packets with the right dst_cid
+ - mm/hugetlbfs: fix for_each_hstate() loop in init_hugetlbfs_fs()
+
+ [ Salvatore Bonaccorso ]
+ * debian/lib/python/debian_linux/abi.py: Add one missing string replacement.
+ * debian/lib/python/debian_linux/abi.py: strip whitespace characters in
+ line.
+ * [rt] Refresh lib-ubsan-Don-t-seralize-UBSAN-report.patch for context
+ changes in 5.4.7
+ * [rt] Drop x86-ioapic-Prevent-inconsistent-state-when-moving-an.patch
+ * Enable EROFS filesystem support as module.
+ Enable EROFS_FS as module, enable EROFS_FS_XATTR, EROFS_FS_POSIX_ACL,
+ EROFS_FS_SECURITY, EROFS_FS_ZIP and EROFS_FS_CLUSTER_PAGE_LIMIT.
+ Thanks to Gao Xiang <gaoxiang25@huawei.com> (Closes: #946569)
+ * Enable additional netfilter modules.
+ Enable NFT_BRIDGE_META, NF_CONNTRACK_BRIDGE, IP6_NF_MATCH_SRH, NFT_XFRM
+ and NFT_SYNPROXY as modules.
+ Thanks to Arturo Borrero Gonzalez (Closes: #948031)
+ * [rt] Drop watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch
+ * [rt] Refresh Use-CONFIG_PREEMPTION.patch (Context changes in 5.4.8)
+ * Bump ABI to 2
[ YunQiang Su ]
* [mips*/octeon] Fix ftbfs on mips* due to octeon image-file:
move "image-file: linux" to octeon_build from octeon_image.
- -- YunQiang Su <syq@debian.org> Mon, 30 Dec 2019 17:47:51 +0800
+ -- Salvatore Bonaccorso <carnil@debian.org> Sun, 05 Jan 2020 15:40:37 +0100
linux (5.4.6-1) unstable; urgency=medium
diff --git a/debian/config/config b/debian/config/config
index 17a2059e5180..5451ab4764a5 100644
--- a/debian/config/config
+++ b/debian/config/config
@@ -5815,6 +5815,17 @@ CONFIG_EFIVAR_FS=m
CONFIG_EFS_FS=m
##
+## file: fs/erofs/Kconfig
+##
+CONFIG_EROFS_FS=m
+# CONFIG_EROFS_FS_DEBUG is not set
+CONFIG_EROFS_FS_XATTR=y
+CONFIG_EROFS_FS_POSIX_ACL=y
+CONFIG_EROFS_FS_SECURITY=y
+CONFIG_EROFS_FS_ZIP=y
+CONFIG_EROFS_FS_CLUSTER_PAGE_LIMIT=1
+
+##
## file: fs/ext2/Kconfig
##
# CONFIG_EXT2_FS is not set
@@ -6779,8 +6790,10 @@ CONFIG_BRIDGE_VLAN_FILTERING=y
## file: net/bridge/netfilter/Kconfig
##
CONFIG_NF_TABLES_BRIDGE=y
+CONFIG_NFT_BRIDGE_META=m
CONFIG_NFT_BRIDGE_REJECT=m
CONFIG_NF_LOG_BRIDGE=m
+CONFIG_NF_CONNTRACK_BRIDGE=m
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
CONFIG_BRIDGE_EBT_T_FILTER=m
@@ -7019,6 +7032,7 @@ 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_MATCH_SRH=m
CONFIG_IP6_NF_TARGET_HL=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
@@ -7143,9 +7157,11 @@ CONFIG_NFT_REJECT=m
CONFIG_NFT_COMPAT=m
CONFIG_NFT_HASH=m
CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_XFRM=m
CONFIG_NFT_SOCKET=m
CONFIG_NFT_OSF=m
CONFIG_NFT_TPROXY=m
+CONFIG_NFT_SYNPROXY=m
CONFIG_NF_DUP_NETDEV=m
CONFIG_NFT_DUP_NETDEV=m
CONFIG_NFT_FWD_NETDEV=m
diff --git a/debian/config/defines b/debian/config/defines
index 1d4b534c0064..3f8bb30f6c76 100644
--- a/debian/config/defines
+++ b/debian/config/defines
@@ -1,5 +1,5 @@
[abi]
-abiname: 1
+abiname: 2
ignore-changes:
__cpuhp_*
bpf_analyzer
diff --git a/debian/lib/python/debian_linux/abi.py b/debian/lib/python/debian_linux/abi.py
index ab6feb53956c..c3ca9704045c 100644
--- a/debian/lib/python/debian_linux/abi.py
+++ b/debian/lib/python/debian_linux/abi.py
@@ -35,10 +35,10 @@ class Symbols(dict):
def read(self, file):
for line in file:
- version, name, namespace, module, export = line.split('\t')
+ version, name, namespace, module, export = line.strip().split('\t')
self[name] = Symbol(name, namespace, module, version, export)
def write(self, file):
for s in sorted(self.values(), key=lambda i: i.name):
- file.write("%s\t%s\t%s\t%s\n" %
+ file.write("%s\t%s\t%s\t%s\t%s\n" %
(s.version, s.name, s.namespace, s.module, s.export))
diff --git a/debian/patches-rt/Use-CONFIG_PREEMPTION.patch b/debian/patches-rt/Use-CONFIG_PREEMPTION.patch
index 543337c4ad1f..03816921d7e1 100644
--- a/debian/patches-rt/Use-CONFIG_PREEMPTION.patch
+++ b/debian/patches-rt/Use-CONFIG_PREEMPTION.patch
@@ -6,6 +6,9 @@ Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.4/older/patches-5.
Thisi is an all-in-one patch of the current `PREEMPTION' branch.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+[Salvatore Bonaccorso: Refresh for context changes in 5.4.8 in
+arch/powerpc/kernel/traps.c due to d7e02f7b7991 ("powerpc/book3s/mm: Update
+Oops message to print the correct translation in use")]
---
Documentation/RCU/Design/Expedited-Grace-Periods/Expedited-Grace-Periods.html | 8 -
Documentation/RCU/Design/Requirements/Requirements.html | 24 ++--
@@ -84,7 +87,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
--- a/Documentation/RCU/Design/Expedited-Grace-Periods/Expedited-Grace-Periods.html
+++ b/Documentation/RCU/Design/Expedited-Grace-Periods/Expedited-Grace-Periods.html
-@@ -56,8 +56,8 @@ sections.
+@@ -56,8 +56,8 @@
RCU-preempt Expedited Grace Periods</a></h2>
<p>
@@ -95,7 +98,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
expedited grace period is shown in the following diagram:
<p><img src="ExpRCUFlow.svg" alt="ExpRCUFlow.svg" width="55%">
-@@ -140,8 +140,8 @@ or offline, among other things.
+@@ -140,8 +140,8 @@
RCU-sched Expedited Grace Periods</a></h2>
<p>
@@ -108,7 +111,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
<p><img src="ExpSchedFlow.svg" alt="ExpSchedFlow.svg" width="55%">
--- a/Documentation/RCU/Design/Requirements/Requirements.html
+++ b/Documentation/RCU/Design/Requirements/Requirements.html
-@@ -106,7 +106,7 @@ big RCU read-side critical section.
+@@ -106,7 +106,7 @@
Production-quality implementations of <tt>rcu_read_lock()</tt> and
<tt>rcu_read_unlock()</tt> are extremely lightweight, and in
fact have exactly zero overhead in Linux kernels built for production
@@ -117,7 +120,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
<p>
This guarantee allows ordering to be enforced with extremely low
-@@ -1499,7 +1499,7 @@ costs have plummeted.
+@@ -1499,7 +1499,7 @@
However, as I learned from Matt Mackall's
<a href="http://elinux.org/Linux_Tiny-FAQ">bloatwatch</a>
efforts, memory footprint is critically important on single-CPU systems with
@@ -126,7 +129,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
<a href="https://lkml.kernel.org/g/20090113221724.GA15307@linux.vnet.ibm.com">tiny RCU</a>
was born.
Josh Triplett has since taken over the small-memory banner with his
-@@ -1887,7 +1887,7 @@ constructs, there are limitations.
+@@ -1887,7 +1887,7 @@
<p>
Implementations of RCU for which <tt>rcu_read_lock()</tt>
and <tt>rcu_read_unlock()</tt> generate no code, such as
@@ -135,7 +138,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
nested arbitrarily deeply.
After all, there is no overhead.
Except that if all these instances of <tt>rcu_read_lock()</tt>
-@@ -2229,7 +2229,7 @@ be a no-op.
+@@ -2229,7 +2229,7 @@
<p>
However, once the scheduler has spawned its first kthread, this early
boot trick fails for <tt>synchronize_rcu()</tt> (as well as for
@@ -144,7 +147,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
kernels.
The reason is that an RCU read-side critical section might be preempted,
which means that a subsequent <tt>synchronize_rcu()</tt> really does have
-@@ -2568,7 +2568,7 @@ The compiler must not be permitted to tr
+@@ -2568,7 +2568,7 @@
<p>
If the compiler did make this transformation in a
@@ -153,7 +156,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
page fault, the result would be a quiescent state in the middle
of an RCU read-side critical section.
This misplaced quiescent state could result in line&nbsp;4 being
-@@ -2906,7 +2906,7 @@ in conjunction with the
+@@ -2906,7 +2906,7 @@
The real-time-latency response requirements are such that the
traditional approach of disabling preemption across RCU
read-side critical sections is inappropriate.
@@ -162,7 +165,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
use an RCU implementation that allows RCU read-side critical
sections to be preempted.
This requirement made its presence known after users made it
-@@ -3064,7 +3064,7 @@ includes
+@@ -3064,7 +3064,7 @@
<tt>rcu_barrier_bh()</tt>, and
<tt>rcu_read_lock_bh_held()</tt>.
However, the update-side APIs are now simple wrappers for other RCU
@@ -171,7 +174,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
otherwise.
<h3><a name="Sched Flavor">Sched Flavor (Historical)</a></h3>
-@@ -3088,12 +3088,12 @@ of an RCU read-side critical section can
+@@ -3088,12 +3088,12 @@
Therefore, <i>RCU-sched</i> was created, which follows &ldquo;classic&rdquo;
RCU in that an RCU-sched grace period waits for for pre-existing
interrupt and NMI handlers.
@@ -187,7 +190,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
<tt>rcu_read_lock_sched()</tt> and <tt>rcu_read_unlock_sched()</tt>
disable and re-enable preemption, respectively.
This means that if there was a preemption attempt during the
-@@ -3302,12 +3302,12 @@ The tasks-RCU API is quite compact, cons
+@@ -3302,12 +3302,12 @@
<tt>call_rcu_tasks()</tt>,
<tt>synchronize_rcu_tasks()</tt>, and
<tt>rcu_barrier_tasks()</tt>.
@@ -204,7 +207,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
--- a/Documentation/RCU/checklist.txt
+++ b/Documentation/RCU/checklist.txt
-@@ -210,8 +210,8 @@ over a rather long period of time, but i
+@@ -210,8 +210,8 @@
the rest of the system.
7. As of v4.20, a given kernel implements only one RCU flavor,
@@ -217,7 +220,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
or any pair of primitives that disables and re-enables preemption,
--- a/Documentation/RCU/rcubarrier.txt
+++ b/Documentation/RCU/rcubarrier.txt
-@@ -6,8 +6,8 @@ RCU (read-copy update) is a synchronizat
+@@ -6,8 +6,8 @@
of as a replacement for read-writer locking (among other things), but with
very low-overhead readers that are immune to deadlock, priority inversion,
and unbounded latency. RCU read-side critical sections are delimited
@@ -228,7 +231,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
This means that RCU writers are unaware of the presence of concurrent
readers, so that RCU updates to shared data must be undertaken quite
-@@ -303,10 +303,10 @@ Answer: This cannot happen. The reason i
+@@ -303,10 +303,10 @@
to smp_call_function() and further to smp_call_function_on_cpu(),
causing this latter to spin until the cross-CPU invocation of
rcu_barrier_func() has completed. This by itself would prevent
@@ -243,7 +246,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
to smp_call_function() and also across the local call to
--- a/Documentation/RCU/stallwarn.txt
+++ b/Documentation/RCU/stallwarn.txt
-@@ -20,7 +20,7 @@ o A CPU looping with preemption disabled
+@@ -20,7 +20,7 @@
o A CPU looping with bottom halves disabled.
@@ -252,7 +255,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
without invoking schedule(). If the looping in the kernel is
really expected and desirable behavior, you might need to add
some calls to cond_resched().
-@@ -39,7 +39,7 @@ o Anything that prevents RCU's grace-per
+@@ -39,7 +39,7 @@
result in the "rcu_.*kthread starved for" console-log message,
which will include additional debugging information.
@@ -263,7 +266,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
that low-priority task is not permitted to run on any other CPU,
--- a/Documentation/RCU/whatisRCU.txt
+++ b/Documentation/RCU/whatisRCU.txt
-@@ -648,9 +648,10 @@ Quick Quiz #1: Why is this argument naiv
+@@ -648,9 +648,10 @@
This section presents a "toy" RCU implementation that is based on
"classic RCU". It is also short on performance (but only for updates) and
@@ -279,7 +282,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
--- a/Documentation/trace/ftrace-uses.rst
+++ b/Documentation/trace/ftrace-uses.rst
-@@ -146,7 +146,7 @@ FTRACE_OPS_FL_RECURSION_SAFE
+@@ -146,7 +146,7 @@
itself or any nested functions that those functions call.
If this flag is set, it is possible that the callback will also
@@ -290,7 +293,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
FTRACE_OPS_FL_IPMODIFY
--- a/arch/arc/kernel/entry.S
+++ b/arch/arc/kernel/entry.S
-@@ -337,11 +337,11 @@ ENTRY(ret_from_exception)
+@@ -337,11 +337,11 @@
resume_kernel_mode:
; Disable Interrupts from this point on
@@ -318,7 +321,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
#define __complete_pending_tlbi()
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
-@@ -211,7 +211,7 @@ ENDPROC(__dabt_svc)
+@@ -211,7 +211,7 @@
svc_entry
irq_handler
@@ -327,7 +330,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
ldr r8, [tsk, #TI_PREEMPT] @ get preempt count
ldr r0, [tsk, #TI_FLAGS] @ get flags
teq r8, #0 @ if preempt count != 0
-@@ -226,7 +226,7 @@ ENDPROC(__irq_svc)
+@@ -226,7 +226,7 @@
.ltorg
@@ -338,7 +341,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1: bl preempt_schedule_irq @ irq en/disable is done inside
--- a/arch/arm/kernel/traps.c
+++ b/arch/arm/kernel/traps.c
-@@ -248,6 +248,8 @@ void show_stack(struct task_struct *tsk,
+@@ -248,6 +248,8 @@
#ifdef CONFIG_PREEMPT
#define S_PREEMPT " PREEMPT"
@@ -349,7 +352,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
#endif
--- a/arch/arm/mm/cache-v7.S
+++ b/arch/arm/mm/cache-v7.S
-@@ -135,13 +135,13 @@ ENTRY(v7_flush_dcache_all)
+@@ -135,13 +135,13 @@
and r1, r1, #7 @ mask of the bits for current cache only
cmp r1, #2 @ see what cache we have at this level
blt skip @ skip if no cache, or just i-cache
@@ -367,7 +370,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
and r2, r1, #7 @ extract the length of the cache lines
--- a/arch/arm/mm/cache-v7m.S
+++ b/arch/arm/mm/cache-v7m.S
-@@ -183,13 +183,13 @@ ENTRY(v7m_flush_dcache_all)
+@@ -183,13 +183,13 @@
and r1, r1, #7 @ mask of the bits for current cache only
cmp r1, #2 @ see what cache we have at this level
blt skip @ skip if no cache, or just i-cache
@@ -385,7 +388,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
and r2, r1, #7 @ extract the length of the cache lines
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
-@@ -35,32 +35,32 @@ config ARM64
+@@ -35,32 +35,32 @@
select ARCH_HAS_TEARDOWN_DMA_OPS if IOMMU_SUPPORT
select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
select ARCH_HAVE_NMI_SAFE_CMPXCHG
@@ -446,7 +449,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
select ARCH_USE_QUEUED_RWLOCKS
--- a/arch/arm64/crypto/sha256-glue.c
+++ b/arch/arm64/crypto/sha256-glue.c
-@@ -97,7 +97,7 @@ static int sha256_update_neon(struct sha
+@@ -97,7 +97,7 @@
* input when running on a preemptible kernel, but process the
* data block by block instead.
*/
@@ -457,7 +460,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
sctx->count % SHA256_BLOCK_SIZE;
--- a/arch/arm64/include/asm/assembler.h
+++ b/arch/arm64/include/asm/assembler.h
-@@ -699,8 +699,8 @@ USER(\label, ic ivau, \tmp2) // invali
+@@ -699,8 +699,8 @@
* where <label> is optional, and marks the point where execution will resume
* after a yield has been performed. If omitted, execution resumes right after
* the endif_yield_neon invocation. Note that the entire sequence, including
@@ -468,7 +471,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
*
* As a convenience, in the case where no patchup code is required, the above
* sequence may be abbreviated to
-@@ -728,7 +728,7 @@ USER(\label, ic ivau, \tmp2) // invali
+@@ -728,7 +728,7 @@
.endm
.macro if_will_cond_yield_neon
@@ -479,7 +482,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
sub x0, x0, #PREEMPT_DISABLE_OFFSET
--- a/arch/arm64/include/asm/preempt.h
+++ b/arch/arm64/include/asm/preempt.h
-@@ -79,11 +79,11 @@ static inline bool should_resched(int pr
+@@ -79,11 +79,11 @@
return pc == preempt_offset;
}
@@ -495,7 +498,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
#endif /* __ASM_PREEMPT_H */
--- a/arch/arm64/kernel/entry.S
+++ b/arch/arm64/kernel/entry.S
-@@ -669,7 +669,7 @@ ENDPROC(el1_sync)
+@@ -669,7 +669,7 @@
irq_handler
@@ -506,7 +509,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
/*
--- a/arch/arm64/kernel/traps.c
+++ b/arch/arm64/kernel/traps.c
-@@ -143,9 +143,12 @@ void show_stack(struct task_struct *tsk,
+@@ -143,9 +143,12 @@
#ifdef CONFIG_PREEMPT
#define S_PREEMPT " PREEMPT"
@@ -539,7 +542,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
MASK_INT B2
#endif
-@@ -557,7 +557,7 @@ ENDPROC(_nmi_handler)
+@@ -557,7 +557,7 @@
;;
;; Jump to schedule() then return to ret_from_isr
;;
@@ -548,7 +551,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
resume_kernel:
GET_THREAD_INFO A12
LDW .D1T1 *+A12(THREAD_INFO_PREEMPT_COUNT),A1
-@@ -582,7 +582,7 @@ ENDPROC(_nmi_handler)
+@@ -582,7 +582,7 @@
B .S2 preempt_schedule_irq
#endif
ADDKPC .S2 preempt_schedule,B3,4
@@ -559,7 +562,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
DINT
--- a/arch/csky/kernel/entry.S
+++ b/arch/csky/kernel/entry.S
-@@ -277,7 +277,7 @@ ENTRY(csky_irq)
+@@ -277,7 +277,7 @@
zero_fp
psrset ee
@@ -568,7 +571,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
mov r9, sp /* Get current stack pointer */
bmaski r10, THREAD_SHIFT
andn r9, r10 /* Get thread_info */
-@@ -294,7 +294,7 @@ ENTRY(csky_irq)
+@@ -294,7 +294,7 @@
mov a0, sp
jbsr csky_do_IRQ
@@ -579,7 +582,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
cmpnei r12, 0
--- a/arch/h8300/kernel/entry.S
+++ b/arch/h8300/kernel/entry.S
-@@ -284,12 +284,12 @@ INTERRUPTS = 128
+@@ -284,12 +284,12 @@
mov.l er0,@(LER0:16,sp)
bra resume_userspace
@@ -594,7 +597,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
orc #0xc0,ccr
#endif
ret_from_interrupt:
-@@ -319,7 +319,7 @@ INTERRUPTS = 128
+@@ -319,7 +319,7 @@
restore_all:
RESTORE_ALL /* Does RTE */
@@ -623,7 +626,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
#endif
--- a/arch/ia64/kernel/entry.S
+++ b/arch/ia64/kernel/entry.S
-@@ -670,12 +670,12 @@ GLOBAL_ENTRY(ia64_leave_syscall)
+@@ -670,12 +670,12 @@
*
* p6 controls whether current_thread_info()->flags needs to be check for
* extra work. We always check for extra work when returning to user-level.
@@ -638,7 +641,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
RSM_PSR_I(p0, r2, r18) // disable interrupts
cmp.eq pLvSys,p0=r0,r0 // pLvSys=1: leave from syscall
(pKStk) adds r20=TI_PRE_COUNT+IA64_TASK_SIZE,r13
-@@ -685,7 +685,7 @@ GLOBAL_ENTRY(ia64_leave_syscall)
+@@ -685,7 +685,7 @@
(pUStk) mov r21=0 // r21 <- 0
;;
cmp.eq p6,p0=r21,r0 // p6 <- pUStk || (preempt_count == 0)
@@ -647,7 +650,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
RSM_PSR_I(pUStk, r2, r18)
cmp.eq pLvSys,p0=r0,r0 // pLvSys=1: leave from syscall
(pUStk) cmp.eq.unc p6,p0=r0,r0 // p6 <- pUStk
-@@ -814,12 +814,12 @@ GLOBAL_ENTRY(ia64_leave_kernel)
+@@ -814,12 +814,12 @@
*
* p6 controls whether current_thread_info()->flags needs to be check for
* extra work. We always check for extra work when returning to user-level.
@@ -662,7 +665,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
RSM_PSR_I(p0, r17, r31) // disable interrupts
cmp.eq p0,pLvSys=r0,r0 // pLvSys=0: leave from kernel
(pKStk) adds r20=TI_PRE_COUNT+IA64_TASK_SIZE,r13
-@@ -1120,7 +1120,7 @@ GLOBAL_ENTRY(ia64_leave_kernel)
+@@ -1120,7 +1120,7 @@
/*
* On entry:
@@ -673,7 +676,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
* p6 = TRUE if work-pending-check needs to be redone
--- a/arch/ia64/kernel/kprobes.c
+++ b/arch/ia64/kernel/kprobes.c
-@@ -841,7 +841,7 @@ static int __kprobes pre_kprobes_handler
+@@ -841,7 +841,7 @@
return 1;
}
@@ -684,7 +687,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
ia64_psr(regs)->ri = p->ainsn.slot;
--- a/arch/m68k/coldfire/entry.S
+++ b/arch/m68k/coldfire/entry.S
-@@ -108,7 +108,7 @@ ENTRY(system_call)
+@@ -108,7 +108,7 @@
btst #5,%sp@(PT_OFF_SR) /* check if returning to kernel */
jeq Luser_return /* if so, skip resched, signals */
@@ -695,7 +698,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
movel %d1,%a0
--- a/arch/microblaze/kernel/entry.S
+++ b/arch/microblaze/kernel/entry.S
-@@ -728,7 +728,7 @@ irq_call:rtbd r0, do_IRQ;
+@@ -728,7 +728,7 @@
bri 6f;
/* MS: Return to kernel state. */
2:
@@ -744,7 +747,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
FEXPORT(ret_from_exception)
local_irq_disable # preempt stop
b __ret_from_irq
-@@ -53,7 +53,7 @@ FEXPORT(__ret_from_irq)
+@@ -53,7 +53,7 @@
bnez t0, work_pending
j restore_all
@@ -755,7 +758,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
lw t0, TI_PRE_COUNT($28)
--- a/arch/nds32/Kconfig
+++ b/arch/nds32/Kconfig
-@@ -61,7 +61,7 @@ config GENERIC_HWEIGHT
+@@ -61,7 +61,7 @@
config GENERIC_LOCKBREAK
def_bool y
@@ -775,7 +778,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
.macro preempt_stop
.endm
#else
-@@ -158,7 +158,7 @@ ENTRY(ret_slow_syscall)
+@@ -158,7 +158,7 @@
/*
* preemptive kernel
*/
@@ -786,7 +789,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
lwi $t0, [tsk+#TSK_TI_PREEMPT]
--- a/arch/nios2/kernel/entry.S
+++ b/arch/nios2/kernel/entry.S
-@@ -365,7 +365,7 @@ ENTRY(ret_from_interrupt)
+@@ -365,7 +365,7 @@
ldw r1, PT_ESTATUS(sp) /* check if returning to kernel */
TSTBNZ r1, r1, ESTATUS_EU, Luser_return
@@ -797,7 +800,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
bne r4, r0, restore_all
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
-@@ -81,7 +81,7 @@ config STACK_GROWSUP
+@@ -81,7 +81,7 @@
config GENERIC_LOCKBREAK
bool
default y
@@ -808,7 +811,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
bool
--- a/arch/parisc/kernel/entry.S
+++ b/arch/parisc/kernel/entry.S
-@@ -940,14 +940,14 @@ ENTRY(intr_return)
+@@ -940,14 +940,14 @@
rfi
nop
@@ -826,7 +829,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
* we jump back to intr_restore.
*/
LDREG PT_IASQ0(%r16), %r20
-@@ -979,7 +979,7 @@ ENTRY(intr_return)
+@@ -979,7 +979,7 @@
* and preempt_count is 0. otherwise, we continue on
* our merry way back to the current running task.
*/
@@ -835,7 +838,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
.import preempt_schedule_irq,code
intr_do_preempt:
rsm PSW_SM_I, %r0 /* disable interrupts */
-@@ -999,7 +999,7 @@ ENTRY(intr_return)
+@@ -999,7 +999,7 @@
nop
b,n intr_restore /* ssm PSW_SM_I done by intr_restore */
@@ -846,7 +849,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
* External interrupts.
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
-@@ -106,7 +106,7 @@ config LOCKDEP_SUPPORT
+@@ -106,7 +106,7 @@
config GENERIC_LOCKBREAK
bool
default y
@@ -857,7 +860,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
bool
--- a/arch/powerpc/kernel/entry_32.S
+++ b/arch/powerpc/kernel/entry_32.S
-@@ -897,7 +897,7 @@ user_exc_return: /* r10 contains MSR_KE
+@@ -897,7 +897,7 @@
bne- 0b
1:
@@ -866,7 +869,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
/* check current_thread_info->preempt_count */
lwz r0,TI_PREEMPT(r2)
cmpwi 0,r0,0 /* if non-zero, just restore regs and return */
-@@ -921,7 +921,7 @@ user_exc_return: /* r10 contains MSR_KE
+@@ -921,7 +921,7 @@
*/
bl trace_hardirqs_on
#endif
@@ -877,7 +880,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
--- a/arch/powerpc/kernel/entry_64.S
+++ b/arch/powerpc/kernel/entry_64.S
-@@ -846,7 +846,7 @@ END_FTR_SECTION_IFCLR(CPU_FTR_ARCH_207S)
+@@ -846,7 +846,7 @@
bne- 0b
1:
@@ -886,7 +889,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
/* Check if we need to preempt */
andi. r0,r4,_TIF_NEED_RESCHED
beq+ restore
-@@ -877,7 +877,7 @@ END_FTR_SECTION_IFCLR(CPU_FTR_ARCH_207S)
+@@ -877,7 +877,7 @@
li r10,MSR_RI
mtmsrd r10,1 /* Update machine state */
#endif /* CONFIG_PPC_BOOK3E */
@@ -897,7 +900,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
fast_exc_return_irq:
--- a/arch/powerpc/kernel/traps.c
+++ b/arch/powerpc/kernel/traps.c
-@@ -251,14 +251,19 @@ NOKPROBE_SYMBOL(oops_end);
+@@ -260,12 +260,16 @@
static int __die(const char *str, struct pt_regs *regs, long err)
{
@@ -907,12 +910,9 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+ if (IS_ENABLED(CONFIG_PREEMPTION))
+ pr = IS_ENABLED(CONFIG_PREEMPT_RT) ? " PREEMPT_RT" : " PREEMPT";
-+
- printk("%s PAGE_SIZE=%luK%s%s%s%s%s%s%s %s\n",
+ printk("%s PAGE_SIZE=%luK%s%s%s%s%s%s %s\n",
IS_ENABLED(CONFIG_CPU_LITTLE_ENDIAN) ? "LE" : "BE",
- PAGE_SIZE / 1024,
- early_radix_enabled() ? " MMU=Radix" : "",
- early_mmu_has_feature(MMU_FTR_HPTE_TABLE) ? " MMU=Hash" : "",
+ PAGE_SIZE / 1024, get_mmu_str(),
- IS_ENABLED(CONFIG_PREEMPT) ? " PREEMPT" : "",
+ pr,
IS_ENABLED(CONFIG_SMP) ? " SMP" : "",
@@ -929,7 +929,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
.set resume_kernel, restore_all
#endif
-@@ -269,7 +269,7 @@ ENTRY(handle_exception)
+@@ -269,7 +269,7 @@
RESTORE_ALL
sret
@@ -940,7 +940,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
bnez s0, restore_all
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
-@@ -30,7 +30,7 @@ config GENERIC_BUG_RELATIVE_POINTERS
+@@ -30,7 +30,7 @@
def_bool y
config GENERIC_LOCKBREAK
@@ -951,7 +951,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
def_bool y if KVM
--- a/arch/s390/include/asm/preempt.h
+++ b/arch/s390/include/asm/preempt.h
-@@ -130,11 +130,11 @@ static inline bool should_resched(int pr
+@@ -130,11 +130,11 @@
#endif /* CONFIG_HAVE_MARCH_Z196_FEATURES */
@@ -967,7 +967,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
#endif /* __ASM_PREEMPT_H */
--- a/arch/s390/kernel/dumpstack.c
+++ b/arch/s390/kernel/dumpstack.c
-@@ -194,6 +194,8 @@ void die(struct pt_regs *regs, const cha
+@@ -194,6 +194,8 @@
regs->int_code >> 17, ++die_counter);
#ifdef CONFIG_PREEMPT
pr_cont("PREEMPT ");
@@ -978,7 +978,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
if (debug_pagealloc_enabled())
--- a/arch/s390/kernel/entry.S
+++ b/arch/s390/kernel/entry.S
-@@ -790,7 +790,7 @@ ENTRY(io_int_handler)
+@@ -790,7 +790,7 @@
.Lio_work:
tm __PT_PSW+1(%r11),0x01 # returning to user ?
jo .Lio_work_user # yes -> do resched & signal
@@ -989,7 +989,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
jnz .Lio_restore # preemption is disabled
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
-@@ -108,7 +108,7 @@ config GENERIC_CALIBRATE_DELAY
+@@ -108,7 +108,7 @@
config GENERIC_LOCKBREAK
def_bool y
@@ -1009,7 +1009,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
# define preempt_stop() CLI()
#else
# define preempt_stop()
-@@ -884,7 +884,7 @@ LRESVEC_block_end: /* Marker. Unused.
+@@ -884,7 +884,7 @@
/* Check softirqs */
@@ -1029,7 +1029,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
# define preempt_stop() cli ; TRACE_IRQS_OFF
#else
# define preempt_stop()
-@@ -84,7 +84,7 @@ ENTRY(ret_from_irq)
+@@ -84,7 +84,7 @@
get_current_thread_info r8, r0
bt resume_kernel ! Yes, it's from kernel, go back soon
@@ -1040,7 +1040,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
ENTRY(resume_kernel)
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
-@@ -277,7 +277,7 @@ config US3_MC
+@@ -277,7 +277,7 @@
config GENERIC_LOCKBREAK
bool
default y
@@ -1051,7 +1051,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
bool "NUMA support"
--- a/arch/sparc/kernel/rtrap_64.S
+++ b/arch/sparc/kernel/rtrap_64.S
-@@ -310,7 +310,7 @@ kern_rtt: rdpr %canrestore, %g1
+@@ -310,7 +310,7 @@
retry
to_kernel:
@@ -1062,7 +1062,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
ldx [%g6 + TI_FLAGS], %l5
--- a/arch/xtensa/kernel/entry.S
+++ b/arch/xtensa/kernel/entry.S
-@@ -520,7 +520,7 @@ ENTRY(kernel_exception)
+@@ -520,7 +520,7 @@
call4 schedule # void schedule (void)
j 1b
@@ -1073,7 +1073,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
--- a/arch/xtensa/kernel/traps.c
+++ b/arch/xtensa/kernel/traps.c
-@@ -524,12 +524,15 @@ DEFINE_SPINLOCK(die_lock);
+@@ -524,12 +524,15 @@
void die(const char * str, struct pt_regs * regs, long err)
{
static int die_counter;
@@ -1093,7 +1093,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
show_stack(NULL, (unsigned long*)regs->areg[1]);
--- a/drivers/gpu/drm/Kconfig
+++ b/drivers/gpu/drm/Kconfig
-@@ -397,7 +397,7 @@ config DRM_R128
+@@ -397,7 +397,7 @@
config DRM_I810
tristate "Intel I810"
@@ -1104,7 +1104,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Choose this option if you have an Intel I810 graphics card. If M is
--- a/drivers/media/platform/Kconfig
+++ b/drivers/media/platform/Kconfig
-@@ -585,7 +585,7 @@ config VIDEO_MESON_G12A_AO_CEC
+@@ -585,7 +585,7 @@
config CEC_GPIO
tristate "Generic GPIO-based CEC driver"
@@ -1115,7 +1115,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
select GPIOLIB
--- a/drivers/video/backlight/Kconfig
+++ b/drivers/video/backlight/Kconfig
-@@ -99,7 +99,7 @@ config LCD_TOSA
+@@ -99,7 +99,7 @@
config LCD_HP700
tristate "HP Jornada 700 series LCD Driver"
@@ -1124,7 +1124,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
default y
help
If you have an HP Jornada 700 series handheld (710/720/728)
-@@ -228,7 +228,7 @@ config BACKLIGHT_HP680
+@@ -228,7 +228,7 @@
config BACKLIGHT_HP700
tristate "HP Jornada 700 series Backlight Driver"
@@ -1144,7 +1144,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
/*
* Some hypercalls issued by the toolstack can take many 10s of
-@@ -37,4 +37,4 @@ asmlinkage __visible void xen_maybe_pree
+@@ -37,4 +37,4 @@
__this_cpu_write(xen_in_preemptible_hcall, true);
}
}
@@ -1152,7 +1152,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+#endif /* CONFIG_PREEMPTION */
--- a/fs/btrfs/volumes.h
+++ b/fs/btrfs/volumes.h
-@@ -179,7 +179,7 @@ btrfs_device_set_##name(struct btrfs_dev
+@@ -179,7 +179,7 @@
write_seqcount_end(&dev->data_seqcount); \
preempt_enable(); \
}
@@ -1163,7 +1163,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
btrfs_device_get_##name(const struct btrfs_device *dev) \
--- a/fs/stack.c
+++ b/fs/stack.c
-@@ -23,7 +23,7 @@ void fsstack_copy_inode_size(struct inod
+@@ -23,7 +23,7 @@
/*
* But on 32-bit, we ought to make an effort to keep the two halves of
@@ -1172,7 +1172,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
* generic_fillattr() doesn't bother, and we won't be applying quotas
* (where i_blocks does become important) at the upper level.
*
-@@ -38,14 +38,14 @@ void fsstack_copy_inode_size(struct inod
+@@ -38,14 +38,14 @@
spin_unlock(&src->i_lock);
/*
@@ -1191,7 +1191,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
* There is none of this locking overhead in the 64-bit case.
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
-@@ -855,7 +855,7 @@ static inline loff_t i_size_read(const s
+@@ -855,7 +855,7 @@
i_size = inode->i_size;
} while (read_seqcount_retry(&inode->i_size_seqcount, seq));
return i_size;
@@ -1200,7 +1200,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
loff_t i_size;
preempt_disable();
-@@ -880,7 +880,7 @@ static inline void i_size_write(struct i
+@@ -880,7 +880,7 @@
inode->i_size = i_size;
write_seqcount_end(&inode->i_size_seqcount);
preempt_enable();
@@ -1211,7 +1211,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
preempt_enable();
--- a/include/linux/genhd.h
+++ b/include/linux/genhd.h
-@@ -717,7 +717,7 @@ static inline void hd_free_part(struct h
+@@ -717,7 +717,7 @@
* accessor function.
*
* Code written along the lines of i_size_read() and i_size_write().
@@ -1220,7 +1220,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
* on.
*/
static inline sector_t part_nr_sects_read(struct hd_struct *part)
-@@ -730,7 +730,7 @@ static inline sector_t part_nr_sects_rea
+@@ -730,7 +730,7 @@
nr_sects = part->nr_sects;
} while (read_seqcount_retry(&part->nr_sects_seq, seq));
return nr_sects;
@@ -1229,7 +1229,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
sector_t nr_sects;
preempt_disable();
-@@ -753,7 +753,7 @@ static inline void part_nr_sects_write(s
+@@ -753,7 +753,7 @@
write_seqcount_begin(&part->nr_sects_seq);
part->nr_sects = size;
write_seqcount_end(&part->nr_sects_seq);
@@ -1240,7 +1240,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
preempt_enable();
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
-@@ -154,7 +154,7 @@ static inline void exit_tasks_rcu_finish
+@@ -154,7 +154,7 @@
*
* This macro resembles cond_resched(), except that it is defined to
* report potential quiescent states to RCU-tasks even if the cond_resched()
@@ -1249,7 +1249,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
*/
#define cond_resched_tasks_rcu_qs() \
do { \
-@@ -580,7 +580,7 @@ do { \
+@@ -580,7 +580,7 @@
*
* You can avoid reading and understanding the next paragraph by
* following this rule: don't put anything in an rcu_read_lock() RCU
@@ -1260,7 +1260,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
* In non-preemptible RCU implementations (TREE_RCU and TINY_RCU),
--- a/include/xen/xen-ops.h
+++ b/include/xen/xen-ops.h
-@@ -215,7 +215,7 @@ bool xen_running_on_version_or_later(uns
+@@ -215,7 +215,7 @@
void xen_efi_runtime_setup(void);
@@ -1269,7 +1269,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
static inline void xen_preemptible_hcall_begin(void)
{
-@@ -239,6 +239,6 @@ static inline void xen_preemptible_hcall
+@@ -239,6 +239,6 @@
__this_cpu_write(xen_in_preemptible_hcall, false);
}
@@ -1279,7 +1279,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
#endif /* INCLUDE_XEN_OPS_H */
--- a/kernel/Kconfig.locks
+++ b/kernel/Kconfig.locks
-@@ -101,7 +101,7 @@ config UNINLINE_SPIN_UNLOCK
+@@ -101,7 +101,7 @@
# unlock and unlock_irq functions are inlined when:
# - DEBUG_SPINLOCK=n and ARCH_INLINE_*LOCK=y
# or
@@ -1288,7 +1288,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
#
# unlock_bh and unlock_irqrestore functions are inlined when:
# - DEBUG_SPINLOCK=n and ARCH_INLINE_*LOCK=y
-@@ -139,7 +139,7 @@ config INLINE_SPIN_UNLOCK_BH
+@@ -139,7 +139,7 @@
config INLINE_SPIN_UNLOCK_IRQ
def_bool y
@@ -1297,7 +1297,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
config INLINE_SPIN_UNLOCK_IRQRESTORE
def_bool y
-@@ -168,7 +168,7 @@ config INLINE_READ_LOCK_IRQSAVE
+@@ -168,7 +168,7 @@
config INLINE_READ_UNLOCK
def_bool y
@@ -1306,7 +1306,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
config INLINE_READ_UNLOCK_BH
def_bool y
-@@ -176,7 +176,7 @@ config INLINE_READ_UNLOCK_BH
+@@ -176,7 +176,7 @@
config INLINE_READ_UNLOCK_IRQ
def_bool y
@@ -1315,7 +1315,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
config INLINE_READ_UNLOCK_IRQRESTORE
def_bool y
-@@ -205,7 +205,7 @@ config INLINE_WRITE_LOCK_IRQSAVE
+@@ -205,7 +205,7 @@
config INLINE_WRITE_UNLOCK
def_bool y
@@ -1324,7 +1324,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
config INLINE_WRITE_UNLOCK_BH
def_bool y
-@@ -213,7 +213,7 @@ config INLINE_WRITE_UNLOCK_BH
+@@ -213,7 +213,7 @@
config INLINE_WRITE_UNLOCK_IRQ
def_bool y
@@ -1335,7 +1335,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
def_bool y
--- a/kernel/rcu/Kconfig
+++ b/kernel/rcu/Kconfig
-@@ -200,8 +200,8 @@ config RCU_NOCB_CPU
+@@ -200,8 +200,8 @@
specified at boot time by the rcu_nocbs parameter. For each
such CPU, a kthread ("rcuox/N") will be created to invoke
callbacks, where the "N" is the CPU being offloaded, and where
@@ -1348,7 +1348,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
to force the kthreads to run on whatever set of CPUs is desired.
--- a/kernel/rcu/rcutorture.c
+++ b/kernel/rcu/rcutorture.c
-@@ -1725,7 +1725,7 @@ static void rcu_torture_fwd_cb_cr(struct
+@@ -1725,7 +1725,7 @@
// Give the scheduler a chance, even on nohz_full CPUs.
static void rcu_torture_fwd_prog_cond_resched(unsigned long iter)
{
@@ -1359,7 +1359,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
schedule();
--- a/kernel/rcu/srcutiny.c
+++ b/kernel/rcu/srcutiny.c
-@@ -103,7 +103,7 @@ EXPORT_SYMBOL_GPL(__srcu_read_unlock);
+@@ -103,7 +103,7 @@
/*
* Workqueue handler to drive one grace period and invoke any callbacks
@@ -1370,7 +1370,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
void srcu_drive_gp(struct work_struct *wp)
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
-@@ -2667,9 +2667,9 @@ EXPORT_SYMBOL_GPL(kfree_call_rcu);
+@@ -2667,9 +2667,9 @@
/*
* During early boot, any blocking grace-period wait automatically
@@ -1384,7 +1384,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
* either synchronize_rcu() or synchronize_rcu_expedited(). It is OK to
--- a/kernel/rcu/tree_exp.h
+++ b/kernel/rcu/tree_exp.h
-@@ -670,7 +670,7 @@ static void rcu_exp_handler(void *unused
+@@ -670,7 +670,7 @@
}
}
@@ -1395,7 +1395,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
}
--- a/kernel/rcu/tree_plugin.h
+++ b/kernel/rcu/tree_plugin.h
-@@ -788,7 +788,7 @@ static void __init rcu_bootup_announce(v
+@@ -788,7 +788,7 @@
}
/*
@@ -1404,7 +1404,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
* how many quiescent states passed, just if there was at least one since
* the start of the grace period, this just sets a flag. The caller must
* have disabled preemption.
-@@ -838,7 +838,7 @@ void rcu_all_qs(void)
+@@ -838,7 +838,7 @@
EXPORT_SYMBOL_GPL(rcu_all_qs);
/*
@@ -1415,7 +1415,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
{
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
-@@ -3654,6 +3654,8 @@ print_trace_header(struct seq_file *m, s
+@@ -3660,6 +3660,8 @@
"desktop",
#elif defined(CONFIG_PREEMPT)
"preempt",
@@ -1426,7 +1426,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
#endif
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
-@@ -2279,7 +2279,7 @@ static void process_one_work(struct work
+@@ -2279,7 +2279,7 @@
}
/*
@@ -1437,7 +1437,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
* indefinitely requeue itself while all other CPUs are trapped in
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
-@@ -1070,7 +1070,7 @@ config DEBUG_TIMEKEEPING
+@@ -1070,7 +1070,7 @@
config DEBUG_PREEMPT
bool "Debug preemptible kernel"
@@ -1448,7 +1448,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
If you say Y here then the kernel will use a debug variant of the
--- a/mm/memory.c
+++ b/mm/memory.c
-@@ -2133,7 +2133,7 @@ static inline int pte_unmap_same(struct
+@@ -2134,7 +2134,7 @@
pte_t *page_table, pte_t orig_pte)
{
int same = 1;
@@ -1459,7 +1459,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
spin_lock(ptl);
--- a/mm/slub.c
+++ b/mm/slub.c
-@@ -1963,7 +1963,7 @@ static void *get_partial(struct kmem_cac
+@@ -1963,7 +1963,7 @@
return get_any_partial(s, flags, c);
}
@@ -1468,7 +1468,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
/*
* Calculate the next globally unique transaction for disambiguiation
* during cmpxchg. The transactions start with the cpu number and are then
-@@ -2008,7 +2008,7 @@ static inline void note_cmpxchg_failure(
+@@ -2008,7 +2008,7 @@
pr_info("%s %s: cmpxchg redo ", n, s->name);
@@ -1477,7 +1477,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
if (tid_to_cpu(tid) != tid_to_cpu(actual_tid))
pr_warn("due to cpu change %d -> %d\n",
tid_to_cpu(tid), tid_to_cpu(actual_tid));
-@@ -2636,7 +2636,7 @@ static void *__slab_alloc(struct kmem_ca
+@@ -2636,7 +2636,7 @@
unsigned long flags;
local_irq_save(flags);
@@ -1486,7 +1486,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
/*
* We may have been preempted and rescheduled on a different
* cpu before disabling interrupts. Need to reload cpu area
-@@ -2690,13 +2690,13 @@ static __always_inline void *slab_alloc_
+@@ -2690,13 +2690,13 @@
* as we end up on the original cpu again when doing the cmpxchg.
*
* We should guarantee that tid and kmem_cache are retrieved on
@@ -1502,7 +1502,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
unlikely(tid != READ_ONCE(c->tid)));
/*
-@@ -2970,7 +2970,7 @@ static __always_inline void do_slab_free
+@@ -2970,7 +2970,7 @@
do {
tid = this_cpu_read(s->cpu_slab->tid);
c = raw_cpu_ptr(s->cpu_slab);
@@ -1513,7 +1513,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
/* Same with comment on barrier() in slab_alloc_node() */
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -820,7 +820,7 @@ EXPORT_SYMBOL(dev_get_by_napi_id);
+@@ -820,7 +820,7 @@
*
* The use of raw_seqcount_begin() and cond_resched() before
* retrying is required as we want to give the writers a chance
diff --git a/debian/patches-rt/lib-ubsan-Don-t-seralize-UBSAN-report.patch b/debian/patches-rt/lib-ubsan-Don-t-seralize-UBSAN-report.patch
index 78a5c9edb4c4..363305177f48 100644
--- a/debian/patches-rt/lib-ubsan-Don-t-seralize-UBSAN-report.patch
+++ b/debian/patches-rt/lib-ubsan-Don-t-seralize-UBSAN-report.patch
@@ -52,6 +52,7 @@ 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>
+[Salvatore Bonaccorso: Backport to 5.4.7 for context changes]
---
lib/ubsan.c | 64 +++++++++++++++++++++---------------------------------------
1 file changed, 23 insertions(+), 41 deletions(-)
@@ -244,24 +245,25 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
struct type_descriptor *rhs_type = data->rhs_type;
struct type_descriptor *lhs_type = data->lhs_type;
char rhs_str[VALUE_LENGTH];
-@@ -378,7 +363,7 @@ void __ubsan_handle_shift_out_of_bounds(
+@@ -379,7 +364,7 @@
if (suppress_report(&data->location))
- return;
+ goto out;
- 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);
-@@ -401,18 +386,16 @@ void __ubsan_handle_shift_out_of_bounds(
+@@ -402,7 +387,7 @@
lhs_str, rhs_str,
lhs_type->type_name);
- ubsan_epilogue(&flags);
+ ubsan_epilogue();
+ out:
+ user_access_restore(ua_flags);
}
- EXPORT_SYMBOL(__ubsan_handle_shift_out_of_bounds);
-
+@@ -411,11 +396,9 @@
void __ubsan_handle_builtin_unreachable(struct unreachable_data *data)
{
diff --git a/debian/patches-rt/series b/debian/patches-rt/series
index 9c7f6ac9c180..c8553d84c165 100644
--- a/debian/patches-rt/series
+++ b/debian/patches-rt/series
@@ -23,16 +23,12 @@ lib-ubsan-Don-t-seralize-UBSAN-report.patch
# 5a6446626d7e062b47a5cc1cf27d5060e60bb0d9
workqueue-Convert-for_each_wq-to-use-built-in-list-c.patch
-# df4393424af3fbdcd5c404077176082a8ce459c4
-x86-ioapic-Prevent-inconsistent-state-when-moving-an.patch
# 2579a4eefc04d1c23eef8f3f0db3309f955e5792
x86-ioapic-Rename-misnamed-functions.patch
# 9e8d42a0f7eb9056f8bdb241b91738b5a2923f4c
percpu-refcount-use-normal-instead-of-RCU-sched.patch
# 1dfffa0051eae890ce36924651ecff60df5d779e
drm-i915-Don-t-disable-interrupts-independently-of-t.patch
-# a19f89335f4bda3d77d991c96583e3e51856acbb
-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch
# de678bc63cc659d056a5ff3a3b11866d3eb4c1a9
block-Don-t-disable-interrupts-in-trigger_softirq.patch
# 0492747c72a3db0425a234abafb763c5b28c845d
diff --git a/debian/patches-rt/watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch b/debian/patches-rt/watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch
deleted file mode 100644
index 5f259279cb57..000000000000
--- a/debian/patches-rt/watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From: Julia Cartwright <julia@ni.com>
-Date: Fri, 28 Sep 2018 21:03:51 +0000
-Subject: [PATCH] watchdog: prevent deferral of watchdogd wakeup on RT
-Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.4/older/patches-5.4.5-rt3.tar.xz
-
-When PREEMPT_RT is enabled, all hrtimer expiry functions are
-deferred for execution into the context of ksoftirqd 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 ksoftirqd also means
-that for correct behavior a user must adjust the scheduling parameters
-of both watchdogd _and_ ksoftirqd, 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(-)
-
---- a/drivers/watchdog/watchdog_dev.c
-+++ b/drivers/watchdog/watchdog_dev.c
-@@ -158,7 +158,7 @@ static inline void watchdog_update_worke
- 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);
- }
-@@ -177,7 +177,7 @@ static int __watchdog_ping(struct watchd
- 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;
- }
-
-@@ -971,7 +971,7 @@ static int watchdog_cdev_register(struct
- return -ENODEV;
-
- 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) {
-@@ -1019,7 +1019,7 @@ static int watchdog_cdev_register(struct
- __module_get(wdd->ops->owner);
- kref_get(&wd_data->kref);
- 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);
diff --git a/debian/patches-rt/x86-ioapic-Prevent-inconsistent-state-when-moving-an.patch b/debian/patches-rt/x86-ioapic-Prevent-inconsistent-state-when-moving-an.patch
deleted file mode 100644
index 85bfc31bf53a..000000000000
--- a/debian/patches-rt/x86-ioapic-Prevent-inconsistent-state-when-moving-an.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Thu, 17 Oct 2019 12:19:01 +0200
-Subject: [PATCH] x86/ioapic: Prevent inconsistent state when moving an
- interrupt
-Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.4/older/patches-5.4.5-rt3.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();
- if (setaffinity_pending) {
- mask_ioapic();
- ...
- move_affinity();
- unmask_ioapic();
- }
-
-So if setaffinity is pending the interrupt will be moved and then
-unconditionally unmasked at the ioapic level, which is wrong in two
-aspects:
-
- 1) It should be kept masked up to the point where the threaded handler
- finished.
-
- 2) The physical chip state and the software masked state are inconsistent
-
-Guard both the mask and the unmask with a check for the software masked
-state. If the line is marked masked then the ioapic line is also masked, so
-both mask_ioapic() and unmask_ioapic() can be skipped safely.
-
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
-Cc: Linus Torvalds <torvalds@linux-foundation.org>
-Cc: Peter Zijlstra <peterz@infradead.org>
-Cc: Sebastian Siewior <bigeasy@linutronix.de>
-Fixes: 3aa551c9b4c4 ("genirq: add threaded interrupt handler support")
-Link: https://lkml.kernel.org/r/20191017101938.321393687@linutronix.de
-Signed-off-by: Ingo Molnar <mingo@kernel.org>
-Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
----
- arch/x86/kernel/apic/io_apic.c | 9 ++++++---
- 1 file changed, 6 insertions(+), 3 deletions(-)
-
---- a/arch/x86/kernel/apic/io_apic.c
-+++ b/arch/x86/kernel/apic/io_apic.c
-@@ -1727,9 +1727,10 @@ static bool io_apic_level_ack_pending(st
-
- static inline bool ioapic_irqd_mask(struct irq_data *data)
- {
-- /* If we are moving the irq we need to mask it */
-+ /* If we are moving the IRQ we need to mask it */
- if (unlikely(irqd_is_setaffinity_pending(data))) {
-- mask_ioapic_irq(data);
-+ if (!irqd_irq_masked(data))
-+ mask_ioapic_irq(data);
- return true;
- }
- return false;
-@@ -1766,7 +1767,9 @@ static inline void ioapic_irqd_unmask(st
- */
- if (!io_apic_level_ack_pending(data->chip_data))
- irq_move_masked_irq(data);
-- unmask_ioapic_irq(data);
-+ /* If the IRQ is masked in the core, leave it: */
-+ if (!irqd_irq_masked(data))
-+ unmask_ioapic_irq(data);
- }
- }
- #else