diff options
| author | Linus Walleij <[email protected]> | 2016-03-10 09:29:25 +0700 |
|---|---|---|
| committer | Linus Walleij <[email protected]> | 2016-03-10 09:29:25 +0700 |
| commit | cc998d8bc74341f6bbbcd63ab4449a6acfc45ee9 (patch) | |
| tree | 2f4e23fa1ceb83b3e720afd52d9a5ef2be26c77e /arch/s390/mm/maccess.c | |
| parent | d2d13ed01362ecddc3f76f9cca31b0cd5d663a7e (diff) | |
| parent | 81f70ba233d5f660e1ea5fe23260ee323af5d53a (diff) | |
Merge tag 'v4.5-rc5' into devel
Linux 4.5-rc5
Diffstat (limited to 'arch/s390/mm/maccess.c')
| -rw-r--r-- | arch/s390/mm/maccess.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/arch/s390/mm/maccess.c b/arch/s390/mm/maccess.c index fec59c067d0d..792f9c63fbca 100644 --- a/arch/s390/mm/maccess.c +++ b/arch/s390/mm/maccess.c @@ -93,15 +93,19 @@ static int __memcpy_real(void *dest, void *src, size_t count) */ int memcpy_real(void *dest, void *src, size_t count) { + int irqs_disabled, rc; unsigned long flags; - int rc; if (!count) return 0; - local_irq_save(flags); - __arch_local_irq_stnsm(0xfbUL); + flags = __arch_local_irq_stnsm(0xf8UL); + irqs_disabled = arch_irqs_disabled_flags(flags); + if (!irqs_disabled) + trace_hardirqs_off(); rc = __memcpy_real(dest, src, count); - local_irq_restore(flags); + if (!irqs_disabled) + trace_hardirqs_on(); + __arch_local_irq_ssm(flags); return rc; } |