LGTM! If no one has any objections, I would be happy to see this considered for upstream. Reviewed-by: Abhishek Kumar <kuabhs@xxxxxxxxxxxx> Thanks Abhishek On Tue, Dec 15, 2020 at 9:30 AM Youghandhar Chintala <youghand@xxxxxxxxxxxxxx> wrote: > > Many wifi drivers (e.g. ath10k using qualcomm wifi chipsets) > support silent target hardware restart/recovery. Out of these > drivers which support target hw restart, certain chipsets > have the wifi mac sequence number addition for transmitted > frames done by the firmware. For such chipsets, a silent > target hardware restart breaks the continuity of the wifi > mac sequence number, since the wifi mac sequence number > restarts from 0 after the restart, which in-turn leads > to the peer access point dropping all the frames from device > until it receives the frame with the mac sequence which was > expected by the AP. > > Add a wiphy flag for the driver to indicate that it needs a > trigger for STA disconnect after hardware restart. > > Tested on ath10k using WCN3990, QCA6174. > > Signed-off-by: Youghandhar Chintala <youghand@xxxxxxxxxxxxxx> > --- > include/net/cfg80211.h | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h > index ab249ca..7fba6f6 100644 > --- a/include/net/cfg80211.h > +++ b/include/net/cfg80211.h > @@ -4311,6 +4311,9 @@ struct cfg80211_ops { > * @WIPHY_FLAG_HAS_STATIC_WEP: The device supports static WEP key installation > * before connection. > * @WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK: The device supports bigger kek and kck keys > + * @WIPHY_FLAG_STA_DISCONNECT_ON_HW_RESTART: The device needs a trigger to > + * disconnect STA after target hardware restart. This flag should be > + * exposed by drivers which support target recovery. > */ > enum wiphy_flags { > WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK = BIT(0), > @@ -4337,6 +4340,7 @@ enum wiphy_flags { > WIPHY_FLAG_SUPPORTS_5_10_MHZ = BIT(22), > WIPHY_FLAG_HAS_CHANNEL_SWITCH = BIT(23), > WIPHY_FLAG_HAS_STATIC_WEP = BIT(24), > + WIPHY_FLAG_STA_DISCONNECT_ON_HW_RESTART = BIT(25), > }; > > /** > -- > 2.7.4 >