staging: gdm72xx: protect access of rx / tx structs
This patch applies spinlock to protect access to rx / tx structs in
certain call sites, which fixes the following crash in gdm_suspend.
It also fixes usb_set_intfdata() in gdm_usb_probe to avoid setting an
already freed phy_dev.
<5>[ 4996.815018] [<
7f0074b0>] (gdm_suspend+0x1c/0x2b4 [gdmwm]) from [<
803020a4>] (usb_suspend_both+0x80/0x1a0)
<5>[ 4996.815055] [<
803020a4>] (usb_suspend_both+0x80/0x1a0) from [<
80302c84>] (usb_runtime_suspend+0x38/0x64)
<5>[ 4996.815089] [<
80302c84>] (usb_runtime_suspend+0x38/0x64) from [<
802becc0>] (__rpm_callback+0x48/0x78)
<5>[ 4996.815118] [<
802becc0>] (__rpm_callback+0x48/0x78) from [<
802bf8dc>] (rpm_suspend+0x394/0x5ec)
<5>[ 4996.815145] [<
802bf8dc>] (rpm_suspend+0x394/0x5ec) from [<
802c0550>] (pm_runtime_work+0x8c/0xa4)
<5>[ 4996.815177] [<
802c0550>] (pm_runtime_work+0x8c/0xa4) from [<
800456cc>] (process_one_work+0x264/0x438)
<5>[ 4996.815209] [<
800456cc>] (process_one_work+0x264/0x438) from [<
80045acc>] (worker_thread+0x22c/0x3b8)
<5>[ 4996.815239] [<
80045acc>] (worker_thread+0x22c/0x3b8) from [<
8004a43c>] (kthread+0x9c/0xa8)
<5>[ 4996.815270] [<
8004a43c>] (kthread+0x9c/0xa8) from [<
8000f160>] (kernel_thread_exit+0x0/0x8)
<0>[ 4996.815295] Code:
e92d4000 e8bd4000 e2800020 eb4ab9a1 (
e5905000)
Signed-off-by: Ben Chan <benchan@chromium.org>
Signed-off-by: Sameer Nanda <snanda@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>