diff --git a/patches/vmebridge.diff b/patches/vmebridge.diff
index 59b0f9a07eeefc0560f2df4ee171dc3e8fc9d8a9..22212ea8bbb103e1ae8a033e6ce4a87bcaee18a1 100644
--- a/patches/vmebridge.diff
+++ b/patches/vmebridge.diff
@@ -128,7 +128,7 @@ index 3600a453..32342463 100644
  		dma_cookie_status;
  	dmaengine->dma.device_issue_pending =
 diff --git a/vmebridge/driver/vme_bridge.c b/vmebridge/driver/vme_bridge.c
-index 84988b75..f2661bdc 100644
+index 84988b75..c2820f38 100644
 --- a/vmebridge/driver/vme_bridge.c
 +++ b/vmebridge/driver/vme_bridge.c
 @@ -795,10 +795,12 @@ static void vme_bridge_remove(struct pci_dev *pdev)
@@ -163,6 +163,31 @@ index 84988b75..f2661bdc 100644
  	return ret ? ret : count;
  }
  static DEVICE_ATTR_WO(remove);
+@@ -1455,9 +1462,13 @@ static void vme_initialize_device(struct vme_dev *vme_dev)
+  * It tells if a device belong to a driver that generated the
+  * device itself
+  */
++#if KERNEL_VERSION(5, 3, 0) > LINUX_VERSION_CODE
+ static int __vme_unregister_find_device(struct device *dev, void *data)
++#else
++static int __vme_unregister_find_device(struct device *dev, const void *data)
++#endif
+ {
+-	struct vme_driver *vme_driver = data;
++	struct vme_driver *vme_driver = (struct vme_driver *)data;
+ 
+ 	return (dev->platform_data == vme_driver);
+ }
+@@ -1475,7 +1486,8 @@ void vme_unregister_driver(struct vme_driver *vme_driver)
+ 		 * until we remove them all
+ 		 */
+ 		dev = driver_find_device(&vme_driver->driver, NULL,
+-			       vme_driver, __vme_unregister_find_device);
++					 vme_driver,
++					 __vme_unregister_find_device);
+ 		if (!dev)
+ 			break;
+ 		device_unregister(dev);
 diff --git a/vmebridge/driver/vme_bus.c b/vmebridge/driver/vme_bus.c
 index 58725c72..fac6d1da 100644
 --- a/vmebridge/driver/vme_bus.c