Michael Wu wrote:
On Thursday 03 May 2007 21:21, Larry Finger wrote:
+static int ieee80211_ioctl_giwrate(struct net_device *dev,
+ struct iw_request_info *info,
+ struct iw_param *rate, char *extra)
+{
+ struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
+ struct sta_info * sta;
+ struct ieee80211_sub_if_data * sdata;
Eliminate the spaces between * and the variable name.
+
+ sdata = IEEE80211_DEV_TO_SUB_IF(dev);
+ if (sdata->type == IEEE80211_IF_TYPE_STA ||
+ sdata->type == IEEE80211_IF_TYPE_IBSS)
+ sta = sta_info_get(local, sdata->u.sta.bssid);
+ else
+ return -EOPNOTSUPP;
+ if (!sta)
+ return -ENODEV;
+ rate->value = local->oper_hw_mode->rates[sta->txrate].rate * 100000;
The index from sta->txrate needs to be checked to make sure it is less than
mode->num_rates.
Also, this function is safe in adhoc mode.. but it most likely won't do
anything useful since all the sta entries have different addresses and it is
likely that none of them are the same as the one in sdata->u.sta.bssid.
Why has the review of this patch been so strung out? Everything you comment on here was in versions
1 & 2, but not mentioned in any review of those versions.
As to the usefulness of this function, I am testing in infrastructure, not ad-hoc, mode, and the
output matches the average rate in the log files if debugging is enabled. If the address in
u.sta.bssid is not correct, which address should I be using? I still maintain that the user is
entitled to know the transmission rate from user space even if debugging is turned off, and that
this function is needed.
Larry
-
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html