Commit 0cdff98b authored by Nicholas Piggin's avatar Nicholas Piggin Committed by Michael Ellerman
Browse files

powerpc/64s: Remove irq mask workaround in accumulate_stolen_time()



The caller has been moved to C after irq soft-mask state has been
reconciled, and Linux IRQs have been marked as disabled, so this no
longer needs to play games with IRQ internals.

Fixes: 68b34588 ("powerpc/64/sycall: Implement syscall entry/exit logic in C")
Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20210623022924.704645-1-npiggin@gmail.com
parent 633c8e98
Loading
Loading
Loading
Loading
+0 −11
Original line number Diff line number Diff line
@@ -231,24 +231,13 @@ static u64 scan_dispatch_log(u64 stop_tb)
void notrace accumulate_stolen_time(void)
{
	u64 sst, ust;
	unsigned long save_irq_soft_mask = irq_soft_mask_return();
	struct cpu_accounting_data *acct = &local_paca->accounting;

	/* We are called early in the exception entry, before
	 * soft/hard_enabled are sync'ed to the expected state
	 * for the exception. We are hard disabled but the PACA
	 * needs to reflect that so various debug stuff doesn't
	 * complain
	 */
	irq_soft_mask_set(IRQS_DISABLED);

	sst = scan_dispatch_log(acct->starttime_user);
	ust = scan_dispatch_log(acct->starttime);
	acct->stime -= sst;
	acct->utime -= ust;
	acct->steal_time += ust + sst;

	irq_soft_mask_set(save_irq_soft_mask);
}

static inline u64 calculate_stolen_time(u64 stop_tb)