|
|
@@ -0,0 +1,30 @@
|
|
|
+--- a/drivers/net/wireless/virtual/mac80211_hwsim.c
|
|
|
++++ b/drivers/net/wireless/virtual/mac80211_hwsim.c
|
|
|
+@@ -6629,6 +6629,7 @@ static void hwsim_virtio_rx_done(struct
|
|
|
+
|
|
|
+ static int init_vqs(struct virtio_device *vdev)
|
|
|
+ {
|
|
|
++#if LINUX_VERSION_IS_GEQ(6,11,0)
|
|
|
+ struct virtqueue_info vqs_info[HWSIM_NUM_VQS] = {
|
|
|
+ [HWSIM_VQ_TX] = { "tx", hwsim_virtio_tx_done },
|
|
|
+ [HWSIM_VQ_RX] = { "rx", hwsim_virtio_rx_done },
|
|
|
+@@ -6636,6 +6637,19 @@ static int init_vqs(struct virtio_device
|
|
|
+
|
|
|
+ return virtio_find_vqs(vdev, HWSIM_NUM_VQS,
|
|
|
+ hwsim_vqs, vqs_info, NULL);
|
|
|
++#else /* Using the old ABI, copied from kernel 6.6 */
|
|
|
++ vq_callback_t *callbacks[HWSIM_NUM_VQS] = {
|
|
|
++ [HWSIM_VQ_TX] = hwsim_virtio_tx_done,
|
|
|
++ [HWSIM_VQ_RX] = hwsim_virtio_rx_done,
|
|
|
++ };
|
|
|
++ const char *names[HWSIM_NUM_VQS] = {
|
|
|
++ [HWSIM_VQ_TX] = "tx",
|
|
|
++ [HWSIM_VQ_RX] = "rx",
|
|
|
++ };
|
|
|
++
|
|
|
++ return virtio_find_vqs(vdev, HWSIM_NUM_VQS,
|
|
|
++ hwsim_vqs, callbacks, names, NULL);
|
|
|
++#endif
|
|
|
+ }
|
|
|
+
|
|
|
+ static int fill_vq(struct virtqueue *vq)
|