1. 23 8月, 2009 2 次提交
  2. 22 6月, 2009 1 次提交
  3. 09 6月, 2009 3 次提交
  4. 30 5月, 2009 1 次提交
    • J
      net: convert unicast addr list · ccffad25
      Jiri Pirko 提交于
      This patch converts unicast address list to standard list_head using
      previously introduced struct netdev_hw_addr. It also relaxes the
      locking. Original spinlock (still used for multicast addresses) is not
      needed and is no longer used for a protection of this list. All
      reading and writing takes place under rtnl (with no changes).
      
      I also removed a possibility to specify the length of the address
      while adding or deleting unicast address. It's always dev->addr_len.
      
      The convertion touched especially e1000 and ixgbe codes when the
      change is not so trivial.
      Signed-off-by: NJiri Pirko <jpirko@redhat.com>
      
       drivers/net/bnx2.c               |   13 +--
       drivers/net/e1000/e1000_main.c   |   24 +++--
       drivers/net/ixgbe/ixgbe_common.c |   14 ++--
       drivers/net/ixgbe/ixgbe_common.h |    4 +-
       drivers/net/ixgbe/ixgbe_main.c   |    6 +-
       drivers/net/ixgbe/ixgbe_type.h   |    4 +-
       drivers/net/macvlan.c            |   11 +-
       drivers/net/mv643xx_eth.c        |   11 +-
       drivers/net/niu.c                |    7 +-
       drivers/net/virtio_net.c         |    7 +-
       drivers/s390/net/qeth_l2_main.c  |    6 +-
       drivers/scsi/fcoe/fcoe.c         |   16 ++--
       include/linux/netdevice.h        |   18 ++--
       net/8021q/vlan.c                 |    4 +-
       net/8021q/vlan_dev.c             |   10 +-
       net/core/dev.c                   |  195 +++++++++++++++++++++++++++-----------
       net/dsa/slave.c                  |   10 +-
       net/packet/af_packet.c           |    4 +-
       18 files changed, 227 insertions(+), 137 deletions(-)
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ccffad25
  5. 24 5月, 2009 1 次提交
  6. 21 5月, 2009 1 次提交
  7. 18 5月, 2009 2 次提交
    • V
      fcoe: adds spma mode support · 184dd345
      Vasu Dev 提交于
      If we can find a type NETDEV_HW_ADDR_T_SAN mac address from the
      corresponding netdev for a fcoe interface then sets up added the
      fc->ctlr.spma flag and stores spma mode address in ctl_src_addr.
      
      In case the spma flag is set then:-
      
       1. Adds spma mode MAC address in ctl_src_addr as secondary
          MAC address, the FLOGI for FIP and pre-FIP will go out
          using this address.
       2. Cleans up stored spma MAC address in ctl_src_addr in
          fcoe_netdev_cleanup.
       3. Sets up spma bit in fip_flags for FIP solicitations along
          with exiting FPMA bit setting.
       4. Initialize the FLOGI FIP MAC descriptor to stored spma
          MAC address in ctl_src_addr. This is used as proposed
          FCoE MAC address from initiator along with both SPMA
          and FPMA bit set in FIP solicitation, in response the
          switch may grant any FPMA or SPMA mode MAC address to
          initiator.
      
      Removes FIP descriptor type checking against ELS type
      ELS_FLOGI in fcoe_ctlr_encaps to update a FIP MAC descriptor,
      instead now checks against FIP_DT_FLOGI.
      
      I've tested this with available FPMA-only FCoE switch but
      since data_src_addr is updated using same old code for
      both FPMA and SPMA modes with FIP or pre-FIP links, so added
      SPMA mode will work with SPMA-only switch also provided that
      switch grants a valid MAC address.
      Signed-off-by: NVasu Dev <vasu.dev@intel.com>
      Signed-off-by: NYi Zou <yi.zou@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      184dd345
    • V
      fcoe: consolidates netdev related config and cleanup for spma mode · ab6b85c1
      Vasu Dev 提交于
      Currently fcoe_netdev_config adds netdev pkt handler for fcoe pkts,
      fcoe_if_create adds netdev pkt handler for fip packets, a secondary
      MAC address is added by fcoe_netdev_config and then later cleanup
      for these netdev related config/adds is done only during
      fcoe_if_destroy and no cleanup done on error during fcoe interface
      creation after above netdev config calling in fcoe_if_create.
      
      So this patch adds single func for above mentioned cleanup the
      fcoe_netdev_cleanup and then calls this func on either fcoe interface
      destroy or exiting from fcoe_if_create due to an error after fcoe/fip
      related above netdev config is done.
      
      Moved netdev pkt handler addition code blocks for fip pkts close to
      similar code block for foce pkt in fcoe_netdev_config, so that added
      fcoe_netdev_cleanup could be called on error from fcoe_netdev_config
      to undo these both additions for fcoe/fip pkt handlers. This move
      required reference to fcoe_fip_recv in fcoe_netdev_config, so moved
      fip related functions fcoe_fip_recv, fcoe_fip_send and
      fcoe_update_src_mac above fcoe_netdev_config.
      
      This consolidation will enable spma mode support in next patch to
      easily add or delete spma mode mac address beside fixing current
      no cleanup issue during error.
      Signed-off-by: NVasu Dev <vasu.dev@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ab6b85c1
  8. 27 4月, 2009 4 次提交
  9. 03 4月, 2009 12 次提交
  10. 14 3月, 2009 3 次提交
  11. 10 3月, 2009 8 次提交
  12. 07 3月, 2009 1 次提交
    • V
      [SCSI] libfc, fcoe: fixed locking issues with lport->lp_mutex around lport->link_status · bc0e17f6
      Vasu Dev 提交于
      The fcoe_xmit could call fc_pause in case the pending skb queue len is larger
      than FCOE_MAX_QUEUE_DEPTH, the fc_pause was trying to grab lport->lp_muex to
      change lport->link_status and that had these issues :-
      
      1. The fcoe_xmit was getting called with bh disabled, thus causing
      "BUG: scheduling while atomic" when grabbing lport->lp_muex with bh disabled.
      
      2. fc_linkup and fc_linkdown function calls lport_enter function with
      lport->lp_mutex held and these enter function in turn calls fcoe_xmit to send
      lport related FC frame, e.g. fc_linkup => fc_lport_enter_flogi to send flogi
      req. In this case grabbing the same lport->lp_mutex again in fc_puase from
      fcoe_xmit would cause deadlock.
      
      The lport->lp_mutex was used for setting FC_PAUSE in fcoe_xmit path but
      FC_PAUSE bit was not used anywhere beside just setting and clear this
      bit in lport->link_status, instead used a separate field qfull in fc_lport
      to eliminate need for lport->lp_mutex to track pending queue full condition
      and in turn avoid above described two locking issues.
      
      Also added check for lp->qfull in fc_fcp_lport_queue_ready to trigger
      SCSI_MLQUEUE_HOST_BUSY when lp->qfull is set to prevent more scsi-ml cmds
      while lp->qfull is set.
      
      This patch eliminated FC_LINK_UP and FC_PAUSE and instead used dedicated
      fields in fc_lport for this, this simplified all related conditional
      code.
      
      Also removed fc_pause and fc_unpause functions and instead used newly added
      lport->qfull directly in fcoe.
      Signed-off-by: NVasu Dev <vasu.dev@intel.com>
      Signed-off-by: NRobert Love <robert.w.love@intel.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      bc0e17f6
  13. 31 12月, 2008 1 次提交