xen/common/ioreq.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
Avoid incorrectly triggering an error when a broadcast buffered ioreq
is not handled by all registered clients, as long as the failure is
strictly because the client doesn't handle buffered ioreqs.
Signed-off-by: Per Bilse <per.bilse@citrix.com>
---
v2: Complete rethink with better information. A lot of simplicity was added.
---
xen/common/ioreq.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
index 4617aef29b..568e7aea91 100644
--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -1317,7 +1317,8 @@ unsigned int ioreq_broadcast(ioreq_t *p, bool buffered)
FOR_EACH_IOREQ_SERVER(d, id, s)
{
- if ( !s->enabled )
+ if ( !s->enabled || (buffered &&
+ s->bufioreq_handling == HVM_IOREQSRV_BUFIOREQ_OFF) )
continue;
if ( ioreq_send(s, p, buffered) == IOREQ_STATUS_UNHANDLED )
--
2.31.1
On 06.12.2022 18:52, Per Bilse wrote: > --- a/xen/common/ioreq.c > +++ b/xen/common/ioreq.c > @@ -1317,7 +1317,8 @@ unsigned int ioreq_broadcast(ioreq_t *p, bool buffered) > > FOR_EACH_IOREQ_SERVER(d, id, s) > { > - if ( !s->enabled ) > + if ( !s->enabled || (buffered && > + s->bufioreq_handling == HVM_IOREQSRV_BUFIOREQ_OFF) ) Nit: Bad indentation. Since inserting the missing blanks would make the line too long, the expression wants re-wrapping. Can certainly be done while committing. Jan
On 06/12/2022 17:52, Per Bilse wrote: > Avoid incorrectly triggering an error when a broadcast buffered ioreq > is not handled by all registered clients, as long as the failure is > strictly because the client doesn't handle buffered ioreqs. > > Signed-off-by: Per Bilse <per.bilse@citrix.com> > --- > v2: Complete rethink with better information. A lot of simplicity was added. > --- Reviewed-by: Paul Durrant <paul@xen.org>
© 2016 - 2024 Red Hat, Inc.