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

Commit eeb7c41d authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull s390 fixes from Martin Schwidefsky:
 "Three bug fixes"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
  s390/mm: set change and reference bit on lazy key enablement
  s390: chp: handle CRW_ERC_INIT for channel-path status change
  s390/perf: fix problem state detection
parents 520eccdf 97ca7bfc
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -998,7 +998,7 @@ static int perf_push_sample(struct perf_event *event, struct sf_raw_sample *sfr)
	psw_bits(regs.psw).ia	= sfr->basic.ia;
	psw_bits(regs.psw).dat	= sfr->basic.T;
	psw_bits(regs.psw).wait = sfr->basic.W;
	psw_bits(regs.psw).per	= sfr->basic.P;
	psw_bits(regs.psw).pstate = sfr->basic.P;
	psw_bits(regs.psw).as	= sfr->basic.AS;

	/*
+3 −3
Original line number Diff line number Diff line
@@ -591,11 +591,11 @@ void ptep_zap_key(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
	unsigned long ptev;
	pgste_t pgste;

	/* Clear storage key */
	/* Clear storage key ACC and F, but set R/C */
	preempt_disable();
	pgste = pgste_get_lock(ptep);
	pgste_val(pgste) &= ~(PGSTE_ACC_BITS | PGSTE_FP_BIT |
			      PGSTE_GR_BIT | PGSTE_GC_BIT);
	pgste_val(pgste) &= ~(PGSTE_ACC_BITS | PGSTE_FP_BIT);
	pgste_val(pgste) |= PGSTE_GR_BIT | PGSTE_GC_BIT;
	ptev = pte_val(*ptep);
	if (!(ptev & _PAGE_INVALID) && (ptev & _PAGE_WRITE))
		page_set_storage_key(ptev & PAGE_MASK, PAGE_DEFAULT_KEY, 1);
+1 −0
Original line number Diff line number Diff line
@@ -559,6 +559,7 @@ static void chp_process_crw(struct crw *crw0, struct crw *crw1,
	chpid.id = crw0->rsid;
	switch (crw0->erc) {
	case CRW_ERC_IPARM: /* Path has come. */
	case CRW_ERC_INIT:
		if (!chp_is_registered(chpid))
			chp_new(chpid);
		chsc_chp_online(chpid);