泰晓科技 -- 聚焦 Linux - 追本溯源,见微知著!
网站地址:https://tinylab.org

泰晓RISC-V实验箱,转战RISC-V,开箱即用
请稍侯

RISC-V Linux 内核及周边技术动态第 118 期

呀呀呀 创作于 2024/11/19

时间:20241117
编辑:晓瑜
仓库:RISC-V Linux 内核技术调研活动
赞助:PLCT Lab, ISCAS

内核动态

RISC-V 架构支持

v1: iommu/riscv: Add irqbypass support

Platforms with implementations of the RISC-V IOMMU and AIA support directly delivering MSIs of devices assigned to guests to the VCPUs.

v2: riscv: Optimize crct10dif with zbc extension

The current CRC-T10DIF algorithm is based on table-lookup optimization.

v11: riscv: Add support for xtheadvector

All of the vector routines have been modified to support this alternative vector version based upon whether xtheadvector was determined to be supported at boot.

v1: riscv/futex: Optimize atomic cmpxchg

Remove redundant release/acquire barriers, optimizing the lr/sc sequence to provide conditional RCsc synchronization, per the RVWMO.

v1: RISC-V CRC-T10DIF optimization with zbc extension and CRC-T10DIF selftest

Compared to other architectures, RISC-V still lacks accerlerated implementations for some encryption and checksum algorithms.

v5: riscv: mm: Add soft-dirty and uffd-wp support

This patchset adds soft dirty and userfaultfd write protect tracking support for RISC-V.

v4: pinctrl: k210: Undef K210_PC_DEFAULT

When the temporary macro K210_PC_DEFAULT is not needed anymore, use its name in the #undef statement instead of the incorrect “DEFAULT” name.

v1: pinctrl: k210: Modify the wrong “#undef”

Here shuld be undef “K210_PC_DEFAULT”, not “DEFAULT”.

v1: dma-mapping: Save base/size instead of pointer to shared DMA pool

Fix this by saving the needed reserved_mem structure’s contents instead.

v1: irqchip: THEAD_C901_ACLINT_SSWI should depend on ARCH_THEAD

The T-HEAD ACLINT S-mode IPI Interrupt Controller is only present on T-HEAD SoCs.

v2: iommu/riscv: Add platform msi support

Add MSI support for a platform IOMMU. May be tested with QEMU when including .

v3: riscv: spacemit: add i2c support to K1 SoC

This patch implements I2C driver for the SpacemiT K1 SoC, providing basic support for I2C read/write communication which compatible with standard I2C bus specifications.

v8: riscv control-flow integrity for usermode

This patchset depends on another patchset for the SG2042 MSI controller[msi]. If you need to test the DTS part, you need to apply the corresponding patchset.

v1: irqchip: Add Sophgo SG2042 MSI controller

This controller is on the Sophgo SG2042 SoC to transform interrupts from PCIe MSI to PLIC interrupts.

LoongArch 架构支持

v2: LoongArch: Add PREEMPT_RT support

This series add PREEMPT_RT support for LoongArch.

v1: soc: loongson: add Loongson Security Module driver

This driver supports Loongson Security Module, which provides the control for it’s hardware encryption acceleration child devices.

v9: EDAC: Add EDAC driver for loongson memory controller

Add ECC support for Loongson SoC DDR controller. This driver reports single bit errors (CE) only.

v1: LoongArch: KVM: Add separate vmid support

LoongArch KVM hypervisor supports two-level MMU, vpid index is used for stage1 MMU and vmid index is used for stage2 MMU.

v1: LoongArch: KVM: Ensure ret is always initialized in kvm_eiointc_{read,write}()

Set ret to -EINVAL in the default case to resolve the warning, as len was not a valid value for the functions to handle.

ARM 架构支持

v1: Wire up CRC-T10DIF library functions to arch-optimized code

This patchset updates the kernel’s CRC-T10DIF library functions to be directly optimized for x86, arm, arm64, and powerpc without taking an unnecessary and inefficient detour through the crypto API.

v1: spi-imx: prevent overflow when estimating transfer time

