From: ftillier Date: Fri, 29 Jul 2005 00:17:08 +0000 (+0000) Subject: Optimized locking in SA request send path X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=ef5ed61ad1c5e5b980f495cadc159eb801fcc8aa;p=~shefty%2Frdma-win.git Optimized locking in SA request send path git-svn-id: svn://openib.tc.cornell.edu/gen1@44 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86 --- diff --git a/trunk/core/al/kernel/al_proxy_subnet.c b/trunk/core/al/kernel/al_proxy_subnet.c index 73eddb1a..df7d86d8 100644 --- a/trunk/core/al/kernel/al_proxy_subnet.c +++ b/trunk/core/al/kernel/al_proxy_subnet.c @@ -258,9 +258,11 @@ proxy_send_sa_req( goto proxy_send_sa_req_err1; } + /* Synchronize with callbacks. */ + cl_spinlock_acquire( &p_context->h_al->obj.lock ); + /* Track the request. */ - hdl = - al_hdl_lock_insert( p_context->h_al, p_sa_req, AL_OBJ_TYPE_H_SA_REQ ); + hdl = al_hdl_insert( p_context->h_al, p_sa_req, AL_OBJ_TYPE_H_SA_REQ ); if( hdl == AL_INVALID_HANDLE ) { ib_status = IB_INSUFFICIENT_MEMORY; @@ -281,9 +283,6 @@ proxy_send_sa_req( p_ioctl->in.sa_req.p_attr = p_ioctl->in.attr; - /* Synchronize with callbacks. */ - cl_spinlock_acquire( &p_context->h_al->obj.lock ); - /* * We never pass the user-mode flag when sending SA requests - the * I/O manager will perform all synchronization to make this IRP sync