From 6dd0a58302ea9a0f18f31168e86493bcf567f9be Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Sat, 3 Jul 2021 11:03:14 -0400 Subject: [PATCH] [at24c] free perf counter if px4_at24c_initialize fails - add driver prefix to perf counter naming --- platforms/nuttx/src/px4/common/px4_24xxxx_mtd.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/platforms/nuttx/src/px4/common/px4_24xxxx_mtd.c b/platforms/nuttx/src/px4/common/px4_24xxxx_mtd.c index 8f635bcfd8..42e1e76f21 100644 --- a/platforms/nuttx/src/px4/common/px4_24xxxx_mtd.c +++ b/platforms/nuttx/src/px4/common/px4_24xxxx_mtd.c @@ -567,9 +567,9 @@ FAR struct mtd_dev_s *px4_at24c_initialize(FAR struct i2c_master_s *dev, priv->mtd.ioctl = at24c_ioctl; priv->dev = dev; - priv->perf_transfers = perf_alloc(PC_ELAPSED, "eeprom_trans"); - priv->perf_resets_retries = perf_alloc(PC_COUNT, "eeprom_rst"); - priv->perf_errors = perf_alloc(PC_COUNT, "eeprom_errs"); + priv->perf_transfers = perf_alloc(PC_ELAPSED, "[at24c] eeprom transfer"); + priv->perf_resets_retries = perf_alloc(PC_COUNT, "[at24c] eeprom reset"); + priv->perf_errors = perf_alloc(PC_COUNT, "[at24c] eeprom errors"); } /* attempt to read to validate device is present */ @@ -600,6 +600,14 @@ FAR struct mtd_dev_s *px4_at24c_initialize(FAR struct i2c_master_s *dev, perf_end(priv->perf_transfers); if (ret < 0) { + perf_free(priv->perf_transfers); + perf_free(priv->perf_resets_retries); + perf_free(priv->perf_errors); + + priv->perf_transfers = NULL; + priv->perf_resets_retries = NULL; + priv->perf_errors = NULL; + return NULL; }