Loading arch/s390/kernel/nmi.c +4 −6 Original line number Original line Diff line number Diff line Loading @@ -95,7 +95,6 @@ EXPORT_SYMBOL_GPL(s390_handle_mcck); static int notrace s390_revalidate_registers(struct mci *mci) static int notrace s390_revalidate_registers(struct mci *mci) { { int kill_task; int kill_task; u64 tmpclock; u64 zero; u64 zero; void *fpt_save_area, *fpt_creg_save_area; void *fpt_save_area, *fpt_creg_save_area; Loading Loading @@ -214,11 +213,10 @@ static int notrace s390_revalidate_registers(struct mci *mci) : "0", "cc"); : "0", "cc"); #endif #endif /* Revalidate clock comparator register */ /* Revalidate clock comparator register */ asm volatile( if (S390_lowcore.clock_comparator == -1) " stck 0(%1)\n" set_clock_comparator(S390_lowcore.mcck_clock); " sckc 0(%1)" else : "=m" (tmpclock) : "a" (&(tmpclock)) : "cc", "memory"); set_clock_comparator(S390_lowcore.clock_comparator); /* Check if old PSW is valid */ /* Check if old PSW is valid */ if (!mci->wp) if (!mci->wp) /* /* Loading arch/s390/lib/delay.c +9 −5 Original line number Original line Diff line number Diff line Loading @@ -29,17 +29,21 @@ static void __udelay_disabled(unsigned long long usecs) { { unsigned long mask, cr0, cr0_saved; unsigned long mask, cr0, cr0_saved; u64 clock_saved; u64 clock_saved; u64 end; mask = psw_kernel_bits | PSW_MASK_WAIT | PSW_MASK_EXT; end = get_clock() + (usecs << 12); clock_saved = local_tick_disable(); clock_saved = local_tick_disable(); set_clock_comparator(get_clock() + (usecs << 12)); __ctl_store(cr0_saved, 0, 0); __ctl_store(cr0_saved, 0, 0); cr0 = (cr0_saved & 0xffff00e0) | 0x00000800; cr0 = (cr0_saved & 0xffff00e0) | 0x00000800; __ctl_load(cr0 , 0, 0); __ctl_load(cr0 , 0, 0); mask = psw_kernel_bits | PSW_MASK_WAIT | PSW_MASK_EXT; lockdep_off(); lockdep_off(); do { set_clock_comparator(end); trace_hardirqs_on(); trace_hardirqs_on(); __load_psw_mask(mask); __load_psw_mask(mask); local_irq_disable(); local_irq_disable(); } while (get_clock() < end); lockdep_on(); lockdep_on(); __ctl_load(cr0_saved, 0, 0); __ctl_load(cr0_saved, 0, 0); local_tick_enable(clock_saved); local_tick_enable(clock_saved); Loading drivers/s390/cio/qdio_thinint.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -292,8 +292,8 @@ void qdio_shutdown_thinint(struct qdio_irq *irq_ptr) return; return; /* reset adapter interrupt indicators */ /* reset adapter interrupt indicators */ put_indicator(irq_ptr->dsci); set_subchannel_ind(irq_ptr, 1); set_subchannel_ind(irq_ptr, 1); put_indicator(irq_ptr->dsci); } } void __exit tiqdio_unregister_thinints(void) void __exit tiqdio_unregister_thinints(void) Loading Loading
arch/s390/kernel/nmi.c +4 −6 Original line number Original line Diff line number Diff line Loading @@ -95,7 +95,6 @@ EXPORT_SYMBOL_GPL(s390_handle_mcck); static int notrace s390_revalidate_registers(struct mci *mci) static int notrace s390_revalidate_registers(struct mci *mci) { { int kill_task; int kill_task; u64 tmpclock; u64 zero; u64 zero; void *fpt_save_area, *fpt_creg_save_area; void *fpt_save_area, *fpt_creg_save_area; Loading Loading @@ -214,11 +213,10 @@ static int notrace s390_revalidate_registers(struct mci *mci) : "0", "cc"); : "0", "cc"); #endif #endif /* Revalidate clock comparator register */ /* Revalidate clock comparator register */ asm volatile( if (S390_lowcore.clock_comparator == -1) " stck 0(%1)\n" set_clock_comparator(S390_lowcore.mcck_clock); " sckc 0(%1)" else : "=m" (tmpclock) : "a" (&(tmpclock)) : "cc", "memory"); set_clock_comparator(S390_lowcore.clock_comparator); /* Check if old PSW is valid */ /* Check if old PSW is valid */ if (!mci->wp) if (!mci->wp) /* /* Loading
arch/s390/lib/delay.c +9 −5 Original line number Original line Diff line number Diff line Loading @@ -29,17 +29,21 @@ static void __udelay_disabled(unsigned long long usecs) { { unsigned long mask, cr0, cr0_saved; unsigned long mask, cr0, cr0_saved; u64 clock_saved; u64 clock_saved; u64 end; mask = psw_kernel_bits | PSW_MASK_WAIT | PSW_MASK_EXT; end = get_clock() + (usecs << 12); clock_saved = local_tick_disable(); clock_saved = local_tick_disable(); set_clock_comparator(get_clock() + (usecs << 12)); __ctl_store(cr0_saved, 0, 0); __ctl_store(cr0_saved, 0, 0); cr0 = (cr0_saved & 0xffff00e0) | 0x00000800; cr0 = (cr0_saved & 0xffff00e0) | 0x00000800; __ctl_load(cr0 , 0, 0); __ctl_load(cr0 , 0, 0); mask = psw_kernel_bits | PSW_MASK_WAIT | PSW_MASK_EXT; lockdep_off(); lockdep_off(); do { set_clock_comparator(end); trace_hardirqs_on(); trace_hardirqs_on(); __load_psw_mask(mask); __load_psw_mask(mask); local_irq_disable(); local_irq_disable(); } while (get_clock() < end); lockdep_on(); lockdep_on(); __ctl_load(cr0_saved, 0, 0); __ctl_load(cr0_saved, 0, 0); local_tick_enable(clock_saved); local_tick_enable(clock_saved); Loading
drivers/s390/cio/qdio_thinint.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -292,8 +292,8 @@ void qdio_shutdown_thinint(struct qdio_irq *irq_ptr) return; return; /* reset adapter interrupt indicators */ /* reset adapter interrupt indicators */ put_indicator(irq_ptr->dsci); set_subchannel_ind(irq_ptr, 1); set_subchannel_ind(irq_ptr, 1); put_indicator(irq_ptr->dsci); } } void __exit tiqdio_unregister_thinints(void) void __exit tiqdio_unregister_thinints(void) Loading