The words delay is computed by multiplying two unsigned ints and by adding up the result to a u64 variable.

v1: iommu/arm-smmu-v3: Import IOMMUFD module namespace

Commit 69d9b312f38a (“iommu/arm-smmu-v3: Support IOMMU_VIOMMU_ALLOC”) started using _iommufd_object_alloc() without importing the IOMMUFD module namespace, resulting in a modpost warning.

v13: GenieZone hypervisor drivers

This series is based on linux-next, tag: next-20241114.

v7: Add ITE IT6263 LVDS to HDMI converter support

This patch series aims to add ITE IT6263 LVDS to HDMI converter on i.MX8MP EVK.

v3: hwmon: tmp108: Add support for P3T1085

Add basic function support for P3T1085 temperature sensor.

GIT PULL: Rockchip dts32 changes for 6.13 #2

Fixed-regulator nowadays has preferred node-naming scheme set in the binding. This gets all boards on the same state for Rockchip arm32-dts.

GIT PULL: Rockchip dts32 changes for 6.13 #1

Fixed-regulator nowadays has preferred node-naming scheme set in the binding. This gets all boards on the same state for Rockchip arm32-dts.

GIT PULL: Rockchip dts64 changes for 6.13 #2

please find below and in a subsequent pull-request some more Rockchip changes for for 6.13 .

v6: MIPI DSI Controller support for SAM9X75 series

This patch series adds support for the Microchip’s MIPI DSI Controller wrapper driver that uses the Synopsys DesignWare MIPI DSI host controller bridge for SAM9X75 SoC series.

v5: soc: imx: Add SoC device register for i.MX9

This patch intends to use SMC call to obtain these information and then register i.MX9 SoC as a device.

v1: pinctrl: sunxi: Add Allwinner A523 support

this series introduces pinctrl support for the Allwinner A523 family of SoCs (comprising A523, A527, T527).

v1: Add support for Samsung Galaxy S20 FE (SM-G780F/r8s) [SoC Exynos990]

I’m a newbie and I started getting interested 1 year ago.

X86 架构支持

v1: ovl: Check for NULL OVL_E() results

GCC notices that it is possible for OVL_E() to return NULL (which implies that d_inode(dentry) may be NULL).

v1: SEAMCALL Wrappers

This is a quick followup to Dave’s comments on the SEAMCALL wrappers in the “TDX vCPU/VM creation” series [0].

v1: x86/mm: Check return value from memblock_phys_alloc_range()

At least with CONFIG_PHYSICAL_START=0x100000, if there is < 4 MiB of contiguous free memory available at this point, the kernel will crash and burn because memblock_phys_alloc_range returns 0 on failure, which leads memblock_phys_free to throw the first 4 MiB of physical memory to the wolves.

v1: KVM: x86/mmu: Only zap valid non-mirror roots in kvm_zap_gfn_range()

Only zap valid, non-mirror roots in kvm_zap_gfn_range().

v1: 6.1: 6.1.118-rc1 review

This is the start of the stable review cycle for the 6.1.118 release.

v7: Add RAPL core energy counter support for AMD CPUs

This patchset adds a new “power_core” PMU alongside the existing “power” PMU, which will be responsible for collecting the new “energy-core” event.

v3: ASoC: hdmi-codec: reorder channel allocation list

Fix this by reordering the channel allocation list with most specific speaker masks at the top.

v1: Add support for the new phone link hotkey on ThinkPads

This new keycode can be interpreted by desktop environments to lauch free Phone Link alternatives like KDE Connect or GSConnect.

v3: Add support for the PCI host bridge device-tree node creation.

This series adds support for creating a device-tree node for the PCI host bridge on non device-tree based system.

v2: 0/2: x86,tlb: context switch optimizations

While profiling switch_mm_irqs_off with several workloads, it appears there are two hot spots that probably don’t need to be there.

v9: Support SMT control on arm64

The core CPU control framework supports runtime SMT control which is not yet supported on arm64. Besides the general vulnerabilities concerns we want this runtime control on our arm64 server for

