Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/mps/mps_user.c
Show First 20 Lines • Show All 1,430 Lines • ▼ Show 20 Lines | mps_dprint(sc, MPS_ERROR, | ||||
"Cannot allocate FW diag buffer memory\n"); | "Cannot allocate FW diag buffer memory\n"); | ||||
*return_code = MPS_FW_DIAG_ERROR_NO_BUFFER; | *return_code = MPS_FW_DIAG_ERROR_NO_BUFFER; | ||||
status = MPS_DIAG_FAILURE; | status = MPS_DIAG_FAILURE; | ||||
goto bailout; | goto bailout; | ||||
} | } | ||||
bzero(sc->fw_diag_buffer, buffer_size); | bzero(sc->fw_diag_buffer, buffer_size); | ||||
ctx = malloc(sizeof(*ctx), M_MPSUSER, M_WAITOK | M_ZERO); | ctx = malloc(sizeof(*ctx), M_MPSUSER, M_WAITOK | M_ZERO); | ||||
if (ctx == NULL) { | |||||
device_printf(sc->mps_dev, "%s: context malloc failed\n", | |||||
__func__); | |||||
*return_code = MPS_FW_DIAG_ERROR_NO_BUFFER; | |||||
status = MPS_DIAG_FAILURE; | |||||
goto bailout; | |||||
} | |||||
ctx->addr = &sc->fw_diag_busaddr; | ctx->addr = &sc->fw_diag_busaddr; | ||||
ctx->buffer_dmat = sc->fw_diag_dmat; | ctx->buffer_dmat = sc->fw_diag_dmat; | ||||
ctx->buffer_dmamap = sc->fw_diag_map; | ctx->buffer_dmamap = sc->fw_diag_map; | ||||
ctx->softc = sc; | ctx->softc = sc; | ||||
error = bus_dmamap_load(sc->fw_diag_dmat, sc->fw_diag_map, | error = bus_dmamap_load(sc->fw_diag_dmat, sc->fw_diag_map, | ||||
sc->fw_diag_buffer, buffer_size, mps_memaddr_wait_cb, | sc->fw_diag_buffer, buffer_size, mps_memaddr_wait_cb, | ||||
ctx, 0); | ctx, 0); | ||||
▲ Show 20 Lines • Show All 1,067 Lines • Show Last 20 Lines |