Skip to content
  • Sergio Lopez's avatar
    3bcf0fb3
    event_notifier: add event_notifier_get_wfd() · 3bcf0fb3
    Sergio Lopez authored
    
    
    event_notifier_get_fd(const EventNotifier *e) always returns
    EventNotifier's read file descriptor (rfd). This is not a problem when
    the EventNotifier is backed by a an eventfd, as a single file
    descriptor is used both for reading and triggering events (rfd ==
    wfd).
    
    But, when EventNotifier is backed by a pipe pair, we have two file
    descriptors, one that can only be used for reads (rfd), and the other
    only for writes (wfd).
    
    There's, at least, one known situation in which we need to obtain wfd
    instead of rfd, which is when setting up the file that's going to be
    sent to the peer in vhost's SET_VRING_CALL.
    
    Add a new event_notifier_get_wfd(const EventNotifier *e) that can be
    used to obtain wfd where needed.
    
    Signed-off-by: default avatarSergio Lopez <slp@redhat.com>
    Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    Message-Id: <20220304100854.14829-2-slp@redhat.com>
    Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    3bcf0fb3
    event_notifier: add event_notifier_get_wfd()
    Sergio Lopez authored
    
    
    event_notifier_get_fd(const EventNotifier *e) always returns
    EventNotifier's read file descriptor (rfd). This is not a problem when
    the EventNotifier is backed by a an eventfd, as a single file
    descriptor is used both for reading and triggering events (rfd ==
    wfd).
    
    But, when EventNotifier is backed by a pipe pair, we have two file
    descriptors, one that can only be used for reads (rfd), and the other
    only for writes (wfd).
    
    There's, at least, one known situation in which we need to obtain wfd
    instead of rfd, which is when setting up the file that's going to be
    sent to the peer in vhost's SET_VRING_CALL.
    
    Add a new event_notifier_get_wfd(const EventNotifier *e) that can be
    used to obtain wfd where needed.
    
    Signed-off-by: default avatarSergio Lopez <slp@redhat.com>
    Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    Message-Id: <20220304100854.14829-2-slp@redhat.com>
    Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
Loading