[RFC PATCH mpam mpam/snapshot/v6.11-rc1 0/6] arm_mpam: Introduce the definitions of intPARTID and reqPARTID

The narrow-partid feature in MPAM allows for a more efficient use of PARTIDs by enabling a many-to-one mapping of reqpartids (requested PARTIDs) to intpartids (internal PARTIDs).

v2: x86/pkeys: Set XSTATE_BV[PKRU] to 1 so that PKRU

Resending. I apologize for forgetting to add v2 in the patch subject in my previous submission (and this cover letter).

v9: x86/resctrl: mba_MBps enhancement

Add support to choose the memory monitor bandwidth event independently for each ctrl_mon group when resctrl is mounted with the mba_MBps option. Users may want this for applications that are not localized to NUMA boundaries. Default behavior still uses local memory bandwidth when that event is supported by the platform.

v3: seal system mappings

Those mappings are readonly or executable only, sealing can protect them from ever changing or unmapped during the life time of the process. For complete descriptions of memory sealing, please see mseal.rst.

v8: Correct perf sampling with Guest VMs

v2: x86: kvm: add back X86_LOCAL_APIC dependency

Enabling KVM now causes a build failure on x86-32 if X86_LOCAL_APIC is disabled.

v2: mac802154: check local interfaces before deleting sdata list

To avoid this issue, add a check for local->interfaces before deleting sdata list.

v2: Prefer sysfs/JSON events also when no PMU is provided

The patch doing this work was reverted in a v6.10 release candidate as, even though the patch was posted for weeks and had been on linux-next for weeks without issue, Linus was in the habit of using explicit legacy events with unsupported precision options on his Neoverse-N1.

v1: Scheduler time slice extension

This patch set implements the above mentioned 50us extension time as posted by Peter. But instead of using restartable sequences as API to set the flag to request the extension, this patch proposes a new API with use of a per thread shared structure implementation described below.

v6: Add SEV firmware hotloading

The SEV-SNP API specifies a command for hotloading the SEV firmware. when no SEV or SEV-ES guests are running. The firmware hotloading support is dependent on the firmware_upload API for better ease-of-use, and to not necessarily require SEV firmware hotloading support when building the ccp driver.

GIT PULL: KVM: x86: MMU changes for 6.13

Aside from the A/D overhaul that you’ve already seen, the two highlights are support for recovering TDP MMU huge pages in-place, and removal of KVM’s MMU shrinker (which IMO is long overdue).

GIT PULL: KVM: x86: Misc changes for 6.13

GIT PULL: KVM: Generic changes for 6.13

GIT PULL: KVM: x86 changes for 6.13

AFAIK, there are no conflicts or dependencies with other architectures or trees.

v1: x86/hyperv: Set X86_FEATURE_TSC_RELIABLE unconditionally

Enable X86_FEATURE_TSC_RELIABLE by default as X86_FEATURE_TSC_RELIABLE is independent from invariant TSC and should have never been gated by the HV_ACCESS_TSC_INVARIANT privilege.

v1: kthread: Introduce preferred affinity v5

Affining kthreads follow either of 4 existing different patterns. This is an infrastructure proposal to handle this (after cleanups from 01 to 10).

v4: drm-dp: Add dp module in hibmc driver

Realizing the basic display function of DP cable for DP connector displaying. Add DP module in hibmc drm driver, which is for Hisilicon Hibmc SoC which used for Out-of-band management. Blow is the general hardware connection, both the Hibmc and the host CPU are on the same mother board.

v1: 6.11: 6.11.8-rc1 review

This is the start of the stable review cycle for the 6.11.8 release. There are 184 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.

v1: 6.6: 6.6.61-rc1 review

This is the start of the stable review cycle for the 6.6.61 release. There are 119 patches in this series, all will be posted as a response to this one.

v1: 6.1: 6.1.117-rc1 review

There are 98 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.

v2: TDX MMU Part 2

Here is v2 of the TDX “MMU part 2” series. As discussed earlier, non-nit feedbacks from v1[0] have been applied.

进程调度

v2: sched: add READ_ONCE to task_on_rq_queued

