ioat: don't rely on phys_addr retrieved from spdk_malloc()
The phys_addr param in spdk_*malloc() is about to be deprecated, so use a separate spdk_vtophys() call to retrieve physical addresses. This patch also adds error checks against SPDK_VTOPHYS_ERROR. The error handling paths are already there to account for spdk_*malloc() failures themselves, so reuse them in case of vtophys failures. Change-Id: Ic1d9194a9a2052a46fc6f7990f53aa91b4a8bbc3 Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/416994 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
parent
a86029b967
commit
3aa204fb31
@ -414,11 +414,17 @@ ioat_channel_start(struct spdk_ioat_chan *ioat)
|
||||
}
|
||||
|
||||
ioat->comp_update = spdk_dma_zmalloc(sizeof(*ioat->comp_update), SPDK_IOAT_CHANCMP_ALIGN,
|
||||
&comp_update_bus_addr);
|
||||
NULL);
|
||||
if (ioat->comp_update == NULL) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
comp_update_bus_addr = spdk_vtophys((void *)ioat->comp_update, NULL);
|
||||
if (comp_update_bus_addr == SPDK_VTOPHYS_ERROR) {
|
||||
spdk_dma_free((void *)ioat->comp_update);
|
||||
return -1;
|
||||
}
|
||||
|
||||
ioat->ring_size_order = IOAT_DEFAULT_ORDER;
|
||||
|
||||
num_descriptors = 1 << ioat->ring_size_order;
|
||||
|
Loading…
Reference in New Issue
Block a user