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

Unverified Commit 705e71ad authored by Matt Redfearn's avatar Matt Redfearn Committed by James Hogan
Browse files

MIPS: Watch: Avoid duplication of bits in mips_read_watch_registers



Currently the bits to be masked when watchhi is read is defined inline
for each register. To avoid this, define the bits once and mask each
register with that value.

Signed-off-by: default avatarMatt Redfearn <matt.redfearn@mips.com>
Acked-by: default avatarDavid Daney <david.daney@cavium.com>
Reviewed-by: default avatarJames Hogan <jhogan@kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/18158/


Signed-off-by: default avatarJames Hogan <jhogan@kernel.org>
parent f609cc3a
Loading
Loading
Loading
Loading
+6 −8
Original line number Diff line number Diff line
@@ -48,21 +48,19 @@ void mips_read_watch_registers(void)
{
	struct mips3264_watch_reg_state *watches =
		&current->thread.watch.mips3264;
	unsigned int watchhi_mask = MIPS_WATCHHI_MASK | MIPS_WATCHHI_IRW;

	switch (current_cpu_data.watch_reg_use_cnt) {
	default:
		BUG();
	case 4:
		watches->watchhi[3] = (read_c0_watchhi3() &
				       (MIPS_WATCHHI_MASK | MIPS_WATCHHI_IRW));
		watches->watchhi[3] = (read_c0_watchhi3() & watchhi_mask);
	case 3:
		watches->watchhi[2] = (read_c0_watchhi2() &
				       (MIPS_WATCHHI_MASK | MIPS_WATCHHI_IRW));
		watches->watchhi[2] = (read_c0_watchhi2() & watchhi_mask);
	case 2:
		watches->watchhi[1] = (read_c0_watchhi1() &
				       (MIPS_WATCHHI_MASK | MIPS_WATCHHI_IRW));
		watches->watchhi[1] = (read_c0_watchhi1() & watchhi_mask);
	case 1:
		watches->watchhi[0] = (read_c0_watchhi0() &
				       (MIPS_WATCHHI_MASK | MIPS_WATCHHI_IRW));
		watches->watchhi[0] = (read_c0_watchhi0() & watchhi_mask);
	}
	if (current_cpu_data.watch_reg_use_cnt == 1 &&
	    (watches->watchhi[0] & MIPS_WATCHHI_IRW) == 0) {