Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ath11k: fix up some error paths

There are two error paths where "ret" wasn't set. Also one error path
we set the error code to -EINVAL but we should just preserve the error
code from ath11k_hal_srng_get_entrysize(). That function only returns
-EINVAL so this doesn't change anything.

I removed the "ret = 0;" initializers so that hopefully GCC will be able
to detect these sorts of bugs in the future.

Fixes: d5c65159f289 ("ath11k: driver for Qualcomm IEEE 802.11ax devices")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

authored by

Dan Carpenter and committed by
Kalle Valo
7195c874 93634c61

+11 -11
+11 -11
drivers/net/wireless/ath/ath11k/dp_tx.c
··· 630 630 dma_addr_t hp_addr, tp_addr; 631 631 enum htt_srng_ring_type htt_ring_type; 632 632 enum htt_srng_ring_id htt_ring_id; 633 - int ret = 0; 633 + int ret; 634 634 635 635 skb = ath11k_htc_alloc_skb(ab, len); 636 636 if (!skb) ··· 642 642 hp_addr = ath11k_hal_srng_get_hp_addr(ab, srng); 643 643 tp_addr = ath11k_hal_srng_get_tp_addr(ab, srng); 644 644 645 - if (ath11k_dp_tx_get_ring_id_type(ab, mac_id, ring_id, 646 - ring_type, &htt_ring_type, 647 - &htt_ring_id)) 645 + ret = ath11k_dp_tx_get_ring_id_type(ab, mac_id, ring_id, 646 + ring_type, &htt_ring_type, 647 + &htt_ring_id); 648 + if (ret) 648 649 goto err_free; 649 650 650 651 skb_put(skb, len); ··· 670 669 HAL_ADDR_MSB_REG_SHIFT; 671 670 672 671 ret = ath11k_hal_srng_get_entrysize(ring_type); 673 - if (ret < 0) { 674 - ret = -EINVAL; 672 + if (ret < 0) 675 673 goto err_free; 676 - } 677 674 678 675 ring_entry_sz = ret; 679 676 ··· 816 817 int len = sizeof(*cmd); 817 818 enum htt_srng_ring_type htt_ring_type; 818 819 enum htt_srng_ring_id htt_ring_id; 819 - int ret = 0; 820 + int ret; 820 821 821 822 skb = ath11k_htc_alloc_skb(ab, len); 822 823 if (!skb) ··· 825 826 memset(&params, 0, sizeof(params)); 826 827 ath11k_hal_srng_get_params(ab, srng, &params); 827 828 828 - if (ath11k_dp_tx_get_ring_id_type(ab, mac_id, ring_id, 829 - ring_type, &htt_ring_type, 830 - &htt_ring_id)) 829 + ret = ath11k_dp_tx_get_ring_id_type(ab, mac_id, ring_id, 830 + ring_type, &htt_ring_type, 831 + &htt_ring_id); 832 + if (ret) 831 833 goto err_free; 832 834 833 835 skb_put(skb, len);