Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F151839174
D18086.id50682.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
6 KB
Referenced Files
None
Subscribers
None
D18086.id50682.diff
View Options
Index: sys/dev/sfxge/common/ef10_impl.h
===================================================================
--- sys/dev/sfxge/common/ef10_impl.h
+++ sys/dev/sfxge/common/ef10_impl.h
@@ -462,7 +462,8 @@
extern __checkReturn efx_rc_t
ef10_nvram_partn_rw_finish(
__in efx_nic_t *enp,
- __in uint32_t partn);
+ __in uint32_t partn,
+ __out_opt uint32_t *verify_resultp);
extern __checkReturn efx_rc_t
ef10_nvram_partn_get_version(
Index: sys/dev/sfxge/common/ef10_nvram.c
===================================================================
--- sys/dev/sfxge/common/ef10_nvram.c
+++ sys/dev/sfxge/common/ef10_nvram.c
@@ -2050,15 +2050,15 @@
ef10_nvram_partn_unlock(
__in efx_nic_t *enp,
__in uint32_t partn,
- __out_opt uint32_t *resultp)
+ __out_opt uint32_t *verify_resultp)
{
boolean_t reboot = B_FALSE;
efx_rc_t rc;
- if (resultp != NULL)
- *resultp = MC_CMD_NVRAM_VERIFY_RC_UNKNOWN;
+ if (verify_resultp != NULL)
+ *verify_resultp = MC_CMD_NVRAM_VERIFY_RC_UNKNOWN;
- rc = efx_mcdi_nvram_update_finish(enp, partn, reboot, resultp);
+ rc = efx_mcdi_nvram_update_finish(enp, partn, reboot, verify_resultp);
if (rc != 0)
goto fail1;
@@ -2368,11 +2368,12 @@
__checkReturn efx_rc_t
ef10_nvram_partn_rw_finish(
__in efx_nic_t *enp,
- __in uint32_t partn)
+ __in uint32_t partn,
+ __out_opt uint32_t *verify_resultp)
{
efx_rc_t rc;
- if ((rc = ef10_nvram_partn_unlock(enp, partn, NULL)) != 0)
+ if ((rc = ef10_nvram_partn_unlock(enp, partn, verify_resultp)) != 0)
goto fail1;
return (0);
Index: sys/dev/sfxge/common/efx_impl.h
===================================================================
--- sys/dev/sfxge/common/efx_impl.h
+++ sys/dev/sfxge/common/efx_impl.h
@@ -471,7 +471,8 @@
unsigned int, size_t);
efx_rc_t (*envo_partn_write)(efx_nic_t *, uint32_t,
unsigned int, caddr_t, size_t);
- efx_rc_t (*envo_partn_rw_finish)(efx_nic_t *, uint32_t);
+ efx_rc_t (*envo_partn_rw_finish)(efx_nic_t *, uint32_t,
+ uint32_t *);
efx_rc_t (*envo_partn_get_version)(efx_nic_t *, uint32_t,
uint32_t *, uint16_t *);
efx_rc_t (*envo_partn_set_version)(efx_nic_t *, uint32_t,
@@ -560,7 +561,7 @@
__in efx_nic_t *enp,
__in uint32_t partn,
__in boolean_t reboot,
- __out_opt uint32_t *resultp);
+ __out_opt uint32_t *verify_resultp);
#if EFSYS_OPT_DIAG
Index: sys/dev/sfxge/common/efx_nvram.c
===================================================================
--- sys/dev/sfxge/common/efx_nvram.c
+++ sys/dev/sfxge/common/efx_nvram.c
@@ -371,6 +371,7 @@
{
const efx_nvram_ops_t *envop = enp->en_envop;
uint32_t partn;
+ uint32_t verify_result;
efx_rc_t rc;
EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC);
@@ -384,7 +385,7 @@
if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0)
goto fail1;
- if ((rc = envop->envo_partn_rw_finish(enp, partn)) != 0)
+ if ((rc = envop->envo_partn_rw_finish(enp, partn, &verify_result)) != 0)
goto fail2;
enp->en_nvram_locked = EFX_NVRAM_INVALID;
@@ -920,13 +921,13 @@
__in efx_nic_t *enp,
__in uint32_t partn,
__in boolean_t reboot,
- __out_opt uint32_t *resultp)
+ __out_opt uint32_t *verify_resultp)
{
const efx_nic_cfg_t *encp = &enp->en_nic_cfg;
efx_mcdi_req_t req;
uint8_t payload[MAX(MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_LEN,
MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT_LEN)];
- uint32_t result = MC_CMD_NVRAM_VERIFY_RC_UNKNOWN;
+ uint32_t verify_result = MC_CMD_NVRAM_VERIFY_RC_UNKNOWN;
efx_rc_t rc;
(void) memset(payload, 0, sizeof (payload));
@@ -950,26 +951,26 @@
}
if (req.emr_out_length_used < MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT_LEN) {
- result = MC_CMD_NVRAM_VERIFY_RC_UNKNOWN;
+ verify_result = MC_CMD_NVRAM_VERIFY_RC_UNKNOWN;
if (encp->enc_fw_verified_nvram_update_required) {
/* Mandatory verification result is missing */
rc = EMSGSIZE;
goto fail2;
}
} else {
- result =
+ verify_result =
MCDI_OUT_DWORD(req, NVRAM_UPDATE_FINISH_V2_OUT_RESULT_CODE);
}
if ((encp->enc_fw_verified_nvram_update_required) &&
- (result != MC_CMD_NVRAM_VERIFY_RC_SUCCESS)) {
+ (verify_result != MC_CMD_NVRAM_VERIFY_RC_SUCCESS)) {
/* Mandatory verification failed */
rc = EINVAL;
goto fail3;
}
- if (resultp != NULL)
- *resultp = result;
+ if (verify_resultp != NULL)
+ *verify_resultp = verify_result;
return (0);
@@ -981,8 +982,8 @@
EFSYS_PROBE1(fail1, efx_rc_t, rc);
/* Always report verification result */
- if (resultp != NULL)
- *resultp = result;
+ if (verify_resultp != NULL)
+ *verify_resultp = verify_result;
return (rc);
}
Index: sys/dev/sfxge/common/siena_impl.h
===================================================================
--- sys/dev/sfxge/common/siena_impl.h
+++ sys/dev/sfxge/common/siena_impl.h
@@ -147,7 +147,8 @@
extern __checkReturn efx_rc_t
siena_nvram_partn_unlock(
__in efx_nic_t *enp,
- __in uint32_t partn);
+ __in uint32_t partn,
+ __out_opt uint32_t *verify_resultp);
extern __checkReturn efx_rc_t
siena_nvram_get_dynamic_cfg(
@@ -219,7 +220,8 @@
extern __checkReturn efx_rc_t
siena_nvram_partn_rw_finish(
__in efx_nic_t *enp,
- __in uint32_t partn);
+ __in uint32_t partn,
+ __out_opt uint32_t *verify_resultp);
extern __checkReturn efx_rc_t
siena_nvram_partn_get_version(
Index: sys/dev/sfxge/common/siena_nvram.c
===================================================================
--- sys/dev/sfxge/common/siena_nvram.c
+++ sys/dev/sfxge/common/siena_nvram.c
@@ -175,7 +175,8 @@
__checkReturn efx_rc_t
siena_nvram_partn_unlock(
__in efx_nic_t *enp,
- __in uint32_t partn)
+ __in uint32_t partn,
+ __out_opt uint32_t *verify_resultp)
{
boolean_t reboot;
efx_rc_t rc;
@@ -188,7 +189,7 @@
partn == MC_CMD_NVRAM_TYPE_PHY_PORT1 ||
partn == MC_CMD_NVRAM_TYPE_DISABLED_CALLISTO);
- rc = efx_mcdi_nvram_update_finish(enp, partn, reboot, NULL);
+ rc = efx_mcdi_nvram_update_finish(enp, partn, reboot, verify_resultp);
if (rc != 0)
goto fail1;
@@ -592,11 +593,12 @@
__checkReturn efx_rc_t
siena_nvram_partn_rw_finish(
__in efx_nic_t *enp,
- __in uint32_t partn)
+ __in uint32_t partn,
+ __out_opt uint32_t *verify_resultp)
{
efx_rc_t rc;
- if ((rc = siena_nvram_partn_unlock(enp, partn)) != 0)
+ if ((rc = siena_nvram_partn_unlock(enp, partn, verify_resultp)) != 0)
goto fail1;
return (0);
@@ -710,7 +712,7 @@
EFSYS_KMEM_FREE(enp->en_esip, length, dcfg);
- siena_nvram_partn_unlock(enp, dcfg_partn);
+ siena_nvram_partn_unlock(enp, dcfg_partn, NULL);
return (0);
Index: sys/dev/sfxge/common/siena_vpd.c
===================================================================
--- sys/dev/sfxge/common/siena_vpd.c
+++ sys/dev/sfxge/common/siena_vpd.c
@@ -577,7 +577,7 @@
EFSYS_KMEM_FREE(enp->en_esip, dcfg_size, dcfg);
- siena_nvram_partn_unlock(enp, dcfg_partn);
+ siena_nvram_partn_unlock(enp, dcfg_partn, NULL);
return (0);
@@ -592,7 +592,7 @@
fail4:
EFSYS_PROBE(fail4);
- siena_nvram_partn_unlock(enp, dcfg_partn);
+ siena_nvram_partn_unlock(enp, dcfg_partn, NULL);
fail3:
EFSYS_PROBE(fail3);
fail2:
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Apr 12, 12:39 AM (1 h, 20 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31318316
Default Alt Text
D18086.id50682.diff (6 KB)
Attached To
Mode
D18086: sfxge(4): report verify result from RW finish callback
Attached
Detach File
Event Timeline
Log In to Comment