Make all of these accesses pair together by adding READ_ONCE in the task_on_rq_queued.

v1: sched: hoist ASSERT_EXCLUSIVE_WRITER(p->on_rq) above WRITE_ONCE

In {activate|deactivate}_task(), hoist ASSERT_EXCLUSIVE_WRITER() to be above WRITE_ONCE(p->on_rq), which matches the ordering listed in the KCSAN documentation, kcsan-checks.h code comments, and the usage pattern we already have in __block_task().

v1: sched/rt: add lockdep annotations for rq_{off/on}line_rt

Remove code comment assumptions in favor of lockdep assertions.

v2: sched/smt: Call sched_core_cpu_deactivate() after error is handled

In sched_cpu_deactivate(), the error path restores most of the initial state before returning, but, if CONFIG_SCHED_SMT is defined, it does not undo the previous call to sched_core_cpu_deactivate().

v1: sched/deadline: Do not start hrtick if its disabled for DL

Fix an issue where high-resolution timers causes aggressive preemptions, leading to increased idle times in CFS tasks (which are inside the DL server). The problem was traced to improper usage of hrtick_enabled(), which could start high-resolution ticks unexpectedly causing repeated preemptions.

v1: freezer, sched: report the frozen task stat as ‘D’

Before the commit f5d39b020809 (“freezer,sched: Rewrite core freezer logic”), the frozen task stat was reported as ‘D’ in cgroup v1. However, after rewriting core freezer logic, the frozen task stat is reported as ‘R’. This is confusing, especially when a task with stat of ‘S’ is frozen.

v1: sched/fair: start the HRTICK even when we pick the current task again

Assume HRTICK is enabled, when a task is running in its time slice, a schedule() maybe called. For example, an IRQ(not HRTICK) may set TIF_NEED_RESCHED to this task, and then calls schedule() before it backs to user space.

[PATCH RESEND 2 0/1] sched/syscalls: Allow setting niceness using sched_param struct

This patch is a short and safe way to expand the current ABI regarding the ability to set a process priority at the moment of process creation.

v1: sched/topology: Correctly propagate NUMA flag to scheduling domains

A scheduling domain can degenerate a parent NUMA domain if the CPUs perfectly overlap, without inheriting the SD_NUMA flag.

内存管理

v1: mm: Handle compound pages better in __dump_page()

GCC 15’s -Warray-bounds reports.

v1: mm: Respect mmap hint address when aligning for THP

Commit efa7df3e3bb5 (“mm: align larger anonymous mappings on THP boundaries”) updated __get_unmapped_area() to align the start address for the VMA to a PMD boundary if CONFIG_TRANSPARENT_HUGEPAGE=y.

v8: fanotify: add pre-content hooks

Patch “mm/memory: add non-anonymous page check in the copy_present_page()” has been added to the 5.15-stable tree

This is a note to let you know that I’ve just added the patch titled The filename of the patch is:mm-memory-add-non-anonymous-page-check-in-the-copy_present_page.patch and it can be found in the queue-5.15 subdirectory.

v1: Track node vacancy to reduce worst case allocation counts

Currently, the maple tree preallocates the worst case number of nodes for given store type by taking into account the whole height of the tree.

v3: mm: Refactor KVM guest_memfd to introduce guestmem library

In preparation for adding more features to KVM’s guest_memfd, refactor and introduce a library which abtracts some of the core-mm decisions about managing folios associated with guest memory.

v16: EDAC: Scrub: introduce generic EDAC RAS control feature driver + CXL/ACPI-RAS2 drivers

Previously known as “ras: scrub: introduce subsystem + CXL/ACPI-RAS2 drivers”.

v1: mm/damon: add sample modules under samples/damon/

DAMON is a kernel framework that provides API for other subsystems or modules in the kernel space.

文件系统

v1: fs: delay sysctl_nr_open check in expand_files()

Suppose a thread sharing the table started a resize, while sysctl_nr_open got lowered to a value which prohibits it. This is still going to go through with and without the patch, which is fine.

GIT PULL: bcachefs

