#include <rte_log.h>
#include <rte_bus.h>
#include <rte_memory.h>
-#include <rte_eal_memconfig.h>
#include <rte_common.h>
#include <rte_malloc.h>
#include <rte_bus_vmbus.h>
dev->resource[idx].addr = mapaddr;
vmbus_map_addr = RTE_PTR_ADD(mapaddr, size);
- /* Record result of sucessful mapping for use by secondary */
+ /* Record result of successful mapping for use by secondary */
maps[idx].addr = mapaddr;
maps[idx].size = size;
*ring_size = file_size / 2;
*ring_buf = mapaddr;
- vmbus_map_addr = RTE_PTR_ADD(ring_buf, file_size);
+ vmbus_map_addr = RTE_PTR_ADD(mapaddr, file_size);
return 0;
}
if (mapaddr == MAP_FAILED)
VMBUS_LOG(ERR,
"mmap subchan %u in secondary failed", chan->relid);
- else
+ else {
VMBUS_LOG(ERR,
"mmap subchan %u in secondary address mismatch",
chan->relid);
+ vmbus_unmap_resource(mapaddr, 2 * ring_size);
+ }
return -1;
}