diff options
author | Mandy Lavi <mandy.lavi@freescale.com> | 2014-11-19 05:17:46 (GMT) |
---|---|---|
committer | Matthew Weigel <Matthew.Weigel@freescale.com> | 2014-12-11 18:40:48 (GMT) |
commit | ca6d6c8930a031eeab8e121ae7de52dede339e21 (patch) | |
tree | a102319534e49b7624b67a40a3d906662ce5850b /drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC | |
parent | 5676273b1553c5920c90592f49a1d8fce560f24d (diff) | |
download | linux-fsl-qoriq-ca6d6c8930a031eeab8e121ae7de52dede339e21.tar.xz |
fmd: fix static analysis issues
Change-Id: I2d6cead7b62116cd6a264ec91d82f3bdc3a03c10
Signed-off-by: Mandy Lavi <mandy.lavi@freescale.com>
Reviewed-on: http://git.am.freescale.net:8181/23939
Reviewed-by: Igal Liberman <Igal.Liberman@freescale.com>
Tested-by: Richard Schmitt <richard.schmitt@freescale.com>
Reviewed-by: Richard Schmitt <richard.schmitt@freescale.com>
Diffstat (limited to 'drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC')
8 files changed, 65 insertions, 54 deletions
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/dtsec.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/dtsec.c index e8cc70a..d0ed2e7 100644 --- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/dtsec.c +++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/dtsec.c @@ -559,17 +559,13 @@ static t_Error DtsecConfigException(t_Handle h_Dtsec, e_FmMacExceptions exceptio { if (!p_Dtsec->ptpTsuEnabled) RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Exception valid for 1588 only")); - switch (exception){ - case (e_FM_MAC_EX_1G_1588_TS_RX_ERR): - if (enable) - p_Dtsec->enTsuErrExeption = TRUE; - else - p_Dtsec->enTsuErrExeption = FALSE; - break; - default: - RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Undefined exception")); - } + + if (enable) + p_Dtsec->enTsuErrExeption = TRUE; + else + p_Dtsec->enTsuErrExeption = FALSE; } + return E_OK; } @@ -1090,7 +1086,7 @@ static t_Error DtsecSetWakeOnLan(t_Handle h_Dtsec, bool en) static t_Error DtsecAdjustLink(t_Handle h_Dtsec, e_EnetSpeed speed, bool fullDuplex) { t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; - t_Error err; + int err; enum enet_interface enet_interface; enum enet_speed enet_speed; @@ -1102,12 +1098,12 @@ static t_Error DtsecAdjustLink(t_Handle h_Dtsec, e_EnetSpeed speed, bool fullDup enet_speed = (enum enet_speed) ENET_SPEED_FROM_MODE(p_Dtsec->enetMode); p_Dtsec->halfDuplex = !fullDuplex; - err = (t_Error)fman_dtsec_adjust_link(p_Dtsec->p_MemMap, enet_interface, enet_speed, fullDuplex); + err = fman_dtsec_adjust_link(p_Dtsec->p_MemMap, enet_interface, enet_speed, fullDuplex); - if (err == E_CONFLICT) + if (err == -EINVAL) RETURN_ERROR(MAJOR, E_CONFLICT, ("Ethernet interface does not support Half Duplex mode")); - return err; + return (t_Error)err; } /* .............................................................................. */ @@ -1190,20 +1186,16 @@ static t_Error DtsecSetException(t_Handle h_Dtsec, e_FmMacExceptions exception, { if (!p_Dtsec->ptpTsuEnabled) RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Exception valid for 1588 only")); - switch (exception) + + if (enable) { - case (e_FM_MAC_EX_1G_1588_TS_RX_ERR): - if (enable) - { - p_Dtsec->enTsuErrExeption = TRUE; - fman_dtsec_enable_tmr_interrupt(p_Dtsec->p_MemMap); - } else { - p_Dtsec->enTsuErrExeption = FALSE; - fman_dtsec_disable_tmr_interrupt(p_Dtsec->p_MemMap); - } - break; - default: - RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Undefined exception")); + p_Dtsec->enTsuErrExeption = TRUE; + fman_dtsec_enable_tmr_interrupt(p_Dtsec->p_MemMap); + } + else + { + p_Dtsec->enTsuErrExeption = FALSE; + fman_dtsec_disable_tmr_interrupt(p_Dtsec->p_MemMap); } } @@ -1330,6 +1322,8 @@ static t_Error DtsecInit(t_Handle h_Dtsec) maxFrmLn = fman_dtsec_get_max_frame_len(p_Dtsec->p_MemMap); err = FmSetMacMaxFrame(p_Dtsec->fmMacControllerDriver.h_Fm, e_FM_MAC_1G, p_Dtsec->fmMacControllerDriver.macId, maxFrmLn); + if (err) + RETURN_ERROR(MINOR,err, NO_MSG); p_Dtsec->p_MulticastAddrHash = AllocHashTable(EXTENDED_HASH_TABLE_SIZE); if (!p_Dtsec->p_MulticastAddrHash) { @@ -1386,14 +1380,17 @@ static t_Error DtsecFree(t_Handle h_Dtsec) SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); - FreeInitResources(p_Dtsec); - if (p_Dtsec->p_DtsecDriverParam) { + /* Called after config */ XX_Free(p_Dtsec->p_DtsecDriverParam); p_Dtsec->p_DtsecDriverParam = NULL; } - XX_Free (h_Dtsec); + else + /* Called after init */ + FreeInitResources(p_Dtsec); + + XX_Free(p_Dtsec); return E_OK; } diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/dtsec_mii_acc.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/dtsec_mii_acc.c index f9dff6f..87da25f 100644 --- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/dtsec_mii_acc.c +++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/dtsec_mii_acc.c @@ -53,7 +53,7 @@ t_Error DTSEC_MII_WritePhyReg(t_Handle h_Dtsec, t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; struct dtsec_mii_reg *miiregs; uint16_t dtsec_freq; - t_Error err; + t_Error err; SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MiiMemMap, E_INVALID_HANDLE); @@ -75,7 +75,7 @@ t_Error DTSEC_MII_ReadPhyReg(t_Handle h_Dtsec, t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; struct dtsec_mii_reg *miiregs; uint16_t dtsec_freq; - t_Error err; + t_Error err; SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MiiMemMap, E_INVALID_HANDLE); @@ -83,15 +83,15 @@ t_Error DTSEC_MII_ReadPhyReg(t_Handle h_Dtsec, dtsec_freq = (uint16_t)(p_Dtsec->fmMacControllerDriver.clkFreq >> 1); miiregs = p_Dtsec->p_MiiMemMap; - err = (t_Error)fman_dtsec_mii_read_reg(miiregs, phyAddr, reg, p_Data, dtsec_freq); + err = fman_dtsec_mii_read_reg(miiregs, phyAddr, reg, p_Data, dtsec_freq); if (*p_Data == 0xffff) RETURN_ERROR(MINOR, E_NO_DEVICE, ("Read wrong data (0xffff): phyAddr 0x%x, reg 0x%x", phyAddr, reg)); if (err) - RETURN_ERROR(MINOR, err, NO_MSG); + RETURN_ERROR(MINOR, (t_Error)err, NO_MSG); - return err; + return E_OK; } diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fm_mac.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fm_mac.c index e992f1a..a76ca6a 100644 --- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fm_mac.c +++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fm_mac.c @@ -51,9 +51,17 @@ t_Handle FM_MAC_Config (t_FmMacParams *p_FmMacParam) { t_FmMacControllerDriver *p_FmMacControllerDriver; + uint16_t fmClkFreq; SANITY_CHECK_RETURN_VALUE(p_FmMacParam, E_INVALID_HANDLE, NULL); + fmClkFreq = FmGetClockFreq(p_FmMacParam->h_Fm); + if (fmClkFreq == 0) + { + REPORT_ERROR(MAJOR, E_INVALID_STATE, ("Can't get clock for MAC!")); + return NULL; + } + #if (DPAA_VERSION == 10) if (ENET_SPEED_FROM_MODE(p_FmMacParam->enetMode) < e_ENET_SPEED_10000) p_FmMacControllerDriver = (t_FmMacControllerDriver *)DTSEC_Config(p_FmMacParam); @@ -75,11 +83,7 @@ t_Handle FM_MAC_Config (t_FmMacParams *p_FmMacParam) p_FmMacControllerDriver->macId = p_FmMacParam->macId; p_FmMacControllerDriver->resetOnInit = DEFAULT_resetOnInit; - if ((p_FmMacControllerDriver->clkFreq = FmGetClockFreq(p_FmMacControllerDriver->h_Fm)) == 0) - { - REPORT_ERROR(MAJOR, E_INVALID_STATE, ("Can't get clock for MAC!")); - return NULL; - } + p_FmMacControllerDriver->clkFreq = fmClkFreq; return (t_Handle)p_FmMacControllerDriver; } diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fm_mac.h b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fm_mac.h index 05ccd7e..0d7b8d2 100644 --- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fm_mac.h +++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fm_mac.h @@ -198,7 +198,7 @@ static __inline__ t_EthHash * AllocHashTable(uint16_t size) t_EthHash *p_Hash; /* Allocate address hash table */ - p_Hash = (t_EthHash *)XX_Malloc(size*sizeof(t_EthHash *)); + p_Hash = (t_EthHash *)XX_Malloc(sizeof(t_EthHash)); if (!p_Hash) { REPORT_ERROR(MAJOR, E_NO_MEMORY, ("Address hash table")); diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fman_dtsec.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fman_dtsec.c index d88291e..5b09286 100644 --- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fman_dtsec.c +++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fman_dtsec.c @@ -261,7 +261,6 @@ UNUSED(fm_rev_maj);UNUSED(fm_rev_min); /***************MACCFG2***********************/ /***************IPGIFG************************/ - tmp = 0; tmp = (((cfg->non_back_to_back_ipg1 << IPGIFG_NON_BACK_TO_BACK_IPG_1_SHIFT) & IPGIFG_NON_BACK_TO_BACK_IPG_1) @@ -457,7 +456,7 @@ int fman_dtsec_adjust_link(struct dtsec_regs *regs, enum enet_speed speed, bool full_dx) { uint32_t tmp; - + UNUSED(iface_mode); if ((speed == E_ENET_SPEED_1000) && !full_dx) diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c index 266716d..9566521 100644 --- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c +++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c @@ -998,13 +998,16 @@ static t_Error MemacFree(t_Handle h_Memac) SANITY_CHECK_RETURN_ERROR(p_Memac, E_INVALID_HANDLE); - FreeInitResources(p_Memac); - if (p_Memac->p_MemacDriverParam) { + /* Called after config */ XX_Free(p_Memac->p_MemacDriverParam); p_Memac->p_MemacDriverParam = NULL; } + else + /* Called after init */ + FreeInitResources(p_Memac); + XX_Free(p_Memac); return E_OK; @@ -1095,11 +1098,11 @@ t_Handle MEMAC_Config(t_FmMacParams *p_FmMacParam) InitFmMacControllerDriver(&p_Memac->fmMacControllerDriver); /* Allocate memory for the mEMAC driver parameters data structure */ - p_MemacDriverParam = (struct memac_cfg *) XX_Malloc(sizeof(struct memac_cfg)); + p_MemacDriverParam = (struct memac_cfg *)XX_Malloc(sizeof(struct memac_cfg)); if (!p_MemacDriverParam) { REPORT_ERROR(MAJOR, E_NO_MEMORY, ("mEMAC driver parameters")); - MemacFree(p_Memac); + XX_Free(p_Memac); return NULL; } memset(p_MemacDriverParam, 0, sizeof(struct memac_cfg)); diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac_mii_acc.h b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac_mii_acc.h index a8824ef..325ec08 100644 --- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac_mii_acc.h +++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac_mii_acc.h @@ -57,13 +57,13 @@ /*----------------------------------------------------*/ /* MII Configuration Control Memory Map Registers */ /*----------------------------------------------------*/ -typedef _Packed struct t_MemacMiiAccessMemMap +typedef struct t_MemacMiiAccessMemMap { volatile uint32_t mdio_cfg; /* 0x030 */ volatile uint32_t mdio_ctrl; /* 0x034 */ volatile uint32_t mdio_data; /* 0x038 */ volatile uint32_t mdio_addr; /* 0x03c */ -} _PackedType t_MemacMiiAccessMemMap ; +} t_MemacMiiAccessMemMap ; #if defined(__MWERKS__) && !defined(__GNUC__) #pragma pack(pop) diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/tgec.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/tgec.c index 91f4568..8f39f25 100644 --- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/tgec.c +++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/tgec.c @@ -839,7 +839,12 @@ static t_Error TgecInit(t_Handle h_Tgec) e_FM_MAC_10G, p_Tgec->fmMacControllerDriver.macId, p_TgecDriverParam->max_frame_length); - /* we consider having no IPC a non crasher... */ + if (err != E_OK) + { + FreeInitResources(p_Tgec); + RETURN_ERROR(MINOR, err, NO_MSG); + } +/* we consider having no IPC a non crasher... */ #ifdef FM_TX_FIFO_CORRUPTION_ERRATA_10GMAC_A007 if (p_Tgec->fmMacControllerDriver.fmRevInfo.majorRev == 2) @@ -886,14 +891,17 @@ static t_Error TgecFree(t_Handle h_Tgec) SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); - FreeInitResources(p_Tgec); - if (p_Tgec->p_TgecDriverParam) { + /* Called after config */ XX_Free(p_Tgec->p_TgecDriverParam); p_Tgec->p_TgecDriverParam = NULL; } - XX_Free (p_Tgec); + else + /* Called after init */ + FreeInitResources(p_Tgec); + + XX_Free(p_Tgec); return E_OK; } @@ -989,7 +997,7 @@ t_Handle TGEC_Config(t_FmMacParams *p_FmMacParam) if (!p_TgecDriverParam) { REPORT_ERROR(MAJOR, E_NO_MEMORY, ("10G MAC driver parameters")); - TgecFree(p_Tgec); + XX_Free(p_Tgec); return NULL; } memset(p_TgecDriverParam, 0, sizeof(struct tgec_cfg)); |