Skip to content

Commit 5b09c3c

Browse files
committed
drivers: ethernet: stm32: test HAL return value
Add missing test of some HAL functions return value Signed-off-by: Etienne Carriere <[email protected]>
1 parent 8c13c07 commit 5b09c3c

File tree

2 files changed

+32
-12
lines changed

2 files changed

+32
-12
lines changed

drivers/ethernet/eth_stm32_hal_v1.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -216,10 +216,14 @@ int eth_stm32_hal_init(const struct device *dev)
216216
k_mutex_init(&dev_data->tx_mutex);
217217
k_sem_init(&dev_data->rx_int_sem, 0, K_SEM_MAX_LIMIT);
218218

219-
HAL_ETH_DMATxDescListInit(heth, dma_tx_desc_tab,
220-
&dma_tx_buffer[0][0], ETH_TXBUFNB);
221-
HAL_ETH_DMARxDescListInit(heth, dma_rx_desc_tab,
222-
&dma_rx_buffer[0][0], ETH_RXBUFNB);
219+
if (HAL_ETH_DMATxDescListInit(heth, dma_tx_desc_tab,
220+
&dma_tx_buffer[0][0], ETH_TXBUFNB) != HAL_OK) {
221+
return -EIO;
222+
}
223+
if (HAL_ETH_DMARxDescListInit(heth, dma_rx_desc_tab,
224+
&dma_rx_buffer[0][0], ETH_RXBUFNB) != HAL_OK) {
225+
return -EIO;
226+
}
223227

224228
return 0;
225229
}

drivers/ethernet/eth_stm32_hal_v2.c

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -134,18 +134,22 @@ static inline struct eth_stm32_tx_context *allocate_tx_context(struct net_pkt *p
134134

135135
void eth_stm32_setup_mac_filter(ETH_HandleTypeDef *heth)
136136
{
137-
__ASSERT_NO_MSG(heth != NULL);
138137
ETH_MACFilterConfigTypeDef MACFilterConf;
138+
HAL_StatusTypeDef hal_ret;
139+
140+
__ASSERT_NO_MSG(heth != NULL);
139141

140-
HAL_ETH_GetMACFilterConfig(heth, &MACFilterConf);
142+
hal_ret = HAL_ETH_GetMACFilterConfig(heth, &MACFilterConf);
143+
__ASSERT_NO_MSG(hal_ret == HAL_OK);
141144

142145
MACFilterConf.HashMulticast =
143146
IS_ENABLED(CONFIG_ETH_STM32_MULTICAST_FILTER) ? ENABLE : DISABLE;
144147
MACFilterConf.PassAllMulticast =
145148
IS_ENABLED(CONFIG_ETH_STM32_MULTICAST_FILTER) ? DISABLE : ENABLE;
146149
MACFilterConf.HachOrPerfectFilter = DISABLE;
147150

148-
HAL_ETH_SetMACFilterConfig(heth, &MACFilterConf);
151+
hal_ret = HAL_ETH_SetMACFilterConfig(heth, &MACFilterConf);
152+
__ASSERT_NO_MSG(hal_ret == HAL_OK);
149153

150154
k_sleep(K_MSEC(1));
151155
}
@@ -183,7 +187,9 @@ int eth_stm32_tx(const struct device *dev, struct net_pkt *pkt)
183187
net_pkt_is_tx_timestamping(pkt);
184188
if (timestamped_frame) {
185189
/* Enable transmit timestamp */
186-
HAL_ETH_PTP_InsertTxTimestamp(heth);
190+
if (HAL_ETH_PTP_InsertTxTimestamp(heth) != HAL_OK) {
191+
return -EIO;
192+
}
187193
}
188194
#endif /* CONFIG_PTP_CLOCK_STM32_HAL */
189195

@@ -276,7 +282,9 @@ int eth_stm32_tx(const struct device *dev, struct net_pkt *pkt)
276282

277283
if (!ctx) {
278284
/* The HAL owns the tx context */
279-
HAL_ETH_ReleaseTxPacket(heth);
285+
if (HAL_ETH_ReleaseTxPacket(heth) != HAL_OK) {
286+
return -EIO;
287+
}
280288
} else {
281289
/* We need to release the tx context and its buffers */
282290
HAL_ETH_TxFreeCallback((uint32_t *)ctx);
@@ -529,7 +537,11 @@ void eth_stm32_set_mac_config(const struct device *dev, struct phy_link_state *s
529537
HAL_StatusTypeDef hal_ret = HAL_OK;
530538
ETH_MACConfigTypeDef mac_config = {0};
531539

532-
HAL_ETH_GetMACConfig(heth, &mac_config);
540+
if (HAL_ETH_GetMACConfig(heth, &mac_config) != HAL_OK) {
541+
LOG_ERR("HAL_ETH_GetMACConfig: failed: %d", hal_ret);
542+
ASSERT_NO_MSG(0);
543+
return;
544+
}
533545

534546
mac_config.DuplexMode =
535547
PHY_LINK_IS_FULL_DUPLEX(state->speed) ? ETH_FULLDUPLEX_MODE : ETH_HALFDUPLEX_MODE;
@@ -604,11 +616,15 @@ int eth_stm32_hal_set_config(const struct device *dev,
604616
case ETHERNET_CONFIG_TYPE_PROMISC_MODE:
605617
ETH_MACFilterConfigTypeDef MACFilterConf;
606618

607-
HAL_ETH_GetMACFilterConfig(heth, &MACFilterConf);
619+
if (HAL_ETH_GetMACFilterConfig(heth, &MACFilterConf) != HAL_OK) {
620+
return -EIO;
621+
}
608622

609623
MACFilterConf.PromiscuousMode = config->promisc_mode ? ENABLE : DISABLE;
610624

611-
HAL_ETH_SetMACFilterConfig(heth, &MACFilterConf);
625+
if (HAL_ETH_SetMACFilterConfig(heth, &MACFilterConf) != HAL_OK) {
626+
return -EIO;
627+
}
612628
return 0;
613629
#endif /* CONFIG_NET_PROMISCUOUS_MODE */
614630
#if defined(CONFIG_ETH_STM32_MULTICAST_FILTER)

0 commit comments

Comments
 (0)