diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-s390/cio.h | 9 | ||||
| -rw-r--r-- | include/asm-s390/cpcmd.h | 10 | ||||
| -rw-r--r-- | include/asm-s390/kexec.h | 2 | ||||
| -rw-r--r-- | include/asm-s390/lowcore.h | 8 | ||||
| -rw-r--r-- | include/asm-s390/pgtable.h | 15 | ||||
| -rw-r--r-- | include/asm-s390/reset.h | 23 | ||||
| -rw-r--r-- | include/asm-s390/setup.h | 15 | ||||
| -rw-r--r-- | include/asm-s390/smp.h | 8 | ||||
| -rw-r--r-- | include/asm-s390/system.h | 10 | ||||
| -rw-r--r-- | include/asm-s390/termios.h | 34 | ||||
| -rw-r--r-- | include/asm-s390/uaccess.h | 18 | ||||
| -rw-r--r-- | include/asm-s390/zcrypt.h | 91 |
12 files changed, 132 insertions, 111 deletions
diff --git a/include/asm-s390/cio.h b/include/asm-s390/cio.h index 81287d86329d..d92785030980 100644 --- a/include/asm-s390/cio.h +++ b/include/asm-s390/cio.h | |||
| @@ -278,17 +278,16 @@ struct ccw_dev_id { | |||
| 278 | static inline int ccw_dev_id_is_equal(struct ccw_dev_id *dev_id1, | 278 | static inline int ccw_dev_id_is_equal(struct ccw_dev_id *dev_id1, |
| 279 | struct ccw_dev_id *dev_id2) | 279 | struct ccw_dev_id *dev_id2) |
| 280 | { | 280 | { |
| 281 | return !memcmp(dev_id1, dev_id2, sizeof(struct ccw_dev_id)); | 281 | if ((dev_id1->ssid == dev_id2->ssid) && |
| 282 | (dev_id1->devno == dev_id2->devno)) | ||
| 283 | return 1; | ||
| 284 | return 0; | ||
| 282 | } | 285 | } |
| 283 | 286 | ||
| 284 | extern int diag210(struct diag210 *addr); | 287 | extern int diag210(struct diag210 *addr); |
| 285 | 288 | ||
| 286 | extern void wait_cons_dev(void); | 289 | extern void wait_cons_dev(void); |
| 287 | 290 | ||
| 288 | extern void clear_all_subchannels(void); | ||
| 289 | |||
| 290 | extern void cio_reset_channel_paths(void); | ||
| 291 | |||
| 292 | extern void css_schedule_reprobe(void); | 291 | extern void css_schedule_reprobe(void); |
| 293 | 292 | ||
| 294 | extern void reipl_ccw_dev(struct ccw_dev_id *id); | 293 | extern void reipl_ccw_dev(struct ccw_dev_id *id); |
diff --git a/include/asm-s390/cpcmd.h b/include/asm-s390/cpcmd.h index 1fcf65be7a23..48a9eab16429 100644 --- a/include/asm-s390/cpcmd.h +++ b/include/asm-s390/cpcmd.h | |||
| @@ -7,8 +7,8 @@ | |||
| 7 | * Christian Borntraeger (cborntra@de.ibm.com), | 7 | * Christian Borntraeger (cborntra@de.ibm.com), |
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #ifndef __CPCMD__ | 10 | #ifndef _ASM_S390_CPCMD_H |
| 11 | #define __CPCMD__ | 11 | #define _ASM_S390_CPCMD_H |
| 12 | 12 | ||
| 13 | /* | 13 | /* |
| 14 | * the lowlevel function for cpcmd | 14 | * the lowlevel function for cpcmd |
| @@ -16,9 +16,6 @@ | |||
| 16 | */ | 16 | */ |
| 17 | extern int __cpcmd(const char *cmd, char *response, int rlen, int *response_code); | 17 | extern int __cpcmd(const char *cmd, char *response, int rlen, int *response_code); |
| 18 | 18 | ||
| 19 | #ifndef __s390x__ | ||
| 20 | #define cpcmd __cpcmd | ||
| 21 | #else | ||
| 22 | /* | 19 | /* |
| 23 | * cpcmd is the in-kernel interface for issuing CP commands | 20 | * cpcmd is the in-kernel interface for issuing CP commands |
| 24 | * | 21 | * |
| @@ -33,6 +30,5 @@ extern int __cpcmd(const char *cmd, char *response, int rlen, int *response_code | |||
| 33 | * NOTE: If the response buffer is not below 2 GB, cpcmd can sleep | 30 | * NOTE: If the response buffer is not below 2 GB, cpcmd can sleep |
| 34 | */ | 31 | */ |
| 35 | extern int cpcmd(const char *cmd, char *response, int rlen, int *response_code); | 32 | extern int cpcmd(const char *cmd, char *response, int rlen, int *response_code); |
| 36 | #endif /*__s390x__*/ | ||
| 37 | 33 | ||
| 38 | #endif | 34 | #endif /* _ASM_S390_CPCMD_H */ |
diff --git a/include/asm-s390/kexec.h b/include/asm-s390/kexec.h index ce28ddda0f50..9c35c8ad1afd 100644 --- a/include/asm-s390/kexec.h +++ b/include/asm-s390/kexec.h | |||
| @@ -26,7 +26,7 @@ | |||
| 26 | 26 | ||
| 27 | /* Maximum address we can use for the control pages */ | 27 | /* Maximum address we can use for the control pages */ |
| 28 | /* Not more than 2GB */ | 28 | /* Not more than 2GB */ |
| 29 | #define KEXEC_CONTROL_MEMORY_LIMIT (1<<31) | 29 | #define KEXEC_CONTROL_MEMORY_LIMIT (1UL<<31) |
| 30 | 30 | ||
| 31 | /* Allocate one page for the pdp and the second for the code */ | 31 | /* Allocate one page for the pdp and the second for the code */ |
| 32 | #define KEXEC_CONTROL_CODE_SIZE 4096 | 32 | #define KEXEC_CONTROL_CODE_SIZE 4096 |
diff --git a/include/asm-s390/lowcore.h b/include/asm-s390/lowcore.h index 06583ed0bde7..74f7389bd3ee 100644 --- a/include/asm-s390/lowcore.h +++ b/include/asm-s390/lowcore.h | |||
| @@ -362,6 +362,14 @@ static inline void set_prefix(__u32 address) | |||
| 362 | asm volatile("spx %0" : : "m" (address) : "memory"); | 362 | asm volatile("spx %0" : : "m" (address) : "memory"); |
| 363 | } | 363 | } |
| 364 | 364 | ||
| 365 | static inline __u32 store_prefix(void) | ||
| 366 | { | ||
| 367 | __u32 address; | ||
| 368 | |||
| 369 | asm volatile("stpx %0" : "=m" (address)); | ||
| 370 | return address; | ||
| 371 | } | ||
| 372 | |||
| 365 | #define __PANIC_MAGIC 0xDEADC0DE | 373 | #define __PANIC_MAGIC 0xDEADC0DE |
| 366 | 374 | ||
| 367 | #endif | 375 | #endif |
diff --git a/include/asm-s390/pgtable.h b/include/asm-s390/pgtable.h index 36bb6dacf008..2d968a69ed1f 100644 --- a/include/asm-s390/pgtable.h +++ b/include/asm-s390/pgtable.h | |||
| @@ -110,13 +110,22 @@ extern char empty_zero_page[PAGE_SIZE]; | |||
| 110 | #define VMALLOC_OFFSET (8*1024*1024) | 110 | #define VMALLOC_OFFSET (8*1024*1024) |
| 111 | #define VMALLOC_START (((unsigned long) high_memory + VMALLOC_OFFSET) \ | 111 | #define VMALLOC_START (((unsigned long) high_memory + VMALLOC_OFFSET) \ |
| 112 | & ~(VMALLOC_OFFSET-1)) | 112 | & ~(VMALLOC_OFFSET-1)) |
| 113 | |||
| 114 | /* | ||
| 115 | * We need some free virtual space to be able to do vmalloc. | ||
| 116 | * VMALLOC_MIN_SIZE defines the minimum size of the vmalloc | ||
| 117 | * area. On a machine with 2GB memory we make sure that we | ||
| 118 | * have at least 128MB free space for vmalloc. On a machine | ||
| 119 | * with 4TB we make sure we have at least 1GB. | ||
| 120 | */ | ||
| 113 | #ifndef __s390x__ | 121 | #ifndef __s390x__ |
| 114 | # define VMALLOC_END (0x7fffffffL) | 122 | #define VMALLOC_MIN_SIZE 0x8000000UL |
| 123 | #define VMALLOC_END 0x80000000UL | ||
| 115 | #else /* __s390x__ */ | 124 | #else /* __s390x__ */ |
| 116 | # define VMALLOC_END (0x40000000000L) | 125 | #define VMALLOC_MIN_SIZE 0x40000000UL |
| 126 | #define VMALLOC_END 0x40000000000UL | ||
| 117 | #endif /* __s390x__ */ | 127 | #endif /* __s390x__ */ |
| 118 | 128 | ||
| 119 | |||
| 120 | /* | 129 | /* |
| 121 | * A 31 bit pagetable entry of S390 has following format: | 130 | * A 31 bit pagetable entry of S390 has following format: |
| 122 | * | PFRA | | OS | | 131 | * | PFRA | | OS | |
diff --git a/include/asm-s390/reset.h b/include/asm-s390/reset.h new file mode 100644 index 000000000000..9b439cf67800 --- /dev/null +++ b/include/asm-s390/reset.h | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | /* | ||
| 2 | * include/asm-s390/reset.h | ||
| 3 | * | ||
| 4 | * Copyright IBM Corp. 2006 | ||
| 5 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> | ||
| 6 | */ | ||
| 7 | |||
| 8 | #ifndef _ASM_S390_RESET_H | ||
| 9 | #define _ASM_S390_RESET_H | ||
| 10 | |||
| 11 | #include <linux/list.h> | ||
| 12 | |||
| 13 | struct reset_call { | ||
| 14 | struct list_head list; | ||
| 15 | void (*fn)(void); | ||
| 16 | }; | ||
| 17 | |||
| 18 | extern void register_reset_call(struct reset_call *reset); | ||
| 19 | extern void unregister_reset_call(struct reset_call *reset); | ||
| 20 | extern void s390_reset_system(void); | ||
| 21 | extern void (*s390_reset_mcck_handler)(void); | ||
| 22 | |||
| 23 | #endif /* _ASM_S390_RESET_H */ | ||
diff --git a/include/asm-s390/setup.h b/include/asm-s390/setup.h index 5d72eda8a11b..7664bacdd832 100644 --- a/include/asm-s390/setup.h +++ b/include/asm-s390/setup.h | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | * include/asm-s390/setup.h | 2 | * include/asm-s390/setup.h |
| 3 | * | 3 | * |
| 4 | * S390 version | 4 | * S390 version |
| 5 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | 5 | * Copyright IBM Corp. 1999,2006 |
| 6 | */ | 6 | */ |
| 7 | 7 | ||
| 8 | #ifndef _ASM_S390_SETUP_H | 8 | #ifndef _ASM_S390_SETUP_H |
| @@ -30,6 +30,17 @@ | |||
| 30 | #endif /* __s390x__ */ | 30 | #endif /* __s390x__ */ |
| 31 | #define COMMAND_LINE ((char *) (0x10480)) | 31 | #define COMMAND_LINE ((char *) (0x10480)) |
| 32 | 32 | ||
| 33 | #define CHUNK_READ_WRITE 0 | ||
| 34 | #define CHUNK_READ_ONLY 1 | ||
| 35 | |||
| 36 | struct mem_chunk { | ||
| 37 | unsigned long addr; | ||
| 38 | unsigned long size; | ||
| 39 | unsigned long type; | ||
| 40 | }; | ||
| 41 | |||
| 42 | extern struct mem_chunk memory_chunk[]; | ||
| 43 | |||
| 33 | /* | 44 | /* |
| 34 | * Machine features detected in head.S | 45 | * Machine features detected in head.S |
| 35 | */ | 46 | */ |
| @@ -53,7 +64,6 @@ extern unsigned long machine_flags; | |||
| 53 | #define MACHINE_HAS_MVCOS (machine_flags & 512) | 64 | #define MACHINE_HAS_MVCOS (machine_flags & 512) |
| 54 | #endif /* __s390x__ */ | 65 | #endif /* __s390x__ */ |
| 55 | 66 | ||
| 56 | |||
| 57 | #define MACHINE_HAS_SCLP (!MACHINE_IS_P390) | 67 | #define MACHINE_HAS_SCLP (!MACHINE_IS_P390) |
| 58 | 68 | ||
| 59 | /* | 69 | /* |
| @@ -71,7 +81,6 @@ extern unsigned int console_irq; | |||
| 71 | #define SET_CONSOLE_3215 do { console_mode = 2; } while (0) | 81 | #define SET_CONSOLE_3215 do { console_mode = 2; } while (0) |
| 72 | #define SET_CONSOLE_3270 do { console_mode = 3; } while (0) | 82 | #define SET_CONSOLE_3270 do { console_mode = 3; } while (0) |
| 73 | 83 | ||
| 74 | |||
| 75 | struct ipl_list_hdr { | 84 | struct ipl_list_hdr { |
| 76 | u32 len; | 85 | u32 len; |
| 77 | u8 reserved1[3]; | 86 | u8 reserved1[3]; |
diff --git a/include/asm-s390/smp.h b/include/asm-s390/smp.h index c3cf030ada4d..7097c96ed026 100644 --- a/include/asm-s390/smp.h +++ b/include/asm-s390/smp.h | |||
| @@ -18,6 +18,7 @@ | |||
| 18 | 18 | ||
| 19 | #include <asm/lowcore.h> | 19 | #include <asm/lowcore.h> |
| 20 | #include <asm/sigp.h> | 20 | #include <asm/sigp.h> |
| 21 | #include <asm/ptrace.h> | ||
| 21 | 22 | ||
| 22 | /* | 23 | /* |
| 23 | s390 specific smp.c headers | 24 | s390 specific smp.c headers |
| @@ -101,6 +102,13 @@ smp_call_function_on(void (*func) (void *info), void *info, | |||
| 101 | func(info); | 102 | func(info); |
| 102 | return 0; | 103 | return 0; |
| 103 | } | 104 | } |
| 105 | |||
| 106 | static inline void smp_send_stop(void) | ||
| 107 | { | ||
| 108 | /* Disable all interrupts/machine checks */ | ||
| 109 | __load_psw_mask(PSW_KERNEL_BITS & ~PSW_MASK_MCHECK); | ||
| 110 | } | ||
| 111 | |||
| 104 | #define smp_cpu_not_running(cpu) 1 | 112 | #define smp_cpu_not_running(cpu) 1 |
| 105 | #define smp_get_cpu(cpu) ({ 0; }) | 113 | #define smp_get_cpu(cpu) ({ 0; }) |
| 106 | #define smp_put_cpu(cpu) ({ 0; }) | 114 | #define smp_put_cpu(cpu) ({ 0; }) |
diff --git a/include/asm-s390/system.h b/include/asm-s390/system.h index ccbafe4bf2cb..bd0b05ae87d2 100644 --- a/include/asm-s390/system.h +++ b/include/asm-s390/system.h | |||
| @@ -115,6 +115,16 @@ extern void account_system_vtime(struct task_struct *); | |||
| 115 | #define account_vtime(x) do { /* empty */ } while (0) | 115 | #define account_vtime(x) do { /* empty */ } while (0) |
| 116 | #endif | 116 | #endif |
| 117 | 117 | ||
| 118 | #ifdef CONFIG_PFAULT | ||
| 119 | extern void pfault_irq_init(void); | ||
| 120 | extern int pfault_init(void); | ||
| 121 | extern void pfault_fini(void); | ||
| 122 | #else /* CONFIG_PFAULT */ | ||
| 123 | #define pfault_irq_init() do { } while (0) | ||
| 124 | #define pfault_init() ({-1;}) | ||
| 125 | #define pfault_fini() do { } while (0) | ||
| 126 | #endif /* CONFIG_PFAULT */ | ||
| 127 | |||
| 118 | #define finish_arch_switch(prev) do { \ | 128 | #define finish_arch_switch(prev) do { \ |
| 119 | set_fs(current->thread.mm_segment); \ | 129 | set_fs(current->thread.mm_segment); \ |
| 120 | account_vtime(prev); \ | 130 | account_vtime(prev); \ |
diff --git a/include/asm-s390/termios.h b/include/asm-s390/termios.h index d1e29cca54c9..62b23caf370e 100644 --- a/include/asm-s390/termios.h +++ b/include/asm-s390/termios.h | |||
| @@ -75,39 +75,7 @@ struct termio { | |||
| 75 | */ | 75 | */ |
| 76 | #define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0" | 76 | #define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0" |
| 77 | 77 | ||
| 78 | /* | 78 | #include <asm-generic/termios.h> |
| 79 | * Translate a "termio" structure into a "termios". Ugh. | ||
| 80 | */ | ||
| 81 | #define SET_LOW_TERMIOS_BITS(termios, termio, x) { \ | ||
| 82 | unsigned short __tmp; \ | ||
| 83 | get_user(__tmp,&(termio)->x); \ | ||
| 84 | (termios)->x = (0xffff0000 & ((termios)->x)) | __tmp; \ | ||
| 85 | } | ||
| 86 | |||
| 87 | #define user_termio_to_kernel_termios(termios, termio) \ | ||
| 88 | ({ \ | ||
| 89 | SET_LOW_TERMIOS_BITS(termios, termio, c_iflag); \ | ||
| 90 | SET_LOW_TERMIOS_BITS(termios, termio, c_oflag); \ | ||
| 91 | SET_LOW_TERMIOS_BITS(termios, termio, c_cflag); \ | ||
| 92 | SET_LOW_TERMIOS_BITS(termios, termio, c_lflag); \ | ||
| 93 | copy_from_user((termios)->c_cc, (termio)->c_cc, NCC); \ | ||
| 94 | }) | ||
| 95 | |||
| 96 | /* | ||
| 97 | * Translate a "termios" structure into a "termio". Ugh. | ||
| 98 | */ | ||
| 99 | #define kernel_termios_to_user_termio(termio, termios) \ | ||
| 100 | ({ \ | ||
| 101 | put_user((termios)->c_iflag, &(termio)->c_iflag); \ | ||
| 102 | put_user((termios)->c_oflag, &(termio)->c_oflag); \ | ||
| 103 | put_user((termios)->c_cflag, &(termio)->c_cflag); \ | ||
| 104 | put_user((termios)->c_lflag, &(termio)->c_lflag); \ | ||
| 105 | put_user((termios)->c_line, &(termio)->c_line); \ | ||
| 106 | copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \ | ||
| 107 | }) | ||
| 108 | |||
| 109 | #define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios)) | ||
| 110 | #define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios)) | ||
| 111 | 79 | ||
| 112 | #endif /* __KERNEL__ */ | 80 | #endif /* __KERNEL__ */ |
| 113 | 81 | ||
diff --git a/include/asm-s390/uaccess.h b/include/asm-s390/uaccess.h index 72ae4efddb49..73ac4e82217b 100644 --- a/include/asm-s390/uaccess.h +++ b/include/asm-s390/uaccess.h | |||
| @@ -201,7 +201,7 @@ extern int __get_user_bad(void) __attribute__((noreturn)); | |||
| 201 | * Returns number of bytes that could not be copied. | 201 | * Returns number of bytes that could not be copied. |
| 202 | * On success, this will be zero. | 202 | * On success, this will be zero. |
| 203 | */ | 203 | */ |
| 204 | static inline unsigned long | 204 | static inline unsigned long __must_check |
| 205 | __copy_to_user(void __user *to, const void *from, unsigned long n) | 205 | __copy_to_user(void __user *to, const void *from, unsigned long n) |
| 206 | { | 206 | { |
| 207 | if (__builtin_constant_p(n) && (n <= 256)) | 207 | if (__builtin_constant_p(n) && (n <= 256)) |
| @@ -226,7 +226,7 @@ __copy_to_user(void __user *to, const void *from, unsigned long n) | |||
| 226 | * Returns number of bytes that could not be copied. | 226 | * Returns number of bytes that could not be copied. |
| 227 | * On success, this will be zero. | 227 | * On success, this will be zero. |
| 228 | */ | 228 | */ |
| 229 | static inline unsigned long | 229 | static inline unsigned long __must_check |
| 230 | copy_to_user(void __user *to, const void *from, unsigned long n) | 230 | copy_to_user(void __user *to, const void *from, unsigned long n) |
| 231 | { | 231 | { |
| 232 | might_sleep(); | 232 | might_sleep(); |
| @@ -252,7 +252,7 @@ copy_to_user(void __user *to, const void *from, unsigned long n) | |||
| 252 | * If some data could not be copied, this function will pad the copied | 252 | * If some data could not be copied, this function will pad the copied |
| 253 | * data to the requested size using zero bytes. | 253 | * data to the requested size using zero bytes. |
| 254 | */ | 254 | */ |
| 255 | static inline unsigned long | 255 | static inline unsigned long __must_check |
| 256 | __copy_from_user(void *to, const void __user *from, unsigned long n) | 256 | __copy_from_user(void *to, const void __user *from, unsigned long n) |
| 257 | { | 257 | { |
| 258 | if (__builtin_constant_p(n) && (n <= 256)) | 258 | if (__builtin_constant_p(n) && (n <= 256)) |
| @@ -277,7 +277,7 @@ __copy_from_user(void *to, const void __user *from, unsigned long n) | |||
| 277 | * If some data could not be copied, this function will pad the copied | 277 | * If some data could not be copied, this function will pad the copied |
| 278 | * data to the requested size using zero bytes. | 278 | * data to the requested size using zero bytes. |
| 279 | */ | 279 | */ |
| 280 | static inline unsigned long | 280 | static inline unsigned long __must_check |
| 281 | copy_from_user(void *to, const void __user *from, unsigned long n) | 281 | copy_from_user(void *to, const void __user *from, unsigned long n) |
| 282 | { | 282 | { |
| 283 | might_sleep(); | 283 | might_sleep(); |
| @@ -288,13 +288,13 @@ copy_from_user(void *to, const void __user *from, unsigned long n) | |||
| 288 | return n; | 288 | return n; |
| 289 | } | 289 | } |
| 290 | 290 | ||
| 291 | static inline unsigned long | 291 | static inline unsigned long __must_check |
| 292 | __copy_in_user(void __user *to, const void __user *from, unsigned long n) | 292 | __copy_in_user(void __user *to, const void __user *from, unsigned long n) |
| 293 | { | 293 | { |
| 294 | return uaccess.copy_in_user(n, to, from); | 294 | return uaccess.copy_in_user(n, to, from); |
| 295 | } | 295 | } |
| 296 | 296 | ||
| 297 | static inline unsigned long | 297 | static inline unsigned long __must_check |
| 298 | copy_in_user(void __user *to, const void __user *from, unsigned long n) | 298 | copy_in_user(void __user *to, const void __user *from, unsigned long n) |
| 299 | { | 299 | { |
| 300 | might_sleep(); | 300 | might_sleep(); |
| @@ -306,7 +306,7 @@ copy_in_user(void __user *to, const void __user *from, unsigned long n) | |||
| 306 | /* | 306 | /* |
| 307 | * Copy a null terminated string from userspace. | 307 | * Copy a null terminated string from userspace. |
| 308 | */ | 308 | */ |
| 309 | static inline long | 309 | static inline long __must_check |
| 310 | strncpy_from_user(char *dst, const char __user *src, long count) | 310 | strncpy_from_user(char *dst, const char __user *src, long count) |
| 311 | { | 311 | { |
| 312 | long res = -EFAULT; | 312 | long res = -EFAULT; |
| @@ -343,13 +343,13 @@ strnlen_user(const char __user * src, unsigned long n) | |||
| 343 | * Zero Userspace | 343 | * Zero Userspace |
| 344 | */ | 344 | */ |
| 345 | 345 | ||
| 346 | static inline unsigned long | 346 | static inline unsigned long __must_check |
| 347 | __clear_user(void __user *to, unsigned long n) | 347 | __clear_user(void __user *to, unsigned long n) |
| 348 | { | 348 | { |
| 349 | return uaccess.clear_user(n, to); | 349 | return uaccess.clear_user(n, to); |
| 350 | } | 350 | } |
| 351 | 351 | ||
| 352 | static inline unsigned long | 352 | static inline unsigned long __must_check |
| 353 | clear_user(void __user *to, unsigned long n) | 353 | clear_user(void __user *to, unsigned long n) |
| 354 | { | 354 | { |
| 355 | might_sleep(); | 355 | might_sleep(); |
diff --git a/include/asm-s390/zcrypt.h b/include/asm-s390/zcrypt.h index 7244c68464f2..b90e55888a55 100644 --- a/include/asm-s390/zcrypt.h +++ b/include/asm-s390/zcrypt.h | |||
| @@ -180,40 +180,8 @@ struct ica_xcRB { | |||
| 180 | * for the implementation details for the contents of the | 180 | * for the implementation details for the contents of the |
| 181 | * block | 181 | * block |
| 182 | * | 182 | * |
| 183 | * Z90STAT_TOTALCOUNT | 183 | * ZSECSENDCPRB |
| 184 | * Return an integer count of all device types together. | 184 | * Send an arbitrary CPRB to a crypto card. |
| 185 | * | ||
| 186 | * Z90STAT_PCICACOUNT | ||
| 187 | * Return an integer count of all PCICAs. | ||
| 188 | * | ||
| 189 | * Z90STAT_PCICCCOUNT | ||
| 190 | * Return an integer count of all PCICCs. | ||
| 191 | * | ||
| 192 | * Z90STAT_PCIXCCMCL2COUNT | ||
| 193 | * Return an integer count of all MCL2 PCIXCCs. | ||
| 194 | * | ||
| 195 | * Z90STAT_PCIXCCMCL3COUNT | ||
| 196 | * Return an integer count of all MCL3 PCIXCCs. | ||
| 197 | * | ||
| 198 | * Z90STAT_CEX2CCOUNT | ||
| 199 | * Return an integer count of all CEX2Cs. | ||
| 200 | * | ||
| 201 | * Z90STAT_CEX2ACOUNT | ||
| 202 | * Return an integer count of all CEX2As. | ||
| 203 | * | ||
| 204 | * Z90STAT_REQUESTQ_COUNT | ||
| 205 | * Return an integer count of the number of entries waiting to be | ||
| 206 | * sent to a device. | ||
| 207 | * | ||
| 208 | * Z90STAT_PENDINGQ_COUNT | ||
| 209 | * Return an integer count of the number of entries sent to a | ||
| 210 | * device awaiting the reply. | ||
| 211 | * | ||
| 212 | * Z90STAT_TOTALOPEN_COUNT | ||
| 213 | * Return an integer count of the number of open file handles. | ||
| 214 | * | ||
| 215 | * Z90STAT_DOMAIN_INDEX | ||
| 216 | * Return the integer value of the Cryptographic Domain. | ||
| 217 | * | 185 | * |
| 218 | * Z90STAT_STATUS_MASK | 186 | * Z90STAT_STATUS_MASK |
| 219 | * Return an 64 element array of unsigned chars for the status of | 187 | * Return an 64 element array of unsigned chars for the status of |
| @@ -235,28 +203,51 @@ struct ica_xcRB { | |||
| 235 | * of successfully completed requests per device since the device | 203 | * of successfully completed requests per device since the device |
| 236 | * was detected and made available. | 204 | * was detected and made available. |
| 237 | * | 205 | * |
| 238 | * ICAZ90STATUS (deprecated) | 206 | * Z90STAT_REQUESTQ_COUNT |
| 207 | * Return an integer count of the number of entries waiting to be | ||
| 208 | * sent to a device. | ||
| 209 | * | ||
| 210 | * Z90STAT_PENDINGQ_COUNT | ||
| 211 | * Return an integer count of the number of entries sent to all | ||
| 212 | * devices awaiting the reply. | ||
| 213 | * | ||
| 214 | * Z90STAT_TOTALOPEN_COUNT | ||
| 215 | * Return an integer count of the number of open file handles. | ||
| 216 | * | ||
| 217 | * Z90STAT_DOMAIN_INDEX | ||
| 218 | * Return the integer value of the Cryptographic Domain. | ||
| 219 | * | ||
| 220 | * The following ioctls are deprecated and should be no longer used: | ||
| 221 | * | ||
| 222 | * Z90STAT_TOTALCOUNT | ||
| 223 | * Return an integer count of all device types together. | ||
| 224 | * | ||
| 225 | * Z90STAT_PCICACOUNT | ||
| 226 | * Return an integer count of all PCICAs. | ||
| 227 | * | ||
| 228 | * Z90STAT_PCICCCOUNT | ||
| 229 | * Return an integer count of all PCICCs. | ||
| 230 | * | ||
| 231 | * Z90STAT_PCIXCCMCL2COUNT | ||
| 232 | * Return an integer count of all MCL2 PCIXCCs. | ||
| 233 | * | ||
| 234 | * Z90STAT_PCIXCCMCL3COUNT | ||
| 235 | * Return an integer count of all MCL3 PCIXCCs. | ||
| 236 | * | ||
| 237 | * Z90STAT_CEX2CCOUNT | ||
| 238 | * Return an integer count of all CEX2Cs. | ||
| 239 | * | ||
| 240 | * Z90STAT_CEX2ACOUNT | ||
| 241 | * Return an integer count of all CEX2As. | ||
| 242 | * | ||
| 243 | * ICAZ90STATUS | ||
| 239 | * Return some device driver status in a ica_z90_status struct | 244 | * Return some device driver status in a ica_z90_status struct |
| 240 | * This takes an ica_z90_status struct as its arg. | 245 | * This takes an ica_z90_status struct as its arg. |
| 241 | * | 246 | * |
| 242 | * NOTE: this ioctl() is deprecated, and has been replaced with | 247 | * Z90STAT_PCIXCCCOUNT |
| 243 | * single ioctl()s for each type of status being requested | ||
| 244 | * | ||
| 245 | * Z90STAT_PCIXCCCOUNT (deprecated) | ||
| 246 | * Return an integer count of all PCIXCCs (MCL2 + MCL3). | 248 | * Return an integer count of all PCIXCCs (MCL2 + MCL3). |
| 247 | * This is DEPRECATED now that MCL3 PCIXCCs are treated differently from | 249 | * This is DEPRECATED now that MCL3 PCIXCCs are treated differently from |
| 248 | * MCL2 PCIXCCs. | 250 | * MCL2 PCIXCCs. |
| 249 | * | ||
| 250 | * Z90QUIESCE (not recommended) | ||
| 251 | * Quiesce the driver. This is intended to stop all new | ||
| 252 | * requests from being processed. Its use is NOT recommended, | ||
| 253 | * except in circumstances where there is no other way to stop | ||
| 254 | * callers from accessing the driver. Its original use was to | ||
| 255 | * allow the driver to be "drained" of work in preparation for | ||
| 256 | * a system shutdown. | ||
| 257 | * | ||
| 258 | * NOTE: once issued, this ban on new work cannot be undone | ||
| 259 | * except by unloading and reloading the driver. | ||
| 260 | */ | 251 | */ |
| 261 | 252 | ||
| 262 | /** | 253 | /** |
