mirror of
https://github.com/torvalds/linux.git
synced 2024-11-27 14:41:39 +00:00
swiotlb: lift the double initialization protection from xen-swiotlb
Lift the double initialization protection from xen-swiotlb to the core code to avoid exposing too many swiotlb internals. Also upgrade the check to a warning as it should not happen. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
This commit is contained in:
parent
cbce99527c
commit
5d0538b2b8
@ -172,12 +172,6 @@ retry:
|
||||
bytes = nslabs << IO_TLB_SHIFT;
|
||||
order = get_order(bytes);
|
||||
|
||||
/*
|
||||
* IO TLB memory already allocated. Just use it.
|
||||
*/
|
||||
if (io_tlb_start != 0)
|
||||
goto end;
|
||||
|
||||
/*
|
||||
* Get IO TLB memory from any location.
|
||||
*/
|
||||
@ -232,7 +226,6 @@ retry:
|
||||
} else
|
||||
rc = swiotlb_late_init_with_tbl(start, nslabs);
|
||||
|
||||
end:
|
||||
if (!rc)
|
||||
swiotlb_set_max_segment(PAGE_SIZE);
|
||||
|
||||
|
@ -229,6 +229,10 @@ int __init swiotlb_init_with_tbl(char *tlb, unsigned long nslabs, int verbose)
|
||||
unsigned long i, bytes;
|
||||
size_t alloc_size;
|
||||
|
||||
/* protect against double initialization */
|
||||
if (WARN_ON_ONCE(io_tlb_start))
|
||||
return -ENOMEM;
|
||||
|
||||
bytes = nslabs << IO_TLB_SHIFT;
|
||||
|
||||
io_tlb_nslabs = nslabs;
|
||||
@ -367,6 +371,10 @@ swiotlb_late_init_with_tbl(char *tlb, unsigned long nslabs)
|
||||
{
|
||||
unsigned long i, bytes;
|
||||
|
||||
/* protect against double initialization */
|
||||
if (WARN_ON_ONCE(io_tlb_start))
|
||||
return -ENOMEM;
|
||||
|
||||
bytes = nslabs << IO_TLB_SHIFT;
|
||||
|
||||
io_tlb_nslabs = nslabs;
|
||||
|
Loading…
Reference in New Issue
Block a user