Re: [PATCH] swiotlb: suppress warning when __GFP_NOWARN is set v2

From: Chris Wilson
Date: Tue Jan 02 2018 - 10:40:04 EST


Quoting Christian KÃnig (2018-01-02 12:13:58)
> TTM tries to allocate coherent memory in chunks of 2MB first to improve
> TLB efficiency and falls back to allocating 4K pages if that fails.
>
> Suppress the warning when the 2MB allocations fails since there is a
> valid fall back path.
>
> v2: suppress warnings from swiotlb_tbl_map_single as well
>
> Signed-off-by: Christian KÃnig <christian.koenig@xxxxxxx>
> Reported-by: Mike Galbraith <efault@xxxxxx>
> Bug: https://bugs.freedesktop.org/show_bug.cgi?id=104082
> CC: stable@xxxxxxxxxxxxxxx
> ---
> @@ -989,7 +1002,8 @@ swiotlb_map_sg_attrs(struct device *hwdev, struct scatterlist *sgl, int nelems,
> if (swiotlb_force == SWIOTLB_FORCE ||
> !dma_capable(hwdev, dev_addr, sg->length)) {
> phys_addr_t map = map_single(hwdev, sg_phys(sg),
> - sg->length, dir, attrs);
> + sg->length, dir, attrs,
> + true);

This keeps the warning for dma_map_sg(), so seems quite ineffective.

> if (map == SWIOTLB_MAP_ERROR) {
> /* Don't panic here, we expect map_sg users
> to do proper error handling. */

And counter to the suggestion here?
-Chris