aboutsummaryrefslogtreecommitdiff
path: root/tools/testing/selftests/bpf/progs/test_prog_array_init.c
diff options
context:
space:
mode:
authorVolodymyr Babchuk <[email protected]>2023-01-19 21:11:15 +0000
committerJuergen Gross <[email protected]>2023-02-13 06:53:20 +0100
commitc70b7741dda7586529cc270e0f2c4cae3921b9b1 (patch)
tree3cbbabb348c4973f18f76818f89d29c27e275a42 /tools/testing/selftests/bpf/progs/test_prog_array_init.c
parent3e8cd711c3da6c3d724076048038cd666bdbb2b5 (diff)
xen/pvcalls-back: fix permanently masked event channel
There is a sequence of events that can lead to a permanently masked event channel, because xen_irq_lateeoi() is newer called. This happens when a backend receives spurious write event from a frontend. In this case pvcalls_conn_back_write() returns early and it does not clears the map->write counter. As map->write > 0, pvcalls_back_ioworker() returns without calling xen_irq_lateeoi(). This leaves the event channel in masked state, a backend does not receive any new events from a frontend and the whole communication stops. Move atomic_set(&map->write, 0) to the very beginning of pvcalls_conn_back_write() to fix this issue. Signed-off-by: Volodymyr Babchuk <[email protected]> Reported-by: Oleksii Moisieiev <[email protected]> Reviewed-by: Juergen Gross <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Juergen Gross <[email protected]>
Diffstat (limited to 'tools/testing/selftests/bpf/progs/test_prog_array_init.c')
0 files changed, 0 insertions, 0 deletions