I may send another smaller pull request before the merge window ends, for backpointers fsck; users will be wanting that, if it’s ready in time.

git pull: ufs stuff

git pull: xattr stuff

git pull: struct fd series

Making sure that struct fd instances are destroyed in the same scope where they’d been created, getting rid of reassignments and passing them by reference, converting to CLASS(fd{,_pos,_raw}).

GIT PULL: vfs untorn writes

An atomic write is a write issed with torn-write protection. This means for a power failure or any hardware failure all or none of the data from the write will be stored, never a mix of old and new data.

GIT PULL: vfs ecryptfs

The folio project is about to remove page->index. This pull request contains the work required for ecryptfs.

GIT PULL: vfs tmpfs

This adds case-insensitive support for tmpfs.

v1: switch io_msg_ring() to CLASS(fd)

Trivial conversion, on top of for-6.13/io_uring. No point backmerging and doing that in #work.fd, seeing that it's independent from anything in there...

v9: Read/Write with meta/integrity

This adds a new io_uring interface to pass additional attributes with read/write. It can be done using two ways.

v1: ovl: pass an explicit reference of creators creds to callers

ovl_setup_cred_for_create() decrements one refcount of new creds and ovl_revert_creds() in callers decrements the last refcount.

v1: fs/proc/task_mmu: prevent integer overflow in pagemap_scan_get_args()

The “arg->vec_len” variable is a u64 that comes from the user at the start of the function. The “arg->vec_len * sizeof(struct page_region))” multiplication can lead to integer wrapping. Use size_mul() to avoid that.

v1: fuse: check attributes staleness on fuse_iget()

Function fuse_direntplus_link() might call fuse_iget() to initialize a new fuse_inode and change its attributes.

v1: ocfs2: uncache inode which has failed entering the group

Syzbot has reported the following BUG:

v2: pidfs: implement file handle support

Since the introduction of pidfs, we have had 64-bit process identifiers that will not be reused for the entire uptime of the system. This greatly facilitates process tracking in userspace.

v1: fs: reduce pointer chasing in is_mgtime() test

Add a new IOP_MGTIME flag, and have inode_init_always() set that flag when the fstype flag is set. Then, make is_mgtime test for IOP_MGTIME instead.

v1: fs/overlayfs/namei.c: get rid of include ../internal.h

Added for the sake of vfs_path_lookup(), which is in linux/namei.h these days.

v1: dquot.c: get rid of include ../internal.h

Ugh, indeed - and not needed nearly a decade.  It had been added for the sake of inode_sb_list_lock and that spinlock had become a per-superblock (->s_inode_list_lock) in March 2015...

v1: nfsd: get rid of include ../internal.h

added back in 2015 for the sake of vfs_clone_file_range(), which is in linux/fs.h these days

v1: samples: add a mountinfo program to demonstrate statmount()/listmount()

Add a new “mountinfo” sample userland program that demonstrates how to use statmount() and listmount() to get at the same info that /proc/pid/mountinfo provides.

v1: fuse: dax: No-op writepages callback

When using FUSE DAX with virtiofs, cache coherency is managed by the host. Disk persistence is handled via fsync() and friends, which are passed directly via the FUSE layer to the host.

v1: statmount: add flag to retrieve unescaped options

Add a new flag, STATMOUNT_OPT_ARRAY, which instead returns the raw option values separated with ‘\0’ charaters.

网络设备

This small series add the initial support for the Airoha AN8855 Switch.

v2: net-next: net: sysfs: also pass network device driver to uevent

This commit also passes the network device driver as a shell variable to uevent.

v3: net-next: af_unix: pass pidfd flags via SCM_PIDFD cmsg

This patch implements SCM_PIDFD cmsg in AF_UNIX socket, which can be used to send flags to SO_PASSPIDFD-enabled recipient.

v1: net-next: net: fsl_pq_mdio: use devm

Various devm conversions to simplify probe and remove the remove function.

v1: Enable TPH support in BNXT driver

This patchset enables TPH in the Broadcom bnxt driver. Through the IRQ affinity notifier, steering tags (ST) are updated when the driver’s IRQ affinity changes.

