mirror of
https://abf.rosa.ru/djam/kernel-5.15.git
synced 2025-02-23 10:32:54 +00:00

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