From: Vitaly Kuznetsov Date: Tue, 4 Sep 2018 11:39:29 +0000 (+0200) Subject: libxl: create control/sysrq xenstore node X-Git-Tag: archive/raspbian/4.14.0+80-gd101b417b7-1+rpi1^2~63^2~3323 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=30a970906038a4d360e1f7ee29ba80ef832dd78b;p=xen.git libxl: create control/sysrq xenstore node 'xl sysrq' command doesn't work with modern Linux guests with the following message in guest's log: xen:manage: sysrq_handler: Error -13 writing sysrq in control/sysrq xenstore trace confirms: IN 0x24bd9a0 20180904 04:36:32 WRITE (control/sysrq ) OUT 0x24bd9a0 20180904 04:36:32 ERROR (EACCES ) The problem seems to be in the fact that we don't pre-create control/sysrq xenstore node and libxl_send_sysrq() doing libxl__xs_printf() creates it as read-only. As we want to allow guests to clean 'control/sysrq' after the requested action is performed, we need to make this node writable. Signed-off-by: Vitaly Kuznetsov Acked-by: Wei Liu --- diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c index 60676304e9..dcfde7787e 100644 --- a/tools/libxl/libxl_create.c +++ b/tools/libxl/libxl_create.c @@ -695,6 +695,9 @@ retry_transaction: GCSPRINTF("%s/control/feature-s4", dom_path), rwperm, ARRAY_SIZE(rwperm)); } + libxl__xs_mknod(gc, t, + GCSPRINTF("%s/control/sysrq", dom_path), + rwperm, ARRAY_SIZE(rwperm)); libxl__xs_mknod(gc, t, GCSPRINTF("%s/device/suspend/event-channel", dom_path), rwperm, ARRAY_SIZE(rwperm));