v5: iwl-next: i40e: add ability to reset VF for Tx and Rx MDD events

Implement “mdd-auto-reset-vf” priv-flag to handle Tx and Rx MDD events for VFs. This flag is also used in other network adapters like ICE.

v2: net-next: ethtool: generate uapi header from the spec

We keep expanding ethtool netlink api surface and this leads to constantly playing catchup on the ynl spec side.

v1: net-next: net: uevent: also pass network device driver

Currently, for uevent, the interface name and index are passed via shell variables.

v1: net-next: net/smc: Run patches also by RDMA ML

Commits for the SMC protocol usually get carried through the netdev mailing list.

v1: net: stmmac: dwmac-tegra: Read iommu stream id from device tree

This patch enables the other mgbe controllers by reading the SID from the iommus property in the device tree using the existing tegra_dev_iommu_get_stream_id() function in linux/iommu.h.

v2: net-next: bnxt_en: Add context memory dump to coredump

The driver currently supports Live FW dump and crashed FW dump. On the newer chips, the driver allocates host backing store context memory for the chip and FW to store various states.

v2: net: Updating and correcting switch hardware versions and reported speeds

This patch set mainly involves updating and correcting switch hardware versions and reported speeds.

v1: sunrpc: clear XPRT_SOCK_UPD_TIMEOUT when reset transport

Since transport->sock has been set to NULL during reset transport, XPRT_SOCK_UPD_TIMEOUT also needs to be cleared.

v1: pull request (net-next): ipsec-next 2024-11-15

1) Add support for RFC 9611 per cpu xfrm state handling. 2) Add inbound and outbound xfrm state caches to speed upstate lookups. 3) Convert xfrm to dscp_t. From Guillaume Nault. 4) Fix error handling in build_aevent.From Everest K.C. 5) Replace strncpy with strscpy_pad in copy_to_user_auth.From Daniel Yang. 6) Fix an uninitialized symbol during acquire state insertion.

v4: net-next: Add more feautues for ENETC v4 - round 1

Compared to ENETC v1 (LS1028A), ENETC v4 (i.MX95) adds more features, and some features are configured completely differently from v1.

v2: PCI: PCI: Add ACS quirk for Wangxun FF5XXX NICS

Add ACS quirk for FF5xxx NICs in pci_quirk_wangxun_nic_acs() so the functions can be in independent IOMMU groups.

v1: iwl-net: idpf: add read memory barrier when checking descriptor done bit

Add read memory barrier to ensure the order of operations when accessing control queue descriptors. Specifically, we want to avoid cases where loads can be reordered.

v4: ethtool-next: rxclass: Make output for RSS context action explicit

Currently ethtool -n prints out misleading output if the action for an ntuple rule is to redirect to an RSS context.

安全增强

v1: lib: stackinit: Hide never-taken branch from compiler

The never-taken branch leads to an invalid bounds condition, which is by design. To avoid the unwanted warning from the compiler, hide the variable from the optimizer.

v1: smb: client: memcpy() with surrounding object base address

Like commit f1f047bd7ce0 (“smb: client: Fix -Wstringop-overflow issues”), adjust the memcpy() destination address to be based off the surrounding object rather than based off the 4-byte “Protocol” member.

v1: Input: ads7846 - Expand xfer array to match usage

Commit 781a07da9bb9 (“Input: ads7846 - add dummy command register clearing cycle”) added commands to struct ser_req::xfer without expanding it to hold them. Expand the array to the correct size.

v1: linux-next: lib/string_choices: Add str_locked_unlocked()/str_unlocked_locked() helper

Add str_locked_unlocked()/str_unlocked_locked() helper to return “locked” or “unlocked” string literal

异步 IO

v3: regions, param pre-mapping and reg waits extension

A bit late but first we need a better and more generic API for ring/memory/region registration (see Patch 4), and it changes the API extending registered waits to be a generic parameter passing mechanism.

v1: btrfs: add io_uring interface for encoded writes

Add an io_uring interface for encoded writes, with the same parameters as the BTRFS_IOC_ENCODED_WRITE ioctl.

