Commit cb7ef4bc authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull s390 fixes from Vasily Gorbik:

 - Map vdso also for statically linked binaries like all other
   architectures.

 - Fix no .bss usage compile-time check to account common objects with
   the help of binutils size tool. Top level Makefile change acked-by
   Masahiro.

 - A fix to make perf happy with _etext symbol type.

 - Fix dump_pagetables which is broken since p*d_offset implementation
   change to comply with mm/gup.c expectations.

 - Revert memory sharing for diag calls in protected virtualization,
   since this is not required after all.

 - Couple of other minor code cleanups.

* tag 's390-5.3-5' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
  s390/vdso: map vdso also for statically linked binaries
  s390/build: use size command to perform empty .bss check
  kbuild: add OBJSIZE variable for the size tool
  s390: put _stext and _etext into .text section
  s390/head64: cleanup unused labels
  s390/unwind: remove stack recursion warning
  s390/setup: adjust start_code of init_mm to _text
  s390/mm: fix dump_pagetables top level page table walking
  s390/protvirt: avoid memory sharing for diag 308 set/store
parents 50e73a4a 404861e1
Loading
Loading
Loading
Loading
+4 −3
Original line number Original line Diff line number Diff line
@@ -419,6 +419,7 @@ NM = $(CROSS_COMPILE)nm
STRIP		= $(CROSS_COMPILE)strip
STRIP		= $(CROSS_COMPILE)strip
OBJCOPY		= $(CROSS_COMPILE)objcopy
OBJCOPY		= $(CROSS_COMPILE)objcopy
OBJDUMP		= $(CROSS_COMPILE)objdump
OBJDUMP		= $(CROSS_COMPILE)objdump
OBJSIZE		= $(CROSS_COMPILE)size
PAHOLE		= pahole
PAHOLE		= pahole
LEX		= flex
LEX		= flex
YACC		= bison
YACC		= bison
@@ -475,9 +476,9 @@ GCC_PLUGINS_CFLAGS :=
CLANG_FLAGS :=
CLANG_FLAGS :=


export ARCH SRCARCH CONFIG_SHELL HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE AS LD CC
export ARCH SRCARCH CONFIG_SHELL HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE AS LD CC
export CPP AR NM STRIP OBJCOPY OBJDUMP PAHOLE KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS
export CPP AR NM STRIP OBJCOPY OBJDUMP OBJSIZE PAHOLE LEX YACC AWK INSTALLKERNEL
export MAKE LEX YACC AWK INSTALLKERNEL PERL PYTHON PYTHON2 PYTHON3 UTS_MACHINE
export PERL PYTHON PYTHON2 PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX
export HOSTCXX KBUILD_HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
export KBUILD_HOSTCXXFLAGS KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS LDFLAGS_MODULE


