1. 18 1月, 2009 1 次提交
  2. 06 1月, 2009 1 次提交
  3. 30 12月, 2008 1 次提交
  4. 06 12月, 2008 6 次提交
  5. 02 12月, 2008 2 次提交
  6. 28 10月, 2008 1 次提交
  7. 17 10月, 2008 1 次提交
  8. 30 9月, 2008 1 次提交
  9. 21 9月, 2008 1 次提交
  10. 24 8月, 2008 1 次提交
  11. 16 8月, 2008 2 次提交
  12. 05 8月, 2008 1 次提交
    • 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
  13. 02 8月, 2008 1 次提交
  14. 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
  15. 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
  16. 22 7月, 2008 1 次提交
  17. 15 7月, 2008 3 次提交
    • R
      IB/ipath: Use IEEE OUI for vendor_id reported by ibv_query_device() · df866619
      Ralph Campbell 提交于
      The IB spe. for SubnGet(NodeInfo) and query HCA says that the vendor
      ID field should be the IEEE OUI assigned to the vendor.  The ipath
      driver was returning the PCI vendor ID instead.  This will affect
      applications which call ibv_query_device().  The old value was
      0x001fc1 or 0x001077, the new value is 0x001175.
      
      The vendor ID doesn't appear to be exported via /sys so that should
      reduce possible compatibility issues.  I'm only aware of Open MPI as a
      major application which depends on this change, and they have made
      necessary adjustments.
      Signed-off-by: NRalph Campbell <ralph.campbell@qlogic.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      df866619
    • S
      RDMA/core: Add memory management extensions support · 00f7ec36
      Steve Wise 提交于
      This patch adds support for the IB "base memory management extension"
      (BMME) and the equivalent iWARP operations (which the iWARP verbs
      mandates all devices must implement).  The new operations are:
      
       - Allocate an ib_mr for use in fast register work requests.
      
       - Allocate/free a physical buffer lists for use in fast register work
         requests.  This allows device drivers to allocate this memory as
         needed for use in posting send requests (eg via dma_alloc_coherent).
      
       - New send queue work requests:
         * send with remote invalidate
         * fast register memory region
         * local invalidate memory region
         * RDMA read with invalidate local memory region (iWARP only)
      
      Consumer interface details:
      
       - A new device capability flag IB_DEVICE_MEM_MGT_EXTENSIONS is added
         to indicate device support for these features.
      
       - New send work request opcodes IB_WR_FAST_REG_MR, IB_WR_LOCAL_INV,
         IB_WR_RDMA_READ_WITH_INV are added.
      
       - A new consumer API function, ib_alloc_mr() is added to allocate
         fast register memory regions.
      
       - New consumer API functions, ib_alloc_fast_reg_page_list() and
         ib_free_fast_reg_page_list() are added to allocate and free
         device-specific memory for fast registration page lists.
      
       - A new consumer API function, ib_update_fast_reg_key(), is added to
         allow the key portion of the R_Key and L_Key of a fast registration
         MR to be updated.  Consumers call this if desired before posting
         a IB_WR_FAST_REG_MR work request.
      
      Consumers can use this as follows:
      
       - MR is allocated with ib_alloc_mr().
      
       - Page list memory is allocated with ib_alloc_fast_reg_page_list().
      
       - MR R_Key/L_Key "key" field is updated with ib_update_fast_reg_key().
      
       - MR made VALID and bound to a specific page list via
         ib_post_send(IB_WR_FAST_REG_MR)
      
       - MR made INVALID via ib_post_send(IB_WR_LOCAL_INV),
         ib_post_send(IB_WR_RDMA_READ_WITH_INV) or an incoming send with
         invalidate operation.
      
       - MR is deallocated with ib_dereg_mr()
      
       - page lists dealloced via ib_free_fast_reg_page_list().
      
      Applications can allocate a fast register MR once, and then can
      repeatedly bind the MR to different physical block lists (PBLs) via
      posting work requests to a send queue (SQ).  For each outstanding
      MR-to-PBL binding in the SQ pipe, a fast_reg_page_list needs to be
      allocated (the fast_reg_page_list is owned by the low-level driver
      from the consumer posting a work request until the request completes).
      Thus pipelining can be achieved while still allowing device-specific
      page_list processing.
      
      The 32-bit fast register memory key/STag is composed of a 24-bit index
      and an 8-bit key.  The application can change the key each time it
      fast registers thus allowing more control over the peer's use of the
      key/STag (ie it can effectively be changed each time the rkey is
      rebound to a page list).
      Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      00f7ec36
    • R
      fd91b1bf
  18. 21 6月, 2008 2 次提交
  19. 07 6月, 2008 1 次提交
  20. 27 5月, 2008 2 次提交
    • R
      IB/ipath: Fix device capability flags · 03031f71
      Ralph Campbell 提交于
      The driver supports a few features (RNR NAK, port active event, SRQ
      resize) that were not reported in the device capability flags.  This
      patch fixes that.
      Signed-off-by: NRalph Campbell <ralph.campbell@qlogic.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      03031f71
    • R
      IB/ipath: Avoid test_bit() on u64 SDMA status value · e8ffef73
      Roland Dreier 提交于
      Gabriel C <nix.or.die@googlemail.com> pointed out that when the x86
      bitops are updated to operate on unsigned long, the code in
      sdma_abort_task() will produce warnings:
      
          drivers/infiniband/hw/ipath/ipath_sdma.c: In function 'sdma_abort_task':
          drivers/infiniband/hw/ipath/ipath_sdma.c:267: warning: passing argument 2 of 'constant_test_bit' from incompatible pointer type
      
      and so on, because it uses test_bit() to operation on a u64 value
      (returned by ipath_read_kref64() for a hardware register).
      
      Fix up these warnings by converting the test_bit() operations to &ing
      with appropriate symbolic defines of the bits within the hardware
      register.  This has the benign side-effect of making the code more
      self-documenting as well.
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      e8ffef73
  21. 19 5月, 2008 1 次提交
  22. 16 5月, 2008 2 次提交
    • R
      IB/ipath: Fix UC receive completion opcode for RDMA WRITE with immediate · df3f0da8
      Ralph Campbell 提交于
      When I fixed the RC receive completion opcode in 2bfc8e9e ("IB/ipath:
      Return the correct opcode for RDMA WRITE with immediate"), I forgot to
      fix UC, which had the same problem for RDMA write with immediate
      returning the wrong opcode.
      Signed-off-by: NRalph Campbell <ralph.campbell@qlogic.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      df3f0da8
    • R
      IB/ipath: Fix printk format for ipath_sdma_status · cd80ec6f
      Roland Dreier 提交于
      Commit f018c7e1 ("IB/ipath: Change ipath_devdata.ipath_sdma_status to be
      unsigned long") changed ipath_sdma_status to be unsigned long, but left
      a few debug messages that printed it out with a %016llx format, which
      generates the warnings
      
          drivers/infiniband/hw/ipath/ipath_sdma.c:348: warning: format '%016llx' expects type 'long long unsigned int', but argument  3 has type 'long unsigned int'
          drivers/infiniband/hw/ipath/ipath_sdma.c:618: warning: format '%016llx' expects type 'long long unsigned int', but argument  3 has type 'long unsigned int'
      
      Fix this by changing the format used to print out the value to %08lx
      (8 hex digits are now sufficient, because the highest bit used is 31).
      
      Warnings reported by Randy Dunlap <randy.dunlap@oracle.com>.
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      cd80ec6f
  23. 14 5月, 2008 5 次提交
  24. 08 5月, 2008 1 次提交
    • J
      IB/ipath: Fix SDMA error recovery in absence of link status change · ab69b3cf
      John Gregor 提交于
      What's fixed:
      
          in ipath_cancel_sends()
      
              We need to unconditionally set ABORTING.  So, swap the tests
              so the set_bit() isn't shadowed by the &&.
      
              If we've disarmed the piobufs, then we need to unconditionally
              set DISARMED.  So, move it out from the overly protective if
              at the bottom.
      
          in sdma_abort_task()
      
              Abort_task was written knowing that the SDMA engine would always
              be reset (and restarted) on error.  A recent change broke that
              fundamental assumption by taking the restart portion and making
              it conditional on a link status change.  But, SDMA can go boom
              without a link status change in some conditions.
      Signed-off-by: NJohn Gregor <john.gregor@qlogic.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      ab69b3cf