diff options
| -rw-r--r-- | arch/s390/Makefile | 2 | ||||
| -rw-r--r-- | arch/s390/boot/Makefile | 1 | ||||
| -rw-r--r-- | arch/s390/boot/compressed/vmlinux.lds.S | 2 | ||||
| -rw-r--r-- | arch/s390/configs/defconfig (renamed from arch/s390/defconfig) | 0 | ||||
| -rw-r--r-- | arch/s390/mm/kasan_init.c | 2 | ||||
| -rw-r--r-- | drivers/s390/cio/qdio_main.c | 19 | ||||
| -rw-r--r-- | drivers/s390/cio/trace.c | 1 | ||||
| -rw-r--r-- | drivers/s390/cio/trace.h | 23 | ||||
| -rw-r--r-- | include/linux/random.h | 2 |
9 files changed, 17 insertions, 35 deletions
diff --git a/arch/s390/Makefile b/arch/s390/Makefile index df1d6a150f30..de8521fc9de5 100644 --- a/arch/s390/Makefile +++ b/arch/s390/Makefile | |||
| @@ -10,6 +10,8 @@ | |||
| 10 | # Copyright (C) 1994 by Linus Torvalds | 10 | # Copyright (C) 1994 by Linus Torvalds |
| 11 | # | 11 | # |
| 12 | 12 | ||
| 13 | KBUILD_DEFCONFIG := defconfig | ||
| 14 | |||
| 13 | LD_BFD := elf64-s390 | 15 | LD_BFD := elf64-s390 |
| 14 | KBUILD_LDFLAGS := -m elf64_s390 | 16 | KBUILD_LDFLAGS := -m elf64_s390 |
| 15 | KBUILD_AFLAGS_MODULE += -fPIC | 17 | KBUILD_AFLAGS_MODULE += -fPIC |
diff --git a/arch/s390/boot/Makefile b/arch/s390/boot/Makefile index c51496bbac19..7cba96e7587b 100644 --- a/arch/s390/boot/Makefile +++ b/arch/s390/boot/Makefile | |||
| @@ -58,7 +58,6 @@ define cmd_section_cmp | |||
| 58 | touch $@ | 58 | touch $@ |
| 59 | endef | 59 | endef |
| 60 | 60 | ||
| 61 | OBJCOPYFLAGS_bzImage := --pad-to $$(readelf -s $(obj)/compressed/vmlinux | awk '/\<_end\>/ {print or(strtonum("0x"$$2),4095)+1}') | ||
| 62 | $(obj)/bzImage: $(obj)/compressed/vmlinux $(obj)/section_cmp.boot.data $(obj)/section_cmp.boot.preserved.data FORCE | 61 | $(obj)/bzImage: $(obj)/compressed/vmlinux $(obj)/section_cmp.boot.data $(obj)/section_cmp.boot.preserved.data FORCE |
| 63 | $(call if_changed,objcopy) | 62 | $(call if_changed,objcopy) |
| 64 | 63 | ||
diff --git a/arch/s390/boot/compressed/vmlinux.lds.S b/arch/s390/boot/compressed/vmlinux.lds.S index 112b8d9f1e4c..635217eb3d91 100644 --- a/arch/s390/boot/compressed/vmlinux.lds.S +++ b/arch/s390/boot/compressed/vmlinux.lds.S | |||
| @@ -77,6 +77,8 @@ SECTIONS | |||
| 77 | _compressed_start = .; | 77 | _compressed_start = .; |
| 78 | *(.vmlinux.bin.compressed) | 78 | *(.vmlinux.bin.compressed) |
| 79 | _compressed_end = .; | 79 | _compressed_end = .; |
| 80 | FILL(0xff); | ||
| 81 | . = ALIGN(4096); | ||
| 80 | } | 82 | } |
| 81 | . = ALIGN(256); | 83 | . = ALIGN(256); |
| 82 | .bss : { | 84 | .bss : { |
diff --git a/arch/s390/defconfig b/arch/s390/configs/defconfig index c59b922cb6c5..c59b922cb6c5 100644 --- a/arch/s390/defconfig +++ b/arch/s390/configs/defconfig | |||
diff --git a/arch/s390/mm/kasan_init.c b/arch/s390/mm/kasan_init.c index 01892dcf4029..0c1f257be422 100644 --- a/arch/s390/mm/kasan_init.c +++ b/arch/s390/mm/kasan_init.c | |||
| @@ -28,7 +28,7 @@ static void __init kasan_early_panic(const char *reason) | |||
| 28 | { | 28 | { |
| 29 | sclp_early_printk("The Linux kernel failed to boot with the KernelAddressSanitizer:\n"); | 29 | sclp_early_printk("The Linux kernel failed to boot with the KernelAddressSanitizer:\n"); |
| 30 | sclp_early_printk(reason); | 30 | sclp_early_printk(reason); |
| 31 | disabled_wait(0); | 31 | disabled_wait(); |
| 32 | } | 32 | } |
| 33 | 33 | ||
| 34 | static void * __init kasan_early_alloc_segment(void) | 34 | static void * __init kasan_early_alloc_segment(void) |
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c index cfce255521ac..7b7620de2acd 100644 --- a/drivers/s390/cio/qdio_main.c +++ b/drivers/s390/cio/qdio_main.c | |||
| @@ -205,17 +205,22 @@ static inline int get_buf_states(struct qdio_q *q, unsigned int bufnr, | |||
| 205 | int auto_ack, int merge_pending) | 205 | int auto_ack, int merge_pending) |
| 206 | { | 206 | { |
| 207 | unsigned char __state = 0; | 207 | unsigned char __state = 0; |
| 208 | int i; | 208 | int i = 1; |
| 209 | 209 | ||
| 210 | if (is_qebsm(q)) | 210 | if (is_qebsm(q)) |
| 211 | return qdio_do_eqbs(q, state, bufnr, count, auto_ack); | 211 | return qdio_do_eqbs(q, state, bufnr, count, auto_ack); |
| 212 | 212 | ||
| 213 | /* get initial state: */ | 213 | /* get initial state: */ |
| 214 | __state = q->slsb.val[bufnr]; | 214 | __state = q->slsb.val[bufnr]; |
| 215 | |||
| 216 | /* Bail out early if there is no work on the queue: */ | ||
| 217 | if (__state & SLSB_OWNER_CU) | ||
| 218 | goto out; | ||
| 219 | |||
| 215 | if (merge_pending && __state == SLSB_P_OUTPUT_PENDING) | 220 | if (merge_pending && __state == SLSB_P_OUTPUT_PENDING) |
| 216 | __state = SLSB_P_OUTPUT_EMPTY; | 221 | __state = SLSB_P_OUTPUT_EMPTY; |
| 217 | 222 | ||
| 218 | for (i = 1; i < count; i++) { | 223 | for (; i < count; i++) { |
| 219 | bufnr = next_buf(bufnr); | 224 | bufnr = next_buf(bufnr); |
| 220 | 225 | ||
| 221 | /* merge PENDING into EMPTY: */ | 226 | /* merge PENDING into EMPTY: */ |
| @@ -228,6 +233,8 @@ static inline int get_buf_states(struct qdio_q *q, unsigned int bufnr, | |||
| 228 | if (q->slsb.val[bufnr] != __state) | 233 | if (q->slsb.val[bufnr] != __state) |
| 229 | break; | 234 | break; |
| 230 | } | 235 | } |
| 236 | |||
| 237 | out: | ||
| 231 | *state = __state; | 238 | *state = __state; |
| 232 | return i; | 239 | return i; |
| 233 | } | 240 | } |
| @@ -382,7 +389,7 @@ int debug_get_buf_state(struct qdio_q *q, unsigned int bufnr, | |||
| 382 | { | 389 | { |
| 383 | if (need_siga_sync(q)) | 390 | if (need_siga_sync(q)) |
| 384 | qdio_siga_sync_q(q); | 391 | qdio_siga_sync_q(q); |
| 385 | return get_buf_states(q, bufnr, state, 1, 0, 0); | 392 | return get_buf_state(q, bufnr, state, 0); |
| 386 | } | 393 | } |
| 387 | 394 | ||
| 388 | static inline void qdio_stop_polling(struct qdio_q *q) | 395 | static inline void qdio_stop_polling(struct qdio_q *q) |
| @@ -719,11 +726,7 @@ static int get_outbound_buffer_frontier(struct qdio_q *q, unsigned int start) | |||
| 719 | multicast_outbound(q))) | 726 | multicast_outbound(q))) |
| 720 | qdio_siga_sync_q(q); | 727 | qdio_siga_sync_q(q); |
| 721 | 728 | ||
| 722 | /* | 729 | count = atomic_read(&q->nr_buf_used); |
| 723 | * Don't check 128 buffers, as otherwise qdio_inbound_q_moved | ||
| 724 | * would return 0. | ||
| 725 | */ | ||
| 726 | count = min(atomic_read(&q->nr_buf_used), QDIO_MAX_BUFFERS_MASK); | ||
| 727 | if (!count) | 730 | if (!count) |
| 728 | return 0; | 731 | return 0; |
| 729 | 732 | ||
diff --git a/drivers/s390/cio/trace.c b/drivers/s390/cio/trace.c index e331cd97e83b..882ee538ca30 100644 --- a/drivers/s390/cio/trace.c +++ b/drivers/s390/cio/trace.c | |||
| @@ -21,5 +21,4 @@ EXPORT_TRACEPOINT_SYMBOL(s390_cio_csch); | |||
| 21 | EXPORT_TRACEPOINT_SYMBOL(s390_cio_hsch); | 21 | EXPORT_TRACEPOINT_SYMBOL(s390_cio_hsch); |
| 22 | EXPORT_TRACEPOINT_SYMBOL(s390_cio_xsch); | 22 | EXPORT_TRACEPOINT_SYMBOL(s390_cio_xsch); |
| 23 | EXPORT_TRACEPOINT_SYMBOL(s390_cio_rsch); | 23 | EXPORT_TRACEPOINT_SYMBOL(s390_cio_rsch); |
| 24 | EXPORT_TRACEPOINT_SYMBOL(s390_cio_rchp); | ||
| 25 | EXPORT_TRACEPOINT_SYMBOL(s390_cio_chsc); | 24 | EXPORT_TRACEPOINT_SYMBOL(s390_cio_chsc); |
diff --git a/drivers/s390/cio/trace.h b/drivers/s390/cio/trace.h index 0ebb29b6fd6d..4803139bce14 100644 --- a/drivers/s390/cio/trace.h +++ b/drivers/s390/cio/trace.h | |||
| @@ -274,29 +274,6 @@ DEFINE_EVENT(s390_class_schid, s390_cio_rsch, | |||
| 274 | TP_ARGS(schid, cc) | 274 | TP_ARGS(schid, cc) |
| 275 | ); | 275 | ); |
| 276 | 276 | ||
| 277 | /** | ||
| 278 | * s390_cio_rchp - Reset Channel Path (RCHP) instruction was performed | ||
| 279 | * @chpid: Channel-Path Identifier | ||
| 280 | * @cc: Condition code | ||
| 281 | */ | ||
| 282 | TRACE_EVENT(s390_cio_rchp, | ||
| 283 | TP_PROTO(struct chp_id chpid, int cc), | ||
| 284 | TP_ARGS(chpid, cc), | ||
| 285 | TP_STRUCT__entry( | ||
| 286 | __field(u8, cssid) | ||
| 287 | __field(u8, id) | ||
| 288 | __field(int, cc) | ||
| 289 | ), | ||
| 290 | TP_fast_assign( | ||
| 291 | __entry->cssid = chpid.cssid; | ||
| 292 | __entry->id = chpid.id; | ||
| 293 | __entry->cc = cc; | ||
| 294 | ), | ||
| 295 | TP_printk("chpid=%x.%02x cc=%d", __entry->cssid, __entry->id, | ||
| 296 | __entry->cc | ||
| 297 | ) | ||
| 298 | ); | ||
| 299 | |||
| 300 | #define CHSC_MAX_REQUEST_LEN 64 | 277 | #define CHSC_MAX_REQUEST_LEN 64 |
| 301 | #define CHSC_MAX_RESPONSE_LEN 64 | 278 | #define CHSC_MAX_RESPONSE_LEN 64 |
| 302 | 279 | ||
diff --git a/include/linux/random.h b/include/linux/random.h index 13aeaf5a4bd4..1f7dced2bba6 100644 --- a/include/linux/random.h +++ b/include/linux/random.h | |||
| @@ -20,7 +20,7 @@ struct random_ready_callback { | |||
| 20 | 20 | ||
| 21 | extern void add_device_randomness(const void *, unsigned int); | 21 | extern void add_device_randomness(const void *, unsigned int); |
| 22 | 22 | ||
| 23 | #if defined(CONFIG_GCC_PLUGIN_LATENT_ENTROPY) && !defined(__CHECKER__) | 23 | #if defined(LATENT_ENTROPY_PLUGIN) && !defined(__CHECKER__) |
| 24 | static inline void add_latent_entropy(void) | 24 | static inline void add_latent_entropy(void) |
| 25 | { | 25 | { |
| 26 | add_device_randomness((const void *)&latent_entropy, | 26 | add_device_randomness((const void *)&latent_entropy, |
