Looks good, minor comment below. > +void rate_control_get_rate(struct net_device *dev, > + struct ieee80211_hw_mode *mode, struct sk_buff *skb, > + struct rate_selection *sel) > + fc = le16_to_cpu(hdr->frame_control); > + if ((fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA || > + (hdr->addr1[0] & 0x01)) Please use is_multicast_ether_addr() > + /* If a forced rate is in effect, select it. */ > + sdata = IEEE80211_DEV_TO_SUB_IF(dev); > + if (sdata->bss && sdata->bss->force_unicast_rateidx > -1) > + sel->rate = &mode->rates[sdata->bss->force_unicast_rateidx]; > + > + /* If we haven't found the rate yet, ask the rate control algo. */ > + if (!sel->rate) > + ref->ops->get_rate(ref->priv, dev, mode, skb, sel); Maybe after this we should insert if (unlikely(!sel->rate)) { WARN_ON(1); sel->rate = rate_lowest(...); } Not sure though. johannes
Attachment:
signature.asc
Description: This is a digitally signed message part