Skip to content
  • Kamlakant Patel's avatar
    ipmi_ssif: Fix kernel panic at msg_done_handler · 6eaf0dd1
    Kamlakant Patel authored
    [ Upstream commit f002612b
    
     ]
    
    This happens when BMC doesn't return any data and the code is trying
    to print the value of data[2].
    
    Getting following crash:
    [  484.728410] Unable to handle kernel NULL pointer dereference at virtual address 00000002
    [  484.736496] pgd = ffff0000094a2000
    [  484.739885] [00000002] *pgd=00000047fcffe003, *pud=00000047fcffd003, *pmd=0000000000000000
    [  484.748158] Internal error: Oops: 96000005 [#1] SMP
    [...]
    [  485.101451] Call trace:
    [...]
    [  485.188473] [<ffff000000a46e68>] msg_done_handler+0x668/0x700 [ipmi_ssif]
    [  485.195249] [<ffff000000a456b8>] ipmi_ssif_thread+0x110/0x128 [ipmi_ssif]
    [  485.202038] [<ffff0000080f1430>] kthread+0x108/0x138
    [  485.206994] [<ffff0000080838e0>] ret_from_fork+0x10/0x30
    [  485.212294] Code: aa1903e1 aa1803e0 b900227f 95fef6a5 (39400aa3)
    
    Adding a check to validate the data len before printing data[2] to fix this issue.
    
    Signed-off-by: default avatarKamlakant Patel <kamlakant.patel@cavium.com>
    Signed-off-by: default avatarCorey Minyard <cminyard@mvista.com>
    Signed-off-by: default avatarSasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    6eaf0dd1