Source-Changes-D archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/sys/arch/arm/cortex
On 24/05/2026 23:00, Jared D. McNeill wrote:
> Module Name: src
> Committed By: jmcneill
> Date: Sun May 24 22:00:52 UTC 2026
> Modified Files:
> src/sys/arch/arm/cortex: gicv3_its.c gicv3_its.h
> Log Message:
> gicv3_its: Fix ITT sizing.
> The ITT being allocated did not match the size specified on the MAPD
> command. This could cause hardware to read past the end of the ITT.
> The old code used a fixed offset mapping scheme to assign eventIDs (the
> eventID was derived from the LPI INTID). This scheme is wasteful and
> doesn't scale well as the ITT is essentially an array of ITEs starting
> with eventID 0. This change introduces per-deviceID namespaces for
> eventIDs and allocates them starting with 0. A fixed number of eventIDs is
> made available for each deviceID (MAXCPUS * 2). On a platform with an ITE
> size of 8 bytes, this allows the ITT to fit in a single page.
> The ITT is sized larger than the initial request as multiple requestors
> could potentially share the same deviceID (this is the case for legacy PCI
> devices behind a PCIe-to-PCI bridge).
> The size parameter of the MAPD command now matches the allocated ITT.
> Tested on QEMU KVM Virtual Machine and Ampere eMAG (Lenovo HR330A).
... and lx2k.
Thanks!
Home |
Main Index |
Thread Index |
Old Index