|
@@ -677,26 +677,21 @@ brcmf_fws_find_mac_desc(struct brcmf_fws_info *fws, struct brcmf_if *ifp,
|
|
|
{
|
|
|
struct brcmf_fws_mac_descriptor *entry = &fws->desc.other;
|
|
|
bool multicast;
|
|
|
- enum nl80211_iftype iftype;
|
|
|
|
|
|
multicast = is_multicast_ether_addr(da);
|
|
|
- iftype = brcmf_cfg80211_get_iftype(ifp);
|
|
|
|
|
|
- /* Multicast destination and P2P clients get the interface entry.
|
|
|
- * STA gets the interface entry if there is no exact match. For
|
|
|
- * example, TDLS destinations have their own entry.
|
|
|
+ /* Multicast destination, STA and P2P clients get the interface entry.
|
|
|
+ * STA/GC gets the Mac Entry for TDLS destinations, TDLS destinations
|
|
|
+ * have their own entry.
|
|
|
*/
|
|
|
- entry = NULL;
|
|
|
- if ((multicast || iftype == NL80211_IFTYPE_STATION ||
|
|
|
- iftype == NL80211_IFTYPE_P2P_CLIENT) && ifp->fws_desc)
|
|
|
+ if (multicast && ifp->fws_desc) {
|
|
|
entry = ifp->fws_desc;
|
|
|
-
|
|
|
- if (entry != NULL && iftype != NL80211_IFTYPE_STATION)
|
|
|
goto done;
|
|
|
+ }
|
|
|
|
|
|
entry = brcmf_fws_mac_descriptor_lookup(fws, da);
|
|
|
if (IS_ERR(entry))
|
|
|
- entry = &fws->desc.other;
|
|
|
+ entry = ifp->fws_desc;
|
|
|
|
|
|
done:
|
|
|
return entry;
|