-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1 iQEcBAABAgAGBQJi36ocAAoJEO8Ells5jWIRuOYH/jtaDNGTBs/h8A041gQaCMmw jufUXHCdKGgmZMpJ/AoCUWx4USdx8hEGSt/j4kvSmIPX+VLuCfLefHDlTxndiWAv fnUr4NB7LAz2b5D3d5QX1Np+zHG5mHx95KfDIaWdcz9N1HUHlEOakxTDc2EvR1hF yh8g2n5xdvzK5kWvPcNgJpU/ezDumOFo04JndBb4fIqDmZfW3hvJQ3IKiS3P1J9C Kbb/usoXGrdoZ9T1R2cqtn1CxrgfMlF2pKJFWzs3nU+ewD9C6oKS4rDQCZxx+JEx ZvfnSTUPgBBlT4zqZTTjyFQMQdtis5qK5iAKDEENkqVC1iULPhnM9DN0qxcIoQs= =SpWG -----END PGP SIGNATURE----- Merge tag 'net-pull-request' of https://github.com/jasowang/qemu into staging # gpg: Signature made Tue 26 Jul 2022 09:47:24 BST # gpg: using RSA key EF04965B398D6211 # gpg: Good signature from "Jason Wang (Jason Wang on RedHat) <jasowang@redhat.com>" [marginal] # gpg: WARNING: This key is not certified with sufficiently trusted signatures! # gpg: It is not certain that the signature belongs to the owner. # Primary key fingerprint: 215D 46F4 8246 689E C77F 3562 EF04 965B 398D 6211 * tag 'net-pull-request' of https://github.com/jasowang/qemu: vdpa: Fix memory listener deletions of iova tree vhost: Get vring base from vq, not svq e1000e: Fix possible interrupt loss when using MSI Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
		
						commit
						0d0275c31f
					
				| @ -159,6 +159,8 @@ e1000e_intrmgr_on_throttling_timer(void *opaque) | ||||
| 
 | ||||
|     if (msi_enabled(timer->core->owner)) { | ||||
|         trace_e1000e_irq_msi_notify_postponed(); | ||||
|         /* Clear msi_causes_pending to fire MSI eventually */ | ||||
|         timer->core->msi_causes_pending = 0; | ||||
|         e1000e_set_interrupt_cause(timer->core, 0); | ||||
|     } else { | ||||
|         trace_e1000e_irq_legacy_notify_postponed(); | ||||
|  | ||||
| @ -290,7 +290,7 @@ static void vhost_vdpa_listener_region_del(MemoryListener *listener, | ||||
| 
 | ||||
|         result = vhost_iova_tree_find_iova(v->iova_tree, &mem_region); | ||||
|         iova = result->iova; | ||||
|         vhost_iova_tree_remove(v->iova_tree, &mem_region); | ||||
|         vhost_iova_tree_remove(v->iova_tree, result); | ||||
|     } | ||||
|     vhost_vdpa_iotlb_batch_begin_once(v); | ||||
|     ret = vhost_vdpa_dma_unmap(v, iova, int128_get64(llsize)); | ||||
| @ -1179,7 +1179,18 @@ static int vhost_vdpa_set_vring_base(struct vhost_dev *dev, | ||||
|                                        struct vhost_vring_state *ring) | ||||
| { | ||||
|     struct vhost_vdpa *v = dev->opaque; | ||||
|     VirtQueue *vq = virtio_get_queue(dev->vdev, ring->index); | ||||
| 
 | ||||
|     /*
 | ||||
|      * vhost-vdpa devices does not support in-flight requests. Set all of them | ||||
|      * as available. | ||||
|      * | ||||
|      * TODO: This is ok for networking, but other kinds of devices might | ||||
|      * have problems with these retransmissions. | ||||
|      */ | ||||
|     while (virtqueue_rewind(vq, 1)) { | ||||
|         continue; | ||||
|     } | ||||
|     if (v->shadow_vqs_enabled) { | ||||
|         /*
 | ||||
|          * Device vring base was set at device start. SVQ base is handled by | ||||
| @ -1195,21 +1206,10 @@ static int vhost_vdpa_get_vring_base(struct vhost_dev *dev, | ||||
|                                        struct vhost_vring_state *ring) | ||||
| { | ||||
|     struct vhost_vdpa *v = dev->opaque; | ||||
|     int vdpa_idx = ring->index - dev->vq_index; | ||||
|     int ret; | ||||
| 
 | ||||
|     if (v->shadow_vqs_enabled) { | ||||
|         VhostShadowVirtqueue *svq = g_ptr_array_index(v->shadow_vqs, vdpa_idx); | ||||
| 
 | ||||
|         /*
 | ||||
|          * Setting base as last used idx, so destination will see as available | ||||
|          * all the entries that the device did not use, including the in-flight | ||||
|          * processing ones. | ||||
|          * | ||||
|          * TODO: This is ok for networking, but other kinds of devices might | ||||
|          * have problems with these retransmissions. | ||||
|          */ | ||||
|         ring->num = svq->last_used_idx; | ||||
|         ring->num = virtio_queue_get_last_avail_idx(dev->vdev, ring->index); | ||||
|         return 0; | ||||
|     } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Peter Maydell
						Peter Maydell