qcacld-3.0: Fix a beacon template update dead loop
When sap is started, a dead loop for beacon template updating
can happen due to the following conditions:
1) before vdev start happens for sap, he_ops will be retrieved
from the ie buffer imposed by upper layer, and bss color
initial setup will also be retrieved here and then updated
to session->he_op;
2) and it happens at least in some cases, that session->he_op.
bss_col_disabled will be set to true, but due to there is
actually no bss color changing really happening here, no
new color will be setup here;
3) later when sap is running and starts to do beaconing, it
will start to check if session->he_op.bss_col_disabled is
setup to true, and if yes, new beacon template will be
issued to fw;
4) later on, fw finishes the beacon template setup and sends
a notification to driver in beacon tx success event, and
driver will go back to steps 3) to check
session->he_op.bss_col_disabled again;
If no real bss color change happens here, step 3) and 4) will
loop forever.
Fix the above dead loop by introducing check of
session->he_bss_color_change.new_color before driver code starts
to inspect the bss color change countdown value and updating
beacon template to fw.
Change-Id: I4a32ce9f547e988087c769ad8fab2973582ce6e4
CRs-Fixed: 2764896
1 file changed