[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2] ioreq_broadcast(): accept partial broadcast success
- To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
- From: Per Bilse <per.bilse@xxxxxxxxxx>
- Date: Tue, 6 Dec 2022 17:52:09 +0000
- Authentication-results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
- Cc: Per Bilse <per.bilse@xxxxxxxxxx>, Paul Durrant <paul@xxxxxxx>
- Delivery-date: Tue, 06 Dec 2022 17:52:58 +0000
- Ironport-data: A9a23:leJbGq5KCfeYVIulPpwK1QxRtETHchMFZxGqfqrLsTDasY5as4F+v jAdXGyEOvjZajf9cotzOtjj/RwHuZLcnNVnGQs4rCBmHi5G8cbLO4+Ufxz6V8+wwm8vb2o8t plDNYOQRCwQZiWBzvt4GuG59RGQ7YnRGvynTraBYnoqLeNdYH9JoQp5nOIkiZJfj9G8Agec0 fv/uMSaM1K+s9JOGjt8B5mr9VU+4pwehBtC5gZkPKoT4geF/5UoJMl3yZ+ZfiOQrrZ8RoZWd 86bpJml82XQ+QsaC9/Nut4XpWVTH9Y+lSDX4pZnc/DKbipq/0Te4Y5iXBYoUm9Fii3hojxE4 I4lWapc6+seFvakdOw1C3G0GszlVEFM0OevzXOX6aR/w6BaGpdFLjoH4EweZOUlFuhL7W5m2 MQIDjIicwi5lcm5/u6WG+pBl8YeM5y+VG8fkikIITDxCP8nRdbIQrnQ5M8e1zA17ixMNa+AP YxDM2MpNUmeJU0UUrsUIMtWcOOAvnTlNRdZrEmYjaE2/3LS3Ep6172F3N/9KoPQFJ0Iwh3wS mTupSOnLEwoZfOmjiuqzWKR2NHCswT3cddHfFG/3qEz2wDCroAJMzUOXEa/iem0jAi5Qd03A 1wZ/G8ioLY/8GSvT8LhRFuorXicpBkeVtFMVeog52mwJrH8uljDQDJeF3gYNYJg5JReqSEWO kGhsuv5Iz5AraWvW1mSyOu5/DCfKCooMjpXDcMbdjct797mqYA1qxvASNd/DaK45uHI9SHML yOi93Zn2ehK5SIf/+DipA2c3WrwznTcZlRtjjg7SF5J+e+QiGSNQ4WzoWbW4v9bRGpyZgnQ5 SNU8yRyAQ1nMH1sqMBvaL9UdF1Kz6zfWNE5vbKIN8dJythV0yT/Fb28GRknTKuTDu4KeCXyf GjYsh5L6ZlYMROCNPEoO9jvVp17nfe7SrwJs8w4ifIXMvBMmPKvpnkyNSZ8IUiy+KTTrU3PE cjCKpv9ZZrrIa9m0CC3V48gPUwDn0gDKZfobcmjlXyPiOPODEN5vJ9ZaDNimMhltvLbyOgUm v4DX/a3J+J3DbWnPXeGrdZNRb3IRFBiba3LRwVsXrbrCmJb9KsJUpc9HZtJl1RZoplo
- Ironport-hdrordr: A9a23:WVjtTKENRVJzoS6cpLqFRJHXdLJyesId70hD6qkvc31om52j+f xGws516fatskdqZJjvo6HYBEDyewKgyXcV2/hbAV7GZmnbUQSTXflfBOfZsljd8k7Fh6RgPM VbAtND4bTLZDAQ56qKg3jbLz9K+qjhzEncv5am854bd3ANV0gP1XYcNu+cKCBLbTgDIaB8OI uX58JBqTblU28QdN6HCn4MWPWGj8HXlbr9CCR2SyIP2U2rt3eF+bT6Gx+X0lM1SDVU24ov9m DDjkjQ+rijifem0RXRvlWjoKi+2eGRhOerNvb8yvT9GQ+cyTpAo74RGYFqiQpF4d1HLmxa1e Uk7S1Qe/iboEmhAl1d6SGdpDUIlgxepkMLgTKj8CDeSYeVfkNjNyIJ6LgpNCcwoScbzYtBON on5RPfi3MfN2K/oA3to9fPTB1kjUyyvD4rlvMSlWVWVc8EZKZWtpF3xjIiLH4sJlOP1GkcKp gYMOjMoPJNNV+KZXHQuWdihNSqQ3QoBx+DBkwPoNac3TRalG1wixJw/r1Wol4QsJYmD5VU7e XNNapl0LlIU88NdKp4QOMMW9G+BGDBSQ/FdGiSPVPkHqcaPG+lke+/3JwloOWxPJAYxpo7n5 rMFFteqG4pYkrrTdaD2ZVamyq9NVlVnQ6duP22y6IJyYEUHoCbQBFrYGpe4/ednw==
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
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@xxxxxxxxxx>
---
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
|