lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 27 Jul 2022 12:33:46 +0800 From: Jason Wang <jasowang@...hat.com> To: Xuan Zhuo <xuanzhuo@...ux.alibaba.com>, virtualization@...ts.linux-foundation.org Cc: Richard Weinberger <richard@....at>, Anton Ivanov <anton.ivanov@...bridgegreys.com>, Johannes Berg <johannes@...solutions.net>, "Michael S. Tsirkin" <mst@...hat.com>, "David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, Hans de Goede <hdegoede@...hat.com>, Mark Gross <markgross@...nel.org>, Vadim Pasternak <vadimp@...dia.com>, Bjorn Andersson <bjorn.andersson@...aro.org>, Mathieu Poirier <mathieu.poirier@...aro.org>, Cornelia Huck <cohuck@...hat.com>, Halil Pasic <pasic@...ux.ibm.com>, Eric Farman <farman@...ux.ibm.com>, Heiko Carstens <hca@...ux.ibm.com>, Vasily Gorbik <gor@...ux.ibm.com>, Alexander Gordeev <agordeev@...ux.ibm.com>, Christian Borntraeger <borntraeger@...ux.ibm.com>, Sven Schnelle <svens@...ux.ibm.com>, Alexei Starovoitov <ast@...nel.org>, Daniel Borkmann <daniel@...earbox.net>, Jesper Dangaard Brouer <hawk@...nel.org>, John Fastabend <john.fastabend@...il.com>, Vincent Whitchurch <vincent.whitchurch@...s.com>, linux-um@...ts.infradead.org, netdev@...r.kernel.org, platform-driver-x86@...r.kernel.org, linux-remoteproc@...r.kernel.org, linux-s390@...r.kernel.org, kvm@...r.kernel.org, bpf@...r.kernel.org, kangjie.xu@...ux.alibaba.com Subject: Re: [PATCH v13 20/42] virtio_ring: packed: extract the logic of vring init 在 2022/7/26 15:22, Xuan Zhuo 写道: > Separate the logic of initializing vring, and subsequent patches will > call it separately. > > This function completes the variable initialization of packed vring. It > together with the logic of atatch constitutes the initialization of > vring. > > Signed-off-by: Xuan Zhuo <xuanzhuo@...ux.alibaba.com> Acked-by: Jason Wang <jasowang@...hat.com> > --- > drivers/virtio/virtio_ring.c | 28 +++++++++++++++++----------- > 1 file changed, 17 insertions(+), 11 deletions(-) > > diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c > index 32590d763c3b..fc4e3db9f93b 100644 > --- a/drivers/virtio/virtio_ring.c > +++ b/drivers/virtio/virtio_ring.c > @@ -1935,6 +1935,22 @@ static int vring_alloc_state_extra_packed(struct vring_virtqueue_packed *vring_p > return -ENOMEM; > } > > +static void virtqueue_vring_init_packed(struct vring_virtqueue_packed *vring_packed, > + bool callback) > +{ > + vring_packed->next_avail_idx = 0; > + vring_packed->avail_wrap_counter = 1; > + vring_packed->event_flags_shadow = 0; > + vring_packed->avail_used_flags = 1 << VRING_PACKED_DESC_F_AVAIL; > + > + /* No callback? Tell other side not to bother us. */ > + if (!callback) { > + vring_packed->event_flags_shadow = VRING_PACKED_EVENT_FLAG_DISABLE; > + vring_packed->vring.driver->flags = > + cpu_to_le16(vring_packed->event_flags_shadow); > + } > +} > + > static struct virtqueue *vring_create_virtqueue_packed( > unsigned int index, > unsigned int num, > @@ -1984,11 +2000,6 @@ static struct virtqueue *vring_create_virtqueue_packed( > > vq->packed.vring = vring_packed.vring; > > - vq->packed.next_avail_idx = 0; > - vq->packed.avail_wrap_counter = 1; > - vq->packed.event_flags_shadow = 0; > - vq->packed.avail_used_flags = 1 << VRING_PACKED_DESC_F_AVAIL; > - > err = vring_alloc_state_extra_packed(&vring_packed); > if (err) > goto err_state_extra; > @@ -1996,12 +2007,7 @@ static struct virtqueue *vring_create_virtqueue_packed( > vq->packed.desc_state = vring_packed.desc_state; > vq->packed.desc_extra = vring_packed.desc_extra; > > - /* No callback? Tell other side not to bother us. */ > - if (!callback) { > - vq->packed.event_flags_shadow = VRING_PACKED_EVENT_FLAG_DISABLE; > - vq->packed.vring.driver->flags = > - cpu_to_le16(vq->packed.event_flags_shadow); > - } > + virtqueue_vring_init_packed(&vring_packed, !!callback); > > virtqueue_init(vq, num); >
Powered by blists - more mailing lists