72 preempt_disable();
73 rwlock_acquire_read(&lock->dep_map, 0, 0, _RET_IP_);
74 LOCK_CONTENDED(lock, _raw_read_trylock, _raw_read_lock);
75}
76EXPORT_SYMBOL(_read_lock);
77
78unsigned long __lockfunc _spin_lock_irqsave(spinlock_t *lock)
79{
80 unsigned long flags;
81
82 local_irq_save(flags);
83 preempt_disable();
84 spin_acquire(&lock->dep_map, 0, 0, _RET_IP_);
85
86
87
88
89
90#ifdef CONFIG_LOCKDEP
91 LOCK_CONTENDED(lock, _raw_spin_trylock, _raw_spin_lock);
92#else
93 _raw_spin_lock_flags(lock, &flags);
94#endif
95 return flags;
96}
97EXPORT_SYMBOL(_spin_lock_irqsave);
98
99void __lockfunc _spin_lock_irq(spinlock_t *lock)
100{
101 local_irq_disable();
102 preempt_disable();
103 spin_acquire(&lock->dep_map, 0, 0, _RET_IP_);
104 LOCK_CONTENDED(lock, _raw_spin_trylock, _raw_spin_lock);
105}
106EXPORT_SYMBOL(_spin_lock_irq);
107
108void __lockfunc _spin_lock_bh(spinlock_t *lock)
109{
110 local_bh_disable();
111 preempt_disable();
112 spin_acquire(&lock->dep_map, 0, 0, _RET_IP_);