mirror of
https://abf.rosa.ru/djam/kernel-5.15.git
synced 2025-02-23 18:42:55 +00:00

Changelog: ACPI: CPPC: Replace cppc_attr with kobj_attribute ACPI: custom_method: fix a possible memory leak ACPI: custom_method: fix potential use-after-free issue ACPI: GTDT: Don't corrupt interrupt mappings on watchdow probe failure ACPI: PM: Add ACPI ID of Alder Lake Fan ACPI: scan: Fix a memory leak in an error handling path afs: Fix speculative status fetches afs: Fix updating of i_mode due to 3rd party change ALSA: bebob: enable to deliver MIDI messages for multiple ports ALSA: core: remove redundant spin_lock pair in snd_card_disconnect ALSA: emu8000: Fix a use after free in snd_emu8000_create_mixer ALSA: hda/conexant: Re-order CX5066 quirk table entries ALSA: hda/hdmi: fix race in handling acomp ELD notification at resume ALSA: hda/realtek: Add quirk for Intel Clevo PCx0Dx ALSA: hda/realtek: Add quirk for Lenovo Ideapad S740 ALSA: hda/realtek: ALC285 Thinkpad jack pin quirk is unreachable ALSA: hda/realtek: fix mic boost on Intel NUC 8 ALSA: hda/realtek: fix mute/micmute LEDs for HP ProBook 445 G7 ALSA: hda/realtek: Fix speaker amp on HP Envy AiO 32 ALSA: hda/realtek: fix static noise on ALC285 Lenovo laptops ALSA: hda/realtek: GA503 use same quirks as GA401 ALSA: hda/realtek - Headset Mic issue on HP platform ALSA: hda/realtek: Remove redundant entry for ALC861 Haier/Uniwill devices ALSA: hda/realtek: Re-order ALC269 Acer quirk table entries ALSA: hda/realtek: Re-order ALC269 ASUS quirk table entries ALSA: hda/realtek: Re-order ALC269 Dell quirk table entries ALSA: hda/realtek: Re-order ALC269 HP quirk table entries ALSA: hda/realtek: Re-order ALC269 Lenovo quirk table entries ALSA: hda/realtek: Re-order ALC269 Sony quirk table entries ALSA: hda/realtek: Re-order ALC662 quirk table entries ALSA: hda/realtek: Re-order ALC882 Acer quirk table entries ALSA: hda/realtek: Re-order ALC882 Clevo quirk table entries ALSA: hda/realtek: Re-order ALC882 Sony quirk table entries ALSA: hda/realtek: Re-order remaining ALC269 quirk table entries ALSA: hdsp: don't disable if not enabled ALSA: hdspm: don't disable if not enabled ALSA: rme9652: don't disable if not enabled ALSA: sb: Fix two use after free in snd_sb_qsound_build ALSA: usb-audio: Add dB range mapping for Sennheiser Communications Headset PC 8 ALSA: usb-audio: Add error checks for usb_driver_claim_interface() calls ALSA: usb-audio: Explicitly set up the clock selector ALSA: usb: midi: don't return -ENOMEM when usb_urb_ep_type_check fails amdgpu: avoid incorrect %hu format string ARC: entry: fix off-by-one error in syscall number validation ARC: mm: PAE: use 40-bit physical page mask ARC: mm: Use max_high_pfn as a HIGHMEM zone border arm64: dts: imx8mq-librem5-r3: Mark buck3 as always on arm64: dts: marvell: armada-37xx: add syscon compatible to NB clk node arm64: dts: mediatek: fix reset GPIO level on pumpkin arm64: dts: mt8173: fix property typo of 'phys' in dsi node arm64: dts: qcom: db845c: fix correct powerdown pin for WSA881x arm64: dts: qcom: sdm845: fix number of pins in 'gpio-ranges' arm64: dts: qcom: sm8150: fix number of pins in 'gpio-ranges' arm64: dts: qcom: sm8250: Fix level triggered PMU interrupt polarity arm64: dts: qcom: sm8250: fix number of pins in 'gpio-ranges' arm64: dts: qcom: sm8250: Fix timer interrupt to specify EL2 physical timer arm64: dts: renesas: Add mmc aliases into board dts files arm64: dts: renesas: r8a77980: Fix vin4-7 endpoint binding arm64: dts: renesas: r8a779a0: Fix PMU interrupt arm64: dts: uniphier: Change phy-mode to RGMII-ID to enable delay pins for RTL8211E arm64: entry: always set GIC_PRIO_PSR_I_SET during entry arm64: entry: factor irq triage logic into macros arm64: Fix race condition on PG_dcache_clean in __sync_icache_dcache() arm64: mte: initialize RGSR_EL1.SEED in __cpu_setup arm64: Remove arm64_dma32_phys_limit and its uses arm64/vdso: Discard .note.gnu.property sections in vDSO ARM: 9011/1: centralize phys-to-virt conversion of DT/ATAGS address ARM: 9012/1: move device tree mapping out of linear region ARM: 9020/1: mm: use correct section size macro to describe the FDT virtual address ARM: 9027/1: head.S: explicitly map DT even if it lives in the first physical section ARM: 9056/1: decompressor: fix BSS size calculation for LLVM ld.lld ARM: 9064/1: hw_breakpoint: Do not directly check the event's overflow_handler hook ARM: dts: aspeed: Rainier: Fix humidity sensor bus address ARM: dts: at91: change the key code of the gpio key ARM: dts: BCM5301X: fix "reg" formatting in /memory node ARM: dts: exynos: correct fuel gauge interrupt trigger level on GT-I9100 ARM: dts: exynos: correct fuel gauge interrupt trigger level on Midas family ARM: dts: exynos: correct MUIC interrupt trigger level on Midas family ARM: dts: exynos: correct PMIC interrupt trigger level on Midas family ARM: dts: exynos: correct PMIC interrupt trigger level on Odroid X/U3 family ARM: dts: exynos: correct PMIC interrupt trigger level on SMDK5250 ARM: dts: exynos: correct PMIC interrupt trigger level on Snow ARM: dts: renesas: Add mmc aliases into R-Car Gen2 board dts files ARM: dts: s5pv210: correct fuel gauge interrupt trigger level on Fascinate family ARM: dts: stm32: fix usart 2 & 3 pinconf to wake up with flow control ARM: dts: uniphier: Change phy-mode to RGMII-ID to enable delay pins for RTL8211E ARM: dts: ux500: Fix up TVK R3 sensors ARM: tegra: acer-a500: Rename avdd to vdda of touchscreen node ASoC: ak5558: correct reset polarity ASoC: Intel: boards: sof-wm8804: add check for PLL setting ASoC: Intel: bytcr_rt5640: Add quirk for the Chuwi Hi8 tablet ASoC: Intel: bytcr_rt5640: Enable jack-detect support on Asus T100TAF ASoC: Intel: kbl_da7219_max98927: Fix kabylake_ssp_fixup function ASoC: Intel: Skylake: Compile when any configuration is selected ASoC: Intel: sof_sdw: add quirk for new ADL-P Rvp ASoC: rsnd: call rsnd_ssi_master_clk_start() from rsnd_ssi_init() ASoC: rsnd: check all BUSIF status when error ASoC: rsnd: core: Check convert rate in rsnd_hw_params ASoC: rt286: Generalize support for ALC3263 codec ASoC: rt286: Make RT286_SET_GPIO_* readable and writable ASoC: rt5670: Add a quirk for the Dell Venue 10 Pro 5055 ASoC: samsung: tm2_wm5110: check of of_parse return value ASoC: simple-card: fix possible uninitialized single_cpu local variable ASoC: tlv320aic32x4: Increase maximum register in regmap ASoC: tlv320aic32x4: Register clocks before registering component ASoC: wm8960: Remove bitclk relax condition in wm8960_configure_sysclk async_xor: increase src_offs when dropping destination page ata: ahci: Disable SXS for Hisilicon Kunpeng920 ata: libahci_platform: fix IRQ check ath10k: Fix ath10k_wmi_tlv_op_pull_peer_stats_info() unlock without lock ath10k: Fix a use after free in ath10k_htc_send_bundle ath11k: fix thermal temperature read ath9k: Fix error check in ath9k_hw_read_revisions() for PCI devices atomisp: don't let it go past pipes array backlight: qcom-wled: Fix FSC update issue for WLED5 backlight: qcom-wled: Use sink_addr for sync toggle blk-iocost: fix weight updates of inner active iocgs blk-mq: plug request for shared sbitmap blk-mq: Swap two calls in blk_mq_exit_queue() block/rnbd-clt: Change queue_depth type in rnbd_clt_session to size_t block/rnbd-clt: Check the return value of the function rtrs_clt_query block/rnbd-clt: Fix missing a memory free when unloading the module Bluetooth: avoid deadlock between hci_dev->lock and socket lock Bluetooth: btusb: Enable quirk boolean flag for Mediatek Chip. Bluetooth: check for zapped sk before connecting bluetooth: eliminate the potential race condition when removing the HCI controller Bluetooth: Fix incorrect status handling in LE PHY UPDATE event Bluetooth: initialize skb_queue_head at l2cap_chan_create() Bluetooth: Set CONF_NOT_COMPLETE as l2cap_chan default Bluetooth: verify AMP hci_chan before amp_destroy bnxt_en: Add PCI IDs for Hyper-V VF devices. bnxt_en: Fix RX consumer index logic in the error path. bnxt_en: fix ternary sign extension bug in bnxt_show_temp() bpf: Fix alu32 const subreg bound tracking on bitwise operations bpf: Fix propagation of 32 bit unsigned bounds from 64 bit bounds bpf: Prevent writable memory-mapping of read-only ringbuf pages bpf, ringbuf: Deny reserve of buffers larger than ringbuf bpftool: Fix maybe-uninitialized warnings btrfs: convert logic BUG_ON()'s in replace_path to ASSERT()'s btrfs: do proper error handling in btrfs_update_reloc_root btrfs: do proper error handling in create_reloc_root btrfs: fix metadata extent leak after failure to create subvolume btrfs: fix race between transaction aborts and fsyncs leading to use-after-free btrfs: fix race leading to unpersisted data and metadata on fsync btrfs: fix race when picking most recent mod log operation for an old root btrfs: handle remount to no compress during compression bug: Remove redundant condition check in report_bug bus: mhi: core: Clear configuration from channel context during reset bus: mhi: core: Clear context for stopped channels from remove() bus: mhi: core: Destroy SBL devices when moving to mission mode bus: mhi: core: Fix check for syserr at power_up bus: mhi: core: Sanity check values from remote device before use bus: qcom: Put child node before return bus: ti-sysc: Probe for l4_wkup and l4_cfg interconnect devices first can: m_can: m_can_tx_work_queue(): fix tx_skb race condition can: mcp251xfd: mcp251xfd_probe(): add missing can_rx_offload_del() in error path can: mcp251x: fix resume from sleep before interface was brought up cdc-wdm: untangle a circular dependency between callback and softint ceph: fix inode leak on getattr error in __fh_to_dentry cfg80211: scan: drop entry from hidden_list on overflow cifs: detect dead connections only when echoes are enabled. cifs: fix out-of-bound memory access when calling smb3_notify() at mount point cifs: Return correct error code from smb2_get_enc_key clk: exynos7: Mark aclk_fsys1_200 as critical clk: imx: Fix reparenting of UARTs not associated with stdout clk: mvebu: armada-37xx-periph: Fix switching CPU freq from 250 Mhz to 1 GHz clk: mvebu: armada-37xx-periph: Fix workaround for switching from L1 to L0 clk: mvebu: armada-37xx-periph: remove .set_parent method for CPU PM clock clk: qcom: a53-pll: Add missing MODULE_DEVICE_TABLE clk: qcom: apss-ipq-pll: Add missing MODULE_DEVICE_TABLE clk: socfpga: arria10: Fix memory leak of socfpga_clk on error return clk: uniphier: Fix potential infinite loop clk: zynqmp: move zynqmp_pll_set_mode out of round_rate callback clk: zynqmp: pll: add set_pll_mode to check condition in zynqmp_pll_enable clocksource/drivers/ingenic_ost: Fix return value check in ingenic_ost_probe() clocksource/drivers/timer-ti-dm: Add missing set_state_oneshot_stopped clocksource/drivers/timer-ti-dm: Fix posted mode status check order clocksource/drivers/timer-ti-dm: Handle dra7 timer wrap errata i940 clocksource/drivers/timer-ti-dm: Prepare to handle dra7 timer wrap issue coresight: Do not scan for graph if none is present cpufreq: armada-37xx: Fix determining base CPU frequency cpufreq: armada-37xx: Fix driver cleanup when registration failed cpufreq: armada-37xx: Fix setting TBG parent for load levels cpufreq: armada-37xx: Fix the AVS value for load L1 cpufreq: intel_pstate: Use HWP if enabled by platform firmware cpuidle: Fix ARM_QCOM_SPM_CPUIDLE configuration cpuidle: tegra: Fix C7 idling state on Tegra114 crypto: allwinner - add missing CRYPTO_ prefix crypto: api - check for ERR pointers in crypto_destroy_tfm() crypto: arm/curve25519 - Move '.fpu' after '.arch' crypto: ccp: Detect and reject "invalid" addresses destined for PSP crypto: ccp - fix command queuing to TEE ring buffer crypto: ccp: Free SEV device if SEV init fails crypto: chelsio - Read rxchannel-id from firmware crypto: hisilicon/sec - fixes a printing error crypto: omap-aes - Fix PM reference leak on omap-aes.c crypto: poly1305 - fix poly1305_core_setkey() declaration crypto: qat - ADF_STATUS_PF_RUNNING should be set after adf_dev_init crypto: qat - don't release uninitialized resources crypto: qat - Fix a double free in adf_create_ring crypto: qat - fix error path in adf_isr_resource_alloc() crypto: qat - fix unmap invalid dma address crypto: rng - fix crypto_rng_reset() refcounting when !CRYPTO_STATS crypto: sa2ul - Fix memory leak of rxd crypto: sa2ul - Fix PM reference leak in sa_ul_probe() crypto: stm32/cryp - Fix PM reference leak on stm32-cryp.c crypto: stm32/hash - Fix PM reference leak on stm32-hash.c crypto: sun8i-ce - Fix PM reference leak in sun8i_ce_probe() crypto: sun8i-ss - Fix memory leak of object d when dma_iv fails to map crypto: sun8i-ss - Fix memory leak of pad crypto: sun8i-ss - Fix PM reference leak when pm_runtime_get_sync() fails crypto: sun8i-ss - fix result memory leak on error path cuse: prevent clone cxgb4: Fix unintentional sign extension issues dax: Add an enum for specifying dax wakup mode dax: Add a wakeup mode parameter to put_unlocked_entry() dax: Wake up all waiters after invalidating dax entry debugfs: Make debugfs_allow RO after init devtmpfs: fix placement of complete() call dmaengine: idxd: fix cdev setup and free device lifetime issues dmaengine: idxd: fix dma device lifetime dmaengine: idxd: Fix potential null dereference on pointer status dm integrity: fix missing goto in bitmap_flush_interval error handling dm persistent data: packed struct should have an aligned() attribute too dm raid: fix inconclusive reshape layout on fast raid4/5/6 table reload sequences dm rq: fix double free of blk_mq_tag_set in dev remove after table load fails dm space map common: fix division bug in sm_ll_find_free_block() driver core: platform: Declare early_platform_cleanup() prototype drivers/block/null_blk/main: Fix a double free in null_init. Drivers: hv: vmbus: Increase wait time for VMbus unload Drivers: hv: vmbus: Use after free in __vmbus_open() drivers: nvmem: Fix voltage settings for QTI qfprom-efuse drm: Added orientation quirk for OneGX1 Pro drm/amd/display: add handling for hdcp2 rx id list validation drm/amd/display: changing sr exit latency drm/amd/display: Check for DSC support instead of ASIC revision drm/amd/display/dc/dce/dce_aux: Remove duplicate line causing 'field overwritten' issue drm/amd/display: DCHUB underflow counter increasing in some scenarios drm/amd/display: Don't optimize bandwidth before disabling planes drm/amd/display: Fix debugfs link_settings entry drm/amd/display: fix dml prefetch validation drm/amd/display: fixed divide by zero kernel crash during dsc enablement drm/amd/display: Fix off by one in hdmi_14_process_transaction() drm/amd/display: Fix UBSAN: shift-out-of-bounds warning drm/amd/display: Fix UBSAN warning for not a valid value for type '_Bool' drm/amd/display: Force vsync flip when reconfiguring MPCC drm/amd/display: Initialize attribute for hdcp_srm sysfs file drm/amd/display: Reject non-zero src_y and src_x for video planes drm/amd/display: Try YCbCr420 color when YCbCr444 fails drm/amd/display: use GFP_ATOMIC in dcn20_resource_construct drm/amdgpu: Add mem sync flag for IB allocated by SA drm/amdgpu/display: buffer INTERRUPT_LOW_IRQ_CONTEXT interrupt work drm/amdgpu : Fix asic reset regression issue introduce by 8f211fe8ac7c4f drm/amdgpu: fix concurrent VM flushes on Vega/Navi v2 drm/amdgpu: fix NULL pointer dereference drm/amdgpu: Fix some unload driver issues drm/amdgpu: mask the xgmi number of hops reported from psp to kfd drm/amdgpu/ttm: Fix memory leak userptr pages drm/amdkfd: fix build error with AMD_IOMMU_V2=m drm/amdkfd: Fix cat debugfs hang_hws file causes system crash bug drm/amdkfd: Fix UBSAN shift-out-of-bounds warning drm/amd/pm: fix error code in smu_set_power_limit() drm/amd/pm: fix workload mismatch on vega10 drm/ast: Fix invalid usage of AST_MAX_HWC_WIDTH in cursor atomic_check drm/ast: fix memory leak when unload the driver drm: bridge: fix LONTIUM use of mipi_dsi_() functions drm: bridge/panel: Cleanup connector on bridge detach drm/dp_mst: Revise broadcast msg lct & lcr drm/dp_mst: Set CLEAR_PAYLOAD_ID_TABLE as broadcast drm/i915: Avoid div-by-zero on gen2 drm/i915: Fix crash in auto_retire drm/i915/gt: Fix a double free in gen8_preallocate_top_level_pdp drm/i915/gvt: Fix error code in intel_gvt_init_device() drm/i915/gvt: Fix vfio_edid issue for BXT/APL drm/i915/gvt: Fix virtual display setup for BXT/APL drm/i915/overlay: Fix active retire callback alignment drm/i915: Read C0DRB3/C1DRB3 as 16 bits again drm/komeda: Fix bit check to import to value of proper type drm/mcde/panel: Inverse misunderstood flag drm/msm/dp: Fix incorrect NULL check kbot warnings in DP driver drm/msm/dp: initialize audio_comp when audio starts drm/msm/mdp5: Configure PP_SYNC_HEIGHT to double the vtotal drm/msm/mdp5: Do not multiply vclk line count by 100 drm/panfrost: Clear MMU irqs before handling the fault drm/panfrost: Don't try to map pages that are already mapped drm/probe-helper: Check epoch counter in output_poll_execute() drm/qxl: do not run release if qxl failed to init drm/qxl: release shadow on shutdown drm/qxl: use ttm bo priorities drm/radeon: Avoid power table parsing memory leaks drm/radeon/dpm: Disable sclk switching on Oland when two 4K 60Hz monitors are connected drm/radeon: Fix a missing check bug in radeon_dp_mst_detect() drm/radeon: fix copy of uninitialized variable back to userspace drm/radeon: Fix off-by-one power_state index heap overwrite drm/radeon/ttm: Fix memory leak userptr pages drm/stm: Fix bus_flags handling drm/tilcdc: send vblank event when disabling crtc drm/vkms: fix misuse of WARN_ON drm: xlnx: zynqmp: fix a memset in zynqmp_dp_train() dt-bindings: media: renesas,vin: Make resets optional on R-Car Gen1 dt-bindings: serial: 8250: Remove duplicated compatible strings dt-bindings: serial: stm32: Use 'type: object' instead of false for 'additionalProperties' dyndbg: fix parsing file query without a line-range suffix ecryptfs: fix kernel panic with null dev_name efi/libstub: Add $(CLANG_FLAGS) to x86 flags erofs: add unsupported inode i_format check ethernet:enic: Fix a use after free bug in enic_hard_start_xmit ethtool: fix missing NLM_F_MULTI flag when dumping ethtool: ioctl: Fix out-of-bounds warning in store_link_ksettings_for_user() exfat: fix erroneous discard when clear cluster bit ext4: allow the dax flag to be set and cleared on inline directories ext4: annotate data race in jbd2_journal_dirty_metadata() ext4: annotate data race in start_this_handle() ext4: do not set SB_ACTIVE in ext4_orphan_cleanup() ext4: fix check to prevent false positive report of incorrect used inodes ext4: fix debug format string warning ext4: fix error code in ext4_commit_super ext4: fix error return code in ext4_fc_perform_commit() ext4: fix ext4_error_err save negative errno into superblock ext4: Fix occasional generic/418 failure extcon: arizona: Fix some issues when HPDET IRQ fires after the jack has been unplugged extcon: arizona: Fix various races on driver unbind f2fs: avoid unneeded data copy in f2fs_ioc_move_range() f2fs: compress: fix race condition of overwrite vs truncate f2fs: compress: fix to assign cc.cluster_idx correctly f2fs: compress: fix to free compress page correctly f2fs: Fix a hungtask problem in atomic write f2fs: fix a redundant call to f2fs_balance_fs if an error occurs f2fs: fix compat F2FS_IOC_{MOVE,GARBAGE_COLLECT}_RANGE f2fs: fix error handling in f2fs_end_enable_verity() f2fs: fix panic during f2fs_resize_fs() f2fs: fix to align to section for fallocate() on pinned file f2fs: fix to allow migrating fully valid segment f2fs: fix to avoid accessing invalid fio in f2fs_allocate_data_block() f2fs: fix to avoid out-of-bounds memory access f2fs: fix to avoid touching checkpointed data in get_victim() f2fs: fix to cover __allocate_new_section() with curseg_lock f2fs: fix to update last i_size if fallocate partially succeeds f2fs: move ioctl interface definitions to separated file fbdev: zero-fill colormap in fbcmap.c FDDI: defxx: Bail out gracefully with unassigned PCI resource for CSR FDDI: defxx: Make MMIO the configuration default except for EISA firmware: qcom-scm: Fix QCOM_SCM configuration firmware: qcom_scm: Make __qcom_scm_is_call_available() return bool firmware: qcom_scm: Reduce locking section for __get_convention() firmware: qcom_scm: Workaround lack of "is available" call on SC7180 firmware: xilinx: Add a blank line after function declaration firmware: xilinx: Fix dereferencing freed memory firmware: xilinx: Remove zynqmp_pm_get_eemi_ops() in IS_REACHABLE(CONFIG_ZYNQMP_FIRMWARE) Fix misc new gcc warnings flow_dissector: Fix out-of-bounds warning in __skb_flow_bpf_to_target() fotg210-udc: Complete OUT requests on short packets fotg210-udc: Don't DMA more than the buffer can take fotg210-udc: Fix DMA on EP0 for length > max packet size fotg210-udc: Fix EP0 IN requests bigger than two packets fotg210-udc: Mask GRP2 interrupts we don't handle fotg210-udc: Remove a dubious condition leading to fotg210_done fpga: dfl: pci: add DID for D5005 PAC cards fpga: fpga-mgr: xilinx-spi: fix error messages on -EPROBE_DEFER fs: dlm: add errno handling to check callback fs: dlm: check on minimum msglen size fs: dlm: fix debugfs dump fs: dlm: flush swork on shutdown fs/epoll: restore waking from ep_done_scan() fs: fix reporting supported extra file attributes for statx() fs/proc/generic.c: fix incorrect pde_is_permanent check ftrace: Handle commands when closing set_ftrace_filter file fuse: fix write deadlock fuse: invalidate attrs when page writeback completes futex: Do not apply time namespace adjustment on FUTEX_LOCK_PI genirq/matrix: Prevent allocation counter corruption gpio: guard gpiochip_irqchip_add_domain() with GPIOLIB_IRQCHIP gro: fix napi_gro_frags() Fast GRO breakage due to IP alignment check hfsplus: prevent corruption in shrinking truncate HID: lenovo: Check hid_get_drvdata() returns non NULL in lenovo_event() HID: lenovo: Fix lenovo_led_set_tp10ubkbd() error handling HID: lenovo: Map mic-mute button to KEY_F20 instead of KEY_MICMUTE HID: lenovo: Use brightness_set_blocking callback for setting LEDs brightness HID: plantronics: Workaround for double volume key presses HSI: core: fix resource leaks in hsi_add_client_from_dt() hwmon: (occ) Fix poll rate limiting hwmon: (pmbus/pxe1610) don't bail out when not all pages are active i2c: Add I2C_AQ_NO_REP_START adapter quirk i2c: bail out early when RDWR parameters are wrong i2c: cadence: add IRQ check i2c: cadence: fix reference leak when pm_runtime_get_sync fails i2c: emev2: add IRQ check i2c: img-scb: fix reference leak when pm_runtime_get_sync fails i2c: imx: fix reference leak when pm_runtime_get_sync fails i2c: imx-lpi2c: fix reference leak when pm_runtime_get_sync fails i2c: jz4780: add IRQ check i2c: mediatek: Fix send master code at more than 1MHz i2c: mediatek: Fix wrong dma sync flag i2c: mlxbf: add IRQ check i2c: omap: fix reference leak when pm_runtime_get_sync fails i2c: rcar: add IRQ check i2c: rcar: make sure irq is not threaded on Gen2 and earlier i2c: rcar: protect against supurious interrupts on V3U i2c: sh7760: add IRQ check i2c: sh7760: fix IRQ error path i2c: sprd: fix reference leak when pm_runtime_get_sync fails i2c: stm32f7: fix reference leak when pm_runtime_get_sync fails i2c: xiic: fix reference leak when pm_runtime_get_sync fails i40e: fix broken XDP support i40e: Fix PHY type identifiers for 2.5G and 5G adapters i40e: fix the restart auto-negotiation after FEC modified i40e: Fix use-after-free in i40e_client_subtask() ia64: fix EFI_DEBUG build ia64: module: fix symbolizer crash on fdescr iavf: remove duplicate free resources calls IB/hfi1: Correct oversized ring allocation IB/hfi1: Fix error return code in parse_platform_config() IB/hfi1: Use kzalloc() for mmu_rb_handler allocation IB/isert: Fix a use after free in isert_connect_request ice: handle increasing Tx or Rx ring sizes iio:accel:adis16201: Fix wrong axis assignment that prevents loading iio:adc:ad7476: Fix remove handling iio: adc: Kconfig: make AD9467 depend on ADI_AXI_ADC symbol iio: gyro: mpu3050: Fix reported temperature value iio: hid-sensors: select IIO_TRIGGERED_BUFFER under HID_SENSOR_IIO_TRIGGER iio: inv_mpu6050: Fully validate gyro and accel scale writes iio: light: gp2ap002: Fix rumtime PM imbalance on error iio: proximity: pulsedlight: Fix rumtime PM imbalance on error iio: tsl2583: Fix division by a zero lux_val ima: Fix the error code for restoring the PCR value inet: use bigger hash table for IP ID generation Input: ili210x - add missing negation for touch indication on ili210x intel_th: Consistency and off-by-one fix intel_th: pci: Add Alder Lake-M support intel_th: pci: Add Rocket Lake CPU support iommu/amd: Put newline after closing bracket in warning iommu/amd: Remove performance counter pre-initialization test iommu/arm-smmu-v3: add bit field SFM into GERROR_ERR_MASK iommu: Check dev->iommu in iommu_dev_xxx functions iommu: Fix a boundary issue to avoid performance drop iommu/vt-d: Don't set then clear private data in prq_event_thread() iommu/vt-d: Invalidate PASID cache when root/context entry changed iommu/vt-d: Preset Access/Dirty bits for IOVA over FL iommu/vt-d: Reject unsupported page request modes iommu/vt-d: Remove WO permissions on second-level paging entries iommu/vt-d: Report right snoop capability when using FL for IOVA iommu/vt-d: Report the right page fault address io_uring: fix overflows checks in provide buffers io_uring: truncate lengths larger than MAX_RW_COUNT on provide buffers ip6_vti: proper dev_{hold|put} in ndo_[un]init methods ipw2x00: potential buffer overflow in libipw_wx_set_encodeext() irqchip/gic-v3: Do not enable irqs when handling spurious interrups irqchip/gic-v3: Fix OF_BAD_ADDR error handling iwlwifi: pcie: make cfg vs. trans_cfg more robust jffs2: check the validity of dstlen in jffs2_zlib_compress() jffs2: Fix kasan slab-out-of-bounds problem jffs2: Hook up splice_write callback kasan: fix unit tests with CONFIG_UBSAN_LOCAL_BOUNDS enabled kbuild: generate Module.symvers only when vmlinux exists kbuild: update config_data.gz only when the content of .config is changed kconfig: nconf: stop endless search loops kcsan, debugfs: Move debugfs file creation out of early init kernel: kexec_file: fix error return code of kexec_calculate_store_digests() kernel/resource: make walk_mem_res() find all busy IORESOURCE_MEM resources kernel/resource: make walk_system_ram_res() find all busy IORESOURCE_SYSTEM_RAM resources KEYS: trusted: Fix memory leak on object td kfifo: fix ternary sign extension bugs khugepaged: fix wrong result value for trace_mm_collapse_huge_page_isolate() kobject_uevent: remove warning in init_uevent_argv() kselftest/arm64: mte: Fix compilation with native compiler kselftest/arm64: mte: Fix MTE feature detection ksm: fix potential missing rmap_item for stable_node kvfree_rcu: Use same set of GFP flags as does single-argument KVM: arm64: Fix KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION read KVM: arm64: Fully zero the vcpu state on reset KVM: arm64: Initialize VCPU mdcr_el2 before loading it KVM: arm/arm64: Fix KVM_VGIC_V3_ADDR_TYPE_REDIST read kvm: Cap halt polling at kvm->max_halt_poll_ns KVM: Destroy I/O bus devices on unregister failure _after_ sync'ing SRCU kvm: exit halt polling on need_resched() as well KVM: LAPIC: Accurately guarantee busy wait for timer to expire when using hv_timer KVM: nSVM: Set the shadow root level to the TDP level for nested NPT KVM: nVMX: Always make an attempt to map eVMCS after migration KVM: nVMX: Defer the MMU reload to the normal path on an EPTP switch KVM: nVMX: Truncate base/index GPR value on address calc in !64-bit KVM: nVMX: Truncate bits 63:32 of VMCS field on nested check in !64-bit KVM: PPC: Book3S HV P9: Restore host CTRL SPR after guest exit KVM: s390: extend kvm_s390_shadow_fault to return entry pointer KVM: s390: fix guarded storage control register handling KVM: s390: split kvm_s390_logical_to_effective KVM: s390: split kvm_s390_real_to_abs KVM: s390: VSIE: correctly handle MVPG when in VSIE KVM: s390: VSIE: fix MVPG handling for prefixing and MSO KVM: Stop looking for coalesced MMIO zones if the bus is destroyed KVM: SVM: Do not allow SEV/SEV-ES initialization after vCPUs are created KVM: SVM: Don't strip the C-bit from CR2 on #PF interception KVM: SVM: Inject #GP on guest MSR_TSC_AUX accesses if RDTSCP unsupported KVM: VMX: Disable preemption when probing user return MSRs KVM: VMX: Do not advertise RDPID if ENABLE_RDTSCP control is unsupported KVM: VMX: Intercept FS/GS_BASE MSR accesses for 32-bit KVM KVM/VMX: Invoke NMI non-IST entry instead of IST entry KVM: x86: Cancel pvclock_gtod_work on module removal KVM: x86: Defer the MMU unload to the normal path on an global INVPCID KVM: x86: dump_vmcs should not assume GUEST_IA32_EFER is valid KVM: x86: Emulate RDPID only if RDTSCP is supported KVM: x86/mmu: Alloc page for PDPTEs when shadowing 32-bit NPT with 64-bit KVM: x86/mmu: Remove the defunct update_pte() paging hook KVM: x86/mmu: Retry page faults that hit an invalid memslot KVM: x86: Move RDPID emulation intercept to its own enum KVM: x86: Prevent deadlock against tk_core.seq KVM: x86: Remove emulator's broken checks on CR0/CR3/CR4 loads kyber: fix out of bounds access when preempted libbpf: Add explicit padding to bpf_xdp_set_link_opts libbpf: Add explicit padding to btf_dump_emit_type_decl_opts libbpf: Fix signed overflow in ringbuf_process_ring libbpf: Initialize the bpf_seq_printf parameters array field by field lib/vsprintf.c: remove leftover 'f' and 'F' cases from bstr_printf() liquidio: Fix unintented sign extension of a left shift of a u16 m68k: Add missing mmap_read_lock() to sys_cacheflush() m68k: mvme147,mvme16x: Don't wipe PCC timer config bits mac80211: bail out if cipher schemes are invalid mac80211: clear the beacon's CRC after channel switch mailbox: sprd: Introduce refcnt when clients requests/free channels Makefile: Move -Wno-unused-but-set-variable out of GCC only block md/bitmap: wait for external bitmap writes to complete during tear down md-cluster: fix use-after-free issue when removing rdev md: factor out a mddev_find_locked helper from mddev_find md: Fix missing unused status line of /proc/mdstat md: md_open returns -EBUSY when entering racing area md/raid1: properly indicate failure when ending a failed write request md: split mddev_find media: adv7604: fix possible use-after-free in adv76xx_remove() media: aspeed: fix clock handling logic media: atomisp: Fixed error handling path media: atomisp: Fix use after free in atomisp_alloc_css_stat_bufs() media: cedrus: Fix H265 status definitions media: docs: Fix data organization of MEDIA_BUS_FMT_RGB101010_1X30 media: drivers: media: pci: sta2x11: fix Kconfig dependency on GPIOLIB media: dvbdev: Fix memory leak in dvb_media_device_free() media: dvb-usb: Fix memory leak at error in dvb_usb_device_init() media: dvb-usb: fix memory leak in dvb_usb_adapter_init media: dvb-usb: Fix use-after-free access media: em28xx: fix memory leak media: gscpa/stv06xx: fix memory leak media: gspca/sq905.c: fix uninitialized variable media: i2c: adv7511-v4l2: fix possible use-after-free in adv7511_remove() media: i2c: adv7842: fix possible use-after-free in adv7842_remove() media: i2c: imx219: Balance runtime PM use-count media: i2c: imx219: Move out locking/unlocking of vflip and hflip controls from imx219_set_stream media: i2c: tda1997: Fix possible use-after-free in tda1997x_remove() media: imx: capture: Return -EPIPE from __capture_legacy_try_fmt() media: ite-cir: check for receive overflow media: m88ds3103: fix return value check in m88ds3103_probe() media: m88rs6000t: avoid potential out-of-bounds reads on arrays media: media/saa7164: fix saa7164_encoder_register() memory leak bugs media: [next] staging: media: atomisp: fix memory leak of object flash media: omap4iss: return error code when omap4iss_get() failed media: platform: sti: Fix runtime PM imbalance in regs_show media: platform: sunxi: sun6i-csi: fix error return code of sun6i_video_start_streaming() media: rkisp1: rsz: crash fix when setting src format media: rkvdec: Remove of_match_ptr() media: saa7134: use sg_dma_len when building pgtable media: saa7146: use sg_dma_len when building pgtable media: staging/intel-ipu3: Fix memory leak in imu_fmt media: staging/intel-ipu3: Fix race condition during set_fmt media: staging/intel-ipu3: Fix set_fmt error handling media: sun8i-di: Fix runtime PM imbalance in deinterlace_start_streaming media: tc358743: fix possible use-after-free in tc358743_remove() media: v4l2-ctrls.c: fix race condition in hdl->requests list media: v4l2-ctrls: fix reference to freed memory media: venus: core: Fix some resource leaks in the error path of 'venus_probe()' media: venus: hfi_parser: Don't initialize parser on v1 media: vivid: fix assignment of dev->fbuf_out_flags media: vivid: update EDID memory: gpmc: fix out of bounds read and dereference on gpmc_cs[] memory: pl353: fix mask of ECC page_size config register memory: renesas-rpc-if: fix possible NULL pointer dereference of resource memory: samsung: exynos5422-dmc: handle clk_set_parent() failure mfd: arizona: Fix rumtime PM imbalance on error mfd: da9063: Support SMBus and I2C mode mfd: intel-m10-bmc: Fix the register access range mfd: stm32-timers: Avoid clearing auto reload register MIPS: Avoid DIVU in `__div64_32' is result would be zero MIPS: Avoid handcoded DIVU in `__div64_32' altogether mips: bmips: fix syscon-reboot nodes MIPS/bpf: Enable bpf_probe_read{, str}() on MIPS again MIPS: fix local_irq_{disable,enable} in asmmacro.h MIPS: loongson64: fix bug when PAGE_SIZE > 16KB MIPS: Loongson64: Use _CACHE_UNCACHED instead of _CACHE_UNCACHED_ACCELERATED MIPS: pci-legacy: stop using of_pci_range_to_resource MIPS: pci-mt7620: fix PLL lock check MIPS: pci-rt2880: fix slot 0 configuration MIPS: Reinstate platform `__div64_32' handler misc: lis3lv02d: Fix false-positive WARN on various HP models misc: vmw_vmci: explicitly initialize vmci_datagram payload misc: vmw_vmci: explicitly initialize vmci_notify_bm_set_msg struct mlxsw: spectrum_mr: Update egress RIF list before route's action mmc: block: Issue a cache flush only when it's enabled mmc: block: Update ext_csd.cache_ctrl if it was written mmc: core: Do a power cycle when the CMD11 fails mmc: core: Fix hanging on I/O during system suspend for removable cards mmc: core: Set read only for SD cards with permanent write protect bit mmc: sdhci-brcmstb: Remove CQE quirk mmc: sdhci: Check for reset prior to DMA address unmap mmc: sdhci-esdhc-imx: validate pinctrl before use it mmc: sdhci-pci: Add PCI IDs for Intel LKF mmc: sdhci-pci: Fix initialization of some SD cards for Intel BYT-based controllers mmc: sdhci-tegra: Add required callbacks to set/clear CQE_EN bit mmc: uniphier-sd: Fix an error handling path in uniphier_sd_probe() mmc: uniphier-sd: Fix a resource leak in the remove function mm: fix struct page layout on 32-bit systems mm/gup: check every subpage of a compound page during isolation mm/gup: check for isolation errors mm/gup: return an error on migration failure mm/hugeltb: handle the error case in hugetlb_fix_reserve_counts() mm/hugetlb: fix F_SEAL_FUTURE_WRITE mm: memcontrol: slab: fix obtain a reference to a freeing memcg mm/memory-failure: unnecessary amount of unmapping mm/migrate.c: fix potential indeterminate pte entry in migrate_vma_insert_page() mm/sl?b.c: remove ctor argument from kmem_cache_flags mm/sparse: add the missing sparse_buffer_fini() in error branch mptcp: fix splat when closing unaccepted socket mt7601u: fix always true expression mt76: fix potential DMA mapping leak mt76: mt7615: fix entering driver-own state on mt7663 mt76: mt7615: fix memleak when mt7615_unregister_device() mt76: mt7615: fix mib stats counter reporting to mac80211 mt76: mt7615: fix tx skb dma unmap mt76: mt7615: support loading EEPROM for MT7613BE mt76: mt7615: use ieee80211_free_txskb() in mt7615_tx_token_put() mt76: mt7663s: fix the possible device hang in high traffic mt76: mt7663s: make all of packets 4-bytes aligned in sdio tx aggregation mt76: mt76x0: disable GTK offloading mt76: mt7915: fix aggr len debugfs node mt76: mt7915: fix mib stats counter reporting to mac80211 mt76: mt7915: fix txpower init for TSSI off chips mt76: mt7915: fix tx skb dma unmap mtd: don't lock when recursively deleting partitions mtd: Handle possible -EPROBE_DEFER from parse_mtd_partitions() mtd: maps: fix error return code of physmap_flash_remove() mtd: physmap: physmap-bt1-rom: Fix unintentional stack access mtd: rawnand: atmel: Update ecc_stats.corrected counter mtd: rawnand: brcmnand: fix OOB R/W with Hamming ECC mtd: rawnand: fsmc: Fix error code in fsmc_nand_probe() mtd: rawnand: gpmi: Fix a double free in gpmi_nand_init mtd: rawnand: qcom: Return actual error code instead of -ENODEV mtd: require write permissions for locking and badblock ioctls mtd: spinand: core: add missing MODULE_DEVICE_TABLE() mtd: spi-nor: core: Fix an issue of releasing resources during read/write mwl8k: Fix a double Free in mwl8k_probe_hw nbd: Fix NULL pointer in flush_workqueue net: bridge: mcast: fix broken length + header check for MRDv6 Adv. net: bridge: when suppression is enabled exclude RARP packets net: davinci_emac: Fix incorrect masking of tx and rx error channel net:emac/emac-mac: Fix a use after free in emac_mac_tx_buf_send net: enetc: fix link error again net: ethernet: ixp4xx: Set the DMA masks explicitly net: ethernet: mtk_eth_soc: fix RX VLAN offload netfilter: nfnetlink_osf: Fix a missing skb_header_pointer() NULL check netfilter: nftables: avoid overflows in nft_hash_buckets() netfilter: nftables: Fix a memleak from userdata error path in new objects netfilter: nftables_offload: special ethertype handling for VLAN netfilter: nftables_offload: VLAN id needs host byteorder in flow dissector netfilter: nft_payload: fix C-VLAN offload support netfilter: xt_SECMARK: add new revision to fix structure layout net: fix nla_strcmp to handle more then one trailing null character net: geneve: modify IP header check in geneve6_xmit_skb and geneve_xmit_skb net: hns3: add check for HNS3_NIC_STATE_INITED in hns3_reset_notify_up_enet() net: hns3: add handling for xmit skb with recursive fraglist net: hns3: disable phy loopback setting in hclge_mac_start_phy net: hns3: fix for vxlan gpe tx checksum bug net: hns3: fix incorrect configuration for igu_egu_hw_err net: hns3: initialize the message content in hclge_get_link_mode() net: hns3: Limiting the scope of vector_ring_chain variable net: hns3: remediate a potential overflow risk of bd_num_list net: hns3: use netif_tx_disable to stop the transmit queue net: lapbether: Prevent racing when checking whether the netif is running net: marvell: prestera: fix port event handling on init net/mlx5e: Use net_prefetchw instead of prefetchw in MPWQE TX datapath net/mlx5: Fix bit-wise and with zero net:nfc:digital: Fix a double free in digital_tg_recv_dep_req net/nfc: fix use-after-free llcp_sock_bind/connect net: Only allow init netns to set default tcp cong to a restricted algo net/packet: make packet_fanout.arr size configurable up to 64K net/packet: remove data races in fanout operations net: phy: intel-xway: enable integrated led functions net: phy: lan87xx: fix access to wrong register of LAN87xx net: phy: marvell: fix m88e1011_set_downshift net: phy: marvell: fix m88e1111_set_downshift net: renesas: ravb: Fix a stuck issue when a lot of frames are received net/sched: cls_flower: use ntohs for struct flow_dissector_key_ports net: sched: tapr: prevent cycle_time == 0 in parse_taprio_schedule net: stmmac: Clear receive all(RA) bit when promiscuous mode is off net: stmmac: fix TSO and TBS feature enabling during driver open net: stmmac: Set FIFO sizes for ipq806x net: thunderx: Fix unintentional sign extension issue net/tipc: fix missing destroy_workqueue() on error in tipc_crypto_start() nfc: pn533: prevent potential memory corruption nfp: devlink: initialize the devlink port attribute "lanes" NFS: Deal correctly with attribute generation counter overflow nfsd: ensure new clients break delegations NFSD: Fix sparse warning in nfs4proc.c NFS: Don't discard pNFS layout segments that are marked for return NFS: Fix attribute bitmask in _nfs42_proc_fallocate() NFS: fs_context: validate UDP retrans to prevent shift out-of-bounds NFS: nfs4_bitmask_adjust() must not change the server global bitmasks NFSv4.2: Always flush out writes in nfs42_proc_fallocate() NFSv4.2: fix copy stateid copying for the async copy NFSv4.2 fix handling of sr_eof in SEEK's reply NFSv4: Don't discard segments marked for return in _pnfs_return_layout() NFSv4.x: Don't return NFS4ERR_NOMATCHING_LAYOUT if we're unmounting nitro_enclaves: Fix stale file descriptors on failed usercopy node: fix device cleanups in error handling code nvme: do not try to reconfigure APST when the controller is not live nvme-pci: don't simple map sgl when sgls are disabled nvme: retrigger ANA log update if group descriptor isn't found nvmet: add lba to sect conversion helpers nvme-tcp: block BH in sk state_change sk callback nvmet: fix inline bio check for bdev-ns nvmet-rdma: Fix NULL deref when SEND is completed with error nvmet: return proper error code from discovery ctrl nvmet-tcp: fix a segmentation fault during io parsing error nvmet-tcp: fix incorrect locking in state_change sk callback of: overlay: fix for_each_child.cocci warnings openvswitch: fix stack OOB read while fragmenting IPv4 packets ovl: fix missing revert_creds() on error path ovl: invalidate readdir cache on changes to dir with origin pata_arasan_cf: fix IRQ check pata_ipx4xx_cf: fix IRQ check PCI: Allow VPD access for QLogic ISP2722 PCI: endpoint: Add helper API to get the 'next' unreserved BAR PCI: endpoint: Fix missing destroy_workqueue() PCI: endpoint: Fix NULL pointer dereference for ->get_features() PCI: endpoint: Make *_free_bar() to return error codes on failure PCI: endpoint: Make *_get_first_free_bar() take into account 64 bit BAR PCI: iproc: Fix return value of iproc_msi_irq_domain_alloc() PCI: keystone: Let AM65 use the pci_ops defined in pcie-designware-host.c PCI: PM: Do not read power state in pci_enable_device_flags() PCI: Release OF node in pci_scan_device()'s error path PCI: xgene: Fix cfg resource mapping perf/amd/uncore: Fix sysfs type mismatch perf/arm_pmu_platform: Fix error handling perf/arm_pmu_platform: Use dev_err_probe() for IRQ errors perf beauty: Fix fsconfig generator perf jit: Let convert_timestamp() to be backwards-compatible perf: Rework perf_event_exit_event() perf session: Add swap operation for event TIME_CONV perf symbols: Fix dso__fprintf_symbols_by_name() to return the number of printed chars perf tools: Change fields type in perf_record_time_conv perf tools: Fix dynamic libbpf link perf vendor events amd: Fix broken L2 Cache Hits from L2 HWPF metric phy: cadence: Sierra: Fix PHY power_on sequence phy: marvell: ARMADA375_USBCLUSTER_PHY should not default to y, unconditionally phy: phy-twl4030-usb: Fix possible use-after-free in twl4030_usb_remove() phy: ti: j721e-wiz: Delete "clk_div_sel" clk provider during cleanup phy: ti: j721e-wiz: Invoke wiz_init() before of_platform_device_create() pinctrl: pinctrl-single: fix pcs_pin_dbg_show() when bits_per_mux is not zero pinctrl: pinctrl-single: remove unused parameter pinctrl: samsung: use 'int' for register masks in Exynos platform/x86: intel_pmc_core: Don't use global pmcdev in quirks platform/x86: ISST: Account for increased timeout in some cases platform/x86: pmc_atom: Match all Beckhoff Automation baytrail boards with critclk_systems DMI table PM / devfreq: Unlock mutex and free devfreq struct in error path PM / devfreq: Use more accurate returned new_freq as resume_freq PM: hibernate: x86: Use crc32 instead of md5 for hibernation e820 integrity check PM: runtime: Fix unpaired parent child_count for force_resume PM: runtime: Replace inline function pm_runtime_callbacks_present() pNFS/flexfiles: fix incorrect size check in decode_nfs_fh() posix-timers: Preserve return value in clock_adjtime32() powerpc/32: Fix boot failure with CONFIG_STACKPROTECTOR powerpc/32: Statically initialise first emergency context powerpc/52xx: Fix an invalid ASM expression ('addi' used instead of 'add') powerpc/64: Fix the definition of the fixmap area powerpc/64s: Fix crashes when toggling entry flush barrier powerpc/64s: Fix crashes when toggling stf barrier powerpc/64s: Fix pte update for kernel memory on radix powerpc/eeh: Fix EEH handling for hugepages in ioremap space. powerpc/fadump: Mark fadump_calculate_reserve_size as __init powerpc: fix EDEADLOCK redefinition error in uapi/asm/errno.h powerpc: Fix HAVE_HARDLOCKUP_DETECTOR_ARCH build configuration powerpc/iommu: Annotate nested lock for lockdep powerpc: iommu: fix build when neither PCI or IBMVIO is set powerpc/kexec_file: Use current CPU info while setting up FDT powerpc/mm: Add cond_resched() while removing hpte mappings powerpc/perf: Fix PMU constraint check for EBB events powerpc/perf: Fix the threshold event selection for memory events in power10 powerpc/powernv: Enable HAIL (HV AIL) for ISA v3.1 processors powerpc/prom: Mark identical_pvr_fixup as __init powerpc/pseries: extract host bridge from pci_bus prior to bus removal powerpc/pseries: Only register vio drivers if vio bus exists powerpc/pseries: Stop calling printk in rtas_stop_self() powerpc/smp: Reintroduce cpu_core_mask powerpc/smp: Set numa node before updating mask powerpc/xive: Drop check on irq_data in xive_core_debug_show() powerpc/xive: Fix xmon command "dxi" power: supply: bq25980: Move props from battery node power: supply: bq27xxx: fix power_avg for newer ICs power: supply: cpcap-battery: fix invalid usage of list cursor power: supply: cpcap-charger: Add usleep to cpcap charger to avoid usb plug bounce power: supply: generic-adc-battery: fix possible use-after-free in gab_remove() power: supply: s3c_adc_battery: fix possible use-after-free in s3c_adc_bat_remove() power: supply: Use IRQF_ONESHOT pwm: atmel: Fix duty cycle calculation in .get_state() qtnfmac: Fix possible buffer overflow in qtnf_event_handle_external_auth random: initialize ChaCha20 constants with correct endianness rcu: Remove spurious instrumentation_end() in rcu_nmi_enter() RDMA/bnxt_re: Fix a double free in bnxt_qplib_alloc_res RDMA/bnxt_re: Fix error return code in bnxt_qplib_cq_process_terminal() RDMA/core: Add CM to restrack after successful attachment to a device RDMA/core: Fix corrupted SL on passive side RDMA/cxgb4: add missing qpid increment RDMA/i40iw: Fix error unwinding when i40iw_hmc_sd_one fails RDMA/mlx5: Fix drop packet rule in egress table RDMA/mlx5: Fix mlx5 rates to IB rates map RDMA/qedr: Fix error return code in qedr_iw_connect() RDMA/rtrs-clt: destroy sysfs after removing session from active list RDMA/rxe: Fix a bug in rxe_fill_ip_info() RDMA/siw: Fix a use after free in siw_alloc_mr RDMA/srpt: Fix error return code in srpt_cm_req_recv() regmap: set debugfs_name to NULL after it is freed regulator: bd9576: Fix return from bd957x_probe() remoteproc: qcom_q6v5_mss: Replace ioremap with memremap remoteproc: qcom_q6v5_mss: Validate p_filesz in ELF loader Revert 337f13046ff0 ("futex: Allow FUTEX_CLOCK_REALTIME with FUTEX_WAIT op") Revert "drivers/net/wan/hdlc_fr: Fix a double free in pvc_xmit" Revert "drm/qxl: do not run release if qxl failed to init" Revert "i3c master: fix missing destroy_workqueue() on error in i3c_master_register" Revert "iommu/amd: Fix performance counter initialization" Revert "iommu/vt-d: Preset Access/Dirty bits for IOVA over FL" Revert "iommu/vt-d: Remove WO permissions on second-level paging entries" Revert "mtd: spi-nor: macronix: Add support for mx25l51245g" Revert "net/sctp: fix race condition in sctp_destroy_sock" Revert "tools/power turbostat: adjust for temperature offset" Revert "USB: cdc-acm: fix rounding error in TIOCSSERIAL" RISC-V: Fix error code returned by riscv_hartid_to_cpuid() rpmsg: qcom_glink_native: fix error return code of qcom_glink_rx_data() rsi: Use resume_noirq for SDIO rtc: ds1307: Fix wday settings for rx8130 rtc: fsl-ftm-alarm: add MODULE_TABLE() rtlwifi: 8821ae: upgrade PHY and RF parameters rtw88: 8822c: add LC calibration for RTL8822C rtw88: Fix an error code in rtw_debugfs_set_rsvd_page() rtw88: Fix array overrun in rtw_get_tx_power_params() s390/archrandom: add parameter check for s390_arch_random_generate s390/disassembler: increase ebpf disasm buffer size s390: fix detection of vector enhancements facility 1 vs. vector packed decimal facility s390/zcrypt: fix zcard and zqueue hot-unplug memleak samples/bpf: Fix broken tracex1 due to kprobe argument change sata_mv: add IRQ checks sc16is7xx: Defer probe if device read fails sched/debug: Fix cgroup_path[] serialization sched,fair: Alternative sched_slice() sched/fair: Fix shift-out-of-bounds in load_balance() sched/fair: Fix unfairness caused by missing load decay sched/fair: Ignore percpu threads for imbalance pulls sched: Fix out-of-bound access in uclamp sched/pelt: Fix task util_est update filtering sched,psi: Handle potential task count underflow bugs more gracefully scsi: hisi_sas: Fix IRQ checks scsi: ibmvfc: Fix invalid state machine BUG_ON() scsi: jazz_esp: Add IRQ check scsi: libfc: Fix a format specifier scsi: lpfc: Fix crash when a REG_RPI mailbox fails triggering a LOGO response scsi: lpfc: Fix error handling for mailboxes completed in MBX_POLL mode scsi: lpfc: Fix incorrect dbde assignment when building target abts wqe scsi: lpfc: Fix pt2pt connection does not recover after LOGO scsi: lpfc: Remove unsupported mbox PORT_CAPABILITIES logic scsi: mpt3sas: Block PCI config access from userspace during reset scsi: pm80xx: Fix potential infinite loop scsi: pm80xx: Increase timeout for pm80xx mpi_uninit_check() scsi: qla2xxx: Always check the return value of qla24xx_get_isp_stats() scsi: qla2xxx: Fix crash in qla2xxx_mqueuecommand() scsi: qla2xxx: Fix use after free in bsg scsi: qla2xxx: Prevent PRLI in target mode scsi: scsi_dh_alua: Remove check for ASC 24h in alua_rtpg() scsi: smartpqi: Add new PCI IDs scsi: smartpqi: Correct request leakage during reset operations scsi: smartpqi: Use host-wide tag space scsi: sni_53c710: Add IRQ check scsi: sun3x_esp: Add IRQ check scsi: target: pscsi: Fix warning in pscsi_complete_cmd() scsi: ufs: core: Cancel rpm_dev_flush_recheck_work during system suspend scsi: ufs: core: Do not put UFS power into LPM if link is broken scsi: ufs: core: Narrow down fast path in system suspend path scsi: ufs: ufshcd-pltfrm: Fix deferred probing sctp: delay auto_asconf init until binding the first addr sctp: do asoc update earlier in sctp_sf_do_dupcook_a sctp: fix a SCTP_MIB_CURRESTAB leak in sctp_sf_do_dupcook_b sctp: Fix out-of-bounds warning in sctp_process_asconf_param() seccomp: Fix CONFIG tests for Seccomp_filters security: commoncap: fix -Wstringop-overread warning security: keys: trusted: fix TPM2 authorizations selftests/bpf: Fix BPF_CORE_READ_BITFIELD() macro selftests/bpf: Fix core_reloc test runner selftests/bpf: Fix field existence CO-RE reloc tests selftests/bpf: Re-generate vmlinux.h and BPF skeletons if bpftool changed selftests: fix prepending $(OUTPUT) to $(TEST_PROGS) selftests: mlxsw: Fix mausezahn invocation in ERSPAN scale test selftests: mlxsw: Increase the tolerance of backlog buildup selftests: mlxsw: Remove a redundant if statement in tc_flower_scale test selftests: net: mirror_gre_vlan_bridge_1q: Make an FDB entry static selftests/powerpc: Fix L1D flushing tests for Power10 selftests/resctrl: Clean up resctrl features check selftests/resctrl: Enable gcc checks to detect buffer overflows selftests/resctrl: Fix checking for < 0 for unsigned values selftests/resctrl: Fix compilation issues for global variables selftests/resctrl: Fix compilation issues for other global variables selftests/resctrl: Fix incorrect parsing of iMC counters selftests/resctrl: Fix missing options "-n" and "-p" selftests/resctrl: Use resctrl/info for feature detection selftests: Set CC to clang in lib.mk if LLVM is set selinux: add proper NULL termination to the secclass_map permissions serial: core: return early on unsupported ioctls serial: omap: don't disable rs485 if rts gpio is missing serial: omap: fix rs485 half-duplex filtering serial: stm32: add FIFO flush when port is closed serial: stm32: add "_usart" prefix in functions name serial: stm32: call stm32_transmit_chars locked serial: stm32: fix a deadlock condition with wakeup event serial: stm32: fix a deadlock in set_termios serial: stm32: fix code cleaning warnings and checks serial: stm32: fix FIFO flush in startup and set_termios serial: stm32: fix incorrect characters on console serial: stm32: fix probe and remove order for dma serial: stm32: fix startup by enabling usart for reception serial: stm32: fix TX and RX FIFO thresholds serial: stm32: fix tx dma completion, release channel serial: stm32: fix tx_empty condition serial: stm32: fix wake-up flag handling serial: stm32: Use of_device_get_match_data() sfc: ef10: fix TX queue lookup in TX event handling sfc: farch: fix TX queue lookup in TX event handling sfc: farch: fix TX queue lookup in TX flush done handling smb2: fix use-after-free in smb2_ioctl_query_info() smb3: do not attempt multichannel to server which does not support it smb3: when mounting with multichannel include it in requested capabilities smc: disallow TCP_ULP in smc_setsockopt() smp: Fix smp_call_function_single_async prototype soc: aspeed: fix a ternary sign expansion bug soc: qcom: mdt_loader: Detect truncated read of segments soc: qcom: mdt_loader: Validate that p_filesz < p_memsz soc: qcom: pdr: Fix error return code in pdr_register_listener soc/tegra: pmc: Fix completion of power-gate toggling soc/tegra: regulators: Fix locking up when voltage-spread is out of range soundwire: bus: Fix device found flag correctly soundwire: cadence: only prepare attached devices on clock stop soundwire: stream: fix memory leak in stream config error path spi: ath79: always call chipselect function spi: ath79: remove spi-master setup and cleanup assignment spi: dln2: Fix reference leak to master spi: Fix use-after-free with devm_spi_alloc_* spi: fsl: add missing iounmap() on error in of_fsl_spi_probe() spi: fsl-lpspi: Fix PM reference leak in lpspi_prepare_xfer_hardware() spi: omap-100k: Fix reference leak to master spi: qup: fix PM reference leak in spi_qup_remove() spi: rockchip: avoid objtool warning spi: spi-ti-qspi: Free DMA resources spi: spi-zynqmp-gqspi: add mutex locking for exec_op spi: spi-zynqmp-gqspi: fix clk_enable/disable imbalance issue spi: spi-zynqmp-gqspi: fix hang issue when suspend/resume spi: spi-zynqmp-gqspi: fix incorrect operating mode in zynqmp_qspi_read_op spi: spi-zynqmp-gqspi: Fix missing unlock on error in zynqmp_qspi_exec_op() spi: spi-zynqmp-gqspi: fix use-after-free in zynqmp_qspi_exec_op spi: spi-zynqmp-gqspi: return -ENOMEM if dma_map_single fails spi: spi-zynqmp-gqspi: transmit dummy circles by using the controller's internal functionality spi: spi-zynqmp-gqspi: use wait_for_completion_timeout to make zynqmp_qspi_exec_op not interruptible spi: stm32: drop devres version of spi_register_master spi: stm32: Fix use-after-free on unbind spi: stm32-qspi: fix pm_runtime usage_count counter spi: sync up initial chipselect state squashfs: fix divide error in calculate_skip() staging: comedi: tests: ni_routes_test: Fix compilation error staging: fwserial: fix TIOCGSERIAL implementation staging: fwserial: fix TIOCSSERIAL implementation staging: fwserial: fix TIOCSSERIAL jiffies conversions staging: fwserial: fix TIOCSSERIAL permission check staging: greybus: uart: fix TIOCSSERIAL jiffies conversions staging: greybus: uart: fix unprivileged TIOCCSERIAL staging: rtl8192u: Fix potential infinite loop staging: wimax/i2400m: fix byte-order issue sunrpc: Fix misplaced barrier in call_decode SUNRPC: fix ternary sign expansion bug in tracing SUNRPC: Handle major timeout in xprt_adjust_timeout() SUNRPC: Move fault injection call sites SUNRPC: Remove trace_xprt_transmit_queued swiotlb: Fix the type of index tee: optee: do not check memref size on return from Secure World thermal/core/fair share: Lock the thermal zone while looping over instances thermal/drivers/cpufreq_cooling: Fix slab OOB issue thermal/drivers/tsens: Fix missing put_device error thermal: thermal_of: Fix error return code of thermal_of_populate_bind_params() tipc: convert dest node's address to network order tools/power turbostat: Fix offset overflow issue in index converting tools/power/turbostat: Fix turbostat for AMD Zen CPUs tools/power/x86/intel-speed-select: Increase string size tpm: acpi: Check eventlog signature before using it tpm: efi: Use local variable for calculating final log size tpm: fix error return code in tpm2_get_cc_attrs_tbl() tpm, tpm_tis: Extend locality handling to TPM2 in tpm_tis_gen_interrupt() tpm, tpm_tis: Reserve locality in tpm_tis_resume() tpm: vtpm_proxy: Avoid reading host log when using a virtual device tracing: Map all PIDs to command lines tracing: Restructure trace_clock_global() to never block tty: actually undefine superseded ASYNC flags tty: amiserial: fix TIOCSSERIAL permission check tty: fix memory leak in vc_deallocate tty: fix return value for unsupported ioctls tty: fix return value for unsupported termiox ioctls tty: moxa: fix TIOCSSERIAL jiffies conversions tty: moxa: fix TIOCSSERIAL permission check tty: n_gsm: check error while registering tty devices ttyprintk: Add TTY hangup callback. tty: Remove dead termiox code ubifs: Only check replay with inode type to judge if inode linked udp: never accept GSO_FRAGLIST packets USB: cdc-acm: fix TIOCGSERIAL implementation USB: cdc-acm: fix unprivileged TIOCCSERIAL usb: core: hub: Fix PM reference leak in usb_port_resume() usb: core: hub: fix race condition about TRSMRCY of resume usb: dwc2: Fix gadget DMA unmap direction usb: dwc2: Fix hibernation between host and device modes. usb: dwc2: Fix host mode hibernation exit with remote wakeup flow. usb: dwc2: Fix session request interrupt handler usb: dwc3: core: Do core softreset when switch mode usb: dwc3: gadget: Check for disabled LPM quirk usb: dwc3: gadget: Enable suspend events usb: dwc3: gadget: Fix START_TRANSFER link state check usb: dwc3: gadget: Free gadget structure only after freeing endpoints usb: dwc3: gadget: Ignore EP queue requests during bus reset usb: dwc3: gadget: Remove FS bInterval_m1 limitation usb: dwc3: gadget: Return success always for kick transfer in ep queue usb: dwc3: omap: improve extcon initialization usb: dwc3: pci: Enable usb2-gadget-lpm-disable for Intel Merrifield usb: fotg210-hcd: Fix an error message usb: gadget: aspeed: fix dma map failure usb: gadget: dummy_hcd: fix gpf in gadget_setup usb: gadget: Fix double free of device descriptor pointers usb: gadget: f_uac1: validate input parameters usb: gadget: f_uac2: validate input parameters usb: gadget/function/f_fs string table fix for multiple languages usb: gadget: pch_udc: Check for DMA mapping error usb: gadget: pch_udc: Check if driver is present before calling ->setup() usb: gadget: pch_udc: Initialize device pointer before use usb: gadget: pch_udc: Provide a GPIO line used on Intel Minnowboard (v1) usb: gadget: pch_udc: Replace cpu_to_le32() by lower_32_bits() usb: gadget: pch_udc: Revert d3cb25a12138 completely usb: gadget: r8a66597: Add missing null check on return from platform_get_resource usb: gadget: s3c: Fix incorrect resources releasing usb: gadget: s3c: Fix the error handling path in 's3c2410_udc_probe()' usb: gadget: tegra-xudc: Fix possible use-after-free in tegra_xudc_remove() USB: gadget: udc: fix wrong pointer passed to IS_ERR() and PTR_ERR() usb: gadget: uvc: add bInterval checking for HS mode usbip: vudc: fix missing unlock on error in usbip_sockfd_store() usb: musb: Fix an error message usb: musb: fix PM reference leak in musb_irq_work() usb: roles: Call try_module_get() from usb_role_switch_find_by_fwnode() USB: serial: ti_usb_3410_5052: fix TIOCSSERIAL permission check USB: serial: usb_wwan: fix TIOCSSERIAL jiffies conversions usb: typec: stusb160x: fix return value check in stusb160x_probe() usb: typec: tcpci: Check ROLE_CONTROL while interpreting CC_STATUS usb: typec: tcpm: Address incorrect values of tcpm psy for fixed supply usb: typec: tcpm: Address incorrect values of tcpm psy for pps supply usb: typec: tcpm: Fix error while calculating PPS out values usb: typec: tcpm: update power supply once partner accepts usb: typec: tps6598x: Fix return value check in tps6598x_probe() usb: typec: ucsi: Put fwnode in any case during ->probe() usb: typec: ucsi: Retrieve all the PDOs instead of just the first 4 usb: webcam: Invalid size of Processing Unit Descriptor usb: xhci: Fix port minor revision usb: xhci: Increase timeout for HC halt usb: xhci-mtk: improve bandwidth scheduling with TT usb: xhci-mtk: remove or operator for setting schedule parameters usb: xhci-mtk: support quirk to disable usb2 lpm userfaultfd: release page in error path to avoid BUG_ON vfio/fsl-mc: Re-order vfio_fsl_mc_probe() vfio/mdev: Do not allow a mdev_type to have a NULL parent pointer vfio/pci: Move VGA and VF initialization to functions vfio/pci: Re-order vfio_pci_probe() vhost-vdpa: fix vm_flags for virtqueue doorbell mapping virtiofs: fix memory leak in virtio_fs_probe() virtiofs: fix userns vsock/virtio: free queued packets when closing socket vsock/vmci: log once the failed queue pair allocation watchdog: explicitly update timestamp when reporting softlockup watchdog: fix barriers when printing backtraces from all CPUs watchdog: rename __touch_watchdog() to a better descriptive name watchdog/softlockup: remove logic that tried to prevent repeated reports wilc1000: write value to WILC_INTR2_ENABLE register wl3501_cs: Fix out-of-bounds warnings in wl3501_mgmt_join wl3501_cs: Fix out-of-bounds warnings in wl3501_send_pkt wlcore: Fix buffer overrun by snprintf due to incorrect buffer size wlcore: fix overlapping snprintf arguments in debugfs x86/boot: Add $(CLANG_FLAGS) to compressed KBUILD_CFLAGS x86/build: Disable HIGHMEM64G selection for M486SX x86/build: Propagate $(CLANG_FLAGS) to $(REALMODE_FLAGS) x86/cpu: Initialize MSR_TSC_AUX if RDTSCP *or* RDPID is supported x86/events/amd/iommu: Fix sysfs type mismatch x86/kprobes: Fix to check non boostable prefixes correctly x86/microcode: Check for offline CPUs before requesting new microcode x86/platform/uv: Fix !KEXEC build failure x86/platform/uv: Set section block size for hubless architectures x86, sched: Treat Intel SNC topology as default, COD as exception x86/sev: Do not require Hypervisor CPUID bit for SEV guests xen-blkback: fix compatibility bug with single page rings xen/gntdev: fix gntdev_mmap() error exit path xen/unpopulated-alloc: consolidate pgmap manipulation xen/unpopulated-alloc: fix error return code in fill_list() xfs: fix return of uninitialized value in variable error xhci: Add reset resume quirk for AMD xhci controller. xhci: check control context is valid before dereferencing it. xhci: check port array allocation was successful before dereferencing it xhci: Do not use GFP_KERNEL in (potentially) atomic context xhci: fix potential array out of bounds with several interrupters xhci-pci: Allow host runtime PM as default for Intel Alder Lake xHCI xprtrdma: Avoid Receive Queue wrapping xprtrdma: Fix cwnd update ordering xprtrdma: rpcrdma_mr_pop() already does list_del_init() xsk: Fix for xp_aligned_validate_desc() when len == chunk_size xsk: Respect device's headroom and tailroom on generic xmit path Updated by kernel-updater-bot (https://abf.io/mikhailnov/kernel-updater-bot)
1571 lines
52 KiB
RPMSpec
1571 lines
52 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 10
|
|
%define sublevel 38
|
|
|
|
# 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 i586
|
|
%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
|
|
|
|
# User Mode Linux, https://habr.com/ru/company/itsumma/blog/459558/
|
|
# Not buildable on aarch64
|
|
%ifarch %{x86_64}
|
|
%bcond_without uml
|
|
%else
|
|
%bcond_with uml
|
|
%endif
|
|
|
|
# "Nickel" is a special brand for certified distros
|
|
%if %{mdvver} == 201900 || %{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
|
|
|
|
# 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
|
|
|
|
# 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}
|
|
|
|
# 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}
|
|
|
|
############################################################################
|
|
|
|
# Build defines
|
|
%define build_doc 0
|
|
%define build_devel 1
|
|
%define build_debug 1
|
|
|
|
# Build kernel-headers package
|
|
# Headers from LTS kernel 5.4 are default in rosa2019.1/05 for now
|
|
# and headers from 4.15 are default in rosa2016.1
|
|
%define build_headers 0
|
|
|
|
# build perf and cpupower tools
|
|
%if %{mdvver} > 201610
|
|
%define build_perf 1
|
|
%define build_cpupower 1
|
|
%else
|
|
# This is not the main kernel in rosa2016.1
|
|
# This one will be in contrib, not main, in rosa2016.1
|
|
%define build_perf 0
|
|
%define build_cpupower 0
|
|
%endif
|
|
|
|
# End of user definitions
|
|
|
|
# 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}
|
|
|
|
%if %{with compress_modules}
|
|
%define kmod_suffix .zst
|
|
%else
|
|
%define kmod_suffix %{nil}
|
|
%endif
|
|
|
|
%if !%{build_debug}
|
|
# Disable debug rpms.
|
|
%define _enable_debug_packages %{nil}
|
|
%define debug_package %{nil}
|
|
%endif
|
|
|
|
# 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: http://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}}
|
|
|
|
# Kernel configuration files.
|
|
Source111: kernel-x86_64.config
|
|
Source112: kernel-i586.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
|
|
|
|
# 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
|
|
|
|
# AUFS 5 from http://aufs.sourceforge.net/
|
|
Patch109: 0001-Apply-AUFS-5.patch
|
|
# Unofficial AUFS for kernel 5.10
|
|
# https://sourceforge.net/projects/lxpup/files/Other/huge-kernels/kernel-5.10-aufs-changes/
|
|
Patch110: aufs-k510.diff
|
|
|
|
# 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-LSM-module.patch
|
|
Patch202: 0002-Documentation-for-AltHa-LSM.patch
|
|
Patch203: 0003-security-altha-altha_lsm.c-build-fixed-with-kernel-5.patch
|
|
Patch204: 0004-altha-use-path-strings-instead-of-path-structs.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
|
|
|
|
# Disable AutoReq
|
|
AutoReq: 0
|
|
# but keep autoprov for kmod(xxx)
|
|
AutoProv: 1
|
|
|
|
BuildRequires: bash
|
|
BuildRequires: bc
|
|
BuildRequires: binutils
|
|
BuildRequires: gcc
|
|
# ./scripts/mkcompile_h
|
|
# in net-tools in rosa2016.1, already installed
|
|
%if %{mdvver} > 201610
|
|
BuildRequires: hostname
|
|
%endif
|
|
# For power tools
|
|
BuildRequires: pkgconfig(ncurses)
|
|
BuildRequires: kmod-devel kmod-compat
|
|
BuildRequires: bison
|
|
BuildRequires: flex
|
|
BuildRequires: bzip2
|
|
BuildRequires: rsync
|
|
|
|
%ifarch x86_64 aarch64
|
|
BuildRequires: numa-devel
|
|
%endif
|
|
|
|
# for perf, cpufreq and all other tools
|
|
# for cpupower
|
|
%if %{build_cpupower}
|
|
BuildRequires: pciutils-devel
|
|
%endif
|
|
# for perf
|
|
%if %{build_perf}
|
|
BuildRequires: asciidoc
|
|
BuildRequires: audit-devel
|
|
BuildRequires: binutils-devel
|
|
BuildRequires: elfutils-devel
|
|
BuildRequires: libunwind-devel
|
|
BuildRequires: newt-devel
|
|
BuildRequires: perl-devel
|
|
BuildRequires: python3
|
|
BuildRequires: pkgconfig(python3)
|
|
BuildRequires: xmlto
|
|
BuildRequires: zlib-devel
|
|
BuildRequires: pkgconfig(libcrypto)
|
|
%endif
|
|
|
|
%if %{with uml}
|
|
BuildRequires: vde-devel
|
|
%endif
|
|
|
|
# (To generate keys)
|
|
# LibreSSL has GOST support without editing openssl.cnf
|
|
# or dlopen()-ing external library
|
|
BuildRequires: libressl libressl-devel
|
|
# To verify signatures (find, xargs, hexdump)
|
|
BuildRequires: findutils util-linux
|
|
|
|
%if %{with binary_extra_modules}
|
|
BuildRequires: kernel-source-rtl8821ce
|
|
BuildRequires: kernel-source-tripso
|
|
BuildRequires: kernel-source-ipt-so
|
|
%if %{with binary_virtualbox_host}
|
|
BuildRequires: kernel-source-virtualbox
|
|
%endif
|
|
%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 #with binary_extra_modules
|
|
|
|
%if %{with ccache}
|
|
BuildRequires: ccache
|
|
%endif
|
|
|
|
%if %{with compress_modules}
|
|
BuildRequires: zstd
|
|
%endif
|
|
|
|
Provides: kernel = %{EVRD}
|
|
Provides: kernel-%{flavour} = %{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
|
|
|
|
# Usually necessary, but sometimes user may want to not install them
|
|
Recommends: linux-firmware
|
|
Recommends: wireless-regdb
|
|
Recommends: crda
|
|
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
|
|
|
|
%if %{with flow_abi}
|
|
Requires: kernel-%{kernelversion}.%{patchlevel}-rosa-flow-abi
|
|
%endif
|
|
|
|
%ifarch %{ix86}
|
|
Conflicts: arch(x86_64)
|
|
%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.
|
|
#
|
|
# depmod is also needed, because some DKMS-modules might have been installed
|
|
# when the devel package was installed but that was before the main modules
|
|
# were installed.
|
|
# This is also the reason the devel package is in Requires(post) for this
|
|
# package now: it must be installed completely before we call depmod here.
|
|
/sbin/depmod -a %{kver_full}
|
|
/sbin/dracut -f /boot/initrd-%{kver_full}.img %{kver_full}
|
|
|
|
# File triggers from grub packages will handle this.
|
|
#/usr/sbin/update-grub2
|
|
|
|
%postun
|
|
|
|
# Do not remove just installed kernel if package is being reinstalled
|
|
if [ "$1" -gt 0 ]; then exit 0; fi
|
|
|
|
rm -f /boot/initrd-%{kver_full}.img
|
|
rm -f /boot/initrd-%{kver_full}_old.img
|
|
rm -f /boot/initrd-%{kver_full}kdump.img
|
|
rm -f /boot/initramfs-%{kver_full}kdump.img
|
|
|
|
# Third-party modules might have left something in /lib/modules/.../kernel/.
|
|
rm -rf /lib/modules/%{kver_full}/kernel/
|
|
rm -rf /lib/modules/%{kver_full}/modules*
|
|
# Remove /lib/modules/<...>/ if it is empty (-devel uses it too).
|
|
find /lib/modules/%{kver_full} -maxdepth 0 -empty -exec rm -rf {} \; || true
|
|
|
|
%files -f %{kernel_files}
|
|
%{_bootdir}/System.map-%{kver_full}
|
|
%{_bootdir}/symvers-%{kver_full}.zst
|
|
%{_bootdir}/config-%{kver_full}
|
|
%{_bootdir}/vmlinuz-%{kver_full}
|
|
%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}
|
|
%if %{with binary_shredder}
|
|
%exclude %{_modulesdir}/%{kver_full}/kernel/extra/shredder-kernel.ko%{kmod_suffix}
|
|
%endif
|
|
%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 #with binary_extra_modules
|
|
|
|
############################################################################
|
|
|
|
%if %build_devel
|
|
%package devel
|
|
Summary: Development files for %{name}
|
|
Group: Development/Kernel
|
|
Requires: glibc-devel
|
|
Requires: ncurses-devel
|
|
Requires: make
|
|
Requires: gcc
|
|
Requires: perl
|
|
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
|
|
|
|
%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
|
|
|
|
%postun devel
|
|
rm -rf /usr/src/linux-%{kver_full} >/dev/null
|
|
# depmod (called when removing DKMS modules) might have created files in
|
|
# /lib/modules/.../. Remove these first.
|
|
rm -rf /lib/modules/%{kver_full}/modules*
|
|
# Remove the dir if it is already empty.
|
|
find /lib/modules/%{kver_full} -maxdepth 0 -empty -exec rm -rf {} \; || true
|
|
|
|
|
|
%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 # /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 # /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
|
|
%dir %{_prefix}/libexec/perf-core
|
|
%dir %{_libdir}/traceevent
|
|
%dir %{_libdir}/traceevent/plugins
|
|
%{_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
|
|
%{_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*
|
|
%config(noreplace) %{_sysconfdir}/sysconfig/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
|
|
Epoch: 1
|
|
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
|
|
%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 #endif uml
|
|
|
|
#------------------------------------------------
|
|
|
|
%if %{with binary_extra_modules}
|
|
|
|
%ksob_mk_module_pkg -n 8821ce -s net/wireless -r rtl8821ce-blacklist
|
|
%ksob_mk_module_pkg -n xt_TRIPSO -s net -r tripso
|
|
%ksob_mk_module_pkg -n xt_so -s net -r ipt-so
|
|
|
|
%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 #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 #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 #with 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
|
|
|
|
# Enable debug info if requested.
|
|
sed -i '/CONFIG_DEBUG_INFO/d' .config
|
|
%if %build_debug
|
|
echo 'CONFIG_DEBUG_INFO=y' >> %{build_dir}/.config.append
|
|
echo 'CONFIG_DEBUG_INFO_DWARF4=y' >> %{build_dir}/.config.append
|
|
echo 'CONFIG_GDB_SCRIPTS=y' >> %{build_dir}/.config.append
|
|
%else
|
|
echo 'CONFIG_DEBUG_INFO=n' >> %{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
|
|
|
|
# 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 && \
|
|
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
|
|
|
|
############################################################################
|
|
|
|
%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 #endif 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 aarch64
|
|
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/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
|
|
|
|
%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 #with nickel <- with binary_extra_modules
|
|
|
|
%endif #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}
|
|
%{zstd_cmd} Module.symvers
|
|
install -m 644 Module.symvers.zst %{temp_boot}/symvers-%{kver_full}.zst
|
|
|
|
%ifarch %{armx}
|
|
%make_build ARCH=arm64 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/
|
|
|
|
# aufs2 has a special file needed
|
|
cp -fR fs/aufs/magic.mk %{temp_devel_root}/fs/aufs
|
|
|
|
# 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 build_devel
|
|
%endif
|
|
|
|
# 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 # /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}
|
|
|
|
# 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}
|
|
|
|
# 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
|
|
find %{target_modules} -name "*.ko" | %kxargs %{zstd_cmd} --rm -T1 #-D dictionary
|
|
#rm -f dictionary
|
|
%endif
|
|
|
|
find %{buildroot}%{_modulesdir} -type f -name '*.ko%{kmod_suffix}' | sed -e 's,^%{buildroot},,' | sort -u >> %{kernel_files}
|
|
find %{buildroot}%{_modulesdir} -type d -name '*.ko%{kmod_suffix}' | sed -e 's,^%{buildroot},,' -e 's,^,%dir ,' | sort -u >> %{kernel_files}
|
|
|
|
%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 # /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 -e '1 s,^.*$,#!%{__python3},' %{buildroot}%{_prefix}/libexec/perf-core/scripts/python/exported-sql-viewer.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
|