On 27-1-2017 13:09, Arend van Spriel wrote: > The wowlan support is (partially) determined dynamic by checking the > device/firmware capabilities. So they can differ per device. So it > is not possible to use a static global. Instead use the global as a > template and use kmemdup(). When kmemdup() fails the template is used > unmodified. > > Reviewed-by: Hante Meuleman <hante.meuleman@xxxxxxxxxxxx> > Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@xxxxxxxxxxxx> > Reviewed-by: Franky Lin <franky.lin@xxxxxxxxxxxx> > Signed-off-by: Arend van Spriel <arend.vanspriel@xxxxxxxxxxxx> > --- > .../broadcom/brcm80211/brcmfmac/cfg80211.c | 26 ++++++++++++++++------ > 1 file changed, 19 insertions(+), 7 deletions(-) > > diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c > index c81d78f..9d5a561 100644 > --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c > +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c > @@ -6339,7 +6339,7 @@ static void brcmf_wiphy_pno_params(struct wiphy *wiphy) > } > > #ifdef CONFIG_PM > -static struct wiphy_wowlan_support brcmf_wowlan_support = { > +static const struct wiphy_wowlan_support brcmf_wowlan_support = { > .flags = WIPHY_WOWLAN_MAGIC_PKT | WIPHY_WOWLAN_DISCONNECT, > .n_patterns = BRCMF_WOWL_MAXPATTERNS, > .pattern_max_len = BRCMF_WOWL_MAXPATTERNSIZE, > @@ -6352,21 +6352,29 @@ static void brcmf_wiphy_wowl_params(struct wiphy *wiphy, struct brcmf_if *ifp) > { > #ifdef CONFIG_PM > struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy); > + struct wiphy_wowlan_support *wowlan_support; > + > + wowlan_support = kmemdup(&brcmf_wowlan_support, > + sizeof(brcmf_wowlan_support), GFP_KERNEL); > + if (!wowlan_support) { > + brcmf_err("only support basic wowlan features\n"); > + wiphy->wowlan = &brcmf_wowlan_support; > + return; > + } > > if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_PNO)) { > if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_WOWL_ND)) { > - brcmf_wowlan_support.flags |= WIPHY_WOWLAN_NET_DETECT; > - brcmf_wowlan_support.max_nd_match_sets = > - BRCMF_PNO_MAX_PFN_COUNT; > + wowlan_support->flags |= WIPHY_WOWLAN_NET_DETECT; > + wowlan_support->max_nd_match_sets = BRCMF_PNO_MAX_PFN_COUNT; Did not checkpatch these before sending. This is over 80 chars so please drop this series and I will send a V2. Regards, Arend