• Baoquan He's avatar
    bnx2: Reset device during driver initialization · 3e1be7ad
    Baoquan He authored
    When system enters into kdump kernel because of kernel panic, it won't
    shutdown devices. On-flight DMA will continue transferring data until
    device driver initializes. All devices are supposed to reset during
    driver initialization. And this property is used to fix the kdump
    failure in system with intel iommu. Other systems with hardware iommu
    should be similar. Please check commit 091d42e4 ("iommu/vt-d: Copy
    translation tables from old kernel") and those commits around.
    
    But bnx2 driver doesn't reset device during driver initialization. The
    device resetting is deferred to net device up stage. This will cause
    hardware iommu handling failure on bnx2 device. And its resetting relies
    on firmware. So in this patch move the firmware requesting code to earlier
    bnx2_init_one(), then next call bnx2_reset_chip to reset device.
    Signed-off-by: default avatarBaoquan He <bhe@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    3e1be7ad
bnx2.c 216 KB