export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS KBUILD_LDFLAGS
export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS KBUILD_LDFLAGS
export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
+0 −2
Original line number Original line Diff line number Diff line
@@ -48,9 +48,7 @@ void store_ipl_parmblock(void)
{
{
	int rc;
	int rc;


	uv_set_shared(__pa(&ipl_block));
	rc = __diag308(DIAG308_STORE, &ipl_block);
	rc = __diag308(DIAG308_STORE, &ipl_block);
	uv_remove_shared(__pa(&ipl_block));
	if (rc == DIAG308_RC_OK &&
	if (rc == DIAG308_RC_OK &&
	    ipl_block.hdr.version <= IPL_MAX_SUPPORTED_VERSION)
	    ipl_block.hdr.version <= IPL_MAX_SUPPORTED_VERSION)
		ipl_block_valid = 1;
		ipl_block_valid = 1;
+1 −5
Original line number Original line Diff line number Diff line
@@ -114,12 +114,8 @@ recursion_check:
	 * If it comes up a second time then there's something wrong going on:
	 * If it comes up a second time then there's something wrong going on:
	 * just break out and report an unknown stack type.
	 * just break out and report an unknown stack type.
	 */
	 */
	if (*visit_mask & (1UL << info->type)) {
	if (*visit_mask & (1UL << info->type))
		printk_deferred_once(KERN_WARNING
			"WARNING: stack recursion on stack type %d\n",
			info->type);
		goto unknown;
		goto unknown;
	}
	*visit_mask |= 1UL << info->type;
	*visit_mask |= 1UL << info->type;
	return 0;
	return 0;
unknown:
unknown:
+0 −7
Original line number Original line Diff line number Diff line
@@ -60,12 +60,5 @@ ENTRY(startup_continue)


	.align	16
	.align	16
.LPG1:
.LPG1:
.Lpcmsk:.quad	0x0000000180000000
.L4malign:.quad 0xffffffffffc00000
.Lscan2g:.quad	0x80000000 + 0x20000 - 8	# 2GB + 128K - 8
.Lnop:	.long	0x07000700
.Lparmaddr:
	.quad	PARMAREA
	.align	64
.Ldw:	.quad	0x0002000180000000,0x0000000000000000
.Ldw:	.quad	0x0002000180000000,0x0000000000000000
.Laregs:.long	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
.Laregs:.long	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0 −9
Original line number Original line Diff line number Diff line
@@ -31,7 +31,6 @@
#include <asm/os_info.h>
#include <asm/os_info.h>
#include <asm/sections.h>
#include <asm/sections.h>
#include <asm/boot_data.h>
#include <asm/boot_data.h>
#include <asm/uv.h>
#include "entry.h"
#include "entry.h"


#define IPL_PARM_BLOCK_VERSION 0
#define IPL_PARM_BLOCK_VERSION 0
@@ -892,21 +891,15 @@ static void __reipl_run(void *unused)
{
{
	switch (reipl_type) {
	switch (reipl_type) {
	case IPL_TYPE_CCW:
	case IPL_TYPE_CCW:
		uv_set_shared(__pa(reipl_block_ccw));
		diag308(DIAG308_SET, reipl_block_ccw);
		diag308(DIAG308_SET, reipl_block_ccw);
		uv_remove_shared(__pa(reipl_block_ccw));
		diag308(DIAG308_LOAD_CLEAR, NULL);
		diag308(DIAG308_LOAD_CLEAR, NULL);
		break;
		break;
	case IPL_TYPE_FCP:
	case IPL_TYPE_FCP:
		uv_set_shared(__pa(reipl_block_fcp));
		diag308(DIAG308_SET, reipl_block_fcp);
		diag308(DIAG308_SET, reipl_block_fcp);
		uv_remove_shared(__pa(reipl_block_fcp));
		diag308(DIAG308_LOAD_CLEAR, NULL);
		diag308(DIAG308_LOAD_CLEAR, NULL);
		break;
		break;
	case IPL_TYPE_NSS:
	case IPL_TYPE_NSS:
		uv_set_shared(__pa(reipl_block_nss));
		diag308(DIAG308_SET, reipl_block_nss);
		diag308(DIAG308_SET, reipl_block_nss);
		uv_remove_shared(__pa(reipl_block_nss));
		diag308(DIAG308_LOAD_CLEAR, NULL);
		diag308(DIAG308_LOAD_CLEAR, NULL);
		break;
		break;
	case IPL_TYPE_UNKNOWN:
	case IPL_TYPE_UNKNOWN:
@@ -1176,9 +1169,7 @@ static struct kset *dump_kset;


static void diag308_dump(void *dump_block)
static void diag308_dump(void *dump_block)
{
{
	uv_set_shared(__pa(dump_block));
	diag308(DIAG308_SET, dump_block);
	diag308(DIAG308_SET, dump_block);
	uv_remove_shared(__pa(dump_block));
	while (1) {
	while (1) {
		if (diag308(DIAG308_LOAD_NORMAL_DUMP, NULL) != 0x302)
		if (diag308(DIAG308_LOAD_NORMAL_DUMP, NULL) != 0x302)
			break;
			break;
Loading