1. 03 11月, 2008 1 次提交
  2. 04 10月, 2008 1 次提交
  3. 01 10月, 2008 3 次提交
  4. 15 7月, 2008 1 次提交
  5. 30 4月, 2008 3 次提交
  6. 24 4月, 2008 1 次提交
    • R
      RDMA/nes: Remove volatile qualifier from struct nes_hw_cq.cq_vbase · 31d1e340
      Roland Dreier 提交于
      Remove the volatile qualifier from the cq_vbase member of struct
      nes_hw_cq, and add an rmb() in the one place where it looks like
      access order might make a difference.  As usual, removing a volatile
      qualifier in a declaration is actually a bug fix, since a volatile
      qualifier is not sufficient to make sure that aggressively
      out-of-order CPUs don't reorder things and cause incorrect results.
      
      For example, a CPU might speculatively execute reads of other cqe
      fields before the NIC hardware has written those fields and before it
      has set the NES_CQE_VALID bit (even though those reads come after the
      test of the NES_CQE_VALID bit in program order), but then when the CPU
      actually executes the conditional test of the NES_CQE_VALID, the bit
      has been set, and the CPU will proceed with the results of the earlier
      speculative execution and end up using bogus data.
      
      This also gets rid of the warning:
      
          drivers/infiniband/hw/nes/nes_verbs.c: In function 'nes_destroy_cq':
          drivers/infiniband/hw/nes/nes_verbs.c:1978: warning: passing argument 3 of 'pci_free_consistent' discards qualifiers from pointer target type
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      31d1e340
  7. 27 2月, 2008 1 次提交
  8. 05 2月, 2008 1 次提交