Unverified Commit 951151c7 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!14309 printk: Fix the qspinlock deadloop caused by zap_locks()

parents 0a365c2e 7557ab6c
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -1762,11 +1762,21 @@ void zap_locks(void)
{
	if (raw_spin_is_locked(&logbuf_lock)) {
		debug_locks_off();
#ifdef CONFIG_QUEUED_SPINLOCKS
		/* Do not clear the tail to avoid infinite loops in qspinlock. */
		WRITE_ONCE(logbuf_lock.raw_lock.locked_pending, 0);
#else
		raw_spin_lock_init(&logbuf_lock);
#endif
	}

	if (raw_spin_is_locked(&console_owner_lock)) {
#ifdef CONFIG_QUEUED_SPINLOCKS
		/* Do not clear the tail to avoid infinite loops in qspinlock. */
		WRITE_ONCE(console_owner_lock.raw_lock.locked_pending, 0);
#else
		raw_spin_lock_init(&console_owner_lock);
#endif
	}

	console_owner = NULL;