virtio_ring.c (6c0b057cec5eade4c3afec3908821176931a9997) | virtio_ring.c (af8ececda185078c096852edb4e1d7a2349e6856) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* Virtio ring implementation. 3 * 4 * Copyright 2007 Rusty Russell IBM Corporation 5 */ 6#include <linux/virtio.h> 7#include <linux/virtio_ring.h> 8#include <linux/virtio_config.h> --- 2748 unchanged lines hidden (view full) --- 2757 spin_unlock(&vq->vq.vdev->vqs_list_lock); 2758 2759 vring_free(_vq); 2760 2761 kfree(vq); 2762} 2763EXPORT_SYMBOL_GPL(vring_del_virtqueue); 2764 | 1// SPDX-License-Identifier: GPL-2.0-or-later 2/* Virtio ring implementation. 3 * 4 * Copyright 2007 Rusty Russell IBM Corporation 5 */ 6#include <linux/virtio.h> 7#include <linux/virtio_ring.h> 8#include <linux/virtio_config.h> --- 2748 unchanged lines hidden (view full) --- 2757 spin_unlock(&vq->vq.vdev->vqs_list_lock); 2758 2759 vring_free(_vq); 2760 2761 kfree(vq); 2762} 2763EXPORT_SYMBOL_GPL(vring_del_virtqueue); 2764 |
2765u32 vring_notification_data(struct virtqueue *_vq) 2766{ 2767 struct vring_virtqueue *vq = to_vvq(_vq); 2768 u16 next; 2769 2770 if (vq->packed_ring) 2771 next = (vq->packed.next_avail_idx & 2772 ~(-(1 << VRING_PACKED_EVENT_F_WRAP_CTR))) | 2773 vq->packed.avail_wrap_counter << 2774 VRING_PACKED_EVENT_F_WRAP_CTR; 2775 else 2776 next = vq->split.avail_idx_shadow; 2777 2778 return next << 16 | _vq->index; 2779} 2780EXPORT_SYMBOL_GPL(vring_notification_data); 2781 |
|
2765/* Manipulates transport-specific feature bits. */ 2766void vring_transport_features(struct virtio_device *vdev) 2767{ 2768 unsigned int i; 2769 2770 for (i = VIRTIO_TRANSPORT_F_START; i < VIRTIO_TRANSPORT_F_END; i++) { 2771 switch (i) { 2772 case VIRTIO_RING_F_INDIRECT_DESC: 2773 break; 2774 case VIRTIO_RING_F_EVENT_IDX: 2775 break; 2776 case VIRTIO_F_VERSION_1: 2777 break; 2778 case VIRTIO_F_ACCESS_PLATFORM: 2779 break; 2780 case VIRTIO_F_RING_PACKED: 2781 break; 2782 case VIRTIO_F_ORDER_PLATFORM: 2783 break; | 2782/* Manipulates transport-specific feature bits. */ 2783void vring_transport_features(struct virtio_device *vdev) 2784{ 2785 unsigned int i; 2786 2787 for (i = VIRTIO_TRANSPORT_F_START; i < VIRTIO_TRANSPORT_F_END; i++) { 2788 switch (i) { 2789 case VIRTIO_RING_F_INDIRECT_DESC: 2790 break; 2791 case VIRTIO_RING_F_EVENT_IDX: 2792 break; 2793 case VIRTIO_F_VERSION_1: 2794 break; 2795 case VIRTIO_F_ACCESS_PLATFORM: 2796 break; 2797 case VIRTIO_F_RING_PACKED: 2798 break; 2799 case VIRTIO_F_ORDER_PLATFORM: 2800 break; |
2801 case VIRTIO_F_NOTIFICATION_DATA: 2802 break; |
|
2784 default: 2785 /* We don't understand this bit. */ 2786 __virtio_clear_bit(vdev, i); 2787 } 2788 } 2789} 2790EXPORT_SYMBOL_GPL(vring_transport_features); 2791 --- 138 unchanged lines hidden --- | 2803 default: 2804 /* We don't understand this bit. */ 2805 __virtio_clear_bit(vdev, i); 2806 } 2807 } 2808} 2809EXPORT_SYMBOL_GPL(vring_transport_features); 2810 --- 138 unchanged lines hidden --- |