xen-swiotlb: remove xen_set_nslabs
The xen_set_nslabs function is a little weird, as it has just one caller, that caller passes a global variable as the argument, which is then overriden in the function and a derivative of it returned. Just add a cpp symbol for the default size using a readable constant and open code the remaining three lines in the caller. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
This commit is contained in:
parent
6223d1cef7
commit
4035b43da6
@ -138,16 +138,6 @@ xen_swiotlb_fixup(void *buf, size_t size, unsigned long nslabs)
|
||||
} while (i < nslabs);
|
||||
return 0;
|
||||
}
|
||||
static unsigned long xen_set_nslabs(unsigned long nr_tbl)
|
||||
{
|
||||
if (!nr_tbl) {
|
||||
xen_io_tlb_nslabs = (64 * 1024 * 1024 >> IO_TLB_SHIFT);
|
||||
xen_io_tlb_nslabs = ALIGN(xen_io_tlb_nslabs, IO_TLB_SEGSIZE);
|
||||
} else
|
||||
xen_io_tlb_nslabs = nr_tbl;
|
||||
|
||||
return xen_io_tlb_nslabs << IO_TLB_SHIFT;
|
||||
}
|
||||
|
||||
enum xen_swiotlb_err {
|
||||
XEN_SWIOTLB_UNKNOWN = 0,
|
||||
@ -170,6 +160,9 @@ static const char *xen_swiotlb_error(enum xen_swiotlb_err err)
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
#define DEFAULT_NSLABS ALIGN(SZ_64M >> IO_TLB_SHIFT, IO_TLB_SEGSIZE)
|
||||
|
||||
int __ref xen_swiotlb_init(int verbose, bool early)
|
||||
{
|
||||
unsigned long bytes, order;
|
||||
@ -179,8 +172,10 @@ int __ref xen_swiotlb_init(int verbose, bool early)
|
||||
|
||||
xen_io_tlb_nslabs = swiotlb_nr_tbl();
|
||||
retry:
|
||||
bytes = xen_set_nslabs(xen_io_tlb_nslabs);
|
||||
order = get_order(xen_io_tlb_nslabs << IO_TLB_SHIFT);
|
||||
if (!xen_io_tlb_nslabs)
|
||||
xen_io_tlb_nslabs = DEFAULT_NSLABS;
|
||||
bytes = xen_io_tlb_nslabs << IO_TLB_SHIFT;
|
||||
order = get_order(bytes);
|
||||
|
||||
/*
|
||||
* IO TLB memory already allocated. Just use it.
|
||||
|
Loading…
Reference in New Issue
Block a user