powerpc/eeh: Check handle_eeh_events() return value
Function eeh_event_handler() dereferences the pointer returned by handle_eeh_events() without checking, causing a crash if NULL was returned, which is expected in some situations. This patch fixes this bug by checking for the value returned by handle_eeh_events() before dereferencing it. Signed-off-by: Kleber Sacilotto de Souza <klebers@linux.vnet.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> CC: stable@vger.kernel.org [v3.4+]
This commit is contained in:
parent
26b0d14106
commit
10db8d2128
1 changed files with 4 additions and 2 deletions
|
@ -85,8 +85,10 @@ static int eeh_event_handler(void * dummy)
|
||||||
set_current_state(TASK_INTERRUPTIBLE); /* Don't add to load average */
|
set_current_state(TASK_INTERRUPTIBLE); /* Don't add to load average */
|
||||||
edev = handle_eeh_events(event);
|
edev = handle_eeh_events(event);
|
||||||
|
|
||||||
eeh_clear_slot(eeh_dev_to_of_node(edev), EEH_MODE_RECOVERING);
|
if (edev) {
|
||||||
pci_dev_put(edev->pdev);
|
eeh_clear_slot(eeh_dev_to_of_node(edev), EEH_MODE_RECOVERING);
|
||||||
|
pci_dev_put(edev->pdev);
|
||||||
|
}
|
||||||
|
|
||||||
kfree(event);
|
kfree(event);
|
||||||
mutex_unlock(&eeh_event_mutex);
|
mutex_unlock(&eeh_event_mutex);
|
||||||
|
|
Loading…
Reference in a new issue