* [PATCH] ath11k: fix up some error paths
@ 2019-12-13 10:54 Dan Carpenter
2020-01-15 9:19 ` Kalle Valo
0 siblings, 1 reply; 4+ messages in thread
From: Dan Carpenter @ 2019-12-13 10:54 UTC (permalink / raw)
To: Kalle Valo
Cc: John Crispin, Vasanthakumar Thiagarajan, Anilkumar Kolli,
Bhagavathi Perumal S, ath11k, linux-wireless, kernel-janitors
There are two error paths where "ret" wasn't set. Ideally the compiler
would have warned about these bugs, but we initialized "ret" to zero so
it silenced the warning. I have removed that. Also if
ath11k_hal_srng_get_entrysize() fails then we need to free some
resources before returning.
Fixes: d5c65159f289 ("ath11k: driver for Qualcomm IEEE 802.11ax devices")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
drivers/net/wireless/ath/ath11k/dp_tx.c | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/drivers/net/wireless/ath/ath11k/dp_tx.c b/drivers/net/wireless/ath/ath11k/dp_tx.c
index a8b9557c2346..ea7564245c58 100644
--- a/drivers/net/wireless/ath/ath11k/dp_tx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_tx.c
@@ -606,7 +606,7 @@ int ath11k_dp_tx_htt_srng_setup(struct ath11k_base *ab, u32 ring_id,
dma_addr_t hp_addr, tp_addr;
enum htt_srng_ring_type htt_ring_type;
enum htt_srng_ring_id htt_ring_id;
- int ret = 0;
+ int ret;
skb = ath11k_htc_alloc_skb(ab, len);
if (!skb)
@@ -618,9 +618,10 @@ int ath11k_dp_tx_htt_srng_setup(struct ath11k_base *ab, u32 ring_id,
hp_addr = ath11k_hal_srng_get_hp_addr(ab, srng);
tp_addr = ath11k_hal_srng_get_tp_addr(ab, srng);
- if (ath11k_dp_tx_get_ring_id_type(ab, mac_id, ring_id,
- ring_type, &htt_ring_type,
- &htt_ring_id))
+ ret = ath11k_dp_tx_get_ring_id_type(ab, mac_id, ring_id,
+ ring_type, &htt_ring_type,
+ &htt_ring_id);
+ if (ret)
goto err_free;
skb_put(skb, len);
@@ -646,7 +647,7 @@ int ath11k_dp_tx_htt_srng_setup(struct ath11k_base *ab, u32 ring_id,
ret = ath11k_hal_srng_get_entrysize(ring_type);
if (ret < 0)
- return -EINVAL;
+ goto err_free;
ring_entry_sz = ret;
@@ -791,7 +792,7 @@ int ath11k_dp_tx_htt_rx_filter_setup(struct ath11k_base *ab, u32 ring_id,
int len = sizeof(*cmd);
enum htt_srng_ring_type htt_ring_type;
enum htt_srng_ring_id htt_ring_id;
- int ret = 0;
+ int ret;
skb = ath11k_htc_alloc_skb(ab, len);
if (!skb)
@@ -800,9 +801,10 @@ int ath11k_dp_tx_htt_rx_filter_setup(struct ath11k_base *ab, u32 ring_id,
memset(¶ms, 0, sizeof(params));
ath11k_hal_srng_get_params(ab, srng, ¶ms);
- if (ath11k_dp_tx_get_ring_id_type(ab, mac_id, ring_id,
- ring_type, &htt_ring_type,
- &htt_ring_id))
+ ret = ath11k_dp_tx_get_ring_id_type(ab, mac_id, ring_id,
+ ring_type, &htt_ring_type,
+ &htt_ring_id);
+ if (ret)
goto err_free;
skb_put(skb, len);
--
2.11.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] ath11k: fix up some error paths
2019-12-13 10:54 [PATCH] ath11k: fix up some error paths Dan Carpenter
@ 2020-01-15 9:19 ` Kalle Valo
2020-01-15 17:46 ` [PATCH v2] " Dan Carpenter
0 siblings, 1 reply; 4+ messages in thread
From: Kalle Valo @ 2020-01-15 9:19 UTC (permalink / raw)
To: Dan Carpenter
Cc: John Crispin, Vasanthakumar Thiagarajan, Anilkumar Kolli,
Bhagavathi Perumal S, ath11k, linux-wireless, kernel-janitors
Dan Carpenter <dan.carpenter@oracle.com> wrote:
> There are two error paths where "ret" wasn't set. Ideally the compiler
> would have warned about these bugs, but we initialized "ret" to zero so
> it silenced the warning. I have removed that. Also if
> ath11k_hal_srng_get_entrysize() fails then we need to free some
> resources before returning.
>
> Fixes: d5c65159f289 ("ath11k: driver for Qualcomm IEEE 802.11ax devices")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Failed to apply:
error: patch failed: drivers/net/wireless/ath/ath11k/dp_tx.c:646
error: drivers/net/wireless/ath/ath11k/dp_tx.c: patch does not apply
stg import: Diff does not apply cleanly
Patch set to Changes Requested.
--
https://patchwork.kernel.org/patch/11290443/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2] ath11k: fix up some error paths
2020-01-15 9:19 ` Kalle Valo
@ 2020-01-15 17:46 ` Dan Carpenter
2020-01-26 10:51 ` Kalle Valo
0 siblings, 1 reply; 4+ messages in thread
From: Dan Carpenter @ 2020-01-15 17:46 UTC (permalink / raw)
To: Kalle Valo
Cc: ath11k, linux-wireless, kernel-janitors, John Crispin,
Vasanthakumar Thiagarajan, Anilkumar Kolli, Bhagavathi Perumal S
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>
---
v2: rebase
drivers/net/wireless/ath/ath11k/dp_tx.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/drivers/net/wireless/ath/ath11k/dp_tx.c b/drivers/net/wireless/ath/ath11k/dp_tx.c
index 918305dda106..873b2cb2bb4c 100644
--- a/drivers/net/wireless/ath/ath11k/dp_tx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_tx.c
@@ -630,7 +630,7 @@ int ath11k_dp_tx_htt_srng_setup(struct ath11k_base *ab, u32 ring_id,
dma_addr_t hp_addr, tp_addr;
enum htt_srng_ring_type htt_ring_type;
enum htt_srng_ring_id htt_ring_id;
- int ret = 0;
+ int ret;
skb = ath11k_htc_alloc_skb(ab, len);
if (!skb)
@@ -642,9 +642,10 @@ int ath11k_dp_tx_htt_srng_setup(struct ath11k_base *ab, u32 ring_id,
hp_addr = ath11k_hal_srng_get_hp_addr(ab, srng);
tp_addr = ath11k_hal_srng_get_tp_addr(ab, srng);
- if (ath11k_dp_tx_get_ring_id_type(ab, mac_id, ring_id,
- ring_type, &htt_ring_type,
- &htt_ring_id))
+ ret = ath11k_dp_tx_get_ring_id_type(ab, mac_id, ring_id,
+ ring_type, &htt_ring_type,
+ &htt_ring_id);
+ if (ret)
goto err_free;
skb_put(skb, len);
@@ -669,10 +670,8 @@ int ath11k_dp_tx_htt_srng_setup(struct ath11k_base *ab, u32 ring_id,
HAL_ADDR_MSB_REG_SHIFT;
ret = ath11k_hal_srng_get_entrysize(ring_type);
- if (ret < 0) {
- ret = -EINVAL;
+ if (ret < 0)
goto err_free;
- }
ring_entry_sz = ret;
@@ -817,7 +816,7 @@ int ath11k_dp_tx_htt_rx_filter_setup(struct ath11k_base *ab, u32 ring_id,
int len = sizeof(*cmd);
enum htt_srng_ring_type htt_ring_type;
enum htt_srng_ring_id htt_ring_id;
- int ret = 0;
+ int ret;
skb = ath11k_htc_alloc_skb(ab, len);
if (!skb)
@@ -826,9 +825,10 @@ int ath11k_dp_tx_htt_rx_filter_setup(struct ath11k_base *ab, u32 ring_id,
memset(¶ms, 0, sizeof(params));
ath11k_hal_srng_get_params(ab, srng, ¶ms);
- if (ath11k_dp_tx_get_ring_id_type(ab, mac_id, ring_id,
- ring_type, &htt_ring_type,
- &htt_ring_id))
+ ret = ath11k_dp_tx_get_ring_id_type(ab, mac_id, ring_id,
+ ring_type, &htt_ring_type,
+ &htt_ring_id);
+ if (ret)
goto err_free;
skb_put(skb, len);
--
2.11.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2] ath11k: fix up some error paths
2020-01-15 17:46 ` [PATCH v2] " Dan Carpenter
@ 2020-01-26 10:51 ` Kalle Valo
0 siblings, 0 replies; 4+ messages in thread
From: Kalle Valo @ 2020-01-26 10:51 UTC (permalink / raw)
To: Dan Carpenter
Cc: ath11k, linux-wireless, kernel-janitors, John Crispin,
Vasanthakumar Thiagarajan, Anilkumar Kolli, Bhagavathi Perumal S
Dan Carpenter <dan.carpenter@oracle.com> wrote:
> 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>
Patch applied to ath-next branch of ath.git, thanks.
7195c8747e87 ath11k: fix up some error paths
--
https://patchwork.kernel.org/patch/11335489/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-01-26 10:51 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-13 10:54 [PATCH] ath11k: fix up some error paths Dan Carpenter
2020-01-15 9:19 ` Kalle Valo
2020-01-15 17:46 ` [PATCH v2] " Dan Carpenter
2020-01-26 10:51 ` Kalle Valo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).