v1: Add BPF for io_uring

WARNING: it’s an early prototype and could likely be broken and unsafe to run.

v1: request parameter set api and wait termination tuning

A crude prototype for probing opinions on the API. Not suitable for upstream in the current form. Not properly tested either.

Rust For Linux

v1: rust: allow clippy::needless_lifetimes

In beta Clippy (i.e. Rust 1.83.0), the needless_lifetimes lint has been extended [1] to suggest eliding impl lifetimes, e.g.

v1: rust: add safety comment in rust_fmt_argument

The function rust_fmt_argument derefernces a c_void pointer, and thus it needs an unsafe block. The safety comment for that block was missing.

v5: rust: add improved version of ForeignOwnable::borrow_mut

This is a re-submission of Alice’s patch[0]. The leading commits are intended to improve the consistency and ergonomics of ForeignOwnable, and to split out the code movement originally included in the patch.

v1: lib: Rust implementation of SPDM

Security Protocols and Data Models (SPDM) [1] is used for authentication, attestation and key exchange. SPDM is generally used over a range of transports, such as PCIe, MCTP/SMBus/I3C, ATA, SCSI, NVMe or TCP.

v6: rust: Add IO polling

Add a helper function to poll periodically until a condition is met or a timeout is reached. By using the function, the 7th patch fixes QT2025 PHY driver to sleep until the hardware becomes ready.

v4: rust: bindings: Auto-generate inline static functions

This series adds support for bindgen generating wrappers for inline statics and then converts the existing helper functions to this new method.

v2: rust: platform: add Io support

Add support for iomem regions by providing a struct IoMem abstraction for the platform bus. This will request a memory region and remap it into a kernel virtual address using ioremap().

v3: kbuild: rust: add PROCMACROLDFLAGS

These are flags to be passed when linking proc macros for the Rust toolchain. If unset, it defaults to $(KBUILD_HOSTLDFLAGS).

v2: kbuild: support building external modules in a separate build directory

There has been a long-standing request to support building external modules in a separate build directory.

v3: rust: Add pr_*_once macros

Add Rust version of pr_[emerg|alert|crit|err|warn|notic|info]_once functions, which print a message only once.

BPF

v6: bpf-next: bpf: add cpu cycles kfuncss

This patchset adds 2 kfuncs to provide a way to precisely measure the time spent running some code. The first patch provides a way to get cpu cycles counter which is used to feed CLOCK_MONOTONIC_RAW.

v3: dwarves: Check DW_OP_[GNU_]entry_value for possible parameter matching

Currently, pahole relies on DWARF to find whether a particular func has its parameter mismatched with standard or optimized away.

v1: libbpf: Change hash_combine parameters from long to __u32

The hash_combine() could be trapped when compiled with sanitizer like “zig cc”. This patch changes parameters to __u32 to fix it.

v1: bpf-next: bpf: Do not alloc arena on unsupported arches

Do not allocate BPF arena on arches that do not support it, instead return EOPNOTSUPP. This is useful to prevent bugs such as soft lockups while trying to free the arena which we have witnessed on ppc64le [1].

v1: bpf-next: Add fd_array_cnt attribute for BPF_PROG_LOAD

Add a new attribute to the bpf(BPF_PROG_LOAD) system call. If this new attribute is non-zero, then the fd_array is considered to be a continuous array of the fd_array_cnt length and to contain only proper map file descriptors, or btf file descriptors, or zeroes.

v1: bpf-next: bpf: Add multi-prog support for XDP BPF programs

Currently, network devices only support a single XDP program. However, there are use cases for multiple XDP programs per device.

v1: bpf: xsk: Free skb when TX metadata options are invalid

Fix this by freeing the skb in the error path if we are currently dealing with the first frag, i.e., an skb allocated in this iteration of xsk_build_skb.

v1: bpf/umd possible deadcode

As far as I can tell the UMD isn’t needed by bpf itself any more; so I’ve got one patch that just removes that select.

v5: net-next: xdp: a fistful of generic changes (+libeth_xdp)

