On Thu, Nov 26, 2015 at 01:43:40PM +0000, Russell King - ARM Linux wrote: > As of 3c3b177a9369 ("reservation: add suppport for read-only access > using rcu") linux/reservation.h uses lockdep macros: > > +#define reservation_object_held(obj) lockdep_is_held(&(obj)->lock.base) > > This results in build errors when lockdep is disabled as lockdep_is_held() > is only available when lockdep is enabled. This has been reported today > to break the etnaviv kernel driver, which we're hoping to submit for 4.5. > > As this gets used with rcu_dereference_protected(), eg: > > static inline struct reservation_object_list * > reservation_object_get_list(struct reservation_object *obj) > { > return rcu_dereference_protected(obj->fence, > reservation_object_held(obj)); > } > > I'm guessing that it's not going to be a simple case of making it always > return true or always return false. > > Any ideas how to solve this? The usual approach is something like this: #ifdef CONFIG_PROVE_LOCKING #define reservation_object_held(obj) lockdep_is_held(&(obj)->lock.base) #else #define reservation_object_held(obj) true #endif Thanx, Paul _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel