• Gavin Shan's avatar
    net/tg3: Fix kernel crash · d8af4dfd
    Gavin Shan authored
    While EEH error happens, we might not have network device instance
    (struct net_device) yet. So we can't access the instance safely and
    check its link state, which causes kernel crash. The patch fixes it.
    
    EEH: Frozen PE#2 on PHB#3 detected
    EEH: This PCI device has failed 1 times in the last hour
    EEH: Notify device drivers to shutdown
    (NULL net_device): PCI I/O error detected
    Unable to handle kernel paging request for data at address 0x00000048
    Faulting instruction address: 0xd00000001c9387a8
    Oops: Kernel access of bad area, sig: 11 [#1]
    SMP NR_CPUS=1024 NUMA PowerNV
    :
    NIP [d00000001c9387a8] .tg3_io_error_detected+0x78/0x2a0 [tg3]
    LR [d00000001c9387a4] .tg3_io_error_detected+0x74/0x2a0 [tg3]
    Call Trace:
    [c000003f93a0f960] [d00000001c9387a4] .tg3_io_error_detected+0x74/0x2a0 [tg3]
    [c000003f93a0fa30] [c00000000003844c] .eeh_report_error+0xac/0x120
    [c000003f93a0fac0] [c0000000000371bc] .eeh_pe_dev_traverse+0x8c/0x150
    [c000003f93a0fb60] [c000000000038858] .eeh_handle_normal_event+0x128/0x3d0
    [c000003f93a0fbf0] [c000000000038db8] .eeh_handle_event+0x2b8/0x2c0
    [c000003f93a0fc90] [c000000000038e80] .eeh_event_handler+0xc0/0x170
    [c000003f93a0fd30] [c0000000000cc000] .kthread+0xf0/0x100
    [c000003f93a0fe30] [c00000000000a0dc] .ret_from_kernel_thread+0x5c/0x80
    Reported-by: default avatarWei Yang <weiyang@linux.vnet.ibm.com>
    Signed-off-by: default avatarGavin Shan <shangw@linux.vnet.ibm.com>
    Acked-by: default avatarNithin Nayak Sujir <nsujir@broadcom.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    d8af4dfd
tg3.c 456 KB