diff options
-rw-r--r-- | debian/changelog | 497 | ||||
-rw-r--r-- | debian/config/config | 16 | ||||
-rw-r--r-- | debian/config/defines | 2 | ||||
-rw-r--r-- | debian/lib/python/debian_linux/abi.py | 4 | ||||
-rw-r--r-- | debian/patches-rt/Use-CONFIG_PREEMPTION.patch | 230 | ||||
-rw-r--r-- | debian/patches-rt/lib-ubsan-Don-t-seralize-UBSAN-report.patch | 12 | ||||
-rw-r--r-- | debian/patches-rt/series | 4 | ||||
-rw-r--r-- | debian/patches-rt/watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch | 75 | ||||
-rw-r--r-- | debian/patches-rt/x86-ioapic-Prevent-inconsistent-state-when-moving-an.patch | 73 |
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 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 “classic” 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 |