From: Ray B. <ra...@sg...> - 2004-10-07 18:26:32
|
Andrew, The patch in the mm tree named: lockmeter-lockmeter-fix-for-generic_read_trylock.patch is incorrect. It should be as shown be replaced by this patch. (generic_raw_read_trylock() should be a copy of what is in kernel/spinlock.c and should not call _metered_read_lock()). The incorrect patch breaks lockmeter on any platform that uses generic_raw_read_trylock(). (This is part of the problem with lockmeter for Altix.) (Thanks to John Hawkes for finding this.) From: Ray Bryant <ra...@sg...> Update lockmeter.c with generic_raw_read_trylock fix. Signed-off-by: Ray Bryant <ra...@sg...> Signed-off-by: Andrew Morton <ak...@os...> --- 25-akpm/kernel/lockmeter.c | 12 ++++++++++++ 1 files changed, 12 insertions(+) diff -puN kernel/lockmeter.c~lockmeter-lockmeter-fix-for-generic_read_trylock kernel/lockmeter.c --- 25/kernel/lockmeter.c~lockmeter-lockmeter-fix-for-generic_read_trylock 2004-09-16 21:32:25.175963856 -0700 +++ 25-akpm/kernel/lockmeter.c 2004-09-16 21:32:25.180963096 -0700 @@ -1213,6 +1213,18 @@ __read_lock_failed: \ * except for the fact tht calls to _raw_ routines are replaced by * corresponding calls to the _metered_ routines */ + +/* + * Generic declaration of the raw read_trylock() function, + * architectures are supposed to optimize this: + */ +int __lockfunc generic_raw_read_trylock(rwlock_t *lock) +{ + _raw_read_lock(lock); + return 1; +} +EXPORT_SYMBOL(generic_raw_read_trylock); + int __lockfunc _spin_trylock(spinlock_t *lock) { preempt_disable(); _ -- Best Regards, Ray ----------------------------------------------- Ray Bryant ra...@sg... The box said: "Requires Windows 98 or better", so I installed Linux. ----------------------------------------------- |