From: Roger Pau Monné Date: Tue, 10 Sep 2019 14:32:47 +0000 (+0200) Subject: ioreq: fix hvm_all_ioreq_servers_add_vcpu fail path cleanup X-Git-Tag: archive/raspbian/4.14.0+80-gd101b417b7-1+rpi1^2~63^2~1610 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=215f2576b0ac1bc18f3ff74e34f0d8379bda9040;p=xen.git ioreq: fix hvm_all_ioreq_servers_add_vcpu fail path cleanup The loop in FOR_EACH_IOREQ_SERVER is backwards hence the cleanup on failure needs to be done forwards. Fixes: 97a5a3e30161 ('x86/hvm/ioreq: maintain an array of ioreq servers rather than a list') Signed-off-by: Roger Pau Monné Reviewed-by: Paul Durrant --- diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c index a79cabb680..d347144096 100644 --- a/xen/arch/x86/hvm/ioreq.c +++ b/xen/arch/x86/hvm/ioreq.c @@ -1195,7 +1195,7 @@ int hvm_all_ioreq_servers_add_vcpu(struct domain *d, struct vcpu *v) return 0; fail: - while ( id-- != 0 ) + while ( ++id != MAX_NR_IOREQ_SERVERS ) { s = GET_IOREQ_SERVER(d, id);