bus/vmbus: fix check for mmap failure
The code was testing the result of mmap incorrectly. I.e the test that a local pointer is not MAP_FAILED would always succeed and therefore hid any potential problems. Fixes: 831dba47bd36 ("bus/vmbus: add Hyper-V virtual bus support") Cc: stable@dpdk.org Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
This commit is contained in:
parent
4a9efcddad
commit
3f9277031a
@ -202,6 +202,7 @@ static int vmbus_uio_map_subchan(const struct rte_vmbus_device *dev,
|
||||
char ring_path[PATH_MAX];
|
||||
size_t file_size;
|
||||
struct stat sb;
|
||||
void *mapaddr;
|
||||
int fd;
|
||||
|
||||
snprintf(ring_path, sizeof(ring_path),
|
||||
@ -232,14 +233,16 @@ static int vmbus_uio_map_subchan(const struct rte_vmbus_device *dev,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
*ring_size = file_size / 2;
|
||||
*ring_buf = vmbus_map_resource(vmbus_map_addr, fd,
|
||||
0, sb.st_size, 0);
|
||||
mapaddr = vmbus_map_resource(vmbus_map_addr, fd,
|
||||
0, file_size, 0);
|
||||
close(fd);
|
||||
|
||||
if (ring_buf == MAP_FAILED)
|
||||
if (mapaddr == MAP_FAILED)
|
||||
return -EIO;
|
||||
|
||||
*ring_size = file_size / 2;
|
||||
*ring_buf = mapaddr;
|
||||
|
||||
vmbus_map_addr = RTE_PTR_ADD(ring_buf, file_size);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user