]> Pileus Git - ~andy/linux/blobdiff - arch/powerpc/kernel/signal_32.c
powerpc/booke: Add support for advanced debug registers
[~andy/linux] / arch / powerpc / kernel / signal_32.c
index e4883ae362771ce0948a08febbaa95e3b2c5894a..266610119f664970c66b72832ebb571eb842b1bc 100644 (file)
@@ -1092,8 +1092,12 @@ int sys_debug_setcontext(struct ucontext __user *ctx,
                                new_msr |= MSR_DE;
                                new_dbcr0 |= (DBCR0_IDM | DBCR0_IC);
                        } else {
-                               new_msr &= ~MSR_DE;
-                               new_dbcr0 &= ~(DBCR0_IDM | DBCR0_IC);
+                               new_dbcr0 &= ~DBCR0_IC;
+                               if (!DBCR_ACTIVE_EVENTS(new_dbcr0,
+                                               current->thread.dbcr1)) {
+                                       new_msr &= ~MSR_DE;
+                                       new_dbcr0 &= ~DBCR0_IDM;
+                               }
                        }
 #else
                        if (op.dbg_value)