mirror of
https://github.com/opnsense/src.git
synced 2026-06-08 08:12:27 -04:00
hyperv/vmbus: Check hyperv_dmamem_alloc return value
Though it is highly unlikely this function would fail w/ BUS_DMA_WAITOK, we had better to check its return value; better safe then sorry here. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D6518
This commit is contained in:
parent
8dd8cd00e2
commit
01ac237df2
1 changed files with 18 additions and 6 deletions
|
|
@ -321,24 +321,34 @@ vmbus_synic_teardown(void *arg)
|
|||
wrmsr(HV_X64_MSR_SIEFP, siefp.as_uint64_t);
|
||||
}
|
||||
|
||||
static void
|
||||
static int
|
||||
vmbus_dma_alloc(struct vmbus_softc *sc)
|
||||
{
|
||||
int cpu;
|
||||
|
||||
CPU_FOREACH(cpu) {
|
||||
void *ptr;
|
||||
|
||||
/*
|
||||
* Per-cpu messages and event flags.
|
||||
*/
|
||||
VMBUS_PCPU_GET(sc, message, cpu) = hyperv_dmamem_alloc(
|
||||
bus_get_dma_tag(sc->vmbus_dev), PAGE_SIZE, 0, PAGE_SIZE,
|
||||
ptr = hyperv_dmamem_alloc(bus_get_dma_tag(sc->vmbus_dev),
|
||||
PAGE_SIZE, 0, PAGE_SIZE,
|
||||
VMBUS_PCPU_PTR(sc, message_dma, cpu),
|
||||
BUS_DMA_WAITOK | BUS_DMA_ZERO);
|
||||
VMBUS_PCPU_GET(sc, event_flag, cpu) = hyperv_dmamem_alloc(
|
||||
bus_get_dma_tag(sc->vmbus_dev), PAGE_SIZE, 0, PAGE_SIZE,
|
||||
if (ptr == NULL)
|
||||
return ENOMEM;
|
||||
VMBUS_PCPU_GET(sc, message, cpu) = ptr;
|
||||
|
||||
ptr = hyperv_dmamem_alloc(bus_get_dma_tag(sc->vmbus_dev),
|
||||
PAGE_SIZE, 0, PAGE_SIZE,
|
||||
VMBUS_PCPU_PTR(sc, event_flag_dma, cpu),
|
||||
BUS_DMA_WAITOK | BUS_DMA_ZERO);
|
||||
if (ptr == NULL)
|
||||
return ENOMEM;
|
||||
VMBUS_PCPU_GET(sc, event_flag, cpu) = ptr;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -622,7 +632,9 @@ vmbus_bus_init(void)
|
|||
/*
|
||||
* Allocate DMA stuffs.
|
||||
*/
|
||||
vmbus_dma_alloc(sc);
|
||||
ret = vmbus_dma_alloc(sc);
|
||||
if (ret != 0)
|
||||
goto cleanup;
|
||||
|
||||
if (bootverbose)
|
||||
printf("VMBUS: Calling smp_rendezvous, smp_started = %d\n",
|
||||
|
|
|
|||
Loading…
Reference in a new issue