virtio-vring: bug fix in use_indirect()

Use indirect if number of needed descriptors is greater than the number of
currently available descriptors.

This fixes a possible dead-lock situation when the number of needed descriptors is
greater than the size of a virtio ring and add_buf_wait() is used.

A side effect of this fix is that it will also make use_indirect() return TRUE in
cases where add_buf() would fail before: e.g. when _avail_count >= _num / 4 and
desc_needed > _avail_count; which is also a good thing.

Reviewed-by: Dor Laor <dor@cloudius-systems.com>
Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
virtio-vring: Make use_indirect() inline since it's heavily used in a fast path

Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>