git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
mac80211: Early detection of broken mesh paths when using minstrel.
[pandora-kernel.git]
/
net
/
mac80211
/
rc80211_minstrel.c
diff --git
a/net/mac80211/rc80211_minstrel.c
b/net/mac80211/rc80211_minstrel.c
index
3ea9740
..
0071649
100644
(file)
--- a/
net/mac80211/rc80211_minstrel.c
+++ b/
net/mac80211/rc80211_minstrel.c
@@
-51,6
+51,7
@@
#include <linux/random.h>
#include <linux/ieee80211.h>
#include <net/mac80211.h>
#include <linux/random.h>
#include <linux/ieee80211.h>
#include <net/mac80211.h>
+#include "mesh.h"
#include "rate.h"
#include "rc80211_minstrel.h"
#include "rate.h"
#include "rc80211_minstrel.h"
@@
-178,9
+179,14
@@
minstrel_tx_status(void *priv, struct ieee80211_supported_band *sband,
if ((i != IEEE80211_TX_MAX_RATES - 1) && (ar[i + 1].idx < 0)) {
mi->r[ndx].success += success;
if ((i != IEEE80211_TX_MAX_RATES - 1) && (ar[i + 1].idx < 0)) {
mi->r[ndx].success += success;
- if (si)
+ if (si)
{
si->fail_avg = (18050 - mi->r[ndx].probability)
/ 180;
si->fail_avg = (18050 - mi->r[ndx].probability)
/ 180;
+ WARN_ON(si->fail_avg > 100);
+ if (si->fail_avg == 100 &&
+ ieee80211_vif_is_mesh(&si->sdata->vif))
+ mesh_plink_broken(si);
+ }
}
}
}
}