its-g5: Remove the limitation for the OCB_ONLY channels

The IEEE 802.11 standard may be interpreted in the way
that allows OCB operation on the channels which are not
in 5.9GHz band (this implementation labels them as
"OCB_ONLY").

This may help during testing as well (OCB operation in
2GHz band).

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
its-g5: Remove useless chan. check since it is already in ieee80211_vif_use_channel()

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
its-g5: We definitely do not need to be promiscuous

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
its-g5: Fix comments

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
its-g5: Use only the mandatory rates

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
its-g5: Change OCB housekeeping time intervals

The previous value was used for testing.
The new one is once again just guessed but is more aggressive
than the previous one.

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
its-g5: Fix coding style according to the checkpatch.pl report

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
its-g5: Add kerneldoc comments

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
its-g5: Besides the WARN_ON terminate the function execution

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
its-g5: Simplify struct initialization to all 0's

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
its-g5: No reason to use the channel context exclusively

"There is no reason for using the channel context exclusively
since the channel is fixed, and doesn't change like in
IBSS, afaict? IBSS needs this, but only because it might
change the channel on the fly."
-- J. Berg

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
its-g5: Add new fields to the end of the enum only -- this is ABI

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
its-g5: Define bssid_wildcard only locally for one occurence

Use appropriate "broadcast_ether_addr" functions where
possible.

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
its-g5: Do not mix "new" 5/10 MHz channels with "old channel type" functions

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
its-g5: Since join() handles the channel setting, this is incorrect

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
its-g5: Remove dead code / comments

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
its-g5: Must be atomic

Backtrace:
ieee80211_ocb_rx_no_sta()
prepare_for_handlers()
ieee80211_prepare_and_rx_handle()
__ieee80211_rx_handle_packet()

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
its-g5: Add explicit OCB connection state + Fix housekeeping timer

Until now we were unable to distinguish either we were joined
to an OCB network or not. Add 'state' field to struct
ieee80211_if_ocb that is set in "_join" and "_leave" functions.

Since the timer handler might be called during del_timer_sync,
it would cause execution of the ieee80211_ocb_work that would
once again reenable the timer. Add check if we are still connected
to the OCB network in ieee80211_ocb_work. If we are not just
leave the function.

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
its-g5: Update comments

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
its-g5: replace 'state' field with 'joined'

Since the only state we need to distinguish is if the device
is connected to the network or not, the 'state' filed is an
overhead -- replace it with simple "bool joined"

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>