..snip..
>  int __init swiotlb_init_with_tbl(char *tlb, unsigned long nslabs, int 
> verbose)
>  {
..snip..
>       /*
>        * Allocate and initialize the free list array.  This array is used
>        * to find contiguous free memory regions of size up to IO_TLB_SEGSIZE
> -      * between io_tlb_start and io_tlb_end.
> +      * between mem->start and mem->end.
>        */
> -     alloc_size = PAGE_ALIGN(io_tlb_nslabs * sizeof(int));
> -     io_tlb_list = memblock_alloc(alloc_size, PAGE_SIZE);
> -     if (!io_tlb_list)
> +     alloc_size = PAGE_ALIGN(mem->nslabs * sizeof(int));
> +     mem->list = memblock_alloc(alloc_size, PAGE_SIZE);
> +     if (!mem->list)
>               panic("%s: Failed to allocate %zu bytes align=0x%lx\n",
>                     __func__, alloc_size, PAGE_SIZE);
>  
> -     alloc_size = PAGE_ALIGN(io_tlb_nslabs * sizeof(phys_addr_t));
> -     io_tlb_orig_addr = memblock_alloc(alloc_size, PAGE_SIZE);
> -     if (!io_tlb_orig_addr)
> +     alloc_size = PAGE_ALIGN(mem->nslabs * sizeof(phys_addr_t));
> +     mem->orig_addr = memblock_alloc(alloc_size, PAGE_SIZE);
> +     if (!mem->orig_addr)
>               panic("%s: Failed to allocate %zu bytes align=0x%lx\n",
>                     __func__, alloc_size, PAGE_SIZE);
>  
> -     alloc_size = PAGE_ALIGN(io_tlb_nslabs * sizeof(size_t));
> -     io_tlb_alloc_size = memblock_alloc(alloc_size, PAGE_SIZE);
> -     if (!io_tlb_alloc_size)
> -             panic("%s: Failed to allocate %zu bytes align=0x%lx\n",
> -                   __func__, alloc_size, PAGE_SIZE);
Shouldn't this be converted to:
        mem->alloc_size = memblock_alloc(alloc_size, PAGE_SIZE);
        if (...)

Seems that it got lost in the search and replace?
> -
> -     for (i = 0; i < io_tlb_nslabs; i++) {
> -             io_tlb_list[i] = IO_TLB_SEGSIZE - io_tlb_offset(i);
> -             io_tlb_orig_addr[i] = INVALID_PHYS_ADDR;
> -             io_tlb_alloc_size[i] = 0;
> +     for (i = 0; i < mem->nslabs; i++) {
> +             mem->list[i] = IO_TLB_SEGSIZE - io_tlb_offset(i);
> +             mem->orig_addr[i] = INVALID_PHYS_ADDR;
> +             mem->alloc_size[i] = 0;
>       }
> -     io_tlb_index = 0;
>       no_iotlb_memory = false;
>  
>       if (verbose)
>               swiotlb_print_info();
>  
> -     swiotlb_set_max_segment(io_tlb_nslabs << IO_TLB_SHIFT);
> +     swiotlb_set_max_segment(mem->nslabs << IO_TLB_SHIFT);
>       return 0;
>  }
>  

..snip..
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to