OpenCloudOS-Kernel/arch/s390
Christian Borntraeger e2efc42454 s390/lib: fix memcmp and strstr
if two string compare equal the clcle instruction will update the
string addresses to point _after_ the string. This might already
be on a different page, so we should not use these pointer to
calculate the difference as in that case the calculation of the
difference can cause oopses.

The return value of memcmp does not need the difference, we
can just reuse the condition code and return for CC=1 (All bytes
compared, first operand low) -1 and for CC=2 (All bytes compared,
first operand high) +1
strstr also does not need the diff.
While fixing this, make the common function clcle "correct on its
own" by using l1 instead of l2 for the first length. strstr will
call this with l2 for both strings.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Fixes: db7f5eef3d ("s390/lib: use basic blocks for inline assemblies")
Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2016-08-08 15:41:31 +02:00
..
appldata mm: move most file-based accounting to the node 2016-07-28 16:07:41 -07:00
boot s390: clarify compressed image code path 2016-08-08 15:41:31 +02:00
configs s390: Updated kernel config files 2016-06-15 16:37:07 +02:00
crypto s390/crc32-vx: Fix checksum calculation for small sizes 2016-08-08 15:41:31 +02:00
hypfs - ARM: GICv3 ITS emulation and various fixes. Removal of the old 2016-08-02 16:11:27 -04:00
include dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
kernel s390: clarify compressed image code path 2016-08-08 15:41:31 +02:00
kvm - ARM: GICv3 ITS emulation and various fixes. Removal of the old 2016-08-02 16:11:27 -04:00
lib s390/lib: fix memcmp and strstr 2016-08-08 15:41:31 +02:00
mm - ARM: GICv3 ITS emulation and various fixes. Removal of the old 2016-08-02 16:11:27 -04:00
net s390/bpf: fix recache skb->data/hlen for skb_vlan_push/pop 2016-05-19 09:14:27 +02:00
numa s390/numa: only set possible nodes within node_possible_map 2016-07-31 05:28:00 -04:00
oprofile s390/oprofile: remove hardware sampler support 2016-06-28 09:32:22 +02:00
pci dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
tools s390/facilities: do not generate DWORDS define anymore 2016-07-31 05:27:59 -04:00
Kbuild s390/numa: add core infrastructure 2015-08-03 18:40:25 +02:00
Kconfig s390: enable kcov support 2016-06-28 09:32:39 +02:00
Kconfig.debug arch: consolidate CONFIG_STRICT_DEVM in lib/Kconfig.debug 2016-01-09 06:30:49 -08:00
Makefile s390/facilities: add helper tool to generate facility lists 2015-12-18 14:59:20 +01:00
defconfig s390: Updated kernel config files 2016-06-15 16:37:07 +02:00