Hi, Could you please review this patch in the context of the following patch? https://patchwork.ozlabs.org/project/linux-pci/patch/20220328023009epcms2p309a5dfc2ff29d0a9945f65799963193c@epcms2p3/ Thnak you. > --------- Original Message --------- > Sender : Wangseok Lee <wangseok.lee@xxxxxxxxxxx>Foundry Design Service팀(Foundry)/삼성전자 > Date : 2022-03-31 14:34 (GMT+9) > Title : Re: [PATCH] PCI: dwc: Modify the check about MSI DMA mask 32-bit > >> --------- Original Message --------- >> Sender : Christoph Hellwig <hch@xxxxxxxxxxxxx> >> Date : 2022-03-31 00:45 (GMT+9) >> Title : Re: [PATCH] PCI: dwc: Modify the check about MSI DMA mask 32-bit >> >> On Wed, Mar 30, 2022 at 11:35:26AM +0200, Alexander Lobakin wrote: >>> I'm not super familiar with the DMA internals, so adding Chris here, >>> maybe he'd like to comment, but anyway, the lower/arch layer must >>> not give the DMA addresses wider than the number of bits passed to >>> dma_set_mask() if that call returned 0. >> >> So, the basic assumption in the kernel is that 32-bit DMA is always >> supported, and dma_set_maks for that should not fail. If the >> system (or root port, internal interconnect) supports less than that >> we'll bounce buffer. But how and why would you hand out addresses >> larger than that? It really is not valid, but I can't even see how >> it could happen. > > Hello, > thank you for your review. > > Yes, the dma address should not be used in excess of the mask value > set through dma_set_mask(). > > If I want to use 33+bit dma address on 64bit system, I have to call > dma_set_mask(33+) again after below code in dw_pcie_host_init() is > performed. > This is because dw_pcie_host_init(32) is always called in > dw_pcie_host_init() without any conditions. > Is this right? > > Also, if I assign 33+bit dma address before dw_pcie_host_init() to > use 33+bit dma address on 64bit system, dma_set_mask(32) is called > and dma_mask is changed to 32 but dma address is maintained 33+, > so error occurs. > it is not a issue with the dma_set_mask() function, but the > called condition must need to be modified. > > Thank you.