mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-28 16:56:26 +00:00
- Remove if_not_guard() as it is generating incorrect code
- Fix the initialization of the fake lockdep_map for the first locked ww_mutex -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmdWw3gACgkQEsHwGGHe VUp7sQ//VM2HI27bo5iODm7bu7IhiFfAQkAcRcivBbyj0oUW57etF5l+dBLeC+kr sTTHg2iBqMaMcM1tzGEdJqfNs7dK+MWhn5STA2LXsVTBq72tbhAtLeX5oONS/V8h BeAPARB5pl5L9rQwy+FZ0Q9/XuFNhbMQhX4JxZn+FB3cg3PImC8Hjm0aKlNznB9e JRPhjLohoAoQ0Ty5zXJQWhShh6WLkAmec4OaBzQ+W4wGMLoNd80HgM/3ufTxDTbV I1+snOrOq9OR/00OUkuIFQyB50r/4/B5wNtTtlI2UsIjf1YuB03BeIApykc7ARB4 zdZGFvliNdPJjSyY/ein7gqsI+JirpPd5oSaICsAJ5nNGgL+lxfSfw2cv+S3jWz7 AJxiFweSQS4fVH/6FxpQ+5e0louqf5f0FgQy17X1vL0imnaZoUKDaHGJd+VGR4hE Rpee3/rqh5dFEODxMR87GjEcU+j/LZ/fWzAi/ciZ168YOA8LXeSC0ROvfsy3KhhD Eall0M96yqnhEDBZ3KacHguldLQpYhsMUxz8wVmICqPoYYZ31OvqhwmF1K13a1eL iKoPoFc2A4bdpBd144myZt8NkKpOAI4CPp74wDN1baj0HGKGuif477M5tiCWay3D bQ6FV1dhSLPjd/0GmdfZGJlIS89keS43cNilnCJYOMDalUcybw4= =SGkT -----END PGP SIGNATURE----- Merge tag 'locking_urgent_for_v6.13_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull locking fixes from Borislav Petkov: - Remove if_not_guard() as it is generating incorrect code - Fix the initialization of the fake lockdep_map for the first locked ww_mutex * tag 'locking_urgent_for_v6.13_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: headers/cleanup.h: Remove the if_not_guard() facility locking/ww_mutex: Fix ww_mutex dummy lockdep map selftest warnings
This commit is contained in:
commit
7cb1b46631
@ -273,12 +273,6 @@ static inline class_##_name##_t class_##_name##ext##_constructor(_init_args) \
|
||||
* an anonymous instance of the (guard) class, not recommended for
|
||||
* conditional locks.
|
||||
*
|
||||
* if_not_guard(name, args...) { <error handling> }:
|
||||
* convenience macro for conditional guards that calls the statement that
|
||||
* follows only if the lock was not acquired (typically an error return).
|
||||
*
|
||||
* Only for conditional locks.
|
||||
*
|
||||
* scoped_guard (name, args...) { }:
|
||||
* similar to CLASS(name, scope)(args), except the variable (with the
|
||||
* explicit name 'scope') is declard in a for-loop such that its scope is
|
||||
@ -350,14 +344,6 @@ _label: \
|
||||
#define scoped_cond_guard(_name, _fail, args...) \
|
||||
__scoped_cond_guard(_name, _fail, __UNIQUE_ID(label), args)
|
||||
|
||||
#define __if_not_guard(_name, _id, args...) \
|
||||
BUILD_BUG_ON(!__is_cond_ptr(_name)); \
|
||||
CLASS(_name, _id)(args); \
|
||||
if (!__guard_ptr(_name)(&_id))
|
||||
|
||||
#define if_not_guard(_name, args...) \
|
||||
__if_not_guard(_name, __UNIQUE_ID(guard), args)
|
||||
|
||||
/*
|
||||
* Additional helper macros for generating lock guards with types, either for
|
||||
* locks that don't have a native type (eg. RCU, preempt) or those that need a
|
||||
|
@ -156,8 +156,8 @@ static inline void ww_acquire_init(struct ww_acquire_ctx *ctx,
|
||||
debug_check_no_locks_freed((void *)ctx, sizeof(*ctx));
|
||||
lockdep_init_map(&ctx->dep_map, ww_class->acquire_name,
|
||||
&ww_class->acquire_key, 0);
|
||||
lockdep_init_map(&ctx->first_lock_dep_map, ww_class->mutex_name,
|
||||
&ww_class->mutex_key, 0);
|
||||
lockdep_init_map_wait(&ctx->first_lock_dep_map, ww_class->mutex_name,
|
||||
&ww_class->mutex_key, 0, LD_WAIT_SLEEP);
|
||||
mutex_acquire(&ctx->dep_map, 0, 0, _RET_IP_);
|
||||
mutex_acquire_nest(&ctx->first_lock_dep_map, 0, 0, &ctx->dep_map, _RET_IP_);
|
||||
#endif
|
||||
|
@ -1720,8 +1720,6 @@ static void ww_test_normal(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
WWAI(&t);
|
||||
|
||||
/*
|
||||
* None of the ww_mutex codepaths should be taken in the 'normal'
|
||||
* mutex calls. The easiest way to verify this is by using the
|
||||
@ -1770,6 +1768,8 @@ static void ww_test_normal(void)
|
||||
ww_mutex_base_unlock(&o.base);
|
||||
WARN_ON(o.ctx != (void *)~0UL);
|
||||
|
||||
WWAI(&t);
|
||||
|
||||
/* nest_lock */
|
||||
o.ctx = (void *)~0UL;
|
||||
ww_mutex_base_lock_nest_lock(&o.base, &t);
|
||||
|
Loading…
Reference in New Issue
Block a user