All of lore.kernel.org
 help / color / mirror / Atom feed
From: hpa@zytor.com
To: Juergen Gross <jgross@suse.com>,
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
	x86@kernel.org, linux-doc@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
	boris.ostrovsky@oracle.com, corbet@lwn.net
Subject: Re: PLEASE REVERT URGENTLY: Re: [PATCH v5 2/3] x86/boot: add acpi rsdp address to setup_header
Date: Sun, 11 Nov 2018 15:58:16 -0800	[thread overview]
Message-ID: <9A44B94A-AEDC-4638-A8FF-DEE76FE34056__30688.1211618476$1541980643$gmane$org@zytor.com> (raw)
In-Reply-To: <685b425b-c816-4f65-3393-b48e59d170d8@suse.com>

On November 10, 2018 7:22:29 AM PST, Juergen Gross <jgross@suse.com> wrote:
>On 09/11/2018 23:23, H. Peter Anvin wrote:
>> I just noticed this patch -- I missed it because the cover message
>> seemed far more harmless so I didn't notice this change.
>> 
>> THIS PATCH IS FATALLY WRONG AND NEEDS TO BE IMMEDIATELY REVERTED
>BEFORE
>> ANYONE STARTS RELYING ON IT; IT HAS THE POTENTIAL OF BREAKING THE
>> BOOTLOADER PROTOCOL FOR ALL FUTURE.
>> 
>> It seems to be based on fundamental misconceptions about the various
>> data structures in the protocol, and does so in a way that completely
>> breaks the way the protocol is designed to work.
>> 
>> The protocol is specifically designed such that fields are not
>version
>> dependencies. The version number is strictly to inform the boot
>loader
>> about which capabilities the kernel has, so that the boot loader can
>> know if a certain data field is meaningful and/or honored.
>> 
>>> +Protocol 2.14:	(Kernel 4.20) Added acpi_rsdp_addr holding the
>physical
>>> +		address of the ACPI RSDP table.
>>> +		The bootloader updates version with:
>>> +		0x8000 | min(kernel-version, bootloader-version)
>>> +		kernel-version being the protocol version supported by
>>> +		the kernel and bootloader-version the protocol version
>>> +		supported by the bootloader.
>> 
>> [...]
>> 
>>>  **** MEMORY LAYOUT
>>>
>>>  The traditional memory map for the kernel loader, used for Image or
>>> @@ -197,6 +209,7 @@ Offset	Proto	Name		Meaning
>>>  0258/8	2.10+	pref_address	Preferred loading address
>>>  0260/4	2.10+	init_size	Linear memory required during initialization
>>>  0264/4	2.11+	handover_offset	Offset of handover entry point
>>> +0268/8	2.14+	acpi_rsdp_addr	Physical address of RSDP table
>> 
>> NO.
>> 
>> That is not how struct setup_header works, nor does this belong here.
>> 
>> struct setup_header contains *initialized data*, and has a length
>byte
>> at offset 0x201.  The bootloader is responsible for copying the full
>> structure into the appropriate offset (0x1f1) in struct boot_params.
>> 
>> The length byte isn't actually a requirement, since the maximum
>possible
>> size of this structure is 144 bytes, and the kernel will (obviously)
>not
>> look at the older fields anyway, but it is good practice. The kernel
>or
>> any other entity is free to zero out the bytes past this length
>pointer.
>> 
>> There are only 24 bytes left in this structure, and this would occupy
>8
>> of them for no valid reason.  The *only* valid reason to put a
>> zero-initialized field in struct setup_header is if it used by the
>> 16-bit legacy BIOS boot, which is obviously not the case here.
>> 
>> This field thus belongs in struct boot_params, not struct
>setup_header.
>
>Would you be okay with putting acpi_rsdp_addr at offset 0x0cc (_pad4)?
>
>
>Juergen

I'd prefer if you used __pad3 offset 0x70 to keep the large block, and that way your field is also aligned.

However, if you have some specific reason to prefer __pad4 it's no big deal, although I'm curious what it would be.
-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

  parent reply	other threads:[~2018-11-11 23:58 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-10  6:14 [PATCH v5 0/3] x86: make rsdp address accessible via boot params Juergen Gross
2018-10-10  6:14 ` [PATCH v5 1/3] x86/xen: fix boot loader version reported for pvh guests Juergen Gross
2018-10-10  6:14 ` Juergen Gross
2018-10-10  6:14 ` [PATCH v5 2/3] x86/boot: add acpi rsdp address to setup_header Juergen Gross
2018-10-10  6:14 ` Juergen Gross
2018-11-09 22:23   ` PLEASE REVERT URGENTLY: " H. Peter Anvin
2018-11-09 22:23   ` H. Peter Anvin
2018-11-10  0:38     ` H. Peter Anvin
2018-11-10  0:38     ` H. Peter Anvin
2018-11-10  6:26     ` Juergen Gross
2018-11-10  6:26     ` Juergen Gross
2018-11-10  6:32       ` H. Peter Anvin
2018-11-10  6:32       ` H. Peter Anvin
2018-11-10  7:02         ` Juergen Gross
2018-11-10  7:16           ` H. Peter Anvin
2018-11-10  9:03             ` Juergen Gross
2018-11-11 18:49               ` H. Peter Anvin
2018-11-11 18:49               ` H. Peter Anvin
2018-11-19 16:48                 ` Konrad Rzeszutek Wilk
2018-11-19 16:48                 ` Konrad Rzeszutek Wilk
2018-11-10  9:03             ` Juergen Gross
2018-11-10  7:16           ` H. Peter Anvin
2018-11-10  7:02         ` Juergen Gross
2018-11-10 15:22     ` Juergen Gross
2018-11-10 15:22     ` Juergen Gross
2018-11-11 23:58       ` hpa
2018-11-11 23:58       ` hpa [this message]
2018-10-10  6:14 ` [PATCH v5 3/3] x86/acpi: take rsdp address for boot params if available Juergen Gross
2018-10-10  6:14 ` Juergen Gross
2018-10-10  6:23 ` [PATCH v5 0/3] x86: make rsdp address accessible via boot params Ingo Molnar
2018-10-10  6:23 ` Ingo Molnar
2018-10-10  6:39   ` Juergen Gross
2018-10-10  7:19     ` Ingo Molnar
2018-10-10  7:19     ` Ingo Molnar
2018-10-10  7:28       ` Juergen Gross
2018-10-10  7:28       ` Juergen Gross
2018-10-10  6:39   ` Juergen Gross

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='9A44B94A-AEDC-4638-A8FF-DEE76FE34056__30688.1211618476$1541980643$gmane$org@zytor.com' \
    --to=hpa@zytor.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=bp@alien8.de \
    --cc=corbet@lwn.net \
    --cc=jgross@suse.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    /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.