]> www.infradead.org Git - users/jedix/linux-maple.git/commit
virtio_ring: tag event_triggered as racy for KCSAN
authorMichael S. Tsirkin <mst@redhat.com>
Thu, 12 Sep 2024 14:37:53 +0000 (10:37 -0400)
committerMichael S. Tsirkin <mst@redhat.com>
Wed, 25 Sep 2024 11:07:44 +0000 (07:07 -0400)
commit83c334ed521638c8dffe545ddf49d61430680308
tree86358c3ddf560afbf3f93442300d7d80fb90b847
parentbc0dcbc5c2c539f37004f2cce0e6e245b2e50b6c
virtio_ring: tag event_triggered as racy for KCSAN

Setting event_triggered from the interrupt handler
is fundamentally racy. There are races of 2 types:
1. vq processing can read false value while interrupt
   triggered and set it to true.
   result will be a bit of extra work when disabling cbs, no big deal.

1. vq processing can set false value then interrupt
   immediately sets true value
   since interrupt then triggers a callback which will
   process buffers, this is also not an issue.

However, looks like KCSAN can not figure all this out, and warns about
the race between the write and the read.  Tag the access data_racy for
now.  We should probably look at ways to make this more
straight-forwardly correct.

Message-ID: <6bdd771a4fb7625a9227971b3cf4745c34c31a32.1726153334.git.mst@redhat.com>
Reported-by: syzbot+8a02104389c2e0ef5049@syzkaller.appspotmail.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Acked-by: Marco Elver <elver@google.com>
drivers/virtio/virtio_ring.c