Shirley> It's better to use semaphore instead of atomic_read to Shirley> check the reference count 0 in wait_event() in Shirley> ib_unregister_mad_agent(). Agree? I don't see how one uses a semaphore to wait for a reference count to become zero (semaphores sleep until their count is non-zero). - R.