diff options
Diffstat (limited to 'net/rds/iw_cm.c')
-rw-r--r-- | net/rds/iw_cm.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/net/rds/iw_cm.c b/net/rds/iw_cm.c index 0ffaa3e97ad6..a416b0d492b1 100644 --- a/net/rds/iw_cm.c +++ b/net/rds/iw_cm.c | |||
@@ -659,7 +659,11 @@ void rds_iw_conn_shutdown(struct rds_connection *conn) | |||
659 | 659 | ||
660 | /* Clear the ACK state */ | 660 | /* Clear the ACK state */ |
661 | clear_bit(IB_ACK_IN_FLIGHT, &ic->i_ack_flags); | 661 | clear_bit(IB_ACK_IN_FLIGHT, &ic->i_ack_flags); |
662 | rds_iw_set_64bit(&ic->i_ack_next, 0); | 662 | #ifdef KERNEL_HAS_ATOMIC64 |
663 | atomic64_set(&ic->i_ack_next, 0); | ||
664 | #else | ||
665 | ic->i_ack_next = 0; | ||
666 | #endif | ||
663 | ic->i_ack_recv = 0; | 667 | ic->i_ack_recv = 0; |
664 | 668 | ||
665 | /* Clear flow control state */ | 669 | /* Clear flow control state */ |
@@ -693,6 +697,9 @@ int rds_iw_conn_alloc(struct rds_connection *conn, gfp_t gfp) | |||
693 | 697 | ||
694 | INIT_LIST_HEAD(&ic->iw_node); | 698 | INIT_LIST_HEAD(&ic->iw_node); |
695 | mutex_init(&ic->i_recv_mutex); | 699 | mutex_init(&ic->i_recv_mutex); |
700 | #ifndef KERNEL_HAS_ATOMIC64 | ||
701 | spin_lock_init(&ic->i_ack_lock); | ||
702 | #endif | ||
696 | 703 | ||
697 | /* | 704 | /* |
698 | * rds_iw_conn_shutdown() waits for these to be emptied so they | 705 | * rds_iw_conn_shutdown() waits for these to be emptied so they |