|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH] Fix fallout from DOMID_ANY ABI breakage
Commit 23e2479ff9de ("xen/domain: introduce DOMID_ANY") broke at least:
* xenstored domains
* The Python bindings
* The Ocaml bindings (i.e XAPI, and therefore XenServer/XCP-ng)
by causing Xen to reject 0 (the wildcard sentinel for decades) and
DOMID_INVALID (a recently introduced wildcard sentinel) without adjusting the
callers of xc_domain_create().
Under other circumstances I'd revert, but xenstored has gained a dependent use
of DOMID_ANY.
Fix up the remaining in-tree callers, which covers init-xenstore-domain and
the python bindings. The Ocaml bindings, like libxc itself, expose this ABI
detail to their caller, so need fixing individually.
Leave a very clear message in CHANGELOG.md that all external callers need
altering.
Fixes: 23e2479ff9de ("xen/domain: introduce DOMID_ANY")
Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
CC: Anthony PERARD <anthony.perard@xxxxxxxxxx>
CC: Michal Orzel <michal.orzel@xxxxxxx>
CC: Jan Beulich <jbeulich@xxxxxxxx>
CC: Julien Grall <julien@xxxxxxx>
CC: Roger Pau Monné <roger.pau@xxxxxxxxxx>
CC: Stefano Stabellini <sstabellini@xxxxxxxxxx>
CC: Juergen Gross <jgross@xxxxxxxx>
CC: Denis Mukhin <dmukhin@xxxxxxxx>
CC: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>
Both Roger and I said no to the DOMID_ANY change. We both think that there is
still insufficient justification to be adding it as a new constant. Next time
it's going to be a straight nack.
---
CHANGELOG.md | 4 ++++
tools/helpers/init-xenstore-domain.c | 2 +-
tools/python/xen/lowlevel/xc/xc.c | 2 +-
3 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 25f5a192ed48..1b54acf912a5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,10 @@ The format is based on [Keep a
Changelog](https://keepachangelog.com/en/1.0.0/)
## [4.22.0
UNRELEASED](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=staging)
- TBD
### Changed
+ - Users of xc_domain_create() must now pass DOMID_ANY to obtain an
+ automatically allocated domid. The prior sentinel values (0 since the
+ birth of Xen, and DOMID_INVALID since Xen 4.21) now no longer represent a
+ wildcard input.
- On x86:
- Enable pf-fixup option by default for PVH dom0.
diff --git a/tools/helpers/init-xenstore-domain.c
b/tools/helpers/init-xenstore-domain.c
index 01ca667d25d1..2be5831a578d 100644
--- a/tools/helpers/init-xenstore-domain.c
+++ b/tools/helpers/init-xenstore-domain.c
@@ -21,7 +21,7 @@
#define LAPIC_BASE_ADDRESS 0xfee00000UL
-static uint32_t domid = ~0;
+static uint32_t domid = DOMID_ANY;
static char *kernel;
static char *ramdisk;
static char *flask;
diff --git a/tools/python/xen/lowlevel/xc/xc.c
b/tools/python/xen/lowlevel/xc/xc.c
index 9feb12ae2b16..a94f01d40b58 100644
--- a/tools/python/xen/lowlevel/xc/xc.c
+++ b/tools/python/xen/lowlevel/xc/xc.c
@@ -118,7 +118,7 @@ static PyObject *pyxc_domain_create(XcObject *self,
PyObject *args,
PyObject *kwds)
{
- uint32_t dom = 0, target = 0, max_grant_version = 2;
+ uint32_t dom = DOMID_ANY, target = 0, max_grant_version = 2;
int ret;
size_t i;
PyObject *pyhandle = NULL;
base-commit: e63ba93511b33c0d3bb8cc5870f946f41e1d2655
--
2.39.5
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |