Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c4ad180f authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull s390 update from Martin Schwidefsky:
 "An additional sysfs attribute for channel paths and a couple of bux
  fixes"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
  s390/pgtable: fix ipte notify bit
  s390/xpram: mark xpram as non-rotational
  s390/smp: fix cpu re-scan vs. cpu state
  s390/cio: add channel ID sysfs attribute
  s390/ftrace: fix mcount adjustment
  s390: fix gmap_ipte_notifier vs. software dirty pages
  s390: disable pfmf for clear page instruction
  s390/disassembler: prevent endless loop in print_fn_code()
  s390: remove non existent reference to GENERIC_KERNEL_THREAD
parents aa033810 6b8224e4
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -98,7 +98,6 @@ config S390
	select CLONE_BACKWARDS2
	select GENERIC_CLOCKEVENTS
	select GENERIC_CPU_DEVICES if !SMP
	select GENERIC_KERNEL_THREAD
	select GENERIC_SMP_IDLE_THREAD
	select GENERIC_TIME_VSYSCALL_OLD
	select HAVE_ALIGNED_STRUCT_PAGE if SLUB
+7 −5
Original line number Diff line number Diff line
@@ -9,11 +9,6 @@ struct dyn_arch_ftrace { };

#define MCOUNT_ADDR ((long)_mcount)

#ifdef CONFIG_64BIT
#define MCOUNT_INSN_SIZE  12
#else
#define MCOUNT_INSN_SIZE  20
#endif

static inline unsigned long ftrace_call_adjust(unsigned long addr)
{
@@ -21,4 +16,11 @@ static inline unsigned long ftrace_call_adjust(unsigned long addr)
}

#endif /* __ASSEMBLY__ */

#ifdef CONFIG_64BIT
#define MCOUNT_INSN_SIZE  12
#else
#define MCOUNT_INSN_SIZE  22
#endif

#endif /* _ASM_S390_FTRACE_H */
+8 −12
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@

void storage_key_init_range(unsigned long start, unsigned long end);

static unsigned long pfmf(unsigned long function, unsigned long address)
static inline unsigned long pfmf(unsigned long function, unsigned long address)
{
	asm volatile(
		"	.insn	rre,0xb9af0000,%[function],%[address]"
@@ -44,9 +44,6 @@ static unsigned long pfmf(unsigned long function, unsigned long address)

static inline void clear_page(void *page)
{
	if (MACHINE_HAS_PFMF) {
		pfmf(0x10000, (unsigned long)page);
	} else {
	register unsigned long reg1 asm ("1") = 0;
	register void *reg2 asm ("2") = page;
	register unsigned long reg3 asm ("3") = 4096;
@@ -55,7 +52,6 @@ static inline void clear_page(void *page)
		: "+d" (reg2), "+d" (reg3) : "d" (reg1)
		: "memory", "cc");
}
}

static inline void copy_page(void *to, void *from)
{
+2 −2
Original line number Diff line number Diff line
@@ -306,7 +306,7 @@ extern unsigned long MODULES_END;
#define RCP_HC_BIT	0x00200000UL
#define RCP_GR_BIT	0x00040000UL
#define RCP_GC_BIT	0x00020000UL
#define RCP_IN_BIT	0x00008000UL	/* IPTE notify bit */
#define RCP_IN_BIT	0x00002000UL	/* IPTE notify bit */

/* User dirty / referenced bit for KVM's migration feature */
#define KVM_UR_BIT	0x00008000UL
@@ -374,7 +374,7 @@ extern unsigned long MODULES_END;
#define RCP_HC_BIT	0x0020000000000000UL
#define RCP_GR_BIT	0x0004000000000000UL
#define RCP_GC_BIT	0x0002000000000000UL
#define RCP_IN_BIT	0x0000800000000000UL	/* IPTE notify bit */
#define RCP_IN_BIT	0x0000200000000000UL	/* IPTE notify bit */

/* User dirty / referenced bit for KVM's migration feature */
#define KVM_UR_BIT	0x0000800000000000UL
+2 −0
Original line number Diff line number Diff line
@@ -1862,6 +1862,8 @@ void print_fn_code(unsigned char *code, unsigned long len)
	while (len) {
		ptr = buffer;
		opsize = insn_length(*code);
		if (opsize > len)
			break;
		ptr += sprintf(ptr, "%p: ", code);
		for (i = 0; i < opsize; i++)
			ptr += sprintf(ptr, "%02x", code[i]);
Loading