Resolve the recursive deadlock detected by enable Kernel hacking config flags
below is the output of the mutex detect crash dump.
To avoid this fix we need to use try_mutex_lock(Mutex).
--------------------------------------------------------------------
[    5.241673] =============================================
[    5.247082] [ INFO: possible recursive locking detected ]
[    5.252492] 3.10.47-82787-g9e6549d #6 Not tainted
[    5.257207] ---------------------------------------------
[    5.262616] swapper/0/1 is trying to acquire lock:
[    5.267417]  (*Mutex){+.+...}, at: [<804d8334>] gckOS_AcquireMutex+0x28/0x74
[    5.274583]
[    5.274583] but task is already holding lock:
[    5.280427]  (*Mutex){+.+...}, at: [<804d8348>] gckOS_AcquireMutex+0x3c/0x74
[    5.287576]
[    5.287576] other info that might help us debug this:
[    5.294115]  Possible unsafe locking scenario:
[    5.294115]
[    5.300046]        CPU0
[    5.302502]        ----
[    5.304957]   lock(*Mutex);
[    5.307802]   lock(*Mutex);
[    5.310648]
[    5.310648]  *** DEADLOCK ***
[    5.310648]
[    5.316580]  May be due to missing lock nesting notation
[    5.316580]
[    5.323380] 3 locks held by swapper/0/1:
[    5.327312]  #0:  (&__lockdep_no_validate__){......}, at: [<8036ff80>] __driver_attach+0x48/0x94
[    5.336229]  #1:  (&__lockdep_no_validate__){......}, at: [<8036ff90>] __driver_attach+0x58/0x94
[    5.345137]  #2:  (*Mutex){+.+...}, at: [<804d8348>] gckOS_AcquireMutex+0x3c/0x74
[    5.352741]
[    5.352741] stack backtrace:
[    5.357114] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.10.47-82787-g9e6549d #6
[    5.364459] [<80015100>] (unwind_backtrace+0x0/0x128) from [<80012404>] (show_stack+0x10/0x14)
[    5.373098] [<80012404>] (show_stack+0x10/0x14) from [<8007f524>] (validate_chain.isra.23+0x8e0/0x1384)
[    5.382511] [<8007f524>] (validate_chain.isra.23+0x8e0/0x1384) from [<800838bc>] (__lock_acquire+0xa94/0xc70)
[    5.392444] [<800838bc>] (__lock_acquire+0xa94/0xc70) from [<800840ac>] (lock_acquire+0x88/0x9c)
[    5.401256] [<800840ac>] (lock_acquire+0x88/0x9c) from [<806b0e6c>] (mutex_lock_nested+0x78/0x41c)
[    5.410237] [<806b0e6c>] (mutex_lock_nested+0x78/0x41c) from [<804d8334>] (gckOS_AcquireMutex+0x28/0x74)
[    5.419738] [<804d8334>] (gckOS_AcquireMutex+0x28/0x74) from [<804d8e3c>] (gckOS_GetPhysicalAddressProcess+0x2c/0x140)
[    5.430454] [<804d8e3c>] (gckOS_GetPhysicalAddressProcess+0x2c/0x140) from [<804d8f94>] (gckOS_GetPhysicalAddress+0x44/0x5c)
[    5.441703] [<804d8f94>] (gckOS_GetPhysicalAddress+0x44/0x5c) from [<804eaa7c>] (gckHARDWARE_ConvertLogical+0x28/0x8c)
[    5.452419] [<804eaa7c>] (gckHARDWARE_ConvertLogical+0x28/0x8c) from [<804eabd8>] (gckHARDWARE_WaitLink+0x54/0xcc)
[    5.462786] [<804eabd8>] (gckHARDWARE_WaitLink+0x54/0xcc) from [<804df5d4>] (gckCOMMAND_Start+0x70/0xc8)
[    5.472285] [<804df5d4>] (gckCOMMAND_Start+0x70/0xc8) from [<804eeb1c>] (gckHARDWARE_SetPowerManagementState+0x6d8/0xb38)
[    5.483259] [<804eeb1c>] (gckHARDWARE_SetPowerManagementState+0x6d8/0xb38) from [<804d609c>] (gckGALDEVICE_Start+0x50/0xc8)
[    5.494407] [<804d609c>] (gckGALDEVICE_Start+0x50/0xc8) from [<804d6fb4>] (gpu_probe+0x4b4/0x760)
[    5.503300] [<804d6fb4>] (gpu_probe+0x4b4/0x760) from [<8036fcec>] (driver_probe_device+0x164/0x36c)
[    5.512452] [<8036fcec>] (driver_probe_device+0x164/0x36c) from [<8036ffa8>] (__driver_attach+0x70/0x94)
[    5.521952] [<8036ffa8>] (__driver_attach+0x70/0x94) from [<8036de88>] (bus_for_each_dev+0x4c/0xa0)
[    5.531016] [<8036de88>] (bus_for_each_dev+0x4c/0xa0) from [<8036f210>] (bus_add_driver+0xec/0x28c)
[    5.540081] [<8036f210>] (bus_add_driver+0xec/0x28c) from [<803705d0>] (driver_register+0xa8/0x140)
[    5.549145] [<803705d0>] (driver_register+0xa8/0x140) from [<800086fc>] (do_one_initcall+0xc8/0x174)
[    5.558297] [<800086fc>] (do_one_initcall+0xc8/0x174) from [<80cf7c80>] (kernel_init_freeable+0x130/0x1dc)
[    5.567980] [<80cf7c80>] (kernel_init_freeable+0x130/0x1dc) from [<806a39cc>] (kernel_init+0xc/0x160)
[    5.577221] [<806a39cc>] (kernel_init+0xc/0x160) from [<8000ec18>] (ret_from_fork+0x14/0x3c)