2016-05-27 08:50:17

by Arend van Spriel

[permalink] [raw]
Subject: [PATCH V5] brcmfmac: print errors if creating interface fails

From: Rafał Miłecki <[email protected]>

This is helpful for debugging. Without this all I was getting from "iw"
command on failed creating of P2P interface was:
> command failed: Too many open files in system (-23)

Signed-off-by: Rafal Milecki <[email protected]>
[[email protected]: reduce error prints upon iface creation]
Signed-off-by: Arend van Spriel <[email protected]>
---
V2: s/in/if/ in commit message
V3: Add one more error message as suggested by Arend
V4: Also update brcmf_cfg80211_add_iface & print error for AP
V5: remove error prints from p2p.c
---
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 12 ++++++++++--
drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c | 2 --
2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
index d0631b6..64ed003 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
@@ -671,18 +671,26 @@ static struct wireless_dev *brcmf_cfg80211_add_iface(struct wiphy *wiphy,
wdev = brcmf_ap_add_vif(wiphy, name, flags, params);
if (!IS_ERR(wdev))
brcmf_cfg80211_update_proto_addr_mode(wdev);
- return wdev;
+ break;
case NL80211_IFTYPE_P2P_CLIENT:
case NL80211_IFTYPE_P2P_GO:
case NL80211_IFTYPE_P2P_DEVICE:
wdev = brcmf_p2p_add_vif(wiphy, name, name_assign_type, type, flags, params);
if (!IS_ERR(wdev))
brcmf_cfg80211_update_proto_addr_mode(wdev);
- return wdev;
+ break;
case NL80211_IFTYPE_UNSPECIFIED:
default:
return ERR_PTR(-EINVAL);
}
+
+ if (IS_ERR(wdev))
+ brcmf_err("add iface %s type %d failed: err=%d\n",
+ name, type, PTR_ERR(wdev));
+ else
+ brcmf_cfg80211_update_proto_addr_mode(wdev);
+
+ return wdev;
}

static void brcmf_scan_config_mpc(struct brcmf_if *ifp, int mpc)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
index a70cda6..a812381 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
@@ -2030,8 +2030,6 @@ static int brcmf_p2p_request_p2p_if(struct brcmf_p2p_info *p2p,

err = brcmf_fil_iovar_data_set(ifp, "p2p_ifadd", &if_request,
sizeof(if_request));
- if (err)
- return err;

return err;
}
--
1.9.1



2016-05-27 09:15:29

by Arend van Spriel

[permalink] [raw]
Subject: Re: [PATCH V5] brcmfmac: print errors if creating interface fails

On 27-5-2016 11:13, Julian Calaby wrote:
> Hi Arend,
>
> On Fri, May 27, 2016 at 6:49 PM, Arend van Spriel <[email protected]> wrote:
>> From: Rafał Miłecki <[email protected]>
>>
>> This is helpful for debugging. Without this all I was getting from "iw"
>> command on failed creating of P2P interface was:
>>> command failed: Too many open files in system (-23)
>>
>> Signed-off-by: Rafal Milecki <[email protected]>
>> [[email protected]: reduce error prints upon iface creation]
>> Signed-off-by: Arend van Spriel <[email protected]>
>> ---
>> V2: s/in/if/ in commit message
>> V3: Add one more error message as suggested by Arend
>> V4: Also update brcmf_cfg80211_add_iface & print error for AP
>> V5: remove error prints from p2p.c
>> ---
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 12 ++++++++++--
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c | 2 --
>> 2 files changed, 10 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
>> index d0631b6..64ed003 100644
>> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
>> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
>> @@ -671,18 +671,26 @@ static struct wireless_dev *brcmf_cfg80211_add_iface(struct wiphy *wiphy,
>> wdev = brcmf_ap_add_vif(wiphy, name, flags, params);
>> if (!IS_ERR(wdev))
>> brcmf_cfg80211_update_proto_addr_mode(wdev);
>> - return wdev;
>> + break;
>> case NL80211_IFTYPE_P2P_CLIENT:
>> case NL80211_IFTYPE_P2P_GO:
>> case NL80211_IFTYPE_P2P_DEVICE:
>> wdev = brcmf_p2p_add_vif(wiphy, name, name_assign_type, type, flags, params);
>> if (!IS_ERR(wdev))
>> brcmf_cfg80211_update_proto_addr_mode(wdev);
>> - return wdev;
>> + break;
>> case NL80211_IFTYPE_UNSPECIFIED:
>> default:
>> return ERR_PTR(-EINVAL);
>> }
>> +
>> + if (IS_ERR(wdev))
>> + brcmf_err("add iface %s type %d failed: err=%d\n",
>> + name, type, PTR_ERR(wdev));
>> + else
>> + brcmf_cfg80211_update_proto_addr_mode(wdev);
>
> Doesn't this now get called twice?

I already had it fixed in my editor, but forgot the 'git commit' step
:-( Anyway, I noticed it reading back the patch email and hence there is
already a V6.

Regards,
Arend

> Thanks,
>

2016-05-27 09:13:30

by Julian Calaby

[permalink] [raw]
Subject: Re: [PATCH V5] brcmfmac: print errors if creating interface fails

Hi Arend,

On Fri, May 27, 2016 at 6:49 PM, Arend van Spriel <[email protected]> wrote:
> From: Rafał Miłecki <[email protected]>
>
> This is helpful for debugging. Without this all I was getting from "iw"
> command on failed creating of P2P interface was:
>> command failed: Too many open files in system (-23)
>
> Signed-off-by: Rafal Milecki <[email protected]>
> [[email protected]: reduce error prints upon iface creation]
> Signed-off-by: Arend van Spriel <[email protected]>
> ---
> V2: s/in/if/ in commit message
> V3: Add one more error message as suggested by Arend
> V4: Also update brcmf_cfg80211_add_iface & print error for AP
> V5: remove error prints from p2p.c
> ---
> drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 12 ++++++++++--
> drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c | 2 --
> 2 files changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> index d0631b6..64ed003 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> @@ -671,18 +671,26 @@ static struct wireless_dev *brcmf_cfg80211_add_iface(struct wiphy *wiphy,
> wdev = brcmf_ap_add_vif(wiphy, name, flags, params);
> if (!IS_ERR(wdev))
> brcmf_cfg80211_update_proto_addr_mode(wdev);
> - return wdev;
> + break;
> case NL80211_IFTYPE_P2P_CLIENT:
> case NL80211_IFTYPE_P2P_GO:
> case NL80211_IFTYPE_P2P_DEVICE:
> wdev = brcmf_p2p_add_vif(wiphy, name, name_assign_type, type, flags, params);
> if (!IS_ERR(wdev))
> brcmf_cfg80211_update_proto_addr_mode(wdev);
> - return wdev;
> + break;
> case NL80211_IFTYPE_UNSPECIFIED:
> default:
> return ERR_PTR(-EINVAL);
> }
> +
> + if (IS_ERR(wdev))
> + brcmf_err("add iface %s type %d failed: err=%d\n",
> + name, type, PTR_ERR(wdev));
> + else
> + brcmf_cfg80211_update_proto_addr_mode(wdev);

Doesn't this now get called twice?

Thanks,

--
Julian Calaby

Email: [email protected]
Profile: http://www.google.com/profiles/julian.calaby/