mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-05 01:54:09 +08:00
Fix a include/linux/atomic/atomic-arch-fallback.h breakage that generated
incorrect code, and fix a lockdep reporting race that may result in lockups. Signed-off-by: Ingo Molnar <mingo@kernel.org> -----BEGIN PGP SIGNATURE----- iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmUNZ+wRHG1pbmdvQGtl cm5lbC5vcmcACgkQEnMQ0APhK1iK+Q//XxvpwiSPOC6NI53bTmFtvbJCkGJr5taK a1C+4xql1/E8pc/ZQBYMziK824s03ybs1edktC21B5pRpjJZ7h2tPOyxmw8/FLP/ Qq1GouuneVq9GBcqG+ctjY6hnAt8rScGAPNHReyP6VzGD6/j1zvBI78MfNcfJzLV GEy8z+PsqJdyTfZ/eVf2eKLQMsH3zvRbWYOqk7uA//ld+hof8ZelxDLH7NeH5ZcU NrG/nP5qRToJFYddK548kmwsPsg9qPxd5Ke4S5t4+nGpBpVXerMN66Bopnn79dSa YP9wzPzimJHZEatJg//VmTMAsz4/OHhJC8LSN++QIFx/HXG8+QwjhwNkIYy8deGS hrC72LvxwTqRto3QWQ+Y/3MDKYDIRX8IKYSFGKqwLkvNmQ5mVcvLod3cCMinTlgg GDYEMStR4QoreeGiVZzqus+9QnZehwNYxrfd6KqRpGgqPjJbY6lK7KFzFLY4R5bg feYCdWYlQrb+pIxYZqjf7A4Xj7GeYrv99ggmvwRvL7RiWrDiUHjmnXyEgr9WaKSb NgfD4nnWQ2DSdPk+jL/TM9hRMI1vy8cGGoevsmFbJOuj2aQbStyGRp6GSMYU1UVP FkTurL7hPUanmqc1s+p5Rz1xYdoe/AfEOK53a0NljvaR+q5K6to4QyIL3el7xeMj 1jPiKV2CRJo= =hkE1 -----END PGP SIGNATURE----- Merge tag 'locking-urgent-2023-09-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull locking fixes from Ingo Molnar: "Fix a include/linux/atomic/atomic-arch-fallback.h breakage that generated incorrect code, and fix a lockdep reporting race that may result in lockups" * tag 'locking-urgent-2023-09-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: locking/seqlock: Do the lockdep annotation before locking in do_write_seqcount_begin_nested() locking/atomic: scripts: fix fallback ifdeffery
This commit is contained in:
commit
725e2d7ec8
@ -459,8 +459,6 @@ raw_atomic_read_acquire(const atomic_t *v)
|
||||
{
|
||||
#if defined(arch_atomic_read_acquire)
|
||||
return arch_atomic_read_acquire(v);
|
||||
#elif defined(arch_atomic_read)
|
||||
return arch_atomic_read(v);
|
||||
#else
|
||||
int ret;
|
||||
|
||||
@ -508,8 +506,6 @@ raw_atomic_set_release(atomic_t *v, int i)
|
||||
{
|
||||
#if defined(arch_atomic_set_release)
|
||||
arch_atomic_set_release(v, i);
|
||||
#elif defined(arch_atomic_set)
|
||||
arch_atomic_set(v, i);
|
||||
#else
|
||||
if (__native_word(atomic_t)) {
|
||||
smp_store_release(&(v)->counter, i);
|
||||
@ -2575,8 +2571,6 @@ raw_atomic64_read_acquire(const atomic64_t *v)
|
||||
{
|
||||
#if defined(arch_atomic64_read_acquire)
|
||||
return arch_atomic64_read_acquire(v);
|
||||
#elif defined(arch_atomic64_read)
|
||||
return arch_atomic64_read(v);
|
||||
#else
|
||||
s64 ret;
|
||||
|
||||
@ -2624,8 +2618,6 @@ raw_atomic64_set_release(atomic64_t *v, s64 i)
|
||||
{
|
||||
#if defined(arch_atomic64_set_release)
|
||||
arch_atomic64_set_release(v, i);
|
||||
#elif defined(arch_atomic64_set)
|
||||
arch_atomic64_set(v, i);
|
||||
#else
|
||||
if (__native_word(atomic64_t)) {
|
||||
smp_store_release(&(v)->counter, i);
|
||||
@ -4657,4 +4649,4 @@ raw_atomic64_dec_if_positive(atomic64_t *v)
|
||||
}
|
||||
|
||||
#endif /* _LINUX_ATOMIC_FALLBACK_H */
|
||||
// 202b45c7db600ce36198eb1f1fc2c2d5268ace2d
|
||||
// 2fdd6702823fa842f9cea57a002e6e4476ae780c
|
||||
|
@ -512,8 +512,8 @@ do { \
|
||||
|
||||
static inline void do_write_seqcount_begin_nested(seqcount_t *s, int subclass)
|
||||
{
|
||||
do_raw_write_seqcount_begin(s);
|
||||
seqcount_acquire(&s->dep_map, subclass, 0, _RET_IP_);
|
||||
do_raw_write_seqcount_begin(s);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -102,7 +102,7 @@ gen_proto_order_variant()
|
||||
fi
|
||||
|
||||
# Allow ACQUIRE/RELEASE/RELAXED ops to be defined in terms of FULL ops
|
||||
if [ ! -z "${order}" ]; then
|
||||
if [ ! -z "${order}" ] && ! meta_is_implicitly_relaxed "${meta}"; then
|
||||
printf "#elif defined(arch_${basename})\n"
|
||||
printf "\t${retstmt}arch_${basename}(${args});\n"
|
||||
fi
|
||||
|
Loading…
Reference in New Issue
Block a user