They are implemented mostly as inlines with inline callback arguments. They will be then uninlined in the drivers with sane function sizes, but without any indirect calls.

v2: ARC: bpf: Correct conditional check in ‘check_jmp_32’

The original code checks ‘if (ARC_CC_AL)’, which is always true since ARC_CC_AL is a constant. This makes the check redundant and likely obscures the intention of verifying whether the jump is conditional.

v3: net-next: net: Improve netns handling in RTNL and ip_tunnel

This patch series includes some netns-related improvements and fixes for RTNL and ip_tunnel, to make link creation more intuitive.

v2: perf bpf-filter: Return -ENOMEM directly when pfi allocation fails

Directly return -ENOMEM when pfi allocation fails, instead of performing other operations on pfi.

v12: bpf-next: bpf: Support private stack for bpf progs

The main motivation for private stack comes from nested scheduler in sched-ext from Tejun.

v4: bpf-next: Add kernel symbol for struct_ops trampoline

Add kernel symbol for struct_ops trampoline.

v1: bpftool: Cast variable var to long long

When the SIGNED condition is met, the variable var should be cast to long long instead of unsigned long long.

v1: perf bpf-filter: Return -1 directly when pfi allocation fails

Directly return -1 when pfi allocation fails, instead of performing other operations on pfi.

v4: net-next: virtio-net: support AF_XDP zero copy (tx)

v3: bpf-next: libbpf: stringify error codes in log messages

These patches modify libbpf error reporting by swapping numeric codes and strerror with the standard short error name, for example: “failed to attach: -22” becomes “failed to attach: -EINVAL”.

v1: nf-next: netfilter: bpf: Pass string literal as format argument of request_module()

Both gcc-14 and clang-18 report that passing a non-string literal as the format argument of request_module() is potentially insecure.

v1: bpftool: Set srctree correctly when not building out of source tree

This allows building bpftool directly via “make -C tools/bpf/bpftool”.

周边技术动态

Qemu

v5: target/riscv: Add support for Smdbltrp and Ssdbltrp extensions

This series adds support for Ssdbltrp and Smdbltrp ratified ISA extensions [1]. It is based on the Smrnmi series [6].

v2: hw/riscv/riscv-iommu.c: Correct the validness check of iova

v1: for-10.0: target/riscv: add ‘sha’ support

‘sha’ is defined in RVA22 as “augmented hypervisor extension” and consists of a set of named features that must be enabled.

v2: target/riscv: Add Tenstorrent Ascalon CPU

Add a CPU entry for the Tenstorrent Ascalon CPU, a series of 2 wide to 8 wide RV64 cores. More details can be found at https://tenstorrent.com/ip/tt-ascalon

v6: Support RISC-V CSR read/write in Qtest environment

These patches add functionality for unit testing RISC-V-specific registers. The first patch adds a Qtest backend, and the second implements a simple test.

v5: target/riscv: rvv: reduce the overhead for simple RISC-V vector.

The version 5 of the patch set splits the patches into independent submissions so to simplify the review process.

U-Boot

v3: riscv: spacemit: add support for bananapi-f3

This patch introduces fundamental support for the Banana Pi F3 board, encompassing UART, CPU, and PLIC support. This ensures that U-Boot can operate in serial console mode.

v1: Add support for LicheeRV Nano

This patch series adds support in U-Boot for the Sophgo SG2002 RISCV SoC and one board using this SoC, the LicheeRV Nano.

v1: spl: increase SPL_SYS_MALLOC_SIZE when using BIOSEMU on RISC-V

If BIOSEMU is compiled for RISC-V (SiFive Unmatched board) and the function dm_pci_run_vga_bios() is executed, U-Boot stops with error message saying that the SPL malloc pool is too small.

v4: Support OF_UPSTREAM for StarFive JH7110

This patchset add OF_UPSTREAM support for StarFive JH7110 based boards. All the JH7110 based boards can use the DT from upstreaming linux kernel.

GIT PULL: Please pull u-boot-imx-master-20241109



Read Album:

Read Related:

Read Latest: