diff options
37 files changed, 66 insertions, 45 deletions
diff --git a/arch/s390/Kbuild b/arch/s390/Kbuild index eae2c64cf69d..9fdff3fe1a42 100644 --- a/arch/s390/Kbuild +++ b/arch/s390/Kbuild | |||
@@ -1,3 +1,4 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
1 | obj-y += kernel/ | 2 | obj-y += kernel/ |
2 | obj-y += mm/ | 3 | obj-y += mm/ |
3 | obj-$(CONFIG_KVM) += kvm/ | 4 | obj-$(CONFIG_KVM) += kvm/ |
diff --git a/arch/s390/appldata/Makefile b/arch/s390/appldata/Makefile index 99f1cf071304..b06def4a4f2f 100644 --- a/arch/s390/appldata/Makefile +++ b/arch/s390/appldata/Makefile | |||
@@ -1,3 +1,4 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
1 | # | 2 | # |
2 | # Makefile for the Linux - z/VM Monitor Stream. | 3 | # Makefile for the Linux - z/VM Monitor Stream. |
3 | # | 4 | # |
diff --git a/arch/s390/boot/compressed/vmlinux.scr b/arch/s390/boot/compressed/vmlinux.scr index f02382ae5c48..42a242597f34 100644 --- a/arch/s390/boot/compressed/vmlinux.scr +++ b/arch/s390/boot/compressed/vmlinux.scr | |||
@@ -1,3 +1,4 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
1 | SECTIONS | 2 | SECTIONS |
2 | { | 3 | { |
3 | .rodata.compressed : { | 4 | .rodata.compressed : { |
diff --git a/arch/s390/crypto/sha1_s390.c b/arch/s390/crypto/sha1_s390.c index c7de53d8da75..a00c17f761c1 100644 --- a/arch/s390/crypto/sha1_s390.c +++ b/arch/s390/crypto/sha1_s390.c | |||
@@ -1,3 +1,4 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0+ | ||
1 | /* | 2 | /* |
2 | * Cryptographic API. | 3 | * Cryptographic API. |
3 | * | 4 | * |
@@ -16,12 +17,6 @@ | |||
16 | * Copyright (c) Alan Smithee. | 17 | * Copyright (c) Alan Smithee. |
17 | * Copyright (c) Andrew McDonald <andrew@mcdonald.org.uk> | 18 | * Copyright (c) Andrew McDonald <andrew@mcdonald.org.uk> |
18 | * Copyright (c) Jean-Francois Dive <jef@linuxbe.org> | 19 | * Copyright (c) Jean-Francois Dive <jef@linuxbe.org> |
19 | * | ||
20 | * This program is free software; you can redistribute it and/or modify it | ||
21 | * under the terms of the GNU General Public License as published by the Free | ||
22 | * Software Foundation; either version 2 of the License, or (at your option) | ||
23 | * any later version. | ||
24 | * | ||
25 | */ | 20 | */ |
26 | #include <crypto/internal/hash.h> | 21 | #include <crypto/internal/hash.h> |
27 | #include <linux/init.h> | 22 | #include <linux/init.h> |
diff --git a/arch/s390/hypfs/Makefile b/arch/s390/hypfs/Makefile index 2ee25ba252d6..06f601509ce9 100644 --- a/arch/s390/hypfs/Makefile +++ b/arch/s390/hypfs/Makefile | |||
@@ -1,3 +1,4 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
1 | # | 2 | # |
2 | # Makefile for the linux hypfs filesystem routines. | 3 | # Makefile for the linux hypfs filesystem routines. |
3 | # | 4 | # |
diff --git a/arch/s390/include/asm/Kbuild b/arch/s390/include/asm/Kbuild index 41c211a4d8b1..048450869328 100644 --- a/arch/s390/include/asm/Kbuild +++ b/arch/s390/include/asm/Kbuild | |||
@@ -1,3 +1,4 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
1 | generic-y += asm-offsets.h | 2 | generic-y += asm-offsets.h |
2 | generic-y += cacheflush.h | 3 | generic-y += cacheflush.h |
3 | generic-y += clkdev.h | 4 | generic-y += clkdev.h |
diff --git a/arch/s390/include/asm/alternative.h b/arch/s390/include/asm/alternative.h index a72002056b54..c2cf7bcdef9b 100644 --- a/arch/s390/include/asm/alternative.h +++ b/arch/s390/include/asm/alternative.h | |||
@@ -1,3 +1,4 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
1 | #ifndef _ASM_S390_ALTERNATIVE_H | 2 | #ifndef _ASM_S390_ALTERNATIVE_H |
2 | #define _ASM_S390_ALTERNATIVE_H | 3 | #define _ASM_S390_ALTERNATIVE_H |
3 | 4 | ||
diff --git a/arch/s390/include/asm/ap.h b/arch/s390/include/asm/ap.h index c02f4aba88a6..cfce6835b109 100644 --- a/arch/s390/include/asm/ap.h +++ b/arch/s390/include/asm/ap.h | |||
@@ -1,12 +1,9 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
1 | /* | 2 | /* |
2 | * Adjunct processor (AP) interfaces | 3 | * Adjunct processor (AP) interfaces |
3 | * | 4 | * |
4 | * Copyright IBM Corp. 2017 | 5 | * Copyright IBM Corp. 2017 |
5 | * | 6 | * |
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License (version 2 only) | ||
8 | * as published by the Free Software Foundation. | ||
9 | * | ||
10 | * Author(s): Tony Krowiak <akrowia@linux.vnet.ibm.com> | 7 | * Author(s): Tony Krowiak <akrowia@linux.vnet.ibm.com> |
11 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 8 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
12 | * Harald Freudenberger <freude@de.ibm.com> | 9 | * Harald Freudenberger <freude@de.ibm.com> |
diff --git a/arch/s390/include/asm/bugs.h b/arch/s390/include/asm/bugs.h index 0f5bd894f4dc..aa42a179be33 100644 --- a/arch/s390/include/asm/bugs.h +++ b/arch/s390/include/asm/bugs.h | |||
@@ -1,3 +1,4 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
1 | /* | 2 | /* |
2 | * S390 version | 3 | * S390 version |
3 | * Copyright IBM Corp. 1999 | 4 | * Copyright IBM Corp. 1999 |
diff --git a/arch/s390/include/asm/segment.h b/arch/s390/include/asm/segment.h index 8bfce3475b1c..97a0582b8d0f 100644 --- a/arch/s390/include/asm/segment.h +++ b/arch/s390/include/asm/segment.h | |||
@@ -1,3 +1,4 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
1 | #ifndef _ASM_SEGMENT_H | 2 | #ifndef _ASM_SEGMENT_H |
2 | #define _ASM_SEGMENT_H | 3 | #define _ASM_SEGMENT_H |
3 | 4 | ||
diff --git a/arch/s390/include/asm/switch_to.h b/arch/s390/include/asm/switch_to.h index ec7b476c1ac5..c61b2cc1a8a8 100644 --- a/arch/s390/include/asm/switch_to.h +++ b/arch/s390/include/asm/switch_to.h | |||
@@ -30,21 +30,20 @@ static inline void restore_access_regs(unsigned int *acrs) | |||
30 | asm volatile("lam 0,15,%0" : : "Q" (*(acrstype *)acrs)); | 30 | asm volatile("lam 0,15,%0" : : "Q" (*(acrstype *)acrs)); |
31 | } | 31 | } |
32 | 32 | ||
33 | #define switch_to(prev,next,last) do { \ | 33 | #define switch_to(prev, next, last) do { \ |
34 | if (prev->mm) { \ | 34 | /* save_fpu_regs() sets the CIF_FPU flag, which enforces \ |
35 | save_fpu_regs(); \ | 35 | * a restore of the floating point / vector registers as \ |
36 | save_access_regs(&prev->thread.acrs[0]); \ | 36 | * soon as the next task returns to user space \ |
37 | save_ri_cb(prev->thread.ri_cb); \ | 37 | */ \ |
38 | save_gs_cb(prev->thread.gs_cb); \ | 38 | save_fpu_regs(); \ |
39 | } \ | 39 | save_access_regs(&prev->thread.acrs[0]); \ |
40 | save_ri_cb(prev->thread.ri_cb); \ | ||
41 | save_gs_cb(prev->thread.gs_cb); \ | ||
40 | update_cr_regs(next); \ | 42 | update_cr_regs(next); \ |
41 | if (next->mm) { \ | 43 | restore_access_regs(&next->thread.acrs[0]); \ |
42 | set_cpu_flag(CIF_FPU); \ | 44 | restore_ri_cb(next->thread.ri_cb, prev->thread.ri_cb); \ |
43 | restore_access_regs(&next->thread.acrs[0]); \ | 45 | restore_gs_cb(next->thread.gs_cb); \ |
44 | restore_ri_cb(next->thread.ri_cb, prev->thread.ri_cb); \ | 46 | prev = __switch_to(prev, next); \ |
45 | restore_gs_cb(next->thread.gs_cb); \ | ||
46 | } \ | ||
47 | prev = __switch_to(prev,next); \ | ||
48 | } while (0) | 47 | } while (0) |
49 | 48 | ||
50 | #endif /* __ASM_SWITCH_TO_H */ | 49 | #endif /* __ASM_SWITCH_TO_H */ |
diff --git a/arch/s390/include/asm/vga.h b/arch/s390/include/asm/vga.h index d375526c261f..605dc46bac5e 100644 --- a/arch/s390/include/asm/vga.h +++ b/arch/s390/include/asm/vga.h | |||
@@ -1,3 +1,4 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
1 | #ifndef _ASM_S390_VGA_H | 2 | #ifndef _ASM_S390_VGA_H |
2 | #define _ASM_S390_VGA_H | 3 | #define _ASM_S390_VGA_H |
3 | 4 | ||
diff --git a/arch/s390/include/uapi/asm/Kbuild b/arch/s390/include/uapi/asm/Kbuild index 098f28778a13..92b7c9b3e641 100644 --- a/arch/s390/include/uapi/asm/Kbuild +++ b/arch/s390/include/uapi/asm/Kbuild | |||
@@ -1,3 +1,4 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
1 | # UAPI Header export list | 2 | # UAPI Header export list |
2 | include include/uapi/asm-generic/Kbuild.asm | 3 | include include/uapi/asm-generic/Kbuild.asm |
3 | 4 | ||
diff --git a/arch/s390/include/uapi/asm/perf_regs.h b/arch/s390/include/uapi/asm/perf_regs.h index 7c8564f98205..d17dd9e5d516 100644 --- a/arch/s390/include/uapi/asm/perf_regs.h +++ b/arch/s390/include/uapi/asm/perf_regs.h | |||
@@ -1,3 +1,4 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
1 | #ifndef _ASM_S390_PERF_REGS_H | 2 | #ifndef _ASM_S390_PERF_REGS_H |
2 | #define _ASM_S390_PERF_REGS_H | 3 | #define _ASM_S390_PERF_REGS_H |
3 | 4 | ||
diff --git a/arch/s390/include/uapi/asm/sthyi.h b/arch/s390/include/uapi/asm/sthyi.h index ec113db4eb7e..b1b022316983 100644 --- a/arch/s390/include/uapi/asm/sthyi.h +++ b/arch/s390/include/uapi/asm/sthyi.h | |||
@@ -1,3 +1,4 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
1 | #ifndef _UAPI_ASM_STHYI_H | 2 | #ifndef _UAPI_ASM_STHYI_H |
2 | #define _UAPI_ASM_STHYI_H | 3 | #define _UAPI_ASM_STHYI_H |
3 | 4 | ||
diff --git a/arch/s390/include/uapi/asm/virtio-ccw.h b/arch/s390/include/uapi/asm/virtio-ccw.h index 3a77833c74dc..2b605f7e8483 100644 --- a/arch/s390/include/uapi/asm/virtio-ccw.h +++ b/arch/s390/include/uapi/asm/virtio-ccw.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | 1 | /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ |
2 | /* | 2 | /* |
3 | * Definitions for virtio-ccw devices. | 3 | * Definitions for virtio-ccw devices. |
4 | * | 4 | * |
diff --git a/arch/s390/include/uapi/asm/vmcp.h b/arch/s390/include/uapi/asm/vmcp.h index 4caf71714a55..aeaaa030030e 100644 --- a/arch/s390/include/uapi/asm/vmcp.h +++ b/arch/s390/include/uapi/asm/vmcp.h | |||
@@ -1,3 +1,4 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
1 | /* | 2 | /* |
2 | * Copyright IBM Corp. 2004, 2005 | 3 | * Copyright IBM Corp. 2004, 2005 |
3 | * Interface implementation for communication with the z/VM control program | 4 | * Interface implementation for communication with the z/VM control program |
diff --git a/arch/s390/kernel/alternative.c b/arch/s390/kernel/alternative.c index 315986a06cf5..574e77622c04 100644 --- a/arch/s390/kernel/alternative.c +++ b/arch/s390/kernel/alternative.c | |||
@@ -1,3 +1,4 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | ||
1 | #include <linux/module.h> | 2 | #include <linux/module.h> |
2 | #include <asm/alternative.h> | 3 | #include <asm/alternative.h> |
3 | #include <asm/facility.h> | 4 | #include <asm/facility.h> |
diff --git a/arch/s390/kernel/perf_regs.c b/arch/s390/kernel/perf_regs.c index f8603ebed669..54e2d634b849 100644 --- a/arch/s390/kernel/perf_regs.c +++ b/arch/s390/kernel/perf_regs.c | |||
@@ -1,3 +1,4 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | ||
1 | #include <linux/perf_event.h> | 2 | #include <linux/perf_event.h> |
2 | #include <linux/perf_regs.h> | 3 | #include <linux/perf_regs.h> |
3 | #include <linux/kernel.h> | 4 | #include <linux/kernel.h> |
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S index 308a7b63348b..f7fc63385553 100644 --- a/arch/s390/kernel/syscalls.S +++ b/arch/s390/kernel/syscalls.S | |||
@@ -370,10 +370,10 @@ SYSCALL(sys_recvmmsg,compat_sys_recvmmsg) | |||
370 | SYSCALL(sys_sendmmsg,compat_sys_sendmmsg) | 370 | SYSCALL(sys_sendmmsg,compat_sys_sendmmsg) |
371 | SYSCALL(sys_socket,sys_socket) | 371 | SYSCALL(sys_socket,sys_socket) |
372 | SYSCALL(sys_socketpair,compat_sys_socketpair) /* 360 */ | 372 | SYSCALL(sys_socketpair,compat_sys_socketpair) /* 360 */ |
373 | SYSCALL(sys_bind,sys_bind) | 373 | SYSCALL(sys_bind,compat_sys_bind) |
374 | SYSCALL(sys_connect,sys_connect) | 374 | SYSCALL(sys_connect,compat_sys_connect) |
375 | SYSCALL(sys_listen,sys_listen) | 375 | SYSCALL(sys_listen,sys_listen) |
376 | SYSCALL(sys_accept4,sys_accept4) | 376 | SYSCALL(sys_accept4,compat_sys_accept4) |
377 | SYSCALL(sys_getsockopt,compat_sys_getsockopt) /* 365 */ | 377 | SYSCALL(sys_getsockopt,compat_sys_getsockopt) /* 365 */ |
378 | SYSCALL(sys_setsockopt,compat_sys_setsockopt) | 378 | SYSCALL(sys_setsockopt,compat_sys_setsockopt) |
379 | SYSCALL(sys_getsockname,compat_sys_getsockname) | 379 | SYSCALL(sys_getsockname,compat_sys_getsockname) |
diff --git a/arch/s390/kernel/vdso64/note.S b/arch/s390/kernel/vdso64/note.S index 79a071e4357e..db19d0680a0a 100644 --- a/arch/s390/kernel/vdso64/note.S +++ b/arch/s390/kernel/vdso64/note.S | |||
@@ -1,3 +1,4 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
1 | /* | 2 | /* |
2 | * This supplies .note.* sections to go into the PT_NOTE inside the vDSO text. | 3 | * This supplies .note.* sections to go into the PT_NOTE inside the vDSO text. |
3 | * Here we can supply some information useful to userland. | 4 | * Here we can supply some information useful to userland. |
diff --git a/arch/s390/mm/pgalloc.c b/arch/s390/mm/pgalloc.c index 434a9564917b..cb364153c43c 100644 --- a/arch/s390/mm/pgalloc.c +++ b/arch/s390/mm/pgalloc.c | |||
@@ -83,8 +83,6 @@ int crst_table_upgrade(struct mm_struct *mm, unsigned long end) | |||
83 | 83 | ||
84 | /* upgrade should only happen from 3 to 4, 3 to 5, or 4 to 5 levels */ | 84 | /* upgrade should only happen from 3 to 4, 3 to 5, or 4 to 5 levels */ |
85 | VM_BUG_ON(mm->context.asce_limit < _REGION2_SIZE); | 85 | VM_BUG_ON(mm->context.asce_limit < _REGION2_SIZE); |
86 | if (end >= TASK_SIZE_MAX) | ||
87 | return -ENOMEM; | ||
88 | rc = 0; | 86 | rc = 0; |
89 | notify = 0; | 87 | notify = 0; |
90 | while (mm->context.asce_limit < end) { | 88 | while (mm->context.asce_limit < end) { |
diff --git a/arch/s390/net/Makefile b/arch/s390/net/Makefile index 90568c33ddb0..e0d5f245e42b 100644 --- a/arch/s390/net/Makefile +++ b/arch/s390/net/Makefile | |||
@@ -1,3 +1,4 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
1 | # | 2 | # |
2 | # Arch-specific network modules | 3 | # Arch-specific network modules |
3 | # | 4 | # |
diff --git a/arch/s390/numa/Makefile b/arch/s390/numa/Makefile index f94ecaffa71b..66c2dff74895 100644 --- a/arch/s390/numa/Makefile +++ b/arch/s390/numa/Makefile | |||
@@ -1,3 +1,4 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
1 | obj-y += numa.o | 2 | obj-y += numa.o |
2 | obj-y += toptree.o | 3 | obj-y += toptree.o |
3 | obj-$(CONFIG_NUMA_EMU) += mode_emu.o | 4 | obj-$(CONFIG_NUMA_EMU) += mode_emu.o |
diff --git a/arch/s390/pci/Makefile b/arch/s390/pci/Makefile index 805d8b29193a..22d0871291ee 100644 --- a/arch/s390/pci/Makefile +++ b/arch/s390/pci/Makefile | |||
@@ -1,3 +1,4 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
1 | # | 2 | # |
2 | # Makefile for the s390 PCI subsystem. | 3 | # Makefile for the s390 PCI subsystem. |
3 | # | 4 | # |
diff --git a/arch/s390/tools/gen_opcode_table.c b/arch/s390/tools/gen_opcode_table.c index 01d4c5a4bfe9..357d42681cef 100644 --- a/arch/s390/tools/gen_opcode_table.c +++ b/arch/s390/tools/gen_opcode_table.c | |||
@@ -1,3 +1,4 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
1 | /* | 2 | /* |
2 | * Generate opcode table initializers for the in-kernel disassembler. | 3 | * Generate opcode table initializers for the in-kernel disassembler. |
3 | * | 4 | * |
diff --git a/drivers/s390/Makefile b/drivers/s390/Makefile index e5225ad9c5b1..2fdab400c1fe 100644 --- a/drivers/s390/Makefile +++ b/drivers/s390/Makefile | |||
@@ -1,3 +1,4 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
1 | # | 2 | # |
2 | # Makefile for the S/390 specific device drivers | 3 | # Makefile for the S/390 specific device drivers |
3 | # | 4 | # |
diff --git a/drivers/s390/block/Kconfig b/drivers/s390/block/Kconfig index 31f014b57bfc..bc27d716aa6b 100644 --- a/drivers/s390/block/Kconfig +++ b/drivers/s390/block/Kconfig | |||
@@ -1,3 +1,4 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
1 | comment "S/390 block device drivers" | 2 | comment "S/390 block device drivers" |
2 | depends on S390 && BLOCK | 3 | depends on S390 && BLOCK |
3 | 4 | ||
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c index 66e008f7adb6..d4e8dff673cc 100644 --- a/drivers/s390/block/dasd.c +++ b/drivers/s390/block/dasd.c | |||
@@ -759,7 +759,7 @@ static void dasd_profile_end_add_data(struct dasd_profile_info *data, | |||
759 | /* in case of an overflow, reset the whole profile */ | 759 | /* in case of an overflow, reset the whole profile */ |
760 | if (data->dasd_io_reqs == UINT_MAX) { | 760 | if (data->dasd_io_reqs == UINT_MAX) { |
761 | memset(data, 0, sizeof(*data)); | 761 | memset(data, 0, sizeof(*data)); |
762 | getnstimeofday(&data->starttod); | 762 | ktime_get_real_ts64(&data->starttod); |
763 | } | 763 | } |
764 | data->dasd_io_reqs++; | 764 | data->dasd_io_reqs++; |
765 | data->dasd_io_sects += sectors; | 765 | data->dasd_io_sects += sectors; |
@@ -894,7 +894,7 @@ void dasd_profile_reset(struct dasd_profile *profile) | |||
894 | return; | 894 | return; |
895 | } | 895 | } |
896 | memset(data, 0, sizeof(*data)); | 896 | memset(data, 0, sizeof(*data)); |
897 | getnstimeofday(&data->starttod); | 897 | ktime_get_real_ts64(&data->starttod); |
898 | spin_unlock_bh(&profile->lock); | 898 | spin_unlock_bh(&profile->lock); |
899 | } | 899 | } |
900 | 900 | ||
@@ -911,7 +911,7 @@ int dasd_profile_on(struct dasd_profile *profile) | |||
911 | kfree(data); | 911 | kfree(data); |
912 | return 0; | 912 | return 0; |
913 | } | 913 | } |
914 | getnstimeofday(&data->starttod); | 914 | ktime_get_real_ts64(&data->starttod); |
915 | profile->data = data; | 915 | profile->data = data; |
916 | spin_unlock_bh(&profile->lock); | 916 | spin_unlock_bh(&profile->lock); |
917 | return 0; | 917 | return 0; |
@@ -995,8 +995,8 @@ static void dasd_stats_array(struct seq_file *m, unsigned int *array) | |||
995 | static void dasd_stats_seq_print(struct seq_file *m, | 995 | static void dasd_stats_seq_print(struct seq_file *m, |
996 | struct dasd_profile_info *data) | 996 | struct dasd_profile_info *data) |
997 | { | 997 | { |
998 | seq_printf(m, "start_time %ld.%09ld\n", | 998 | seq_printf(m, "start_time %lld.%09ld\n", |
999 | data->starttod.tv_sec, data->starttod.tv_nsec); | 999 | (s64)data->starttod.tv_sec, data->starttod.tv_nsec); |
1000 | seq_printf(m, "total_requests %u\n", data->dasd_io_reqs); | 1000 | seq_printf(m, "total_requests %u\n", data->dasd_io_reqs); |
1001 | seq_printf(m, "total_sectors %u\n", data->dasd_io_sects); | 1001 | seq_printf(m, "total_sectors %u\n", data->dasd_io_sects); |
1002 | seq_printf(m, "total_pav %u\n", data->dasd_io_alias); | 1002 | seq_printf(m, "total_pav %u\n", data->dasd_io_alias); |
diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c index 1a41ef496338..a2edf2a7ace9 100644 --- a/drivers/s390/block/dasd_eckd.c +++ b/drivers/s390/block/dasd_eckd.c | |||
@@ -531,10 +531,12 @@ static int prefix_LRE(struct ccw1 *ccw, struct PFX_eckd_data *pfxdata, | |||
531 | pfxdata->validity.define_extent = 1; | 531 | pfxdata->validity.define_extent = 1; |
532 | 532 | ||
533 | /* private uid is kept up to date, conf_data may be outdated */ | 533 | /* private uid is kept up to date, conf_data may be outdated */ |
534 | if (startpriv->uid.type != UA_BASE_DEVICE) { | 534 | if (startpriv->uid.type == UA_BASE_PAV_ALIAS) |
535 | pfxdata->validity.verify_base = 1; | 535 | pfxdata->validity.verify_base = 1; |
536 | if (startpriv->uid.type == UA_HYPER_PAV_ALIAS) | 536 | |
537 | pfxdata->validity.hyper_pav = 1; | 537 | if (startpriv->uid.type == UA_HYPER_PAV_ALIAS) { |
538 | pfxdata->validity.verify_base = 1; | ||
539 | pfxdata->validity.hyper_pav = 1; | ||
538 | } | 540 | } |
539 | 541 | ||
540 | rc = define_extent(NULL, dedata, trk, totrk, cmd, basedev, blksize); | 542 | rc = define_extent(NULL, dedata, trk, totrk, cmd, basedev, blksize); |
@@ -3415,10 +3417,12 @@ static int prepare_itcw(struct itcw *itcw, | |||
3415 | pfxdata.validity.define_extent = 1; | 3417 | pfxdata.validity.define_extent = 1; |
3416 | 3418 | ||
3417 | /* private uid is kept up to date, conf_data may be outdated */ | 3419 | /* private uid is kept up to date, conf_data may be outdated */ |
3418 | if (startpriv->uid.type != UA_BASE_DEVICE) { | 3420 | if (startpriv->uid.type == UA_BASE_PAV_ALIAS) |
3421 | pfxdata.validity.verify_base = 1; | ||
3422 | |||
3423 | if (startpriv->uid.type == UA_HYPER_PAV_ALIAS) { | ||
3419 | pfxdata.validity.verify_base = 1; | 3424 | pfxdata.validity.verify_base = 1; |
3420 | if (startpriv->uid.type == UA_HYPER_PAV_ALIAS) | 3425 | pfxdata.validity.hyper_pav = 1; |
3421 | pfxdata.validity.hyper_pav = 1; | ||
3422 | } | 3426 | } |
3423 | 3427 | ||
3424 | switch (cmd) { | 3428 | switch (cmd) { |
diff --git a/drivers/s390/block/dasd_int.h b/drivers/s390/block/dasd_int.h index b095a23bcc0c..96709b1a7bf8 100644 --- a/drivers/s390/block/dasd_int.h +++ b/drivers/s390/block/dasd_int.h | |||
@@ -441,7 +441,7 @@ struct dasd_profile_info { | |||
441 | unsigned int dasd_io_nr_req[32]; /* hist. of # of requests in chanq */ | 441 | unsigned int dasd_io_nr_req[32]; /* hist. of # of requests in chanq */ |
442 | 442 | ||
443 | /* new data */ | 443 | /* new data */ |
444 | struct timespec starttod; /* time of start or last reset */ | 444 | struct timespec64 starttod; /* time of start or last reset */ |
445 | unsigned int dasd_io_alias; /* requests using an alias */ | 445 | unsigned int dasd_io_alias; /* requests using an alias */ |
446 | unsigned int dasd_io_tpm; /* requests using transport mode */ | 446 | unsigned int dasd_io_tpm; /* requests using transport mode */ |
447 | unsigned int dasd_read_reqs; /* total number of read requests */ | 447 | unsigned int dasd_read_reqs; /* total number of read requests */ |
diff --git a/drivers/s390/char/Kconfig b/drivers/s390/char/Kconfig index 97c4c9fdd53d..ab0b243a947d 100644 --- a/drivers/s390/char/Kconfig +++ b/drivers/s390/char/Kconfig | |||
@@ -1,3 +1,4 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
1 | comment "S/390 character device drivers" | 2 | comment "S/390 character device drivers" |
2 | depends on S390 | 3 | depends on S390 |
3 | 4 | ||
diff --git a/drivers/s390/char/defkeymap.map b/drivers/s390/char/defkeymap.map index 353b3f268824..f4c095612a02 100644 --- a/drivers/s390/char/defkeymap.map +++ b/drivers/s390/char/defkeymap.map | |||
@@ -1,3 +1,4 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
1 | # Default keymap for 3270 (ebcdic codepage 037). | 2 | # Default keymap for 3270 (ebcdic codepage 037). |
2 | keymaps 0-1,4-5 | 3 | keymaps 0-1,4-5 |
3 | 4 | ||
diff --git a/drivers/s390/cio/blacklist.h b/drivers/s390/cio/blacklist.h index 95e25c1df922..140e3e4ee2fd 100644 --- a/drivers/s390/cio/blacklist.h +++ b/drivers/s390/cio/blacklist.h | |||
@@ -1,3 +1,4 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
1 | #ifndef S390_BLACKLIST_H | 2 | #ifndef S390_BLACKLIST_H |
2 | #define S390_BLACKLIST_H | 3 | #define S390_BLACKLIST_H |
3 | 4 | ||
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c index 59b4a3370cd5..95b0efe28afb 100644 --- a/drivers/s390/cio/qdio_main.c +++ b/drivers/s390/cio/qdio_main.c | |||
@@ -431,8 +431,8 @@ static void process_buffer_error(struct qdio_q *q, int count) | |||
431 | q->qdio_error = QDIO_ERROR_SLSB_STATE; | 431 | q->qdio_error = QDIO_ERROR_SLSB_STATE; |
432 | 432 | ||
433 | /* special handling for no target buffer empty */ | 433 | /* special handling for no target buffer empty */ |
434 | if ((!q->is_input_q && | 434 | if (queue_type(q) == QDIO_IQDIO_QFMT && !q->is_input_q && |
435 | (q->sbal[q->first_to_check]->element[15].sflags) == 0x10)) { | 435 | q->sbal[q->first_to_check]->element[15].sflags == 0x10) { |
436 | qperf_inc(q, target_full); | 436 | qperf_inc(q, target_full); |
437 | DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "OUTFULL FTC:%02x", | 437 | DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "OUTFULL FTC:%02x", |
438 | q->first_to_check); | 438 | q->first_to_check); |
@@ -536,7 +536,8 @@ static int get_inbound_buffer_frontier(struct qdio_q *q) | |||
536 | case SLSB_P_INPUT_ERROR: | 536 | case SLSB_P_INPUT_ERROR: |
537 | process_buffer_error(q, count); | 537 | process_buffer_error(q, count); |
538 | q->first_to_check = add_buf(q->first_to_check, count); | 538 | q->first_to_check = add_buf(q->first_to_check, count); |
539 | atomic_sub(count, &q->nr_buf_used); | 539 | if (atomic_sub_return(count, &q->nr_buf_used) == 0) |
540 | qperf_inc(q, inbound_queue_full); | ||
540 | if (q->irq_ptr->perf_stat_enabled) | 541 | if (q->irq_ptr->perf_stat_enabled) |
541 | account_sbals_error(q, count); | 542 | account_sbals_error(q, count); |
542 | break; | 543 | break; |
diff --git a/drivers/s390/net/Kconfig b/drivers/s390/net/Kconfig index b2837b1c70b7..a782a207ad31 100644 --- a/drivers/s390/net/Kconfig +++ b/drivers/s390/net/Kconfig | |||
@@ -1,3 +1,4 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
1 | menu "S/390 network device drivers" | 2 | menu "S/390 network device drivers" |
2 | depends on NETDEVICES && S390 | 3 | depends on NETDEVICES && S390 |
3 | 4 | ||
diff --git a/drivers/s390/scsi/Makefile b/drivers/s390/scsi/Makefile index 9259039e886d..9dda431ec8f3 100644 --- a/drivers/s390/scsi/Makefile +++ b/drivers/s390/scsi/Makefile | |||
@@ -1,3 +1,4 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
1 | # | 2 | # |
2 | # Makefile for the S/390 specific device drivers | 3 | # Makefile for the S/390 specific device drivers |
3 | # | 4 | # |