drm/msm/dp: reset drm_dev to NULL at dp_display_unbind()
During msm initialize phase, dp_display_unbind() will be called to undo
initializations had been done by dp_display_bind() previously if there is
error happen at msm_drm_bind. Under this kind of circumstance, drm_device
may not be populated completed which causes system crash at drm_dev_dbg().
This patch reset drm_dev to NULL so that following drm_dev_dbg() will not
refer to any internal fields of drm_device to prevent system from crashing.
Below are panic stack trace,
[ 53.584904] Unable to handle kernel paging request at virtual address
0000000070018001
.
[ 53.702212] Hardware name: Qualcomm Technologies, Inc. sc7280 CRD platform (rev5+) (DT)
[ 53.710445] pstate:
20400009 (nzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 53.717596] pc : string_nocheck+0x1c/0x64
[ 53.721738] lr : string+0x54/0x60
[ 53.725162] sp :
ffffffc013d6b650
[ 53.728590] pmr_save:
000000e0
[ 53.731743] x29:
ffffffc013d6b650 x28:
0000000000000002 x27:
0000000000ffffff
[ 53.739083] x26:
ffffffc013d6b710 x25:
ffffffd07a066ae0 x24:
ffffffd07a419f97
[ 53.746420] x23:
ffffffd07a419f99 x22:
ffffff81fef360d4 x21:
ffffff81fef364d4
[ 53.753760] x20:
ffffffc013d6b6f8 x19:
ffffffd07a06683c x18:
0000000000000000
[ 53.761093] x17:
4020386678302f30 x16:
00000000000000b0 x15:
ffffffd0797523c8
[ 53.768429] x14:
0000000000000004 x13:
ffff0000ffffff00 x12:
ffffffd07a066b2c
[ 53.775780] x11:
0000000000000000 x10:
000000000000013c x9 :
0000000000000000
[ 53.783117] x8 :
ffffff81fef364d4 x7 :
0000000000000000 x6 :
0000000000000000
[ 53.790445] x5 :
0000000000000000 x4 :
ffff0a00ffffff04 x3 :
ffff0a00ffffff04
[ 53.797783] x2 :
0000000070018001 x1 :
ffffffffffffffff x0 :
ffffff81fef360d4
[ 53.805136] Call trace:
[ 53.807667] string_nocheck+0x1c/0x64
[ 53.811439] string+0x54/0x60
[ 53.814498] vsnprintf+0x374/0x53c
[ 53.818009] pointer+0x3dc/0x40c
[ 53.821340] vsnprintf+0x398/0x53c
[ 53.824854] vscnprintf+0x3c/0x88
[ 53.828274] __trace_array_vprintk+0xcc/0x2d4
[ 53.832768] trace_array_printk+0x8c/0xb4
[ 53.836900] drm_trace_printf+0x74/0x9c
[ 53.840875] drm_dev_dbg+0xfc/0x1b8
[ 53.844480] dp_pm_suspend+0x70/0xf8
[ 53.848164] dpm_run_callback+0x60/0x1a0
[ 53.852222] __device_suspend+0x304/0x3f4
[ 53.856363] dpm_suspend+0xf8/0x3a8
[ 53.859959] dpm_suspend_start+0x8c/0xc0
Fixes:
570d3e5d28db ("drm/msm/dp: stop event kernel thread when DP unbind")
Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Patchwork: https://patchwork.freedesktop.org/patch/490756/
Link: https://lore.kernel.org/r/1655927731-22396-1-git-send-email-quic_khsieh@quicinc.com
Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>