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

Commit 7f63c41c authored by Jeremy Fitzhardinge's avatar Jeremy Fitzhardinge Committed by Andi Kleen
Browse files

[PATCH] i386: PARAVIRT: Remove CONFIG_DEBUG_PARAVIRT



Remove CONFIG_DEBUG_PARAVIRT.  When inlining code, this option
attempts to trash registers in the patch-site's "clobber" field, on
the grounds that this should find bugs with incorrect clobbers.
Unfortunately, the clobber field really means "registers modified by
this patch site", which includes return values.

Because of this, this option has outlived its usefulness, so remove
it.

Signed-off-by: default avatarJeremy Fitzhardinge <jeremy@xensource.com>
Signed-off-by: default avatarAndi Kleen <ak@suse.de>
Cc: Rusty Russell <rusty@rustcorp.com.au>
parent 4cdf6bc2
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -85,14 +85,4 @@ config DOUBLEFAULT
          option saves about 4k and might cause you much additional grey
          hair.

config DEBUG_PARAVIRT
	bool "Enable some paravirtualization debugging"
	default n
	depends on PARAVIRT && DEBUG_KERNEL
	help
	  Currently deliberately clobbers regs which are allowed to be
	  clobbered in inlined paravirt hooks, even in native mode.
	  If turning this off solves a problem, then DISABLE_INTERRUPTS() or
	  ENABLE_INTERRUPTS() is lying about what registers can be clobbered.

endmenu
+1 −13
Original line number Diff line number Diff line
@@ -334,19 +334,7 @@ void apply_paravirt(struct paravirt_patch *start, struct paravirt_patch *end)

		used = paravirt_ops.patch(p->instrtype, p->clobbers, p->instr,
					  p->len);
#ifdef CONFIG_DEBUG_PARAVIRT
		{
		int i;
		/* Deliberately clobber regs using "not %reg" to find bugs. */
		for (i = 0; i < 3; i++) {
			if (p->len - used >= 2 && (p->clobbers & (1 << i))) {
				memcpy(p->instr + used, "\xf7\xd0", 2);
				p->instr[used+1] |= i;
				used += 2;
			}
		}
		}
#endif

		/* Pad the rest with nops */
		nop_out(p->instr + used, p->len - used);
	}