]> git.baikalelectronics.ru Git - kernel.git/commit
mac80211: Fix a case of incorrect metric used when forwarding a PREQ
authorAlexis Green <agreen@cococorp.com>
Tue, 9 Jun 2015 23:20:24 +0000 (16:20 -0700)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 10 Jun 2015 09:52:59 +0000 (11:52 +0200)
commitd4f2b5d463184dbe6d3aa6e80e8e947b22eedc2f
tree4251124de2077506eaa68a5f2cf5780e66b7859c
parent78e7ef5d18d868956ad1f0ec12e7f7c95b424597
mac80211: Fix a case of incorrect metric used when forwarding a PREQ

This patch fixes a bug in hwmp_preq_frame_process where the wrong metric
can be used when forwarding a PREQ. This happens because the code uses
the same metric variable to record the value of the metric to the source
of the PREQ and the value of the metric to the target of the PREQ.

This comes into play when both reply and forward are set which happens
when IEEE80211_PREQ_PROACTIVE_PREP_FLAG is set and when MP_F_DO | MP_F_RF
is set. The original code had a special case to handle the first case
but not the second.

The patch uses distinct variables for the two metrics which makes the
code flow much clearer and removes the need to restore the original
value of metric when forwarding.

Signed-off-by: Alexis Green <agreen@cococorp.com>
CC: Jesse Jones <jjones@cococorp.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/mesh_hwmp.c