• Joe Eykholt's avatar
    [SCSI] libfcoe: fcoe: simplify receive FLOGI response · 386309ce
    Joe Eykholt authored
    There was a locking problem where the fip->lock was held during
    the call to update_mac().  The rtnl_lock() must be taken before
    the fip->lock, not the other way around.  This fixes that.
    
    Now that fcoe_ctlr_recv_flog() is called only from the response handler
    to a FLOGI request, some checking can be eliminated.  Instead of calling
    update_mac(), just fill in the granted_mac address for the passed-in
    frame (skb).
    
    Eliminate the passed-in source MAC address since it is also in the skb.
    
    Also, in fcoe, call fcoe_set_src_mac() directly instead of going thru
    the fip function pointer.  This will generate less code.
    Then, since fip isn't needed for LOGO response, use lport as the arg.
    Signed-off-by: default avatarJoe Eykholt <jeykholt@cisco.com>
    Signed-off-by: default avatarRobert Love <robert.w.love@intel.com>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
    386309ce
libfcoe.c 37.4 KB