On 19-4-2016 16:25, Dan Carpenter wrote:
> Smatch complains about this code:
>
> drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c:335
> brcmf_rx_hdrpull()
> error: we previously assumed '*ifp' could be null (see line 333)
>
> The problem is that we recently changed these from "ifp" to "*ifp" but
> there was one that we didn't update.
>
> - if (ret || !ifp || !ifp->ndev) {
> + if (ret || !(*ifp) || !(*ifp)->ndev) {
> if (ret != -ENODATA && ifp)
> ^^^
> - ifp->stats.rx_errors++;
> + (*ifp)->stats.rx_errors++;
>
> I have updated it to *ifp as well. We always call this function is a
> non-NULL "ifp" pointer, btw.
Great. Maybe we (Broadcom) should consider running smatch on our patch
series or simply rely on your excellent work :-p. Thanks for catching this.
Acked-by: Arend van Spriel <[email protected]>
> Fixes: c462ebcdfe42 ('brcmfmac: create common function for handling
> brcmf_proto_hdrpull()')
> Signed-off-by: Dan Carpenter <[email protected]>
>
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
> b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
> index 1b476d1..b590499 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
> @@ -331,7 +331,7 @@ static int brcmf_rx_hdrpull(struct brcmf_pub *drvr,
> struct sk_buff *skb,
> ret = brcmf_proto_hdrpull(drvr, true, skb, ifp);
>
> if (ret || !(*ifp) || !(*ifp)->ndev) {
> - if (ret != -ENODATA && ifp)
> + if (ret != -ENODATA && *ifp)
> (*ifp)->stats.rx_errors++;
> brcmu_pkt_buf_free_skb(skb);
> return -ENODATA;
>
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html