powerpc fixes for 7.0 #4

- fix iommu incorrectly bypassing DMA APIs
 
 Thanks to: Dan Horak, Gaurav Batra, Ritesh Harjani (IBM)
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEqX2DNAOgU8sBX3pRpnEsdPSHZJQFAmnQcugACgkQpnEsdPSH
 ZJQbEw//UVCVihpWA+GT+rGEDQVFkreQlciL3RQmj1qSM7YoNwY8+J6fjySpR/Nu
 guinqRB20vOyn/LMTmDZpfm4rLBb7tT6I5NKjc7pQ432TcxKUZxpzzeBhaisgPYx
 xHkShcy3SXkZ/ZXcudrYtKMCf2MH9wvjUa2vKaopVHmvmxZVttbX64ErO+1GnFvi
 R+FNpxqhCI16VKZp1LsqvEc1jWLPkQV8nWvLbZW1InZOTKkBkjPiJ2Ha5erdRh6m
 ooV9CQDYvcyngMI3mBr65nI558cworCtxC56Q2b1WcaVxYsomgf4G/WTinh2MDq8
 y1OEn3WPBRgvYpKE81RGf3rMff8srSrabZQhZSalklAnwK4W7LlkOb19DIMFm+lC
 dAMH2y8Hx7pvRsO2pO9tpcr5AOhQ9IQjM2Hoj1MzxBY0eA1ZS9aVFOKxDfL/+0DP
 jjj8ypPBrwMsVm6G2QJR0IwgljuuumH3QcGLcIf8bKBnqPR9+n4s8RM0I0j73dfX
 WALCxi5qIHL55kDy/mQ1REWbUZlj2RZC5f7zovf+YNsD+VZ1mWZ6hEr63DJbWU4s
 SjyKjO2YGgmacfK1fezh6dh4meM3HER8n70Dzvm682u4WvjMvCgBei/xSfhC7PZy
 xP9AIJ6PRFhFP8nKL5BQdNZrKZP+9k3iyAX18JU6AeWgfswAD6s=
 =Mimt
 -----END PGP SIGNATURE-----

Merge tag 'powerpc-7.0-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux

Pull powerpc fix from Madhavan Srinivasan:

 - fix iommu incorrectly bypassing DMA APIs

Thanks to Dan Horak, Gaurav Batra, and Ritesh Harjani (IBM).

* tag 'powerpc-7.0-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
  powerpc/powernv/iommu: iommu incorrectly bypass DMA APIs
This commit is contained in:
Linus Torvalds 2026-04-03 20:08:25 -07:00
commit 7ca6d1cfec

View File

@ -67,7 +67,7 @@ bool arch_dma_unmap_sg_direct(struct device *dev, struct scatterlist *sg,
}
bool arch_dma_alloc_direct(struct device *dev)
{
if (dev->dma_ops_bypass)
if (dev->dma_ops_bypass && dev->bus_dma_limit)
return true;
return false;
@ -75,7 +75,7 @@ bool arch_dma_alloc_direct(struct device *dev)
bool arch_dma_free_direct(struct device *dev, dma_addr_t dma_handle)
{
if (!dev->dma_ops_bypass)
if (!dev->dma_ops_bypass || !dev->bus_dma_limit)
return false;
return is_direct_handle(dev, dma_handle);