exynos: Store mwifiex_ds_misc_subsc_evt in mwifiex_private
Since mwifiex_ds_misc_subsc_evt is used in an asynchronous case, store
the structure in the long-lived mwifiex_private instead of on the
calling stack.
Ideally, we would use this storage for the synchronous case, as well,
and explicitly clear the buffer on the "end" of the operation such that
we could prove only one message was in flight and that we were never
corrupting another. That would require a more invasive change to create
such an "end".
This fixes a problem where the response of the asynchronous operation
would corrupt a stack frame potentially in use by a different thread.
BUG=chrome-os-partner:12367
TEST=Walked back and forth between Wifi access points on the same
network while poster circle was actively animating on the screen (this
constant flushing of KDS resources creates an easy-to-recognize panic
when this corruption occurs), watching the wifi reset without panic.
Change-Id: I06b9c522d1f50e0de1c5754399d154cfd93830a4
Signed-off-by: Jeff Disher <disher@google.com>
Reviewed-on: https://gerrit.chromium.org/gerrit/31473
Reviewed-by: Sam Leffler <sleffler@chromium.org>
Commit-Ready: Jeff Disher <disher@chromium.org>
Tested-by: Jeff Disher <disher@chromium.org>