tools/xl: vcpu-pin: Skip global affinity when the hard affinity is not changed
authorJulien Grall <jgrall@amazon.com>
Thu, 30 Apr 2020 10:20:44 +0000 (11:20 +0100)
committerJulien Grall <jgrall@amazon.com>
Mon, 11 May 2020 09:18:22 +0000 (10:18 +0100)
commit3748c81fa1ff5e67c0442978c583e722820b1690
tree99967419cd5c6a7c3fc7f243d8367eb93f90cbc0
parent190c60f12db469472476041ecd0e6c9a0d4b0f8a
tools/xl: vcpu-pin: Skip global affinity when the hard affinity is not changed

After XSA-273, it is not possible to modify the vCPU soft affinity using
xl vcpu-pin without modifying the hard affinity. Instead the command
will crash.

42sh> gdb /usr/local/sbin/xl
(gdb) r vcpu-pin 0 0 - 10
[...]
Program received signal SIGSEGV, Segmentation fault.
[...]
(gdb) bt

This is happening because 'xl' will use NULL when an affinity doesn't
need to be modified. However, we will still try to apply the global
affinity in the this case.

As the hard affinity is not changed, then we don't need to apply the
global affinity. So skip it when hard is NULL.

Backport: 4.6+ # Any release with XSA-273
Fixes: aa67b97ed342 ("xl.conf: Add global affinity masks")
Reported-by: Pawel Wieczorkiewicz <wipawel@amazon.de>
Signed-off-by: Julien Grall <jgrall@amazon.com>
Acked-by: Wei Liu <wl@xen.org>
tools/xl/xl_vcpu.c