From ee3bce3554798f9d5b10c87e8e047dce0fe05111 Mon Sep 17 00:00:00 2001 From: Robin Murphy Date: Tue, 12 Jul 2022 08:46:45 +0200 Subject: [PATCH] UPSTREAM: swiotlb: fail map correctly with failed io_tlb_default_mem In the failure case of trying to use a buffer which we'd previously failed to allocate, the "!mem" condition is no longer sufficient since io_tlb_default_mem became static and assigned by default. Update the condition to work as intended per the rest of that conversion. Bug: 254441685 Fixes: 463e862ac63e ("swiotlb: Convert io_default_tlb_mem to static allocation") Signed-off-by: Robin Murphy Signed-off-by: Christoph Hellwig (cherry picked from commit c51ba246cb172c9e947dc6fb8868a1eaf0b2a913) Signed-off-by: Lee Jones Change-Id: I2d422a479c4307ec01ab5d5850ce0154ab46fd73 --- kernel/dma/swiotlb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c index e95b0986b01d..5d8dabe48096 100644 --- a/kernel/dma/swiotlb.c +++ b/kernel/dma/swiotlb.c @@ -552,7 +552,7 @@ phys_addr_t swiotlb_tbl_map_single(struct device *dev, phys_addr_t orig_addr, int index; phys_addr_t tlb_addr; - if (!mem) + if (!mem || !mem->nslabs) panic("Can not allocate SWIOTLB buffer earlier and can't now provide you with the DMA bounce buffer"); if (mem_encrypt_active())