mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 21:07:02 +09:00
UPSTREAM: 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>
(cherry picked from commit 4035b43da6)
Signed-off-by: Will Deacon <willdeacon@google.com>
Bug: 190591509
Change-Id: I364e6438d84bda1baac897c4d62db5ed76432e91
This commit is contained in:
committed by
Will Deacon
parent
d8947c82f1
commit
a642b62b85
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user