Up to [cvs.NetBSD.org] / src / sys / kern
Request diff between arbitrary revisions
Default branch: MAIN
Current tag: netbsd-2-0-RC5
Revision 1.75.2.1 / (download) - annotate - [select for diffs], Mon Aug 23 05:59:27 2004 UTC (19 years, 7 months ago) by tron
Branch: netbsd-2-0
CVS Tags: netbsd-2-base,
netbsd-2-1-RELEASE,
netbsd-2-1-RC6,
netbsd-2-1-RC5,
netbsd-2-1-RC4,
netbsd-2-1-RC3,
netbsd-2-1-RC2,
netbsd-2-1-RC1,
netbsd-2-1,
netbsd-2-0-RELEASE,
netbsd-2-0-RC5,
netbsd-2-0-RC4,
netbsd-2-0-RC3,
netbsd-2-0-RC2,
netbsd-2-0-RC1,
netbsd-2-0-3-RELEASE,
netbsd-2-0-2-RELEASE,
netbsd-2-0-1-RELEASE
Branch point for: netbsd-2
Changes since 1.75: +10 -6
lines
Diff to previous 1.75 (colored) next main 1.76 (colored)
Pull up revision 1.81-1.83 via patch (requested by yamt in ticket #752): when acquiring an exclusive lock, ensure that no one else have the same lock. a patch from Stephan Uphoff, FreeBSD PR/69934. (http://www.freebsd.org/cgi/query-pr.cgi?pr=69934) Upgrading a lock does not play well together with acquiring an exclusive lock and can lead to two threads being granted exclusive access. Problematic sequence: Thread A acquires a previous unlocked lock in shared mode. Thread B tries to acquire the same lock in exclusive mode and blocks. Thread A upgrades its lock - waking up thread B. Thread B wakes up and also acquires the same lock as it only checks if the lock is not shared or if someone wants to upgrade the lock and not if someone already upgraded the lock to an exclusive lock. - revert a part of the previous which breaks LK_SPIN locks. (reported by Nicolas Joly on current-users@) - propagate the previous to spinlock_acquire_count. add missing wakeups in the cases of lock failure. from Stephan Uphoff, FreeBSD PR/69964.