kernel-5.15/kernel.spec

1841 lines
64 KiB
RPMSpec
Raw Normal View History

# _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
2020-06-19 23:42:50 +03:00
# 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}
2020-06-19 23:42:50 +03:00
# 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
[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
%define sublevel 61
2013-11-16 00:27:01 +04:00
# Release number. Increase this before a rebuild.
%define rpmrel 1
%define fullrpmrel %{rpmrel}
2013-11-16 00:27:01 +04:00
%define rpmtag %{disttag}
2013-11-16 00:27:01 +04:00
# Version defines
%define kversion %{kernelversion}.%{patchlevel}.%{sublevel}
%define kverrel %{kversion}-%{fullrpmrel}
%define tar_ver %{kernelversion}.%{patchlevel}
2013-11-16 00:27:01 +04:00
%ifarch %{ix86}
%define arch_suffix i686
2020-11-26 21:09:27 +00:00
%endif
%ifarch %{x86_64}
%define arch_suffix x86_64
%endif
2020-11-26 21:09:27 +00:00
%ifarch aarch64
%define arch_suffix arm64
2020-11-26 21:09:27 +00:00
%endif
%define buildrpmrel %{fullrpmrel}%{rpmtag}-%{arch_suffix}
%define buildrel %{kversion}-%{buildrpmrel}
2013-11-16 00:27:01 +04:00
# 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
2021-05-22 12:08:22 +03:00
# Fail the build after "make oldconfig" to edit kernel configs
%bcond_with fail
2021-05-22 12:08:22 +03:00
2020-03-13 20:35:12 +03:00
# 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
2022-03-17 10:23:10 +03:00
%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
2020-07-29 10:59:41 +03:00
%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
2020-07-29 10:59:41 +03:00
%else
%bcond_with binary_extra_modules
%bcond_with gost_sign
2020-07-29 10:59:41 +03:00
%endif
%bcond_with ccache
%bcond_without flow_abi
%bcond_without aufs
Update from 5.4 to 5.10.1 - rediffed most of patches, renamed files to easify further rediffs by git format-patch - thanks to abf.io/kernels_stable for some patches for kernel 5.9 - using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much) - pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD - dropped patch adding sysctl to disable disk-based swap because it has not found any usage - bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful - keeping kernel libc headers in older kernels for now - dropped building external virtualbox guest modules because they are now included into the mainline kernel - offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms - offed building kernel-shredder because it is not buildable on kernel 5.10 - updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0) It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4. TODO: update kernel configs TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
# 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.
Update from 5.4 to 5.10.1 - rediffed most of patches, renamed files to easify further rediffs by git format-patch - thanks to abf.io/kernels_stable for some patches for kernel 5.9 - using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much) - pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD - dropped patch adding sysctl to disable disk-based swap because it has not found any usage - bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful - keeping kernel libc headers in older kernels for now - dropped building external virtualbox guest modules because they are now included into the mainline kernel - offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms - offed building kernel-shredder because it is not buildable on kernel 5.10 - updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0) It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4. TODO: update kernel configs TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
%bcond_with binary_virtualbox_host
# Shredder-kernel works only on x86_64, makes manipulations with syscalls tables,
Update from 5.4 to 5.10.1 - rediffed most of patches, renamed files to easify further rediffs by git format-patch - thanks to abf.io/kernels_stable for some patches for kernel 5.9 - using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much) - pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD - dropped patch adding sysctl to disable disk-based swap because it has not found any usage - bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful - keeping kernel libc headers in older kernels for now - dropped building external virtualbox guest modules because they are now included into the mainline kernel - offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms - offed building kernel-shredder because it is not buildable on kernel 5.10 - updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0) It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4. TODO: update kernel configs TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
# 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
2013-11-16 00:27:01 +04:00
# The full kernel version
%define kver_full %{kversion}-%{flavour}-%{buildrpmrel}
2021-10-10 16:12:22 +03:00
############################################################################
%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}
2019-11-11 17:47:53 +03:00
# 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}
############################################################################
2013-11-16 00:27:01 +04:00
#if %%{with binary_extra_modules}
2021-10-10 16:12:22 +03:00
# 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)
2021-10-10 16:12:22 +03:00
# 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
2021-10-10 16:12:22 +03:00
############################################################################
# Buildtime flags
2013-11-16 00:27:01 +04:00
%{?_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}
2013-11-16 00:27:01 +04:00
# 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
2020-07-29 10:59:41 +03:00
%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}"
2013-11-16 00:27:01 +04:00
%else
%define kmake %make CC='gcc' ARCH="%{arch_type}"
2013-11-16 00:27:01 +04:00
%endif
# There are places where parallel make don't work
%define smake make
2020-11-26 18:48:55 +00:00
%ifarch %{ix86} %{x86_64}
%define arch_type x86
2020-11-26 18:48:55 +00:00
%endif
%ifarch aarch64
%define arch_type arm64
2020-11-26 18:48:55 +00:00
%endif
2013-11-16 00:27:01 +04:00
# Parallelize xargs invocations on smp machines
%define kxargs xargs %([ -z "$RPM_BUILD_NCPUS" ] \\\
2013-11-16 00:27:01 +04:00
&& 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
2013-11-16 00:27:01 +04:00
####################################################################
#
# Sources
#
Source0: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/linux-%{tar_ver}.tar.xz
Revisited the set of kernel flavours and the generation of config files Until now, the build system for the kernel supported a number of flavours: nrj and non-nrj ones, desktop-, laptop-, server- and netbook-oriented, etc. It turned out over the years, however, that our users mostly need the following: * a kernel to use on the desktops (home and office use) with reasonable default settings for performance and responsiveness; * a kernel for laptops, with a bit more emphasis on power consumption. Other variants were rarely used. We also did not have enough time to properly support all these. Besides, the kernels for ARM and other architectures need a somewhat different build process than for x86. So, they are better off to be in separate ABF projects, even if they are needed. No signs of ROSA on ARM yet, btw. So, I kept only nrj-desktop and nrj-laptop flavours and only x86. Non-PAE systems also seem to be rare now, so I enabled PAE by default for the 32-bit kernels. Non-PAE kernels are no longer built. If they are needed, we may use a separate git branch or an ABF project for that. To simplify debugging, maintenance and experimentation with the kernel builds further, I revisited the process of preparing the kernel configuration files. The goal is to get rid of a separate git repo with the default configs (kernel-patches-and-configs) and keep everything in this project. The default config files are now kept here. For x86_64: * kernel-x86_64.config contains the options for both nrj-desktop and nrn-laptop flavours; * kernel-{nrj_desktop|nrj_laptop}-x86_64.config files contain the flavour-specific options. This way, it is easier to track which config options changed when, easier to experiment with the custom configs and so on. The kernel will be built with debug info if rpmbuild is called with "--with debug".
2016-07-21 13:56:25 +03:00
2013-11-16 00:27:01 +04:00
# 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
2013-11-16 00:27:01 +04:00
# TODO: Make a separate package "ksobirator" and BR it
2020-07-29 10:59:41 +03:00
# after testing these macros properly
Source3: macros.ksobirator
%{load:%{SOURCE3}}
Source4: macros.nvidia
%{load:%{SOURCE4}}
2020-07-29 10:59:41 +03:00
Revisited the set of kernel flavours and the generation of config files Until now, the build system for the kernel supported a number of flavours: nrj and non-nrj ones, desktop-, laptop-, server- and netbook-oriented, etc. It turned out over the years, however, that our users mostly need the following: * a kernel to use on the desktops (home and office use) with reasonable default settings for performance and responsiveness; * a kernel for laptops, with a bit more emphasis on power consumption. Other variants were rarely used. We also did not have enough time to properly support all these. Besides, the kernels for ARM and other architectures need a somewhat different build process than for x86. So, they are better off to be in separate ABF projects, even if they are needed. No signs of ROSA on ARM yet, btw. So, I kept only nrj-desktop and nrj-laptop flavours and only x86. Non-PAE systems also seem to be rare now, so I enabled PAE by default for the 32-bit kernels. Non-PAE kernels are no longer built. If they are needed, we may use a separate git branch or an ABF project for that. To simplify debugging, maintenance and experimentation with the kernel builds further, I revisited the process of preparing the kernel configuration files. The goal is to get rid of a separate git repo with the default configs (kernel-patches-and-configs) and keep everything in this project. The default config files are now kept here. For x86_64: * kernel-x86_64.config contains the options for both nrj-desktop and nrn-laptop flavours; * kernel-{nrj_desktop|nrj_laptop}-x86_64.config files contain the flavour-specific options. This way, it is easier to track which config options changed when, easier to experiment with the custom configs and so on. The kernel will be built with debug info if rpmbuild is called with "--with debug".
2016-07-21 13:56:25 +03:00
# Kernel configuration files.
Source111: kernel-x86_64.config
Source112: kernel-i686.config
Source113: kernel-arm64.config
2013-11-16 00:27:01 +04:00
# Cpupower: the service, the config, etc.
Source50: cpupower.service
Source51: cpupower.config
Source52: cpupower-start.sh
Source53: cpupower.path
2013-11-16 00:27:01 +04:00
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)}
####################################################################
Revisited the set of kernel flavours and the generation of config files Until now, the build system for the kernel supported a number of flavours: nrj and non-nrj ones, desktop-, laptop-, server- and netbook-oriented, etc. It turned out over the years, however, that our users mostly need the following: * a kernel to use on the desktops (home and office use) with reasonable default settings for performance and responsiveness; * a kernel for laptops, with a bit more emphasis on power consumption. Other variants were rarely used. We also did not have enough time to properly support all these. Besides, the kernels for ARM and other architectures need a somewhat different build process than for x86. So, they are better off to be in separate ABF projects, even if they are needed. No signs of ROSA on ARM yet, btw. So, I kept only nrj-desktop and nrj-laptop flavours and only x86. Non-PAE systems also seem to be rare now, so I enabled PAE by default for the 32-bit kernels. Non-PAE kernels are no longer built. If they are needed, we may use a separate git branch or an ABF project for that. To simplify debugging, maintenance and experimentation with the kernel builds further, I revisited the process of preparing the kernel configuration files. The goal is to get rid of a separate git repo with the default configs (kernel-patches-and-configs) and keep everything in this project. The default config files are now kept here. For x86_64: * kernel-x86_64.config contains the options for both nrj-desktop and nrn-laptop flavours; * kernel-{nrj_desktop|nrj_laptop}-x86_64.config files contain the flavour-specific options. This way, it is easier to track which config options changed when, easier to experiment with the custom configs and so on. The kernel will be built with debug info if rpmbuild is called with "--with debug".
2016-07-21 13:56:25 +03:00
2013-11-16 00:27:01 +04:00
# 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
2013-11-16 00:27:01 +04:00
# 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}
2020-08-18 08:02:38 +03:00
# AUFS 5 from http://aufs.sourceforge.net/
Patch109: 0001-Apply-AUFS-5.patch
%endif
2019-12-07 21:57:55 +03:00
2020-06-18 18:38:30 +03:00
# For kmod() generator of RPM Provides
# Changes version of aacraid.ko
Patch111: 0001-Remove-RPM-illegal-chars-from-module-version.patch
2020-06-18 18:38:30 +03:00
# 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
2022-03-17 10:23:10 +03:00
Patch201: 0001-altha.patch
2020-03-20 11:27:35 +03:00
# 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
2013-11-16 00:27:01 +04:00
Add support of Baikal-M SoCs Information about config values was taken from: From 804820df7bcb3d53a33ecd074b1eac277e938f24 Mon Sep 17 00:00:00 2001 From: Alexey Sheplyakov <asheplyakov@altlinux.org> Date: Thu, 4 Feb 2021 19:35:14 +0400 Subject: [PATCH] config-aarch64: adjusted for Baikal-M (MBM1.0 board) * DW_APB_TIMER=y, DW_APB_TIMER_OF=y: SoC clocks * SERIAL_8250_DW=y: serial console * I2C_DESIGNWARE_CORE=y, I2C_DESIGNWARE_PLATFORM=y: BMC (board management controller) and RTC (Real Time Clock) are connected via I2C. * GPIO_DWAPB=y: device (PCIe, PHY, etc) reset/configuration * RTC_DRV_PCF2127=y: RTC compiled in so the kernel automatically sets the system time from the hardware clock * TP_BMC=y: amongst other things handles the power button * DRM_BAIKAL_VDU=m, DRM_BAIKAL_HDMI=m: video unit and HDMI transmitter * CMA_SIZE_MBYTES=256: video display unit and GPU use system RAM, hence CMA should reserve enough (contiguous) memory. Note: CMA reserves memory during very early init, hence the size has to be hard-coded into CONFIG * MALI_MIDGARD=m: GPU driver, kernel side of proprietary mali blob. Note: kernel mode code is GPLv2, so it's fine to distribute it. * SENSORS_BT1_PVT=m: hardware temperature/voltage sensors * PCI_BAIKAL=m: PCIe root complex. Compiled as a module since takes ages (60 seconds or so) to probe the hardware. If compiled in substantially increases the boot time, and machine is completely unresponsive during probing PCIe. When built as a module probing executes concurrently with other boot activities (unless booting from a PCIe device) * STMMAC_ETH=m, STMMAC_PLATFORM=m, DWMAC_BAIKAL=m: Ethernet driver
2021-06-22 16:12:03 +03:00
# 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
Add support of Baikal-M SoCs Information about config values was taken from: From 804820df7bcb3d53a33ecd074b1eac277e938f24 Mon Sep 17 00:00:00 2001 From: Alexey Sheplyakov <asheplyakov@altlinux.org> Date: Thu, 4 Feb 2021 19:35:14 +0400 Subject: [PATCH] config-aarch64: adjusted for Baikal-M (MBM1.0 board) * DW_APB_TIMER=y, DW_APB_TIMER_OF=y: SoC clocks * SERIAL_8250_DW=y: serial console * I2C_DESIGNWARE_CORE=y, I2C_DESIGNWARE_PLATFORM=y: BMC (board management controller) and RTC (Real Time Clock) are connected via I2C. * GPIO_DWAPB=y: device (PCIe, PHY, etc) reset/configuration * RTC_DRV_PCF2127=y: RTC compiled in so the kernel automatically sets the system time from the hardware clock * TP_BMC=y: amongst other things handles the power button * DRM_BAIKAL_VDU=m, DRM_BAIKAL_HDMI=m: video unit and HDMI transmitter * CMA_SIZE_MBYTES=256: video display unit and GPU use system RAM, hence CMA should reserve enough (contiguous) memory. Note: CMA reserves memory during very early init, hence the size has to be hard-coded into CONFIG * MALI_MIDGARD=m: GPU driver, kernel side of proprietary mali blob. Note: kernel mode code is GPLv2, so it's fine to distribute it. * SENSORS_BT1_PVT=m: hardware temperature/voltage sensors * PCI_BAIKAL=m: PCIe root complex. Compiled as a module since takes ages (60 seconds or so) to probe the hardware. If compiled in substantially increases the boot time, and machine is completely unresponsive during probing PCIe. When built as a module probing executes concurrently with other boot activities (unless booting from a PCIe device) * STMMAC_ETH=m, STMMAC_PLATFORM=m, DWMAC_BAIKAL=m: Ethernet driver
2021-06-22 16:12:03 +03:00
2020-03-09 10:50:38 +03:00
# Disable AutoReq
AutoReq: 0
2020-03-09 10:50:38 +03:00
# but keep autoprov for kmod(xxx)
AutoProv: 1
2013-11-16 00:27:01 +04:00
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
2019-09-24 11:56:44 +03:00
BuildRequires: rsync
%if %{with compress_modules}
%if %{with modxz}
BuildRequires: xz
%else
BuildRequires: zstd
%endif
%endif
2022-03-17 10:23:10 +03:00
%ifarch aarch64
BuildRequires: uboot-tools
%endif
BuildRequires: kmod-devel
2020-11-26 21:21:05 +00:00
%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
2019-12-01 02:03:15 +03:00
# (To generate keys)
2019-12-07 21:57:55 +03:00
# 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
2019-11-11 17:47:53 +03:00
2020-07-29 10:59:41 +03:00
%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
2021-10-07 00:45:03 +03:00
%ifarch %{ix86} %{x86_64}
BuildRequires: kernel-source-broadcom-wl
BuildRequires: kernel-source-nvidia390
2021-10-07 00:45:03 +03:00
%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
Update from 5.4 to 5.10.1 - rediffed most of patches, renamed files to easify further rediffs by git format-patch - thanks to abf.io/kernels_stable for some patches for kernel 5.9 - using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much) - pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD - dropped patch adding sysctl to disable disk-based swap because it has not found any usage - bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful - keeping kernel libc headers in older kernels for now - dropped building external virtualbox guest modules because they are now included into the mainline kernel - offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms - offed building kernel-shredder because it is not buildable on kernel 5.10 - updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0) It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4. TODO: update kernel configs TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
%if %{with binary_virtualbox_host}
BuildRequires: kernel-source-virtualbox
2020-11-26 18:58:01 +00:00
%endif
BuildRequires: kernel-source-v4l2loopback
Update from 5.4 to 5.10.1 - rediffed most of patches, renamed files to easify further rediffs by git format-patch - thanks to abf.io/kernels_stable for some patches for kernel 5.9 - using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much) - pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD - dropped patch adding sysctl to disable disk-based swap because it has not found any usage - bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful - keeping kernel libc headers in older kernels for now - dropped building external virtualbox guest modules because they are now included into the mainline kernel - offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms - offed building kernel-shredder because it is not buildable on kernel 5.10 - updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0) It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4. TODO: update kernel configs TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
%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
2020-07-29 10:59:41 +03:00
%endif
%endif
# End of with binary_extra_modules
Provides: kernel = %{EVRD}
Provides: kernel-%{flavour} = %{EVRD}
2021-10-10 16:12:22 +03:00
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
2013-11-16 00:27:01 +04:00
%endif
%ifarch %{ix86}
Conflicts: arch(x86_64)
2013-11-16 00:27:01 +04:00
%endif
2016-07-21 15:58:13 +03:00
# XXX temporary hack to upgrade from kernel-headers 1:5.4
%if %{build_headers}
Recommends: kernel-headers = %{EVRD}
%endif
2021-10-10 16:12:22 +03:00
%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)
2021-10-10 16:12:22 +03:00
%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
2021-10-10 16:12:22 +03:00
%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}
2013-11-16 00:27:01 +04:00
# File triggers from grub packages will handle this.
#/usr/sbin/update-grub2
2013-11-16 00:27:01 +04:00
%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}
2021-10-03 16:35:09 +03:00
%exclude %{_modulesdir}/%{kver_full}/kernel/net/wireless/8821cu.ko%{kmod_suffix}
2021-10-07 00:45:03 +03:00
%ifarch %{ix86} %{x86_64}
%exclude %{_modulesdir}/%{kver_full}/kernel/net/wireless/wl.ko%{kmod_suffix}
2021-10-10 16:12:22 +03:00
%exclude %{_modulesdir}/%{kver_full}/kernel/drivers/video/nvidia390
2021-10-07 00:45:03 +03:00
%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
2021-10-16 20:11:50 +03:00
%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
2022-06-09 17:28:02 +03:00
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)
2013-11-16 00:27:01 +04:00
%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
2020-08-03 21:07:52 +03:00
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
2020-11-26 21:33:48 +00:00
%{devel_root}/Documentation
%dir %{devel_root}
%dir %{devel_root}/arch
%dir %{devel_root}/include
%{devel_root}/arch/um
2020-11-26 21:33:48 +00:00
%{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
2020-11-26 21:33:48 +00:00
%{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
Update from 5.4 to 5.10.1 - rediffed most of patches, renamed files to easify further rediffs by git format-patch - thanks to abf.io/kernels_stable for some patches for kernel 5.9 - using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much) - pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD - dropped patch adding sysctl to disable disk-based swap because it has not found any usage - bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful - keeping kernel libc headers in older kernels for now - dropped building external virtualbox guest modules because they are now included into the mainline kernel - offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms - offed building kernel-shredder because it is not buildable on kernel 5.10 - updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0) It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4. TODO: update kernel configs TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
%{devel_root}/include/kunit
%{devel_root}/include/linux
%{devel_root}/include/math-emu
%{devel_root}/include/media
Update from 5.4 to 5.10.1 - rediffed most of patches, renamed files to easify further rediffs by git format-patch - thanks to abf.io/kernels_stable for some patches for kernel 5.9 - using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much) - pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD - dropped patch adding sysctl to disable disk-based swap because it has not found any usage - bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful - keeping kernel libc headers in older kernels for now - dropped building external virtualbox guest modules because they are now included into the mainline kernel - offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms - offed building kernel-shredder because it is not buildable on kernel 5.10 - updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0) It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4. TODO: update kernel configs TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
%{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
2013-11-16 00:27:01 +04:00
%description doc
This package contains documentation files from the kernel source.
%files doc
%doc linux-%{tar_ver}/Documentation/*
2013-11-16 00:27:01 +04:00
%endif
############################################################################
2013-11-16 00:27:01 +04:00
%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
2013-11-16 00:27:01 +04:00
%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
############################################################################
2013-11-16 00:27:01 +04:00
%if %{build_cpupower}
%package -n cpupower
Summary: The cpupower tools
2013-11-16 00:27:01 +04:00
Group: System/Kernel and hardware
%description -n cpupower
The cpupower tools.
2013-11-16 00:27:01 +04:00
%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 || :
2014-04-01 15:25:39 +04:00
fi
2013-11-16 00:27:01 +04:00
%preun -n cpupower
2014-04-01 15:25:39 +04:00
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 || :
2014-04-01 15:25:39 +04:00
fi
2013-11-16 00:27:01 +04:00
%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*
############################################################################
2013-11-16 00:27:01 +04:00
%package -n cpupower-devel
Summary: Development files for cpupower
2013-11-16 00:27:01 +04:00
Group: Development/Kernel
Requires: cpupower = %{EVRD}
2013-11-16 00:27:01 +04:00
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
2020-03-21 12:28:56 +03:00
%{_includedir}/cpuidle.h
2013-11-16 00:27:01 +04:00
%endif
############################################################################
%if %{build_headers}
%package -n kernel-headers
2013-11-16 00:27:01 +04:00
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}
2013-11-16 00:27:01 +04:00
%description -n kernel-headers
2013-11-16 00:27:01 +04:00
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
2020-03-21 12:28:56 +03:00
%{_includedir}/*
2013-11-16 00:27:01 +04:00
# Don't conflict with cpupower-devel
%if %{build_cpupower}
2020-03-21 12:28:56 +03:00
%exclude %{_includedir}/cpufreq.h
%exclude %{_includedir}/cpuidle.h
2013-11-16 00:27:01 +04:00
%endif
%if %{build_perf}
%exclude %{_includedir}/perf/perf_dlfilter.h
%endif
%endif
2013-11-16 00:27:01 +04:00
############################################################################
2020-03-13 20:35:12 +03:00
%if %{with uml}
%package uml
2020-03-13 20:35:12 +03:00
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
2020-03-13 20:35:12 +03:00
%description uml
User Mode Linux binary.
Stripped, debug is in %{name}-debuginfo.
2020-03-13 20:35:12 +03:00
%files uml
2020-03-13 20:35:12 +03:00
%{_bindir}/linux-uml-%{kver_full}
#-----------------------------------------------------------------------------
2020-03-13 20:35:12 +03:00
%package uml-modules
2020-03-13 20:35:12 +03:00
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
2020-03-13 20:35:12 +03:00
%description uml-modules
User Mode Linux (UML) kernel modules:
- not compressed;
- not stripped;
- signed.
2020-03-13 20:35:12 +03:00
%files uml-modules
2020-03-13 20:35:12 +03:00
/lib/modules-uml/%{kver_full}
%endif
# End of uml
#-----------------------------------------------------------------------------
2020-07-29 10:59:41 +03:00
###############################
# Extra modules package definitions
2020-07-29 10:59:41 +03:00
%if %{with binary_extra_modules}
Update from 5.4 to 5.10.1 - rediffed most of patches, renamed files to easify further rediffs by git format-patch - thanks to abf.io/kernels_stable for some patches for kernel 5.9 - using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much) - pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD - dropped patch adding sysctl to disable disk-based swap because it has not found any usage - bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful - keeping kernel libc headers in older kernels for now - dropped building external virtualbox guest modules because they are now included into the mainline kernel - offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms - offed building kernel-shredder because it is not buildable on kernel 5.10 - updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0) It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4. TODO: update kernel configs TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
%ksob_mk_module_pkg -n 8821ce -s net/wireless -r rtl8821ce-blacklist
2021-10-03 16:35:09 +03:00
%ksob_mk_module_pkg -n 8821cu -s net/wireless
2021-10-07 00:45:03 +03:00
%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}
2021-10-07 00:45:03 +03:00
%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
2020-07-29 10:59:41 +03:00
%ksob_mk_module_pkg -n xt_TRIPSO -s net -r tripso
%ksob_mk_module_pkg -n xt_so -s net -r ipt-so
2021-10-16 20:11:50 +03:00
%ksob_mk_module_pkg -n v4l2loopback -s drivers/media -r v4l2loopback
2020-07-29 10:59:41 +03:00
Update from 5.4 to 5.10.1 - rediffed most of patches, renamed files to easify further rediffs by git format-patch - thanks to abf.io/kernels_stable for some patches for kernel 5.9 - using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much) - pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD - dropped patch adding sysctl to disable disk-based swap because it has not found any usage - bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful - keeping kernel libc headers in older kernels for now - dropped building external virtualbox guest modules because they are now included into the mainline kernel - offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms - offed building kernel-shredder because it is not buildable on kernel 5.10 - updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0) It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4. TODO: update kernel configs TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
%if %{with binary_shredder}
%ksob_mk_module_pkg -n shredder-kernel -s extra -r rosa-shredder-user
%endif
#-----------------------------------------------------------------------------
###############
# Virtualbox host
Update from 5.4 to 5.10.1 - rediffed most of patches, renamed files to easify further rediffs by git format-patch - thanks to abf.io/kernels_stable for some patches for kernel 5.9 - using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much) - pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD - dropped patch adding sysctl to disable disk-based swap because it has not found any usage - bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful - keeping kernel libc headers in older kernels for now - dropped building external virtualbox guest modules because they are now included into the mainline kernel - offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms - offed building kernel-shredder because it is not buildable on kernel 5.10 - updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0) It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4. TODO: update kernel configs TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
%if %{with binary_virtualbox_host}
2020-07-29 10:59:41 +03:00
%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
2020-07-29 10:59:41 +03:00
%description -n kernel-modules-virtualbox-host-%{ksob_kernel}
Meta package to pull VirtualBox host kernel modules for %{name}.
2020-07-29 10:59:41 +03:00
%files -n kernel-modules-virtualbox-host-%{ksob_kernel}
2020-07-29 10:59:41 +03:00
# empty
%endif
#End of ifarch x86
#-----------------------------------------------------------------------------
2020-07-29 10:59:41 +03:00
%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
2020-07-29 10:59:41 +03:00
#################################################################
%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
################################################
2020-03-13 20:35:12 +03:00
2013-11-16 00:27:01 +04:00
%prep
# Avoid accidental merge
%if 0%{?rpm5}
%{error:Package structure is for dnf, not for urpmi!}
%endif
%setup -q -n %{top_dir_name} -c
2020-03-13 20:35:12 +03:00
%if %{with uml}
cp -r %{src_dir} %{src_dir}.uml
%endif
cd %{src_dir}
2013-11-16 00:27:01 +04:00
2020-11-26 18:48:55 +00:00
%autopatch -p1
2013-11-16 00:27:01 +04:00
#
# Setup Begin
#
##################################
# Kernel configuration
echo "Creating the kernel configuration file."
Revisited the set of kernel flavours and the generation of config files Until now, the build system for the kernel supported a number of flavours: nrj and non-nrj ones, desktop-, laptop-, server- and netbook-oriented, etc. It turned out over the years, however, that our users mostly need the following: * a kernel to use on the desktops (home and office use) with reasonable default settings for performance and responsiveness; * a kernel for laptops, with a bit more emphasis on power consumption. Other variants were rarely used. We also did not have enough time to properly support all these. Besides, the kernels for ARM and other architectures need a somewhat different build process than for x86. So, they are better off to be in separate ABF projects, even if they are needed. No signs of ROSA on ARM yet, btw. So, I kept only nrj-desktop and nrj-laptop flavours and only x86. Non-PAE systems also seem to be rare now, so I enabled PAE by default for the 32-bit kernels. Non-PAE kernels are no longer built. If they are needed, we may use a separate git branch or an ABF project for that. To simplify debugging, maintenance and experimentation with the kernel builds further, I revisited the process of preparing the kernel configuration files. The goal is to get rid of a separate git repo with the default configs (kernel-patches-and-configs) and keep everything in this project. The default config files are now kept here. For x86_64: * kernel-x86_64.config contains the options for both nrj-desktop and nrn-laptop flavours; * kernel-{nrj_desktop|nrj_laptop}-x86_64.config files contain the flavour-specific options. This way, it is easier to track which config options changed when, easier to experiment with the custom configs and so on. The kernel will be built with debug info if rpmbuild is called with "--with debug".
2016-07-21 13:56:25 +03:00
# Configs
cp %{SOURCE111} .
cp %{SOURCE112} .
cp %{SOURCE113} .
cp kernel-%{arch_suffix}.config .config
touch %{build_dir}/.config.append
# Get rid of unwanted files
2020-11-26 21:17:21 +00:00
find . -name '*~' -o -name '*.orig' -o -name '*.append' -delete
# Wipe all .gitignore/.get_maintainer.ignore files
2020-11-26 21:17:21 +00:00
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
2013-11-16 00:27:01 +04:00
%endif
sed -i '/CONFIG_MODULE_SIG_FORCE/d' .config
%if %{with oblig_signed_modules}
2019-11-11 17:47:53 +03:00
# Disallow loading not signed modules
# But 0001-ROSA-ima-allow-to-off-modules-signature-check-dynami.patch allows to override this in cmdline
2020-03-13 20:35:12 +03:00
echo CONFIG_MODULE_SIG_FORCE=y >> %{build_dir}/.config.append
%else
2020-03-13 20:35:12 +03:00
echo CONFIG_MODULE_SIG_FORCE=n >> %{build_dir}/.config.append
%endif
sed -i '/CONFIG_MODULE_SIG_KEY/d' .config
2019-12-01 02:03:15 +03:00
# Set path to the key that will be generated later by openssl/libressl
2020-03-13 20:35:12 +03:00
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
2020-03-13 20:35:12 +03:00
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}
2020-03-13 20:35:12 +03:00
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.
2020-03-13 20:35:12 +03:00
# 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
2020-03-13 20:35:12 +03:00
cat %{build_dir}/.config.append >> .config
##################
# End of kernel config
# Store the config file in the appropriate directory.
2020-11-26 18:48:55 +00:00
CONFIG_DIR=arch/%{arch_type}/configs
Revisited the set of kernel flavours and the generation of config files Until now, the build system for the kernel supported a number of flavours: nrj and non-nrj ones, desktop-, laptop-, server- and netbook-oriented, etc. It turned out over the years, however, that our users mostly need the following: * a kernel to use on the desktops (home and office use) with reasonable default settings for performance and responsiveness; * a kernel for laptops, with a bit more emphasis on power consumption. Other variants were rarely used. We also did not have enough time to properly support all these. Besides, the kernels for ARM and other architectures need a somewhat different build process than for x86. So, they are better off to be in separate ABF projects, even if they are needed. No signs of ROSA on ARM yet, btw. So, I kept only nrj-desktop and nrj-laptop flavours and only x86. Non-PAE systems also seem to be rare now, so I enabled PAE by default for the 32-bit kernels. Non-PAE kernels are no longer built. If they are needed, we may use a separate git branch or an ABF project for that. To simplify debugging, maintenance and experimentation with the kernel builds further, I revisited the process of preparing the kernel configuration files. The goal is to get rid of a separate git repo with the default configs (kernel-patches-and-configs) and keep everything in this project. The default config files are now kept here. For x86_64: * kernel-x86_64.config contains the options for both nrj-desktop and nrn-laptop flavours; * kernel-{nrj_desktop|nrj_laptop}-x86_64.config files contain the flavour-specific options. This way, it is easier to track which config options changed when, easier to experiment with the custom configs and so on. The kernel will be built with debug info if rpmbuild is called with "--with debug".
2016-07-21 13:56:25 +03:00
mkdir -p "${CONFIG_DIR}"
2020-11-26 18:48:55 +00:00
cfg_file=arch/%{arch_type}/configs/%{arch_suffix}_defconfig-%{flavour}
2021-05-22 12:08:22 +03:00
make ARCH=%{arch_type} oldconfig
# When it is needed to edit kernel configs, run:
2021-06-01 07:01:02 +03:00
# abf fetch
# rpmbuild --define "_sourcedir $PWD" --with=fail -bb kernel.spec
2021-05-22 12:08:22 +03:00
# 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
2013-11-16 00:27:01 +04:00
# Get rid of unwanted files
2013-11-16 00:27:01 +04:00
find . -name '*~' -o -name '*.orig' -o -name '*.append' | %kxargs rm -f
find . -name '.get_maintainer.ignore' | %kxargs rm -f
2013-11-16 00:27:01 +04:00
# Versionize python shebang (#!/usr/bin/env python -> #!/usr/bin/python3) in scripts
2022-03-17 10:23:10 +03:00
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
2022-03-17 10:23:10 +03:00
sed -i '1 s,^#!.*env .*,#!%{_bindir}/bash,' scripts/config
# Drop env from perl scripts
2022-03-17 10:23:10 +03:00
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
############################################################################
2013-11-16 00:27:01 +04:00
%build
2019-11-11 22:27:50 +03:00
# 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 || :
2020-03-14 13:49:15 +03:00
rm -fvr "%{src_dir}/%{certs_dir_rnd}"
2020-03-13 20:35:12 +03:00
%if %{with uml}
cat "%{src_dir}.uml/%{certs_dir_rnd}/x509_certificate_list" | base64 -d || :
2020-03-13 20:35:12 +03:00
rm -fvr "%{src_dir}.uml/%{certs_dir_rnd}"
%endif
2019-11-11 22:27:50 +03:00
}
# Make a trap to delete keys even if %%build fails in the middle
trap "_cleanup" EXIT
rm -rf %{temp_root}
install -d %{temp_root}
2013-11-16 00:27:01 +04:00
cd %{src_dir}
2013-11-16 00:27:01 +04:00
2019-11-11 17:47:53 +03:00
### 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
2019-11-11 17:47:53 +03:00
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)"
2019-11-11 17:47:53 +03:00
cat <<EOF > "%{certs_key_config_rnd}"
[ req ]
prompt = no
string_mask = utf8only
#default_keyfile = %%{certs_signing_key_priv_rnd}
2019-11-11 17:47:53 +03:00
distinguished_name = req_distinguished_name
x509_extensions = myexts
2019-11-11 17:47:53 +03:00
[ 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
2019-11-11 17:47:53 +03:00
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
}
2019-11-11 17:47:53 +03:00
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}"
2019-12-07 21:57:55 +03:00
# Link sign-file and extract-cert with LibreSSL instead of OpenSSL
2019-12-07 21:57:55 +03:00
if [ $? != 0 ] ; then exit $? ; fi
sed -i %{src_dir}/scripts/Makefile \
2020-03-13 20:35:12 +03:00
%if %{with uml}
%{src_dir}.uml/scripts/Makefile \
2020-03-13 20:35:12 +03:00
%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}
2019-11-11 17:47:53 +03:00
# .config
%smake -s mrproper
2020-11-26 18:48:55 +00:00
cp arch/%{arch_type}/configs/%{arch_suffix}_defconfig-%{flavour} .config
2013-11-16 00:27:01 +04:00
# Make sure EXTRAVERSION says what we want it to say
LC_ALL=C sed -ri "s/^EXTRAVERSION.*/EXTRAVERSION = -%{flavour}-%{buildrpmrel}/" Makefile
2013-11-16 00:27:01 +04:00
# Build the kernel
echo "Building kernel %{kver_full}"
2013-11-16 00:27:01 +04:00
2020-11-26 21:09:27 +00:00
TARGETS="all"
# need to install dtbs to proper boot arm64 devices
%ifarch %{armx}
2020-11-26 21:09:27 +00:00
TARGETS="$TARGETS dtbs"
%endif
2021-02-23 17:35:52 +03:00
%kmake V=1 -s $TARGETS
2015-04-23 12:11:47 +03:00
2020-07-29 10:59:41 +03:00
# 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
2021-10-03 16:35:09 +03:00
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}
}
2021-10-07 00:45:03 +03:00
%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
2021-10-10 16:12:22 +03:00
_build_nvidia 390
%endif
%ifarch %{x86_64}
_build_nvidia 470
_build_nvidia 510
_build_nvidia 515
2021-10-07 00:45:03 +03:00
%endif
2020-07-29 10:59:41 +03:00
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
Update from 5.4 to 5.10.1 - rediffed most of patches, renamed files to easify further rediffs by git format-patch - thanks to abf.io/kernels_stable for some patches for kernel 5.9 - using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much) - pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD - dropped patch adding sysctl to disable disk-based swap because it has not found any usage - bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful - keeping kernel libc headers in older kernels for now - dropped building external virtualbox guest modules because they are now included into the mainline kernel - offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms - offed building kernel-shredder because it is not buildable on kernel 5.10 - updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0) It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4. TODO: update kernel configs TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
%if %{with binary_shredder}
2020-11-26 21:09:27 +00:00
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
2020-11-26 21:09:27 +00:00
Update from 5.4 to 5.10.1 - rediffed most of patches, renamed files to easify further rediffs by git format-patch - thanks to abf.io/kernels_stable for some patches for kernel 5.9 - using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much) - pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD - dropped patch adding sysctl to disable disk-based swap because it has not found any usage - bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful - keeping kernel libc headers in older kernels for now - dropped building external virtualbox guest modules because they are now included into the mainline kernel - offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms - offed building kernel-shredder because it is not buildable on kernel 5.10 - updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0) It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4. TODO: update kernel configs TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
%if %{with binary_virtualbox_host}
2020-11-26 21:09:27 +00:00
# build commands for virtualbox are based on the ones from the virtualbox package
2020-07-29 10:59:41 +03:00
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
2020-11-26 18:58:01 +00:00
%endif
2020-07-29 10:59:41 +03:00
2021-10-16 20:11:50 +03:00
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
2020-07-29 10:59:41 +03:00
2020-03-13 20:35:12 +03:00
%if %{with uml}
cp -rv %{certs_dir_rnd} %{src_dir}.uml/
pushd %{src_dir}.uml
%kmake ARCH=um defconfig
2020-03-13 20:35:12 +03:00
%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
2013-11-16 00:27:01 +04:00
2021-04-06 19:36:12 +00:00
%ifarch %{armx}
%make_build ARCH=%{arch_type} V=1 INSTALL_DTBS_PATH=%{temp_boot}/dtb-%{kver_full} dtbs_install
2021-04-06 19:36:12 +00:00
%endif
2020-11-26 21:09:27 +00:00
%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
2013-11-16 00:27:01 +04:00
# 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
2013-11-16 00:27:01 +04:00
%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
2013-11-16 00:27:01 +04:00
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}/
2020-11-26 18:48:55 +00:00
cp -fR arch/%{arch_type}/kernel/asm-offsets.{c,s} %{temp_devel_root}/arch/%{arch_type}/kernel/
2020-11-26 21:09:27 +00:00
%ifarch %{ix86} %{x86_64}
2020-11-26 18:48:55 +00:00
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
2020-11-26 21:09:27 +00:00
cp -fR lib/*.h lib/*.c %{temp_devel_root}/lib/
2020-11-26 18:48:55 +00:00
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}/
2020-11-26 21:09:27 +00:00
# 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/
2013-11-16 00:27:01 +04:00
# 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/
2013-11-16 00:27:01 +04:00
%if %{with aufs}
# aufs2 has a special file needed
cp -fR fs/aufs/magic.mk %{temp_devel_root}/fs/aufs
%endif
2013-11-16 00:27:01 +04:00
# SELinux needs security/selinux/include
cp -fR security/selinux/include %{temp_devel_root}/security/selinux
2013-11-16 00:27:01 +04:00
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
2013-11-16 00:27:01 +04:00
# Clean the scripts tree, and make sure everything is ok (sanity check)
# running prepare+scripts (tree was already "prepared" in build)
2020-03-14 13:49:15 +03:00
pushd %{temp_devel_root}
2020-11-26 21:09:27 +00:00
%smake V=1 -s clean ARCH=%{arch_type}
2020-03-14 13:49:15 +03:00
popd
2020-11-26 21:09:27 +00:00
rm -f %{temp_devel_root}/.config.old
2013-11-16 00:27:01 +04:00
# Fix permissions
chmod -R a+rX %{temp_devel_root}
2013-11-16 00:27:01 +04:00
# Disable mrproper in -devel rpms
patch -p1 --fuzz=0 -d %{temp_devel_root} -i %{SOURCE2}
2013-11-16 00:27:01 +04:00
%endif
# End of build_devel
2013-11-16 00:27:01 +04:00
# 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
2020-07-29 10:59:41 +03:00
# https://patchwork.kernel.org/patch/11446123/
2019-12-07 21:57:55 +03:00
_libressl_sign(){
if [ ! -f "$1" ]; then
echo "No file $1"
return 0
2019-12-07 21:57:55 +03:00
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 \
2020-03-20 11:27:35 +03:00
"%{certs_signing_key_priv_rnd}.RSA" "%{certs_signing_key_priv_rnd}.RSA" "$f"
%endif
2019-12-07 21:57:55 +03:00
unset f
}
export -f _libressl_sign
2020-03-13 20:35:12 +03:00
find %{temp_modules}/%{kver_full}/kernel \
%if %{with uml}
%{temp_root}/lib/modules-uml/%{kver_full} \
2020-03-13 20:35:12 +03:00
%endif
-name '*.ko' -print0 | sort -u | \
2019-12-07 21:57:55 +03:00
xargs --null -P "$(nproc)" -I {} "$SHELL" -e -x -c 'if ! _libressl_sign "{}"; \
then echo Failed _libressl_sign on "{}" && exit 1; fi'
2019-11-13 17:35:59 +03:00
# Set extraversion to match srpm to get nice version reported by the tools
LC_ALL=C sed -ri "s/^EXTRAVERSION.*/EXTRAVERSION = -%{fullrpmrel}/" Makefile
2013-11-16 00:27:01 +04:00
%if %{build_perf}
%smake -C tools/perf -s PYTHON=%{__python3} HAVE_CPLUS_DEMANGLE=1 WERROR=0 prefix=%{_prefix} lib=%{_lib} NO_GTK2=1 all
2020-11-27 01:21:49 +03:00
%smake -C tools/perf -s prefix=%{_prefix} lib=%{_lib} NO_GTK2=1 man
2013-11-16 00:27:01 +04:00
%endif
%if %{build_cpupower}
# Make sure version-gen.sh is executable.
2013-11-16 00:27:01 +04:00
chmod +x tools/power/cpupower/utils/version-gen.sh
%make -C tools/power/cpupower CPUFREQ_BENCH=false
2013-11-16 00:27:01 +04:00
%endif
2019-11-11 22:27:50 +03:00
_cleanup
############################################################################
2013-11-16 00:27:01 +04:00
%install
cd %{src_dir}
2013-11-16 00:27:01 +04:00
# 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
2020-03-13 20:35:12 +03:00
find %{target_modules} \
%if %{with uml}
%{buildroot}/lib/modules-uml/%{kver_full} \
2020-03-13 20:35:12 +03:00
%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
2013-11-16 00:27:01 +04:00
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 :(
2013-11-16 00:27:01 +04:00
# 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.
2013-11-16 00:27:01 +04:00
for i in *; do
touch $i/modules.description
2013-11-16 00:27:01 +04:00
done
popd
# Need to set extraversion to match srpm again to avoid rebuild
LC_ALL=C sed -ri "s/^EXTRAVERSION.*/EXTRAVERSION = -%{fullrpmrel}/" Makefile
2013-11-16 00:27:01 +04:00
%if %{build_perf}
# Perf tool binary and supporting scripts/binaries
2020-12-11 19:39:08 +00:00
make -C tools/perf -s V=1 DESTDIR=%{buildroot} WERROR=0 HAVE_CPLUS_DEMANGLE=1 prefix=%{_prefix} lib=%{_lib} install
2013-11-16 00:27:01 +04:00
2020-05-11 09:33:18 +03:00
# Versionize shebang (#!/usr/bin/env python -> #!/usr/bin/python3)
2022-03-17 10:23:10 +03:00
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
2020-05-11 09:33:18 +03:00
# 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
2013-11-16 00:27:01 +04:00
%endif
%if %{build_cpupower}
make -C tools/power/cpupower DESTDIR=%{buildroot} libdir=%{_libdir} mandir=%{_mandir} CPUFREQ_BENCH=false install
2013-11-16 00:27:01 +04:00
rm -f %{buildroot}%{_libdir}/*.{a,la}
2013-11-16 00:27:01 +04:00
%find_lang cpupower
2013-11-16 00:27:01 +04:00
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
2013-11-16 00:27:01 +04:00
install -m644 %{SOURCE51} %{buildroot}%{_sysconfdir}/sysconfig/cpupower
install -m755 %{SOURCE52} %{buildroot}%{_bindir}/cpupower-start.sh
2013-11-16 00:27:01 +04:00
%endif
2020-07-29 10:59:41 +03:00
# 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