kernel-5.15/kernel.spec
Mikhail Novosyolov 8f29a031f8 [bot] upd: 5.15.53 -> 5.15.61
Changelog:

9p: Add client parameter to p9_req_put()
9p: Drop kref usage
9p: fix a bunch of checkpatch warnings
ACPI: APEI: Better fix to avoid spamming the console with old error logs
ACPI: APEI: explicit init of HEST and GHES in apci_init()
ACPI: APEI: Fix _EINJ vs EFI_MEMORY_SP
ACPI: CPPC: Do not prevent CPPC from working in the future
ACPI: EC: Drop the EC_FLAGS_IGNORE_DSDT_GPE quirk
ACPI: EC: Remove duplicate ThinkPad X1 Carbon 6th entry from DMI quirks
ACPI: LPSS: Fix missing check in register_device_clock()
ACPI: PM: save NVS memory for Lenovo G40-45
ACPI: processor/idle: Annotate more functions to live in cpuidle section
ACPI: video: Fix acpi_video_handles_brightness_key_presses()
ACPI: video: Force backlight native for some TongFang devices
ACPI: video: Shortening quirk list by identifying Clevo by board_name only
ACPI: VIOT: Fix ACS setup
add barriers to buffer_uptodate and set_buffer_uptodate
ALSA: bcd2000: Fix a UAF bug on the error path of probing
ALSA: cs46xx: Fix missing snd_card_free() call at probe error
ALSA: hda - Add fixup for Dell Latitidue E5430
ALSA: hda/cirrus - support for iMac 12,1 model
ALSA: hda/conexant: Add quirk for LENOVO 20149 Notebook model
ALSA: hda/conexant: Apply quirk for another HP ProDesk 600 G3 model
ALSA: hda/realtek: Add a quirk for HP OMEN 15 (8786) mute LED
ALSA: hda/realtek: Add quirk for another Asus K42JZ model
ALSA: hda/realtek: Add quirk for Clevo L140PU
ALSA: hda/realtek: Add quirk for Clevo NV45PZ
ALSA: hda/realtek: Add quirk for HP Spectre x360 15-eb0xxx
ALSA: hda/realtek - Enable the headset-mic on a Xiaomi's laptop
ALSA: hda/realtek: Fix headset mic for Acer SF313-51
ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc221
ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc671
ALSA: hda/realtek: fix mute/micmute LEDs for HP machines
ALSA: usb-audio: add mapping for MSI MAG X570S Torpedo MAX.
ALSA: usb-audio: add mapping for MSI MPG X570S Carbon Max Wifi.
ALSA: usb-audio: Add quirk for Behringer UMC202HD
ALSA: usb-audio: Add quirk for Fiero SC-01
ALSA: usb-audio: Add quirk for Fiero SC-01 (fw v1.0.0)
ALSA: usb-audio: Add quirks for MacroSilicon MS2100/MS2106 devices
ALSA: usb-audio: Workarounds for Behringer UMC 204/404 HD
android: binder: stop saving a pointer to the VMA
arch: make TRACE_IRQFLAGS_NMI_SUPPORT generic
arm64: cpufeature: Allow different PMU versions in ID_DFR0_EL1
arm64: Do not forget syscall when starting a new thread.
arm64: dts: allwinner: a64: orangepi-win: Fix LED node name
arm64: dts: broadcom: bcm4908: Fix cpu node for smp boot
arm64: dts: broadcom: bcm4908: Fix timer node for BCM4906 SoC
arm64: dts: imx8mp-evk: correct eqos pad settings
arm64: dts: imx8mp-evk: correct gpio-led pad settings
arm64: dts: imx8mp-evk: correct I2C1 pad settings
arm64: dts: imx8mp-evk: correct I2C3 pad settings
arm64: dts: imx8mp-evk: correct mmc pad settings
arm64: dts: imx8mp-evk: correct the uart2 pinctl value
arm64: dts: imx8mp-evk: correct vbus pad settings
arm64: dts: imx8mp-phyboard-pollux-rdk: correct eqos pad settings
arm64: dts: imx8mp-phyboard-pollux-rdk: correct i2c2 & mmc settings
arm64: dts: imx8mp-phyboard-pollux-rdk: correct uart pad settings
arm64: dts: mt7622: fix BPI-R64 WPS button
arm64: dts: mt8192: Fix idle-states entry-method
arm64: dts: mt8192: Fix idle-states nodes naming scheme
arm64: dts: qcom: ipq8074: fix NAND node name
arm64: dts: qcom: msm8916: Fix typo in pronto remoteproc node
arm64: dts: qcom: msm8992-*: Fix vdd_lvs1_2-supply typo
arm64: dts: qcom: msm8994: Fix CPU6/7 reg values
arm64: dts: qcom: qcs404: Fix incorrect USB2 PHYs assignment
arm64: dts: qcom: sc7180: Remove ipa_fw_mem node on trogdor
arm64: dts: qcom: sdm630: disable GPU by default
arm64: dts: qcom: sdm630: fix gpu's interconnect path
arm64: dts: qcom: sdm630: fix the qusb2phy ref clock
arm64: dts: qcom: sdm636-sony-xperia-ganges-mermaid: correct sdc2 pinconf
arm64: dts: qcom: sdm845: use dispcc AHB clock for mdss node
arm64: dts: qcom: sm6125: Append -state suffix to pinctrl nodes
arm64: dts: qcom: sm6125: Move sdc2 pinctrl from seine-pdx201 to sm6125
arm64: dts: qcom: sm8250: add missing PCIe PHY clock-cells
arm64: dts: renesas: beacon: Fix regulator node names
arm64: dts: renesas: Fix thermal-sensors on single-zone sensors
arm64: dts: uniphier: Fix USB interrupts for PXs3 SoC
arm64: fix oops in concurrently setting insn_emulation sysctls
arm64: kasan: Revert "arm64: mte: reset the page tag in page->flags"
arm64: select TRACE_IRQFLAGS_NMI_SUPPORT
arm64: set UXN on swapper page tables
arm64: tegra: Fix SDMMC1 CD on P2888
arm64: tegra: Fixup SYSRAM references
arm64: tegra: Mark BPMP channels as no-memory-wc
arm64: tegra: Update Tegra234 BPMP channel addresses
ARM: 9209/1: Spectre-BHB: avoid pr_info() every time a CPU comes out of idle
ARM: 9210/1: Mark the FDT_FIXED sections as shareable
ARM: 9213/1: Print message about disabled Spectre workarounds only once
ARM: 9214/1: alignment: advance IT state after emulating Thumb instruction
ARM: 9216/1: Fix MAX_DMA_ADDRESS overflow
ARM: at91: fix soc detection for SAM9X60 SiPs
ARM: at91: pm: use proper compatible for sama5d2's rtc
ARM: at91: pm: use proper compatibles for sam9x60's rtc and rtt
ARM: at91: pm: use proper compatibles for sama7g5's rtc and rtt
ARM: bcm: Fix refcount leak in bcm_kona_smc_init
ARM: crypto: comment out gcc warning that breaks clang builds
ARM: dts: ast2500-evb: fix board compatible
ARM: dts: ast2600-evb-a1: fix board compatible
ARM: dts: ast2600-evb: fix board compatible
ARM: dts: at91: sam9x60ek: fix eeprom compatible and size
ARM: dts: at91: sama5d2: Fix typo in i2s1 node
ARM: dts: at91: sama5d2_icp: fix eeprom compatibles
ARM: dts: BCM5301X: Add DT for Meraki MR26
ARM: dts: imx6qdl-ts7970: Fix ngpio typo and count
ARM: dts: imx6ul: add missing properties for sram
ARM: dts: imx6ul: change operating-points to uint32-matrix
ARM: dts: imx6ul: fix csi node compatible
ARM: dts: imx6ul: fix keypad compatible
ARM: dts: imx6ul: fix lcdif node compatible
ARM: dts: imx6ul: fix qspi node compatible
ARM: dts: imx7d-colibri-emmc: add cpu1 supply
ARM: dts: qcom: mdm9615: add missing PMIC GPIO reg
ARM: dts: qcom-msm8974: fix irq type on blsp2_uart1
ARM: dts: qcom: pm8841: add required thermal-sensor-cells
ARM: dts: qcom: sdx55: Fix the IRQ trigger type for UART
ARM: dts: stm32: add missing usbh clock and fix clk order on stm32mp15
ARM: dts: stm32: use the correct clock source for CEC on stm32mp151
ARM: dts: stm32: use usbphyc ck_usbo_48m as USBH OHCI clock on stm32mp151
ARM: dts: sunxi: Fix SPI NOR campatible on Orange Pi Zero
ARM: dts: uniphier: Fix USB interrupts for PXs2 SoC
ARM: dts: ux500: Fix Codina accelerometer mounting matrix
ARM: dts: ux500: Fix Gavini accelerometer mounting matrix
ARM: findbit: fix overflowing offset
ARM: meson: Fix refcount leak in meson_smp_prepare_cpus
ARM: mxs_defconfig: Enable the framebuffer
ARM: OMAP2+: display: Fix refcount leak bug
ARM: OMAP2+: Fix refcount leak in omap3xxx_prm_late_init
ARM: OMAP2+: Fix refcount leak in omapdss_init_of
ARM: OMAP2+: pdata-quirks: Fix refcount leak bug
ARM: remove some dead code
ARM: shmobile: rcar-gen2: Increase refcount for new reference
asm-generic: remove a broken and needless ifdef conditional
ASoC: audio-graph-card: Add of_node_put() in fail path
ASoC: codecs: da7210: add check for i2c_add_driver
ASoC: codecs: msm8916-wcd-digital: move gains from SX_TLV to S8_TLV
ASoC: codecs: rt700/rt711/rt711-sdca: initialize workqueues in probe
ASoC: codecs: rt700/rt711/rt711-sdca: resume bus/codec in .set_jack_detect
ASoC: codecs: wcd9335: move gains from SX_TLV to S8_TLV
ASoC: cros_ec_codec: Fix refcount leak in cros_ec_codec_platform_probe
ASoC: cs47l15: Fix event generation for low power mux control
ASoC: dapm: Initialise kcontrol data for mux/demux controls
ASoC: fsl-asoc-card: force cast the asrc_format type
ASoC: fsl_asrc: force cast the asrc_format type
ASoC: fsl_easrc: use snd_pcm_format_t type for sample_format
ASoC: imx-audmux: Silence a clang warning
ASoC: imx-card: Fix DSD/PDM mclk frequency
ASoC: imx-card: use snd_pcm_format_t type for asrc_format
ASoC: Intel: bytcr_wm5102: Fix GPIO related probe-ordering problem
ASoC: Intel: Skylake: Correct the handling of fmt_config flexible array
ASoC: Intel: Skylake: Correct the ssp rate discovery in skl_get_ssp_clks()
ASoC: Intel: sof_sdw: handle errors on card registration
ASoC: madera: Fix event generation for OUT1 demux
ASoC: madera: Fix event generation for rate controls
ASoC: mchp-spdifrx: disable end of block interrupt on failures
ASoC: mediatek: mt8173: Fix refcount leak in mt8173_rt5650_rt5676_dev_probe
ASoC: mediatek: mt8173-rt5650: Fix refcount leak in mt8173_rt5650_dev_probe
ASoC: mt6359: Fix refcount leak bug
ASoC: mt6797-mt6351: Fix refcount leak in mt6797_mt6351_dev_probe
ASoC: ops: Fix off by one in range control validation
ASoC: qcom: Fix missing of_node_put() in asoc_qcom_lpass_cpu_platform_probe()
ASoC: qcom: q6dsp: Fix an off-by-one in q6adm_alloc_copp()
ASoC: Realtek/Maxim SoundWire codecs: disable pm_runtime on remove
ASoC: rt5682: Avoid the unexpected IRQ event during going to suspend
ASoC: rt5682: fix an incorrect NULL check on list iterator
ASoC: rt5682: Fix deadlock on resume
ASoC: rt5682: move clk related code to rt5682_i2c_probe
ASoC: rt5682: Re-detect the combo jack after resuming
ASoC: rt711: Add endianness flag in snd_soc_component_driver
ASoC: rt711: fix calibrate mutex initialization
ASoC: rt711-sdca: Add endianness flag in snd_soc_component_driver
ASoC: rt711-sdca: fix kernel NULL pointer dereference when IO error
ASoC: rt711-sdca-sdw: fix calibrate mutex initialization
ASoC: rt7*-sdw: harden jack_detect_handler
ASoC: samsung: change gpiod_speaker_power and rx1950_audio from global to static variables
ASoC: samsung: Fix error handling in aries_audio_probe
ASoC: samsung: h1940_uda1380: include proepr GPIO consumer header
ASoC: sgtl5000: Fix noise on shutdown/remove
ASoC: SOF: Intel: hda-loader: Clarify the cl_dsp_init() flow
ASoC: tas2764: Add post reset delays
ASoC: tas2764: Correct playback volume range
ASoC: tas2764: Fix amp gain register offset & default
ASoC: tas2764: Fix and extend FSYNC polarity handling
ASoC: wcd938x: Fix event generation for some controls
ASoC: wm5110: Fix DRE control
ath10k: do not enforce interrupt trigger type
ath11k: add hw_param for wakeup_mhi
ath11k: Fix incorrect debug_mask mappings
ath11k: fix netdev open race
ath9k: fix use-after-free in ath9k_hif_usb_rx_cb
batman-adv: Use netif_rx().
batman-adv: Use netif_rx_any_context() any.
be2net: Fix buffer overflow in be_get_module_eeprom
binder: fix redefinition of seq_file attributes
bitfield.h: Fix "type of reg too small for mask" test
blk-mq: don't create hctx debugfs dir until q->debugfs_dir is created
blktrace: Trace remapped requests correctly
block/bio: remove duplicate append pages code
block: don't allow the same type rq_qos add more than once
block: ensure iov_iter advances for added pages
block: fix default IO priority handling again
block: fix infinite loop for invalid zone append
block: fix rq-qos breakage from skipping rq_qos_done_bio()
block: only mark bio as tracked if it really is tracked
block: remove the struct blk_queue_ctx forward declaration
block/rnbd-srv: Set keep_id to true after mutex_trylock
block: use bdev_get_queue() in bio.c
Bluetooth: Add bt_skb_sendmmsg helper
Bluetooth: Add bt_skb_sendmsg helper
Bluetooth: btmtksdio: fix use-after-free at btmtksdio_recv_event
Bluetooth: btusb: Add Realtek RTL8852C support ID 0x04C5:0x1675
Bluetooth: btusb: Add Realtek RTL8852C support ID 0x04CA:0x4007
Bluetooth: btusb: Add Realtek RTL8852C support ID 0x0CB8:0xC558
Bluetooth: btusb: Add Realtek RTL8852C support ID 0x13D3:0x3586
Bluetooth: btusb: Add Realtek RTL8852C support ID 0x13D3:0x3587
Bluetooth: btusb: Add support of IMC Networks PID 0x3568
Bluetooth: Fix bt_skb_sendmmsg not allocating partial chunks
Bluetooth: Fix passing NULL to PTR_ERR
Bluetooth: hci_bcm: Add BCM4349B1 variant
Bluetooth: hci_bcm: Add DT compatible for CYW55572
Bluetooth: hci_intel: Add check for platform_driver_register
Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm regression
Bluetooth: L2CAP: Fix use-after-free caused by l2cap_chan_put
Bluetooth: protect le accept and resolv lists with hdev->lock
Bluetooth: RFCOMM: Replace use of memcpy_from_msg with bt_skb_sendmmsg
Bluetooth: SCO: Fix sco_send_frame returning skb->len
Bluetooth: SCO: Replace use of memcpy_from_msg with bt_skb_sendmsg
bnxt_en: Fix bnxt_refclk_read()
bnxt_en: Fix bnxt_reinit_after_abort() code path
bpf, arm64: Use emit_addr_mov_i64() for BPF_PSEUDO_FUNC
bpf: Fix incorrect verifier simulation around jmp32's jeq/jne
bpf: Fix insufficient bounds propagation from adjust_scalar_min_max_vals
bpf: Fix KASAN use-after-free Read in compute_effective_progs
bpf: Fix subprog names in stack traces.
bpf: Make sure mac_header was set before using it
bpf: Stop caching subprog index in the bpf_pseudo_func insn
bpf,x86: Respect X86_FEATURE_RETPOLINE*
bpf,x86: Simplify computing label offsets
btrfs: add a btrfs_get_dev_args_from_path helper
btrfs: add additional parameters to btrfs_init_tree_ref/btrfs_init_data_ref
btrfs: don't access possibly stale fs_info data in device_list_add
btrfs: ensure pages are unlocked on cow_file_range() failure
btrfs: fix deadlock between chunk allocation and chunk btree modifications
btrfs: fix error pointer dereference in btrfs_ioctl_rm_dev_v2()
btrfs: fix invalid delayed ref after subvolume creation failure
btrfs: fix use of uninitialized variable at rm device ioctl
btrfs: fix warning when freeing leaf after subvolume creation failure
btrfs: handle device lookup with btrfs_dev_lookup_args
btrfs: properly flag filesystem with BTRFS_FEATURE_INCOMPAT_BIG_METADATA
btrfs: reject log replay if there is unsupported RO compat flag
btrfs: remove device item and update super block in the same transaction
btrfs: rename btrfs_alloc_chunk to btrfs_create_chunk
btrfs: rename btrfs_bio to btrfs_io_context
btrfs: reset block group chunk force if we have to wait
btrfs: return -EAGAIN for NOWAIT dio reads/writes on compressed and inline extents
btrfs: use btrfs_get_dev_args_from_path in dev removal ioctls
btrfs: zoned: encapsulate inode locking for zoned relocation
btrfs: zoned: fix a leaked bioc in read_zone_info
btrfs: zoned: fix critical section of relocation inode writeback
btrfs: zoned: prevent allocation from previous data relocation BG
btrfs: zoned: use dedicated lock for data relocation
bus: hisi_lpc: fix missing platform_device_put() in hisi_lpc_acpi_probe()
bus: mhi: core: Use correctly sized arguments for bit field
bus: mhi: Fix pm_state conversion to string
bus: mhi: host: pci_generic: add Telit FN980 v1 hardware revision
bus: mhi: host: pci_generic: add Telit FN990
can: bcm: use call_rcu() instead of costly synchronize_rcu()
can: error: specify the values of data[5..7] of CAN error frames
can: grcan: grcan_probe(): remove extra of_node_get()
can: gs_usb: gs_usb_open/close(): fix memory leak
can: hi311x: do not report txerr and rxerr during bus-off
can: kvaser_usb_hydra: do not report txerr and rxerr during bus-off
can: kvaser_usb: kvaser_usb_leaf: fix bittiming limits
can: kvaser_usb: kvaser_usb_leaf: fix CAN clock frequency regression
can: kvaser_usb_leaf: do not report txerr and rxerr during bus-off
can: kvaser_usb: replace run-time checks with struct kvaser_usb_driver_info
can: m_can: m_can_chip_config(): actually enable internal timestamping
can: m_can: m_can_{read_fifo,echo_tx_event}(): shift timestamp to full 32 bits
can: mcp251xfd: mcp251xfd_regmap_crc_read(): improve workaround handling for mcp2517fd
can: mcp251xfd: mcp251xfd_regmap_crc_read(): update workaround broken CRC on TBC register
can: netlink: allow configuring of fixed bit rates without need for do_set_bittiming callback
can: netlink: allow configuring of fixed data bit rates without need for do_set_data_bittiming callback
can: pch_can: do not report txerr and rxerr during bus-off
can: pch_can: pch_can_error(): initialize errc before using it
can: rcar_can: do not report txerr and rxerr during bus-off
can: sja1000: do not report txerr and rxerr during bus-off
can: sun4i_can: do not report txerr and rxerr during bus-off
can: usb_8dev: do not report txerr and rxerr during bus-off
ceph: switch netfs read ops to use rreq->inode instead of rreq->mapping->host
cgroup: Use separate src/dst nodes when preloading css_sets for migration
cipso: Fix data-races around sysctl.
clk: mediatek: reset: Fix written reset bit offset
clk: qcom: camcc-sdm845: Fix topology around titan_top power domain
clk: qcom: camcc-sm8250: Fix halt on boot by reducing driver's init level
clk: qcom: camcc-sm8250: Fix topology around titan_top power domain
clk: qcom: clk-krait: unlock spin after mux completion
clk: qcom: clk-rcg2: Fail Duty-Cycle configuration if MND divider is not enabled.
clk: qcom: clk-rcg2: Make sure to not write d=0 to the NMD register
clk: qcom: gcc-msm8939: Add missing system_mm_noc_bfdcd_clk_src
clk: qcom: gcc-msm8939: Add missing SYSTEM_MM_NOC_BFDCD_CLK_SRC
clk: qcom: gcc-msm8939: Fix bimc_ddr_clk_src rcgr base address
clk: qcom: gcc-msm8939: Fix weird field spacing in ftbl_gcc_camss_cci_clk
clk: qcom: gcc-msm8939: Point MM peripherals to system_mm_noc clock
clk: qcom: ipq8074: fix NSS core PLL-s
clk: qcom: ipq8074: fix NSS port frequency tables
clk: qcom: ipq8074: set BRANCH_HALT_DELAY flag for UBI clocks
clk: qcom: ipq8074: SW workaround for UBI32 PLL lock
clk: renesas: r9a06g032: Fix UART clkgrp bitsel
clk: renesas: r9a07g044: Update multiplier and divider values for PLL2/3
Compiler Attributes: add __alloc_size() for better bounds checking
coresight: Clear the connection field properly
cpufreq: pmac32-cpufreq: Fix refcount leak bug
cpufreq: zynq: Fix refcount leak in zynq_get_revision
crypto: arm64/gcm - Select AEAD for GHASH_ARM64_CE
crypto: arm64/poly1305 - fix a read out-of-bound
crypto: blake2s - remove shash module
crypto: ccp - During shutdown, check SEV data pointer before using
crypto: ccp - Use kzalloc for sev ioctl interfaces to prevent kernel memory leak
crypto: hisilicon/hpre - don't use GFP_KERNEL to alloc mem during softirq
crypto: hisilicon - Kunpeng916 crypto driver don't sleep when in softirq
crypto: hisilicon/sec - don't sleep when in softirq
crypto: hisilicon/sec - fix auth key size error
crypto: inside-secure - Add missing MODULE_DEVICE_TABLE for of
crypto: lib/blake2s - reduce stack frame usage in self test
crypto: qat - add backlog mechanism
crypto: qat - add param check for DH
crypto: qat - add param check for RSA
crypto: qat - fix memory leak in RSA
crypto: qat - re-enable registration of algorithms
crypto: qat - refactor submission logic
crypto: qat - remove dma_free_coherent() for DH
crypto: qat - remove dma_free_coherent() for RSA
crypto: qat - set to zero DH parameters before free
crypto: qat - use pre-allocated buffers in datapath
crypto: sun8i-ss - do not allocate memory when handling hash requests
crypto: sun8i-ss - fix error codes in allocate_flows()
crypto: sun8i-ss - fix infinite loop in sun8i_ss_setup_ivs()
cxl/port: Hold port reference until decoder release
dccp: put dccp_qpolicy_full() and dccp_qpolicy_push() in the same lock
dlm: fix pending remove if msg allocation fails
dma-buf/poll: Get a file reference for outstanding fence callbacks
dmaengine: at_xdma: handle errors of at_xdmac_alloc_desc() correctly
dmaengine: dw-edma: Fix eDMA Rd/Wr-channels and DMA-direction semantics
dmaengine: idxd: force wq context cleanup on device disable path
dmaengine: imx-dma: Cast of_device_get_match_data() with (uintptr_t)
dmaengine: imx-sdma: Allow imx8m for imx7 FW revs
dmaengine: lgm: Fix an error handling path in intel_ldma_probe()
dmaengine: pl330: Fix lockdep warning about non-static key
dmaengine: qcom: bam_dma: fix runtime PM underflow
dmaengine: sf-pdma: Add multithread support for a DMA channel
dmaengine: ti: Add missing put_device in ti_dra7_xbar_route_allocate
dmaengine: ti: Fix refcount leak in ti_dra7_xbar_route_allocate
dm raid: fix address sanitizer warning in raid_resume
dm raid: fix address sanitizer warning in raid_status
dm: return early from dm_pr_call() if DM device is suspended
dm thin: fix use-after-free crash in dm_sm_register_threshold_callback
dm writecache: count number of blocks discarded, not number of discard bios
dm writecache: count number of blocks read, not number of read bios
dm writecache: count number of blocks written, not number of write bios
dm writecache: return void from functions
dm writecache: set a default MAX_WRITEBACK_JOBS
docs/kernel-parameters: Update descriptions for "mitigations=" param with retbleed
Documentation: fix sctp_wmem in ip-sysctl.rst
drbd: add error handling support for add_disk()
drbd: fix an invalid memory access caused by incorrect use of list iterator
drbd: Fix double free problem in drbd_create_device
driver core: fix potential deadlock in __driver_attach
drivers/iio: Remove all strcpy() uses
drivers/perf: arm_spe: Fix consistency of SYS_PMSCR_EL1.CX
drm: adv7511: override i2c address of cec before accessing it
drm/amd/display: Add option to defer works of hpd_rx_irq
drm/amd/display: Don't lock connection_mutex for DMUB HPD
drm/amd/display: Fix by adding FPU protection for dcn30_internal_validate_bw
drm/amd/display: Fix surface optimization regression on Carrizo
drm/amd/display: Fix wrong format specifier in amdgpu_dm.c
drm/amd/display: Fork thread to offload work of hpd_rx_irq
drm/amd/display: Ignore First MST Sideband Message Return Error
drm/amd/display: invalid parameter check in dmub_hpd_callback
drm/amd/display: Only use depth 36 bpp linebuffers on DCN display engines.
drm/amd/display: Optimize bandwidth on following fast update
drm/amd/display: Reset DMCUB before HW init
drm/amd/display: Set min dcfclk if pipe count is 0
drm/amd/display: Support for DMUB HPD interrupt handling
drm/amdgpu: Check BO's requested pinning domains against its preferred_domains
drm/amdgpu/display: add quirk handling for stutter mode
drm/amdgpu: fix check in fbdev init
drm/amdgpu: Off by one in dm_dmub_outbox1_low_irq()
drm/amdgpu: Remove one duplicated ef removal
drm/amdgpu: vi: disable ASPM on Intel Alder Lake based systems
drm/amd/pm: Prevent divide by zero
drm/amd: Refactor `amdgpu_aspm` to be evaluated per device
drm/amd/vcn: fix an error msg on vcn 3.0
drm/aperture: Run fbdev removal before internal helpers
drm/bridge: Add a function to abstract away panels
drm: bridge: adv7511: Add check for mipi_dsi_driver_register
drm/bridge: lt9611uxc: Cancel only driver's work
drm/bridge: Move devm_drm_of_get_bridge to bridge/panel.c
drm: bridge: sii8620: fix possible off-by-one
drm/bridge: tc358767: Fix (e)DP bridge endpoint parsing in dedicated function
drm/bridge: tc358767: Move (e)DP bridge endpoint parsing into dedicated function
drm/dp: Export symbol / kerneldoc fixes for DP AUX bus
drm/dp/mst: Read the extended DPCD capabilities during system resume
drm/exynos/exynos7_drm_decon: free resources when clk_set_parent() failed.
drm/gem: Properly annotate WW context on drm_gem_lock_reservations() error
drm/hyperv-drm: Include framebuffer and EDID headers
drm/i915/dg2: Add Wa_22011100796
drm/i915: Disable bonding on gen12+ platforms
drm/i915: fix a possible refcount leak in intel_dp_add_mst_connector()
drm/i915: Fix a race between vma / object destruction and unbinding
drm/i915/gt: Register the migrate contexts with their engines
drm/i915/gt: Serialize GRDOM access between multiple engine resets
drm/i915/gt: Serialize TLB invalidates with GT resets
drm/i915/gvt: IS_ERR() vs NULL bug in intel_gvt_update_reg_whitelist()
drm/i915: Replace the unconditional clflush with drm_clflush_virt_range()
drm/i915: Require the vm mutex for i915_vma_bind()
drm/i915/selftests: fix a couple IS_ERR() vs NULL tests
drm/i915/uc: correctly track uc_fw init failure
drm/imx/dcss: Add missing of_node_put() in fail path
drm/mcde: Fix refcount leak in mcde_dsi_bind
drm/mediatek: Add cmdq_handle in mtk_crtc
drm/mediatek: Add pull-down MIPI operation in mtk_dsi_poweroff function
drm/mediatek: Add vblank register/unregister callback functions
drm/mediatek: Allow commands to be sent during video mode
drm/mediatek: Detect CMDQ execution timeout
drm/mediatek: dpi: Only enable dpi after the bridge is enabled
drm/mediatek: dpi: Remove output format of YUV
drm/mediatek: Keep dsi as LP00 before dcs cmds transfer
drm/mediatek: Modify dsi funcs to atomic operations
drm/mediatek: Remove the pointer of struct cmdq_client
drm/mediatek: Separate poweron/poweroff from enable/disable and define new funcs
drm/mediatek: Use mailbox rx_callback instead of cmdq_task_cb
drm/meson: encoder_hdmi: Fix refcount leak in meson_encoder_hdmi_init
drm/meson: encoder_hdmi: switch to bridge DRM_BRIDGE_ATTACH_NO_CONNECTOR
drm/meson: Fix refcount leak in meson_encoder_hdmi_init
drm/mipi-dbi: align max_chunk to 2 in spi_transfer
drm/msm: Avoid dirtyfb stalls on video mode displays (v2)
drm/msm/dpu: Fix for non-visible planes
drm/msm: Fix dirtyfb refcounting
drm/msm/mdp5: Fix global state lock backoff
drm/nouveau/acpi: Don't print error when we get -EINPROGRESS from pm_runtime
drm/nouveau: Don't pm_runtime_put_sync(), only pm_runtime_put_autosuspend()
drm/nouveau: fix another off-by-one in nvbios_addr
drm/nouveau/kms: Fix failure path for creating DP connectors
drm/panel: Fix build error when CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20=y && CONFIG_DRM_DISPLAY_HELPER=m
drm/panfrost: Fix shrinker list corruption by madvise IOCTL
drm/panfrost: Put mapping instead of shmem obj on panfrost_mmu_map_fault_addr() error
drm/radeon: fix incorrrect SPDX-License-Identifiers
drm/radeon: fix potential buffer overflow in ni_set_mc_special_registers()
drm/rockchip: Fix an error handling path rockchip_dp_probe()
drm/rockchip: vop: Don't crash for invalid duplicate_state()
drm/shmem-helper: Add missing vunmap on error
drm/shmem-helper: Export dedicated wrappers for GEM object functions
drm/shmem-helper: Pass GEM shmem object in public interfaces
drm/shmem-helper: Unexport drm_gem_shmem_create_with_handle()
drm/simpledrm: Fix return type of simpledrm_simple_display_pipe_mode_valid()
drm/st7735r: Fix module autoloading for Okaya RH128128T
drm/ttm: fix locking in vmap/vunmap TTM GEM helpers
drm/vc4: change vc4_dma_range_matches from a global to static
drm/vc4: drv: Adopt the dma configuration from the HVS or V3D component
drm/vc4: dsi: Add correct stop condition to vc4_dsi_encoder_disable iteration
drm/vc4: dsi: Correct DSI divider calculations
drm/vc4: dsi: Correct pixel order for DSI0
drm/vc4: dsi: Fix dsi0 interrupt support
drm/vc4: dsi: Register dsi0 as the correct vc4 encoder type
drm/vc4: dsi: Release workaround buffer and DMA
drm/vc4: dsi: Switch to devm_drm_of_get_bridge
drm/vc4: hdmi: Avoid full hdmi audio fifo writes
drm/vc4: hdmi: Correct HDMI timing registers for interlaced modes
drm/vc4: hdmi: Disable audio if dmas property is present but empty
drm/vc4: hdmi: Fix HPD GPIO detection
drm/vc4: hdmi: Fix timings for interlaced modes
drm/vc4: hdmi: Reset HDMI MISC_CONTROL register
drm/vc4: plane: Fix margin calculations for the right/bottom edges
drm/vc4: plane: Remove subpixel positioning check
drm/vc4: Use of_device_get_match_data()
drm/virtio: Fix NULL vs IS_ERR checking in virtio_gpu_object_shmem_init
dt-bindings: bluetooth: broadcom: Add BCM4349B1 DT binding
dt-bindings: dma: allwinner,sun50i-a64-dma: Fix min/max typo
dt-bindings: iio: accel: Add DT binding doc for ADXL355
dt-bindings: riscv: fix SiFive l2-cache's cache-sets
dt-bindings: soc: qcom: smd-rpm: Add compatible for MSM8953 SoC
dt-bindings: soc: qcom: smd-rpm: Fix missing MSM8936 compatible
e1000e: Enable GPT clock before sending message to CSME
EDAC/ghes: Set the DIMM label unconditionally
eeprom: idt_89hpesx: uninitialized data in idt_dbgfs_csr_write()
efi/x86: use naked RET on mixed mode call wrapper
epoll: autoremove wakers even more aggressively
erofs: avoid consecutive detection for Highmem memory
exfat: fix referencing wrong parent directory information after renaming
exfat: use updated exfat_chain directly during renaming
ext2: Add more validity checks for inode counts
ext4: add EXT4_INODE_HAS_XATTR_SPACE macro in xattr.h
ext4: check if directory block is within i_size
ext4: correct max_inline_xattr_value_size computing
ext4: correct the misjudgment in ext4_iget_extra_inode
ext4: fix extent status tree race in writeback error recovery path
ext4: fix race when reusing xattr blocks
ext4: fix use-after-free in ext4_xattr_set_entry
ext4: fix warning in ext4_iomap_begin as race between bmap and write
ext4: make sure ext4_append() always allocates new block
ext4: recover csum seed of tmp_inode after migrating to extents
ext4: remove EA inode entry from mbcache on inode eviction
ext4: unindent codeblock in ext4_xattr_block_set()
ext4: update s_overhead_clusters in the superblock during an on-line resize
ext4: use kmemdup() to replace kmalloc + memcpy
f2fs: allow compression for mmap files in compress_mode=user
f2fs: do not allow to decompress files have FI_COMPRESS_RELEASED
f2fs: fix to remove F2FS_COMPR_FL and tag F2FS_NOCOMP_FL at the same time
fbcon: Disallow setting font bigger than screen size
fbcon: Fix accelerated fbdev scrolling while logo is still shown
fbcon: Fix boundary checks for fbcon=vc:n1-n2 parameters
fbcon: Prevent that screen size is smaller than font size
fbdev: Disable sysfb device registration when removing conflicting FBs
fbdev: fbmem: Fix logo center image dx issue
fbmem: Check virtual screen sizes in fb_set_var()
firmware: arm_scpi: Ensure scpi_info is not assigned if the probe fails
firmware: sysfb: Add sysfb_disable() helper function
firmware: sysfb: Make sysfb_create_simplefb() return a pdev pointer
firmware: tegra: Fix error check return value of debugfs_create_file()
fix race between exit_itimers() and /proc/pid/timers
fix short copy handling in copy_mc_pipe_to_iter()
__follow_mount_rcu(): verify that mount_lock remains unchanged
fpga: altera-pr-ip: fix unsigned comparison with less than zero
fs: Add missing umask strip in vfs_tmpfile
fs: check FMODE_LSEEK to control internal pipe splicing
fs/remap: constrain dedupe of EOF blocks
fs: sendfile handles O_NONBLOCK of out_fd
ftrace/x86: Add back ftrace_expected assignment
fuse: ioctl: translate ENOSYS
fuse: limit nsec
fuse: Remove the control interface for virtio-fs
genelf: Use HAVE_LIBCRYPTO_SUPPORT, not the never defined HAVE_LIBCRYPTO
genirq: Don't return error on missing optional irq_request_resources()
genirq: GENERIC_IRQ_IPI depends on SMP
gfs2: Fix gfs2_file_buffered_write endless loop workaround
gpio: gpiolib-of: Fix refcount bugs in of_mm_gpiochip_add_data()
gpio: gpio-xilinx: Fix integer overflow
gpio: pca953x: only use single read/write for No AI mode
gpio: pca953x: use the correct range when do regmap sync
gpio: pca953x: use the correct register address when regcache sync during init
HID: alps: Declare U1_UNICORN_LEGACY support
HID: amd_sfh: Add NULL check for hid device
HID: amd_sfh: Don't show client init failed as error when discovery fails
HID: amd_sfh: Handle condition of "no sensors"
HID: cp2112: prevent a buffer overflow in cp2112_xfer()
HID: hid-input: add Surface Go battery quirk
HID: mcp2221: prevent a buffer overflow in mcp_smbus_write()
HID: wacom: Don't register pad_input for touch switch
HID: wacom: Only report rotation for art pen
hinic: Use the bitmap API when applicable
hugetlb: fix memoryleak in hugetlb_mcopy_atomic_pte
hwmon: (dell-smm) Add Dell XPS 13 7390 to fan control whitelist
hwmon: (drivetemp) Add module alias
hwmon: (sht15) Fix wrong assumptions in device remove callback
i2c: cadence: Change large transfer count reset logic to be unconditional
i2c: cadence: Support PEC for SMBus block read
i2c: cadence: Unregister the clk notifier in error path
i2c: Fix a potential use after free
i2c: mlxcpld: Fix register setting for 400KHz frequency
i2c: mux-gpmux: Add of_node_put() when breaking out of loop
i2c: mxs: Silence a clang warning
i2c: npcm: Correct slave role behavior
i2c: npcm: Remove own slave addresses 2:10
i2c: piix4: Fix a memory leak in the EFCH MMIO support
i40e: Fix dropped jumbo frames statistics
i40e: Fix erroneous adapter reinitialization during recovery process
i40e: Fix interface init with MSI interrupts (no MSI-X)
i40e: Fix VF's MAC Address change on VM
ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr()
iavf: Fix handling of dummy receive descriptors
iavf: Fix max_rate limiting
iavf: Fix 'tc qdisc show' listing too many queues
ibmvnic: Allow queueing resets during probe
ibmvnic: clear fop when retrying probe
ibmvnic: init init_done_rc earlier
ibmvnic: Properly dispose of all skbs during a failover.
ice: check (DD | EOF) bits on Rx descriptor rather than (EOP | RS)
ice: do not setup vlan for loopback VSI
icmp: Fix a data-race around sysctl_icmp_errors_use_inbound_ifaddr.
icmp: Fix a data-race around sysctl_icmp_ignore_bogus_error_responses.
icmp: Fix a data-race around sysctl_icmp_ratelimit.
icmp: Fix a data-race around sysctl_icmp_ratemask.
icmp: Fix data-races around sysctl.
icmp: Fix data-races around sysctl_icmp_echo_enable_probe.
ida: don't use BUG_ON() for debugging
ieee80211: add EHT 1K aggregation definitions
igc: Reinstate IGC_REMOVED logic and implement it properly
igmp: Fix a data-race around sysctl_igmp_max_memberships.
igmp: Fix data-races around sysctl_igmp_llm_reports.
igmp: Fix data-races around sysctl_igmp_max_msf.
igmp: Fix data-races around sysctl_igmp_qrv.
iio: accel: bma400: Fix the scale min and max macro values
iio: accel: bma400: Reordering of header files
iio: accel: mma8452: use the correct logic to get mma8452_data
iio: cros: Register FIFO callback after sensor is registered
iio: fix iio_format_avail_range() printing for none IIO_VAL_INT
iio: light: isl29028: Fix the warning in isl29028_remove()
ima: Fix a potential integer overflow in ima_appraise_measurement
ima: Fix potential memory leak in ima_init_crypto()
ima: force signature verification when CONFIG_KEXEC_SIG is configured
inet: add READ_ONCE(sk->sk_bound_dev_if) in INET_MATCH()
inetpeer: Fix data-races around sysctl.
Input: cpcap-pwrbutton - handle errors from platform_get_irq()
Input: goodix - add a goodix.h header file
Input: goodix - change goodix_i2c_write() len parameter type to int
Input: goodix - refactor reset handling
Input: goodix - try not to touch the reset-pin on x86/ACPI devices
Input: gscps2 - check return value of ioremap() in gscps2_probe()
intel_idle: Disable IBRS during long idle
intel_th: Fix a resource leak in an error handling path
intel_th: msu: Fix vmalloced buffers
intel_th: msu-sink: Potential dereference of null pointer
intel_th: pci: Add Meteor Lake-P support
intel_th: pci: Add Raptor Lake-S CPU support
intel_th: pci: Add Raptor Lake-S PCH support
interconnect: imx: fix max_node_id
iommu/arm-smmu: qcom_iommu: Add of_node_put() when breaking out of loop
iommu/exynos: Handle failed IOMMU device registration properly
iommu/vt-d: avoid invalid memory access via node_online(NUMA_NO_NODE)
iommu/vt-d: Fix PCI bus rescan device hot add
io_uring: avoid io-wq -EAGAIN looping for !IOPOLL
io_uring: ensure that fsnotify is always called
io_uring: mem-account pbuf buckets
ip: Fix a data-race around sysctl_fwmark_reflect.
ip: Fix a data-race around sysctl_ip_autobind_reuse.
ip: Fix data-races around sysctl_ip_default_ttl.
ip: Fix data-races around sysctl_ip_fwd_update_priority.
ip: Fix data-races around sysctl_ip_fwd_use_pmtu.
ip: Fix data-races around sysctl_ip_nonlocal_bind.
ip: Fix data-races around sysctl_ip_no_pmtu_disc.
ip: Fix data-races around sysctl_ip_prot_sock.
ip: fix dflt addr selection for connected nexthop
ipv4: Fix a data-race around sysctl_fib_multipath_use_neigh.
ipv4: Fix a data-race around sysctl_fib_sync_mem.
ipv4: Fix data-races around sysctl_fib_multipath_hash_fields.
ipv4: Fix data-races around sysctl_fib_multipath_hash_policy.
ipv4: Fix data-races around sysctl_fib_notify_on_flag_change.
ipv4: Fix data-races around sysctl_ip_dynaddr.
ipv4/tcp: do not use per netns ctl sockets
ipv6/addrconf: fix a null-ptr-deref bug for ip6_ptr
ipv6: add READ_ONCE(sk->sk_bound_dev_if) in INET6_MATCH()
irqchip/gic-v3: Ensure pseudo-NMIs have an ISB between ack and handling
irqchip/gic-v3: Refactor ISB + EOIR at ack time
irqchip/mips-gic: Check the return value of ioremap() in gic_of_init()
irqchip/mips-gic: Only register IPI domain when SMP is enabled
irqchip: or1k-pic: Undefine mask_ack for level triggered hardware
irqdomain: Report irq number for NOMAP domains
iwlwifi: fw: uefi: add missing include guards
ixgbe: Add locking to prevent panic when setting sriov_numvfs to zero
jbd2: fix assertion 'jh->b_frozen_data == NULL' failure when journal aborted
jbd2: fix outstanding credits assert in jbd2_journal_commit_transaction()
kasan: test: Silence GCC 12 warnings
kexec, KEYS, s390: Make use of built-in and secondary keyring for signature verification
KEYS: asymmetric: enforce SM2 signature use pkey algo
kfifo: fix kfifo_to_user() return type
kprobes: Forbid probing on trampoline and BPF code areas
ksmbd: fix memory leak in smb2_handle_negotiate
ksmbd: fix use-after-free bug in smb2_tree_disconect
ksmbd: prevent out of bound read for SMB2_TREE_CONNNECT
ksmbd: use SOCK_NONBLOCK type for kernel_accept()
KVM: arm64: Don't return from void function
KVM: Don't create VM debugfs files outside of the VM directory
KVM: Don't null dereference ops->destroy
KVM: Don't set Accessed/Dirty bits for ZERO_PAGE
KVM: emulate: do not adjust size of fastop and setcc subroutines
KVM: Initialize debugfs_dentry when a VM is created to avoid NULL deref
KVM: nVMX: Account for KVM reserved CR4 bits in consistency checks
KVM: nVMX: Always enable TSC scaling for L2 when it was enabled for L1
KVM: nVMX: Attempt to load PERF_GLOBAL_CTRL on nVMX xfer iff it exists
KVM: nVMX: Inject #UD if VMXON is attempted with incompatible CR0/CR4
KVM: nVMX: Let userspace set nVMX MSR to any _host_ supported value
KVM: nVMX: Set UMIP bit CR4_FIXED1 MSR when emulating UMIP
KVM: nVMX: Snapshot pre-VM-Enter BNDCFGS for !nested_run_pending case
KVM: nVMX: Snapshot pre-VM-Enter DEBUGCTL for !nested_run_pending case
KVM: s390: pv: don't present the ecall interrupt twice
KVM: s390: pv: leak the topmost page table when destroy fails
KVM: s390x: fix SCK locking
KVM: selftests: Fix target thread to be migrated in rseq_test
KVM: selftests: Make hyperv_clock selftest more stable
KVM: set_msr_mce: Permit guests to ignore single-bit ECC errors
KVM: SVM: Don't BUG if userspace injects an interrupt with GIF=0
KVM: SVM: Stuff next_rip on emulated INT3 injection if NRIPS is supported
KVM: SVM: Unwind "speculative" RIP advancement if INTn injection "fails"
KVM: use __vcalloc for very large allocations
KVM: VMX: Add helper to check if the guest PMU has PERF_GLOBAL_CTRL
KVM: VMX: Convert launched argument to flags
KVM: VMX: Fix IBRS handling after vmexit
KVM: VMX: Flatten __vmx_vcpu_run()
KVM: VMX: Mark all PERF_GLOBAL_(OVF)_CTRL bits reserved if there's no vPMU
KVM: VMX: Prevent guest RSB poisoning attacks with eIBRS
KVM: x86: do not report a vCPU as preempted outside instruction boundaries
KVM: x86: do not report preemption if the steal time cache is stale
KVM: x86: do not set st->preempted when going back to user space
KVM: x86: fix typo in __try_cmpxchg_user causing non-atomicness
KVM: x86: Fully initialize 'struct kvm_lapic_irq' in kvm_pv_kick_cpu_op()
KVM: x86: Mark TSS busy during LTR emulation _after_ all fault checks
KVM: x86/mmu: Use common TDP MMU zap helper for MMU notifier unmap hook
KVM: x86/mmu: Use yield-safe TDP MMU root iter in MMU notifier unmapping
KVM: x86/pmu: Ignore pmu->global_ctrl check if vPMU doesn't support global_ctrl
KVM: x86/pmu: Introduce the ctrl_mask value for fixed counter
KVM: x86: revalidate steal time cache if MSR value changes
KVM: x86: Set error code to segment selector on LLDT/LTR non-canonical #GP
KVM: x86: Signal #GP, not -EPERM, on bad WRMSR(MCi_CTL/STATUS)
KVM: x86: Split kvm_is_valid_cr4() and export only the non-vendor bits
KVM: x86/svm: add __GFP_ACCOUNT to __sev_dbg_{en,de}crypt_user()
KVM: x86: Tag kvm_mmu_x86_module_init() with __init
KVM: x86: Use __try_cmpxchg_user() to emulate atomic accesses
libbpf: fix an snprintf() overflow check
libbpf: Fix the name of a reused map
lib/smp_processor_id: fix imbalanced instrumentation_end() call
lib/test_hmm: avoid accessing uninitialized pages
lockd: detect and reject lock arguments that overflow
lockd: fix nlm_close_files
lockdown: Fix kexec lockdown bypass with ima policy
lockd: set fl_owner when unlocking files
locking/csd_lock: Change csdlock_debug from early_param to __setup
locking/lockdep: Fix lockdep_init_map_*() confusion
locking/rwsem: Allow slowpath writer to ignore handoff bit if not set by first waiter
mac80211: fix a memory leak where sta_info is not freed
macintosh/adb: fix oob read in do_adb_query() function
macsec: always read MACSEC_SA_ATTR_PN as a u64
macsec: fix error message in macsec_add_rxsa and _txsa
macsec: fix NULL deref in macsec_add_rxsa
macsec: limit replay window size with XPN
Makefile: link with -z noexecstack --no-warn-rwx-segments
mbcache: add functions to delete entry if unused
mbcache: don't reclaim used entries
md-raid10: fix KASAN warning
md-raid: destroy the bitmap after destroying the thread
media: atmel: atmel-sama7g5-isc: fix warning in configs without OF
media: cedrus: h265: Fix flag name
media: cedrus: hevc: Add check for invalid timestamp
media: davinci: vpif: fix use-after-free on driver unbind
media: driver/nxp/imx-jpeg: fix a unexpected return value problem
media: hantro: postproc: Fix motion vector space size
media: hantro: Simplify postprocessor
media: hdpvr: fix error value returns in hdpvr_read
media: hevc: Embedded indexes in RPS
media: imx-jpeg: Add pm-runtime support for imx-jpeg
media: imx-jpeg: Align upwards buffer size
media: imx-jpeg: Correct some definition according specification
media: imx-jpeg: Disable slot interrupt when frame done
media: imx-jpeg: Handle source change in a function
media: imx-jpeg: Identify and handle precision correctly
media: imx-jpeg: Implement drain using v4l2-mem2mem helpers
media: imx-jpeg: Leave a blank space before the configuration data
media: imx-jpeg: Refactor function mxc_jpeg_parse
media: imx-jpeg: Set V4L2_BUF_FLAG_LAST at eos
media: imx-jpeg: Support dynamic resolution change
media: imx-jpeg: use NV12M to represent non contiguous NV12
media: ir_toy: prevent device from hanging during transmit
media: omap3isp: Use struct_group() for memcpy() region
media: [PATCH] pci: atomisp_cmd: fix three missing checks on list iterator
media: platform: mtk-mdp: Fix mdp_ipi_comm structure alignment
media: staging: media: hantro: Fix typos
mediatek: mt76: eeprom: fix missing of_node_put() in mt76_find_power_limits_node()
mediatek: mt76: mac80211: Fix missing of_node_put() in mt76_led_init()
media: tw686x: Fix memory leak in tw686x_video_init
media: tw686x: Register the irq at the end of probe
media: v4l2-mem2mem: prevent pollerr when last_buffer_dequeued is set
memory: renesas-rpc-if: Avoid unaligned bus access for HyperFlash
memregion: Fix memregion_free() fallback definition
memremap: remove support for external pgmap refcounts
memstick/ms_block: Fix a memory leak
memstick/ms_block: Fix some incorrect memory allocation
meson-mx-socinfo: Fix refcount leak in meson_mx_socinfo_init
mfd: max77620: Fix refcount leak in max77620_initialise_fps
mfd: t7l66xb: Drop platform disable callback
MIPS: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK
MIPS: Fixed __debug_virt_addr_valid()
MIPS: vdso: Utilize __pa() for gic_pfn
misc: rtsx: Fix an error handling path in rtsx_pci_probe()
misc: rtsx_usb: fix use of dma mapped buffer for usb bulk transfer
misc: rtsx_usb: set return value in rsp_buf alloc err path
misc: rtsx_usb: use separate command and response buffers
mlxsw: spectrum_router: Fix IPv4 nexthop gateway indication
mmc: block: Add single read for 4k sector cards
mmc: cavium-octeon: Add of_node_put() when breaking out of loop
mmc: cavium-thunderx: Add of_node_put() when breaking out of loop
mmc: mxcmmc: Silence a clang warning
mmc: renesas_sdhi: Get the reset handle early in the probe
mmc: sdhci-of-at91: fix set_uhs_signaling rewriting of MC1R
mmc: sdhci-of-esdhc: Fix refcount leak in esdhc_signal_voltage_switch
mm/filemap: fix UAF in find_lock_entries
mm: fix page leak with multiple threads mapping the same page
mm/hmm: fault non-owner device private entries
mm/hwpoison: avoid the impact of hwpoison_filter() return value on mce handler
mm/hwpoison: fix race between hugetlb free/demotion and memory_failure_hugetlb()
mm/hwpoison: mf_mutex for soft offline and unpoison
mm/memory-failure.c: fix race with changing page compound again
mm/mempolicy: fix get_nodes out of bound access
mm/mempolicy: fix uninit-value in mpol_rebind_policy()
mm/memremap: fix memunmap_pages() race with get_dev_pagemap()
mm/mmap.c: fix missing call to vm_unacct_memory in mmap_region
mm/pagealloc: sysctl: change watermark_scale_factor max limit to 30%
mm/slub: add missing TID updates on slab deactivation
mm: split huge PUD on wp_huge_pud fallback
mm: sysctl: fix missing numa_stat when !CONFIG_HUGETLB_PAGE
mm: userfaultfd: fix UFFDIO_CONTINUE on fallocated shmem pages
mm: vmalloc: introduce array allocation functions
module: change to print useful messages from elf_validity_check()
module: fix [e_shstrndx].sh_size=0 OOB access
mt76: fix use-after-free by removing a non-RCU wcid pointer
mt76: mt7615: do not update pm stats in case of error
mt76: mt76_connac: fix MCU_CE_CMD_SET_ROC definition error
mt76: mt76x02u: fix possible memory leak in __mt76x02u_mcu_send_msg
mt76: mt7921: do not always disable fw runtime-pm
mt76: mt7921e: fix possible probe failure after reboot
mt76: mt7921: enlarge maximum VHT MPDU length to 11454
mt76: mt7921: fix aggregation subframes setting to HE max
mt76: mt7921: fix a possible race enabling/disabling runtime-pm
mt76: mt7921: Fix the error handling path of mt7921_pci_probe()
mt76: mt7921: get rid of mt7921_mac_set_beacon_filter
mt76: mt7921: introduce mt7921_mcu_set_beacon_filter utility routine
mt76: mt7921: use physical addr to unify register access
mtd: dataflash: Add SPI ID table
mtd: maps: Fix refcount leak in ap_flash_init
mtd: maps: Fix refcount leak in of_flash_probe_versatile
mtd: parsers: ofpart: Fix refcount leak in bcm4908_partitions_fw_offset
mtd: partitions: Fix refcount leak in parse_redboot_of
mtd: rawnand: arasan: Fix clock rate in NV-DDR
mtd: rawnand: arasan: Update NAND bus clock instead of system clock
mtd: rawnand: gpmi: Set WAIT_FOR_READY timeout based on program/erase times
mtd: rawnand: gpmi: validate controller clock rate
mtd: rawnand: meson: Fix a potential double free issue
mtd: sm_ftl: Fix deadlock caused by cancel_work_sync in sm_release
mtd: spi-nor: fix spi_nor_spimem_setup_op() call in spi_nor_erase_{sector,chip}()
mtd: spi-nor: Skip erase logic when SPI_NOR_NO_ERASE is set
mtd: st_spi_fsm: Add a clk_disable_unprepare() in .probe()'s error path
mwifiex: fix sleep in atomic context bugs caused by dev_coredumpv
mwifiex: Ignore BTCOEX events from the 88W8897 firmware
net: 9p: fix refcount leak in p9_read_work() error handling
net/9p: Initialize the iounit field during fid creation
net: allow unbound socket for packets in VRF when tcp_l3mdev_accept set
net: atlantic: remove aq_nic_deinit() when resume
net: atlantic: remove deep parameter on suspend/resume functions
netdevsim: Avoid allocation warnings triggered from user space
netdevsim: fib: Fix reference count leak on route deletion failure
net: dsa: microchip: ksz_common: Fix refcount leak bug
net: dsa: qca8k: reset cpu port on MTU change
net: dsa: sja1105: silent spi_device_id warnings
net: dsa: vitesse-vsc73xx: silent spi_device_id warnings
net: ethernet: ti: am65-cpsw: Fix devlink port register sequence
netfilter: br_netfilter: do not skip all hooks with 0 priority
netfilter: nf_log: incorrect offset to network header
netfilter: nf_queue: do not allow packet truncation below transport header offset
netfilter: nf_tables: convert pktinfo->tprot_set to flags field
netfilter: nf_tables: do not allow CHAIN_ID to refer to another table
netfilter: nf_tables: do not allow RULE_ID to refer to another chain
netfilter: nf_tables: do not allow SET_ID to refer to another table
netfilter: nf_tables: fix null deref due to zeroed list head
netfilter: nf_tables: replace BUG_ON by element length check
netfilter: nf_tables: stricter validation of element data
netfilter: nft_payload: don't allow th access for fragments
netfilter: nft_payload: support for inner header matching / mangling
netfilter: nft_set_pipapo: release elements in clone from abort path
netfilter: xtables: Bring SPDX identifier back
net: Fix data-races around sysctl_mem.
net: Fix data-races around sysctl_[rw]mem(_offset)?.
net: fix sk_wmem_schedule() and sk_rmem_schedule() errors
net: ftgmac100: Hold reference returned by of_get_child_by_name()
net: hinic: avoid kernel hung in hinic_get_stats64()
net: hinic: fix bug that ethtool get wrong stats
net: ionic: fix error check for vlan flags in ionic_set_nic_features()
net: ipv4: use kfree_skb_reason() in ip_rcv_core()
net: ipv4: use kfree_skb_reason() in ip_rcv_finish_core()
net: macsec: fix potential resource leak in macsec_add_rxsa() and macsec_add_txsa()
net: mld: fix reference count leak in mld_{query | report}_work()
net/mlx5: Adjust log_max_qp to be 18 at most
net/mlx5e: Check action fwd/drop flag exists also for nic flows
net/mlx5e: Fix capability check for updating vnic env counters
net/mlx5e: Fix enabling sriov while tc nic rules are offloaded
net/mlx5e: Fix the value of MLX5E_MAX_RQ_NUM_MTTS
net/mlx5e: kTLS, Fix build time constant test in RX
net/mlx5e: kTLS, Fix build time constant test in TX
net/mlx5e: Remove WARN_ON when trying to offload an unsupported TLS cipher/version
net/mlx5e: Ring the TX doorbell on DMA errors
net/mlx5e: Split actions_match_supported() into a sub function
net/mlx5e: TC, Reject rules with drop and modify hdr action
net/mlx5e: TC, Reject rules with forward and drop actions
net: netfilter: use kfree_drop_reason() for NF_DROP
net: pcs: xpcs: propagate xpcs_read error to xpcs_get_state_c37_sgmii
net: phy: smsc: Disable Energy Detect Power-Down in interrupt mode
net: ping6: Fix memleak in ipv6_renew_options().
net: rose: fix netdev reference changes
net: rose: fix UAF bug caused by rose_t0timer_expiry
net_sched: cls_route: remove from list when handle is 0
net: sfp: fix memory leak in sfp_probe()
net: skb_drop_reason: add document for drop reasons
net: skb: introduce kfree_skb_reason()
net: skb: use kfree_skb_reason() in tcp_v4_rcv()
net: skb: use kfree_skb_reason() in __udp4_lib_rcv()
net: socket: rename SKB_DROP_REASON_SOCKET_FILTER
net: sock: tracing: Fix sock_exceed_buf_limit not to dereference stale pointer
net: stmmac: dwc-qos: Disable split header for Tegra194
net: stmmac: fix dma queue left shift overflow issue
net: stmmac: fix leaks in probe
net: stmmac: fix pm runtime issue in stmmac_dvr_remove()
net: stmmac: fix unbalanced ptp clock issue in suspend/resume flow
net: stmmac: remove redunctant disable xPCS EEE call
net: sungem_phy: Add of_node_put() for reference returned by of_get_parent()
net: tipc: fix possible refcount leak in tipc_sk_create()
net/tls: Check for errors in tls_device_init
net/tls: Fix race in TLS device down flow
net/tls: Remove the context from the list in tls_device_down
net: tun: split run_ebpf_filter() and pskb_trim() into different "if statement"
net: usb: ax88179_178a needs FLAG_SEND_ZLP
net: usb: make USB_RTL8153_ECM non user configurable
nexthop: Fix data-races around nexthop_compat_mode.
NFC: nxp-nci: don't print header length mismatch on i2c error
NFSD: Clean up the show_nf_flags() macro
NFSD: COMMIT operations must not return NFS?ERR_INVAL
NFSD: De-duplicate net_generic(nf->nf_net, nfsd_net_id)
nfsd: eliminate the NFSD_FILE_BREAK_* flags
nilfs2: fix incorrect masking of permission flags for symlinks
nohz/full, sched/rt: Fix missed tick-reenabling bug in dequeue_task_rt()
nouveau/svm: Fix to migrate all requested pages
ntfs: fix use-after-free in ntfs_ucsncmp()
null_blk: fix ida error handling in null_add_dev()
nvme: catch -ENODEV from nvme_revalidate_zones again
nvme: check for duplicate identifiers earlier
nvme: define compat_ioctl again to unbreak 32-bit userspace.
nvme: disable namespace access for unsupported metadata
nvme: don't return an error from nvme_configure_metadata
nvme: fix block device naming collision
nvme: fix regression when disconnect a recovering ctrl
nvme-pci: phison e16 has bogus namespace ids
nvme-tcp: always fail a request when sending it failed
nvme: use command_id instead of req->tag in trace_nvme_complete_rq()
objtool: Add entry UNRET validation
objtool: Classify symbols
objtool: Default ignore INT3 for unreachable
objtool: Explicitly avoid self modifying code in .altinstr_replacement
objtool: Introduce CFI hash
objtool: Re-add UNWIND_HINT_{SAVE_RESTORE}
objtool: Shrink struct instruction
objtool: skip non-text sections when adding return-thunk sites
objtool: Treat .text.__x86.* as noinstr
objtool: Update Retpoline validation
objtool,x86: Replace alternatives with .retpoline_sites
octeontx2-pf: cn10k: Fix egress ratelimit configuration
octeontx2-pf: Fix UDP/TCP src and dst port tc filters
of: check previous kernel's ima-kexec-buffer against memory bounds
of: device: Fix missing of_node_put() in of_dma_set_restricted_buffer
of/fdt: declared return type does not match actual return type
opp: Fix error check in dev_pm_opp_attach_genpd()
ovl: drop WARN_ON() dentry is NULL in ovl_encode_fh()
page_alloc: fix invalid watermark check on a negative value
parisc: Check the return value of ioremap() in lba_driver_probe()
parisc: Drop pa_swapper_pg_lock spinlock
parisc: Fix device names in /proc/iomem
parisc: io_pgetevents_time64() needs compat syscall in 32-bit compat mode
PCI: Add defines for normal and subtractive PCI bridges
PCI/AER: Iterate over error counters instead of error strings
PCI: dwc: Add unroll iATU space support to dw_pcie_disable_atu()
PCI: dwc: Always enable CDM check if "snps,enable-cdm-check" exists
PCI: dwc: Deallocate EPC memory on dw_pcie_ep_init() errors
PCI: dwc: Disable outbound windows only for controllers using iATU
PCI: dwc: Set INCREASE_REGION_SIZE flag based on limit address
PCI: dwc: Stop link on host_init errors and de-initialization
PCI: endpoint: Don't stop controller when unbinding endpoint function
PCI: hv: Fix hv_arch_irq_unmask() for multi-MSI
PCI: hv: Fix interrupt mapping for multi-MSI
PCI: hv: Fix multi-MSI to allow more than one MSI vector
PCI: hv: Reuse existing IRTE allocation in compose_msi_msg()
PCI: mediatek-gen3: Fix refcount leak in mtk_pcie_init_irq_domains()
PCI: microchip: Fix refcount leak in mc_pcie_init_irq_domains()
PCI: pciehp: Ignore Link Down/Up caused by error-induced Hot Reset
PCI/portdrv: Don't disable AER reporting in get_port_device_capability()
PCI/portdrv: Rename pm_iter() to pcie_port_device_iter()
PCI: qcom: Power on PHY before IPQ8074 DBI register accesses
PCI: qcom: Set up rev 2.1.0 PARF_PHY before enabling clocks
PCI: tegra194: Fix link up retry sequence
PCI: tegra194: Fix PM error handling in tegra_pcie_config_ep()
PCI: tegra194: Fix Root Port interrupt handling
perf/core: Fix data race between perf_event_set_output() and perf_mmap_close()
perf symbol: Correct address for bss symbols
perf symbol: Fail to read phdr workaround
perf tests: Fix Convert perf time to TSC test for hybrid
perf tools: Fix dso_id inode generation comparison
phy: samsung: exynosautov9-ufs: correct TSRV register configurations
phy: stm32: fix error return in stm32_usbphyc_phy_init
pinctrl: armada-37xx: Convert to use dev_err_probe()
pinctrl: armada-37xx: Make use of the devm_platform_ioremap_resource()
pinctrl: armada-37xx: use raw spinlocks for regmap to avoid invalid wait context
pinctrl: armada-37xx: Use temporary variable for struct device
pinctrl: aspeed: Fix potential NULL dereference in aspeed_pinmux_set_mux()
pinctrl: ralink: Check for null return of devm_kcalloc
pinctrl: ralink: rename MT7628(an) functions to MT76X8
pinctrl: ralink: rename pinctrl-rt2880 to pinctrl-ralink
pinctrl: stm32: fix optional IRQ support to gpios
pinctrl: sunxi: a83t: Fix NAND function name for some pins
pinctrl: sunxi: sunxi_pconf_set: use correct offset
platform/chrome: cros_ec: Always expose last resume result
platform/olpc: Fix uninitialized data in debugfs write
platform/x86: hp-wmi: Ignore Sanitization Mode event
platform/x86: wmi: Fix driver->notify() vs ->probe() race
platform/x86: wmi: introduce helper to convert driver to WMI driver
platform/x86: wmi: Replace read_takes_no_args with a flags field
PM: domains: Ensure genpd_debugfs_dir exists before remove
PM: hibernate: defer device probing when resuming from hibernation
PM: runtime: Redefine pm_runtime_release_supplier()
pNFS/flexfiles: Report RDMA connection errors to the server
posix-cpu-timers: Cleanup CPU timers before freeing them during exec
powerpc/32: Call mmu_mark_initmem_nx() regardless of data block mapping.
powerpc/32: Do not allow selection of e5500 or e6500 CPUs on PPC32
powerpc/32: Don't use lmw/stmw for saving/restoring non volatile regs
powerpc/64s: Disable stack variable initialisation for prom_init
powerpc/cell/axon_msi: Fix refcount leak in setup_msi_msg_address
powerpc: Fix eh field when calling lwarx on PPC32
powerpc: flexible GPR range save/restore macros
powerpc/fsl-pci: Fix Class Code of PCIe Root Port
powerpc/iommu: Fix iommu_table_in_use for a small default DMA window case
powerpc/pci: Fix PHB numbering when using opal-phbid
powerpc/pci: Prefer PCI domain assignment via DT 'linux,pci-domain' and alias
powerpc/perf: Optimize clearing the pending PMI and remove WARN_ON for PMI check in power_pmu_disable
powerpc/powernv: Avoid crashing if rng is NULL
powerpc/powernv: delay rng platform device creation until later in boot
powerpc/powernv/kvm: Use darn for H_RANDOM on Power9
powerpc/ptdump: Fix display of RW pages on FSL_BOOK3E
powerpc/spufs: Fix refcount leak in spufs_init_isolated_loader
powerpc/tm: Fix more userspace r13 corruption
powerpc/xive: Fix refcount leak in xive_get_max_prio
powerpc/xive/spapr: correct bitmap allocation size
power/reset: arm-versatile: Fix refcount leak in versatile_reboot_probe
proc: fix a dentry lock race between release_task and lookup
profiling: fix shift too large makes kernel panic
pwm: lpc18xx: Fix period handling
pwm: lpc18xx-sct: Reduce number of devm memory allocations
pwm: lpc18xx-sct: Simplify driver by not using pwm_[gs]et_chip_data()
pwm: sifive: Ensure the clk is enabled exactly once per running PWM
pwm: sifive: Shut down hardware only after pwmchip_remove() completed
pwm: sifive: Simplify offset calculation for PWMCMP registers
qed: Improve the stack space of filter_config()
r8152: fix a WOL issue
r8169: fix accessing unset transport header
raw: Fix a data-race around sysctl_raw_l3mdev_accept.
rcutorture: Don't cpuhp_remove_state() if cpuhp_setup_state() failed
rcutorture: Fix ksoftirqd boosting timing and iteration
rcutorture: Warn on individual rcu_torture_init() error conditions
RDMA/hfi1: fix potential memory leak in setup_base_ctxt()
RDMA/hns: Fix incorrect clearing of interrupt status register
RDMA/irdma: Do not advertise 1GB page size for x722
RDMA/irdma: Fix a window for use-after-free
RDMA/irdma: Fix setting of QP context err_rq_idx_valid field
RDMA/irdma: Fix sleep from invalid context BUG
RDMA/irdma: Fix VLAN connection with wildcard address
RDMA/mlx5: Add missing check for return value in get namespace flow
RDMA/qedr: Fix potential memory leak in __qedr_alloc_mr()
RDMA/rtrs-clt: Rename rtrs_clt_sess to rtrs_clt_path
RDMA/rtrs-clt: Replace list_next_or_null_rr_rcu with an inline function
RDMA/rtrs: Do not allow sessname to contain special symbols / and .
RDMA/rtrs: Fix warning when use poll mode on client side.
RDMA/rtrs: Introduce destroy_cq helper
RDMA/rtrs: Rename rtrs_sess to rtrs_path
RDMA/rtrs: Replace duplicate check with is_pollqueue helper
RDMA/rtrs-srv: Fix modinfo output for stringify
RDMA/rtrs-srv: Rename rtrs_srv_sess to rtrs_srv_path
RDMA/rxe: Add memory barriers to kernel queues
RDMA/rxe: Fix deadlock in rxe_do_local_ops()
RDMA/rxe: Fix error unwind in rxe_create_qp()
RDMA/rxe: Fix mw bind to allow any consumer key portion
RDMA/rxe: For invalidate compare according to set keys in mr
RDMA/rxe: Remove the is_user members of struct rxe_sq/rxe_rq/rxe_srq
RDMA/siw: Fix duplicated reported IW_CM_EVENT_CONNECT_REPLY event
RDMA/srpt: Duplicate port name members
RDMA/srpt: Fix a use-after-free
RDMA/srpt: Introduce a reference count in struct srpt_device
regulator: of: Fix refcount leak bug in of_get_regulation_constraints()
regulator: qcom_smd: Fix pm8916_pldo range
remoteproc: imx_rproc: Fix refcount leak in imx_rproc_addr_init
remoteproc: k3-r5: Fix refcount leak in k3_r5_cluster_of_init
remoteproc: qcom: pas: Check if coredump is enabled
remoteproc: qcom: wcnss: Fix handling of IRQs
remoteproc: sysmon: Wait for SSCTL service to come up
reset: Fix devm bulk optional exclusive control getter
Revert "can: xilinx_can: Limit CANFD brp to 2"
Revert "e1000e: Fix possible HW unit hang after an s0ix exit"
Revert "evm: Fix memleak in init_desc"
Revert "mm/memory-failure.c: fix race with changing page compound again"
Revert "mt76: mt7921e: fix possible probe failure after reboot"
Revert "mt76: mt7921: Fix the error handling path of mt7921_pci_probe()"
Revert "mtd: rawnand: gpmi: Fix setting busy timeout setting"
Revert "mwifiex: fix sleep in atomic context bugs caused by dev_coredumpv"
Revert "net: usb: ax88179_178a needs FLAG_SEND_ZLP"
Revert "ocfs2: mount shared volume without ha stack"
Revert "pNFS: nfs3_set_ds_client should set NFS_CS_NOPING"
Revert "s390/smp: enforce lowcore protection on CPU restart"
Revert "selftests/bpf: Add test for bpf_timer overwriting crash"
Revert "selftest/vm: verify mmap addr in mremap_test"
Revert "selftest/vm: verify remap destination address in mremap_test"
Revert "serial: 8250_mtk: Make sure to select the right FEATURE_SEL"
Revert "serial: sc16is7xx: Clear RS485 bits in the shutdown"
Revert "tcp: change pingpong threshold to 3"
riscv: add as-options for modules with assembly compontents
RISC-V: Add modules to virtual kernel memory layout dump
riscv: defconfig: enable DRM_NOUVEAU
RISC-V: defconfigs: Set CONFIG_FB=y, for FB console
RISC-V: Fixup get incorrect user mode PC for kernel mode regs
RISC-V: Fixup schedule out issue in machine_crash_shutdown()
RISC-V: kexec: Fixup use of smp_processor_id() in preemptible context
riscv/mm: Add XIP_FIXUP for riscv_pfn_base
riscv: set default pm_power_off to NULL
riscv:uprobe fix SR_SPIE set/clear handling
rpmsg: char: Add mutex protection for rpmsg_eptdev_open()
rpmsg: mtk_rpmsg: Fix circular locking dependency
rpmsg: qcom_smd: Fix refcount leak in qcom_smd_parse_edge
rtc: rx8025: fix 12/24 hour mode detection on RX-8035
rxrpc: Fix locking issue
s390/archrandom: prevent CPACF trng invocations in interrupt context
s390/boot: allocate amode31 section in decompressor
s390/crash: fix incorrect number of bytes to copy to user space
s390/dump: fix old lowcore virtual vs physical address confusion
s390/dump: fix os_info virtual vs physical address confusion
s390/maccess: fix semantics of memcpy_real() and its callers
s390/maccess: rework absolute lowcore accessors
s390/setup: preserve memory at OLDMEM_BASE and OLDMEM_SIZE
s390/setup: use physical pointers for memblock_reserve()
s390/smp: cleanup control register update routines
s390/smp: cleanup target CPU callback starting
s390/smp: enforce lowcore protection on CPU restart
s390/zcore: fix race when reading from hardware system area
sched/core: Always flush pending blk_plug
sched/core: Do not requeue task on CPU excluded from cpus_mask
sched, cpuset: Fix dl_cpu_busy() panic due to empty cs->cpus_allowed
sched/deadline: Fix BUG_ON condition for deboosted tasks
sched/deadline: Merge dl_task_can_attach() and dl_cpu_busy()
sched/fair: Introduce SIS_UTIL to search idle CPU based on sum of util_avg
sched: Fix the check of nr_running at queue wakelist
sched: Remove the limitation of WF_ON_CPU on wakelist if wakee cpu is idle
scripts/faddr2line: Fix vmlinux detection on arm64
scripts/gdb: fix 'lx-dmesg' on 32 bits arch
scripts/gdb: lx-dmesg: read records individually
scsi: core: Fix warning in scsi_alloc_sgtables()
scsi: hisi_sas: Limit max hw sectors for v3 HW
scsi: hisi_sas: Use managed PCI functions
scsi: iscsi: Add helper to remove a session from the kernel
scsi: iscsi: Allow iscsi_if_stop_conn() to be called from kernel
scsi: iscsi: Fix session removal on shutdown
scsi: lpfc: Fix EEH support for NVMe I/O
scsi: lpfc: Fix element offset in __lpfc_sli_release_iocbq_s4()
scsi: lpfc: Fix locking for lpfc_sli_iocbq_lookup()
scsi: lpfc: Remove extra atomic_inc on cmd_pending in queuecommand after VMID
scsi: lpfc: Resolve some cleanup issues following SLI path refactoring
scsi: lpfc: SLI path split: Refactor fast and slow paths to native SLI4
scsi: lpfc: SLI path split: Refactor lpfc_iocbq
scsi: lpfc: SLI path split: Refactor SCSI paths
scsi: megaraid: Clear READ queue map's nr_queues
scsi: mpt3sas: Stop fw fault watchdog work item during system shutdown
scsi: qla2xxx: Check correct variable in qla24xx_async_gffid()
scsi: qla2xxx: edif: Add retry for ELS passthrough
scsi: qla2xxx: edif: Fix inconsistent check of db_flags
scsi: qla2xxx: edif: Fix n2n discovery issue with secure target
scsi: qla2xxx: edif: Fix n2n login retry for secure device
scsi: qla2xxx: edif: Fix no login after app start
scsi: qla2xxx: edif: Fix no logout on delete for N2N
scsi: qla2xxx: edif: Fix potential stuck session in sa update
scsi: qla2xxx: edif: Fix session thrash
scsi: qla2xxx: edif: Reduce connection thrash
scsi: qla2xxx: edif: Reduce disruption due to multiple app start
scsi: qla2xxx: edif: Reduce Initiator-Initiator thrashing
scsi: qla2xxx: edif: Replace list_for_each_safe with list_for_each_entry_safe
scsi: qla2xxx: edif: Send LOGO for unexpected IKE message
scsi: qla2xxx: edif: Synchronize NPIV deletion with authentication application
scsi: qla2xxx: edif: Tear down session if keys have been removed
scsi: qla2xxx: Fix crash due to stale SRB access around I/O timeouts
scsi: qla2xxx: Fix crash during module load unload test
scsi: qla2xxx: Fix discovery issues in FC-AL topology
scsi: qla2xxx: Fix erroneous mailbox timeout after PCI error injection
scsi: qla2xxx: Fix excessive I/O error messages by default
scsi: qla2xxx: Fix imbalance vha->vref_count
scsi: qla2xxx: Fix incorrect display of max frame size
scsi: qla2xxx: Fix laggy FC remote port session recovery
scsi: qla2xxx: Fix losing FCP-2 targets during port perturbation tests
scsi: qla2xxx: Fix losing FCP-2 targets on long port disable with I/Os
scsi: qla2xxx: Fix losing target when it reappears during delete
scsi: qla2xxx: Fix loss of NVMe namespaces after driver reload test
scsi: qla2xxx: Move heartbeat handling from DPC thread to workqueue
scsi: qla2xxx: Turn off multi-queue for 8G adapters
scsi: qla2xxx: Wind down adapter after PCIe error
scsi: qla2xxx: Zero undefined mailbox IN registers
scsi: Revert "scsi: qla2xxx: Fix disk failure to rediscover"
scsi: sg: Allow waiting for commands to complete on removed device
scsi: smartpqi: Fix DMA direction for RAID requests
scsi: ufs: core: Correct ufshcd_shutdown() flow
scsi: ufs: core: Drop loglevel of WriteBoost message
scsi: ufs: host: Hold reference returned by of_parse_phandle()
scsi: zfcp: Fix missing auto port scan and thus missing target ports
sctp: fix sleep in atomic context bug in timer handlers
sctp: leave the err path free in sctp_stream_init to sctp_stream_free
secretmem: fix unhandled fault in truncate
seg6: bpf: fix skb checksum in bpf_push_seg6_encap()
seg6: fix skb checksum evaluation in SRH encapsulation/insertion
seg6: fix skb checksum in SRv6 End.B6 and End.B6.Encaps behaviors
selftests/bpf: Check dst_port only on the client socket
selftests/bpf: Extend verifier and bpf_sock tests for dst_port loads
selftests/bpf: fix a test for snprintf() overflow
selftests: forwarding: fix error message in learning_test
selftests: forwarding: fix flood_unicast_test when h2 supports IFF_UNICAST_FLT
selftests: forwarding: fix learning_test when h1 supports IFF_UNICAST_FLT
selftests: KVM: Handle compiler optimizations in ucall
selftests: kvm: set rax before vmcall
selftests/livepatch: better synchronize test_klp_callbacks_busy
selftests/net: fix section name when using xdp_dummy.o
selftests/seccomp: Fix compile warning when CC=clang
selftests: timers: clocksource-switch: fix passing errors from child
selftests: timers: valid-adjtimex: build fix for newer toolchains
selftests/xsk: Destroy BPF resources only when ctx refcount drops to 0
selinux: Add boundary check in put_entry()
selinux: fix memleak in security_read_state_kernel()
serial: 8250: Add proper clock handling for OxSemi PCIe devices
serial: 8250_bcm7271: Save/restore RTS in suspend/resume
serial: 8250: dma: Allow driver operations before starting DMA transfers
serial: 8250_dw: Store LSR into lsr_saved_flags in dw8250_tx_wait_empty()
serial: 8250: Export ICR access helpers for internal use
serial: 8250: Fix PM usage_count for console handover
serial: 8250: fix return error code in serial8250_request_std_resource()
serial: 8250: Fold EndRun device support into OxSemi Tornado code
serial: 8250_fsl: Don't report FE, PE and OE twice
serial: 8250_mtk: Make sure to select the right FEATURE_SEL
serial: 8250_pci: Refactor the loop in pci_ite887x_init()
serial: 8250_pci: Replace dev_*() by pci_*() macros
serial: mvebu-uart: correctly report configured baudrate value
serial: mvebu-uart: uart2 error bits clearing
serial: pl011: UPSTAT_AUTORTS requires .throttle/unthrottle
serial: sc16is7xx: Clear RS485 bits in the shutdown
serial: stm32: Clear prev values before setting RTS delays
sfc: disable softirqs for ptp TX
sfc: fix kernel panic when creating VF
sfc: fix use after free when disabling sriov
sh: convert nommu io{re,un}map() to static inline functions
signal handling: don't use BUG_ON() for debugging
skmsg: Fix invalid last sg check in sk_msg_recvmsg()
SMB3: fix lease break timeout when multiple deferred close handles for the same file.
soc: amlogic: Fix refcount leak in meson-secure-pwrc.c
soc: fsl: guts: machine variable might be unset
soc: ixp4xx/npe: Fix unused match warning
soc: qcom: aoss: Fix refcount leak in qmp_cooling_devices_register
soc: qcom: Make QCOM_RPMPD depend on PM
soc: qcom: ocmem: Fix refcount leak in of_get_ocmem
soc: renesas: r8a779a0-sysc: Fix A2DP1 and A2CV[2357] PDR values
soundwire: bus_type: fix remove and shutdown support
soundwire: qcom: Check device status before reading devid
soundwire: revisit driver bind/unbind and callbacks
spi: amd: Limit max transfer and message size
spi: bcm2835: bcm2835_spi_handle_err(): fix NULL pointer deref for non DMA transfers
spi: Fix simplification of devm_spi_register_controller
spi: spi-altera-dfl: Fix an error handling path
spi: spi-rspi: Fix PIO fallback on RZ platforms
spi: synquacer: Add missing clk_disable_unprepare()
spi: tegra20-slink: fix UAF in tegra_slink_remove()
spmi: trace: fix stack-out-of-bound access in SPMI tracing functions
stack: Declare {randomize_,}kstack_offset to fix Sparse warnings
staging: rtl8192u: Fix sleep in atomic context bug in dm_fsync_timer_callback
stddef: Introduce DECLARE_FLEX_ARRAY() helper
stddef: Introduce struct_group() helper macro
swiotlb: fail map correctly with failed io_tlb_default_mem
sysctl: Fix data races in proc_dointvec().
sysctl: Fix data races in proc_dointvec_jiffies().
sysctl: Fix data races in proc_dointvec_minmax().
sysctl: Fix data-races in proc_dointvec_ms_jiffies().
sysctl: Fix data-races in proc_dou8vec_minmax().
sysctl: Fix data races in proc_douintvec().
sysctl: Fix data races in proc_douintvec_minmax().
sysctl: Fix data races in proc_doulongvec_minmax().
sysctl: move some boundary constants from sysctl.c to sysctl_vals
tcp/dccp: Fix a data-race around sysctl_tcp_fwmark_accept.
tcp: Fix a data-race around sysctl_tcp_abort_on_overflow.
tcp: Fix a data-race around sysctl_tcp_adv_win_scale.
tcp: Fix a data-race around sysctl_tcp_app_win.
tcp: Fix a data-race around sysctl_tcp_autocorking.
tcp: Fix a data-race around sysctl_tcp_challenge_ack_limit.
tcp: Fix a data-race around sysctl_tcp_comp_sack_delay_ns.
tcp: Fix a data-race around sysctl_tcp_comp_sack_nr.
tcp: Fix a data-race around sysctl_tcp_comp_sack_slack_ns.
tcp: Fix a data-race around sysctl_tcp_early_retrans.
tcp: Fix a data-race around sysctl_tcp_ecn_fallback.
tcp: Fix a data-race around sysctl_tcp_frto.
tcp: Fix a data-race around sysctl_tcp_invalid_ratelimit.
tcp: Fix a data-race around sysctl_tcp_limit_output_bytes.
tcp: Fix a data-race around sysctl_tcp_max_orphans.
tcp: Fix a data-race around sysctl_tcp_min_rtt_wlen.
tcp: Fix a data-race around sysctl_tcp_min_tso_segs.
tcp: Fix a data-race around sysctl_tcp_mtu_probe_floor.
tcp: Fix a data-race around sysctl_tcp_nometrics_save.
tcp: Fix a data-race around sysctl_tcp_notsent_lowat.
tcp: Fix a data-race around sysctl_tcp_probe_interval.
tcp: Fix a data-race around sysctl_tcp_probe_threshold.
tcp: Fix a data-race around sysctl_tcp_retrans_collapse.
tcp: Fix a data-race around sysctl_tcp_rfc1337.
tcp: Fix a data-race around sysctl_tcp_stdurg.
tcp: Fix a data-race around sysctl_tcp_thin_linear_timeouts.
tcp: Fix a data-race around sysctl_tcp_tw_reuse.
tcp: Fix data-races around keepalive sysctl knobs.
tcp: Fix data-races around sk_pacing_rate.
tcp: Fix data-races around some timeout sysctl knobs.
tcp: Fix data-races around sysctl knobs related to SYN option.
tcp: Fix data-races around sysctl_max_syn_backlog.
tcp: Fix data-races around sysctl_tcp_base_mss.
tcp: Fix data-races around sysctl_tcp_dsack.
tcp: Fix data-races around sysctl_tcp_ecn.
tcp: Fix data-races around sysctl_tcp_fastopen.
tcp: Fix data-races around sysctl_tcp_fastopen_blackhole_timeout.
tcp: Fix data-races around sysctl_tcp_l3mdev_accept.
tcp: Fix data-races around sysctl_tcp_max_reordering.
tcp: Fix data-races around sysctl_tcp_migrate_req.
tcp: Fix data-races around sysctl_tcp_min_snd_mss.
tcp: Fix data-races around sysctl_tcp_moderate_rcvbuf.
tcp: Fix data-races around sysctl_tcp_mtu_probing.
tcp: Fix data-races around sysctl_tcp_no_ssthresh_metrics_save.
tcp: Fix data-races around sysctl_tcp_recovery.
tcp: Fix data-races around sysctl_tcp_reflect_tos.
tcp: Fix data-races around sysctl_tcp_reordering.
tcp: Fix data-races around sysctl_tcp_slow_start_after_idle.
tcp: Fix data-races around sysctl_tcp_syn(ack)?_retries.
tcp: Fix data-races around sysctl_tcp_syncookies.
tcp: fix over estimation in sk_forced_mem_schedule()
tcp: make retransmitted SKB fit into the send window
tcp: sk->sk_bound_dev_if once in inet_request_bound_dev_if()
test_bpf: fix incorrect netdev features
thermal: sysfs: Fix cooling_device_stats_setup() error code path
thermal/tools/tmon: Include pthread and time headers in tmon.h
timekeeping: contribute wall clock to rng on time change
tools arch x86: Sync the msr-index.h copy with the kernel sources
tools headers cpufeatures: Sync with the kernel sources
tools/kvm_stat: fix display of error when multiple processes are found
tools/thermal: Fix possible path truncations
tools/vm/slabinfo: Handle files in debugfs
tpm: eventlog: Fix section mismatch for DEBUG_SECTION_MISMATCH
tracing: Add '__rel_loc' using trace event macros
tracing: Avoid -Warray-bounds warning for __rel_loc macro
tracing: Fix return value of trace_pid_write()
tracing: Fix sleeping while atomic in kdb ftdump
tracing: Have event format check not flag %p* on __get_dynamic_array()
tracing/histograms: Fix memory leak problem
tracing/perf: Avoid -Warray-bounds warning for __rel_loc macro
tracing: Place trace_pid_list logic into abstract functions
tracing: Use a struct alignof to determine trace event field alignment
tty: 8250: Add support for Brainboxes PX cards.
tty: drivers/tty/, stop using tty_schedule_flip()
tty: drop tty_schedule_flip()
tty: extract tty_flip_buffer_commit() from tty_flip_buffer_push()
tty: n_gsm: Delete gsmtty open SABM frame when config requester
tty: n_gsm: fix DM command
tty: n_gsm: fix encoding of command/response bit
tty: n_gsm: fix frame reception handling
tty: n_gsm: fix invalid gsmtty_write_room() result
tty: n_gsm: fix invalid use of MSC in advanced option
tty: n_gsm: fix missing corner cases in gsmld_poll()
tty: n_gsm: fix missing timer to handle stalled links
tty: n_gsm: fix missing update of modem controls after DLCI open
tty: n_gsm: fix non flow control frames during mux flow off
tty: n_gsm: fix packet re-transmission without open control channel
tty: n_gsm: fix race condition in gsmld_write()
tty: n_gsm: fix resource allocation order in gsm_activate_mux()
tty: n_gsm: fix sometimes uninitialized warning in gsm_dlci_modem_output()
tty: n_gsm: fix tty registration before control channel open
tty: n_gsm: fix user open not possible at responder until initiator open
tty: n_gsm: fix wrong queuing behavior in gsm_dlci_data_output()
tty: n_gsm: fix wrong T1 retry count handling
tty: n_gsm: Modify CR,PF bit when config requester
tty: n_gsm: Save dlci address open status when config requester
tty: serial: fsl_lpuart: correct the count of break characters
tty: serial: samsung_tty: set dma burst_size to 1
tty: the rest, stop using tty_schedule_flip()
tty: use new tty_insert_flip_string_and_push_buffer() in pty_write()
tty: vt: initialize unicode screen buffer
uapi/linux/stddef.h: Add include guards
udp: Fix a data-race around sysctl_udp_l3mdev_accept.
um: Add missing apply_returns()
um: random: Don't initialise hwrng struct with zero
um: Remove straying parenthesis
um: seed rng using host OS rng
um: virtio_uml: Allow probing from devicetree
um: virtio_uml: Fix broken device handling in time-travel
usb: aspeed-vhub: Fix refcount leak bug in ast_vhub_init_desc()
usb: cdns3: change place of 'priv_ep' assignment in cdns3_gadget_ep_dequeue(), cdns3_gadget_ep_enable()
usb: cdns3: Don't use priv_dev uninitialized in cdns3_gadget_ep_enable()
usb: dwc3: core: Deprecate GCTL.CORESOFTRESET
usb: dwc3: core: Do not perform GCTL_CORE_SOFTRESET during bootup
usb: dwc3: gadget: Fix event pending check
usb: dwc3: gadget: fix high speed multiplier setting
usb: dwc3: gadget: refactor dwc3_repare_one_trb
usb: dwc3: qcom: fix missing optional irq warnings
usb: gadget: tegra-xudc: Fix error check in tegra_xudc_powerdomain_init()
usb: gadget: udc: amd5536 depends on HAS_DMA
USB: HCD: Fix URB giveback issue in tasklet function
usb: host: Fix refcount leak in ehci_hcd_ppc_of_probe
usb: host: xhci: use snprintf() in xhci_decode_trb()
usbnet: Fix linkwatch use-after-free on disconnect
usbnet: fix memory leak in error case
usbnet: smsc95xx: Avoid link settings race on interrupt reception
usbnet: smsc95xx: Don't clear read-only PHY interrupt
usbnet: smsc95xx: Fix deadlock on runtime resume
usbnet: smsc95xx: Forward PHY interrupts to PHY driver to avoid polling
usb: ohci-nxp: Fix refcount leak in ohci_hcd_nxp_probe
USB: serial: fix tty-port initialized comments
USB: serial: ftdi_sio: add Belimo device ids
usb: typec: add missing uevent when partner support PD
usb: typec: ucsi: Acknowledge the GET_ERROR_STATUS command completion
usb: xhci: tegra: Fix error check
vdpa/mlx5: Avoid processing works if workqueue was destroyed
vdpa/mlx5: Initialize CVQ vringh only once
vduse: Tie vduse mgmtdev and its device
vfio/ccw: Do not change FSM state in subchannel event
vfs: Check the truncate maximum size in inode_newsize_ok()
video: fbdev: amba-clcd: Fix refcount leak bugs
video: fbdev: arkfb: Check the size of screen before memset_io()
video: fbdev: arkfb: Fix a divide-by-zero bug in ark_set_pixclock()
video: fbdev: s3fb: Check the size of screen before memset_io()
video: fbdev: sis: fix typos in SiS_GetModeID()
video: fbdev: vt8623fb: Check the size of screen before memset_io()
video: of_display_timing.h: include errno.h
virtio-blk: avoid preallocating big SGL for data
virtio-blk: modify the value type of num in virtio_queue_rq()
virtio-gpu: fix a missing check to avoid NULL dereference
virtio_mmio: Add missing PM calls to freeze/restore
virtio_mmio: Restore guest page size on resume
virtio-net: fix the race between refill work and close
vt: fix memory overlapping when deleting chars in the buffer
wait: Fix __wait_event_hrtimeout for RT/DL tasks
watchdog: armada_37xx_wdt: check the return value of devm_ioremap() in armada_37xx_wdt_probe()
watchdog: sp5100_tco: Fix a memory leak of EFCH MMIO resource
watch_queue: Fix missing locking in add_watch_to_object()
watch_queue: Fix missing rcu annotation
watchqueue: make sure to serialize 'wqueue->defunct' properly
watch-queue: remove spurious double semicolon
wifi: iwlegacy: 4965: fix potential off-by-one overflow in il4965_rs_fill_link_cmd()
wifi: iwlwifi: mvm: fix double list_add at iwl_mvm_mac_wake_tx_queue
wifi: libertas: Fix possible refcount leak in if_usb_probe()
wifi: mac80211: fix queue selection for mesh/OCB interfaces
wifi: mac80211_hwsim: add back erroneously removed cast
wifi: mac80211_hwsim: fix race condition in pending packet
wifi: mac80211_hwsim: use 32-bit skb cookie
wifi: p54: add missing parentheses in p54_flush()
wifi: p54: Fix an error handling path in p54spi_probe()
wifi: rtlwifi: fix error codes in rtl_debugfs_set_write_h2c()
wifi: rtw88: check the return value of alloc_workqueue()
wifi: wil6210: debugfs: fix info leak in wil_write_file_wmi()
wifi: wil6210: debugfs: fix uninitialized variable use in `wil_write_file_wmi()`
wireguard: allowedips: don't corrupt stack when detecting overflow
wireguard: ratelimiter: use hrtimer in selftest
x86: Add magic AMD return-thunk
x86/alternative: Add debug prints to apply_retpolines()
x86/alternative: Handle Jcc __x86_indirect_thunk_\reg
x86/alternative: Implement .retpoline_sites support
x86/alternative: Report missing return thunk details
x86/alternative: Try inline spectre_v2=retpoline,amd
x86/amd: Use IBPB for firmware calls
x86/asm/32: Fix ANNOTATE_UNRET_SAFE use on 32-bit
x86/asm: Fix register order
x86/asm: Fixup odd GEN-for-each-reg.h usage
x86/bpf: Use alternative RET encoding
x86/bugs: Add AMD retbleed= boot parameter
x86/bugs: Add Cannon lake to RETBleed affected CPU list
x86/bugs: Add retbleed=ibpb
x86/bugs: Do IBPB fallback check only once
x86/bugs: Do not enable IBPB at firmware entry when IBPB is not available
x86/bugs: Do not enable IBPB-on-entry when IBPB is not supported
x86/bugs: Enable STIBP for IBPB mitigated RETBleed
x86/bugs: Enable STIBP for JMP2RET
x86/bugs: Keep a per-CPU IA32_SPEC_CTRL value
x86/bugs: Optimize SPEC_CTRL MSR writes
x86/bugs: Remove apostrophe typo
x86/bugs: Report AMD retbleed vulnerability
x86/bugs: Report Intel retbleed vulnerability
x86/bugs: Split spectre_v2_select_mitigation() and spectre_v2_user_select_mitigation()
x86/bugs: Warn when "ibrs" mitigation is selected on Enhanced IBRS parts
x86/bus_lock: Don't assume the init value of DEBUGCTLMSR.BUS_LOCK_DETECT to be zero
x86: Clear .brk area at early boot
x86/common: Stamp out the stepping madness
x86/cpu/amd: Add Spectral Chicken
x86/cpu/amd: Enumerate BTC_NO
x86/cpufeatures: Move RETPOLINE flags to word 11
x86: drop bogus "cc" clobber from __try_cmpxchg_user_asm()
x86/entry_32: Fix segment exceptions
x86/entry_32: Remove .fixup usage
x86/entry: Add kernel IBRS implementation
x86/entry: Avoid very early RET
x86/entry: Build thunk_$(BITS) only if CONFIG_PREEMPTION=y
x86/entry: Don't call error_entry() for XENPV
x86/entry: Move PUSH_AND_CLEAR_REGS() back into error_entry
x86/entry: Move PUSH_AND_CLEAR_REGS out of error_entry()
x86/entry: Remove skip_r11rcx
x86/entry: Switch the stack after error_entry() returns
x86/extable: Extend extable functionality
x86/extable: Fix ex_handler_msr() print condition
x86/extable: Get rid of redundant macros
x86/extable: Prefer local labels in .set directives
x86/extable: Provide EX_TYPE_DEFAULT_MCE_SAFE and EX_TYPE_FAULT_MCE_SAFE
x86/extable: Rework the exception table mechanics
x86/extable: Tidy up redundant handler functions
x86/ftrace: Use alternative RET encoding
x86/futex: Remove .fixup usage
x86: Handle idle=nomwait cmdline properly for x86_idle
x86/kexec: Disable RET on kexec
x86/kprobes: Update kcb status flag after singlestepping
x86/kvm: fix FASTOP_SIZE when return thunks are enabled
x86/kvm: Fix SETcc emulation for return thunks
x86/kvm/vmx: Make noinstr clean
x86: link vdso and boot with -z noexecstack --no-warn-rwx-segments
x86/mce: Deduplicate exception handling
x86/msr: Remove .fixup usage
x86/numa: Use cpumask_available instead of hardcoded NULL check
x86,objtool: Create .return_sites
x86/olpc: fix 'logical not is only applied to the left hand side'
x86/pat: Fix x86_has_pat_wp()
x86/pmem: Fix platform-device leak in error path
x86/realmode: build with -D__DISABLE_EXPORTS
x86/retbleed: Add fine grained Kconfig knobs
x86/retpoline: Cleanup some #ifdefery
x86/retpoline: Create a retpoline thunk array
x86/retpoline: Move the retpoline thunk declarations to nospec-branch.h
x86/retpoline: Remove unused replacement symbols
x86/retpoline: Swizzle retpoline thunk
x86/retpoline: Use -mfunction-return
x86/sev: Avoid using __x86_return_thunk
x86/speculation: Add LFENCE to RSB fill sequence
x86/speculation: Add RSB VM Exit protections
x86/speculation: Add spectre_v2=ibrs option to support Kernel IBRS
x86/speculation: Disable RRSBA behavior
x86/speculation: Fill RSB on vmexit for IBRS
x86/speculation: Fix firmware entry SPEC_CTRL handling
x86/speculation: Fix RSB filling with CONFIG_RETPOLINE=n
x86/speculation: Fix SPEC_CTRL write on SMT state change
x86/speculation: Make all RETbleed mitigations 64-bit only
x86/speculation: Remove x86_spec_ctrl_mask
x86/speculation: Use cached host SPEC_CTRL value for guest entry/exit
x86/speculation: Use DECLARE_PER_CPU for x86_spec_ctrl_current
x86/static_call: Serialize __static_call_fixup() properly
x86,static_call: Use alternative RET encoding
x86/traps: Use pt_regs directly in fixup_bad_iret()
x86/uaccess: Implement macros for CMPXCHG on user addresses
x86: Undo return-thunk damage
x86: Use -mindirect-branch-cs-prefix for RETPOLINE builds
x86: Use return-thunk in asm code
x86/vsyscall_emu/64: Don't use RET in vsyscall emulation
x86/xen: Add UNTRAIN_RET
x86/xen: Fix initialisation in hypercall_page after rethunk
x86/xen: Rename SYS* entry points
xen-blkback: Apply 'feature_persistent' parameter when connect
xen-blkback: fix persistent grants negotiation
xen-blkfront: Apply 'feature_persistent' parameter when connect
xen/gntdev: Ignore failure to unmap INVALID_GRANT_HANDLE
xen/netback: avoid entering xenvif_rx_next_skb() with an empty rx queue
xfrm: xfrm_policy: fix a possible double xfrm_pols_put() in xfrm_bundle_lookup()
xfs: don't include bnobt blocks when reserving free block pool
xfs: drop async cache flushes from CIL commits.
xfs: fix maxlevels comparisons in the btree staging code
xfs: fix perag reference leak on iteration race with growfs
xfs: fold perag loop iteration logic into helper function
xfs: only run COW extent recovery when there are no live extents
xfs: prevent a WARN_ONCE() in xfs_ioc_attr_list()
xfs: remove incorrect ASSERT in xfs_rename
xfs: rename the next_agno perag iteration variable
xfs: run callbacks before waking waiters in xlog_state_shutdown_callbacks
xfs: terminate perag iteration reliably on agcount
xhci: dbc: create and remove dbc structure in dbgtty driver.
xhci: dbc: refactor xhci_dbc_init()
xhci: dbc: Rename xhci_dbc_init and xhci_dbc_exit
xhci: Set HCD flag to defer primary roothub registration
xsk: Clear page contiguity bit when unmapping pool
xtensa: iss: fix handling error cases in iss_net_configure()
xtensa: iss/network: provide release() callback

Updated by kernel-updater-bot (https://abf.io/mikhailnov/kernel-updater-bot)
2022-08-21 16:13:37 +03:00

1840 lines
64 KiB
RPMSpec

# _get_email() in %%build contains bashisms for regexping
%define _buildshell /bin/bash
# brp-python-bytecompile uses /usr/bin/python,
# but it is a different python version in different ROSA
# releases; there is no good way to tell brp-python-bytecompile
# which iterpreter to use; so just disable it to avoid problems
%define _python_bytecompile_build 0
# Probably dwz bug, on i686 only file is not packaged:
# /usr/lib/debug/usr/bin/trace-5.4.40-3.i386.debug.#dwz#.b5xuKG
# dwz compresses only debuginfo from perf, cpupower, uml,
# not the kernel itself (because it is stripped not by RPM),
# so we do not loose much by disabling it.
%global _find_debuginfo_dwz_opts %{nil}
# Put everything into one non-standard debuginfo subpackage
# TODO: make multiple debuginfo packages coinstallable as installonlypkg,
# to achive this, there must be no conflicting files.
# Probably signing and compressing of kernel modules
# has to be moved to %%_spec_install_post.
%global _debuginfo_subpackages %{nil}
%global _debuginfo_template %{nil}
%undefine _debugsource_packages
# Hack: flavour and major version are variable, make %%_build_pkgcheck_* always detect and use this config
%global _build_pkgcheck_set %(echo "%{_build_pkgcheck_set}" | sed -e 's,/%{name}.rpmlintrc,/kernel.rpmlintrc,')
%global _build_pkgcheck_srpm %(echo "%{_build_pkgcheck_srpm}" | sed -e 's,/%{name}.rpmlintrc,/kernel.rpmlintrc,')
%define kernelversion 5
%define patchlevel 15
%define sublevel 61
# Release number. Increase this before a rebuild.
%define rpmrel 1
%define fullrpmrel %{rpmrel}
%define rpmtag %{disttag}
# Version defines
%define kversion %{kernelversion}.%{patchlevel}.%{sublevel}
%define kverrel %{kversion}-%{fullrpmrel}
%define tar_ver %{kernelversion}.%{patchlevel}
%ifarch %{ix86}
%define arch_suffix i686
%endif
%ifarch %{x86_64}
%define arch_suffix x86_64
%endif
%ifarch aarch64
%define arch_suffix arm64
%endif
%define buildrpmrel %{fullrpmrel}%{rpmtag}-%{arch_suffix}
%define buildrel %{kversion}-%{buildrpmrel}
# Add not only the build time generated key to the trusted keyring,
# but also add public keys of private ROSA's keys
%bcond_without additional_keys
# Fail the build after "make oldconfig" to edit kernel configs
%bcond_with fail
# User Mode Linux, https://habr.com/ru/company/itsumma/blog/459558/
# Not buildable on aarch64, rarely needed in general
%bcond_with uml
# "Nickel" is a special brand for certified distros
%if %{mdvver} == 201905
%bcond_without nickel
# Require kernel modules to be signed
%bcond_without oblig_signed_modules
%else
%bcond_with nickel
%bcond_with oblig_signed_modules
%endif
%if %{mdvver} >= 201905
# Build binary out-of-tree kernel modules (experimental)
%bcond_without binary_extra_modules
# Sign kernel modules with GOST key (experimental)
%bcond_without gost_sign
%else
%bcond_with binary_extra_modules
%bcond_with gost_sign
%endif
%bcond_with ccache
%bcond_without flow_abi
%bcond_without aufs
# 1. VirtualBox is for x86_32 and x86_64 only
# 2. I do not know how to solve the problem that userspace part of VirtualBox
# will be updated ahead of these binary modules. So just off building them.
%bcond_with binary_virtualbox_host
# Shredder-kernel works only on x86_64, makes manipulations with syscalls tables,
# loading/unloading of the module failed sometimes on kernel 5.4
# and it has not been adapted for kernel 5.10 (is not buildable)
%bcond_with binary_shredder
# Compress modules with zstd (zstd is good compression and fast decompression)
%bcond_without compress_modules
# Spend more resources on compression, but make resulting size less;
# decompression speed will not be affected, but more memory will be required
# which should not a problem here (performance penalty from allocating more
# memory should not be big, I think, but I did not benchmark).
%define zstd_cmd zstd -q --format=zstd --ultra -22
# Optionally keep using xz as compressor
#bcond_without modxz
# Kernel flavour
%if %{with nickel}
%define flavour nickel
%else
%define flavour generic
%endif
# The full kernel version
%define kver_full %{kversion}-%{flavour}-%{buildrpmrel}
############################################################################
%define top_dir_name kernel-%{_arch}
%define build_dir ${RPM_BUILD_DIR}/%{top_dir_name}
%define src_dir %{build_dir}/linux-%{tar_ver}
# Common target directories
%define _bootdir /boot
%define _modulesdir /lib/modules
%define devel_root /usr/src/linux-%{kver_full}
%define initrd_path %{_bootdir}/initrd-%{kver_full}.img
# Directories needed for building
%define temp_root %{build_dir}/temp-root
%define temp_boot %{temp_root}%{_bootdir}
%define temp_modules %{temp_root}%{_modulesdir}
%define temp_devel_root %{temp_root}%{devel_root}
# Directories definition needed for installing
%define target_boot %{buildroot}%{_bootdir}
%define target_modules %{buildroot}%{_modulesdir}
# Manual control of creating and deleting keys
# "rnd" is "random" and means that a key pair is generated at build time
# and is not saved anywhere.
%define certs_dir_rnd certs
%define certs_signing_key_priv_rnd %{certs_dir_rnd}/signing_key_priv.key
%define certs_signing_der %{certs_dir_rnd}/signing_key.x509
%define certs_key_config_rnd %{certs_dir_rnd}/x509.genkey
%define certs_public_keys %{certs_dir_rnd}/public.pem
%define certs_verify_tmp %{certs_dir_rnd}/verify.tmp
%define kernel_files %{_builddir}/kernel_files.list
%define debuginfo_files %{_builddir}/debuginfo_files.list
# Append list of files generate by find-debuginfo.sh to our custom list
%global __debug_install_post \
%{__debug_install_post} \
cat %{_builddir}/debugfiles.list >> %{debuginfo_files}
############################################################################
#if %%{with binary_extra_modules}
# https://github.com/rpm-software-management/rpm/pull/1794
#define nvidia_390_j %%(if rpm -q kernel-source-nvidia390 >/dev/null 2>&1; then rpm -q --qf '%%{version}' kernel-source-nvidia390 | awk -F '.' '{print $1}'; else echo 0; fi)
#define nvidia_390_n %%(if rpm -q kernel-source-nvidia390 >/dev/null 2>&1; then rpm -q --qf '%%{version}' kernel-source-nvidia390 | awk -F '.' '{print $2}'; else echo 0; fi)
#define nvidia_470_j %%(if rpm -q kernel-source-nvidia470 >/dev/null 2>&1; then rpm -q --qf '%%{version}' kernel-source-nvidia470 | awk -F '.' '{print $1}'; else echo 0; fi)
#define nvidia_470_n %%(if rpm -q kernel-source-nvidia470 >/dev/null 2>&1; then rpm -q --qf '%%{version}' kernel-source-nvidia470 | awk -F '.' '{print $2}'; else echo 0; fi)
# For SRPM stage when auto-krokodil-rpm-macros is not installed
#{?!kroko_req_modules_in_kernel:%%define kroko_req_modules_in_kernel(j:n:p:) %%{nil}}
#endif
############################################################################
# Buildtime flags
%{?_without_doc: %global build_doc 0}
%{?_without_devel: %global build_devel 0}
%{?_without_debug: %global build_debug 0}
%{?_without_perf: %global build_perf 0}
%{?_without_cpupower: %global build_cpupower 0}
%{?_with_doc: %global build_doc 1}
%{?_with_devel: %global build_devel 1}
%{?_with_debug: %global build_debug 1}
%{?_with_perf: %global build_perf 1}
%{?_with_cpupower: %global build_cpupower 1}
%{?_with_modxz: %global build_modxz 0}
# Build defines
%define build_doc 1
%define build_devel 1
%define build_debug 1
# Build kernel-headers package
%define build_headers 1
# Build perf and cpupower tools
%define build_perf 1
%define build_cpupower 1
%if %{with compress_modules}
%if %{with modxz}
%define kmod_suffix .xz
%else
%define kmod_suffix .zst
%endif
%else
%define kmod_suffix %{nil}
%endif
%if !%{build_debug}
# Disable debug rpms.
%define _enable_debug_packages %{nil}
%define debug_package %{nil}
%endif
# End of user definitions
# http://nickdesaulniers.github.io/blog/2018/06/02/speeding-up-linux-kernel-builds-with-ccache/
%if %{with ccache}
%define kmake KBUILD_BUILD_TIMESTAMP='' %make CC='ccache gcc' ARCH="%{arch_type}"
%else
%define kmake %make CC='gcc' ARCH="%{arch_type}"
%endif
# There are places where parallel make don't work
%define smake make
%ifarch %{ix86} %{x86_64}
%define arch_type x86
%endif
%ifarch aarch64
%define arch_type arm64
%endif
# Parallelize xargs invocations on smp machines
%define kxargs xargs %([ -z "$RPM_BUILD_NCPUS" ] \\\
&& RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"; \\\
[ "$RPM_BUILD_NCPUS" -gt 1 ] && echo "-P $RPM_BUILD_NCPUS")
#
# SRC RPM description
#
Summary: The Linux kernel
Name: kernel-%{kernelversion}.%{patchlevel}-%{flavour}
Version: %{kversion}
Release: %{fullrpmrel}
License: GPLv2
Group: System/Kernel and hardware
Url: https://www.kernel.org
####################################################################
#
# Sources
#
Source0: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/linux-%{tar_ver}.tar.xz
# This is for disabling *config, mrproper, prepare, scripts on -devel rpms
# Needed, because otherwise the -devel won't build correctly.
Source2: 0001-disable-mrproper-prepare-scripts-configs-in-devel-rp.patch
# TODO: Make a separate package "ksobirator" and BR it
# after testing these macros properly
Source3: macros.ksobirator
%{load:%{SOURCE3}}
Source4: macros.nvidia
%{load:%{SOURCE4}}
# Kernel configuration files.
Source111: kernel-x86_64.config
Source112: kernel-i686.config
Source113: kernel-arm64.config
# Cpupower: the service, the config, etc.
Source50: cpupower.service
Source51: cpupower.config
Source52: cpupower-start.sh
Source53: cpupower.path
Source80: kernel.rpmlintrc
# Additional keys that can be used to sign kernel modules
# Generated by https://abf.io/soft/kernel-keys
# Source201..206: public_key_GOST_*.pem
%{expand:%(for i in `seq 1 6`; do echo "Source$((200+${i})): public_key_GOST_${i}.pem"; done)}
# Source207..212: public_key_RSA_*.pem
%{expand:%(for i in `seq 7 12`; do echo "Source$((200+${i})): public_key_RSA_${i}.pem"; done)}
####################################################################
# Patches
# The patch to make kernel x.y.z from x.y.0.
Patch1: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/patch-%{kversion}.xz
# Patches from mainline
# none
Patch2: kernel-5.10.93-fix-perf-build.patch
# ROSA-specific patches
# Perf docs are built after all the kernels. To validate the xml files
# generated during that process, xmlto tries to get DTD files from the Net.
# If it fails, the whole build fails, which is unfortunate. Let us avoid
# this.
Patch101: 0001-perf-skip-xmlto-validation.patch
# http://bugs.rosalinux.ru/show_bug.cgi?id=6235
# http://bugs.rosalinux.ru/show_bug.cgi?id=6459
Patch102: 0001-audit-make-it-less-verbose.patch
%if %{with aufs}
# AUFS 5 from http://aufs.sourceforge.net/
Patch109: 0001-Apply-AUFS-5.patch
%endif
# For kmod() generator of RPM Provides
# Changes version of aacraid.ko
Patch111: 0001-Remove-RPM-illegal-chars-from-module-version.patch
# AltHa LSM Module
# https://www.altlinux.org/AltHa
# http://git.altlinux.org/gears/k/kernel-image-un-def.git
# TODO: known problem: https://bugzilla.altlinux.org/show_bug.cgi?id=38225
Patch201: 0001-altha.patch
# sent to upstream, https://patchwork.kernel.org/patch/11446123/
Patch302: 0001-sign-file-full-functionality-with-modern-LibreSSL.patch
# Support loading GOST-signed modules
Patch305: 0001-crypto-support-loading-GOST-signed-kernel-modules.patch
# Allow to off modules signature check dynamically
Patch306: 0001-ROSA-ima-allow-to-off-modules-signature-check-dynami.patch
# Experimental patch to reduce freezes in low memory conditions
# Config values are the following:
# CONFIG_UNEVICTABLE_ACTIVEFILE=y
# CONFIG_UNEVICTABLE_ACTIVEFILE_KBYTES_LOW=102400 (100 MB)
# CONFIG_UNEVICTABLE_ACTIVEFILE_KBYTES_MIN=51200 (50 MB)
# + zswap is enabled by default
# 50 MB is default value of min_filelist_kbytes in Chromium OS
# https://chromium.googlesource.com/chromiumos/third_party/kernel-next/+/545e2917dbd863760a51379de8c26631e667c563%5E!/
# 256 and 512 MB values are too big as a distro default because many systems have 512MB-2GB RAM
# TODO: tune 50 and 100 MB to some not random and mathemetically explainable values
# https://www.linux.org.ru/news/kernel/16052362?cid=16075323
Patch307: le9pf.diff
Patch308: 0001-Revert-kallsyms-unexport-kallsyms_lookup_name-and-ka.patch
# Support SoC with Baikal-M (ARMv8) CPU
# http://git.altlinux.org/gears/k/kernel-image-std-def.git
# https://github.com/asheplyakov/linux/commits/baikalm-5.15.y-next (many thanks!)
Patch0600: 0600-drm-panfrost-initial-dual-core-group-GPUs-support.patch
Patch0601: 0601-net-stmmac-inital-support-of-Baikal-T1-M-SoCs-GMAC.patch
Patch0602: 0602-dt-bindings-dwmac-Add-bindings-for-Baikal-T1-M-SoCs.patch
Patch0603: 0603-net-stmmac-custom-mdio-reset-for-some-Baikal-M-board.patch
Patch0604: 0604-net-dwmac-baikal-added-compatible-strings.patch
Patch0605: 0605-hwmon-bt1-pvt-access-registers-via-pvt_-readl-writel.patch
Patch0606: 0606-hwmon-bt1-pvt-define-pvt_readl-pvt_writel-for-Baikal.patch
Patch0607: 0607-hwmon-bt1-pvt-adjusted-probing-for-Baikal-M-SoC.patch
Patch0608: 0608-hwmon-bt1-pvt-added-compatible-baikal-pvt.patch
Patch0609: 0609-clk-added-Baikal-M-clock-management-unit-driver.patch
Patch0610: 0610-cpufreq-dt-don-t-load-on-Baikal-M-SoC.patch
Patch0611: 0611-usb-dwc3-of-simple-added-compatible-string-for-Baika.patch
Patch0612: 0612-arm64-Enable-armv8-based-Baikal-M-SoC-support.patch
Patch0613: 0613-drm-bridge-New-bridge-driver-stdp4028.patch
Patch0614: 0614-drm-added-Baikal-M-SoC-video-display-unit-driver.patch
Patch0615: 0615-baikal_vdu-et101-display-port-support.patch
Patch0616: 0616-dw-hdmi-ahb-audio-support-Baikal-M-SoC.patch
Patch0617: 0617-ALSA-hda-Baikal-M-SoC-support.patch
Patch0618: 0618-Added-TF307-TF306-board-management-controller-driver.patch
Patch0619: 0619-rejected-serial-8250_dw-verify-clock-rate-in-dw8250_.patch
Patch0620: 0620-drm-panfrost-forcibly-set-dma-coherent-on-Baikal-M.patch
Patch0621: 0621-drm-panfrost-disable-devfreq-on-Baikal-M.patch
Patch0622: 0622-pm-disable-all-sleep-states-on-Baikal-M-based-boards.patch
Patch0623: 0623-arm64-stub-fixed-secondary-cores-boot-on-Baikal-M-So.patch
Patch0624: 0624-efi-rtc-avoid-calling-efi.get_time-on-Baikal-M-SoC.patch
Patch0625: 0625-net-fwnode_get_phy_id-consider-all-compatible-string.patch
Patch0626: 0626-BROKEN-dwc-i2s-support-Baikal-M-SoC.patch
Patch0627: 0627-input-added-TF307-serio-PS-2-emulator-driver.patch
Patch0628: 0628-arm64-added-Baikal-M-SoC-and-TF307-board-device-tree.patch
Patch0629: 0629-arm64-device-tree-baikal-mark-GPU-as-dma-coherent.patch
Patch0630: 0630-arm64-device-tree-Baikal-M-fixed-PHY-binding-descrip.patch
Patch0631: 0631-arm64-device-tree-Baikal-M-fixed-gpio-alias.patch
Patch0632: 0632-arm64-device-tree-Baikal-M-fixed-GPU-opp_table.patch
Patch0633: 0633-arm64-device-tree-Baikal-M-fixed-CPUs-opp_table.patch
Patch0634: 0634-arm64-defconfig-for-Baikal-M-support-testing.patch
# Disable AutoReq
AutoReq: 0
# but keep autoprov for kmod(xxx)
AutoProv: 1
BuildRequires: bash
BuildRequires: bc
BuildRequires: binutils
BuildRequires: bison
BuildRequires: bzip2
%if %{with ccache}
BuildRequires: ccache
%endif
BuildRequires: flex
BuildRequires: gcc
# ./scripts/mkcompile_h
BuildRequires: hostname
BuildRequires: kmod-compat
BuildRequires: rsync
%if %{with compress_modules}
%if %{with modxz}
BuildRequires: xz
%else
BuildRequires: zstd
%endif
%endif
%ifarch aarch64
BuildRequires: uboot-tools
%endif
BuildRequires: kmod-devel
%ifarch x86_64 aarch64
BuildRequires: numa-devel
%endif
%if %{with uml}
BuildRequires: vde-devel
%endif
# For power tools
BuildRequires: pkgconfig(ncurses)
# For perf, cpufreq and all other tools
# For cpupower
%if %{build_cpupower}
BuildRequires: pciutils-devel
%endif
# For perf
%if %{build_perf}
BuildRequires: asciidoc
BuildRequires: perl-ExtUtils-Embed
BuildRequires: python3
BuildRequires: xmlto
BuildRequires: audit-devel
BuildRequires: binutils-devel
BuildRequires: elfutils-devel
BuildRequires: java-1.8.0-openjdk-devel
BuildRequires: libunwind-devel
BuildRequires: newt-devel
BuildRequires: perl-devel
BuildRequires: pkgconfig(babeltrace)
BuildRequires: pkgconfig(libcrypto)
BuildRequires: pkgconfig(python3)
BuildRequires: pkgconfig(slang)
BuildRequires: pkgconfig(zlib)
%endif
# (To generate keys)
# LibreSSL has GOST support without editing openssl.cnf
# or dlopen()-ing external library
BuildRequires: libressl
BuildRequires: libressl-devel
# To verify signatures (find, xargs, hexdump)
BuildRequires: findutils
BuildRequires: util-linux
%if %{with binary_extra_modules}
BuildRequires: auto-krokodil-rpm-macros
BuildRequires: kernel-source-rtl8821ce
BuildRequires: kernel-source-rtl8821cu
# Broadcom-wl and nvidia390 contain a proprietary blob which is only for x86
%ifarch %{ix86} %{x86_64}
BuildRequires: kernel-source-broadcom-wl
BuildRequires: kernel-source-nvidia390
%endif
# Nvidia470+ are x86_64 only (maybe aarch64 will be also packaged later)
%ifarch %{x86_64}
BuildRequires: kernel-source-nvidia470
BuildRequires: kernel-source-nvidia510
BuildRequires: kernel-source-nvidia515
%endif
BuildRequires: kernel-source-tripso
BuildRequires: kernel-source-ipt-so
%if %{with binary_virtualbox_host}
BuildRequires: kernel-source-virtualbox
%endif
BuildRequires: kernel-source-v4l2loopback
%if %{with binary_shredder}
BuildRequires: kernel-source-shredder-kernel
%endif
# Rosa-test-suite is maintained in certified branches only nlkm, memfreetest, pcietest
%if %{with nickel}
BuildRequires: kernel-source-rosa-test-suite
%endif
%endif
# End of with binary_extra_modules
Provides: kernel = %{EVRD}
Provides: kernel-%{flavour} = %{EVRD}
Provides: kernel-abi(%{kver_full}) = %{EVRD}
# Dnf config-manager --dump | grep installonly
Provides: installonlypkg(kernel) = %{EVRD}.image
Provides: installonlypkg(kernel) = %{EVRD}.modules
# >= because of added support of zstd-compressed modules
Requires(posttrans): dracut >= 053-0.git5eb736.5
Requires(posttrans): kmod >= 28-3
# Need for rebuild dkms drivers
Requires: (kernel-%{tar_ver}-generic-devel if dkms)
# Usually necessary, but sometimes user may want to not install them
Recommends: crda
Recommends: linux-firmware
Recommends: microcode
# Set BFQ as default scheduler for HDDs
# https://www.phoronix.com/scan.php?page=article&item=linux-50hdd-io
Recommends: udev-rules-ioschedulers
Recommends: wireless-regdb
%if %{with flow_abi}
Requires: kernel-%{kernelversion}.%{patchlevel}-rosa-flow-abi
%endif
%ifarch %{ix86}
Conflicts: arch(x86_64)
%endif
# XXX temporary hack to upgrade from kernel-headers 1:5.4
%if %{build_headers}
Recommends: kernel-headers = %{EVRD}
%endif
%if %{with binary_extra_modules}
%ifarch %{ix86} %{x86_64}
#kroko_req_modules_in_kernel -j %%{nvidia_390_j} -n %%{nvidia_390_n} -p %%{kver_full}
Requires: ((kernel-modules-nvidia390-%{version}-%{release}-%{flavour} = %{EVRD}) if nvidia390-core)
%endif
%ifarch %{x86_64}
#kroko_req_modules_in_kernel -j %%{nvidia_470_j} -n %%{nvidia_470_n} -p %%{kver_full}
Requires: ((kernel-modules-nvidia470-%{version}-%{release}-%{flavour} = %{EVRD}) if nvidia470-core)
Requires: ((kernel-modules-nvidia510-%{version}-%{release}-%{flavour} = %{EVRD}) if nvidia510-core)
Requires: ((kernel-modules-nvidia515-%{version}-%{release}-%{flavour} = %{EVRD}) if nvidia515-core)
%endif
%endif
Obsoletes: kernel-%{flavour}-%{kernelversion}.%{patchlevel}-latest < 5.10.34-2
%description
The kernel package contains the Linux kernel (vmlinuz), the core of your
operating system. The kernel handles the basic functions
of the operating system: memory allocation, process allocation, device
input and output, etc. This is a general-purpose kernel.
%posttrans
# We always regenerate initrd here, even if it already exists. This may
# happen if kernel-<...>-devel is installed first, triggers rebuild of
# DKMS modules and some of these request remaking of initrd. The initrd
# that is created then will be non-functional. But when the user installs
# kernel-<...> package, that defunct initrd will be replaced with a working
# one here.
dracut -f %{initrd_path} %{kver_full}
# File triggers from grub packages will handle this.
#/usr/sbin/update-grub2
%transfiletriggerin -- %{_modulesdir}/%{kver_full}
# Detect all modules, including ones inside kernel-module* packages
if grep -qE '/.*\.ko(|\..*)' ; then
depmod -a %{kver_full}
fi
%transfiletriggerpostun -- %{_modulesdir}/%{kver_full}
# Handle e.g. removal of kernel-module* packages
# List of files is not available here (?)
depmod -a %{kver_full}
%files -f %{kernel_files}
%{_bootdir}/System.map-%{kver_full}
%{_bootdir}/symvers-%{kver_full}.*
%{_bootdir}/config-%{kver_full}
%{_bootdir}/vmlinuz-%{kver_full}
%ghost %{initrd_path}
%ifarch %{armx}
%{_bootdir}/dtb-%{kver_full}
%endif
%{_modulesdir}/%{kver_full}/modules.*
%if %{with flow_abi}
%{_modulesdir}/%{kver_full}/kernel/zzz-%{kernelversion}.%{patchlevel}-rosa-flow-abi
%endif
%if %{with binary_extra_modules}
# 8821ce.ko.debug will not be excluded and will be in the main debug subpackage
%exclude %{_modulesdir}/%{kver_full}/kernel/net/wireless/8821ce.ko%{kmod_suffix}
%exclude %{_modulesdir}/%{kver_full}/kernel/net/wireless/8821cu.ko%{kmod_suffix}
%ifarch %{ix86} %{x86_64}
%exclude %{_modulesdir}/%{kver_full}/kernel/net/wireless/wl.ko%{kmod_suffix}
%exclude %{_modulesdir}/%{kver_full}/kernel/drivers/video/nvidia390
%endif
%ifarch %{x86_64}
%exclude %{_modulesdir}/%{kver_full}/kernel/drivers/video/nvidia470
%exclude %{_modulesdir}/%{kver_full}/kernel/drivers/video/nvidia510
%exclude %{_modulesdir}/%{kver_full}/kernel/drivers/video/nvidia515
%endif
%if %{with binary_shredder}
%exclude %{_modulesdir}/%{kver_full}/kernel/extra/shredder-kernel.ko%{kmod_suffix}
%endif
%exclude %{_modulesdir}/%{kver_full}/kernel/drivers/media/v4l2loopback.ko%{kmod_suffix}
%if %{with binary_virtualbox_host}
# vbox host modules may be built here (vboxnetflt vboxnetadp vboxdrv vboxpci)
# vbox guest modules are in the mainline kernel now (vboxvideo vboxguest vboxsf)
%exclude %{_modulesdir}/%{kver_full}/kernel/misc/vbox*.ko%{kmod_suffix}
%endif
%exclude %{_modulesdir}/%{kver_full}/kernel/net/xt_TRIPSO.ko%{kmod_suffix}
%exclude %{_modulesdir}/%{kver_full}/kernel/net/xt_so.ko%{kmod_suffix}
%if %{with nickel}
%exclude %{_modulesdir}/%{kver_full}/kernel/misc/nlkm.ko%{kmod_suffix}
%exclude %{_modulesdir}/%{kver_full}/kernel/misc/memfreetest.ko%{kmod_suffix}
%exclude %{_modulesdir}/%{kver_full}/kernel/misc/pcietest.ko%{kmod_suffix}
%endif
%endif
# End of with binary_extra_modules
############################################################################
%if %{build_devel}
%package devel
Summary: Development files for %{name}
Group: Development/Kernel
Requires: glibc-devel
Requires: ncurses-devel
Requires: gcc
Requires: make
Requires: perl
Requires: %{name} = %{EVRD}
Provides: kernel-devel = %{kverrel}
Provides: kernel-%{flavour}-devel = %{kverrel}
Provides: installonlypkg(kernel) = %{EVRD}.devel
Obsoletes: kernel-%{flavour}-%{kernelversion}.%{patchlevel}-devel-latest < 5.10.34-2
# Have dkms updated/installed before the kernel, scriptlet here checks if dkms exists
OrderWithRequires(post): dkms
# Try to remove the main kernel package after removing this devel package
# because there may be dkms-built kernel modules inside directories owned
# by the main package, try to get rid of such files before RPM starts to
# deal with directories owned in the main package
# (note that the devel package does not explicitly require the main package,
# there is no need to do so, a kernel module may be built using just the devel part).
OrderWithRequires(postun): %{name} = %{EVRD}
%ifarch %{ix86}
Conflicts: arch(x86_64)
%endif
%description devel
This package contains the kernel files (headers and build tools) that should
be enough to build additional drivers for use with %{name}.
%post devel
if command -v dkms_autoinstaller >/dev/null 2>&1; then
dkms_autoinstaller start %{kver_full}
fi
%preun devel
# If any DKMS modules with REMAKE_INITRD=yes in their configs have been
# uninstalled, initrd has been regenerated for the given kernel. However,
# the kernel itself might have been uninstalled before, so that (defunct)
# initrd image files would be left behind. Remove them if the kernel itself
# is no longer installed. Should work if they are uninstalled in parallel
# too.
if ! test -f /boot/vmlinuz-%{kver_full}; then
rm -f /boot/initrd-%{kver_full}.img
rm -f /boot/initrd-%{kver_full}_old.img
fi
if ! command -v dkms >/dev/null 2>&1; then exit 0; fi
for ii in $(/usr/sbin/dkms status -k %{kver_full} | awk '{ print $1 $2; }'); do
mod=$(echo $ii | awk -v FS=',' '{ print $1; }')
ver=$(echo $ii | awk -v FS=',' '{ print $2; }')
/usr/sbin/dkms --rpm_safe_upgrade uninstall -m $mod -v $ver -k %{kver_full} || :
done
%files devel
%{devel_root}/Documentation
%dir %{devel_root}
%dir %{devel_root}/arch
%dir %{devel_root}/include
%{devel_root}/arch/um
%{devel_root}/arch/x86
%{devel_root}/arch/arm
%{devel_root}/arch/arm64
%{devel_root}/block
%{devel_root}/certs
%{devel_root}/crypto
%{devel_root}/drivers
%{devel_root}/fs
%{devel_root}/include/soc
%{devel_root}/include/acpi
%{devel_root}/include/asm-generic
%{devel_root}/include/clocksource
%{devel_root}/include/config
%{devel_root}/include/crypto
%{devel_root}/include/drm
%{devel_root}/include/dt-bindings
%{devel_root}/include/generated
%{devel_root}/include/keys
%{devel_root}/include/kvm
%{devel_root}/include/kunit
%{devel_root}/include/linux
%{devel_root}/include/math-emu
%{devel_root}/include/media
%{devel_root}/include/memory
%{devel_root}/include/misc
%{devel_root}/include/net
%{devel_root}/include/pcmcia
%{devel_root}/include/ras
%{devel_root}/include/rdma
%{devel_root}/include/scsi
%{devel_root}/include/sound
%{devel_root}/include/target
%{devel_root}/include/trace
%{devel_root}/include/uapi
%{devel_root}/include/vdso
%{devel_root}/include/video
%{devel_root}/include/xen
%{devel_root}/init
%{devel_root}/ipc
%{devel_root}/kernel
%{devel_root}/lib
%{devel_root}/mm
%{devel_root}/net
%{devel_root}/samples
%{devel_root}/scripts
%{devel_root}/security
%{devel_root}/sound
%{devel_root}/tools
%{devel_root}/usr
%{devel_root}/virt
%{devel_root}/.config
%{devel_root}/Kbuild
%{devel_root}/Kconfig
%{devel_root}/Makefile
%{devel_root}/Module.symvers
%{devel_root}/arch/Kconfig
%{_modulesdir}/%{kver_full}/build
%{_modulesdir}/%{kver_full}/source
%endif
# End of build_devel
############################################################################
%if %{build_debug}
%package debuginfo
Summary: Debuginfo for %{name}
Group: Development/Debug
Provides: kernel-debug = %{kverrel}
AutoReq: 0
AutoProv: 0
%description debuginfo
This package contains the files with debuginfo for %{name}.
%files debuginfo -f %{debuginfo_files}
%{_bootdir}/vmlinux-%{kver_full}
%endif
# End of build_debug
############################################################################
%if %{build_doc}
%package doc
Summary: Various documentation bits found in the kernel source
Group: Documentation
BuildArch: noarch
%description doc
This package contains documentation files from the kernel source.
%files doc
%doc linux-%{tar_ver}/Documentation/*
%endif
############################################################################
%if %{build_perf}
%package -n perf
Summary: perf tool and the supporting documentation
Group: System/Kernel and hardware
%description -n perf
The package contains perf tool and the supporting documentation.
%files -n perf
%{_bindir}/perf
%ifarch x86_64
%{_bindir}/perf-read-vdso32
%endif
%{_bindir}/trace
%{_includedir}/perf/perf_dlfilter.h
%dir %{_prefix}/libexec/perf-core
%dir %{_libdir}/traceevent
%dir %{_libdir}/traceevent/plugins
%{_libdir}/libperf-jvmti.so
%{_libdir}/traceevent/plugins/*
%{_prefix}/libexec/perf-core/*
%{_mandir}/man[1-8]/perf*
%{_sysconfdir}/bash_completion.d/perf
%{_datadir}/perf-core/strace/groups/*
%{_datadir}/doc/perf-tip/*.txt
/usr/lib/perf/examples/bpf/*
/usr/lib/perf/include/bpf/*
%endif
############################################################################
%if %{build_cpupower}
%package -n cpupower
Summary: The cpupower tools
Group: System/Kernel and hardware
%description -n cpupower
The cpupower tools.
%post -n cpupower
if [ $1 -ge 0 ]; then
# Do not enable/disable cpupower.service directly, because it should start
# when cpupower.path triggers it.
/bin/systemctl enable cpupower.path >/dev/null 2>&1 || :
/bin/systemctl start cpupower.path >/dev/null 2>&1 || :
fi
%preun -n cpupower
if [ $1 -eq 0 ]; then
/bin/systemctl --no-reload disable cpupower.path > /dev/null 2>&1 || :
/bin/systemctl stop cpupower.path > /dev/null 2>&1 || :
fi
%files -n cpupower -f cpupower.lang
%config(noreplace) %{_sysconfdir}/sysconfig/cpupower
%{_bindir}/cpupower
%{_bindir}/cpupower-start.sh
%{_libdir}/libcpupower.so.0
%{_libdir}/libcpupower.so.0.0.1
%{_unitdir}/cpupower.service
%{_unitdir}/cpupower.path
%{_datadir}/bash-completion/completions/cpupower
%{_mandir}/man[1-8]/cpupower*
############################################################################
%package -n cpupower-devel
Summary: Development files for cpupower
Group: Development/Kernel
Requires: cpupower = %{EVRD}
Conflicts: %{_lib}cpufreq-devel
%description -n cpupower-devel
This package contains the development files for cpupower.
%files -n cpupower-devel
%{_libdir}/libcpupower.so
%{_includedir}/cpufreq.h
%{_includedir}/cpuidle.h
%endif
############################################################################
%if %{build_headers}
%package -n kernel-headers
Summary: Linux kernel header files mostly used by your C library
Group: System/Kernel and hardware
Provides: linux-userspace-headers = %{EVRD}
Provides: kernel-release-headers = %{EVRD}
%description -n kernel-headers
C header files from the Linux kernel. The header files define
structures and constants that are needed for building most
standard programs, notably the C library.
This package is not suitable for building kernel modules, you
should use the 'kernel-devel' package instead.
%files -n kernel-headers
%{_includedir}/*
# Don't conflict with cpupower-devel
%if %{build_cpupower}
%exclude %{_includedir}/cpufreq.h
%exclude %{_includedir}/cpuidle.h
%endif
%if %{build_perf}
%exclude %{_includedir}/perf/perf_dlfilter.h
%endif
%endif
############################################################################
%if %{with uml}
%package uml
Summary: User Mode Linux binary
Group: System/Kernel and hardware
Provides: kernel-uml = %{kverrel}
Provides: kernel-uml-%{flavour} = %{kverrel}
Provides: installonlypkg(kernel) = %{EVRD}.uml
Obsoletes: kernel-uml-%{flavour}-%{kernelversion}.%{patchlevel}-latest < 5.10.34-2
%description uml
User Mode Linux binary.
Stripped, debug is in %{name}-debuginfo.
%files uml
%{_bindir}/linux-uml-%{kver_full}
#-----------------------------------------------------------------------------
%package uml-modules
Summary: User Mode Linux (UML) kernel modules
Group: System/Kernel and hardware
Provides: kernel-uml-modules = %{kverrel}
Provides: kernel-uml-modules-%{flavour} = %{kverrel}
Provides: installonlypkg(kernel-module) = %{EVRD}.uml
Obsoletes: kernel-uml-modules-%{flavour}-%{kernelversion}.%{patchlevel}-latest < 5.10.34-2
%description uml-modules
User Mode Linux (UML) kernel modules:
- not compressed;
- not stripped;
- signed.
%files uml-modules
/lib/modules-uml/%{kver_full}
%endif
# End of uml
#-----------------------------------------------------------------------------
###############################
# Extra modules package definitions
%if %{with binary_extra_modules}
%ksob_mk_module_pkg -n 8821ce -s net/wireless -r rtl8821ce-blacklist
%ksob_mk_module_pkg -n 8821cu -s net/wireless
%ifarch %{ix86} %{x86_64}
%ksob_mk_module_pkg -n wl -s net/wireless -r broadcom-wl-aliases
#kroko_kmod_pkg -j %%{nvidia_390_j} -n %%{nvidia_390_n} -f %%{flavour} -k %%{kernelversion}.%%{patchlevel} -m %%{sublevel} -p %%{kver_full} -s %%{NAME} -r %%{kroko_mk_release}
%endif
%ifarch %{ix86}
%nvidia_modules_pkg -e %{EVRD} -m 390 -p %{kver_full}
%endif
%ifarch %{x86_64}
#kroko_kmod_pkg -j %%{nvidia_470_j} -n %%{nvidia_470_n} -f %%{flavour} -k %%{kernelversion}.%%{patchlevel} -m %%{sublevel} -p %%{kver_full} -s %%{NAME} -r %%{kroko_mk_release}
%nvidia_modules_pkg -e %{EVRD} -m 390,470,510,515 -p %{kver_full}
%endif
%ksob_mk_module_pkg -n xt_TRIPSO -s net -r tripso
%ksob_mk_module_pkg -n xt_so -s net -r ipt-so
%ksob_mk_module_pkg -n v4l2loopback -s drivers/media -r v4l2loopback
%if %{with binary_shredder}
%ksob_mk_module_pkg -n shredder-kernel -s extra -r rosa-shredder-user
%endif
#-----------------------------------------------------------------------------
###############
# Virtualbox host
%if %{with binary_virtualbox_host}
%ksob_mk_module_pkg -n vboxnetflt -s misc
%ksob_mk_module_pkg -n vboxnetadp -s misc
%ksob_mk_module_pkg -n vboxdrv -s misc
%ksob_mk_module_pkg -n vboxpci -s misc
# A package which will pull all those modules
%package -n kernel-modules-virtualbox-host-%{ksob_kernel}
Summary: Meta package to pull VirtualBox host kernel modules for kernel-%{flavour}-%{kernelversion}.%{patchlevel}
Group: System/Kernel and hardware
Requires: kernel-module-vboxnetflt-%{ksob_kernel}
Requires: kernel-module-vboxnetadp-%{ksob_kernel}
Requires: kernel-module-vboxdrv-%{ksob_kernel}
Requires: kernel-module-vboxpci-%{ksob_kernel}
Obsoletes: kernel-modules-virtualbox-host-%{flavour}-%{kernelversion}.%{patchlevel}-latest < 5.10.34-2
%description -n kernel-modules-virtualbox-host-%{ksob_kernel}
Meta package to pull VirtualBox host kernel modules for %{name}.
%files -n kernel-modules-virtualbox-host-%{ksob_kernel}
# empty
%endif
#End of ifarch x86
#-----------------------------------------------------------------------------
%if %{with nickel}
%ksob_mk_module_pkg -n nlkm -s misc
%ksob_mk_module_pkg -n memfreetest -s misc
%ksob_mk_module_pkg -n pcietest -s misc
%endif
%endif
# End of binary_extra_modules
#################################################################
%if %{with flow_abi}
%package -n kernel-%{kernelversion}.%{patchlevel}-rosa-flow-abi
Summary: Directory to install third-party binary kernel modules for kernels %{kernelversion}.%{patchlevel}.x
Group: System/Kernel and hardware
%description -n kernel-%{kernelversion}.%{patchlevel}-rosa-flow-abi
This package contains a directory to install third-party binary kernel modules for kernels %{kernelversion}.%{patchlevel}.x.
Some vendors provide binary-only kernel modules. They can put them into /lib/modules/%{kernelversion}.%{patchlevel}-rosa-flow-abi.
kmod tools will find them for kernels 5.4.x of "generic" and "nickel" flavours
but there is no guarantee that these modules will load and work correctly on
newer or older kernels then the ones they were build against.
We call this "flow ABI" because most ABIs are not changed between %{kernelversion}.%{patchlevel}.x releases,
but there are no specific guarantees. ABI may evolve and change.
We highly recommend to use DKMS and build third-party kernel modules from source for every kernel!
This package does nothing, just owns a directory for third-party binary kernel modules.
%files -n kernel-%{kernelversion}.%{patchlevel}-rosa-flow-abi
/lib/modules/%{kernelversion}.%{patchlevel}-rosa-flow-abi
%endif
# End of flow_abi
################################################
%prep
# Avoid accidental merge
%if 0%{?rpm5}
%{error:Package structure is for dnf, not for urpmi!}
%endif
%setup -q -n %{top_dir_name} -c
%if %{with uml}
cp -r %{src_dir} %{src_dir}.uml
%endif
cd %{src_dir}
%autopatch -p1
#
# Setup Begin
#
##################################
# Kernel configuration
echo "Creating the kernel configuration file."
# Configs
cp %{SOURCE111} .
cp %{SOURCE112} .
cp %{SOURCE113} .
cp kernel-%{arch_suffix}.config .config
touch %{build_dir}/.config.append
# Get rid of unwanted files
find . -name '*~' -o -name '*.orig' -o -name '*.append' -delete
# Wipe all .gitignore/.get_maintainer.ignore files
find . -name "*.g*ignore" -delete
# Disable debug info if requested (enabled by default)
%if ! %build_debug
sed -i -e '/CONFIG_DEBUG_INFO/d' -e '/CONFIG_GDB_SCRIPTS/d' .config
echo '# CONFIG_DEBUG_INFO is not set' >> %{build_dir}/.config.append
echo '# CONFIG_GDB_SCRIPTS is not set' >> %{build_dir}/.config.append
%endif
sed -i '/CONFIG_MODULE_SIG_FORCE/d' .config
%if %{with oblig_signed_modules}
# Disallow loading not signed modules
# But 0001-ROSA-ima-allow-to-off-modules-signature-check-dynami.patch allows to override this in cmdline
echo CONFIG_MODULE_SIG_FORCE=y >> %{build_dir}/.config.append
%else
echo CONFIG_MODULE_SIG_FORCE=n >> %{build_dir}/.config.append
%endif
sed -i '/CONFIG_MODULE_SIG_KEY/d' .config
# Set path to the key that will be generated later by openssl/libressl
echo CONFIG_MODULE_SIG_KEY=\"%{certs_signing_key_priv_rnd}\" >> %{build_dir}/.config.append
# Set path to one PEM file with all keys that the kernel must trust
sed -i '/CONFIG_SYSTEM_TRUSTED_KEYS/d' .config
echo CONFIG_SYSTEM_TRUSTED_KEYS=\"%{certs_public_keys}\" >> %{build_dir}/.config.append
# Memory wiping
# Introduced in kernel 5.3 by commit 6471384af2a6530696fc0203bafe4de41a23c9ef
# Estimated performance impact is described in the commit
# "Fill newly allocated pages and heap objects with zeroes."
# To enable, add to cmdline: init_on_alloc=1
sed -i '/CONFIG_INIT_ON_ALLOC_DEFAULT_ON/d' .config
echo CONFIG_INIT_ON_ALLOC_DEFAULT_ON=n >> %{build_dir}/.config.append
# "Fill freed pages and heap objects with zeroes"
# To disable, add to cmdline: init_on_free=0
sed -i '/CONFIG_INIT_ON_FREE_DEFAULT_ON/d' .config
%if %{with nickel}
echo CONFIG_INIT_ON_FREE_DEFAULT_ON=y >> %{build_dir}/.config.append
%else
echo CONFIG_INIT_ON_FREE_DEFAULT_ON=n >> %{build_dir}/.config.append
%endif
# Here enabling only either only init_on_free or only init_on_alloc
# makes sense; init_on_alloc is not about protecting information.
# To load kernel keyring in UML
for i in STREEBOG SHA1 SHA256 SHA512 ECRDSA RSA ; do
if ! grep -q "^CONFIG_CRYPTO_${i}=y$" .config; then
sed -i "/CONFIG_CRYPTO_${i}/d" .config
echo "CONFIG_CRYPTO_${i}=y" >> %{build_dir}/.config.append
fi
done
cat %{build_dir}/.config.append >> .config
##################
# End of kernel config
# Store the config file in the appropriate directory.
CONFIG_DIR=arch/%{arch_type}/configs
mkdir -p "${CONFIG_DIR}"
cfg_file=arch/%{arch_type}/configs/%{arch_suffix}_defconfig-%{flavour}
make ARCH=%{arch_type} oldconfig
# When it is needed to edit kernel configs, run:
# abf fetch
# rpmbuild --define "_sourcedir $PWD" --with=fail -bb kernel.spec
# and then work with the config in the buildroot with applied patches etc.
%{?_with_fail:exit 1}
mv .config ${cfg_file}
echo "Created ${cfg_file}."
# Make sure the kernel has the sublevel we know it has...
LC_ALL=C sed -ri "s/^SUBLEVEL.*/SUBLEVEL = %{sublevel}/" Makefile
# Get rid of unwanted files
find . -name '*~' -o -name '*.orig' -o -name '*.append' | %kxargs rm -f
find . -name '.get_maintainer.ignore' | %kxargs rm -f
# Versionize python shebang (#!/usr/bin/env python -> #!/usr/bin/python3) in scripts
sed -i '1 s,^#!/usr/bin/env python$,#!%{__python3},' \
scripts/bloat-o-meter \
scripts/checkkconfigsymbols.py \
scripts/diffconfig \
scripts/jobserver-exec \
scripts/show_delta \
scripts/spdxcheck.py \
scripts/clang-tools/gen_compile_commands.py \
scripts/clang-tools/run-clang-tools.py \
scripts/tracing/draw_functrace.py \
tools/hv/vmbus_testing \
tools/kvm/kvm_stat/kvm_stat \
tools/perf/python/tracepoint.py \
tools/perf/python/twatch.py \
tools/power/pm-graph/bootgraph.py \
tools/power/pm-graph/sleepgraph.py \
tools/power/x86/intel_pstate_tracer/intel_pstate_tracer.py \
tools/testing/kunit/kunit.py \
tools/testing/kunit/kunit_tool_test.py \
tools/testing/selftests/bpf/test_offload.py \
tools/testing/selftests/drivers/net/mlxsw/sharedbuffer_configuration.py \
tools/testing/selftests/exec/binfmt_script \
tools/testing/selftests/net/devlink_port_split.py \
tools/testing/selftests/tc-testing/tdc.py \
tools/testing/selftests/tc-testing/tdc_batch.py \
tools/testing/selftests/tc-testing/tdc_multibatch.py \
Documentation/sphinx/kernel_include.py \
Documentation/sphinx/maintainers_include.py \
Documentation/sphinx/rstFlatTable.py \
Documentation/target/tcm_mod_builder.py
# Drop env from bash scripts
sed -i '1 s,^#!.*env .*,#!%{_bindir}/bash,' scripts/config
# Drop env from perl scripts
sed -i '1 s,^#!.*env .*,#!%{_bindir}/perl,' \
scripts/bootgraph.pl \
scripts/checkincludes.pl \
scripts/checkkconfigsymbols.py \
scripts/checkpatch.pl \
scripts/checkstack.pl \
scripts/checkversion.pl \
scripts/cleanfile \
scripts/cleanpatch \
scripts/documentation-file-ref-check \
scripts/export_report.pl \
scripts/extract-module-sig.pl \
scripts/extract-sys-certs.pl \
scripts/extract_xc3028.pl \
scripts/get_abi.pl \
scripts/get_dvb_firmware \
scripts/get_maintainer.pl \
scripts/headerdep.pl \
scripts/headers_check.pl \
scripts/kernel-doc \
scripts/leaking_addresses.pl \
scripts/markup_oops.pl \
scripts/profile2linkerlist.pl \
scripts/recordmcount.pl \
scripts/split-man.pl \
scripts/stackdelta \
scripts/dtc/dt_to_config \
scripts/kconfig/streamline_config.pl \
tools/testing/ktest/compare-ktest-sample.pl \
tools/testing/selftests/kselftest/prefix.pl \
Documentation/sphinx/parse-headers.pl
############################################################################
%build
# Ensure that build time generated private keys don't get published
# as e.g. "RPM build root" on ABF!
# Note that ABF sends SIGKILL to rpm-build.sh when the build is terminated;
# in this case trap will not work, but RPM build root also will not be
# saved because rpm-build.sh saves it, but it is SIGKILLed.
# For best security we could store private keys in RAM (not reachable from
# filesystem, so not in /tmp!) and override sth like fopen() by LD_PRELOAD
# to give the content of keys from RAM when a virtual address of a key file
# is accessed, but currently I don't know how to implement this (TODO: ).
_cleanup(){
# Show resulting kernel public keys for debugging
cat "%{src_dir}/%{certs_dir_rnd}/x509_certificate_list" | base64 -d || :
rm -fvr "%{src_dir}/%{certs_dir_rnd}"
%if %{with uml}
cat "%{src_dir}.uml/%{certs_dir_rnd}/x509_certificate_list" | base64 -d || :
rm -fvr "%{src_dir}.uml/%{certs_dir_rnd}"
%endif
}
# Make a trap to delete keys even if %%build fails in the middle
trap "_cleanup" EXIT
rm -rf %{temp_root}
install -d %{temp_root}
cd %{src_dir}
### Keys for signing kernel modules
# Keys can be generated both manually and automatically,
# let's generate them by ourselves to take full control of the process
# https://www.ibm.com/support/knowledgecenter/en/SSB23S_1.1.0.13/gtps7/cfgcert.html
# See also certs/Makefile in kernel source
mkdir -p "%{certs_dir_rnd}"
# On ABF, %%packager == $username <$email>
# Try to extract email from %%packager if it is set
_get_email(){
# Check that macro %%packager was set and is not empty
if echo '%{packager}' | grep -q 'packager}$' || [ -z "%{packager}" ]
# If was not set or is empty, use default email
then echo 'rpmbuild@rosa.unknown' && return
# Otherwise try to extract email from 'name <email>' or sth else
else temp="$(echo '%{packager}' | tr '[:upper:]' '[:lower:]' | tr ' ' '\n' | tr -d '<>' | grep -E '@.*\..*' | head -n 1)"
fi
# Validate that what we have now is a valid email
# https://stackoverflow.com/a/2138832, https://stackoverflow.com/a/41192733
# Note that we set %%_buildshell to /bin/bash to guarantee the work of this bashism
regex_email="^[a-z0-9!#\$%&'*+/=?^_\`{|}~-]+(\.[a-z0-9!#$%&'*+/=?^_\`{|}~-]+)*@([a-z0-9]([a-z0-9-]*[a-z0-9])?\.)+[a-z0-9]([a-z0-9-]*[a-z0-9])?\$"
if [[ "$temp" =~ ${regex_email} ]]
# If it is, use it
then echo "$temp" && return
# Otherwise use default email
else echo 'rpmbuild@rosa.unknown' && return
fi
# If script above has not return'ed for any reason,
# e.g. because of non-bash shell being not able to
# process regexp, use default email
echo 'rpmbuild@rosa.unknown'
}
email="$(_get_email)"
cat <<EOF > "%{certs_key_config_rnd}"
[ req ]
prompt = no
string_mask = utf8only
#default_keyfile = %%{certs_signing_key_priv_rnd}
distinguished_name = req_distinguished_name
x509_extensions = myexts
[ req_distinguished_name ]
organizationName = %{vendor} rpmbuild
commonName = Build time autogenerated @ALGO@ kernel key
emailAddress = ${email}
[ myexts ]
basicConstraints=critical,CA:FALSE
keyUsage=digitalSignature
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid
EOF
cat "%{certs_key_config_rnd}"
sed -e 's,@ALGO@,RSA,g' "%{certs_key_config_rnd}" > "%{certs_key_config_rnd}.RSA"
sed -e 's,@ALGO@,GOST R 34.10-2012,g' "%{certs_key_config_rnd}" > "%{certs_key_config_rnd}.GOST"
# Avoid using the template
rm -f "%{certs_key_config_rnd}"
_libressl_gen_key(){
if [ "$GOST_KEY" = 1 ]
then
lssl_req_gost_args="\
-newkey gost2001 \
-pkeyopt dgst:streebog512 -pkeyopt paramset:A \
-streebog512"
OUT="%{certs_signing_key_priv_rnd}.GOST"
CONFIG="%{certs_key_config_rnd}.GOST"
else
lssl_req_gost_args=""
OUT="%{certs_signing_key_priv_rnd}.RSA"
CONFIG="%{certs_key_config_rnd}.RSA"
fi
libressl req -new -nodes -utf8 -batch \
$lssl_req_gost_args \
-days 109500 \
-x509 -config "$CONFIG" \
-out "$OUT" \
-keyout "$OUT"
# Verify
if [ "$GOST_KEY" = 1 ]; then
libressl x509 -in "%{certs_signing_key_priv_rnd}.GOST" -text -noout \
| grep -E 'Signature Algorithm:.*GOST R 34.10-2012'
libressl x509 -in "%{certs_signing_key_priv_rnd}.GOST" -text -noout \
| grep -E 'Digest Algorithm:.*GOST R 34-11-2012'
libressl x509 -in "%{certs_signing_key_priv_rnd}.GOST" -text -noout \
| grep -E 'Public Key Algorithm:.*GOST R 34.10-2012'
fi
}
GOST_KEY=0 _libressl_gen_key
GOST_KEY=1 _libressl_gen_key
# Fake CONFIG_MODULE_SIG_KEY to make build scripts happy
cp -v "%{certs_signing_key_priv_rnd}.RSA" "%{certs_signing_key_priv_rnd}"
# Strip public parts from the generated PEMs
sed -n \
'/^-----BEGIN CERTIFICATE-----$/,/^-----END CERTIFICATE-----$/p' \
"%{certs_signing_key_priv_rnd}.GOST" \
"%{certs_signing_key_priv_rnd}.RSA" \
> "%{certs_public_keys}"
# Link sign-file and extract-cert with LibreSSL instead of OpenSSL
if [ $? != 0 ] ; then exit $? ; fi
sed -i %{src_dir}/scripts/Makefile \
%if %{with uml}
%{src_dir}.uml/scripts/Makefile \
%endif
-e "s, libcrypto , libressl-libcrypto ,g"
%if %{with additional_keys}
# Add additional public RSA keys to the list of trusted keys for kernel modules
# Build kernel --without additional_keys if you do not want to trust them
cat %{expand:%(for i in `seq 1 12`; do echo "%%SOURCE$((200+${i}))" | tr "\n" " "; done)} \
>> "%{certs_public_keys}"
%endif
# End of additional_keys
cat %{certs_public_keys}
# .config
%smake -s mrproper
cp arch/%{arch_type}/configs/%{arch_suffix}_defconfig-%{flavour} .config
# Make sure EXTRAVERSION says what we want it to say
LC_ALL=C sed -ri "s/^EXTRAVERSION.*/EXTRAVERSION = -%{flavour}-%{buildrpmrel}/" Makefile
# Build the kernel
echo "Building kernel %{kver_full}"
TARGETS="all"
# need to install dtbs to proper boot arm64 devices
%ifarch %{armx}
TARGETS="$TARGETS dtbs"
%endif
%kmake V=1 -s $TARGETS
# Install modules
mkdir -p %{temp_modules}/%{kver_full}
%smake INSTALL_MOD_PATH=%{temp_root} KERNELRELEASE=%{kver_full} modules_install
%if %{with binary_extra_modules}
# Build and install procedure is specific to each Makefile from kernmel-source-* packages
# See also: https://www.kernel.org/doc/html/latest/kbuild/modules.html
# Copy directory because write permissions are required
# `make modules_install` must be done before this, otherwise these copied files will be deleted
cp -r "$(rpm -q --qf '/usr/src/rtl8821ce-%%{VERSION}-%%{RELEASE}' kernel-source-rtl8821ce)" kernel-source-rtl8821ce
pushd kernel-source-rtl8821ce
%kmake KSRC=%{src_dir} M="$PWD"
mkdir -p %{temp_modules}/%{kver_full}/kernel/net/wireless/
cp 8821ce.ko %{temp_modules}/%{kver_full}/kernel/net/wireless/8821ce.ko
popd
rm -fr kernel-source-rtl8821ce
cp -r "$(rpm -q --qf '/usr/src/rtl8821cu-%%{VERSION}-%%{RELEASE}' kernel-source-rtl8821cu)" kernel-source-rtl8821cu
pushd kernel-source-rtl8821cu
%kmake KSRC=%{src_dir} M="$PWD"
mkdir -p %{temp_modules}/%{kver_full}/kernel/net/wireless/
cp 8821cu.ko %{temp_modules}/%{kver_full}/kernel/net/wireless/8821cu.ko
popd
rm -fr kernel-source-rtl8821cu
_build_nvidia(){
cp -r "$(rpm -q --qf "/usr/src/nvidia${1}-%%{VERSION}-%%{RELEASE}" kernel-source-nvidia${1})" kernel-source-nvidia${1}
pushd kernel-source-nvidia${1}
%make SYSSRC=%{src_dir}
mkdir -p %{temp_modules}/%{kver_full}/kernel/drivers/video/nvidia${1}
cp *.ko %{temp_modules}/%{kver_full}/kernel/drivers/video/nvidia${1}
popd
rm -fr kernel-source-nvidia${1}
}
%ifarch %{ix86} %{x86_64}
cp -r "$(rpm -q --qf '/usr/src/broadcom-wl-%%{VERSION}-%%{RELEASE}' kernel-source-broadcom-wl)" kernel-source-broadcom-wl
pushd kernel-source-broadcom-wl
%kmake -C %{src_dir} M="$PWD"
mkdir -p %{temp_modules}/%{kver_full}/kernel/net/wireless/
cp wl.ko %{temp_modules}/%{kver_full}/kernel/net/wireless/wl.ko
popd
rm -fr kernel-source-broadcom-wl
_build_nvidia 390
%endif
%ifarch %{x86_64}
_build_nvidia 470
_build_nvidia 510
_build_nvidia 515
%endif
cp -r "$(rpm -q --qf '/usr/src/tripso-%%{VERSION}-%%{RELEASE}' kernel-source-tripso)" kernel-source-tripso
pushd kernel-source-tripso
%kmake KDIR=%{src_dir}
mkdir -p %{temp_modules}/%{kver_full}/kernel/net
cp xt_TRIPSO.ko %{temp_modules}/%{kver_full}/kernel/net/
popd
rm -fr kernel-source-tripso
cp -r "$(rpm -q --qf '/usr/src/ipt-so-%%{VERSION}-%%{RELEASE}' kernel-source-ipt-so)" kernel-source-ipt-so
pushd kernel-source-ipt-so
%kmake KDIR=%{src_dir}
mkdir -p %{temp_modules}/%{kver_full}/kernel/net
cp xt_so.ko %{temp_modules}/%{kver_full}/kernel/net/
popd
rm -fr kernel-source-ipt-so
%if %{with binary_shredder}
cp -r "$(rpm -q --qf '/usr/src/shredder-kernel-%%{VERSION}-%%{RELEASE}' kernel-source-shredder-kernel)" kernel-source-shredder-kernel
pushd kernel-source-shredder-kernel
%kmake KERNEL_PATH=%{src_dir}
mkdir -p %{temp_modules}/%{kver_full}/kernel/extra/
cp shredder-kernel.ko %{temp_modules}/%{kver_full}/kernel/extra/
popd
rm -fr kernel-source-shredder-kernel
%endif
%if %{with binary_virtualbox_host}
# build commands for virtualbox are based on the ones from the virtualbox package
cp -r "$(rpm -q --qf '/usr/src/virtualbox-%%{VERSION}-%%{RELEASE}' kernel-source-virtualbox)" kernel-source-virtualbox
mkdir -p %{temp_modules}/%{kver_full}/kernel/misc/
pushd kernel-source-virtualbox
make -C vboxdrv KERN_DIR=%{src_dir} KERN_VER=%{kver_full}
cp -fv vboxdrv/Module.symvers vboxnetflt
cp -fv vboxdrv/Module.symvers vboxnetadp
make -C vboxnetflt KERN_DIR=%{src_dir} KERN_VER=%{kver_full}
make -C vboxnetadp KERN_DIR=%{src_dir} KERN_VER=%{kver_full}
cp -fv vboxnetadp/Module.symvers vboxpci/
make -C vboxpci KERN_DIR=%{src_dir} KERN_VER=%{kver_full}
for i in vboxnetflt vboxnetadp vboxdrv vboxpci
do
cp -v "${i}/${i}.ko" %{temp_modules}/%{kver_full}/kernel/misc/
done
popd
%endif
cp -r "$(rpm -q --qf '/usr/src/v4l2loopback-%%{VERSION}-%%{RELEASE}' kernel-source-v4l2loopback)" kernel-source-v4l2loopback
pushd kernel-source-v4l2loopback
cat Kbuild > Makefile
mkdir -p %{temp_modules}/%{kver_full}/kernel/drivers/media
make -C %{src_dir} M="$PWD" modules
cp v4l2loopback.ko %{temp_modules}/%{kver_full}/kernel/drivers/media
pushd
rm -fr kernel-source-v4l2loopback
%if %{with nickel}
# rosa-test-suite uses /sr/src/xxx-version, not /usr/src/xxx-version-release
cp -r "$(rpm -q --qf '/usr/src/rosa-test-suite-%%{VERSION}' kernel-source-rosa-test-suite)" kernel-source-rosa-test-suite
pushd kernel-source-rosa-test-suite
mkdir -p %{temp_modules}/%{kver_full}/kernel/misc/
for i in nlkm memfreetest pcietest
do
cat << EOF > Makefile
obj-m := ${i}.o
all:
make -C %{src_dir} M=\$(PWD) modules
EOF
%kmake
cp -fv ${i}.ko %{temp_modules}/%{kver_full}/kernel/misc/
done
popd
%endif
# End with nickel <- with binary_extra_modules
%endif
# End with binary_extra_modules
%if %{with uml}
cp -rv %{certs_dir_rnd} %{src_dir}.uml/
pushd %{src_dir}.uml
%kmake ARCH=um defconfig
%kmake ARCH=um linux
install -Dm0755 linux %{temp_root}%{_bindir}/linux-uml-%{kver_full}
#rm -fv linux
%kmake V=1 ARCH=um modules
mkdir -p %{temp_root}/lib/modules-uml/%{kver_full}/
%kmake ARCH=um INSTALL_MOD_PATH=%{temp_root}/lib/modules-uml/%{kver_full}/ modules_install
popd
%endif
install -d %{temp_boot}
install -m 644 System.map %{temp_boot}/System.map-%{kver_full}
install -m 644 .config %{temp_boot}/config-%{kver_full}
%if %{with modxz}
xz -c Module.symvers > %{temp_boot}/symvers-%{kver_full}.xz
%else
%{zstd_cmd} Module.symvers
install -m 644 Module.symvers.zst %{temp_boot}/symvers-%{kver_full}.zst
%endif
%ifarch %{armx}
%make_build ARCH=%{arch_type} V=1 INSTALL_DTBS_PATH=%{temp_boot}/dtb-%{kver_full} dtbs_install
%endif
%ifarch aarch64
cp -f arch/arm64/boot/Image.gz %{temp_boot}/vmlinuz-%{kver_full}
%else
cp -f arch/%{arch_type}/boot/bzImage %{temp_boot}/vmlinuz-%{kver_full}
%endif
# Headers
%if %{build_headers}
%make INSTALL_HDR_PATH=%{temp_root}%{_prefix} KERNELRELEASE=%{kver_full} headers_install
find %{temp_root}%{_prefix} -name .install -or -name ..install.cmd | %kxargs rm -f
%endif
# Remove /lib/firmware, we use a separate linux-firmware package
rm -rf %{temp_root}/lib/firmware
# Prepare the files for kernel*-devel
%if %{build_devel}
mkdir -p %{temp_devel_root}
for i in $(find . -name 'Makefile*'); do cp -R --parents $i %{temp_devel_root}; done
for i in $(find . -name 'Kconfig*' -o -name 'Kbuild*'); do cp -R --parents $i %{temp_devel_root}; done
cp -fR include %{temp_devel_root}
cp -fR scripts %{temp_devel_root}
cp -fR kernel/bounds.c %{temp_devel_root}/kernel
cp -fR kernel/time/timeconst.bc %{temp_devel_root}/kernel/time
cp -fR tools %{temp_devel_root}/
cp -fR arch/%{arch_type}/kernel/asm-offsets.{c,s} %{temp_devel_root}/arch/%{arch_type}/kernel/
%ifarch %{ix86} %{x86_64}
cp -fR arch/%{arch_type}/kernel/asm-offsets_{32,64}.c %{temp_devel_root}/arch/%{arch_type}/kernel/
cp -fR arch/%{arch_type}/purgatory/* %{temp_devel_root}/arch/%{arch_type}/purgatory/
# Needed for arch/x86/purgatory
cp -fR lib/*.h lib/*.c %{temp_devel_root}/lib/
cp -fR arch/%{arch_type}/entry/syscalls/syscall* %{temp_devel_root}/arch/%{arch_type}/entry/syscalls/
cp -fR arch/%{arch_type}/tools %{temp_devel_root}/arch/%{arch_type}/
# needed for kexec
cp -fR arch/%{arch_type}/boot/*.h %{temp_devel_root}/arch/%{arch_type}/boot/
cp -fR arch/%{arch_type}/boot/*.c %{temp_devel_root}/arch/%{arch_type}/boot/
%endif
cp -fR arch/%{arch_type}/include %{temp_devel_root}/arch/%{arch_type}/
cp -fR .config Module.symvers %{temp_devel_root}
# Needed for truecrypt build (Danny)
cp -fR drivers/md/dm.h %{temp_devel_root}/drivers/md/
# Needed for lirc_gpio (#39004)
cp -fR drivers/media/pci/bt8xx/bttv{,p}.h %{temp_devel_root}/drivers/media/pci/bt8xx/
cp -fR drivers/media/pci/bt8xx/bt848.h %{temp_devel_root}/drivers/media/pci/bt8xx/
cp -fR drivers/media/common/btcx-risc.h %{temp_devel_root}/drivers/media/common/
# Add acpica header files, needed for fglrx build
cp -fR drivers/acpi/acpica/*.h %{temp_devel_root}/drivers/acpi/acpica/
%if %{with aufs}
# aufs2 has a special file needed
cp -fR fs/aufs/magic.mk %{temp_devel_root}/fs/aufs
%endif
# SELinux needs security/selinux/include
cp -fR security/selinux/include %{temp_devel_root}/security/selinux
for i in alpha arc avr32 blackfin c6x cris csky frv h8300 hexagon ia64 m32r m68k m68knommu metag microblaze \
mips mn10300 nds32 nios2 openrisc parisc powerpc riscv s390 score sh sparc tile unicore32 xtensa; do
rm -rf %{temp_devel_root}/arch/$i
done
# Clean the scripts tree, and make sure everything is ok (sanity check)
# running prepare+scripts (tree was already "prepared" in build)
pushd %{temp_devel_root}
%smake V=1 -s clean ARCH=%{arch_type}
popd
rm -f %{temp_devel_root}/.config.old
# Fix permissions
chmod -R a+rX %{temp_devel_root}
# Disable mrproper in -devel rpms
patch -p1 --fuzz=0 -d %{temp_devel_root} -i %{SOURCE2}
%endif
# End of build_devel
# TODO: maybe move to /usr/lib/debug?
%if %{build_debug}
find %{temp_modules}/%{kver_full}/kernel \
-name "*.ko" | \
%kxargs -I '{}' objcopy --only-keep-debug '{}' '{}'.debug
find %{temp_modules}/%{kver_full}/kernel \
-name "*.ko" | %kxargs -I '{}' \
sh -c 'cd `dirname {}`; \
objcopy --add-gnu-debuglink=`basename {}`.debug \
--strip-debug `basename {}`'
%endif
# End of build_debug
# https://patchwork.kernel.org/patch/11446123/
_libressl_sign(){
if [ ! -f "$1" ]; then
echo "No file $1"
return 0
fi
f="$1"
%if %{with gost_sign}
%{src_dir}/scripts/sign-file streebog512 \
"%{certs_signing_key_priv_rnd}.GOST" "%{certs_signing_key_priv_rnd}.GOST" "$f"
%else
%{src_dir}/scripts/sign-file sha512 \
"%{certs_signing_key_priv_rnd}.RSA" "%{certs_signing_key_priv_rnd}.RSA" "$f"
%endif
unset f
}
export -f _libressl_sign
find %{temp_modules}/%{kver_full}/kernel \
%if %{with uml}
%{temp_root}/lib/modules-uml/%{kver_full} \
%endif
-name '*.ko' -print0 | sort -u | \
xargs --null -P "$(nproc)" -I {} "$SHELL" -e -x -c 'if ! _libressl_sign "{}"; \
then echo Failed _libressl_sign on "{}" && exit 1; fi'
# Set extraversion to match srpm to get nice version reported by the tools
LC_ALL=C sed -ri "s/^EXTRAVERSION.*/EXTRAVERSION = -%{fullrpmrel}/" Makefile
%if %{build_perf}
%smake -C tools/perf -s PYTHON=%{__python3} HAVE_CPLUS_DEMANGLE=1 WERROR=0 prefix=%{_prefix} lib=%{_lib} NO_GTK2=1 all
%smake -C tools/perf -s prefix=%{_prefix} lib=%{_lib} NO_GTK2=1 man
%endif
%if %{build_cpupower}
# Make sure version-gen.sh is executable.
chmod +x tools/power/cpupower/utils/version-gen.sh
%make -C tools/power/cpupower CPUFREQ_BENCH=false
%endif
_cleanup
############################################################################
%install
cd %{src_dir}
# We want to be able to test several times the install part
rm -rf %{buildroot}
cp -a %{temp_root} %{buildroot}
#if %%{with oblig_signed_modules}
# Multithreaded verification that every kernel module has a signature attached to it
mkdir -p "%{certs_dir_rnd}"
touch %{certs_verify_tmp}
_verify_signature(){
if [ -z "$1" ] || [ ! -f "$1" ]; then return; fi
if hexdump -C "$1" | rev | cut -f 2 -d '|' | rev | tr -d '\n' | grep -q '~Module signature appended~'; then
if [ -f %{certs_verify_tmp} ]; then
rm -f %{certs_verify_tmp}
fi
else
echo "ERROR: Module $1 has no signature attached to it!"
exit 1
fi
}
export -f _verify_signature
find %{target_modules} \
%if %{with uml}
%{buildroot}/lib/modules-uml/%{kver_full} \
%endif
-name '*.ko' -print0 | sort -u | \
xargs --null -P "$(nproc)" -I {} "$SHELL" -c '_verify_signature "{}"'
if [ -f %{certs_verify_tmp} ]; then
echo "ERROR: seems that signatures of none modules were verified!"
exit 1
fi
rm -f %{certs_verify_tmp}
#endif
# Compressing modules
%if %{with compress_modules}
# Tested on /lib/modules/5.10.34-generic-2rosa2019.1-x86_64, the results are the following:
# * decompressed: 266.3 MiB
# * xz -9 --extreme: 67.8 MiB
# * zstd --ultra -22 without training: 73.5 MiB
# * zstd -6 without training: 79.6 MiB
# * zstd --ultra -22 with training: 66.3 MiB (the winner!)
# Training takes only a few minutes, make it here in place with current zstd and kernel modules.
# But! Decompressing also requires a dictionary for zstd, that will be too complex, so not using training :(
# We already use zstd in dracut to compress initrds quickly and with good compression ration.
# Testing speed of loading modules:
# `time modinfo bcache.ko.xz` took 0,048s, `time modinfo bcache.ko.zstd` took 0,014s (for multiple times)
# find /lib/modules/5.10.34-generic-2rosa2019.1-x86_64 -type f -name '*.ko.zst' > /tmp/zst.list
# time { for i in `cat /tmp/zst.list`; do modinfo $i >/dev/null 2>&1; done ;}
# took ~31-40s, with disk cache (2+ runs) ~33s
# find /lib/modules/5.10.34-generic-1rosa2019.1-x86_64 -type f -name '*.ko.xz' > /tmp/xz.list
# time { for i in `cat /tmp/xz.list`; do modinfo $i >/dev/null 2>&1; done ;}
# took 43-47s, with disk cache (2+ runs) ~42s, +21%%
# zstd-compressed initramfs image initrd-5.10.34-generic-1rosa2019.1-x86_64.img with *.ko.xz is 56,3 MiB
# zstd-compressed initramfs image initrd-5.10.34-generic-2rosa2019.1-x86_64.img with *.ko.zst is 58,4 MiB (+3.6%%)
# /lib/modules/5.10.34-generic-1rosa2019.1-x86_64 (*.ko.xz) is 78,1 MiB
# /lib/modules/5.10.34-generic-2rosa2019.1-x86_64 (*.ko.zst) is 83,9 MiB (+7%%)
# When zstd is compressing cpio (initrd image) with zstd-compressed kernel modules inside it, does it recompress data?
# It is not easy to make a choice between zstd and xz for kernel modules... Disk space (and so speed of installing
# RPM packages) is not much bigger, we do not try to support super low end devices, operation speed is a bit better.
# I have not seen measurable difference in startup time according to systemd-analyze.
# Note that decompression after zstd --ultra -22 will consume more memory than after zstd -6, see commit message in
# https://github.com/torvalds/linux/commit/73f3d1b48f5069d46b. I did not benchmark -6 vs -22 in runtime.
# Let's use zstd for now.
# zstd may also be used to compress linux-firmware to save a lot of space on disk,
# but upstream kernels still cannot decompress it.
#{zstd_cmd} -T0 --train $(find . -type f -name '*.ko')
#[ -f dictionary ]
# -T1 (one thread) because we run multiple zstd processes by xargs
%if %{with modxz}
find %{target_modules} -name "*.ko" | %kxargs xz -6e
%else
find %{target_modules} -name "*.ko" | %kxargs %{zstd_cmd} --rm -T1 #-D dictionary
rm -f dictionary
%endif
%endif
find %{buildroot}%{_modulesdir}/%{kver_full} -type f -name '*.ko%{kmod_suffix}' | sed -e 's,^%{buildroot},,' | sort -u >> %{kernel_files}
find %{buildroot}%{_modulesdir}/%{kver_full} -type d | sed -e 's,^%{buildroot},%dir ,' | sort -u >> %{kernel_files}
# We estimate the size of the initramfs because rpm needs to take this size
# into consideration when performing disk space calculations (See rhbz#530778)
# 65 MiB is a bit more than needed, but let's be more sure that there is enought space.
# On my PC, zstd-compressed initrds take 58,5 MiB.
# Real size of the RPM package should not increase because RPM compresses the payload.
# This file is %%ghost, so the real initrd will be deleted when uninstalling this package.
dd if=/dev/zero of=%{buildroot}%{initrd_path} bs=1M count=65
%if %{build_debug}
install -m 644 vmlinux %{buildroot}%{_bootdir}/vmlinux-%{kver_full}
find %{buildroot}%{_modulesdir} -type f -name '*.debug' | sed -e 's,^%{buildroot},,' | sort -u >> %{debuginfo_files}
%endif
# End of build_debug
pushd %{target_modules}
for i in *; do
rm -f $i/build $i/source
ln -sf /usr/src/linux-$i $i/build
ln -sf /usr/src/linux-$i $i/source
done
# Sniff, if we compressed all the modules, we change the stamp :(
# we really need the depmod -ae here
for i in *; do
/sbin/depmod -ae -b %{buildroot} -F %{target_boot}/System.map-$i $i
echo $?
done
# We used to create modules.description files which contained the
# description strings for the modules as shown by modinfo. These files
# are unlikely to be used right now, so create them (in case some old tool
# checks for their existence) but keep them empty.
for i in *; do
touch $i/modules.description
done
popd
# Need to set extraversion to match srpm again to avoid rebuild
LC_ALL=C sed -ri "s/^EXTRAVERSION.*/EXTRAVERSION = -%{fullrpmrel}/" Makefile
%if %{build_perf}
# Perf tool binary and supporting scripts/binaries
make -C tools/perf -s V=1 DESTDIR=%{buildroot} WERROR=0 HAVE_CPLUS_DEMANGLE=1 prefix=%{_prefix} lib=%{_lib} install
# Versionize shebang (#!/usr/bin/env python -> #!/usr/bin/python3)
sed -i '1 s,^#!/usr/bin/env python$,#!%{__python3},' \
%{buildroot}%{_prefix}/libexec/perf-core/scripts/python/exported-sql-viewer.py \
%{buildroot}%{_prefix}/libexec/perf-core/scripts/python/libxed.py
# Perf man pages (note: implicit rpm magic compresses them later)
make -C tools/perf -s V=1 DESTDIR=%{buildroot} WERROR=0 HAVE_CPLUS_DEMANGLE=1 prefix=%{_prefix} install-man
%endif
%if %{build_cpupower}
make -C tools/power/cpupower DESTDIR=%{buildroot} libdir=%{_libdir} mandir=%{_mandir} CPUFREQ_BENCH=false install
rm -f %{buildroot}%{_libdir}/*.{a,la}
%find_lang cpupower
mv cpupower.lang ../
chmod 0755 %{buildroot}%{_libdir}/libcpupower.so*
mkdir -p %{buildroot}%{_unitdir} %{buildroot}%{_sysconfdir}/sysconfig
install -m644 %{SOURCE50} %{buildroot}%{_unitdir}/cpupower.service
install -m644 %{SOURCE53} %{buildroot}%{_unitdir}/cpupower.path
install -m644 %{SOURCE51} %{buildroot}%{_sysconfdir}/sysconfig/cpupower
install -m755 %{SOURCE52} %{buildroot}%{_bindir}/cpupower-start.sh
%endif
# Delete junk
rm -fr %{buildroot}%{_usr}/src/*/kernel-source-*
%if %{with flow_abi}
# Prefix with "zzz" to put this directory into the end of search list
# and avoid tricks with depmod configs
mkdir -p %{buildroot}/lib/modules/%{kernelversion}.%{patchlevel}-rosa-flow-abi
ln -s /lib/modules/%{kernelversion}.%{patchlevel}-rosa-flow-abi %{buildroot}%{_modulesdir}/%{kver_full}/kernel/zzz-%{kernelversion}.%{patchlevel}-rosa-flow-abi
%endif
# Drop hidden files
rm -f %{buildroot}%{_docdir}/kernel-5.10-generic-doc/devicetree/bindings/.yamllint
# Fix perms
chmod -x %{buildroot}%{_sysconfdir}/bash_completion.d/perf
chmod -x %{buildroot}%{_prefix}/lib/perf/examples/bpf/*.c
chmod -x %{buildroot}%{_prefix}/lib/perf/include/bpf/*.h
chmod -x %{buildroot}%{_prefix}/lib/perf/include/bpf/linux/*.h
chmod -x %{buildroot}%{_datadir}/doc/perf-tip/*.txt