Message ID | 20220404105324.13810-1-straube.linux@gmail.com |
---|---|
State | New |
Headers | show |
Series | ath11k: do not return random value | expand |
Michael Straube <straube.linux@gmail.com> writes: > On 4/4/22 18:35, Robert Marko wrote: >> On Mon, Apr 4, 2022 at 12:54 PM Michael Straube <straube.linux@gmail.com> wrote: >>> >>> Function ath11k_qmi_assign_target_mem_chunk() returns a random value >>> if of_parse_phandle() fails because the return variable ret is not >>> initialized before calling of_parse_phandle(). Return -EINVAL to avoid >>> possibly returning 0, which would be wrong here. >>> >>> Issue found by smatch. >>> >>> Signed-off-by: Michael Straube <straube.linux@gmail.com> >>> --- >>> drivers/net/wireless/ath/ath11k/qmi.c | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/drivers/net/wireless/ath/ath11k/qmi.c b/drivers/net/wireless/ath/ath11k/qmi.c >>> index 65d3c6ba35ae..81b2304b1fde 100644 >>> --- a/drivers/net/wireless/ath/ath11k/qmi.c >>> +++ b/drivers/net/wireless/ath/ath11k/qmi.c >>> @@ -1932,7 +1932,7 @@ static int ath11k_qmi_assign_target_mem_chunk(struct ath11k_base *ab) >>> if (!hremote_node) { >>> ath11k_dbg(ab, ATH11K_DBG_QMI, >>> "qmi fail to get hremote_node\n"); >>> - return ret; >>> + return -EINVAL; >>> } >>> >>> ret = of_address_to_resource(hremote_node, 0, &res); >>> -- >>> 2.35.1 >> >> Hi Michael, >> This is already solved in ath-next and 5.18-rc1: >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/net/wireless/ath/ath11k/qmi.c?h=v5.18-rc1&id=c9b41832dc080fa59bad597de94865b3ea2d5bab >> > > Hi Robert, > > Ah ok, then I worked with the wrong tree (wireless-drivers-next). > Sorry for the noise. wireless-drivers[-next] and mac80211[-next] trees are not in use anymore, we switched to using a common wireless and wireless-next trees: https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless.git/ https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git/
diff --git a/drivers/net/wireless/ath/ath11k/qmi.c b/drivers/net/wireless/ath/ath11k/qmi.c index 65d3c6ba35ae..81b2304b1fde 100644 --- a/drivers/net/wireless/ath/ath11k/qmi.c +++ b/drivers/net/wireless/ath/ath11k/qmi.c @@ -1932,7 +1932,7 @@ static int ath11k_qmi_assign_target_mem_chunk(struct ath11k_base *ab) if (!hremote_node) { ath11k_dbg(ab, ATH11K_DBG_QMI, "qmi fail to get hremote_node\n"); - return ret; + return -EINVAL; } ret = of_address_to_resource(hremote_node, 0, &res);
Function ath11k_qmi_assign_target_mem_chunk() returns a random value if of_parse_phandle() fails because the return variable ret is not initialized before calling of_parse_phandle(). Return -EINVAL to avoid possibly returning 0, which would be wrong here. Issue found by smatch. Signed-off-by: Michael Straube <straube.linux@gmail.com> --- drivers/net/wireless/ath/ath11k/qmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)