forked from Minki/linux
s390 updates for the 5.2 merge window #2
- Enhancements for the QDIO layer - Remove the RCP trace event - Avoid three build issues - Move the defconfig to the configs directory -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAABCAAGBQJc3lk4AAoJEDjwexyKj9rgPXQH/06jspiNAiz2aZBvAxcfUku+ b1yDNg2EivWYSbUtTPqvI3H5skANvc3N4Dnv6mYUcO/lpIWo6MdXW9lepxEP1yNb AdvVY/c1yMZjMdi2WYrhC8+mLtoFmgjIPSIBcmSsZ2j+5IwI0bB5UcOjzKlujhAY E1QGdlVB5hxCI7RZnCGdggqkjAPsVKYNl1zVgX2GO8UwprZbt1IzuWK4NgdmE/bh 8SV1AGOjp/BGXNY+uj06b7DI5K19wwlv9yPdO+cv22HPqLvEvZU9xyIjBYTQy+/0 LmtcZ91DLS7fWM45XE/2T1UPUDTophGsI1jVBLGlTOBYjYSMD2ijYN8MJd0+IlY= =/28O -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
80111bfb67
@ -10,6 +10,8 @@
|
||||
# Copyright (C) 1994 by Linus Torvalds
|
||||
#
|
||||
|
||||
KBUILD_DEFCONFIG := defconfig
|
||||
|
||||
LD_BFD := elf64-s390
|
||||
KBUILD_LDFLAGS := -m elf64_s390
|
||||
KBUILD_AFLAGS_MODULE += -fPIC
|
||||
|
@ -58,7 +58,6 @@ define cmd_section_cmp
|
||||
touch $@
|
||||
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
|
||||
$(call if_changed,objcopy)
|
||||
|
||||
|
@ -77,6 +77,8 @@ SECTIONS
|
||||
_compressed_start = .;
|
||||
*(.vmlinux.bin.compressed)
|
||||
_compressed_end = .;
|
||||
FILL(0xff);
|
||||
. = ALIGN(4096);
|
||||
}
|
||||
. = ALIGN(256);
|
||||
.bss : {
|
||||
|
@ -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(reason);
|
||||
disabled_wait(0);
|
||||
disabled_wait();
|
||||
}
|
||||
|
||||
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,
|
||||
int auto_ack, int merge_pending)
|
||||
{
|
||||
unsigned char __state = 0;
|
||||
int i;
|
||||
int i = 1;
|
||||
|
||||
if (is_qebsm(q))
|
||||
return qdio_do_eqbs(q, state, bufnr, count, auto_ack);
|
||||
|
||||
/* get initial state: */
|
||||
__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)
|
||||
__state = SLSB_P_OUTPUT_EMPTY;
|
||||
|
||||
for (i = 1; i < count; i++) {
|
||||
for (; i < count; i++) {
|
||||
bufnr = next_buf(bufnr);
|
||||
|
||||
/* merge PENDING into EMPTY: */
|
||||
@ -228,6 +233,8 @@ static inline int get_buf_states(struct qdio_q *q, unsigned int bufnr,
|
||||
if (q->slsb.val[bufnr] != __state)
|
||||
break;
|
||||
}
|
||||
|
||||
out:
|
||||
*state = __state;
|
||||
return i;
|
||||
}
|
||||
@ -382,7 +389,7 @@ int debug_get_buf_state(struct qdio_q *q, unsigned int bufnr,
|
||||
{
|
||||
if (need_siga_sync(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)
|
||||
@ -719,11 +726,7 @@ static int get_outbound_buffer_frontier(struct qdio_q *q, unsigned int start)
|
||||
multicast_outbound(q)))
|
||||
qdio_siga_sync_q(q);
|
||||
|
||||
/*
|
||||
* 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);
|
||||
count = atomic_read(&q->nr_buf_used);
|
||||
if (!count)
|
||||
return 0;
|
||||
|
||||
|
@ -21,5 +21,4 @@ EXPORT_TRACEPOINT_SYMBOL(s390_cio_csch);
|
||||
EXPORT_TRACEPOINT_SYMBOL(s390_cio_hsch);
|
||||
EXPORT_TRACEPOINT_SYMBOL(s390_cio_xsch);
|
||||
EXPORT_TRACEPOINT_SYMBOL(s390_cio_rsch);
|
||||
EXPORT_TRACEPOINT_SYMBOL(s390_cio_rchp);
|
||||
EXPORT_TRACEPOINT_SYMBOL(s390_cio_chsc);
|
||||
|
@ -274,29 +274,6 @@ DEFINE_EVENT(s390_class_schid, s390_cio_rsch,
|
||||
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_RESPONSE_LEN 64
|
||||
|
||||
|
@ -20,7 +20,7 @@ struct random_ready_callback {
|
||||
|
||||
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)
|
||||
{
|
||||
add_device_randomness((const void *)&latent_entropy,
|
||||
|
Loading…
Reference in New Issue
Block a user