1. 08 8月, 2008 2 次提交
  2. 07 8月, 2008 1 次提交
  3. 05 8月, 2008 5 次提交
    • A
      IB/ipath: Fix printk format warnings · 70117b9e
      Alexander Beregalov 提交于
          ipath_driver.c:1260: warning: format '%Lx' expects type 'long long unsigned int', but argument 6 has type 'long unsigned int'
          ipath_driver.c:1459: warning: format '%Lx' expects type 'long long unsigned int', but argument 4 has type 'u64'
          ipath_intr.c:358: warning: format '%Lx' expects type 'long long unsigned int', but argument 3 has type 'u64'
          ipath_intr.c:358: warning: format '%Lu' expects type 'long long unsigned int', but argument 6 has type 'u64'
          ipath_intr.c:1119: warning: format '%Lx' expects type 'long long unsigned int', but argument 5 has type 'u64'
          ipath_intr.c:1119: warning: format '%Lx' expects type 'long long unsigned int', but argument 3 has type 'u64'
          ipath_intr.c:1123: warning: format '%Lx' expects type 'long long unsigned int', but argument 3 has type 'u64'
          ipath_intr.c:1130: warning: format '%Lx' expects type 'long long unsigned int', but argument 4 has type 'u64'
          ipath_iba7220.c:1032: warning: format '%llx' expects type 'long long unsigned int', but argument 4 has type 'u64'
          ipath_iba7220.c:1045: warning: format '%llX' expects type 'long long unsigned int', but argument 3 has type 'u64'
          ipath_iba7220.c:2506: warning: format '%Lu' expects type 'long long unsigned int', but argument 4 has type 'u64'
      Signed-off-by: NAlexander Beregalov <a.beregalov@gmail.com>
      Cc: Sean Hefty <sean.hefty@intel.com>
      Cc: Hal Rosenstock <hal.rosenstock@gmail.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      70117b9e
    • S
      RDMA/cxgb3: Fix deadlock initializing iw_cxgb3 device · be43324d
      Steve Wise 提交于
      Running 'ifconfig up' on the cxgb3 interface with iw_cxgb3 loaded
      causes a deadlock.  The rtnl lock is already held in this path.  The
      function fw_supports_fastreg() was introduced in 2.6.27 to
      conditionally set the IB_DEVICE_MEM_MGT_EXTENSIONS bit iff the
      firmware was at 7.0 or greater, and this function also acquires the
      rtnl lock and which thus causes a deadlock.  Further, if iw_cxgb3 is
      loaded _after_ the nic interface is brought up, then the deadlock does
      not occur and therefore fw_supports_fastreg() does need to grab the
      rtnl lock in that path.
      
      It turns out this code is all useless anyway.  The low level driver
      will NOT allow the open if the firmware isn't 7.0, so iw_cxgb3 can
      always set the MEM_MGT_EXTENSIONS bit.  Simplify...
      Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      be43324d
    • S
      RDMA/cxgb3: Fix up MW access rights · 1c355a6e
      Steve Wise 提交于
      - MWs don't have local read/write permissions.
      - Set the MW_BIND enabled bit if a MR has MW_BIND access.
      Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      1c355a6e
    • S
      RDMA/cxgb3: Fix QP capabilities · 5f0f66b0
      Steve Wise 提交于
      - Set the stag0 and fastreg capability bits only for kernel qps.
      - QP_PRIV flag is no longer used, so don't set it.
      Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      5f0f66b0
    • R
      RDMA/cma: Remove padding arrays by using struct sockaddr_storage · 3f446754
      Roland Dreier 提交于
      There are a few places where the RDMA CM code handles IPv6 by doing
      
      	struct sockaddr		addr;
      	u8			pad[sizeof(struct sockaddr_in6) -
      				    sizeof(struct sockaddr)];
      
      This is fragile and ugly; handle this in a better way with just
      
      	struct sockaddr_storage	addr;
      
      [ Also roll in patch from Aleksey Senin <alekseys@voltaire.com> to
        switch to struct sockaddr_storage and get rid of padding arrays in
        struct rdma_addr. ]
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      3f446754
  4. 04 8月, 2008 1 次提交
  5. 02 8月, 2008 1 次提交
  6. 31 7月, 2008 1 次提交
    • V
      IB/ipath: Use unsigned long for irq flags · 52fd8ca6
      Vegard Nossum 提交于
      A few functions in the ipath driver incorrectly use unsigned int to
      hold irq flags for spin_lock_irqsave().
      
      This patch was generated using the Coccinelle framework with the
      following semantic patch:
      
      The semantic patch I used was this:
      
      @@
      expression lock;
      identifier flags;
      expression subclass;
      @@
      
      - unsigned int flags;
      + unsigned long flags;
      
      ...
      
      <+...
      
      (
       spin_lock_irqsave(lock, flags)
      |
       _spin_lock_irqsave(lock)
      |
       spin_unlock_irqrestore(lock, flags)
      |
       _spin_unlock_irqrestore(lock, flags)
      |
       read_lock_irqsave(lock, flags)
      |
       _read_lock_irqsave(lock)
      |
       read_unlock_irqrestore(lock, flags)
      |
       _read_unlock_irqrestore(lock, flags)
      |
       write_lock_irqsave(lock, flags)
      |
       _write_lock_irqsave(lock)
      |
       write_unlock_irqrestore(lock, flags)
      |
       _write_unlock_irqrestore(lock, flags)
      |
       spin_lock_irqsave_nested(lock, flags, subclass)
      |
       _spin_lock_irqsave_nested(lock, subclass)
      |
       spin_unlock_irqrestore(lock, flags)
      |
       _spin_unlock_irqrestore(lock, flags)
      |
       _raw_spin_lock_flags(lock, flags)
      |
       __raw_spin_lock_flags(lock, flags)
      )
      
      ...+>
      
      Cc: Ralph Campbell <ralph.campbell@qlogic.com>
      Cc: Julia Lawall <julia@diku.dk>
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: NVegard Nossum <vegard.nossum@gmail.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      52fd8ca6
  7. 30 7月, 2008 1 次提交
  8. 27 7月, 2008 1 次提交
    • F
      dma-mapping: add the device argument to dma_mapping_error() · 8d8bb39b
      FUJITA Tomonori 提交于
      Add per-device dma_mapping_ops support for CONFIG_X86_64 as POWER
      architecture does:
      
      This enables us to cleanly fix the Calgary IOMMU issue that some devices
      are not behind the IOMMU (http://lkml.org/lkml/2008/5/8/423).
      
      I think that per-device dma_mapping_ops support would be also helpful for
      KVM people to support PCI passthrough but Andi thinks that this makes it
      difficult to support the PCI passthrough (see the above thread).  So I
      CC'ed this to KVM camp.  Comments are appreciated.
      
      A pointer to dma_mapping_ops to struct dev_archdata is added.  If the
      pointer is non NULL, DMA operations in asm/dma-mapping.h use it.  If it's
      NULL, the system-wide dma_ops pointer is used as before.
      
      If it's useful for KVM people, I plan to implement a mechanism to register
      a hook called when a new pci (or dma capable) device is created (it works
      with hot plugging).  It enables IOMMUs to set up an appropriate
      dma_mapping_ops per device.
      
      The major obstacle is that dma_mapping_error doesn't take a pointer to the
      device unlike other DMA operations.  So x86 can't have dma_mapping_ops per
      device.  Note all the POWER IOMMUs use the same dma_mapping_error function
      so this is not a problem for POWER but x86 IOMMUs use different
      dma_mapping_error functions.
      
      The first patch adds the device argument to dma_mapping_error.  The patch
      is trivial but large since it touches lots of drivers and dma-mapping.h in
      all the architecture.
      
      This patch:
      
      dma_mapping_error() doesn't take a pointer to the device unlike other DMA
      operations.  So we can't have dma_mapping_ops per device.
      
      Note that POWER already has dma_mapping_ops per device but all the POWER
      IOMMUs use the same dma_mapping_error function.  x86 IOMMUs use device
      argument.
      
      [akpm@linux-foundation.org: fix sge]
      [akpm@linux-foundation.org: fix svc_rdma]
      [akpm@linux-foundation.org: build fix]
      [akpm@linux-foundation.org: fix bnx2x]
      [akpm@linux-foundation.org: fix s2io]
      [akpm@linux-foundation.org: fix pasemi_mac]
      [akpm@linux-foundation.org: fix sdhci]
      [akpm@linux-foundation.org: build fix]
      [akpm@linux-foundation.org: fix sparc]
      [akpm@linux-foundation.org: fix ibmvscsi]
      Signed-off-by: NFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Cc: Muli Ben-Yehuda <muli@il.ibm.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Avi Kivity <avi@qumranet.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8d8bb39b
  9. 26 7月, 2008 1 次提交
  10. 25 7月, 2008 5 次提交
  11. 23 7月, 2008 12 次提交
  12. 22 7月, 2008 3 次提交
  13. 15 7月, 2008 6 次提交
    • D
      netdev: Do not use TX lock to protect address lists. · b9e40857
      David S. Miller 提交于
      Now that we have a specific lock to protect the network
      device unicast and multicast lists, remove extraneous
      grabs of the TX lock in cases where the code only needs
      address list protection.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b9e40857
    • D
      netdev: Add netdev->addr_list_lock protection. · e308a5d8
      David S. Miller 提交于
      Add netif_addr_{lock,unlock}{,_bh}() helpers.
      
      Use them to protect operations that operate on or read
      the network device unicast and multicast address lists.
      
      Also use them in cases where the code simply wants to
      block calls into the driver's ->set_rx_mode() and
      ->set_multicast_list() methods.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e308a5d8
    • E
      IB/mlx4: Use kzalloc() for new QPs so flags are initialized to 0 · f507d28b
      Eli Cohen 提交于
      Current code uses kmalloc() and then just does a bitwise OR operation on
      qp->flags in create_qp_common(), which means that qp->flags may
      potentially have some unintended bits set.  This patch uses kzalloc()
      and avoids further explicit clearing of structure members, which also
      shrinks the code:
      
      add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-65 (-65)
      function                                     old     new   delta
      create_qp_common                            2024    1959     -65
      Signed-off-by: NEli Cohen <eli@mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      f507d28b
    • O
      RDMA/cma: Simplify locking needed for serialization of callbacks · de910bd9
      Or Gerlitz 提交于
      The RDMA CM has some logic in place to make sure that callbacks on a
      given CM ID are delivered to the consumer in a serialized manner.
      Specifically it has code to protect against a device removal racing
      with a running callback function.
      
      This patch simplifies this logic by using a mutex per ID instead of a
      wait queue and atomic variable.  This means that cma_disable_remove()
      now is more properly named to cma_disable_callback(), and
      cma_enable_remove() can now be removed because it just would become a
      trivial wrapper around mutex_unlock().
      Signed-off-by: NOr Gerlitz <ogerlitz@voltaire.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      de910bd9
    • O
      RDMA/addr: Keep pointer to netdevice in struct rdma_dev_addr · 64c5e613
      Or Gerlitz 提交于
      Keep a pointer to the local (src) netdevice in struct rdma_dev_addr,
      and copy it in as part of rdma_copy_addr().  Use rdma_translate_ip()
      in cma_new_conn_id() to reduce some code duplication and also make
      sure the src_dev member gets set.
      
      In a high-availability configuration the netdevice pointer can be used
      by the RDMA CM to align RDMA sessions to use the same links as the IP
      stack does under fail-over and route change cases.
      Signed-off-by: NOr Gerlitz <ogerlitz@voltaire.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      64c5e613
    • S
      RDMA/cxgb3: Fixes for zero STag · 4ab928f6
      Steve Wise 提交于
      Handling the zero STag in receive work request requires some extra
      logic in the driver:
      
       - Only set the QP_PRIV bit for kernel mode QPs.
      
      - Add a zero STag build function for recv wrs. The uP needs a PBL
        allocated and passed down in the recv WR so it can construct a HW
        PBL for the zero STag S/G entries.  Note: we need to place a few
        restrictions on zero STag usage because of this:
      
        1) all SGEs in a recv WR must either be zero STag or not.  No mixing.
      
        2) an individual SGE length cannot exceed 128MB for a zero-stag SGE.
           This should be OK since it's not really practical to allocate
           such a large chunk of pinned contiguous DMA mapped memory.
      
      - Add an optimized non-zero-STag recv wr format for kernel users.
        This is needed to optimize both zero and non-zero STag cracking in
        the recv path for kernel users.
      
       - Remove the iwch_ prefix from the static build functions.
      
       - Bump required FW version.
      Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
      4ab928f6