Displaying 12 results from an estimated 12 matches for "empty_r".
2019 Apr 26
2
[PATCH net] vhost_net: fix possible infinite loop
....a0f89a504cd9 100644
> --- a/drivers/vhost/net.c
> +++ b/drivers/vhost/net.c
> @@ -761,6 +761,23 @@ static int vhost_net_build_xdp(struct vhost_net_virtqueue *nvq,
> return 0;
> }
>
> +/* Returns true if caller needs to go back and re-read the ring. */
> +static bool empty_ring(struct vhost_net *net, struct vhost_virtqueue *vq,
> + int pkts, size_t total_len, bool busyloop_intr)
> +{
> + if (unlikely(busyloop_intr)) {
> + vhost_poll_queue(&vq->poll);
> + } else if (unlikely(vhost_enable_notify(&net->dev, vq))) {
> + /* They hav...
2019 Apr 26
2
[PATCH net] vhost_net: fix possible infinite loop
....a0f89a504cd9 100644
> --- a/drivers/vhost/net.c
> +++ b/drivers/vhost/net.c
> @@ -761,6 +761,23 @@ static int vhost_net_build_xdp(struct vhost_net_virtqueue *nvq,
> return 0;
> }
>
> +/* Returns true if caller needs to go back and re-read the ring. */
> +static bool empty_ring(struct vhost_net *net, struct vhost_virtqueue *vq,
> + int pkts, size_t total_len, bool busyloop_intr)
> +{
> + if (unlikely(busyloop_intr)) {
> + vhost_poll_queue(&vq->poll);
> + } else if (unlikely(vhost_enable_notify(&net->dev, vq))) {
> + /* They hav...
2019 May 12
2
[PATCH net] vhost_net: fix possible infinite loop
.../drivers/vhost/net.c
> > > @@ -761,6 +761,23 @@ static int vhost_net_build_xdp(struct
> > > vhost_net_virtqueue *nvq,
> > > ????? return 0;
> > > ? }
> > > ? +/* Returns true if caller needs to go back and re-read the ring. */
> > > +static bool empty_ring(struct vhost_net *net, struct
> > > vhost_virtqueue *vq,
> > > +?????????????? int pkts, size_t total_len, bool busyloop_intr)
> > > +{
> > > +??? if (unlikely(busyloop_intr)) {
> > > +??????? vhost_poll_queue(&vq->poll);
> > > +??? }...
2019 May 12
2
[PATCH net] vhost_net: fix possible infinite loop
.../drivers/vhost/net.c
> > > @@ -761,6 +761,23 @@ static int vhost_net_build_xdp(struct
> > > vhost_net_virtqueue *nvq,
> > > ????? return 0;
> > > ? }
> > > ? +/* Returns true if caller needs to go back and re-read the ring. */
> > > +static bool empty_ring(struct vhost_net *net, struct
> > > vhost_virtqueue *vq,
> > > +?????????????? int pkts, size_t total_len, bool busyloop_intr)
> > > +{
> > > +??? if (unlikely(busyloop_intr)) {
> > > +??????? vhost_poll_queue(&vq->poll);
> > > +??? }...
2019 May 13
0
[PATCH net] vhost_net: fix possible infinite loop
...net.c
>>>> @@ -761,6 +761,23 @@ static int vhost_net_build_xdp(struct
>>>> vhost_net_virtqueue *nvq,
>>>> ????? return 0;
>>>> ? }
>>>> ? +/* Returns true if caller needs to go back and re-read the ring. */
>>>> +static bool empty_ring(struct vhost_net *net, struct
>>>> vhost_virtqueue *vq,
>>>> +?????????????? int pkts, size_t total_len, bool busyloop_intr)
>>>> +{
>>>> +??? if (unlikely(busyloop_intr)) {
>>>> +??????? vhost_poll_queue(&vq->poll);
>>>...
2019 May 05
0
[PATCH net] vhost_net: fix possible infinite loop
.../drivers/vhost/net.c
>> +++ b/drivers/vhost/net.c
>> @@ -761,6 +761,23 @@ static int vhost_net_build_xdp(struct
>> vhost_net_virtqueue *nvq,
>> ????? return 0;
>> ? }
>> ? +/* Returns true if caller needs to go back and re-read the ring. */
>> +static bool empty_ring(struct vhost_net *net, struct vhost_virtqueue
>> *vq,
>> +?????????????? int pkts, size_t total_len, bool busyloop_intr)
>> +{
>> +??? if (unlikely(busyloop_intr)) {
>> +??????? vhost_poll_queue(&vq->poll);
>> +??? } else if (unlikely(vhost_enable_noti...
2019 May 14
1
[PATCH net] vhost_net: fix possible infinite loop
...@@ static int vhost_net_build_xdp(struct
> > > > > vhost_net_virtqueue *nvq,
> > > > > ????? return 0;
> > > > > ? }
> > > > > ? +/* Returns true if caller needs to go back and re-read the ring. */
> > > > > +static bool empty_ring(struct vhost_net *net, struct
> > > > > vhost_virtqueue *vq,
> > > > > +?????????????? int pkts, size_t total_len, bool busyloop_intr)
> > > > > +{
> > > > > +??? if (unlikely(busyloop_intr)) {
> > > > > +??????? vhost_po...
2019 Apr 25
2
[PATCH net] vhost_net: fix possible infinite loop
When the rx buffer is too small for a packet, we will discard the vq
descriptor and retry it for the next packet:
while ((sock_len = vhost_net_rx_peek_head_len(net, sock->sk,
&busyloop_intr))) {
...
/* On overrun, truncate and discard */
if (unlikely(headcount > UIO_MAXIOV)) {
iov_iter_init(&msg.msg_iter, READ, vq->iov, 1, 1);
err = sock->ops->recvmsg(sock,
2019 Apr 25
2
[PATCH net] vhost_net: fix possible infinite loop
When the rx buffer is too small for a packet, we will discard the vq
descriptor and retry it for the next packet:
while ((sock_len = vhost_net_rx_peek_head_len(net, sock->sk,
&busyloop_intr))) {
...
/* On overrun, truncate and discard */
if (unlikely(headcount > UIO_MAXIOV)) {
iov_iter_init(&msg.msg_iter, READ, vq->iov, 1, 1);
err = sock->ops->recvmsg(sock,
2019 Apr 25
0
[PATCH net] vhost_net: fix possible infinite loop
...c b/drivers/vhost/net.c
index df51a35cf537..a0f89a504cd9 100644
--- a/drivers/vhost/net.c
+++ b/drivers/vhost/net.c
@@ -761,6 +761,23 @@ static int vhost_net_build_xdp(struct vhost_net_virtqueue *nvq,
return 0;
}
+/* Returns true if caller needs to go back and re-read the ring. */
+static bool empty_ring(struct vhost_net *net, struct vhost_virtqueue *vq,
+ int pkts, size_t total_len, bool busyloop_intr)
+{
+ if (unlikely(busyloop_intr)) {
+ vhost_poll_queue(&vq->poll);
+ } else if (unlikely(vhost_enable_notify(&net->dev, vq))) {
+ /* They have slipped one in meanwhile: ch...
2013 Jan 25
1
assert in mail-transaction-log-file.c
...dex-map-read.c:415
#9 0x0000000800800bde in mail_index_refresh (index=<value optimized out>) at mail-index.c:735
#10 0x00000008007b2344 in mbox_sync_header_refresh (mbox=0x801680840) at mbox-sync.c:1652
#11 0x00000008007b24e2 in mbox_sync_has_changed_full (mbox=0x801680840, leave_dirty=true, empty_r=0x7fffffffe2e8) at mbox-sync.c:1729
#12 0x00000008007ae1a7 in mbox_save_begin (_ctx=0x80161a500, input=0x801669660) at mbox-save.c:296
#13 0x00000008018025ae in notify_save_begin (ctx=0x80161a500, input=0x801669660) at notify-storage.c:130
#14 0x00000008014261fd in quota_save_begin (ctx=0x80161a500...
2009 Sep 30
3
Some issues in Dovecot 1.2.5 after upgrade from 1.0.15
...1263a8, type=MAIL_INDEX_SYNC_HANDLER_HEAD) at mail-index-map.c:934
> #7 0x89e30 in mail_index_refresh (index=0x0) at mail-index.c:551
> #8 0x62bec in mbox_sync_header_refresh (mbox=0x1272d8) at mbox-sync.c:1586
> #9 0x62d28 in mbox_sync_has_changed_full (mbox=0x1272d8, leave_dirty=true, empty_r=0xffbeeab7) at mbox-sync.c:1644
> #10 0x62cb4 in mbox_sync_has_changed (mbox=0xffffffff, leave_dirty=true) at mbox-sync.c:1611
> #11 0x63428 in mbox_sync_int (mbox=0x1272d8, flags=0, lock_id=0xffbeee04) at mbox-sync.c:1701
> #12 0x634f4 in mbox_sync (mbox=0x1272d8, flags=0) at mbox-sync.c:...