All of lore.kernel.org
 help / color / mirror / Atom feed
From: Al Viro <viro@ZenIV.linux.org.uk>
To: Larry Finger <Larry.Finger@lwfinger.net>
Cc: LKML <linux-kernel@vger.kernel.org>, Vivek Goyal <vgoyal@redhat.com>
Subject: Re: What is the function of arch/x86/purgatory/purgatory.c?
Date: Sat, 17 Dec 2016 19:46:45 +0000	[thread overview]
Message-ID: <20161217194645.GV1555@ZenIV.linux.org.uk> (raw)
In-Reply-To: <4c1d06ae-cb0f-3759-fc63-2a7de0f8f553@lwfinger.net>

On Sat, Dec 17, 2016 at 11:52:05AM -0600, Larry Finger wrote:

> Upon examination of the routine, I can see that if purgatory() should be
> static, then none of the code here will ever be accessed by any part of the
> kernel. Is there some bit of magic that is above my understanding, or is
> this a useless bit of code that has been forgotten and should be removed?

I don't know what is and what is not above your understanding, but grepping
in that area (grep -w purgatory arch/x86/purgatory/*) does catch this:
arch/x86/purgatory/setup-x86_64.S:      call purgatory
which is hardly magic - looks like a function call.  Looking into that
file shows
purgatory_start:
        .code64

        /* Load a gdt so I know what the segment registers are */
        lgdt    gdt(%rip)

        /* load the data segments */
        movl    $0x18, %eax     /* data segment */
        movl    %eax, %ds
        movl    %eax, %es
        movl    %eax, %ss
        movl    %eax, %fs
        movl    %eax, %gs

        /* Setup a stack */
        leaq    lstack_end(%rip), %rsp

        /* Call the C code */
        call purgatory
        jmp     entry64

which pretty much confirms that - it's called from purgatory_start().

  reply	other threads:[~2016-12-17 19:46 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-17 17:52 What is the function of arch/x86/purgatory/purgatory.c? Larry Finger
2016-12-17 19:46 ` Al Viro [this message]
2016-12-17 19:56   ` Larry Finger

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=20161217194645.GV1555@ZenIV.linux.org.uk \
    --to=viro@zeniv.linux.org.uk \
    --cc=Larry.Finger@lwfinger.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=vgoyal@redhat.com \
    /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.