local/net: bcm4358: fix panic when unregistering p2p interface 38/118838/2 accepted/tizen_common accepted/tizen_ivi accepted/tizen_mobile accepted/tizen_tv accepted/tizen_wearable accepted/tizen/common/20170316.161713 accepted/tizen/ivi/20170316.101834 accepted/tizen/mobile/20170316.101734 accepted/tizen/tv/20170316.101804 accepted/tizen/unified/20170316.101853 accepted/tizen/wearable/20170316.101819 submit/tizen/20170316.045621
authorSeung-Woo Kim <sw0312.kim@samsung.com>
Tue, 14 Mar 2017 07:48:23 +0000 (16:48 +0900)
committerSeung-Woo Kim <sw0312.kim@samsung.com>
Tue, 14 Mar 2017 08:34:49 +0000 (17:34 +0900)
commite0ecd277a4fcb406ea12de11ea54810d10b34440
treec9a381b5982344175b6a09dd40aa7168a778e9d4
parent5bebbd20229bfd80782eeb9e62387436091124eb
local/net: bcm4358: fix panic when unregistering p2p interface

When unregistering p2p interface, following kernel panic occurs:

   BUG: failure at mm/slub.c:3413/kfree()!
   Kernel panic - not syncing: BUG!
   CPU: 1 PID: 2698 Comm: wpa_supplicant Not tainted 4.1.36-arm64-tm2 #1
   ...
   [<ffffffc000a6bc78>] panic+0xf0/0x234
   [<ffffffc00019cc1c>] show_slab_objects+0x0/0x264
   [<ffffffc0009e2204>] nl80211_set_wowlan+0x748/0x81c
   ...

It is because kfree(wdev->wiphy->wowlan_config) is called from
cfg80211_rdev_free_wowlan(), but it is assigned with const struct
pointer from the commit c1cdee9f047f ("LOCAL / net: bcm4358: set
wowlan_config for broadcom driver"). So this patch fixes to assign
it with kmemdup.

Change-Id: Ia924d27d7f262dfd0b49d61ee0214f2ae24fb5c7
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
drivers/net/wireless/bcmdhd4358/wl_cfg80211.c