Jason Gunthorpe 34e2dccbb3 iommu: Flow ERR_PTR out from __iommu_domain_alloc()
Most of the calling code now has error handling that can carry an error
code further up the call chain. Keep the exported interface
iommu_domain_alloc() returning NULL and reflow the internal code to use
ERR_PTR not NULL for domain allocation failure.

Optionally allow drivers to return ERR_PTR from any of the alloc ops. Many
of the new ops (user, sva, etc) already return ERR_PTR, so having two
rules is confusing and hard on drivers. This fixes a bug in DART that was
returning ERR_PTR.

Fixes: 482feb5c6492 ("iommu/dart: Call apple_dart_finalize_domain() as part of alloc_paging()")
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://lore.kernel.org/linux-iommu/b85e0715-3224-4f45-ad6b-ebb9f08c015d@moroto.mountain/
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Jerry Snitselaar <jsnitsel@redhat.com>
Link: https://lore.kernel.org/r/0-v2-55ae413017b8+97-domain_alloc_err_ptr_jgg@nvidia.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
2023-11-27 10:33:25 +01:00
..
2023-11-02 14:05:18 -10:00
2023-11-07 16:56:10 -08:00
2023-11-01 14:46:51 -10:00
2023-11-01 14:46:51 -10:00
2023-11-07 20:45:12 +01:00
2023-11-03 18:56:51 -10:00
2023-10-30 19:09:55 -10:00
2023-11-09 13:47:52 -08:00
2023-11-23 17:31:53 -08:00
2023-10-31 18:32:51 -10:00
2023-11-03 15:44:25 -10:00
2023-10-31 17:44:17 -10:00
2023-11-04 16:25:36 -10:00
2023-11-02 15:20:30 -10:00
2023-11-09 14:18:42 -08:00
2023-10-30 19:09:55 -10:00
2023-11-09 13:47:52 -08:00
2023-11-03 10:07:39 -10:00
2023-11-05 18:45:32 -08:00
2023-11-23 17:40:15 -08:00
2023-11-06 15:06:06 -08:00
2023-11-09 13:37:28 -08:00
2023-11-02 14:40:51 -10:00
2023-11-10 09:19:46 -08:00
2023-11-04 16:20:36 -10:00
2023-11-10 12:22:14 -08:00
2023-11-01 14:46:51 -10:00
2023-11-03 16:00:42 -10:00
2023-10-30 13:14:27 +00:00
2023-11-05 18:49:40 -08:00
2023-11-23 17:40:15 -08:00
2023-10-25 16:50:11 +02:00
2023-11-03 10:07:39 -10:00
2023-11-03 19:10:41 -10:00
2023-11-10 11:44:38 -08:00
2023-10-19 10:26:26 +03:00
2023-11-09 13:47:52 -08:00
2023-11-02 15:13:50 -10:00
2023-10-18 10:01:34 +02:00
2023-11-10 09:19:46 -08:00
2023-11-24 16:30:38 +00:00
2023-11-04 15:58:13 -10:00
2023-11-10 09:19:46 -08:00
2023-11-10 09:19:46 -08:00
2023-11-10 09:19:46 -08:00