spinlock: Fix failing build for PREEMPT_RT

Since 1d71b30e1f85 ("sched.h: Move (spin|rwlock)_needbreak() to
spinlock.h") build fails for PREEMPT_RT, since there is no definition
available of either spin_needbreak() and rwlock_needbreak().

Since it was moved on the mentioned commit, it was placed inside a
!PREEMPT_RT part of the code, making it out of reach for an RT kernel.

Fix this by moving code it a few lines down so it can be reached by an
RT build, where it can also make use of the *_is_contended() definition
added by the spinlock_rt.h.

Fixes: d1d71b30e1f85 ("sched.h: Move (spin|rwlock)_needbreak() to
spinlock.h")
Signed-off-by: Leonardo Bras <leobras@redhat.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Acked-by: Waiman Long <longman@redhat.com>

authored by Leonardo Bras and committed by Kent Overstreet 5f4c01f1 1e2f2d31

Changed files
+6 -6
include
linux
+6 -6
include/linux/spinlock.h
··· 449 449 return raw_spin_is_contended(&lock->rlock); 450 450 } 451 451 452 + #define assert_spin_locked(lock) assert_raw_spin_locked(&(lock)->rlock) 453 + 454 + #else /* !CONFIG_PREEMPT_RT */ 455 + # include <linux/spinlock_rt.h> 456 + #endif /* CONFIG_PREEMPT_RT */ 457 + 452 458 /* 453 459 * Does a critical section need to be broken due to another 454 460 * task waiting?: (technically does not depend on CONFIG_PREEMPTION, ··· 485 479 return 0; 486 480 #endif 487 481 } 488 - 489 - #define assert_spin_locked(lock) assert_raw_spin_locked(&(lock)->rlock) 490 - 491 - #else /* !CONFIG_PREEMPT_RT */ 492 - # include <linux/spinlock_rt.h> 493 - #endif /* CONFIG_PREEMPT_RT */ 494 482 495 483 /* 496 484 * Pull the atomic_t declaration: