All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andi Kleen <ak@suse.de>
To: Rusty Russell <rusty@rustcorp.com.au>,
	patches@x86-64.org, linux-kernel@vger.kernel.org
Subject: [PATCH x86 for review III] [25/29] i386: paravirt unhandled fallthrough
Date: Mon, 12 Feb 2007 17:51:46 +0100 (CET)	[thread overview]
Message-ID: <20070212165146.22BCC13E1B@wotan.suse.de> (raw)
In-Reply-To: <20070212551.664370000@suse.de>


From: Rusty Russell <rusty@rustcorp.com.au>
The current code simply calls "start_kernel" directly if we're under a
hypervisor and no paravirt_ops backend wants us, because paravirt.c
registers that as a backend.

This was always a vain hope; start_kernel won't get far without setup.
It's also impossible for paravirt_ops backends which don't sit in the
arch/i386/kernel directory: they can't link before paravirt.o anyway.

Keep it simple: if we pass all the registered paravirt probes, BUG().

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Andi Kleen <ak@suse.de>

---
 arch/i386/kernel/Makefile   |    2 --
 arch/i386/kernel/head.S     |    7 ++++++-
 arch/i386/kernel/paravirt.c |    3 ---
 3 files changed, 6 insertions(+), 6 deletions(-)

Index: linux/arch/i386/kernel/Makefile
===================================================================
--- linux.orig/arch/i386/kernel/Makefile
+++ linux/arch/i386/kernel/Makefile
@@ -41,8 +41,6 @@ obj-$(CONFIG_HPET_TIMER) 	+= hpet.o
 obj-$(CONFIG_K8_NB)		+= k8.o
 
 obj-$(CONFIG_VMI)		+= vmi.o vmitime.o
-
-# Make sure this is linked after any other paravirt_ops structs: see head.S
 obj-$(CONFIG_PARAVIRT)		+= paravirt.o
 
 EXTRA_AFLAGS   := -traditional
Index: linux/arch/i386/kernel/head.S
===================================================================
--- linux.orig/arch/i386/kernel/head.S
+++ linux/arch/i386/kernel/head.S
@@ -513,10 +513,11 @@ startup_paravirt:
 	pushl	%ecx
 	pushl	%eax
 
-	/* paravirt.o is last in link, and that probe fn never returns */
 	pushl	$__start_paravirtprobe
 1:
 	movl	0(%esp), %eax
+	cmpl	$__stop_paravirtprobe, %eax
+	je	unhandled_paravirt
 	pushl	(%eax)
 	movl	8(%esp), %eax
 	call	*(%esp)
@@ -528,6 +529,10 @@ startup_paravirt:
 
 	addl	$4, (%esp)
 	jmp	1b
+
+unhandled_paravirt:
+	/* Nothing wanted us: we're screwed. */
+	ud2
 #endif
 
 /*
Index: linux/arch/i386/kernel/paravirt.c
===================================================================
--- linux.orig/arch/i386/kernel/paravirt.c
+++ linux/arch/i386/kernel/paravirt.c
@@ -482,9 +482,6 @@ static int __init print_banner(void)
 }
 core_initcall(print_banner);
 
-/* We simply declare start_kernel to be the paravirt probe of last resort. */
-paravirt_probe(start_kernel);
-
 struct paravirt_ops paravirt_ops = {
 	.name = "bare hardware",
 	.paravirt_enabled = 0,

  parent reply	other threads:[~2007-02-12 16:54 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-12 16:51 [PATCH x86 for review III] [1/29] i386: avoid gcc extension Andi Kleen
2007-02-12 16:51 ` [PATCH x86 for review III] [2/29] i386: support Classic MediaGXm Andi Kleen
2007-02-12 16:51 ` [PATCH x86 for review III] [3/29] i386: entry.S END/ENDPROC annotations Andi Kleen
2007-02-12 16:51 ` [PATCH x86 for review III] [4/29] x86_64: clean up sparsemem memory_present call Andi Kleen
2007-02-12 16:51 ` [PATCH x86 for review III] [5/29] i386: arch/i386/kernel/alternative.c should #include <asm/bugs.h> Andi Kleen
2007-02-12 16:51 ` [PATCH x86 for review III] [6/29] i386: Remove unused kernel config option X86_XADD Andi Kleen
2007-02-12 16:51 ` [PATCH x86 for review III] [7/29] x86_64: update IO-APIC dest field to 8-bit for xAPIC Andi Kleen
2007-02-12 19:49   ` Eric W. Biederman
2007-02-12 16:51 ` [PATCH x86 for review III] [8/29] x86_64: avoid warning message livelock Andi Kleen
2007-02-12 16:51 ` [PATCH x86 for review III] [9/29] x86_64: Minor patch for compilation warning in x86_64 signal code Andi Kleen
2007-02-12 16:51 ` [PATCH x86 for review III] [10/29] i386: don't include bugs.h Andi Kleen
2007-02-12 17:35   ` Jörn Engel
2007-02-12 18:33     ` Andi Kleen
2007-02-12 16:51 ` [PATCH x86 for review III] [11/29] i386: add option to show more code in oops reports Andi Kleen
2007-02-12 16:51 ` [PATCH x86 for review III] [12/29] x86_64: 32-bit ptrace mangles sixth system call argument Andi Kleen
2007-02-12 22:04   ` Chuck Ebbert
2007-02-12 22:26     ` Andi Kleen
2007-02-14 17:52     ` Jeff Dike
2007-02-12 16:51 ` [PATCH x86 for review III] [13/29] i386: geode configuration fixes Andi Kleen
2007-02-12 16:51 ` [PATCH x86 for review III] [15/29] x86_64: Fix wrong gcc check in bitops.h Andi Kleen
2007-02-12 16:51 ` [PATCH x86 for review III] [16/29] i386: Remove fastcall in paravirt.[ch] Andi Kleen
2007-02-12 16:51 ` [PATCH x86 for review III] [17/29] x86: Add new CPUID bits for AMD Family 10 CPUs in /proc/cpuinfo Andi Kleen
2007-02-12 22:11   ` Chuck Ebbert
2007-02-12 22:23     ` Andi Kleen
2007-02-12 22:37       ` Chuck Ebbert
2007-02-12 22:38         ` Andi Kleen
2007-02-12 23:04           ` Chuck Ebbert
2007-02-12 16:51 ` [PATCH x86 for review III] [18/29] i386: Add L3 cache support to AMD CPUID4 emulation Andi Kleen
2007-02-12 16:51 ` [PATCH x86 for review III] [19/29] x86: Enable NMI watchdog for AMD Family 0x10 CPUs Andi Kleen
2007-02-12 16:51 ` [PATCH x86 for review III] [20/29] i386: Fix warning in microcode.c Andi Kleen
2007-02-12 16:51 ` [PATCH x86 for review III] [21/29] i386: Fix warning in cpu initialization Andi Kleen
2007-02-12 16:51 ` [PATCH x86 for review III] [23/29] x86: Don't require the vDSO for handling a.out signals Andi Kleen
2007-02-12 16:51 ` [PATCH x86 for review III] [24/29] x86_64: -mm merge plans for 2.6.21 Andi Kleen
2007-02-12 16:51 ` Andi Kleen [this message]
2007-02-12 16:51 ` [PATCH x86 for review III] [26/29] i386: Move mce_disabled to asm/mce.h Andi Kleen
2007-02-12 16:51 ` [PATCH x86 for review III] [27/29] i386: Rename cpu_gdt_descr and remove extern declaration from smpboot.c Andi Kleen
2007-02-12 16:51 ` [PATCH x86 for review III] [28/29] i386: Remove extern declaration from mm/discontig.c, put in header Andi Kleen
2007-02-12 16:51 ` [PATCH x86 for review III] [29/29] x86: Unify pcspeaker platform device code between i386/x86-64 Andi Kleen
2007-02-12 19:43 ` [PATCH x86 for review III] [1/29] i386: avoid gcc extension Jochen Voß
2007-02-12 20:18   ` Randy Dunlap
2007-02-13 15:11 ` Arnd Bergmann
2007-02-13 16:10   ` Randy Dunlap
2007-02-13 16:52     ` Andi Kleen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070212165146.22BCC13E1B@wotan.suse.de \
    --to=ak@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=patches@x86-64.org \
    --cc=rusty@rustcorp.com.au \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.