Skip to content
  • Yinghai Lu's avatar
    x86: Don't panic if can not alloc buffer for swiotlb · ac2cbab2
    Yinghai Lu authored
    
    
    Normal boot path on system with iommu support:
    swiotlb buffer will be allocated early at first and then try to initialize
    iommu, if iommu for intel or AMD could setup properly, swiotlb buffer
    will be freed.
    
    The early allocating is with bootmem, and could panic when we try to use
    kdump with buffer above 4G only, or with memmap to limit mem under 4G.
    for example: memmap=4095M$1M to remove memory under 4G.
    
    According to Eric, add _nopanic version and no_iotlb_memory to fail
    map single later if swiotlb is still needed.
    
    -v2: don't pass nopanic, and use -ENOMEM return value according to Eric.
         panic early instead of using swiotlb_full to panic...according to Eric/Konrad.
    -v3: make swiotlb_init to be notpanic, but will affect:
         arm64, ia64, powerpc, tile, unicore32, x86.
    -v4: cleanup swiotlb_init by removing swiotlb_init_with_default_size.
    
    Suggested-by: default avatarEric W. Biederman <ebiederm@xmission.com>
    Signed-off-by: default avatarYinghai Lu <yinghai@kernel.org>
    Link: http://lkml.kernel.org/r/1359058816-7615-36-git-send-email-yinghai@kernel.org
    
    
    Reviewed-and-tested-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Cc: Joerg Roedel <joro@8bytes.org>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: Jeremy Fitzhardinge <jeremy@goop.org>
    Cc: Kyungmin Park <kyungmin.park@samsung.com>
    Cc: Marek Szyprowski <m.szyprowski@samsung.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
    Cc: linux-mips@linux-mips.org
    Cc: xen-devel@lists.xensource.com
    Cc: virtualization@lists.linux-foundation.org
    Cc: Shuah Khan <shuahkhan@gmail.com>
    Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
    ac2cbab2