mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
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,
|
||||
list);
|
||||
|
||||
if (ih == handler) {
|
||||
if (handler == NULL)
|
||||
continue;
|
||||
|
||||
if (ih == handler->handler) {
|
||||
/* Found our handler. Remove it from the list. */
|
||||
list_del(&handler->list);
|
||||
handler_removed = true;
|
||||
|
Loading…
Reference in New Issue
Block a user