Commit 80111bfb authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 's390-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux

Pull more s390 updates from Martin Schwidefsky:

 - Enhancements for the QDIO layer

 - Remove the RCP trace event

 - Avoid three build issues

 - Move the defconfig to the configs directory

* tag 's390-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
  s390: move arch/s390/defconfig to arch/s390/configs/defconfig
  s390/qdio: optimize state inspection of HW-owned SBALs
  s390/qdio: use get_buf_state() in debug_get_buf_state()
  s390/qdio: allow to scan all Output SBALs in one go
  s390/cio: Remove tracing for rchp instruction
  s390/kasan: adapt disabled_wait usage to avoid build error
  latent_entropy: avoid build error when plugin cflags are not set
  s390/boot: fix compiler error due to missing awk strtonum
parents bf8a9a47 f3e20ad6
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
# Copyright (C) 1994 by Linus Torvalds # Copyright (C) 1994 by Linus Torvalds
# #
KBUILD_DEFCONFIG := defconfig
LD_BFD := elf64-s390 LD_BFD := elf64-s390
KBUILD_LDFLAGS := -m elf64_s390 KBUILD_LDFLAGS := -m elf64_s390
KBUILD_AFLAGS_MODULE += -fPIC KBUILD_AFLAGS_MODULE += -fPIC
......
...@@ -58,7 +58,6 @@ define cmd_section_cmp ...@@ -58,7 +58,6 @@ define cmd_section_cmp
touch $@ touch $@
endef endef
OBJCOPYFLAGS_bzImage := --pad-to $$(readelf -s $(obj)/compressed/vmlinux | awk '/\<_end\>/ {print or(strtonum("0x"$$2),4095)+1}')
$(obj)/bzImage: $(obj)/compressed/vmlinux $(obj)/section_cmp.boot.data $(obj)/section_cmp.boot.preserved.data FORCE $(obj)/bzImage: $(obj)/compressed/vmlinux $(obj)/section_cmp.boot.data $(obj)/section_cmp.boot.preserved.data FORCE
$(call if_changed,objcopy) $(call if_changed,objcopy)
......
...@@ -77,6 +77,8 @@ SECTIONS ...@@ -77,6 +77,8 @@ SECTIONS
_compressed_start = .; _compressed_start = .;
*(.vmlinux.bin.compressed) *(.vmlinux.bin.compressed)
_compressed_end = .; _compressed_end = .;
FILL(0xff);
. = ALIGN(4096);
} }
. = ALIGN(256); . = ALIGN(256);
.bss : { .bss : {
......
...@@ -28,7 +28,7 @@ static void __init kasan_early_panic(const char *reason) ...@@ -28,7 +28,7 @@ static void __init kasan_early_panic(const char *reason)
{ {
sclp_early_printk("The Linux kernel failed to boot with the KernelAddressSanitizer:\n"); sclp_early_printk("The Linux kernel failed to boot with the KernelAddressSanitizer:\n");
sclp_early_printk(reason); sclp_early_printk(reason);
disabled_wait(0); disabled_wait();
} }
static void * __init kasan_early_alloc_segment(void) static void * __init kasan_early_alloc_segment(void)
......
...@@ -205,17 +205,22 @@ static inline int get_buf_states(struct qdio_q *q, unsigned int bufnr, ...@@ -205,17 +205,22 @@ static inline int get_buf_states(struct qdio_q *q, unsigned int bufnr,
int auto_ack, int merge_pending) int auto_ack, int merge_pending)
{ {
unsigned char __state = 0; unsigned char __state = 0;
int i; int i = 1;
if (is_qebsm(q)) if (is_qebsm(q))
return qdio_do_eqbs(q, state, bufnr, count, auto_ack); return qdio_do_eqbs(q, state, bufnr, count, auto_ack);
/* get initial state: */ /* get initial state: */
__state = q->slsb.val[bufnr]; __state = q->slsb.val[bufnr];
/* Bail out early if there is no work on the queue: */
if (__state & SLSB_OWNER_CU)
goto out;
if (merge_pending && __state == SLSB_P_OUTPUT_PENDING) if (merge_pending && __state == SLSB_P_OUTPUT_PENDING)
__state = SLSB_P_OUTPUT_EMPTY; __state = SLSB_P_OUTPUT_EMPTY;
for (i = 1; i < count; i++) { for (; i < count; i++) {
bufnr = next_buf(bufnr); bufnr = next_buf(bufnr);
/* merge PENDING into EMPTY: */ /* merge PENDING into EMPTY: */
...@@ -228,6 +233,8 @@ static inline int get_buf_states(struct qdio_q *q, unsigned int bufnr, ...@@ -228,6 +233,8 @@ static inline int get_buf_states(struct qdio_q *q, unsigned int bufnr,
if (q->slsb.val[bufnr] != __state) if (q->slsb.val[bufnr] != __state)
break; break;
} }
out:
*state = __state; *state = __state;
return i; return i;
} }
...@@ -382,7 +389,7 @@ int debug_get_buf_state(struct qdio_q *q, unsigned int bufnr, ...@@ -382,7 +389,7 @@ int debug_get_buf_state(struct qdio_q *q, unsigned int bufnr,
{ {
if (need_siga_sync(q)) if (need_siga_sync(q))
qdio_siga_sync_q(q); qdio_siga_sync_q(q);
return get_buf_states(q, bufnr, state, 1, 0, 0); return get_buf_state(q, bufnr, state, 0);
} }
static inline void qdio_stop_polling(struct qdio_q *q) 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,11 +726,7 @@ static int get_outbound_buffer_frontier(struct qdio_q *q, unsigned int start)
multicast_outbound(q))) multicast_outbound(q)))
qdio_siga_sync_q(q); qdio_siga_sync_q(q);
/* count = atomic_read(&q->nr_buf_used);
* Don't check 128 buffers, as otherwise qdio_inbound_q_moved
* would return 0.
*/
count = min(atomic_read(&q->nr_buf_used), QDIO_MAX_BUFFERS_MASK);
if (!count) if (!count)
return 0; return 0;
......
...@@ -21,5 +21,4 @@ EXPORT_TRACEPOINT_SYMBOL(s390_cio_csch); ...@@ -21,5 +21,4 @@ EXPORT_TRACEPOINT_SYMBOL(s390_cio_csch);
EXPORT_TRACEPOINT_SYMBOL(s390_cio_hsch); EXPORT_TRACEPOINT_SYMBOL(s390_cio_hsch);
EXPORT_TRACEPOINT_SYMBOL(s390_cio_xsch); EXPORT_TRACEPOINT_SYMBOL(s390_cio_xsch);
EXPORT_TRACEPOINT_SYMBOL(s390_cio_rsch); EXPORT_TRACEPOINT_SYMBOL(s390_cio_rsch);
EXPORT_TRACEPOINT_SYMBOL(s390_cio_rchp);
EXPORT_TRACEPOINT_SYMBOL(s390_cio_chsc); EXPORT_TRACEPOINT_SYMBOL(s390_cio_chsc);
...@@ -274,29 +274,6 @@ DEFINE_EVENT(s390_class_schid, s390_cio_rsch, ...@@ -274,29 +274,6 @@ DEFINE_EVENT(s390_class_schid, s390_cio_rsch,
TP_ARGS(schid, cc) TP_ARGS(schid, cc)
); );
/**
* s390_cio_rchp - Reset Channel Path (RCHP) instruction was performed
* @chpid: Channel-Path Identifier
* @cc: Condition code
*/
TRACE_EVENT(s390_cio_rchp,
TP_PROTO(struct chp_id chpid, int cc),
TP_ARGS(chpid, cc),
TP_STRUCT__entry(
__field(u8, cssid)
__field(u8, id)
__field(int, cc)
),
TP_fast_assign(
__entry->cssid = chpid.cssid;
__entry->id = chpid.id;
__entry->cc = cc;
),
TP_printk("chpid=%x.%02x cc=%d", __entry->cssid, __entry->id,
__entry->cc
)
);
#define CHSC_MAX_REQUEST_LEN 64 #define CHSC_MAX_REQUEST_LEN 64
#define CHSC_MAX_RESPONSE_LEN 64 #define CHSC_MAX_RESPONSE_LEN 64
......
...@@ -20,7 +20,7 @@ struct random_ready_callback { ...@@ -20,7 +20,7 @@ struct random_ready_callback {
extern void add_device_randomness(const void *, unsigned int); extern void add_device_randomness(const void *, unsigned int);
#if defined(CONFIG_GCC_PLUGIN_LATENT_ENTROPY) && !defined(__CHECKER__) #if defined(LATENT_ENTROPY_PLUGIN) && !defined(__CHECKER__)
static inline void add_latent_entropy(void) static inline void add_latent_entropy(void)
{ {
add_device_randomness((const void *)&latent_entropy, add_device_randomness((const void *)&latent_entropy,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment