Not necessarily. Applications may choose to retry a certain number of times and fallback to another mechanism if the critical section can't complete.
A problematic case that was brought up on LKML was the interaction with debuggers and unexpected page faults, see this comment: https://lwn.net/Articles/738119/