Index: head/sys/dev/sfxge/common/ef10_impl.h =================================================================== --- head/sys/dev/sfxge/common/ef10_impl.h +++ head/sys/dev/sfxge/common/ef10_impl.h @@ -387,7 +387,8 @@ extern __checkReturn efx_rc_t ef10_nvram_partn_unlock( __in efx_nic_t *enp, - __in uint32_t partn); + __in uint32_t partn, + __out_opt uint32_t *resultp); #endif /* EFSYS_OPT_NVRAM || EFSYS_OPT_VPD */ Index: head/sys/dev/sfxge/common/ef10_nvram.c =================================================================== --- head/sys/dev/sfxge/common/ef10_nvram.c +++ head/sys/dev/sfxge/common/ef10_nvram.c @@ -1828,7 +1828,7 @@ goto fail7; /* Unlock the partition */ - ef10_nvram_partn_unlock(enp, partn); + ef10_nvram_partn_unlock(enp, partn, NULL); EFSYS_KMEM_FREE(enp->en_esip, partn_size, partn_data); @@ -1843,7 +1843,7 @@ fail4: EFSYS_PROBE(fail4); - ef10_nvram_partn_unlock(enp, partn); + ef10_nvram_partn_unlock(enp, partn, NULL); fail3: EFSYS_PROBE(fail3); @@ -2049,13 +2049,16 @@ __checkReturn efx_rc_t ef10_nvram_partn_unlock( __in efx_nic_t *enp, - __in uint32_t partn) + __in uint32_t partn, + __out_opt uint32_t *resultp) { boolean_t reboot = B_FALSE; - uint32_t result = 0; /* FIXME: MC_CMD_NVRAM_VERIFY_RC_UNKNOWN */ efx_rc_t rc; - rc = efx_mcdi_nvram_update_finish(enp, partn, reboot, &result); + if (resultp != NULL) + *resultp = MC_CMD_NVRAM_VERIFY_RC_UNKNOWN; + + rc = efx_mcdi_nvram_update_finish(enp, partn, reboot, resultp); if (rc != 0) goto fail1; @@ -2064,7 +2067,6 @@ fail1: EFSYS_PROBE1(fail1, efx_rc_t, rc); - /* FIXME: log result if verified firmware update fails */ return (rc); } @@ -2370,7 +2372,7 @@ { efx_rc_t rc; - if ((rc = ef10_nvram_partn_unlock(enp, partn)) != 0) + if ((rc = ef10_nvram_partn_unlock(enp, partn, NULL)) != 0) goto fail1; return (0);