drm/amd/display: handler not correctly checked at remove_irq_handler
[why] handler is supposedly passed in as a function pointer; however, the entire struct amdgpu_dm_irq_handler_data gets from the list is used to check match. [how] use the interrupt_handler within amdgpu_dm_irq_handler_data for checking match. Signed-off-by: Qingqing Zhuo <qingqing.zhuo@amd.com> Acked-by: Bindu Ramamurthy <bindu.r@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
462fbeb1fc
commit
ea96b12aa4
@ -165,7 +165,10 @@ static struct list_head *remove_irq_handler(struct amdgpu_device *adev,
|
|||||||
handler = list_entry(entry, struct amdgpu_dm_irq_handler_data,
|
handler = list_entry(entry, struct amdgpu_dm_irq_handler_data,
|
||||||
list);
|
list);
|
||||||
|
|
||||||
if (ih == handler) {
|
if (handler == NULL)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (ih == handler->handler) {
|
||||||
/* Found our handler. Remove it from the list. */
|
/* Found our handler. Remove it from the list. */
|
||||||
list_del(&handler->list);
|
list_del(&handler->list);
|
||||||
handler_removed = true;
|
handler_removed = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user