[patch 7/8] lock validator: s390 use raw_spinlock in mcck handler

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Heiko Carstens <[email protected]>

Machine checks on s390 are always enabled (except in the machine check handler
itself). Therefore use a raw_spinlock in the machine check handler to avoid
deadlocks in the lock validator.

Signed-off-by: Heiko Carstens <[email protected]>
---

 drivers/s390/s390mach.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff -purN a/drivers/s390/s390mach.c b/drivers/s390/s390mach.c
--- a/drivers/s390/s390mach.c	2006-06-14 13:44:52.000000000 +0200
+++ b/drivers/s390/s390mach.c	2006-06-14 13:45:01.000000000 +0200
@@ -372,7 +372,7 @@ s390_revalidate_registers(struct mci *mc
 void
 s390_do_machine_check(struct pt_regs *regs)
 {
-	static DEFINE_SPINLOCK(ipd_lock);
+	static raw_spinlock_t ipd_lock = (raw_spinlock_t)__RAW_SPIN_LOCK_UNLOCKED;
 	static unsigned long long last_ipd;
 	static int ipd_count;
 	unsigned long long tmp;
@@ -418,7 +418,7 @@ s390_do_machine_check(struct pt_regs *re
 			 * retry this instruction.
 			 */
 
-			spin_lock(&ipd_lock);
+			__raw_spin_lock(&ipd_lock);
 
 			tmp = get_clock();
 
@@ -432,7 +432,7 @@ s390_do_machine_check(struct pt_regs *re
 			if (ipd_count == MAX_IPD_COUNT)
 				s390_handle_damage("too many ipd retries.");
 
-			spin_unlock(&ipd_lock);
+			__raw_spin_unlock(&ipd_lock);
 		}
 		else {
 			/* Processing damage -> stopping machine */
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux