1. 31 10月, 2009 1 次提交
    • A
      RDS: Fix potential race around rds_i[bw]_allocation · 86357b19
      Andy Grover 提交于
      "At rds_ib_recv_refill_one(), it first executes atomic_read(&rds_ib_allocation)
      for if-condition checking,
      
      and then executes atomic_inc(&rds_ib_allocation) if the condition was
      not satisfied.
      
      However, if any other code which updates rds_ib_allocation executes
      between these two atomic operation executions,
      it seems that it may result race condition. (especially when
      rds_ib_allocation + 1 == rds_ib_sysctl_max_recv_allocation)"
      
      This patch fixes this by using atomic_inc_unless to eliminate the
      possibility of allocating more than rds_ib_sysctl_max_recv_allocation
      and then decrementing the count if the allocation fails. It also
      makes an identical change to the iwarp transport.
      Reported-by: NShin Hong <hongshin@gmail.com>
      Signed-off-by: NAndy Grover <andy.grover@oracle.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      86357b19
  2. 20 7月, 2009 2 次提交
  3. 10 4月, 2009 1 次提交
  4. 02 4月, 2009 1 次提交
  5. 27 2月, 2009 1 次提交