• Anish Bhatt's avatar
    dcbnl : Disable software interrupts before taking dcb_lock · 52cff74e
    Anish Bhatt authored
    Solves possible lockup issues that can be seen from firmware DCB agents calling
    into the DCB app api.
    
    DCB firmware event queues can be tied in with NAPI so that dcb events are
    generated in softIRQ context. This can results in calls to dcb_*app()
    functions which try to take the dcb_lock.
    
    If the the event triggers while we also have the dcb_lock because lldpad or
    some other agent happened to be issuing a  get/set command we could see a cpu
    lockup.
    
    This code was not originally written with firmware agents in mind, hence
    grabbing dcb_lock from softIRQ context was not considered.
    Signed-off-by: default avatarAnish Bhatt <anish@chelsio.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    52cff74e
dcbnl.c 48.6 KB