| lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
|
Open Source and information security mailing list archives
| ||
|
Message-ID: <6acrh23nnjc6exrcvbrc4ce42iwlikdotr2k4drzovaw6zuzg3@yt56kjrcg7gy> Date: Wed, 3 Dec 2025 23:56:05 +0900 From: Koichiro Den <den@...inux.co.jp> To: Niklas Cassel <cassel@...nel.org> Cc: mani@...nel.org, ntb@...ts.linux.dev, linux-pci@...r.kernel.org, dmaengine@...r.kernel.org, linux-kernel@...r.kernel.org, Frank.Li@....com, kwilczynski@...nel.org, kishon@...nel.org, bhelgaas@...gle.com, corbet@....net, vkoul@...nel.org, jdmason@...zu.us, dave.jiang@...el.com, allenbh@...il.com, Basavaraj.Natikar@....com, Shyam-sundar.S-k@....com, kurt.schwemmer@...rosemi.com, logang@...tatee.com, jingoohan1@...il.com, lpieralisi@...nel.org, robh@...nel.org, jbrunet@...libre.com, fancer.lancer@...il.com, arnd@...db.de, pstanner@...hat.com, elfring@...rs.sourceforge.net, Damien Le Moal <dlemoal@...nel.org> Subject: Re: [RFC PATCH v2 19/27] PCI: dwc: ep: Cache MSI outbound iATU mapping On Wed, Dec 03, 2025 at 11:19:13AM +0100, Niklas Cassel wrote: > On Wed, Dec 03, 2025 at 05:30:52PM +0900, Koichiro Den wrote: > > On Tue, Dec 02, 2025 at 07:32:31AM +0100, Niklas Cassel wrote: > > > On Sun, Nov 30, 2025 at 01:03:57AM +0900, Koichiro Den wrote: > > > > dw_pcie_ep_raise_msi_irq() currently programs an outbound iATU window > > > > for the MSI target address on every interrupt and tears it down again > > > > via dw_pcie_ep_unmap_addr(). > > > > > > > > On systems that heavily use the AXI bridge interface (for example when > > > > the integrated eDMA engine is active), this means the outbound iATU > > > > registers are updated while traffic is in flight. The DesignWare > > > > endpoint spec warns that updating iATU registers in this situation is > > > > not supported, and the behavior is undefined. > > > > > > Please reference a specific section in the EP databook, and the specific > > > EP databook version that you are using. > > > > Ok, the section I was referring to in the commit message is: > > > > DW EPC databook 5.40a - 3.10.6.1 iATU Outbound Programming Overview > > "Caution: Dynamic iATU Programming with AXI Bridge Module You must not update > > the iATU registers while operations are in progress on the AXI bridge slave > > interface." > > Please add this text to the commit message when sending a proper patch. > > Nit: I think it is "DW EP databook" and not "DW EPC databook". Thanks for pointing it out. Noted. > > > However, if what you are suggesting is true, that would have an implication > for all PCI EPF drivers. > > E.g. the MHI EPF driver: > https://github.com/torvalds/linux/blob/v6.18/drivers/pci/endpoint/functions/pci-epf-mhi.c#L394-L395 > https://github.com/torvalds/linux/blob/v6.18/drivers/pci/endpoint/functions/pci-epf-mhi.c#L323-L324 > > uses either the eDMA (without calling pci_epc_map_addr()) or MMIO > (which does call pci_epc_map_addr(), which will update the iATU registers), > depending on the I/O size. > > And I assume that the MHI bus can have multiple outgoing reads/writes > at the same time. > > If what you are suggesting is true, AFAICT, any EPF driver that could have > multiple outgoing transactions occuring at the same time, can not be allowed > to have calls to pci_epc_map_addr(). > > Which would mean that, even if we change dw_pcie_ep_raise_msix_irq() and > dw_pcie_ep_raise_msi_irq() to not call map_addr() after > dw_pcie_ep_init_registers(), we could never have an EPF driver that mixes > MMIO and DMA. (Or even has multiple outgoing MMIO transactions, as that > requires updating iATU registers.) I understand. That's a very good point. I'm not really sure whether the issue this patch attempts to address is SoC-specific (ie. observable only on R-Car S4), but I still think it's a good idea to conform to the databook and avoid the Caution. It is also still somewhat speculative on my side, as I have not been able to verify what is happening at the hardware level. Koichiro > > > Kind regards, > Niklas
Powered by blists - more mailing lists