• Michael Chan's avatar
    cnic: Fix occasional NULL pointer dereference during reboot. · a2028b23
    Michael Chan authored
    We register with bnx2x before we allocate ctx_tbl structure, so it is
    possible for bnx2x to call cnic_ctl before the structure is allocated.
    This can sometimes cause NULL pointer dereference of cp->ctx_tbl.  We
    fix this by adding simple checking for valid state before proceeding.
    The cnic_ctl call is RCU protected so we don't have to deal with race
    conditions.
    
    Because of the additional checking, we need to finish the shutdown
    before clearing the CNIC_UP flag.
    Signed-off-by: default avatarMichael Chan <mchan@broadcom.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    a2028b23
cnic.c 145 KB