[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on AMD hardware
- To: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
- From: Jan Beulich <jbeulich@xxxxxxxx>
- Date: Tue, 2 Nov 2021 13:54:18 +0100
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=wsAg9WVLRUVM0ca1onBlBcvsawHWo7t99JjAUNtg5/c=; b=kPMinJ37sWJQYTcoV9QrLq6wyQnO2oMBQRfFuUIAy+69cx5+yYohHvZcPQOLWEJYpcxPsmGQSxVipDUQiL7r2wymAQtN1DyatFHH5YVTAaWtE9Q4KFqaIfLss91SwyspnQV+neyERAgVjPM9z1vFLop7JJiuuIlgR+gkeIOKg+HfC+RquSv0i7Q7WTidFmk2xID4KV8HuZB3wVOivw+0a4XhkVGlnNeINHJ4X0kwIVip4tna9QK7IhN1KksULhLABwtvBZDuaFbx5mWtGBjvhZFyAmAl8hjraKfSEcjMVJXokxN97aiCX0Ltzv47riAD0YT7l5wUC5gkL+I9BfsPxg==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MKLQCT5rGSVsINDgWxVbFjDvq5FetlEjV6zxnpJtjHuJkwGkEJjcrGfJTgEN3rJiEM/sP9Bowa3rxY4JbWOR/+EE0UKPjwc+5gAq3gsD0ZsEl7qz7l3n825Spo88bRyg5f0yGMg8uYuyRyJQK72v9nXo9YG6yt8c8kzAuzfzx/OPgxWoOhmMyYPF8ZtDab1ZbImGuTy6dcdapPw9gSWuBy9EMMVlR8AFHEgh8avn6ICj9QanJEhbVB422KLad4YyOvGl0DM2QmoQaptPs+MZi6mo7wtrwzqbslKixrPKKaTr3RtMJ9WRGdK5RnCVOaJrxaBBk6rGclh6oy3lf2jRxA==
- Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com;
- Cc: Roger Pau Monné <roger.pau@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Ian Jackson <iwj@xxxxxxxxxxxxxx>, Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>
- Delivery-date: Tue, 02 Nov 2021 12:54:50 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
On 29.10.2021 01:26, Andrew Cooper wrote:
> The `ljmp *mem` instruction is (famously?) not binary compatible between Intel
> and AMD CPUS. The AMD-compatible version would require .long to be .quad in
> the second hunk.
>From all sources I have the incompatibility is only with REX.W: Intel
honors it (allowing a mem64:16) operand, while AMD ignores it (using
the same mem32:16 operand form as without REX.W). All the same as for
L{F,G,S}S. Hence I do not see why the present form of (32-bit) LJMP
would be a problem anywhere.
> Switch to using lretq, which is compatible between Intel and AMD, as well as
> being less logic overall.
I certainly don't mind the switch to LRETQ, but then the reasoning
will imo need to change.
Jan
|